@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
|
@@ -2,10 +2,10 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import { providerErrors, getED25519Key, JRPCEngine, providerFromEngine, rpcErrors } from '@web3auth/auth';
|
|
3
3
|
import { CHAIN_NAMESPACES } from '../../../../base/chain/IChainInterface.js';
|
|
4
4
|
import { WalletInitializationError } from '../../../../base/errors/index.js';
|
|
5
|
+
import { BaseProvider } from '../../../base-provider/baseProvider.js';
|
|
5
6
|
import { createSolanaJsonRpcClient } from '../../rpc/JrpcClient.js';
|
|
6
7
|
import { createSolanaMiddleware, createSolanaChainSwitchMiddleware, createSolanaAccountMiddleware } from '../../rpc/solanaRpcMiddlewares.js';
|
|
7
8
|
import { getProviderHandlers } from './solanaPrivateKeyUtils.js';
|
|
8
|
-
import { BaseProvider } from '../../../base-provider/baseProvider.js';
|
|
9
9
|
|
|
10
10
|
var _SolanaPrivateKeyProvider;
|
|
11
11
|
class SolanaPrivateKeyProvider extends BaseProvider {
|
|
@@ -24,7 +24,7 @@ class SolanaPrivateKeyProvider extends BaseProvider {
|
|
|
24
24
|
message: "Private key is not found in state, plz pass it in constructor state param",
|
|
25
25
|
code: 4902
|
|
26
26
|
});
|
|
27
|
-
await this.setupProvider(this.state.privateKey);
|
|
27
|
+
await this.setupProvider(this.state.privateKey, this.chainId);
|
|
28
28
|
return this._providerEngineProxy.request({
|
|
29
29
|
method: "eth_accounts"
|
|
30
30
|
});
|
|
@@ -32,10 +32,11 @@ class SolanaPrivateKeyProvider extends BaseProvider {
|
|
|
32
32
|
getEd25519Key(privateKey) {
|
|
33
33
|
return getED25519Key(privateKey).sk.toString("hex").padStart(128, "0");
|
|
34
34
|
}
|
|
35
|
-
async setupProvider(privKey) {
|
|
35
|
+
async setupProvider(privKey, chainId) {
|
|
36
|
+
const chain = this.getChain(chainId);
|
|
36
37
|
const {
|
|
37
38
|
chainNamespace
|
|
38
|
-
} =
|
|
39
|
+
} = chain;
|
|
39
40
|
if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
|
|
40
41
|
const providerHandlers = await getProviderHandlers({
|
|
41
42
|
privKey,
|
|
@@ -46,14 +47,21 @@ class SolanaPrivateKeyProvider extends BaseProvider {
|
|
|
46
47
|
const engine = new JRPCEngine();
|
|
47
48
|
const {
|
|
48
49
|
networkMiddleware
|
|
49
|
-
} = createSolanaJsonRpcClient(
|
|
50
|
+
} = createSolanaJsonRpcClient(chain);
|
|
50
51
|
engine.push(this.getChainSwitchMiddleware());
|
|
51
52
|
engine.push(this.getAccountMiddleware());
|
|
52
53
|
engine.push(solanaMiddleware);
|
|
53
54
|
engine.push(networkMiddleware);
|
|
54
55
|
const provider = providerFromEngine(engine);
|
|
55
56
|
this.updateProviderEngineProxy(provider);
|
|
56
|
-
await this.lookupNetwork();
|
|
57
|
+
await this.lookupNetwork(chainId);
|
|
58
|
+
this.emit("chainChanged", chainId);
|
|
59
|
+
this.emit("connect", {
|
|
60
|
+
chainId
|
|
61
|
+
});
|
|
62
|
+
this.update({
|
|
63
|
+
chainId
|
|
64
|
+
});
|
|
57
65
|
}
|
|
58
66
|
async updateAccount(params) {
|
|
59
67
|
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
@@ -64,7 +72,7 @@ class SolanaPrivateKeyProvider extends BaseProvider {
|
|
|
64
72
|
method: "solanaPrivateKey"
|
|
65
73
|
});
|
|
66
74
|
if (existingKey !== params.privateKey) {
|
|
67
|
-
await this.setupProvider(params.privateKey);
|
|
75
|
+
await this.setupProvider(params.privateKey, this.chainId);
|
|
68
76
|
const accounts = await this._providerEngineProxy.request({
|
|
69
77
|
method: "requestAccounts"
|
|
70
78
|
});
|
|
@@ -76,19 +84,17 @@ class SolanaPrivateKeyProvider extends BaseProvider {
|
|
|
76
84
|
message: "Provider is not initialized",
|
|
77
85
|
code: 4902
|
|
78
86
|
});
|
|
79
|
-
const
|
|
87
|
+
const newChainId = params.chainId;
|
|
88
|
+
if (this.chainId === newChainId) return;
|
|
80
89
|
this.update({
|
|
81
90
|
chainId: "loading"
|
|
82
91
|
});
|
|
83
|
-
this.configure({
|
|
84
|
-
chainConfig
|
|
85
|
-
});
|
|
86
92
|
const privKey = await this._providerEngineProxy.request({
|
|
87
93
|
method: "solanaPrivateKey"
|
|
88
94
|
});
|
|
89
|
-
await this.setupProvider(privKey);
|
|
95
|
+
await this.setupProvider(privKey, newChainId);
|
|
90
96
|
}
|
|
91
|
-
async lookupNetwork() {
|
|
97
|
+
async lookupNetwork(chainId) {
|
|
92
98
|
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
93
99
|
message: "Provider is not initialized",
|
|
94
100
|
code: 4902
|
|
@@ -97,48 +103,11 @@ class SolanaPrivateKeyProvider extends BaseProvider {
|
|
|
97
103
|
method: "getHealth",
|
|
98
104
|
params: []
|
|
99
105
|
});
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
} = this.config;
|
|
103
|
-
if (health !== "ok") throw WalletInitializationError.rpcConnectionError(`Failed to lookup network for following rpc target: ${chainConfig.rpcTarget}`);
|
|
104
|
-
this.update({
|
|
105
|
-
chainId: chainConfig.chainId
|
|
106
|
-
});
|
|
107
|
-
if (this.state.chainId !== chainConfig.chainId) {
|
|
108
|
-
this.emit("chainChanged", this.state.chainId);
|
|
109
|
-
this.emit("connect", {
|
|
110
|
-
chainId: this.state.chainId
|
|
111
|
-
});
|
|
112
|
-
}
|
|
113
|
-
return this.state.chainId;
|
|
106
|
+
const chain = this.getChain(chainId);
|
|
107
|
+
if (health !== "ok") throw WalletInitializationError.rpcConnectionError(`Failed to lookup network for following rpc target: ${chain.rpcTarget}`);
|
|
114
108
|
}
|
|
115
109
|
getChainSwitchMiddleware() {
|
|
116
110
|
const chainSwitchHandlers = {
|
|
117
|
-
addNewChainConfig: async req => {
|
|
118
|
-
if (!req.params) throw rpcErrors.invalidParams("Missing request params");
|
|
119
|
-
const {
|
|
120
|
-
chainId,
|
|
121
|
-
chainName,
|
|
122
|
-
rpcUrls,
|
|
123
|
-
blockExplorerUrls,
|
|
124
|
-
nativeCurrency,
|
|
125
|
-
iconUrls
|
|
126
|
-
} = req.params;
|
|
127
|
-
if (!chainId) throw rpcErrors.invalidParams("Missing chainId in chainParams");
|
|
128
|
-
if (!rpcUrls || rpcUrls.length === 0) throw rpcErrors.invalidParams("Missing rpcUrls in chainParams");
|
|
129
|
-
if (!nativeCurrency) throw rpcErrors.invalidParams("Missing nativeCurrency in chainParams");
|
|
130
|
-
this.addChain({
|
|
131
|
-
chainNamespace: CHAIN_NAMESPACES.SOLANA,
|
|
132
|
-
chainId,
|
|
133
|
-
ticker: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.symbol) || "SOL",
|
|
134
|
-
tickerName: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.name) || "Solana",
|
|
135
|
-
displayName: chainName,
|
|
136
|
-
rpcTarget: rpcUrls[0],
|
|
137
|
-
blockExplorerUrl: (blockExplorerUrls === null || blockExplorerUrls === void 0 ? void 0 : blockExplorerUrls[0]) || "",
|
|
138
|
-
decimals: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.decimals) || 9,
|
|
139
|
-
logo: (iconUrls === null || iconUrls === void 0 ? void 0 : iconUrls[0]) || "https://images.toruswallet.io/sol.svg"
|
|
140
|
-
});
|
|
141
|
-
},
|
|
142
111
|
switchSolanaChain: async req => {
|
|
143
112
|
if (!req.params) throw rpcErrors.invalidParams("Missing request params");
|
|
144
113
|
if (!req.params.chainId) throw rpcErrors.invalidParams("Missing chainId");
|
|
@@ -168,10 +137,11 @@ _SolanaPrivateKeyProvider = SolanaPrivateKeyProvider;
|
|
|
168
137
|
_defineProperty(SolanaPrivateKeyProvider, "getProviderInstance", async params => {
|
|
169
138
|
const providerFactory = new _SolanaPrivateKeyProvider({
|
|
170
139
|
config: {
|
|
171
|
-
|
|
140
|
+
chain: params.chain,
|
|
141
|
+
chains: params.chains
|
|
172
142
|
}
|
|
173
143
|
});
|
|
174
|
-
await providerFactory.setupProvider(params.privKey);
|
|
144
|
+
await providerFactory.setupProvider(params.privKey, params.chain.chainId);
|
|
175
145
|
return providerFactory;
|
|
176
146
|
});
|
|
177
147
|
|
package/dist/lib.esm/providers/solana-provider/providers/privateKeyProvider/solanaPrivateKeyUtils.js
CHANGED
|
@@ -35,21 +35,18 @@ async function getProviderHandlers({
|
|
|
35
35
|
if (!((_req$params = req.params) !== null && _req$params !== void 0 && _req$params.message)) {
|
|
36
36
|
throw rpcErrors.invalidParams("message");
|
|
37
37
|
}
|
|
38
|
-
const
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
transaction.partialSign(keyPair);
|
|
43
|
-
}
|
|
44
|
-
return transaction;
|
|
38
|
+
const serializedTransaction = req.params.message;
|
|
39
|
+
const transaction = VersionedTransaction.deserialize(Buffer.from(serializedTransaction, "base64"));
|
|
40
|
+
transaction.sign([keyPair]);
|
|
41
|
+
return bs58.encode(transaction.signatures[0]);
|
|
45
42
|
},
|
|
46
43
|
signMessage: async req => {
|
|
47
44
|
var _req$params2;
|
|
48
|
-
if (!((_req$params2 = req.params) !== null && _req$params2 !== void 0 && _req$params2.
|
|
49
|
-
throw rpcErrors.invalidParams("
|
|
45
|
+
if (!((_req$params2 = req.params) !== null && _req$params2 !== void 0 && _req$params2.data)) {
|
|
46
|
+
throw rpcErrors.invalidParams("data");
|
|
50
47
|
}
|
|
51
|
-
const signedMsg = sign.detached(req.params.
|
|
52
|
-
return signedMsg;
|
|
48
|
+
const signedMsg = sign.detached(Buffer.from(req.params.data, "utf-8"), keyPair.secretKey);
|
|
49
|
+
return bs58.encode(signedMsg);
|
|
53
50
|
},
|
|
54
51
|
signAndSendTransaction: async req => {
|
|
55
52
|
var _req$params3;
|
|
@@ -61,12 +58,9 @@ async function getProviderHandlers({
|
|
|
61
58
|
message: "Provider is not initialized",
|
|
62
59
|
code: 4902
|
|
63
60
|
});
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
} else {
|
|
68
|
-
transaction.partialSign(keyPair);
|
|
69
|
-
}
|
|
61
|
+
const serializedTransaction = req.params.message;
|
|
62
|
+
const transaction = VersionedTransaction.deserialize(Buffer.from(serializedTransaction, "base64"));
|
|
63
|
+
transaction.sign([keyPair]);
|
|
70
64
|
const sig = await _providerEngineProxy.request({
|
|
71
65
|
method: "sendTransaction",
|
|
72
66
|
params: [Buffer.from(transaction.serialize()).toString("base64"), {
|
|
@@ -74,9 +68,7 @@ async function getProviderHandlers({
|
|
|
74
68
|
preflightCommitment: "confirmed"
|
|
75
69
|
}]
|
|
76
70
|
});
|
|
77
|
-
return
|
|
78
|
-
signature: sig
|
|
79
|
-
};
|
|
71
|
+
return sig;
|
|
80
72
|
},
|
|
81
73
|
signAllTransactions: async req => {
|
|
82
74
|
var _req$params4, _req$params5, _req$params6;
|
|
@@ -84,15 +76,14 @@ async function getProviderHandlers({
|
|
|
84
76
|
throw rpcErrors.invalidParams("message");
|
|
85
77
|
}
|
|
86
78
|
const txns = (_req$params6 = req.params) === null || _req$params6 === void 0 ? void 0 : _req$params6.message;
|
|
79
|
+
const res = [];
|
|
87
80
|
for (const tx of txns || []) {
|
|
88
|
-
const
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
transaction.partialSign(keyPair);
|
|
93
|
-
}
|
|
81
|
+
const serializedTransaction = tx;
|
|
82
|
+
const transaction = VersionedTransaction.deserialize(Buffer.from(serializedTransaction, "base64"));
|
|
83
|
+
transaction.sign([keyPair]);
|
|
84
|
+
res.push(Buffer.from(transaction.serialize()).toString("base64"));
|
|
94
85
|
}
|
|
95
|
-
return
|
|
86
|
+
return res;
|
|
96
87
|
}
|
|
97
88
|
};
|
|
98
89
|
return providerHandlers;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { createAsyncMiddleware, mergeMiddleware } from '@web3auth/auth';
|
|
2
|
+
import { SOLANA_METHOD_TYPES } from '@web3auth/ws-embed';
|
|
2
3
|
|
|
3
4
|
function createGetAccountsMiddleware({
|
|
4
5
|
getAccounts
|
|
@@ -7,7 +8,7 @@ function createGetAccountsMiddleware({
|
|
|
7
8
|
const {
|
|
8
9
|
method
|
|
9
10
|
} = request;
|
|
10
|
-
if (method !==
|
|
11
|
+
if (method !== SOLANA_METHOD_TYPES.GET_ACCOUNTS) return next();
|
|
11
12
|
if (!getAccounts) throw new Error("WalletMiddleware - opts.getAccounts not provided");
|
|
12
13
|
// This calls from the prefs controller
|
|
13
14
|
const accounts = await getAccounts(request);
|
|
@@ -36,7 +37,7 @@ function createRequestAccountsMiddleware({
|
|
|
36
37
|
const {
|
|
37
38
|
method
|
|
38
39
|
} = request;
|
|
39
|
-
if (method !==
|
|
40
|
+
if (method !== SOLANA_METHOD_TYPES.SOLANA_REQUEST_ACCOUNTS) return next();
|
|
40
41
|
if (!requestAccounts) throw new Error("WalletMiddleware - opts.requestAccounts not provided");
|
|
41
42
|
// This calls the UI login function
|
|
42
43
|
const accounts = await requestAccounts(request);
|
|
@@ -72,13 +73,12 @@ function createSolanaMiddleware(providerHandlers) {
|
|
|
72
73
|
requestAccounts
|
|
73
74
|
}), createGetAccountsMiddleware({
|
|
74
75
|
getAccounts
|
|
75
|
-
}), createGenericJRPCMiddleware(
|
|
76
|
+
}), createGenericJRPCMiddleware(SOLANA_METHOD_TYPES.SIGN_TRANSACTION, signTransaction), createGenericJRPCMiddleware(SOLANA_METHOD_TYPES.SEND_TRANSACTION, signAndSendTransaction), createGenericJRPCMiddleware(SOLANA_METHOD_TYPES.SIGN_ALL_TRANSACTIONS, signAllTransactions), createGenericJRPCMiddleware(SOLANA_METHOD_TYPES.SIGN_MESSAGE, signMessage), createGenericJRPCMiddleware("solanaPrivateKey", getPrivateKey), createGenericJRPCMiddleware("private_key", getPrivateKey), createGenericJRPCMiddleware("public_key", getPublicKey), createGenericJRPCMiddleware("solanaPublicKey", getPublicKey), createGenericJRPCMiddleware("solanaSecretKey", getSecretKey)]);
|
|
76
77
|
}
|
|
77
78
|
function createSolanaChainSwitchMiddleware({
|
|
78
|
-
addNewChainConfig,
|
|
79
79
|
switchSolanaChain
|
|
80
80
|
}) {
|
|
81
|
-
return mergeMiddleware([createGenericJRPCMiddleware("
|
|
81
|
+
return mergeMiddleware([createGenericJRPCMiddleware("switchSolanaChain", switchSolanaChain)]);
|
|
82
82
|
}
|
|
83
83
|
function createSolanaAccountMiddleware({
|
|
84
84
|
updatePrivatekey
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import { VersionedTransaction } from '@solana/web3.js';
|
|
3
|
+
import { SOLANA_METHOD_TYPES } from '@web3auth/ws-embed';
|
|
2
4
|
|
|
3
5
|
class SolanaWallet {
|
|
4
6
|
constructor(provider) {
|
|
@@ -7,46 +9,62 @@ class SolanaWallet {
|
|
|
7
9
|
}
|
|
8
10
|
async requestAccounts() {
|
|
9
11
|
const accounts = await this.provider.request({
|
|
10
|
-
method:
|
|
12
|
+
method: SOLANA_METHOD_TYPES.SOLANA_REQUEST_ACCOUNTS
|
|
11
13
|
});
|
|
12
14
|
return accounts;
|
|
13
15
|
}
|
|
14
16
|
async signAndSendTransaction(transaction) {
|
|
15
|
-
const {
|
|
16
|
-
|
|
17
|
-
} = await this.provider.request({
|
|
18
|
-
method: "signAndSendTransaction",
|
|
17
|
+
const signature = await this.provider.request({
|
|
18
|
+
method: SOLANA_METHOD_TYPES.SEND_TRANSACTION,
|
|
19
19
|
params: {
|
|
20
|
-
message: transaction
|
|
20
|
+
message: this.serializeTransaction(transaction)
|
|
21
21
|
}
|
|
22
22
|
});
|
|
23
|
-
return
|
|
24
|
-
signature
|
|
25
|
-
};
|
|
23
|
+
return signature;
|
|
26
24
|
}
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Signs a transaction and returns the signature
|
|
28
|
+
* @param transaction - The transaction to sign
|
|
29
|
+
* @returns The signature of the transaction encoded in base58
|
|
30
|
+
*/
|
|
27
31
|
async signTransaction(transaction) {
|
|
28
|
-
const
|
|
29
|
-
method:
|
|
32
|
+
const signature = await this.provider.request({
|
|
33
|
+
method: SOLANA_METHOD_TYPES.SIGN_TRANSACTION,
|
|
30
34
|
params: {
|
|
31
|
-
message: transaction
|
|
35
|
+
message: this.serializeTransaction(transaction)
|
|
32
36
|
}
|
|
33
37
|
});
|
|
34
|
-
return
|
|
38
|
+
return signature;
|
|
35
39
|
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Signs multiple transactions and returns the serialized transactions
|
|
43
|
+
* @param transactions - The transactions to sign
|
|
44
|
+
* @returns The serialized transactions encoded in base64
|
|
45
|
+
*/
|
|
36
46
|
async signAllTransactions(transactions) {
|
|
47
|
+
const serializedTransactions = transactions.map(tx => this.serializeTransaction(tx));
|
|
37
48
|
const signedTransactions = await this.provider.request({
|
|
38
|
-
method:
|
|
49
|
+
method: SOLANA_METHOD_TYPES.SIGN_ALL_TRANSACTIONS,
|
|
39
50
|
params: {
|
|
40
|
-
message:
|
|
51
|
+
message: serializedTransactions
|
|
41
52
|
}
|
|
42
53
|
});
|
|
43
54
|
return signedTransactions;
|
|
44
55
|
}
|
|
45
|
-
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Signs a message and returns the signature
|
|
59
|
+
* @param message - The message to sign
|
|
60
|
+
* @returns The signature of the message encoded in base58
|
|
61
|
+
*/
|
|
62
|
+
async signMessage(message, pubKey) {
|
|
46
63
|
const response = await this.provider.request({
|
|
47
|
-
method:
|
|
64
|
+
method: SOLANA_METHOD_TYPES.SIGN_MESSAGE,
|
|
48
65
|
params: {
|
|
49
|
-
|
|
66
|
+
data: message,
|
|
67
|
+
from: pubKey
|
|
50
68
|
}
|
|
51
69
|
});
|
|
52
70
|
return response;
|
|
@@ -55,6 +73,14 @@ class SolanaWallet {
|
|
|
55
73
|
const result = await this.provider.request(args);
|
|
56
74
|
return result;
|
|
57
75
|
}
|
|
76
|
+
serializeTransaction(transaction) {
|
|
77
|
+
if (transaction instanceof VersionedTransaction) {
|
|
78
|
+
return Buffer.from(transaction.serialize()).toString("base64");
|
|
79
|
+
}
|
|
80
|
+
return Buffer.from(transaction.serialize({
|
|
81
|
+
requireAllSignatures: false
|
|
82
|
+
})).toString("base64");
|
|
83
|
+
}
|
|
58
84
|
}
|
|
59
85
|
|
|
60
86
|
export { SolanaWallet };
|
package/dist/lib.esm/providers/xrpl-provider/providers/privateKeyProviders/xrplPrivateKeyProvider.js
CHANGED
|
@@ -2,10 +2,10 @@ import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
|
2
2
|
import { providerErrors, JRPCEngine, providerFromEngine, rpcErrors } from '@web3auth/auth';
|
|
3
3
|
import { CHAIN_NAMESPACES } from '../../../../base/chain/IChainInterface.js';
|
|
4
4
|
import { WalletInitializationError } from '../../../../base/errors/index.js';
|
|
5
|
+
import { BaseProvider } from '../../../base-provider/baseProvider.js';
|
|
5
6
|
import { createXrplJsonRpcClient } from '../../rpc/JrpcClient.js';
|
|
6
7
|
import { RPC_METHODS, createXRPLMiddleware, creatXrplChainSwitchMiddleware } from '../../rpc/xrplRpcMiddlewares.js';
|
|
7
8
|
import { getProviderHandlers } from './xrplWalletUtils.js';
|
|
8
|
-
import { BaseProvider } from '../../../base-provider/baseProvider.js';
|
|
9
9
|
|
|
10
10
|
var _XrplPrivateKeyProvider;
|
|
11
11
|
class XrplPrivateKeyProvider extends BaseProvider {
|
|
@@ -24,114 +24,78 @@ class XrplPrivateKeyProvider extends BaseProvider {
|
|
|
24
24
|
message: "Private key is not found in state, plz pass it in constructor state param",
|
|
25
25
|
code: 4902
|
|
26
26
|
});
|
|
27
|
-
await this.setupProvider(this.state.privateKey);
|
|
27
|
+
await this.setupProvider(this.state.privateKey, this.chainId);
|
|
28
28
|
return this._providerEngineProxy.request({
|
|
29
29
|
method: RPC_METHODS.GET_ACCOUNTS
|
|
30
30
|
});
|
|
31
31
|
}
|
|
32
|
-
async setupProvider(privKey) {
|
|
32
|
+
async setupProvider(privKey, chainId) {
|
|
33
|
+
const chain = this.getChain(chainId);
|
|
33
34
|
const {
|
|
34
35
|
wsTarget,
|
|
35
36
|
chainNamespace
|
|
36
|
-
} =
|
|
37
|
+
} = chain;
|
|
37
38
|
if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
|
|
38
39
|
if (!wsTarget) {
|
|
39
40
|
throw WalletInitializationError.invalidParams(`wsTarget is required in chainConfig for xrplProvider`);
|
|
40
41
|
}
|
|
41
42
|
const providerHandlers = await getProviderHandlers({
|
|
42
43
|
privKey,
|
|
43
|
-
chainConfig:
|
|
44
|
+
chainConfig: chain,
|
|
44
45
|
keyExportEnabled: this.config.keyExportEnabled
|
|
45
46
|
});
|
|
46
47
|
const xrplWalletMiddleware = createXRPLMiddleware(providerHandlers);
|
|
47
48
|
const engine = new JRPCEngine();
|
|
48
49
|
const {
|
|
49
50
|
networkMiddleware
|
|
50
|
-
} = createXrplJsonRpcClient(
|
|
51
|
+
} = createXrplJsonRpcClient(chain);
|
|
51
52
|
engine.push(this.getChainSwitchMiddleware());
|
|
52
53
|
engine.push(xrplWalletMiddleware);
|
|
53
54
|
engine.push(networkMiddleware);
|
|
54
55
|
const provider = providerFromEngine(engine);
|
|
55
56
|
this.updateProviderEngineProxy(provider);
|
|
56
|
-
await this.lookupNetwork();
|
|
57
|
+
await this.lookupNetwork(privKey, chainId);
|
|
58
|
+
this.emit("chainChanged", chainId);
|
|
59
|
+
this.emit("connect", {
|
|
60
|
+
chainId
|
|
61
|
+
});
|
|
62
|
+
this.update({
|
|
63
|
+
chainId
|
|
64
|
+
});
|
|
57
65
|
}
|
|
58
66
|
async switchChain(params) {
|
|
59
67
|
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
60
68
|
message: "Provider is not initialized",
|
|
61
69
|
code: 4902
|
|
62
70
|
});
|
|
63
|
-
|
|
71
|
+
if (this.chainId === params.chainId) return;
|
|
64
72
|
this.update({
|
|
65
73
|
chainId: "loading"
|
|
66
74
|
});
|
|
67
|
-
this.configure({
|
|
68
|
-
chainConfig
|
|
69
|
-
});
|
|
70
75
|
const {
|
|
71
76
|
privateKey
|
|
72
77
|
} = await this._providerEngineProxy.request({
|
|
73
78
|
method: RPC_METHODS.GET_KEY_PAIR
|
|
74
79
|
});
|
|
75
|
-
await this.setupProvider(privateKey);
|
|
80
|
+
await this.setupProvider(privateKey, params.chainId);
|
|
76
81
|
}
|
|
77
|
-
async lookupNetwork() {
|
|
82
|
+
async lookupNetwork(_privKey, chainId) {
|
|
78
83
|
if (!this._providerEngineProxy) throw providerErrors.custom({
|
|
79
84
|
message: "Provider is not initialized",
|
|
80
85
|
code: 4902
|
|
81
86
|
});
|
|
82
|
-
const {
|
|
83
|
-
chainId
|
|
84
|
-
} = this.config.chainConfig;
|
|
85
87
|
if (!chainId) throw rpcErrors.invalidParams("chainId is required while lookupNetwork");
|
|
86
88
|
const pingResponse = await this._providerEngineProxy.request({
|
|
87
89
|
method: "ping",
|
|
88
90
|
params: []
|
|
89
91
|
});
|
|
90
92
|
if ((pingResponse === null || pingResponse === void 0 ? void 0 : pingResponse.status) !== "success") {
|
|
91
|
-
const
|
|
92
|
-
|
|
93
|
-
} = this.config;
|
|
94
|
-
throw WalletInitializationError.rpcConnectionError(`Failed to ping network for following rpc target: ${chainConfig.rpcTarget}`);
|
|
93
|
+
const chain = this.getChain(chainId);
|
|
94
|
+
throw WalletInitializationError.rpcConnectionError(`Failed to ping network for following rpc target: ${chain.rpcTarget}`);
|
|
95
95
|
}
|
|
96
|
-
if (this.state.chainId !== chainId) {
|
|
97
|
-
this.emit("chainChanged", chainId);
|
|
98
|
-
this.emit("connect", {
|
|
99
|
-
chainId
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
this.update({
|
|
103
|
-
chainId
|
|
104
|
-
});
|
|
105
96
|
}
|
|
106
97
|
getChainSwitchMiddleware() {
|
|
107
98
|
const chainSwitchHandlers = {
|
|
108
|
-
addChainConfig: async req => {
|
|
109
|
-
if (!req.params) throw rpcErrors.invalidParams("Missing request params");
|
|
110
|
-
const {
|
|
111
|
-
chainId,
|
|
112
|
-
ticker,
|
|
113
|
-
tickerName,
|
|
114
|
-
displayName,
|
|
115
|
-
rpcTarget,
|
|
116
|
-
wsTarget,
|
|
117
|
-
blockExplorerUrl,
|
|
118
|
-
logo
|
|
119
|
-
} = req.params;
|
|
120
|
-
if (!chainId) throw rpcErrors.invalidParams("Missing chainId in chainParams");
|
|
121
|
-
if (!rpcTarget) throw rpcErrors.invalidParams("Missing rpcTarget in chainParams");
|
|
122
|
-
if (!wsTarget) throw rpcErrors.invalidParams("Missing wsTarget in chainParams");
|
|
123
|
-
this.addChain({
|
|
124
|
-
chainNamespace: CHAIN_NAMESPACES.XRPL,
|
|
125
|
-
chainId,
|
|
126
|
-
ticker: ticker || "XRP",
|
|
127
|
-
tickerName: tickerName || "XRPL",
|
|
128
|
-
displayName: displayName || "XRPL",
|
|
129
|
-
rpcTarget,
|
|
130
|
-
wsTarget,
|
|
131
|
-
blockExplorerUrl,
|
|
132
|
-
logo
|
|
133
|
-
});
|
|
134
|
-
},
|
|
135
99
|
switchChain: async req => {
|
|
136
100
|
if (!req.params) throw rpcErrors.invalidParams("Missing request params");
|
|
137
101
|
if (!req.params.chainId) throw rpcErrors.invalidParams("Missing chainId");
|
|
@@ -146,10 +110,11 @@ _XrplPrivateKeyProvider = XrplPrivateKeyProvider;
|
|
|
146
110
|
_defineProperty(XrplPrivateKeyProvider, "getProviderInstance", async params => {
|
|
147
111
|
const providerFactory = new _XrplPrivateKeyProvider({
|
|
148
112
|
config: {
|
|
149
|
-
|
|
113
|
+
chain: params.chain,
|
|
114
|
+
chains: params.chains
|
|
150
115
|
}
|
|
151
116
|
});
|
|
152
|
-
await providerFactory.setupProvider(params.privKey);
|
|
117
|
+
await providerFactory.setupProvider(params.privKey, params.chain.chainId);
|
|
153
118
|
return providerFactory;
|
|
154
119
|
});
|
|
155
120
|
|
|
@@ -8,7 +8,6 @@ const RPC_METHODS = {
|
|
|
8
8
|
SIGN_MESSAGE: "xrpl_signMessage",
|
|
9
9
|
SIGN_TRANSACTION: "xrpl_signTransaction",
|
|
10
10
|
SUBMIT_TRANSACTION: "xrpl_submitTransaction",
|
|
11
|
-
ADD_CHAIN: "xrpl_addChain",
|
|
12
11
|
SWITCH_CHAIN: "xrpl_switchChain",
|
|
13
12
|
CHAIN_ID: "xrpl_chainId",
|
|
14
13
|
PROVIDER_CHAIN_CONFIG: "xrpl_providerChainConfig"
|
|
@@ -58,10 +57,9 @@ function createXRPLMiddleware(providerHandlers) {
|
|
|
58
57
|
}), createGenericJRPCMiddleware(RPC_METHODS.SIGN_TRANSACTION, signTransaction), createGenericJRPCMiddleware(RPC_METHODS.SUBMIT_TRANSACTION, submitTransaction), createGenericJRPCMiddleware(RPC_METHODS.SIGN_MESSAGE, signMessage), createGenericJRPCMiddleware(RPC_METHODS.GET_KEY_PAIR, getKeyPair), createGenericJRPCMiddleware(RPC_METHODS.GET_PUBLIC_KEY, getPublicKey)]);
|
|
59
58
|
}
|
|
60
59
|
function creatXrplChainSwitchMiddleware({
|
|
61
|
-
addChainConfig,
|
|
62
60
|
switchChain
|
|
63
61
|
}) {
|
|
64
|
-
return mergeMiddleware([createGenericJRPCMiddleware(RPC_METHODS.
|
|
62
|
+
return mergeMiddleware([createGenericJRPCMiddleware(RPC_METHODS.SWITCH_CHAIN, switchChain)]);
|
|
65
63
|
}
|
|
66
64
|
|
|
67
65
|
export { RPC_METHODS, creatXrplChainSwitchMiddleware, createGenericJRPCMiddleware, createGetAccountsMiddleware, createXRPLMiddleware };
|