@web3auth/no-modal 10.15.0 → 11.0.0-beta.0
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 +104 -2
- package/dist/lib.cjs/base/connector/connectorStatus.js +2 -0
- package/dist/lib.cjs/base/connector/constants.js +4 -2
- package/dist/lib.cjs/base/connector/utils.js +0 -21
- package/dist/lib.cjs/base/constants.js +4 -0
- package/dist/lib.cjs/base/cookie.js +6 -20
- package/dist/lib.cjs/base/errors/index.js +36 -12
- package/dist/lib.cjs/base/utils.js +10 -11
- package/dist/lib.cjs/base/wallet/index.js +7 -0
- package/dist/lib.cjs/base/wallet/solana.js +83 -0
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +145 -49
- package/dist/lib.cjs/connectors/auth-connector/authSolanaWallet.js +187 -0
- package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +18 -40
- package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +30 -56
- package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +19 -14
- package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +18 -13
- package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +24 -36
- package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +321 -133
- package/dist/lib.cjs/connectors/utils.js +8 -2
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +12 -38
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +4 -3
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +73 -63
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +24 -51
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +144 -0
- package/dist/lib.cjs/index.js +36 -71
- package/dist/lib.cjs/noModal.js +223 -133
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +23 -39
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +12 -10
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +8 -6
- package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +47 -44
- package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +1 -3
- package/dist/lib.cjs/providers/base-provider/baseProvider.js +4 -2
- package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +8 -11
- package/dist/lib.cjs/providers/base-provider/index.js +0 -1
- package/dist/lib.cjs/providers/base-provider/jrpcClient.js +18 -19
- package/dist/lib.cjs/providers/base-provider/utils.js +0 -3
- package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +22 -43
- package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +18 -19
- package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMiddleware.js +200 -0
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +9 -18
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
- package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +19 -26
- package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +46 -37
- package/dist/lib.cjs/react/context/WalletServicesInnerContext.js +2 -69
- package/dist/lib.cjs/react/context/Web3AuthInnerContext.js +6 -161
- package/dist/lib.cjs/react/context/useWalletServicesContextValue.js +76 -0
- package/dist/lib.cjs/react/context/useWeb3AuthInnerContextValue.js +202 -0
- package/dist/lib.cjs/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
- package/dist/lib.cjs/react/hooks/useCheckout.js +4 -2
- package/dist/lib.cjs/react/hooks/useFunding.js +4 -2
- package/dist/lib.cjs/react/hooks/useReceive.js +4 -2
- package/dist/lib.cjs/react/hooks/useSwap.js +4 -2
- package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +4 -2
- package/dist/lib.cjs/react/hooks/useWalletServicesPlugin.js +3 -10
- package/dist/lib.cjs/react/hooks/useWalletUI.js +4 -2
- package/dist/lib.cjs/react/hooks/useWeb3Auth.js +1 -22
- package/dist/lib.cjs/react/hooks/useWeb3AuthInner.js +4 -2
- package/dist/lib.cjs/react/index.js +10 -2
- package/dist/lib.cjs/react/solana/hooks/useSignAndSendTransaction.js +22 -4
- package/dist/lib.cjs/react/solana/hooks/useSignMessage.js +20 -2
- package/dist/lib.cjs/react/solana/hooks/useSignTransaction.js +22 -3
- package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +34 -51
- package/dist/lib.cjs/react/solana/index.js +2 -0
- package/dist/lib.cjs/react/solana/provider.js +167 -0
- package/dist/lib.cjs/react/wagmi/provider.js +10 -8
- package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +21 -5
- package/dist/lib.cjs/types/base/connector/connectorStatus.d.ts +1 -0
- package/dist/lib.cjs/types/base/connector/constants.d.ts +3 -0
- package/dist/lib.cjs/types/base/connector/interfaces.d.ts +23 -12
- package/dist/lib.cjs/types/base/connector/utils.d.ts +0 -3
- package/dist/lib.cjs/types/base/constants.d.ts +1 -0
- package/dist/lib.cjs/types/base/cookie.d.ts +0 -7
- package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +24 -12
- package/dist/lib.cjs/types/base/errors/index.d.ts +2 -3
- package/dist/lib.cjs/types/base/hooks/index.d.ts +2 -2
- package/dist/lib.cjs/types/base/interfaces.d.ts +5 -1
- package/dist/lib.cjs/types/base/utils.d.ts +2 -1
- package/dist/lib.cjs/types/base/wallet/index.d.ts +3 -0
- package/dist/lib.cjs/types/base/wallet/solana.d.ts +19 -0
- package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +11 -6
- package/dist/lib.cjs/types/connectors/auth-connector/authSolanaWallet.d.ts +35 -0
- package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +2 -2
- package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +2 -2
- package/dist/lib.cjs/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +2 -2
- package/dist/lib.cjs/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +10 -7
- package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +35 -3
- package/dist/lib.cjs/types/connectors/utils.d.ts +2 -0
- package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +0 -1
- package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +1 -5
- package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/wcSolanaWallet.d.ts +26 -0
- package/dist/lib.cjs/types/noModal.d.ts +12 -8
- package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +1 -4
- package/dist/lib.cjs/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
- package/dist/lib.cjs/types/providers/base-provider/jrpcClient.d.ts +2 -5
- package/dist/lib.cjs/types/providers/base-provider/utils.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-provider/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/index.d.ts +1 -1
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +2 -5
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMiddleware.d.ts +3 -0
- package/dist/lib.cjs/types/providers/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +0 -1
- package/dist/lib.cjs/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +3 -7
- package/dist/lib.cjs/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +5 -12
- package/dist/lib.cjs/types/react/context/index.d.ts +4 -0
- package/dist/lib.cjs/types/react/context/useWalletServicesContextValue.d.ts +12 -0
- package/dist/lib.cjs/types/react/context/useWeb3AuthInnerContextValue.d.ts +26 -0
- package/dist/lib.cjs/types/react/hooks/index.d.ts +1 -1
- package/dist/lib.cjs/types/react/hooks/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +4 -4
- package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +1 -2
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +2 -2
- package/dist/lib.cjs/types/react/index.d.ts +1 -0
- package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +7 -2
- package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +8 -3
- package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +17 -4
- package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
- package/dist/lib.cjs/types/react/solana/provider.d.ts +26 -0
- package/dist/lib.cjs/types/vue/composables/index.d.ts +2 -1
- package/dist/lib.cjs/types/vue/composables/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +3 -3
- package/dist/lib.cjs/types/vue/composables/useInjectedWeb3AuthInnerContext.d.ts +1 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +1 -2
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +2 -2
- package/dist/lib.cjs/types/vue/index.d.ts +2 -0
- package/dist/lib.cjs/types/vue/interfaces.d.ts +2 -2
- package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +1 -0
- package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +7 -2
- package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +8 -3
- package/dist/lib.cjs/types/vue/solana/composables/useSolanaClient.d.ts +7 -0
- package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +17 -4
- package/dist/lib.cjs/types/vue/solana/constants.d.ts +3 -0
- package/dist/lib.cjs/types/vue/solana/index.d.ts +2 -0
- package/dist/lib.cjs/types/vue/solana/provider.d.ts +8 -0
- package/dist/lib.cjs/types/vue/useWalletServicesInnerContextValue.d.ts +13 -0
- package/dist/lib.cjs/types/vue/useWeb3AuthInnerContextValue.d.ts +26 -0
- package/dist/lib.cjs/types/x402/index.d.ts +43 -0
- package/dist/lib.cjs/types/x402/interfaces.d.ts +11 -0
- package/dist/lib.cjs/types/x402/react.d.ts +17 -0
- package/dist/lib.cjs/types/x402/vue.d.ts +18 -0
- package/dist/lib.cjs/vue/WalletServicesInnerProvider.js +9 -54
- package/dist/lib.cjs/vue/Web3AuthProvider.js +16 -177
- package/dist/lib.cjs/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +10 -8
- package/dist/lib.cjs/vue/composables/useCheckout.js +4 -2
- package/dist/lib.cjs/vue/composables/useEnableMFA.js +4 -2
- package/dist/lib.cjs/vue/composables/useFunding.js +4 -2
- package/dist/lib.cjs/vue/composables/useInjectedWeb3AuthInnerContext.js +29 -0
- package/dist/lib.cjs/vue/composables/useManageMFA.js +4 -2
- package/dist/lib.cjs/vue/composables/useReceive.js +4 -2
- package/dist/lib.cjs/vue/composables/useSwap.js +4 -2
- package/dist/lib.cjs/vue/composables/useSwitchChain.js +4 -2
- package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +4 -2
- package/dist/lib.cjs/vue/composables/useWalletUI.js +4 -2
- package/dist/lib.cjs/vue/composables/useWeb3Auth.js +1 -26
- package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +4 -2
- package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +4 -2
- package/dist/lib.cjs/vue/composables/useWeb3AuthInner.js +2 -20
- package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +4 -2
- package/dist/lib.cjs/vue/index.js +8 -2
- package/dist/lib.cjs/vue/solana/composables/useSignAndSendTransaction.js +6 -3
- package/dist/lib.cjs/vue/solana/composables/useSignMessage.js +6 -3
- package/dist/lib.cjs/vue/solana/composables/useSignTransaction.js +6 -3
- package/dist/lib.cjs/vue/solana/composables/useSolanaClient.js +14 -0
- package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +60 -41
- package/dist/lib.cjs/vue/solana/constants.js +5 -0
- package/dist/lib.cjs/vue/solana/index.js +6 -0
- package/dist/lib.cjs/vue/solana/provider.js +107 -0
- package/dist/lib.cjs/vue/useWalletServicesInnerContextValue.js +75 -0
- package/dist/lib.cjs/vue/useWeb3AuthInnerContextValue.js +217 -0
- package/dist/lib.cjs/vue/wagmi/provider.js +12 -8
- package/dist/lib.cjs/x402/index.js +175 -0
- package/dist/lib.cjs/x402/interfaces.js +5 -0
- package/dist/lib.cjs/x402/react.js +64 -0
- package/dist/lib.cjs/x402/vue.js +58 -0
- package/dist/lib.esm/base/connector/baseConnector.js +104 -2
- package/dist/lib.esm/base/connector/connectorStatus.js +2 -1
- package/dist/lib.esm/base/connector/constants.js +4 -2
- package/dist/lib.esm/base/connector/utils.js +1 -19
- package/dist/lib.esm/base/constants.js +4 -1
- package/dist/lib.esm/base/cookie.js +7 -20
- package/dist/lib.esm/base/errors/index.js +36 -12
- package/dist/lib.esm/base/utils.js +10 -7
- package/dist/lib.esm/base/wallet/index.js +2 -1
- package/dist/lib.esm/base/wallet/solana.js +81 -0
- package/dist/lib.esm/connectors/auth-connector/authConnector.js +143 -50
- package/dist/lib.esm/connectors/auth-connector/authSolanaWallet.js +175 -0
- package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +17 -39
- package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +29 -55
- package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +14 -11
- package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +14 -11
- package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +19 -31
- package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +335 -132
- package/dist/lib.esm/connectors/utils.js +9 -4
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +11 -30
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +1 -1
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +70 -61
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +21 -49
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +130 -0
- package/dist/lib.esm/index.js +9 -17
- package/dist/lib.esm/noModal.js +225 -133
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +18 -37
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +9 -9
- package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +3 -3
- package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +48 -45
- package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +2 -4
- package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +9 -12
- package/dist/lib.esm/providers/base-provider/index.js +1 -1
- package/dist/lib.esm/providers/base-provider/jrpcClient.js +20 -19
- package/dist/lib.esm/providers/base-provider/utils.js +1 -3
- package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +23 -44
- package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +20 -19
- package/dist/lib.esm/providers/ethereum-provider/rpc/walletMiddleware.js +201 -0
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +6 -17
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
- package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +21 -25
- package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +48 -38
- package/dist/lib.esm/react/context/WalletServicesInnerContext.js +3 -57
- package/dist/lib.esm/react/context/Web3AuthInnerContext.js +7 -152
- package/dist/lib.esm/react/context/useWalletServicesContextValue.js +59 -0
- package/dist/lib.esm/react/context/useWeb3AuthInnerContextValue.js +188 -0
- package/dist/lib.esm/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
- package/dist/lib.esm/react/hooks/useWalletServicesPlugin.js +3 -10
- package/dist/lib.esm/react/hooks/useWeb3Auth.js +1 -22
- package/dist/lib.esm/react/index.js +5 -1
- package/dist/lib.esm/react/solana/hooks/useSignAndSendTransaction.js +6 -4
- package/dist/lib.esm/react/solana/hooks/useSignMessage.js +4 -2
- package/dist/lib.esm/react/solana/hooks/useSignTransaction.js +6 -3
- package/dist/lib.esm/react/solana/hooks/useSolanaWallet.js +33 -28
- package/dist/lib.esm/react/solana/index.js +1 -0
- package/dist/lib.esm/react/solana/provider.js +150 -0
- package/dist/lib.esm/react/wagmi/provider.js +7 -7
- package/dist/lib.esm/vue/WalletServicesInnerProvider.js +4 -54
- package/dist/lib.esm/vue/Web3AuthProvider.js +7 -179
- package/dist/lib.esm/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +6 -6
- package/dist/lib.esm/vue/composables/useInjectedWeb3AuthInnerContext.js +11 -0
- package/dist/lib.esm/vue/composables/useWeb3Auth.js +1 -26
- package/dist/lib.esm/vue/composables/useWeb3AuthInner.js +2 -6
- package/dist/lib.esm/vue/index.js +4 -1
- package/dist/lib.esm/vue/solana/composables/useSignAndSendTransaction.js +2 -1
- package/dist/lib.esm/vue/solana/composables/useSignMessage.js +2 -1
- package/dist/lib.esm/vue/solana/composables/useSignTransaction.js +3 -2
- package/dist/lib.esm/vue/solana/composables/useSolanaClient.js +12 -0
- package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +53 -35
- package/dist/lib.esm/vue/solana/constants.js +3 -0
- package/dist/lib.esm/vue/solana/index.js +3 -0
- package/dist/lib.esm/vue/solana/provider.js +95 -0
- package/dist/lib.esm/vue/useWalletServicesInnerContextValue.js +58 -0
- package/dist/lib.esm/vue/useWeb3AuthInnerContextValue.js +204 -0
- package/dist/lib.esm/vue/wagmi/provider.js +9 -7
- package/dist/lib.esm/x402/index.js +170 -0
- package/dist/lib.esm/x402/interfaces.js +3 -0
- package/dist/lib.esm/x402/react.js +59 -0
- package/dist/lib.esm/x402/vue.js +54 -0
- package/package.json +78 -53
- package/dist/lib.cjs/providers/ethereum-mpc-provider/index.js +0 -7
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -224
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -177
- package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -21
- package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +0 -88
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -27
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -383
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -93
- package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +0 -29
- package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +0 -251
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -65
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -45
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/utils.js +0 -16
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -103
- package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +0 -47
- package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -97
- package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +0 -91
- package/dist/lib.cjs/types/connectors/injected-solana-connector/utils.d.ts +0 -3
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +0 -74
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +0 -12
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +0 -3
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +0 -15
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/converter.d.ts +0 -14
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +0 -16
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +0 -28
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +0 -4
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +0 -46
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -11
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/utils.d.ts +0 -5
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +0 -3
- package/dist/lib.cjs/types/providers/solana-provider/index.d.ts +0 -4
- package/dist/lib.cjs/types/providers/solana-provider/interface.d.ts +0 -22
- package/dist/lib.cjs/types/providers/solana-provider/providers/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +0 -16
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +0 -3
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/index.d.ts +0 -2
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +0 -3
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +0 -9
- package/dist/lib.cjs/types/providers/solana-provider/rpc/JrpcClient.d.ts +0 -9
- package/dist/lib.cjs/types/providers/solana-provider/rpc/index.d.ts +0 -3
- package/dist/lib.cjs/types/providers/solana-provider/rpc/interfaces.d.ts +0 -27
- package/dist/lib.cjs/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +0 -20
- package/dist/lib.cjs/types/providers/solana-provider/solanaWallet.d.ts +0 -29
- package/dist/lib.esm/providers/ethereum-mpc-provider/index.js +0 -1
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -206
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -163
- package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -20
- package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +0 -85
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -21
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -378
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -88
- package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +0 -24
- package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +0 -258
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -47
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -43
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/utils.js +0 -14
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -91
- package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +0 -42
- package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -89
- package/dist/lib.esm/providers/solana-provider/solanaWallet.js +0 -92
- package/dist/noModal.umd.min.js +0 -2
- package/dist/noModal.umd.min.js.LICENSE.txt +0 -48
package/dist/lib.esm/noModal.js
CHANGED
|
@@ -2,14 +2,15 @@ import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProper
|
|
|
2
2
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
3
3
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
4
|
import { CHAIN_NAMESPACES, BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@toruslabs/base-controllers';
|
|
5
|
-
import {
|
|
5
|
+
import { SMART_ACCOUNT_EIP_STANDARD, EIP7702_SUPPORTED_SMART_ACCOUNT_TYPES } from '@toruslabs/ethereum-controllers';
|
|
6
|
+
import { SafeEventEmitter, serializeError, UX_MODE, cloneDeep, CookieStorage, LocalStorageAdapter, MemoryStorage } from '@web3auth/auth';
|
|
6
7
|
import deepmerge from 'deepmerge';
|
|
7
|
-
import { cookieStorage } from './base/cookie.js';
|
|
8
8
|
import { deserialize } from './base/deserialize.js';
|
|
9
9
|
import { LOGIN_MODE, SMART_ACCOUNT_WALLET_SCOPE, WEB3AUTH_STATE_STORAGE_KEY } from './base/constants.js';
|
|
10
|
-
import { Analytics, ANALYTICS_INTEGRATION_TYPE, ANALYTICS_SDK_TYPE, ANALYTICS_EVENTS } from './base/analytics.js';
|
|
11
10
|
import { CONNECTOR_STATUS, CONNECTOR_INITIAL_AUTHENTICATION_MODE, CONNECTOR_EVENTS } from './base/connector/constants.js';
|
|
11
|
+
import { Analytics, ANALYTICS_INTEGRATION_TYPE, ANALYTICS_SDK_TYPE, ANALYTICS_EVENTS } from './base/analytics.js';
|
|
12
12
|
import { sdkVersion, fetchProjectConfig, withAbort, getErrorAnalyticsProperties, getCaipChainId, isHexStrict, getHostname, getWhitelabelAnalyticsProperties, getAaAnalyticsProperties, getWalletServicesAnalyticsProperties, isBrowser } from './base/utils.js';
|
|
13
|
+
import { CONNECTED_STATUSES, CAN_LOGOUT_STATUSES, CAN_AUTHORIZE_STATUSES } from './base/connector/connectorStatus.js';
|
|
13
14
|
import { CommonJRPCProvider } from './providers/base-provider/CommonJRPCProvider.js';
|
|
14
15
|
import { authConnector } from './connectors/auth-connector/authConnector.js';
|
|
15
16
|
import { walletServicesPlugin } from './plugins/wallet-services-plugin/plugin.js';
|
|
@@ -19,42 +20,47 @@ import { WalletInitializationError, WalletLoginError } from './base/errors/index
|
|
|
19
20
|
import { log } from './base/loglevel.js';
|
|
20
21
|
import { WALLET_CONNECTORS } from './base/wallet/index.js';
|
|
21
22
|
import { CONNECTOR_NAMESPACES } from './base/chain/IChainInterface.js';
|
|
22
|
-
import { CONNECTED_STATUSES, CAN_AUTHORIZE_STATUSES } from './base/connector/connectorStatus.js';
|
|
23
23
|
import { PLUGIN_STATUS, PLUGIN_NAMESPACES } from './base/plugin/IPlugin.js';
|
|
24
24
|
|
|
25
|
-
const _excluded = ["walletScope"];
|
|
25
|
+
const _excluded = ["walletScope", "eipStandard"];
|
|
26
26
|
class Web3AuthNoModal extends SafeEventEmitter {
|
|
27
27
|
constructor(options, initialState) {
|
|
28
28
|
super();
|
|
29
29
|
_defineProperty(this, "coreOptions", void 0);
|
|
30
30
|
_defineProperty(this, "status", CONNECTOR_STATUS.NOT_READY);
|
|
31
|
+
_defineProperty(this, "loginMode", LOGIN_MODE.NO_MODAL);
|
|
31
32
|
_defineProperty(this, "aaProvider", null);
|
|
32
33
|
_defineProperty(this, "connectors", []);
|
|
33
34
|
_defineProperty(this, "commonJRPCProvider", null);
|
|
34
35
|
_defineProperty(this, "analytics", void 0);
|
|
35
36
|
_defineProperty(this, "plugins", {});
|
|
37
|
+
_defineProperty(this, "consentRequired", false);
|
|
36
38
|
_defineProperty(this, "storage", void 0);
|
|
39
|
+
_defineProperty(this, "currentConnection", null);
|
|
40
|
+
_defineProperty(this, "currentConnectionReconnected", false);
|
|
37
41
|
_defineProperty(this, "state", {
|
|
38
42
|
connectedConnectorName: null,
|
|
39
43
|
cachedConnector: null,
|
|
40
44
|
currentChainId: null,
|
|
41
|
-
idToken: null
|
|
45
|
+
idToken: null,
|
|
46
|
+
accessToken: null,
|
|
47
|
+
refreshToken: null
|
|
42
48
|
});
|
|
43
|
-
_defineProperty(this, "loginMode", LOGIN_MODE.NO_MODAL);
|
|
44
49
|
if (!options.clientId) throw WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
|
|
45
50
|
if (options.enableLogging) log.enableAll();else log.setLevel("error");
|
|
46
|
-
if (!options.
|
|
51
|
+
if (!options.initialAuthenticationMode) options.initialAuthenticationMode = CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN;
|
|
47
52
|
this.coreOptions = options;
|
|
48
53
|
this.storage = this.getStorageMethod();
|
|
49
54
|
this.analytics = new Analytics();
|
|
50
55
|
this.analytics.setGlobalProperties({
|
|
51
56
|
integration_type: ANALYTICS_INTEGRATION_TYPE.NATIVE_SDK
|
|
52
57
|
});
|
|
53
|
-
this.loadState(initialState)
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
+
this.loadState(initialState).then(() => {
|
|
59
|
+
if (this.state.idToken && this.coreOptions.ssr && !this.consentRequired) {
|
|
60
|
+
this.status = this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN ? CONNECTOR_STATUS.AUTHORIZED : CONNECTOR_STATUS.CONNECTED;
|
|
61
|
+
}
|
|
62
|
+
return undefined;
|
|
63
|
+
}).catch(() => {});
|
|
58
64
|
}
|
|
59
65
|
get currentChain() {
|
|
60
66
|
var _this$coreOptions$cha;
|
|
@@ -64,11 +70,8 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
64
70
|
get connected() {
|
|
65
71
|
return Boolean(this.connectedConnector);
|
|
66
72
|
}
|
|
67
|
-
get
|
|
68
|
-
|
|
69
|
-
return this.commonJRPCProvider;
|
|
70
|
-
}
|
|
71
|
-
return null;
|
|
73
|
+
get connection() {
|
|
74
|
+
return this.currentConnection;
|
|
72
75
|
}
|
|
73
76
|
get connectedConnectorName() {
|
|
74
77
|
return this.state.connectedConnectorName;
|
|
@@ -134,7 +137,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
134
137
|
// init config
|
|
135
138
|
this.initAccountAbstractionConfig(projectConfig);
|
|
136
139
|
this.initChainsConfig(projectConfig);
|
|
137
|
-
this.initCachedConnectorAndChainId();
|
|
140
|
+
await this.initCachedConnectorAndChainId();
|
|
138
141
|
this.initUIConfig(projectConfig);
|
|
139
142
|
this.initWalletServicesConfig(projectConfig);
|
|
140
143
|
this.initSessionTimeConfig(projectConfig);
|
|
@@ -202,12 +205,15 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
202
205
|
return true;
|
|
203
206
|
}) || null;
|
|
204
207
|
}
|
|
205
|
-
clearCache() {
|
|
206
|
-
this.setState({
|
|
208
|
+
async clearCache() {
|
|
209
|
+
await this.setState({
|
|
207
210
|
connectedConnectorName: null,
|
|
208
211
|
cachedConnector: null,
|
|
209
212
|
currentChainId: null,
|
|
210
|
-
idToken: null
|
|
213
|
+
idToken: null,
|
|
214
|
+
accessToken: null,
|
|
215
|
+
refreshToken: null,
|
|
216
|
+
hasUserConsent: undefined
|
|
211
217
|
});
|
|
212
218
|
}
|
|
213
219
|
async cleanup() {
|
|
@@ -221,6 +227,12 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
221
227
|
const newChainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
|
|
222
228
|
if (!newChainConfig) throw WalletInitializationError.invalidParams("Invalid chainId");
|
|
223
229
|
if (CONNECTED_STATUSES.includes(this.status) && this.connectedConnector) {
|
|
230
|
+
var _this$currentChain3;
|
|
231
|
+
// Single-namespace connectors cannot cross namespace boundaries — MULTICHAIN connectors
|
|
232
|
+
// (Auth, WC) enforce their own switchChain policy internally.
|
|
233
|
+
if (this.connectedConnector.connectorNamespace !== CONNECTOR_NAMESPACES.MULTICHAIN && ((_this$currentChain3 = this.currentChain) === null || _this$currentChain3 === void 0 ? void 0 : _this$currentChain3.chainNamespace) !== newChainConfig.chainNamespace) {
|
|
234
|
+
throw WalletLoginError.connectionError(`Cannot switch between chain namespaces with ${this.connectedConnector.name}. Disconnect and reconnect with the target chain.`);
|
|
235
|
+
}
|
|
224
236
|
await this.connectedConnector.switchChain(params);
|
|
225
237
|
return;
|
|
226
238
|
}
|
|
@@ -242,7 +254,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
242
254
|
const initialChain = this.getInitialChainIdForConnector(connector);
|
|
243
255
|
const finalLoginParams = _objectSpread(_objectSpread({}, loginParams), {}, {
|
|
244
256
|
chainId: initialChain.chainId,
|
|
245
|
-
|
|
257
|
+
getAuthTokenInfo: this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
|
|
246
258
|
});
|
|
247
259
|
|
|
248
260
|
// track connection started event
|
|
@@ -298,15 +310,12 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
298
310
|
};
|
|
299
311
|
const checkCompletion = async () => {
|
|
300
312
|
// In CONNECT_AND_SIGN mode, wait for both connected event and authorized event
|
|
301
|
-
if (finalLoginParams.
|
|
313
|
+
if (finalLoginParams.getAuthTokenInfo) {
|
|
302
314
|
if (connectedEventCompleted && authorizedEventReceived) {
|
|
303
315
|
await completeConnection();
|
|
304
316
|
}
|
|
305
|
-
} else {
|
|
306
|
-
|
|
307
|
-
if (connectedEventCompleted) {
|
|
308
|
-
await completeConnection();
|
|
309
|
-
}
|
|
317
|
+
} else if (connectedEventCompleted) {
|
|
318
|
+
await completeConnection();
|
|
310
319
|
}
|
|
311
320
|
};
|
|
312
321
|
const completeConnection = async () => {
|
|
@@ -318,7 +327,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
318
327
|
duration: Date.now() - startTime
|
|
319
328
|
}));
|
|
320
329
|
cleanup();
|
|
321
|
-
resolve(this.
|
|
330
|
+
resolve(this.connection);
|
|
322
331
|
} catch (error) {
|
|
323
332
|
cleanup();
|
|
324
333
|
reject(error);
|
|
@@ -341,7 +350,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
341
350
|
reject(err);
|
|
342
351
|
};
|
|
343
352
|
this.once(CONNECTOR_EVENTS.CONNECTED, onConnected);
|
|
344
|
-
if (finalLoginParams.
|
|
353
|
+
if (finalLoginParams.getAuthTokenInfo) {
|
|
345
354
|
this.once(CONNECTOR_EVENTS.AUTHORIZED, onAuthorized);
|
|
346
355
|
}
|
|
347
356
|
this.once(CONNECTOR_EVENTS.ERRORED, onErrored);
|
|
@@ -352,7 +361,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
352
361
|
async logout(options = {
|
|
353
362
|
cleanup: false
|
|
354
363
|
}) {
|
|
355
|
-
if (!
|
|
364
|
+
if (!CAN_LOGOUT_STATUSES.includes(this.status) || !this.connectedConnector) throw WalletLoginError.notConnectedError(`No wallet is connected`);
|
|
356
365
|
if (this.connectedConnector.status === CONNECTOR_STATUS.DISCONNECTING) return;
|
|
357
366
|
await this.connectedConnector.disconnect(options);
|
|
358
367
|
}
|
|
@@ -396,16 +405,18 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
396
405
|
throw error;
|
|
397
406
|
}
|
|
398
407
|
}
|
|
399
|
-
async
|
|
408
|
+
async getAuthTokenInfo() {
|
|
400
409
|
if (!CAN_AUTHORIZE_STATUSES.includes(this.status) || !this.connectedConnector) throw WalletLoginError.notConnectedError(`No wallet is connected`);
|
|
401
410
|
const trackData = {
|
|
402
411
|
connector: this.connectedConnector.name
|
|
403
412
|
};
|
|
404
413
|
try {
|
|
405
414
|
this.analytics.track(ANALYTICS_EVENTS.IDENTITY_TOKEN_STARTED, trackData);
|
|
406
|
-
const
|
|
415
|
+
const authTokenInfo = await this.connectedConnector.getAuthTokenInfo();
|
|
407
416
|
this.analytics.track(ANALYTICS_EVENTS.IDENTITY_TOKEN_COMPLETED, trackData);
|
|
408
|
-
return
|
|
417
|
+
return {
|
|
418
|
+
idToken: authTokenInfo.idToken
|
|
419
|
+
};
|
|
409
420
|
} catch (error) {
|
|
410
421
|
this.analytics.track(ANALYTICS_EVENTS.IDENTITY_TOKEN_FAILED, _objectSpread(_objectSpread({}, trackData), getErrorAnalyticsProperties(error)));
|
|
411
422
|
throw error;
|
|
@@ -418,6 +429,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
418
429
|
this.analytics.setGlobalProperties(properties);
|
|
419
430
|
}
|
|
420
431
|
initChainsConfig(projectConfig) {
|
|
432
|
+
var _this$coreOptions$acc2;
|
|
421
433
|
// merge chains from project config with core options, core options chains will take precedence over project config chains
|
|
422
434
|
const chainMap = new Map();
|
|
423
435
|
const allChains = [...(projectConfig.chains || []), ...(this.coreOptions.chains || [])];
|
|
@@ -453,8 +465,9 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
453
465
|
}
|
|
454
466
|
}
|
|
455
467
|
|
|
456
|
-
// if AA is enabled, filter out chains that are not AA-supported
|
|
457
|
-
|
|
468
|
+
// if AA is enabled and smart account is not 7702, filter out chains that are not AA-supported
|
|
469
|
+
const is7702SmartAccount = ((_this$coreOptions$acc2 = this.coreOptions.accountAbstractionConfig) === null || _this$coreOptions$acc2 === void 0 ? void 0 : _this$coreOptions$acc2.smartAccountEipStandard) === SMART_ACCOUNT_EIP_STANDARD.EIP_7702;
|
|
470
|
+
if (this.coreOptions.accountAbstractionConfig && !is7702SmartAccount) {
|
|
458
471
|
// write a for loop over accountAbstractionConfig.chains and check if the chainId is valid
|
|
459
472
|
if (this.coreOptions.accountAbstractionConfig.chains.length === 0) {
|
|
460
473
|
log.error("Please configure chains for smart accounts on dashboard at https://dashboard.web3auth.io");
|
|
@@ -492,26 +505,39 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
492
505
|
}
|
|
493
506
|
}
|
|
494
507
|
initAccountAbstractionConfig(projectConfig) {
|
|
495
|
-
var _this$coreOptions$
|
|
508
|
+
var _this$coreOptions$acc3;
|
|
496
509
|
const isAAEnabled = Boolean(this.coreOptions.accountAbstractionConfig || (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts));
|
|
497
510
|
if (!isAAEnabled) return;
|
|
498
511
|
|
|
499
512
|
// merge smart account config from project config with core options, core options will take precedence over project config
|
|
500
513
|
const _ref = (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts) || {},
|
|
501
514
|
{
|
|
502
|
-
walletScope
|
|
515
|
+
walletScope,
|
|
516
|
+
eipStandard
|
|
503
517
|
} = _ref,
|
|
504
518
|
configWithoutWalletScope = _objectWithoutProperties(_ref, _excluded);
|
|
505
519
|
const aaChainMap = new Map();
|
|
506
|
-
const allAaChains = [...((configWithoutWalletScope === null || configWithoutWalletScope === void 0 ? void 0 : configWithoutWalletScope.chains) || []), ...(((_this$coreOptions$
|
|
520
|
+
const allAaChains = [...((configWithoutWalletScope === null || configWithoutWalletScope === void 0 ? void 0 : configWithoutWalletScope.chains) || []), ...(((_this$coreOptions$acc3 = this.coreOptions.accountAbstractionConfig) === null || _this$coreOptions$acc3 === void 0 ? void 0 : _this$coreOptions$acc3.chains) || [])];
|
|
507
521
|
for (const chain of allAaChains) {
|
|
508
522
|
const existingChain = aaChainMap.get(chain.chainId);
|
|
509
523
|
if (!existingChain) aaChainMap.set(chain.chainId, chain);else aaChainMap.set(chain.chainId, _objectSpread(_objectSpread({}, existingChain), chain));
|
|
510
524
|
}
|
|
511
|
-
this.coreOptions.accountAbstractionConfig = _objectSpread(_objectSpread({
|
|
525
|
+
this.coreOptions.accountAbstractionConfig = _objectSpread(_objectSpread({
|
|
526
|
+
smartAccountEipStandard: eipStandard
|
|
527
|
+
}, deepmerge(configWithoutWalletScope || {}, this.coreOptions.accountAbstractionConfig || {})), {}, {
|
|
512
528
|
chains: Array.from(aaChainMap.values())
|
|
513
529
|
});
|
|
514
530
|
|
|
531
|
+
// if eipStandard is 7702, validate smart account type
|
|
532
|
+
const {
|
|
533
|
+
smartAccountEipStandard,
|
|
534
|
+
smartAccountType
|
|
535
|
+
} = this.coreOptions.accountAbstractionConfig;
|
|
536
|
+
const is7702SmartAccount = smartAccountEipStandard === SMART_ACCOUNT_EIP_STANDARD.EIP_7702;
|
|
537
|
+
if (is7702SmartAccount && smartAccountType && !EIP7702_SUPPORTED_SMART_ACCOUNT_TYPES.includes(smartAccountType)) {
|
|
538
|
+
throw WalletInitializationError.invalidParams(`Smart account type "${smartAccountType}" does not support EIP-7702. Supported: ${EIP7702_SUPPORTED_SMART_ACCOUNT_TYPES.join(", ")}`);
|
|
539
|
+
}
|
|
540
|
+
|
|
515
541
|
// determine if we should use AA with external wallet
|
|
516
542
|
if (this.coreOptions.useAAWithExternalWallet === undefined) {
|
|
517
543
|
this.coreOptions.useAAWithExternalWallet = walletScope === SMART_ACCOUNT_WALLET_SCOPE.ALL;
|
|
@@ -527,13 +553,13 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
527
553
|
if (this.coreOptions.sessionTime) return;
|
|
528
554
|
if (projectConfig.sessionTime) this.coreOptions.sessionTime = projectConfig.sessionTime;
|
|
529
555
|
}
|
|
530
|
-
initCachedConnectorAndChainId() {
|
|
556
|
+
async initCachedConnectorAndChainId() {
|
|
531
557
|
// init chainId using cached chainId if it exists and is valid, otherwise use the defaultChainId or the first chain
|
|
532
558
|
const cachedChainId = this.state.currentChainId;
|
|
533
559
|
const isCachedChainIdValid = cachedChainId && this.coreOptions.chains.some(chain => chain.chainId === cachedChainId);
|
|
534
560
|
if (this.coreOptions.defaultChainId && !isHexStrict(this.coreOptions.defaultChainId)) throw WalletInitializationError.invalidParams("Please provide a valid defaultChainId in constructor");
|
|
535
561
|
const currentChainId = isCachedChainIdValid ? cachedChainId : this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
|
|
536
|
-
this.setState({
|
|
562
|
+
await this.setState({
|
|
537
563
|
currentChainId
|
|
538
564
|
});
|
|
539
565
|
}
|
|
@@ -593,7 +619,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
593
619
|
default_chain_id: defaultChain ? getCaipChainId(defaultChain) : undefined,
|
|
594
620
|
default_chain_name: defaultChain === null || defaultChain === void 0 ? void 0 : defaultChain.displayName,
|
|
595
621
|
logging_enabled: this.coreOptions.enableLogging,
|
|
596
|
-
|
|
622
|
+
custom_storage: Boolean(this.coreOptions.storage),
|
|
597
623
|
session_time: this.coreOptions.sessionTime,
|
|
598
624
|
sfa_key_enabled: this.coreOptions.useSFAKey,
|
|
599
625
|
mipd_enabled: this.coreOptions.multiInjectedProviderDiscovery,
|
|
@@ -617,7 +643,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
617
643
|
});
|
|
618
644
|
|
|
619
645
|
// sync chainId
|
|
620
|
-
this.commonJRPCProvider.on("chainChanged", chainId => this.setCurrentChain(chainId));
|
|
646
|
+
this.commonJRPCProvider.on("chainChanged", async chainId => this.setCurrentChain(chainId));
|
|
621
647
|
}
|
|
622
648
|
async setupConnector(connector) {
|
|
623
649
|
this.subscribeToConnectorEvents(connector);
|
|
@@ -627,7 +653,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
627
653
|
await connector.init({
|
|
628
654
|
autoConnect,
|
|
629
655
|
chainId: initialChain.chainId,
|
|
630
|
-
|
|
656
|
+
getAuthTokenInfo: this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN
|
|
631
657
|
});
|
|
632
658
|
} catch (e) {
|
|
633
659
|
log.error(e, connector.name);
|
|
@@ -655,7 +681,9 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
655
681
|
if (isBrowser() && chainNamespaces.has(CHAIN_NAMESPACES.EIP155)) {
|
|
656
682
|
// only set headless to true if modal SDK is used, otherwise just use the modal from native Metamask SDK
|
|
657
683
|
connectorFns.push(metaMaskConnector(modalMode ? {
|
|
658
|
-
|
|
684
|
+
ui: {
|
|
685
|
+
headless: true
|
|
686
|
+
}
|
|
659
687
|
} : undefined));
|
|
660
688
|
}
|
|
661
689
|
if (isMipdEnabled && isBrowser()) {
|
|
@@ -734,82 +762,105 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
734
762
|
}
|
|
735
763
|
subscribeToConnectorEvents(connector) {
|
|
736
764
|
connector.on(CONNECTOR_EVENTS.CONNECTED, async data => {
|
|
737
|
-
var _this$currentChain3, _accountAbstractionCo;
|
|
738
765
|
if (!this.commonJRPCProvider) throw WalletInitializationError.notFound(`CommonJrpcProvider not found`);
|
|
739
766
|
const {
|
|
740
|
-
|
|
741
|
-
|
|
767
|
+
ethereumProvider,
|
|
768
|
+
solanaWallet
|
|
742
769
|
} = data;
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
770
|
+
const isSolanaOnly = connector.connectorNamespace === CHAIN_NAMESPACES.SOLANA;
|
|
771
|
+
|
|
772
|
+
// Set connection and consent status SYNCHRONOUSLY before any await so the
|
|
773
|
+
// AUTHORIZED handler (which may fire during async work below) can detect the
|
|
774
|
+
// consent-required state. Create a deferred promise the AUTHORIZED handler
|
|
775
|
+
// will await to ensure consent userId + pre-approval are resolved first.
|
|
776
|
+
this.currentConnection = {
|
|
777
|
+
ethereumProvider: isSolanaOnly ? null : ethereumProvider ? this.commonJRPCProvider : null,
|
|
778
|
+
solanaWallet: solanaWallet !== null && solanaWallet !== void 0 ? solanaWallet : null,
|
|
779
|
+
connectorName: data.connectorName
|
|
780
|
+
};
|
|
781
|
+
this.currentConnectionReconnected = data.reconnected;
|
|
748
782
|
|
|
749
783
|
// when ssr is enabled, we need to get the idToken from the connector.
|
|
750
784
|
if (this.coreOptions.ssr) {
|
|
751
785
|
try {
|
|
752
|
-
|
|
786
|
+
var _data$accessToken, _data$refreshToken;
|
|
787
|
+
const data = await connector.getAuthTokenInfo();
|
|
753
788
|
if (!data.idToken) throw WalletLoginError.connectionError("No idToken found");
|
|
754
|
-
this.setState({
|
|
755
|
-
idToken: data.idToken
|
|
789
|
+
await this.setState({
|
|
790
|
+
idToken: data.idToken,
|
|
791
|
+
accessToken: (_data$accessToken = data.accessToken) !== null && _data$accessToken !== void 0 ? _data$accessToken : null,
|
|
792
|
+
refreshToken: (_data$refreshToken = data.refreshToken) !== null && _data$refreshToken !== void 0 ? _data$refreshToken : null
|
|
756
793
|
});
|
|
757
794
|
} catch (error) {
|
|
758
795
|
log.error(error);
|
|
796
|
+
this.currentConnection = null;
|
|
759
797
|
this.status = CONNECTOR_STATUS.ERRORED;
|
|
760
798
|
this.emit(CONNECTOR_EVENTS.ERRORED, error, this.loginMode);
|
|
761
799
|
return;
|
|
762
800
|
}
|
|
763
801
|
}
|
|
764
|
-
let finalProvider = provider.provider || provider;
|
|
765
802
|
|
|
766
|
-
// setup AA provider if AA is enabled
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
const isAaSupportedForCurrentChain = ((_this$currentChain3 = this.currentChain) === null || _this$currentChain3 === void 0 ? void 0 : _this$currentChain3.chainNamespace) === CHAIN_NAMESPACES.EIP155 && (accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.some(chain => {
|
|
771
|
-
var _this$currentChain4;
|
|
772
|
-
return chain.chainId === ((_this$currentChain4 = this.currentChain) === null || _this$currentChain4 === void 0 ? void 0 : _this$currentChain4.chainId);
|
|
773
|
-
}));
|
|
774
|
-
if (isAaSupportedForCurrentChain && (data.connector === WALLET_CONNECTORS.AUTH || this.coreOptions.useAAWithExternalWallet)) {
|
|
775
|
-
var _accountAbstractionCo2;
|
|
803
|
+
// setup AA provider if AA is enabled (skip for EIP-7702; 7702 uses EOA + 5792/7702 RPC only)
|
|
804
|
+
if (ethereumProvider) {
|
|
805
|
+
var _this$currentChain4, _accountAbstractionCo;
|
|
806
|
+
let finalProvider = (ethereumProvider === null || ethereumProvider === void 0 ? void 0 : ethereumProvider.provider) || ethereumProvider;
|
|
776
807
|
const {
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
808
|
+
accountAbstractionConfig
|
|
809
|
+
} = this.coreOptions;
|
|
810
|
+
const is7702 = (accountAbstractionConfig === null || accountAbstractionConfig === void 0 ? void 0 : accountAbstractionConfig.smartAccountEipStandard) === SMART_ACCOUNT_EIP_STANDARD["EIP_7702"];
|
|
811
|
+
const isAaSupportedForCurrentChain = ((_this$currentChain4 = this.currentChain) === null || _this$currentChain4 === void 0 ? void 0 : _this$currentChain4.chainNamespace) === CHAIN_NAMESPACES.EIP155 && (accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.some(chain => {
|
|
812
|
+
var _this$currentChain5;
|
|
813
|
+
return chain.chainId === ((_this$currentChain5 = this.currentChain) === null || _this$currentChain5 === void 0 ? void 0 : _this$currentChain5.chainId);
|
|
814
|
+
}));
|
|
815
|
+
if (!is7702 && isAaSupportedForCurrentChain && (data.connectorName === WALLET_CONNECTORS.AUTH || this.coreOptions.useAAWithExternalWallet)) {
|
|
816
|
+
var _accountAbstractionCo2;
|
|
817
|
+
const {
|
|
818
|
+
accountAbstractionProvider,
|
|
819
|
+
toEoaProvider
|
|
820
|
+
} = await import('./providers/account-abstraction-provider/index.js');
|
|
821
|
+
// for embedded wallets, we use ws-embed provider which is AA provider, need to derive EOA provider
|
|
822
|
+
const eoaProvider = data.connectorName === WALLET_CONNECTORS.AUTH ? await toEoaProvider(ethereumProvider) : ethereumProvider;
|
|
823
|
+
const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
|
|
824
|
+
const aaProvider = await accountAbstractionProvider({
|
|
825
|
+
accountAbstractionConfig,
|
|
826
|
+
provider: eoaProvider,
|
|
827
|
+
chain: this.currentChain,
|
|
828
|
+
chains: this.coreOptions.chains.filter(chain => aaChainIds.has(chain.chainId)),
|
|
829
|
+
useProviderAsTransport: data.connectorName === WALLET_CONNECTORS.AUTH
|
|
830
|
+
});
|
|
831
|
+
this.aaProvider = aaProvider;
|
|
791
832
|
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
833
|
+
// if external wallet is used and AA is enabled for external wallets, use AA provider
|
|
834
|
+
// for embedded wallets, we use ws-embed provider which already supports AA
|
|
835
|
+
if (data.connectorName !== WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
|
|
836
|
+
finalProvider = this.aaProvider;
|
|
837
|
+
}
|
|
796
838
|
}
|
|
839
|
+
this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
|
|
797
840
|
}
|
|
798
|
-
this.
|
|
799
|
-
|
|
800
|
-
connectedConnectorName: data.connector
|
|
841
|
+
await this.setState({
|
|
842
|
+
connectedConnectorName: data.connectorName
|
|
801
843
|
});
|
|
802
|
-
this.cacheWallet(data.
|
|
803
|
-
this.
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
844
|
+
this.cacheWallet(data.connectorName);
|
|
845
|
+
const isConnectAndSign = this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN;
|
|
846
|
+
if (this.consentRequired && !isConnectAndSign && !this.state.hasUserConsent) {
|
|
847
|
+
this.status = CONNECTOR_STATUS.CONSENT_REQUIRING;
|
|
848
|
+
this.emit(CONNECTOR_EVENTS.CONSENT_REQUIRING);
|
|
849
|
+
log.debug("consent_requiring", this.status, this.connectedConnectorName);
|
|
850
|
+
} else {
|
|
851
|
+
this.status = CONNECTOR_STATUS.CONNECTED;
|
|
852
|
+
log.debug("connected", this.status, this.connectedConnectorName);
|
|
853
|
+
this.connectToPlugins(_objectSpread(_objectSpread({}, data), {}, {
|
|
854
|
+
connector: data.connectorName
|
|
855
|
+
}));
|
|
856
|
+
this.emit(CONNECTOR_EVENTS.CONNECTED, _objectSpread(_objectSpread({}, data), {}, {
|
|
857
|
+
loginMode: this.loginMode
|
|
858
|
+
}));
|
|
859
|
+
}
|
|
811
860
|
});
|
|
812
861
|
connector.on(CONNECTOR_EVENTS.DISCONNECTED, async () => {
|
|
862
|
+
this.currentConnection = null;
|
|
863
|
+
this.currentConnectionReconnected = false;
|
|
813
864
|
// re-setup commonJRPCProvider
|
|
814
865
|
this.commonJRPCProvider.removeAllListeners();
|
|
815
866
|
this.setupCommonJRPCProvider();
|
|
@@ -818,7 +869,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
818
869
|
this.status = CONNECTOR_STATUS.READY;
|
|
819
870
|
const cachedConnector = this.state.cachedConnector;
|
|
820
871
|
if (this.connectedConnectorName === cachedConnector) {
|
|
821
|
-
this.clearCache();
|
|
872
|
+
await this.clearCache();
|
|
822
873
|
}
|
|
823
874
|
log.debug("disconnected", this.status, this.connectedConnectorName);
|
|
824
875
|
await Promise.all(Object.values(this.plugins).map(async plugin => {
|
|
@@ -833,8 +884,9 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
833
884
|
log.error(error);
|
|
834
885
|
});
|
|
835
886
|
}));
|
|
836
|
-
this.setState({
|
|
837
|
-
connectedConnectorName: null
|
|
887
|
+
await this.setState({
|
|
888
|
+
connectedConnectorName: null,
|
|
889
|
+
hasUserConsent: undefined
|
|
838
890
|
});
|
|
839
891
|
this.emit(CONNECTOR_EVENTS.DISCONNECTED);
|
|
840
892
|
});
|
|
@@ -843,24 +895,24 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
843
895
|
this.emit(CONNECTOR_EVENTS.CONNECTING, data);
|
|
844
896
|
log.debug("connecting", this.status, this.connectedConnectorName);
|
|
845
897
|
});
|
|
846
|
-
connector.on(CONNECTOR_EVENTS.ERRORED, data => {
|
|
898
|
+
connector.on(CONNECTOR_EVENTS.ERRORED, async data => {
|
|
847
899
|
this.status = CONNECTOR_STATUS.ERRORED;
|
|
848
|
-
this.clearCache();
|
|
900
|
+
await this.clearCache();
|
|
849
901
|
this.emit(CONNECTOR_EVENTS.ERRORED, data, this.loginMode);
|
|
850
902
|
log.debug("errored", this.status, this.connectedConnectorName);
|
|
851
903
|
});
|
|
852
|
-
connector.on(CONNECTOR_EVENTS.REHYDRATION_ERROR, error => {
|
|
904
|
+
connector.on(CONNECTOR_EVENTS.REHYDRATION_ERROR, async error => {
|
|
853
905
|
this.status = CONNECTOR_STATUS.READY;
|
|
854
|
-
this.clearCache();
|
|
906
|
+
await this.clearCache();
|
|
855
907
|
this.emit(CONNECTOR_EVENTS.REHYDRATION_ERROR, error);
|
|
856
908
|
});
|
|
857
909
|
connector.on(CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data => {
|
|
858
910
|
log.debug("connector data updated", data);
|
|
859
911
|
this.emit(CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data);
|
|
860
912
|
});
|
|
861
|
-
connector.on(CONNECTOR_EVENTS.CACHE_CLEAR, data => {
|
|
913
|
+
connector.on(CONNECTOR_EVENTS.CACHE_CLEAR, async data => {
|
|
862
914
|
log.debug("connector cache clear", data);
|
|
863
|
-
this.clearCache();
|
|
915
|
+
await this.clearCache();
|
|
864
916
|
});
|
|
865
917
|
connector.on(CONNECTOR_EVENTS.MFA_ENABLED, isMFAEnabled => {
|
|
866
918
|
var _authConnector$authIn4;
|
|
@@ -881,22 +933,32 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
881
933
|
this.emit(CONNECTOR_EVENTS.AUTHORIZING, data);
|
|
882
934
|
log.debug("authorizing", this.status, this.connectedConnectorName);
|
|
883
935
|
});
|
|
884
|
-
connector.on(CONNECTOR_EVENTS.AUTHORIZED, data => {
|
|
885
|
-
|
|
886
|
-
this.setState({
|
|
887
|
-
idToken: data.
|
|
936
|
+
connector.on(CONNECTOR_EVENTS.AUTHORIZED, async data => {
|
|
937
|
+
var _data$authTokenInfo$a, _data$authTokenInfo$r;
|
|
938
|
+
await this.setState({
|
|
939
|
+
idToken: data.authTokenInfo.idToken,
|
|
940
|
+
accessToken: (_data$authTokenInfo$a = data.authTokenInfo.accessToken) !== null && _data$authTokenInfo$a !== void 0 ? _data$authTokenInfo$a : null,
|
|
941
|
+
refreshToken: (_data$authTokenInfo$r = data.authTokenInfo.refreshToken) !== null && _data$authTokenInfo$r !== void 0 ? _data$authTokenInfo$r : null
|
|
888
942
|
});
|
|
889
|
-
|
|
890
|
-
|
|
943
|
+
// if the user has not consented yet, we will ask for consent
|
|
944
|
+
if (this.consentRequired && this.currentConnection && !this.state.hasUserConsent) {
|
|
945
|
+
this.status = CONNECTOR_STATUS.CONSENT_REQUIRING;
|
|
946
|
+
this.emit(CONNECTOR_EVENTS.CONSENT_REQUIRING);
|
|
947
|
+
log.debug("consent_requiring", this.status, this.connectedConnectorName);
|
|
948
|
+
} else {
|
|
949
|
+
this.status = CONNECTOR_STATUS.AUTHORIZED;
|
|
950
|
+
this.emit(CONNECTOR_EVENTS.AUTHORIZED, data);
|
|
951
|
+
log.debug("authorized", this.status, this.connectedConnectorName);
|
|
952
|
+
}
|
|
891
953
|
});
|
|
892
954
|
}
|
|
893
955
|
checkInitRequirements() {
|
|
894
956
|
if (this.status === CONNECTOR_STATUS.READY) throw WalletInitializationError.notReady("Connector is already initialized");
|
|
895
957
|
}
|
|
896
958
|
checkIfAutoConnect(connector) {
|
|
897
|
-
var _this$
|
|
959
|
+
var _this$currentChain6;
|
|
898
960
|
let autoConnect = this.cachedConnector === connector.name;
|
|
899
|
-
if (autoConnect && (_this$
|
|
961
|
+
if (autoConnect && (_this$currentChain6 = this.currentChain) !== null && _this$currentChain6 !== void 0 && _this$currentChain6.chainNamespace) {
|
|
900
962
|
if (connector.connectorNamespace === CONNECTOR_NAMESPACES.MULTICHAIN) autoConnect = true;else autoConnect = connector.connectorNamespace === this.currentChain.chainNamespace;
|
|
901
963
|
}
|
|
902
964
|
return autoConnect;
|
|
@@ -915,27 +977,57 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
915
977
|
}
|
|
916
978
|
return initialChain;
|
|
917
979
|
}
|
|
918
|
-
|
|
919
|
-
this.
|
|
980
|
+
async completeConsentAcceptance() {
|
|
981
|
+
const connection = this.currentConnection;
|
|
982
|
+
if (!connection) {
|
|
983
|
+
throw WalletLoginError.connectionError("Cannot accept consent: no active connection");
|
|
984
|
+
}
|
|
985
|
+
if (this.status !== CONNECTOR_STATUS.CONSENT_REQUIRING) {
|
|
986
|
+
throw WalletLoginError.connectionError("Cannot accept consent: not in consent_requiring state");
|
|
987
|
+
}
|
|
988
|
+
await this.setState({
|
|
989
|
+
hasUserConsent: true
|
|
990
|
+
});
|
|
991
|
+
const isConnectAndSign = this.coreOptions.initialAuthenticationMode === CONNECTOR_INITIAL_AUTHENTICATION_MODE.CONNECT_AND_SIGN;
|
|
992
|
+
if (isConnectAndSign && this.state.idToken) {
|
|
993
|
+
this.status = CONNECTOR_STATUS.AUTHORIZED;
|
|
994
|
+
log.debug("consent accepted, authorized", this.status, this.connectedConnectorName);
|
|
995
|
+
} else {
|
|
996
|
+
this.status = CONNECTOR_STATUS.CONNECTED;
|
|
997
|
+
log.debug("consent accepted, connected", this.status, this.connectedConnectorName);
|
|
998
|
+
}
|
|
999
|
+
|
|
1000
|
+
// connect to wallet-service plugin
|
|
1001
|
+
if (this.connectedConnectorName === WALLET_CONNECTORS.AUTH) {
|
|
1002
|
+
this.connectToPlugins({
|
|
1003
|
+
connector: this.connectedConnectorName
|
|
1004
|
+
});
|
|
1005
|
+
}
|
|
1006
|
+
this.emit(CONNECTOR_EVENTS.CONSENT_ACCEPTED, {
|
|
1007
|
+
reconnected: this.currentConnectionReconnected
|
|
1008
|
+
});
|
|
1009
|
+
}
|
|
1010
|
+
async cacheWallet(walletName) {
|
|
1011
|
+
await this.setState({
|
|
920
1012
|
cachedConnector: walletName
|
|
921
1013
|
});
|
|
922
1014
|
}
|
|
923
|
-
setCurrentChain(chainId) {
|
|
1015
|
+
async setCurrentChain(chainId) {
|
|
924
1016
|
if (chainId === this.currentChainId) return;
|
|
925
1017
|
const newChain = this.coreOptions.chains.find(chain => chain.chainId === chainId);
|
|
926
1018
|
if (!newChain) throw WalletInitializationError.invalidParams(`Invalid chainId: ${chainId}`);
|
|
927
|
-
this.setState({
|
|
1019
|
+
await this.setState({
|
|
928
1020
|
currentChainId: chainId
|
|
929
1021
|
});
|
|
930
1022
|
}
|
|
931
1023
|
connectToPlugins(data) {
|
|
932
1024
|
Object.values(this.plugins).map(async plugin => {
|
|
933
1025
|
try {
|
|
934
|
-
var _this$
|
|
1026
|
+
var _this$currentChain7;
|
|
935
1027
|
// skip if it's not compatible with the connector
|
|
936
1028
|
if (!plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
|
|
937
1029
|
// skip if it's not compatible with the current chain
|
|
938
|
-
if (plugin.pluginNamespace !== PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== ((_this$
|
|
1030
|
+
if (plugin.pluginNamespace !== PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== ((_this$currentChain7 = this.currentChain) === null || _this$currentChain7 === void 0 ? void 0 : _this$currentChain7.chainNamespace)) return;
|
|
939
1031
|
// skip if it's already connected
|
|
940
1032
|
if (plugin.status === PLUGIN_STATUS.CONNECTED) return;
|
|
941
1033
|
await plugin.initWithWeb3Auth(this, this.coreOptions.uiConfig, this.analytics);
|
|
@@ -949,27 +1041,27 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
949
1041
|
}
|
|
950
1042
|
});
|
|
951
1043
|
}
|
|
952
|
-
setState(newState) {
|
|
1044
|
+
async setState(newState) {
|
|
953
1045
|
this.state = _objectSpread(_objectSpread({}, this.state), newState);
|
|
954
|
-
this.storage.
|
|
1046
|
+
await this.storage.set(WEB3AUTH_STATE_STORAGE_KEY, JSON.stringify(this.state));
|
|
955
1047
|
}
|
|
956
|
-
loadState(initialState) {
|
|
1048
|
+
async loadState(initialState) {
|
|
957
1049
|
if (initialState) {
|
|
958
|
-
this.state = initialState;
|
|
1050
|
+
this.state = _objectSpread(_objectSpread({}, this.state), initialState);
|
|
959
1051
|
return;
|
|
960
1052
|
}
|
|
961
|
-
const state = this.storage.
|
|
1053
|
+
const state = await this.storage.get(WEB3AUTH_STATE_STORAGE_KEY);
|
|
962
1054
|
if (!state) return;
|
|
963
1055
|
this.state = deserialize(state);
|
|
964
1056
|
}
|
|
965
1057
|
getStorageMethod() {
|
|
966
|
-
|
|
967
|
-
|
|
1058
|
+
var _this$coreOptions$sto;
|
|
1059
|
+
if ((_this$coreOptions$sto = this.coreOptions.storage) !== null && _this$coreOptions$sto !== void 0 && _this$coreOptions$sto.sessionId) return this.coreOptions.storage.sessionId;
|
|
1060
|
+
if (this.coreOptions.ssr) return new CookieStorage({
|
|
1061
|
+
maxAge: this.coreOptions.sessionTime
|
|
968
1062
|
});
|
|
969
|
-
if (
|
|
970
|
-
|
|
971
|
-
// If no storage is available, use a memory store.
|
|
972
|
-
return new MemoryStore();
|
|
1063
|
+
if (storageAvailable("localStorage")) return new LocalStorageAdapter();
|
|
1064
|
+
return new MemoryStorage();
|
|
973
1065
|
}
|
|
974
1066
|
}
|
|
975
1067
|
|