@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,20 +1,22 @@
|
|
|
1
1
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
2
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
+
import { CITADEL_SERVER_MAP } from '@toruslabs/constants';
|
|
4
|
+
import { put } from '@toruslabs/http-helpers';
|
|
3
5
|
import { SecurePubSub } from '@toruslabs/secure-pub-sub';
|
|
4
|
-
import { BUILD_ENV, UX_MODE, Auth, SDK_MODE, SUPPORTED_KEY_CURVES,
|
|
6
|
+
import { BUILD_ENV, UX_MODE, Auth, SDK_MODE, SUPPORTED_KEY_CURVES, generateRecordId, version, createHandler, PopupHandler, getUserId } from '@web3auth/auth';
|
|
5
7
|
import { WS_EMBED_LOGIN_MODE } from '@web3auth/ws-embed';
|
|
6
8
|
import deepmerge from 'deepmerge';
|
|
7
|
-
import { parseToken } from '../utils.js';
|
|
9
|
+
import { generateNonce, parseToken } from '../utils.js';
|
|
10
|
+
import { AuthSolanaWallet } from './authSolanaWallet.js';
|
|
8
11
|
import { BaseConnector } from '../../base/connector/baseConnector.js';
|
|
9
12
|
import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
|
|
10
13
|
import { CONNECTOR_NAMESPACES } from '../../base/chain/IChainInterface.js';
|
|
11
14
|
import { CONNECTOR_CATEGORY, CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
|
|
12
15
|
import { WalletInitializationError, WalletLoginError, Web3AuthError } from '../../base/errors/index.js';
|
|
13
16
|
import { log } from '../../base/loglevel.js';
|
|
17
|
+
import { getCaipChainId } from '../../base/utils.js';
|
|
14
18
|
import { CONNECTED_STATUSES } from '../../base/connector/connectorStatus.js';
|
|
15
19
|
import { CHAIN_NAMESPACES, cloneDeep } from '@toruslabs/base-controllers';
|
|
16
|
-
import '@toruslabs/constants';
|
|
17
|
-
import '@toruslabs/http-helpers';
|
|
18
20
|
|
|
19
21
|
class AuthConnector extends BaseConnector {
|
|
20
22
|
constructor(params) {
|
|
@@ -33,6 +35,7 @@ class AuthConnector extends BaseConnector {
|
|
|
33
35
|
_defineProperty(this, "wsEmbedInstance", null);
|
|
34
36
|
_defineProperty(this, "authConnectionConfig", []);
|
|
35
37
|
_defineProperty(this, "wsEmbedInstancePromise", null);
|
|
38
|
+
_defineProperty(this, "_solanaWallet", null);
|
|
36
39
|
this.authOptions = params.connectorSettings;
|
|
37
40
|
this.loginSettings = params.loginSettings || {
|
|
38
41
|
authConnection: ""
|
|
@@ -54,6 +57,9 @@ class AuthConnector extends BaseConnector {
|
|
|
54
57
|
get wsEmbed() {
|
|
55
58
|
return this.wsEmbedInstance;
|
|
56
59
|
}
|
|
60
|
+
get solanaWallet() {
|
|
61
|
+
return this._solanaWallet;
|
|
62
|
+
}
|
|
57
63
|
set provider(_) {
|
|
58
64
|
throw new Error("Not implemented");
|
|
59
65
|
}
|
|
@@ -88,7 +94,7 @@ class AuthConnector extends BaseConnector {
|
|
|
88
94
|
// making it async here to initialize provider.
|
|
89
95
|
const authInstancePromise = this.authInstance.init();
|
|
90
96
|
|
|
91
|
-
// Use this for xrpl
|
|
97
|
+
// Use this for xrpl cases
|
|
92
98
|
if (this.coreOptions.privateKeyProvider) {
|
|
93
99
|
this.privateKeyProvider = this.coreOptions.privateKeyProvider;
|
|
94
100
|
} else {
|
|
@@ -110,6 +116,7 @@ class AuthConnector extends BaseConnector {
|
|
|
110
116
|
loginMode: WS_EMBED_LOGIN_MODE.PLUGIN,
|
|
111
117
|
chains: wsSupportedChains,
|
|
112
118
|
chainId,
|
|
119
|
+
buildEnv: this.authOptions.buildEnv,
|
|
113
120
|
whiteLabel: _objectSpread(_objectSpread({}, this.authOptions.whiteLabel), this.wsSettings.whiteLabel)
|
|
114
121
|
})).then(() => {
|
|
115
122
|
this.wsEmbedInstancePromise = null;
|
|
@@ -148,7 +155,7 @@ class AuthConnector extends BaseConnector {
|
|
|
148
155
|
this.rehydrated = true;
|
|
149
156
|
await this.connect({
|
|
150
157
|
chainId: options.chainId,
|
|
151
|
-
|
|
158
|
+
getAuthTokenInfo: options.getAuthTokenInfo
|
|
152
159
|
});
|
|
153
160
|
} else if (!sessionId && options.autoConnect) {
|
|
154
161
|
// if here, this means that the connector is cached but the sessionId is not available.
|
|
@@ -168,7 +175,11 @@ class AuthConnector extends BaseConnector {
|
|
|
168
175
|
}));
|
|
169
176
|
try {
|
|
170
177
|
await this.connectWithProvider(params);
|
|
171
|
-
return
|
|
178
|
+
return {
|
|
179
|
+
ethereumProvider: this.provider,
|
|
180
|
+
solanaWallet: this._solanaWallet,
|
|
181
|
+
connectorName: this.name
|
|
182
|
+
};
|
|
172
183
|
} catch (error) {
|
|
173
184
|
var _message;
|
|
174
185
|
log.error("Failed to connect with auth provider", error);
|
|
@@ -233,9 +244,10 @@ class AuthConnector extends BaseConnector {
|
|
|
233
244
|
this.status = CONNECTOR_STATUS.READY;
|
|
234
245
|
}
|
|
235
246
|
this.rehydrated = false;
|
|
247
|
+
this._solanaWallet = null;
|
|
236
248
|
this.emit(CONNECTOR_EVENTS.DISCONNECTED);
|
|
237
249
|
}
|
|
238
|
-
async
|
|
250
|
+
async getAuthTokenInfo() {
|
|
239
251
|
if (!this.canAuthorize) throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
240
252
|
this.status = CONNECTOR_STATUS.AUTHORIZING;
|
|
241
253
|
this.emit(CONNECTOR_EVENTS.AUTHORIZING, {
|
|
@@ -243,14 +255,19 @@ class AuthConnector extends BaseConnector {
|
|
|
243
255
|
});
|
|
244
256
|
const userInfo = await this.getUserInfo();
|
|
245
257
|
this.status = CONNECTOR_STATUS.AUTHORIZED;
|
|
258
|
+
const [accessToken, refreshToken] = await Promise.all([this.authInstance.authSessionManager.getAccessToken(), this.authInstance.authSessionManager.getRefreshToken()]);
|
|
246
259
|
this.emit(CONNECTOR_EVENTS.AUTHORIZED, {
|
|
247
260
|
connector: WALLET_CONNECTORS.AUTH,
|
|
248
|
-
|
|
249
|
-
idToken: userInfo.idToken
|
|
261
|
+
authTokenInfo: {
|
|
262
|
+
idToken: userInfo.idToken,
|
|
263
|
+
accessToken,
|
|
264
|
+
refreshToken
|
|
250
265
|
}
|
|
251
266
|
});
|
|
252
267
|
return {
|
|
253
|
-
idToken: userInfo.idToken
|
|
268
|
+
idToken: userInfo.idToken,
|
|
269
|
+
accessToken,
|
|
270
|
+
refreshToken
|
|
254
271
|
};
|
|
255
272
|
}
|
|
256
273
|
async getUserInfo() {
|
|
@@ -259,41 +276,29 @@ class AuthConnector extends BaseConnector {
|
|
|
259
276
|
const userInfo = this.authInstance.getUserInfo();
|
|
260
277
|
return userInfo;
|
|
261
278
|
}
|
|
262
|
-
|
|
263
|
-
// we don't support switching between different namespaces, except for solana and evm
|
|
264
279
|
async switchChain(params, init = false) {
|
|
265
280
|
super.checkSwitchChainRequirements(params, init);
|
|
266
|
-
// get chains and namespaces
|
|
267
281
|
const {
|
|
268
282
|
chainId: newChainId
|
|
269
283
|
} = params;
|
|
270
284
|
const {
|
|
271
285
|
chainId: currentChainId
|
|
272
286
|
} = this.provider;
|
|
273
|
-
const {
|
|
274
|
-
chainNamespace: currentNamespace
|
|
275
|
-
} = this.getChain(currentChainId);
|
|
276
|
-
const {
|
|
277
|
-
chainNamespace: newNamespace
|
|
278
|
-
} = this.getChain(newChainId);
|
|
279
|
-
|
|
280
|
-
// skip if chainId is the same
|
|
281
287
|
if (currentChainId === newChainId) return;
|
|
282
|
-
|
|
288
|
+
const newChainConfig = this.coreOptions.chains.find(c => c.chainId === newChainId);
|
|
289
|
+
if (!newChainConfig) throw WalletInitializationError.invalidParams("Chain config is not available");
|
|
290
|
+
if (newChainConfig.chainNamespace === CHAIN_NAMESPACES.SOLANA || newChainConfig.chainNamespace === CHAIN_NAMESPACES.EIP155) {
|
|
283
291
|
var _this$wsEmbedInstance2;
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
await ((_this$wsEmbedInstance2 = this.wsEmbedInstance.provider) === null || _this$wsEmbedInstance2 === void 0 ? void 0 : _this$wsEmbedInstance2.request({
|
|
292
|
+
if (!((_this$wsEmbedInstance2 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance2 !== void 0 && _this$wsEmbedInstance2.provider)) throw WalletInitializationError.notReady("Wallet embed is not ready");
|
|
293
|
+
const fullChainId = getCaipChainId(newChainConfig);
|
|
294
|
+
await this.wsEmbedInstance.provider.request({
|
|
288
295
|
method: "wallet_switchChain",
|
|
289
296
|
params: {
|
|
290
297
|
chainId: fullChainId
|
|
291
298
|
}
|
|
292
|
-
})
|
|
299
|
+
});
|
|
293
300
|
} else {
|
|
294
301
|
var _this$privateKeyProvi;
|
|
295
|
-
// cannot switch to other namespaces
|
|
296
|
-
if (currentNamespace !== newNamespace) throw WalletLoginError.connectionError("Cannot switch to other chain namespace");
|
|
297
302
|
await ((_this$privateKeyProvi = this.privateKeyProvider) === null || _this$privateKeyProvi === void 0 ? void 0 : _this$privateKeyProvi.switchChain(params));
|
|
298
303
|
}
|
|
299
304
|
}
|
|
@@ -322,8 +327,10 @@ class AuthConnector extends BaseConnector {
|
|
|
322
327
|
});
|
|
323
328
|
return providerConfig;
|
|
324
329
|
}
|
|
325
|
-
|
|
326
|
-
|
|
330
|
+
setupSolanaWallet() {
|
|
331
|
+
const solanaChains = this.coreOptions.chains.filter(c => c.chainNamespace === CHAIN_NAMESPACES.SOLANA);
|
|
332
|
+
if (solanaChains.length === 0 || !this.provider) return;
|
|
333
|
+
this._solanaWallet = new AuthSolanaWallet(this.provider, solanaChains);
|
|
327
334
|
}
|
|
328
335
|
_getFinalPrivKey() {
|
|
329
336
|
if (!this.authInstance) return "";
|
|
@@ -384,24 +391,26 @@ class AuthConnector extends BaseConnector {
|
|
|
384
391
|
sessionNamespace
|
|
385
392
|
} = this.authInstance || {};
|
|
386
393
|
if (sessionId) {
|
|
387
|
-
|
|
394
|
+
this.wsEmbedInstance.setAccessTokenProvider(this.accessTokenProvider.bind(this));
|
|
395
|
+
const isLoggedIn = await this.wsEmbedInstance.connectWithSession({
|
|
388
396
|
sessionId,
|
|
389
|
-
sessionNamespace
|
|
397
|
+
sessionNamespace,
|
|
398
|
+
idToken: await this.getIdToken()
|
|
390
399
|
});
|
|
391
400
|
if (isLoggedIn) {
|
|
392
401
|
var _this$wsEmbedInstance3;
|
|
393
|
-
|
|
394
|
-
//
|
|
395
|
-
|
|
402
|
+
this.setupSolanaWallet();
|
|
403
|
+
// if getAuthTokenInfo is true, then get auth token info
|
|
404
|
+
// No need to get auth token info for auth connector as it is already handled
|
|
396
405
|
this.status = CONNECTOR_STATUS.CONNECTED;
|
|
397
406
|
this.emit(CONNECTOR_EVENTS.CONNECTED, {
|
|
398
|
-
|
|
407
|
+
connectorName: WALLET_CONNECTORS.AUTH,
|
|
399
408
|
reconnected: this.rehydrated,
|
|
400
|
-
|
|
401
|
-
|
|
409
|
+
ethereumProvider: this.provider,
|
|
410
|
+
solanaWallet: this._solanaWallet
|
|
402
411
|
});
|
|
403
|
-
if (params.
|
|
404
|
-
|
|
412
|
+
if (params.getAuthTokenInfo) {
|
|
413
|
+
await this.getAuthTokenInfo();
|
|
405
414
|
}
|
|
406
415
|
// handle disconnect from ws embed
|
|
407
416
|
(_this$wsEmbedInstance3 = this.wsEmbedInstance) === null || _this$wsEmbedInstance3 === void 0 || _this$wsEmbedInstance3.provider.on("accountsChanged", (accounts = []) => {
|
|
@@ -418,9 +427,10 @@ class AuthConnector extends BaseConnector {
|
|
|
418
427
|
await this.privateKeyProvider.setupProvider(finalPrivKey, params.chainId);
|
|
419
428
|
this.status = CONNECTOR_STATUS.CONNECTED;
|
|
420
429
|
this.emit(CONNECTOR_EVENTS.CONNECTED, {
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
430
|
+
connectorName: WALLET_CONNECTORS.AUTH,
|
|
431
|
+
ethereumProvider: this.provider,
|
|
432
|
+
solanaWallet: this._solanaWallet,
|
|
433
|
+
reconnected: this.rehydrated
|
|
424
434
|
});
|
|
425
435
|
}
|
|
426
436
|
}
|
|
@@ -436,10 +446,13 @@ class AuthConnector extends BaseConnector {
|
|
|
436
446
|
const jwtParams = _objectSpread(_objectSpread(_objectSpread({}, providerConfig.jwtParameters || {}), params.extraLoginOptions || {}), {}, {
|
|
437
447
|
login_hint: params.loginHint || ((_params$extraLoginOpt3 = params.extraLoginOptions) === null || _params$extraLoginOpt3 === void 0 ? void 0 : _params$extraLoginOpt3.login_hint)
|
|
438
448
|
});
|
|
439
|
-
const nonce =
|
|
449
|
+
const nonce = generateNonce();
|
|
440
450
|
|
|
441
451
|
// post a message to the auth provider to indicate that login has been initiated.
|
|
442
|
-
const loginParams = cloneDeep(params)
|
|
452
|
+
const loginParams = _objectSpread(_objectSpread({}, cloneDeep(params)), {}, {
|
|
453
|
+
recordId: generateRecordId(),
|
|
454
|
+
loginSource: "web3auth-web"
|
|
455
|
+
});
|
|
443
456
|
loginParams.extraLoginOptions = _objectSpread(_objectSpread({}, loginParams.extraLoginOptions || {}), {}, {
|
|
444
457
|
login_hint: params.loginHint || ((_params$extraLoginOpt4 = params.extraLoginOptions) === null || _params$extraLoginOpt4 === void 0 ? void 0 : _params$extraLoginOpt4.login_hint)
|
|
445
458
|
});
|
|
@@ -462,10 +475,11 @@ class AuthConnector extends BaseConnector {
|
|
|
462
475
|
version: version.split(".")[0],
|
|
463
476
|
web3AuthNetwork: this.coreOptions.web3AuthNetwork,
|
|
464
477
|
web3AuthClientId: this.coreOptions.clientId,
|
|
465
|
-
originData: this.
|
|
478
|
+
originData: this.getOriginData()
|
|
466
479
|
},
|
|
467
480
|
web3AuthClientId: this.coreOptions.clientId,
|
|
468
|
-
web3AuthNetwork: this.coreOptions.web3AuthNetwork
|
|
481
|
+
web3AuthNetwork: this.coreOptions.web3AuthNetwork,
|
|
482
|
+
storageServerUrl: this.authInstance.options.storageServerUrl
|
|
469
483
|
};
|
|
470
484
|
const loginHandler = createHandler(popupParams);
|
|
471
485
|
const verifierWindow = new PopupHandler({
|
|
@@ -474,6 +488,9 @@ class AuthConnector extends BaseConnector {
|
|
|
474
488
|
});
|
|
475
489
|
if (this.authOptions.uxMode === UX_MODE.REDIRECT) return verifierWindow.redirect(this.authOptions.replaceUrlOnRedirect);
|
|
476
490
|
let isClosedWindow = false;
|
|
491
|
+
this.auditOAuditProgress(loginParams).catch(error => {
|
|
492
|
+
log.error("Error reporting `oauthInitiated` audit progress", error);
|
|
493
|
+
});
|
|
477
494
|
return new Promise((resolve, reject) => {
|
|
478
495
|
verifierWindow.open().catch(error => {
|
|
479
496
|
log.error("Error during login with social", error);
|
|
@@ -483,7 +500,9 @@ class AuthConnector extends BaseConnector {
|
|
|
483
500
|
|
|
484
501
|
// this is to close the popup when the login is finished.
|
|
485
502
|
const securePubSub = new SecurePubSub({
|
|
486
|
-
sameIpCheck: true
|
|
503
|
+
sameIpCheck: true,
|
|
504
|
+
serverUrl: this.authInstance.options.storageServerUrl,
|
|
505
|
+
socketUrl: this.authInstance.options.sessionSocketUrl
|
|
487
506
|
});
|
|
488
507
|
securePubSub.subscribe(`web3auth-login-${nonce}`).then(data => {
|
|
489
508
|
const parsedData = JSON.parse(data || "{}");
|
|
@@ -500,6 +519,9 @@ class AuthConnector extends BaseConnector {
|
|
|
500
519
|
}).catch(error => {
|
|
501
520
|
// swallow the error, dont need to throw.
|
|
502
521
|
log.error("Error during login with social", error);
|
|
522
|
+
this.auditOAuditProgress(loginParams, "failed").catch(error => {
|
|
523
|
+
log.error("Error reporting `oauthFailed` audit progress", error);
|
|
524
|
+
});
|
|
503
525
|
});
|
|
504
526
|
verifierWindow.once("close", () => {
|
|
505
527
|
if (!isClosedWindow) {
|
|
@@ -509,6 +531,9 @@ class AuthConnector extends BaseConnector {
|
|
|
509
531
|
}
|
|
510
532
|
});
|
|
511
533
|
this.authInstance.postLoginInitiatedMessage(loginParams, nonce).then(resolve).catch(error => {
|
|
534
|
+
this.auditOAuditProgress(loginParams, "failed").catch(error => {
|
|
535
|
+
log.error("Error reporting `oauthFailed` audit progress", error);
|
|
536
|
+
});
|
|
512
537
|
if (error instanceof Web3AuthError) {
|
|
513
538
|
throw error;
|
|
514
539
|
}
|
|
@@ -516,6 +541,39 @@ class AuthConnector extends BaseConnector {
|
|
|
516
541
|
});
|
|
517
542
|
});
|
|
518
543
|
}
|
|
544
|
+
async accessTokenProvider({
|
|
545
|
+
forceRefresh
|
|
546
|
+
}) {
|
|
547
|
+
if (forceRefresh) {
|
|
548
|
+
await this.authInstance.refreshSession();
|
|
549
|
+
}
|
|
550
|
+
return this.authInstance.getAccessToken();
|
|
551
|
+
}
|
|
552
|
+
async getIdToken() {
|
|
553
|
+
if (!this.authInstance) throw WalletInitializationError.notReady("authInstance is not ready");
|
|
554
|
+
return this.authInstance.authSessionManager.getIdToken();
|
|
555
|
+
}
|
|
556
|
+
getOriginData() {
|
|
557
|
+
try {
|
|
558
|
+
const {
|
|
559
|
+
originData,
|
|
560
|
+
redirectUrl
|
|
561
|
+
} = this.authInstance.options;
|
|
562
|
+
const origin = new URL(redirectUrl).origin;
|
|
563
|
+
if (originData) {
|
|
564
|
+
const dappOriginData = originData[origin];
|
|
565
|
+
if (dappOriginData) {
|
|
566
|
+
return JSON.stringify({
|
|
567
|
+
[origin]: dappOriginData
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
return undefined;
|
|
572
|
+
} catch (error) {
|
|
573
|
+
log.error("Error getting origin data", error);
|
|
574
|
+
return undefined;
|
|
575
|
+
}
|
|
576
|
+
}
|
|
519
577
|
connectWithJwtLogin(params) {
|
|
520
578
|
var _params$extraLoginOpt5, _params$extraLoginOpt7;
|
|
521
579
|
const loginConfig = this.getOAuthProviderConfig({
|
|
@@ -556,6 +614,41 @@ class AuthConnector extends BaseConnector {
|
|
|
556
614
|
delete loginParams.chainId;
|
|
557
615
|
return this.authInstance.postLoginInitiatedMessage(loginParams);
|
|
558
616
|
}
|
|
617
|
+
async auditOAuditProgress(loginParams, status) {
|
|
618
|
+
const {
|
|
619
|
+
authConnection,
|
|
620
|
+
authConnectionId,
|
|
621
|
+
groupedAuthConnectionId,
|
|
622
|
+
recordId,
|
|
623
|
+
loginSource
|
|
624
|
+
} = loginParams;
|
|
625
|
+
const {
|
|
626
|
+
authBuildEnv = BUILD_ENV.PRODUCTION,
|
|
627
|
+
web3AuthNetwork,
|
|
628
|
+
clientId
|
|
629
|
+
} = this.coreOptions;
|
|
630
|
+
const auditServerUrl = `${CITADEL_SERVER_MAP[authBuildEnv]}/v1/auth/audit`;
|
|
631
|
+
const progressFlag = {
|
|
632
|
+
oauthInitiated: true
|
|
633
|
+
};
|
|
634
|
+
const auditPayload = _objectSpread({
|
|
635
|
+
authConnection,
|
|
636
|
+
authConnectionId,
|
|
637
|
+
groupedAuthConnectionId,
|
|
638
|
+
recordId,
|
|
639
|
+
source: loginSource,
|
|
640
|
+
web3AuthNetwork,
|
|
641
|
+
web3AuthClientId: clientId
|
|
642
|
+
}, progressFlag);
|
|
643
|
+
if (status === "failed") {
|
|
644
|
+
auditPayload.oauthFailed = true;
|
|
645
|
+
} else if (status === "completed") {
|
|
646
|
+
auditPayload.oauthCompleted = true;
|
|
647
|
+
} else {
|
|
648
|
+
auditPayload.oauthInitiated = true;
|
|
649
|
+
}
|
|
650
|
+
await put(auditServerUrl, auditPayload);
|
|
651
|
+
}
|
|
559
652
|
}
|
|
560
653
|
const authConnector = params => {
|
|
561
654
|
return ({
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
+
import { getBase64EncodedWireTransaction, getBase64Decoder, getBase58Encoder, getTransactionDecoder, getBase64Encoder } 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 { WEB3AUTH_ICON } from '../../base/wallet/index.js';
|
|
8
|
+
import { WalletLoginError } from '../../base/errors/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 base64Decoder = getBase64Decoder();
|
|
14
|
+
const base64Encoder = getBase64Encoder();
|
|
15
|
+
const transactionDecoder = getTransactionDecoder();
|
|
16
|
+
const ACCOUNT_FEATURES = [SolanaSignAndSendTransaction, SolanaSignMessage, SolanaSignTransaction];
|
|
17
|
+
function solanaWalletChainsFromConfigs(solanaChainConfigs) {
|
|
18
|
+
const ids = solanaChainConfigs.map(getSolanaChainByChainConfig).filter(id => id != null);
|
|
19
|
+
const unique = [...new Set(ids)];
|
|
20
|
+
return unique;
|
|
21
|
+
}
|
|
22
|
+
const SOLANA_PROVIDER_HEX_CHAIN_IDS = new Set(Object.keys(SOLANA_CAIP_CHAIN_MAP).map(id => id.toLowerCase()));
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* AuthSolanaWallet implements the Wallet Standard interface, wrapping a JRPC provider.
|
|
26
|
+
* Used by AuthConnector so consumers get a standards-compliant Wallet from `connection.solanaWallet`.
|
|
27
|
+
*
|
|
28
|
+
* {@link Wallet.accounts} is synchronous in the Wallet Standard; it returns `[]` until accounts have been loaded
|
|
29
|
+
* (`null` internally). The first async operation ({@link StandardConnect}, sign, etc.) calls `ensureAccountsLoaded`, which
|
|
30
|
+
* requires {@link IProvider.chainId} to be a configured Solana network (see {@link SOLANA_CAIP_CHAIN_MAP}) before {@link SOLANA_METHOD_TYPES.GET_ACCOUNTS}.
|
|
31
|
+
*/
|
|
32
|
+
class AuthSolanaWallet {
|
|
33
|
+
/**
|
|
34
|
+
* @param solanaChainConfigs - All configured Solana {@link CustomChainConfig} entries (same namespace).
|
|
35
|
+
*/
|
|
36
|
+
constructor(_provider, solanaChainConfigs) {
|
|
37
|
+
this._provider = _provider;
|
|
38
|
+
_defineProperty(this, "version", "1.0.0");
|
|
39
|
+
_defineProperty(this, "name", "Web3Auth");
|
|
40
|
+
_defineProperty(this, "icon", WEB3AUTH_ICON);
|
|
41
|
+
_defineProperty(this, "chains", void 0);
|
|
42
|
+
_defineProperty(this, "features", void 0);
|
|
43
|
+
_defineProperty(this, "_accounts", null);
|
|
44
|
+
_defineProperty(this, "_listeners", {});
|
|
45
|
+
this.chains = solanaWalletChainsFromConfigs(solanaChainConfigs);
|
|
46
|
+
this.features = {
|
|
47
|
+
[StandardConnect]: {
|
|
48
|
+
version: "1.0.0",
|
|
49
|
+
connect: async () => {
|
|
50
|
+
await this.ensureAccountsLoaded();
|
|
51
|
+
return {
|
|
52
|
+
accounts: this.accounts
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
[StandardDisconnect]: {
|
|
57
|
+
version: "1.0.0",
|
|
58
|
+
disconnect: async () => {}
|
|
59
|
+
},
|
|
60
|
+
[StandardEvents]: {
|
|
61
|
+
version: "1.0.0",
|
|
62
|
+
on: (event, listener) => {
|
|
63
|
+
var _this$_listeners, _this$_listeners$even;
|
|
64
|
+
((_this$_listeners$even = (_this$_listeners = this._listeners)[event]) !== null && _this$_listeners$even !== void 0 ? _this$_listeners$even : _this$_listeners[event] = new Set()).add(listener);
|
|
65
|
+
return () => this._listeners[event].delete(listener);
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
[SolanaSignAndSendTransaction]: {
|
|
69
|
+
version: "1.0.0",
|
|
70
|
+
supportedTransactionVersions: ["legacy", 0],
|
|
71
|
+
signAndSendTransaction: async (...inputs) => {
|
|
72
|
+
await this.ensureAccountsLoaded();
|
|
73
|
+
return Promise.all(inputs.map(async input => {
|
|
74
|
+
const base64Tx = base64Decoder.decode(input.transaction);
|
|
75
|
+
const signature = await this._provider.request({
|
|
76
|
+
method: SOLANA_METHOD_TYPES.SEND_TRANSACTION,
|
|
77
|
+
params: {
|
|
78
|
+
message: base64Tx
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
return {
|
|
82
|
+
signature: new Uint8Array(base58Encoder.encode(signature))
|
|
83
|
+
};
|
|
84
|
+
}));
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
[SolanaSignMessage]: {
|
|
88
|
+
version: "1.0.0",
|
|
89
|
+
signMessage: async (...inputs) => {
|
|
90
|
+
await this.ensureAccountsLoaded();
|
|
91
|
+
return Promise.all(inputs.map(async input => {
|
|
92
|
+
const message = new TextDecoder().decode(input.message);
|
|
93
|
+
const signature = await this._provider.request({
|
|
94
|
+
method: SOLANA_METHOD_TYPES.SIGN_MESSAGE,
|
|
95
|
+
params: {
|
|
96
|
+
data: message,
|
|
97
|
+
from: input.account.address
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
return {
|
|
101
|
+
signedMessage: new Uint8Array(input.message),
|
|
102
|
+
signature: new Uint8Array(base58Encoder.encode(signature))
|
|
103
|
+
};
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
[SolanaSignTransaction]: {
|
|
108
|
+
version: "1.0.0",
|
|
109
|
+
supportedTransactionVersions: ["legacy", 0],
|
|
110
|
+
signTransaction: async (...inputs) => {
|
|
111
|
+
await this.ensureAccountsLoaded();
|
|
112
|
+
return Promise.all(inputs.map(async input => {
|
|
113
|
+
const base64Tx = base64Decoder.decode(input.transaction);
|
|
114
|
+
const signatureBase58 = await this._provider.request({
|
|
115
|
+
method: SOLANA_METHOD_TYPES.SIGN_TRANSACTION,
|
|
116
|
+
params: {
|
|
117
|
+
message: base64Tx
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
const sigBytes = new Uint8Array(base58Encoder.encode(signatureBase58));
|
|
121
|
+
const decodedTx = transactionDecoder.decode(input.transaction);
|
|
122
|
+
const signedTx = _objectSpread(_objectSpread({}, decodedTx), {}, {
|
|
123
|
+
signatures: _objectSpread(_objectSpread({}, decodedTx.signatures), {}, {
|
|
124
|
+
[input.account.address]: sigBytes
|
|
125
|
+
})
|
|
126
|
+
});
|
|
127
|
+
const signedBase64 = getBase64EncodedWireTransaction(signedTx);
|
|
128
|
+
return {
|
|
129
|
+
signedTransaction: new Uint8Array(base64Encoder.encode(signedBase64))
|
|
130
|
+
};
|
|
131
|
+
}));
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/**
|
|
138
|
+
* Wallet Standard requires a synchronous getter; RPC runs on first async wallet operation instead.
|
|
139
|
+
*/
|
|
140
|
+
get accounts() {
|
|
141
|
+
var _this$_accounts;
|
|
142
|
+
return (_this$_accounts = this._accounts) !== null && _this$_accounts !== void 0 ? _this$_accounts : [];
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/** Throws if the embed is not on Solana; otherwise loads accounts once via {@link SOLANA_METHOD_TYPES.GET_ACCOUNTS}. */
|
|
146
|
+
async ensureAccountsLoaded() {
|
|
147
|
+
var _await$this$_provider;
|
|
148
|
+
// assert solana chain
|
|
149
|
+
const chainId = this._provider.chainId;
|
|
150
|
+
if (!SOLANA_PROVIDER_HEX_CHAIN_IDS.has(chainId.toLowerCase())) throw WalletLoginError.unsupportedOperation(`Solana wallet operations require the embedded provider to be on a Solana network (current chainId: ${chainId}). Switch chain first.`);
|
|
151
|
+
if (this._accounts !== null) return;
|
|
152
|
+
const addresses = (_await$this$_provider = await this._provider.request({
|
|
153
|
+
method: SOLANA_METHOD_TYPES.GET_ACCOUNTS
|
|
154
|
+
})) !== null && _await$this$_provider !== void 0 ? _await$this$_provider : [];
|
|
155
|
+
const accountChains = this.chains;
|
|
156
|
+
this._accounts = addresses.map(address => ({
|
|
157
|
+
address,
|
|
158
|
+
publicKey: new Uint8Array(base58Encoder.encode(address)),
|
|
159
|
+
chains: accountChains.length ? accountChains : [],
|
|
160
|
+
features: ACCOUNT_FEATURES
|
|
161
|
+
}));
|
|
162
|
+
this.emitChange({
|
|
163
|
+
accounts: this.accounts
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
emitChange(properties) {
|
|
167
|
+
const listeners = this._listeners.change;
|
|
168
|
+
if (!listeners) return;
|
|
169
|
+
listeners.forEach(listener => {
|
|
170
|
+
listener(properties);
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
export { AuthSolanaWallet };
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { signChallenge
|
|
1
|
+
import { signChallenge } from '@toruslabs/base-controllers';
|
|
2
|
+
import { bytesToHexPrefixedString, utf8ToBytes } from '@toruslabs/metadata-helpers';
|
|
2
3
|
import { EVM_METHOD_TYPES } from '@web3auth/ws-embed';
|
|
3
|
-
import {
|
|
4
|
+
import { generateSiweNonce } from 'viem/siwe';
|
|
5
|
+
import { citadelServerUrl } from '../../base/utils.js';
|
|
4
6
|
import { BaseConnector } from '../../base/connector/baseConnector.js';
|
|
5
7
|
import { WalletLoginError, WalletInitializationError } from '../../base/errors/index.js';
|
|
6
8
|
import { CONNECTOR_STATUS, CONNECTOR_EVENTS } from '../../base/connector/constants.js';
|
|
7
9
|
|
|
8
10
|
class BaseEvmConnector extends BaseConnector {
|
|
9
11
|
async init(_) {}
|
|
10
|
-
async
|
|
12
|
+
async getAuthTokenInfo() {
|
|
11
13
|
if (!this.provider || !this.canAuthorize) throw WalletLoginError.notConnectedError();
|
|
12
14
|
if (!this.coreOptions) throw WalletInitializationError.invalidParams("Please initialize Web3Auth with valid options");
|
|
13
15
|
this.status = CONNECTOR_STATUS.AUTHORIZING;
|
|
@@ -18,22 +20,8 @@ class BaseEvmConnector extends BaseConnector {
|
|
|
18
20
|
method: EVM_METHOD_TYPES.GET_ACCOUNTS
|
|
19
21
|
});
|
|
20
22
|
if (accounts && accounts.length > 0) {
|
|
21
|
-
const
|
|
22
|
-
if (
|
|
23
|
-
const isExpired = checkIfTokenIsExpired(existingToken);
|
|
24
|
-
if (!isExpired) {
|
|
25
|
-
this.status = CONNECTOR_STATUS.AUTHORIZED;
|
|
26
|
-
this.emit(CONNECTOR_EVENTS.AUTHORIZED, {
|
|
27
|
-
connector: this.name,
|
|
28
|
-
identityTokenInfo: {
|
|
29
|
-
idToken: existingToken
|
|
30
|
-
}
|
|
31
|
-
});
|
|
32
|
-
return {
|
|
33
|
-
idToken: existingToken
|
|
34
|
-
};
|
|
35
|
-
}
|
|
36
|
-
}
|
|
23
|
+
const cached = await this.getCachedOrNullAuthTokenInfo(accounts[0]);
|
|
24
|
+
if (cached) return cached;
|
|
37
25
|
const chainId = await this.provider.request({
|
|
38
26
|
method: "eth_chainId"
|
|
39
27
|
});
|
|
@@ -42,44 +30,34 @@ class BaseEvmConnector extends BaseConnector {
|
|
|
42
30
|
const {
|
|
43
31
|
chainNamespace
|
|
44
32
|
} = currentChainConfig;
|
|
33
|
+
const authServer = citadelServerUrl(this.coreOptions.authBuildEnv);
|
|
45
34
|
const payload = {
|
|
46
35
|
domain: window.location.origin,
|
|
47
36
|
uri: window.location.href,
|
|
48
37
|
address: accounts[0],
|
|
49
38
|
chainId: parseInt(chainId, 16),
|
|
50
39
|
version: "1",
|
|
51
|
-
nonce:
|
|
40
|
+
nonce: generateSiweNonce(),
|
|
52
41
|
issuedAt: new Date().toISOString()
|
|
53
42
|
};
|
|
54
|
-
const challenge = await signChallenge(payload, chainNamespace);
|
|
55
|
-
const hexChallenge =
|
|
43
|
+
const challenge = await signChallenge(payload, chainNamespace, authServer);
|
|
44
|
+
const hexChallenge = bytesToHexPrefixedString(utf8ToBytes(challenge));
|
|
56
45
|
const signedMessage = await this.provider.request({
|
|
57
46
|
method: EVM_METHOD_TYPES.PERSONAL_SIGN,
|
|
58
47
|
params: [hexChallenge, accounts[0]]
|
|
59
48
|
});
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
identityTokenInfo: {
|
|
66
|
-
idToken
|
|
67
|
-
}
|
|
49
|
+
return this.verifyAndAuthorize({
|
|
50
|
+
chainNamespace,
|
|
51
|
+
signedMessage,
|
|
52
|
+
challenge,
|
|
53
|
+
authServer
|
|
68
54
|
});
|
|
69
|
-
return {
|
|
70
|
-
idToken
|
|
71
|
-
};
|
|
72
55
|
}
|
|
73
56
|
throw WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
74
57
|
}
|
|
75
58
|
async disconnectSession() {
|
|
76
59
|
super.checkDisconnectionRequirements();
|
|
77
|
-
|
|
78
|
-
method: "eth_accounts"
|
|
79
|
-
});
|
|
80
|
-
if (accounts && accounts.length > 0) {
|
|
81
|
-
clearToken(accounts[0], this.name);
|
|
82
|
-
}
|
|
60
|
+
await this.clearWalletSession();
|
|
83
61
|
}
|
|
84
62
|
async disconnect() {
|
|
85
63
|
this.rehydrated = false;
|