@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
|
@@ -5,14 +5,14 @@ var auth = require('@web3auth/auth');
|
|
|
5
5
|
var embed = require('./embed.js');
|
|
6
6
|
var IPlugin = require('../../base/plugin/IPlugin.js');
|
|
7
7
|
var errors = require('../../base/plugin/errors.js');
|
|
8
|
-
var constants = require('../../base/
|
|
8
|
+
var constants = require('../../base/connector/constants.js');
|
|
9
9
|
|
|
10
10
|
class NFTCheckoutPlugin extends auth.SafeEventEmitter {
|
|
11
11
|
constructor(params) {
|
|
12
12
|
super();
|
|
13
13
|
_defineProperty(this, "name", IPlugin.EVM_PLUGINS.NFT_CHECKOUT);
|
|
14
14
|
_defineProperty(this, "status", IPlugin.PLUGIN_STATUS.DISCONNECTED);
|
|
15
|
-
_defineProperty(this, "
|
|
15
|
+
_defineProperty(this, "SUPPORTED_CONNECTORS", ["all"]);
|
|
16
16
|
_defineProperty(this, "pluginNamespace", IPlugin.PLUGIN_NAMESPACES.EIP155);
|
|
17
17
|
_defineProperty(this, "web3auth", null);
|
|
18
18
|
_defineProperty(this, "nftCheckoutEmbedInstance", null);
|
|
@@ -35,7 +35,7 @@ class NFTCheckoutPlugin extends auth.SafeEventEmitter {
|
|
|
35
35
|
if (!this.isInitialized) throw errors.NFTCheckoutPluginError.notInitialized();
|
|
36
36
|
this.emit(IPlugin.PLUGIN_EVENTS.CONNECTING);
|
|
37
37
|
this.status = IPlugin.PLUGIN_STATUS.CONNECTING;
|
|
38
|
-
if (this.web3auth.status !== constants.
|
|
38
|
+
if (this.web3auth.status !== constants.CONNECTOR_STATUS.CONNECTED) throw errors.NFTCheckoutPluginError.web3AuthNotConnected();
|
|
39
39
|
if (!this.web3auth.provider) throw errors.NFTCheckoutPluginError.providerRequired();
|
|
40
40
|
const accounts = await this.web3auth.provider.request({
|
|
41
41
|
method: "eth_accounts"
|
|
@@ -67,5 +67,10 @@ class NFTCheckoutPlugin extends auth.SafeEventEmitter {
|
|
|
67
67
|
return Promise.resolve();
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
+
const nftCheckoutPlugin = params => {
|
|
71
|
+
return () => {
|
|
72
|
+
return new NFTCheckoutPlugin(params);
|
|
73
|
+
};
|
|
74
|
+
};
|
|
70
75
|
|
|
71
|
-
exports.
|
|
76
|
+
exports.nftCheckoutPlugin = nftCheckoutPlugin;
|
|
@@ -1,94 +1,49 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
4
|
var auth = require('@web3auth/auth');
|
|
6
|
-
var WsEmbed = require('@web3auth/ws-embed');
|
|
7
5
|
var IChainInterface = require('../../base/chain/IChainInterface.js');
|
|
8
6
|
var loglevel = require('../../base/loglevel.js');
|
|
9
7
|
var index = require('../../base/wallet/index.js');
|
|
8
|
+
var wsEmbed = require('@web3auth/ws-embed');
|
|
10
9
|
var errors = require('../../base/plugin/errors.js');
|
|
11
10
|
var IPlugin = require('../../base/plugin/IPlugin.js');
|
|
12
|
-
var constants = require('../../base/
|
|
11
|
+
var constants = require('../../base/connector/constants.js');
|
|
13
12
|
|
|
13
|
+
// TODO: support project config items here. incl. key export flag, multiple chains
|
|
14
14
|
class WalletServicesPlugin extends auth.SafeEventEmitter {
|
|
15
|
-
constructor(
|
|
16
|
-
super();
|
|
15
|
+
constructor(...args) {
|
|
16
|
+
super(...args);
|
|
17
17
|
_defineProperty(this, "name", IPlugin.EVM_PLUGINS.WALLET_SERVICES);
|
|
18
18
|
_defineProperty(this, "status", IPlugin.PLUGIN_STATUS.DISCONNECTED);
|
|
19
|
-
_defineProperty(this, "
|
|
19
|
+
_defineProperty(this, "SUPPORTED_CONNECTORS", [index.WALLET_CONNECTORS.AUTH, index.WALLET_CONNECTORS.SFA]);
|
|
20
20
|
_defineProperty(this, "pluginNamespace", IPlugin.PLUGIN_NAMESPACES.MULTICHAIN);
|
|
21
21
|
_defineProperty(this, "wsEmbedInstance", void 0);
|
|
22
22
|
_defineProperty(this, "provider", null);
|
|
23
23
|
_defineProperty(this, "web3auth", null);
|
|
24
24
|
_defineProperty(this, "isInitialized", false);
|
|
25
|
-
_defineProperty(this, "walletInitOptions", null);
|
|
26
|
-
const {
|
|
27
|
-
wsEmbedOpts,
|
|
28
|
-
walletInitOptions
|
|
29
|
-
} = options;
|
|
30
|
-
// we fake these checks here and get them from web3auth instance
|
|
31
|
-
this.wsEmbedInstance = new WsEmbed(wsEmbedOpts || {});
|
|
32
|
-
this.walletInitOptions = walletInitOptions || {};
|
|
33
25
|
}
|
|
34
26
|
get proxyProvider() {
|
|
35
|
-
|
|
27
|
+
var _this$wsEmbedInstance;
|
|
28
|
+
return (_this$wsEmbedInstance = this.wsEmbedInstance) !== null && _this$wsEmbedInstance !== void 0 && _this$wsEmbedInstance.provider ? this.wsEmbedInstance.provider : null;
|
|
36
29
|
}
|
|
37
|
-
async initWithWeb3Auth(web3auth,
|
|
38
|
-
var _this$walletInitOptio, _this$web3auth$coreOp;
|
|
30
|
+
async initWithWeb3Auth(web3auth, _whiteLabel) {
|
|
39
31
|
if (this.isInitialized) return;
|
|
40
32
|
if (!web3auth) throw errors.WalletServicesPluginError.web3authRequired();
|
|
41
|
-
if (web3auth.provider && !this.
|
|
42
|
-
|
|
33
|
+
if (web3auth.provider && !this.SUPPORTED_CONNECTORS.includes(web3auth.connectedConnectorName)) throw errors.WalletServicesPluginError.notInitialized();
|
|
34
|
+
const currentChainConfig = web3auth.currentChain;
|
|
35
|
+
if (![IChainInterface.CHAIN_NAMESPACES.EIP155, IChainInterface.CHAIN_NAMESPACES.SOLANA].includes(currentChainConfig.chainNamespace)) throw errors.WalletServicesPluginError.unsupportedChainNamespace();
|
|
36
|
+
|
|
43
37
|
// Not connected yet to auth
|
|
44
38
|
if (web3auth.provider) {
|
|
45
39
|
this.provider = web3auth.provider;
|
|
46
40
|
}
|
|
47
41
|
this.web3auth = web3auth;
|
|
48
|
-
const mergedWhitelabelSettings = _objectSpread(_objectSpread({}, whiteLabel), this.walletInitOptions.whiteLabel || {});
|
|
49
|
-
const {
|
|
50
|
-
logoDark,
|
|
51
|
-
logoLight
|
|
52
|
-
} = mergedWhitelabelSettings || {};
|
|
53
|
-
if (!logoDark || !logoLight) throw errors.WalletServicesPluginError.invalidParams("logoDark and logoLight are required in whiteLabel config");
|
|
54
|
-
this.wsEmbedInstance.web3AuthClientId = this.web3auth.coreOptions.clientId;
|
|
55
|
-
this.wsEmbedInstance.web3AuthNetwork = this.web3auth.coreOptions.web3AuthNetwork;
|
|
56
|
-
this.subscribeToWeb3AuthEvents(web3auth);
|
|
57
|
-
const connectedChainConfig = web3auth.coreOptions.chainConfig;
|
|
58
|
-
if (!connectedChainConfig.blockExplorerUrl) throw errors.WalletServicesPluginError.invalidParams("blockExplorerUrl is required in chainConfig");
|
|
59
|
-
if (!connectedChainConfig.displayName) throw errors.WalletServicesPluginError.invalidParams("displayName is required in chainConfig");
|
|
60
|
-
if (!connectedChainConfig.logo) throw errors.WalletServicesPluginError.invalidParams("logo is required in chainConfig");
|
|
61
|
-
if (!connectedChainConfig.ticker) throw errors.WalletServicesPluginError.invalidParams("ticker is required in chainConfig");
|
|
62
|
-
if (!connectedChainConfig.tickerName) throw errors.WalletServicesPluginError.invalidParams("tickerName is required in chainConfig");
|
|
63
|
-
const hasAaProvider = web3auth.coreOptions.accountAbstractionProvider && (web3auth.connectedAdapterName === index.WALLET_ADAPTERS.AUTH || web3auth.connectedAdapterName !== index.WALLET_ADAPTERS.AUTH && web3auth.coreOptions.useAAWithExternalWallet);
|
|
64
|
-
let accountAbstractionConfig;
|
|
65
|
-
if (hasAaProvider) {
|
|
66
|
-
var _web3auth$coreOptions, _web3auth$coreOptions2, _web3auth$coreOptions3, _web3auth$coreOptions4, _web3auth$coreOptions5;
|
|
67
|
-
const smartAccountAddress = (_web3auth$coreOptions = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions === void 0 ? void 0 : _web3auth$coreOptions.smartAccount.address;
|
|
68
|
-
const smartAccountType = (_web3auth$coreOptions2 = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions2 === void 0 ? void 0 : _web3auth$coreOptions2.config.smartAccountInit.name;
|
|
69
|
-
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;
|
|
70
|
-
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;
|
|
71
|
-
const smartAccountConfig = (_web3auth$coreOptions5 = web3auth.coreOptions.accountAbstractionProvider) === null || _web3auth$coreOptions5 === void 0 ? void 0 : _web3auth$coreOptions5.config.smartAccountInit.options;
|
|
72
42
|
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
paymasterConfig: paymasterConfig || undefined,
|
|
78
|
-
bundlerConfig: bundlerConfig || undefined,
|
|
79
|
-
smartAccountConfig: smartAccountConfig || undefined
|
|
80
|
-
};
|
|
81
|
-
} else if ((_this$walletInitOptio = this.walletInitOptions) !== null && _this$walletInitOptio !== void 0 && _this$walletInitOptio.accountAbstractionConfig && Object.keys(this.walletInitOptions.accountAbstractionConfig).length > 0) {
|
|
82
|
-
// if wallet services plugin is initialized with accountAbstractionConfig we enable wallet service AA without AA provider
|
|
83
|
-
accountAbstractionConfig = this.walletInitOptions.accountAbstractionConfig;
|
|
84
|
-
}
|
|
85
|
-
const finalInitOptions = _objectSpread(_objectSpread({}, this.walletInitOptions), {}, {
|
|
86
|
-
chainConfig: connectedChainConfig,
|
|
87
|
-
enableLogging: (_this$web3auth$coreOp = this.web3auth.coreOptions) === null || _this$web3auth$coreOp === void 0 ? void 0 : _this$web3auth$coreOp.enableLogging,
|
|
88
|
-
whiteLabel: mergedWhitelabelSettings,
|
|
89
|
-
accountAbstractionConfig
|
|
90
|
-
});
|
|
91
|
-
await this.wsEmbedInstance.init(finalInitOptions);
|
|
43
|
+
// Auth connector uses WS embed
|
|
44
|
+
const authInstance = web3auth.getConnector(index.WALLET_CONNECTORS.AUTH);
|
|
45
|
+
if (!authInstance || !authInstance.wsEmbed) throw errors.WalletServicesPluginError.web3AuthNotConnected();
|
|
46
|
+
this.wsEmbedInstance = authInstance.wsEmbed;
|
|
92
47
|
this.isInitialized = true;
|
|
93
48
|
this.status = IPlugin.PLUGIN_STATUS.READY;
|
|
94
49
|
this.emit(IPlugin.PLUGIN_EVENTS.READY);
|
|
@@ -96,11 +51,8 @@ class WalletServicesPlugin extends auth.SafeEventEmitter {
|
|
|
96
51
|
initWithProvider() {
|
|
97
52
|
throw new Error("Method not implemented.");
|
|
98
53
|
}
|
|
99
|
-
async connect({
|
|
100
|
-
|
|
101
|
-
sessionNamespace
|
|
102
|
-
}) {
|
|
103
|
-
// 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
|
|
104
56
|
if (!this.isInitialized) throw errors.WalletServicesPluginError.notInitialized();
|
|
105
57
|
this.emit(IPlugin.PLUGIN_EVENTS.CONNECTING);
|
|
106
58
|
this.status = IPlugin.PLUGIN_STATUS.CONNECTING;
|
|
@@ -110,21 +62,12 @@ class WalletServicesPlugin extends auth.SafeEventEmitter {
|
|
|
110
62
|
this.provider = this.web3auth.provider;
|
|
111
63
|
}
|
|
112
64
|
}
|
|
113
|
-
if (this.web3auth.status !== constants.
|
|
65
|
+
if (this.web3auth.status !== constants.CONNECTOR_STATUS.CONNECTED) {
|
|
114
66
|
throw errors.WalletServicesPluginError.web3AuthNotConnected();
|
|
115
67
|
} else if (!this.web3auth.provider) {
|
|
116
68
|
throw errors.WalletServicesPluginError.providerRequired();
|
|
117
69
|
}
|
|
118
|
-
if (!sessionId) {
|
|
119
|
-
throw errors.WalletServicesPluginError.web3AuthNotConnected();
|
|
120
|
-
}
|
|
121
70
|
try {
|
|
122
|
-
await this.wsEmbedInstance.loginWithSessionId({
|
|
123
|
-
sessionId,
|
|
124
|
-
sessionNamespace
|
|
125
|
-
});
|
|
126
|
-
this.subscribeToProviderEvents(this.provider);
|
|
127
|
-
this.subscribeToWalletEvents();
|
|
128
71
|
this.emit(IPlugin.PLUGIN_EVENTS.CONNECTED);
|
|
129
72
|
this.status = IPlugin.PLUGIN_STATUS.CONNECTED;
|
|
130
73
|
} catch (error) {
|
|
@@ -136,150 +79,51 @@ class WalletServicesPlugin extends auth.SafeEventEmitter {
|
|
|
136
79
|
}
|
|
137
80
|
}
|
|
138
81
|
async showWalletConnectScanner(showWalletConnectParams) {
|
|
139
|
-
|
|
82
|
+
var _this$wsEmbedInstance2;
|
|
83
|
+
if (!((_this$wsEmbedInstance2 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance2 !== void 0 && _this$wsEmbedInstance2.isLoggedIn)) throw errors.WalletServicesPluginError.walletPluginNotConnected();
|
|
140
84
|
return this.wsEmbedInstance.showWalletConnectScanner(showWalletConnectParams);
|
|
141
85
|
}
|
|
142
86
|
async showCheckout(showCheckoutParams) {
|
|
143
|
-
|
|
87
|
+
var _this$wsEmbedInstance3;
|
|
88
|
+
if (!((_this$wsEmbedInstance3 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance3 !== void 0 && _this$wsEmbedInstance3.isLoggedIn)) throw errors.WalletServicesPluginError.walletPluginNotConnected();
|
|
144
89
|
return this.wsEmbedInstance.showCheckout(showCheckoutParams);
|
|
145
90
|
}
|
|
146
91
|
async showWalletUi(showWalletUiParams) {
|
|
147
|
-
|
|
92
|
+
var _this$wsEmbedInstance4;
|
|
93
|
+
if (!((_this$wsEmbedInstance4 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance4 !== void 0 && _this$wsEmbedInstance4.isLoggedIn)) throw errors.WalletServicesPluginError.walletPluginNotConnected();
|
|
148
94
|
return this.wsEmbedInstance.showWalletUi(showWalletUiParams);
|
|
149
95
|
}
|
|
150
96
|
async showSwap(showSwapParams) {
|
|
151
|
-
|
|
97
|
+
var _this$wsEmbedInstance5;
|
|
98
|
+
if (!((_this$wsEmbedInstance5 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance5 !== void 0 && _this$wsEmbedInstance5.isLoggedIn)) throw errors.WalletServicesPluginError.walletPluginNotConnected();
|
|
152
99
|
return this.wsEmbedInstance.showSwap(showSwapParams);
|
|
153
100
|
}
|
|
154
101
|
async cleanup() {
|
|
155
|
-
|
|
102
|
+
var _this$wsEmbedInstance6;
|
|
103
|
+
return (_this$wsEmbedInstance6 = this.wsEmbedInstance) === null || _this$wsEmbedInstance6 === void 0 ? void 0 : _this$wsEmbedInstance6.cleanUp();
|
|
156
104
|
}
|
|
157
105
|
async disconnect() {
|
|
158
|
-
|
|
159
|
-
if (this.
|
|
106
|
+
var _this$wsEmbedInstance7;
|
|
107
|
+
if (this.status !== IPlugin.PLUGIN_STATUS.CONNECTED) throw errors.WalletServicesPluginError.invalidSession("Wallet Services plugin is not connected");
|
|
108
|
+
if ((_this$wsEmbedInstance7 = this.wsEmbedInstance) !== null && _this$wsEmbedInstance7 !== void 0 && _this$wsEmbedInstance7.isLoggedIn) {
|
|
160
109
|
await this.wsEmbedInstance.logout();
|
|
161
|
-
this.emit(IPlugin.PLUGIN_EVENTS.DISCONNECTED);
|
|
162
|
-
this.status = IPlugin.PLUGIN_STATUS.DISCONNECTED;
|
|
163
|
-
} else {
|
|
164
|
-
throw errors.WalletServicesPluginError.invalidSession("Wallet Services plugin is not connected");
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
subscribeToWalletEvents() {
|
|
168
|
-
var _this$wsEmbedInstance;
|
|
169
|
-
(_this$wsEmbedInstance = this.wsEmbedInstance) === null || _this$wsEmbedInstance === void 0 || _this$wsEmbedInstance.provider.on("accountsChanged", (accounts = []) => {
|
|
170
|
-
if (accounts.length === 0) {
|
|
171
|
-
var _this$web3auth2, _this$web3auth3;
|
|
172
|
-
if (((_this$web3auth2 = this.web3auth) === null || _this$web3auth2 === void 0 ? void 0 : _this$web3auth2.status) === constants.ADAPTER_STATUS.CONNECTED) (_this$web3auth3 = this.web3auth) === null || _this$web3auth3 === void 0 || _this$web3auth3.logout();
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
}
|
|
176
|
-
subscribeToProviderEvents(provider) {
|
|
177
|
-
provider.on("accountsChanged", (accounts = []) => {
|
|
178
|
-
this.setSelectedAddress(accounts[0]);
|
|
179
|
-
});
|
|
180
|
-
provider.on("chainChanged", chainId => {
|
|
181
|
-
this.setChainID(parseInt(chainId, 16));
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
subscribeToWeb3AuthEvents(web3Auth) {
|
|
185
|
-
web3Auth.on(constants.ADAPTER_EVENTS.CONNECTED, data => {
|
|
186
|
-
this.provider = data.provider || web3Auth.provider;
|
|
187
|
-
if (!this.provider) throw errors.WalletServicesPluginError.web3AuthNotConnected();
|
|
188
|
-
this.subscribeToProviderEvents(this.provider);
|
|
189
|
-
});
|
|
190
|
-
web3Auth.on(constants.ADAPTER_EVENTS.DISCONNECTED, async () => {
|
|
191
|
-
this.provider = null;
|
|
192
|
-
if (this.wsEmbedInstance.isLoggedIn) {
|
|
193
|
-
await this.wsEmbedInstance.logout();
|
|
194
|
-
}
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
async sessionConfig() {
|
|
198
|
-
if (!this.provider) throw errors.WalletServicesPluginError.web3AuthNotConnected();
|
|
199
|
-
const [accounts, chainId, chainConfig] = await Promise.all([this.provider.request({
|
|
200
|
-
method: "eth_accounts"
|
|
201
|
-
}), this.provider.request({
|
|
202
|
-
method: "eth_chainId"
|
|
203
|
-
}), this.provider.request({
|
|
204
|
-
method: "eth_provider_config"
|
|
205
|
-
})]);
|
|
206
|
-
return {
|
|
207
|
-
chainId: parseInt(chainId, 16),
|
|
208
|
-
accounts: accounts,
|
|
209
|
-
chainConfig: chainConfig
|
|
210
|
-
};
|
|
211
|
-
}
|
|
212
|
-
async walletServicesSessionConfig() {
|
|
213
|
-
if (!this.wsEmbedInstance.provider) throw errors.WalletServicesPluginError.web3AuthNotConnected();
|
|
214
|
-
const [accounts, chainId] = await Promise.all([this.wsEmbedInstance.provider.request({
|
|
215
|
-
method: "eth_accounts"
|
|
216
|
-
}), this.wsEmbedInstance.provider.request({
|
|
217
|
-
method: "eth_chainId"
|
|
218
|
-
})]);
|
|
219
|
-
return {
|
|
220
|
-
chainId: parseInt(chainId, 16),
|
|
221
|
-
accounts: accounts
|
|
222
|
-
};
|
|
223
|
-
}
|
|
224
|
-
async setSelectedAddress(address) {
|
|
225
|
-
var _walletServicesSessio;
|
|
226
|
-
if (this.web3auth.status !== constants.ADAPTER_STATUS.CONNECTED) throw errors.WalletServicesPluginError.web3AuthNotConnected();
|
|
227
|
-
const walletServicesSessionConfig = await this.walletServicesSessionConfig();
|
|
228
|
-
if (address !== ((_walletServicesSessio = walletServicesSessionConfig.accounts) === null || _walletServicesSessio === void 0 ? void 0 : _walletServicesSessio[0])) {
|
|
229
|
-
throw errors.WalletServicesPluginError.invalidSession();
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
async setChainID(chainId) {
|
|
233
|
-
const [sessionConfig, walletServicesSessionConfig] = await Promise.all([this.sessionConfig(), this.walletServicesSessionConfig()]);
|
|
234
|
-
const {
|
|
235
|
-
chainConfig
|
|
236
|
-
} = sessionConfig || {};
|
|
237
|
-
if (!chainConfig.blockExplorerUrl) throw errors.WalletServicesPluginError.invalidParams("blockExplorerUrl is required in chainConfig");
|
|
238
|
-
if (!chainConfig.displayName) throw errors.WalletServicesPluginError.invalidParams("displayName is required in chainConfig");
|
|
239
|
-
if (!chainConfig.logo) throw errors.WalletServicesPluginError.invalidParams("logo is required in chainConfig");
|
|
240
|
-
if (!chainConfig.ticker) throw errors.WalletServicesPluginError.invalidParams("ticker is required in chainConfig");
|
|
241
|
-
if (!chainConfig.tickerName) throw errors.WalletServicesPluginError.invalidParams("tickerName is required in chainConfig");
|
|
242
|
-
if (chainId !== walletServicesSessionConfig.chainId && chainConfig) {
|
|
243
|
-
try {
|
|
244
|
-
var _this$wsEmbedInstance2, _this$wsEmbedInstance3;
|
|
245
|
-
await ((_this$wsEmbedInstance2 = this.wsEmbedInstance.provider) === null || _this$wsEmbedInstance2 === void 0 ? void 0 : _this$wsEmbedInstance2.request({
|
|
246
|
-
method: "wallet_addEthereumChain",
|
|
247
|
-
params: [{
|
|
248
|
-
chainId: chainConfig.chainId,
|
|
249
|
-
chainName: chainConfig.displayName,
|
|
250
|
-
rpcUrls: [chainConfig.rpcTarget],
|
|
251
|
-
blockExplorerUrls: [chainConfig.blockExplorerUrl],
|
|
252
|
-
nativeCurrency: {
|
|
253
|
-
name: chainConfig.tickerName,
|
|
254
|
-
symbol: chainConfig.ticker,
|
|
255
|
-
decimals: chainConfig.decimals || 18
|
|
256
|
-
},
|
|
257
|
-
iconUrls: [chainConfig.logo]
|
|
258
|
-
}]
|
|
259
|
-
}).catch(() => {
|
|
260
|
-
// TODO: throw more specific error from the controller
|
|
261
|
-
loglevel.log.error("WalletServicesPlugin: Error adding chain");
|
|
262
|
-
}));
|
|
263
|
-
await ((_this$wsEmbedInstance3 = this.wsEmbedInstance.provider) === null || _this$wsEmbedInstance3 === void 0 ? void 0 : _this$wsEmbedInstance3.request({
|
|
264
|
-
method: "wallet_switchEthereumChain",
|
|
265
|
-
params: [{
|
|
266
|
-
chainId: chainConfig.chainId
|
|
267
|
-
}]
|
|
268
|
-
}));
|
|
269
|
-
} catch (error) {
|
|
270
|
-
// TODO: throw more specific error from the controller
|
|
271
|
-
loglevel.log.error("WalletServicesPlugin: Error switching chain");
|
|
272
|
-
}
|
|
273
110
|
}
|
|
111
|
+
this.emit(IPlugin.PLUGIN_EVENTS.DISCONNECTED);
|
|
112
|
+
this.status = IPlugin.PLUGIN_STATUS.DISCONNECTED;
|
|
274
113
|
}
|
|
275
114
|
}
|
|
115
|
+
const walletServicesPlugin = () => {
|
|
116
|
+
return () => {
|
|
117
|
+
return new WalletServicesPlugin();
|
|
118
|
+
};
|
|
119
|
+
};
|
|
276
120
|
|
|
277
121
|
Object.defineProperty(exports, "BUTTON_POSITION", {
|
|
278
122
|
enumerable: true,
|
|
279
|
-
get: function () { return
|
|
123
|
+
get: function () { return wsEmbed.BUTTON_POSITION; }
|
|
280
124
|
});
|
|
281
125
|
Object.defineProperty(exports, "CONFIRMATION_STRATEGY", {
|
|
282
126
|
enumerable: true,
|
|
283
|
-
get: function () { return
|
|
127
|
+
get: function () { return wsEmbed.CONFIRMATION_STRATEGY; }
|
|
284
128
|
});
|
|
285
|
-
exports.
|
|
129
|
+
exports.walletServicesPlugin = walletServicesPlugin;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var AccountAbstractionProvider = require('./providers/AccountAbstractionProvider.js');
|
|
4
|
+
var ethereumControllers = require('@toruslabs/ethereum-controllers');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
exports.accountAbstractionProvider = AccountAbstractionProvider.accountAbstractionProvider;
|
|
9
|
+
Object.defineProperty(exports, "BiconomySmartAccount", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () { return ethereumControllers.BiconomySmartAccount; }
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "KernelSmartAccount", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () { return ethereumControllers.KernelSmartAccount; }
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "NexusSmartAccount", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return ethereumControllers.NexusSmartAccount; }
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(exports, "SMART_ACCOUNT", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return ethereumControllers.SMART_ACCOUNT; }
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "SafeSmartAccount", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () { return ethereumControllers.SafeSmartAccount; }
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(exports, "TrustSmartAccount", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () { return ethereumControllers.TrustSmartAccount; }
|
|
32
|
+
});
|
package/dist/lib.cjs/providers/account-abstraction-provider/providers/AccountAbstractionProvider.js
CHANGED
|
@@ -2,14 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
4
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
|
+
var ethereumControllers = require('@toruslabs/ethereum-controllers');
|
|
5
6
|
var auth = require('@web3auth/auth');
|
|
6
7
|
var viem = require('viem');
|
|
7
8
|
var accountAbstraction = require('viem/account-abstraction');
|
|
8
9
|
var IChainInterface = require('../../../base/chain/IChainInterface.js');
|
|
9
10
|
var index = require('../../../base/errors/index.js');
|
|
11
|
+
var baseProvider = require('../../base-provider/baseProvider.js');
|
|
10
12
|
var ethRpcMiddlewares = require('../rpc/ethRpcMiddlewares.js');
|
|
11
13
|
var utils = require('./utils.js');
|
|
12
|
-
var baseProvider = require('../../base-provider/baseProvider.js');
|
|
13
14
|
|
|
14
15
|
var _AccountAbstractionProvider;
|
|
15
16
|
class AccountAbstractionProvider extends baseProvider.BaseProvider {
|
|
@@ -26,6 +27,9 @@ class AccountAbstractionProvider extends baseProvider.BaseProvider {
|
|
|
26
27
|
_defineProperty(this, "_publicClient", void 0);
|
|
27
28
|
_defineProperty(this, "_bundlerClient", void 0);
|
|
28
29
|
_defineProperty(this, "_paymasterClient", void 0);
|
|
30
|
+
this.update({
|
|
31
|
+
chainId: config.chain.chainId
|
|
32
|
+
});
|
|
29
33
|
}
|
|
30
34
|
get smartAccount() {
|
|
31
35
|
return this._smartAccount;
|
|
@@ -51,37 +55,40 @@ class AccountAbstractionProvider extends baseProvider.BaseProvider {
|
|
|
51
55
|
}
|
|
52
56
|
async setupProvider(eoaProvider) {
|
|
53
57
|
var _this$config$bundlerC;
|
|
58
|
+
const {
|
|
59
|
+
currentChain
|
|
60
|
+
} = this;
|
|
54
61
|
const {
|
|
55
62
|
chainNamespace
|
|
56
|
-
} =
|
|
63
|
+
} = currentChain;
|
|
57
64
|
if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw index.WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
|
|
58
65
|
const chain = viem.defineChain({
|
|
59
|
-
id: Number.parseInt(
|
|
66
|
+
id: Number.parseInt(currentChain.chainId, 16),
|
|
60
67
|
// id in number form
|
|
61
|
-
name:
|
|
68
|
+
name: currentChain.displayName,
|
|
62
69
|
rpcUrls: {
|
|
63
70
|
default: {
|
|
64
|
-
http: [
|
|
65
|
-
webSocket: [
|
|
71
|
+
http: [currentChain.rpcTarget],
|
|
72
|
+
webSocket: [currentChain.wsTarget]
|
|
66
73
|
}
|
|
67
74
|
},
|
|
68
|
-
blockExplorers:
|
|
75
|
+
blockExplorers: currentChain.blockExplorerUrl ? {
|
|
69
76
|
default: {
|
|
70
77
|
name: "explorer",
|
|
71
78
|
// TODO: correct name if chain config has it
|
|
72
|
-
url:
|
|
79
|
+
url: currentChain.blockExplorerUrl
|
|
73
80
|
}
|
|
74
81
|
} : undefined,
|
|
75
82
|
nativeCurrency: {
|
|
76
|
-
name:
|
|
77
|
-
symbol:
|
|
78
|
-
decimals:
|
|
83
|
+
name: currentChain.tickerName,
|
|
84
|
+
symbol: currentChain.ticker,
|
|
85
|
+
decimals: currentChain.decimals || 18
|
|
79
86
|
}
|
|
80
87
|
});
|
|
81
88
|
// setup public client for viem smart account
|
|
82
89
|
this._publicClient = viem.createPublicClient({
|
|
83
90
|
chain,
|
|
84
|
-
transport: viem.http(
|
|
91
|
+
transport: viem.http(currentChain.rpcTarget)
|
|
85
92
|
});
|
|
86
93
|
this._smartAccount = await this.config.smartAccountInit.getSmartAccount({
|
|
87
94
|
owner: eoaProvider,
|
|
@@ -119,8 +126,12 @@ class AccountAbstractionProvider extends baseProvider.BaseProvider {
|
|
|
119
126
|
engine.push(eoaMiddleware);
|
|
120
127
|
const provider = auth.providerFromEngine(engine);
|
|
121
128
|
this.updateProviderEngineProxy(provider);
|
|
122
|
-
eoaProvider.once("chainChanged",
|
|
129
|
+
eoaProvider.once("chainChanged", chainId => {
|
|
130
|
+
this.update({
|
|
131
|
+
chainId
|
|
132
|
+
});
|
|
123
133
|
this.setupChainSwitchMiddleware();
|
|
134
|
+
this.emit("chainChanged", chainId);
|
|
124
135
|
});
|
|
125
136
|
}
|
|
126
137
|
async updateAccount(_params) {
|
|
@@ -133,32 +144,89 @@ class AccountAbstractionProvider extends baseProvider.BaseProvider {
|
|
|
133
144
|
throw auth.providerErrors.unsupportedMethod("lookupNetwork. Please call it on eoaProvider");
|
|
134
145
|
}
|
|
135
146
|
async setupChainSwitchMiddleware() {
|
|
136
|
-
const chainConfig = await this.state.eoaProvider.request({
|
|
137
|
-
method: "eth_provider_config"
|
|
138
|
-
});
|
|
139
|
-
this.update({
|
|
140
|
-
chainId: chainConfig.chainId
|
|
141
|
-
});
|
|
142
|
-
this.configure({
|
|
143
|
-
chainConfig: _objectSpread(_objectSpread({}, chainConfig), {}, {
|
|
144
|
-
chainNamespace: IChainInterface.CHAIN_NAMESPACES.EIP155,
|
|
145
|
-
chainId: chainConfig.chainId,
|
|
146
|
-
rpcTarget: chainConfig.rpcTarget
|
|
147
|
-
})
|
|
148
|
-
});
|
|
149
147
|
return this.setupProvider(this.state.eoaProvider);
|
|
150
148
|
}
|
|
151
149
|
}
|
|
152
150
|
_AccountAbstractionProvider = AccountAbstractionProvider;
|
|
153
151
|
_defineProperty(AccountAbstractionProvider, "getProviderInstance", async params => {
|
|
154
|
-
const
|
|
152
|
+
const providerInstance = new _AccountAbstractionProvider({
|
|
155
153
|
config: params
|
|
156
154
|
});
|
|
157
|
-
await
|
|
158
|
-
|
|
155
|
+
await providerInstance.setupProvider(params.eoaProvider);
|
|
156
|
+
providerInstance.update({
|
|
159
157
|
eoaProvider: params.eoaProvider
|
|
160
158
|
});
|
|
161
|
-
return
|
|
159
|
+
return providerInstance;
|
|
162
160
|
});
|
|
161
|
+
const accountAbstractionProvider = async ({
|
|
162
|
+
accountAbstractionConfig,
|
|
163
|
+
chain,
|
|
164
|
+
chains,
|
|
165
|
+
provider
|
|
166
|
+
}) => {
|
|
167
|
+
let smartAccountInit;
|
|
168
|
+
const {
|
|
169
|
+
smartAccountType,
|
|
170
|
+
smartAccountConfig,
|
|
171
|
+
bundlerConfig,
|
|
172
|
+
paymasterConfig
|
|
173
|
+
} = accountAbstractionConfig;
|
|
174
|
+
switch (smartAccountType) {
|
|
175
|
+
case ethereumControllers.SMART_ACCOUNT.BICONOMY:
|
|
176
|
+
{
|
|
177
|
+
const {
|
|
178
|
+
BiconomySmartAccount
|
|
179
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
180
|
+
smartAccountInit = new BiconomySmartAccount(smartAccountConfig);
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
case ethereumControllers.SMART_ACCOUNT.KERNEL:
|
|
184
|
+
{
|
|
185
|
+
const {
|
|
186
|
+
KernelSmartAccount
|
|
187
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
188
|
+
smartAccountInit = new KernelSmartAccount(smartAccountConfig);
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
case ethereumControllers.SMART_ACCOUNT.NEXUS:
|
|
192
|
+
{
|
|
193
|
+
const {
|
|
194
|
+
NexusSmartAccount
|
|
195
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
196
|
+
smartAccountInit = new NexusSmartAccount(smartAccountConfig);
|
|
197
|
+
break;
|
|
198
|
+
}
|
|
199
|
+
case ethereumControllers.SMART_ACCOUNT.SAFE:
|
|
200
|
+
{
|
|
201
|
+
const {
|
|
202
|
+
SafeSmartAccount
|
|
203
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
204
|
+
smartAccountInit = new SafeSmartAccount(smartAccountConfig);
|
|
205
|
+
break;
|
|
206
|
+
}
|
|
207
|
+
case ethereumControllers.SMART_ACCOUNT.TRUST:
|
|
208
|
+
{
|
|
209
|
+
const {
|
|
210
|
+
TrustSmartAccount
|
|
211
|
+
} = await import('@toruslabs/ethereum-controllers');
|
|
212
|
+
smartAccountInit = new TrustSmartAccount(smartAccountConfig);
|
|
213
|
+
break;
|
|
214
|
+
}
|
|
215
|
+
default:
|
|
216
|
+
throw new Error("Smart account type not supported");
|
|
217
|
+
}
|
|
218
|
+
return AccountAbstractionProvider.getProviderInstance({
|
|
219
|
+
eoaProvider: provider,
|
|
220
|
+
smartAccountInit,
|
|
221
|
+
chain,
|
|
222
|
+
chains,
|
|
223
|
+
bundlerConfig,
|
|
224
|
+
paymasterConfig
|
|
225
|
+
});
|
|
226
|
+
};
|
|
163
227
|
|
|
164
|
-
exports
|
|
228
|
+
Object.defineProperty(exports, "SMART_ACCOUNT", {
|
|
229
|
+
enumerable: true,
|
|
230
|
+
get: function () { return ethereumControllers.SMART_ACCOUNT; }
|
|
231
|
+
});
|
|
232
|
+
exports.accountAbstractionProvider = accountAbstractionProvider;
|