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