@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
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
-
var baseControllers = require('@toruslabs/base-controllers');
|
|
5
4
|
var auth = require('@web3auth/auth');
|
|
6
5
|
var baseProvider = require('./baseProvider.js');
|
|
7
6
|
var jrpcClient = require('./jrpcClient.js');
|
|
@@ -17,23 +16,25 @@ class CommonJRPCProvider extends baseProvider.BaseProvider {
|
|
|
17
16
|
state
|
|
18
17
|
});
|
|
19
18
|
}
|
|
20
|
-
async setupProvider() {
|
|
19
|
+
async setupProvider(chainId) {
|
|
20
|
+
const chain = this.getChain(chainId);
|
|
21
|
+
if (!chain) throw auth.providerErrors.custom({
|
|
22
|
+
message: "Chain not found",
|
|
23
|
+
code: 4902
|
|
24
|
+
});
|
|
21
25
|
const {
|
|
22
26
|
networkMiddleware
|
|
23
|
-
} = jrpcClient.createJsonRpcClient(
|
|
27
|
+
} = jrpcClient.createJsonRpcClient(chain);
|
|
24
28
|
const engine = new auth.JRPCEngine();
|
|
25
29
|
engine.push(networkMiddleware);
|
|
26
30
|
const provider = auth.providerFromEngine(engine);
|
|
27
31
|
this.updateProviderEngineProxy(provider);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
chainId: newChainId
|
|
33
|
-
});
|
|
34
|
-
}
|
|
32
|
+
this.emit("chainChanged", chainId);
|
|
33
|
+
this.emit("connect", {
|
|
34
|
+
chainId
|
|
35
|
+
});
|
|
35
36
|
this.update({
|
|
36
|
-
chainId
|
|
37
|
+
chainId
|
|
37
38
|
});
|
|
38
39
|
}
|
|
39
40
|
async switchChain(params) {
|
|
@@ -41,22 +42,12 @@ class CommonJRPCProvider extends baseProvider.BaseProvider {
|
|
|
41
42
|
message: "Provider is not initialized",
|
|
42
43
|
code: 4902
|
|
43
44
|
});
|
|
44
|
-
const
|
|
45
|
+
const newChainId = params.chainId;
|
|
46
|
+
if (this.chainId === newChainId) return;
|
|
45
47
|
this.update({
|
|
46
48
|
chainId: "loading"
|
|
47
49
|
});
|
|
48
|
-
this.
|
|
49
|
-
chainConfig
|
|
50
|
-
});
|
|
51
|
-
await this.setupProvider();
|
|
52
|
-
}
|
|
53
|
-
updateProviderEngineProxy(provider) {
|
|
54
|
-
if (this._providerEngineProxy) {
|
|
55
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
-
this._providerEngineProxy.setTarget(provider);
|
|
57
|
-
} else {
|
|
58
|
-
this._providerEngineProxy = baseControllers.createEventEmitterProxy(provider);
|
|
59
|
-
}
|
|
50
|
+
await this.setupProvider(newChainId);
|
|
60
51
|
}
|
|
61
52
|
getProviderEngineProxy() {
|
|
62
53
|
return this._providerEngineProxy;
|
|
@@ -69,10 +60,14 @@ _CommonJRPCProvider = CommonJRPCProvider;
|
|
|
69
60
|
_defineProperty(CommonJRPCProvider, "getProviderInstance", async params => {
|
|
70
61
|
const providerFactory = new _CommonJRPCProvider({
|
|
71
62
|
config: {
|
|
72
|
-
|
|
63
|
+
chain: params.chain,
|
|
64
|
+
chains: params.chains
|
|
73
65
|
}
|
|
74
66
|
});
|
|
75
|
-
|
|
67
|
+
const {
|
|
68
|
+
chainId
|
|
69
|
+
} = params.chain;
|
|
70
|
+
await providerFactory.setupProvider(chainId);
|
|
76
71
|
return providerFactory;
|
|
77
72
|
});
|
|
78
73
|
|
|
@@ -20,24 +20,25 @@ class BaseProvider extends baseControllers.BaseController {
|
|
|
20
20
|
// set to true when the keyExportEnabled flag is set by code.
|
|
21
21
|
// This is to prevent the flag from being overridden by the dashboard config.
|
|
22
22
|
_defineProperty(this, "keyExportFlagSetByCode", false);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
const {
|
|
24
|
+
chain
|
|
25
|
+
} = config;
|
|
26
|
+
if (!chain) throw index.WalletInitializationError.invalidProviderConfigError("Please provide chain");
|
|
27
|
+
if (!chain.chainId) throw index.WalletInitializationError.invalidProviderConfigError("Please provide chainId inside chain");
|
|
28
|
+
if (!chain.rpcTarget) throw index.WalletInitializationError.invalidProviderConfigError("Please provide rpcTarget inside chain");
|
|
26
29
|
if (typeof config.keyExportEnabled === "boolean") this.keyExportFlagSetByCode = true;
|
|
27
30
|
this.defaultState = {
|
|
28
31
|
chainId: "loading"
|
|
29
32
|
};
|
|
30
33
|
this.defaultConfig = {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
[config.chainConfig.chainId]: config.chainConfig
|
|
34
|
-
},
|
|
34
|
+
chain: config.chain,
|
|
35
|
+
chains: config.chains,
|
|
35
36
|
keyExportEnabled: typeof config.keyExportEnabled === "boolean" ? config.keyExportEnabled : true
|
|
36
37
|
};
|
|
37
38
|
super.initialize();
|
|
38
39
|
}
|
|
39
|
-
get
|
|
40
|
-
return this.config.
|
|
40
|
+
get currentChain() {
|
|
41
|
+
return this.config.chains.find(chain => chain.chainId === this.state.chainId);
|
|
41
42
|
}
|
|
42
43
|
get provider() {
|
|
43
44
|
return this._providerEngineProxy;
|
|
@@ -89,25 +90,18 @@ class BaseProvider extends baseControllers.BaseController {
|
|
|
89
90
|
result: res
|
|
90
91
|
})).catch(err => callback(err, null));
|
|
91
92
|
}
|
|
92
|
-
addChain(chainConfig) {
|
|
93
|
-
if (!chainConfig.chainId) throw auth.rpcErrors.invalidParams("chainId is required");
|
|
94
|
-
if (!chainConfig.rpcTarget) throw auth.rpcErrors.invalidParams("chainId is required");
|
|
95
|
-
this.configure({
|
|
96
|
-
networks: _objectSpread(_objectSpread({}, this.config.networks), {}, {
|
|
97
|
-
[chainConfig.chainId]: chainConfig
|
|
98
|
-
})
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
getChainConfig(chainId) {
|
|
102
|
-
var _this$config$networks;
|
|
103
|
-
const chainConfig = (_this$config$networks = this.config.networks) === null || _this$config$networks === void 0 ? void 0 : _this$config$networks[chainId];
|
|
104
|
-
if (!chainConfig) throw auth.rpcErrors.invalidRequest(`Chain ${chainId} is not supported, please add chainConfig for it`);
|
|
105
|
-
return chainConfig;
|
|
106
|
-
}
|
|
107
93
|
updateProviderEngineProxy(provider) {
|
|
108
94
|
if (this._providerEngineProxy) {
|
|
109
95
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
110
96
|
this._providerEngineProxy.setTarget(provider);
|
|
97
|
+
// re-emit events from provider
|
|
98
|
+
this._providerEngineProxy.eventNames().forEach(event => {
|
|
99
|
+
provider.on(event, (...args) => {
|
|
100
|
+
// eslint-disable-next-line
|
|
101
|
+
this.emit(event, ...args);
|
|
102
|
+
});
|
|
103
|
+
});
|
|
104
|
+
this.handleChainChangedProvider();
|
|
111
105
|
} else {
|
|
112
106
|
this._providerEngineProxy = baseControllers.createEventEmitterProxy(provider);
|
|
113
107
|
}
|
|
@@ -122,6 +116,17 @@ class BaseProvider extends baseControllers.BaseController {
|
|
|
122
116
|
getProviderEngineProxy() {
|
|
123
117
|
return this._providerEngineProxy;
|
|
124
118
|
}
|
|
119
|
+
getChain(chainId) {
|
|
120
|
+
return this.config.chains.find(chain => chain.chainId === chainId);
|
|
121
|
+
}
|
|
122
|
+
handleChainChangedProvider() {
|
|
123
|
+
// This is only added because we don't have ethereum and solana private key providers anymore
|
|
124
|
+
this.provider.on("chainChanged", chainId => {
|
|
125
|
+
this.update({
|
|
126
|
+
chainId
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
}
|
|
125
130
|
}
|
|
126
131
|
|
|
127
132
|
exports.BaseProvider = BaseProvider;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
|
-
var baseControllers = require('@toruslabs/base-controllers');
|
|
5
4
|
var auth = require('@web3auth/auth');
|
|
6
5
|
var baseProvider = require('./baseProvider.js');
|
|
7
6
|
|
|
@@ -24,9 +23,6 @@ class CommonPrivateKeyProvider extends baseProvider.BaseProvider {
|
|
|
24
23
|
set provider(_) {
|
|
25
24
|
throw new Error("Method not implemented.");
|
|
26
25
|
}
|
|
27
|
-
addChain(_) {
|
|
28
|
-
throw new Error("Method not implemented.");
|
|
29
|
-
}
|
|
30
26
|
async setupProvider(privKey) {
|
|
31
27
|
const privKeyMiddleware = this.getPrivKeyMiddleware(privKey);
|
|
32
28
|
const engine = new auth.JRPCEngine();
|
|
@@ -34,14 +30,6 @@ class CommonPrivateKeyProvider extends baseProvider.BaseProvider {
|
|
|
34
30
|
const provider = auth.providerFromEngine(engine);
|
|
35
31
|
this.updateProviderEngineProxy(provider);
|
|
36
32
|
}
|
|
37
|
-
updateProviderEngineProxy(provider) {
|
|
38
|
-
if (this._providerEngineProxy) {
|
|
39
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
|
-
this._providerEngineProxy.setTarget(provider);
|
|
41
|
-
} else {
|
|
42
|
-
this._providerEngineProxy = baseControllers.createEventEmitterProxy(provider);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
33
|
async switchChain(_) {
|
|
46
34
|
return Promise.resolve();
|
|
47
35
|
}
|
|
@@ -79,7 +67,8 @@ _CommonPrivateKeyProvider = CommonPrivateKeyProvider;
|
|
|
79
67
|
_defineProperty(CommonPrivateKeyProvider, "getProviderInstance", async params => {
|
|
80
68
|
const providerFactory = new _CommonPrivateKeyProvider({
|
|
81
69
|
config: {
|
|
82
|
-
|
|
70
|
+
chain: params.chain,
|
|
71
|
+
chains: params.chains
|
|
83
72
|
}
|
|
84
73
|
});
|
|
85
74
|
await providerFactory.setupProvider(params.privKey);
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var baseProvider = require('./baseProvider.js');
|
|
4
|
+
var CommonJRPCProvider = require('./CommonJRPCProvider.js');
|
|
5
|
+
var commonPrivateKeyProvider = require('./commonPrivateKeyProvider.js');
|
|
6
|
+
var utils = require('./utils.js');
|
|
7
|
+
var auth = require('@web3auth/auth');
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
exports.BaseProvider = baseProvider.BaseProvider;
|
|
12
|
+
exports.CommonJRPCProvider = CommonJRPCProvider.CommonJRPCProvider;
|
|
13
|
+
exports.CommonPrivateKeyProvider = commonPrivateKeyProvider.CommonPrivateKeyProvider;
|
|
14
|
+
exports.createRandomId = utils.createRandomId;
|
|
15
|
+
Object.defineProperty(exports, "getED25519Key", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return auth.getED25519Key; }
|
|
18
|
+
});
|
|
@@ -6,10 +6,10 @@ var util = require('@ethereumjs/util');
|
|
|
6
6
|
var auth = require('@web3auth/auth');
|
|
7
7
|
var IChainInterface = require('../../../../base/chain/IChainInterface.js');
|
|
8
8
|
var index = require('../../../../base/errors/index.js');
|
|
9
|
+
var baseProvider = require('../../../base-provider/baseProvider.js');
|
|
9
10
|
var ethRpcMiddlewares$1 = require('../../rpc/ethRpcMiddlewares.js');
|
|
10
11
|
var signingUtils = require('./signingUtils.js');
|
|
11
12
|
var formatter = require('../../../ethereum-provider/providers/privateKeyProviders/TransactionFormatter/formatter.js');
|
|
12
|
-
var baseProvider = require('../../../base-provider/baseProvider.js');
|
|
13
13
|
var ethRpcMiddlewares = require('../../../ethereum-provider/rpc/ethRpcMiddlewares.js');
|
|
14
14
|
var jrpcClient = require('../../../ethereum-provider/rpc/jrpcClient.js');
|
|
15
15
|
|
|
@@ -21,9 +21,10 @@ class EthereumSigningProvider extends baseProvider.BaseProvider {
|
|
|
21
21
|
}) {
|
|
22
22
|
super({
|
|
23
23
|
config: {
|
|
24
|
-
|
|
25
|
-
chainNamespace: IChainInterface.CHAIN_NAMESPACES.EIP155
|
|
26
|
-
})
|
|
24
|
+
chain: _objectSpread(_objectSpread({}, config.chain), {}, {
|
|
25
|
+
chainNamespace: IChainInterface.CHAIN_NAMESPACES.EIP155 // TODO: is this needed ?
|
|
26
|
+
}),
|
|
27
|
+
chains: config.chains
|
|
27
28
|
},
|
|
28
29
|
state
|
|
29
30
|
});
|
|
@@ -34,18 +35,20 @@ class EthereumSigningProvider extends baseProvider.BaseProvider {
|
|
|
34
35
|
message: "signMethods are not found in state, plz pass it in constructor state param",
|
|
35
36
|
code: 4902
|
|
36
37
|
});
|
|
37
|
-
await this.setupProvider(this.state.signMethods);
|
|
38
|
+
await this.setupProvider(this.state.signMethods, this.chainId);
|
|
38
39
|
return this._providerEngineProxy.request({
|
|
39
40
|
method: "eth_accounts"
|
|
40
41
|
});
|
|
41
42
|
}
|
|
42
|
-
async setupProvider({
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
async setupProvider(params, chainId) {
|
|
44
|
+
const {
|
|
45
|
+
sign,
|
|
46
|
+
getPublic
|
|
47
|
+
} = params;
|
|
48
|
+
const chain = this.getChain(chainId);
|
|
46
49
|
const {
|
|
47
50
|
chainNamespace
|
|
48
|
-
} =
|
|
51
|
+
} = chain;
|
|
49
52
|
if (chainNamespace !== this.PROVIDER_CHAIN_NAMESPACE) throw index.WalletInitializationError.incompatibleChainNameSpace("Invalid chain namespace");
|
|
50
53
|
const txFormatter = new formatter.TransactionFormatter({
|
|
51
54
|
getProviderEngineProxy: this.getProviderEngineProxy.bind(this)
|
|
@@ -62,7 +65,7 @@ class EthereumSigningProvider extends baseProvider.BaseProvider {
|
|
|
62
65
|
// Not a partial anymore because of checks in ctor
|
|
63
66
|
const {
|
|
64
67
|
networkMiddleware
|
|
65
|
-
} = jrpcClient.createEthJsonRpcClient(
|
|
68
|
+
} = jrpcClient.createEthJsonRpcClient(chain);
|
|
66
69
|
engine.push(ethMiddleware);
|
|
67
70
|
engine.push(chainSwitchMiddleware);
|
|
68
71
|
engine.push(this.getAccountMiddleware());
|
|
@@ -70,11 +73,18 @@ class EthereumSigningProvider extends baseProvider.BaseProvider {
|
|
|
70
73
|
const provider = auth.providerFromEngine(engine);
|
|
71
74
|
this.updateProviderEngineProxy(provider);
|
|
72
75
|
await txFormatter.init();
|
|
73
|
-
await this.lookupNetwork();
|
|
76
|
+
await this.lookupNetwork(params, chainId);
|
|
74
77
|
this.state.signMethods = {
|
|
75
78
|
sign,
|
|
76
79
|
getPublic
|
|
77
80
|
};
|
|
81
|
+
this.emit("chainChanged", chainId);
|
|
82
|
+
this.emit("connect", {
|
|
83
|
+
chainId
|
|
84
|
+
});
|
|
85
|
+
this.update({
|
|
86
|
+
chainId
|
|
87
|
+
});
|
|
78
88
|
}
|
|
79
89
|
async updateAccount(params) {
|
|
80
90
|
if (!this._providerEngineProxy) throw auth.providerErrors.custom({
|
|
@@ -91,7 +101,7 @@ class EthereumSigningProvider extends baseProvider.BaseProvider {
|
|
|
91
101
|
const currentPubKey = (await currentSignMethods.getPublic()).toString("hex");
|
|
92
102
|
const updatePubKey = (await params.signMethods.getPublic()).toString("hex");
|
|
93
103
|
if (currentPubKey !== updatePubKey) {
|
|
94
|
-
await this.setupProvider(params.signMethods);
|
|
104
|
+
await this.setupProvider(params.signMethods, this.chainId);
|
|
95
105
|
const accounts = await this._providerEngineProxy.request({
|
|
96
106
|
method: "eth_accounts"
|
|
97
107
|
});
|
|
@@ -103,29 +113,25 @@ class EthereumSigningProvider extends baseProvider.BaseProvider {
|
|
|
103
113
|
message: "Provider is not initialized",
|
|
104
114
|
code: 4902
|
|
105
115
|
});
|
|
106
|
-
const chainConfig = this.getChainConfig(params.chainId);
|
|
107
|
-
this.update({
|
|
108
|
-
chainId: "loading"
|
|
109
|
-
});
|
|
110
|
-
this.configure({
|
|
111
|
-
chainConfig
|
|
112
|
-
});
|
|
113
116
|
if (!this.state.signMethods) {
|
|
114
117
|
throw auth.providerErrors.custom({
|
|
115
118
|
message: "sign methods are undefined",
|
|
116
119
|
code: 4902
|
|
117
120
|
});
|
|
118
121
|
}
|
|
119
|
-
|
|
122
|
+
if (params.chainId === this.chainId) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
this.update({
|
|
126
|
+
chainId: "loading"
|
|
127
|
+
});
|
|
128
|
+
await this.setupProvider(this.state.signMethods, params.chainId);
|
|
120
129
|
}
|
|
121
|
-
async lookupNetwork() {
|
|
130
|
+
async lookupNetwork(_, chainId) {
|
|
122
131
|
if (!this._providerEngineProxy) throw auth.providerErrors.custom({
|
|
123
132
|
message: "Provider is not initialized",
|
|
124
133
|
code: 4902
|
|
125
134
|
});
|
|
126
|
-
const {
|
|
127
|
-
chainId
|
|
128
|
-
} = this.config.chainConfig;
|
|
129
135
|
if (!chainId) throw auth.rpcErrors.invalidParams("chainId is required while lookupNetwork");
|
|
130
136
|
const network = await this._providerEngineProxy.request({
|
|
131
137
|
method: "net_version",
|
|
@@ -133,40 +139,10 @@ class EthereumSigningProvider extends baseProvider.BaseProvider {
|
|
|
133
139
|
});
|
|
134
140
|
const finalNetwork = util.isHexString(network) ? parseInt(network, 16) : parseInt(network, 10);
|
|
135
141
|
if (parseInt(chainId, 16) !== finalNetwork) throw auth.providerErrors.chainDisconnected(`Invalid network, net_version is: ${network}`);
|
|
136
|
-
if (this.state.chainId !== chainId) {
|
|
137
|
-
this.emit("chainChanged", chainId);
|
|
138
|
-
this.emit("connect", {
|
|
139
|
-
chainId
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
this.update({
|
|
143
|
-
chainId
|
|
144
|
-
});
|
|
145
142
|
return network;
|
|
146
143
|
}
|
|
147
144
|
getChainSwitchMiddleware() {
|
|
148
145
|
const chainSwitchHandlers = {
|
|
149
|
-
addChain: async params => {
|
|
150
|
-
const {
|
|
151
|
-
chainId,
|
|
152
|
-
chainName,
|
|
153
|
-
rpcUrls,
|
|
154
|
-
blockExplorerUrls,
|
|
155
|
-
nativeCurrency,
|
|
156
|
-
iconUrls
|
|
157
|
-
} = params;
|
|
158
|
-
this.addChain({
|
|
159
|
-
chainNamespace: IChainInterface.CHAIN_NAMESPACES.EIP155,
|
|
160
|
-
chainId,
|
|
161
|
-
ticker: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.symbol) || "ETH",
|
|
162
|
-
tickerName: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.name) || "Ether",
|
|
163
|
-
displayName: chainName,
|
|
164
|
-
rpcTarget: rpcUrls[0],
|
|
165
|
-
blockExplorerUrl: (blockExplorerUrls === null || blockExplorerUrls === void 0 ? void 0 : blockExplorerUrls[0]) || "",
|
|
166
|
-
decimals: (nativeCurrency === null || nativeCurrency === void 0 ? void 0 : nativeCurrency.decimals) || 18,
|
|
167
|
-
logo: (iconUrls === null || iconUrls === void 0 ? void 0 : iconUrls[0]) || "https://images.toruswallet.io/eth.svg"
|
|
168
|
-
});
|
|
169
|
-
},
|
|
170
146
|
switchChain: async params => {
|
|
171
147
|
const {
|
|
172
148
|
chainId
|
|
@@ -189,10 +165,11 @@ _EthereumSigningProvider = EthereumSigningProvider;
|
|
|
189
165
|
_defineProperty(EthereumSigningProvider, "getProviderInstance", async params => {
|
|
190
166
|
const providerFactory = new _EthereumSigningProvider({
|
|
191
167
|
config: {
|
|
192
|
-
|
|
168
|
+
chain: params.chain,
|
|
169
|
+
chains: params.chains
|
|
193
170
|
}
|
|
194
171
|
});
|
|
195
|
-
await providerFactory.setupProvider(params.signMethods);
|
|
172
|
+
await providerFactory.setupProvider(params.signMethods, params.chain.chainId);
|
|
196
173
|
return providerFactory;
|
|
197
174
|
});
|
|
198
175
|
|
|
@@ -29,47 +29,18 @@ function createEthMiddleware(providerHandlers) {
|
|
|
29
29
|
return ethMiddleware;
|
|
30
30
|
}
|
|
31
31
|
function createEthChainSwitchMiddleware({
|
|
32
|
-
addChain,
|
|
33
32
|
switchChain
|
|
34
33
|
}) {
|
|
35
|
-
async function
|
|
34
|
+
async function updateChain(req, res) {
|
|
36
35
|
var _req$params;
|
|
37
36
|
const chainParams = (_req$params = req.params) !== null && _req$params !== void 0 && _req$params.length ? req.params[0] : undefined;
|
|
38
|
-
if (!chainParams) throw auth.rpcErrors.invalidParams("Missing chain params");
|
|
39
|
-
if (!chainParams.chainId) throw auth.rpcErrors.invalidParams("Missing chainId in chainParams");
|
|
40
|
-
if (!chainParams.rpcUrls || chainParams.rpcUrls.length === 0) throw auth.rpcErrors.invalidParams("Missing rpcUrls in chainParams");
|
|
41
|
-
if (!chainParams.nativeCurrency) throw auth.rpcErrors.invalidParams("Missing nativeCurrency in chainParams");
|
|
42
|
-
res.result = await addChain(chainParams);
|
|
43
|
-
}
|
|
44
|
-
async function updateChain(req, res) {
|
|
45
|
-
var _req$params2;
|
|
46
|
-
const chainParams = (_req$params2 = req.params) !== null && _req$params2 !== void 0 && _req$params2.length ? req.params[0] : undefined;
|
|
47
37
|
if (!chainParams) throw auth.rpcErrors.invalidParams("Missing chainId");
|
|
48
38
|
res.result = await switchChain(chainParams);
|
|
49
39
|
}
|
|
50
40
|
return auth.createScaffoldMiddleware({
|
|
51
|
-
wallet_addEthereumChain: auth.createAsyncMiddleware(addNewChain),
|
|
52
41
|
wallet_switchEthereumChain: auth.createAsyncMiddleware(updateChain)
|
|
53
42
|
});
|
|
54
43
|
}
|
|
55
44
|
|
|
56
|
-
// #region account middlewares
|
|
57
|
-
function createEthAccountMiddleware({
|
|
58
|
-
updatePrivatekey
|
|
59
|
-
}) {
|
|
60
|
-
async function updateAccount(req, res) {
|
|
61
|
-
var _req$params3;
|
|
62
|
-
const accountParams = (_req$params3 = req.params) !== null && _req$params3 !== void 0 && _req$params3.length ? req.params[0] : undefined;
|
|
63
|
-
if (!(accountParams !== null && accountParams !== void 0 && accountParams.privateKey)) throw auth.rpcErrors.invalidParams("Missing privateKey");
|
|
64
|
-
res.result = await updatePrivatekey(accountParams);
|
|
65
|
-
}
|
|
66
|
-
return auth.createScaffoldMiddleware({
|
|
67
|
-
wallet_updateAccount: auth.createAsyncMiddleware(updateAccount)
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// #endregion account middlewares
|
|
72
|
-
|
|
73
|
-
exports.createEthAccountMiddleware = createEthAccountMiddleware;
|
|
74
45
|
exports.createEthChainSwitchMiddleware = createEthChainSwitchMiddleware;
|
|
75
46
|
exports.createEthMiddleware = createEthMiddleware;
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var auth = require('@web3auth/auth');
|
|
4
4
|
var index = require('../../../../../base/errors/index.js');
|
|
5
|
+
var baseProvider = require('../../../../base-provider/baseProvider.js');
|
|
5
6
|
var JrpcClient = require('../../../rpc/JrpcClient.js');
|
|
6
7
|
var solanaRpcMiddlewares = require('../../../rpc/solanaRpcMiddlewares.js');
|
|
7
|
-
var baseProvider = require('../../../../base-provider/baseProvider.js');
|
|
8
8
|
|
|
9
9
|
class BaseInjectedProvider extends baseProvider.BaseProvider {
|
|
10
10
|
constructor({
|
|
@@ -17,14 +17,15 @@ class BaseInjectedProvider extends baseProvider.BaseProvider {
|
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
async switchChain(_) {
|
|
20
|
-
throw index.WalletLoginError.unsupportedOperation("Chain switching is not supported by this
|
|
20
|
+
throw index.WalletLoginError.unsupportedOperation("Chain switching is not supported by this connector");
|
|
21
21
|
}
|
|
22
|
-
async setupProvider(injectedProvider) {
|
|
22
|
+
async setupProvider(injectedProvider, chainId) {
|
|
23
23
|
const engine = new auth.JRPCEngine();
|
|
24
|
+
const chain = this.getChain(chainId);
|
|
24
25
|
const providerHandlers = this.getProviderHandlers(injectedProvider);
|
|
25
26
|
const solanaMiddleware = solanaRpcMiddlewares.createSolanaMiddleware(providerHandlers);
|
|
26
27
|
engine.push(solanaMiddleware);
|
|
27
|
-
const configMiddleware = JrpcClient.createConfigMiddleware(
|
|
28
|
+
const configMiddleware = JrpcClient.createConfigMiddleware(chain);
|
|
28
29
|
engine.push(configMiddleware);
|
|
29
30
|
const injectedProviderProxy = this.getInjectedProviderProxy(injectedProvider);
|
|
30
31
|
if (injectedProviderProxy) {
|
|
@@ -32,16 +33,13 @@ class BaseInjectedProvider extends baseProvider.BaseProvider {
|
|
|
32
33
|
}
|
|
33
34
|
const provider = auth.providerFromEngine(engine);
|
|
34
35
|
this.updateProviderEngineProxy(provider);
|
|
35
|
-
await this.lookupNetwork();
|
|
36
|
+
await this.lookupNetwork(injectedProvider, chainId);
|
|
36
37
|
}
|
|
37
|
-
async lookupNetwork() {
|
|
38
|
-
const {
|
|
39
|
-
chainConfig
|
|
40
|
-
} = this.config;
|
|
38
|
+
async lookupNetwork(_injectedProvider, chainId) {
|
|
41
39
|
this.update({
|
|
42
|
-
chainId
|
|
40
|
+
chainId
|
|
43
41
|
});
|
|
44
|
-
return
|
|
42
|
+
return chainId || "";
|
|
45
43
|
}
|
|
46
44
|
getInjectedProviderProxy(_) {
|
|
47
45
|
return undefined;
|
package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/base/providerHandlers.js
CHANGED
|
@@ -23,8 +23,8 @@ const getBaseProviderHandlers = injectedProvider => {
|
|
|
23
23
|
return transaction;
|
|
24
24
|
},
|
|
25
25
|
signMessage: async req => {
|
|
26
|
-
const sigData = await injectedProvider.signMessage(req.params.
|
|
27
|
-
return sigData
|
|
26
|
+
const sigData = await injectedProvider.signMessage(req.params.data, req.params.from, req.params.display);
|
|
27
|
+
return sigData;
|
|
28
28
|
},
|
|
29
29
|
signAllTransactions: async req => {
|
|
30
30
|
var _req$params, _req$params2;
|
|
@@ -36,9 +36,7 @@ const getBaseProviderHandlers = injectedProvider => {
|
|
|
36
36
|
},
|
|
37
37
|
signAndSendTransaction: async req => {
|
|
38
38
|
const txRes = await injectedProvider.signAndSendTransaction(req.params.message);
|
|
39
|
-
return
|
|
40
|
-
signature: txRes.signature
|
|
41
|
-
};
|
|
39
|
+
return txRes;
|
|
42
40
|
}
|
|
43
41
|
};
|
|
44
42
|
return providerHandlers;
|
package/dist/lib.cjs/providers/solana-provider/providers/injectedProviders/walletStandardProvider.js
CHANGED
|
@@ -1,11 +1,92 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var walletStandardFeatures = require('@solana/wallet-standard-features');
|
|
4
|
+
var web3_js = require('@solana/web3.js');
|
|
5
|
+
var bs58 = require('bs58');
|
|
6
|
+
var index = require('../../../../base/errors/index.js');
|
|
3
7
|
var baseInjectedProvider = require('./base/baseInjectedProvider.js');
|
|
4
8
|
var providerHandlers = require('./base/providerHandlers.js');
|
|
9
|
+
var utils = require('./utils.js');
|
|
5
10
|
|
|
6
11
|
class WalletStandardProvider extends baseInjectedProvider.BaseInjectedProvider {
|
|
7
|
-
getProviderHandlers(
|
|
8
|
-
|
|
12
|
+
getProviderHandlers(wallet) {
|
|
13
|
+
const chainIdentifier = utils.getSolanaChainByChainConfig(this.config.chain);
|
|
14
|
+
const currentAccount = () => {
|
|
15
|
+
const account = wallet === null || wallet === void 0 ? void 0 : wallet.accounts[0];
|
|
16
|
+
if (!account) throw index.WalletLoginError.notConnectedError();
|
|
17
|
+
return account;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Signs a message and returns the signature
|
|
22
|
+
* @param message - The message to sign
|
|
23
|
+
* @returns The signature of the message encoded in base58
|
|
24
|
+
*/
|
|
25
|
+
const signMessage = async message => {
|
|
26
|
+
const account = currentAccount();
|
|
27
|
+
const uint8ArrayMessage = new Uint8Array(Buffer.from(message, "utf-8"));
|
|
28
|
+
const signature = await wallet.features[walletStandardFeatures.SolanaSignMessage].signMessage({
|
|
29
|
+
account,
|
|
30
|
+
message: uint8ArrayMessage
|
|
31
|
+
});
|
|
32
|
+
return bs58.encode(signature[0].signature);
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Signs a transaction and returns the signature
|
|
37
|
+
* @param transaction - The transaction to sign
|
|
38
|
+
* @returns The signature of the transaction encoded in base58
|
|
39
|
+
*/
|
|
40
|
+
const signTransaction = async transaction => {
|
|
41
|
+
const account = currentAccount();
|
|
42
|
+
const output = await wallet.features[walletStandardFeatures.SolanaSignTransaction].signTransaction({
|
|
43
|
+
account,
|
|
44
|
+
transaction: new Uint8Array(Buffer.from(transaction, "base64")),
|
|
45
|
+
chain: chainIdentifier
|
|
46
|
+
});
|
|
47
|
+
return bs58.encode(web3_js.VersionedTransaction.deserialize(output[0].signedTransaction).signatures[0]);
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Signs multiple transactions and returns the serialized transactions
|
|
52
|
+
* @param transactions - The transactions to sign
|
|
53
|
+
* @returns The serialized transactions encoded in base64
|
|
54
|
+
*/
|
|
55
|
+
const signAllTransactions = async transactions => {
|
|
56
|
+
const account = currentAccount();
|
|
57
|
+
return Promise.all(transactions.map(async transaction => {
|
|
58
|
+
const output = await wallet.features[walletStandardFeatures.SolanaSignTransaction].signTransaction({
|
|
59
|
+
account,
|
|
60
|
+
transaction: new Uint8Array(Buffer.from(transaction, "base64")),
|
|
61
|
+
chain: chainIdentifier
|
|
62
|
+
});
|
|
63
|
+
return Buffer.from(output[0].signedTransaction).toString("base64");
|
|
64
|
+
}));
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Signs a transaction and sends it to the network
|
|
69
|
+
* @param transaction - The transaction to sign and send
|
|
70
|
+
* @returns The signature of the transaction encoded in base58
|
|
71
|
+
*/
|
|
72
|
+
const signAndSendTransaction = async transaction => {
|
|
73
|
+
const account = currentAccount();
|
|
74
|
+
const output = await wallet.features[walletStandardFeatures.SolanaSignAndSendTransaction].signAndSendTransaction({
|
|
75
|
+
account,
|
|
76
|
+
transaction: new Uint8Array(Buffer.from(transaction, "base64")),
|
|
77
|
+
chain: chainIdentifier
|
|
78
|
+
});
|
|
79
|
+
return bs58.encode(output[0].signature);
|
|
80
|
+
};
|
|
81
|
+
return providerHandlers.getBaseProviderHandlers({
|
|
82
|
+
get publicKey() {
|
|
83
|
+
return new web3_js.PublicKey(currentAccount().publicKey);
|
|
84
|
+
},
|
|
85
|
+
signMessage,
|
|
86
|
+
signTransaction,
|
|
87
|
+
signAllTransactions,
|
|
88
|
+
signAndSendTransaction
|
|
89
|
+
});
|
|
9
90
|
}
|
|
10
91
|
}
|
|
11
92
|
|