@web3auth/no-modal 10.14.1 → 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 +13 -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 +40 -47
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +144 -0
- package/dist/lib.cjs/index.js +50 -85
- 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 -35
- 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/interfaces.d.ts +6 -0
- 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/index.js +6 -1
- package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +14 -11
- package/dist/lib.esm/connectors/injected-solana-connector/index.js +3 -2
- 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/index.js +5 -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 +37 -45
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +130 -0
- package/dist/lib.esm/index.js +30 -38
- 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/index.js +5 -1
- 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 +6 -2
- 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 -36
- 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 +5 -2
- 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 -223
- 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 -171
- 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 -177
- 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 -50
|
@@ -2,152 +2,264 @@
|
|
|
2
2
|
|
|
3
3
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
4
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
|
-
var
|
|
5
|
+
var connectEvm = require('@metamask/connect-evm');
|
|
6
|
+
var connectMultichain = require('@metamask/connect-multichain');
|
|
7
|
+
var connectSolana = require('@metamask/connect-solana');
|
|
6
8
|
var baseControllers = require('@toruslabs/base-controllers');
|
|
7
|
-
var
|
|
9
|
+
var metadataHelpers = require('@toruslabs/metadata-helpers');
|
|
10
|
+
var features = require('@wallet-standard/features');
|
|
11
|
+
var wsEmbed = require('@web3auth/ws-embed');
|
|
12
|
+
var siwe = require('viem/siwe');
|
|
8
13
|
var analytics = require('../../base/analytics.js');
|
|
9
14
|
var IChainInterface = require('../../base/chain/IChainInterface.js');
|
|
10
|
-
require('
|
|
11
|
-
var index$1 = require('../../base/errors/index.js');
|
|
12
|
-
var index = require('../../base/wallet/index.js');
|
|
15
|
+
var baseConnector = require('../../base/connector/baseConnector.js');
|
|
13
16
|
require('../../base/connector/connectorStatus.js');
|
|
14
17
|
var constants = require('../../base/connector/constants.js');
|
|
18
|
+
require('@web3auth/auth');
|
|
15
19
|
require('jwt-decode');
|
|
20
|
+
require('../../base/constants.js');
|
|
21
|
+
var index$1 = require('../../base/errors/index.js');
|
|
16
22
|
require('../../base/loglevel.js');
|
|
17
23
|
require('../../base/plugin/errors.js');
|
|
18
24
|
require('../../base/plugin/IPlugin.js');
|
|
19
|
-
var utils
|
|
20
|
-
var
|
|
21
|
-
var utils = require('../utils.js');
|
|
25
|
+
var utils = require('../../base/utils.js');
|
|
26
|
+
var index = require('../../base/wallet/index.js');
|
|
27
|
+
var utils$1 = require('../utils.js');
|
|
28
|
+
var solana = require('../../base/wallet/solana.js');
|
|
22
29
|
|
|
23
|
-
class MetaMaskConnector extends
|
|
30
|
+
class MetaMaskConnector extends baseConnector.BaseConnector {
|
|
24
31
|
constructor(connectorOptions) {
|
|
25
32
|
super(connectorOptions);
|
|
26
|
-
_defineProperty(this, "connectorNamespace", IChainInterface.CONNECTOR_NAMESPACES.
|
|
27
|
-
_defineProperty(this, "currentChainNamespace", baseControllers.CHAIN_NAMESPACES.
|
|
33
|
+
_defineProperty(this, "connectorNamespace", IChainInterface.CONNECTOR_NAMESPACES.MULTICHAIN);
|
|
34
|
+
_defineProperty(this, "currentChainNamespace", baseControllers.CHAIN_NAMESPACES.OTHER);
|
|
28
35
|
_defineProperty(this, "type", constants.CONNECTOR_CATEGORY.EXTERNAL);
|
|
29
36
|
_defineProperty(this, "name", index.WALLET_CONNECTORS.METAMASK);
|
|
30
37
|
_defineProperty(this, "status", constants.CONNECTOR_STATUS.NOT_READY);
|
|
31
|
-
_defineProperty(this, "
|
|
32
|
-
_defineProperty(this, "
|
|
33
|
-
_defineProperty(this, "
|
|
38
|
+
_defineProperty(this, "evmClient", null);
|
|
39
|
+
_defineProperty(this, "evmProvider", null);
|
|
40
|
+
_defineProperty(this, "solanaClient", null);
|
|
41
|
+
_defineProperty(this, "solanaProvider", null);
|
|
42
|
+
_defineProperty(this, "initializationPromise", null);
|
|
43
|
+
_defineProperty(this, "multichainClient", null);
|
|
44
|
+
_defineProperty(this, "connectorSettings", void 0);
|
|
34
45
|
_defineProperty(this, "analytics", void 0);
|
|
35
|
-
this.
|
|
46
|
+
this.connectorSettings = connectorOptions.connectorSettings;
|
|
36
47
|
this.analytics = connectorOptions.analytics;
|
|
37
48
|
}
|
|
38
49
|
get provider() {
|
|
39
|
-
if (this.status !== constants.CONNECTOR_STATUS.NOT_READY && this.
|
|
40
|
-
return this.
|
|
50
|
+
if (this.status !== constants.CONNECTOR_STATUS.NOT_READY && this.evmProvider) {
|
|
51
|
+
return this.evmProvider;
|
|
41
52
|
}
|
|
42
53
|
return null;
|
|
43
54
|
}
|
|
44
|
-
|
|
45
|
-
|
|
55
|
+
get solanaWallet() {
|
|
56
|
+
return this.solanaProvider;
|
|
46
57
|
}
|
|
47
58
|
async init(options) {
|
|
48
|
-
|
|
59
|
+
var _this$connectorSettin, _this$connectorSettin2, _this$connectorSettin3, _this$connectorSettin4, _this$connectorSettin5, _this$connectorSettin6, _this$connectorSettin7, _this$connectorSettin8, _this$connectorSettin9;
|
|
49
60
|
const chainConfig = this.coreOptions.chains.find(x => x.chainId === options.chainId);
|
|
50
61
|
super.checkInitializationRequirements({
|
|
51
62
|
chainConfig
|
|
52
63
|
});
|
|
64
|
+
// Build supported networks in CAIP-2 format for multichain client
|
|
65
|
+
const caipSupportedNetworks = {};
|
|
66
|
+
for (const chain of this.coreOptions.chains) {
|
|
67
|
+
caipSupportedNetworks[utils.getCaipChainId(chain)] = chain.rpcTarget;
|
|
68
|
+
}
|
|
69
|
+
// Build supported networks in hex format for EVM client
|
|
70
|
+
const hexSupportedNetworks = {};
|
|
71
|
+
for (const chain of this.coreOptions.chains) {
|
|
72
|
+
if (chain.chainNamespace === baseControllers.CHAIN_NAMESPACES.EIP155) {
|
|
73
|
+
hexSupportedNetworks[chain.chainId] = chain.rpcTarget;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Build supported networks for Solana client (MetaMask expects mainnet | testnet | devnet keys)
|
|
77
|
+
const solanaSupportedNetworks = {};
|
|
78
|
+
for (const chain of this.coreOptions.chains) {
|
|
79
|
+
if (chain.chainNamespace !== baseControllers.CHAIN_NAMESPACES.SOLANA) continue;
|
|
80
|
+
const solanaChainId = solana.getSolanaChainByChainConfig(chain);
|
|
81
|
+
if (!solanaChainId) continue;
|
|
82
|
+
const networkName = solanaChainId.split(":")[1];
|
|
83
|
+
if (networkName) solanaSupportedNetworks[networkName] = chain.rpcTarget;
|
|
84
|
+
}
|
|
53
85
|
// Detect app metadata
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
86
|
+
const appName = utils$1.getSiteName(window) || ((_this$connectorSettin = this.connectorSettings) === null || _this$connectorSettin === void 0 || (_this$connectorSettin = _this$connectorSettin.dapp) === null || _this$connectorSettin === void 0 ? void 0 : _this$connectorSettin.name) || "web3auth";
|
|
87
|
+
const appUrl = ((_this$connectorSettin2 = this.connectorSettings) === null || _this$connectorSettin2 === void 0 || (_this$connectorSettin2 = _this$connectorSettin2.dapp) === null || _this$connectorSettin2 === void 0 ? void 0 : _this$connectorSettin2.url) || window.location.origin || "https://web3auth.io";
|
|
88
|
+
const appIconUrl = (_this$connectorSettin3 = this.connectorSettings) === null || _this$connectorSettin3 === void 0 || (_this$connectorSettin3 = _this$connectorSettin3.dapp) === null || _this$connectorSettin3 === void 0 ? void 0 : _this$connectorSettin3.iconUrl;
|
|
89
|
+
const dapp = _objectSpread({
|
|
90
|
+
name: appName,
|
|
91
|
+
url: appUrl
|
|
92
|
+
}, appIconUrl && {
|
|
93
|
+
iconUrl: appIconUrl
|
|
94
|
+
});
|
|
95
|
+
const ui = {
|
|
96
|
+
preferExtension: (_this$connectorSettin4 = (_this$connectorSettin5 = this.connectorSettings) === null || _this$connectorSettin5 === void 0 || (_this$connectorSettin5 = _this$connectorSettin5.ui) === null || _this$connectorSettin5 === void 0 ? void 0 : _this$connectorSettin5.preferExtension) !== null && _this$connectorSettin4 !== void 0 ? _this$connectorSettin4 : true,
|
|
97
|
+
showInstallModal: (_this$connectorSettin6 = (_this$connectorSettin7 = this.connectorSettings) === null || _this$connectorSettin7 === void 0 || (_this$connectorSettin7 = _this$connectorSettin7.ui) === null || _this$connectorSettin7 === void 0 ? void 0 : _this$connectorSettin7.showInstallModal) !== null && _this$connectorSettin6 !== void 0 ? _this$connectorSettin6 : false,
|
|
98
|
+
headless: (_this$connectorSettin8 = (_this$connectorSettin9 = this.connectorSettings) === null || _this$connectorSettin9 === void 0 || (_this$connectorSettin9 = _this$connectorSettin9.ui) === null || _this$connectorSettin9 === void 0 ? void 0 : _this$connectorSettin9.headless) !== null && _this$connectorSettin8 !== void 0 ? _this$connectorSettin8 : true
|
|
60
99
|
};
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
100
|
+
let initResolve;
|
|
101
|
+
let initReject;
|
|
102
|
+
this.initializationPromise = new Promise((resolve, reject) => {
|
|
103
|
+
initResolve = resolve;
|
|
104
|
+
initReject = reject;
|
|
64
105
|
});
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
preferDesktop: true
|
|
68
|
-
}));
|
|
69
|
-
// Work around: in case there is an existing SDK instance in memory (window.mmsdk exists), it won't initialize the new SDK instance again
|
|
70
|
-
// and return the existing instance instead of undefined (this is an assumption, not sure if it's a bug or feature of the MetaMask SDK)
|
|
71
|
-
const initResult = await this.metamaskSDK.init();
|
|
72
|
-
if (initResult) {
|
|
73
|
-
this.metamaskSDK = initResult;
|
|
74
|
-
}
|
|
75
|
-
this.isInjected = this.metamaskSDK.isExtensionActive();
|
|
76
|
-
this.status = constants.CONNECTOR_STATUS.READY;
|
|
77
|
-
this.emit(constants.CONNECTOR_EVENTS.READY, index.WALLET_CONNECTORS.METAMASK);
|
|
106
|
+
const hasEvmChains = Object.keys(hexSupportedNetworks).length > 0;
|
|
107
|
+
const hasSolanaChains = Object.keys(solanaSupportedNetworks).length > 0;
|
|
78
108
|
try {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
109
|
+
var _this$connectorSettin0;
|
|
110
|
+
// Initialize the multichain client (singleton) first
|
|
111
|
+
this.multichainClient = await connectMultichain.createMultichainClient({
|
|
112
|
+
dapp,
|
|
113
|
+
api: {
|
|
114
|
+
supportedNetworks: caipSupportedNetworks
|
|
115
|
+
},
|
|
116
|
+
ui,
|
|
117
|
+
debug: (_this$connectorSettin0 = this.connectorSettings) === null || _this$connectorSettin0 === void 0 ? void 0 : _this$connectorSettin0.debug
|
|
118
|
+
});
|
|
119
|
+
// Listen for QR code URI from the multichain client (for mobile wallet connection)
|
|
120
|
+
this.multichainClient.on("display_uri", uri => {
|
|
121
|
+
if (uri) {
|
|
122
|
+
this.updateConnectorData({
|
|
123
|
+
uri
|
|
124
|
+
});
|
|
88
125
|
}
|
|
126
|
+
});
|
|
127
|
+
// Create the EVM client only when EVM chains are configured
|
|
128
|
+
// (createEVMClient requires at least one entry in supportedNetworks)
|
|
129
|
+
if (hasEvmChains) {
|
|
130
|
+
var _this$connectorSettin1;
|
|
131
|
+
this.evmClient = await connectEvm.createEVMClient({
|
|
132
|
+
dapp,
|
|
133
|
+
eventHandlers: {
|
|
134
|
+
accountsChanged: _accounts => {
|
|
135
|
+
if (_accounts.length === 0) {
|
|
136
|
+
this.disconnect();
|
|
137
|
+
}
|
|
138
|
+
},
|
|
139
|
+
chainChanged: _chainId => {},
|
|
140
|
+
connect: _result => {},
|
|
141
|
+
disconnect: () => this.disconnect()
|
|
142
|
+
},
|
|
143
|
+
api: {
|
|
144
|
+
supportedNetworks: hexSupportedNetworks
|
|
145
|
+
},
|
|
146
|
+
ui,
|
|
147
|
+
debug: (_this$connectorSettin1 = this.connectorSettings) === null || _this$connectorSettin1 === void 0 ? void 0 : _this$connectorSettin1.debug
|
|
148
|
+
});
|
|
149
|
+
this.evmProvider = this.evmClient.getProvider();
|
|
89
150
|
}
|
|
151
|
+
// Create the Solana client only when Solana chains are configured
|
|
152
|
+
if (hasSolanaChains) {
|
|
153
|
+
this.solanaClient = await connectSolana.createSolanaClient({
|
|
154
|
+
dapp,
|
|
155
|
+
api: {
|
|
156
|
+
supportedNetworks: solanaSupportedNetworks
|
|
157
|
+
},
|
|
158
|
+
skipAutoRegister: true
|
|
159
|
+
});
|
|
160
|
+
this.solanaProvider = this.solanaClient.getWallet();
|
|
161
|
+
}
|
|
162
|
+
this.isInjected = await connectMultichain.hasExtension();
|
|
163
|
+
initResolve();
|
|
90
164
|
} catch (error) {
|
|
91
|
-
|
|
165
|
+
initReject(index$1.WalletLoginError.connectionError("Failed to initialize MetaMask Connect SDK", error));
|
|
166
|
+
}
|
|
167
|
+
if (!this.multichainClient) {
|
|
168
|
+
this.status = constants.CONNECTOR_STATUS.ERRORED;
|
|
169
|
+
this.emit(constants.CONNECTOR_EVENTS.ERRORED, new Error("Failed to initialize MetaMask Connect."));
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
const coreStatus = this.multichainClient.status;
|
|
173
|
+
if (coreStatus === "connected") {
|
|
174
|
+
this.status = constants.CONNECTOR_STATUS.CONNECTED;
|
|
175
|
+
this.rehydrated = true;
|
|
176
|
+
this.emit(constants.CONNECTOR_EVENTS.CONNECTED, {
|
|
177
|
+
connectorName: index.WALLET_CONNECTORS.METAMASK,
|
|
178
|
+
reconnected: this.rehydrated,
|
|
179
|
+
ethereumProvider: this.evmProvider,
|
|
180
|
+
solanaWallet: this.solanaProvider
|
|
181
|
+
});
|
|
182
|
+
if (options.getAuthTokenInfo) {
|
|
183
|
+
await this.getAuthTokenInfo();
|
|
184
|
+
}
|
|
185
|
+
} else if (coreStatus === "loaded" || coreStatus === "disconnected") {
|
|
186
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
187
|
+
this.emit(constants.CONNECTOR_EVENTS.READY, index.WALLET_CONNECTORS.METAMASK);
|
|
188
|
+
} else if (coreStatus === "pending") {
|
|
189
|
+
// 'pending' implies that a transport failed to resume the connection
|
|
190
|
+
// if (options.autoConnect) {
|
|
191
|
+
// this.rehydrated = false;
|
|
192
|
+
// this.emit(CONNECTOR_EVENTS.REHYDRATION_ERROR, new Error("Failed to resume existing MetaMask Connect session.") as Web3AuthError);
|
|
193
|
+
// } else {
|
|
194
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
195
|
+
this.emit(constants.CONNECTOR_EVENTS.READY, index.WALLET_CONNECTORS.METAMASK);
|
|
196
|
+
// }
|
|
197
|
+
} else {
|
|
198
|
+
// Something unexpected happened
|
|
199
|
+
this.status = constants.CONNECTOR_STATUS.ERRORED;
|
|
200
|
+
this.emit(constants.CONNECTOR_EVENTS.ERRORED, new Error("Failed to initialize MetaMask Connect."));
|
|
92
201
|
}
|
|
93
202
|
}
|
|
94
203
|
async connect({
|
|
95
204
|
chainId,
|
|
96
|
-
|
|
205
|
+
getAuthTokenInfo
|
|
97
206
|
}) {
|
|
98
207
|
super.checkConnectionRequirements();
|
|
99
|
-
|
|
208
|
+
await this.ensureInitialized();
|
|
100
209
|
const chainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
101
210
|
if (!chainConfig) throw index$1.WalletLoginError.connectionError("Chain config is not available");
|
|
102
|
-
|
|
211
|
+
const scopes = this.coreOptions.chains.map(c => utils.getCaipChainId(c));
|
|
103
212
|
// Skip tracking for rehydration since only new connections are tracked
|
|
104
|
-
|
|
105
|
-
const shouldTrack = !this.isInjected && !this.rehydrated;
|
|
213
|
+
const shouldTrack = !this.rehydrated;
|
|
106
214
|
const startTime = Date.now();
|
|
107
215
|
const eventData = {
|
|
108
216
|
connector: this.name,
|
|
109
217
|
connector_type: this.type,
|
|
110
218
|
is_injected: this.isInjected,
|
|
111
|
-
chain_id: utils
|
|
219
|
+
chain_id: utils.getCaipChainId(chainConfig),
|
|
112
220
|
chain_name: chainConfig === null || chainConfig === void 0 ? void 0 : chainConfig.displayName,
|
|
113
221
|
chain_namespace: chainConfig === null || chainConfig === void 0 ? void 0 : chainConfig.chainNamespace
|
|
114
222
|
};
|
|
115
223
|
try {
|
|
116
224
|
if (this.status !== constants.CONNECTOR_STATUS.CONNECTING) {
|
|
117
|
-
var _this$metamaskOptions;
|
|
118
225
|
this.status = constants.CONNECTOR_STATUS.CONNECTING;
|
|
119
226
|
this.emit(constants.CONNECTOR_EVENTS.CONNECTING, {
|
|
120
227
|
connector: index.WALLET_CONNECTORS.METAMASK
|
|
121
228
|
});
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
});
|
|
229
|
+
const evmConnectedPromise = new Promise(resolve => {
|
|
230
|
+
var _this$evmProvider;
|
|
231
|
+
// Wait for EVM provider to be ready
|
|
232
|
+
(_this$evmProvider = this.evmProvider) === null || _this$evmProvider === void 0 || _this$evmProvider.once("connect", () => {
|
|
233
|
+
resolve();
|
|
128
234
|
});
|
|
235
|
+
});
|
|
236
|
+
// Connect using the multichain client
|
|
237
|
+
await this.multichainClient.connect(scopes, [], {
|
|
238
|
+
solana_accountChanged_notifications: true
|
|
239
|
+
});
|
|
240
|
+
// Solana wallet-standard: `standard:events` change is not emitted from multichain
|
|
241
|
+
// connect alone — MetamaskWallet syncs accounts via `standard:connect` → updateSession.
|
|
242
|
+
if (this.solanaProvider) {
|
|
243
|
+
await this.solanaProvider.features[features.StandardConnect].connect();
|
|
244
|
+
}
|
|
245
|
+
// Wait for EVM provider to be ready
|
|
246
|
+
if (this.evmProvider) {
|
|
247
|
+
await evmConnectedPromise;
|
|
129
248
|
}
|
|
130
|
-
await this.metamaskSDK.connect();
|
|
131
249
|
}
|
|
132
|
-
|
|
133
|
-
if (
|
|
134
|
-
//
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
|
|
250
|
+
// // Switch EVM chain if not connected to the right one (Solana chains are handled by the wallet-standard provider)
|
|
251
|
+
// if (chainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {
|
|
252
|
+
// const currentChainId = this.evmClient!.getChainId();
|
|
253
|
+
// if (currentChainId !== chainId) {
|
|
254
|
+
// await this.switchChain(chainConfig, true);
|
|
255
|
+
// }
|
|
256
|
+
// }
|
|
257
|
+
// check if connected
|
|
258
|
+
if (this.multichainClient.status !== "connected") {
|
|
259
|
+
throw index$1.WalletLoginError.notConnectedError("Failed to connect with MetaMask wallet");
|
|
140
260
|
}
|
|
141
|
-
// handle disconnect event
|
|
142
|
-
const accountDisconnectHandler = accounts => {
|
|
143
|
-
if (accounts.length === 0) this.disconnect();
|
|
144
|
-
};
|
|
145
|
-
this.metamaskProvider.on("accountsChanged", accountDisconnectHandler);
|
|
146
|
-
this.metamaskProvider.once("disconnect", () => {
|
|
147
|
-
this.disconnect();
|
|
148
|
-
});
|
|
149
261
|
this.status = constants.CONNECTOR_STATUS.CONNECTED;
|
|
150
|
-
//
|
|
262
|
+
// Track connection events
|
|
151
263
|
if (shouldTrack) {
|
|
152
264
|
var _this$analytics, _this$analytics2;
|
|
153
265
|
(_this$analytics = this.analytics) === null || _this$analytics === void 0 || _this$analytics.track(analytics.ANALYTICS_EVENTS.CONNECTION_STARTED, eventData);
|
|
@@ -155,23 +267,26 @@ class MetaMaskConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
155
267
|
duration: Date.now() - startTime
|
|
156
268
|
}));
|
|
157
269
|
}
|
|
158
|
-
let identityTokenInfo;
|
|
159
270
|
this.emit(constants.CONNECTOR_EVENTS.CONNECTED, {
|
|
160
|
-
|
|
271
|
+
connectorName: index.WALLET_CONNECTORS.METAMASK,
|
|
161
272
|
reconnected: this.rehydrated,
|
|
162
|
-
|
|
163
|
-
|
|
273
|
+
ethereumProvider: this.evmProvider,
|
|
274
|
+
solanaWallet: this.solanaProvider
|
|
164
275
|
});
|
|
165
|
-
if (
|
|
166
|
-
|
|
276
|
+
if (getAuthTokenInfo) {
|
|
277
|
+
await this.getAuthTokenInfo();
|
|
167
278
|
}
|
|
168
|
-
return
|
|
279
|
+
return {
|
|
280
|
+
ethereumProvider: this.evmProvider,
|
|
281
|
+
solanaWallet: this.solanaProvider,
|
|
282
|
+
connectorName: this.name
|
|
283
|
+
};
|
|
169
284
|
} catch (error) {
|
|
170
|
-
//
|
|
285
|
+
// Ready again to be connected
|
|
171
286
|
this.status = constants.CONNECTOR_STATUS.READY;
|
|
172
287
|
if (!this.rehydrated) this.emit(constants.CONNECTOR_EVENTS.ERRORED, error);
|
|
173
288
|
this.rehydrated = false;
|
|
174
|
-
//
|
|
289
|
+
// Track connection events
|
|
175
290
|
if (shouldTrack) {
|
|
176
291
|
var _this$analytics3, _this$analytics4;
|
|
177
292
|
(_this$analytics3 = this.analytics) === null || _this$analytics3 === void 0 || _this$analytics3.track(analytics.ANALYTICS_EVENTS.CONNECTION_STARTED, eventData);
|
|
@@ -186,18 +301,78 @@ class MetaMaskConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
186
301
|
async disconnect(options = {
|
|
187
302
|
cleanup: false
|
|
188
303
|
}) {
|
|
189
|
-
if (!this.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
304
|
+
if (!this.multichainClient) throw index$1.WalletLoginError.connectionError("Multichain client is not available");
|
|
305
|
+
this.checkDisconnectionRequirements();
|
|
306
|
+
await this.clearWalletSession();
|
|
307
|
+
// Disconnect using the multichain client
|
|
308
|
+
await this.multichainClient.disconnect();
|
|
193
309
|
if (options.cleanup) {
|
|
194
310
|
this.status = constants.CONNECTOR_STATUS.NOT_READY;
|
|
195
|
-
this.
|
|
311
|
+
this.initializationPromise = null;
|
|
312
|
+
this.multichainClient = null;
|
|
313
|
+
this.evmClient = null;
|
|
314
|
+
this.evmProvider = null;
|
|
315
|
+
this.solanaClient = null;
|
|
316
|
+
this.solanaProvider = null;
|
|
196
317
|
} else {
|
|
197
|
-
//
|
|
318
|
+
// Ready to be connected again
|
|
198
319
|
this.status = constants.CONNECTOR_STATUS.READY;
|
|
199
320
|
}
|
|
200
|
-
|
|
321
|
+
this.rehydrated = false;
|
|
322
|
+
this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED);
|
|
323
|
+
}
|
|
324
|
+
async getAuthTokenInfo() {
|
|
325
|
+
var _this$evmProvider2, _this$coreOptions$cha;
|
|
326
|
+
if (!this.canAuthorize) throw index$1.WalletLoginError.notConnectedError();
|
|
327
|
+
// Determine the active chain: prefer Solana if no EVM provider, otherwise use EVM provider's chain
|
|
328
|
+
const evmChainId = ((_this$evmProvider2 = this.evmProvider) === null || _this$evmProvider2 === void 0 ? void 0 : _this$evmProvider2.chainId) || ((_this$coreOptions$cha = this.coreOptions.chains.find(x => x.chainNamespace === baseControllers.CHAIN_NAMESPACES.EIP155)) === null || _this$coreOptions$cha === void 0 ? void 0 : _this$coreOptions$cha.chainId);
|
|
329
|
+
const isSolanaOnly = !this.evmProvider && !!this.solanaProvider;
|
|
330
|
+
const activeChainConfig = isSolanaOnly ? this.coreOptions.chains.find(x => x.chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA) : this.evmProvider ? this.coreOptions.chains.find(x => x.chainId === evmChainId) : undefined;
|
|
331
|
+
if (!activeChainConfig) throw index$1.WalletLoginError.connectionError("Chain config is not available");
|
|
332
|
+
this.status = constants.CONNECTOR_STATUS.AUTHORIZING;
|
|
333
|
+
this.emit(constants.CONNECTOR_EVENTS.AUTHORIZING, {
|
|
334
|
+
connector: index.WALLET_CONNECTORS.METAMASK
|
|
335
|
+
});
|
|
336
|
+
const {
|
|
337
|
+
chainNamespace
|
|
338
|
+
} = activeChainConfig;
|
|
339
|
+
const accounts = chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA && this.solanaProvider ? this.solanaProvider.accounts.map(a => a.address) : this.evmProvider ? await this.evmProvider.request({
|
|
340
|
+
method: wsEmbed.EVM_METHOD_TYPES.GET_ACCOUNTS
|
|
341
|
+
}) : [];
|
|
342
|
+
if (accounts && accounts.length > 0) {
|
|
343
|
+
const cached = await this.getCachedOrNullAuthTokenInfo(accounts[0]);
|
|
344
|
+
if (cached) return cached;
|
|
345
|
+
const authServer = utils.citadelServerUrl(this.coreOptions.authBuildEnv);
|
|
346
|
+
const payload = {
|
|
347
|
+
domain: window.location.origin,
|
|
348
|
+
uri: window.location.href,
|
|
349
|
+
address: accounts[0],
|
|
350
|
+
chainId: parseInt(activeChainConfig.chainId, 16),
|
|
351
|
+
version: "1",
|
|
352
|
+
nonce: siwe.generateSiweNonce(),
|
|
353
|
+
issuedAt: new Date().toISOString()
|
|
354
|
+
};
|
|
355
|
+
const challenge = await baseControllers.signChallenge(payload, chainNamespace, authServer);
|
|
356
|
+
let signedMessage;
|
|
357
|
+
if (chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA && this.solanaProvider) {
|
|
358
|
+
signedMessage = await solana.walletSignMessage(this.solanaProvider, challenge, accounts[0]);
|
|
359
|
+
} else if (this.evmProvider) {
|
|
360
|
+
const hexChallenge = metadataHelpers.bytesToHexPrefixedString(metadataHelpers.utf8ToBytes(challenge));
|
|
361
|
+
signedMessage = await this.evmProvider.request({
|
|
362
|
+
method: wsEmbed.EVM_METHOD_TYPES.PERSONAL_SIGN,
|
|
363
|
+
params: [hexChallenge, accounts[0]]
|
|
364
|
+
});
|
|
365
|
+
} else {
|
|
366
|
+
throw index$1.WalletLoginError.notConnectedError("No provider available for signing");
|
|
367
|
+
}
|
|
368
|
+
return this.verifyAndAuthorize({
|
|
369
|
+
chainNamespace,
|
|
370
|
+
signedMessage,
|
|
371
|
+
challenge,
|
|
372
|
+
authServer
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
throw index$1.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
201
376
|
}
|
|
202
377
|
async getUserInfo() {
|
|
203
378
|
if (!this.canAuthorize) throw index$1.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
@@ -205,24 +380,32 @@ class MetaMaskConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
205
380
|
}
|
|
206
381
|
async switchChain(params, init = false) {
|
|
207
382
|
super.checkSwitchChainRequirements(params, init);
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
} catch (error) {
|
|
217
|
-
// If the error code is 4902, the network needs to be added
|
|
218
|
-
if ((error === null || error === void 0 ? void 0 : error.code) === 4902) {
|
|
219
|
-
const chainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId && [baseControllers.CHAIN_NAMESPACES.EIP155].includes(x.chainNamespace));
|
|
220
|
-
await this.addChain(chainConfig);
|
|
221
|
-
await requestSwitchChain();
|
|
222
|
-
} else {
|
|
223
|
-
throw error;
|
|
224
|
-
}
|
|
383
|
+
const targetChainConfig = this.coreOptions.chains.find(c => c.chainId === params.chainId);
|
|
384
|
+
if ((targetChainConfig === null || targetChainConfig === void 0 ? void 0 : targetChainConfig.chainNamespace) === baseControllers.CHAIN_NAMESPACES.SOLANA) {
|
|
385
|
+
// no need to switch chain for Solana
|
|
386
|
+
return;
|
|
387
|
+
}
|
|
388
|
+
await this.ensureInitialized();
|
|
389
|
+
if (!this.evmClient) {
|
|
390
|
+
throw index$1.WalletLoginError.unsupportedOperation("switchChain requires an EVM client, but no EVM chains are configured.");
|
|
225
391
|
}
|
|
392
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId && [baseControllers.CHAIN_NAMESPACES.EIP155].includes(x.chainNamespace));
|
|
393
|
+
const chainConfiguration = chainConfig ? {
|
|
394
|
+
chainId: params.chainId,
|
|
395
|
+
chainName: chainConfig.displayName,
|
|
396
|
+
rpcUrls: [chainConfig.rpcTarget],
|
|
397
|
+
blockExplorerUrls: chainConfig.blockExplorerUrl ? [chainConfig.blockExplorerUrl] : undefined,
|
|
398
|
+
nativeCurrency: {
|
|
399
|
+
name: chainConfig.tickerName,
|
|
400
|
+
symbol: chainConfig.ticker,
|
|
401
|
+
decimals: chainConfig.decimals || 18
|
|
402
|
+
},
|
|
403
|
+
iconUrls: chainConfig.logo ? [chainConfig.logo] : undefined
|
|
404
|
+
} : undefined;
|
|
405
|
+
await this.evmClient.switchChain({
|
|
406
|
+
chainId: params.chainId,
|
|
407
|
+
chainConfiguration
|
|
408
|
+
});
|
|
226
409
|
}
|
|
227
410
|
async enableMFA() {
|
|
228
411
|
throw new Error("Method Not implemented");
|
|
@@ -230,25 +413,30 @@ class MetaMaskConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
230
413
|
async manageMFA() {
|
|
231
414
|
throw new Error("Method Not implemented");
|
|
232
415
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
blockExplorerUrls: [chainConfig.blockExplorerUrl],
|
|
242
|
-
nativeCurrency: {
|
|
243
|
-
name: chainConfig.tickerName,
|
|
244
|
-
symbol: chainConfig.ticker,
|
|
245
|
-
decimals: chainConfig.decimals || 18
|
|
246
|
-
},
|
|
247
|
-
iconUrls: [chainConfig.logo]
|
|
248
|
-
}]
|
|
249
|
-
});
|
|
416
|
+
/**
|
|
417
|
+
* Ensures the connector is initialized
|
|
418
|
+
*/
|
|
419
|
+
async ensureInitialized() {
|
|
420
|
+
if (!this.initializationPromise) {
|
|
421
|
+
throw index$1.WalletLoginError.notConnectedError("Connector is not initialized. Call init() first.");
|
|
422
|
+
}
|
|
423
|
+
await this.initializationPromise;
|
|
250
424
|
}
|
|
251
425
|
}
|
|
426
|
+
/**
|
|
427
|
+
* Factory function to create a MetaMask connector
|
|
428
|
+
*
|
|
429
|
+
* @param params - Configuration options for the MetaMask SDK
|
|
430
|
+
* @returns A connector function that creates a MetaMaskConnector instance
|
|
431
|
+
*
|
|
432
|
+
* @example
|
|
433
|
+
* ```typescript
|
|
434
|
+
* const connector = metaMaskConnector({
|
|
435
|
+
* dapp: { name: 'My DApp', url: 'https://mydapp.com' },
|
|
436
|
+
* debug: true,
|
|
437
|
+
* });
|
|
438
|
+
* ```
|
|
439
|
+
*/
|
|
252
440
|
const metaMaskConnector = params => {
|
|
253
441
|
return ({
|
|
254
442
|
coreOptions,
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var eccrypto = require('@toruslabs/eccrypto');
|
|
4
|
+
var metadataHelpers = require('@toruslabs/metadata-helpers');
|
|
3
5
|
var auth = require('@web3auth/auth');
|
|
4
6
|
|
|
5
7
|
/**
|
|
@@ -61,11 +63,15 @@ async function getSiteIcon(window) {
|
|
|
61
63
|
function parseToken(token) {
|
|
62
64
|
const [header, payload] = token.split(".");
|
|
63
65
|
return {
|
|
64
|
-
header:
|
|
65
|
-
payload:
|
|
66
|
+
header: auth.base64toJSON(header),
|
|
67
|
+
payload: auth.base64toJSON(payload)
|
|
66
68
|
};
|
|
67
69
|
}
|
|
70
|
+
const generateNonce = () => {
|
|
71
|
+
return metadataHelpers.bytesToHexPrefixedString(eccrypto.generatePrivate());
|
|
72
|
+
};
|
|
68
73
|
|
|
74
|
+
exports.generateNonce = generateNonce;
|
|
69
75
|
exports.getSiteIcon = getSiteIcon;
|
|
70
76
|
exports.getSiteName = getSiteName;
|
|
71
77
|
exports.parseToken = parseToken;
|