@web3auth/no-modal 10.0.0-beta.1 → 10.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib.cjs/base/connector/baseConnector.js +2 -1
- package/dist/lib.cjs/base/connector/constants.js +3 -1
- package/dist/lib.cjs/base/constants.js +7 -0
- package/dist/lib.cjs/base/cookie.js +38 -0
- package/dist/lib.cjs/base/deserialize.js +13 -0
- package/dist/lib.cjs/base/errors/index.js +3 -22
- package/dist/lib.cjs/base/utils.js +24 -6
- package/dist/lib.cjs/base/wallet/index.js +2 -4
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +63 -20
- package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +13 -5
- package/dist/lib.cjs/connectors/coinbase-connector/index.js +7 -0
- package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +7 -3
- package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +7 -4
- package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +43 -15
- package/dist/lib.cjs/connectors/utils.js +10 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +6 -1
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +6 -2
- package/dist/lib.cjs/index.js +13 -9
- package/dist/lib.cjs/noModal.js +190 -69
- package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +2 -2
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +1 -1
- package/dist/lib.cjs/providers/account-abstraction-provider/index.js +5 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +29 -2
- package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +25 -3
- package/dist/lib.cjs/providers/base-provider/baseProvider.js +2 -0
- package/dist/lib.cjs/providers/ethereum-mpc-provider/index.js +7 -0
- package/dist/lib.cjs/providers/xrpl-provider/index.js +9 -0
- package/dist/lib.cjs/react/Web3AuthProvider.js +19 -0
- package/dist/lib.cjs/react/{wallet-services-plugin/WalletServicesContext.js → context/WalletServicesInnerContext.js} +18 -33
- package/dist/lib.cjs/react/{no-modal → context}/Web3AuthInnerContext.js +37 -95
- package/dist/lib.cjs/react/hooks/useCheckout.js +45 -0
- package/dist/lib.cjs/react/hooks/useEnableMFA.js +30 -0
- package/dist/lib.cjs/react/hooks/useIdentityToken.js +42 -0
- package/dist/lib.cjs/react/hooks/useManageMFA.js +30 -0
- package/dist/lib.cjs/react/hooks/useSwap.js +45 -0
- package/dist/lib.cjs/react/hooks/useSwitchChain.js +32 -0
- package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +45 -0
- package/dist/lib.cjs/react/hooks/useWalletServicesPlugin.js +19 -0
- package/dist/lib.cjs/react/hooks/useWalletUI.js +45 -0
- package/dist/lib.cjs/react/hooks/useWeb3Auth.js +28 -0
- package/dist/lib.cjs/react/hooks/useWeb3AuthConnect.js +48 -0
- package/dist/lib.cjs/react/hooks/useWeb3AuthDisconnect.js +30 -0
- package/dist/lib.cjs/react/{no-modal/hooks/useWeb3Auth.js → hooks/useWeb3AuthInner.js} +9 -9
- package/dist/lib.cjs/react/hooks/useWeb3AuthUser.js +50 -0
- package/dist/lib.cjs/react/index.js +26 -9
- package/dist/lib.cjs/react/solana/hooks/useSignAndSendTransaction.js +35 -0
- package/dist/lib.cjs/react/solana/hooks/useSignMessage.js +36 -0
- package/dist/lib.cjs/react/solana/hooks/useSignTransaction.js +34 -0
- package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +62 -0
- package/dist/lib.cjs/react/solana/index.js +13 -0
- package/dist/lib.cjs/react/wagmi/constants.js +16 -0
- package/dist/lib.cjs/react/wagmi/index.js +7 -0
- package/dist/lib.cjs/react/wagmi/provider.js +189 -0
- package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +4 -5
- package/dist/lib.cjs/types/base/connector/constants.d.ts +2 -0
- package/dist/lib.cjs/types/base/connector/interfaces.d.ts +18 -16
- package/dist/lib.cjs/types/base/constants.d.ts +5 -0
- package/dist/lib.cjs/types/base/cookie.d.ts +10 -0
- package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +40 -12
- package/dist/lib.cjs/types/base/deserialize.d.ts +3 -0
- package/dist/lib.cjs/types/base/errors/index.d.ts +1 -2
- package/dist/lib.cjs/types/base/hooks/index.d.ts +3 -23
- package/dist/lib.cjs/types/base/index.d.ts +1 -0
- package/dist/lib.cjs/types/base/interfaces.d.ts +9 -4
- package/dist/lib.cjs/types/base/plugin/IPlugin.d.ts +1 -1
- package/dist/lib.cjs/types/base/utils.d.ts +3 -1
- package/dist/lib.cjs/types/base/wallet/index.d.ts +18 -17
- package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +5 -6
- package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +3 -2
- package/dist/lib.cjs/types/connectors/coinbase-connector/coinbaseConnector.d.ts +1 -1
- package/dist/lib.cjs/types/connectors/index.d.ts +1 -1
- package/dist/lib.cjs/types/connectors/metamask-connector/index.d.ts +1 -1
- package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +2 -2
- package/dist/lib.cjs/types/connectors/utils.d.ts +8 -0
- package/dist/lib.cjs/types/noModal.d.ts +20 -9
- package/dist/lib.cjs/types/plugins/nft-checkout-plugin/plugin.d.ts +2 -2
- package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +2 -2
- package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +3 -2
- package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -1
- package/dist/lib.cjs/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +4 -1
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +1 -1
- package/dist/lib.cjs/types/providers/index.d.ts +0 -2
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +1 -1
- package/dist/lib.cjs/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +1 -1
- package/dist/lib.cjs/types/react/context/WalletServicesInnerContext.d.ts +6 -0
- package/dist/lib.cjs/types/react/{no-modal → context}/Web3AuthInnerContext.d.ts +1 -1
- package/dist/lib.cjs/types/react/hooks/index.d.ts +13 -0
- package/dist/lib.cjs/types/react/hooks/useCheckout.d.ts +8 -0
- package/dist/lib.cjs/types/react/hooks/useEnableMFA.d.ts +7 -0
- package/dist/lib.cjs/types/react/hooks/useIdentityToken.d.ts +13 -0
- package/dist/lib.cjs/types/react/hooks/useManageMFA.d.ts +7 -0
- package/dist/lib.cjs/types/react/hooks/useSwap.d.ts +8 -0
- package/dist/lib.cjs/types/react/hooks/useSwitchChain.d.ts +7 -0
- package/dist/lib.cjs/types/react/hooks/useWalletConnectScanner.d.ts +8 -0
- package/dist/lib.cjs/types/react/hooks/useWalletUI.d.ts +8 -0
- package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +3 -0
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +9 -0
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthDisconnect.d.ts +9 -0
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthInner.d.ts +2 -0
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthUser.d.ts +9 -0
- package/dist/lib.cjs/types/react/index.d.ts +3 -2
- package/dist/lib.cjs/types/react/interfaces.d.ts +21 -0
- package/dist/lib.cjs/types/react/solana/hooks/index.d.ts +4 -0
- package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +9 -0
- package/dist/lib.cjs/types/react/solana/hooks/useSignMessage.d.ts +8 -0
- package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +14 -0
- package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +8 -0
- package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
- package/dist/lib.cjs/types/react/wagmi/constants.d.ts +43 -0
- package/dist/lib.cjs/types/react/wagmi/index.d.ts +1 -0
- package/dist/lib.cjs/types/react/wagmi/interface.d.ts +4 -0
- package/dist/lib.cjs/types/react/wagmi/provider.d.ts +3 -0
- package/dist/lib.cjs/types/vue/WalletServicesInnerProvider.d.ts +1 -0
- package/dist/lib.cjs/types/vue/composables/index.d.ts +13 -0
- package/dist/lib.cjs/types/vue/composables/useCheckout.d.ts +9 -0
- package/dist/lib.cjs/types/vue/composables/useEnableMFA.d.ts +8 -0
- package/dist/lib.cjs/types/vue/composables/useIdentityToken.d.ts +9 -0
- package/dist/lib.cjs/types/vue/composables/useManageMFA.d.ts +8 -0
- package/dist/lib.cjs/types/vue/composables/useSwap.d.ts +9 -0
- package/dist/lib.cjs/types/vue/composables/useSwitchChain.d.ts +10 -0
- package/dist/lib.cjs/types/vue/composables/useWalletConnectScanner.d.ts +9 -0
- package/dist/lib.cjs/types/vue/composables/useWalletServicesPlugin.d.ts +2 -0
- package/dist/lib.cjs/types/vue/composables/useWalletUI.d.ts +9 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +3 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +10 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthDisconnect.d.ts +10 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthInner.d.ts +2 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthUser.d.ts +10 -0
- package/dist/lib.cjs/types/vue/{wallet-services-plugin/context.d.ts → context/WalletServicesContext.d.ts} +2 -2
- package/dist/lib.cjs/types/vue/context/index.d.ts +1 -0
- package/dist/lib.cjs/types/vue/index.d.ts +4 -2
- package/dist/lib.cjs/types/vue/interfaces.d.ts +30 -0
- package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +4 -0
- package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +10 -0
- package/dist/lib.cjs/types/vue/solana/composables/useSignMessage.d.ts +9 -0
- package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +10 -0
- package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +9 -0
- package/dist/lib.cjs/types/vue/solana/index.d.ts +1 -0
- package/dist/lib.cjs/types/vue/wagmi/constants.d.ts +43 -0
- package/dist/lib.cjs/types/vue/wagmi/index.d.ts +2 -0
- package/dist/lib.cjs/types/vue/wagmi/interface.d.ts +4 -0
- package/dist/lib.cjs/types/vue/wagmi/provider.d.ts +17 -0
- package/dist/lib.cjs/vue/{wallet-services-plugin/WalletServicesProvider.js → WalletServicesInnerProvider.js} +26 -43
- package/dist/lib.cjs/vue/{no-modal/Web3AuthProvider.js → Web3AuthProvider.js} +45 -86
- package/dist/lib.cjs/vue/composables/useCheckout.js +45 -0
- package/dist/lib.cjs/vue/composables/useEnableMFA.js +43 -0
- package/dist/lib.cjs/vue/composables/useIdentityToken.js +55 -0
- package/dist/lib.cjs/vue/composables/useManageMFA.js +43 -0
- package/dist/lib.cjs/vue/composables/useSwap.js +45 -0
- package/dist/lib.cjs/vue/composables/useSwitchChain.js +43 -0
- package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +45 -0
- package/dist/lib.cjs/vue/composables/useWalletServicesPlugin.js +12 -0
- package/dist/lib.cjs/vue/composables/useWalletUI.js +45 -0
- package/dist/lib.cjs/vue/composables/useWeb3Auth.js +28 -0
- package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +61 -0
- package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +43 -0
- package/dist/lib.cjs/vue/{no-modal/composables/useWeb3Auth.js → composables/useWeb3AuthInner.js} +9 -9
- package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +64 -0
- package/dist/lib.cjs/vue/index.js +28 -8
- package/dist/lib.cjs/vue/solana/composables/useSignAndSendTransaction.js +36 -0
- package/dist/lib.cjs/vue/solana/composables/useSignMessage.js +38 -0
- package/dist/lib.cjs/vue/solana/composables/useSignTransaction.js +36 -0
- package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +64 -0
- package/dist/lib.cjs/vue/solana/index.js +13 -0
- package/dist/lib.cjs/vue/wagmi/constants.js +16 -0
- package/dist/lib.cjs/vue/wagmi/index.js +7 -0
- package/dist/lib.cjs/vue/wagmi/provider.js +244 -0
- package/dist/lib.esm/base/connector/baseConnector.js +6 -1
- package/dist/lib.esm/base/connector/constants.js +3 -1
- package/dist/lib.esm/base/constants.js +6 -1
- package/dist/lib.esm/base/cookie.js +34 -0
- package/dist/lib.esm/base/deserialize.js +11 -0
- package/dist/lib.esm/base/errors/index.js +14 -22
- package/dist/lib.esm/base/plugin/errors.js +2 -0
- package/dist/lib.esm/base/utils.js +28 -12
- package/dist/lib.esm/base/wallet/index.js +2 -4
- package/dist/lib.esm/connectors/auth-connector/authConnector.js +83 -30
- package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +1 -8
- package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +1 -8
- package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +16 -15
- package/dist/lib.esm/connectors/coinbase-connector/index.js +1 -0
- package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +11 -12
- package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +13 -17
- package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +52 -27
- package/dist/lib.esm/connectors/utils.js +14 -1
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +8 -25
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +20 -25
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +15 -15
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +1 -11
- package/dist/lib.esm/index.js +12 -14
- package/dist/lib.esm/noModal.js +217 -80
- package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +4 -1
- package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +4 -10
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +7 -9
- package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -2
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +37 -20
- package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +0 -10
- package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +26 -3
- package/dist/lib.esm/providers/base-provider/baseProvider.js +7 -9
- package/dist/lib.esm/providers/base-provider/utils.js +3 -3
- package/dist/lib.esm/providers/ethereum-mpc-provider/index.js +1 -0
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +4 -17
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +3 -13
- package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +1 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +1 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +10 -11
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +3 -3
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +1 -0
- package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +8 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +2 -15
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +5 -12
- package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +1 -1
- package/dist/lib.esm/providers/solana-provider/solanaWallet.js +3 -0
- package/dist/lib.esm/providers/xrpl-provider/index.js +2 -0
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +3 -14
- package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -0
- package/dist/lib.esm/react/Web3AuthProvider.js +17 -0
- package/dist/lib.esm/react/context/WalletServicesInnerContext.js +70 -0
- package/dist/lib.esm/react/context/Web3AuthInnerContext.js +129 -0
- package/dist/lib.esm/react/hooks/useCheckout.js +32 -0
- package/dist/lib.esm/react/hooks/useEnableMFA.js +28 -0
- package/dist/lib.esm/react/hooks/useIdentityToken.js +40 -0
- package/dist/lib.esm/react/hooks/useManageMFA.js +28 -0
- package/dist/lib.esm/react/hooks/useSwap.js +32 -0
- package/dist/lib.esm/react/hooks/useSwitchChain.js +30 -0
- package/dist/lib.esm/react/hooks/useWalletConnectScanner.js +32 -0
- package/dist/lib.esm/react/hooks/useWalletServicesPlugin.js +17 -0
- package/dist/lib.esm/react/hooks/useWalletUI.js +32 -0
- package/dist/lib.esm/react/hooks/useWeb3Auth.js +26 -0
- package/dist/lib.esm/react/hooks/useWeb3AuthConnect.js +46 -0
- package/dist/lib.esm/react/hooks/useWeb3AuthDisconnect.js +28 -0
- package/dist/lib.esm/react/hooks/useWeb3AuthInner.js +13 -0
- package/dist/lib.esm/react/hooks/useWeb3AuthUser.js +48 -0
- package/dist/lib.esm/react/index.js +14 -5
- package/dist/lib.esm/react/solana/hooks/useSignAndSendTransaction.js +33 -0
- package/dist/lib.esm/react/solana/hooks/useSignMessage.js +34 -0
- package/dist/lib.esm/react/solana/hooks/useSignTransaction.js +32 -0
- package/dist/lib.esm/react/solana/hooks/useSolanaWallet.js +42 -0
- package/dist/lib.esm/react/solana/index.js +4 -0
- package/dist/lib.esm/react/wagmi/constants.js +14 -0
- package/dist/lib.esm/react/wagmi/index.js +1 -0
- package/dist/lib.esm/react/wagmi/provider.js +179 -0
- package/dist/lib.esm/vue/WalletServicesInnerProvider.js +71 -0
- package/dist/lib.esm/vue/Web3AuthProvider.js +154 -0
- package/dist/lib.esm/vue/composables/useCheckout.js +32 -0
- package/dist/lib.esm/vue/composables/useEnableMFA.js +30 -0
- package/dist/lib.esm/vue/composables/useIdentityToken.js +42 -0
- package/dist/lib.esm/vue/composables/useManageMFA.js +30 -0
- package/dist/lib.esm/vue/composables/useSwap.js +32 -0
- package/dist/lib.esm/vue/composables/useSwitchChain.js +30 -0
- package/dist/lib.esm/vue/composables/useWalletConnectScanner.js +32 -0
- package/dist/lib.esm/vue/composables/useWalletServicesPlugin.js +10 -0
- package/dist/lib.esm/vue/composables/useWalletUI.js +32 -0
- package/dist/lib.esm/vue/composables/useWeb3Auth.js +26 -0
- package/dist/lib.esm/vue/composables/useWeb3AuthConnect.js +48 -0
- package/dist/lib.esm/vue/composables/useWeb3AuthDisconnect.js +30 -0
- package/dist/lib.esm/vue/composables/useWeb3AuthInner.js +11 -0
- package/dist/lib.esm/vue/composables/useWeb3AuthUser.js +51 -0
- package/dist/lib.esm/vue/index.js +15 -5
- package/dist/lib.esm/vue/solana/composables/useSignAndSendTransaction.js +34 -0
- package/dist/lib.esm/vue/solana/composables/useSignMessage.js +36 -0
- package/dist/lib.esm/vue/solana/composables/useSignTransaction.js +34 -0
- package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +51 -0
- package/dist/lib.esm/vue/solana/index.js +4 -0
- package/dist/lib.esm/vue/wagmi/constants.js +14 -0
- package/dist/lib.esm/vue/wagmi/index.js +1 -0
- package/dist/lib.esm/vue/wagmi/provider.js +237 -0
- package/dist/noModal.umd.min.js +1 -1
- package/dist/noModal.umd.min.js.LICENSE.txt +0 -26
- package/package.json +79 -20
- package/dist/lib.cjs/react/no-modal/Web3AuthProvider.js +0 -15
- package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesProvider.js +0 -16
- package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +0 -26
- package/dist/lib.cjs/types/react/no-modal/hooks/index.d.ts +0 -1
- package/dist/lib.cjs/types/react/no-modal/hooks/useWeb3Auth.d.ts +0 -2
- package/dist/lib.cjs/types/react/no-modal/index.d.ts +0 -3
- package/dist/lib.cjs/types/react/no-modal/interfaces.d.ts +0 -15
- package/dist/lib.cjs/types/react/wallet-services-plugin/WalletServicesContext.d.ts +0 -7
- package/dist/lib.cjs/types/react/wallet-services-plugin/WalletServicesProvider.d.ts +0 -7
- package/dist/lib.cjs/types/react/wallet-services-plugin/hooks/index.d.ts +0 -1
- package/dist/lib.cjs/types/react/wallet-services-plugin/index.d.ts +0 -4
- package/dist/lib.cjs/types/react/wallet-services-plugin/interfaces.d.ts +0 -5
- package/dist/lib.cjs/types/vue/no-modal/composables/index.d.ts +0 -1
- package/dist/lib.cjs/types/vue/no-modal/composables/useWeb3Auth.d.ts +0 -2
- package/dist/lib.cjs/types/vue/no-modal/index.d.ts +0 -3
- package/dist/lib.cjs/types/vue/no-modal/interfaces.d.ts +0 -39
- package/dist/lib.cjs/types/vue/wallet-services-plugin/WalletServicesProvider.d.ts +0 -1
- package/dist/lib.cjs/types/vue/wallet-services-plugin/composables/index.d.ts +0 -1
- package/dist/lib.cjs/types/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +0 -2
- package/dist/lib.cjs/types/vue/wallet-services-plugin/index.d.ts +0 -4
- package/dist/lib.cjs/types/vue/wallet-services-plugin/interfaces.d.ts +0 -13
- package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +0 -24
- package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +0 -197
- package/dist/lib.esm/react/no-modal/Web3AuthProvider.js +0 -13
- package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +0 -24
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +0 -95
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesProvider.js +0 -14
- package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +0 -24
- package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +0 -203
- package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +0 -22
- package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +0 -96
- package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +0 -22
- /package/dist/lib.cjs/types/react/{no-modal/Web3AuthProvider.d.ts → Web3AuthProvider.d.ts} +0 -0
- /package/dist/lib.cjs/types/react/{wallet-services-plugin/hooks → hooks}/useWalletServicesPlugin.d.ts +0 -0
- /package/dist/lib.cjs/types/vue/{no-modal/Web3AuthProvider.d.ts → Web3AuthProvider.d.ts} +0 -0
- /package/dist/lib.cjs/vue/{wallet-services-plugin/context.js → context/WalletServicesContext.js} +0 -0
- /package/dist/lib.esm/vue/{wallet-services-plugin/context.js → context/WalletServicesContext.js} +0 -0
package/dist/lib.cjs/noModal.js
CHANGED
|
@@ -5,43 +5,53 @@ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
|
5
5
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
6
|
var auth = require('@web3auth/auth');
|
|
7
7
|
var deepmerge = require('deepmerge');
|
|
8
|
-
var authConnector = require('./connectors/auth-connector/authConnector.js');
|
|
9
8
|
var IChainInterface = require('./base/chain/IChainInterface.js');
|
|
10
9
|
var index = require('./base/errors/index.js');
|
|
11
10
|
var index$1 = require('./base/wallet/index.js');
|
|
12
11
|
var constants = require('./base/connector/constants.js');
|
|
13
12
|
var utils$1 = require('./base/connector/utils.js');
|
|
14
13
|
var constants$1 = require('./base/constants.js');
|
|
14
|
+
var cookie = require('./base/cookie.js');
|
|
15
15
|
var loglevel = require('./base/loglevel.js');
|
|
16
16
|
require('./base/plugin/errors.js');
|
|
17
17
|
var IPlugin = require('./base/plugin/IPlugin.js');
|
|
18
18
|
var utils = require('./base/utils.js');
|
|
19
|
+
var deserialize = require('./base/deserialize.js');
|
|
20
|
+
var authConnector = require('./connectors/auth-connector/authConnector.js');
|
|
21
|
+
var metamaskConnector = require('./connectors/metamask-connector/metamaskConnector.js');
|
|
22
|
+
var plugin = require('./plugins/wallet-services-plugin/plugin.js');
|
|
19
23
|
var baseControllers = require('@toruslabs/base-controllers');
|
|
20
24
|
require('./providers/base-provider/utils.js');
|
|
21
25
|
var CommonJRPCProvider = require('./providers/base-provider/CommonJRPCProvider.js');
|
|
22
26
|
require('./providers/base-provider/commonPrivateKeyProvider.js');
|
|
23
|
-
var metamaskConnector = require('./connectors/metamask-connector/metamaskConnector.js');
|
|
24
27
|
|
|
25
28
|
const _excluded = ["walletScope"];
|
|
26
|
-
const CONNECTOR_CACHE_KEY = "Web3Auth-cachedConnector";
|
|
27
|
-
const CURRENT_CHAIN_CACHE_KEY = "Web3Auth-currentChain";
|
|
28
29
|
class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
29
|
-
constructor(options) {
|
|
30
|
+
constructor(options, initialState) {
|
|
30
31
|
super();
|
|
31
32
|
_defineProperty(this, "coreOptions", void 0);
|
|
32
|
-
_defineProperty(this, "connectedConnectorName", null);
|
|
33
33
|
_defineProperty(this, "status", constants.CONNECTOR_STATUS.NOT_READY);
|
|
34
|
-
_defineProperty(this, "
|
|
35
|
-
_defineProperty(this, "currentChainId", void 0);
|
|
34
|
+
_defineProperty(this, "aaProvider", null);
|
|
36
35
|
_defineProperty(this, "connectors", []);
|
|
37
36
|
_defineProperty(this, "commonJRPCProvider", null);
|
|
38
37
|
_defineProperty(this, "plugins", {});
|
|
39
|
-
_defineProperty(this, "storage",
|
|
38
|
+
_defineProperty(this, "storage", void 0);
|
|
39
|
+
_defineProperty(this, "state", {
|
|
40
|
+
connectedConnectorName: null,
|
|
41
|
+
cachedConnector: null,
|
|
42
|
+
currentChainId: null,
|
|
43
|
+
idToken: null
|
|
44
|
+
});
|
|
45
|
+
_defineProperty(this, "loginMode", constants$1.LOGIN_MODE.NO_MODAL);
|
|
40
46
|
if (!options.clientId) throw index.WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
|
|
41
47
|
if (options.enableLogging) loglevel.log.enableAll();else loglevel.log.setLevel("error");
|
|
42
|
-
if (options.storageType
|
|
48
|
+
if (!options.storageType) options.storageType = "local";
|
|
43
49
|
this.coreOptions = options;
|
|
44
|
-
this.
|
|
50
|
+
this.storage = this.getStorageMethod();
|
|
51
|
+
this.loadState(initialState);
|
|
52
|
+
if (this.state.idToken && this.coreOptions.ssr) {
|
|
53
|
+
this.status = constants.CONNECTOR_STATUS.CONNECTED;
|
|
54
|
+
}
|
|
45
55
|
}
|
|
46
56
|
get currentChain() {
|
|
47
57
|
var _this$coreOptions$cha;
|
|
@@ -56,14 +66,29 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
56
66
|
}
|
|
57
67
|
return null;
|
|
58
68
|
}
|
|
69
|
+
get connectedConnectorName() {
|
|
70
|
+
return this.state.connectedConnectorName;
|
|
71
|
+
}
|
|
72
|
+
get cachedConnector() {
|
|
73
|
+
return this.state.cachedConnector;
|
|
74
|
+
}
|
|
75
|
+
get currentChainId() {
|
|
76
|
+
return this.state.currentChainId || this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
|
|
77
|
+
}
|
|
59
78
|
get connectedConnector() {
|
|
60
79
|
var _this$currentChain;
|
|
61
80
|
return this.getConnector(this.connectedConnectorName, (_this$currentChain = this.currentChain) === null || _this$currentChain === void 0 ? void 0 : _this$currentChain.chainNamespace);
|
|
62
81
|
}
|
|
82
|
+
get accountAbstractionProvider() {
|
|
83
|
+
return this.aaProvider;
|
|
84
|
+
}
|
|
63
85
|
set provider(_) {
|
|
64
86
|
throw new Error("Not implemented");
|
|
65
87
|
}
|
|
66
|
-
async init() {
|
|
88
|
+
async init(options) {
|
|
89
|
+
const {
|
|
90
|
+
signal
|
|
91
|
+
} = options || {};
|
|
67
92
|
// get project config
|
|
68
93
|
let projectConfig;
|
|
69
94
|
try {
|
|
@@ -75,30 +100,37 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
75
100
|
authBuildEnv: this.coreOptions.authBuildEnv
|
|
76
101
|
});
|
|
77
102
|
} catch (e) {
|
|
78
|
-
|
|
79
|
-
|
|
103
|
+
const error = await auth.serializeError(e);
|
|
104
|
+
loglevel.log.error("Failed to fetch project configurations", error);
|
|
105
|
+
throw index.WalletInitializationError.notReady("failed to fetch project configurations", error);
|
|
80
106
|
}
|
|
81
107
|
// init config
|
|
82
108
|
this.initAccountAbstractionConfig(projectConfig);
|
|
83
109
|
this.initChainsConfig(projectConfig);
|
|
84
110
|
this.initCachedConnectorAndChainId();
|
|
85
111
|
// setup common JRPC provider
|
|
86
|
-
await this.setupCommonJRPCProvider();
|
|
112
|
+
await utils.withAbort(() => this.setupCommonJRPCProvider(), signal);
|
|
87
113
|
// initialize connectors
|
|
88
114
|
this.on(constants.CONNECTOR_EVENTS.CONNECTORS_UPDATED, async ({
|
|
89
115
|
connectors: newConnectors
|
|
90
116
|
}) => {
|
|
91
|
-
|
|
117
|
+
const onAbortHandler = () => {
|
|
118
|
+
var _this$connectors;
|
|
119
|
+
if (((_this$connectors = this.connectors) === null || _this$connectors === void 0 ? void 0 : _this$connectors.length) > 0) {
|
|
120
|
+
this.cleanup();
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
await utils.withAbort(() => Promise.all(newConnectors.map(this.setupConnector.bind(this))), signal, onAbortHandler);
|
|
92
124
|
// emit connector ready event
|
|
93
125
|
if (this.status === constants.CONNECTOR_STATUS.NOT_READY) {
|
|
94
126
|
this.status = constants.CONNECTOR_STATUS.READY;
|
|
95
127
|
this.emit(constants.CONNECTOR_EVENTS.READY);
|
|
96
128
|
}
|
|
97
129
|
});
|
|
98
|
-
await this.loadConnectors({
|
|
130
|
+
await utils.withAbort(() => this.loadConnectors({
|
|
99
131
|
projectConfig
|
|
100
|
-
});
|
|
101
|
-
await this.initPlugins();
|
|
132
|
+
}), signal);
|
|
133
|
+
await utils.withAbort(() => this.initPlugins(), signal);
|
|
102
134
|
}
|
|
103
135
|
// we need to take into account the chainNamespace as for external connectors, same connector name can be used for multiple chain namespaces
|
|
104
136
|
getConnector(connectorName, chainNamespace) {
|
|
@@ -112,10 +144,17 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
112
144
|
}) || null;
|
|
113
145
|
}
|
|
114
146
|
clearCache() {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
147
|
+
this.setState({
|
|
148
|
+
connectedConnectorName: null,
|
|
149
|
+
cachedConnector: null,
|
|
150
|
+
currentChainId: null,
|
|
151
|
+
idToken: null
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
async cleanup() {
|
|
155
|
+
for (const connector of this.connectors) {
|
|
156
|
+
if (connector.cleanup) await connector.cleanup();
|
|
157
|
+
}
|
|
119
158
|
}
|
|
120
159
|
async switchChain(params) {
|
|
121
160
|
var _this$currentChain2;
|
|
@@ -138,11 +177,12 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
138
177
|
* Connect to a specific wallet connector
|
|
139
178
|
* @param connectorName - Key of the wallet connector to use.
|
|
140
179
|
*/
|
|
141
|
-
async connectTo(connectorName, loginParams) {
|
|
180
|
+
async connectTo(connectorName, loginParams, loginMode) {
|
|
181
|
+
this.loginMode = loginMode || "no-modal";
|
|
142
182
|
const connector = this.getConnector(connectorName, loginParams === null || loginParams === void 0 ? void 0 : loginParams.chainNamespace);
|
|
143
183
|
if (!connector || !this.commonJRPCProvider) throw index.WalletInitializationError.notFound(`Please add wallet connector for ${connectorName} wallet, before connecting`);
|
|
144
184
|
return new Promise((resolve, reject) => {
|
|
145
|
-
this.once(constants.CONNECTOR_EVENTS.CONNECTED, _ => {
|
|
185
|
+
this.once(constants.CONNECTOR_EVENTS.CONNECTED, async _ => {
|
|
146
186
|
resolve(this.provider);
|
|
147
187
|
});
|
|
148
188
|
this.once(constants.CONNECTOR_EVENTS.ERRORED, err => {
|
|
@@ -222,6 +262,10 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
222
262
|
// if AA is enabled, filter out chains that are not AA-supported
|
|
223
263
|
if (this.coreOptions.accountAbstractionConfig) {
|
|
224
264
|
// write a for loop over accountAbstractionConfig.chains and check if the chainId is valid
|
|
265
|
+
if (this.coreOptions.accountAbstractionConfig.chains.length === 0) {
|
|
266
|
+
loglevel.log.error("Please configure chains for smart accounts on dashboard at https://dashboard.web3auth.io");
|
|
267
|
+
throw index.WalletInitializationError.invalidParams("Please configure chains for smart accounts on dashboard at https://dashboard.web3auth.io");
|
|
268
|
+
}
|
|
225
269
|
for (const chain of this.coreOptions.accountAbstractionConfig.chains) {
|
|
226
270
|
if (!utils.isHexStrict(chain.chainId)) {
|
|
227
271
|
loglevel.log.error(`Please provide a valid chainId in accountAbstractionConfig.chains for chain ${chain.chainId}`);
|
|
@@ -254,27 +298,38 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
254
298
|
}
|
|
255
299
|
}
|
|
256
300
|
initAccountAbstractionConfig(projectConfig) {
|
|
301
|
+
var _this$coreOptions$acc2;
|
|
257
302
|
const isAAEnabled = Boolean(this.coreOptions.accountAbstractionConfig || (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts));
|
|
258
303
|
if (!isAAEnabled) return;
|
|
259
|
-
// merge project config with core options,
|
|
304
|
+
// merge smart account config from project config with core options, core options will take precedence over project config
|
|
260
305
|
const _ref = (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts) || {},
|
|
261
306
|
{
|
|
262
307
|
walletScope
|
|
263
308
|
} = _ref,
|
|
264
309
|
configWithoutWalletScope = _objectWithoutProperties(_ref, _excluded);
|
|
265
|
-
|
|
310
|
+
const aaChainMap = new Map();
|
|
311
|
+
const allAaChains = [...((configWithoutWalletScope === null || configWithoutWalletScope === void 0 ? void 0 : configWithoutWalletScope.chains) || []), ...(((_this$coreOptions$acc2 = this.coreOptions.accountAbstractionConfig) === null || _this$coreOptions$acc2 === void 0 ? void 0 : _this$coreOptions$acc2.chains) || [])];
|
|
312
|
+
for (const chain of allAaChains) {
|
|
313
|
+
const existingChain = aaChainMap.get(chain.chainId);
|
|
314
|
+
if (!existingChain) aaChainMap.set(chain.chainId, chain);else aaChainMap.set(chain.chainId, _objectSpread(_objectSpread({}, existingChain), chain));
|
|
315
|
+
}
|
|
316
|
+
this.coreOptions.accountAbstractionConfig = _objectSpread(_objectSpread({}, deepmerge(configWithoutWalletScope || {}, this.coreOptions.accountAbstractionConfig || {})), {}, {
|
|
317
|
+
chains: Array.from(aaChainMap.values())
|
|
318
|
+
});
|
|
266
319
|
// determine if we should use AA with external wallet
|
|
267
320
|
if (this.coreOptions.useAAWithExternalWallet === undefined) {
|
|
268
321
|
this.coreOptions.useAAWithExternalWallet = walletScope === constants$1.SMART_ACCOUNT_WALLET_SCOPE.ALL;
|
|
269
322
|
}
|
|
270
323
|
}
|
|
271
324
|
initCachedConnectorAndChainId() {
|
|
272
|
-
this.cachedConnector = utils$1.storageAvailable(this.storage) ? window[this.storage].getItem(CONNECTOR_CACHE_KEY) : null;
|
|
273
325
|
// init chainId using cached chainId if it exists and is valid, otherwise use the defaultChainId or the first chain
|
|
274
|
-
const cachedChainId =
|
|
326
|
+
const cachedChainId = this.state.currentChainId;
|
|
275
327
|
const isCachedChainIdValid = cachedChainId && this.coreOptions.chains.some(chain => chain.chainId === cachedChainId);
|
|
276
328
|
if (this.coreOptions.defaultChainId && !utils.isHexStrict(this.coreOptions.defaultChainId)) throw index.WalletInitializationError.invalidParams("Please provide a valid defaultChainId in constructor");
|
|
277
|
-
|
|
329
|
+
const currentChainId = isCachedChainIdValid ? cachedChainId : this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
|
|
330
|
+
this.setState({
|
|
331
|
+
currentChainId
|
|
332
|
+
});
|
|
278
333
|
}
|
|
279
334
|
async setupCommonJRPCProvider() {
|
|
280
335
|
this.commonJRPCProvider = await CommonJRPCProvider.CommonJRPCProvider.getProviderInstance({
|
|
@@ -297,7 +352,8 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
297
352
|
}
|
|
298
353
|
}
|
|
299
354
|
async loadConnectors({
|
|
300
|
-
projectConfig
|
|
355
|
+
projectConfig,
|
|
356
|
+
modalMode
|
|
301
357
|
}) {
|
|
302
358
|
var _this$coreOptions$mul;
|
|
303
359
|
// always add auth connector
|
|
@@ -310,7 +366,7 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
310
366
|
const isExternalWalletEnabled = Boolean(projectConfig.externalWalletAuth);
|
|
311
367
|
const isMipdEnabled = isExternalWalletEnabled && ((_this$coreOptions$mul = this.coreOptions.multiInjectedProviderDiscovery) !== null && _this$coreOptions$mul !== void 0 ? _this$coreOptions$mul : true);
|
|
312
368
|
const chainNamespaces = new Set(this.coreOptions.chains.map(chain => chain.chainNamespace));
|
|
313
|
-
if (isMipdEnabled) {
|
|
369
|
+
if (isMipdEnabled && utils.isBrowser()) {
|
|
314
370
|
// Solana chains
|
|
315
371
|
if (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.SOLANA)) {
|
|
316
372
|
const {
|
|
@@ -342,9 +398,14 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
342
398
|
}
|
|
343
399
|
}
|
|
344
400
|
// it's safe to add it here as if there is a MetaMask injected provider, this won't override it
|
|
345
|
-
|
|
401
|
+
// only set headless to true if modal SDK is used, otherwise just use the modal from native Metamask SDK
|
|
402
|
+
if (utils.isBrowser() && (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.EIP155) || chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.SOLANA))) {
|
|
403
|
+
connectorFns.push(metamaskConnector.metaMaskConnector(modalMode ? {
|
|
404
|
+
headless: true
|
|
405
|
+
} : undefined));
|
|
406
|
+
}
|
|
346
407
|
// add WalletConnectV2 connector if external wallets are enabled
|
|
347
|
-
if (isExternalWalletEnabled && (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.EIP155))) {
|
|
408
|
+
if (utils.isBrowser() && isExternalWalletEnabled && (chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(baseControllers.CHAIN_NAMESPACES.EIP155))) {
|
|
348
409
|
const {
|
|
349
410
|
walletConnectV2Connector
|
|
350
411
|
} = await Promise.resolve().then(function () { return require('./connectors/wallet-connect-v2-connector/index.js'); });
|
|
@@ -354,7 +415,15 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
354
415
|
this.setConnectors(connectors);
|
|
355
416
|
}
|
|
356
417
|
async initPlugins() {
|
|
357
|
-
const
|
|
418
|
+
const {
|
|
419
|
+
chains,
|
|
420
|
+
plugins
|
|
421
|
+
} = this.coreOptions;
|
|
422
|
+
const pluginFns = plugins || [];
|
|
423
|
+
const isWsSupportedChain = chains.some(x => x.chainNamespace === baseControllers.CHAIN_NAMESPACES.EIP155 || x.chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA);
|
|
424
|
+
if (isWsSupportedChain) {
|
|
425
|
+
pluginFns.push(plugin.walletServicesPlugin());
|
|
426
|
+
}
|
|
358
427
|
for (const pluginFn of pluginFns) {
|
|
359
428
|
const plugin = pluginFn();
|
|
360
429
|
if (!this.plugins[plugin.name]) this.plugins[plugin.name] = plugin;
|
|
@@ -384,50 +453,77 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
384
453
|
const {
|
|
385
454
|
provider
|
|
386
455
|
} = data;
|
|
456
|
+
// when ssr is enabled, we need to get the idToken from the connector.
|
|
457
|
+
if (this.coreOptions.ssr) {
|
|
458
|
+
try {
|
|
459
|
+
const data = await connector.authenticateUser();
|
|
460
|
+
if (!data.idToken) throw index.WalletLoginError.connectionError("No idToken found");
|
|
461
|
+
this.setState({
|
|
462
|
+
idToken: data.idToken
|
|
463
|
+
});
|
|
464
|
+
} catch (error) {
|
|
465
|
+
loglevel.log.error(error);
|
|
466
|
+
this.status = constants.CONNECTOR_STATUS.ERRORED;
|
|
467
|
+
this.emit(constants.CONNECTOR_EVENTS.ERRORED, error);
|
|
468
|
+
return;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
387
471
|
let finalProvider = provider.provider || provider;
|
|
388
|
-
// setup AA provider
|
|
472
|
+
// setup AA provider if AA is enabled
|
|
389
473
|
const {
|
|
390
474
|
accountAbstractionConfig
|
|
391
475
|
} = this.coreOptions;
|
|
392
|
-
const
|
|
476
|
+
const isAaSupportedForCurrentChain = ((_this$currentChain3 = this.currentChain) === null || _this$currentChain3 === void 0 ? void 0 : _this$currentChain3.chainNamespace) === baseControllers.CHAIN_NAMESPACES.EIP155 && (accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.some(chain => {
|
|
393
477
|
var _this$currentChain4;
|
|
394
478
|
return chain.chainId === ((_this$currentChain4 = this.currentChain) === null || _this$currentChain4 === void 0 ? void 0 : _this$currentChain4.chainId);
|
|
395
479
|
}));
|
|
396
|
-
|
|
397
|
-
if (isExternalWalletAndAAEnabled && doesAASupportCurrentChain) {
|
|
480
|
+
if (isAaSupportedForCurrentChain && (data.connector === index$1.WALLET_CONNECTORS.AUTH || this.coreOptions.useAAWithExternalWallet)) {
|
|
398
481
|
var _accountAbstractionCo2;
|
|
399
|
-
const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
|
|
400
482
|
const {
|
|
401
|
-
accountAbstractionProvider
|
|
483
|
+
accountAbstractionProvider,
|
|
484
|
+
toEoaProvider
|
|
402
485
|
} = await Promise.resolve().then(function () { return require('./providers/account-abstraction-provider/index.js'); });
|
|
486
|
+
// for embedded wallets, we use ws-embed provider which is AA provider, need to derive EOA provider
|
|
487
|
+
const eoaProvider = data.connector === index$1.WALLET_CONNECTORS.AUTH ? await toEoaProvider(provider) : provider;
|
|
488
|
+
const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
|
|
403
489
|
const aaProvider = await accountAbstractionProvider({
|
|
404
490
|
accountAbstractionConfig,
|
|
405
|
-
provider,
|
|
491
|
+
provider: eoaProvider,
|
|
406
492
|
chain: this.currentChain,
|
|
407
493
|
chains: this.coreOptions.chains.filter(chain => aaChainIds.has(chain.chainId))
|
|
408
494
|
});
|
|
409
|
-
|
|
495
|
+
this.aaProvider = aaProvider;
|
|
496
|
+
// if external wallet is used and AA is enabled for external wallets, use AA provider
|
|
497
|
+
// for embedded wallets, we use ws-embed provider which already supports AA
|
|
498
|
+
if (data.connector !== index$1.WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
|
|
499
|
+
finalProvider = this.aaProvider;
|
|
500
|
+
}
|
|
410
501
|
}
|
|
411
502
|
this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
|
|
412
|
-
this.
|
|
413
|
-
|
|
503
|
+
this.setState({
|
|
504
|
+
connectedConnectorName: data.connector
|
|
505
|
+
});
|
|
414
506
|
this.cacheWallet(data.connector);
|
|
507
|
+
this.status = constants.CONNECTOR_STATUS.CONNECTED;
|
|
415
508
|
loglevel.log.debug("connected", this.status, this.connectedConnectorName);
|
|
416
509
|
this.connectToPlugins(data);
|
|
417
|
-
this.emit(constants.CONNECTOR_EVENTS.CONNECTED, _objectSpread({}, data)
|
|
510
|
+
this.emit(constants.CONNECTOR_EVENTS.CONNECTED, _objectSpread(_objectSpread({}, data), {}, {
|
|
511
|
+
loginMode: this.loginMode
|
|
512
|
+
}));
|
|
418
513
|
});
|
|
419
514
|
connector.on(constants.CONNECTOR_EVENTS.DISCONNECTED, async () => {
|
|
515
|
+
// re-setup commonJRPCProvider
|
|
516
|
+
this.commonJRPCProvider.removeAllListeners();
|
|
517
|
+
this.setupCommonJRPCProvider();
|
|
420
518
|
// get back to ready state for rehydrating.
|
|
421
519
|
this.status = constants.CONNECTOR_STATUS.READY;
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
this.clearCache();
|
|
426
|
-
}
|
|
520
|
+
const cachedConnector = this.state.cachedConnector;
|
|
521
|
+
if (this.connectedConnectorName === cachedConnector) {
|
|
522
|
+
this.clearCache();
|
|
427
523
|
}
|
|
428
524
|
loglevel.log.debug("disconnected", this.status, this.connectedConnectorName);
|
|
429
525
|
await Promise.all(Object.values(this.plugins).map(async plugin => {
|
|
430
|
-
if (!plugin.SUPPORTED_CONNECTORS.includes(
|
|
526
|
+
if (!plugin.SUPPORTED_CONNECTORS.includes(connector.name)) return;
|
|
431
527
|
if (plugin.status !== IPlugin.PLUGIN_STATUS.CONNECTED) return;
|
|
432
528
|
return plugin.disconnect().catch(error => {
|
|
433
529
|
// swallow error if connector doesn't supports this plugin.
|
|
@@ -438,7 +534,9 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
438
534
|
loglevel.log.error(error);
|
|
439
535
|
});
|
|
440
536
|
}));
|
|
441
|
-
this.
|
|
537
|
+
this.setState({
|
|
538
|
+
connectedConnectorName: null
|
|
539
|
+
});
|
|
442
540
|
this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED);
|
|
443
541
|
});
|
|
444
542
|
connector.on(constants.CONNECTOR_EVENTS.CONNECTING, data => {
|
|
@@ -452,20 +550,25 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
452
550
|
this.emit(constants.CONNECTOR_EVENTS.ERRORED, data);
|
|
453
551
|
loglevel.log.debug("errored", this.status, this.connectedConnectorName);
|
|
454
552
|
});
|
|
553
|
+
connector.on(constants.CONNECTOR_EVENTS.REHYDRATION_ERROR, error => {
|
|
554
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
555
|
+
this.clearCache();
|
|
556
|
+
this.emit(constants.CONNECTOR_EVENTS.REHYDRATION_ERROR, error);
|
|
557
|
+
});
|
|
455
558
|
connector.on(constants.CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data => {
|
|
456
559
|
loglevel.log.debug("connector data updated", data);
|
|
457
560
|
this.emit(constants.CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data);
|
|
458
561
|
});
|
|
459
562
|
connector.on(constants.CONNECTOR_EVENTS.CACHE_CLEAR, data => {
|
|
460
563
|
loglevel.log.debug("connector cache clear", data);
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
564
|
+
this.clearCache();
|
|
565
|
+
});
|
|
566
|
+
connector.on(constants.CONNECTOR_EVENTS.MFA_ENABLED, isMFAEnabled => {
|
|
567
|
+
loglevel.log.debug("mfa enabled", isMFAEnabled);
|
|
568
|
+
this.emit(constants.CONNECTOR_EVENTS.MFA_ENABLED, isMFAEnabled);
|
|
464
569
|
});
|
|
465
570
|
}
|
|
466
571
|
checkInitRequirements() {
|
|
467
|
-
if (this.status === constants.CONNECTOR_STATUS.CONNECTING) throw index.WalletInitializationError.notReady("Already pending connection");
|
|
468
|
-
if (this.status === constants.CONNECTOR_STATUS.CONNECTED) throw index.WalletInitializationError.notReady("Already connected");
|
|
469
572
|
if (this.status === constants.CONNECTOR_STATUS.READY) throw index.WalletInitializationError.notReady("Connector is already initialized");
|
|
470
573
|
}
|
|
471
574
|
/**
|
|
@@ -482,28 +585,24 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
482
585
|
return initialChain;
|
|
483
586
|
}
|
|
484
587
|
cacheWallet(walletName) {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
this.cachedConnector = walletName;
|
|
588
|
+
this.setState({
|
|
589
|
+
cachedConnector: walletName
|
|
590
|
+
});
|
|
489
591
|
}
|
|
490
592
|
setCurrentChain(chainId) {
|
|
491
593
|
if (chainId === this.currentChainId) return;
|
|
492
594
|
const newChain = this.coreOptions.chains.find(chain => chain.chainId === chainId);
|
|
493
595
|
if (!newChain) throw index.WalletInitializationError.invalidParams(`Invalid chainId: ${chainId}`);
|
|
494
|
-
this.
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
cacheCurrentChain(chainId) {
|
|
498
|
-
if (!utils$1.storageAvailable(this.storage)) return;
|
|
499
|
-
window[this.storage].setItem(CURRENT_CHAIN_CACHE_KEY, chainId);
|
|
596
|
+
this.setState({
|
|
597
|
+
currentChainId: chainId
|
|
598
|
+
});
|
|
500
599
|
}
|
|
501
600
|
connectToPlugins(data) {
|
|
502
601
|
Object.values(this.plugins).map(async plugin => {
|
|
503
602
|
try {
|
|
504
603
|
var _this$currentChain5;
|
|
505
604
|
// skip if it's not compatible with the connector
|
|
506
|
-
if (!plugin.SUPPORTED_CONNECTORS.includes(
|
|
605
|
+
if (!plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
|
|
507
606
|
// skip if it's not compatible with the current chain
|
|
508
607
|
if (plugin.pluginNamespace !== IPlugin.PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== ((_this$currentChain5 = this.currentChain) === null || _this$currentChain5 === void 0 ? void 0 : _this$currentChain5.chainNamespace)) return;
|
|
509
608
|
// skip if it's already connected
|
|
@@ -519,6 +618,28 @@ class Web3AuthNoModal extends auth.SafeEventEmitter {
|
|
|
519
618
|
}
|
|
520
619
|
});
|
|
521
620
|
}
|
|
621
|
+
setState(newState) {
|
|
622
|
+
this.state = _objectSpread(_objectSpread({}, this.state), newState);
|
|
623
|
+
this.storage.setItem(constants$1.WEB3AUTH_STATE_STORAGE_KEY, JSON.stringify(this.state));
|
|
624
|
+
}
|
|
625
|
+
loadState(initialState) {
|
|
626
|
+
if (initialState) {
|
|
627
|
+
this.state = initialState;
|
|
628
|
+
return;
|
|
629
|
+
}
|
|
630
|
+
const state = this.storage.getItem(constants$1.WEB3AUTH_STATE_STORAGE_KEY);
|
|
631
|
+
if (!state) return;
|
|
632
|
+
this.state = deserialize.deserialize(state);
|
|
633
|
+
}
|
|
634
|
+
getStorageMethod() {
|
|
635
|
+
if (this.coreOptions.ssr || this.coreOptions.storageType === "cookies") return cookie.cookieStorage({
|
|
636
|
+
expiry: this.coreOptions.sessionTime
|
|
637
|
+
});
|
|
638
|
+
if (this.coreOptions.storageType === "session" && utils$1.storageAvailable("sessionStorage")) return window.sessionStorage;
|
|
639
|
+
if (this.coreOptions.storageType === "local" && utils$1.storageAvailable("localStorage")) return window.localStorage;
|
|
640
|
+
// If no storage is available, use a memory store.
|
|
641
|
+
return new auth.MemoryStore();
|
|
642
|
+
}
|
|
522
643
|
}
|
|
523
644
|
|
|
524
645
|
exports.Web3AuthNoModal = Web3AuthNoModal;
|
|
@@ -4,7 +4,7 @@ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
|
4
4
|
var auth = require('@web3auth/auth');
|
|
5
5
|
require('@toruslabs/base-controllers');
|
|
6
6
|
require('../../base/errors/index.js');
|
|
7
|
-
require('../../base/wallet/index.js');
|
|
7
|
+
var index = require('../../base/wallet/index.js');
|
|
8
8
|
var constants = require('../../base/connector/constants.js');
|
|
9
9
|
require('jwt-decode');
|
|
10
10
|
require('../../base/loglevel.js');
|
|
@@ -19,7 +19,7 @@ class NFTCheckoutPlugin extends auth.SafeEventEmitter {
|
|
|
19
19
|
super();
|
|
20
20
|
_defineProperty(this, "name", IPlugin.EVM_PLUGINS.NFT_CHECKOUT);
|
|
21
21
|
_defineProperty(this, "status", IPlugin.PLUGIN_STATUS.DISCONNECTED);
|
|
22
|
-
_defineProperty(this, "SUPPORTED_CONNECTORS",
|
|
22
|
+
_defineProperty(this, "SUPPORTED_CONNECTORS", Object.values(index.WALLET_CONNECTORS));
|
|
23
23
|
_defineProperty(this, "pluginNamespace", IPlugin.PLUGIN_NAMESPACES.EIP155);
|
|
24
24
|
_defineProperty(this, "web3auth", null);
|
|
25
25
|
_defineProperty(this, "nftCheckoutEmbedInstance", null);
|
|
@@ -20,7 +20,7 @@ class WalletServicesPlugin extends auth.SafeEventEmitter {
|
|
|
20
20
|
super(...args);
|
|
21
21
|
_defineProperty(this, "name", IPlugin.EVM_PLUGINS.WALLET_SERVICES);
|
|
22
22
|
_defineProperty(this, "status", IPlugin.PLUGIN_STATUS.DISCONNECTED);
|
|
23
|
-
_defineProperty(this, "SUPPORTED_CONNECTORS", [index.WALLET_CONNECTORS.AUTH
|
|
23
|
+
_defineProperty(this, "SUPPORTED_CONNECTORS", [index.WALLET_CONNECTORS.AUTH]);
|
|
24
24
|
_defineProperty(this, "pluginNamespace", IPlugin.PLUGIN_NAMESPACES.MULTICHAIN);
|
|
25
25
|
_defineProperty(this, "wsEmbedInstance", void 0);
|
|
26
26
|
_defineProperty(this, "provider", null);
|
|
@@ -6,6 +6,7 @@ var ethereumControllers = require('@toruslabs/ethereum-controllers');
|
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
exports.accountAbstractionProvider = AccountAbstractionProvider.accountAbstractionProvider;
|
|
9
|
+
exports.toEoaProvider = AccountAbstractionProvider.toEoaProvider;
|
|
9
10
|
Object.defineProperty(exports, "BiconomySmartAccount", {
|
|
10
11
|
enumerable: true,
|
|
11
12
|
get: function () { return ethereumControllers.BiconomySmartAccount; }
|
|
@@ -14,6 +15,10 @@ Object.defineProperty(exports, "KernelSmartAccount", {
|
|
|
14
15
|
enumerable: true,
|
|
15
16
|
get: function () { return ethereumControllers.KernelSmartAccount; }
|
|
16
17
|
});
|
|
18
|
+
Object.defineProperty(exports, "MetamaskSmartAccount", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function () { return ethereumControllers.MetamaskSmartAccount; }
|
|
21
|
+
});
|
|
17
22
|
Object.defineProperty(exports, "NexusSmartAccount", {
|
|
18
23
|
enumerable: true,
|
|
19
24
|
get: function () { return ethereumControllers.NexusSmartAccount; }
|
package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js
CHANGED
|
@@ -107,8 +107,16 @@ class AccountAbstractionProvider extends baseProvider.BaseProvider {
|
|
|
107
107
|
chain,
|
|
108
108
|
transport: viem.http(currentChain.rpcTarget)
|
|
109
109
|
});
|
|
110
|
+
const [eoaAddress] = await eoaProvider.request({
|
|
111
|
+
method: ethereumControllers.METHOD_TYPES.ETH_REQUEST_ACCOUNTS
|
|
112
|
+
});
|
|
113
|
+
const walletClient = viem.createWalletClient({
|
|
114
|
+
account: eoaAddress,
|
|
115
|
+
chain,
|
|
116
|
+
transport: viem.custom(eoaProvider)
|
|
117
|
+
});
|
|
110
118
|
this._smartAccount = await this.config.smartAccountInit.getSmartAccount({
|
|
111
|
-
|
|
119
|
+
walletClient,
|
|
112
120
|
client: this._publicClient
|
|
113
121
|
});
|
|
114
122
|
// setup bundler and paymaster
|
|
@@ -137,7 +145,7 @@ class AccountAbstractionProvider extends baseProvider.BaseProvider {
|
|
|
137
145
|
handlers: providerHandlers
|
|
138
146
|
});
|
|
139
147
|
engine.push(aaMiddleware);
|
|
140
|
-
const eoaMiddleware = ethRpcMiddlewares.
|
|
148
|
+
const eoaMiddleware = ethRpcMiddlewares.providerAsMiddleware(eoaProvider);
|
|
141
149
|
engine.push(eoaMiddleware);
|
|
142
150
|
const provider = auth.providerFromEngine(engine);
|
|
143
151
|
this.updateProviderEngineProxy(provider);
|
|
@@ -228,6 +236,14 @@ const accountAbstractionProvider = async ({
|
|
|
228
236
|
smartAccountInit = new TrustSmartAccount(smartAccountConfig);
|
|
229
237
|
break;
|
|
230
238
|
}
|
|
239
|
+
case ethereumControllers.SMART_ACCOUNT.METAMASK:
|
|
240
|
+
{
|
|
241
|
+
const {
|
|
242
|
+
MetamaskSmartAccount
|
|
243
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
244
|
+
smartAccountInit = new MetamaskSmartAccount(smartAccountConfig);
|
|
245
|
+
break;
|
|
246
|
+
}
|
|
231
247
|
default:
|
|
232
248
|
throw new Error("Smart account type not supported");
|
|
233
249
|
}
|
|
@@ -239,9 +255,20 @@ const accountAbstractionProvider = async ({
|
|
|
239
255
|
smartAccountChainsConfig
|
|
240
256
|
});
|
|
241
257
|
};
|
|
258
|
+
const toEoaProvider = async aaProvider => {
|
|
259
|
+
// derive EOA provider from AA provider
|
|
260
|
+
const engine = new auth.JRPCEngine();
|
|
261
|
+
const eoaMiddleware = await ethRpcMiddlewares.createEoaMiddleware({
|
|
262
|
+
aaProvider
|
|
263
|
+
});
|
|
264
|
+
engine.push(eoaMiddleware);
|
|
265
|
+
engine.push(ethRpcMiddlewares.providerAsMiddleware(aaProvider));
|
|
266
|
+
return auth.providerFromEngine(engine);
|
|
267
|
+
};
|
|
242
268
|
|
|
243
269
|
Object.defineProperty(exports, "SMART_ACCOUNT", {
|
|
244
270
|
enumerable: true,
|
|
245
271
|
get: function () { return ethereumControllers.SMART_ACCOUNT; }
|
|
246
272
|
});
|
|
247
273
|
exports.accountAbstractionProvider = accountAbstractionProvider;
|
|
274
|
+
exports.toEoaProvider = toEoaProvider;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
|
+
var ethereumControllers = require('@toruslabs/ethereum-controllers');
|
|
4
5
|
var auth = require('@web3auth/auth');
|
|
5
6
|
|
|
6
7
|
async function createAaMiddleware({
|
|
@@ -8,7 +9,7 @@ async function createAaMiddleware({
|
|
|
8
9
|
handlers
|
|
9
10
|
}) {
|
|
10
11
|
const [eoaAddress] = await eoaProvider.request({
|
|
11
|
-
method:
|
|
12
|
+
method: ethereumControllers.METHOD_TYPES.GET_ACCOUNTS
|
|
12
13
|
});
|
|
13
14
|
/**
|
|
14
15
|
* Validates the keyholder address, and returns a normalized (i.e. lowercase)
|
|
@@ -155,7 +156,27 @@ async function createAaMiddleware({
|
|
|
155
156
|
personal_sign: auth.createAsyncMiddleware(personalSign)
|
|
156
157
|
});
|
|
157
158
|
}
|
|
158
|
-
function
|
|
159
|
+
async function createEoaMiddleware({
|
|
160
|
+
aaProvider
|
|
161
|
+
}) {
|
|
162
|
+
async function getAccounts(_req, res) {
|
|
163
|
+
const [, eoaAddress] = await aaProvider.request({
|
|
164
|
+
method: ethereumControllers.METHOD_TYPES.GET_ACCOUNTS
|
|
165
|
+
});
|
|
166
|
+
res.result = [eoaAddress];
|
|
167
|
+
}
|
|
168
|
+
async function requestAccounts(_req, res) {
|
|
169
|
+
const [, eoaAddress] = await aaProvider.request({
|
|
170
|
+
method: ethereumControllers.METHOD_TYPES.ETH_REQUEST_ACCOUNTS
|
|
171
|
+
});
|
|
172
|
+
res.result = [eoaAddress];
|
|
173
|
+
}
|
|
174
|
+
return auth.createScaffoldMiddleware({
|
|
175
|
+
eth_accounts: auth.createAsyncMiddleware(getAccounts),
|
|
176
|
+
eth_requestAccounts: auth.createAsyncMiddleware(requestAccounts)
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
function providerAsMiddleware(provider) {
|
|
159
180
|
return async (req, res, _next, end) => {
|
|
160
181
|
// send request to provider
|
|
161
182
|
try {
|
|
@@ -169,4 +190,5 @@ function eoaProviderAsMiddleware(provider) {
|
|
|
169
190
|
}
|
|
170
191
|
|
|
171
192
|
exports.createAaMiddleware = createAaMiddleware;
|
|
172
|
-
exports.
|
|
193
|
+
exports.createEoaMiddleware = createEoaMiddleware;
|
|
194
|
+
exports.providerAsMiddleware = providerAsMiddleware;
|
|
@@ -106,6 +106,8 @@ class BaseProvider extends baseControllers.BaseController {
|
|
|
106
106
|
// we want events to propagate from Ethereum provider -> wrapper provider (e.g. CommonJRPC provider) -> SDK -> dapp
|
|
107
107
|
// ensure that only one handler is added for each event
|
|
108
108
|
const reEmitHandler = event => {
|
|
109
|
+
// skip newListener event
|
|
110
|
+
if (event === "newListener") return;
|
|
109
111
|
// listen to the event from the Ethereum provider
|
|
110
112
|
provider.on(event, (...args) => {
|
|
111
113
|
// handle chainChanged event: update chainId state
|