@web3auth/no-modal 10.0.0-alpha.1 → 10.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib.cjs/base/chain/IChainInterface.js +5 -10
- package/dist/lib.cjs/base/chain/config.js +20 -19
- package/dist/lib.cjs/base/connector/baseConnector.js +3 -6
- package/dist/lib.cjs/base/connector/constants.js +5 -0
- package/dist/lib.cjs/base/errors/index.js +0 -10
- package/dist/lib.cjs/base/plugin/IPlugin.js +2 -2
- package/dist/lib.cjs/base/plugin/errors.js +0 -2
- package/dist/lib.cjs/base/utils.js +10 -9
- package/dist/lib.cjs/base/wallet/index.js +2 -1
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +218 -59
- package/dist/lib.cjs/connectors/base-evm-connector/baseEvmConnector.js +8 -2
- package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +7 -1
- package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +11 -3
- package/dist/lib.cjs/connectors/injected-evm-connector/injectedEvmConnector.js +13 -5
- package/dist/lib.cjs/connectors/injected-solana-connector/index.js +2 -2
- package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +13 -5
- package/dist/lib.cjs/connectors/metamask-connector/metamaskConnector.js +197 -0
- package/dist/lib.cjs/connectors/utils.js +61 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +24 -7
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/config.js +36 -90
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +16 -4
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +21 -30
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +12 -2
- package/dist/lib.cjs/index.js +76 -55
- package/dist/lib.cjs/noModal.js +149 -53
- package/dist/lib.cjs/plugins/nft-checkout-plugin/embed.js +0 -3
- package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +10 -3
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +13 -11
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +33 -18
- 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/baseProvider.js +32 -12
- package/dist/lib.cjs/providers/base-provider/index.js +4 -0
- package/dist/lib.cjs/providers/base-provider/utils.js +10 -2
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +18 -5
- 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/walletMidddleware.js +0 -8
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +13 -0
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +4 -4
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +15 -8
- package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +1 -1
- package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +0 -3
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +13 -2
- package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +0 -1
- package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +11 -3
- package/dist/lib.cjs/react/no-modal/hooks/useWeb3Auth.js +11 -0
- package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +10 -1
- package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +11 -0
- package/dist/lib.cjs/types/base/chain/IChainInterface.d.ts +11 -0
- package/dist/{types → lib.cjs/types}/base/connector/constants.d.ts +4 -0
- package/dist/{types → lib.cjs/types}/base/connector/interfaces.d.ts +17 -5
- package/dist/{types → lib.cjs/types}/base/core/IWeb3Auth.d.ts +11 -5
- package/dist/lib.cjs/types/base/interfaces.d.ts +102 -0
- package/dist/{types → lib.cjs/types}/base/utils.d.ts +2 -2
- package/dist/{types → lib.cjs/types}/base/wallet/index.d.ts +2 -0
- package/dist/{types → lib.cjs/types}/connectors/auth-connector/authConnector.d.ts +9 -2
- package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +17 -0
- package/dist/lib.cjs/types/connectors/metamask-connector/index.d.ts +1 -0
- package/dist/lib.cjs/types/connectors/metamask-connector/metamaskConnector.d.ts +6 -0
- package/dist/lib.cjs/types/connectors/utils.d.ts +8 -0
- package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.d.ts +1 -2
- package/dist/{types → lib.cjs/types}/noModal.d.ts +6 -4
- package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +4 -5
- package/dist/{types → lib.cjs/types}/providers/base-provider/baseProvider.d.ts +3 -7
- package/dist/{types → lib.cjs/types}/providers/base-provider/commonPrivateKeyProvider.d.ts +1 -2
- 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 +1 -2
- package/dist/lib.cjs/types/providers/solana-provider/providers/index.d.ts +1 -0
- package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +1 -2
- package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +12 -3
- package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +12 -1
- package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +11 -3
- package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +12 -1
- package/dist/lib.esm/base/chain/IChainInterface.js +2 -10
- package/dist/lib.esm/base/chain/config.js +4 -3
- package/dist/lib.esm/base/connector/baseConnector.js +2 -5
- package/dist/lib.esm/base/connector/constants.js +5 -1
- package/dist/lib.esm/base/errors/index.js +0 -10
- package/dist/lib.esm/base/plugin/IPlugin.js +1 -1
- package/dist/lib.esm/base/plugin/errors.js +0 -2
- package/dist/lib.esm/base/utils.js +8 -7
- package/dist/lib.esm/base/wallet/index.js +2 -1
- package/dist/lib.esm/connectors/auth-connector/authConnector.js +212 -53
- package/dist/lib.esm/connectors/base-evm-connector/baseEvmConnector.js +8 -2
- package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +7 -1
- package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +10 -2
- package/dist/lib.esm/connectors/injected-evm-connector/injectedEvmConnector.js +12 -4
- package/dist/lib.esm/connectors/injected-solana-connector/walletStandardConnector.js +12 -4
- package/dist/lib.esm/connectors/metamask-connector/metamaskConnector.js +195 -0
- package/dist/lib.esm/connectors/utils.js +58 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/WalletConnectV2Provider.js +22 -5
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/config.js +25 -75
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +19 -28
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Utils.js +11 -1
- package/dist/lib.esm/index.js +13 -14
- package/dist/lib.esm/noModal.js +147 -51
- package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +1 -4
- package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +10 -3
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +9 -7
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +30 -15
- 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/baseProvider.js +32 -12
- package/dist/lib.esm/providers/base-provider/index.js +1 -1
- package/dist/lib.esm/providers/base-provider/utils.js +9 -1
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +16 -3
- 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/walletMidddleware.js +0 -8
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +13 -0
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +1 -1
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +12 -5
- package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +2 -2
- package/dist/lib.esm/providers/solana-provider/solanaWallet.js +0 -3
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +12 -1
- package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +0 -1
- package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +11 -3
- package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +11 -0
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +10 -1
- package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +11 -0
- package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +12 -3
- package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +12 -1
- package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +11 -3
- package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +12 -1
- package/dist/noModal.umd.min.js +1 -1
- package/package.json +26 -23
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +0 -150
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +0 -94
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +0 -148
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +0 -92
- package/dist/noModal.cjs.js +0 -14673
- package/dist/types/base/chain/IChainInterface.d.ts +0 -59
- package/dist/types/base/interfaces.d.ts +0 -44
- package/dist/types/connectors/auth-connector/interface.d.ts +0 -14
- package/dist/types/providers/base-provider/utils.d.ts +0 -2
- package/dist/types/providers/solana-provider/providers/index.d.ts +0 -2
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/index.d.ts +0 -1
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +0 -31
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +0 -7
- /package/dist/{types → lib.cjs/types}/base/chain/config.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/composables/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/connector/baseConnector.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/connector/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/connector/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/errors/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/hooks/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/loglevel.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/plugin/IPlugin.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/plugin/errors.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 → lib.cjs/types}/connectors/auth-connector/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/base-evm-connector/baseEvmConnector.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/base-evm-connector/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/base-solana-connector/baseSolanaConnector.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/base-solana-connector/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/coinbase-connector/coinbaseConnector.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/coinbase-connector/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/injected-evm-connector/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/injected-evm-connector/injectedEvmConnector.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/injected-solana-connector/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/injected-solana-connector/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/injected-solana-connector/walletStandardConnector.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/config.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/interface.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/walletConnectV2Connector.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/connectors/wallet-connect-v2-connector/walletConnectV2Utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/index.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/plugin.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}/plugins/wallet-services-plugin/plugin.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/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/providers/smartAccounts/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/CommonJRPCProvider.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/privateKeyProviders/index.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/ethRpcMiddlewares.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/interfaces.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/interface.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.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/injectedProviders/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/walletStandardProvider.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/solana-provider/rpc/interfaces.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/solanaWallet.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}/providers/xrpl-provider/rpc/xrplRpcMiddlewares.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/no-modal/interfaces.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}/react/wallet-services-plugin/interfaces.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/no-modal/interfaces.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/{types → lib.cjs/types}/vue/wallet-services-plugin/interfaces.d.ts +0 -0
package/dist/lib.esm/noModal.js
CHANGED
|
@@ -1,18 +1,25 @@
|
|
|
1
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
1
2
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
3
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
4
|
import { SafeEventEmitter } from '@web3auth/auth';
|
|
5
|
+
import deepmerge from 'deepmerge';
|
|
4
6
|
import { authConnector } from './connectors/auth-connector/authConnector.js';
|
|
5
|
-
import { getChainConfig } from './base/chain/config.js';
|
|
6
|
-
import { CHAIN_NAMESPACES, CONNECTOR_NAMESPACES } from './base/chain/IChainInterface.js';
|
|
7
7
|
import { WalletInitializationError, WalletLoginError } from './base/errors/index.js';
|
|
8
|
-
import {
|
|
9
|
-
import { fetchProjectConfig } from './base/utils.js';
|
|
8
|
+
import { CONNECTOR_NAMESPACES } from './base/chain/IChainInterface.js';
|
|
10
9
|
import { WALLET_CONNECTORS } from './base/wallet/index.js';
|
|
11
|
-
import {
|
|
10
|
+
import { CONNECTOR_STATUS, CONNECTOR_EVENTS, SMART_ACCOUNT_WALLET_SCOPE } from './base/connector/constants.js';
|
|
12
11
|
import { storageAvailable } from './base/connector/utils.js';
|
|
12
|
+
import { log } from './base/loglevel.js';
|
|
13
|
+
import './base/plugin/errors.js';
|
|
13
14
|
import { PLUGIN_STATUS, PLUGIN_NAMESPACES } from './base/plugin/IPlugin.js';
|
|
14
|
-
import {
|
|
15
|
+
import { fetchProjectConfig, isHexStrict } from './base/utils.js';
|
|
16
|
+
import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
|
|
17
|
+
import './providers/base-provider/utils.js';
|
|
18
|
+
import { CommonJRPCProvider } from './providers/base-provider/CommonJRPCProvider.js';
|
|
19
|
+
import './providers/base-provider/commonPrivateKeyProvider.js';
|
|
20
|
+
import { metaMaskConnector } from './connectors/metamask-connector/metamaskConnector.js';
|
|
15
21
|
|
|
22
|
+
const _excluded = ["walletScope"];
|
|
16
23
|
const CONNECTOR_CACHE_KEY = "Web3Auth-cachedConnector";
|
|
17
24
|
const CURRENT_CHAIN_CACHE_KEY = "Web3Auth-currentChain";
|
|
18
25
|
class Web3AuthNoModal extends SafeEventEmitter {
|
|
@@ -29,25 +36,13 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
29
36
|
_defineProperty(this, "storage", "localStorage");
|
|
30
37
|
if (!options.clientId) throw WalletInitializationError.invalidParams("Please provide a valid clientId in constructor");
|
|
31
38
|
if (options.enableLogging) log.enableAll();else log.setLevel("error");
|
|
32
|
-
// TODO: This is fine. we get chains from project config. we can throw in init instead
|
|
33
|
-
if (!options.chains || options.chains.length === 0) {
|
|
34
|
-
throw WalletInitializationError.invalidParams("Please provide chains");
|
|
35
|
-
}
|
|
36
|
-
const {
|
|
37
|
-
chains
|
|
38
|
-
} = options;
|
|
39
|
-
// validate chain namespace of each chain config
|
|
40
|
-
for (const chain of chains) {
|
|
41
|
-
if (!chain.chainNamespace || !Object.values(CHAIN_NAMESPACES).includes(chain.chainNamespace)) throw WalletInitializationError.invalidParams("Please provide a valid chainNamespace in chains");
|
|
42
|
-
}
|
|
43
39
|
if (options.storageType === "session") this.storage = "sessionStorage";
|
|
44
|
-
this.coreOptions =
|
|
45
|
-
|
|
46
|
-
});
|
|
47
|
-
this.currentChainId = options.defaultChainId || chains[0].chainId;
|
|
40
|
+
this.coreOptions = options;
|
|
41
|
+
this.currentChainId = options.defaultChainId;
|
|
48
42
|
}
|
|
49
43
|
get currentChain() {
|
|
50
|
-
|
|
44
|
+
var _this$coreOptions$cha;
|
|
45
|
+
return (_this$coreOptions$cha = this.coreOptions.chains) === null || _this$coreOptions$cha === void 0 ? void 0 : _this$coreOptions$cha.find(chain => chain.chainId === this.currentChainId);
|
|
51
46
|
}
|
|
52
47
|
get connected() {
|
|
53
48
|
return Boolean(this.connectedConnector);
|
|
@@ -59,14 +54,13 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
59
54
|
return null;
|
|
60
55
|
}
|
|
61
56
|
get connectedConnector() {
|
|
62
|
-
|
|
57
|
+
var _this$currentChain;
|
|
58
|
+
return this.getConnector(this.connectedConnectorName, (_this$currentChain = this.currentChain) === null || _this$currentChain === void 0 ? void 0 : _this$currentChain.chainNamespace);
|
|
63
59
|
}
|
|
64
60
|
set provider(_) {
|
|
65
61
|
throw new Error("Not implemented");
|
|
66
62
|
}
|
|
67
63
|
async init() {
|
|
68
|
-
this.initCachedConnectorAndChainId();
|
|
69
|
-
|
|
70
64
|
// get project config
|
|
71
65
|
let projectConfig;
|
|
72
66
|
try {
|
|
@@ -76,16 +70,17 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
76
70
|
log.error("Failed to fetch project configurations", e);
|
|
77
71
|
throw WalletInitializationError.notReady("failed to fetch project configurations", e);
|
|
78
72
|
}
|
|
79
|
-
|
|
73
|
+
// init config
|
|
74
|
+
this.initAccountAbstractionConfig(projectConfig);
|
|
75
|
+
this.initChainsConfig(projectConfig);
|
|
76
|
+
this.initCachedConnectorAndChainId();
|
|
80
77
|
// setup common JRPC provider
|
|
81
78
|
await this.setupCommonJRPCProvider();
|
|
82
|
-
|
|
83
79
|
// initialize connectors
|
|
84
80
|
this.on(CONNECTOR_EVENTS.CONNECTORS_UPDATED, async ({
|
|
85
81
|
connectors: newConnectors
|
|
86
82
|
}) => {
|
|
87
|
-
await Promise.all(newConnectors.map(this.setupConnector));
|
|
88
|
-
|
|
83
|
+
await Promise.all(newConnectors.map(this.setupConnector.bind(this)));
|
|
89
84
|
// emit connector ready event
|
|
90
85
|
if (this.status === CONNECTOR_STATUS.NOT_READY) {
|
|
91
86
|
this.status = CONNECTOR_STATUS.READY;
|
|
@@ -97,8 +92,16 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
97
92
|
});
|
|
98
93
|
await this.initPlugins();
|
|
99
94
|
}
|
|
100
|
-
|
|
101
|
-
|
|
95
|
+
// we need to take into account the chainNamespace as for external connectors, same connector name can be used for multiple chain namespaces
|
|
96
|
+
getConnector(connectorName, chainNamespace) {
|
|
97
|
+
return this.connectors.find(connector => {
|
|
98
|
+
if (connector.name !== connectorName) return false;
|
|
99
|
+
if (chainNamespace) {
|
|
100
|
+
if (connector.connectorNamespace === CONNECTOR_NAMESPACES.MULTICHAIN) return true;
|
|
101
|
+
return connector.connectorNamespace === chainNamespace;
|
|
102
|
+
}
|
|
103
|
+
return true;
|
|
104
|
+
}) || null;
|
|
102
105
|
}
|
|
103
106
|
clearCache() {
|
|
104
107
|
if (!storageAvailable(this.storage)) return;
|
|
@@ -107,7 +110,8 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
107
110
|
this.cachedConnector = null;
|
|
108
111
|
}
|
|
109
112
|
async switchChain(params) {
|
|
110
|
-
|
|
113
|
+
var _this$currentChain2;
|
|
114
|
+
if (params.chainId === ((_this$currentChain2 = this.currentChain) === null || _this$currentChain2 === void 0 ? void 0 : _this$currentChain2.chainId)) return;
|
|
111
115
|
const newChainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
|
|
112
116
|
if (!newChainConfig) throw WalletInitializationError.invalidParams("Invalid chainId");
|
|
113
117
|
if (this.status === CONNECTOR_STATUS.CONNECTED && this.connectedConnector) {
|
|
@@ -122,13 +126,13 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
122
126
|
}
|
|
123
127
|
throw WalletInitializationError.notReady(`No wallet is ready`);
|
|
124
128
|
}
|
|
125
|
-
|
|
126
129
|
/**
|
|
127
130
|
* Connect to a specific wallet connector
|
|
128
131
|
* @param connectorName - Key of the wallet connector to use.
|
|
129
132
|
*/
|
|
130
133
|
async connectTo(connectorName, loginParams) {
|
|
131
|
-
|
|
134
|
+
const connector = this.getConnector(connectorName, loginParams === null || loginParams === void 0 ? void 0 : loginParams.chainNamespace);
|
|
135
|
+
if (!connector || !this.commonJRPCProvider) throw WalletInitializationError.notFound(`Please add wallet connector for ${connectorName} wallet, before connecting`);
|
|
132
136
|
return new Promise((resolve, reject) => {
|
|
133
137
|
this.once(CONNECTOR_EVENTS.CONNECTED, _ => {
|
|
134
138
|
resolve(this.provider);
|
|
@@ -136,7 +140,6 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
136
140
|
this.once(CONNECTOR_EVENTS.ERRORED, err => {
|
|
137
141
|
reject(err);
|
|
138
142
|
});
|
|
139
|
-
const connector = this.getConnector(connectorName);
|
|
140
143
|
const initialChain = this.getInitialChainIdForConnector(connector);
|
|
141
144
|
const finalLoginParams = _objectSpread(_objectSpread({}, loginParams), {}, {
|
|
142
145
|
chainId: initialChain.chainId
|
|
@@ -174,6 +177,89 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
174
177
|
getPlugin(name) {
|
|
175
178
|
return this.plugins[name] || null;
|
|
176
179
|
}
|
|
180
|
+
initChainsConfig(projectConfig) {
|
|
181
|
+
// merge chains from project config with core options, core options chains will take precedence over project config chains
|
|
182
|
+
const chainMap = new Map();
|
|
183
|
+
const allChains = [...(projectConfig.chains || []), ...(this.coreOptions.chains || [])];
|
|
184
|
+
for (const chain of allChains) {
|
|
185
|
+
const existingChain = chainMap.get(chain.chainId);
|
|
186
|
+
if (!existingChain) chainMap.set(chain.chainId, chain);else chainMap.set(chain.chainId, _objectSpread(_objectSpread({}, existingChain), chain));
|
|
187
|
+
}
|
|
188
|
+
this.coreOptions.chains = Array.from(chainMap.values());
|
|
189
|
+
// validate chains and namespaces
|
|
190
|
+
if (this.coreOptions.chains.length === 0) {
|
|
191
|
+
log.error("chain info not found. Please configure chains on dashboard at https://dashboard.web3auth.io");
|
|
192
|
+
throw WalletInitializationError.invalidParams("Please configure chains on dashboard at https://dashboard.web3auth.io");
|
|
193
|
+
}
|
|
194
|
+
const validChainNamespaces = new Set(Object.values(CHAIN_NAMESPACES));
|
|
195
|
+
for (const chain of this.coreOptions.chains) {
|
|
196
|
+
if (!chain.chainNamespace || !validChainNamespaces.has(chain.chainNamespace)) {
|
|
197
|
+
log.error(`Please provide a valid chainNamespace in chains for chain ${chain.chainId}`);
|
|
198
|
+
throw WalletInitializationError.invalidParams(`Please provide a valid chainNamespace in chains for chain ${chain.chainId}`);
|
|
199
|
+
}
|
|
200
|
+
if (chain.chainNamespace !== CHAIN_NAMESPACES.OTHER && !isHexStrict(chain.chainId)) {
|
|
201
|
+
log.error(`Please provide a valid chainId in chains for chain ${chain.chainId}`);
|
|
202
|
+
throw WalletInitializationError.invalidParams(`Please provide a valid chainId as hex string in chains for chain ${chain.chainId}`);
|
|
203
|
+
}
|
|
204
|
+
if (chain.chainNamespace !== CHAIN_NAMESPACES.OTHER) {
|
|
205
|
+
try {
|
|
206
|
+
new URL(chain.rpcTarget);
|
|
207
|
+
} catch (error) {
|
|
208
|
+
// TODO: add support for chain.wsTarget
|
|
209
|
+
log.error(`Please provide a valid rpcTarget in chains for chain ${chain.chainId}`, error);
|
|
210
|
+
throw WalletInitializationError.invalidParams(`Please provide a valid rpcTarget in chains for chain ${chain.chainId}`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
// if AA is enabled, filter out chains that are not AA-supported
|
|
215
|
+
if (this.coreOptions.accountAbstractionConfig) {
|
|
216
|
+
// write a for loop over accountAbstractionConfig.chains and check if the chainId is valid
|
|
217
|
+
for (const chain of this.coreOptions.accountAbstractionConfig.chains) {
|
|
218
|
+
if (!isHexStrict(chain.chainId)) {
|
|
219
|
+
log.error(`Please provide a valid chainId in accountAbstractionConfig.chains for chain ${chain.chainId}`);
|
|
220
|
+
throw WalletInitializationError.invalidParams(`Please provide a valid chainId in accountAbstractionConfig.chains for chain ${chain.chainId}`);
|
|
221
|
+
}
|
|
222
|
+
try {
|
|
223
|
+
var _chain$bundlerConfig;
|
|
224
|
+
new URL((_chain$bundlerConfig = chain.bundlerConfig) === null || _chain$bundlerConfig === void 0 ? void 0 : _chain$bundlerConfig.url);
|
|
225
|
+
} catch (error) {
|
|
226
|
+
log.error(`Please provide a valid bundlerConfig.url in accountAbstractionConfig.chains for chain ${chain.chainId}`, error);
|
|
227
|
+
throw WalletInitializationError.invalidParams(`Please provide a valid bundlerConfig.url in accountAbstractionConfig.chains for chain ${chain.chainId}`);
|
|
228
|
+
}
|
|
229
|
+
if (!chainMap.has(chain.chainId)) {
|
|
230
|
+
log.error(`Please provide chain config for AA chain in accountAbstractionConfig.chains for chain ${chain.chainId}`);
|
|
231
|
+
throw WalletInitializationError.invalidParams(`Please provide chain config for AA chain in accountAbstractionConfig.chains for chain ${chain.chainId}`);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
// const aaSupportedChainIds = new Set(
|
|
235
|
+
// this.coreOptions.accountAbstractionConfig?.chains
|
|
236
|
+
// ?.filter((chain) => chain.chainId && chain.bundlerConfig?.url)
|
|
237
|
+
// .map((chain) => chain.chainId) || []
|
|
238
|
+
// );
|
|
239
|
+
// this.coreOptions.chains = this.coreOptions.chains.filter(
|
|
240
|
+
// (chain) => chain.chainNamespace !== CHAIN_NAMESPACES.EIP155 || aaSupportedChainIds.has(chain.chainId)
|
|
241
|
+
// );
|
|
242
|
+
// if (this.coreOptions.chains.length === 0) {
|
|
243
|
+
// log.error("Account Abstraction is enabled but no supported chains found");
|
|
244
|
+
// throw WalletInitializationError.invalidParams("Account Abstraction is enabled but no supported chains found");
|
|
245
|
+
// }
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
initAccountAbstractionConfig(projectConfig) {
|
|
249
|
+
const isAAEnabled = Boolean(this.coreOptions.accountAbstractionConfig || (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts));
|
|
250
|
+
if (!isAAEnabled) return;
|
|
251
|
+
// merge project config with core options, code config take precedence over project config
|
|
252
|
+
const _ref = (projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.smartAccounts) || {},
|
|
253
|
+
{
|
|
254
|
+
walletScope
|
|
255
|
+
} = _ref,
|
|
256
|
+
configWithoutWalletScope = _objectWithoutProperties(_ref, _excluded);
|
|
257
|
+
this.coreOptions.accountAbstractionConfig = deepmerge(configWithoutWalletScope || {}, this.coreOptions.accountAbstractionConfig || {});
|
|
258
|
+
// determine if we should use AA with external wallet
|
|
259
|
+
if (this.coreOptions.useAAWithExternalWallet === undefined) {
|
|
260
|
+
this.coreOptions.useAAWithExternalWallet = walletScope === SMART_ACCOUNT_WALLET_SCOPE.ALL;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
177
263
|
initCachedConnectorAndChainId() {
|
|
178
264
|
this.cachedConnector = storageAvailable(this.storage) ? window[this.storage].getItem(CONNECTOR_CACHE_KEY) : null;
|
|
179
265
|
// init chainId using cached chainId if it exists and is valid, otherwise use the defaultChainId or the first chain
|
|
@@ -186,7 +272,6 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
186
272
|
chain: this.currentChain,
|
|
187
273
|
chains: this.coreOptions.chains
|
|
188
274
|
});
|
|
189
|
-
|
|
190
275
|
// sync chainId
|
|
191
276
|
this.commonJRPCProvider.on("chainChanged", chainId => this.setCurrentChain(chainId));
|
|
192
277
|
}
|
|
@@ -212,9 +297,9 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
212
297
|
projectConfig,
|
|
213
298
|
coreOptions: this.coreOptions
|
|
214
299
|
};
|
|
215
|
-
|
|
216
300
|
// add injected connectors
|
|
217
|
-
const
|
|
301
|
+
const isExternalWalletEnabled = Boolean(projectConfig.externalWalletAuth);
|
|
302
|
+
const isMipdEnabled = isExternalWalletEnabled && ((_this$coreOptions$mul = this.coreOptions.multiInjectedProviderDiscovery) !== null && _this$coreOptions$mul !== void 0 ? _this$coreOptions$mul : true);
|
|
218
303
|
const chainNamespaces = new Set(this.coreOptions.chains.map(chain => chain.chainNamespace));
|
|
219
304
|
if (isMipdEnabled) {
|
|
220
305
|
// Solana chains
|
|
@@ -247,9 +332,10 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
247
332
|
connectorFns.push(...evmMipd.getProviders().map(injectedEvmConnector));
|
|
248
333
|
}
|
|
249
334
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
335
|
+
// it's safe to add it here as if there is a MetaMask injected provider, this won't override it
|
|
336
|
+
connectorFns.push(metaMaskConnector());
|
|
337
|
+
// add WalletConnectV2 connector if external wallets are enabled
|
|
338
|
+
if (isExternalWalletEnabled && (chainNamespaces.has(CHAIN_NAMESPACES.SOLANA) || chainNamespaces.has(CHAIN_NAMESPACES.EIP155))) {
|
|
253
339
|
const {
|
|
254
340
|
walletConnectV2Connector
|
|
255
341
|
} = await import('./connectors/wallet-connect-v2-connector/index.js');
|
|
@@ -266,10 +352,12 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
266
352
|
}
|
|
267
353
|
}
|
|
268
354
|
setConnectors(connectors) {
|
|
269
|
-
const
|
|
355
|
+
const getConnectorKey = connector => `${connector.connectorNamespace}-${connector.name}`;
|
|
356
|
+
const connectorSet = new Set(this.connectors.map(getConnectorKey));
|
|
270
357
|
const newConnectors = connectors.map(connector => {
|
|
271
|
-
|
|
272
|
-
connectorSet.
|
|
358
|
+
const key = getConnectorKey(connector);
|
|
359
|
+
if (connectorSet.has(key)) return null;
|
|
360
|
+
connectorSet.add(key);
|
|
273
361
|
return connector;
|
|
274
362
|
}).filter(connector => connector !== null);
|
|
275
363
|
if (newConnectors.length > 0) {
|
|
@@ -282,16 +370,24 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
282
370
|
}
|
|
283
371
|
subscribeToConnectorEvents(connector) {
|
|
284
372
|
connector.on(CONNECTOR_EVENTS.CONNECTED, async data => {
|
|
373
|
+
var _this$currentChain3, _accountAbstractionCo;
|
|
285
374
|
if (!this.commonJRPCProvider) throw WalletInitializationError.notFound(`CommonJrpcProvider not found`);
|
|
286
375
|
const {
|
|
287
376
|
provider
|
|
288
377
|
} = data;
|
|
289
378
|
let finalProvider = provider.provider || provider;
|
|
290
|
-
// setup
|
|
379
|
+
// setup AA provider for external wallets on EVM chains, no need for app wallet as it uses WS provider which already supports AA
|
|
291
380
|
const {
|
|
292
381
|
accountAbstractionConfig
|
|
293
382
|
} = this.coreOptions;
|
|
294
|
-
|
|
383
|
+
const doesAASupportCurrentChain = ((_this$currentChain3 = this.currentChain) === null || _this$currentChain3 === void 0 ? void 0 : _this$currentChain3.chainNamespace) === CHAIN_NAMESPACES.EIP155 && (accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo = accountAbstractionConfig.chains) === null || _accountAbstractionCo === void 0 ? void 0 : _accountAbstractionCo.some(chain => {
|
|
384
|
+
var _this$currentChain4;
|
|
385
|
+
return chain.chainId === ((_this$currentChain4 = this.currentChain) === null || _this$currentChain4 === void 0 ? void 0 : _this$currentChain4.chainId);
|
|
386
|
+
}));
|
|
387
|
+
const isExternalWalletAndAAEnabled = data.connector !== WALLET_CONNECTORS.AUTH && this.coreOptions.useAAWithExternalWallet;
|
|
388
|
+
if (isExternalWalletAndAAEnabled && doesAASupportCurrentChain) {
|
|
389
|
+
var _accountAbstractionCo2;
|
|
390
|
+
const aaChainIds = new Set((accountAbstractionConfig === null || accountAbstractionConfig === void 0 || (_accountAbstractionCo2 = accountAbstractionConfig.chains) === null || _accountAbstractionCo2 === void 0 ? void 0 : _accountAbstractionCo2.map(chain => chain.chainId)) || []);
|
|
295
391
|
const {
|
|
296
392
|
accountAbstractionProvider
|
|
297
393
|
} = await import('./providers/account-abstraction-provider/index.js');
|
|
@@ -299,10 +395,9 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
299
395
|
accountAbstractionConfig,
|
|
300
396
|
provider,
|
|
301
397
|
chain: this.currentChain,
|
|
302
|
-
chains: this.coreOptions.chains
|
|
398
|
+
chains: this.coreOptions.chains.filter(chain => aaChainIds.has(chain.chainId))
|
|
303
399
|
});
|
|
304
400
|
finalProvider = aaProvider;
|
|
305
|
-
// TODO: when switching chains to Solana or other chains, we need to switch to the non-AA provider
|
|
306
401
|
}
|
|
307
402
|
this.commonJRPCProvider.updateProviderEngineProxy(finalProvider);
|
|
308
403
|
this.connectedConnectorName = data.connector;
|
|
@@ -364,14 +459,14 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
364
459
|
if (this.status === CONNECTOR_STATUS.CONNECTED) throw WalletInitializationError.notReady("Already connected");
|
|
365
460
|
if (this.status === CONNECTOR_STATUS.READY) throw WalletInitializationError.notReady("Connector is already initialized");
|
|
366
461
|
}
|
|
367
|
-
|
|
368
462
|
/**
|
|
369
463
|
* Gets the initial chain configuration for a connector
|
|
370
464
|
* @throws WalletInitializationError If no chain is found for the connector's namespace
|
|
371
465
|
*/
|
|
372
466
|
getInitialChainIdForConnector(connector) {
|
|
467
|
+
var _initialChain;
|
|
373
468
|
let initialChain = this.currentChain;
|
|
374
|
-
if (initialChain.chainNamespace !== connector.connectorNamespace && connector.connectorNamespace !== CONNECTOR_NAMESPACES.MULTICHAIN) {
|
|
469
|
+
if (((_initialChain = initialChain) === null || _initialChain === void 0 ? void 0 : _initialChain.chainNamespace) !== connector.connectorNamespace && connector.connectorNamespace !== CONNECTOR_NAMESPACES.MULTICHAIN) {
|
|
375
470
|
initialChain = this.coreOptions.chains.find(x => x.chainNamespace === connector.connectorNamespace);
|
|
376
471
|
if (!initialChain) throw WalletInitializationError.invalidParams(`No chain found for ${connector.connectorNamespace}`);
|
|
377
472
|
}
|
|
@@ -397,10 +492,11 @@ class Web3AuthNoModal extends SafeEventEmitter {
|
|
|
397
492
|
connectToPlugins(data) {
|
|
398
493
|
Object.values(this.plugins).map(async plugin => {
|
|
399
494
|
try {
|
|
495
|
+
var _this$currentChain5;
|
|
400
496
|
// skip if it's not compatible with the connector
|
|
401
497
|
if (!plugin.SUPPORTED_CONNECTORS.includes("all") && !plugin.SUPPORTED_CONNECTORS.includes(data.connector)) return;
|
|
402
498
|
// skip if it's not compatible with the current chain
|
|
403
|
-
if (plugin.pluginNamespace !== PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== this.currentChain.chainNamespace) return;
|
|
499
|
+
if (plugin.pluginNamespace !== PLUGIN_NAMESPACES.MULTICHAIN && plugin.pluginNamespace !== ((_this$currentChain5 = this.currentChain) === null || _this$currentChain5 === void 0 ? void 0 : _this$currentChain5.chainNamespace)) return;
|
|
404
500
|
// skip if it's already connected
|
|
405
501
|
if (plugin.status === PLUGIN_STATUS.CONNECTED) return;
|
|
406
502
|
await plugin.initWithWeb3Auth(this, this.coreOptions.uiConfig);
|
|
@@ -2,7 +2,7 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import { randomId } from '@toruslabs/base-controllers';
|
|
3
3
|
import { THEME_MODES } from '@web3auth/auth';
|
|
4
4
|
import loglevel from 'loglevel';
|
|
5
|
-
import {
|
|
5
|
+
import { NFT_CHECKOUT_URLS, NFT_CHECKOUT_BUILD_ENV, NFT_CHECKOUT_EMBED_MESSAGE_TYPES } from './enums.js';
|
|
6
6
|
import { getTheme, htmlToElement } from './utils.js';
|
|
7
7
|
|
|
8
8
|
// preload for iframe doesn't work https://bugs.chromium.org/p/chromium/issues/detail?id=593267
|
|
@@ -47,13 +47,11 @@ class NFTCheckoutEmbed {
|
|
|
47
47
|
whiteLabel
|
|
48
48
|
} = params || {};
|
|
49
49
|
this.buildEnv = buildEnv;
|
|
50
|
-
|
|
51
50
|
// construct nft checkout url
|
|
52
51
|
const nftCheckoutIframeUrl = new URL(NFT_CHECKOUT_URLS[this.buildEnv]);
|
|
53
52
|
const hashParams = new URLSearchParams();
|
|
54
53
|
hashParams.append("origin", window.location.origin);
|
|
55
54
|
nftCheckoutIframeUrl.hash = hashParams.toString();
|
|
56
|
-
|
|
57
55
|
// create iframe
|
|
58
56
|
const colorScheme = getTheme((whiteLabel === null || whiteLabel === void 0 ? void 0 : whiteLabel.mode) || THEME_MODES.light);
|
|
59
57
|
const nftCheckoutIframe = htmlToElement(`<iframe
|
|
@@ -97,7 +95,6 @@ class NFTCheckoutEmbed {
|
|
|
97
95
|
if (!this.isInitialized) throw new Error("Call init() first");
|
|
98
96
|
const nftCheckoutIframe = this.getIframe();
|
|
99
97
|
if (!nftCheckoutIframe) throw new Error("Iframe is not initialized");
|
|
100
|
-
|
|
101
98
|
// send message to iframe
|
|
102
99
|
const nftCheckoutOrigin = new URL(NFT_CHECKOUT_URLS[this.buildEnv]).origin;
|
|
103
100
|
nftCheckoutIframe.contentWindow.postMessage({
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import { SafeEventEmitter } from '@web3auth/auth';
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
3
|
+
import '../../base/errors/index.js';
|
|
4
|
+
import '@toruslabs/base-controllers';
|
|
5
|
+
import '../../base/wallet/index.js';
|
|
6
6
|
import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
|
|
7
|
+
import 'jwt-decode';
|
|
8
|
+
import '../../base/loglevel.js';
|
|
9
|
+
import { NFTCheckoutPluginError } from '../../base/plugin/errors.js';
|
|
10
|
+
import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
|
|
11
|
+
import '@toruslabs/constants';
|
|
12
|
+
import '@toruslabs/http-helpers';
|
|
13
|
+
import { NFTCheckoutEmbed } from './embed.js';
|
|
7
14
|
|
|
8
15
|
class NFTCheckoutPlugin extends SafeEventEmitter {
|
|
9
16
|
constructor(params) {
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import { SafeEventEmitter } from '@web3auth/auth';
|
|
3
|
-
import
|
|
4
|
-
import {
|
|
3
|
+
import '../../base/errors/index.js';
|
|
4
|
+
import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
|
|
5
5
|
import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
|
|
6
|
-
|
|
6
|
+
import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
|
|
7
|
+
import 'jwt-decode';
|
|
8
|
+
import { log } from '../../base/loglevel.js';
|
|
7
9
|
import { WalletServicesPluginError } from '../../base/plugin/errors.js';
|
|
8
10
|
import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
|
|
9
|
-
import
|
|
11
|
+
import '@toruslabs/constants';
|
|
12
|
+
import '@toruslabs/http-helpers';
|
|
13
|
+
export { BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@web3auth/ws-embed';
|
|
10
14
|
|
|
11
15
|
// TODO: support project config items here. incl. key export flag, multiple chains
|
|
12
16
|
class WalletServicesPlugin extends SafeEventEmitter {
|
|
@@ -30,14 +34,12 @@ class WalletServicesPlugin extends SafeEventEmitter {
|
|
|
30
34
|
if (!web3auth) throw WalletServicesPluginError.web3authRequired();
|
|
31
35
|
if (web3auth.provider && !this.SUPPORTED_CONNECTORS.includes(web3auth.connectedConnectorName)) throw WalletServicesPluginError.notInitialized();
|
|
32
36
|
const currentChainConfig = web3auth.currentChain;
|
|
33
|
-
if (![CHAIN_NAMESPACES.EIP155, CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig.chainNamespace)) throw WalletServicesPluginError.unsupportedChainNamespace();
|
|
34
|
-
|
|
37
|
+
if (![CHAIN_NAMESPACES.EIP155, CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig === null || currentChainConfig === void 0 ? void 0 : currentChainConfig.chainNamespace)) throw WalletServicesPluginError.unsupportedChainNamespace();
|
|
35
38
|
// Not connected yet to auth
|
|
36
39
|
if (web3auth.provider) {
|
|
37
40
|
this.provider = web3auth.provider;
|
|
38
41
|
}
|
|
39
42
|
this.web3auth = web3auth;
|
|
40
|
-
|
|
41
43
|
// Auth connector uses WS embed
|
|
42
44
|
const authInstance = web3auth.getConnector(WALLET_CONNECTORS.AUTH);
|
|
43
45
|
if (!authInstance || !authInstance.wsEmbed) throw WalletServicesPluginError.web3AuthNotConnected();
|
package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js
CHANGED
|
@@ -5,9 +5,20 @@ export { SMART_ACCOUNT } from '@toruslabs/ethereum-controllers';
|
|
|
5
5
|
import { providerErrors, JRPCEngine, providerFromEngine } from '@web3auth/auth';
|
|
6
6
|
import { defineChain, createPublicClient, http } from 'viem';
|
|
7
7
|
import { createPaymasterClient, createBundlerClient } from 'viem/account-abstraction';
|
|
8
|
-
import { CHAIN_NAMESPACES } from '../../../base/chain/IChainInterface.js';
|
|
9
8
|
import { WalletInitializationError } from '../../../base/errors/index.js';
|
|
9
|
+
import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
|
|
10
|
+
import '../../../base/wallet/index.js';
|
|
11
|
+
import '../../../base/connector/constants.js';
|
|
12
|
+
import 'jwt-decode';
|
|
13
|
+
import '../../../base/loglevel.js';
|
|
14
|
+
import '../../../base/plugin/errors.js';
|
|
15
|
+
import '../../../base/plugin/IPlugin.js';
|
|
16
|
+
import '@toruslabs/constants';
|
|
17
|
+
import '@toruslabs/http-helpers';
|
|
10
18
|
import { BaseProvider } from '../../base-provider/baseProvider.js';
|
|
19
|
+
import '../../base-provider/CommonJRPCProvider.js';
|
|
20
|
+
import '../../base-provider/commonPrivateKeyProvider.js';
|
|
21
|
+
import '../../base-provider/utils.js';
|
|
11
22
|
import { createAaMiddleware, eoaProviderAsMiddleware } from '../rpc/ethRpcMiddlewares.js';
|
|
12
23
|
import { getProviderHandlers } from './utils.js';
|
|
13
24
|
|
|
@@ -53,7 +64,7 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
53
64
|
});
|
|
54
65
|
}
|
|
55
66
|
async setupProvider(eoaProvider) {
|
|
56
|
-
var
|
|
67
|
+
var _bundlerConfig$transp;
|
|
57
68
|
const {
|
|
58
69
|
currentChain
|
|
59
70
|
} = this;
|
|
@@ -61,6 +72,12 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
61
72
|
chainNamespace
|
|
62
73
|
} = currentChain;
|
|
63
74
|
if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
|
|
75
|
+
const bundlerAndPaymasterConfig = this.config.smartAccountChainsConfig.find(config => config.chainId === currentChain.chainId);
|
|
76
|
+
if (!bundlerAndPaymasterConfig) throw WalletInitializationError.invalidProviderConfigError(`Bundler and paymaster config not found for chain ${currentChain.chainId}`);
|
|
77
|
+
const {
|
|
78
|
+
bundlerConfig,
|
|
79
|
+
paymasterConfig
|
|
80
|
+
} = bundlerAndPaymasterConfig;
|
|
64
81
|
const chain = defineChain({
|
|
65
82
|
id: Number.parseInt(currentChain.chainId, 16),
|
|
66
83
|
// id in number form
|
|
@@ -93,18 +110,17 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
93
110
|
owner: eoaProvider,
|
|
94
111
|
client: this._publicClient
|
|
95
112
|
});
|
|
96
|
-
|
|
97
113
|
// setup bundler and paymaster
|
|
98
|
-
if (
|
|
99
|
-
var
|
|
100
|
-
this._paymasterClient = createPaymasterClient(_objectSpread(_objectSpread({},
|
|
101
|
-
transport: (
|
|
114
|
+
if (paymasterConfig) {
|
|
115
|
+
var _paymasterConfig$tran;
|
|
116
|
+
this._paymasterClient = createPaymasterClient(_objectSpread(_objectSpread({}, paymasterConfig), {}, {
|
|
117
|
+
transport: (_paymasterConfig$tran = paymasterConfig.transport) !== null && _paymasterConfig$tran !== void 0 ? _paymasterConfig$tran : http(paymasterConfig.url)
|
|
102
118
|
}));
|
|
103
119
|
}
|
|
104
|
-
this._bundlerClient = createBundlerClient(_objectSpread(_objectSpread({},
|
|
120
|
+
this._bundlerClient = createBundlerClient(_objectSpread(_objectSpread({}, bundlerConfig), {}, {
|
|
105
121
|
account: this.smartAccount,
|
|
106
122
|
client: this._publicClient,
|
|
107
|
-
transport: (
|
|
123
|
+
transport: (_bundlerConfig$transp = bundlerConfig.transport) !== null && _bundlerConfig$transp !== void 0 ? _bundlerConfig$transp : http(bundlerConfig.url),
|
|
108
124
|
paymaster: this._paymasterClient
|
|
109
125
|
}));
|
|
110
126
|
const providerHandlers = getProviderHandlers({
|
|
@@ -113,7 +129,6 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
113
129
|
chain,
|
|
114
130
|
eoaProvider
|
|
115
131
|
});
|
|
116
|
-
|
|
117
132
|
// setup rpc engine and AA middleware
|
|
118
133
|
const engine = new JRPCEngine();
|
|
119
134
|
const aaMiddleware = await createAaMiddleware({
|
|
@@ -166,10 +181,11 @@ const accountAbstractionProvider = async ({
|
|
|
166
181
|
let smartAccountInit;
|
|
167
182
|
const {
|
|
168
183
|
smartAccountType,
|
|
169
|
-
|
|
170
|
-
bundlerConfig,
|
|
171
|
-
paymasterConfig
|
|
184
|
+
chains: smartAccountChainsConfig
|
|
172
185
|
} = accountAbstractionConfig;
|
|
186
|
+
const {
|
|
187
|
+
smartAccountConfig
|
|
188
|
+
} = smartAccountChainsConfig.find(config => config.chainId === chain.chainId) || {};
|
|
173
189
|
switch (smartAccountType) {
|
|
174
190
|
case SMART_ACCOUNT.BICONOMY:
|
|
175
191
|
{
|
|
@@ -219,8 +235,7 @@ const accountAbstractionProvider = async ({
|
|
|
219
235
|
smartAccountInit,
|
|
220
236
|
chain,
|
|
221
237
|
chains,
|
|
222
|
-
|
|
223
|
-
paymasterConfig
|
|
238
|
+
smartAccountChainsConfig
|
|
224
239
|
});
|
|
225
240
|
};
|
|
226
241
|
|
|
@@ -2,7 +2,17 @@ import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
|
2
2
|
import { isHexString, addHexPrefix } from '@ethereumjs/util';
|
|
3
3
|
import { providerErrors } from '@web3auth/auth';
|
|
4
4
|
import { createWalletClient, http } from 'viem';
|
|
5
|
+
import '../../../base/errors/index.js';
|
|
6
|
+
import '@toruslabs/base-controllers';
|
|
7
|
+
import '@babel/runtime/helpers/defineProperty';
|
|
8
|
+
import '../../../base/wallet/index.js';
|
|
9
|
+
import '../../../base/connector/constants.js';
|
|
10
|
+
import 'jwt-decode';
|
|
5
11
|
import { log } from '../../../base/loglevel.js';
|
|
12
|
+
import '../../../base/plugin/errors.js';
|
|
13
|
+
import '../../../base/plugin/IPlugin.js';
|
|
14
|
+
import '@toruslabs/constants';
|
|
15
|
+
import '@toruslabs/http-helpers';
|
|
6
16
|
|
|
7
17
|
function getProviderHandlers({
|
|
8
18
|
bundlerClient,
|
|
@@ -8,7 +8,6 @@ async function createAaMiddleware({
|
|
|
8
8
|
const [eoaAddress] = await eoaProvider.request({
|
|
9
9
|
method: "eth_accounts"
|
|
10
10
|
});
|
|
11
|
-
|
|
12
11
|
/**
|
|
13
12
|
* Validates the keyholder address, and returns a normalized (i.e. lowercase)
|
|
14
13
|
* copy of it.
|
|
@@ -67,7 +66,6 @@ async function createAaMiddleware({
|
|
|
67
66
|
const txParams = req.params[0] || {
|
|
68
67
|
from: ""
|
|
69
68
|
};
|
|
70
|
-
|
|
71
69
|
// normalize sender address
|
|
72
70
|
if (txParams.from) {
|
|
73
71
|
txParams.from = await normalizeSignSenderAddress(txParams.from, req);
|