@web3auth/no-modal 10.0.0-beta.1 → 10.0.0-beta.10
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 +2 -1
- package/dist/lib.cjs/base/connector/constants.js +3 -1
- package/dist/lib.cjs/base/constants.js +7 -0
- package/dist/lib.cjs/base/cookie.js +38 -0
- package/dist/lib.cjs/base/deserialize.js +13 -0
- package/dist/lib.cjs/base/errors/index.js +3 -22
- package/dist/lib.cjs/base/utils.js +24 -6
- package/dist/lib.cjs/base/wallet/index.js +2 -4
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +63 -20
- package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +13 -5
- package/dist/lib.cjs/connectors/coinbase-connector/index.js +7 -0
- package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +7 -3
- package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +7 -4
- package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +43 -15
- package/dist/lib.cjs/connectors/utils.js +10 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +6 -1
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +6 -2
- package/dist/lib.cjs/index.js +13 -9
- package/dist/lib.cjs/noModal.js +190 -69
- package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +2 -2
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +1 -1
- package/dist/lib.cjs/providers/account-abstraction-provider/index.js +5 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +29 -2
- package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +25 -3
- package/dist/lib.cjs/providers/base-provider/baseProvider.js +2 -0
- package/dist/lib.cjs/providers/ethereum-mpc-provider/index.js +7 -0
- package/dist/lib.cjs/providers/xrpl-provider/index.js +9 -0
- package/dist/lib.cjs/react/Web3AuthProvider.js +19 -0
- package/dist/lib.cjs/react/{wallet-services-plugin/WalletServicesContext.js → context/WalletServicesInnerContext.js} +18 -33
- package/dist/lib.cjs/react/{no-modal → context}/Web3AuthInnerContext.js +37 -95
- package/dist/lib.cjs/react/hooks/useCheckout.js +45 -0
- package/dist/lib.cjs/react/hooks/useEnableMFA.js +30 -0
- package/dist/lib.cjs/react/hooks/useIdentityToken.js +42 -0
- package/dist/lib.cjs/react/hooks/useManageMFA.js +30 -0
- package/dist/lib.cjs/react/hooks/useSwap.js +45 -0
- package/dist/lib.cjs/react/hooks/useSwitchChain.js +32 -0
- package/dist/lib.cjs/react/hooks/useWalletConnectScanner.js +45 -0
- package/dist/lib.cjs/react/hooks/useWalletServicesPlugin.js +19 -0
- package/dist/lib.cjs/react/hooks/useWalletUI.js +45 -0
- package/dist/lib.cjs/react/hooks/useWeb3Auth.js +28 -0
- package/dist/lib.cjs/react/hooks/useWeb3AuthConnect.js +48 -0
- package/dist/lib.cjs/react/hooks/useWeb3AuthDisconnect.js +30 -0
- package/dist/lib.cjs/react/{no-modal/hooks/useWeb3Auth.js → hooks/useWeb3AuthInner.js} +9 -9
- package/dist/lib.cjs/react/hooks/useWeb3AuthUser.js +50 -0
- package/dist/lib.cjs/react/index.js +26 -9
- package/dist/lib.cjs/react/solana/hooks/useSignAndSendTransaction.js +35 -0
- package/dist/lib.cjs/react/solana/hooks/useSignMessage.js +36 -0
- package/dist/lib.cjs/react/solana/hooks/useSignTransaction.js +34 -0
- package/dist/lib.cjs/react/solana/hooks/useSolanaWallet.js +62 -0
- package/dist/lib.cjs/react/solana/index.js +13 -0
- package/dist/lib.cjs/react/wagmi/constants.js +16 -0
- package/dist/lib.cjs/react/wagmi/index.js +7 -0
- package/dist/lib.cjs/react/wagmi/provider.js +189 -0
- package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +4 -5
- package/dist/lib.cjs/types/base/connector/constants.d.ts +2 -0
- package/dist/lib.cjs/types/base/connector/interfaces.d.ts +18 -16
- package/dist/lib.cjs/types/base/constants.d.ts +5 -0
- package/dist/lib.cjs/types/base/cookie.d.ts +10 -0
- package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +40 -12
- package/dist/lib.cjs/types/base/deserialize.d.ts +3 -0
- package/dist/lib.cjs/types/base/errors/index.d.ts +1 -2
- package/dist/lib.cjs/types/base/hooks/index.d.ts +3 -23
- package/dist/lib.cjs/types/base/index.d.ts +1 -0
- package/dist/lib.cjs/types/base/interfaces.d.ts +9 -4
- package/dist/lib.cjs/types/base/plugin/IPlugin.d.ts +1 -1
- package/dist/lib.cjs/types/base/utils.d.ts +3 -1
- package/dist/lib.cjs/types/base/wallet/index.d.ts +18 -17
- package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +5 -6
- package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +3 -2
- package/dist/lib.cjs/types/connectors/coinbase-connector/coinbaseConnector.d.ts +1 -1
- package/dist/lib.cjs/types/connectors/index.d.ts +1 -1
- package/dist/lib.cjs/types/connectors/metamask-connector/index.d.ts +1 -1
- package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +2 -2
- package/dist/lib.cjs/types/connectors/utils.d.ts +8 -0
- package/dist/lib.cjs/types/noModal.d.ts +20 -9
- package/dist/lib.cjs/types/plugins/nft-checkout-plugin/plugin.d.ts +2 -2
- package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +2 -2
- package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +3 -2
- package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -1
- package/dist/lib.cjs/types/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +4 -1
- package/dist/lib.cjs/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +1 -1
- package/dist/lib.cjs/types/providers/index.d.ts +0 -2
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +1 -1
- package/dist/lib.cjs/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +1 -1
- package/dist/lib.cjs/types/react/context/WalletServicesInnerContext.d.ts +6 -0
- package/dist/lib.cjs/types/react/{no-modal → context}/Web3AuthInnerContext.d.ts +1 -1
- package/dist/lib.cjs/types/react/hooks/index.d.ts +13 -0
- package/dist/lib.cjs/types/react/hooks/useCheckout.d.ts +8 -0
- package/dist/lib.cjs/types/react/hooks/useEnableMFA.d.ts +7 -0
- package/dist/lib.cjs/types/react/hooks/useIdentityToken.d.ts +13 -0
- package/dist/lib.cjs/types/react/hooks/useManageMFA.d.ts +7 -0
- package/dist/lib.cjs/types/react/hooks/useSwap.d.ts +8 -0
- package/dist/lib.cjs/types/react/hooks/useSwitchChain.d.ts +7 -0
- package/dist/lib.cjs/types/react/hooks/useWalletConnectScanner.d.ts +8 -0
- package/dist/lib.cjs/types/react/hooks/useWalletUI.d.ts +8 -0
- package/dist/lib.cjs/types/react/hooks/useWeb3Auth.d.ts +3 -0
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthConnect.d.ts +9 -0
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthDisconnect.d.ts +9 -0
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthInner.d.ts +2 -0
- package/dist/lib.cjs/types/react/hooks/useWeb3AuthUser.d.ts +9 -0
- package/dist/lib.cjs/types/react/index.d.ts +3 -2
- package/dist/lib.cjs/types/react/interfaces.d.ts +21 -0
- package/dist/lib.cjs/types/react/solana/hooks/index.d.ts +4 -0
- package/dist/lib.cjs/types/react/solana/hooks/useSignAndSendTransaction.d.ts +9 -0
- package/dist/lib.cjs/types/react/solana/hooks/useSignMessage.d.ts +8 -0
- package/dist/lib.cjs/types/react/solana/hooks/useSignTransaction.d.ts +14 -0
- package/dist/lib.cjs/types/react/solana/hooks/useSolanaWallet.d.ts +8 -0
- package/dist/lib.cjs/types/react/solana/index.d.ts +1 -0
- package/dist/lib.cjs/types/react/wagmi/constants.d.ts +43 -0
- package/dist/lib.cjs/types/react/wagmi/index.d.ts +1 -0
- package/dist/lib.cjs/types/react/wagmi/interface.d.ts +4 -0
- package/dist/lib.cjs/types/react/wagmi/provider.d.ts +3 -0
- package/dist/lib.cjs/types/vue/WalletServicesInnerProvider.d.ts +1 -0
- package/dist/lib.cjs/types/vue/composables/index.d.ts +13 -0
- package/dist/lib.cjs/types/vue/composables/useCheckout.d.ts +9 -0
- package/dist/lib.cjs/types/vue/composables/useEnableMFA.d.ts +8 -0
- package/dist/lib.cjs/types/vue/composables/useIdentityToken.d.ts +9 -0
- package/dist/lib.cjs/types/vue/composables/useManageMFA.d.ts +8 -0
- package/dist/lib.cjs/types/vue/composables/useSwap.d.ts +9 -0
- package/dist/lib.cjs/types/vue/composables/useSwitchChain.d.ts +10 -0
- package/dist/lib.cjs/types/vue/composables/useWalletConnectScanner.d.ts +9 -0
- package/dist/lib.cjs/types/vue/composables/useWalletServicesPlugin.d.ts +2 -0
- package/dist/lib.cjs/types/vue/composables/useWalletUI.d.ts +9 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3Auth.d.ts +3 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthConnect.d.ts +10 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthDisconnect.d.ts +10 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthInner.d.ts +2 -0
- package/dist/lib.cjs/types/vue/composables/useWeb3AuthUser.d.ts +10 -0
- package/dist/lib.cjs/types/vue/{wallet-services-plugin/context.d.ts → context/WalletServicesContext.d.ts} +2 -2
- package/dist/lib.cjs/types/vue/context/index.d.ts +1 -0
- package/dist/lib.cjs/types/vue/index.d.ts +4 -2
- package/dist/lib.cjs/types/vue/interfaces.d.ts +30 -0
- package/dist/lib.cjs/types/vue/solana/composables/index.d.ts +4 -0
- package/dist/lib.cjs/types/vue/solana/composables/useSignAndSendTransaction.d.ts +10 -0
- package/dist/lib.cjs/types/vue/solana/composables/useSignMessage.d.ts +9 -0
- package/dist/lib.cjs/types/vue/solana/composables/useSignTransaction.d.ts +10 -0
- package/dist/lib.cjs/types/vue/solana/composables/useSolanaWallet.d.ts +9 -0
- package/dist/lib.cjs/types/vue/solana/index.d.ts +1 -0
- package/dist/lib.cjs/types/vue/wagmi/constants.d.ts +43 -0
- package/dist/lib.cjs/types/vue/wagmi/index.d.ts +2 -0
- package/dist/lib.cjs/types/vue/wagmi/interface.d.ts +4 -0
- package/dist/lib.cjs/types/vue/wagmi/provider.d.ts +17 -0
- package/dist/lib.cjs/vue/{wallet-services-plugin/WalletServicesProvider.js → WalletServicesInnerProvider.js} +26 -43
- package/dist/lib.cjs/vue/{no-modal/Web3AuthProvider.js → Web3AuthProvider.js} +45 -86
- package/dist/lib.cjs/vue/composables/useCheckout.js +45 -0
- package/dist/lib.cjs/vue/composables/useEnableMFA.js +43 -0
- package/dist/lib.cjs/vue/composables/useIdentityToken.js +55 -0
- package/dist/lib.cjs/vue/composables/useManageMFA.js +43 -0
- package/dist/lib.cjs/vue/composables/useSwap.js +45 -0
- package/dist/lib.cjs/vue/composables/useSwitchChain.js +43 -0
- package/dist/lib.cjs/vue/composables/useWalletConnectScanner.js +45 -0
- package/dist/lib.cjs/vue/composables/useWalletServicesPlugin.js +12 -0
- package/dist/lib.cjs/vue/composables/useWalletUI.js +45 -0
- package/dist/lib.cjs/vue/composables/useWeb3Auth.js +28 -0
- package/dist/lib.cjs/vue/composables/useWeb3AuthConnect.js +61 -0
- package/dist/lib.cjs/vue/composables/useWeb3AuthDisconnect.js +43 -0
- package/dist/lib.cjs/vue/{no-modal/composables/useWeb3Auth.js → composables/useWeb3AuthInner.js} +9 -9
- package/dist/lib.cjs/vue/composables/useWeb3AuthUser.js +64 -0
- package/dist/lib.cjs/vue/index.js +28 -8
- package/dist/lib.cjs/vue/solana/composables/useSignAndSendTransaction.js +36 -0
- package/dist/lib.cjs/vue/solana/composables/useSignMessage.js +38 -0
- package/dist/lib.cjs/vue/solana/composables/useSignTransaction.js +36 -0
- package/dist/lib.cjs/vue/solana/composables/useSolanaWallet.js +64 -0
- package/dist/lib.cjs/vue/solana/index.js +13 -0
- package/dist/lib.cjs/vue/wagmi/constants.js +16 -0
- package/dist/lib.cjs/vue/wagmi/index.js +7 -0
- package/dist/lib.cjs/vue/wagmi/provider.js +244 -0
- package/dist/lib.esm/base/connector/baseConnector.js +6 -1
- package/dist/lib.esm/base/connector/constants.js +3 -1
- package/dist/lib.esm/base/constants.js +6 -1
- package/dist/lib.esm/base/cookie.js +34 -0
- package/dist/lib.esm/base/deserialize.js +11 -0
- package/dist/lib.esm/base/errors/index.js +14 -22
- package/dist/lib.esm/base/plugin/errors.js +2 -0
- package/dist/lib.esm/base/utils.js +28 -12
- package/dist/lib.esm/base/wallet/index.js +2 -4
- package/dist/lib.esm/connectors/auth-connector/authConnector.js +83 -30
- package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +1 -8
- package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +1 -8
- package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +16 -15
- package/dist/lib.esm/connectors/coinbase-connector/index.js +1 -0
- package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +11 -12
- package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +13 -17
- package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +52 -27
- package/dist/lib.esm/connectors/utils.js +14 -1
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +8 -25
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +20 -25
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +15 -15
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +1 -11
- package/dist/lib.esm/index.js +12 -14
- package/dist/lib.esm/noModal.js +217 -80
- package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +4 -1
- package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +4 -10
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +7 -9
- package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -2
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +37 -20
- package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +0 -10
- package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +26 -3
- package/dist/lib.esm/providers/base-provider/baseProvider.js +7 -9
- package/dist/lib.esm/providers/base-provider/utils.js +3 -3
- package/dist/lib.esm/providers/ethereum-mpc-provider/index.js +1 -0
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +4 -17
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +3 -13
- package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +1 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +1 -0
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +10 -11
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +3 -3
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +1 -0
- package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +8 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +2 -15
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +5 -12
- package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +1 -1
- package/dist/lib.esm/providers/solana-provider/solanaWallet.js +3 -0
- package/dist/lib.esm/providers/xrpl-provider/index.js +2 -0
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +3 -14
- package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -0
- package/dist/lib.esm/react/Web3AuthProvider.js +17 -0
- package/dist/lib.esm/react/context/WalletServicesInnerContext.js +70 -0
- package/dist/lib.esm/react/context/Web3AuthInnerContext.js +129 -0
- package/dist/lib.esm/react/hooks/useCheckout.js +32 -0
- package/dist/lib.esm/react/hooks/useEnableMFA.js +28 -0
- package/dist/lib.esm/react/hooks/useIdentityToken.js +40 -0
- package/dist/lib.esm/react/hooks/useManageMFA.js +28 -0
- package/dist/lib.esm/react/hooks/useSwap.js +32 -0
- package/dist/lib.esm/react/hooks/useSwitchChain.js +30 -0
- package/dist/lib.esm/react/hooks/useWalletConnectScanner.js +32 -0
- package/dist/lib.esm/react/hooks/useWalletServicesPlugin.js +17 -0
- package/dist/lib.esm/react/hooks/useWalletUI.js +32 -0
- package/dist/lib.esm/react/hooks/useWeb3Auth.js +26 -0
- package/dist/lib.esm/react/hooks/useWeb3AuthConnect.js +46 -0
- package/dist/lib.esm/react/hooks/useWeb3AuthDisconnect.js +28 -0
- package/dist/lib.esm/react/hooks/useWeb3AuthInner.js +13 -0
- package/dist/lib.esm/react/hooks/useWeb3AuthUser.js +48 -0
- package/dist/lib.esm/react/index.js +14 -5
- package/dist/lib.esm/react/solana/hooks/useSignAndSendTransaction.js +33 -0
- package/dist/lib.esm/react/solana/hooks/useSignMessage.js +34 -0
- package/dist/lib.esm/react/solana/hooks/useSignTransaction.js +32 -0
- package/dist/lib.esm/react/solana/hooks/useSolanaWallet.js +42 -0
- package/dist/lib.esm/react/solana/index.js +4 -0
- package/dist/lib.esm/react/wagmi/constants.js +14 -0
- package/dist/lib.esm/react/wagmi/index.js +1 -0
- package/dist/lib.esm/react/wagmi/provider.js +179 -0
- package/dist/lib.esm/vue/WalletServicesInnerProvider.js +71 -0
- package/dist/lib.esm/vue/Web3AuthProvider.js +154 -0
- package/dist/lib.esm/vue/composables/useCheckout.js +32 -0
- package/dist/lib.esm/vue/composables/useEnableMFA.js +30 -0
- package/dist/lib.esm/vue/composables/useIdentityToken.js +42 -0
- package/dist/lib.esm/vue/composables/useManageMFA.js +30 -0
- package/dist/lib.esm/vue/composables/useSwap.js +32 -0
- package/dist/lib.esm/vue/composables/useSwitchChain.js +30 -0
- package/dist/lib.esm/vue/composables/useWalletConnectScanner.js +32 -0
- package/dist/lib.esm/vue/composables/useWalletServicesPlugin.js +10 -0
- package/dist/lib.esm/vue/composables/useWalletUI.js +32 -0
- package/dist/lib.esm/vue/composables/useWeb3Auth.js +26 -0
- package/dist/lib.esm/vue/composables/useWeb3AuthConnect.js +48 -0
- package/dist/lib.esm/vue/composables/useWeb3AuthDisconnect.js +30 -0
- package/dist/lib.esm/vue/composables/useWeb3AuthInner.js +11 -0
- package/dist/lib.esm/vue/composables/useWeb3AuthUser.js +51 -0
- package/dist/lib.esm/vue/index.js +15 -5
- package/dist/lib.esm/vue/solana/composables/useSignAndSendTransaction.js +34 -0
- package/dist/lib.esm/vue/solana/composables/useSignMessage.js +36 -0
- package/dist/lib.esm/vue/solana/composables/useSignTransaction.js +34 -0
- package/dist/lib.esm/vue/solana/composables/useSolanaWallet.js +51 -0
- package/dist/lib.esm/vue/solana/index.js +4 -0
- package/dist/lib.esm/vue/wagmi/constants.js +14 -0
- package/dist/lib.esm/vue/wagmi/index.js +1 -0
- package/dist/lib.esm/vue/wagmi/provider.js +237 -0
- package/dist/noModal.umd.min.js +1 -1
- package/dist/noModal.umd.min.js.LICENSE.txt +0 -26
- package/package.json +79 -20
- package/dist/lib.cjs/react/no-modal/Web3AuthProvider.js +0 -15
- package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesProvider.js +0 -16
- package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +0 -26
- package/dist/lib.cjs/types/react/no-modal/hooks/index.d.ts +0 -1
- package/dist/lib.cjs/types/react/no-modal/hooks/useWeb3Auth.d.ts +0 -2
- package/dist/lib.cjs/types/react/no-modal/index.d.ts +0 -3
- package/dist/lib.cjs/types/react/no-modal/interfaces.d.ts +0 -15
- package/dist/lib.cjs/types/react/wallet-services-plugin/WalletServicesContext.d.ts +0 -7
- package/dist/lib.cjs/types/react/wallet-services-plugin/WalletServicesProvider.d.ts +0 -7
- package/dist/lib.cjs/types/react/wallet-services-plugin/hooks/index.d.ts +0 -1
- package/dist/lib.cjs/types/react/wallet-services-plugin/index.d.ts +0 -4
- package/dist/lib.cjs/types/react/wallet-services-plugin/interfaces.d.ts +0 -5
- package/dist/lib.cjs/types/vue/no-modal/composables/index.d.ts +0 -1
- package/dist/lib.cjs/types/vue/no-modal/composables/useWeb3Auth.d.ts +0 -2
- package/dist/lib.cjs/types/vue/no-modal/index.d.ts +0 -3
- package/dist/lib.cjs/types/vue/no-modal/interfaces.d.ts +0 -39
- package/dist/lib.cjs/types/vue/wallet-services-plugin/WalletServicesProvider.d.ts +0 -1
- package/dist/lib.cjs/types/vue/wallet-services-plugin/composables/index.d.ts +0 -1
- package/dist/lib.cjs/types/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +0 -2
- package/dist/lib.cjs/types/vue/wallet-services-plugin/index.d.ts +0 -4
- package/dist/lib.cjs/types/vue/wallet-services-plugin/interfaces.d.ts +0 -13
- package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +0 -24
- package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +0 -197
- package/dist/lib.esm/react/no-modal/Web3AuthProvider.js +0 -13
- package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +0 -24
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +0 -95
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesProvider.js +0 -14
- package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +0 -24
- package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +0 -203
- package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +0 -22
- package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +0 -96
- package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +0 -22
- /package/dist/lib.cjs/types/react/{no-modal/Web3AuthProvider.d.ts → Web3AuthProvider.d.ts} +0 -0
- /package/dist/lib.cjs/types/react/{wallet-services-plugin/hooks → hooks}/useWalletServicesPlugin.d.ts +0 -0
- /package/dist/lib.cjs/types/vue/{no-modal/Web3AuthProvider.d.ts → Web3AuthProvider.d.ts} +0 -0
- /package/dist/lib.cjs/vue/{wallet-services-plugin/context.js → context/WalletServicesContext.js} +0 -0
- /package/dist/lib.esm/vue/{wallet-services-plugin/context.js → context/WalletServicesContext.js} +0 -0
package/dist/lib.esm/noModal.js
CHANGED
|
@@ -1,45 +1,52 @@
|
|
|
1
1
|
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
2
2
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
3
3
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
|
-
import { SafeEventEmitter } from '@web3auth/auth';
|
|
4
|
+
import { SafeEventEmitter, serializeError, MemoryStore } from '@web3auth/auth';
|
|
5
5
|
import deepmerge from 'deepmerge';
|
|
6
|
+
import { cookieStorage } from './base/cookie.js';
|
|
7
|
+
import { deserialize } from './base/deserialize.js';
|
|
8
|
+
import { LOGIN_MODE, SMART_ACCOUNT_WALLET_SCOPE, WEB3AUTH_STATE_STORAGE_KEY } from './base/constants.js';
|
|
9
|
+
import { fetchProjectConfig, withAbort, isHexStrict, isBrowser } from './base/utils.js';
|
|
10
|
+
import { CommonJRPCProvider } from './providers/base-provider/CommonJRPCProvider.js';
|
|
6
11
|
import { authConnector } from './connectors/auth-connector/authConnector.js';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import { WALLET_CONNECTORS } from './base/wallet/index.js';
|
|
10
|
-
import { CONNECTOR_STATUS, CONNECTOR_EVENTS } from './base/connector/constants.js';
|
|
12
|
+
import { metaMaskConnector } from './connectors/metamask-connector/metamaskConnector.js';
|
|
13
|
+
import { walletServicesPlugin } from './plugins/wallet-services-plugin/plugin.js';
|
|
11
14
|
import { storageAvailable } from './base/connector/utils.js';
|
|
12
|
-
import {
|
|
15
|
+
import { CONNECTOR_STATUS, CONNECTOR_EVENTS } from './base/connector/constants.js';
|
|
16
|
+
import { WalletInitializationError, WalletLoginError } from './base/errors/index.js';
|
|
13
17
|
import { log } from './base/loglevel.js';
|
|
14
|
-
import './base/
|
|
15
|
-
import {
|
|
16
|
-
import { fetchProjectConfig, isHexStrict } from './base/utils.js';
|
|
18
|
+
import { CONNECTOR_NAMESPACES } from './base/chain/IChainInterface.js';
|
|
19
|
+
import { WALLET_CONNECTORS } from './base/wallet/index.js';
|
|
17
20
|
import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
|
|
18
|
-
import './
|
|
19
|
-
import { CommonJRPCProvider } from './providers/base-provider/CommonJRPCProvider.js';
|
|
20
|
-
import './providers/base-provider/commonPrivateKeyProvider.js';
|
|
21
|
-
import { metaMaskConnector } from './connectors/metamask-connector/metamaskConnector.js';
|
|
21
|
+
import { PLUGIN_STATUS, PLUGIN_NAMESPACES } from './base/plugin/IPlugin.js';
|
|
22
22
|
|
|
23
23
|
const _excluded = ["walletScope"];
|
|
24
|
-
const CONNECTOR_CACHE_KEY = "Web3Auth-cachedConnector";
|
|
25
|
-
const CURRENT_CHAIN_CACHE_KEY = "Web3Auth-currentChain";
|
|
26
24
|
class Web3AuthNoModal extends SafeEventEmitter {
|
|
27
|
-
constructor(options) {
|
|
25
|
+
constructor(options, initialState) {
|
|
28
26
|
super();
|
|
29
27
|
_defineProperty(this, "coreOptions", void 0);
|
|
30
|
-
_defineProperty(this, "connectedConnectorName", null);
|
|
31
28
|
_defineProperty(this, "status", CONNECTOR_STATUS.NOT_READY);
|
|
32
|
-
_defineProperty(this, "
|
|
33
|
-
_defineProperty(this, "currentChainId", void 0);
|
|
29
|
+
_defineProperty(this, "aaProvider", null);
|
|
34
30
|
_defineProperty(this, "connectors", []);
|
|
35
31
|
_defineProperty(this, "commonJRPCProvider", null);
|
|
36
32
|
_defineProperty(this, "plugins", {});
|
|
37
|
-
_defineProperty(this, "storage",
|
|
33
|
+
_defineProperty(this, "storage", void 0);
|
|
34
|
+
_defineProperty(this, "state", {
|
|
35
|
+
connectedConnectorName: null,
|
|
36
|
+
cachedConnector: null,
|
|
37
|
+
currentChainId: null,
|
|
38
|
+
idToken: null
|
|
39
|
+
});
|
|
40
|
+
_defineProperty(this, "loginMode", LOGIN_MODE.NO_MODAL);
|
|
38
41
|
if (!options.clientId) throw WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
|
|
39
42
|
if (options.enableLogging) log.enableAll();else log.setLevel("error");
|
|
40
|
-
if (options.storageType
|
|
43
|
+
if (!options.storageType) options.storageType = "local";
|
|
41
44
|
this.coreOptions = options;
|
|
42
|
-
this.
|
|
45
|
+
this.storage = this.getStorageMethod();
|
|
46
|
+
this.loadState(initialState);
|
|
47
|
+
if (this.state.idToken && this.coreOptions.ssr) {
|
|
48
|
+
this.status = CONNECTOR_STATUS.CONNECTED;
|
|
49
|
+
}
|
|
43
50
|
}
|
|
44
51
|
get currentChain() {
|
|
45
52
|
var _this$coreOptions$cha;
|
|
@@ -54,14 +61,29 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
54
61
|
}
|
|
55
62
|
return null;
|
|
56
63
|
}
|
|
64
|
+
get connectedConnectorName() {
|
|
65
|
+
return this.state.connectedConnectorName;
|
|
66
|
+
}
|
|
67
|
+
get cachedConnector() {
|
|
68
|
+
return this.state.cachedConnector;
|
|
69
|
+
}
|
|
70
|
+
get currentChainId() {
|
|
71
|
+
return this.state.currentChainId || this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
|
|
72
|
+
}
|
|
57
73
|
get connectedConnector() {
|
|
58
74
|
var _this$currentChain;
|
|
59
75
|
return this.getConnector(this.connectedConnectorName, (_this$currentChain = this.currentChain) === null || _this$currentChain === void 0 ? void 0 : _this$currentChain.chainNamespace);
|
|
60
76
|
}
|
|
77
|
+
get accountAbstractionProvider() {
|
|
78
|
+
return this.aaProvider;
|
|
79
|
+
}
|
|
61
80
|
set provider(_) {
|
|
62
81
|
throw new Error("Not implemented");
|
|
63
82
|
}
|
|
64
|
-
async init() {
|
|
83
|
+
async init(options) {
|
|
84
|
+
const {
|
|
85
|
+
signal
|
|
86
|
+
} = options || {};
|
|
65
87
|
// get project config
|
|
66
88
|
let projectConfig;
|
|
67
89
|
try {
|
|
@@ -73,31 +95,43 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
73
95
|
authBuildEnv: this.coreOptions.authBuildEnv
|
|
74
96
|
});
|
|
75
97
|
} catch (e) {
|
|
76
|
-
|
|
77
|
-
|
|
98
|
+
const error = await serializeError(e);
|
|
99
|
+
log.error("Failed to fetch project configurations", error);
|
|
100
|
+
throw WalletInitializationError.notReady("failed to fetch project configurations", error);
|
|
78
101
|
}
|
|
102
|
+
|
|
79
103
|
// init config
|
|
80
104
|
this.initAccountAbstractionConfig(projectConfig);
|
|
81
105
|
this.initChainsConfig(projectConfig);
|
|
82
106
|
this.initCachedConnectorAndChainId();
|
|
107
|
+
|
|
83
108
|
// setup common JRPC provider
|
|
84
|
-
await this.setupCommonJRPCProvider();
|
|
109
|
+
await withAbort(() => this.setupCommonJRPCProvider(), signal);
|
|
110
|
+
|
|
85
111
|
// initialize connectors
|
|
86
112
|
this.on(CONNECTOR_EVENTS.CONNECTORS_UPDATED, async ({
|
|
87
113
|
connectors: newConnectors
|
|
88
114
|
}) => {
|
|
89
|
-
|
|
115
|
+
const onAbortHandler = () => {
|
|
116
|
+
var _this$connectors;
|
|
117
|
+
if (((_this$connectors = this.connectors) === null || _this$connectors === void 0 ? void 0 : _this$connectors.length) > 0) {
|
|
118
|
+
this.cleanup();
|
|
119
|
+
}
|
|
120
|
+
};
|
|
121
|
+
await withAbort(() => Promise.all(newConnectors.map(this.setupConnector.bind(this))), signal, onAbortHandler);
|
|
122
|
+
|
|
90
123
|
// emit connector ready event
|
|
91
124
|
if (this.status === CONNECTOR_STATUS.NOT_READY) {
|
|
92
125
|
this.status = CONNECTOR_STATUS.READY;
|
|
93
126
|
this.emit(CONNECTOR_EVENTS.READY);
|
|
94
127
|
}
|
|
95
128
|
});
|
|
96
|
-
await this.loadConnectors({
|
|
129
|
+
await withAbort(() => this.loadConnectors({
|
|
97
130
|
projectConfig
|
|
98
|
-
});
|
|
99
|
-
await this.initPlugins();
|
|
131
|
+
}), signal);
|
|
132
|
+
await withAbort(() => this.initPlugins(), signal);
|
|
100
133
|
}
|
|
134
|
+
|
|
101
135
|
// we need to take into account the chainNamespace as for external connectors, same connector name can be used for multiple chain namespaces
|
|
102
136
|
getConnector(connectorName, chainNamespace) {
|
|
103
137
|
return this.connectors.find(connector => {
|
|
@@ -110,10 +144,17 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
110
144
|
}) || null;
|
|
111
145
|
}
|
|
112
146
|
clearCache() {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
147
|
+
this.setState({
|
|
148
|
+
connectedConnectorName: null,
|
|
149
|
+
cachedConnector: null,
|
|
150
|
+
currentChainId: null,
|
|
151
|
+
idToken: null
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
async cleanup() {
|
|
155
|
+
for (const connector of this.connectors) {
|
|
156
|
+
if (connector.cleanup) await connector.cleanup();
|
|
157
|
+
}
|
|
117
158
|
}
|
|
118
159
|
async switchChain(params) {
|
|
119
160
|
var _this$currentChain2;
|
|
@@ -132,15 +173,17 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
132
173
|
}
|
|
133
174
|
throw WalletInitializationError.notReady(`No wallet is ready`);
|
|
134
175
|
}
|
|
176
|
+
|
|
135
177
|
/**
|
|
136
178
|
* Connect to a specific wallet connector
|
|
137
179
|
* @param connectorName - Key of the wallet connector to use.
|
|
138
180
|
*/
|
|
139
|
-
async connectTo(connectorName, loginParams) {
|
|
181
|
+
async connectTo(connectorName, loginParams, loginMode) {
|
|
182
|
+
this.loginMode = loginMode || "no-modal";
|
|
140
183
|
const connector = this.getConnector(connectorName, loginParams === null || loginParams === void 0 ? void 0 : loginParams.chainNamespace);
|
|
141
184
|
if (!connector || !this.commonJRPCProvider) throw WalletInitializationError.notFound(`Please add wallet connector for ${connectorName} wallet, before connecting`);
|
|
142
185
|
return new Promise((resolve, reject) => {
|
|
143
|
-
this.once(CONNECTOR_EVENTS.CONNECTED, _ => {
|
|
186
|
+
this.once(CONNECTOR_EVENTS.CONNECTED, async _ => {
|
|
144
187
|
resolve(this.provider);
|
|
145
188
|
});
|
|
146
189
|
this.once(CONNECTOR_EVENTS.ERRORED, err => {
|
|
@@ -192,6 +235,7 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
192
235
|
if (!existingChain) chainMap.set(chain.chainId, chain);else chainMap.set(chain.chainId, _objectSpread(_objectSpread({}, existingChain), chain));
|
|
193
236
|
}
|
|
194
237
|
this.coreOptions.chains = Array.from(chainMap.values());
|
|
238
|
+
|
|
195
239
|
// validate chains and namespaces
|
|
196
240
|
if (this.coreOptions.chains.length === 0) {
|
|
197
241
|
log.error("chain info not found. Please configure chains on dashboard at https://dashboard.web3auth.io");
|
|
@@ -217,9 +261,14 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
217
261
|
}
|
|
218
262
|
}
|
|
219
263
|
}
|
|
264
|
+
|
|
220
265
|
// if AA is enabled, filter out chains that are not AA-supported
|
|
221
266
|
if (this.coreOptions.accountAbstractionConfig) {
|
|
222
267
|
// write a for loop over accountAbstractionConfig.chains and check if the chainId is valid
|
|
268
|
+
if (this.coreOptions.accountAbstractionConfig.chains.length === 0) {
|
|
269
|
+
log.error("Please configure chains for smart accounts on dashboard at https://dashboard.web3auth.io");
|
|
270
|
+
throw WalletInitializationError.invalidParams("Please configure chains for smart accounts on dashboard at https://dashboard.web3auth.io");
|
|
271
|
+
}
|
|
223
272
|
for (const chain of this.coreOptions.accountAbstractionConfig.chains) {
|
|
224
273
|
if (!isHexStrict(chain.chainId)) {
|
|
225
274
|
log.error(`Please provide a valid chainId in accountAbstractionConfig.chains for chain ${chain.chainId}`);
|
|
@@ -252,33 +301,47 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
252
301
|
}
|
|
253
302
|
}
|
|
254
303
|
initAccountAbstractionConfig(projectConfig) {
|
|
304
|
+
var _this$coreOptions$acc2;
|
|
255
305
|
const isAAEnabled = Boolean(this.coreOptions.accountAbstractionConfig || (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts));
|
|
256
306
|
if (!isAAEnabled) return;
|
|
257
|
-
|
|
307
|
+
|
|
308
|
+
// merge smart account config from project config with core options, core options will take precedence over project config
|
|
258
309
|
const _ref = (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts) || {},
|
|
259
310
|
{
|
|
260
311
|
walletScope
|
|
261
312
|
} = _ref,
|
|
262
313
|
configWithoutWalletScope = _objectWithoutProperties(_ref, _excluded);
|
|
263
|
-
|
|
314
|
+
const aaChainMap = new Map();
|
|
315
|
+
const allAaChains = [...((configWithoutWalletScope === null || configWithoutWalletScope === void 0 ? void 0 : configWithoutWalletScope.chains) || []), ...(((_this$coreOptions$acc2 = this.coreOptions.accountAbstractionConfig) === null || _this$coreOptions$acc2 === void 0 ? void 0 : _this$coreOptions$acc2.chains) || [])];
|
|
316
|
+
for (const chain of allAaChains) {
|
|
317
|
+
const existingChain = aaChainMap.get(chain.chainId);
|
|
318
|
+
if (!existingChain) aaChainMap.set(chain.chainId, chain);else aaChainMap.set(chain.chainId, _objectSpread(_objectSpread({}, existingChain), chain));
|
|
319
|
+
}
|
|
320
|
+
this.coreOptions.accountAbstractionConfig = _objectSpread(_objectSpread({}, deepmerge(configWithoutWalletScope || {}, this.coreOptions.accountAbstractionConfig || {})), {}, {
|
|
321
|
+
chains: Array.from(aaChainMap.values())
|
|
322
|
+
});
|
|
323
|
+
|
|
264
324
|
// determine if we should use AA with external wallet
|
|
265
325
|
if (this.coreOptions.useAAWithExternalWallet === undefined) {
|
|
266
326
|
this.coreOptions.useAAWithExternalWallet = walletScope === SMART_ACCOUNT_WALLET_SCOPE.ALL;
|
|
267
327
|
}
|
|
268
328
|
}
|
|
269
329
|
initCachedConnectorAndChainId() {
|
|
270
|
-
this.cachedConnector = storageAvailable(this.storage) ? window[this.storage].getItem(CONNECTOR_CACHE_KEY) : null;
|
|
271
330
|
// init chainId using cached chainId if it exists and is valid, otherwise use the defaultChainId or the first chain
|
|
272
|
-
const cachedChainId =
|
|
331
|
+
const cachedChainId = this.state.currentChainId;
|
|
273
332
|
const isCachedChainIdValid = cachedChainId && this.coreOptions.chains.some(chain => chain.chainId === cachedChainId);
|
|
274
333
|
if (this.coreOptions.defaultChainId && !isHexStrict(this.coreOptions.defaultChainId)) throw WalletInitializationError.invalidParams("Please provide a valid defaultChainId in constructor");
|
|
275
|
-
|
|
334
|
+
const currentChainId = isCachedChainIdValid ? cachedChainId : this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
|
|
335
|
+
this.setState({
|
|
336
|
+
currentChainId
|
|
337
|
+
});
|
|
276
338
|
}
|
|
277
339
|
async setupCommonJRPCProvider() {
|
|
278
340
|
this.commonJRPCProvider = await CommonJRPCProvider.getProviderInstance({
|
|
279
341
|
chain: this.currentChain,
|
|
280
342
|
chains: this.coreOptions.chains
|
|
281
343
|
});
|
|
344
|
+
|
|
282
345
|
// sync chainId
|
|
283
346
|
this.commonJRPCProvider.on("chainChanged", chainId => this.setCurrentChain(chainId));
|
|
284
347
|
}
|
|
@@ -295,7 +358,8 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
295
358
|
}
|
|
296
359
|
}
|
|
297
360
|
async loadConnectors({
|
|
298
|
-
projectConfig
|
|
361
|
+
projectConfig,
|
|
362
|
+
modalMode
|
|
299
363
|
}) {
|
|
300
364
|
var _this$coreOptions$mul;
|
|
301
365
|
// always add auth connector
|
|
@@ -304,11 +368,12 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
304
368
|
projectConfig,
|
|
305
369
|
coreOptions: this.coreOptions
|
|
306
370
|
};
|
|
371
|
+
|
|
307
372
|
// add injected connectors
|
|
308
373
|
const isExternalWalletEnabled = Boolean(projectConfig.externalWalletAuth);
|
|
309
374
|
const isMipdEnabled = isExternalWalletEnabled && ((_this$coreOptions$mul = this.coreOptions.multiInjectedProviderDiscovery) !== null && _this$coreOptions$mul !== void 0 ? _this$coreOptions$mul : true);
|
|
310
375
|
const chainNamespaces = new Set(this.coreOptions.chains.map(chain => chain.chainNamespace));
|
|
311
|
-
if (isMipdEnabled) {
|
|
376
|
+
if (isMipdEnabled && isBrowser()) {
|
|
312
377
|
// Solana chains
|
|
313
378
|
if (chainNamespaces.has(CHAIN_NAMESPACES.SOLANA)) {
|
|
314
379
|
const {
|
|
@@ -339,10 +404,17 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
339
404
|
connectorFns.push(...evmMipd.getProviders().map(injectedEvmConnector));
|
|
340
405
|
}
|
|
341
406
|
}
|
|
407
|
+
|
|
342
408
|
// it's safe to add it here as if there is a MetaMask injected provider, this won't override it
|
|
343
|
-
|
|
409
|
+
// only set headless to true if modal SDK is used, otherwise just use the modal from native Metamask SDK
|
|
410
|
+
if (isBrowser() && (chainNamespaces.has(CHAIN_NAMESPACES.EIP155) || chainNamespaces.has(CHAIN_NAMESPACES.SOLANA))) {
|
|
411
|
+
connectorFns.push(metaMaskConnector(modalMode ? {
|
|
412
|
+
headless: true
|
|
413
|
+
} : undefined));
|
|
414
|
+
}
|
|
415
|
+
|
|
344
416
|
// add WalletConnectV2 connector if external wallets are enabled
|
|
345
|
-
if (isExternalWalletEnabled && (chainNamespaces.has(CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(CHAIN_NAMESPACES.EIP155))) {
|
|
417
|
+
if (isBrowser() && isExternalWalletEnabled && (chainNamespaces.has(CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(CHAIN_NAMESPACES.EIP155))) {
|
|
346
418
|
const {
|
|
347
419
|
walletConnectV2Connector
|
|
348
420
|
} = await import('./connectors/wallet-connect-v2-connector/index.js');
|
|
@@ -352,7 +424,15 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
352
424
|
this.setConnectors(connectors);
|
|
353
425
|
}
|
|
354
426
|
async initPlugins() {
|
|
355
|
-
const
|
|
427
|
+
const {
|
|
428
|
+
chains,
|
|
429
|
+
plugins
|
|
430
|
+
} = this.coreOptions;
|
|
431
|
+
const pluginFns = plugins || [];
|
|
432
|
+
const isWsSupportedChain = chains.some(x => x.chainNamespace === CHAIN_NAMESPACES.EIP155 || x.chainNamespace === CHAIN_NAMESPACES.SOLANA);
|
|
433
|
+
if (isWsSupportedChain) {
|
|
434
|
+
pluginFns.push(walletServicesPlugin());
|
|
435
|
+
}
|
|
356
436
|
for (const pluginFn of pluginFns) {
|
|
357
437
|
const plugin = pluginFn();
|
|
358
438
|
if (!this.plugins[plugin.name]) this.plugins[plugin.name] = plugin;
|
|
@@ -382,50 +462,81 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
382
462
|
const {
|
|
383
463
|
provider
|
|
384
464
|
} = data;
|
|
465
|
+
|
|
466
|
+
// when ssr is enabled, we need to get the idToken from the connector.
|
|
467
|
+
if (this.coreOptions.ssr) {
|
|
468
|
+
try {
|
|
469
|
+
const data = await connector.authenticateUser();
|
|
470
|
+
if (!data.idToken) throw WalletLoginError.connectionError("No idToken found");
|
|
471
|
+
this.setState({
|
|
472
|
+
idToken: data.idToken
|
|
473
|
+
});
|
|
474
|
+
} catch (error) {
|
|
475
|
+
log.error(error);
|
|
476
|
+
this.status = CONNECTOR_STATUS.ERRORED;
|
|
477
|
+
this.emit(CONNECTOR_EVENTS.ERRORED, error);
|
|
478
|
+
return;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
385
481
|
let finalProvider = provider.provider || provider;
|
|
386
|
-
|
|
482
|
+
|
|
483
|
+
// setup AA provider if AA is enabled
|
|
387
484
|
const {
|
|
388
485
|
accountAbstractionConfig
|
|
389
486
|
} = this.coreOptions;
|
|
390
|
-
const
|
|
487
|
+
const isAaSupportedForCurrentChain = ((_this$currentChain3 = this.currentChain) === null || _this$currentChain3 === void 0 ? void 0 : _this$currentChain3.chainNamespace) === CHAIN_NAMESPACES.EIP155 && (accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.some(chain => {
|
|
391
488
|
var _this$currentChain4;
|
|
392
489
|
return chain.chainId === ((_this$currentChain4 = this.currentChain) === null || _this$currentChain4 === void 0 ? void 0 : _this$currentChain4.chainId);
|
|
393
490
|
}));
|
|
394
|
-
|
|
395
|
-
if (isExternalWalletAndAAEnabled && doesAASupportCurrentChain) {
|
|
491
|
+
if (isAaSupportedForCurrentChain && (data.connector === WALLET_CONNECTORS.AUTH || this.coreOptions.useAAWithExternalWallet)) {
|
|
396
492
|
var _accountAbstractionCo2;
|
|
397
|
-
const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
|
|
398
493
|
const {
|
|
399
|
-
accountAbstractionProvider
|
|
494
|
+
accountAbstractionProvider,
|
|
495
|
+
toEoaProvider
|
|
400
496
|
} = await import('./providers/account-abstraction-provider/index.js');
|
|
497
|
+
// for embedded wallets, we use ws-embed provider which is AA provider, need to derive EOA provider
|
|
498
|
+
const eoaProvider = data.connector === WALLET_CONNECTORS.AUTH ? await toEoaProvider(provider) : provider;
|
|
499
|
+
const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
|
|
401
500
|
const aaProvider = await accountAbstractionProvider({
|
|
402
501
|
accountAbstractionConfig,
|
|
403
|
-
provider,
|
|
502
|
+
provider: eoaProvider,
|
|
404
503
|
chain: this.currentChain,
|
|
405
504
|
chains: this.coreOptions.chains.filter(chain => aaChainIds.has(chain.chainId))
|
|
406
505
|
});
|
|
407
|
-
|
|
506
|
+
this.aaProvider = aaProvider;
|
|
507
|
+
|
|
508
|
+
// if external wallet is used and AA is enabled for external wallets, use AA provider
|
|
509
|
+
// for embedded wallets, we use ws-embed provider which already supports AA
|
|
510
|
+
if (data.connector !== WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
|
|
511
|
+
finalProvider = this.aaProvider;
|
|
512
|
+
}
|
|
408
513
|
}
|
|
409
514
|
this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
|
|
410
|
-
this.
|
|
411
|
-
|
|
515
|
+
this.setState({
|
|
516
|
+
connectedConnectorName: data.connector
|
|
517
|
+
});
|
|
412
518
|
this.cacheWallet(data.connector);
|
|
519
|
+
this.status = CONNECTOR_STATUS.CONNECTED;
|
|
413
520
|
log.debug("connected", this.status, this.connectedConnectorName);
|
|
414
521
|
this.connectToPlugins(data);
|
|
415
|
-
this.emit(CONNECTOR_EVENTS.CONNECTED, _objectSpread({}, data)
|
|
522
|
+
this.emit(CONNECTOR_EVENTS.CONNECTED, _objectSpread(_objectSpread({}, data), {}, {
|
|
523
|
+
loginMode: this.loginMode
|
|
524
|
+
}));
|
|
416
525
|
});
|
|
417
526
|
connector.on(CONNECTOR_EVENTS.DISCONNECTED, async () => {
|
|
527
|
+
// re-setup commonJRPCProvider
|
|
528
|
+
this.commonJRPCProvider.removeAllListeners();
|
|
529
|
+
this.setupCommonJRPCProvider();
|
|
530
|
+
|
|
418
531
|
// get back to ready state for rehydrating.
|
|
419
532
|
this.status = CONNECTOR_STATUS.READY;
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
this.clearCache();
|
|
424
|
-
}
|
|
533
|
+
const cachedConnector = this.state.cachedConnector;
|
|
534
|
+
if (this.connectedConnectorName === cachedConnector) {
|
|
535
|
+
this.clearCache();
|
|
425
536
|
}
|
|
426
537
|
log.debug("disconnected", this.status, this.connectedConnectorName);
|
|
427
538
|
await Promise.all(Object.values(this.plugins).map(async plugin => {
|
|
428
|
-
if (!plugin.SUPPORTED_CONNECTORS.includes(
|
|
539
|
+
if (!plugin.SUPPORTED_CONNECTORS.includes(connector.name)) return;
|
|
429
540
|
if (plugin.status !== PLUGIN_STATUS.CONNECTED) return;
|
|
430
541
|
return plugin.disconnect().catch(error => {
|
|
431
542
|
// swallow error if connector doesn't supports this plugin.
|
|
@@ -436,7 +547,9 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
436
547
|
log.error(error);
|
|
437
548
|
});
|
|
438
549
|
}));
|
|
439
|
-
this.
|
|
550
|
+
this.setState({
|
|
551
|
+
connectedConnectorName: null
|
|
552
|
+
});
|
|
440
553
|
this.emit(CONNECTOR_EVENTS.DISCONNECTED);
|
|
441
554
|
});
|
|
442
555
|
connector.on(CONNECTOR_EVENTS.CONNECTING, data => {
|
|
@@ -450,22 +563,28 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
450
563
|
this.emit(CONNECTOR_EVENTS.ERRORED, data);
|
|
451
564
|
log.debug("errored", this.status, this.connectedConnectorName);
|
|
452
565
|
});
|
|
566
|
+
connector.on(CONNECTOR_EVENTS.REHYDRATION_ERROR, error => {
|
|
567
|
+
this.status = CONNECTOR_STATUS.READY;
|
|
568
|
+
this.clearCache();
|
|
569
|
+
this.emit(CONNECTOR_EVENTS.REHYDRATION_ERROR, error);
|
|
570
|
+
});
|
|
453
571
|
connector.on(CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data => {
|
|
454
572
|
log.debug("connector data updated", data);
|
|
455
573
|
this.emit(CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data);
|
|
456
574
|
});
|
|
457
575
|
connector.on(CONNECTOR_EVENTS.CACHE_CLEAR, data => {
|
|
458
576
|
log.debug("connector cache clear", data);
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
577
|
+
this.clearCache();
|
|
578
|
+
});
|
|
579
|
+
connector.on(CONNECTOR_EVENTS.MFA_ENABLED, isMFAEnabled => {
|
|
580
|
+
log.debug("mfa enabled", isMFAEnabled);
|
|
581
|
+
this.emit(CONNECTOR_EVENTS.MFA_ENABLED, isMFAEnabled);
|
|
462
582
|
});
|
|
463
583
|
}
|
|
464
584
|
checkInitRequirements() {
|
|
465
|
-
if (this.status === CONNECTOR_STATUS.CONNECTING) throw WalletInitializationError.notReady("Already pending connection");
|
|
466
|
-
if (this.status === CONNECTOR_STATUS.CONNECTED) throw WalletInitializationError.notReady("Already connected");
|
|
467
585
|
if (this.status === CONNECTOR_STATUS.READY) throw WalletInitializationError.notReady("Connector is already initialized");
|
|
468
586
|
}
|
|
587
|
+
|
|
469
588
|
/**
|
|
470
589
|
* Gets the initial chain configuration for a connector
|
|
471
590
|
* @throws WalletInitializationError If no chain is found for the connector's namespace
|
|
@@ -480,28 +599,24 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
480
599
|
return initialChain;
|
|
481
600
|
}
|
|
482
601
|
cacheWallet(walletName) {
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
this.cachedConnector = walletName;
|
|
602
|
+
this.setState({
|
|
603
|
+
cachedConnector: walletName
|
|
604
|
+
});
|
|
487
605
|
}
|
|
488
606
|
setCurrentChain(chainId) {
|
|
489
607
|
if (chainId === this.currentChainId) return;
|
|
490
608
|
const newChain = this.coreOptions.chains.find(chain => chain.chainId === chainId);
|
|
491
609
|
if (!newChain) throw WalletInitializationError.invalidParams(`Invalid chainId: ${chainId}`);
|
|
492
|
-
this.
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
cacheCurrentChain(chainId) {
|
|
496
|
-
if (!storageAvailable(this.storage)) return;
|
|
497
|
-
window[this.storage].setItem(CURRENT_CHAIN_CACHE_KEY, chainId);
|
|
610
|
+
this.setState({
|
|
611
|
+
currentChainId: chainId
|
|
612
|
+
});
|
|
498
613
|
}
|
|
499
614
|
connectToPlugins(data) {
|
|
500
615
|
Object.values(this.plugins).map(async plugin => {
|
|
501
616
|
try {
|
|
502
617
|
var _this$currentChain5;
|
|
503
618
|
// skip if it's not compatible with the connector
|
|
504
|
-
if (!plugin.SUPPORTED_CONNECTORS.includes(
|
|
619
|
+
if (!plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
|
|
505
620
|
// skip if it's not compatible with the current chain
|
|
506
621
|
if (plugin.pluginNamespace !== PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== ((_this$currentChain5 = this.currentChain) === null || _this$currentChain5 === void 0 ? void 0 : _this$currentChain5.chainNamespace)) return;
|
|
507
622
|
// skip if it's already connected
|
|
@@ -517,6 +632,28 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
517
632
|
}
|
|
518
633
|
});
|
|
519
634
|
}
|
|
635
|
+
setState(newState) {
|
|
636
|
+
this.state = _objectSpread(_objectSpread({}, this.state), newState);
|
|
637
|
+
this.storage.setItem(WEB3AUTH_STATE_STORAGE_KEY, JSON.stringify(this.state));
|
|
638
|
+
}
|
|
639
|
+
loadState(initialState) {
|
|
640
|
+
if (initialState) {
|
|
641
|
+
this.state = initialState;
|
|
642
|
+
return;
|
|
643
|
+
}
|
|
644
|
+
const state = this.storage.getItem(WEB3AUTH_STATE_STORAGE_KEY);
|
|
645
|
+
if (!state) return;
|
|
646
|
+
this.state = deserialize(state);
|
|
647
|
+
}
|
|
648
|
+
getStorageMethod() {
|
|
649
|
+
if (this.coreOptions.ssr || this.coreOptions.storageType === "cookies") return cookieStorage({
|
|
650
|
+
expiry: this.coreOptions.sessionTime
|
|
651
|
+
});
|
|
652
|
+
if (this.coreOptions.storageType === "session" && storageAvailable("sessionStorage")) return window.sessionStorage;
|
|
653
|
+
if (this.coreOptions.storageType === "local" && storageAvailable("localStorage")) return window.localStorage;
|
|
654
|
+
// If no storage is available, use a memory store.
|
|
655
|
+
return new MemoryStore();
|
|
656
|
+
}
|
|
520
657
|
}
|
|
521
658
|
|
|
522
659
|
export { Web3AuthNoModal };
|
|
@@ -2,7 +2,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import { randomId } from '@toruslabs/base-controllers';
|
|
3
3
|
import { THEME_MODES } from '@web3auth/auth';
|
|
4
4
|
import loglevel from 'loglevel';
|
|
5
|
-
import {
|
|
5
|
+
import { NFT_CHECKOUT_BUILD_ENV, NFT_CHECKOUT_URLS, NFT_CHECKOUT_EMBED_MESSAGE_TYPES } from './enums.js';
|
|
6
6
|
import { getTheme, htmlToElement } from './utils.js';
|
|
7
7
|
|
|
8
8
|
// preload for iframe doesn't work https://bugs.chromium.org/p/chromium/issues/detail?id=593267
|
|
@@ -47,11 +47,13 @@ class NFTCheckoutEmbed {
|
|
|
47
47
|
whiteLabel
|
|
48
48
|
} = params || {};
|
|
49
49
|
this.buildEnv = buildEnv;
|
|
50
|
+
|
|
50
51
|
// construct nft checkout url
|
|
51
52
|
const nftCheckoutIframeUrl = new URL(NFT_CHECKOUT_URLS[this.buildEnv]);
|
|
52
53
|
const hashParams = new URLSearchParams();
|
|
53
54
|
hashParams.append("origin", window.location.origin);
|
|
54
55
|
nftCheckoutIframeUrl.hash = hashParams.toString();
|
|
56
|
+
|
|
55
57
|
// create iframe
|
|
56
58
|
const colorScheme = getTheme((whiteLabel === null || whiteLabel === void 0 ? void 0 : whiteLabel.mode) || THEME_MODES.light);
|
|
57
59
|
const nftCheckoutIframe = htmlToElement(`<iframe
|
|
@@ -95,6 +97,7 @@ class NFTCheckoutEmbed {
|
|
|
95
97
|
if (!this.isInitialized) throw new Error("Call init() first");
|
|
96
98
|
const nftCheckoutIframe = this.getIframe();
|
|
97
99
|
if (!nftCheckoutIframe) throw new Error("Iframe is not initialized");
|
|
100
|
+
|
|
98
101
|
// send message to iframe
|
|
99
102
|
const nftCheckoutOrigin = new URL(NFT_CHECKOUT_URLS[this.buildEnv]).origin;
|
|
100
103
|
nftCheckoutIframe.contentWindow.postMessage({
|
|
@@ -1,23 +1,17 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import { SafeEventEmitter } from '@web3auth/auth';
|
|
3
|
-
import '
|
|
4
|
-
import '../../base/errors/index.js';
|
|
5
|
-
import '../../base/wallet/index.js';
|
|
6
|
-
import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
|
|
7
|
-
import 'jwt-decode';
|
|
8
|
-
import '../../base/loglevel.js';
|
|
3
|
+
import { NFTCheckoutEmbed } from './embed.js';
|
|
9
4
|
import { NFTCheckoutPluginError } from '../../base/plugin/errors.js';
|
|
10
5
|
import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
|
|
11
|
-
import '
|
|
12
|
-
import '
|
|
13
|
-
import { NFTCheckoutEmbed } from './embed.js';
|
|
6
|
+
import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
|
|
7
|
+
import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
|
|
14
8
|
|
|
15
9
|
class NFTCheckoutPlugin extends SafeEventEmitter {
|
|
16
10
|
constructor(params) {
|
|
17
11
|
super();
|
|
18
12
|
_defineProperty(this, "name", EVM_PLUGINS.NFT_CHECKOUT);
|
|
19
13
|
_defineProperty(this, "status", PLUGIN_STATUS.DISCONNECTED);
|
|
20
|
-
_defineProperty(this, "SUPPORTED_CONNECTORS",
|
|
14
|
+
_defineProperty(this, "SUPPORTED_CONNECTORS", Object.values(WALLET_CONNECTORS));
|
|
21
15
|
_defineProperty(this, "pluginNamespace", PLUGIN_NAMESPACES.EIP155);
|
|
22
16
|
_defineProperty(this, "web3auth", null);
|
|
23
17
|
_defineProperty(this, "nftCheckoutEmbedInstance", null);
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import { SafeEventEmitter } from '@web3auth/auth';
|
|
3
|
-
|
|
4
|
-
import '../../base/
|
|
3
|
+
export { BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@web3auth/ws-embed';
|
|
4
|
+
import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
|
|
5
|
+
import { WalletServicesPluginError } from '../../base/plugin/errors.js';
|
|
5
6
|
import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
|
|
7
|
+
import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
|
|
6
8
|
import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
|
|
7
|
-
import 'jwt-decode';
|
|
8
9
|
import { log } from '../../base/loglevel.js';
|
|
9
|
-
import { WalletServicesPluginError } from '../../base/plugin/errors.js';
|
|
10
|
-
import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
|
|
11
|
-
import '@toruslabs/constants';
|
|
12
|
-
import '@toruslabs/http-helpers';
|
|
13
|
-
export { BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@web3auth/ws-embed';
|
|
14
10
|
|
|
15
11
|
// TODO: support project config items here. incl. key export flag, multiple chains
|
|
16
12
|
class WalletServicesPlugin extends SafeEventEmitter {
|
|
@@ -18,7 +14,7 @@ class WalletServicesPlugin extends SafeEventEmitter {
|
|
|
18
14
|
super(...args);
|
|
19
15
|
_defineProperty(this, "name", EVM_PLUGINS.WALLET_SERVICES);
|
|
20
16
|
_defineProperty(this, "status", PLUGIN_STATUS.DISCONNECTED);
|
|
21
|
-
_defineProperty(this, "SUPPORTED_CONNECTORS", [WALLET_CONNECTORS.AUTH
|
|
17
|
+
_defineProperty(this, "SUPPORTED_CONNECTORS", [WALLET_CONNECTORS.AUTH]);
|
|
22
18
|
_defineProperty(this, "pluginNamespace", PLUGIN_NAMESPACES.MULTICHAIN);
|
|
23
19
|
_defineProperty(this, "wsEmbedInstance", void 0);
|
|
24
20
|
_defineProperty(this, "provider", null);
|
|
@@ -35,11 +31,13 @@ class WalletServicesPlugin extends SafeEventEmitter {
|
|
|
35
31
|
if (web3auth.provider && !this.SUPPORTED_CONNECTORS.includes(web3auth.connectedConnectorName)) throw WalletServicesPluginError.notInitialized();
|
|
36
32
|
const currentChainConfig = web3auth.currentChain;
|
|
37
33
|
if (![CHAIN_NAMESPACES.EIP155, CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig === null || currentChainConfig === void 0 ? void 0 : currentChainConfig.chainNamespace)) throw WalletServicesPluginError.unsupportedChainNamespace();
|
|
34
|
+
|
|
38
35
|
// Not connected yet to auth
|
|
39
36
|
if (web3auth.provider) {
|
|
40
37
|
this.provider = web3auth.provider;
|
|
41
38
|
}
|
|
42
39
|
this.web3auth = web3auth;
|
|
40
|
+
|
|
43
41
|
// Auth connector uses WS embed
|
|
44
42
|
const authInstance = web3auth.getConnector(WALLET_CONNECTORS.AUTH);
|
|
45
43
|
if (!authInstance || !authInstance.wsEmbed) throw WalletServicesPluginError.web3AuthNotConnected();
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { accountAbstractionProvider } from './providers/AccountAbstractionProvider.js';
|
|
2
|
-
export { BiconomySmartAccount, KernelSmartAccount, NexusSmartAccount, SMART_ACCOUNT, SafeSmartAccount, TrustSmartAccount } from '@toruslabs/ethereum-controllers';
|
|
1
|
+
export { accountAbstractionProvider, toEoaProvider } from './providers/AccountAbstractionProvider.js';
|
|
2
|
+
export { BiconomySmartAccount, KernelSmartAccount, MetamaskSmartAccount, NexusSmartAccount, SMART_ACCOUNT, SafeSmartAccount, TrustSmartAccount } from '@toruslabs/ethereum-controllers';
|