@web3auth/no-modal 10.0.0-alpha.0 → 10.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib.cjs/base/chain/IChainInterface.js +2 -2
- package/dist/lib.cjs/base/chain/config.js +63 -22
- package/dist/lib.cjs/base/connector/baseConnector.js +67 -0
- package/dist/lib.cjs/base/connector/constants.js +26 -0
- package/dist/lib.cjs/base/errors/index.js +2 -2
- package/dist/lib.cjs/base/plugin/errors.js +2 -2
- package/dist/lib.cjs/base/wallet/index.js +15 -20
- package/dist/lib.cjs/connectors/auth-connector/authConnector.js +392 -0
- package/dist/lib.cjs/{adapters/base-evm-adapter/baseEvmAdapter.js → connectors/base-evm-connector/baseEvmConnector.js} +22 -19
- package/dist/lib.cjs/{adapters/base-solana-adapter/baseSolanaAdapter.js → connectors/base-solana-connector/baseSolanaConnector.js} +24 -23
- package/dist/lib.cjs/connectors/coinbase-connector/coinbaseConnector.js +151 -0
- package/dist/lib.cjs/connectors/injected-evm-connector/index.js +12 -0
- package/dist/lib.cjs/{adapters/default-evm-adapter/injectedEvmAdapter.js → connectors/injected-evm-connector/injectedEvmConnector.js} +54 -38
- package/dist/lib.cjs/connectors/injected-solana-connector/index.js +25 -0
- package/dist/lib.cjs/{adapters/default-solana-adapter/walletStandardAdapter.js → connectors/injected-solana-connector/walletStandardConnector.js} +57 -48
- package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.js +40 -90
- package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.js +23 -26
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/index.js +20 -0
- package/dist/lib.cjs/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +417 -0
- package/dist/lib.cjs/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.js +12 -25
- package/dist/lib.cjs/index.js +100 -82
- package/dist/lib.cjs/noModal.js +291 -239
- package/dist/lib.cjs/plugins/nft-checkout-plugin/plugin.js +9 -4
- package/dist/lib.cjs/plugins/wallet-services-plugin/plugin.js +43 -199
- package/dist/lib.cjs/providers/account-abstraction-provider/index.js +32 -0
- package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +99 -31
- package/dist/lib.cjs/providers/base-provider/CommonJRPCProvider.js +21 -26
- package/dist/lib.cjs/providers/base-provider/baseProvider.js +29 -24
- package/dist/lib.cjs/providers/base-provider/commonPrivateKeyProvider.js +2 -13
- package/dist/lib.cjs/providers/base-provider/index.js +18 -0
- package/dist/lib.cjs/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +34 -57
- package/dist/lib.cjs/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +1 -30
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +9 -11
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +3 -5
- package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +83 -2
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +24 -54
- package/dist/lib.cjs/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +18 -27
- package/dist/lib.cjs/providers/solana-provider/rpc/solanaRpcMiddlewares.js +5 -5
- package/dist/lib.cjs/providers/solana-provider/solanaWallet.js +44 -18
- package/dist/lib.cjs/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +23 -58
- package/dist/lib.cjs/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -3
- package/dist/lib.cjs/react/no-modal/Web3AuthInnerContext.js +18 -42
- package/dist/lib.cjs/react/wallet-services-plugin/WalletServicesContext.js +3 -0
- package/dist/lib.cjs/vue/no-modal/Web3AuthProvider.js +16 -42
- package/dist/lib.cjs/vue/wallet-services-plugin/WalletServicesProvider.js +4 -0
- package/dist/lib.esm/base/chain/IChainInterface.js +2 -2
- package/dist/lib.esm/base/chain/config.js +63 -22
- package/dist/lib.esm/base/connector/baseConnector.js +65 -0
- package/dist/lib.esm/base/connector/constants.js +22 -0
- package/dist/lib.esm/base/errors/index.js +2 -2
- package/dist/lib.esm/base/plugin/errors.js +2 -2
- package/dist/lib.esm/base/wallet/index.js +11 -16
- package/dist/lib.esm/connectors/auth-connector/authConnector.js +390 -0
- package/dist/lib.esm/{adapters/base-evm-adapter/baseEvmAdapter.js → connectors/base-evm-connector/baseEvmConnector.js} +23 -20
- package/dist/lib.esm/{adapters/base-solana-adapter/baseSolanaAdapter.js → connectors/base-solana-connector/baseSolanaConnector.js} +25 -24
- package/dist/lib.esm/connectors/coinbase-connector/coinbaseConnector.js +149 -0
- package/dist/lib.esm/connectors/injected-evm-connector/index.js +2 -0
- package/dist/lib.esm/{adapters/default-evm-adapter/injectedEvmAdapter.js → connectors/injected-evm-connector/injectedEvmConnector.js} +54 -39
- 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} +57 -49
- package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.js +41 -91
- package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.js +23 -26
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/index.js +3 -0
- package/dist/lib.esm/connectors/wallet-connect-v2-connector/walletConnectV2Connector.js +415 -0
- package/dist/lib.esm/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.js +13 -25
- package/dist/lib.esm/index.js +23 -28
- package/dist/lib.esm/noModal.js +290 -238
- package/dist/lib.esm/plugins/nft-checkout-plugin/plugin.js +9 -4
- package/dist/lib.esm/plugins/wallet-services-plugin/plugin.js +42 -199
- package/dist/lib.esm/providers/account-abstraction-provider/index.js +2 -0
- package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js +96 -31
- package/dist/lib.esm/providers/base-provider/CommonJRPCProvider.js +22 -27
- package/dist/lib.esm/providers/base-provider/baseProvider.js +29 -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/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.js +34 -57
- package/dist/lib.esm/providers/ethereum-provider/rpc/ethRpcMiddlewares.js +2 -30
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.js +9 -11
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js +3 -5
- package/dist/lib.esm/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js +83 -2
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.js +24 -54
- package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js +18 -27
- package/dist/lib.esm/providers/solana-provider/rpc/solanaRpcMiddlewares.js +5 -5
- package/dist/lib.esm/providers/solana-provider/solanaWallet.js +44 -18
- package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js +23 -58
- package/dist/lib.esm/providers/xrpl-provider/rpc/xrplRpcMiddlewares.js +1 -3
- package/dist/lib.esm/react/no-modal/Web3AuthInnerContext.js +18 -42
- package/dist/lib.esm/react/wallet-services-plugin/WalletServicesContext.js +3 -0
- package/dist/lib.esm/vue/no-modal/Web3AuthProvider.js +16 -42
- package/dist/lib.esm/vue/wallet-services-plugin/WalletServicesProvider.js +4 -0
- package/dist/noModal.cjs.js +12650 -24362
- package/dist/noModal.umd.min.js +1 -1
- package/dist/noModal.umd.min.js.LICENSE.txt +0 -9
- package/dist/types/base/chain/IChainInterface.d.ts +2 -2
- package/dist/types/base/chain/config.d.ts +2 -2
- package/dist/types/base/connector/baseConnector.d.ts +37 -0
- package/dist/types/base/{adapter → connector}/constants.d.ts +7 -4
- package/dist/types/base/{adapter → connector}/index.d.ts +1 -1
- package/dist/types/base/{adapter → connector}/interfaces.d.ts +47 -45
- package/dist/types/base/core/IWeb3Auth.d.ts +75 -34
- package/dist/types/base/errors/index.d.ts +1 -1
- package/dist/types/base/hooks/index.d.ts +2 -6
- package/dist/types/base/index.d.ts +1 -1
- package/dist/types/base/plugin/IPlugin.d.ts +4 -7
- package/dist/types/base/plugin/errors.d.ts +1 -1
- package/dist/types/base/utils.d.ts +1 -1
- package/dist/types/base/wallet/index.d.ts +9 -13
- package/dist/types/connectors/auth-connector/authConnector.d.ts +45 -0
- package/dist/types/connectors/auth-connector/index.d.ts +2 -0
- package/dist/types/connectors/auth-connector/interface.d.ts +14 -0
- package/dist/types/connectors/base-evm-connector/baseEvmConnector.d.ts +7 -0
- package/dist/types/connectors/base-evm-connector/index.d.ts +1 -0
- package/dist/types/connectors/base-solana-connector/baseSolanaConnector.d.ts +7 -0
- package/dist/types/connectors/base-solana-connector/index.d.ts +1 -0
- package/dist/types/connectors/coinbase-connector/coinbaseConnector.d.ts +7 -0
- package/dist/types/connectors/coinbase-connector/index.d.ts +1 -0
- package/dist/types/connectors/index.d.ts +7 -0
- package/dist/types/connectors/injected-evm-connector/index.d.ts +2 -0
- package/dist/types/connectors/injected-evm-connector/injectedEvmConnector.d.ts +34 -0
- package/dist/types/connectors/injected-solana-connector/index.d.ts +5 -0
- package/dist/types/connectors/injected-solana-connector/walletStandardConnector.d.ts +33 -0
- package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/WalletConnectV2Provider.d.ts +3 -4
- package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/config.d.ts +4 -4
- package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/index.d.ts +1 -1
- package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/interface.d.ts +4 -4
- package/dist/types/connectors/wallet-connect-v2-connector/walletConnectV2Connector.d.ts +3 -0
- package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/walletConnectV2Utils.d.ts +1 -6
- package/dist/types/index.d.ts +1 -1
- package/dist/types/noModal.d.ts +29 -14
- package/dist/types/plugins/nft-checkout-plugin/plugin.d.ts +11 -7
- package/dist/types/plugins/wallet-services-plugin/plugin.d.ts +8 -32
- package/dist/types/providers/account-abstraction-provider/providers/AccountAbstractionProvider.d.ts +16 -14
- package/dist/types/providers/account-abstraction-provider/providers/index.d.ts +0 -1
- package/dist/types/providers/account-abstraction-provider/providers/smartAccounts/index.d.ts +1 -6
- package/dist/types/providers/base-provider/CommonJRPCProvider.d.ts +3 -3
- package/dist/types/providers/base-provider/baseProvider.d.ts +14 -11
- package/dist/types/providers/base-provider/commonPrivateKeyProvider.d.ts +2 -4
- package/dist/types/providers/ethereum-mpc-provider/providers/signingProviders/EthereumSigningProvider.d.ts +14 -5
- package/dist/types/providers/ethereum-provider/providers/privateKeyProviders/index.d.ts +0 -1
- package/dist/types/providers/ethereum-provider/rpc/ethRpcMiddlewares.d.ts +2 -3
- package/dist/types/providers/ethereum-provider/rpc/interfaces.d.ts +0 -13
- package/dist/types/providers/solana-provider/interface.d.ts +8 -25
- package/dist/types/providers/solana-provider/providers/injectedProviders/base/baseInjectedProvider.d.ts +2 -2
- package/dist/types/providers/solana-provider/providers/injectedProviders/index.d.ts +1 -2
- package/dist/types/providers/solana-provider/providers/injectedProviders/utils.d.ts +3 -0
- package/dist/types/providers/solana-provider/providers/injectedProviders/walletStandardProvider.d.ts +7 -4
- package/dist/types/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyProvider.d.ts +4 -4
- package/dist/types/providers/solana-provider/rpc/interfaces.d.ts +12 -27
- package/dist/types/providers/solana-provider/rpc/solanaRpcMiddlewares.d.ts +1 -1
- package/dist/types/providers/solana-provider/solanaWallet.d.ts +21 -7
- package/dist/types/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.d.ts +4 -4
- package/dist/types/providers/xrpl-provider/rpc/xrplRpcMiddlewares.d.ts +1 -4
- package/dist/types/react/no-modal/interfaces.d.ts +4 -4
- package/dist/types/react/wallet-services-plugin/interfaces.d.ts +2 -2
- package/dist/types/vue/no-modal/interfaces.d.ts +5 -8
- package/dist/types/vue/wallet-services-plugin/interfaces.d.ts +2 -2
- package/package.json +8 -7
- 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/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/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/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/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/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/types.d.ts +0 -22
- package/dist/types/providers/account-abstraction-provider/providers/types.d.ts +0 -17
- 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/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/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/lib.esm/base/{adapter → connector}/utils.js +0 -0
- /package/dist/lib.esm/{adapters/default-solana-adapter → providers/solana-provider/providers/injectedProviders}/utils.js +0 -0
- /package/dist/types/base/{adapter → connector}/utils.d.ts +0 -0
- /package/dist/types/{adapters/default-solana-adapter → connectors/injected-solana-connector}/utils.d.ts +0 -0
- /package/dist/types/{adapters/wallet-connect-v2-adapter → connectors/wallet-connect-v2-connector}/utils.d.ts +0 -0
|
@@ -3,14 +3,14 @@ import { SafeEventEmitter } from '@web3auth/auth';
|
|
|
3
3
|
import { NFTCheckoutEmbed } from './embed.js';
|
|
4
4
|
import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
|
|
5
5
|
import { NFTCheckoutPluginError } from '../../base/plugin/errors.js';
|
|
6
|
-
import {
|
|
6
|
+
import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
|
|
7
7
|
|
|
8
8
|
class NFTCheckoutPlugin extends SafeEventEmitter {
|
|
9
9
|
constructor(params) {
|
|
10
10
|
super();
|
|
11
11
|
_defineProperty(this, "name", EVM_PLUGINS.NFT_CHECKOUT);
|
|
12
12
|
_defineProperty(this, "status", PLUGIN_STATUS.DISCONNECTED);
|
|
13
|
-
_defineProperty(this, "
|
|
13
|
+
_defineProperty(this, "SUPPORTED_CONNECTORS", ["all"]);
|
|
14
14
|
_defineProperty(this, "pluginNamespace", PLUGIN_NAMESPACES.EIP155);
|
|
15
15
|
_defineProperty(this, "web3auth", null);
|
|
16
16
|
_defineProperty(this, "nftCheckoutEmbedInstance", null);
|
|
@@ -33,7 +33,7 @@ class NFTCheckoutPlugin extends SafeEventEmitter {
|
|
|
33
33
|
if (!this.isInitialized) throw NFTCheckoutPluginError.notInitialized();
|
|
34
34
|
this.emit(PLUGIN_EVENTS.CONNECTING);
|
|
35
35
|
this.status = PLUGIN_STATUS.CONNECTING;
|
|
36
|
-
if (this.web3auth.status !==
|
|
36
|
+
if (this.web3auth.status !== CONNECTOR_STATUS.CONNECTED) throw NFTCheckoutPluginError.web3AuthNotConnected();
|
|
37
37
|
if (!this.web3auth.provider) throw NFTCheckoutPluginError.providerRequired();
|
|
38
38
|
const accounts = await this.web3auth.provider.request({
|
|
39
39
|
method: "eth_accounts"
|
|
@@ -65,5 +65,10 @@ class NFTCheckoutPlugin extends SafeEventEmitter {
|
|
|
65
65
|
return Promise.resolve();
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
+
const nftCheckoutPlugin = params => {
|
|
69
|
+
return () => {
|
|
70
|
+
return new NFTCheckoutPlugin(params);
|
|
71
|
+
};
|
|
72
|
+
};
|
|
68
73
|
|
|
69
|
-
export {
|
|
74
|
+
export { nftCheckoutPlugin };
|
|
@@ -1,93 +1,47 @@
|
|
|
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 WsEmbed from '@web3auth/ws-embed';
|
|
5
|
-
export { BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@web3auth/ws-embed';
|
|
6
3
|
import { CHAIN_NAMESPACES } from '../../base/chain/IChainInterface.js';
|
|
7
4
|
import { log } from '../../base/loglevel.js';
|
|
8
|
-
import {
|
|
5
|
+
import { WALLET_CONNECTORS } from '../../base/wallet/index.js';
|
|
6
|
+
export { BUTTON_POSITION, CONFIRMATION_STRATEGY } from '@web3auth/ws-embed';
|
|
9
7
|
import { WalletServicesPluginError } from '../../base/plugin/errors.js';
|
|
10
8
|
import { EVM_PLUGINS, PLUGIN_STATUS, PLUGIN_NAMESPACES, PLUGIN_EVENTS } from '../../base/plugin/IPlugin.js';
|
|
11
|
-
import {
|
|
9
|
+
import { CONNECTOR_STATUS } from '../../base/connector/constants.js';
|
|
12
10
|
|
|
11
|
+
// TODO: support project config items here. incl. key export flag, multiple chains
|
|
13
12
|
class WalletServicesPlugin extends SafeEventEmitter {
|
|
14
|
-
constructor(
|
|
15
|
-
super();
|
|
13
|
+
constructor(...args) {
|
|
14
|
+
super(...args);
|
|
16
15
|
_defineProperty(this, "name", EVM_PLUGINS.WALLET_SERVICES);
|
|
17
16
|
_defineProperty(this, "status", PLUGIN_STATUS.DISCONNECTED);
|
|
18
|
-
_defineProperty(this, "
|
|
17
|
+
_defineProperty(this, "SUPPORTED_CONNECTORS", [WALLET_CONNECTORS.AUTH, WALLET_CONNECTORS.SFA]);
|
|
19
18
|
_defineProperty(this, "pluginNamespace", PLUGIN_NAMESPACES.MULTICHAIN);
|
|
20
19
|
_defineProperty(this, "wsEmbedInstance", void 0);
|
|
21
20
|
_defineProperty(this, "provider", null);
|
|
22
21
|
_defineProperty(this, "web3auth", null);
|
|
23
22
|
_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
23
|
}
|
|
33
24
|
get proxyProvider() {
|
|
34
|
-
|
|
25
|
+
var _this$wsEmbedInstance;
|
|
26
|
+
return (_this$wsEmbedInstance = this.wsEmbedInstance) !== null && _this$wsEmbedInstance !== void 0 && _this$wsEmbedInstance.provider ? this.wsEmbedInstance.provider : null;
|
|
35
27
|
}
|
|
36
|
-
async initWithWeb3Auth(web3auth,
|
|
37
|
-
var _this$walletInitOptio, _this$web3auth$coreOp;
|
|
28
|
+
async initWithWeb3Auth(web3auth, _whiteLabel) {
|
|
38
29
|
if (this.isInitialized) return;
|
|
39
30
|
if (!web3auth) throw WalletServicesPluginError.web3authRequired();
|
|
40
|
-
if (web3auth.provider && !this.
|
|
41
|
-
|
|
31
|
+
if (web3auth.provider && !this.SUPPORTED_CONNECTORS.includes(web3auth.connectedConnectorName)) throw WalletServicesPluginError.notInitialized();
|
|
32
|
+
const currentChainConfig = web3auth.currentChain;
|
|
33
|
+
if (![CHAIN_NAMESPACES.EIP155, CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig.chainNamespace)) throw WalletServicesPluginError.unsupportedChainNamespace();
|
|
34
|
+
|
|
42
35
|
// Not connected yet to auth
|
|
43
36
|
if (web3auth.provider) {
|
|
44
37
|
this.provider = web3auth.provider;
|
|
45
38
|
}
|
|
46
39
|
this.web3auth = web3auth;
|
|
47
|
-
const mergedWhitelabelSettings = _objectSpread(_objectSpread({}, whiteLabel), this.walletInitOptions.whiteLabel || {});
|
|
48
|
-
const {
|
|
49
|
-
logoDark,
|
|
50
|
-
logoLight
|
|
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
40
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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);
|
|
41
|
+
// Auth connector uses WS embed
|
|
42
|
+
const authInstance = web3auth.getConnector(WALLET_CONNECTORS.AUTH);
|
|
43
|
+
if (!authInstance || !authInstance.wsEmbed) throw WalletServicesPluginError.web3AuthNotConnected();
|
|
44
|
+
this.wsEmbedInstance = authInstance.wsEmbed;
|
|
91
45
|
this.isInitialized = true;
|
|
92
46
|
this.status = PLUGIN_STATUS.READY;
|
|
93
47
|
this.emit(PLUGIN_EVENTS.READY);
|
|
@@ -95,11 +49,8 @@ class WalletServicesPlugin extends SafeEventEmitter {
|
|
|
95
49
|
initWithProvider() {
|
|
96
50
|
throw new Error("Method not implemented.");
|
|
97
51
|
}
|
|
98
|
-
async connect({
|
|
99
|
-
|
|
100
|
-
sessionNamespace
|
|
101
|
-
}) {
|
|
102
|
-
// if web3auth is being used and connected to unsupported adapter throw error
|
|
52
|
+
async connect() {
|
|
53
|
+
// if web3auth is being used and connected to unsupported connector throw error
|
|
103
54
|
if (!this.isInitialized) throw WalletServicesPluginError.notInitialized();
|
|
104
55
|
this.emit(PLUGIN_EVENTS.CONNECTING);
|
|
105
56
|
this.status = PLUGIN_STATUS.CONNECTING;
|
|
@@ -109,21 +60,12 @@ class WalletServicesPlugin extends SafeEventEmitter {
|
|
|
109
60
|
this.provider = this.web3auth.provider;
|
|
110
61
|
}
|
|
111
62
|
}
|
|
112
|
-
if (this.web3auth.status !==
|
|
63
|
+
if (this.web3auth.status !== CONNECTOR_STATUS.CONNECTED) {
|
|
113
64
|
throw WalletServicesPluginError.web3AuthNotConnected();
|
|
114
65
|
} else if (!this.web3auth.provider) {
|
|
115
66
|
throw WalletServicesPluginError.providerRequired();
|
|
116
67
|
}
|
|
117
|
-
if (!sessionId) {
|
|
118
|
-
throw WalletServicesPluginError.web3AuthNotConnected();
|
|
119
|
-
}
|
|
120
68
|
try {
|
|
121
|
-
await this.wsEmbedInstance.loginWithSessionId({
|
|
122
|
-
sessionId,
|
|
123
|
-
sessionNamespace
|
|
124
|
-
});
|
|
125
|
-
this.subscribeToProviderEvents(this.provider);
|
|
126
|
-
this.subscribeToWalletEvents();
|
|
127
69
|
this.emit(PLUGIN_EVENTS.CONNECTED);
|
|
128
70
|
this.status = PLUGIN_STATUS.CONNECTED;
|
|
129
71
|
} catch (error) {
|
|
@@ -135,142 +77,43 @@ class WalletServicesPlugin extends SafeEventEmitter {
|
|
|
135
77
|
}
|
|
136
78
|
}
|
|
137
79
|
async showWalletConnectScanner(showWalletConnectParams) {
|
|
138
|
-
|
|
80
|
+
var _this$wsEmbedInstance2;
|
|
81
|
+
if (!((_this$wsEmbedInstance2 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance2 !== void 0 && _this$wsEmbedInstance2.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
|
|
139
82
|
return this.wsEmbedInstance.showWalletConnectScanner(showWalletConnectParams);
|
|
140
83
|
}
|
|
141
84
|
async showCheckout(showCheckoutParams) {
|
|
142
|
-
|
|
85
|
+
var _this$wsEmbedInstance3;
|
|
86
|
+
if (!((_this$wsEmbedInstance3 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance3 !== void 0 && _this$wsEmbedInstance3.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
|
|
143
87
|
return this.wsEmbedInstance.showCheckout(showCheckoutParams);
|
|
144
88
|
}
|
|
145
89
|
async showWalletUi(showWalletUiParams) {
|
|
146
|
-
|
|
90
|
+
var _this$wsEmbedInstance4;
|
|
91
|
+
if (!((_this$wsEmbedInstance4 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance4 !== void 0 && _this$wsEmbedInstance4.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
|
|
147
92
|
return this.wsEmbedInstance.showWalletUi(showWalletUiParams);
|
|
148
93
|
}
|
|
149
94
|
async showSwap(showSwapParams) {
|
|
150
|
-
|
|
95
|
+
var _this$wsEmbedInstance5;
|
|
96
|
+
if (!((_this$wsEmbedInstance5 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance5 !== void 0 && _this$wsEmbedInstance5.isLoggedIn)) throw WalletServicesPluginError.walletPluginNotConnected();
|
|
151
97
|
return this.wsEmbedInstance.showSwap(showSwapParams);
|
|
152
98
|
}
|
|
153
99
|
async cleanup() {
|
|
154
|
-
|
|
100
|
+
var _this$wsEmbedInstance6;
|
|
101
|
+
return (_this$wsEmbedInstance6 = this.wsEmbedInstance) === null || _this$wsEmbedInstance6 === void 0 ? void 0 : _this$wsEmbedInstance6.cleanUp();
|
|
155
102
|
}
|
|
156
103
|
async disconnect() {
|
|
157
|
-
|
|
158
|
-
if (this.
|
|
104
|
+
var _this$wsEmbedInstance7;
|
|
105
|
+
if (this.status !== PLUGIN_STATUS.CONNECTED) throw WalletServicesPluginError.invalidSession("Wallet Services plugin is not connected");
|
|
106
|
+
if ((_this$wsEmbedInstance7 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance7 !== void 0 && _this$wsEmbedInstance7.isLoggedIn) {
|
|
159
107
|
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
108
|
}
|
|
109
|
+
this.emit(PLUGIN_EVENTS.DISCONNECTED);
|
|
110
|
+
this.status = PLUGIN_STATUS.DISCONNECTED;
|
|
273
111
|
}
|
|
274
112
|
}
|
|
113
|
+
const walletServicesPlugin = () => {
|
|
114
|
+
return () => {
|
|
115
|
+
return new WalletServicesPlugin();
|
|
116
|
+
};
|
|
117
|
+
};
|
|
275
118
|
|
|
276
|
-
export {
|
|
119
|
+
export { walletServicesPlugin };
|
package/dist/lib.esm/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
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
8
|
import { CHAIN_NAMESPACES } from '../../../base/chain/IChainInterface.js';
|
|
7
9
|
import { WalletInitializationError } from '../../../base/errors/index.js';
|
|
10
|
+
import { BaseProvider } from '../../base-provider/baseProvider.js';
|
|
8
11
|
import { createAaMiddleware, eoaProviderAsMiddleware } from '../rpc/ethRpcMiddlewares.js';
|
|
9
12
|
import { getProviderHandlers } from './utils.js';
|
|
10
|
-
import { BaseProvider } from '../../base-provider/baseProvider.js';
|
|
11
13
|
|
|
12
14
|
var _AccountAbstractionProvider;
|
|
13
15
|
class AccountAbstractionProvider extends BaseProvider {
|
|
@@ -24,6 +26,9 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
24
26
|
_defineProperty(this, "_publicClient", void 0);
|
|
25
27
|
_defineProperty(this, "_bundlerClient", void 0);
|
|
26
28
|
_defineProperty(this, "_paymasterClient", void 0);
|
|
29
|
+
this.update({
|
|
30
|
+
chainId: config.chain.chainId
|
|
31
|
+
});
|
|
27
32
|
}
|
|
28
33
|
get smartAccount() {
|
|
29
34
|
return this._smartAccount;
|
|
@@ -49,37 +54,40 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
49
54
|
}
|
|
50
55
|
async setupProvider(eoaProvider) {
|
|
51
56
|
var _this$config$bundlerC;
|
|
57
|
+
const {
|
|
58
|
+
currentChain
|
|
59
|
+
} = this;
|
|
52
60
|
const {
|
|
53
61
|
chainNamespace
|
|
54
|
-
} =
|
|
62
|
+
} = currentChain;
|
|
55
63
|
if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
|
|
56
64
|
const chain = defineChain({
|
|
57
|
-
id: Number.parseInt(
|
|
65
|
+
id: Number.parseInt(currentChain.chainId, 16),
|
|
58
66
|
// id in number form
|
|
59
|
-
name:
|
|
67
|
+
name: currentChain.displayName,
|
|
60
68
|
rpcUrls: {
|
|
61
69
|
default: {
|
|
62
|
-
http: [
|
|
63
|
-
webSocket: [
|
|
70
|
+
http: [currentChain.rpcTarget],
|
|
71
|
+
webSocket: [currentChain.wsTarget]
|
|
64
72
|
}
|
|
65
73
|
},
|
|
66
|
-
blockExplorers:
|
|
74
|
+
blockExplorers: currentChain.blockExplorerUrl ? {
|
|
67
75
|
default: {
|
|
68
76
|
name: "explorer",
|
|
69
77
|
// TODO: correct name if chain config has it
|
|
70
|
-
url:
|
|
78
|
+
url: currentChain.blockExplorerUrl
|
|
71
79
|
}
|
|
72
80
|
} : undefined,
|
|
73
81
|
nativeCurrency: {
|
|
74
|
-
name:
|
|
75
|
-
symbol:
|
|
76
|
-
decimals:
|
|
82
|
+
name: currentChain.tickerName,
|
|
83
|
+
symbol: currentChain.ticker,
|
|
84
|
+
decimals: currentChain.decimals || 18
|
|
77
85
|
}
|
|
78
86
|
});
|
|
79
87
|
// setup public client for viem smart account
|
|
80
88
|
this._publicClient = createPublicClient({
|
|
81
89
|
chain,
|
|
82
|
-
transport: http(
|
|
90
|
+
transport: http(currentChain.rpcTarget)
|
|
83
91
|
});
|
|
84
92
|
this._smartAccount = await this.config.smartAccountInit.getSmartAccount({
|
|
85
93
|
owner: eoaProvider,
|
|
@@ -117,8 +125,12 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
117
125
|
engine.push(eoaMiddleware);
|
|
118
126
|
const provider = providerFromEngine(engine);
|
|
119
127
|
this.updateProviderEngineProxy(provider);
|
|
120
|
-
eoaProvider.once("chainChanged",
|
|
128
|
+
eoaProvider.once("chainChanged", chainId => {
|
|
129
|
+
this.update({
|
|
130
|
+
chainId
|
|
131
|
+
});
|
|
121
132
|
this.setupChainSwitchMiddleware();
|
|
133
|
+
this.emit("chainChanged", chainId);
|
|
122
134
|
});
|
|
123
135
|
}
|
|
124
136
|
async updateAccount(_params) {
|
|
@@ -131,32 +143,85 @@ class AccountAbstractionProvider extends BaseProvider {
|
|
|
131
143
|
throw providerErrors.unsupportedMethod("lookupNetwork. Please call it on eoaProvider");
|
|
132
144
|
}
|
|
133
145
|
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
146
|
return this.setupProvider(this.state.eoaProvider);
|
|
148
147
|
}
|
|
149
148
|
}
|
|
150
149
|
_AccountAbstractionProvider = AccountAbstractionProvider;
|
|
151
150
|
_defineProperty(AccountAbstractionProvider, "getProviderInstance", async params => {
|
|
152
|
-
const
|
|
151
|
+
const providerInstance = new _AccountAbstractionProvider({
|
|
153
152
|
config: params
|
|
154
153
|
});
|
|
155
|
-
await
|
|
156
|
-
|
|
154
|
+
await providerInstance.setupProvider(params.eoaProvider);
|
|
155
|
+
providerInstance.update({
|
|
157
156
|
eoaProvider: params.eoaProvider
|
|
158
157
|
});
|
|
159
|
-
return
|
|
158
|
+
return providerInstance;
|
|
160
159
|
});
|
|
160
|
+
const accountAbstractionProvider = async ({
|
|
161
|
+
accountAbstractionConfig,
|
|
162
|
+
chain,
|
|
163
|
+
chains,
|
|
164
|
+
provider
|
|
165
|
+
}) => {
|
|
166
|
+
let smartAccountInit;
|
|
167
|
+
const {
|
|
168
|
+
smartAccountType,
|
|
169
|
+
smartAccountConfig,
|
|
170
|
+
bundlerConfig,
|
|
171
|
+
paymasterConfig
|
|
172
|
+
} = accountAbstractionConfig;
|
|
173
|
+
switch (smartAccountType) {
|
|
174
|
+
case SMART_ACCOUNT.BICONOMY:
|
|
175
|
+
{
|
|
176
|
+
const {
|
|
177
|
+
BiconomySmartAccount
|
|
178
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
179
|
+
smartAccountInit = new BiconomySmartAccount(smartAccountConfig);
|
|
180
|
+
break;
|
|
181
|
+
}
|
|
182
|
+
case SMART_ACCOUNT.KERNEL:
|
|
183
|
+
{
|
|
184
|
+
const {
|
|
185
|
+
KernelSmartAccount
|
|
186
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
187
|
+
smartAccountInit = new KernelSmartAccount(smartAccountConfig);
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
case SMART_ACCOUNT.NEXUS:
|
|
191
|
+
{
|
|
192
|
+
const {
|
|
193
|
+
NexusSmartAccount
|
|
194
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
195
|
+
smartAccountInit = new NexusSmartAccount(smartAccountConfig);
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
case SMART_ACCOUNT.SAFE:
|
|
199
|
+
{
|
|
200
|
+
const {
|
|
201
|
+
SafeSmartAccount
|
|
202
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
203
|
+
smartAccountInit = new SafeSmartAccount(smartAccountConfig);
|
|
204
|
+
break;
|
|
205
|
+
}
|
|
206
|
+
case SMART_ACCOUNT.TRUST:
|
|
207
|
+
{
|
|
208
|
+
const {
|
|
209
|
+
TrustSmartAccount
|
|
210
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
211
|
+
smartAccountInit = new TrustSmartAccount(smartAccountConfig);
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
default:
|
|
215
|
+
throw new Error("Smart account type not supported");
|
|
216
|
+
}
|
|
217
|
+
return AccountAbstractionProvider.getProviderInstance({
|
|
218
|
+
eoaProvider: provider,
|
|
219
|
+
smartAccountInit,
|
|
220
|
+
chain,
|
|
221
|
+
chains,
|
|
222
|
+
bundlerConfig,
|
|
223
|
+
paymasterConfig
|
|
224
|
+
});
|
|
225
|
+
};
|
|
161
226
|
|
|
162
|
-
export {
|
|
227
|
+
export { accountAbstractionProvider };
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
-
import {
|
|
3
|
-
import { JRPCEngine, providerFromEngine, providerErrors } from '@web3auth/auth';
|
|
2
|
+
import { providerErrors, JRPCEngine, providerFromEngine } from '@web3auth/auth';
|
|
4
3
|
import { BaseProvider } from './baseProvider.js';
|
|
5
4
|
import { createJsonRpcClient } from './jrpcClient.js';
|
|
6
5
|
|
|
@@ -15,23 +14,25 @@ class CommonJRPCProvider extends BaseProvider {
|
|
|
15
14
|
state
|
|
16
15
|
});
|
|
17
16
|
}
|
|
18
|
-
async setupProvider() {
|
|
17
|
+
async setupProvider(chainId) {
|
|
18
|
+
const chain = this.getChain(chainId);
|
|
19
|
+
if (!chain) throw providerErrors.custom({
|
|
20
|
+
message: "Chain not found",
|
|
21
|
+
code: 4902
|
|
22
|
+
});
|
|
19
23
|
const {
|
|
20
24
|
networkMiddleware
|
|
21
|
-
} = createJsonRpcClient(
|
|
25
|
+
} = createJsonRpcClient(chain);
|
|
22
26
|
const engine = new JRPCEngine();
|
|
23
27
|
engine.push(networkMiddleware);
|
|
24
28
|
const provider = providerFromEngine(engine);
|
|
25
29
|
this.updateProviderEngineProxy(provider);
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
chainId: newChainId
|
|
31
|
-
});
|
|
32
|
-
}
|
|
30
|
+
this.emit("chainChanged", chainId);
|
|
31
|
+
this.emit("connect", {
|
|
32
|
+
chainId
|
|
33
|
+
});
|
|
33
34
|
this.update({
|
|
34
|
-
chainId
|
|
35
|
+
chainId
|
|
35
36
|
});
|
|
36
37
|
}
|
|
37
38
|
async switchChain(params) {
|
|
@@ -39,22 +40,12 @@ class CommonJRPCProvider extends BaseProvider {
|
|
|
39
40
|
message: "Provider is not initialized",
|
|
40
41
|
code: 4902
|
|
41
42
|
});
|
|
42
|
-
const
|
|
43
|
+
const newChainId = params.chainId;
|
|
44
|
+
if (this.chainId === newChainId) return;
|
|
43
45
|
this.update({
|
|
44
46
|
chainId: "loading"
|
|
45
47
|
});
|
|
46
|
-
this.
|
|
47
|
-
chainConfig
|
|
48
|
-
});
|
|
49
|
-
await this.setupProvider();
|
|
50
|
-
}
|
|
51
|
-
updateProviderEngineProxy(provider) {
|
|
52
|
-
if (this._providerEngineProxy) {
|
|
53
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
54
|
-
this._providerEngineProxy.setTarget(provider);
|
|
55
|
-
} else {
|
|
56
|
-
this._providerEngineProxy = createEventEmitterProxy(provider);
|
|
57
|
-
}
|
|
48
|
+
await this.setupProvider(newChainId);
|
|
58
49
|
}
|
|
59
50
|
getProviderEngineProxy() {
|
|
60
51
|
return this._providerEngineProxy;
|
|
@@ -67,10 +58,14 @@ _CommonJRPCProvider = CommonJRPCProvider;
|
|
|
67
58
|
_defineProperty(CommonJRPCProvider, "getProviderInstance", async params => {
|
|
68
59
|
const providerFactory = new _CommonJRPCProvider({
|
|
69
60
|
config: {
|
|
70
|
-
|
|
61
|
+
chain: params.chain,
|
|
62
|
+
chains: params.chains
|
|
71
63
|
}
|
|
72
64
|
});
|
|
73
|
-
|
|
65
|
+
const {
|
|
66
|
+
chainId
|
|
67
|
+
} = params.chain;
|
|
68
|
+
await providerFactory.setupProvider(chainId);
|
|
74
69
|
return providerFactory;
|
|
75
70
|
});
|
|
76
71
|
|