@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,392 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
4
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
|
+
var auth = require('@web3auth/auth');
|
|
6
|
+
var deepmerge = require('deepmerge');
|
|
7
|
+
var IChainInterface = require('../../base/chain/IChainInterface.js');
|
|
8
|
+
var index$1 = require('../../base/errors/index.js');
|
|
9
|
+
var loglevel = require('../../base/loglevel.js');
|
|
10
|
+
var baseControllers = require('@toruslabs/base-controllers');
|
|
11
|
+
require('@toruslabs/constants');
|
|
12
|
+
require('@toruslabs/http-helpers');
|
|
13
|
+
var index = require('../../base/wallet/index.js');
|
|
14
|
+
var baseConnector = require('../../base/connector/baseConnector.js');
|
|
15
|
+
var constants = require('../../base/connector/constants.js');
|
|
16
|
+
|
|
17
|
+
class AuthConnector extends baseConnector.BaseConnector {
|
|
18
|
+
constructor(params) {
|
|
19
|
+
super(params);
|
|
20
|
+
_defineProperty(this, "name", index.WALLET_CONNECTORS.AUTH);
|
|
21
|
+
_defineProperty(this, "connectorNamespace", IChainInterface.CONNECTOR_NAMESPACES.MULTICHAIN);
|
|
22
|
+
_defineProperty(this, "type", constants.CONNECTOR_CATEGORY.IN_APP);
|
|
23
|
+
_defineProperty(this, "authInstance", null);
|
|
24
|
+
_defineProperty(this, "status", constants.CONNECTOR_STATUS.NOT_READY);
|
|
25
|
+
_defineProperty(this, "privateKeyProvider", null);
|
|
26
|
+
_defineProperty(this, "authOptions", void 0);
|
|
27
|
+
_defineProperty(this, "loginSettings", {
|
|
28
|
+
loginProvider: ""
|
|
29
|
+
});
|
|
30
|
+
_defineProperty(this, "wsSettings", {});
|
|
31
|
+
_defineProperty(this, "wsEmbedInstance", null);
|
|
32
|
+
this.authOptions = params.connectorSettings;
|
|
33
|
+
this.loginSettings = params.loginSettings || {
|
|
34
|
+
loginProvider: ""
|
|
35
|
+
};
|
|
36
|
+
this.wsSettings = params.walletServicesSettings || {};
|
|
37
|
+
}
|
|
38
|
+
get provider() {
|
|
39
|
+
if (this.status !== constants.CONNECTOR_STATUS.NOT_READY) {
|
|
40
|
+
var _this$wsEmbedInstance;
|
|
41
|
+
if ((_this$wsEmbedInstance = this.wsEmbedInstance) !== null && _this$wsEmbedInstance !== void 0 && _this$wsEmbedInstance.provider) {
|
|
42
|
+
return this.wsEmbedInstance.provider;
|
|
43
|
+
} else if (this.privateKeyProvider) return this.privateKeyProvider;
|
|
44
|
+
}
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
get wsEmbed() {
|
|
48
|
+
return this.wsEmbedInstance;
|
|
49
|
+
}
|
|
50
|
+
set provider(_) {
|
|
51
|
+
throw new Error("Not implemented");
|
|
52
|
+
}
|
|
53
|
+
async init(options) {
|
|
54
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === options.chainId);
|
|
55
|
+
super.checkInitializationRequirements({
|
|
56
|
+
chainConfig
|
|
57
|
+
});
|
|
58
|
+
if (!this.coreOptions.clientId) throw index$1.WalletInitializationError.invalidParams("clientId is required before auth's initialization");
|
|
59
|
+
if (!this.authOptions) throw index$1.WalletInitializationError.invalidParams("authOptions is required before auth's initialization");
|
|
60
|
+
const isRedirectResult = this.authOptions.uxMode === auth.UX_MODE.REDIRECT;
|
|
61
|
+
this.authOptions = _objectSpread(_objectSpread({}, this.authOptions), {}, {
|
|
62
|
+
replaceUrlOnRedirect: isRedirectResult,
|
|
63
|
+
useCoreKitKey: this.coreOptions.useCoreKitKey
|
|
64
|
+
});
|
|
65
|
+
const web3AuthNetwork = this.coreOptions.web3AuthNetwork || auth.WEB3AUTH_NETWORK.SAPPHIRE_MAINNET;
|
|
66
|
+
this.authInstance = new auth.Auth(_objectSpread(_objectSpread({}, this.authOptions), {}, {
|
|
67
|
+
clientId: this.coreOptions.clientId,
|
|
68
|
+
network: web3AuthNetwork
|
|
69
|
+
}));
|
|
70
|
+
loglevel.log.debug("initializing auth connector init");
|
|
71
|
+
await this.authInstance.init();
|
|
72
|
+
|
|
73
|
+
// Use this for xrpl, mpc cases
|
|
74
|
+
if (this.coreOptions.privateKeyProvider) {
|
|
75
|
+
this.privateKeyProvider = this.coreOptions.privateKeyProvider;
|
|
76
|
+
} else {
|
|
77
|
+
// initialize ws embed or private key provider based on chain namespace
|
|
78
|
+
switch (chainConfig.chainNamespace) {
|
|
79
|
+
case IChainInterface.CHAIN_NAMESPACES.EIP155:
|
|
80
|
+
case IChainInterface.CHAIN_NAMESPACES.SOLANA:
|
|
81
|
+
{
|
|
82
|
+
const {
|
|
83
|
+
default: WsEmbed
|
|
84
|
+
} = await import('@web3auth/ws-embed');
|
|
85
|
+
this.wsEmbedInstance = new WsEmbed({
|
|
86
|
+
web3AuthClientId: this.coreOptions.clientId,
|
|
87
|
+
web3AuthNetwork,
|
|
88
|
+
modalZIndex: this.wsSettings.modalZIndex
|
|
89
|
+
});
|
|
90
|
+
// TODO: once support multiple chains, only pass chains of solana and EVM
|
|
91
|
+
await this.wsEmbedInstance.init(_objectSpread(_objectSpread({}, this.wsSettings), {}, {
|
|
92
|
+
chainConfig: chainConfig,
|
|
93
|
+
// TODO: upgrade ws-embed to support custom chain config
|
|
94
|
+
whiteLabel: _objectSpread(_objectSpread({}, this.authOptions.whiteLabel), this.wsSettings.whiteLabel)
|
|
95
|
+
}));
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
case IChainInterface.CHAIN_NAMESPACES.XRPL:
|
|
99
|
+
throw index$1.WalletLoginError.connectionError("Private key provider is required for XRPL");
|
|
100
|
+
default:
|
|
101
|
+
{
|
|
102
|
+
const {
|
|
103
|
+
CommonPrivateKeyProvider
|
|
104
|
+
} = await Promise.resolve().then(function () { return require('../../providers/base-provider/index.js'); });
|
|
105
|
+
this.privateKeyProvider = new CommonPrivateKeyProvider({
|
|
106
|
+
config: {
|
|
107
|
+
chain: chainConfig,
|
|
108
|
+
chains: this.coreOptions.chains
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
115
|
+
this.emit(constants.CONNECTOR_EVENTS.READY, index.WALLET_CONNECTORS.AUTH);
|
|
116
|
+
try {
|
|
117
|
+
loglevel.log.debug("initializing auth connector");
|
|
118
|
+
const {
|
|
119
|
+
sessionId
|
|
120
|
+
} = this.authInstance || {};
|
|
121
|
+
// connect only if it is redirect result or if connect (connector is cached/already connected in same session) is true
|
|
122
|
+
if (sessionId && (options.autoConnect || isRedirectResult)) {
|
|
123
|
+
this.rehydrated = true;
|
|
124
|
+
await this.connect({
|
|
125
|
+
chainId: options.chainId
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
} catch (error) {
|
|
129
|
+
loglevel.log.error("Failed to connect with cached auth provider", error);
|
|
130
|
+
this.emit(constants.CONNECTOR_EVENTS.ERRORED, error);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
async connect(params) {
|
|
134
|
+
super.checkConnectionRequirements();
|
|
135
|
+
this.status = constants.CONNECTOR_STATUS.CONNECTING;
|
|
136
|
+
this.emit(constants.CONNECTOR_EVENTS.CONNECTING, _objectSpread(_objectSpread({}, params), {}, {
|
|
137
|
+
connector: index.WALLET_CONNECTORS.AUTH
|
|
138
|
+
}));
|
|
139
|
+
try {
|
|
140
|
+
await this.connectWithProvider(params);
|
|
141
|
+
return this.provider;
|
|
142
|
+
} catch (error) {
|
|
143
|
+
loglevel.log.error("Failed to connect with auth provider", error);
|
|
144
|
+
// ready again to be connected
|
|
145
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
146
|
+
this.emit(constants.CONNECTOR_EVENTS.ERRORED, error);
|
|
147
|
+
if (error !== null && error !== void 0 && error.message.includes("user closed popup")) {
|
|
148
|
+
throw index$1.WalletLoginError.popupClosed();
|
|
149
|
+
} else if (error instanceof index$1.Web3AuthError) {
|
|
150
|
+
throw error;
|
|
151
|
+
}
|
|
152
|
+
throw index$1.WalletLoginError.connectionError("Failed to login with auth", error);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async enableMFA(params = {
|
|
156
|
+
loginProvider: ""
|
|
157
|
+
}) {
|
|
158
|
+
if (this.status !== constants.CONNECTOR_STATUS.CONNECTED) throw index$1.WalletLoginError.notConnectedError("Not connected with wallet");
|
|
159
|
+
if (!this.authInstance) throw index$1.WalletInitializationError.notReady("authInstance is not ready");
|
|
160
|
+
try {
|
|
161
|
+
await this.authInstance.enableMFA(params);
|
|
162
|
+
} catch (error) {
|
|
163
|
+
loglevel.log.error("Failed to enable MFA with auth provider", error);
|
|
164
|
+
if (error instanceof index$1.Web3AuthError) {
|
|
165
|
+
throw error;
|
|
166
|
+
}
|
|
167
|
+
throw index$1.WalletLoginError.connectionError("Failed to enable MFA with auth", error);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async manageMFA(params = {
|
|
171
|
+
loginProvider: ""
|
|
172
|
+
}) {
|
|
173
|
+
if (this.status !== constants.CONNECTOR_STATUS.CONNECTED) throw index$1.WalletLoginError.notConnectedError("Not connected with wallet");
|
|
174
|
+
if (!this.authInstance) throw index$1.WalletInitializationError.notReady("authInstance is not ready");
|
|
175
|
+
try {
|
|
176
|
+
await this.authInstance.manageMFA(params);
|
|
177
|
+
} catch (error) {
|
|
178
|
+
loglevel.log.error("Failed to manage MFA with auth provider", error);
|
|
179
|
+
if (error instanceof index$1.Web3AuthError) {
|
|
180
|
+
throw error;
|
|
181
|
+
}
|
|
182
|
+
throw index$1.WalletLoginError.connectionError("Failed to manage MFA with auth", error);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
async disconnect(options = {
|
|
186
|
+
cleanup: false
|
|
187
|
+
}) {
|
|
188
|
+
if (this.status !== constants.CONNECTOR_STATUS.CONNECTED) throw index$1.WalletLoginError.notConnectedError("Not connected with wallet");
|
|
189
|
+
if (!this.authInstance) throw index$1.WalletInitializationError.notReady("authInstance is not ready");
|
|
190
|
+
this.status = constants.CONNECTOR_STATUS.DISCONNECTING;
|
|
191
|
+
await this.authInstance.logout();
|
|
192
|
+
if (this.wsEmbedInstance) await this.wsEmbedInstance.logout();
|
|
193
|
+
if (options.cleanup) {
|
|
194
|
+
this.status = constants.CONNECTOR_STATUS.NOT_READY;
|
|
195
|
+
this.authInstance = null;
|
|
196
|
+
if (this.wsEmbedInstance) this.wsEmbedInstance = null;
|
|
197
|
+
if (this.privateKeyProvider) this.privateKeyProvider = null;
|
|
198
|
+
} else {
|
|
199
|
+
// ready to be connected again
|
|
200
|
+
this.status = constants.CONNECTOR_STATUS.READY;
|
|
201
|
+
}
|
|
202
|
+
this.rehydrated = false;
|
|
203
|
+
this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED);
|
|
204
|
+
}
|
|
205
|
+
async authenticateUser() {
|
|
206
|
+
if (this.status !== constants.CONNECTOR_STATUS.CONNECTED) throw index$1.WalletLoginError.notConnectedError("Not connected with wallet, Please login/connect first");
|
|
207
|
+
const userInfo = await this.getUserInfo();
|
|
208
|
+
return {
|
|
209
|
+
idToken: userInfo.idToken
|
|
210
|
+
};
|
|
211
|
+
}
|
|
212
|
+
async getUserInfo() {
|
|
213
|
+
if (this.status !== constants.CONNECTOR_STATUS.CONNECTED) throw index$1.WalletLoginError.notConnectedError("Not connected with wallet");
|
|
214
|
+
if (!this.authInstance) throw index$1.WalletInitializationError.notReady("authInstance is not ready");
|
|
215
|
+
const userInfo = this.authInstance.getUserInfo();
|
|
216
|
+
return userInfo;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// we don't support switching between different namespaces, except for solana and evm
|
|
220
|
+
async switchChain(params, init = false) {
|
|
221
|
+
super.checkSwitchChainRequirements(params, init);
|
|
222
|
+
// get chains and namespaces
|
|
223
|
+
const {
|
|
224
|
+
chainId: newChainId
|
|
225
|
+
} = params;
|
|
226
|
+
const {
|
|
227
|
+
chainId: currentChainId
|
|
228
|
+
} = this.provider;
|
|
229
|
+
const {
|
|
230
|
+
chainNamespace: currentNamespace
|
|
231
|
+
} = this.getChain(currentChainId);
|
|
232
|
+
const {
|
|
233
|
+
chainNamespace: newNamespace
|
|
234
|
+
} = this.getChain(newChainId);
|
|
235
|
+
|
|
236
|
+
// skip if chainId is the same
|
|
237
|
+
if (currentChainId === newChainId) return;
|
|
238
|
+
if (currentNamespace === IChainInterface.CHAIN_NAMESPACES.SOLANA || currentNamespace === IChainInterface.CHAIN_NAMESPACES.EIP155) {
|
|
239
|
+
var _this$wsEmbedInstance2;
|
|
240
|
+
// can only switch to solana or evm
|
|
241
|
+
if (newNamespace !== IChainInterface.CHAIN_NAMESPACES.SOLANA && newNamespace !== IChainInterface.CHAIN_NAMESPACES.EIP155) throw index$1.WalletLoginError.connectionError("Cannot switch to other chain namespace");
|
|
242
|
+
const fullChainId = `${newNamespace}:${Number(params.chainId)}`;
|
|
243
|
+
await ((_this$wsEmbedInstance2 = this.wsEmbedInstance.provider) === null || _this$wsEmbedInstance2 === void 0 ? void 0 : _this$wsEmbedInstance2.request({
|
|
244
|
+
method: "wallet_switchChain",
|
|
245
|
+
params: {
|
|
246
|
+
chainId: fullChainId
|
|
247
|
+
}
|
|
248
|
+
}));
|
|
249
|
+
} else {
|
|
250
|
+
var _this$privateKeyProvi;
|
|
251
|
+
// cannot switch to other namespaces
|
|
252
|
+
if (currentNamespace !== newNamespace) throw index$1.WalletLoginError.connectionError("Cannot switch to other chain namespace");
|
|
253
|
+
await ((_this$privateKeyProvi = this.privateKeyProvider) === null || _this$privateKeyProvi === void 0 ? void 0 : _this$privateKeyProvi.switchChain(params));
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
getChain(chainId) {
|
|
257
|
+
return this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
258
|
+
}
|
|
259
|
+
_getFinalPrivKey() {
|
|
260
|
+
if (!this.authInstance) return "";
|
|
261
|
+
let finalPrivKey = this.authInstance.privKey;
|
|
262
|
+
// coreKitKey is available only for custom verifiers by default
|
|
263
|
+
if (this.coreOptions.useCoreKitKey) {
|
|
264
|
+
// this is to check if the user has already logged in but coreKitKey is not available.
|
|
265
|
+
// when useCoreKitKey is set to true.
|
|
266
|
+
// This is to ensure that when there is no user session active, we don't throw an exception.
|
|
267
|
+
if (this.authInstance.privKey && !this.authInstance.coreKitKey) {
|
|
268
|
+
throw index$1.WalletLoginError.coreKitKeyNotFound();
|
|
269
|
+
}
|
|
270
|
+
finalPrivKey = this.authInstance.coreKitKey;
|
|
271
|
+
}
|
|
272
|
+
return finalPrivKey;
|
|
273
|
+
}
|
|
274
|
+
async connectWithProvider(params) {
|
|
275
|
+
var _this$authInstance, _params$extraLoginOpt;
|
|
276
|
+
if (!this.authInstance) throw index$1.WalletInitializationError.notReady("authInstance is not ready");
|
|
277
|
+
const chainConfig = this.coreOptions.chains.find(x => x.chainId === params.chainId);
|
|
278
|
+
if (!chainConfig) throw index$1.WalletLoginError.connectionError("Chain config is not available");
|
|
279
|
+
const {
|
|
280
|
+
chainNamespace
|
|
281
|
+
} = chainConfig;
|
|
282
|
+
|
|
283
|
+
// if not logged in then login
|
|
284
|
+
const keyAvailable = chainNamespace === IChainInterface.CHAIN_NAMESPACES.EIP155 || chainNamespace === IChainInterface.CHAIN_NAMESPACES.SOLANA ? (_this$authInstance = this.authInstance) === null || _this$authInstance === void 0 ? void 0 : _this$authInstance.sessionId : this._getFinalPrivKey();
|
|
285
|
+
if (!keyAvailable || (_params$extraLoginOpt = params.extraLoginOptions) !== null && _params$extraLoginOpt !== void 0 && _params$extraLoginOpt.id_token) {
|
|
286
|
+
var _params$extraLoginOpt2;
|
|
287
|
+
// always use "other" curve to return token with all keys encoded so wallet service can switch between evm and solana namespace
|
|
288
|
+
this.loginSettings.curve = auth.SUPPORTED_KEY_CURVES.OTHER;
|
|
289
|
+
if (!params.loginProvider && !this.loginSettings.loginProvider) throw index$1.WalletInitializationError.invalidParams("loginProvider is required for login");
|
|
290
|
+
await this.authInstance.login(deepmerge.all([this.loginSettings, params, {
|
|
291
|
+
extraLoginOptions: _objectSpread(_objectSpread({}, params.extraLoginOptions || {}), {}, {
|
|
292
|
+
login_hint: params.login_hint || ((_params$extraLoginOpt2 = params.extraLoginOptions) === null || _params$extraLoginOpt2 === void 0 ? void 0 : _params$extraLoginOpt2.login_hint)
|
|
293
|
+
})
|
|
294
|
+
}]));
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
// setup WS embed if chainNamespace is EIP155 or SOLANA
|
|
298
|
+
if (chainNamespace === IChainInterface.CHAIN_NAMESPACES.EIP155 || chainNamespace === IChainInterface.CHAIN_NAMESPACES.SOLANA) {
|
|
299
|
+
const {
|
|
300
|
+
sessionId,
|
|
301
|
+
sessionNamespace
|
|
302
|
+
} = this.authInstance || {};
|
|
303
|
+
if (sessionId) {
|
|
304
|
+
const isLoggedIn = await this.wsEmbedInstance.loginWithSessionId({
|
|
305
|
+
sessionId,
|
|
306
|
+
sessionNamespace
|
|
307
|
+
});
|
|
308
|
+
if (isLoggedIn) {
|
|
309
|
+
var _this$wsEmbedInstance3;
|
|
310
|
+
this.status = constants.CONNECTOR_STATUS.CONNECTED;
|
|
311
|
+
this.emit(constants.CONNECTOR_EVENTS.CONNECTED, {
|
|
312
|
+
connector: index.WALLET_CONNECTORS.AUTH,
|
|
313
|
+
reconnected: this.rehydrated,
|
|
314
|
+
provider: this.provider
|
|
315
|
+
});
|
|
316
|
+
// handle disconnect from ws embed
|
|
317
|
+
(_this$wsEmbedInstance3 = this.wsEmbedInstance) === null || _this$wsEmbedInstance3 === void 0 || _this$wsEmbedInstance3.provider.on("accountsChanged", (accounts = []) => {
|
|
318
|
+
if (accounts.length === 0 && this.status === constants.CONNECTOR_STATUS.CONNECTED) this.disconnect({
|
|
319
|
+
cleanup: false
|
|
320
|
+
});
|
|
321
|
+
});
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
} else {
|
|
325
|
+
// setup private key provider if chainNamespace is other
|
|
326
|
+
const finalPrivKey = this._getFinalPrivKey();
|
|
327
|
+
if (finalPrivKey) {
|
|
328
|
+
await this.privateKeyProvider.setupProvider(finalPrivKey, params.chainId);
|
|
329
|
+
this.status = constants.CONNECTOR_STATUS.CONNECTED;
|
|
330
|
+
this.emit(constants.CONNECTOR_EVENTS.CONNECTED, {
|
|
331
|
+
connector: index.WALLET_CONNECTORS.AUTH,
|
|
332
|
+
reconnected: this.rehydrated,
|
|
333
|
+
provider: this.provider
|
|
334
|
+
});
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
}
|
|
339
|
+
const authConnector = params => {
|
|
340
|
+
return ({
|
|
341
|
+
projectConfig,
|
|
342
|
+
coreOptions
|
|
343
|
+
}) => {
|
|
344
|
+
var _coreOptions$uiConfig, _coreOptions$walletSe;
|
|
345
|
+
// Connector settings
|
|
346
|
+
const connectorSettings = {};
|
|
347
|
+
const {
|
|
348
|
+
sms_otp_enabled: smsOtpEnabled,
|
|
349
|
+
whitelist
|
|
350
|
+
} = projectConfig;
|
|
351
|
+
if (smsOtpEnabled !== undefined) {
|
|
352
|
+
connectorSettings.loginConfig = {
|
|
353
|
+
[auth.LOGIN_PROVIDER.SMS_PASSWORDLESS]: {
|
|
354
|
+
showOnModal: smsOtpEnabled,
|
|
355
|
+
showOnDesktop: smsOtpEnabled,
|
|
356
|
+
showOnMobile: smsOtpEnabled,
|
|
357
|
+
showOnSocialBackupFactor: smsOtpEnabled
|
|
358
|
+
}
|
|
359
|
+
};
|
|
360
|
+
}
|
|
361
|
+
if (whitelist) connectorSettings.originData = whitelist.signed_urls;
|
|
362
|
+
if ((_coreOptions$uiConfig = coreOptions.uiConfig) !== null && _coreOptions$uiConfig !== void 0 && _coreOptions$uiConfig.uxMode) connectorSettings.uxMode = coreOptions.uiConfig.uxMode;
|
|
363
|
+
const uiConfig = deepmerge(baseControllers.cloneDeep((projectConfig === null || projectConfig === void 0 ? void 0 : projectConfig.whitelabel) || {}), coreOptions.uiConfig || {});
|
|
364
|
+
if (!uiConfig.mode) uiConfig.mode = "light";
|
|
365
|
+
connectorSettings.whiteLabel = uiConfig;
|
|
366
|
+
const finalConnectorSettings = deepmerge.all([{
|
|
367
|
+
uxMode: auth.UX_MODE.POPUP
|
|
368
|
+
},
|
|
369
|
+
// default settings
|
|
370
|
+
(params === null || params === void 0 ? void 0 : params.connectorSettings) || {}, connectorSettings]);
|
|
371
|
+
|
|
372
|
+
// WS settings
|
|
373
|
+
const isKeyExportEnabled = typeof projectConfig.key_export_enabled === "boolean" ? projectConfig.key_export_enabled : true;
|
|
374
|
+
const finalWsSettings = _objectSpread(_objectSpread({}, coreOptions.walletServicesConfig), {}, {
|
|
375
|
+
whiteLabel: _objectSpread(_objectSpread({}, uiConfig), (_coreOptions$walletSe = coreOptions.walletServicesConfig) === null || _coreOptions$walletSe === void 0 ? void 0 : _coreOptions$walletSe.whiteLabel),
|
|
376
|
+
accountAbstractionConfig: coreOptions.accountAbstractionConfig,
|
|
377
|
+
enableLogging: coreOptions.enableLogging
|
|
378
|
+
// enableKeyExport: keyExportEnabled, TODO: add this to ws embed and implement in WS
|
|
379
|
+
});
|
|
380
|
+
|
|
381
|
+
// Core options
|
|
382
|
+
if (coreOptions.privateKeyProvider) coreOptions.privateKeyProvider.setKeyExportFlag(isKeyExportEnabled);
|
|
383
|
+
return new AuthConnector({
|
|
384
|
+
connectorSettings: finalConnectorSettings,
|
|
385
|
+
walletServicesSettings: finalWsSettings,
|
|
386
|
+
loginSettings: params === null || params === void 0 ? void 0 : params.loginSettings,
|
|
387
|
+
coreOptions
|
|
388
|
+
});
|
|
389
|
+
};
|
|
390
|
+
};
|
|
391
|
+
|
|
392
|
+
exports.authConnector = authConnector;
|
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var baseControllers = require('@toruslabs/base-controllers');
|
|
4
|
-
var
|
|
5
|
-
var IChainInterface = require('../../base/chain/IChainInterface.js');
|
|
4
|
+
var wsEmbed = require('@web3auth/ws-embed');
|
|
6
5
|
var index = require('../../base/errors/index.js');
|
|
7
|
-
var utils = require('../../base/
|
|
8
|
-
var
|
|
9
|
-
var constants = require('../../base/
|
|
6
|
+
var utils = require('../../base/connector/utils.js');
|
|
7
|
+
var baseConnector = require('../../base/connector/baseConnector.js');
|
|
8
|
+
var constants = require('../../base/connector/constants.js');
|
|
10
9
|
|
|
11
|
-
class
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
10
|
+
class BaseEvmConnector extends baseConnector.BaseConnector {
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
12
|
+
async init(_) {}
|
|
15
13
|
async authenticateUser() {
|
|
16
|
-
if (!this.provider || this.status !== constants.
|
|
17
|
-
|
|
18
|
-
chainNamespace,
|
|
19
|
-
chainId
|
|
20
|
-
} = this.chainConfig;
|
|
14
|
+
if (!this.provider || this.status !== constants.CONNECTOR_STATUS.CONNECTED) throw index.WalletLoginError.notConnectedError();
|
|
15
|
+
if (!this.coreOptions) throw index.WalletInitializationError.invalidParams("Please initialize Web3Auth with valid options");
|
|
21
16
|
const accounts = await this.provider.request({
|
|
22
|
-
method:
|
|
17
|
+
method: wsEmbed.EVM_METHOD_TYPES.GET_ACCOUNTS
|
|
23
18
|
});
|
|
24
19
|
if (accounts && accounts.length > 0) {
|
|
25
20
|
const existingToken = utils.getSavedToken(accounts[0], this.name);
|
|
@@ -31,6 +26,14 @@ class BaseEvmAdapter extends baseAdapter.BaseAdapter {
|
|
|
31
26
|
};
|
|
32
27
|
}
|
|
33
28
|
}
|
|
29
|
+
const chainId = await this.provider.request({
|
|
30
|
+
method: "eth_chainId"
|
|
31
|
+
});
|
|
32
|
+
const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
33
|
+
if (!currentChainConfig) throw index.WalletInitializationError.invalidParams("chainConfig is required before authentication");
|
|
34
|
+
const {
|
|
35
|
+
chainNamespace
|
|
36
|
+
} = currentChainConfig;
|
|
34
37
|
const payload = {
|
|
35
38
|
domain: window.location.origin,
|
|
36
39
|
uri: window.location.href,
|
|
@@ -43,10 +46,10 @@ class BaseEvmAdapter extends baseAdapter.BaseAdapter {
|
|
|
43
46
|
const challenge = await baseControllers.signChallenge(payload, chainNamespace);
|
|
44
47
|
const hexChallenge = `0x${Buffer.from(challenge, "utf8").toString("hex")}`;
|
|
45
48
|
const signedMessage = await this.provider.request({
|
|
46
|
-
method:
|
|
49
|
+
method: wsEmbed.EVM_METHOD_TYPES.PERSONAL_SIGN,
|
|
47
50
|
params: [hexChallenge, accounts[0]]
|
|
48
51
|
});
|
|
49
|
-
const idToken = await baseControllers.verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.sessionTime, this.clientId, this.web3AuthNetwork);
|
|
52
|
+
const idToken = await baseControllers.verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
|
|
50
53
|
utils.saveToken(accounts[0], this.name, idToken);
|
|
51
54
|
return {
|
|
52
55
|
idToken
|
|
@@ -65,8 +68,8 @@ class BaseEvmAdapter extends baseAdapter.BaseAdapter {
|
|
|
65
68
|
}
|
|
66
69
|
async disconnect() {
|
|
67
70
|
this.rehydrated = false;
|
|
68
|
-
this.emit(constants.
|
|
71
|
+
this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED);
|
|
69
72
|
}
|
|
70
73
|
}
|
|
71
74
|
|
|
72
|
-
exports.
|
|
75
|
+
exports.BaseEvmConnector = BaseEvmConnector;
|
|
@@ -1,26 +1,20 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var baseControllers = require('@toruslabs/base-controllers');
|
|
4
|
-
var
|
|
5
|
-
var config = require('../../base/chain/config.js');
|
|
6
|
-
var IChainInterface = require('../../base/chain/IChainInterface.js');
|
|
4
|
+
var wsEmbed = require('@web3auth/ws-embed');
|
|
7
5
|
var index = require('../../base/errors/index.js');
|
|
8
|
-
var
|
|
9
|
-
var constants = require('../../base/
|
|
10
|
-
var utils = require('../../base/
|
|
6
|
+
var baseConnector = require('../../base/connector/baseConnector.js');
|
|
7
|
+
var constants = require('../../base/connector/constants.js');
|
|
8
|
+
var utils = require('../../base/connector/utils.js');
|
|
11
9
|
|
|
12
|
-
class
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
10
|
+
class BaseSolanaConnector extends baseConnector.BaseConnector {
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
12
|
+
async init(_) {}
|
|
16
13
|
async authenticateUser() {
|
|
17
|
-
if (!this.provider || this.status !== constants.
|
|
18
|
-
|
|
19
|
-
chainNamespace,
|
|
20
|
-
chainId
|
|
21
|
-
} = this.chainConfig;
|
|
14
|
+
if (!this.provider || this.status !== constants.CONNECTOR_STATUS.CONNECTED) throw index.WalletLoginError.notConnectedError();
|
|
15
|
+
if (!this.coreOptions) throw index.WalletInitializationError.invalidParams("Please initialize Web3Auth with a valid options");
|
|
22
16
|
const accounts = await this.provider.request({
|
|
23
|
-
method:
|
|
17
|
+
method: wsEmbed.SOLANA_METHOD_TYPES.GET_ACCOUNTS
|
|
24
18
|
});
|
|
25
19
|
if (accounts && accounts.length > 0) {
|
|
26
20
|
const existingToken = utils.getSavedToken(accounts[0], this.name);
|
|
@@ -32,6 +26,14 @@ class BaseSolanaAdapter extends baseAdapter.BaseAdapter {
|
|
|
32
26
|
};
|
|
33
27
|
}
|
|
34
28
|
}
|
|
29
|
+
const chainId = await this.provider.request({
|
|
30
|
+
method: "solana_chainId"
|
|
31
|
+
});
|
|
32
|
+
const currentChainConfig = this.coreOptions.chains.find(x => x.chainId === chainId);
|
|
33
|
+
if (!currentChainConfig) throw index.WalletInitializationError.invalidParams("chainConfig is required before authentication");
|
|
34
|
+
const {
|
|
35
|
+
chainNamespace
|
|
36
|
+
} = currentChainConfig;
|
|
35
37
|
const payload = {
|
|
36
38
|
domain: window.location.origin,
|
|
37
39
|
uri: window.location.href,
|
|
@@ -42,15 +44,14 @@ class BaseSolanaAdapter extends baseAdapter.BaseAdapter {
|
|
|
42
44
|
issuedAt: new Date().toISOString()
|
|
43
45
|
};
|
|
44
46
|
const challenge = await baseControllers.signChallenge(payload, chainNamespace);
|
|
45
|
-
const encodedMessage = new TextEncoder().encode(challenge);
|
|
46
47
|
const signedMessage = await this.provider.request({
|
|
47
|
-
method:
|
|
48
|
+
method: wsEmbed.SOLANA_METHOD_TYPES.SIGN_MESSAGE,
|
|
48
49
|
params: {
|
|
49
|
-
|
|
50
|
+
data: challenge,
|
|
50
51
|
display: "utf8"
|
|
51
52
|
}
|
|
52
53
|
});
|
|
53
|
-
const idToken = await baseControllers.verifySignedChallenge(chainNamespace,
|
|
54
|
+
const idToken = await baseControllers.verifySignedChallenge(chainNamespace, signedMessage, challenge, this.name, this.coreOptions.sessionTime, this.coreOptions.clientId, this.coreOptions.web3AuthNetwork);
|
|
54
55
|
utils.saveToken(accounts[0], this.name, idToken);
|
|
55
56
|
return {
|
|
56
57
|
idToken
|
|
@@ -61,7 +62,7 @@ class BaseSolanaAdapter extends baseAdapter.BaseAdapter {
|
|
|
61
62
|
async disconnectSession() {
|
|
62
63
|
super.checkDisconnectionRequirements();
|
|
63
64
|
const accounts = await this.provider.request({
|
|
64
|
-
method:
|
|
65
|
+
method: wsEmbed.SOLANA_METHOD_TYPES.GET_ACCOUNTS
|
|
65
66
|
});
|
|
66
67
|
if (accounts && accounts.length > 0) {
|
|
67
68
|
utils.clearToken(accounts[0], this.name);
|
|
@@ -69,8 +70,8 @@ class BaseSolanaAdapter extends baseAdapter.BaseAdapter {
|
|
|
69
70
|
}
|
|
70
71
|
async disconnect() {
|
|
71
72
|
this.rehydrated = false;
|
|
72
|
-
this.emit(constants.
|
|
73
|
+
this.emit(constants.CONNECTOR_EVENTS.DISCONNECTED);
|
|
73
74
|
}
|
|
74
75
|
}
|
|
75
76
|
|
|
76
|
-
exports.
|
|
77
|
+
exports.BaseSolanaConnector = BaseSolanaConnector;
|