@web3auth/no-modal 10.0.0-alpha.0 → 10.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib.cjs/base/chain/IChainInterface.js +7 -12
- package/dist/lib.cjs/base/chain/config.js +76 -35
- package/dist/lib.cjs/base/connector/baseConnector.js +64 -0
- package/dist/lib.cjs/base/connector/constants.js +26 -0
- package/dist/lib.cjs/base/errors/index.js +2 -12
- package/dist/lib.cjs/base/plugin/IPlugin.js +2 -2
- package/dist/lib.cjs/base/plugin/errors.js +2 -4
- package/dist/lib.cjs/base/utils.js +7 -7
- package/dist/lib.cjs/base/wallet/index.js +15 -20
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +503 -0
- package/dist/lib.cjs/connectors/auth-connector/config/authConnectionConfig.js +216 -0
- package/dist/lib.cjs/connectors/auth-connector/config/config-build.js +54 -0
- package/dist/lib.cjs/connectors/auth-connector/config/config-env.js +361 -0
- package/dist/lib.cjs/{adapters/base-evm-adapter/baseEvmAdapter.js → connectors/base-evm-connector/baseEvmConnector.js} +28 -19
- package/dist/lib.cjs/connectors/base-solana-connector/baseSolanaConnector.js +83 -0
- package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +159 -0
- package/dist/lib.cjs/connectors/injected-evm-connector/index.js +12 -0
- package/dist/lib.cjs/{adapters/default-evm-adapter/injectedEvmAdapter.js → connectors/injected-evm-connector/injectedEvmConnector.js} +66 -42
- package/dist/lib.cjs/connectors/injected-solana-connector/index.js +25 -0
- package/dist/lib.cjs/connectors/injected-solana-connector/walletStandardConnector.js +156 -0
- package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.js +63 -95
- package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.js +55 -57
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +32 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +418 -0
- package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.js +23 -26
- package/dist/lib.cjs/index.js +142 -102
- package/dist/lib.cjs/noModal.js +299 -241
- package/dist/lib.cjs/plugins/nft-checkout-plugin/embed.js +0 -3
- package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +18 -6
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +50 -204
- package/dist/lib.cjs/providers/account-abstraction-provider/index.js +32 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +112 -35
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/utils.js +10 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +0 -2
- package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +21 -26
- package/dist/lib.cjs/providers/base-provider/baseProvider.js +49 -24
- package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +2 -13
- package/dist/lib.cjs/providers/base-provider/index.js +22 -0
- package/dist/lib.cjs/providers/base-provider/utils.js +10 -2
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +51 -61
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +12 -2
- package/dist/lib.cjs/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -1
- package/dist/lib.cjs/providers/ethereum-provider/providers/converter.js +0 -1
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +12 -11
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +3 -5
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +1 -2
- package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +1 -30
- package/dist/lib.cjs/providers/ethereum-provider/rpc/walletMidddleware.js +0 -8
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +22 -11
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +7 -9
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +90 -2
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +37 -56
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +30 -29
- package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +5 -5
- package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +41 -18
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +36 -60
- package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -4
- package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +28 -44
- package/dist/lib.cjs/react/no-modal/hooks/useWeb3Auth.js +11 -0
- package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +13 -1
- package/dist/lib.cjs/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +11 -0
- package/dist/{types → lib.cjs/types}/base/chain/IChainInterface.d.ts +4 -10
- package/dist/{types → lib.cjs/types}/base/chain/config.d.ts +2 -2
- package/dist/lib.cjs/types/base/connector/baseConnector.d.ts +37 -0
- package/dist/{types/base/adapter → lib.cjs/types/base/connector}/constants.d.ts +7 -4
- package/dist/{types/base/adapter → lib.cjs/types/base/connector}/index.d.ts +1 -1
- package/dist/{types/base/adapter → lib.cjs/types/base/connector}/interfaces.d.ts +58 -48
- package/dist/lib.cjs/types/base/core/IWeb3Auth.d.ts +142 -0
- package/dist/{types → lib.cjs/types}/base/errors/index.d.ts +1 -1
- package/dist/{types → lib.cjs/types}/base/hooks/index.d.ts +2 -6
- package/dist/{types → lib.cjs/types}/base/index.d.ts +1 -1
- package/dist/{types → lib.cjs/types}/base/interfaces.d.ts +2 -1
- package/dist/{types → lib.cjs/types}/base/plugin/IPlugin.d.ts +4 -7
- package/dist/{types → lib.cjs/types}/base/plugin/errors.d.ts +1 -1
- package/dist/{types → lib.cjs/types}/base/utils.d.ts +1 -1
- package/dist/lib.cjs/types/base/wallet/index.d.ts +29 -0
- package/dist/lib.cjs/types/connectors/auth-connector/authConnector.d.ts +49 -0
- package/dist/lib.cjs/types/connectors/auth-connector/config/authConnectionConfig.d.ts +2 -0
- package/dist/lib.cjs/types/connectors/auth-connector/config/config-build.d.ts +18 -0
- package/dist/lib.cjs/types/connectors/auth-connector/config/config-env.d.ts +60 -0
- package/dist/lib.cjs/types/connectors/auth-connector/index.d.ts +2 -0
- package/dist/lib.cjs/types/connectors/auth-connector/interface.d.ts +15 -0
- package/dist/lib.cjs/types/connectors/base-evm-connector/baseEvmConnector.d.ts +7 -0
- package/dist/lib.cjs/types/connectors/base-evm-connector/index.d.ts +1 -0
- package/dist/lib.cjs/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +7 -0
- package/dist/lib.cjs/types/connectors/base-solana-connector/index.d.ts +1 -0
- package/dist/lib.cjs/types/connectors/coinbase-connector/coinbaseConnector.d.ts +7 -0
- package/dist/lib.cjs/types/connectors/coinbase-connector/index.d.ts +1 -0
- package/dist/lib.cjs/types/connectors/index.d.ts +7 -0
- package/dist/lib.cjs/types/connectors/injected-evm-connector/index.d.ts +2 -0
- package/dist/lib.cjs/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +34 -0
- package/dist/lib.cjs/types/connectors/injected-solana-connector/index.d.ts +5 -0
- package/dist/lib.cjs/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +33 -0
- package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.d.ts +4 -6
- package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/config.d.ts +4 -4
- package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/index.d.ts +1 -1
- package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/interface.d.ts +4 -4
- package/dist/lib.cjs/types/connectors/wallet-connect-v2-connector/walletConnectV2Connector.d.ts +3 -0
- package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/walletConnectV2Utils.d.ts +1 -6
- package/dist/{types → lib.cjs/types}/index.d.ts +1 -1
- package/dist/lib.cjs/types/noModal.d.ts +58 -0
- package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/plugin.d.ts +11 -7
- package/dist/lib.cjs/types/plugins/wallet-services-plugin/plugin.d.ts +27 -0
- package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +48 -0
- package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/providers/index.d.ts +0 -1
- package/dist/lib.cjs/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -0
- package/dist/{types → lib.cjs/types}/providers/base-provider/CommonJRPCProvider.d.ts +3 -3
- package/dist/{types → lib.cjs/types}/providers/base-provider/baseProvider.d.ts +10 -11
- package/dist/{types → lib.cjs/types}/providers/base-provider/commonPrivateKeyProvider.d.ts +3 -6
- package/dist/{types → lib.cjs/types}/providers/base-provider/interfaces.d.ts +3 -1
- package/dist/lib.cjs/types/providers/base-provider/utils.d.ts +9 -0
- package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +14 -6
- package/dist/lib.cjs/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +1 -0
- package/dist/lib.cjs/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +4 -0
- package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/interfaces.d.ts +0 -13
- package/dist/lib.cjs/types/providers/solana-provider/interface.d.ts +22 -0
- package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +2 -2
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/index.d.ts +2 -0
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +3 -0
- package/dist/lib.cjs/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +9 -0
- package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +5 -6
- package/dist/lib.cjs/types/providers/solana-provider/rpc/interfaces.d.ts +27 -0
- package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +1 -1
- package/dist/lib.cjs/types/providers/solana-provider/solanaWallet.d.ts +28 -0
- package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +5 -6
- package/dist/{types → lib.cjs/types}/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +1 -4
- package/dist/{types → lib.cjs/types}/react/no-modal/interfaces.d.ts +4 -4
- package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/interfaces.d.ts +2 -2
- package/dist/{types → lib.cjs/types}/vue/no-modal/interfaces.d.ts +5 -8
- package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/interfaces.d.ts +2 -2
- package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +27 -44
- package/dist/lib.cjs/vue/no-modal/composables/useWeb3Auth.js +12 -1
- package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +14 -2
- package/dist/lib.cjs/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +12 -1
- package/dist/lib.esm/base/chain/IChainInterface.js +3 -11
- package/dist/lib.esm/base/chain/config.js +65 -24
- package/dist/lib.esm/base/connector/baseConnector.js +62 -0
- package/dist/lib.esm/base/connector/constants.js +22 -0
- package/dist/lib.esm/base/errors/index.js +2 -12
- package/dist/lib.esm/base/plugin/IPlugin.js +1 -1
- package/dist/lib.esm/base/plugin/errors.js +2 -4
- package/dist/lib.esm/base/utils.js +5 -5
- package/dist/lib.esm/base/wallet/index.js +11 -16
- package/dist/lib.esm/connectors/auth-connector/authConnector.js +501 -0
- package/dist/lib.esm/connectors/auth-connector/config/authConnectionConfig.js +214 -0
- package/dist/lib.esm/connectors/auth-connector/config/config-build.js +48 -0
- package/dist/lib.esm/connectors/auth-connector/config/config-env.js +359 -0
- package/dist/lib.esm/{adapters/base-evm-adapter/baseEvmAdapter.js → connectors/base-evm-connector/baseEvmConnector.js} +29 -20
- package/dist/lib.esm/connectors/base-solana-connector/baseSolanaConnector.js +81 -0
- package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +157 -0
- package/dist/lib.esm/connectors/injected-evm-connector/index.js +2 -0
- package/dist/lib.esm/{adapters/default-evm-adapter/injectedEvmAdapter.js → connectors/injected-evm-connector/injectedEvmConnector.js} +64 -41
- package/dist/lib.esm/connectors/injected-solana-connector/index.js +18 -0
- package/dist/lib.esm/{adapters/default-solana-adapter/walletStandardAdapter.js → connectors/injected-solana-connector/walletStandardConnector.js} +66 -49
- package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.js +63 -95
- package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.js +47 -45
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +3 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +416 -0
- package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.js +24 -26
- package/dist/lib.esm/index.js +29 -34
- package/dist/lib.esm/noModal.js +297 -239
- package/dist/lib.esm/plugins/nft-checkout-plugin/embed.js +1 -4
- package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +18 -6
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +46 -201
- package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +108 -34
- package/dist/lib.esm/providers/account-abstraction-provider/providers/utils.js +10 -0
- package/dist/lib.esm/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.js +0 -2
- package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +22 -27
- package/dist/lib.esm/providers/base-provider/baseProvider.js +49 -24
- package/dist/lib.esm/providers/base-provider/commonPrivateKeyProvider.js +2 -13
- package/dist/lib.esm/providers/base-provider/index.js +5 -0
- package/dist/lib.esm/providers/base-provider/utils.js +9 -1
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +50 -60
- package/dist/lib.esm/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.js +12 -2
- package/dist/lib.esm/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.js +0 -1
- package/dist/lib.esm/providers/ethereum-provider/providers/converter.js +0 -1
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js +12 -11
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.js +3 -3
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.js +1 -2
- package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +2 -30
- package/dist/lib.esm/providers/ethereum-provider/rpc/walletMidddleware.js +0 -8
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +22 -11
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +4 -6
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +90 -2
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +36 -55
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +29 -28
- package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +6 -6
- package/dist/lib.esm/providers/solana-provider/solanaWallet.js +41 -18
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +35 -59
- package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -4
- package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +28 -44
- package/dist/lib.esm/react/no-modal/hooks/useWeb3Auth.js +11 -0
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +13 -1
- package/dist/lib.esm/react/wallet-services-plugin/hooks/useWalletServicesPlugin.js +11 -0
- package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +27 -44
- package/dist/lib.esm/vue/no-modal/composables/useWeb3Auth.js +12 -1
- package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +14 -2
- package/dist/lib.esm/vue/wallet-services-plugin/composables/useWalletServicesPlugin.js +12 -1
- package/dist/noModal.umd.min.js +1 -1
- package/dist/noModal.umd.min.js.LICENSE.txt +0 -9
- package/package.json +25 -22
- package/dist/757.noModal.cjs.js +0 -226
- package/dist/lib.cjs/adapters/auth-adapter/authAdapter.js +0 -262
- package/dist/lib.cjs/adapters/auth-adapter/config.js +0 -17
- package/dist/lib.cjs/adapters/base-solana-adapter/baseSolanaAdapter.js +0 -76
- package/dist/lib.cjs/adapters/coinbase-adapter/coinbaseAdapter.js +0 -156
- package/dist/lib.cjs/adapters/default-evm-adapter/index.js +0 -40
- package/dist/lib.cjs/adapters/default-evm-adapter/injectedAdapters.js +0 -42
- package/dist/lib.cjs/adapters/default-solana-adapter/index.js +0 -40
- package/dist/lib.cjs/adapters/default-solana-adapter/injectedAdapters.js +0 -53
- package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardAdapter.js +0 -138
- package/dist/lib.cjs/adapters/default-solana-adapter/walletStandardHandler.js +0 -77
- package/dist/lib.cjs/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +0 -376
- package/dist/lib.cjs/base/adapter/baseAdapter.js +0 -117
- package/dist/lib.cjs/base/adapter/constants.js +0 -24
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +0 -29
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +0 -22
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +0 -30
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +0 -30
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +0 -29
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/smartAccounts/constants.js +0 -11
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +0 -185
- package/dist/lib.cjs/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +0 -106
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +0 -12
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +0 -75
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +0 -109
- package/dist/lib.esm/adapters/auth-adapter/authAdapter.js +0 -260
- package/dist/lib.esm/adapters/auth-adapter/config.js +0 -15
- package/dist/lib.esm/adapters/base-solana-adapter/baseSolanaAdapter.js +0 -74
- package/dist/lib.esm/adapters/coinbase-adapter/coinbaseAdapter.js +0 -154
- package/dist/lib.esm/adapters/default-evm-adapter/index.js +0 -37
- package/dist/lib.esm/adapters/default-evm-adapter/injectedAdapters.js +0 -40
- package/dist/lib.esm/adapters/default-solana-adapter/index.js +0 -37
- package/dist/lib.esm/adapters/default-solana-adapter/injectedAdapters.js +0 -51
- package/dist/lib.esm/adapters/default-solana-adapter/walletStandardHandler.js +0 -75
- package/dist/lib.esm/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.js +0 -374
- package/dist/lib.esm/base/adapter/baseAdapter.js +0 -115
- package/dist/lib.esm/base/adapter/constants.js +0 -20
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.js +0 -27
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.js +0 -20
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.js +0 -28
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.js +0 -28
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.js +0 -27
- package/dist/lib.esm/providers/account-abstraction-provider/providers/smartAccounts/constants.js +0 -9
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.js +0 -183
- package/dist/lib.esm/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.js +0 -104
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.js +0 -10
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.js +0 -73
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.js +0 -107
- package/dist/noModal.cjs.js +0 -26385
- package/dist/types/adapters/auth-adapter/authAdapter.d.ts +0 -42
- package/dist/types/adapters/auth-adapter/config.d.ts +0 -2
- package/dist/types/adapters/auth-adapter/index.d.ts +0 -3
- package/dist/types/adapters/auth-adapter/interface.d.ts +0 -11
- package/dist/types/adapters/base-evm-adapter/baseEvmAdapter.d.ts +0 -7
- package/dist/types/adapters/base-evm-adapter/index.d.ts +0 -1
- package/dist/types/adapters/base-solana-adapter/baseSolanaAdapter.d.ts +0 -7
- package/dist/types/adapters/base-solana-adapter/index.d.ts +0 -1
- package/dist/types/adapters/coinbase-adapter/coinbaseAdapter.d.ts +0 -33
- package/dist/types/adapters/coinbase-adapter/index.d.ts +0 -1
- package/dist/types/adapters/default-evm-adapter/index.d.ts +0 -6
- package/dist/types/adapters/default-evm-adapter/injectedAdapters.d.ts +0 -4
- package/dist/types/adapters/default-evm-adapter/injectedEvmAdapter.d.ts +0 -30
- package/dist/types/adapters/default-solana-adapter/index.d.ts +0 -6
- package/dist/types/adapters/default-solana-adapter/injectedAdapters.d.ts +0 -4
- package/dist/types/adapters/default-solana-adapter/walletStandardAdapter.d.ts +0 -31
- package/dist/types/adapters/default-solana-adapter/walletStandardHandler.d.ts +0 -27
- package/dist/types/adapters/index.d.ts +0 -7
- package/dist/types/adapters/wallet-connect-v2-adapter/walletConnectV2adapter.d.ts +0 -42
- package/dist/types/base/adapter/baseAdapter.d.ts +0 -44
- package/dist/types/base/core/IWeb3Auth.d.ts +0 -101
- package/dist/types/base/wallet/index.d.ts +0 -33
- package/dist/types/noModal.d.ts +0 -43
- package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +0 -51
- package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +0 -46
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/BiconomySmartAccount.d.ts +0 -14
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/KernelSmartAccount.d.ts +0 -13
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/LightSmartAccount.d.ts +0 -14
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/NexusSmartAccount.d.ts +0 -14
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SafeSmartAccount.d.ts +0 -13
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/SimpleSmartAccount.d.ts +0 -13
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/TrustSmartAccount.d.ts +0 -13
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/constants.d.ts +0 -9
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +0 -6
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/types.d.ts +0 -22
- package/dist/types/providers/account-abstraction-provider/providers/types.d.ts +0 -17
- package/dist/types/providers/base-provider/utils.d.ts +0 -2
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/EthereumPrivateKeyProvider.d.ts +0 -30
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/ethPrivatekeyUtils.d.ts +0 -9
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -2
- package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +0 -5
- package/dist/types/providers/solana-provider/interface.d.ts +0 -39
- package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +0 -3
- package/dist/types/providers/solana-provider/providers/injectedProviders/injectedProviderProxy.d.ts +0 -3
- package/dist/types/providers/solana-provider/providers/injectedProviders/interface.d.ts +0 -5
- package/dist/types/providers/solana-provider/providers/injectedProviders/torus/providerHandlers.d.ts +0 -3
- package/dist/types/providers/solana-provider/providers/injectedProviders/torus/torusInjectedProvider.d.ts +0 -18
- package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +0 -6
- package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +0 -42
- package/dist/types/providers/solana-provider/solanaWallet.d.ts +0 -14
- /package/dist/lib.cjs/base/{adapter → connector}/utils.js +0 -0
- /package/dist/lib.cjs/{adapters/default-solana-adapter → providers/solana-provider/providers/injectedProviders}/utils.js +0 -0
- /package/dist/{types → lib.cjs/types}/base/composables/index.d.ts +0 -0
- /package/dist/{types/base/adapter → lib.cjs/types/base/connector}/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/loglevel.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/plugin/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/base/provider/IProvider.d.ts +0 -0
- /package/dist/{types/adapters/default-solana-adapter → lib.cjs/types/connectors/injected-solana-connector}/utils.d.ts +0 -0
- /package/dist/{types/adapters/wallet-connect-v2-adapter → lib.cjs/types/connectors/wallet-connect-v2-connector}/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/plugins/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/embed.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/enums.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/plugins/nft-checkout-plugin/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/plugins/wallet-services-plugin/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/providers/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/rpc/ethRpcMiddlewares.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/account-abstraction-provider/rpc/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/base-provider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/base-provider/jrpcClient.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/signingProviders/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/providers/signingProviders/signingUtils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/rpc/ethRpcMiddlewares.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-mpc-provider/rpc/interfaces.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/converter.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/constants.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/interfaces.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/privateKeyProviders/TransactionFormatter/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/providers/utils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/jrpcClient.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/ethereum-provider/rpc/walletMidddleware.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/injectedProviders/base/providerHandlers.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/privateKeyProvider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/JrpcClient.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/solana-provider/rpc/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/constants.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/interface.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/providers/privateKeyProviders/xrplWalletUtils.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/providers/xrpl-provider/rpc/JrpcClient.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/no-modal/Web3AuthInnerContext.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/no-modal/Web3AuthProvider.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/no-modal/hooks/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/no-modal/hooks/useWeb3Auth.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/no-modal/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/WalletServicesContext.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/WalletServicesProvider.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/hooks/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/hooks/useWalletServicesPlugin.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/react/wallet-services-plugin/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/no-modal/Web3AuthProvider.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/no-modal/composables/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/no-modal/composables/useWeb3Auth.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/no-modal/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/WalletServicesProvider.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/composables/index.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/composables/useWalletServicesPlugin.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/context.d.ts +0 -0
- /package/dist/{types → lib.cjs/types}/vue/wallet-services-plugin/index.d.ts +0 -0
- /package/dist/lib.esm/base/{adapter → connector}/utils.js +0 -0
- /package/dist/lib.esm/{adapters/default-solana-adapter → providers/solana-provider/providers/injectedProviders}/utils.js +0 -0
|
@@ -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,16 +1,23 @@
|
|
|
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 '@toruslabs/base-controllers';
|
|
5
|
+
import '../../base/wallet/index.js';
|
|
6
|
+
import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
|
|
7
|
+
import 'jwt-decode';
|
|
8
|
+
import '../../base/loglevel.js';
|
|
5
9
|
import { NFTCheckoutPluginError } from '../../base/plugin/errors.js';
|
|
6
|
-
import {
|
|
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) {
|
|
10
17
|
super();
|
|
11
18
|
_defineProperty(this, "name", EVM_PLUGINS.NFT_CHECKOUT);
|
|
12
19
|
_defineProperty(this, "status", PLUGIN_STATUS.DISCONNECTED);
|
|
13
|
-
_defineProperty(this, "
|
|
20
|
+
_defineProperty(this, "SUPPORTED_CONNECTORS", ["all"]);
|
|
14
21
|
_defineProperty(this, "pluginNamespace", PLUGIN_NAMESPACES.EIP155);
|
|
15
22
|
_defineProperty(this, "web3auth", null);
|
|
16
23
|
_defineProperty(this, "nftCheckoutEmbedInstance", null);
|
|
@@ -33,7 +40,7 @@ class NFTCheckoutPlugin extends SafeEventEmitter {
|
|
|
33
40
|
if (!this.isInitialized) throw NFTCheckoutPluginError.notInitialized();
|
|
34
41
|
this.emit(PLUGIN_EVENTS.CONNECTING);
|
|
35
42
|
this.status = PLUGIN_STATUS.CONNECTING;
|
|
36
|
-
if (this.web3auth.status !==
|
|
43
|
+
if (this.web3auth.status !== CONNECTOR_STATUS.CONNECTED) throw NFTCheckoutPluginError.web3AuthNotConnected();
|
|
37
44
|
if (!this.web3auth.provider) throw NFTCheckoutPluginError.providerRequired();
|
|
38
45
|
const accounts = await this.web3auth.provider.request({
|
|
39
46
|
method: "eth_accounts"
|
|
@@ -65,5 +72,10 @@ class NFTCheckoutPlugin extends SafeEventEmitter {
|
|
|
65
72
|
return Promise.resolve();
|
|
66
73
|
}
|
|
67
74
|
}
|
|
75
|
+
const nftCheckoutPlugin = params => {
|
|
76
|
+
return () => {
|
|
77
|
+
return new NFTCheckoutPlugin(params);
|
|
78
|
+
};
|
|
79
|
+
};
|
|
68
80
|
|
|
69
|
-
export {
|
|
81
|
+
export { nftCheckoutPlugin };
|
|
@@ -1,93 +1,49 @@
|
|
|
1
|
-
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
2
|
import { SafeEventEmitter } from '@web3auth/auth';
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
import {
|
|
3
|
+
import '../../base/errors/index.js';
|
|
4
|
+
import { CHAIN_NAMESPACES } from '@toruslabs/base-controllers';
|
|
5
|
+
import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
|
|
6
|
+
import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
|
|
7
|
+
import 'jwt-decode';
|
|
7
8
|
import { log } from '../../base/loglevel.js';
|
|
8
|
-
import { WALLET_ADAPTERS } from '../../base/wallet/index.js';
|
|
9
9
|
import { WalletServicesPluginError } from '../../base/plugin/errors.js';
|
|
10
10
|
import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
|
|
11
|
-
import
|
|
11
|
+
import '@toruslabs/constants';
|
|
12
|
+
import '@toruslabs/http-helpers';
|
|
13
|
+
export { BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@web3auth/ws-embed';
|
|
12
14
|
|
|
15
|
+
// TODO: support project config items here. incl. key export flag, multiple chains
|
|
13
16
|
class WalletServicesPlugin extends SafeEventEmitter {
|
|
14
|
-
constructor(
|
|
15
|
-
super();
|
|
17
|
+
constructor(...args) {
|
|
18
|
+
super(...args);
|
|
16
19
|
_defineProperty(this, "name", EVM_PLUGINS.WALLET_SERVICES);
|
|
17
20
|
_defineProperty(this, "status", PLUGIN_STATUS.DISCONNECTED);
|
|
18
|
-
_defineProperty(this, "
|
|
21
|
+
_defineProperty(this, "SUPPORTED_CONNECTORS", [WALLET_CONNECTORS.AUTH, WALLET_CONNECTORS.SFA]);
|
|
19
22
|
_defineProperty(this, "pluginNamespace", PLUGIN_NAMESPACES.MULTICHAIN);
|
|
20
23
|
_defineProperty(this, "wsEmbedInstance", void 0);
|
|
21
24
|
_defineProperty(this, "provider", null);
|
|
22
25
|
_defineProperty(this, "web3auth", null);
|
|
23
26
|
_defineProperty(this, "isInitialized", false);
|
|
24
|
-
_defineProperty(this, "walletInitOptions", null);
|
|
25
|
-
const {
|
|
26
|
-
wsEmbedOpts,
|
|
27
|
-
walletInitOptions
|
|
28
|
-
} = options;
|
|
29
|
-
// we fake these checks here and get them from web3auth instance
|
|
30
|
-
this.wsEmbedInstance = new WsEmbed(wsEmbedOpts || {});
|
|
31
|
-
this.walletInitOptions = walletInitOptions || {};
|
|
32
27
|
}
|
|
33
28
|
get proxyProvider() {
|
|
34
|
-
|
|
29
|
+
var _this$wsEmbedInstance;
|
|
30
|
+
return (_this$wsEmbedInstance = this.wsEmbedInstance) !== null && _this$wsEmbedInstance !== void 0 && _this$wsEmbedInstance.provider ? this.wsEmbedInstance.provider : null;
|
|
35
31
|
}
|
|
36
|
-
async initWithWeb3Auth(web3auth,
|
|
37
|
-
var _this$walletInitOptio, _this$web3auth$coreOp;
|
|
32
|
+
async initWithWeb3Auth(web3auth, _whiteLabel) {
|
|
38
33
|
if (this.isInitialized) return;
|
|
39
34
|
if (!web3auth) throw WalletServicesPluginError.web3authRequired();
|
|
40
|
-
if (web3auth.provider && !this.
|
|
41
|
-
|
|
35
|
+
if (web3auth.provider && !this.SUPPORTED_CONNECTORS.includes(web3auth.connectedConnectorName)) throw WalletServicesPluginError.notInitialized();
|
|
36
|
+
const currentChainConfig = web3auth.currentChain;
|
|
37
|
+
if (![CHAIN_NAMESPACES.EIP155, CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig.chainNamespace)) throw WalletServicesPluginError.unsupportedChainNamespace();
|
|
42
38
|
// Not connected yet to auth
|
|
43
39
|
if (web3auth.provider) {
|
|
44
40
|
this.provider = web3auth.provider;
|
|
45
41
|
}
|
|
46
42
|
this.web3auth = web3auth;
|
|
47
|
-
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
} = mergedWhitelabelSettings || {};
|
|
52
|
-
if (!logoDark || !logoLight) throw WalletServicesPluginError.invalidParams("logoDark and logoLight are required in whiteLabel config");
|
|
53
|
-
this.wsEmbedInstance.web3AuthClientId = this.web3auth.coreOptions.clientId;
|
|
54
|
-
this.wsEmbedInstance.web3AuthNetwork = this.web3auth.coreOptions.web3AuthNetwork;
|
|
55
|
-
this.subscribeToWeb3AuthEvents(web3auth);
|
|
56
|
-
const connectedChainConfig = web3auth.coreOptions.chainConfig;
|
|
57
|
-
if (!connectedChainConfig.blockExplorerUrl) throw WalletServicesPluginError.invalidParams("blockExplorerUrl is required in chainConfig");
|
|
58
|
-
if (!connectedChainConfig.displayName) throw WalletServicesPluginError.invalidParams("displayName is required in chainConfig");
|
|
59
|
-
if (!connectedChainConfig.logo) throw WalletServicesPluginError.invalidParams("logo is required in chainConfig");
|
|
60
|
-
if (!connectedChainConfig.ticker) throw WalletServicesPluginError.invalidParams("ticker is required in chainConfig");
|
|
61
|
-
if (!connectedChainConfig.tickerName) throw WalletServicesPluginError.invalidParams("tickerName is required in chainConfig");
|
|
62
|
-
const hasAaProvider = web3auth.coreOptions.accountAbstractionProvider && (web3auth.connectedAdapterName === WALLET_ADAPTERS.AUTH || web3auth.connectedAdapterName !== WALLET_ADAPTERS.AUTH && web3auth.coreOptions.useAAWithExternalWallet);
|
|
63
|
-
let accountAbstractionConfig;
|
|
64
|
-
if (hasAaProvider) {
|
|
65
|
-
var _web3auth$coreOptions, _web3auth$coreOptions2, _web3auth$coreOptions3, _web3auth$coreOptions4, _web3auth$coreOptions5;
|
|
66
|
-
const smartAccountAddress = (_web3auth$coreOptions = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions === void 0 ? void 0 : _web3auth$coreOptions.smartAccount.address;
|
|
67
|
-
const smartAccountType = (_web3auth$coreOptions2 = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions2 === void 0 ? void 0 : _web3auth$coreOptions2.config.smartAccountInit.name;
|
|
68
|
-
const paymasterConfig = (_web3auth$coreOptions3 = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions3 === void 0 || (_web3auth$coreOptions3 = _web3auth$coreOptions3.config) === null || _web3auth$coreOptions3 === void 0 ? void 0 : _web3auth$coreOptions3.paymasterConfig;
|
|
69
|
-
const bundlerConfig = (_web3auth$coreOptions4 = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions4 === void 0 || (_web3auth$coreOptions4 = _web3auth$coreOptions4.config) === null || _web3auth$coreOptions4 === void 0 ? void 0 : _web3auth$coreOptions4.bundlerConfig;
|
|
70
|
-
const smartAccountConfig = (_web3auth$coreOptions5 = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions5 === void 0 ? void 0 : _web3auth$coreOptions5.config.smartAccountInit.options;
|
|
71
|
-
|
|
72
|
-
// TODO: fix this type casting when we start using accountAbstractionController
|
|
73
|
-
accountAbstractionConfig = {
|
|
74
|
-
smartAccountAddress: smartAccountAddress || undefined,
|
|
75
|
-
smartAccountType: smartAccountType || undefined,
|
|
76
|
-
paymasterConfig: paymasterConfig || undefined,
|
|
77
|
-
bundlerConfig: bundlerConfig || undefined,
|
|
78
|
-
smartAccountConfig: smartAccountConfig || undefined
|
|
79
|
-
};
|
|
80
|
-
} else if ((_this$walletInitOptio = this.walletInitOptions) !== null && _this$walletInitOptio !== void 0 && _this$walletInitOptio.accountAbstractionConfig && Object.keys(this.walletInitOptions.accountAbstractionConfig).length > 0) {
|
|
81
|
-
// if wallet services plugin is initialized with accountAbstractionConfig we enable wallet service AA without AA provider
|
|
82
|
-
accountAbstractionConfig = this.walletInitOptions.accountAbstractionConfig;
|
|
83
|
-
}
|
|
84
|
-
const finalInitOptions = _objectSpread(_objectSpread({}, this.walletInitOptions), {}, {
|
|
85
|
-
chainConfig: connectedChainConfig,
|
|
86
|
-
enableLogging: (_this$web3auth$coreOp = this.web3auth.coreOptions) === null || _this$web3auth$coreOp === void 0 ? void 0 : _this$web3auth$coreOp.enableLogging,
|
|
87
|
-
whiteLabel: mergedWhitelabelSettings,
|
|
88
|
-
accountAbstractionConfig
|
|
89
|
-
});
|
|
90
|
-
await this.wsEmbedInstance.init(finalInitOptions);
|
|
43
|
+
// Auth connector uses WS embed
|
|
44
|
+
const authInstance = web3auth.getConnector(WALLET_CONNECTORS.AUTH);
|
|
45
|
+
if (!authInstance || !authInstance.wsEmbed) throw WalletServicesPluginError.web3AuthNotConnected();
|
|
46
|
+
this.wsEmbedInstance = authInstance.wsEmbed;
|
|
91
47
|
this.isInitialized = true;
|
|
92
48
|
this.status = PLUGIN_STATUS.READY;
|
|
93
49
|
this.emit(PLUGIN_EVENTS.READY);
|
|
@@ -95,11 +51,8 @@ class WalletServicesPlugin extends SafeEventEmitter {
|
|
|
95
51
|
initWithProvider() {
|
|
96
52
|
throw new Error("Method not implemented.");
|
|
97
53
|
}
|
|
98
|
-
async connect({
|
|
99
|
-
|
|
100
|
-
sessionNamespace
|
|
101
|
-
}) {
|
|
102
|
-
// if web3auth is being used and connected to unsupported adapter throw error
|
|
54
|
+
async connect() {
|
|
55
|
+
// if web3auth is being used and connected to unsupported connector throw error
|
|
103
56
|
if (!this.isInitialized) throw WalletServicesPluginError.notInitialized();
|
|
104
57
|
this.emit(PLUGIN_EVENTS.CONNECTING);
|
|
105
58
|
this.status = PLUGIN_STATUS.CONNECTING;
|
|
@@ -109,21 +62,12 @@ class WalletServicesPlugin extends SafeEventEmitter {
|
|
|
109
62
|
this.provider = this.web3auth.provider;
|
|
110
63
|
}
|
|
111
64
|
}
|
|
112
|
-
if (this.web3auth.status !==
|
|
65
|
+
if (this.web3auth.status !== CONNECTOR_STATUS.CONNECTED) {
|
|
113
66
|
throw WalletServicesPluginError.web3AuthNotConnected();
|
|
114
67
|
} else if (!this.web3auth.provider) {
|
|
115
68
|
throw WalletServicesPluginError.providerRequired();
|
|
116
69
|
}
|
|
117
|
-
if (!sessionId) {
|
|
118
|
-
throw WalletServicesPluginError.web3AuthNotConnected();
|
|
119
|
-
}
|
|
120
70
|
try {
|
|
121
|
-
await this.wsEmbedInstance.loginWithSessionId({
|
|
122
|
-
sessionId,
|
|
123
|
-
sessionNamespace
|
|
124
|
-
});
|
|
125
|
-
this.subscribeToProviderEvents(this.provider);
|
|
126
|
-
this.subscribeToWalletEvents();
|
|
127
71
|
this.emit(PLUGIN_EVENTS.CONNECTED);
|
|
128
72
|
this.status = PLUGIN_STATUS.CONNECTED;
|
|
129
73
|
} catch (error) {
|
|
@@ -135,142 +79,43 @@ class WalletServicesPlugin extends SafeEventEmitter {
|
|
|
135
79
|
}
|
|
136
80
|
}
|
|
137
81
|
async showWalletConnectScanner(showWalletConnectParams) {
|
|
138
|
-
|
|
82
|
+
var _this$wsEmbedInstance2;
|
|
83
|
+
if (!((_this$wsEmbedInstance2 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance2 !== void 0 && _this$wsEmbedInstance2.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
|
|
139
84
|
return this.wsEmbedInstance.showWalletConnectScanner(showWalletConnectParams);
|
|
140
85
|
}
|
|
141
86
|
async showCheckout(showCheckoutParams) {
|
|
142
|
-
|
|
87
|
+
var _this$wsEmbedInstance3;
|
|
88
|
+
if (!((_this$wsEmbedInstance3 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance3 !== void 0 && _this$wsEmbedInstance3.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
|
|
143
89
|
return this.wsEmbedInstance.showCheckout(showCheckoutParams);
|
|
144
90
|
}
|
|
145
91
|
async showWalletUi(showWalletUiParams) {
|
|
146
|
-
|
|
92
|
+
var _this$wsEmbedInstance4;
|
|
93
|
+
if (!((_this$wsEmbedInstance4 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance4 !== void 0 && _this$wsEmbedInstance4.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
|
|
147
94
|
return this.wsEmbedInstance.showWalletUi(showWalletUiParams);
|
|
148
95
|
}
|
|
149
96
|
async showSwap(showSwapParams) {
|
|
150
|
-
|
|
97
|
+
var _this$wsEmbedInstance5;
|
|
98
|
+
if (!((_this$wsEmbedInstance5 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance5 !== void 0 && _this$wsEmbedInstance5.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
|
|
151
99
|
return this.wsEmbedInstance.showSwap(showSwapParams);
|
|
152
100
|
}
|
|
153
101
|
async cleanup() {
|
|
154
|
-
|
|
102
|
+
var _this$wsEmbedInstance6;
|
|
103
|
+
return (_this$wsEmbedInstance6 = this.wsEmbedInstance) === null || _this$wsEmbedInstance6 === void 0 ? void 0 : _this$wsEmbedInstance6.cleanUp();
|
|
155
104
|
}
|
|
156
105
|
async disconnect() {
|
|
157
|
-
|
|
158
|
-
if (this.
|
|
106
|
+
var _this$wsEmbedInstance7;
|
|
107
|
+
if (this.status !== PLUGIN_STATUS.CONNECTED) throw WalletServicesPluginError.invalidSession("Wallet Services plugin is not connected");
|
|
108
|
+
if ((_this$wsEmbedInstance7 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance7 !== void 0 && _this$wsEmbedInstance7.isLoggedIn) {
|
|
159
109
|
await this.wsEmbedInstance.logout();
|
|
160
|
-
this.emit(PLUGIN_EVENTS.DISCONNECTED);
|
|
161
|
-
this.status = PLUGIN_STATUS.DISCONNECTED;
|
|
162
|
-
} else {
|
|
163
|
-
throw WalletServicesPluginError.invalidSession("Wallet Services plugin is not connected");
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
subscribeToWalletEvents() {
|
|
167
|
-
var _this$wsEmbedInstance;
|
|
168
|
-
(_this$wsEmbedInstance = this.wsEmbedInstance) === null || _this$wsEmbedInstance === void 0 || _this$wsEmbedInstance.provider.on("accountsChanged", (accounts = []) => {
|
|
169
|
-
if (accounts.length === 0) {
|
|
170
|
-
var _this$web3auth2, _this$web3auth3;
|
|
171
|
-
if (((_this$web3auth2 = this.web3auth) === null || _this$web3auth2 === void 0 ? void 0 : _this$web3auth2.status) === ADAPTER_STATUS.CONNECTED) (_this$web3auth3 = this.web3auth) === null || _this$web3auth3 === void 0 || _this$web3auth3.logout();
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
subscribeToProviderEvents(provider) {
|
|
176
|
-
provider.on("accountsChanged", (accounts = []) => {
|
|
177
|
-
this.setSelectedAddress(accounts[0]);
|
|
178
|
-
});
|
|
179
|
-
provider.on("chainChanged", chainId => {
|
|
180
|
-
this.setChainID(parseInt(chainId, 16));
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
subscribeToWeb3AuthEvents(web3Auth) {
|
|
184
|
-
web3Auth.on(ADAPTER_EVENTS.CONNECTED, data => {
|
|
185
|
-
this.provider = data.provider || web3Auth.provider;
|
|
186
|
-
if (!this.provider) throw WalletServicesPluginError.web3AuthNotConnected();
|
|
187
|
-
this.subscribeToProviderEvents(this.provider);
|
|
188
|
-
});
|
|
189
|
-
web3Auth.on(ADAPTER_EVENTS.DISCONNECTED, async () => {
|
|
190
|
-
this.provider = null;
|
|
191
|
-
if (this.wsEmbedInstance.isLoggedIn) {
|
|
192
|
-
await this.wsEmbedInstance.logout();
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
}
|
|
196
|
-
async sessionConfig() {
|
|
197
|
-
if (!this.provider) throw WalletServicesPluginError.web3AuthNotConnected();
|
|
198
|
-
const [accounts, chainId, chainConfig] = await Promise.all([this.provider.request({
|
|
199
|
-
method: "eth_accounts"
|
|
200
|
-
}), this.provider.request({
|
|
201
|
-
method: "eth_chainId"
|
|
202
|
-
}), this.provider.request({
|
|
203
|
-
method: "eth_provider_config"
|
|
204
|
-
})]);
|
|
205
|
-
return {
|
|
206
|
-
chainId: parseInt(chainId, 16),
|
|
207
|
-
accounts: accounts,
|
|
208
|
-
chainConfig: chainConfig
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
async walletServicesSessionConfig() {
|
|
212
|
-
if (!this.wsEmbedInstance.provider) throw WalletServicesPluginError.web3AuthNotConnected();
|
|
213
|
-
const [accounts, chainId] = await Promise.all([this.wsEmbedInstance.provider.request({
|
|
214
|
-
method: "eth_accounts"
|
|
215
|
-
}), this.wsEmbedInstance.provider.request({
|
|
216
|
-
method: "eth_chainId"
|
|
217
|
-
})]);
|
|
218
|
-
return {
|
|
219
|
-
chainId: parseInt(chainId, 16),
|
|
220
|
-
accounts: accounts
|
|
221
|
-
};
|
|
222
|
-
}
|
|
223
|
-
async setSelectedAddress(address) {
|
|
224
|
-
var _walletServicesSessio;
|
|
225
|
-
if (this.web3auth.status !== ADAPTER_STATUS.CONNECTED) throw WalletServicesPluginError.web3AuthNotConnected();
|
|
226
|
-
const walletServicesSessionConfig = await this.walletServicesSessionConfig();
|
|
227
|
-
if (address !== ((_walletServicesSessio = walletServicesSessionConfig.accounts) === null || _walletServicesSessio === void 0 ? void 0 : _walletServicesSessio[0])) {
|
|
228
|
-
throw WalletServicesPluginError.invalidSession();
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
async setChainID(chainId) {
|
|
232
|
-
const [sessionConfig, walletServicesSessionConfig] = await Promise.all([this.sessionConfig(), this.walletServicesSessionConfig()]);
|
|
233
|
-
const {
|
|
234
|
-
chainConfig
|
|
235
|
-
} = sessionConfig || {};
|
|
236
|
-
if (!chainConfig.blockExplorerUrl) throw WalletServicesPluginError.invalidParams("blockExplorerUrl is required in chainConfig");
|
|
237
|
-
if (!chainConfig.displayName) throw WalletServicesPluginError.invalidParams("displayName is required in chainConfig");
|
|
238
|
-
if (!chainConfig.logo) throw WalletServicesPluginError.invalidParams("logo is required in chainConfig");
|
|
239
|
-
if (!chainConfig.ticker) throw WalletServicesPluginError.invalidParams("ticker is required in chainConfig");
|
|
240
|
-
if (!chainConfig.tickerName) throw WalletServicesPluginError.invalidParams("tickerName is required in chainConfig");
|
|
241
|
-
if (chainId !== walletServicesSessionConfig.chainId && chainConfig) {
|
|
242
|
-
try {
|
|
243
|
-
var _this$wsEmbedInstance2, _this$wsEmbedInstance3;
|
|
244
|
-
await ((_this$wsEmbedInstance2 = this.wsEmbedInstance.provider) === null || _this$wsEmbedInstance2 === void 0 ? void 0 : _this$wsEmbedInstance2.request({
|
|
245
|
-
method: "wallet_addEthereumChain",
|
|
246
|
-
params: [{
|
|
247
|
-
chainId: chainConfig.chainId,
|
|
248
|
-
chainName: chainConfig.displayName,
|
|
249
|
-
rpcUrls: [chainConfig.rpcTarget],
|
|
250
|
-
blockExplorerUrls: [chainConfig.blockExplorerUrl],
|
|
251
|
-
nativeCurrency: {
|
|
252
|
-
name: chainConfig.tickerName,
|
|
253
|
-
symbol: chainConfig.ticker,
|
|
254
|
-
decimals: chainConfig.decimals || 18
|
|
255
|
-
},
|
|
256
|
-
iconUrls: [chainConfig.logo]
|
|
257
|
-
}]
|
|
258
|
-
}).catch(() => {
|
|
259
|
-
// TODO: throw more specific error from the controller
|
|
260
|
-
log.error("WalletServicesPlugin: Error adding chain");
|
|
261
|
-
}));
|
|
262
|
-
await ((_this$wsEmbedInstance3 = this.wsEmbedInstance.provider) === null || _this$wsEmbedInstance3 === void 0 ? void 0 : _this$wsEmbedInstance3.request({
|
|
263
|
-
method: "wallet_switchEthereumChain",
|
|
264
|
-
params: [{
|
|
265
|
-
chainId: chainConfig.chainId
|
|
266
|
-
}]
|
|
267
|
-
}));
|
|
268
|
-
} catch (error) {
|
|
269
|
-
// TODO: throw more specific error from the controller
|
|
270
|
-
log.error("WalletServicesPlugin: Error switching chain");
|
|
271
|
-
}
|
|
272
110
|
}
|
|
111
|
+
this.emit(PLUGIN_EVENTS.DISCONNECTED);
|
|
112
|
+
this.status = PLUGIN_STATUS.DISCONNECTED;
|
|
273
113
|
}
|
|
274
114
|
}
|
|
115
|
+
const walletServicesPlugin = () => {
|
|
116
|
+
return () => {
|
|
117
|
+
return new WalletServicesPlugin();
|
|
118
|
+
};
|
|
119
|
+
};
|
|
275
120
|
|
|
276
|
-
export {
|
|
121
|
+
export { walletServicesPlugin };
|
package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js
CHANGED
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
2
2
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
+
import { SMART_ACCOUNT } from '@toruslabs/ethereum-controllers';
|
|
4
|
+
export { SMART_ACCOUNT } from '@toruslabs/ethereum-controllers';
|
|
3
5
|
import { providerErrors, JRPCEngine, providerFromEngine } from '@web3auth/auth';
|
|
4
6
|
import { defineChain, createPublicClient, http } from 'viem';
|
|
5
7
|
import { createPaymasterClient, createBundlerClient } from 'viem/account-abstraction';
|
|
6
|
-
import { CHAIN_NAMESPACES } from '../../../base/chain/IChainInterface.js';
|
|
7
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';
|
|
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';
|
|
8
22
|
import { createAaMiddleware, eoaProviderAsMiddleware } from '../rpc/ethRpcMiddlewares.js';
|
|
9
23
|
import { getProviderHandlers } from './utils.js';
|
|
10
|
-
import { BaseProvider } from '../../base-provider/baseProvider.js';
|
|
11
24
|
|
|
12
25
|
var _AccountAbstractionProvider;
|
|
13
26
|
class AccountAbstractionProvider extends BaseProvider {
|
|
@@ -24,6 +37,9 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
24
37
|
_defineProperty(this, "_publicClient", void 0);
|
|
25
38
|
_defineProperty(this, "_bundlerClient", void 0);
|
|
26
39
|
_defineProperty(this, "_paymasterClient", void 0);
|
|
40
|
+
this.update({
|
|
41
|
+
chainId: config.chain.chainId
|
|
42
|
+
});
|
|
27
43
|
}
|
|
28
44
|
get smartAccount() {
|
|
29
45
|
return this._smartAccount;
|
|
@@ -49,43 +65,45 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
49
65
|
}
|
|
50
66
|
async setupProvider(eoaProvider) {
|
|
51
67
|
var _this$config$bundlerC;
|
|
68
|
+
const {
|
|
69
|
+
currentChain
|
|
70
|
+
} = this;
|
|
52
71
|
const {
|
|
53
72
|
chainNamespace
|
|
54
|
-
} =
|
|
73
|
+
} = currentChain;
|
|
55
74
|
if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
|
|
56
75
|
const chain = defineChain({
|
|
57
|
-
id: Number.parseInt(
|
|
76
|
+
id: Number.parseInt(currentChain.chainId, 16),
|
|
58
77
|
// id in number form
|
|
59
|
-
name:
|
|
78
|
+
name: currentChain.displayName,
|
|
60
79
|
rpcUrls: {
|
|
61
80
|
default: {
|
|
62
|
-
http: [
|
|
63
|
-
webSocket: [
|
|
81
|
+
http: [currentChain.rpcTarget],
|
|
82
|
+
webSocket: [currentChain.wsTarget]
|
|
64
83
|
}
|
|
65
84
|
},
|
|
66
|
-
blockExplorers:
|
|
85
|
+
blockExplorers: currentChain.blockExplorerUrl ? {
|
|
67
86
|
default: {
|
|
68
87
|
name: "explorer",
|
|
69
88
|
// TODO: correct name if chain config has it
|
|
70
|
-
url:
|
|
89
|
+
url: currentChain.blockExplorerUrl
|
|
71
90
|
}
|
|
72
91
|
} : undefined,
|
|
73
92
|
nativeCurrency: {
|
|
74
|
-
name:
|
|
75
|
-
symbol:
|
|
76
|
-
decimals:
|
|
93
|
+
name: currentChain.tickerName,
|
|
94
|
+
symbol: currentChain.ticker,
|
|
95
|
+
decimals: currentChain.decimals || 18
|
|
77
96
|
}
|
|
78
97
|
});
|
|
79
98
|
// setup public client for viem smart account
|
|
80
99
|
this._publicClient = createPublicClient({
|
|
81
100
|
chain,
|
|
82
|
-
transport: http(
|
|
101
|
+
transport: http(currentChain.rpcTarget)
|
|
83
102
|
});
|
|
84
103
|
this._smartAccount = await this.config.smartAccountInit.getSmartAccount({
|
|
85
104
|
owner: eoaProvider,
|
|
86
105
|
client: this._publicClient
|
|
87
106
|
});
|
|
88
|
-
|
|
89
107
|
// setup bundler and paymaster
|
|
90
108
|
if (this.config.paymasterConfig) {
|
|
91
109
|
var _this$config$paymaste;
|
|
@@ -105,7 +123,6 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
105
123
|
chain,
|
|
106
124
|
eoaProvider
|
|
107
125
|
});
|
|
108
|
-
|
|
109
126
|
// setup rpc engine and AA middleware
|
|
110
127
|
const engine = new JRPCEngine();
|
|
111
128
|
const aaMiddleware = await createAaMiddleware({
|
|
@@ -117,8 +134,12 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
117
134
|
engine.push(eoaMiddleware);
|
|
118
135
|
const provider = providerFromEngine(engine);
|
|
119
136
|
this.updateProviderEngineProxy(provider);
|
|
120
|
-
eoaProvider.once("chainChanged",
|
|
137
|
+
eoaProvider.once("chainChanged", chainId => {
|
|
138
|
+
this.update({
|
|
139
|
+
chainId
|
|
140
|
+
});
|
|
121
141
|
this.setupChainSwitchMiddleware();
|
|
142
|
+
this.emit("chainChanged", chainId);
|
|
122
143
|
});
|
|
123
144
|
}
|
|
124
145
|
async updateAccount(_params) {
|
|
@@ -131,32 +152,85 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
131
152
|
throw providerErrors.unsupportedMethod("lookupNetwork. Please call it on eoaProvider");
|
|
132
153
|
}
|
|
133
154
|
async setupChainSwitchMiddleware() {
|
|
134
|
-
const chainConfig = await this.state.eoaProvider.request({
|
|
135
|
-
method: "eth_provider_config"
|
|
136
|
-
});
|
|
137
|
-
this.update({
|
|
138
|
-
chainId: chainConfig.chainId
|
|
139
|
-
});
|
|
140
|
-
this.configure({
|
|
141
|
-
chainConfig: _objectSpread(_objectSpread({}, chainConfig), {}, {
|
|
142
|
-
chainNamespace: CHAIN_NAMESPACES.EIP155,
|
|
143
|
-
chainId: chainConfig.chainId,
|
|
144
|
-
rpcTarget: chainConfig.rpcTarget
|
|
145
|
-
})
|
|
146
|
-
});
|
|
147
155
|
return this.setupProvider(this.state.eoaProvider);
|
|
148
156
|
}
|
|
149
157
|
}
|
|
150
158
|
_AccountAbstractionProvider = AccountAbstractionProvider;
|
|
151
159
|
_defineProperty(AccountAbstractionProvider, "getProviderInstance", async params => {
|
|
152
|
-
const
|
|
160
|
+
const providerInstance = new _AccountAbstractionProvider({
|
|
153
161
|
config: params
|
|
154
162
|
});
|
|
155
|
-
await
|
|
156
|
-
|
|
163
|
+
await providerInstance.setupProvider(params.eoaProvider);
|
|
164
|
+
providerInstance.update({
|
|
157
165
|
eoaProvider: params.eoaProvider
|
|
158
166
|
});
|
|
159
|
-
return
|
|
167
|
+
return providerInstance;
|
|
160
168
|
});
|
|
169
|
+
const accountAbstractionProvider = async ({
|
|
170
|
+
accountAbstractionConfig,
|
|
171
|
+
chain,
|
|
172
|
+
chains,
|
|
173
|
+
provider
|
|
174
|
+
}) => {
|
|
175
|
+
let smartAccountInit;
|
|
176
|
+
const {
|
|
177
|
+
smartAccountType,
|
|
178
|
+
smartAccountConfig,
|
|
179
|
+
bundlerConfig,
|
|
180
|
+
paymasterConfig
|
|
181
|
+
} = accountAbstractionConfig;
|
|
182
|
+
switch (smartAccountType) {
|
|
183
|
+
case SMART_ACCOUNT.BICONOMY:
|
|
184
|
+
{
|
|
185
|
+
const {
|
|
186
|
+
BiconomySmartAccount
|
|
187
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
188
|
+
smartAccountInit = new BiconomySmartAccount(smartAccountConfig);
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
case SMART_ACCOUNT.KERNEL:
|
|
192
|
+
{
|
|
193
|
+
const {
|
|
194
|
+
KernelSmartAccount
|
|
195
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
196
|
+
smartAccountInit = new KernelSmartAccount(smartAccountConfig);
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
case SMART_ACCOUNT.NEXUS:
|
|
200
|
+
{
|
|
201
|
+
const {
|
|
202
|
+
NexusSmartAccount
|
|
203
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
204
|
+
smartAccountInit = new NexusSmartAccount(smartAccountConfig);
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
case SMART_ACCOUNT.SAFE:
|
|
208
|
+
{
|
|
209
|
+
const {
|
|
210
|
+
SafeSmartAccount
|
|
211
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
212
|
+
smartAccountInit = new SafeSmartAccount(smartAccountConfig);
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
case SMART_ACCOUNT.TRUST:
|
|
216
|
+
{
|
|
217
|
+
const {
|
|
218
|
+
TrustSmartAccount
|
|
219
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
220
|
+
smartAccountInit = new TrustSmartAccount(smartAccountConfig);
|
|
221
|
+
break;
|
|
222
|
+
}
|
|
223
|
+
default:
|
|
224
|
+
throw new Error("Smart account type not supported");
|
|
225
|
+
}
|
|
226
|
+
return AccountAbstractionProvider.getProviderInstance({
|
|
227
|
+
eoaProvider: provider,
|
|
228
|
+
smartAccountInit,
|
|
229
|
+
chain,
|
|
230
|
+
chains,
|
|
231
|
+
bundlerConfig,
|
|
232
|
+
paymasterConfig
|
|
233
|
+
});
|
|
234
|
+
};
|
|
161
235
|
|
|
162
|
-
export {
|
|
236
|
+
export { accountAbstractionProvider };
|
|
@@ -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);
|