@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
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
|
+
var kit = require('@solana/kit');
|
|
6
|
+
var walletStandardFeatures = require('@solana/wallet-standard-features');
|
|
7
|
+
var features = require('@wallet-standard/features');
|
|
8
|
+
var wsEmbed = require('@web3auth/ws-embed');
|
|
9
|
+
require('@segment/analytics-next');
|
|
10
|
+
require('../../base/loglevel.js');
|
|
11
|
+
require('@toruslabs/base-controllers');
|
|
12
|
+
require('@toruslabs/session-manager');
|
|
13
|
+
require('@web3auth/auth');
|
|
14
|
+
var index$1 = require('../../base/errors/index.js');
|
|
15
|
+
require('@toruslabs/constants');
|
|
16
|
+
require('@toruslabs/http-helpers');
|
|
17
|
+
var constants = require('../../base/constants.js');
|
|
18
|
+
var index = require('../../base/wallet/index.js');
|
|
19
|
+
require('../../base/connector/connectorStatus.js');
|
|
20
|
+
require('../../base/connector/constants.js');
|
|
21
|
+
require('jwt-decode');
|
|
22
|
+
require('../../base/plugin/errors.js');
|
|
23
|
+
require('../../base/plugin/IPlugin.js');
|
|
24
|
+
var solana = require('../../base/wallet/solana.js');
|
|
25
|
+
|
|
26
|
+
const base58Encoder = kit.getBase58Encoder();
|
|
27
|
+
const base64Decoder = kit.getBase64Decoder();
|
|
28
|
+
const base64Encoder = kit.getBase64Encoder();
|
|
29
|
+
const transactionDecoder = kit.getTransactionDecoder();
|
|
30
|
+
const ACCOUNT_FEATURES = [walletStandardFeatures.SolanaSignAndSendTransaction, walletStandardFeatures.SolanaSignMessage, walletStandardFeatures.SolanaSignTransaction];
|
|
31
|
+
function solanaWalletChainsFromConfigs(solanaChainConfigs) {
|
|
32
|
+
const ids = solanaChainConfigs.map(solana.getSolanaChainByChainConfig).filter(id => id != null);
|
|
33
|
+
const unique = [...new Set(ids)];
|
|
34
|
+
return unique;
|
|
35
|
+
}
|
|
36
|
+
const SOLANA_PROVIDER_HEX_CHAIN_IDS = new Set(Object.keys(constants.SOLANA_CAIP_CHAIN_MAP).map(id => id.toLowerCase()));
|
|
37
|
+
/**
|
|
38
|
+
* AuthSolanaWallet implements the Wallet Standard interface, wrapping a JRPC provider.
|
|
39
|
+
* Used by AuthConnector so consumers get a standards-compliant Wallet from `connection.solanaWallet`.
|
|
40
|
+
*
|
|
41
|
+
* {@link Wallet.accounts} is synchronous in the Wallet Standard; it returns `[]` until accounts have been loaded
|
|
42
|
+
* (`null` internally). The first async operation ({@link StandardConnect}, sign, etc.) calls `ensureAccountsLoaded`, which
|
|
43
|
+
* requires {@link IProvider.chainId} to be a configured Solana network (see {@link SOLANA_CAIP_CHAIN_MAP}) before {@link SOLANA_METHOD_TYPES.GET_ACCOUNTS}.
|
|
44
|
+
*/
|
|
45
|
+
class AuthSolanaWallet {
|
|
46
|
+
/**
|
|
47
|
+
* @param solanaChainConfigs - All configured Solana {@link CustomChainConfig} entries (same namespace).
|
|
48
|
+
*/
|
|
49
|
+
constructor(_provider, solanaChainConfigs) {
|
|
50
|
+
_defineProperty(this, "_provider", void 0);
|
|
51
|
+
_defineProperty(this, "version", "1.0.0");
|
|
52
|
+
_defineProperty(this, "name", "Web3Auth");
|
|
53
|
+
_defineProperty(this, "icon", index.WEB3AUTH_ICON);
|
|
54
|
+
_defineProperty(this, "chains", void 0);
|
|
55
|
+
_defineProperty(this, "features", void 0);
|
|
56
|
+
_defineProperty(this, "_accounts", null);
|
|
57
|
+
_defineProperty(this, "_listeners", {});
|
|
58
|
+
this._provider = _provider;
|
|
59
|
+
this.chains = solanaWalletChainsFromConfigs(solanaChainConfigs);
|
|
60
|
+
this.features = {
|
|
61
|
+
[features.StandardConnect]: {
|
|
62
|
+
version: "1.0.0",
|
|
63
|
+
connect: async () => {
|
|
64
|
+
await this.ensureAccountsLoaded();
|
|
65
|
+
return {
|
|
66
|
+
accounts: this.accounts
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
},
|
|
70
|
+
[features.StandardDisconnect]: {
|
|
71
|
+
version: "1.0.0",
|
|
72
|
+
disconnect: async () => {}
|
|
73
|
+
},
|
|
74
|
+
[features.StandardEvents]: {
|
|
75
|
+
version: "1.0.0",
|
|
76
|
+
on: (event, listener) => {
|
|
77
|
+
var _this$_listeners, _this$_listeners$even;
|
|
78
|
+
((_this$_listeners$even = (_this$_listeners = this._listeners)[event]) !== null && _this$_listeners$even !== void 0 ? _this$_listeners$even : _this$_listeners[event] = new Set()).add(listener);
|
|
79
|
+
return () => this._listeners[event].delete(listener);
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
[walletStandardFeatures.SolanaSignAndSendTransaction]: {
|
|
83
|
+
version: "1.0.0",
|
|
84
|
+
supportedTransactionVersions: ["legacy", 0],
|
|
85
|
+
signAndSendTransaction: async (...inputs) => {
|
|
86
|
+
await this.ensureAccountsLoaded();
|
|
87
|
+
return Promise.all(inputs.map(async input => {
|
|
88
|
+
const base64Tx = base64Decoder.decode(input.transaction);
|
|
89
|
+
const signature = await this._provider.request({
|
|
90
|
+
method: wsEmbed.SOLANA_METHOD_TYPES.SEND_TRANSACTION,
|
|
91
|
+
params: {
|
|
92
|
+
message: base64Tx
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
return {
|
|
96
|
+
signature: new Uint8Array(base58Encoder.encode(signature))
|
|
97
|
+
};
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
[walletStandardFeatures.SolanaSignMessage]: {
|
|
102
|
+
version: "1.0.0",
|
|
103
|
+
signMessage: async (...inputs) => {
|
|
104
|
+
await this.ensureAccountsLoaded();
|
|
105
|
+
return Promise.all(inputs.map(async input => {
|
|
106
|
+
const message = new TextDecoder().decode(input.message);
|
|
107
|
+
const signature = await this._provider.request({
|
|
108
|
+
method: wsEmbed.SOLANA_METHOD_TYPES.SIGN_MESSAGE,
|
|
109
|
+
params: {
|
|
110
|
+
data: message,
|
|
111
|
+
from: input.account.address
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
return {
|
|
115
|
+
signedMessage: new Uint8Array(input.message),
|
|
116
|
+
signature: new Uint8Array(base58Encoder.encode(signature))
|
|
117
|
+
};
|
|
118
|
+
}));
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
[walletStandardFeatures.SolanaSignTransaction]: {
|
|
122
|
+
version: "1.0.0",
|
|
123
|
+
supportedTransactionVersions: ["legacy", 0],
|
|
124
|
+
signTransaction: async (...inputs) => {
|
|
125
|
+
await this.ensureAccountsLoaded();
|
|
126
|
+
return Promise.all(inputs.map(async input => {
|
|
127
|
+
const base64Tx = base64Decoder.decode(input.transaction);
|
|
128
|
+
const signatureBase58 = await this._provider.request({
|
|
129
|
+
method: wsEmbed.SOLANA_METHOD_TYPES.SIGN_TRANSACTION,
|
|
130
|
+
params: {
|
|
131
|
+
message: base64Tx
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
const sigBytes = new Uint8Array(base58Encoder.encode(signatureBase58));
|
|
135
|
+
const decodedTx = transactionDecoder.decode(input.transaction);
|
|
136
|
+
const signedTx = _objectSpread(_objectSpread({}, decodedTx), {}, {
|
|
137
|
+
signatures: _objectSpread(_objectSpread({}, decodedTx.signatures), {}, {
|
|
138
|
+
[input.account.address]: sigBytes
|
|
139
|
+
})
|
|
140
|
+
});
|
|
141
|
+
const signedBase64 = kit.getBase64EncodedWireTransaction(signedTx);
|
|
142
|
+
return {
|
|
143
|
+
signedTransaction: new Uint8Array(base64Encoder.encode(signedBase64))
|
|
144
|
+
};
|
|
145
|
+
}));
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Wallet Standard requires a synchronous getter; RPC runs on first async wallet operation instead.
|
|
152
|
+
*/
|
|
153
|
+
get accounts() {
|
|
154
|
+
var _this$_accounts;
|
|
155
|
+
return (_this$_accounts = this._accounts) !== null && _this$_accounts !== void 0 ? _this$_accounts : [];
|
|
156
|
+
}
|
|
157
|
+
/** Throws if the embed is not on Solana; otherwise loads accounts once via {@link SOLANA_METHOD_TYPES.GET_ACCOUNTS}. */
|
|
158
|
+
async ensureAccountsLoaded() {
|
|
159
|
+
var _await$this$_provider;
|
|
160
|
+
// assert solana chain
|
|
161
|
+
const chainId = this._provider.chainId;
|
|
162
|
+
if (!SOLANA_PROVIDER_HEX_CHAIN_IDS.has(chainId.toLowerCase())) throw index$1.WalletLoginError.unsupportedOperation(`Solana wallet operations require the embedded provider to be on a Solana network (current chainId: ${chainId}). Switch chain first.`);
|
|
163
|
+
if (this._accounts !== null) return;
|
|
164
|
+
const addresses = (_await$this$_provider = await this._provider.request({
|
|
165
|
+
method: wsEmbed.SOLANA_METHOD_TYPES.GET_ACCOUNTS
|
|
166
|
+
})) !== null && _await$this$_provider !== void 0 ? _await$this$_provider : [];
|
|
167
|
+
const accountChains = this.chains;
|
|
168
|
+
this._accounts = addresses.map(address => ({
|
|
169
|
+
address,
|
|
170
|
+
publicKey: new Uint8Array(base58Encoder.encode(address)),
|
|
171
|
+
chains: accountChains.length ? accountChains : [],
|
|
172
|
+
features: ACCOUNT_FEATURES
|
|
173
|
+
}));
|
|
174
|
+
this.emitChange({
|
|
175
|
+
accounts: this.accounts
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
emitChange(properties) {
|
|
179
|
+
const listeners = this._listeners.change;
|
|
180
|
+
if (!listeners) return;
|
|
181
|
+
listeners.forEach(listener => {
|
|
182
|
+
listener(properties);
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
exports.AuthSolanaWallet = AuthSolanaWallet;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var baseControllers = require('@toruslabs/base-controllers');
|
|
4
|
+
var metadataHelpers = require('@toruslabs/metadata-helpers');
|
|
4
5
|
var wsEmbed = require('@web3auth/ws-embed');
|
|
6
|
+
var siwe = require('viem/siwe');
|
|
5
7
|
require('@babel/runtime/helpers/objectSpread2');
|
|
6
8
|
require('@babel/runtime/helpers/defineProperty');
|
|
7
9
|
require('@segment/analytics-next');
|
|
@@ -10,17 +12,17 @@ var baseConnector = require('../../base/connector/baseConnector.js');
|
|
|
10
12
|
require('../../base/connector/connectorStatus.js');
|
|
11
13
|
var constants = require('../../base/connector/constants.js');
|
|
12
14
|
require('@web3auth/auth');
|
|
13
|
-
|
|
15
|
+
require('jwt-decode');
|
|
16
|
+
require('../../base/constants.js');
|
|
14
17
|
var index = require('../../base/errors/index.js');
|
|
15
18
|
require('../../base/plugin/errors.js');
|
|
16
19
|
require('../../base/plugin/IPlugin.js');
|
|
17
|
-
require('
|
|
18
|
-
require('@toruslabs/http-helpers');
|
|
20
|
+
var utils = require('../../base/utils.js');
|
|
19
21
|
require('../../base/wallet/index.js');
|
|
20
22
|
|
|
21
23
|
class BaseEvmConnector extends baseConnector.BaseConnector {
|
|
22
24
|
async init(_) {}
|
|
23
|
-
async
|
|
25
|
+
async getAuthTokenInfo() {
|
|
24
26
|
if (!this.provider || !this.canAuthorize) throw index.WalletLoginError.notConnectedError();
|
|
25
27
|
if (!this.coreOptions) throw index.WalletInitializationError.invalidParams("Please initialize Web3Auth with valid options");
|
|
26
28
|
this.status = constants.CONNECTOR_STATUS.AUTHORIZING;
|
|
@@ -31,68 +33,63 @@ class BaseEvmConnector extends baseConnector.BaseConnector {
|
|
|
31
33
|
method: wsEmbed.EVM_METHOD_TYPES.GET_ACCOUNTS
|
|
32
34
|
});
|
|
33
35
|
if (accounts && accounts.length > 0) {
|
|
34
|
-
const
|
|
35
|
-
if (
|
|
36
|
-
|
|
37
|
-
if (!isExpired) {
|
|
38
|
-
this.status = constants.CONNECTOR_STATUS.AUTHORIZED;
|
|
39
|
-
this.emit(constants.CONNECTOR_EVENTS.AUTHORIZED, {
|
|
40
|
-
connector: this.name,
|
|
41
|
-
identityTokenInfo: {
|
|
42
|
-
idToken: existingToken
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
return {
|
|
46
|
-
idToken: existingToken
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
const chainId = await this.provider.request({
|
|
51
|
-
method: "eth_chainId"
|
|
52
|
-
});
|
|
53
|
-
const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
54
|
-
if (!currentChainConfig) throw index.WalletInitializationError.invalidParams("chainConfig is required before authentication");
|
|
36
|
+
const cached = await this.getCachedOrNullAuthTokenInfo(accounts[0]);
|
|
37
|
+
if (cached) return cached;
|
|
38
|
+
const authServer = utils.citadelServerUrl(this.coreOptions.authBuildEnv);
|
|
55
39
|
const {
|
|
40
|
+
challenge,
|
|
41
|
+
signature,
|
|
56
42
|
chainNamespace
|
|
57
|
-
} =
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
version: "1",
|
|
64
|
-
nonce: Math.random().toString(36).slice(2),
|
|
65
|
-
issuedAt: new Date().toISOString()
|
|
66
|
-
};
|
|
67
|
-
const challenge = await baseControllers.signChallenge(payload, chainNamespace);
|
|
68
|
-
const hexChallenge = `0x${Buffer.from(challenge, "utf8").toString("hex")}`;
|
|
69
|
-
const signedMessage = await this.provider.request({
|
|
70
|
-
method: wsEmbed.EVM_METHOD_TYPES.PERSONAL_SIGN,
|
|
71
|
-
params: [hexChallenge, accounts[0]]
|
|
72
|
-
});
|
|
73
|
-
const idToken = await baseControllers.verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
|
|
74
|
-
utils.saveToken(accounts[0], this.name, idToken);
|
|
75
|
-
this.status = constants.CONNECTOR_STATUS.AUTHORIZED;
|
|
76
|
-
this.emit(constants.CONNECTOR_EVENTS.AUTHORIZED, {
|
|
77
|
-
connector: this.name,
|
|
78
|
-
identityTokenInfo: {
|
|
79
|
-
idToken
|
|
80
|
-
}
|
|
43
|
+
} = await this.generateChallengeAndSign(authServer, accounts);
|
|
44
|
+
return this.verifyAndAuthorize({
|
|
45
|
+
chainNamespace,
|
|
46
|
+
signedMessage: signature,
|
|
47
|
+
challenge,
|
|
48
|
+
authServer
|
|
81
49
|
});
|
|
82
|
-
return {
|
|
83
|
-
idToken
|
|
84
|
-
};
|
|
85
50
|
}
|
|
86
51
|
throw index.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
87
52
|
}
|
|
53
|
+
async generateChallengeAndSign(authServerUrl, accounts) {
|
|
54
|
+
const accountsToUse = accounts || (await this.provider.request({
|
|
55
|
+
method: wsEmbed.EVM_METHOD_TYPES.GET_ACCOUNTS
|
|
56
|
+
}));
|
|
57
|
+
if (!accountsToUse || accountsToUse.length === 0) {
|
|
58
|
+
throw index.WalletLoginError.notConnectedError("No accounts found in the connected wallet");
|
|
59
|
+
}
|
|
60
|
+
const chainId = await this.provider.request({
|
|
61
|
+
method: "eth_chainId"
|
|
62
|
+
});
|
|
63
|
+
const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
64
|
+
if (!currentChainConfig) throw index.WalletInitializationError.invalidParams("chainConfig is required before authentication");
|
|
65
|
+
const {
|
|
66
|
+
chainNamespace
|
|
67
|
+
} = currentChainConfig;
|
|
68
|
+
const authServer = authServerUrl || utils.citadelServerUrl(this.coreOptions.authBuildEnv);
|
|
69
|
+
const payload = {
|
|
70
|
+
domain: window.location.origin,
|
|
71
|
+
uri: window.location.href,
|
|
72
|
+
address: accountsToUse[0],
|
|
73
|
+
chainId: parseInt(chainId, 16),
|
|
74
|
+
version: "1",
|
|
75
|
+
nonce: siwe.generateSiweNonce(),
|
|
76
|
+
issuedAt: new Date().toISOString()
|
|
77
|
+
};
|
|
78
|
+
const challenge = await baseControllers.signChallenge(payload, chainNamespace, authServer);
|
|
79
|
+
const hexChallenge = metadataHelpers.bytesToHexPrefixedString(metadataHelpers.utf8ToBytes(challenge));
|
|
80
|
+
const signature = await this.provider.request({
|
|
81
|
+
method: wsEmbed.EVM_METHOD_TYPES.PERSONAL_SIGN,
|
|
82
|
+
params: [hexChallenge, accountsToUse[0]]
|
|
83
|
+
});
|
|
84
|
+
return {
|
|
85
|
+
challenge,
|
|
86
|
+
signature,
|
|
87
|
+
chainNamespace
|
|
88
|
+
};
|
|
89
|
+
}
|
|
88
90
|
async disconnectSession() {
|
|
89
91
|
super.checkDisconnectionRequirements();
|
|
90
|
-
|
|
91
|
-
method: "eth_accounts"
|
|
92
|
-
});
|
|
93
|
-
if (accounts && accounts.length > 0) {
|
|
94
|
-
utils.clearToken(accounts[0], this.name);
|
|
95
|
-
}
|
|
92
|
+
await this.clearWalletSession();
|
|
96
93
|
}
|
|
97
94
|
async disconnect() {
|
|
98
95
|
this.rehydrated = false;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var baseControllers = require('@toruslabs/base-controllers');
|
|
4
|
-
var
|
|
4
|
+
var siwe = require('viem/siwe');
|
|
5
5
|
require('@babel/runtime/helpers/objectSpread2');
|
|
6
6
|
require('@babel/runtime/helpers/defineProperty');
|
|
7
7
|
require('@segment/analytics-next');
|
|
@@ -10,91 +10,82 @@ var baseConnector = require('../../base/connector/baseConnector.js');
|
|
|
10
10
|
require('../../base/connector/connectorStatus.js');
|
|
11
11
|
var constants = require('../../base/connector/constants.js');
|
|
12
12
|
require('@web3auth/auth');
|
|
13
|
-
|
|
13
|
+
require('jwt-decode');
|
|
14
|
+
require('../../base/constants.js');
|
|
14
15
|
var index = require('../../base/errors/index.js');
|
|
15
16
|
require('../../base/plugin/errors.js');
|
|
16
17
|
require('../../base/plugin/IPlugin.js');
|
|
17
|
-
require('
|
|
18
|
-
require('@toruslabs/http-helpers');
|
|
18
|
+
var utils = require('../../base/utils.js');
|
|
19
19
|
require('../../base/wallet/index.js');
|
|
20
|
+
var solana = require('../../base/wallet/solana.js');
|
|
20
21
|
|
|
21
22
|
class BaseSolanaConnector extends baseConnector.BaseConnector {
|
|
22
23
|
async init(_) {}
|
|
23
|
-
async
|
|
24
|
-
if (!this.
|
|
24
|
+
async getAuthTokenInfo() {
|
|
25
|
+
if (!this.solanaWallet || !this.canAuthorize) throw index.WalletLoginError.notConnectedError();
|
|
25
26
|
if (!this.coreOptions) throw index.WalletInitializationError.invalidParams("Please initialize Web3Auth with a valid options");
|
|
26
27
|
this.status = constants.CONNECTOR_STATUS.AUTHORIZING;
|
|
27
28
|
this.emit(constants.CONNECTOR_EVENTS.AUTHORIZING, {
|
|
28
29
|
connector: this.name
|
|
29
30
|
});
|
|
30
|
-
const accounts =
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
if (existingToken) {
|
|
36
|
-
const isExpired = utils.checkIfTokenIsExpired(existingToken);
|
|
37
|
-
if (!isExpired) {
|
|
38
|
-
this.status = constants.CONNECTOR_STATUS.AUTHORIZED;
|
|
39
|
-
this.emit(constants.CONNECTOR_EVENTS.AUTHORIZED, {
|
|
40
|
-
connector: this.name,
|
|
41
|
-
identityTokenInfo: {
|
|
42
|
-
idToken: existingToken
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
return {
|
|
46
|
-
idToken: existingToken
|
|
47
|
-
};
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
const chainId = await this.provider.request({
|
|
51
|
-
method: "solana_chainId"
|
|
52
|
-
});
|
|
53
|
-
const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
54
|
-
if (!currentChainConfig) throw index.WalletInitializationError.invalidParams("chainConfig is required before authentication");
|
|
31
|
+
const accounts = this.solanaWallet.accounts.map(a => a.address);
|
|
32
|
+
if (accounts.length > 0) {
|
|
33
|
+
const cached = await this.getCachedOrNullAuthTokenInfo(accounts[0]);
|
|
34
|
+
if (cached) return cached;
|
|
35
|
+
const authServer = utils.citadelServerUrl(this.coreOptions.authBuildEnv);
|
|
55
36
|
const {
|
|
37
|
+
challenge,
|
|
38
|
+
signature,
|
|
56
39
|
chainNamespace
|
|
57
|
-
} =
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
version: "1",
|
|
64
|
-
nonce: Math.random().toString(36).slice(2),
|
|
65
|
-
issuedAt: new Date().toISOString()
|
|
66
|
-
};
|
|
67
|
-
const challenge = await baseControllers.signChallenge(payload, chainNamespace);
|
|
68
|
-
const signedMessage = await this.provider.request({
|
|
69
|
-
method: wsEmbed.SOLANA_METHOD_TYPES.SIGN_MESSAGE,
|
|
70
|
-
params: {
|
|
71
|
-
data: challenge,
|
|
72
|
-
display: "utf8"
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
const idToken = await baseControllers.verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
|
|
76
|
-
utils.saveToken(accounts[0], this.name, idToken);
|
|
77
|
-
this.status = constants.CONNECTOR_STATUS.AUTHORIZED;
|
|
78
|
-
this.emit(constants.CONNECTOR_EVENTS.AUTHORIZED, {
|
|
79
|
-
connector: this.name,
|
|
80
|
-
identityTokenInfo: {
|
|
81
|
-
idToken
|
|
82
|
-
}
|
|
40
|
+
} = await this.generateChallengeAndSign(authServer);
|
|
41
|
+
return this.verifyAndAuthorize({
|
|
42
|
+
chainNamespace,
|
|
43
|
+
signedMessage: signature,
|
|
44
|
+
challenge,
|
|
45
|
+
authServer
|
|
83
46
|
});
|
|
84
|
-
return {
|
|
85
|
-
idToken
|
|
86
|
-
};
|
|
87
47
|
}
|
|
88
48
|
throw index.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
89
49
|
}
|
|
90
|
-
async
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
50
|
+
async generateChallengeAndSign(authServerUrl, accounts) {
|
|
51
|
+
const accountsToUse = accounts || this.solanaWallet.accounts.map(a => a.address);
|
|
52
|
+
if (!accountsToUse || accountsToUse.length === 0) {
|
|
53
|
+
throw index.WalletLoginError.notConnectedError("No accounts found in the connected wallet");
|
|
54
|
+
}
|
|
55
|
+
const walletChains = new Set(this.solanaWallet.chains);
|
|
56
|
+
const currentChainConfig = this.coreOptions.chains.find(c => {
|
|
57
|
+
if (c.chainNamespace !== baseControllers.CHAIN_NAMESPACES.SOLANA) return false;
|
|
58
|
+
const id = solana.getSolanaChainByChainConfig(c);
|
|
59
|
+
return id != null && walletChains.has(id);
|
|
94
60
|
});
|
|
95
|
-
if (
|
|
96
|
-
|
|
61
|
+
if (!currentChainConfig) {
|
|
62
|
+
throw index.WalletInitializationError.invalidParams("No Solana chain in common between the connected wallet and Web3Auth chain configuration");
|
|
97
63
|
}
|
|
64
|
+
const {
|
|
65
|
+
chainId,
|
|
66
|
+
chainNamespace
|
|
67
|
+
} = currentChainConfig;
|
|
68
|
+
const authServer = authServerUrl || utils.citadelServerUrl(this.coreOptions.authBuildEnv);
|
|
69
|
+
const payload = {
|
|
70
|
+
domain: window.location.origin,
|
|
71
|
+
uri: window.location.href,
|
|
72
|
+
address: accountsToUse[0],
|
|
73
|
+
chainId: parseInt(chainId, 16),
|
|
74
|
+
version: "1",
|
|
75
|
+
nonce: siwe.generateSiweNonce(),
|
|
76
|
+
issuedAt: new Date().toISOString()
|
|
77
|
+
};
|
|
78
|
+
const challenge = await baseControllers.signChallenge(payload, chainNamespace, authServer);
|
|
79
|
+
const signedMessage = await solana.walletSignMessage(this.solanaWallet, challenge, accountsToUse[0]);
|
|
80
|
+
return {
|
|
81
|
+
challenge,
|
|
82
|
+
signature: signedMessage,
|
|
83
|
+
chainNamespace
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
async disconnectSession() {
|
|
87
|
+
super.checkDisconnectionRequirements();
|
|
88
|
+
await this.clearWalletSession();
|
|
98
89
|
}
|
|
99
90
|
async disconnect() {
|
|
100
91
|
this.rehydrated = false;
|
|
@@ -5,17 +5,19 @@ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
|
5
5
|
require('@segment/analytics-next');
|
|
6
6
|
require('../../base/loglevel.js');
|
|
7
7
|
var IChainInterface = require('../../base/chain/IChainInterface.js');
|
|
8
|
+
var baseControllers = require('@toruslabs/base-controllers');
|
|
9
|
+
require('@toruslabs/session-manager');
|
|
8
10
|
require('@web3auth/auth');
|
|
9
11
|
var index$1 = require('../../base/errors/index.js');
|
|
12
|
+
require('@toruslabs/constants');
|
|
13
|
+
require('@toruslabs/http-helpers');
|
|
14
|
+
require('../../base/constants.js');
|
|
10
15
|
var index = require('../../base/wallet/index.js');
|
|
11
16
|
require('../../base/connector/connectorStatus.js');
|
|
12
17
|
var constants = require('../../base/connector/constants.js');
|
|
13
18
|
require('jwt-decode');
|
|
14
19
|
require('../../base/plugin/errors.js');
|
|
15
20
|
require('../../base/plugin/IPlugin.js');
|
|
16
|
-
var baseControllers = require('@toruslabs/base-controllers');
|
|
17
|
-
require('@toruslabs/constants');
|
|
18
|
-
require('@toruslabs/http-helpers');
|
|
19
21
|
var baseEvmConnector = require('../base-evm-connector/baseEvmConnector.js');
|
|
20
22
|
|
|
21
23
|
class CoinbaseConnector extends baseEvmConnector.BaseEvmConnector {
|
|
@@ -64,12 +66,12 @@ class CoinbaseConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
64
66
|
try {
|
|
65
67
|
if (options.autoConnect) {
|
|
66
68
|
this.rehydrated = true;
|
|
67
|
-
const
|
|
69
|
+
const connection = await this.connect({
|
|
68
70
|
chainId: options.chainId,
|
|
69
|
-
|
|
71
|
+
getAuthTokenInfo: options.getAuthTokenInfo
|
|
70
72
|
});
|
|
71
73
|
// the connect function could fail silently as well.
|
|
72
|
-
if (!
|
|
74
|
+
if (!connection) {
|
|
73
75
|
this.rehydrated = false;
|
|
74
76
|
throw index$1.WalletLoginError.connectionError("Failed to rehydrate.");
|
|
75
77
|
}
|
|
@@ -80,7 +82,7 @@ class CoinbaseConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
80
82
|
}
|
|
81
83
|
async connect({
|
|
82
84
|
chainId,
|
|
83
|
-
|
|
85
|
+
getAuthTokenInfo
|
|
84
86
|
}) {
|
|
85
87
|
super.checkConnectionRequirements();
|
|
86
88
|
if (!this.coinbaseProvider) throw index$1.WalletLoginError.notConnectedError("Connector is not initialized");
|
|
@@ -106,17 +108,20 @@ class CoinbaseConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
106
108
|
// ready to be connected again
|
|
107
109
|
this.disconnect();
|
|
108
110
|
});
|
|
109
|
-
let identityTokenInfo;
|
|
110
111
|
this.emit(constants.CONNECTOR_EVENTS.CONNECTED, {
|
|
111
|
-
|
|
112
|
+
connectorName: index.WALLET_CONNECTORS.COINBASE,
|
|
112
113
|
reconnected: this.rehydrated,
|
|
113
|
-
|
|
114
|
-
|
|
114
|
+
ethereumProvider: this.provider,
|
|
115
|
+
solanaWallet: null
|
|
115
116
|
});
|
|
116
|
-
if (
|
|
117
|
-
|
|
117
|
+
if (getAuthTokenInfo) {
|
|
118
|
+
await this.getAuthTokenInfo();
|
|
118
119
|
}
|
|
119
|
-
return
|
|
120
|
+
return {
|
|
121
|
+
ethereumProvider: this.provider,
|
|
122
|
+
solanaWallet: null,
|
|
123
|
+
connectorName: this.name
|
|
124
|
+
};
|
|
120
125
|
} catch (error) {
|
|
121
126
|
// ready again to be connected
|
|
122
127
|
this.status = constants.CONNECTOR_STATUS.READY;
|
|
@@ -5,17 +5,19 @@ require('@babel/runtime/helpers/objectSpread2');
|
|
|
5
5
|
require('@segment/analytics-next');
|
|
6
6
|
var loglevel = require('../../base/loglevel.js');
|
|
7
7
|
var IChainInterface = require('../../base/chain/IChainInterface.js');
|
|
8
|
+
var baseControllers = require('@toruslabs/base-controllers');
|
|
9
|
+
require('@toruslabs/session-manager');
|
|
8
10
|
require('@web3auth/auth');
|
|
9
11
|
var index = require('../../base/errors/index.js');
|
|
12
|
+
var utils = require('../../base/utils.js');
|
|
10
13
|
require('../../base/wallet/index.js');
|
|
11
14
|
require('../../base/connector/connectorStatus.js');
|
|
12
15
|
var constants = require('../../base/connector/constants.js');
|
|
13
16
|
require('jwt-decode');
|
|
17
|
+
require('../../base/constants.js');
|
|
14
18
|
require('../../base/plugin/errors.js');
|
|
15
19
|
require('../../base/plugin/IPlugin.js');
|
|
16
|
-
var utils = require('../../base/utils.js');
|
|
17
20
|
var baseEvmConnector = require('../base-evm-connector/baseEvmConnector.js');
|
|
18
|
-
var baseControllers = require('@toruslabs/base-controllers');
|
|
19
21
|
|
|
20
22
|
class InjectedEvmConnector extends baseEvmConnector.BaseEvmConnector {
|
|
21
23
|
constructor(options) {
|
|
@@ -52,11 +54,11 @@ class InjectedEvmConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
52
54
|
loglevel.log.debug(`initializing ${this.name} injected connector`);
|
|
53
55
|
if (options.autoConnect) {
|
|
54
56
|
this.rehydrated = true;
|
|
55
|
-
const
|
|
57
|
+
const connection = await this.connect({
|
|
56
58
|
chainId: options.chainId,
|
|
57
|
-
|
|
59
|
+
getAuthTokenInfo: options.getAuthTokenInfo
|
|
58
60
|
});
|
|
59
|
-
if (!
|
|
61
|
+
if (!connection) {
|
|
60
62
|
this.rehydrated = false;
|
|
61
63
|
throw index.WalletLoginError.connectionError("Failed to rehydrate.");
|
|
62
64
|
}
|
|
@@ -67,7 +69,7 @@ class InjectedEvmConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
67
69
|
}
|
|
68
70
|
async connect({
|
|
69
71
|
chainId,
|
|
70
|
-
|
|
72
|
+
getAuthTokenInfo
|
|
71
73
|
}) {
|
|
72
74
|
super.checkConnectionRequirements();
|
|
73
75
|
if (!this.injectedProvider) throw index.WalletLoginError.connectionError("Injected provider is not available");
|
|
@@ -99,17 +101,20 @@ class InjectedEvmConnector extends baseEvmConnector.BaseEvmConnector {
|
|
|
99
101
|
}
|
|
100
102
|
};
|
|
101
103
|
this.injectedProvider.on("accountsChanged", accountDisconnectHandler);
|
|
102
|
-
let identityTokenInfo;
|
|
103
104
|
this.emit(constants.CONNECTOR_EVENTS.CONNECTED, {
|
|
104
|
-
|
|
105
|
+
connectorName: this.name,
|
|
105
106
|
reconnected: this.rehydrated,
|
|
106
|
-
|
|
107
|
-
|
|
107
|
+
ethereumProvider: this.injectedProvider,
|
|
108
|
+
solanaWallet: null
|
|
108
109
|
});
|
|
109
|
-
if (
|
|
110
|
-
|
|
110
|
+
if (getAuthTokenInfo) {
|
|
111
|
+
await this.getAuthTokenInfo();
|
|
111
112
|
}
|
|
112
|
-
return
|
|
113
|
+
return {
|
|
114
|
+
ethereumProvider: this.injectedProvider,
|
|
115
|
+
solanaWallet: null,
|
|
116
|
+
connectorName: this.name
|
|
117
|
+
};
|
|
113
118
|
} catch (error) {
|
|
114
119
|
// ready again to be connected
|
|
115
120
|
this.status = constants.CONNECTOR_STATUS.READY;
|