@web3auth/no-modal 10.14.1 → 11.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib.cjs/base/connector/baseConnector.js +104 -2
- package/dist/lib.cjs/base/connector/connectorStatus.js +2 -0
- package/dist/lib.cjs/base/connector/constants.js +4 -2
- package/dist/lib.cjs/base/connector/utils.js +0 -21
- package/dist/lib.cjs/base/constants.js +4 -0
- package/dist/lib.cjs/base/cookie.js +6 -20
- package/dist/lib.cjs/base/errors/index.js +36 -12
- package/dist/lib.cjs/base/utils.js +10 -11
- package/dist/lib.cjs/base/wallet/index.js +7 -0
- package/dist/lib.cjs/base/wallet/solana.js +83 -0
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +145 -49
- package/dist/lib.cjs/connectors/auth-connector/authSolanaWallet.js +187 -0
- package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +18 -40
- package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +30 -56
- package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +19 -14
- package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +18 -13
- package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +24 -36
- package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +321 -133
- package/dist/lib.cjs/connectors/utils.js +8 -2
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +13 -38
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +4 -3
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +73 -63
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +40 -47
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +144 -0
- package/dist/lib.cjs/index.js +50 -85
- package/dist/lib.cjs/noModal.js +223 -133
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +23 -39
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +12 -10
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +8 -6
- package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +47 -44
- package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +1 -3
- package/dist/lib.cjs/providers/base-provider/baseProvider.js +4 -2
- package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +8 -11
- package/dist/lib.cjs/providers/base-provider/index.js +0 -1
- package/dist/lib.cjs/providers/base-provider/jrpcClient.js +18 -19
- package/dist/lib.cjs/providers/base-provider/utils.js +0 -3
- package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +22 -35
- package/dist/lib.cjs/providers/ethereum-provider/rpc/jrpcClient.js +18 -19
- package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMiddleware.js +200 -0
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +9 -18
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
- package/dist/lib.cjs/providers/xrpl-provider/rpc/JrpcClient.js +19 -26
- package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +46 -37
- package/dist/lib.cjs/react/context/WalletServicesInnerContext.js +2 -69
- package/dist/lib.cjs/react/context/Web3AuthInnerContext.js +6 -161
- package/dist/lib.cjs/react/context/useWalletServicesContextValue.js +76 -0
- package/dist/lib.cjs/react/context/useWeb3AuthInnerContextValue.js +202 -0
- package/dist/lib.cjs/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
- package/dist/lib.cjs/react/hooks/useCheckout.js +4 -2
- package/dist/lib.cjs/react/hooks/useFunding.js +4 -2
- package/dist/lib.cjs/react/hooks/useReceive.js +4 -2
- package/dist/lib.cjs/react/hooks/useSwap.js +4 -2
- package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +4 -2
- package/dist/lib.cjs/react/hooks/useWalletServicesPlugin.js +3 -10
- package/dist/lib.cjs/react/hooks/useWalletUI.js +4 -2
- package/dist/lib.cjs/react/hooks/useWeb3Auth.js +1 -22
- package/dist/lib.cjs/react/hooks/useWeb3AuthInner.js +4 -2
- package/dist/lib.cjs/react/index.js +10 -2
- package/dist/lib.cjs/react/solana/hooks/useSignAndSendTransaction.js +22 -4
- package/dist/lib.cjs/react/solana/hooks/useSignMessage.js +20 -2
- package/dist/lib.cjs/react/solana/hooks/useSignTransaction.js +22 -3
- package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +34 -51
- package/dist/lib.cjs/react/solana/index.js +2 -0
- package/dist/lib.cjs/react/solana/provider.js +167 -0
- package/dist/lib.cjs/react/wagmi/provider.js +10 -8
- package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +21 -5
- package/dist/lib.cjs/types/base/connector/connectorStatus.d.ts +1 -0
- package/dist/lib.cjs/types/base/connector/constants.d.ts +3 -0
- package/dist/lib.cjs/types/base/connector/interfaces.d.ts +23 -12
- package/dist/lib.cjs/types/base/connector/utils.d.ts +0 -3
- package/dist/lib.cjs/types/base/constants.d.ts +1 -0
- package/dist/lib.cjs/types/base/cookie.d.ts +0 -7
- package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +24 -12
- package/dist/lib.cjs/types/base/errors/index.d.ts +2 -3
- package/dist/lib.cjs/types/base/hooks/index.d.ts +2 -2
- package/dist/lib.cjs/types/base/interfaces.d.ts +5 -1
- package/dist/lib.cjs/types/base/utils.d.ts +2 -1
- package/dist/lib.cjs/types/base/wallet/index.d.ts +3 -0
- package/dist/lib.cjs/types/base/wallet/solana.d.ts +19 -0
- package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +11 -6
- package/dist/lib.cjs/types/connectors/auth-connector/authSolanaWallet.d.ts +35 -0
- package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +2 -2
- package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +2 -2
- package/dist/lib.cjs/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +2 -2
- package/dist/lib.cjs/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +10 -7
- package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +35 -3
- package/dist/lib.cjs/types/connectors/utils.d.ts +2 -0
- package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +0 -1
- package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +1 -5
- package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/wcSolanaWallet.d.ts +26 -0
- package/dist/lib.cjs/types/noModal.d.ts +12 -8
- package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +1 -4
- package/dist/lib.cjs/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
- package/dist/lib.cjs/types/providers/base-provider/jrpcClient.d.ts +2 -5
- package/dist/lib.cjs/types/providers/base-provider/utils.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-provider/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -4
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/index.d.ts +1 -1
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/interfaces.d.ts +6 -0
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/jrpcClient.d.ts +2 -5
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMiddleware.d.ts +3 -0
- package/dist/lib.cjs/types/providers/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +0 -1
- package/dist/lib.cjs/types/providers/xrpl-provider/rpc/JrpcClient.d.ts +3 -7
- package/dist/lib.cjs/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +5 -12
- package/dist/lib.cjs/types/react/context/index.d.ts +4 -0
- package/dist/lib.cjs/types/react/context/useWalletServicesContextValue.d.ts +12 -0
- package/dist/lib.cjs/types/react/context/useWeb3AuthInnerContextValue.d.ts +26 -0
- package/dist/lib.cjs/types/react/hooks/index.d.ts +1 -1
- package/dist/lib.cjs/types/react/hooks/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +4 -4
- package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +1 -2
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +2 -2
- package/dist/lib.cjs/types/react/index.d.ts +1 -0
- package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +7 -2
- package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +8 -3
- package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +17 -4
- package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
- package/dist/lib.cjs/types/react/solana/provider.d.ts +26 -0
- package/dist/lib.cjs/types/vue/composables/index.d.ts +2 -1
- package/dist/lib.cjs/types/vue/composables/{useIdentityToken.d.ts → useAuthTokenInfo.d.ts} +3 -3
- package/dist/lib.cjs/types/vue/composables/useInjectedWeb3AuthInnerContext.d.ts +1 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +1 -2
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +2 -2
- package/dist/lib.cjs/types/vue/index.d.ts +2 -0
- package/dist/lib.cjs/types/vue/interfaces.d.ts +2 -2
- package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +1 -0
- package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +7 -2
- package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +8 -3
- package/dist/lib.cjs/types/vue/solana/composables/useSolanaClient.d.ts +7 -0
- package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +17 -4
- package/dist/lib.cjs/types/vue/solana/constants.d.ts +3 -0
- package/dist/lib.cjs/types/vue/solana/index.d.ts +2 -0
- package/dist/lib.cjs/types/vue/solana/provider.d.ts +8 -0
- package/dist/lib.cjs/types/vue/useWalletServicesInnerContextValue.d.ts +13 -0
- package/dist/lib.cjs/types/vue/useWeb3AuthInnerContextValue.d.ts +26 -0
- package/dist/lib.cjs/types/x402/index.d.ts +43 -0
- package/dist/lib.cjs/types/x402/interfaces.d.ts +11 -0
- package/dist/lib.cjs/types/x402/react.d.ts +17 -0
- package/dist/lib.cjs/types/x402/vue.d.ts +18 -0
- package/dist/lib.cjs/vue/WalletServicesInnerProvider.js +9 -54
- package/dist/lib.cjs/vue/Web3AuthProvider.js +16 -177
- package/dist/lib.cjs/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +10 -8
- package/dist/lib.cjs/vue/composables/useCheckout.js +4 -2
- package/dist/lib.cjs/vue/composables/useEnableMFA.js +4 -2
- package/dist/lib.cjs/vue/composables/useFunding.js +4 -2
- package/dist/lib.cjs/vue/composables/useInjectedWeb3AuthInnerContext.js +29 -0
- package/dist/lib.cjs/vue/composables/useManageMFA.js +4 -2
- package/dist/lib.cjs/vue/composables/useReceive.js +4 -2
- package/dist/lib.cjs/vue/composables/useSwap.js +4 -2
- package/dist/lib.cjs/vue/composables/useSwitchChain.js +4 -2
- package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +4 -2
- package/dist/lib.cjs/vue/composables/useWalletUI.js +4 -2
- package/dist/lib.cjs/vue/composables/useWeb3Auth.js +1 -26
- package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +4 -2
- package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +4 -2
- package/dist/lib.cjs/vue/composables/useWeb3AuthInner.js +2 -20
- package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +4 -2
- package/dist/lib.cjs/vue/index.js +8 -2
- package/dist/lib.cjs/vue/solana/composables/useSignAndSendTransaction.js +6 -3
- package/dist/lib.cjs/vue/solana/composables/useSignMessage.js +6 -3
- package/dist/lib.cjs/vue/solana/composables/useSignTransaction.js +6 -3
- package/dist/lib.cjs/vue/solana/composables/useSolanaClient.js +14 -0
- package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +60 -41
- package/dist/lib.cjs/vue/solana/constants.js +5 -0
- package/dist/lib.cjs/vue/solana/index.js +6 -0
- package/dist/lib.cjs/vue/solana/provider.js +107 -0
- package/dist/lib.cjs/vue/useWalletServicesInnerContextValue.js +75 -0
- package/dist/lib.cjs/vue/useWeb3AuthInnerContextValue.js +217 -0
- package/dist/lib.cjs/vue/wagmi/provider.js +12 -8
- package/dist/lib.cjs/x402/index.js +175 -0
- package/dist/lib.cjs/x402/interfaces.js +5 -0
- package/dist/lib.cjs/x402/react.js +64 -0
- package/dist/lib.cjs/x402/vue.js +58 -0
- package/dist/lib.esm/base/connector/baseConnector.js +104 -2
- package/dist/lib.esm/base/connector/connectorStatus.js +2 -1
- package/dist/lib.esm/base/connector/constants.js +4 -2
- package/dist/lib.esm/base/connector/utils.js +1 -19
- package/dist/lib.esm/base/constants.js +4 -1
- package/dist/lib.esm/base/cookie.js +7 -20
- package/dist/lib.esm/base/errors/index.js +36 -12
- package/dist/lib.esm/base/utils.js +10 -7
- package/dist/lib.esm/base/wallet/index.js +2 -1
- package/dist/lib.esm/base/wallet/solana.js +81 -0
- package/dist/lib.esm/connectors/auth-connector/authConnector.js +143 -50
- package/dist/lib.esm/connectors/auth-connector/authSolanaWallet.js +175 -0
- package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +17 -39
- package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +29 -55
- package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +14 -11
- package/dist/lib.esm/connectors/injected-evm-connector/index.js +6 -1
- package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +14 -11
- package/dist/lib.esm/connectors/injected-solana-connector/index.js +3 -2
- package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +19 -31
- package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +335 -132
- package/dist/lib.esm/connectors/utils.js +9 -4
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +11 -30
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +1 -1
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +5 -1
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +70 -61
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +37 -45
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/wcSolanaWallet.js +130 -0
- package/dist/lib.esm/index.js +30 -38
- package/dist/lib.esm/noModal.js +225 -133
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +18 -37
- package/dist/lib.esm/providers/account-abstraction-provider/index.js +5 -1
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +9 -9
- package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +3 -3
- package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +48 -45
- package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +2 -4
- package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +9 -12
- package/dist/lib.esm/providers/base-provider/index.js +6 -2
- package/dist/lib.esm/providers/base-provider/jrpcClient.js +20 -19
- package/dist/lib.esm/providers/base-provider/utils.js +1 -3
- package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +23 -36
- package/dist/lib.esm/providers/ethereum-provider/rpc/jrpcClient.js +20 -19
- package/dist/lib.esm/providers/ethereum-provider/rpc/walletMiddleware.js +201 -0
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +6 -17
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.js +2 -1
- package/dist/lib.esm/providers/xrpl-provider/rpc/JrpcClient.js +21 -25
- package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +48 -38
- package/dist/lib.esm/react/context/WalletServicesInnerContext.js +3 -57
- package/dist/lib.esm/react/context/Web3AuthInnerContext.js +7 -152
- package/dist/lib.esm/react/context/useWalletServicesContextValue.js +59 -0
- package/dist/lib.esm/react/context/useWeb3AuthInnerContextValue.js +188 -0
- package/dist/lib.esm/react/hooks/{useIdentityToken.js → useAuthTokenInfo.js} +6 -7
- package/dist/lib.esm/react/hooks/useWalletServicesPlugin.js +3 -10
- package/dist/lib.esm/react/hooks/useWeb3Auth.js +1 -22
- package/dist/lib.esm/react/index.js +5 -1
- package/dist/lib.esm/react/solana/hooks/useSignAndSendTransaction.js +6 -4
- package/dist/lib.esm/react/solana/hooks/useSignMessage.js +4 -2
- package/dist/lib.esm/react/solana/hooks/useSignTransaction.js +6 -3
- package/dist/lib.esm/react/solana/hooks/useSolanaWallet.js +33 -28
- package/dist/lib.esm/react/solana/index.js +1 -0
- package/dist/lib.esm/react/solana/provider.js +150 -0
- package/dist/lib.esm/react/wagmi/provider.js +7 -7
- package/dist/lib.esm/vue/WalletServicesInnerProvider.js +4 -54
- package/dist/lib.esm/vue/Web3AuthProvider.js +7 -179
- package/dist/lib.esm/vue/composables/{useIdentityToken.js → useAuthTokenInfo.js} +6 -6
- package/dist/lib.esm/vue/composables/useInjectedWeb3AuthInnerContext.js +11 -0
- package/dist/lib.esm/vue/composables/useWeb3Auth.js +1 -26
- package/dist/lib.esm/vue/composables/useWeb3AuthInner.js +2 -6
- package/dist/lib.esm/vue/index.js +5 -2
- package/dist/lib.esm/vue/solana/composables/useSignAndSendTransaction.js +2 -1
- package/dist/lib.esm/vue/solana/composables/useSignMessage.js +2 -1
- package/dist/lib.esm/vue/solana/composables/useSignTransaction.js +3 -2
- package/dist/lib.esm/vue/solana/composables/useSolanaClient.js +12 -0
- package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +53 -35
- package/dist/lib.esm/vue/solana/constants.js +3 -0
- package/dist/lib.esm/vue/solana/index.js +3 -0
- package/dist/lib.esm/vue/solana/provider.js +95 -0
- package/dist/lib.esm/vue/useWalletServicesInnerContextValue.js +58 -0
- package/dist/lib.esm/vue/useWeb3AuthInnerContextValue.js +204 -0
- package/dist/lib.esm/vue/wagmi/provider.js +9 -7
- package/dist/lib.esm/x402/index.js +170 -0
- package/dist/lib.esm/x402/interfaces.js +3 -0
- package/dist/lib.esm/x402/react.js +59 -0
- package/dist/lib.esm/x402/vue.js +54 -0
- package/package.json +78 -53
- package/dist/lib.cjs/providers/ethereum-mpc-provider/index.js +0 -7
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -223
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -177
- package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -21
- package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +0 -88
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -27
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -383
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -93
- package/dist/lib.cjs/providers/ethereum-provider/providers/utils.js +0 -29
- package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +0 -171
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -65
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -45
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/utils.js +0 -16
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -103
- package/dist/lib.cjs/providers/solana-provider/rpc/JrpcClient.js +0 -47
- package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -97
- package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +0 -91
- package/dist/lib.cjs/types/connectors/injected-solana-connector/utils.d.ts +0 -3
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +0 -74
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +0 -12
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +0 -3
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +0 -15
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/converter.d.ts +0 -14
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +0 -16
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +0 -28
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +0 -4
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +0 -46
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -11
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/utils.d.ts +0 -5
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/walletMidddleware.d.ts +0 -3
- package/dist/lib.cjs/types/providers/solana-provider/index.d.ts +0 -4
- package/dist/lib.cjs/types/providers/solana-provider/interface.d.ts +0 -22
- package/dist/lib.cjs/types/providers/solana-provider/providers/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +0 -16
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +0 -3
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/index.d.ts +0 -2
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +0 -3
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +0 -9
- package/dist/lib.cjs/types/providers/solana-provider/rpc/JrpcClient.d.ts +0 -9
- package/dist/lib.cjs/types/providers/solana-provider/rpc/index.d.ts +0 -3
- package/dist/lib.cjs/types/providers/solana-provider/rpc/interfaces.d.ts +0 -27
- package/dist/lib.cjs/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +0 -20
- package/dist/lib.cjs/types/providers/solana-provider/solanaWallet.d.ts +0 -29
- package/dist/lib.esm/providers/ethereum-mpc-provider/index.js +0 -1
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +0 -206
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +0 -163
- package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -20
- package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +0 -85
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.js +0 -21
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +0 -378
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +0 -8
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +0 -88
- package/dist/lib.esm/providers/ethereum-provider/providers/utils.js +0 -24
- package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +0 -177
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +0 -47
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +0 -43
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/utils.js +0 -14
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +0 -91
- package/dist/lib.esm/providers/solana-provider/rpc/JrpcClient.js +0 -42
- package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +0 -89
- package/dist/lib.esm/providers/solana-provider/solanaWallet.js +0 -92
- package/dist/noModal.umd.min.js +0 -2
- package/dist/noModal.umd.min.js.LICENSE.txt +0 -50
|
@@ -1,14 +1,12 @@
|
|
|
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
|
|
6
|
+
import { switchChain, addChain, getAccounts, getEthProviderHandlers } from './walletConnectV2Utils.js';
|
|
7
|
+
import { BaseProvider } from '../../providers/base-provider/baseProvider.js';
|
|
7
8
|
import { createEthMiddleware, createEthChainSwitchMiddleware } from '../../providers/ethereum-provider/rpc/ethRpcMiddlewares.js';
|
|
8
9
|
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';
|
|
11
|
-
import { BaseProvider } from '../../providers/base-provider/baseProvider.js';
|
|
12
10
|
import { WalletLoginError } from '../../base/errors/index.js';
|
|
13
11
|
import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
|
|
14
12
|
import { log } from '../../base/loglevel.js';
|
|
@@ -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,3 +1,7 @@
|
|
|
1
1
|
export { DEFAULT_EIP155_METHODS, DEFAULT_EIP_155_EVENTS, DEFAULT_SOLANA_EVENTS, DEFAULT_SOLANA_METHODS, getNamespacesFromChains, getRequiredNamespaces, getSupportedEventsByNamespace, getSupportedMethodsByNamespace, getWalletConnectV2Settings } from './config.js';
|
|
2
|
-
|
|
2
|
+
import { walletConnectV2Connector } from './walletConnectV2Connector.js';
|
|
3
3
|
export { WalletConnectV2Provider } from './WalletConnectV2Provider.js';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
export { walletConnectV2Connector };
|
|
@@ -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';
|
|
11
|
+
import { WCSolanaWallet } from './wcSolanaWallet.js';
|
|
10
12
|
import { BaseConnector } from '../../base/connector/baseConnector.js';
|
|
11
13
|
import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
|
|
12
14
|
import { CONNECTOR_NAMESPACES } from '../../base/chain/IChainInterface.js';
|
|
13
15
|
import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
|
|
14
16
|
import { WalletInitializationError, WalletLoginError, Web3AuthError } from '../../base/errors/index.js';
|
|
15
17
|
import { log } from '../../base/loglevel.js';
|
|
16
|
-
import { getCaipChainId } from '../../base/utils.js';
|
|
18
|
+
import { getCaipChainId, citadelServerUrl } from '../../base/utils.js';
|
|
17
19
|
import { ANALYTICS_EVENTS } from '../../base/analytics.js';
|
|
18
|
-
import {
|
|
20
|
+
import { SOLANA_CAIP_CHAIN_MAP } from '../../base/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;
|
|
@@ -239,7 +256,7 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
239
256
|
this.activeSession = null;
|
|
240
257
|
this.emit(CONNECTOR_EVENTS.DISCONNECTED);
|
|
241
258
|
}
|
|
242
|
-
async
|
|
259
|
+
async getAuthTokenInfo() {
|
|
243
260
|
if (!this.provider || !this.canAuthorize) throw WalletLoginError.notConnectedError();
|
|
244
261
|
this.status = CONNECTOR_STATUS.AUTHORIZING;
|
|
245
262
|
this.emit(CONNECTOR_EVENTS.AUTHORIZING, {
|
|
@@ -253,49 +270,30 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
253
270
|
const {
|
|
254
271
|
chainNamespace
|
|
255
272
|
} = currentChainConfig;
|
|
256
|
-
const accounts = await this.provider.request({
|
|
257
|
-
method:
|
|
273
|
+
const accounts = chainNamespace === CHAIN_NAMESPACES.SOLANA && this._solanaWallet ? this._solanaWallet.accounts.map(a => a.address) : await this.provider.request({
|
|
274
|
+
method: EVM_METHOD_TYPES.GET_ACCOUNTS
|
|
258
275
|
});
|
|
259
276
|
if (accounts && accounts.length > 0) {
|
|
260
|
-
const
|
|
261
|
-
if (
|
|
262
|
-
const isExpired = checkIfTokenIsExpired(existingToken);
|
|
263
|
-
if (!isExpired) {
|
|
264
|
-
this.status = CONNECTOR_STATUS.AUTHORIZED;
|
|
265
|
-
this.emit(CONNECTOR_EVENTS.AUTHORIZED, {
|
|
266
|
-
connector: WALLET_CONNECTORS.WALLET_CONNECT_V2,
|
|
267
|
-
identityTokenInfo: {
|
|
268
|
-
idToken: existingToken
|
|
269
|
-
}
|
|
270
|
-
});
|
|
271
|
-
return {
|
|
272
|
-
idToken: existingToken
|
|
273
|
-
};
|
|
274
|
-
}
|
|
275
|
-
}
|
|
277
|
+
const cached = await this.getCachedOrNullAuthTokenInfo(accounts[0]);
|
|
278
|
+
if (cached) return cached;
|
|
276
279
|
const payload = {
|
|
277
280
|
domain: window.location.origin,
|
|
278
281
|
uri: window.location.href,
|
|
279
282
|
address: accounts[0],
|
|
280
283
|
chainId: parseInt(chainId, 16),
|
|
281
284
|
version: "1",
|
|
282
|
-
nonce:
|
|
285
|
+
nonce: generateSiweNonce(),
|
|
283
286
|
issuedAt: new Date().toISOString()
|
|
284
287
|
};
|
|
285
|
-
const
|
|
288
|
+
const authServer = citadelServerUrl(this.coreOptions.authBuildEnv);
|
|
289
|
+
const challenge = await signChallenge(payload, chainNamespace, authServer);
|
|
286
290
|
const signedMessage = await this._getSignedMessage(challenge, accounts, chainNamespace);
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
identityTokenInfo: {
|
|
293
|
-
idToken
|
|
294
|
-
}
|
|
291
|
+
return this.verifyAndAuthorize({
|
|
292
|
+
chainNamespace,
|
|
293
|
+
signedMessage: signedMessage,
|
|
294
|
+
challenge,
|
|
295
|
+
authServer
|
|
295
296
|
});
|
|
296
|
-
return {
|
|
297
|
-
idToken
|
|
298
|
-
};
|
|
299
297
|
}
|
|
300
298
|
throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
301
299
|
}
|
|
@@ -329,7 +327,7 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
329
327
|
forceNewSession = false,
|
|
330
328
|
chainConfig,
|
|
331
329
|
trackCompletionEvents,
|
|
332
|
-
|
|
330
|
+
getAuthTokenInfo
|
|
333
331
|
}) {
|
|
334
332
|
try {
|
|
335
333
|
var _this$activeSession4, _this$connectorOption7;
|
|
@@ -379,7 +377,7 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
379
377
|
await this.onConnectHandler({
|
|
380
378
|
chain: chainConfig,
|
|
381
379
|
trackCompletionEvents,
|
|
382
|
-
|
|
380
|
+
getAuthTokenInfo
|
|
383
381
|
});
|
|
384
382
|
if (qrcodeModal) {
|
|
385
383
|
qrcodeModal.closeModal();
|
|
@@ -394,7 +392,7 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
394
392
|
return this.createNewSession({
|
|
395
393
|
forceNewSession: true,
|
|
396
394
|
chainConfig,
|
|
397
|
-
|
|
395
|
+
getAuthTokenInfo
|
|
398
396
|
});
|
|
399
397
|
}
|
|
400
398
|
if (this.status === CONNECTOR_STATUS.READY) {
|
|
@@ -410,9 +408,9 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
410
408
|
async onConnectHandler({
|
|
411
409
|
chain,
|
|
412
410
|
trackCompletionEvents,
|
|
413
|
-
|
|
411
|
+
getAuthTokenInfo
|
|
414
412
|
}) {
|
|
415
|
-
var _this$connectorOption8;
|
|
413
|
+
var _this$connectorOption8, _this$activeSession$n, _this$activeSession6;
|
|
416
414
|
if (!this.connector || !this.wcProvider) throw WalletInitializationError.notReady("Wallet connect connector is not ready yet");
|
|
417
415
|
this.subscribeEvents();
|
|
418
416
|
if ((_this$connectorOption8 = this.connectorOptions.connectorSettings) !== null && _this$connectorOption8 !== void 0 && _this$connectorOption8.qrcodeModal) {
|
|
@@ -426,20 +424,31 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
426
424
|
});
|
|
427
425
|
}
|
|
428
426
|
await this.wcProvider.setupProvider(this.connector);
|
|
427
|
+
// Derive the active Solana chain from the WC session namespaces (genesis hash → hex chainId),
|
|
428
|
+
// rather than picking the first Solana chain from coreOptions which may not match the session.
|
|
429
|
+
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 : [];
|
|
430
|
+
if (sessionSolanaChains.length > 0) {
|
|
431
|
+
const reverseMap = Object.fromEntries(Object.entries(SOLANA_CAIP_CHAIN_MAP).map(([hex, hash]) => [hash, hex]));
|
|
432
|
+
const genesisHash = sessionSolanaChains[0].split(":")[1];
|
|
433
|
+
const hexChainId = reverseMap[genesisHash];
|
|
434
|
+
const solanaChain = hexChainId ? this.coreOptions.chains.find(c => c.chainId === hexChainId) : null;
|
|
435
|
+
if (solanaChain) {
|
|
436
|
+
this._solanaWallet = await WCSolanaWallet.create(this.connector, solanaChain);
|
|
437
|
+
}
|
|
438
|
+
}
|
|
429
439
|
this.cleanupPendingPairings();
|
|
430
440
|
this.status = CONNECTOR_STATUS.CONNECTED;
|
|
431
441
|
|
|
432
442
|
// track connection events
|
|
433
443
|
if (trackCompletionEvents) trackCompletionEvents();
|
|
434
|
-
let identityTokenInfo;
|
|
435
444
|
this.emit(CONNECTOR_EVENTS.CONNECTED, {
|
|
436
|
-
|
|
445
|
+
connectorName: WALLET_CONNECTORS.WALLET_CONNECT_V2,
|
|
437
446
|
reconnected: this.rehydrated,
|
|
438
|
-
|
|
439
|
-
|
|
447
|
+
ethereumProvider: this.provider,
|
|
448
|
+
solanaWallet: this._solanaWallet
|
|
440
449
|
});
|
|
441
|
-
if (
|
|
442
|
-
|
|
450
|
+
if (getAuthTokenInfo) {
|
|
451
|
+
await this.getAuthTokenInfo();
|
|
443
452
|
}
|
|
444
453
|
}
|
|
445
454
|
subscribeEvents() {
|
|
@@ -469,10 +478,10 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
469
478
|
this.connector.events.on("session_expire", ({
|
|
470
479
|
topic
|
|
471
480
|
}) => {
|
|
472
|
-
var _this$
|
|
481
|
+
var _this$activeSession7;
|
|
473
482
|
// Session has expired -> clean up the session
|
|
474
483
|
log.info("Session expired event received for topic:", topic);
|
|
475
|
-
if (((_this$
|
|
484
|
+
if (((_this$activeSession7 = this.activeSession) === null || _this$activeSession7 === void 0 ? void 0 : _this$activeSession7.topic) === topic) {
|
|
476
485
|
this.disconnect({
|
|
477
486
|
sessionRemovedByWallet: true
|
|
478
487
|
}).catch(error => {
|
|
@@ -482,13 +491,13 @@ class WalletConnectV2Connector extends BaseConnector {
|
|
|
482
491
|
});
|
|
483
492
|
}
|
|
484
493
|
async _getSignedMessage(challenge, accounts, chainNamespace) {
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
494
|
+
if (chainNamespace === CHAIN_NAMESPACES.SOLANA && this._solanaWallet) {
|
|
495
|
+
return walletSignMessage(this._solanaWallet, challenge, accounts[0]);
|
|
496
|
+
}
|
|
497
|
+
return this.provider.request({
|
|
498
|
+
method: EVM_METHOD_TYPES.PERSONAL_SIGN,
|
|
499
|
+
params: [challenge, accounts[0]]
|
|
490
500
|
});
|
|
491
|
-
return signedMessage;
|
|
492
501
|
}
|
|
493
502
|
}
|
|
494
503
|
const walletConnectV2Connector = params => {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
-
import {
|
|
2
|
+
import { EIP_5792_METHODS } from '@toruslabs/ethereum-controllers';
|
|
3
3
|
import { getAccountsFromNamespaces, parseAccountId } from '@walletconnect/utils';
|
|
4
4
|
import { providerErrors, rpcErrors } from '@web3auth/auth';
|
|
5
|
-
import { EVM_METHOD_TYPES
|
|
5
|
+
import { EVM_METHOD_TYPES } from '@web3auth/ws-embed';
|
|
6
6
|
import { formatChainId } from './utils.js';
|
|
7
7
|
import { WalletLoginError } from '../../base/errors/index.js';
|
|
8
|
-
import {
|
|
8
|
+
import { log } from '../../base/loglevel.js';
|
|
9
9
|
|
|
10
10
|
async function getLastActiveSession(signClient) {
|
|
11
11
|
if (signClient.session.length) {
|
|
@@ -27,7 +27,16 @@ async function sendJrpcRequest(signClient, chainId, method, params) {
|
|
|
27
27
|
}
|
|
28
28
|
if (typeof window !== "undefined" && isMobileDevice()) {
|
|
29
29
|
if (session.peer.metadata.redirect && session.peer.metadata.redirect.native) {
|
|
30
|
-
|
|
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
|
+
}
|
|
31
40
|
}
|
|
32
41
|
}
|
|
33
42
|
return signClient.request({
|
|
@@ -54,6 +63,14 @@ async function getAccounts(signClient) {
|
|
|
54
63
|
}
|
|
55
64
|
throw WalletLoginError.connectionError("Failed to get accounts");
|
|
56
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
|
+
}
|
|
57
74
|
function getEthProviderHandlers({
|
|
58
75
|
connector,
|
|
59
76
|
chainId
|
|
@@ -87,50 +104,25 @@ function getEthProviderHandlers({
|
|
|
87
104
|
processTypedMessageV4: async msgParams => {
|
|
88
105
|
const methodRes = await sendJrpcRequest(connector, `eip155:${chainId}`, EVM_METHOD_TYPES.ETH_SIGN_TYPED_DATA_V4, [msgParams.from, msgParams.data]);
|
|
89
106
|
return methodRes;
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
function getSolProviderHandlers({
|
|
94
|
-
connector,
|
|
95
|
-
chainId
|
|
96
|
-
}) {
|
|
97
|
-
return {
|
|
98
|
-
requestAccounts: async _ => {
|
|
99
|
-
return getAccounts(connector);
|
|
100
107
|
},
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
throw rpcErrors.methodNotSupported();
|
|
106
|
-
},
|
|
107
|
-
getPublicKey: async () => {
|
|
108
|
-
throw rpcErrors.methodNotSupported();
|
|
108
|
+
// EIP-5792: wallet_getCapabilities
|
|
109
|
+
processGetCapabilities: async params => {
|
|
110
|
+
const capabilities = await sendJrpcRequest(connector, `eip155:${chainId}`, EIP_5792_METHODS.WALLET_GET_CAPABILITIES, params);
|
|
111
|
+
return capabilities;
|
|
109
112
|
},
|
|
110
|
-
|
|
111
|
-
|
|
113
|
+
// EIP-5792: wallet_sendCalls
|
|
114
|
+
processSendCalls: async params => {
|
|
115
|
+
const results = await sendJrpcRequest(connector, `eip155:${chainId}`, EIP_5792_METHODS.WALLET_SEND_CALLS, [params]);
|
|
116
|
+
return results;
|
|
112
117
|
},
|
|
113
|
-
|
|
114
|
-
|
|
118
|
+
// EIP-5792: wallet_getCallsStatus
|
|
119
|
+
processGetCallsStatus: async batchId => {
|
|
120
|
+
const results = await sendJrpcRequest(connector, `eip155:${chainId}`, EIP_5792_METHODS.WALLET_GET_CALLS_STATUS, [batchId]);
|
|
121
|
+
return results;
|
|
115
122
|
},
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
signMessage: async req => {
|
|
120
|
-
const methodRes = await sendJrpcRequest(connector, `solana:${SOLANA_CAIP_CHAIN_MAP[chainId]}`, SOLANA_METHOD_TYPES.SIGN_MESSAGE, {
|
|
121
|
-
message: bs58.encode(Buffer.from(req.params.data, "utf-8"))
|
|
122
|
-
});
|
|
123
|
-
return methodRes.signature;
|
|
124
|
-
},
|
|
125
|
-
signTransaction: async req => {
|
|
126
|
-
const accounts = await getAccounts(connector);
|
|
127
|
-
if (accounts.length === 0) {
|
|
128
|
-
throw providerErrors.disconnected();
|
|
129
|
-
}
|
|
130
|
-
const methodRes = await sendJrpcRequest(connector, `solana:${SOLANA_CAIP_CHAIN_MAP[chainId]}`, SOLANA_METHOD_TYPES.SIGN_TRANSACTION, {
|
|
131
|
-
transaction: req.params.message
|
|
132
|
-
});
|
|
133
|
-
return methodRes.signature;
|
|
123
|
+
// EIP-5792: wallet_showCallsStatus
|
|
124
|
+
processShowCallsStatus: async batchId => {
|
|
125
|
+
await sendJrpcRequest(connector, `eip155:${chainId}`, EIP_5792_METHODS.WALLET_SHOW_CALLS_STATUS, [batchId]);
|
|
134
126
|
}
|
|
135
127
|
};
|
|
136
128
|
}
|
|
@@ -161,4 +153,4 @@ async function addChain({
|
|
|
161
153
|
await sendJrpcRequest(connector, `eip155:${chainId}`, "wallet_addEthereumChain", [formattedChainConfig]);
|
|
162
154
|
}
|
|
163
155
|
|
|
164
|
-
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 { getSolanaChainByChainConfig } from '../../base/wallet/solana.js';
|
|
10
|
+
import { SOLANA_CAIP_CHAIN_MAP } from '../../base/constants.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 };
|