@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
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
|
+
var baseControllers = require('@toruslabs/base-controllers');
|
|
6
|
+
var Client = require('@walletconnect/sign-client');
|
|
7
|
+
var utils$1 = require('@walletconnect/utils');
|
|
8
|
+
var wsEmbed = require('@web3auth/ws-embed');
|
|
9
|
+
var deepmerge = require('deepmerge');
|
|
10
|
+
var IChainInterface = require('../../base/chain/IChainInterface.js');
|
|
11
|
+
var index$1 = require('../../base/errors/index.js');
|
|
12
|
+
var loglevel = require('../../base/loglevel.js');
|
|
13
|
+
var index = require('../../base/wallet/index.js');
|
|
14
|
+
var config = require('./config.js');
|
|
15
|
+
var WalletConnectV2Provider = require('./WalletConnectV2Provider.js');
|
|
16
|
+
var baseConnector = require('../../base/connector/baseConnector.js');
|
|
17
|
+
var constants = require('../../base/connector/constants.js');
|
|
18
|
+
var utils = require('../../base/connector/utils.js');
|
|
19
|
+
|
|
20
|
+
class WalletConnectV2Connector extends baseConnector.BaseConnector {
|
|
21
|
+
constructor(options) {
|
|
22
|
+
var _this$connectorOption, _this$connectorOption2, _this$connectorOption3, _this$connectorOption4, _this$connectorOption5;
|
|
23
|
+
super(options);
|
|
24
|
+
_defineProperty(this, "name", index.WALLET_CONNECTORS.WALLET_CONNECT_V2);
|
|
25
|
+
_defineProperty(this, "connectorNamespace", IChainInterface.CONNECTOR_NAMESPACES.MULTICHAIN);
|
|
26
|
+
_defineProperty(this, "currentChainNamespace", IChainInterface.CHAIN_NAMESPACES.OTHER);
|
|
27
|
+
_defineProperty(this, "type", constants.CONNECTOR_CATEGORY.EXTERNAL);
|
|
28
|
+
_defineProperty(this, "connectorOptions", void 0);
|
|
29
|
+
_defineProperty(this, "status", constants.CONNECTOR_STATUS.NOT_READY);
|
|
30
|
+
_defineProperty(this, "connectorData", {
|
|
31
|
+
uri: ""
|
|
32
|
+
});
|
|
33
|
+
_defineProperty(this, "connector", null);
|
|
34
|
+
_defineProperty(this, "activeSession", null);
|
|
35
|
+
_defineProperty(this, "wcProvider", null);
|
|
36
|
+
this.connectorOptions = _objectSpread({}, options);
|
|
37
|
+
const {
|
|
38
|
+
qrcodeModal,
|
|
39
|
+
walletConnectInitOptions
|
|
40
|
+
} = (options === null || options === void 0 ? void 0 : options.connectorSettings) || {};
|
|
41
|
+
this.connectorOptions = _objectSpread(_objectSpread({}, this.connectorOptions), {}, {
|
|
42
|
+
connectorSettings: (_this$connectorOption = (_this$connectorOption2 = this.connectorOptions) === null || _this$connectorOption2 === void 0 ? void 0 : _this$connectorOption2.connectorSettings) !== null && _this$connectorOption !== void 0 ? _this$connectorOption : {},
|
|
43
|
+
loginSettings: (_this$connectorOption3 = (_this$connectorOption4 = this.connectorOptions) === null || _this$connectorOption4 === void 0 ? void 0 : _this$connectorOption4.loginSettings) !== null && _this$connectorOption3 !== void 0 ? _this$connectorOption3 : {}
|
|
44
|
+
});
|
|
45
|
+
if (qrcodeModal) this.connectorOptions.connectorSettings.qrcodeModal = qrcodeModal;
|
|
46
|
+
if (walletConnectInitOptions) this.connectorOptions.connectorSettings.walletConnectInitOptions = _objectSpread(_objectSpread({}, (_this$connectorOption5 = this.connectorOptions.connectorSettings.walletConnectInitOptions) !== null && _this$connectorOption5 !== void 0 ? _this$connectorOption5 : {}), walletConnectInitOptions);
|
|
47
|
+
const {
|
|
48
|
+
loginSettings
|
|
49
|
+
} = options;
|
|
50
|
+
if (loginSettings) this.connectorOptions.loginSettings = _objectSpread(_objectSpread({}, this.connectorOptions.loginSettings || {}), loginSettings);
|
|
51
|
+
}
|
|
52
|
+
get connected() {
|
|
53
|
+
return !!this.activeSession;
|
|
54
|
+
}
|
|
55
|
+
get provider() {
|
|
56
|
+
if (this.status !== constants.CONNECTOR_STATUS.NOT_READY && this.wcProvider) {
|
|
57
|
+
return this.wcProvider;
|
|
58
|
+
}
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
61
|
+
set provider(_) {
|
|
62
|
+
throw new Error("Not implemented");
|
|
63
|
+
}
|
|
64
|
+
async init(options) {
|
|
65
|
+
var _this$connectorOption6;
|
|
66
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === options.chainId);
|
|
67
|
+
super.checkInitializationRequirements({
|
|
68
|
+
chainConfig
|
|
69
|
+
});
|
|
70
|
+
const projectId = (_this$connectorOption6 = this.connectorOptions.connectorSettings) === null || _this$connectorOption6 === void 0 || (_this$connectorOption6 = _this$connectorOption6.walletConnectInitOptions) === null || _this$connectorOption6 === void 0 ? void 0 : _this$connectorOption6.projectId;
|
|
71
|
+
if (!projectId) {
|
|
72
|
+
throw index$1.WalletInitializationError.invalidParams("Wallet connect project id is required in wallet connect v2 connector");
|
|
73
|
+
}
|
|
74
|
+
const wc2Settings = await config.getWalletConnectV2Settings(this.coreOptions.chains, projectId);
|
|
75
|
+
if (!this.connectorOptions.loginSettings || Object.keys(this.connectorOptions.loginSettings).length === 0) {
|
|
76
|
+
this.connectorOptions.loginSettings = wc2Settings.loginSettings;
|
|
77
|
+
}
|
|
78
|
+
this.connectorOptions.connectorSettings = deepmerge(wc2Settings.connectorSettings || {}, this.connectorOptions.connectorSettings || {});
|
|
79
|
+
const {
|
|
80
|
+
connectorSettings
|
|
81
|
+
} = this.connectorOptions;
|
|
82
|
+
this.connector = await Client.init(connectorSettings === null || connectorSettings === void 0 ? void 0 : connectorSettings.walletConnectInitOptions);
|
|
83
|
+
this.wcProvider = new WalletConnectV2Provider.WalletConnectV2Provider({
|
|
84
|
+
config: {
|
|
85
|
+
chain: chainConfig,
|
|
86
|
+
chains: this.coreOptions.chains
|
|
87
|
+
},
|
|
88
|
+
connector: this.connector
|
|
89
|
+
});
|
|
90
|
+
this.emit(constants.CONNECTOR_EVENTS.READY, index.WALLET_CONNECTORS.WALLET_CONNECT_V2);
|
|
91
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
92
|
+
loglevel.log.debug("initializing wallet connect v2 connector");
|
|
93
|
+
if (options.autoConnect) {
|
|
94
|
+
await this.checkForPersistedSession();
|
|
95
|
+
if (this.connected) {
|
|
96
|
+
this.rehydrated = true;
|
|
97
|
+
try {
|
|
98
|
+
await this.onConnectHandler({
|
|
99
|
+
chain: chainConfig
|
|
100
|
+
});
|
|
101
|
+
} catch (error) {
|
|
102
|
+
loglevel.log.error("wallet auto connect", error);
|
|
103
|
+
this.emit(constants.CONNECTOR_EVENTS.ERRORED, error);
|
|
104
|
+
}
|
|
105
|
+
} else {
|
|
106
|
+
this.status = constants.CONNECTOR_STATUS.NOT_READY;
|
|
107
|
+
this.emit(constants.CONNECTOR_EVENTS.CACHE_CLEAR);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
async connect({
|
|
112
|
+
chainId
|
|
113
|
+
}) {
|
|
114
|
+
super.checkConnectionRequirements();
|
|
115
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
116
|
+
if (!chainConfig) throw index$1.WalletLoginError.connectionError("Chain config is not available");
|
|
117
|
+
if (!this.connector) throw index$1.WalletInitializationError.notReady("Wallet connector is not ready yet");
|
|
118
|
+
try {
|
|
119
|
+
// if already connected
|
|
120
|
+
if (this.connected) {
|
|
121
|
+
await this.onConnectHandler({
|
|
122
|
+
chain: chainConfig
|
|
123
|
+
});
|
|
124
|
+
return this.provider;
|
|
125
|
+
}
|
|
126
|
+
if (this.status !== constants.CONNECTOR_STATUS.CONNECTING) {
|
|
127
|
+
await this.createNewSession({
|
|
128
|
+
chainConfig
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
return this.provider;
|
|
132
|
+
} catch (error) {
|
|
133
|
+
loglevel.log.error("Wallet connect v2 connector error while connecting", error);
|
|
134
|
+
// ready again to be connected
|
|
135
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
136
|
+
this.rehydrated = true;
|
|
137
|
+
this.emit(constants.CONNECTOR_EVENTS.ERRORED, error);
|
|
138
|
+
const finalError = error instanceof index$1.Web3AuthError ? error : index$1.WalletLoginError.connectionError(`Failed to login with wallet connect: ${(error === null || error === void 0 ? void 0 : error.message) || ""}`, error);
|
|
139
|
+
throw finalError;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
async switchChain(params, init = false) {
|
|
143
|
+
super.checkSwitchChainRequirements(params, init);
|
|
144
|
+
if (!this.wcProvider) throw index$1.WalletInitializationError.notReady("Wallet Connect provider is not ready yet");
|
|
145
|
+
try {
|
|
146
|
+
await this.wcProvider.switchChain({
|
|
147
|
+
chainId: params.chainId
|
|
148
|
+
});
|
|
149
|
+
} catch (error) {
|
|
150
|
+
loglevel.log.error("error while switching chain", error);
|
|
151
|
+
throw error;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
async getUserInfo() {
|
|
155
|
+
if (!this.connected) throw index$1.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
156
|
+
return {};
|
|
157
|
+
}
|
|
158
|
+
async disconnect(options = {
|
|
159
|
+
cleanup: false,
|
|
160
|
+
sessionRemovedByWallet: false
|
|
161
|
+
}) {
|
|
162
|
+
var _this$activeSession, _this$activeSession2;
|
|
163
|
+
const {
|
|
164
|
+
cleanup
|
|
165
|
+
} = options;
|
|
166
|
+
if (!this.connector || !this.connected || !((_this$activeSession = this.activeSession) !== null && _this$activeSession !== void 0 && _this$activeSession.topic)) throw index$1.WalletLoginError.notConnectedError("Not connected with wallet");
|
|
167
|
+
if (!options.sessionRemovedByWallet) await this.connector.disconnect({
|
|
168
|
+
topic: (_this$activeSession2 = this.activeSession) === null || _this$activeSession2 === void 0 ? void 0 : _this$activeSession2.topic,
|
|
169
|
+
reason: utils$1.getSdkError("USER_DISCONNECTED")
|
|
170
|
+
});
|
|
171
|
+
this.rehydrated = false;
|
|
172
|
+
if (cleanup) {
|
|
173
|
+
this.connector = null;
|
|
174
|
+
this.status = constants.CONNECTOR_STATUS.NOT_READY;
|
|
175
|
+
this.wcProvider = null;
|
|
176
|
+
} else {
|
|
177
|
+
// ready to connect again
|
|
178
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
179
|
+
}
|
|
180
|
+
this.activeSession = null;
|
|
181
|
+
this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED);
|
|
182
|
+
}
|
|
183
|
+
async authenticateUser() {
|
|
184
|
+
if (!this.provider || this.status !== constants.CONNECTOR_STATUS.CONNECTED) throw index$1.WalletLoginError.notConnectedError();
|
|
185
|
+
const {
|
|
186
|
+
chainId
|
|
187
|
+
} = this.provider;
|
|
188
|
+
const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
189
|
+
if (!currentChainConfig) throw index$1.WalletLoginError.connectionError("Chain config is not available");
|
|
190
|
+
const {
|
|
191
|
+
chainNamespace
|
|
192
|
+
} = currentChainConfig;
|
|
193
|
+
const accounts = await this.provider.request({
|
|
194
|
+
method: chainNamespace === IChainInterface.CHAIN_NAMESPACES.EIP155 ? wsEmbed.EVM_METHOD_TYPES.GET_ACCOUNTS : wsEmbed.SOLANA_METHOD_TYPES.GET_ACCOUNTS
|
|
195
|
+
});
|
|
196
|
+
if (accounts && accounts.length > 0) {
|
|
197
|
+
const existingToken = utils.getSavedToken(accounts[0], this.name);
|
|
198
|
+
if (existingToken) {
|
|
199
|
+
const isExpired = utils.checkIfTokenIsExpired(existingToken);
|
|
200
|
+
if (!isExpired) {
|
|
201
|
+
return {
|
|
202
|
+
idToken: existingToken
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const payload = {
|
|
207
|
+
domain: window.location.origin,
|
|
208
|
+
uri: window.location.href,
|
|
209
|
+
address: accounts[0],
|
|
210
|
+
chainId: parseInt(chainId, 16),
|
|
211
|
+
version: "1",
|
|
212
|
+
nonce: Math.random().toString(36).slice(2),
|
|
213
|
+
issuedAt: new Date().toISOString()
|
|
214
|
+
};
|
|
215
|
+
const challenge = await baseControllers.signChallenge(payload, chainNamespace);
|
|
216
|
+
const signedMessage = await this._getSignedMessage(challenge, accounts, chainNamespace);
|
|
217
|
+
const idToken = await baseControllers.verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
|
|
218
|
+
utils.saveToken(accounts[0], this.name, idToken);
|
|
219
|
+
return {
|
|
220
|
+
idToken
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
throw index$1.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
224
|
+
}
|
|
225
|
+
async enableMFA() {
|
|
226
|
+
throw new Error("Method Not implemented");
|
|
227
|
+
}
|
|
228
|
+
async manageMFA() {
|
|
229
|
+
throw new Error("Method Not implemented");
|
|
230
|
+
}
|
|
231
|
+
cleanupPendingPairings() {
|
|
232
|
+
if (!this.connector) throw index$1.WalletInitializationError.notReady("Wallet connector is not ready yet");
|
|
233
|
+
const inactivePairings = this.connector.pairing.getAll({
|
|
234
|
+
active: false
|
|
235
|
+
});
|
|
236
|
+
if (!utils$1.isValidArray(inactivePairings)) return;
|
|
237
|
+
inactivePairings.forEach(pairing => {
|
|
238
|
+
if (this.connector) {
|
|
239
|
+
this.connector.pairing.delete(pairing.topic, utils$1.getSdkError("USER_DISCONNECTED"));
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
async checkForPersistedSession() {
|
|
244
|
+
if (!this.connector) throw index$1.WalletInitializationError.notReady("Wallet connector is not ready yet");
|
|
245
|
+
if (this.connector.session.length) {
|
|
246
|
+
const lastKeyIndex = this.connector.session.keys.length - 1;
|
|
247
|
+
this.activeSession = this.connector.session.get(this.connector.session.keys[lastKeyIndex]);
|
|
248
|
+
}
|
|
249
|
+
return this.activeSession;
|
|
250
|
+
}
|
|
251
|
+
async createNewSession({
|
|
252
|
+
forceNewSession = false,
|
|
253
|
+
chainConfig
|
|
254
|
+
}) {
|
|
255
|
+
try {
|
|
256
|
+
var _this$activeSession3, _this$connectorOption7;
|
|
257
|
+
if (!this.connector) throw index$1.WalletInitializationError.notReady("Wallet connector is not ready yet");
|
|
258
|
+
if (!this.connectorOptions.loginSettings || Object.keys(this.connectorOptions.loginSettings).length === 0) throw index$1.WalletInitializationError.notReady("login settings are not set yet");
|
|
259
|
+
this.status = constants.CONNECTOR_STATUS.CONNECTING;
|
|
260
|
+
this.emit(constants.CONNECTOR_EVENTS.CONNECTING, {
|
|
261
|
+
connector: index.WALLET_CONNECTORS.WALLET_CONNECT_V2
|
|
262
|
+
});
|
|
263
|
+
if (forceNewSession && (_this$activeSession3 = this.activeSession) !== null && _this$activeSession3 !== void 0 && _this$activeSession3.topic) {
|
|
264
|
+
var _this$activeSession4;
|
|
265
|
+
await this.connector.disconnect({
|
|
266
|
+
topic: (_this$activeSession4 = this.activeSession) === null || _this$activeSession4 === void 0 ? void 0 : _this$activeSession4.topic,
|
|
267
|
+
reason: utils$1.getSdkError("USER_DISCONNECTED")
|
|
268
|
+
});
|
|
269
|
+
}
|
|
270
|
+
const {
|
|
271
|
+
uri,
|
|
272
|
+
approval
|
|
273
|
+
} = await this.connector.connect(this.connectorOptions.loginSettings);
|
|
274
|
+
const qrcodeModal = (_this$connectorOption7 = this.connectorOptions) === null || _this$connectorOption7 === void 0 || (_this$connectorOption7 = _this$connectorOption7.connectorSettings) === null || _this$connectorOption7 === void 0 ? void 0 : _this$connectorOption7.qrcodeModal;
|
|
275
|
+
// Open QRCode modal if a URI was returned (i.e. we're not connecting with an existing pairing).
|
|
276
|
+
if (uri) {
|
|
277
|
+
if (qrcodeModal) {
|
|
278
|
+
try {
|
|
279
|
+
await qrcodeModal.openModal({
|
|
280
|
+
uri
|
|
281
|
+
});
|
|
282
|
+
loglevel.log.debug("EVENT", "QR Code Modal closed");
|
|
283
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
284
|
+
this.emit(constants.CONNECTOR_EVENTS.READY, index.WALLET_CONNECTORS.WALLET_CONNECT_V2);
|
|
285
|
+
} catch (error) {
|
|
286
|
+
loglevel.log.error("unable to open qr code modal");
|
|
287
|
+
}
|
|
288
|
+
} else {
|
|
289
|
+
this.updateConnectorData({
|
|
290
|
+
uri
|
|
291
|
+
});
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
loglevel.log.info("awaiting session approval from wallet");
|
|
295
|
+
|
|
296
|
+
// Await session approval from the wallet.
|
|
297
|
+
const session = await approval();
|
|
298
|
+
this.activeSession = session;
|
|
299
|
+
// Handle the returned session (e.g. update UI to "connected" state).
|
|
300
|
+
await this.onConnectHandler({
|
|
301
|
+
chain: chainConfig
|
|
302
|
+
});
|
|
303
|
+
if (qrcodeModal) {
|
|
304
|
+
qrcodeModal.closeModal();
|
|
305
|
+
}
|
|
306
|
+
} catch (error) {
|
|
307
|
+
var _message;
|
|
308
|
+
if ((_message = error.message) !== null && _message !== void 0 && _message.toLowerCase().includes("proposal expired")) {
|
|
309
|
+
// Retry if connector status is still connecting
|
|
310
|
+
loglevel.log.info("current connector status: ", this.status);
|
|
311
|
+
if (this.status === constants.CONNECTOR_STATUS.CONNECTING) {
|
|
312
|
+
loglevel.log.info("retrying to create new wallet connect session since proposal expired");
|
|
313
|
+
return this.createNewSession({
|
|
314
|
+
forceNewSession: true,
|
|
315
|
+
chainConfig
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
if (this.status === constants.CONNECTOR_STATUS.READY) {
|
|
319
|
+
loglevel.log.info("ignoring proposal expired error since some other connector is connected");
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
loglevel.log.error("error while creating new wallet connect session", error);
|
|
324
|
+
this.emit(constants.CONNECTOR_EVENTS.ERRORED, error);
|
|
325
|
+
throw error;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
async onConnectHandler({
|
|
329
|
+
chain
|
|
330
|
+
}) {
|
|
331
|
+
var _this$connectorOption8;
|
|
332
|
+
if (!this.connector || !this.wcProvider) throw index$1.WalletInitializationError.notReady("Wallet connect connector is not ready yet");
|
|
333
|
+
this.subscribeEvents();
|
|
334
|
+
if ((_this$connectorOption8 = this.connectorOptions.connectorSettings) !== null && _this$connectorOption8 !== void 0 && _this$connectorOption8.qrcodeModal) {
|
|
335
|
+
this.wcProvider = new WalletConnectV2Provider.WalletConnectV2Provider({
|
|
336
|
+
config: {
|
|
337
|
+
chain,
|
|
338
|
+
chains: this.coreOptions.chains,
|
|
339
|
+
skipLookupNetwork: true
|
|
340
|
+
},
|
|
341
|
+
connector: this.connector
|
|
342
|
+
});
|
|
343
|
+
}
|
|
344
|
+
await this.wcProvider.setupProvider(this.connector);
|
|
345
|
+
this.cleanupPendingPairings();
|
|
346
|
+
this.status = constants.CONNECTOR_STATUS.CONNECTED;
|
|
347
|
+
this.emit(constants.CONNECTOR_EVENTS.CONNECTED, {
|
|
348
|
+
connector: index.WALLET_CONNECTORS.WALLET_CONNECT_V2,
|
|
349
|
+
reconnected: this.rehydrated,
|
|
350
|
+
provider: this.provider
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
subscribeEvents() {
|
|
354
|
+
if (!this.connector) throw index$1.WalletInitializationError.notReady("Wallet connector is not ready yet");
|
|
355
|
+
this.connector.events.on("session_update", ({
|
|
356
|
+
topic,
|
|
357
|
+
params
|
|
358
|
+
}) => {
|
|
359
|
+
if (!this.connector) return;
|
|
360
|
+
const {
|
|
361
|
+
namespaces
|
|
362
|
+
} = params;
|
|
363
|
+
const _session = this.connector.session.get(topic);
|
|
364
|
+
// Overwrite the `namespaces` of the existing session with the incoming one.
|
|
365
|
+
const updatedSession = _objectSpread(_objectSpread({}, _session), {}, {
|
|
366
|
+
namespaces
|
|
367
|
+
});
|
|
368
|
+
// Integrate the updated session state into your dapp state.
|
|
369
|
+
this.activeSession = updatedSession;
|
|
370
|
+
});
|
|
371
|
+
this.connector.events.on("session_delete", () => {
|
|
372
|
+
// Session was deleted -> reset the dapp state, clean up from user session, etc.
|
|
373
|
+
this.disconnect({
|
|
374
|
+
sessionRemovedByWallet: true
|
|
375
|
+
});
|
|
376
|
+
});
|
|
377
|
+
}
|
|
378
|
+
async _getSignedMessage(challenge, accounts, chainNamespace) {
|
|
379
|
+
const signedMessage = await this.provider.request({
|
|
380
|
+
method: chainNamespace === IChainInterface.CHAIN_NAMESPACES.EIP155 ? wsEmbed.EVM_METHOD_TYPES.PERSONAL_SIGN : wsEmbed.SOLANA_METHOD_TYPES.SIGN_MESSAGE,
|
|
381
|
+
params: chainNamespace === IChainInterface.CHAIN_NAMESPACES.EIP155 ? [challenge, accounts[0]] : {
|
|
382
|
+
data: challenge
|
|
383
|
+
}
|
|
384
|
+
});
|
|
385
|
+
return signedMessage;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
const walletConnectV2Connector = params => {
|
|
389
|
+
return ({
|
|
390
|
+
projectConfig,
|
|
391
|
+
coreOptions
|
|
392
|
+
}) => {
|
|
393
|
+
let {
|
|
394
|
+
projectId
|
|
395
|
+
} = (params === null || params === void 0 ? void 0 : params.walletConnectInitOptions) || {};
|
|
396
|
+
|
|
397
|
+
// use project config if projectId is not set
|
|
398
|
+
if (projectConfig) {
|
|
399
|
+
const {
|
|
400
|
+
wallet_connect_enabled: walletConnectEnabled,
|
|
401
|
+
wallet_connect_project_id: walletConnectProjectId
|
|
402
|
+
} = projectConfig;
|
|
403
|
+
if (walletConnectEnabled && walletConnectProjectId && !projectId) projectId = walletConnectProjectId;
|
|
404
|
+
}
|
|
405
|
+
const connectorSettings = _objectSpread(_objectSpread({}, params), {}, {
|
|
406
|
+
walletConnectInitOptions: _objectSpread(_objectSpread({}, params === null || params === void 0 ? void 0 : params.walletConnectInitOptions), {}, {
|
|
407
|
+
projectId
|
|
408
|
+
})
|
|
409
|
+
});
|
|
410
|
+
return new WalletConnectV2Connector({
|
|
411
|
+
connectorSettings,
|
|
412
|
+
coreOptions
|
|
413
|
+
});
|
|
414
|
+
};
|
|
415
|
+
};
|
|
416
|
+
|
|
417
|
+
exports.walletConnectV2Connector = walletConnectV2Connector;
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
4
|
var utils = require('@walletconnect/utils');
|
|
5
5
|
var auth = require('@web3auth/auth');
|
|
6
|
+
var wsEmbed = require('@web3auth/ws-embed');
|
|
6
7
|
var bs58 = require('bs58');
|
|
7
8
|
var index = require('../../base/errors/index.js');
|
|
8
9
|
var config = require('./config.js');
|
|
@@ -69,7 +70,7 @@ function getEthProviderHandlers({
|
|
|
69
70
|
return getAccounts(connector);
|
|
70
71
|
},
|
|
71
72
|
processTransaction: async (txParams, _) => {
|
|
72
|
-
const methodRes = await sendJrpcRequest(connector, `eip155:${chainId}`,
|
|
73
|
+
const methodRes = await sendJrpcRequest(connector, `eip155:${chainId}`, wsEmbed.EVM_METHOD_TYPES.ETH_TRANSACTION, [txParams]);
|
|
73
74
|
return methodRes;
|
|
74
75
|
},
|
|
75
76
|
processSignTransaction: async (txParams, _) => {
|
|
@@ -77,15 +78,15 @@ function getEthProviderHandlers({
|
|
|
77
78
|
return methodRes;
|
|
78
79
|
},
|
|
79
80
|
processEthSignMessage: async (msgParams, _) => {
|
|
80
|
-
const methodRes = await sendJrpcRequest(connector, `eip155:${chainId}`,
|
|
81
|
+
const methodRes = await sendJrpcRequest(connector, `eip155:${chainId}`, wsEmbed.EVM_METHOD_TYPES.ETH_SIGN, [msgParams.from, msgParams.data]);
|
|
81
82
|
return methodRes;
|
|
82
83
|
},
|
|
83
84
|
processPersonalMessage: async (msgParams, _) => {
|
|
84
|
-
const methodRes = await sendJrpcRequest(connector, `eip155:${chainId}`,
|
|
85
|
+
const methodRes = await sendJrpcRequest(connector, `eip155:${chainId}`, wsEmbed.EVM_METHOD_TYPES.PERSONAL_SIGN, [msgParams.data, msgParams.from]);
|
|
85
86
|
return methodRes;
|
|
86
87
|
},
|
|
87
88
|
processTypedMessageV4: async msgParams => {
|
|
88
|
-
const methodRes = await sendJrpcRequest(connector, `eip155:${chainId}`,
|
|
89
|
+
const methodRes = await sendJrpcRequest(connector, `eip155:${chainId}`, wsEmbed.EVM_METHOD_TYPES.ETH_SIGN_TYPED_DATA_V4, [msgParams.from, msgParams.data]);
|
|
89
90
|
return methodRes;
|
|
90
91
|
}
|
|
91
92
|
};
|
|
@@ -117,26 +118,20 @@ function getSolProviderHandlers({
|
|
|
117
118
|
throw auth.rpcErrors.methodNotSupported();
|
|
118
119
|
},
|
|
119
120
|
signMessage: async req => {
|
|
120
|
-
const methodRes = await sendJrpcRequest(connector, `solana:${config.SOLANA_CAIP_CHAIN_MAP[chainId]}`,
|
|
121
|
-
message: bs58.encode(req.params.
|
|
121
|
+
const methodRes = await sendJrpcRequest(connector, `solana:${config.SOLANA_CAIP_CHAIN_MAP[chainId]}`, wsEmbed.SOLANA_METHOD_TYPES.SIGN_MESSAGE, {
|
|
122
|
+
message: bs58.encode(Buffer.from(req.params.data, "utf-8"))
|
|
122
123
|
});
|
|
123
|
-
return
|
|
124
|
+
return methodRes.signature;
|
|
124
125
|
},
|
|
125
126
|
signTransaction: async req => {
|
|
126
|
-
const
|
|
127
|
-
PublicKey
|
|
128
|
-
}, accounts] = await Promise.all([import('@solana/web3.js'), getAccounts(connector)]);
|
|
127
|
+
const accounts = await getAccounts(connector);
|
|
129
128
|
if (accounts.length === 0) {
|
|
130
129
|
throw auth.providerErrors.disconnected();
|
|
131
130
|
}
|
|
132
|
-
const methodRes = await sendJrpcRequest(connector, `solana:${config.SOLANA_CAIP_CHAIN_MAP[chainId]}`,
|
|
133
|
-
transaction: req.params.message
|
|
134
|
-
requireAllSignatures: false
|
|
135
|
-
}).toString("base64")
|
|
131
|
+
const methodRes = await sendJrpcRequest(connector, `solana:${config.SOLANA_CAIP_CHAIN_MAP[chainId]}`, wsEmbed.SOLANA_METHOD_TYPES.SIGN_TRANSACTION, {
|
|
132
|
+
transaction: req.params.message
|
|
136
133
|
});
|
|
137
|
-
|
|
138
|
-
finalTransaction.addSignature(new PublicKey(accounts[0]), Buffer.from(bs58.decode(methodRes.signature)));
|
|
139
|
-
return finalTransaction;
|
|
134
|
+
return methodRes.signature;
|
|
140
135
|
}
|
|
141
136
|
};
|
|
142
137
|
}
|
|
@@ -149,15 +144,7 @@ async function switchChain({
|
|
|
149
144
|
chainId: newChainId
|
|
150
145
|
}]);
|
|
151
146
|
}
|
|
152
|
-
async function addChain({
|
|
153
|
-
connector,
|
|
154
|
-
chainId,
|
|
155
|
-
chainConfig
|
|
156
|
-
}) {
|
|
157
|
-
await sendJrpcRequest(connector, `eip155:${chainId}`, "wallet_addEthereumChain", [chainConfig]);
|
|
158
|
-
}
|
|
159
147
|
|
|
160
|
-
exports.addChain = addChain;
|
|
161
148
|
exports.getAccounts = getAccounts;
|
|
162
149
|
exports.getEthProviderHandlers = getEthProviderHandlers;
|
|
163
150
|
exports.getSolProviderHandlers = getSolProviderHandlers;
|