@web3auth/no-modal 10.16.0 → 11.0.0-beta.1
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/account-linking/index.js +8 -0
- package/dist/lib.cjs/account-linking/react.js +95 -0
- package/dist/lib.cjs/account-linking/rest.js +54 -0
- package/dist/lib.cjs/account-linking/vue.js +98 -0
- package/dist/lib.cjs/base/analytics.js +13 -1
- 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 +6 -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 +84 -12
- package/dist/lib.cjs/base/utils.js +22 -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 +566 -93
- package/dist/lib.cjs/connectors/auth-connector/authSolanaWallet.js +187 -0
- package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +55 -58
- package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +57 -66
- 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 +350 -131
- 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 +111 -73
- 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 +55 -83
- package/dist/lib.cjs/noModal.js +957 -169
- 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 +69 -35
- 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 +216 -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/useWallets.js +51 -0
- package/dist/lib.cjs/react/hooks/useWeb3Auth.js +1 -22
- package/dist/lib.cjs/react/hooks/useWeb3AuthConnect.js +2 -2
- package/dist/lib.cjs/react/hooks/useWeb3AuthInner.js +4 -2
- package/dist/lib.cjs/react/index.js +12 -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 +169 -0
- package/dist/lib.cjs/react/wagmi/provider.js +10 -8
- package/dist/lib.cjs/types/account-linking/index.d.ts +2 -0
- package/dist/lib.cjs/types/account-linking/interfaces.d.ts +90 -0
- package/dist/lib.cjs/types/account-linking/react.d.ts +19 -0
- package/dist/lib.cjs/types/account-linking/rest.d.ts +9 -0
- package/dist/lib.cjs/types/account-linking/vue.d.ts +20 -0
- package/dist/lib.cjs/types/base/analytics.d.ts +9 -0
- package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +26 -5
- package/dist/lib.cjs/types/base/connector/connectorStatus.d.ts +1 -0
- package/dist/lib.cjs/types/base/connector/constants.d.ts +5 -0
- package/dist/lib.cjs/types/base/connector/interfaces.d.ts +72 -16
- 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 +57 -13
- package/dist/lib.cjs/types/base/errors/index.d.ts +15 -3
- package/dist/lib.cjs/types/base/hooks/index.d.ts +2 -2
- package/dist/lib.cjs/types/base/interfaces.d.ts +8 -2
- package/dist/lib.cjs/types/base/utils.d.ts +9 -2
- 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 +37 -8
- package/dist/lib.cjs/types/connectors/auth-connector/authSolanaWallet.d.ts +35 -0
- package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +77 -2
- package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +8 -2
- package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +8 -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/index.d.ts +1 -0
- package/dist/lib.cjs/types/noModal.d.ts +113 -10
- 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/baseProvider.d.ts +7 -0
- 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 +2 -1
- package/dist/lib.cjs/types/react/hooks/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +4 -4
- package/dist/lib.cjs/types/react/hooks/useWallets.d.ts +8 -0
- 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 +3 -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/useWallets.d.ts +9 -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/useWallets.js +52 -0
- package/dist/lib.cjs/vue/composables/useWeb3Auth.js +1 -26
- package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +6 -4
- 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 +10 -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 +110 -0
- package/dist/lib.cjs/vue/useWalletServicesInnerContextValue.js +75 -0
- package/dist/lib.cjs/vue/useWeb3AuthInnerContextValue.js +226 -0
- package/dist/lib.cjs/vue/wagmi/provider.js +28 -12
- 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/account-linking/index.js +1 -0
- package/dist/lib.esm/account-linking/react.js +74 -0
- package/dist/lib.esm/account-linking/rest.js +51 -0
- package/dist/lib.esm/account-linking/vue.js +78 -0
- package/dist/lib.esm/base/analytics.js +13 -1
- 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 +6 -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 +84 -13
- package/dist/lib.esm/base/utils.js +22 -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 +527 -57
- package/dist/lib.esm/connectors/auth-connector/authSolanaWallet.js +175 -0
- package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +55 -58
- package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +57 -66
- package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +16 -13
- package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +16 -13
- package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +22 -34
- package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +366 -132
- package/dist/lib.esm/connectors/utils.js +9 -4
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +12 -31
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +1 -1
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +110 -73
- 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 +12 -19
- package/dist/lib.esm/noModal.js +975 -177
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +20 -39
- 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/baseProvider.js +68 -38
- 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 +203 -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/useWallets.js +33 -0
- package/dist/lib.esm/react/hooks/useWeb3Auth.js +1 -22
- package/dist/lib.esm/react/hooks/useWeb3AuthConnect.js +2 -2
- package/dist/lib.esm/react/index.js +6 -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 +153 -0
- package/dist/lib.esm/react/wagmi/provider.js +8 -8
- 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/useCheckout.js +1 -1
- package/dist/lib.esm/vue/composables/useFunding.js +1 -1
- package/dist/lib.esm/vue/composables/useInjectedWeb3AuthInnerContext.js +11 -0
- package/dist/lib.esm/vue/composables/useReceive.js +1 -1
- package/dist/lib.esm/vue/composables/useSwap.js +1 -1
- package/dist/lib.esm/vue/composables/useWalletConnectScanner.js +1 -1
- package/dist/lib.esm/vue/composables/useWalletUI.js +1 -1
- package/dist/lib.esm/vue/composables/useWallets.js +35 -0
- package/dist/lib.esm/vue/composables/useWeb3Auth.js +1 -26
- package/dist/lib.esm/vue/composables/useWeb3AuthConnect.js +2 -2
- package/dist/lib.esm/vue/composables/useWeb3AuthInner.js +2 -6
- package/dist/lib.esm/vue/index.js +5 -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 +99 -0
- package/dist/lib.esm/vue/useWalletServicesInnerContextValue.js +58 -0
- package/dist/lib.esm/vue/useWeb3AuthInnerContextValue.js +213 -0
- package/dist/lib.esm/vue/wagmi/provider.js +26 -12
- 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 +102 -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 -46
|
@@ -2,152 +2,268 @@
|
|
|
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 {
|
|
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
|
+
});
|
|
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();
|
|
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();
|
|
164
|
+
} catch (error) {
|
|
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;
|
|
79
176
|
if (options.autoConnect) {
|
|
80
|
-
this.
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
177
|
+
this.emit(constants.CONNECTOR_EVENTS.CONNECTED, {
|
|
178
|
+
connectorName: index.WALLET_CONNECTORS.METAMASK,
|
|
179
|
+
reconnected: this.rehydrated,
|
|
180
|
+
ethereumProvider: this.evmProvider,
|
|
181
|
+
solanaWallet: this.solanaProvider
|
|
84
182
|
});
|
|
85
|
-
if (
|
|
86
|
-
this.
|
|
87
|
-
throw index$1.WalletLoginError.connectionError("Failed to rehydrate.");
|
|
183
|
+
if (options.getAuthTokenInfo) {
|
|
184
|
+
await this.getAuthTokenInfo();
|
|
88
185
|
}
|
|
89
186
|
}
|
|
90
|
-
}
|
|
91
|
-
this.
|
|
187
|
+
} else if (coreStatus === "loaded" || coreStatus === "disconnected") {
|
|
188
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
189
|
+
this.emit(constants.CONNECTOR_EVENTS.READY, index.WALLET_CONNECTORS.METAMASK);
|
|
190
|
+
} else if (coreStatus === "pending") {
|
|
191
|
+
// 'pending' implies that a transport failed to resume the connection
|
|
192
|
+
// if (options.autoConnect) {
|
|
193
|
+
// this.rehydrated = false;
|
|
194
|
+
// this.emit(CONNECTOR_EVENTS.REHYDRATION_ERROR, new Error("Failed to resume existing MetaMask Connect session.") as Web3AuthError);
|
|
195
|
+
// } else {
|
|
196
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
197
|
+
this.emit(constants.CONNECTOR_EVENTS.READY, index.WALLET_CONNECTORS.METAMASK);
|
|
198
|
+
// }
|
|
199
|
+
} else {
|
|
200
|
+
// Something unexpected happened
|
|
201
|
+
this.status = constants.CONNECTOR_STATUS.ERRORED;
|
|
202
|
+
this.emit(constants.CONNECTOR_EVENTS.ERRORED, new Error("Failed to initialize MetaMask Connect."));
|
|
92
203
|
}
|
|
93
204
|
}
|
|
94
205
|
async connect({
|
|
95
206
|
chainId,
|
|
96
|
-
|
|
207
|
+
getAuthTokenInfo,
|
|
208
|
+
caipAccountIds: caipAccountIdsFromParams
|
|
97
209
|
}) {
|
|
98
210
|
super.checkConnectionRequirements();
|
|
99
|
-
|
|
211
|
+
await this.ensureInitialized();
|
|
100
212
|
const chainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
101
213
|
if (!chainConfig) throw index$1.WalletLoginError.connectionError("Chain config is not available");
|
|
102
|
-
|
|
214
|
+
const scopes = this.coreOptions.chains.map(c => utils.getCaipChainId(c));
|
|
215
|
+
const caipAccountIds = caipAccountIdsFromParams || [];
|
|
103
216
|
// Skip tracking for rehydration since only new connections are tracked
|
|
104
|
-
|
|
105
|
-
const shouldTrack = !this.isInjected && !this.rehydrated;
|
|
217
|
+
const shouldTrack = !this.rehydrated;
|
|
106
218
|
const startTime = Date.now();
|
|
107
219
|
const eventData = {
|
|
108
220
|
connector: this.name,
|
|
109
221
|
connector_type: this.type,
|
|
110
222
|
is_injected: this.isInjected,
|
|
111
|
-
chain_id: utils
|
|
223
|
+
chain_id: utils.getCaipChainId(chainConfig),
|
|
112
224
|
chain_name: chainConfig === null || chainConfig === void 0 ? void 0 : chainConfig.displayName,
|
|
113
225
|
chain_namespace: chainConfig === null || chainConfig === void 0 ? void 0 : chainConfig.chainNamespace
|
|
114
226
|
};
|
|
115
227
|
try {
|
|
116
228
|
if (this.status !== constants.CONNECTOR_STATUS.CONNECTING) {
|
|
117
|
-
var _this$metamaskOptions;
|
|
118
229
|
this.status = constants.CONNECTOR_STATUS.CONNECTING;
|
|
119
230
|
this.emit(constants.CONNECTOR_EVENTS.CONNECTING, {
|
|
120
231
|
connector: index.WALLET_CONNECTORS.METAMASK
|
|
121
232
|
});
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
});
|
|
233
|
+
const evmConnectedPromise = new Promise(resolve => {
|
|
234
|
+
var _this$evmProvider;
|
|
235
|
+
// Wait for EVM provider to be ready
|
|
236
|
+
(_this$evmProvider = this.evmProvider) === null || _this$evmProvider === void 0 || _this$evmProvider.once("connect", () => {
|
|
237
|
+
resolve();
|
|
128
238
|
});
|
|
239
|
+
});
|
|
240
|
+
// Connect using the multichain client
|
|
241
|
+
await this.multichainClient.connect(scopes, caipAccountIds, {
|
|
242
|
+
solana_accountChanged_notifications: true
|
|
243
|
+
});
|
|
244
|
+
// Solana wallet-standard: `standard:events` change is not emitted from multichain
|
|
245
|
+
// connect alone — MetamaskWallet syncs accounts via `standard:connect` → updateSession.
|
|
246
|
+
if (this.solanaProvider) {
|
|
247
|
+
await this.solanaProvider.features[features.StandardConnect].connect();
|
|
248
|
+
}
|
|
249
|
+
// Wait for EVM provider to be ready
|
|
250
|
+
if (this.evmProvider) {
|
|
251
|
+
await evmConnectedPromise;
|
|
129
252
|
}
|
|
130
|
-
await this.metamaskSDK.connect();
|
|
131
253
|
}
|
|
132
|
-
|
|
133
|
-
if (
|
|
134
|
-
//
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
|
|
254
|
+
// // Switch EVM chain if not connected to the right one (Solana chains are handled by the wallet-standard provider)
|
|
255
|
+
// if (chainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {
|
|
256
|
+
// const currentChainId = this.evmClient!.getChainId();
|
|
257
|
+
// if (currentChainId !== chainId) {
|
|
258
|
+
// await this.switchChain(chainConfig, true);
|
|
259
|
+
// }
|
|
260
|
+
// }
|
|
261
|
+
// check if connected
|
|
262
|
+
if (this.multichainClient.status !== "connected") {
|
|
263
|
+
throw index$1.WalletLoginError.notConnectedError("Failed to connect with MetaMask wallet");
|
|
140
264
|
}
|
|
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
265
|
this.status = constants.CONNECTOR_STATUS.CONNECTED;
|
|
150
|
-
//
|
|
266
|
+
// Track connection events
|
|
151
267
|
if (shouldTrack) {
|
|
152
268
|
var _this$analytics, _this$analytics2;
|
|
153
269
|
(_this$analytics = this.analytics) === null || _this$analytics === void 0 || _this$analytics.track(analytics.ANALYTICS_EVENTS.CONNECTION_STARTED, eventData);
|
|
@@ -155,23 +271,26 @@ class MetaMaskConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
155
271
|
duration: Date.now() - startTime
|
|
156
272
|
}));
|
|
157
273
|
}
|
|
158
|
-
let identityTokenInfo;
|
|
159
274
|
this.emit(constants.CONNECTOR_EVENTS.CONNECTED, {
|
|
160
|
-
|
|
275
|
+
connectorName: index.WALLET_CONNECTORS.METAMASK,
|
|
161
276
|
reconnected: this.rehydrated,
|
|
162
|
-
|
|
163
|
-
|
|
277
|
+
ethereumProvider: this.evmProvider,
|
|
278
|
+
solanaWallet: this.solanaProvider
|
|
164
279
|
});
|
|
165
|
-
if (
|
|
166
|
-
|
|
280
|
+
if (getAuthTokenInfo) {
|
|
281
|
+
await this.getAuthTokenInfo();
|
|
167
282
|
}
|
|
168
|
-
return
|
|
283
|
+
return {
|
|
284
|
+
ethereumProvider: this.evmProvider,
|
|
285
|
+
solanaWallet: this.solanaProvider,
|
|
286
|
+
connectorName: this.name
|
|
287
|
+
};
|
|
169
288
|
} catch (error) {
|
|
170
|
-
//
|
|
289
|
+
// Ready again to be connected
|
|
171
290
|
this.status = constants.CONNECTOR_STATUS.READY;
|
|
172
291
|
if (!this.rehydrated) this.emit(constants.CONNECTOR_EVENTS.ERRORED, error);
|
|
173
292
|
this.rehydrated = false;
|
|
174
|
-
//
|
|
293
|
+
// Track connection events
|
|
175
294
|
if (shouldTrack) {
|
|
176
295
|
var _this$analytics3, _this$analytics4;
|
|
177
296
|
(_this$analytics3 = this.analytics) === null || _this$analytics3 === void 0 || _this$analytics3.track(analytics.ANALYTICS_EVENTS.CONNECTION_STARTED, eventData);
|
|
@@ -186,18 +305,61 @@ class MetaMaskConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
186
305
|
async disconnect(options = {
|
|
187
306
|
cleanup: false
|
|
188
307
|
}) {
|
|
189
|
-
if (!this.
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
308
|
+
if (!this.multichainClient) throw index$1.WalletLoginError.connectionError("Multichain client is not available");
|
|
309
|
+
this.checkDisconnectionRequirements();
|
|
310
|
+
await this.clearWalletSession();
|
|
311
|
+
// Disconnect using the multichain client
|
|
312
|
+
await this.multichainClient.disconnect();
|
|
193
313
|
if (options.cleanup) {
|
|
194
314
|
this.status = constants.CONNECTOR_STATUS.NOT_READY;
|
|
195
|
-
this.
|
|
315
|
+
this.initializationPromise = null;
|
|
316
|
+
this.multichainClient = null;
|
|
317
|
+
this.evmClient = null;
|
|
318
|
+
this.evmProvider = null;
|
|
319
|
+
this.solanaClient = null;
|
|
320
|
+
this.solanaProvider = null;
|
|
196
321
|
} else {
|
|
197
|
-
//
|
|
322
|
+
// Ready to be connected again
|
|
198
323
|
this.status = constants.CONNECTOR_STATUS.READY;
|
|
199
324
|
}
|
|
200
|
-
|
|
325
|
+
this.rehydrated = false;
|
|
326
|
+
this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED, {
|
|
327
|
+
connector: index.WALLET_CONNECTORS.METAMASK
|
|
328
|
+
});
|
|
329
|
+
}
|
|
330
|
+
async getAuthTokenInfo() {
|
|
331
|
+
var _this$evmProvider2, _this$coreOptions$cha;
|
|
332
|
+
if (!this.canAuthorize) throw index$1.WalletLoginError.notConnectedError();
|
|
333
|
+
// Determine the active chain: prefer Solana if no EVM provider, otherwise use EVM provider's chain
|
|
334
|
+
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);
|
|
335
|
+
const isSolanaOnly = !this.evmProvider && !!this.solanaProvider;
|
|
336
|
+
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;
|
|
337
|
+
if (!activeChainConfig) throw index$1.WalletLoginError.connectionError("Chain config is not available");
|
|
338
|
+
const {
|
|
339
|
+
chainNamespace
|
|
340
|
+
} = activeChainConfig;
|
|
341
|
+
const accounts = chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA && this.solanaProvider ? this.solanaProvider.accounts.map(a => a.address) : this.evmProvider ? await this.evmProvider.request({
|
|
342
|
+
method: wsEmbed.EVM_METHOD_TYPES.GET_ACCOUNTS
|
|
343
|
+
}) : [];
|
|
344
|
+
if (accounts && accounts.length > 0) {
|
|
345
|
+
const cached = await this.getCachedOrNullAuthTokenInfo(accounts[0]);
|
|
346
|
+
if (cached) return cached;
|
|
347
|
+
}
|
|
348
|
+
this.status = constants.CONNECTOR_STATUS.AUTHORIZING;
|
|
349
|
+
this.emit(constants.CONNECTOR_EVENTS.AUTHORIZING, {
|
|
350
|
+
connector: index.WALLET_CONNECTORS.METAMASK
|
|
351
|
+
});
|
|
352
|
+
const authServer = utils.citadelServerUrl(this.coreOptions.authBuildEnv);
|
|
353
|
+
const {
|
|
354
|
+
challenge,
|
|
355
|
+
signature
|
|
356
|
+
} = await this.generateChallengeAndSign(authServer, accounts);
|
|
357
|
+
return this.verifyAndAuthorize({
|
|
358
|
+
chainNamespace,
|
|
359
|
+
signedMessage: signature,
|
|
360
|
+
challenge,
|
|
361
|
+
authServer
|
|
362
|
+
});
|
|
201
363
|
}
|
|
202
364
|
async getUserInfo() {
|
|
203
365
|
if (!this.canAuthorize) throw index$1.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
@@ -205,24 +367,76 @@ class MetaMaskConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
205
367
|
}
|
|
206
368
|
async switchChain(params, init = false) {
|
|
207
369
|
super.checkSwitchChainRequirements(params, init);
|
|
208
|
-
const
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
370
|
+
const targetChainConfig = this.coreOptions.chains.find(c => c.chainId === params.chainId);
|
|
371
|
+
if ((targetChainConfig === null || targetChainConfig === void 0 ? void 0 : targetChainConfig.chainNamespace) === baseControllers.CHAIN_NAMESPACES.SOLANA) {
|
|
372
|
+
// no need to switch chain for Solana
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
await this.ensureInitialized();
|
|
376
|
+
if (!this.evmClient) {
|
|
377
|
+
throw index$1.WalletLoginError.unsupportedOperation("switchChain requires an EVM client, but no EVM chains are configured.");
|
|
378
|
+
}
|
|
379
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId && [baseControllers.CHAIN_NAMESPACES.EIP155].includes(x.chainNamespace));
|
|
380
|
+
const chainConfiguration = chainConfig ? {
|
|
381
|
+
chainId: params.chainId,
|
|
382
|
+
chainName: chainConfig.displayName,
|
|
383
|
+
rpcUrls: [chainConfig.rpcTarget],
|
|
384
|
+
blockExplorerUrls: chainConfig.blockExplorerUrl ? [chainConfig.blockExplorerUrl] : undefined,
|
|
385
|
+
nativeCurrency: {
|
|
386
|
+
name: chainConfig.tickerName,
|
|
387
|
+
symbol: chainConfig.ticker,
|
|
388
|
+
decimals: chainConfig.decimals || 18
|
|
389
|
+
},
|
|
390
|
+
iconUrls: chainConfig.logo ? [chainConfig.logo] : undefined
|
|
391
|
+
} : undefined;
|
|
392
|
+
await this.evmClient.switchChain({
|
|
393
|
+
chainId: params.chainId,
|
|
394
|
+
chainConfiguration
|
|
213
395
|
});
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
396
|
+
}
|
|
397
|
+
async generateChallengeAndSign(authServerUrl, accounts) {
|
|
398
|
+
var _this$evmProvider3, _this$coreOptions$cha2;
|
|
399
|
+
const evmChainId = ((_this$evmProvider3 = this.evmProvider) === null || _this$evmProvider3 === void 0 ? void 0 : _this$evmProvider3.chainId) || ((_this$coreOptions$cha2 = this.coreOptions.chains.find(x => x.chainNamespace === baseControllers.CHAIN_NAMESPACES.EIP155)) === null || _this$coreOptions$cha2 === void 0 ? void 0 : _this$coreOptions$cha2.chainId);
|
|
400
|
+
const isSolanaOnly = !this.evmProvider && !!this.solanaProvider;
|
|
401
|
+
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;
|
|
402
|
+
if (!activeChainConfig) throw index$1.WalletLoginError.connectionError("Chain config is not available");
|
|
403
|
+
const {
|
|
404
|
+
chainNamespace
|
|
405
|
+
} = activeChainConfig;
|
|
406
|
+
const accountsToUse = accounts || (chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA && this.solanaProvider ? this.solanaProvider.accounts.map(a => a.address) : this.evmProvider ? await this.evmProvider.request({
|
|
407
|
+
method: wsEmbed.EVM_METHOD_TYPES.GET_ACCOUNTS
|
|
408
|
+
}) : []);
|
|
409
|
+
if (!accountsToUse || accountsToUse.length === 0) {
|
|
410
|
+
throw index$1.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
225
411
|
}
|
|
412
|
+
const authServer = authServerUrl || utils.citadelServerUrl(this.coreOptions.authBuildEnv);
|
|
413
|
+
const payload = {
|
|
414
|
+
domain: window.location.origin,
|
|
415
|
+
uri: window.location.href,
|
|
416
|
+
address: accountsToUse[0],
|
|
417
|
+
chainId: parseInt(activeChainConfig.chainId, 16),
|
|
418
|
+
version: "1",
|
|
419
|
+
nonce: siwe.generateSiweNonce(),
|
|
420
|
+
issuedAt: new Date().toISOString()
|
|
421
|
+
};
|
|
422
|
+
const challenge = await baseControllers.signChallenge(payload, chainNamespace, authServer);
|
|
423
|
+
let signedMessage;
|
|
424
|
+
if (chainNamespace === baseControllers.CHAIN_NAMESPACES.SOLANA && this.solanaProvider) {
|
|
425
|
+
signedMessage = await solana.walletSignMessage(this.solanaProvider, challenge, accountsToUse[0]);
|
|
426
|
+
} else if (this.evmProvider) {
|
|
427
|
+
const hexChallenge = metadataHelpers.bytesToHexPrefixedString(metadataHelpers.utf8ToBytes(challenge));
|
|
428
|
+
signedMessage = await this.evmProvider.request({
|
|
429
|
+
method: wsEmbed.EVM_METHOD_TYPES.PERSONAL_SIGN,
|
|
430
|
+
params: [hexChallenge, accountsToUse[0]]
|
|
431
|
+
});
|
|
432
|
+
} else {
|
|
433
|
+
throw index$1.WalletLoginError.notConnectedError("No provider available for signing");
|
|
434
|
+
}
|
|
435
|
+
return {
|
|
436
|
+
challenge,
|
|
437
|
+
signature: signedMessage,
|
|
438
|
+
chainNamespace
|
|
439
|
+
};
|
|
226
440
|
}
|
|
227
441
|
async enableMFA() {
|
|
228
442
|
throw new Error("Method Not implemented");
|
|
@@ -230,25 +444,30 @@ class MetaMaskConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
230
444
|
async manageMFA() {
|
|
231
445
|
throw new Error("Method Not implemented");
|
|
232
446
|
}
|
|
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
|
-
});
|
|
447
|
+
/**
|
|
448
|
+
* Ensures the connector is initialized
|
|
449
|
+
*/
|
|
450
|
+
async ensureInitialized() {
|
|
451
|
+
if (!this.initializationPromise) {
|
|
452
|
+
throw index$1.WalletLoginError.notConnectedError("Connector is not initialized. Call init() first.");
|
|
453
|
+
}
|
|
454
|
+
await this.initializationPromise;
|
|
250
455
|
}
|
|
251
456
|
}
|
|
457
|
+
/**
|
|
458
|
+
* Factory function to create a MetaMask connector
|
|
459
|
+
*
|
|
460
|
+
* @param params - Configuration options for the MetaMask SDK
|
|
461
|
+
* @returns A connector function that creates a MetaMaskConnector instance
|
|
462
|
+
*
|
|
463
|
+
* @example
|
|
464
|
+
* ```typescript
|
|
465
|
+
* const connector = metaMaskConnector({
|
|
466
|
+
* dapp: { name: 'My DApp', url: 'https://mydapp.com' },
|
|
467
|
+
* debug: true,
|
|
468
|
+
* });
|
|
469
|
+
* ```
|
|
470
|
+
*/
|
|
252
471
|
const metaMaskConnector = params => {
|
|
253
472
|
return ({
|
|
254
473
|
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;
|