@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
|
@@ -1,16 +1,14 @@
|
|
|
1
1
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
2
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
3
|
import { getAccountsFromNamespaces, parseAccountId } from '@walletconnect/utils';
|
|
4
|
-
import { providerErrors,
|
|
4
|
+
import { providerErrors, JRPCEngineV2, providerFromEngineV2 } from '@web3auth/auth';
|
|
5
5
|
import { formatChainId } from './utils.js';
|
|
6
|
-
import { switchChain, addChain, getAccounts, getEthProviderHandlers
|
|
7
|
-
import { createEthMiddleware, createEthChainSwitchMiddleware } from '../../providers/ethereum-provider/rpc/ethRpcMiddlewares.js';
|
|
8
|
-
import { createEthJsonRpcClient } from '../../providers/ethereum-provider/rpc/jrpcClient.js';
|
|
9
|
-
import { createSolanaMiddleware } from '../../providers/solana-provider/rpc/solanaRpcMiddlewares.js';
|
|
10
|
-
import { createSolanaJsonRpcClient } from '../../providers/solana-provider/rpc/JrpcClient.js';
|
|
6
|
+
import { switchChain, addChain, getAccounts, getEthProviderHandlers } from './walletConnectV2Utils.js';
|
|
11
7
|
import { BaseProvider } from '../../providers/base-provider/baseProvider.js';
|
|
12
8
|
import { WalletLoginError } from '../../base/errors/index.js';
|
|
13
9
|
import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
|
|
10
|
+
import { createEthMiddleware, createEthChainSwitchMiddleware } from '../../providers/ethereum-provider/rpc/ethRpcMiddlewares.js';
|
|
11
|
+
import { createEthJsonRpcClient } from '../../providers/ethereum-provider/rpc/jrpcClient.js';
|
|
14
12
|
import { log } from '../../base/loglevel.js';
|
|
15
13
|
|
|
16
14
|
var _WalletConnectV2Provider;
|
|
@@ -91,7 +89,11 @@ class WalletConnectV2Provider extends BaseProvider {
|
|
|
91
89
|
if (chain.chainNamespace === CHAIN_NAMESPACES.EIP155) {
|
|
92
90
|
await this.setupEthEngine(connector, chainId);
|
|
93
91
|
} else if (chain.chainNamespace === CHAIN_NAMESPACES.SOLANA) {
|
|
94
|
-
|
|
92
|
+
// Solana operations are handled via WCSolanaWallet directly; only update accounts state.
|
|
93
|
+
const accounts = await getAccounts(connector);
|
|
94
|
+
this.update({
|
|
95
|
+
accounts: accounts || []
|
|
96
|
+
});
|
|
95
97
|
} else {
|
|
96
98
|
throw new Error(`Unsupported chainNamespace: ${chain.chainNamespace}`);
|
|
97
99
|
}
|
|
@@ -116,34 +118,13 @@ class WalletConnectV2Provider extends BaseProvider {
|
|
|
116
118
|
});
|
|
117
119
|
const ethMiddleware = createEthMiddleware(providerHandlers);
|
|
118
120
|
const chainSwitchMiddleware = this.getEthChainSwitchMiddleware();
|
|
119
|
-
const engine = new JRPCEngine();
|
|
120
121
|
const {
|
|
121
122
|
networkMiddleware
|
|
122
123
|
} = createEthJsonRpcClient(chain);
|
|
123
|
-
engine.
|
|
124
|
-
|
|
125
|
-
engine.push(networkMiddleware);
|
|
126
|
-
const provider = providerFromEngine(engine);
|
|
127
|
-
this.updateProviderEngineProxy(provider);
|
|
128
|
-
}
|
|
129
|
-
async setupSolEngine(connector, chainId) {
|
|
130
|
-
const chain = this.getChain(chainId);
|
|
131
|
-
const providerHandlers = getSolProviderHandlers({
|
|
132
|
-
connector,
|
|
133
|
-
chainId
|
|
124
|
+
const engine = JRPCEngineV2.create({
|
|
125
|
+
middleware: [ethMiddleware, chainSwitchMiddleware, networkMiddleware]
|
|
134
126
|
});
|
|
135
|
-
const
|
|
136
|
-
this.update({
|
|
137
|
-
accounts: jrpcRes || []
|
|
138
|
-
});
|
|
139
|
-
const solMiddleware = createSolanaMiddleware(providerHandlers);
|
|
140
|
-
const engine = new JRPCEngine();
|
|
141
|
-
const {
|
|
142
|
-
networkMiddleware
|
|
143
|
-
} = createSolanaJsonRpcClient(chain);
|
|
144
|
-
engine.push(solMiddleware);
|
|
145
|
-
engine.push(networkMiddleware);
|
|
146
|
-
const provider = providerFromEngine(engine);
|
|
127
|
+
const provider = providerFromEngineV2(engine);
|
|
147
128
|
this.updateProviderEngineProxy(provider);
|
|
148
129
|
}
|
|
149
130
|
getEthChainSwitchMiddleware() {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { getSiteIcon, getSiteName } from '../utils.js';
|
|
2
|
-
import { SOLANA_CAIP_CHAIN_MAP } from '../../base/constants.js';
|
|
3
2
|
import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
|
|
3
|
+
import { SOLANA_CAIP_CHAIN_MAP } from '../../base/constants.js';
|
|
4
4
|
|
|
5
5
|
let DEFAULT_EIP155_METHODS = /*#__PURE__*/function (DEFAULT_EIP155_METHODS) {
|
|
6
6
|
DEFAULT_EIP155_METHODS["ETH_SEND_TRANSACTION"] = "eth_sendTransaction";
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
2
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
-
import { CHAIN_NAMESPACES, getErrorAnalyticsProperties, signChallenge
|
|
3
|
+
import { CHAIN_NAMESPACES, getErrorAnalyticsProperties, signChallenge } from '@toruslabs/base-controllers';
|
|
4
4
|
import Client from '@walletconnect/sign-client';
|
|
5
5
|
import { isValidArray, getSdkError } from '@walletconnect/utils';
|
|
6
|
-
import { EVM_METHOD_TYPES
|
|
6
|
+
import { EVM_METHOD_TYPES } from '@web3auth/ws-embed';
|
|
7
7
|
import deepmerge from 'deepmerge';
|
|
8
|
+
import { generateSiweNonce } from 'viem/siwe';
|
|
8
9
|
import { getWalletConnectV2Settings } from './config.js';
|
|
9
10
|
import { WalletConnectV2Provider } from './WalletConnectV2Provider.js';
|
|
10
|
-
import {
|
|
11
|
+
import { WCSolanaWallet } from './wcSolanaWallet.js';
|
|
11
12
|
import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
|
|
12
13
|
import { CONNECTOR_NAMESPACES } from '../../base/chain/IChainInterface.js';
|
|
13
|
-
import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
|
|
14
14
|
import { WalletInitializationError, WalletLoginError, Web3AuthError } from '../../base/errors/index.js';
|
|
15
15
|
import { log } from '../../base/loglevel.js';
|
|
16
|
-
import { getCaipChainId } from '../../base/utils.js';
|
|
16
|
+
import { getCaipChainId, citadelServerUrl } from '../../base/utils.js';
|
|
17
17
|
import { ANALYTICS_EVENTS } from '../../base/analytics.js';
|
|
18
|
-
import {
|
|
18
|
+
import { SOLANA_CAIP_CHAIN_MAP } from '../../base/constants.js';
|
|
19
|
+
import { BaseConnector } from '../../base/connector/baseConnector.js';
|
|
20
|
+
import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
|
|
21
|
+
import { walletSignMessage } from '../../base/wallet/solana.js';
|
|
19
22
|
|
|
20
23
|
class WalletConnectV2Connector extends BaseConnector {
|
|
21
24
|
constructor(options) {
|
|
@@ -33,6 +36,7 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
33
36
|
_defineProperty(this, "connector", null);
|
|
34
37
|
_defineProperty(this, "activeSession", null);
|
|
35
38
|
_defineProperty(this, "wcProvider", null);
|
|
39
|
+
_defineProperty(this, "_solanaWallet", null);
|
|
36
40
|
_defineProperty(this, "analytics", void 0);
|
|
37
41
|
this.connectorOptions = _objectSpread({}, options);
|
|
38
42
|
const {
|
|
@@ -60,6 +64,9 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
60
64
|
}
|
|
61
65
|
return null;
|
|
62
66
|
}
|
|
67
|
+
get solanaWallet() {
|
|
68
|
+
return this._solanaWallet;
|
|
69
|
+
}
|
|
63
70
|
set provider(_) {
|
|
64
71
|
throw new Error("Not implemented");
|
|
65
72
|
}
|
|
@@ -100,7 +107,7 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
100
107
|
try {
|
|
101
108
|
await this.onConnectHandler({
|
|
102
109
|
chain: chainConfig,
|
|
103
|
-
|
|
110
|
+
getAuthTokenInfo: options.getAuthTokenInfo
|
|
104
111
|
});
|
|
105
112
|
} catch (error) {
|
|
106
113
|
log.error("wallet auto connect", error);
|
|
@@ -114,7 +121,7 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
114
121
|
}
|
|
115
122
|
async connect({
|
|
116
123
|
chainId,
|
|
117
|
-
|
|
124
|
+
getAuthTokenInfo
|
|
118
125
|
}) {
|
|
119
126
|
super.checkConnectionRequirements();
|
|
120
127
|
const chainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
@@ -167,18 +174,26 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
167
174
|
if (this.connected) {
|
|
168
175
|
await this.onConnectHandler({
|
|
169
176
|
chain: chainConfig,
|
|
170
|
-
|
|
177
|
+
getAuthTokenInfo
|
|
171
178
|
});
|
|
172
|
-
return
|
|
179
|
+
return {
|
|
180
|
+
ethereumProvider: this.provider,
|
|
181
|
+
solanaWallet: this._solanaWallet,
|
|
182
|
+
connectorName: this.name
|
|
183
|
+
};
|
|
173
184
|
}
|
|
174
185
|
if (this.status !== CONNECTOR_STATUS.CONNECTING) {
|
|
175
186
|
await this.createNewSession({
|
|
176
187
|
chainConfig,
|
|
177
188
|
trackCompletionEvents,
|
|
178
|
-
|
|
189
|
+
getAuthTokenInfo
|
|
179
190
|
});
|
|
180
191
|
}
|
|
181
|
-
return
|
|
192
|
+
return {
|
|
193
|
+
ethereumProvider: this.provider,
|
|
194
|
+
solanaWallet: this._solanaWallet,
|
|
195
|
+
connectorName: this.name
|
|
196
|
+
};
|
|
182
197
|
} catch (error) {
|
|
183
198
|
log.error("Wallet connect v2 connector error while connecting", error);
|
|
184
199
|
// ready again to be connected
|
|
@@ -227,7 +242,9 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
227
242
|
topic: (_this$activeSession3 = this.activeSession) === null || _this$activeSession3 === void 0 ? void 0 : _this$activeSession3.topic,
|
|
228
243
|
reason: getSdkError("USER_DISCONNECTED")
|
|
229
244
|
});
|
|
245
|
+
await this.clearWalletSession();
|
|
230
246
|
this.rehydrated = false;
|
|
247
|
+
this._solanaWallet = null;
|
|
231
248
|
if (cleanup) {
|
|
232
249
|
this.connector = null;
|
|
233
250
|
this.status = CONNECTOR_STATUS.NOT_READY;
|
|
@@ -237,9 +254,11 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
237
254
|
this.status = CONNECTOR_STATUS.READY;
|
|
238
255
|
}
|
|
239
256
|
this.activeSession = null;
|
|
240
|
-
this.emit(CONNECTOR_EVENTS.DISCONNECTED
|
|
257
|
+
this.emit(CONNECTOR_EVENTS.DISCONNECTED, {
|
|
258
|
+
connector: WALLET_CONNECTORS.WALLET_CONNECT_V2
|
|
259
|
+
});
|
|
241
260
|
}
|
|
242
|
-
async
|
|
261
|
+
async getAuthTokenInfo() {
|
|
243
262
|
if (!this.provider || !this.canAuthorize) throw WalletLoginError.notConnectedError();
|
|
244
263
|
this.status = CONNECTOR_STATUS.AUTHORIZING;
|
|
245
264
|
this.emit(CONNECTOR_EVENTS.AUTHORIZING, {
|
|
@@ -253,52 +272,59 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
253
272
|
const {
|
|
254
273
|
chainNamespace
|
|
255
274
|
} = currentChainConfig;
|
|
256
|
-
const accounts = await this.provider.request({
|
|
257
|
-
method:
|
|
275
|
+
const accounts = chainNamespace === CHAIN_NAMESPACES.SOLANA && this._solanaWallet ? this._solanaWallet.accounts.map(a => a.address) : await this.provider.request({
|
|
276
|
+
method: EVM_METHOD_TYPES.GET_ACCOUNTS
|
|
258
277
|
});
|
|
259
278
|
if (accounts && accounts.length > 0) {
|
|
260
|
-
const
|
|
261
|
-
if (
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
idToken: existingToken
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
const payload = {
|
|
277
|
-
domain: window.location.origin,
|
|
278
|
-
uri: window.location.href,
|
|
279
|
-
address: accounts[0],
|
|
280
|
-
chainId: parseInt(chainId, 16),
|
|
281
|
-
version: "1",
|
|
282
|
-
nonce: Math.random().toString(36).slice(2),
|
|
283
|
-
issuedAt: new Date().toISOString()
|
|
284
|
-
};
|
|
285
|
-
const challenge = await signChallenge(payload, chainNamespace);
|
|
286
|
-
const signedMessage = await this._getSignedMessage(challenge, accounts, chainNamespace);
|
|
287
|
-
const idToken = await verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
|
|
288
|
-
saveToken(accounts[0], this.name, idToken);
|
|
289
|
-
this.status = CONNECTOR_STATUS.AUTHORIZED;
|
|
290
|
-
this.emit(CONNECTOR_EVENTS.AUTHORIZED, {
|
|
291
|
-
connector: WALLET_CONNECTORS.WALLET_CONNECT_V2,
|
|
292
|
-
identityTokenInfo: {
|
|
293
|
-
idToken
|
|
294
|
-
}
|
|
279
|
+
const cached = await this.getCachedOrNullAuthTokenInfo(accounts[0]);
|
|
280
|
+
if (cached) return cached;
|
|
281
|
+
const authServer = citadelServerUrl(this.coreOptions.authBuildEnv);
|
|
282
|
+
const {
|
|
283
|
+
challenge,
|
|
284
|
+
signature
|
|
285
|
+
} = await this.generateChallengeAndSign(authServer, accounts);
|
|
286
|
+
return this.verifyAndAuthorize({
|
|
287
|
+
chainNamespace,
|
|
288
|
+
signedMessage: signature,
|
|
289
|
+
challenge,
|
|
290
|
+
authServer
|
|
295
291
|
});
|
|
296
|
-
return {
|
|
297
|
-
idToken
|
|
298
|
-
};
|
|
299
292
|
}
|
|
300
293
|
throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
301
294
|
}
|
|
295
|
+
async generateChallengeAndSign(authServerUrl, accounts) {
|
|
296
|
+
const {
|
|
297
|
+
chainId
|
|
298
|
+
} = this.provider;
|
|
299
|
+
const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
300
|
+
if (!currentChainConfig) throw WalletLoginError.connectionError("Chain config is not available");
|
|
301
|
+
const {
|
|
302
|
+
chainNamespace
|
|
303
|
+
} = currentChainConfig;
|
|
304
|
+
const accountsToUse = accounts || (chainNamespace === CHAIN_NAMESPACES.SOLANA && this._solanaWallet ? this._solanaWallet.accounts.map(a => a.address) : await this.provider.request({
|
|
305
|
+
method: EVM_METHOD_TYPES.GET_ACCOUNTS
|
|
306
|
+
}));
|
|
307
|
+
if (!accountsToUse || accountsToUse.length === 0) {
|
|
308
|
+
throw WalletLoginError.notConnectedError("No accounts found in the connected wallet");
|
|
309
|
+
}
|
|
310
|
+
const payload = {
|
|
311
|
+
domain: window.location.origin,
|
|
312
|
+
uri: window.location.href,
|
|
313
|
+
address: accountsToUse[0],
|
|
314
|
+
chainId: parseInt(chainId, 16),
|
|
315
|
+
version: "1",
|
|
316
|
+
nonce: generateSiweNonce(),
|
|
317
|
+
issuedAt: new Date().toISOString()
|
|
318
|
+
};
|
|
319
|
+
const authServer = authServerUrl || citadelServerUrl(this.coreOptions.authBuildEnv);
|
|
320
|
+
const challenge = await signChallenge(payload, chainNamespace, authServer);
|
|
321
|
+
const signature = await this._getSignedMessage(challenge, accountsToUse, chainNamespace);
|
|
322
|
+
return {
|
|
323
|
+
challenge,
|
|
324
|
+
signature,
|
|
325
|
+
chainNamespace
|
|
326
|
+
};
|
|
327
|
+
}
|
|
302
328
|
async enableMFA() {
|
|
303
329
|
throw new Error("Method Not implemented");
|
|
304
330
|
}
|
|
@@ -329,7 +355,7 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
329
355
|
forceNewSession = false,
|
|
330
356
|
chainConfig,
|
|
331
357
|
trackCompletionEvents,
|
|
332
|
-
|
|
358
|
+
getAuthTokenInfo
|
|
333
359
|
}) {
|
|
334
360
|
try {
|
|
335
361
|
var _this$activeSession4, _this$connectorOption7;
|
|
@@ -379,7 +405,7 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
379
405
|
await this.onConnectHandler({
|
|
380
406
|
chain: chainConfig,
|
|
381
407
|
trackCompletionEvents,
|
|
382
|
-
|
|
408
|
+
getAuthTokenInfo
|
|
383
409
|
});
|
|
384
410
|
if (qrcodeModal) {
|
|
385
411
|
qrcodeModal.closeModal();
|
|
@@ -394,7 +420,7 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
394
420
|
return this.createNewSession({
|
|
395
421
|
forceNewSession: true,
|
|
396
422
|
chainConfig,
|
|
397
|
-
|
|
423
|
+
getAuthTokenInfo
|
|
398
424
|
});
|
|
399
425
|
}
|
|
400
426
|
if (this.status === CONNECTOR_STATUS.READY) {
|
|
@@ -410,9 +436,9 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
410
436
|
async onConnectHandler({
|
|
411
437
|
chain,
|
|
412
438
|
trackCompletionEvents,
|
|
413
|
-
|
|
439
|
+
getAuthTokenInfo
|
|
414
440
|
}) {
|
|
415
|
-
var _this$connectorOption8;
|
|
441
|
+
var _this$connectorOption8, _this$activeSession$n, _this$activeSession6;
|
|
416
442
|
if (!this.connector || !this.wcProvider) throw WalletInitializationError.notReady("Wallet connect connector is not ready yet");
|
|
417
443
|
this.subscribeEvents();
|
|
418
444
|
if ((_this$connectorOption8 = this.connectorOptions.connectorSettings) !== null && _this$connectorOption8 !== void 0 && _this$connectorOption8.qrcodeModal) {
|
|
@@ -426,20 +452,31 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
426
452
|
});
|
|
427
453
|
}
|
|
428
454
|
await this.wcProvider.setupProvider(this.connector);
|
|
455
|
+
// Derive the active Solana chain from the WC session namespaces (genesis hash → hex chainId),
|
|
456
|
+
// rather than picking the first Solana chain from coreOptions which may not match the session.
|
|
457
|
+
const sessionSolanaChains = (_this$activeSession$n = (_this$activeSession6 = this.activeSession) === null || _this$activeSession6 === void 0 || (_this$activeSession6 = _this$activeSession6.namespaces) === null || _this$activeSession6 === void 0 || (_this$activeSession6 = _this$activeSession6.solana) === null || _this$activeSession6 === void 0 ? void 0 : _this$activeSession6.chains) !== null && _this$activeSession$n !== void 0 ? _this$activeSession$n : [];
|
|
458
|
+
if (sessionSolanaChains.length > 0) {
|
|
459
|
+
const reverseMap = Object.fromEntries(Object.entries(SOLANA_CAIP_CHAIN_MAP).map(([hex, hash]) => [hash, hex]));
|
|
460
|
+
const genesisHash = sessionSolanaChains[0].split(":")[1];
|
|
461
|
+
const hexChainId = reverseMap[genesisHash];
|
|
462
|
+
const solanaChain = hexChainId ? this.coreOptions.chains.find(c => c.chainId === hexChainId) : null;
|
|
463
|
+
if (solanaChain) {
|
|
464
|
+
this._solanaWallet = await WCSolanaWallet.create(this.connector, solanaChain);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
429
467
|
this.cleanupPendingPairings();
|
|
430
468
|
this.status = CONNECTOR_STATUS.CONNECTED;
|
|
431
469
|
|
|
432
470
|
// track connection events
|
|
433
471
|
if (trackCompletionEvents) trackCompletionEvents();
|
|
434
|
-
let identityTokenInfo;
|
|
435
472
|
this.emit(CONNECTOR_EVENTS.CONNECTED, {
|
|
436
|
-
|
|
473
|
+
connectorName: WALLET_CONNECTORS.WALLET_CONNECT_V2,
|
|
437
474
|
reconnected: this.rehydrated,
|
|
438
|
-
|
|
439
|
-
|
|
475
|
+
ethereumProvider: this.provider,
|
|
476
|
+
solanaWallet: this._solanaWallet
|
|
440
477
|
});
|
|
441
|
-
if (
|
|
442
|
-
|
|
478
|
+
if (getAuthTokenInfo) {
|
|
479
|
+
await this.getAuthTokenInfo();
|
|
443
480
|
}
|
|
444
481
|
}
|
|
445
482
|
subscribeEvents() {
|
|
@@ -469,10 +506,10 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
469
506
|
this.connector.events.on("session_expire", ({
|
|
470
507
|
topic
|
|
471
508
|
}) => {
|
|
472
|
-
var _this$
|
|
509
|
+
var _this$activeSession7;
|
|
473
510
|
// Session has expired -> clean up the session
|
|
474
511
|
log.info("Session expired event received for topic:", topic);
|
|
475
|
-
if (((_this$
|
|
512
|
+
if (((_this$activeSession7 = this.activeSession) === null || _this$activeSession7 === void 0 ? void 0 : _this$activeSession7.topic) === topic) {
|
|
476
513
|
this.disconnect({
|
|
477
514
|
sessionRemovedByWallet: true
|
|
478
515
|
}).catch(error => {
|
|
@@ -482,13 +519,13 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
482
519
|
});
|
|
483
520
|
}
|
|
484
521
|
async _getSignedMessage(challenge, accounts, chainNamespace) {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
522
|
+
if (chainNamespace === CHAIN_NAMESPACES.SOLANA && this._solanaWallet) {
|
|
523
|
+
return walletSignMessage(this._solanaWallet, challenge, accounts[0]);
|
|
524
|
+
}
|
|
525
|
+
return this.provider.request({
|
|
526
|
+
method: EVM_METHOD_TYPES.PERSONAL_SIGN,
|
|
527
|
+
params: [challenge, accounts[0]]
|
|
490
528
|
});
|
|
491
|
-
return signedMessage;
|
|
492
529
|
}
|
|
493
530
|
}
|
|
494
531
|
const walletConnectV2Connector = params => {
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
-
import { bs58 } from '@toruslabs/bs58';
|
|
3
2
|
import { EIP_5792_METHODS } from '@toruslabs/ethereum-controllers';
|
|
4
3
|
import { getAccountsFromNamespaces, parseAccountId } from '@walletconnect/utils';
|
|
5
4
|
import { providerErrors, rpcErrors } from '@web3auth/auth';
|
|
6
|
-
import { EVM_METHOD_TYPES
|
|
5
|
+
import { EVM_METHOD_TYPES } from '@web3auth/ws-embed';
|
|
7
6
|
import { formatChainId } from './utils.js';
|
|
8
7
|
import { WalletLoginError } from '../../base/errors/index.js';
|
|
9
|
-
import {
|
|
8
|
+
import { log } from '../../base/loglevel.js';
|
|
10
9
|
|
|
11
10
|
async function getLastActiveSession(signClient) {
|
|
12
11
|
if (signClient.session.length) {
|
|
@@ -28,7 +27,16 @@ async function sendJrpcRequest(signClient, chainId, method, params) {
|
|
|
28
27
|
}
|
|
29
28
|
if (typeof window !== "undefined" && isMobileDevice()) {
|
|
30
29
|
if (session.peer.metadata.redirect && session.peer.metadata.redirect.native) {
|
|
31
|
-
|
|
30
|
+
const redirectUrl = session.peer.metadata.redirect.native;
|
|
31
|
+
try {
|
|
32
|
+
const parsedUrl = new URL(redirectUrl);
|
|
33
|
+
if (["javascript:", "data:", "vbscript:"].includes(parsedUrl.protocol)) {
|
|
34
|
+
throw new Error("Invalid redirect scheme");
|
|
35
|
+
}
|
|
36
|
+
window.open(parsedUrl.href, "_blank");
|
|
37
|
+
} catch (e) {
|
|
38
|
+
log.error("Invalid redirect URL", e);
|
|
39
|
+
}
|
|
32
40
|
}
|
|
33
41
|
}
|
|
34
42
|
return signClient.request({
|
|
@@ -55,6 +63,14 @@ async function getAccounts(signClient) {
|
|
|
55
63
|
}
|
|
56
64
|
throw WalletLoginError.connectionError("Failed to get accounts");
|
|
57
65
|
}
|
|
66
|
+
async function getSolanaAccounts(signClient) {
|
|
67
|
+
const session = await getLastActiveSession(signClient);
|
|
68
|
+
if (!session) {
|
|
69
|
+
throw providerErrors.disconnected();
|
|
70
|
+
}
|
|
71
|
+
const accounts = getAccountsFromNamespaces(session.namespaces);
|
|
72
|
+
return [...new Set(accounts.filter(add => add.startsWith("solana:")).map(add => parseAccountId(add).address))];
|
|
73
|
+
}
|
|
58
74
|
function getEthProviderHandlers({
|
|
59
75
|
connector,
|
|
60
76
|
chainId
|
|
@@ -110,50 +126,6 @@ function getEthProviderHandlers({
|
|
|
110
126
|
}
|
|
111
127
|
};
|
|
112
128
|
}
|
|
113
|
-
function getSolProviderHandlers({
|
|
114
|
-
connector,
|
|
115
|
-
chainId
|
|
116
|
-
}) {
|
|
117
|
-
return {
|
|
118
|
-
requestAccounts: async _ => {
|
|
119
|
-
return getAccounts(connector);
|
|
120
|
-
},
|
|
121
|
-
getPrivateKey: async () => {
|
|
122
|
-
throw rpcErrors.methodNotSupported();
|
|
123
|
-
},
|
|
124
|
-
getSecretKey: async () => {
|
|
125
|
-
throw rpcErrors.methodNotSupported();
|
|
126
|
-
},
|
|
127
|
-
getPublicKey: async () => {
|
|
128
|
-
throw rpcErrors.methodNotSupported();
|
|
129
|
-
},
|
|
130
|
-
getAccounts: async _ => {
|
|
131
|
-
return getAccounts(connector);
|
|
132
|
-
},
|
|
133
|
-
signAllTransactions: async _ => {
|
|
134
|
-
throw rpcErrors.methodNotSupported();
|
|
135
|
-
},
|
|
136
|
-
signAndSendTransaction: async _ => {
|
|
137
|
-
throw rpcErrors.methodNotSupported();
|
|
138
|
-
},
|
|
139
|
-
signMessage: async req => {
|
|
140
|
-
const methodRes = await sendJrpcRequest(connector, `solana:${SOLANA_CAIP_CHAIN_MAP[chainId]}`, SOLANA_METHOD_TYPES.SIGN_MESSAGE, {
|
|
141
|
-
message: bs58.encode(Buffer.from(req.params.data, "utf-8"))
|
|
142
|
-
});
|
|
143
|
-
return methodRes.signature;
|
|
144
|
-
},
|
|
145
|
-
signTransaction: async req => {
|
|
146
|
-
const accounts = await getAccounts(connector);
|
|
147
|
-
if (accounts.length === 0) {
|
|
148
|
-
throw providerErrors.disconnected();
|
|
149
|
-
}
|
|
150
|
-
const methodRes = await sendJrpcRequest(connector, `solana:${SOLANA_CAIP_CHAIN_MAP[chainId]}`, SOLANA_METHOD_TYPES.SIGN_TRANSACTION, {
|
|
151
|
-
transaction: req.params.message
|
|
152
|
-
});
|
|
153
|
-
return methodRes.signature;
|
|
154
|
-
}
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
129
|
async function switchChain({
|
|
158
130
|
connector,
|
|
159
131
|
chainId,
|
|
@@ -181,4 +153,4 @@ async function addChain({
|
|
|
181
153
|
await sendJrpcRequest(connector, `eip155:${chainId}`, "wallet_addEthereumChain", [formattedChainConfig]);
|
|
182
154
|
}
|
|
183
155
|
|
|
184
|
-
export { addChain, getAccounts, getEthProviderHandlers,
|
|
156
|
+
export { addChain, getAccounts, getEthProviderHandlers, getSolanaAccounts, sendJrpcRequest, switchChain };
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
+
import { getBase64EncodedWireTransaction, getBase64Decoder, getBase58Encoder, getTransactionDecoder, getBase64Encoder, getBase58Decoder } from '@solana/kit';
|
|
4
|
+
import { SolanaSignTransaction, SolanaSignMessage, SolanaSignAndSendTransaction } from '@solana/wallet-standard-features';
|
|
5
|
+
import { StandardEvents, StandardDisconnect, StandardConnect } from '@wallet-standard/features';
|
|
6
|
+
import { SOLANA_METHOD_TYPES } from '@web3auth/ws-embed';
|
|
7
|
+
import { sendJrpcRequest, getSolanaAccounts } from './walletConnectV2Utils.js';
|
|
8
|
+
import { WEB3AUTH_ICON } from '../../base/wallet/index.js';
|
|
9
|
+
import { SOLANA_CAIP_CHAIN_MAP } from '../../base/constants.js';
|
|
10
|
+
import { getSolanaChainByChainConfig } from '../../base/wallet/solana.js';
|
|
11
|
+
|
|
12
|
+
const base58Encoder = getBase58Encoder();
|
|
13
|
+
const base58Decoder = getBase58Decoder();
|
|
14
|
+
const base64Decoder = getBase64Decoder();
|
|
15
|
+
const base64Encoder = getBase64Encoder();
|
|
16
|
+
const transactionDecoder = getTransactionDecoder();
|
|
17
|
+
/**
|
|
18
|
+
* WCSolanaWallet implements the Wallet Standard interface by routing directly to
|
|
19
|
+
* a WalletConnect SignClient — no intermediate JRPC engine needed.
|
|
20
|
+
*/
|
|
21
|
+
class WCSolanaWallet {
|
|
22
|
+
constructor(connector, wcCaipChainId, chainIdentifier, accounts) {
|
|
23
|
+
_defineProperty(this, "version", "1.0.0");
|
|
24
|
+
_defineProperty(this, "name", "WalletConnect");
|
|
25
|
+
_defineProperty(this, "icon", WEB3AUTH_ICON);
|
|
26
|
+
_defineProperty(this, "chains", void 0);
|
|
27
|
+
_defineProperty(this, "features", void 0);
|
|
28
|
+
_defineProperty(this, "_accounts", void 0);
|
|
29
|
+
_defineProperty(this, "_listeners", {});
|
|
30
|
+
this.chains = chainIdentifier ? [chainIdentifier] : [];
|
|
31
|
+
this._accounts = accounts;
|
|
32
|
+
this.features = {
|
|
33
|
+
[StandardConnect]: {
|
|
34
|
+
version: "1.0.0",
|
|
35
|
+
connect: async () => ({
|
|
36
|
+
accounts: this._accounts
|
|
37
|
+
})
|
|
38
|
+
},
|
|
39
|
+
[StandardDisconnect]: {
|
|
40
|
+
version: "1.0.0",
|
|
41
|
+
disconnect: async () => {}
|
|
42
|
+
},
|
|
43
|
+
[StandardEvents]: {
|
|
44
|
+
version: "1.0.0",
|
|
45
|
+
on: (event, listener) => {
|
|
46
|
+
var _this$_listeners, _this$_listeners$even;
|
|
47
|
+
((_this$_listeners$even = (_this$_listeners = this._listeners)[event]) !== null && _this$_listeners$even !== void 0 ? _this$_listeners$even : _this$_listeners[event] = new Set()).add(listener);
|
|
48
|
+
return () => this._listeners[event].delete(listener);
|
|
49
|
+
}
|
|
50
|
+
},
|
|
51
|
+
[SolanaSignAndSendTransaction]: {
|
|
52
|
+
version: "1.0.0",
|
|
53
|
+
supportedTransactionVersions: ["legacy", 0],
|
|
54
|
+
signAndSendTransaction: async (...inputs) => {
|
|
55
|
+
return Promise.all(inputs.map(async input => {
|
|
56
|
+
const base64Tx = base64Decoder.decode(input.transaction);
|
|
57
|
+
const result = await sendJrpcRequest(connector, wcCaipChainId, "solana_signAndSendTransaction", {
|
|
58
|
+
transaction: base64Tx
|
|
59
|
+
});
|
|
60
|
+
return {
|
|
61
|
+
signature: new Uint8Array(base58Encoder.encode(result.signature))
|
|
62
|
+
};
|
|
63
|
+
}));
|
|
64
|
+
}
|
|
65
|
+
},
|
|
66
|
+
[SolanaSignMessage]: {
|
|
67
|
+
version: "1.0.0",
|
|
68
|
+
signMessage: async (...inputs) => {
|
|
69
|
+
return Promise.all(inputs.map(async input => {
|
|
70
|
+
const base58Message = base58Decoder.decode(new Uint8Array(input.message));
|
|
71
|
+
const result = await sendJrpcRequest(connector, wcCaipChainId, SOLANA_METHOD_TYPES.SIGN_MESSAGE, {
|
|
72
|
+
message: base58Message
|
|
73
|
+
});
|
|
74
|
+
return {
|
|
75
|
+
signedMessage: new Uint8Array(input.message),
|
|
76
|
+
signature: new Uint8Array(base58Encoder.encode(result.signature))
|
|
77
|
+
};
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
[SolanaSignTransaction]: {
|
|
82
|
+
version: "1.0.0",
|
|
83
|
+
supportedTransactionVersions: ["legacy", 0],
|
|
84
|
+
signTransaction: async (...inputs) => {
|
|
85
|
+
return Promise.all(inputs.map(async input => {
|
|
86
|
+
const base64Tx = base64Decoder.decode(input.transaction);
|
|
87
|
+
const result = await sendJrpcRequest(connector, wcCaipChainId, SOLANA_METHOD_TYPES.SIGN_TRANSACTION, {
|
|
88
|
+
transaction: base64Tx
|
|
89
|
+
});
|
|
90
|
+
// Reconstruct signed transaction by inserting signature into decoded tx
|
|
91
|
+
const sigBytes = new Uint8Array(base58Encoder.encode(result.signature));
|
|
92
|
+
const decodedTx = transactionDecoder.decode(input.transaction);
|
|
93
|
+
const signedTx = _objectSpread(_objectSpread({}, decodedTx), {}, {
|
|
94
|
+
signatures: _objectSpread(_objectSpread({}, decodedTx.signatures), {}, {
|
|
95
|
+
[input.account.address]: sigBytes
|
|
96
|
+
})
|
|
97
|
+
});
|
|
98
|
+
const signedBase64 = getBase64EncodedWireTransaction(signedTx);
|
|
99
|
+
return {
|
|
100
|
+
signedTransaction: new Uint8Array(base64Encoder.encode(signedBase64))
|
|
101
|
+
};
|
|
102
|
+
}));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
get accounts() {
|
|
108
|
+
return this._accounts;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Creates a WCSolanaWallet by reading accounts from the active WC session.
|
|
113
|
+
*/
|
|
114
|
+
static async create(connector, chainConfig) {
|
|
115
|
+
const chainIdentifier = getSolanaChainByChainConfig(chainConfig);
|
|
116
|
+
const wcCaipChainId = `solana:${SOLANA_CAIP_CHAIN_MAP[chainConfig.chainId]}`;
|
|
117
|
+
const addresses = await getSolanaAccounts(connector);
|
|
118
|
+
if (!addresses.length) return null;
|
|
119
|
+
const accountFeatures = [SolanaSignAndSendTransaction, SolanaSignMessage, SolanaSignTransaction];
|
|
120
|
+
const accounts = addresses.map(address => ({
|
|
121
|
+
address,
|
|
122
|
+
publicKey: new Uint8Array(base58Encoder.encode(address)),
|
|
123
|
+
chains: chainIdentifier ? [chainIdentifier] : [],
|
|
124
|
+
features: accountFeatures
|
|
125
|
+
}));
|
|
126
|
+
return new WCSolanaWallet(connector, wcCaipChainId, chainIdentifier, accounts);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export { WCSolanaWallet };
|