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