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