@web3auth/no-modal 10.0.0-alpha.0 → 10.0.0-alpha.2
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/chain/IChainInterface.js +7 -12
- package/dist/lib.cjs/base/chain/config.js +76 -35
- package/dist/lib.cjs/base/connector/baseConnector.js +64 -0
- package/dist/lib.cjs/base/connector/constants.js +26 -0
- package/dist/lib.cjs/base/errors/index.js +2 -12
- package/dist/lib.cjs/base/plugin/IPlugin.js +2 -2
- package/dist/lib.cjs/base/plugin/errors.js +2 -4
- package/dist/lib.cjs/base/utils.js +7 -7
- package/dist/lib.cjs/base/wallet/index.js +15 -20
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +503 -0
- package/dist/lib.cjs/connectors/auth-connector/config/authConnectionConfig.js +216 -0
- package/dist/lib.cjs/connectors/auth-connector/config/config-build.js +54 -0
- package/dist/lib.cjs/connectors/auth-connector/config/config-env.js +361 -0
- package/dist/lib.cjs/{adapters/base-evm-adapter/baseEvmAdapter.js → connectors/base-evm-connector/baseEvmConnector.js} +28 -19
- package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +83 -0
- package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +159 -0
- package/dist/lib.cjs/connectors/injected-evm-connector/index.js +12 -0
- package/dist/lib.cjs/{adapters/default-evm-adapter/injectedEvmAdapter.js → connectors/injected-evm-connector/injectedEvmConnector.js} +66 -42
- package/dist/lib.cjs/connectors/injected-solana-connector/index.js +25 -0
- package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +156 -0
- package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.js +63 -95
- package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.js +55 -57
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +32 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +418 -0
- package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.js +23 -26
- package/dist/lib.cjs/index.js +142 -102
- package/dist/lib.cjs/noModal.js +299 -241
- package/dist/lib.cjs/plugins/nft-checkout-plugin/embed.js +0 -3
- package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +18 -6
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +50 -204
- package/dist/lib.cjs/providers/account-abstraction-provider/index.js +32 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +112 -35
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +10 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +0 -2
- package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +21 -26
- package/dist/lib.cjs/providers/base-provider/baseProvider.js +49 -24
- package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +2 -13
- package/dist/lib.cjs/providers/base-provider/index.js +22 -0
- package/dist/lib.cjs/providers/base-provider/utils.js +10 -2
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +51 -61
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +12 -2
- package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -1
- package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +0 -1
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +12 -11
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +3 -5
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +1 -2
- package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +1 -30
- package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +0 -8
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +22 -11
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +7 -9
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +90 -2
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +37 -56
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +30 -29
- package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +5 -5
- package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +41 -18
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +36 -60
- package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -4
- package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +28 -44
- package/dist/lib.cjs/react/no-modal/hooks/useWeb3Auth.js +11 -0
- package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +13 -1
- package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +11 -0
- package/dist/{types → lib.cjs/types}/base/chain/IChainInterface.d.ts +4 -10
- package/dist/{types → lib.cjs/types}/base/chain/config.d.ts +2 -2
- package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +37 -0
- package/dist/{types/base/adapter → lib.cjs/types/base/connector}/constants.d.ts +7 -4
- package/dist/{types/base/adapter → lib.cjs/types/base/connector}/index.d.ts +1 -1
- package/dist/{types/base/adapter → lib.cjs/types/base/connector}/interfaces.d.ts +58 -48
- package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +142 -0
- package/dist/{types → lib.cjs/types}/base/errors/index.d.ts +1 -1
- package/dist/{types → lib.cjs/types}/base/hooks/index.d.ts +2 -6
- package/dist/{types → lib.cjs/types}/base/index.d.ts +1 -1
- package/dist/{types → lib.cjs/types}/base/interfaces.d.ts +2 -1
- package/dist/{types → lib.cjs/types}/base/plugin/IPlugin.d.ts +4 -7
- package/dist/{types → lib.cjs/types}/base/plugin/errors.d.ts +1 -1
- package/dist/{types → lib.cjs/types}/base/utils.d.ts +1 -1
- package/dist/lib.cjs/types/base/wallet/index.d.ts +29 -0
- package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +49 -0
- package/dist/lib.cjs/types/connectors/auth-connector/config/authConnectionConfig.d.ts +2 -0
- package/dist/lib.cjs/types/connectors/auth-connector/config/config-build.d.ts +18 -0
- package/dist/lib.cjs/types/connectors/auth-connector/config/config-env.d.ts +60 -0
- package/dist/lib.cjs/types/connectors/auth-connector/index.d.ts +2 -0
- package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +15 -0
- package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +7 -0
- package/dist/lib.cjs/types/connectors/base-evm-connector/index.d.ts +1 -0
- package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +7 -0
- package/dist/lib.cjs/types/connectors/base-solana-connector/index.d.ts +1 -0
- package/dist/lib.cjs/types/connectors/coinbase-connector/coinbaseConnector.d.ts +7 -0
- package/dist/lib.cjs/types/connectors/coinbase-connector/index.d.ts +1 -0
- package/dist/lib.cjs/types/connectors/index.d.ts +7 -0
- package/dist/lib.cjs/types/connectors/injected-evm-connector/index.d.ts +2 -0
- package/dist/lib.cjs/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +34 -0
- package/dist/lib.cjs/types/connectors/injected-solana-connector/index.d.ts +5 -0
- package/dist/lib.cjs/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +33 -0
- package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.d.ts +4 -6
- package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/config.d.ts +4 -4
- package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/index.d.ts +1 -1
- package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/interface.d.ts +4 -4
- package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/walletConnectV2Connector.d.ts +3 -0
- package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/walletConnectV2Utils.d.ts +1 -6
- package/dist/{types → lib.cjs/types}/index.d.ts +1 -1
- package/dist/lib.cjs/types/noModal.d.ts +58 -0
- package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/plugin.d.ts +11 -7
- package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +27 -0
- package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +48 -0
- package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/providers/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -0
- package/dist/{types → lib.cjs/types}/providers/base-provider/CommonJRPCProvider.d.ts +3 -3
- package/dist/{types → lib.cjs/types}/providers/base-provider/baseProvider.d.ts +10 -11
- package/dist/{types → lib.cjs/types}/providers/base-provider/commonPrivateKeyProvider.d.ts +3 -6
- package/dist/{types → lib.cjs/types}/providers/base-provider/interfaces.d.ts +3 -1
- package/dist/lib.cjs/types/providers/base-provider/utils.d.ts +9 -0
- package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +14 -6
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +1 -0
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -0
- package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/interfaces.d.ts +0 -13
- package/dist/lib.cjs/types/providers/solana-provider/interface.d.ts +22 -0
- package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +2 -2
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/index.d.ts +2 -0
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +3 -0
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +9 -0
- package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +5 -6
- package/dist/lib.cjs/types/providers/solana-provider/rpc/interfaces.d.ts +27 -0
- package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +1 -1
- package/dist/lib.cjs/types/providers/solana-provider/solanaWallet.d.ts +28 -0
- package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +5 -6
- package/dist/{types → lib.cjs/types}/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +1 -4
- package/dist/{types → lib.cjs/types}/react/no-modal/interfaces.d.ts +4 -4
- package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/interfaces.d.ts +2 -2
- package/dist/{types → lib.cjs/types}/vue/no-modal/interfaces.d.ts +5 -8
- package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/interfaces.d.ts +2 -2
- package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +27 -44
- package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +12 -1
- package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +14 -2
- package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +12 -1
- package/dist/lib.esm/base/chain/IChainInterface.js +3 -11
- package/dist/lib.esm/base/chain/config.js +65 -24
- package/dist/lib.esm/base/connector/baseConnector.js +62 -0
- package/dist/lib.esm/base/connector/constants.js +22 -0
- package/dist/lib.esm/base/errors/index.js +2 -12
- package/dist/lib.esm/base/plugin/IPlugin.js +1 -1
- package/dist/lib.esm/base/plugin/errors.js +2 -4
- package/dist/lib.esm/base/utils.js +5 -5
- package/dist/lib.esm/base/wallet/index.js +11 -16
- package/dist/lib.esm/connectors/auth-connector/authConnector.js +501 -0
- package/dist/lib.esm/connectors/auth-connector/config/authConnectionConfig.js +214 -0
- package/dist/lib.esm/connectors/auth-connector/config/config-build.js +48 -0
- package/dist/lib.esm/connectors/auth-connector/config/config-env.js +359 -0
- package/dist/lib.esm/{adapters/base-evm-adapter/baseEvmAdapter.js → connectors/base-evm-connector/baseEvmConnector.js} +29 -20
- package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +81 -0
- package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +157 -0
- package/dist/lib.esm/connectors/injected-evm-connector/index.js +2 -0
- package/dist/lib.esm/{adapters/default-evm-adapter/injectedEvmAdapter.js → connectors/injected-evm-connector/injectedEvmConnector.js} +64 -41
- package/dist/lib.esm/connectors/injected-solana-connector/index.js +18 -0
- package/dist/lib.esm/{adapters/default-solana-adapter/walletStandardAdapter.js → connectors/injected-solana-connector/walletStandardConnector.js} +66 -49
- package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.js +63 -95
- package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.js +47 -45
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +3 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +416 -0
- package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.js +24 -26
- package/dist/lib.esm/index.js +29 -34
- package/dist/lib.esm/noModal.js +297 -239
- package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +1 -4
- package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +18 -6
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +46 -201
- package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +108 -34
- package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +10 -0
- package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +0 -2
- package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +22 -27
- package/dist/lib.esm/providers/base-provider/baseProvider.js +49 -24
- package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +2 -13
- package/dist/lib.esm/providers/base-provider/index.js +5 -0
- package/dist/lib.esm/providers/base-provider/utils.js +9 -1
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +50 -60
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +12 -2
- package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -1
- package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +0 -1
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +12 -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 -2
- package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +2 -30
- package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +0 -8
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +22 -11
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +4 -6
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +90 -2
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +36 -55
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +29 -28
- package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +6 -6
- package/dist/lib.esm/providers/solana-provider/solanaWallet.js +41 -18
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +35 -59
- package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -4
- package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +28 -44
- package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +11 -0
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +13 -1
- package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +11 -0
- package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +27 -44
- package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +12 -1
- package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +14 -2
- package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +12 -1
- package/dist/noModal.umd.min.js +1 -1
- package/dist/noModal.umd.min.js.LICENSE.txt +0 -9
- package/package.json +25 -22
- package/dist/757.noModal.cjs.js +0 -226
- package/dist/lib.cjs/adapters/auth-adapter/authAdapter.js +0 -262
- package/dist/lib.cjs/adapters/auth-adapter/config.js +0 -17
- package/dist/lib.cjs/adapters/base-solana-adapter/baseSolanaAdapter.js +0 -76
- package/dist/lib.cjs/adapters/coinbase-adapter/coinbaseAdapter.js +0 -156
- package/dist/lib.cjs/adapters/default-evm-adapter/index.js +0 -40
- package/dist/lib.cjs/adapters/default-evm-adapter/injectedAdapters.js +0 -42
- package/dist/lib.cjs/adapters/default-solana-adapter/index.js +0 -40
- package/dist/lib.cjs/adapters/default-solana-adapter/injectedAdapters.js +0 -53
- package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardAdapter.js +0 -138
- package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardHandler.js +0 -77
- package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +0 -376
- package/dist/lib.cjs/base/adapter/baseAdapter.js +0 -117
- package/dist/lib.cjs/base/adapter/constants.js +0 -24
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +0 -29
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +0 -22
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +0 -30
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +0 -30
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +0 -29
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/constants.js +0 -11
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +0 -185
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +0 -106
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +0 -12
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +0 -75
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +0 -109
- package/dist/lib.esm/adapters/auth-adapter/authAdapter.js +0 -260
- package/dist/lib.esm/adapters/auth-adapter/config.js +0 -15
- package/dist/lib.esm/adapters/base-solana-adapter/baseSolanaAdapter.js +0 -74
- package/dist/lib.esm/adapters/coinbase-adapter/coinbaseAdapter.js +0 -154
- package/dist/lib.esm/adapters/default-evm-adapter/index.js +0 -37
- package/dist/lib.esm/adapters/default-evm-adapter/injectedAdapters.js +0 -40
- package/dist/lib.esm/adapters/default-solana-adapter/index.js +0 -37
- package/dist/lib.esm/adapters/default-solana-adapter/injectedAdapters.js +0 -51
- package/dist/lib.esm/adapters/default-solana-adapter/walletStandardHandler.js +0 -75
- package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +0 -374
- package/dist/lib.esm/base/adapter/baseAdapter.js +0 -115
- package/dist/lib.esm/base/adapter/constants.js +0 -20
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +0 -27
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +0 -20
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +0 -28
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +0 -28
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +0 -27
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/constants.js +0 -9
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +0 -183
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +0 -104
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +0 -10
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +0 -73
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +0 -107
- package/dist/noModal.cjs.js +0 -26385
- package/dist/types/adapters/auth-adapter/authAdapter.d.ts +0 -42
- package/dist/types/adapters/auth-adapter/config.d.ts +0 -2
- package/dist/types/adapters/auth-adapter/index.d.ts +0 -3
- package/dist/types/adapters/auth-adapter/interface.d.ts +0 -11
- package/dist/types/adapters/base-evm-adapter/baseEvmAdapter.d.ts +0 -7
- package/dist/types/adapters/base-evm-adapter/index.d.ts +0 -1
- package/dist/types/adapters/base-solana-adapter/baseSolanaAdapter.d.ts +0 -7
- package/dist/types/adapters/base-solana-adapter/index.d.ts +0 -1
- package/dist/types/adapters/coinbase-adapter/coinbaseAdapter.d.ts +0 -33
- package/dist/types/adapters/coinbase-adapter/index.d.ts +0 -1
- package/dist/types/adapters/default-evm-adapter/index.d.ts +0 -6
- package/dist/types/adapters/default-evm-adapter/injectedAdapters.d.ts +0 -4
- package/dist/types/adapters/default-evm-adapter/injectedEvmAdapter.d.ts +0 -30
- package/dist/types/adapters/default-solana-adapter/index.d.ts +0 -6
- package/dist/types/adapters/default-solana-adapter/injectedAdapters.d.ts +0 -4
- package/dist/types/adapters/default-solana-adapter/walletStandardAdapter.d.ts +0 -31
- package/dist/types/adapters/default-solana-adapter/walletStandardHandler.d.ts +0 -27
- package/dist/types/adapters/index.d.ts +0 -7
- package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.d.ts +0 -42
- package/dist/types/base/adapter/baseAdapter.d.ts +0 -44
- package/dist/types/base/core/IWeb3Auth.d.ts +0 -101
- package/dist/types/base/wallet/index.d.ts +0 -33
- package/dist/types/noModal.d.ts +0 -43
- package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +0 -51
- package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +0 -46
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.d.ts +0 -14
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.d.ts +0 -13
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/LightSmartAccount.d.ts +0 -14
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.d.ts +0 -14
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.d.ts +0 -13
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SimpleSmartAccount.d.ts +0 -13
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.d.ts +0 -13
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/constants.d.ts +0 -9
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +0 -6
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/types.d.ts +0 -22
- package/dist/types/providers/account-abstraction-provider/providers/types.d.ts +0 -17
- package/dist/types/providers/base-provider/utils.d.ts +0 -2
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.d.ts +0 -30
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.d.ts +0 -9
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -2
- package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +0 -5
- package/dist/types/providers/solana-provider/interface.d.ts +0 -39
- package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +0 -3
- package/dist/types/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.d.ts +0 -3
- package/dist/types/providers/solana-provider/providers/injectedProviders/interface.d.ts +0 -5
- package/dist/types/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.d.ts +0 -3
- package/dist/types/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.d.ts +0 -18
- package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +0 -6
- package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +0 -42
- package/dist/types/providers/solana-provider/solanaWallet.d.ts +0 -14
- /package/dist/lib.cjs/base/{adapter → connector}/utils.js +0 -0
- /package/dist/lib.cjs/{adapters/default-solana-adapter → providers/solana-provider/providers/injectedProviders}/utils.js +0 -0
- /package/dist/{types → lib.cjs/types}/base/composables/index.d.ts +0 -0
- /package/dist/{types/base/adapter → lib.cjs/types/base/connector}/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/loglevel.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/plugin/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/provider/IProvider.d.ts +0 -0
- /package/dist/{types/adapters/default-solana-adapter → lib.cjs/types/connectors/injected-solana-connector}/utils.d.ts +0 -0
- /package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/plugins/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/embed.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/enums.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/plugins/wallet-services-plugin/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/providers/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/rpc/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/base-provider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/base-provider/jrpcClient.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/converter.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/jrpcClient.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/walletMidddleware.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/privateKeyProvider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/JrpcClient.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/constants.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/interface.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/rpc/JrpcClient.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/no-modal/Web3AuthInnerContext.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/no-modal/Web3AuthProvider.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/no-modal/hooks/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/no-modal/hooks/useWeb3Auth.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/no-modal/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/WalletServicesContext.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/WalletServicesProvider.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/hooks/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/hooks/useWalletServicesPlugin.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/no-modal/Web3AuthProvider.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/no-modal/composables/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/no-modal/composables/useWeb3Auth.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/no-modal/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/WalletServicesProvider.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/composables/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/context.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/index.d.ts +0 -0
- /package/dist/lib.esm/base/{adapter → connector}/utils.js +0 -0
- /package/dist/lib.esm/{adapters/default-solana-adapter → providers/solana-provider/providers/injectedProviders}/utils.js +0 -0
package/dist/lib.esm/noModal.js
CHANGED
|
@@ -1,296 +1,339 @@
|
|
|
1
1
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
2
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
-
import { SafeEventEmitter
|
|
4
|
-
import
|
|
3
|
+
import { SafeEventEmitter } from '@web3auth/auth';
|
|
4
|
+
import { authConnector } from './connectors/auth-connector/authConnector.js';
|
|
5
5
|
import { getChainConfig } from './base/chain/config.js';
|
|
6
|
-
import {
|
|
6
|
+
import { CONNECTOR_NAMESPACES } from './base/chain/IChainInterface.js';
|
|
7
7
|
import { WalletInitializationError, WalletLoginError } from './base/errors/index.js';
|
|
8
|
+
import { WALLET_CONNECTORS } from './base/wallet/index.js';
|
|
9
|
+
import { CONNECTOR_STATUS, CONNECTOR_EVENTS } from './base/connector/constants.js';
|
|
10
|
+
import { storageAvailable } from './base/connector/utils.js';
|
|
8
11
|
import { log } from './base/loglevel.js';
|
|
12
|
+
import './base/plugin/errors.js';
|
|
13
|
+
import { PLUGIN_STATUS, PLUGIN_NAMESPACES } from './base/plugin/IPlugin.js';
|
|
9
14
|
import { fetchProjectConfig } from './base/utils.js';
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
15
|
+
import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
|
|
16
|
+
import './providers/base-provider/utils.js';
|
|
12
17
|
import { CommonJRPCProvider } from './providers/base-provider/CommonJRPCProvider.js';
|
|
13
|
-
import
|
|
14
|
-
import { ADAPTER_STATUS, ADAPTER_EVENTS } from './base/adapter/constants.js';
|
|
15
|
-
import { cloneDeep } from '@toruslabs/base-controllers';
|
|
18
|
+
import './providers/base-provider/commonPrivateKeyProvider.js';
|
|
16
19
|
|
|
17
|
-
const
|
|
20
|
+
const CONNECTOR_CACHE_KEY = "Web3Auth-cachedConnector";
|
|
21
|
+
const CURRENT_CHAIN_CACHE_KEY = "Web3Auth-currentChain";
|
|
18
22
|
class Web3AuthNoModal extends SafeEventEmitter {
|
|
19
23
|
constructor(options) {
|
|
20
|
-
var _options$chainConfig, _options$chainConfig2, _options$chainConfig3, _options$chainConfig4;
|
|
21
24
|
super();
|
|
22
25
|
_defineProperty(this, "coreOptions", void 0);
|
|
23
|
-
_defineProperty(this, "
|
|
24
|
-
_defineProperty(this, "status",
|
|
25
|
-
_defineProperty(this, "
|
|
26
|
-
_defineProperty(this, "
|
|
26
|
+
_defineProperty(this, "connectedConnectorName", null);
|
|
27
|
+
_defineProperty(this, "status", CONNECTOR_STATUS.NOT_READY);
|
|
28
|
+
_defineProperty(this, "cachedConnector", null);
|
|
29
|
+
_defineProperty(this, "currentChainId", void 0);
|
|
30
|
+
_defineProperty(this, "connectors", []);
|
|
27
31
|
_defineProperty(this, "commonJRPCProvider", null);
|
|
28
32
|
_defineProperty(this, "plugins", {});
|
|
29
33
|
_defineProperty(this, "storage", "localStorage");
|
|
30
34
|
if (!options.clientId) throw WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
|
|
31
35
|
if (options.enableLogging) log.enableAll();else log.setLevel("error");
|
|
32
|
-
|
|
33
|
-
|
|
36
|
+
// TODO: This is fine. we get chains from project config. we can throw in init instead
|
|
37
|
+
if (!options.chains || options.chains.length === 0) {
|
|
38
|
+
throw WalletInitializationError.invalidParams("Please provide chains");
|
|
34
39
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
40
|
+
const {
|
|
41
|
+
chains
|
|
42
|
+
} = options;
|
|
43
|
+
// validate chain namespace of each chain config
|
|
44
|
+
for (const chain of chains) {
|
|
45
|
+
if (!chain.chainNamespace || !Object.values(CHAIN_NAMESPACES).includes(chain.chainNamespace)) throw WalletInitializationError.invalidParams("Please provide a valid chainNamespace in chains");
|
|
46
|
+
}
|
|
47
|
+
if (options.storageType === "session") this.storage = "sessionStorage";
|
|
39
48
|
this.coreOptions = _objectSpread(_objectSpread({}, options), {}, {
|
|
40
|
-
|
|
49
|
+
chains: chains.map(chain => _objectSpread(_objectSpread({}, getChainConfig(chain === null || chain === void 0 ? void 0 : chain.chainNamespace, chain === null || chain === void 0 ? void 0 : chain.chainId, options.clientId) || {}), chain))
|
|
41
50
|
});
|
|
42
|
-
this.
|
|
51
|
+
this.currentChainId = options.defaultChainId || chains[0].chainId;
|
|
52
|
+
}
|
|
53
|
+
get currentChain() {
|
|
54
|
+
return this.coreOptions.chains.find(chain => chain.chainId === this.currentChainId);
|
|
43
55
|
}
|
|
44
56
|
get connected() {
|
|
45
|
-
return Boolean(this.
|
|
57
|
+
return Boolean(this.connectedConnector);
|
|
46
58
|
}
|
|
47
59
|
get provider() {
|
|
48
|
-
if (this.status !==
|
|
60
|
+
if (this.status !== CONNECTOR_STATUS.NOT_READY && this.commonJRPCProvider) {
|
|
49
61
|
return this.commonJRPCProvider;
|
|
50
62
|
}
|
|
51
63
|
return null;
|
|
52
64
|
}
|
|
65
|
+
get connectedConnector() {
|
|
66
|
+
var _this$currentChain;
|
|
67
|
+
return this.getConnector(this.connectedConnectorName, (_this$currentChain = this.currentChain) === null || _this$currentChain === void 0 ? void 0 : _this$currentChain.chainNamespace);
|
|
68
|
+
}
|
|
53
69
|
set provider(_) {
|
|
54
70
|
throw new Error("Not implemented");
|
|
55
71
|
}
|
|
56
72
|
async init() {
|
|
57
|
-
this.
|
|
58
|
-
|
|
59
|
-
});
|
|
73
|
+
this.initCachedConnectorAndChainId();
|
|
74
|
+
// get project config
|
|
60
75
|
let projectConfig;
|
|
61
76
|
try {
|
|
62
77
|
var _this$coreOptions$acc;
|
|
63
|
-
projectConfig = await fetchProjectConfig(this.coreOptions.clientId, this.coreOptions.web3AuthNetwork, (_this$coreOptions$acc = this.coreOptions.
|
|
78
|
+
projectConfig = await fetchProjectConfig(this.coreOptions.clientId, this.coreOptions.web3AuthNetwork, (_this$coreOptions$acc = this.coreOptions.accountAbstractionConfig) === null || _this$coreOptions$acc === void 0 ? void 0 : _this$coreOptions$acc.smartAccountType);
|
|
64
79
|
} catch (e) {
|
|
65
80
|
log.error("Failed to fetch project configurations", e);
|
|
66
81
|
throw WalletInitializationError.notReady("failed to fetch project configurations", e);
|
|
67
82
|
}
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
web3AuthNetwork: this.coreOptions.web3AuthNetwork,
|
|
80
|
-
useCoreKitKey: this.coreOptions.useCoreKitKey
|
|
81
|
-
});
|
|
82
|
-
} else {
|
|
83
|
-
this.walletAdapters[adapterName].setAdapterSettings({
|
|
84
|
-
sessionTime: this.coreOptions.sessionTime,
|
|
85
|
-
clientId: this.coreOptions.clientId,
|
|
86
|
-
web3AuthNetwork: this.coreOptions.web3AuthNetwork,
|
|
87
|
-
useCoreKitKey: this.coreOptions.useCoreKitKey
|
|
88
|
-
});
|
|
89
|
-
}
|
|
90
|
-
if (adapterName === WALLET_ADAPTERS.AUTH) {
|
|
91
|
-
const authAdapter = this.walletAdapters[adapterName];
|
|
92
|
-
const {
|
|
93
|
-
whitelabel
|
|
94
|
-
} = projectConfig;
|
|
95
|
-
this.coreOptions.uiConfig = deepmerge(cloneDeep(whitelabel || {}), this.coreOptions.uiConfig || {});
|
|
96
|
-
if (!this.coreOptions.uiConfig.mode) this.coreOptions.uiConfig.mode = "light";
|
|
97
|
-
const {
|
|
98
|
-
sms_otp_enabled: smsOtpEnabled,
|
|
99
|
-
whitelist,
|
|
100
|
-
key_export_enabled: keyExportEnabled
|
|
101
|
-
} = projectConfig;
|
|
102
|
-
if (smsOtpEnabled !== undefined) {
|
|
103
|
-
authAdapter.setAdapterSettings({
|
|
104
|
-
loginConfig: {
|
|
105
|
-
[LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
|
|
106
|
-
showOnModal: smsOtpEnabled,
|
|
107
|
-
showOnDesktop: smsOtpEnabled,
|
|
108
|
-
showOnMobile: smsOtpEnabled,
|
|
109
|
-
showOnSocialBackupFactor: smsOtpEnabled
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
if (whitelist) {
|
|
115
|
-
authAdapter.setAdapterSettings({
|
|
116
|
-
originData: whitelist.signed_urls
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
if (typeof keyExportEnabled === "boolean") {
|
|
120
|
-
this.coreOptions.privateKeyProvider.setKeyExportFlag(keyExportEnabled);
|
|
121
|
-
// dont know if this is required or not.
|
|
122
|
-
this.commonJRPCProvider.setKeyExportFlag(keyExportEnabled);
|
|
123
|
-
}
|
|
124
|
-
if (this.coreOptions.privateKeyProvider) {
|
|
125
|
-
if (authAdapter.currentChainNamespace !== this.coreOptions.privateKeyProvider.currentChainConfig.chainNamespace) {
|
|
126
|
-
throw WalletInitializationError.incompatibleChainNameSpace("private key provider is not compatible with provided chainNamespace for auth adapter");
|
|
127
|
-
}
|
|
128
|
-
authAdapter.setAdapterSettings({
|
|
129
|
-
privateKeyProvider: this.coreOptions.privateKeyProvider
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
authAdapter.setAdapterSettings({
|
|
133
|
-
whiteLabel: this.coreOptions.uiConfig
|
|
134
|
-
});
|
|
135
|
-
if (!authAdapter.privateKeyProvider) {
|
|
136
|
-
throw WalletInitializationError.invalidParams("privateKeyProvider is required for auth adapter");
|
|
137
|
-
}
|
|
138
|
-
} else if (adapterName === WALLET_ADAPTERS.WALLET_CONNECT_V2) {
|
|
139
|
-
const walletConnectAdapter = this.walletAdapters[adapterName];
|
|
140
|
-
const {
|
|
141
|
-
wallet_connect_enabled: walletConnectEnabled,
|
|
142
|
-
wallet_connect_project_id: walletConnectProjectId
|
|
143
|
-
} = projectConfig;
|
|
144
|
-
if (walletConnectEnabled === false) {
|
|
145
|
-
throw WalletInitializationError.invalidParams("Please enable wallet connect v2 addon on dashboard");
|
|
146
|
-
}
|
|
147
|
-
if (!walletConnectProjectId) throw WalletInitializationError.invalidParams("Invalid wallet connect project id. Please configure it on the dashboard");
|
|
148
|
-
walletConnectAdapter.setAdapterSettings({
|
|
149
|
-
adapterSettings: {
|
|
150
|
-
walletConnectInitOptions: {
|
|
151
|
-
projectId: walletConnectProjectId
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
});
|
|
83
|
+
// setup common JRPC provider
|
|
84
|
+
await this.setupCommonJRPCProvider();
|
|
85
|
+
// initialize connectors
|
|
86
|
+
this.on(CONNECTOR_EVENTS.CONNECTORS_UPDATED, async ({
|
|
87
|
+
connectors: newConnectors
|
|
88
|
+
}) => {
|
|
89
|
+
await Promise.all(newConnectors.map(this.setupConnector.bind(this)));
|
|
90
|
+
// emit connector ready event
|
|
91
|
+
if (this.status === CONNECTOR_STATUS.NOT_READY) {
|
|
92
|
+
this.status = CONNECTOR_STATUS.READY;
|
|
93
|
+
this.emit(CONNECTOR_EVENTS.READY);
|
|
155
94
|
}
|
|
156
|
-
return this.walletAdapters[adapterName].init({
|
|
157
|
-
autoConnect: this.cachedAdapter === adapterName
|
|
158
|
-
}).catch(e => log.error(e, adapterName));
|
|
159
95
|
});
|
|
160
|
-
await
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
getAdapter(adapterName) {
|
|
167
|
-
return this.walletAdapters[adapterName] || null;
|
|
96
|
+
await this.loadConnectors({
|
|
97
|
+
projectConfig
|
|
98
|
+
});
|
|
99
|
+
await this.initPlugins();
|
|
168
100
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
chainConfig: providedChainConfig
|
|
180
|
-
});
|
|
181
|
-
}
|
|
182
|
-
this.walletAdapters[adapter.name] = adapter;
|
|
183
|
-
return this;
|
|
101
|
+
// we need to take into account the chainNamespace as for external connectors, same connector name can be used for multiple chain namespaces
|
|
102
|
+
getConnector(connectorName, chainNamespace) {
|
|
103
|
+
return this.connectors.find(connector => {
|
|
104
|
+
if (connector.name !== connectorName) return false;
|
|
105
|
+
if (chainNamespace) {
|
|
106
|
+
if (connector.connectorNamespace === CONNECTOR_NAMESPACES.MULTICHAIN) return true;
|
|
107
|
+
return connector.connectorNamespace === chainNamespace;
|
|
108
|
+
}
|
|
109
|
+
return true;
|
|
110
|
+
}) || null;
|
|
184
111
|
}
|
|
185
112
|
clearCache() {
|
|
186
113
|
if (!storageAvailable(this.storage)) return;
|
|
187
|
-
window[this.storage].removeItem(
|
|
188
|
-
this.
|
|
189
|
-
|
|
190
|
-
async addChain(chainConfig) {
|
|
191
|
-
if (this.status === ADAPTER_STATUS.CONNECTED && this.connectedAdapterName) return this.walletAdapters[this.connectedAdapterName].addChain(chainConfig);
|
|
192
|
-
if (this.commonJRPCProvider) {
|
|
193
|
-
return this.commonJRPCProvider.addChain(chainConfig);
|
|
194
|
-
}
|
|
195
|
-
throw WalletInitializationError.notReady(`No wallet is ready`);
|
|
114
|
+
window[this.storage].removeItem(CONNECTOR_CACHE_KEY);
|
|
115
|
+
window[this.storage].removeItem(CURRENT_CHAIN_CACHE_KEY);
|
|
116
|
+
this.cachedConnector = null;
|
|
196
117
|
}
|
|
197
118
|
async switchChain(params) {
|
|
198
|
-
if (
|
|
119
|
+
if (params.chainId === this.currentChain.chainId) return;
|
|
120
|
+
const newChainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
|
|
121
|
+
if (!newChainConfig) throw WalletInitializationError.invalidParams("Invalid chainId");
|
|
122
|
+
if (this.status === CONNECTOR_STATUS.CONNECTED && this.connectedConnector) {
|
|
123
|
+
await this.connectedConnector.switchChain(params);
|
|
124
|
+
this.setCurrentChain(params.chainId);
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
199
127
|
if (this.commonJRPCProvider) {
|
|
200
|
-
|
|
128
|
+
await this.commonJRPCProvider.switchChain(params);
|
|
129
|
+
this.setCurrentChain(params.chainId);
|
|
130
|
+
return;
|
|
201
131
|
}
|
|
202
132
|
throw WalletInitializationError.notReady(`No wallet is ready`);
|
|
203
133
|
}
|
|
204
|
-
|
|
205
134
|
/**
|
|
206
|
-
* Connect to a specific wallet
|
|
207
|
-
* @param
|
|
135
|
+
* Connect to a specific wallet connector
|
|
136
|
+
* @param connectorName - Key of the wallet connector to use.
|
|
208
137
|
*/
|
|
209
|
-
async connectTo(
|
|
210
|
-
|
|
138
|
+
async connectTo(connectorName, loginParams) {
|
|
139
|
+
const connector = this.getConnector(connectorName, loginParams === null || loginParams === void 0 ? void 0 : loginParams.chainNamespace);
|
|
140
|
+
if (!connector || !this.commonJRPCProvider) throw WalletInitializationError.notFound(`Please add wallet connector for ${connectorName} wallet, before connecting`);
|
|
211
141
|
return new Promise((resolve, reject) => {
|
|
212
|
-
this.once(
|
|
142
|
+
this.once(CONNECTOR_EVENTS.CONNECTED, _ => {
|
|
213
143
|
resolve(this.provider);
|
|
214
144
|
});
|
|
215
|
-
this.once(
|
|
145
|
+
this.once(CONNECTOR_EVENTS.ERRORED, err => {
|
|
216
146
|
reject(err);
|
|
217
147
|
});
|
|
218
|
-
this.
|
|
148
|
+
const initialChain = this.getInitialChainIdForConnector(connector);
|
|
149
|
+
const finalLoginParams = _objectSpread(_objectSpread({}, loginParams), {}, {
|
|
150
|
+
chainId: initialChain.chainId
|
|
151
|
+
});
|
|
152
|
+
connector.connect(finalLoginParams);
|
|
153
|
+
this.setCurrentChain(initialChain.chainId);
|
|
219
154
|
});
|
|
220
155
|
}
|
|
221
156
|
async logout(options = {
|
|
222
157
|
cleanup: false
|
|
223
158
|
}) {
|
|
224
|
-
if (this.status !==
|
|
225
|
-
await this.
|
|
159
|
+
if (this.status !== CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw WalletLoginError.notConnectedError(`No wallet is connected`);
|
|
160
|
+
await this.connectedConnector.disconnect(options);
|
|
226
161
|
}
|
|
227
162
|
async getUserInfo() {
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
163
|
+
var _this$connectedConnec;
|
|
164
|
+
log.debug("Getting user info", this.status, (_this$connectedConnec = this.connectedConnector) === null || _this$connectedConnec === void 0 ? void 0 : _this$connectedConnec.name);
|
|
165
|
+
if (this.status !== CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw WalletLoginError.notConnectedError(`No wallet is connected`);
|
|
166
|
+
return this.connectedConnector.getUserInfo();
|
|
231
167
|
}
|
|
232
168
|
async enableMFA(loginParams) {
|
|
233
|
-
if (this.status !==
|
|
234
|
-
if (this.
|
|
235
|
-
return this.
|
|
169
|
+
if (this.status !== CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw WalletLoginError.notConnectedError(`No wallet is connected`);
|
|
170
|
+
if (this.connectedConnector.name !== WALLET_CONNECTORS.AUTH) throw WalletLoginError.unsupportedOperation(`EnableMFA is not supported for this connector.`);
|
|
171
|
+
return this.connectedConnector.enableMFA(loginParams);
|
|
236
172
|
}
|
|
237
173
|
async manageMFA(loginParams) {
|
|
238
|
-
if (this.status !==
|
|
239
|
-
if (this.
|
|
240
|
-
return this.
|
|
174
|
+
if (this.status !== CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw WalletLoginError.notConnectedError(`No wallet is connected`);
|
|
175
|
+
if (this.connectedConnector.name !== WALLET_CONNECTORS.AUTH) throw WalletLoginError.unsupportedOperation(`ManageMFA is not supported for this connector.`);
|
|
176
|
+
return this.connectedConnector.manageMFA(loginParams);
|
|
241
177
|
}
|
|
242
178
|
async authenticateUser() {
|
|
243
|
-
if (this.status !==
|
|
244
|
-
return this.
|
|
179
|
+
if (this.status !== CONNECTOR_STATUS.CONNECTED || !this.connectedConnector) throw WalletLoginError.notConnectedError(`No wallet is connected`);
|
|
180
|
+
return this.connectedConnector.authenticateUser();
|
|
181
|
+
}
|
|
182
|
+
getPlugin(name) {
|
|
183
|
+
return this.plugins[name] || null;
|
|
184
|
+
}
|
|
185
|
+
initCachedConnectorAndChainId() {
|
|
186
|
+
this.cachedConnector = storageAvailable(this.storage) ? window[this.storage].getItem(CONNECTOR_CACHE_KEY) : null;
|
|
187
|
+
// init chainId using cached chainId if it exists and is valid, otherwise use the defaultChainId or the first chain
|
|
188
|
+
const cachedChainId = storageAvailable(this.storage) ? window[this.storage].getItem(CURRENT_CHAIN_CACHE_KEY) : null;
|
|
189
|
+
const isCachedChainIdValid = cachedChainId && this.coreOptions.chains.some(chain => chain.chainId === cachedChainId);
|
|
190
|
+
this.currentChainId = isCachedChainIdValid ? cachedChainId : this.coreOptions.defaultChainId || this.coreOptions.chains[0].chainId;
|
|
245
191
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
192
|
+
async setupCommonJRPCProvider() {
|
|
193
|
+
this.commonJRPCProvider = await CommonJRPCProvider.getProviderInstance({
|
|
194
|
+
chain: this.currentChain,
|
|
195
|
+
chains: this.coreOptions.chains
|
|
196
|
+
});
|
|
197
|
+
// sync chainId
|
|
198
|
+
this.commonJRPCProvider.on("chainChanged", chainId => this.setCurrentChain(chainId));
|
|
199
|
+
}
|
|
200
|
+
async setupConnector(connector) {
|
|
201
|
+
this.subscribeToConnectorEvents(connector);
|
|
202
|
+
try {
|
|
203
|
+
const initialChain = this.getInitialChainIdForConnector(connector);
|
|
204
|
+
await connector.init({
|
|
205
|
+
autoConnect: this.cachedConnector === connector.name,
|
|
206
|
+
chainId: initialChain.chainId
|
|
254
207
|
});
|
|
208
|
+
} catch (e) {
|
|
209
|
+
log.error(e, connector.name);
|
|
255
210
|
}
|
|
256
|
-
return this;
|
|
257
211
|
}
|
|
258
|
-
|
|
259
|
-
|
|
212
|
+
async loadConnectors({
|
|
213
|
+
projectConfig
|
|
214
|
+
}) {
|
|
215
|
+
var _this$coreOptions$mul;
|
|
216
|
+
// always add auth connector
|
|
217
|
+
const connectorFns = [...(this.coreOptions.connectors || []), authConnector()];
|
|
218
|
+
const config = {
|
|
219
|
+
projectConfig,
|
|
220
|
+
coreOptions: this.coreOptions
|
|
221
|
+
};
|
|
222
|
+
// add injected connectors
|
|
223
|
+
const isMipdEnabled = (_this$coreOptions$mul = this.coreOptions.multiInjectedProviderDiscovery) !== null && _this$coreOptions$mul !== void 0 ? _this$coreOptions$mul : true;
|
|
224
|
+
const chainNamespaces = new Set(this.coreOptions.chains.map(chain => chain.chainNamespace));
|
|
225
|
+
if (isMipdEnabled) {
|
|
226
|
+
// Solana chains
|
|
227
|
+
if (chainNamespaces.has(CHAIN_NAMESPACES.SOLANA)) {
|
|
228
|
+
const {
|
|
229
|
+
createSolanaMipd,
|
|
230
|
+
hasSolanaWalletStandardFeatures,
|
|
231
|
+
walletStandardConnector
|
|
232
|
+
} = await import('./connectors/injected-solana-connector/index.js');
|
|
233
|
+
const solanaMipd = createSolanaMipd();
|
|
234
|
+
// subscribe to new injected connectors
|
|
235
|
+
solanaMipd.on("register", async (...wallets) => {
|
|
236
|
+
const newConnectors = wallets.filter(hasSolanaWalletStandardFeatures).map(wallet => walletStandardConnector(wallet)(config));
|
|
237
|
+
this.setConnectors(newConnectors);
|
|
238
|
+
});
|
|
239
|
+
connectorFns.push(...solanaMipd.get().filter(wallet => hasSolanaWalletStandardFeatures(wallet)).map(walletStandardConnector));
|
|
240
|
+
}
|
|
241
|
+
// EVM chains
|
|
242
|
+
if (chainNamespaces.has(CHAIN_NAMESPACES.EIP155)) {
|
|
243
|
+
const {
|
|
244
|
+
createMipd,
|
|
245
|
+
injectedEvmConnector
|
|
246
|
+
} = await import('./connectors/injected-evm-connector/index.js');
|
|
247
|
+
const evmMipd = createMipd();
|
|
248
|
+
// subscribe to new injected connectors
|
|
249
|
+
evmMipd.subscribe(providerDetails => {
|
|
250
|
+
const newConnectors = providerDetails.map(providerDetail => injectedEvmConnector(providerDetail)(config));
|
|
251
|
+
this.setConnectors(newConnectors);
|
|
252
|
+
});
|
|
253
|
+
connectorFns.push(...evmMipd.getProviders().map(injectedEvmConnector));
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
// add WalletConnectV2 connector if enabled
|
|
257
|
+
if (projectConfig.wallet_connect_enabled && projectConfig.wallet_connect_project_id && (chainNamespaces.has(CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(CHAIN_NAMESPACES.EIP155))) {
|
|
258
|
+
const {
|
|
259
|
+
walletConnectV2Connector
|
|
260
|
+
} = await import('./connectors/wallet-connect-v2-connector/index.js');
|
|
261
|
+
connectorFns.push(walletConnectV2Connector());
|
|
262
|
+
}
|
|
263
|
+
const connectors = connectorFns.map(connectorFn => connectorFn(config));
|
|
264
|
+
this.setConnectors(connectors);
|
|
265
|
+
}
|
|
266
|
+
async initPlugins() {
|
|
267
|
+
const pluginFns = this.coreOptions.plugins || [];
|
|
268
|
+
for (const pluginFn of pluginFns) {
|
|
269
|
+
const plugin = pluginFn();
|
|
270
|
+
if (!this.plugins[plugin.name]) this.plugins[plugin.name] = plugin;
|
|
271
|
+
}
|
|
260
272
|
}
|
|
261
|
-
|
|
262
|
-
|
|
273
|
+
setConnectors(connectors) {
|
|
274
|
+
const getConnectorKey = connector => `${connector.connectorNamespace}-${connector.name}`;
|
|
275
|
+
const connectorSet = new Set(this.connectors.map(getConnectorKey));
|
|
276
|
+
const newConnectors = connectors.map(connector => {
|
|
277
|
+
const key = getConnectorKey(connector);
|
|
278
|
+
if (connectorSet.has(key)) return null;
|
|
279
|
+
connectorSet.add(key);
|
|
280
|
+
return connector;
|
|
281
|
+
}).filter(connector => connector !== null);
|
|
282
|
+
if (newConnectors.length > 0) {
|
|
283
|
+
this.connectors = [...this.connectors, ...newConnectors];
|
|
284
|
+
// only emit new connectors
|
|
285
|
+
this.emit(CONNECTOR_EVENTS.CONNECTORS_UPDATED, {
|
|
286
|
+
connectors: newConnectors
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
subscribeToConnectorEvents(connector) {
|
|
291
|
+
connector.on(CONNECTOR_EVENTS.CONNECTED, async data => {
|
|
263
292
|
if (!this.commonJRPCProvider) throw WalletInitializationError.notFound(`CommonJrpcProvider not found`);
|
|
264
293
|
const {
|
|
265
294
|
provider
|
|
266
295
|
} = data;
|
|
267
296
|
let finalProvider = provider.provider || provider;
|
|
268
|
-
// setup aa provider
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
297
|
+
// setup aa provider for external wallets on EVM chains, for in app wallet, it uses WS provider which already supports AA
|
|
298
|
+
const {
|
|
299
|
+
accountAbstractionConfig
|
|
300
|
+
} = this.coreOptions;
|
|
301
|
+
if (this.currentChain.chainNamespace === CHAIN_NAMESPACES.EIP155 && accountAbstractionConfig && data.connector !== WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet) {
|
|
302
|
+
const {
|
|
303
|
+
accountAbstractionProvider
|
|
304
|
+
} = await import('./providers/account-abstraction-provider/index.js');
|
|
305
|
+
const aaProvider = await accountAbstractionProvider({
|
|
306
|
+
accountAbstractionConfig,
|
|
307
|
+
provider,
|
|
308
|
+
chain: this.currentChain,
|
|
309
|
+
chains: this.coreOptions.chains
|
|
310
|
+
});
|
|
311
|
+
finalProvider = aaProvider;
|
|
312
|
+
// TODO: when switching chains to Solana or other chains, we need to switch to the non-AA provider
|
|
272
313
|
}
|
|
273
314
|
this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
|
|
274
|
-
this.
|
|
275
|
-
this.status =
|
|
276
|
-
this.cacheWallet(data.
|
|
277
|
-
log.debug("connected", this.status, this.
|
|
315
|
+
this.connectedConnectorName = data.connector;
|
|
316
|
+
this.status = CONNECTOR_STATUS.CONNECTED;
|
|
317
|
+
this.cacheWallet(data.connector);
|
|
318
|
+
log.debug("connected", this.status, this.connectedConnectorName);
|
|
278
319
|
this.connectToPlugins(data);
|
|
279
|
-
this.emit(
|
|
320
|
+
this.emit(CONNECTOR_EVENTS.CONNECTED, _objectSpread({}, data));
|
|
280
321
|
});
|
|
281
|
-
|
|
322
|
+
connector.on(CONNECTOR_EVENTS.DISCONNECTED, async () => {
|
|
282
323
|
// get back to ready state for rehydrating.
|
|
283
|
-
this.status =
|
|
324
|
+
this.status = CONNECTOR_STATUS.READY;
|
|
284
325
|
if (storageAvailable(this.storage)) {
|
|
285
|
-
const
|
|
286
|
-
if (this.
|
|
326
|
+
const cachedConnector = window[this.storage].getItem(CONNECTOR_CACHE_KEY);
|
|
327
|
+
if (this.connectedConnectorName === cachedConnector) {
|
|
287
328
|
this.clearCache();
|
|
288
329
|
}
|
|
289
330
|
}
|
|
290
|
-
log.debug("disconnected", this.status, this.
|
|
291
|
-
await Promise.all(Object.values(this.plugins).map(plugin => {
|
|
331
|
+
log.debug("disconnected", this.status, this.connectedConnectorName);
|
|
332
|
+
await Promise.all(Object.values(this.plugins).map(async plugin => {
|
|
333
|
+
if (!plugin.SUPPORTED_CONNECTORS.includes("all") && !plugin.SUPPORTED_CONNECTORS.includes(connector.name)) return;
|
|
334
|
+
if (plugin.status !== PLUGIN_STATUS.CONNECTED) return;
|
|
292
335
|
return plugin.disconnect().catch(error => {
|
|
293
|
-
// swallow error if
|
|
336
|
+
// swallow error if connector doesn't supports this plugin.
|
|
294
337
|
if (error.code === 5211) {
|
|
295
338
|
return;
|
|
296
339
|
}
|
|
@@ -298,63 +341,78 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
298
341
|
log.error(error);
|
|
299
342
|
});
|
|
300
343
|
}));
|
|
301
|
-
this.
|
|
302
|
-
this.emit(
|
|
344
|
+
this.connectedConnectorName = null;
|
|
345
|
+
this.emit(CONNECTOR_EVENTS.DISCONNECTED);
|
|
303
346
|
});
|
|
304
|
-
|
|
305
|
-
this.status =
|
|
306
|
-
this.emit(
|
|
307
|
-
log.debug("connecting", this.status, this.
|
|
347
|
+
connector.on(CONNECTOR_EVENTS.CONNECTING, data => {
|
|
348
|
+
this.status = CONNECTOR_STATUS.CONNECTING;
|
|
349
|
+
this.emit(CONNECTOR_EVENTS.CONNECTING, data);
|
|
350
|
+
log.debug("connecting", this.status, this.connectedConnectorName);
|
|
308
351
|
});
|
|
309
|
-
|
|
310
|
-
this.status =
|
|
352
|
+
connector.on(CONNECTOR_EVENTS.ERRORED, data => {
|
|
353
|
+
this.status = CONNECTOR_STATUS.ERRORED;
|
|
311
354
|
this.clearCache();
|
|
312
|
-
this.emit(
|
|
313
|
-
log.debug("errored", this.status, this.
|
|
355
|
+
this.emit(CONNECTOR_EVENTS.ERRORED, data);
|
|
356
|
+
log.debug("errored", this.status, this.connectedConnectorName);
|
|
314
357
|
});
|
|
315
|
-
|
|
316
|
-
log.debug("
|
|
317
|
-
this.emit(
|
|
358
|
+
connector.on(CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data => {
|
|
359
|
+
log.debug("connector data updated", data);
|
|
360
|
+
this.emit(CONNECTOR_EVENTS.CONNECTOR_DATA_UPDATED, data);
|
|
318
361
|
});
|
|
319
|
-
|
|
320
|
-
log.debug("
|
|
362
|
+
connector.on(CONNECTOR_EVENTS.CACHE_CLEAR, data => {
|
|
363
|
+
log.debug("connector cache clear", data);
|
|
321
364
|
if (storageAvailable(this.storage)) {
|
|
322
365
|
this.clearCache();
|
|
323
366
|
}
|
|
324
367
|
});
|
|
325
368
|
}
|
|
326
369
|
checkInitRequirements() {
|
|
327
|
-
if (this.status ===
|
|
328
|
-
if (this.status ===
|
|
329
|
-
if (this.status ===
|
|
370
|
+
if (this.status === CONNECTOR_STATUS.CONNECTING) throw WalletInitializationError.notReady("Already pending connection");
|
|
371
|
+
if (this.status === CONNECTOR_STATUS.CONNECTED) throw WalletInitializationError.notReady("Already connected");
|
|
372
|
+
if (this.status === CONNECTOR_STATUS.READY) throw WalletInitializationError.notReady("Connector is already initialized");
|
|
373
|
+
}
|
|
374
|
+
/**
|
|
375
|
+
* Gets the initial chain configuration for a connector
|
|
376
|
+
* @throws WalletInitializationError If no chain is found for the connector's namespace
|
|
377
|
+
*/
|
|
378
|
+
getInitialChainIdForConnector(connector) {
|
|
379
|
+
let initialChain = this.currentChain;
|
|
380
|
+
if (initialChain.chainNamespace !== connector.connectorNamespace && connector.connectorNamespace !== CONNECTOR_NAMESPACES.MULTICHAIN) {
|
|
381
|
+
initialChain = this.coreOptions.chains.find(x => x.chainNamespace === connector.connectorNamespace);
|
|
382
|
+
if (!initialChain) throw WalletInitializationError.invalidParams(`No chain found for ${connector.connectorNamespace}`);
|
|
383
|
+
}
|
|
384
|
+
return initialChain;
|
|
330
385
|
}
|
|
331
386
|
cacheWallet(walletName) {
|
|
332
387
|
if (!storageAvailable(this.storage)) return;
|
|
333
|
-
|
|
334
|
-
this.
|
|
388
|
+
// TODO: use the key from user + this
|
|
389
|
+
window[this.storage].setItem(CONNECTOR_CACHE_KEY, walletName);
|
|
390
|
+
this.cachedConnector = walletName;
|
|
391
|
+
}
|
|
392
|
+
setCurrentChain(chainId) {
|
|
393
|
+
if (chainId === this.currentChainId) return;
|
|
394
|
+
const newChain = this.coreOptions.chains.find(chain => chain.chainId === chainId);
|
|
395
|
+
if (!newChain) throw WalletInitializationError.invalidParams(`Invalid chainId: ${chainId}`);
|
|
396
|
+
this.currentChainId = chainId;
|
|
397
|
+
this.cacheCurrentChain(chainId);
|
|
398
|
+
}
|
|
399
|
+
cacheCurrentChain(chainId) {
|
|
400
|
+
if (!storageAvailable(this.storage)) return;
|
|
401
|
+
window[this.storage].setItem(CURRENT_CHAIN_CACHE_KEY, chainId);
|
|
335
402
|
}
|
|
336
403
|
connectToPlugins(data) {
|
|
337
404
|
Object.values(this.plugins).map(async plugin => {
|
|
338
405
|
try {
|
|
339
|
-
if
|
|
340
|
-
|
|
341
|
-
|
|
406
|
+
// skip if it's not compatible with the connector
|
|
407
|
+
if (!plugin.SUPPORTED_CONNECTORS.includes("all") && !plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
|
|
408
|
+
// skip if it's not compatible with the current chain
|
|
409
|
+
if (plugin.pluginNamespace !== PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== this.currentChain.chainNamespace) return;
|
|
410
|
+
// skip if it's already connected
|
|
342
411
|
if (plugin.status === PLUGIN_STATUS.CONNECTED) return;
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
} = this.walletAdapters[this.connectedAdapterName];
|
|
346
|
-
const {
|
|
347
|
-
options,
|
|
348
|
-
sessionId,
|
|
349
|
-
sessionNamespace
|
|
350
|
-
} = authInstance || {};
|
|
351
|
-
await plugin.initWithWeb3Auth(this, options === null || options === void 0 ? void 0 : options.whiteLabel);
|
|
352
|
-
await plugin.connect({
|
|
353
|
-
sessionId,
|
|
354
|
-
sessionNamespace
|
|
355
|
-
});
|
|
412
|
+
await plugin.initWithWeb3Auth(this, this.coreOptions.uiConfig);
|
|
413
|
+
await plugin.connect();
|
|
356
414
|
} catch (error) {
|
|
357
|
-
// swallow error if connector
|
|
415
|
+
// swallow error if connector connector doesn't supports this plugin.
|
|
358
416
|
if (error.code === 5211) {
|
|
359
417
|
return;
|
|
360
418
|
}
|