@dynamic-labs/multi-wallet 0.17.0-RC.7 → 0.17.0-RC.9
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/CHANGELOG.md +37 -0
- package/package.json +8 -14
- package/src/index.cjs +0 -57
- package/src/index.d.ts +0 -13
- package/src/index.js +1 -18
- package/src/multi-wallet.cjs +27 -87
- package/src/multi-wallet.d.ts +0 -1
- package/src/multi-wallet.js +25 -84
- package/src/types.d.ts +2 -23
- package/src/utils/getApiProviders.cjs +15 -0
- package/src/utils/getApiProviders.d.ts +10 -0
- package/src/utils/getApiProviders.js +11 -0
- package/src/utils/message.cjs +3 -4
- package/src/utils/message.js +1 -2
- package/src/wallets/algorand/MyAlgoWalletConnector.cjs +3 -3
- package/src/wallets/algorand/MyAlgoWalletConnector.js +1 -1
- package/src/wallets/constants.cjs +0 -2
- package/src/wallets/constants.js +1 -2
- package/src/wallets/cosmos/KeplrWalletConnect.cjs +16 -17
- package/src/wallets/cosmos/KeplrWalletConnect.d.ts +9 -5
- package/src/wallets/cosmos/KeplrWalletConnect.js +9 -10
- package/src/wallets/cosmos/KeplrWalletConnector.cjs +13 -5
- package/src/wallets/cosmos/KeplrWalletConnector.d.ts +6 -4
- package/src/wallets/cosmos/KeplrWalletConnector.js +13 -5
- package/src/wallets/cosmos/wcClient.lib.cjs +141 -0
- package/src/wallets/{clients/walletConnect/walletConnect.d.ts → cosmos/wcClient.lib.d.ts} +8 -11
- package/src/wallets/cosmos/wcClient.lib.js +126 -0
- package/src/wallets/flow/FlowWalletConnector.cjs +7 -8
- package/src/wallets/flow/FlowWalletConnector.js +2 -3
- package/src/wallets/flow/lilico.cjs +2 -2
- package/src/wallets/flow/lilico.js +1 -1
- package/src/wallets/solana/CoinbaseSolana.cjs +8 -11
- package/src/wallets/solana/CoinbaseSolana.d.ts +1 -3
- package/src/wallets/solana/CoinbaseSolana.js +8 -11
- package/src/wallets/solana/glow.cjs +8 -11
- package/src/wallets/solana/glow.d.ts +1 -3
- package/src/wallets/solana/glow.js +8 -11
- package/src/wallets/solana/injected/BraveSol.cjs +2 -1
- package/src/wallets/solana/injected/BraveSol.js +2 -1
- package/src/wallets/solana/phantom-ledger.cjs +5 -5
- package/src/wallets/solana/phantom-ledger.js +1 -1
- package/src/wallets/solana/phantom.cjs +11 -15
- package/src/wallets/solana/phantom.d.ts +1 -3
- package/src/wallets/solana/phantom.js +9 -13
- package/src/wallets/solana/slope.cjs +4 -4
- package/src/wallets/solana/slope.js +1 -1
- package/src/wallets/solana/solProviderHelper.cjs +49 -51
- package/src/wallets/solana/solProviderHelper.d.ts +20 -20
- package/src/wallets/solana/solProviderHelper.js +48 -50
- package/src/wallets/solana/solWalletConnector.cjs +2 -2
- package/src/wallets/solana/solWalletConnector.js +1 -1
- package/src/wallets/solana/solflare.cjs +6 -7
- package/src/wallets/solana/solflare.d.ts +0 -2
- package/src/wallets/solana/solflare.js +6 -7
- package/src/wallets/starknet/braavos.cjs +2 -2
- package/src/wallets/starknet/braavos.js +1 -1
- package/src/wallets/starknet/starknetWalletConnector.cjs +5 -6
- package/src/wallets/starknet/starknetWalletConnector.js +2 -3
- package/src/wallets/window.d.ts +10 -22
- package/src/errors.cjs +0 -66
- package/src/errors.d.ts +0 -34
- package/src/errors.js +0 -54
- package/src/utils/CancellablePromise/CancellablePromise.cjs +0 -33
- package/src/utils/CancellablePromise/CancellablePromise.d.ts +0 -9
- package/src/utils/CancellablePromise/CancellablePromise.js +0 -29
- package/src/utils/CancellablePromise/index.d.ts +0 -1
- package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.cjs +0 -54
- package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.d.ts +0 -3
- package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.js +0 -50
- package/src/utils/assignConfirmationScreenToProvider/index.d.ts +0 -1
- package/src/utils/encoding.cjs +0 -18
- package/src/utils/encoding.d.ts +0 -4
- package/src/utils/encoding.js +0 -12
- package/src/utils/findProvider/findProvider.cjs +0 -7
- package/src/utils/findProvider/findProvider.d.ts +0 -2
- package/src/utils/findProvider/findProvider.js +0 -3
- package/src/utils/findProvider/index.d.ts +0 -1
- package/src/utils/getChainInfo/getChainInfo.cjs +0 -59
- package/src/utils/getChainInfo/getChainInfo.d.ts +0 -2
- package/src/utils/getChainInfo/getChainInfo.js +0 -55
- package/src/utils/getChainInfo/index.d.ts +0 -1
- package/src/utils/getWalletConnectorByName.cjs +0 -19
- package/src/utils/getWalletConnectorByName.d.ts +0 -2
- package/src/utils/getWalletConnectorByName.js +0 -15
- package/src/utils/isEmailOTPWalletConnector/index.d.ts +0 -1
- package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.cjs +0 -7
- package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.d.ts +0 -2
- package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.js +0 -3
- package/src/utils/isEmailWalletConnector/index.d.ts +0 -1
- package/src/utils/isEmailWalletConnector/isEmailWalletConnector.cjs +0 -7
- package/src/utils/isEmailWalletConnector/isEmailWalletConnector.d.ts +0 -2
- package/src/utils/isEmailWalletConnector/isEmailWalletConnector.js +0 -3
- package/src/utils/isFunction/index.d.ts +0 -1
- package/src/utils/isFunction/isFunction.cjs +0 -8
- package/src/utils/isFunction/isFunction.d.ts +0 -1
- package/src/utils/isFunction/isFunction.js +0 -4
- package/src/utils/isMobile.cjs +0 -54
- package/src/utils/isMobile.d.ts +0 -13
- package/src/utils/isMobile.js +0 -46
- package/src/utils/isSameAddress/index.d.ts +0 -1
- package/src/utils/isSameAddress/isSameAddress.cjs +0 -9
- package/src/utils/isSameAddress/isSameAddress.d.ts +0 -1
- package/src/utils/isSameAddress/isSameAddress.js +0 -5
- package/src/utils/isSameAddress/utils/index.d.ts +0 -1
- package/src/utils/isSameAddress/utils/normalizeAddress/index.d.ts +0 -1
- package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.cjs +0 -17
- package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.d.ts +0 -1
- package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.js +0 -13
- package/src/utils/isSocialWalletConnector/index.d.ts +0 -1
- package/src/utils/isSocialWalletConnector/isSocialWalletConnector.cjs +0 -7
- package/src/utils/isSocialWalletConnector/isSocialWalletConnector.d.ts +0 -2
- package/src/utils/isSocialWalletConnector/isSocialWalletConnector.js +0 -3
- package/src/utils/isUnsupportedProviderError/index.d.ts +0 -1
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs +0 -13
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.d.ts +0 -6
- package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.js +0 -9
- package/src/utils/logger.cjs +0 -9
- package/src/utils/logger.d.ts +0 -2
- package/src/utils/logger.js +0 -5
- package/src/utils/normalizeWalletName/index.d.ts +0 -1
- package/src/utils/normalizeWalletName/normalizeWalletName.cjs +0 -7
- package/src/utils/normalizeWalletName/normalizeWalletName.d.ts +0 -1
- package/src/utils/normalizeWalletName/normalizeWalletName.js +0 -3
- package/src/utils/shouldLowercaseAddress.cjs +0 -11
- package/src/utils/shouldLowercaseAddress.d.ts +0 -1
- package/src/utils/shouldLowercaseAddress.js +0 -7
- package/src/utils/walletConnect.cjs +0 -31
- package/src/utils/walletConnect.d.ts +0 -5
- package/src/utils/walletConnect.js +0 -27
- package/src/wallets/ProviderLookup.cjs +0 -18
- package/src/wallets/ProviderLookup.d.ts +0 -4
- package/src/wallets/ProviderLookup.js +0 -14
- package/src/wallets/clients/coinbase/coinbase.cjs +0 -73
- package/src/wallets/clients/coinbase/coinbase.d.ts +0 -6
- package/src/wallets/clients/coinbase/coinbase.js +0 -66
- package/src/wallets/clients/coinbase/index.d.ts +0 -2
- package/src/wallets/clients/coinbase/types.d.ts +0 -14
- package/src/wallets/clients/walletConnect/index.d.ts +0 -1
- package/src/wallets/clients/walletConnect/types.d.ts +0 -4
- package/src/wallets/clients/walletConnect/walletConnect.cjs +0 -250
- package/src/wallets/clients/walletConnect/walletConnect.js +0 -233
- package/src/wallets/cosmos/getKeplrConnector.cjs +0 -18
- package/src/wallets/cosmos/getKeplrConnector.d.ts +0 -6
- package/src/wallets/cosmos/getKeplrConnector.js +0 -14
- package/src/wallets/ethereum/BloctoEvm.cjs +0 -111
- package/src/wallets/ethereum/BloctoEvm.d.ts +0 -22
- package/src/wallets/ethereum/BloctoEvm.js +0 -105
- package/src/wallets/ethereum/EthWalletConnector.cjs +0 -207
- package/src/wallets/ethereum/EthWalletConnector.d.ts +0 -38
- package/src/wallets/ethereum/EthWalletConnector.js +0 -203
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs +0 -63
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.d.ts +0 -12
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js +0 -59
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/index.d.ts +0 -1
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs +0 -62
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.d.ts +0 -11
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js +0 -58
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/index.d.ts +0 -1
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +0 -103
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +0 -33
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +0 -99
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/index.d.ts +0 -2
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +0 -56
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.d.ts +0 -12
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +0 -52
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/index.d.ts +0 -1
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +0 -177
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +0 -54
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +0 -173
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/index.d.ts +0 -2
- package/src/wallets/ethereum/MagicConnector/index.d.ts +0 -5
- package/src/wallets/ethereum/coinbase.cjs +0 -66
- package/src/wallets/ethereum/coinbase.d.ts +0 -25
- package/src/wallets/ethereum/coinbase.js +0 -64
- package/src/wallets/ethereum/ethProviderHelper.cjs +0 -197
- package/src/wallets/ethereum/ethProviderHelper.d.ts +0 -40
- package/src/wallets/ethereum/ethProviderHelper.js +0 -193
- package/src/wallets/ethereum/evm-network.cjs +0 -20
- package/src/wallets/ethereum/evm-network.d.ts +0 -6
- package/src/wallets/ethereum/evm-network.js +0 -16
- package/src/wallets/ethereum/fortmatic.cjs +0 -76
- package/src/wallets/ethereum/fortmatic.d.ts +0 -25
- package/src/wallets/ethereum/fortmatic.js +0 -70
- package/src/wallets/ethereum/injected/BloctoInjected.cjs +0 -13
- package/src/wallets/ethereum/injected/BloctoInjected.d.ts +0 -6
- package/src/wallets/ethereum/injected/BloctoInjected.js +0 -11
- package/src/wallets/ethereum/injected/BraveEvm.cjs +0 -13
- package/src/wallets/ethereum/injected/BraveEvm.d.ts +0 -6
- package/src/wallets/ethereum/injected/BraveEvm.js +0 -11
- package/src/wallets/ethereum/injected/Dawn.cjs +0 -13
- package/src/wallets/ethereum/injected/Dawn.d.ts +0 -6
- package/src/wallets/ethereum/injected/Dawn.js +0 -11
- package/src/wallets/ethereum/injected/ExodusEvm.cjs +0 -13
- package/src/wallets/ethereum/injected/ExodusEvm.d.ts +0 -6
- package/src/wallets/ethereum/injected/ExodusEvm.js +0 -11
- package/src/wallets/ethereum/injected/Frame.cjs +0 -13
- package/src/wallets/ethereum/injected/Frame.d.ts +0 -6
- package/src/wallets/ethereum/injected/Frame.js +0 -11
- package/src/wallets/ethereum/injected/GameStop.cjs +0 -13
- package/src/wallets/ethereum/injected/GameStop.d.ts +0 -6
- package/src/wallets/ethereum/injected/GameStop.js +0 -11
- package/src/wallets/ethereum/injected/Opera.cjs +0 -13
- package/src/wallets/ethereum/injected/Opera.d.ts +0 -6
- package/src/wallets/ethereum/injected/Opera.js +0 -11
- package/src/wallets/ethereum/injected/PhantomEvm.cjs +0 -37
- package/src/wallets/ethereum/injected/PhantomEvm.d.ts +0 -7
- package/src/wallets/ethereum/injected/PhantomEvm.js +0 -35
- package/src/wallets/ethereum/injected/Trust.cjs +0 -13
- package/src/wallets/ethereum/injected/Trust.d.ts +0 -6
- package/src/wallets/ethereum/injected/Trust.js +0 -11
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.cjs +0 -13
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.d.ts +0 -6
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.js +0 -11
- package/src/wallets/ethereum/injected/Zerion.cjs +0 -13
- package/src/wallets/ethereum/injected/Zerion.d.ts +0 -6
- package/src/wallets/ethereum/injected/Zerion.js +0 -11
- package/src/wallets/ethereum/meta-mask.cjs +0 -63
- package/src/wallets/ethereum/meta-mask.d.ts +0 -26
- package/src/wallets/ethereum/meta-mask.js +0 -61
- package/src/wallets/getMobileOrInjectedWallet.cjs +0 -22
- package/src/wallets/getMobileOrInjectedWallet.d.ts +0 -9
- package/src/wallets/getMobileOrInjectedWallet.js +0 -18
- package/src/wallets/getWalletConnectConnector.cjs +0 -16
- package/src/wallets/getWalletConnectConnector.d.ts +0 -5
- package/src/wallets/getWalletConnectConnector.js +0 -12
- package/src/wallets/walletConnect/index.d.ts +0 -2
- package/src/wallets/walletConnect/walletConnect.cjs +0 -133
- package/src/wallets/walletConnect/walletConnect.d.ts +0 -34
- package/src/wallets/walletConnect/walletConnect.js +0 -127
- package/src/wallets/walletConnect/walletConnectV2.cjs +0 -268
- package/src/wallets/walletConnect/walletConnectV2.d.ts +0 -38
- package/src/wallets/walletConnect/walletConnectV2.js +0 -262
- package/src/wallets/walletConnect/zerion.d.ts +0 -6
|
@@ -1,207 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var tslib = require('tslib');
|
|
6
|
-
var ethers = require('ethers');
|
|
7
|
-
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
8
|
-
var utils = require('@dynamic-labs/utils');
|
|
9
|
-
var rpcProviders = require('@dynamic-labs/rpc-providers');
|
|
10
|
-
var errors = require('../../errors.cjs');
|
|
11
|
-
var evmNetwork = require('./evm-network.cjs');
|
|
12
|
-
|
|
13
|
-
class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
14
|
-
getRpcProvider() {
|
|
15
|
-
var _a, _b, _c;
|
|
16
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
17
|
-
const networkId = (_a = (yield this.getNetwork())) !== null && _a !== void 0 ? _a : 1;
|
|
18
|
-
if (this.evmNetworks.length === 0) {
|
|
19
|
-
return undefined;
|
|
20
|
-
}
|
|
21
|
-
const configurations = {
|
|
22
|
-
cosmos: [],
|
|
23
|
-
evm: this.evmNetworks,
|
|
24
|
-
solana: [],
|
|
25
|
-
starknet: undefined,
|
|
26
|
-
};
|
|
27
|
-
return (_c = (_b = this.chainRpcProviders) === null || _b === void 0 ? void 0 : _b.getEvmProviderByChainId(configurations, networkId)) === null || _c === void 0 ? void 0 : _c.provider;
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
constructor({ evmNetworks, chainRpcProviders }) {
|
|
31
|
-
var _a;
|
|
32
|
-
super();
|
|
33
|
-
this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
|
|
34
|
-
var _a;
|
|
35
|
-
[acc[network.chainId]] = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a.length)
|
|
36
|
-
? network.privateCustomerRpcUrls
|
|
37
|
-
: network.rpcUrls;
|
|
38
|
-
return acc;
|
|
39
|
-
}, {});
|
|
40
|
-
this.evmNetworks = utils.parseEvmNetworks(evmNetworks);
|
|
41
|
-
this.chainRpcProviders = chainRpcProviders;
|
|
42
|
-
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerChainProviders(rpcProviders.ProviderChain.EVM, (config) => {
|
|
43
|
-
const rpcProviders = {};
|
|
44
|
-
if (config === null || config === void 0 ? void 0 : config.evm) {
|
|
45
|
-
rpcProviders.evm = utils.parseEvmNetworks(config.evm).map((network) => {
|
|
46
|
-
var _a;
|
|
47
|
-
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
48
|
-
const provider = new ethers.ethers.providers.JsonRpcProvider(rpcUrl, network.chainId);
|
|
49
|
-
return {
|
|
50
|
-
chainId: network.chainId,
|
|
51
|
-
chainName: network.name,
|
|
52
|
-
provider,
|
|
53
|
-
};
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
return rpcProviders.evm;
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
getNetwork() {
|
|
60
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
const provider = this.getWeb3Provider();
|
|
62
|
-
if (!this.supportsNetworkSwitching ||
|
|
63
|
-
!provider ||
|
|
64
|
-
!('getNetwork' in provider)) {
|
|
65
|
-
return Promise.resolve(undefined);
|
|
66
|
-
}
|
|
67
|
-
const network = yield provider.getNetwork();
|
|
68
|
-
return Promise.resolve(network === null || network === void 0 ? void 0 : network.chainId);
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
getNameService() {
|
|
72
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
73
|
-
const [[address], provider] = yield Promise.all([
|
|
74
|
-
this.getConnectedAccounts(),
|
|
75
|
-
this.getRpcProvider(),
|
|
76
|
-
]);
|
|
77
|
-
if (!address || !provider || !('lookupAddress' in provider)) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
const [ensName, ensAvatar] = yield Promise.all([
|
|
81
|
-
provider.lookupAddress(address),
|
|
82
|
-
provider.getAvatar(address),
|
|
83
|
-
]);
|
|
84
|
-
const ensData = {
|
|
85
|
-
avatar: ensAvatar !== null && ensAvatar !== void 0 ? ensAvatar : undefined,
|
|
86
|
-
name: ensName !== null && ensName !== void 0 ? ensName : undefined,
|
|
87
|
-
};
|
|
88
|
-
return ensData;
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
getSigner() {
|
|
92
|
-
var _a;
|
|
93
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
94
|
-
return (_a = this.getWeb3Provider()) === null || _a === void 0 ? void 0 : _a.getSigner();
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
getBalance() {
|
|
98
|
-
var _a;
|
|
99
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
100
|
-
// This is equivalent to getSigner().getAddress() but does not crash
|
|
101
|
-
// if the signer is not available
|
|
102
|
-
const [address] = yield this.getConnectedAccounts();
|
|
103
|
-
if (!address)
|
|
104
|
-
return;
|
|
105
|
-
const result = yield ((_a = this.getWeb3Provider()) === null || _a === void 0 ? void 0 : _a.getBalance(address));
|
|
106
|
-
if (!result)
|
|
107
|
-
return;
|
|
108
|
-
return ethers.ethers.utils.formatEther(result);
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
supportsNetworkSwitching() {
|
|
112
|
-
return true;
|
|
113
|
-
}
|
|
114
|
-
switchNetwork({ networkName, networkChainId, }) {
|
|
115
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
116
|
-
const network = evmNetwork.findEvmNetwork({
|
|
117
|
-
chainId: networkChainId,
|
|
118
|
-
name: networkName,
|
|
119
|
-
networks: this.evmNetworks,
|
|
120
|
-
});
|
|
121
|
-
if (!network) {
|
|
122
|
-
throw new errors.DynamicError('Could not find network');
|
|
123
|
-
}
|
|
124
|
-
if (!this.supportsNetworkSwitching()) {
|
|
125
|
-
throw new errors.DynamicError('Network switching is not supported');
|
|
126
|
-
}
|
|
127
|
-
const provider = this.getWeb3Provider();
|
|
128
|
-
if (!provider) {
|
|
129
|
-
throw new errors.DynamicError('Provider not found');
|
|
130
|
-
}
|
|
131
|
-
return this.providerSwitchNetwork({ network, provider });
|
|
132
|
-
});
|
|
133
|
-
}
|
|
134
|
-
getConnectedAccounts() {
|
|
135
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
136
|
-
const provider = this.getWeb3Provider();
|
|
137
|
-
if (!provider)
|
|
138
|
-
return [];
|
|
139
|
-
return provider.send('eth_accounts', []);
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
providerSwitchNetwork({ network, provider, }) {
|
|
143
|
-
var _a, _b, _c;
|
|
144
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
145
|
-
const { chainId } = network;
|
|
146
|
-
const currentNetworkId = yield this.getNetwork();
|
|
147
|
-
if (currentNetworkId && currentNetworkId === chainId) {
|
|
148
|
-
return;
|
|
149
|
-
}
|
|
150
|
-
try {
|
|
151
|
-
if (!this.supportsNetworkSwitching()) {
|
|
152
|
-
throw new errors.DynamicError('Network switching is not supported');
|
|
153
|
-
}
|
|
154
|
-
return yield provider.send('wallet_switchEthereumChain', [
|
|
155
|
-
{
|
|
156
|
-
chainId: `0x${chainId.toString(16)}`,
|
|
157
|
-
},
|
|
158
|
-
]);
|
|
159
|
-
}
|
|
160
|
-
catch (error) {
|
|
161
|
-
if (((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('rejected')) ||
|
|
162
|
-
(typeof error === 'string' && error.includes('rejected'))) {
|
|
163
|
-
throw new errors.DynamicError("User rejected the wallet's request to switch network");
|
|
164
|
-
}
|
|
165
|
-
else if (error.code === 4902 ||
|
|
166
|
-
error.message.includes('Unrecognized chain') ||
|
|
167
|
-
// https://github.com/MetaMask/metamask-mobile/issues/3312#issuecomment-1065923294
|
|
168
|
-
((_c = (_b = error === null || error === void 0 ? void 0 : error.data) === null || _b === void 0 ? void 0 : _b.orginalError) === null || _c === void 0 ? void 0 : _c.code) === 4902) {
|
|
169
|
-
// error code indicates the chain has not been added yet
|
|
170
|
-
// https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain
|
|
171
|
-
return this.providerAddNetwork({ network, provider });
|
|
172
|
-
}
|
|
173
|
-
else {
|
|
174
|
-
throw error;
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
providerAddNetwork({ network, provider, }) {
|
|
180
|
-
var _a;
|
|
181
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
182
|
-
const { blockExplorerUrls, chainId, nativeCurrency, rpcUrls, name } = network;
|
|
183
|
-
try {
|
|
184
|
-
return yield provider.send('wallet_addEthereumChain', [
|
|
185
|
-
{
|
|
186
|
-
blockExplorerUrls,
|
|
187
|
-
chainId: `0x${chainId.toString(16)}`,
|
|
188
|
-
chainName: name,
|
|
189
|
-
nativeCurrency,
|
|
190
|
-
rpcUrls,
|
|
191
|
-
},
|
|
192
|
-
]);
|
|
193
|
-
}
|
|
194
|
-
catch (error) {
|
|
195
|
-
if (((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('rejected')) ||
|
|
196
|
-
(typeof error === 'string' && error.includes('rejected'))) {
|
|
197
|
-
throw new errors.DynamicError("User rejected the wallet's request to add network");
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
throw error;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
exports.EthWalletConnector = EthWalletConnector;
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { ethers } from 'ethers';
|
|
2
|
-
import { NameServiceData, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import { EvmNetwork, GenericNetwork } from '@dynamic-labs/types';
|
|
4
|
-
import { ChainRpcProviders } from '@dynamic-labs/rpc-providers';
|
|
5
|
-
export type SwitchNetworkOps = {
|
|
6
|
-
networkChainId?: number;
|
|
7
|
-
networkName?: string;
|
|
8
|
-
};
|
|
9
|
-
type EvmRpcMap = {
|
|
10
|
-
[chainId: number]: string;
|
|
11
|
-
};
|
|
12
|
-
export type EthWalletConnectorOpts = {
|
|
13
|
-
chainRpcProviders: typeof ChainRpcProviders;
|
|
14
|
-
evmNetworks: GenericNetwork[];
|
|
15
|
-
};
|
|
16
|
-
export declare abstract class EthWalletConnector extends WalletConnectorBase {
|
|
17
|
-
evmNetworks: EvmNetwork[];
|
|
18
|
-
abstract getWeb3Provider(): ethers.providers.Web3Provider | undefined;
|
|
19
|
-
getRpcProvider(): Promise<ethers.providers.JsonRpcProvider | undefined>;
|
|
20
|
-
constructor({ evmNetworks, chainRpcProviders }: EthWalletConnectorOpts);
|
|
21
|
-
getNetwork(): Promise<number | undefined>;
|
|
22
|
-
getNameService(): Promise<NameServiceData | undefined>;
|
|
23
|
-
getSigner(): Promise<ethers.providers.JsonRpcSigner | undefined>;
|
|
24
|
-
getBalance(): Promise<string | undefined>;
|
|
25
|
-
supportsNetworkSwitching(): boolean;
|
|
26
|
-
switchNetwork({ networkName, networkChainId, }: SwitchNetworkOps): Promise<void>;
|
|
27
|
-
getConnectedAccounts(): Promise<string[]>;
|
|
28
|
-
protected providerSwitchNetwork({ network, provider, }: {
|
|
29
|
-
network: EvmNetwork;
|
|
30
|
-
provider: ethers.providers.Web3Provider;
|
|
31
|
-
}): Promise<void>;
|
|
32
|
-
protected providerAddNetwork({ network, provider, }: {
|
|
33
|
-
network: EvmNetwork;
|
|
34
|
-
provider: ethers.providers.Web3Provider;
|
|
35
|
-
}): Promise<void>;
|
|
36
|
-
protected evmNetworkRpcMap: () => EvmRpcMap;
|
|
37
|
-
}
|
|
38
|
-
export {};
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from 'tslib';
|
|
2
|
-
import { ethers } from 'ethers';
|
|
3
|
-
import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
-
import { parseEvmNetworks } from '@dynamic-labs/utils';
|
|
5
|
-
import { ProviderChain } from '@dynamic-labs/rpc-providers';
|
|
6
|
-
import { DynamicError } from '../../errors.js';
|
|
7
|
-
import { findEvmNetwork } from './evm-network.js';
|
|
8
|
-
|
|
9
|
-
class EthWalletConnector extends WalletConnectorBase {
|
|
10
|
-
getRpcProvider() {
|
|
11
|
-
var _a, _b, _c;
|
|
12
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
-
const networkId = (_a = (yield this.getNetwork())) !== null && _a !== void 0 ? _a : 1;
|
|
14
|
-
if (this.evmNetworks.length === 0) {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
const configurations = {
|
|
18
|
-
cosmos: [],
|
|
19
|
-
evm: this.evmNetworks,
|
|
20
|
-
solana: [],
|
|
21
|
-
starknet: undefined,
|
|
22
|
-
};
|
|
23
|
-
return (_c = (_b = this.chainRpcProviders) === null || _b === void 0 ? void 0 : _b.getEvmProviderByChainId(configurations, networkId)) === null || _c === void 0 ? void 0 : _c.provider;
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
constructor({ evmNetworks, chainRpcProviders }) {
|
|
27
|
-
var _a;
|
|
28
|
-
super();
|
|
29
|
-
this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
|
|
30
|
-
var _a;
|
|
31
|
-
[acc[network.chainId]] = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a.length)
|
|
32
|
-
? network.privateCustomerRpcUrls
|
|
33
|
-
: network.rpcUrls;
|
|
34
|
-
return acc;
|
|
35
|
-
}, {});
|
|
36
|
-
this.evmNetworks = parseEvmNetworks(evmNetworks);
|
|
37
|
-
this.chainRpcProviders = chainRpcProviders;
|
|
38
|
-
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerChainProviders(ProviderChain.EVM, (config) => {
|
|
39
|
-
const rpcProviders = {};
|
|
40
|
-
if (config === null || config === void 0 ? void 0 : config.evm) {
|
|
41
|
-
rpcProviders.evm = parseEvmNetworks(config.evm).map((network) => {
|
|
42
|
-
var _a;
|
|
43
|
-
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
44
|
-
const provider = new ethers.providers.JsonRpcProvider(rpcUrl, network.chainId);
|
|
45
|
-
return {
|
|
46
|
-
chainId: network.chainId,
|
|
47
|
-
chainName: network.name,
|
|
48
|
-
provider,
|
|
49
|
-
};
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
return rpcProviders.evm;
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
getNetwork() {
|
|
56
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
const provider = this.getWeb3Provider();
|
|
58
|
-
if (!this.supportsNetworkSwitching ||
|
|
59
|
-
!provider ||
|
|
60
|
-
!('getNetwork' in provider)) {
|
|
61
|
-
return Promise.resolve(undefined);
|
|
62
|
-
}
|
|
63
|
-
const network = yield provider.getNetwork();
|
|
64
|
-
return Promise.resolve(network === null || network === void 0 ? void 0 : network.chainId);
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
getNameService() {
|
|
68
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
69
|
-
const [[address], provider] = yield Promise.all([
|
|
70
|
-
this.getConnectedAccounts(),
|
|
71
|
-
this.getRpcProvider(),
|
|
72
|
-
]);
|
|
73
|
-
if (!address || !provider || !('lookupAddress' in provider)) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
|
-
const [ensName, ensAvatar] = yield Promise.all([
|
|
77
|
-
provider.lookupAddress(address),
|
|
78
|
-
provider.getAvatar(address),
|
|
79
|
-
]);
|
|
80
|
-
const ensData = {
|
|
81
|
-
avatar: ensAvatar !== null && ensAvatar !== void 0 ? ensAvatar : undefined,
|
|
82
|
-
name: ensName !== null && ensName !== void 0 ? ensName : undefined,
|
|
83
|
-
};
|
|
84
|
-
return ensData;
|
|
85
|
-
});
|
|
86
|
-
}
|
|
87
|
-
getSigner() {
|
|
88
|
-
var _a;
|
|
89
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
return (_a = this.getWeb3Provider()) === null || _a === void 0 ? void 0 : _a.getSigner();
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
getBalance() {
|
|
94
|
-
var _a;
|
|
95
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
96
|
-
// This is equivalent to getSigner().getAddress() but does not crash
|
|
97
|
-
// if the signer is not available
|
|
98
|
-
const [address] = yield this.getConnectedAccounts();
|
|
99
|
-
if (!address)
|
|
100
|
-
return;
|
|
101
|
-
const result = yield ((_a = this.getWeb3Provider()) === null || _a === void 0 ? void 0 : _a.getBalance(address));
|
|
102
|
-
if (!result)
|
|
103
|
-
return;
|
|
104
|
-
return ethers.utils.formatEther(result);
|
|
105
|
-
});
|
|
106
|
-
}
|
|
107
|
-
supportsNetworkSwitching() {
|
|
108
|
-
return true;
|
|
109
|
-
}
|
|
110
|
-
switchNetwork({ networkName, networkChainId, }) {
|
|
111
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
-
const network = findEvmNetwork({
|
|
113
|
-
chainId: networkChainId,
|
|
114
|
-
name: networkName,
|
|
115
|
-
networks: this.evmNetworks,
|
|
116
|
-
});
|
|
117
|
-
if (!network) {
|
|
118
|
-
throw new DynamicError('Could not find network');
|
|
119
|
-
}
|
|
120
|
-
if (!this.supportsNetworkSwitching()) {
|
|
121
|
-
throw new DynamicError('Network switching is not supported');
|
|
122
|
-
}
|
|
123
|
-
const provider = this.getWeb3Provider();
|
|
124
|
-
if (!provider) {
|
|
125
|
-
throw new DynamicError('Provider not found');
|
|
126
|
-
}
|
|
127
|
-
return this.providerSwitchNetwork({ network, provider });
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
getConnectedAccounts() {
|
|
131
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
132
|
-
const provider = this.getWeb3Provider();
|
|
133
|
-
if (!provider)
|
|
134
|
-
return [];
|
|
135
|
-
return provider.send('eth_accounts', []);
|
|
136
|
-
});
|
|
137
|
-
}
|
|
138
|
-
providerSwitchNetwork({ network, provider, }) {
|
|
139
|
-
var _a, _b, _c;
|
|
140
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
141
|
-
const { chainId } = network;
|
|
142
|
-
const currentNetworkId = yield this.getNetwork();
|
|
143
|
-
if (currentNetworkId && currentNetworkId === chainId) {
|
|
144
|
-
return;
|
|
145
|
-
}
|
|
146
|
-
try {
|
|
147
|
-
if (!this.supportsNetworkSwitching()) {
|
|
148
|
-
throw new DynamicError('Network switching is not supported');
|
|
149
|
-
}
|
|
150
|
-
return yield provider.send('wallet_switchEthereumChain', [
|
|
151
|
-
{
|
|
152
|
-
chainId: `0x${chainId.toString(16)}`,
|
|
153
|
-
},
|
|
154
|
-
]);
|
|
155
|
-
}
|
|
156
|
-
catch (error) {
|
|
157
|
-
if (((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('rejected')) ||
|
|
158
|
-
(typeof error === 'string' && error.includes('rejected'))) {
|
|
159
|
-
throw new DynamicError("User rejected the wallet's request to switch network");
|
|
160
|
-
}
|
|
161
|
-
else if (error.code === 4902 ||
|
|
162
|
-
error.message.includes('Unrecognized chain') ||
|
|
163
|
-
// https://github.com/MetaMask/metamask-mobile/issues/3312#issuecomment-1065923294
|
|
164
|
-
((_c = (_b = error === null || error === void 0 ? void 0 : error.data) === null || _b === void 0 ? void 0 : _b.orginalError) === null || _c === void 0 ? void 0 : _c.code) === 4902) {
|
|
165
|
-
// error code indicates the chain has not been added yet
|
|
166
|
-
// https://docs.metamask.io/guide/rpc-api.html#usage-with-wallet-switchethereumchain
|
|
167
|
-
return this.providerAddNetwork({ network, provider });
|
|
168
|
-
}
|
|
169
|
-
else {
|
|
170
|
-
throw error;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
providerAddNetwork({ network, provider, }) {
|
|
176
|
-
var _a;
|
|
177
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
178
|
-
const { blockExplorerUrls, chainId, nativeCurrency, rpcUrls, name } = network;
|
|
179
|
-
try {
|
|
180
|
-
return yield provider.send('wallet_addEthereumChain', [
|
|
181
|
-
{
|
|
182
|
-
blockExplorerUrls,
|
|
183
|
-
chainId: `0x${chainId.toString(16)}`,
|
|
184
|
-
chainName: name,
|
|
185
|
-
nativeCurrency,
|
|
186
|
-
rpcUrls,
|
|
187
|
-
},
|
|
188
|
-
]);
|
|
189
|
-
}
|
|
190
|
-
catch (error) {
|
|
191
|
-
if (((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('rejected')) ||
|
|
192
|
-
(typeof error === 'string' && error.includes('rejected'))) {
|
|
193
|
-
throw new DynamicError("User rejected the wallet's request to add network");
|
|
194
|
-
}
|
|
195
|
-
else {
|
|
196
|
-
throw error;
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
export { EthWalletConnector };
|
package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var tslib = require('tslib');
|
|
6
|
-
var MagicWalletConnector = require('../MagicWalletConnector/MagicWalletConnector.cjs');
|
|
7
|
-
|
|
8
|
-
class EmailMagicWalletConnector extends MagicWalletConnector.MagicWalletConnector {
|
|
9
|
-
constructor() {
|
|
10
|
-
super(...arguments);
|
|
11
|
-
this.canConnectViaEmail = true;
|
|
12
|
-
}
|
|
13
|
-
get email() {
|
|
14
|
-
return this._email;
|
|
15
|
-
}
|
|
16
|
-
setEmail(email) {
|
|
17
|
-
this._email = email;
|
|
18
|
-
if (!email) {
|
|
19
|
-
localStorage.removeItem('magic-link-email');
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
22
|
-
localStorage.setItem('magic-link-email', email);
|
|
23
|
-
}
|
|
24
|
-
this.cancelPreviousEmail();
|
|
25
|
-
}
|
|
26
|
-
clearEmail() {
|
|
27
|
-
this.setEmail(undefined);
|
|
28
|
-
}
|
|
29
|
-
endSession() {
|
|
30
|
-
const _super = Object.create(null, {
|
|
31
|
-
endSession: { get: () => super.endSession }
|
|
32
|
-
});
|
|
33
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
34
|
-
yield _super.endSession.call(this);
|
|
35
|
-
this.clearEmail();
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
cancelPreviousEmail() {
|
|
39
|
-
var _a;
|
|
40
|
-
(_a = this._currentAuthCancellablePromise) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
41
|
-
}
|
|
42
|
-
loginWithMagic() {
|
|
43
|
-
var _a;
|
|
44
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
45
|
-
const client = this._magicClient.getClient();
|
|
46
|
-
const user = yield this.getUserMetadata();
|
|
47
|
-
if (user && user.publicAddress) {
|
|
48
|
-
this.setEmail(user === null || user === void 0 ? void 0 : user.email);
|
|
49
|
-
return user.publicAddress;
|
|
50
|
-
}
|
|
51
|
-
const { email } = this;
|
|
52
|
-
if (!email)
|
|
53
|
-
return;
|
|
54
|
-
return client.auth.loginWithMagicLink({
|
|
55
|
-
email,
|
|
56
|
-
redirectURI: (_a = this._magicClient.config) === null || _a === void 0 ? void 0 : _a.redirectURI,
|
|
57
|
-
showUI: false,
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
exports.EmailMagicWalletConnector = EmailMagicWalletConnector;
|
package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { IEmailWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
2
|
-
import { MagicPromiEvent, MagicWalletConnector } from '../MagicWalletConnector';
|
|
3
|
-
export declare class EmailMagicWalletConnector extends MagicWalletConnector implements IEmailWalletConnector {
|
|
4
|
-
canConnectViaEmail: boolean;
|
|
5
|
-
protected _email: string | undefined | null;
|
|
6
|
-
get email(): string | null | undefined;
|
|
7
|
-
setEmail(email: EmailMagicWalletConnector['email']): void;
|
|
8
|
-
clearEmail(): void;
|
|
9
|
-
endSession(): Promise<void>;
|
|
10
|
-
cancelPreviousEmail(): void;
|
|
11
|
-
loginWithMagic(): Promise<MagicPromiEvent | undefined>;
|
|
12
|
-
}
|
package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { __awaiter } from 'tslib';
|
|
2
|
-
import { MagicWalletConnector } from '../MagicWalletConnector/MagicWalletConnector.js';
|
|
3
|
-
|
|
4
|
-
class EmailMagicWalletConnector extends MagicWalletConnector {
|
|
5
|
-
constructor() {
|
|
6
|
-
super(...arguments);
|
|
7
|
-
this.canConnectViaEmail = true;
|
|
8
|
-
}
|
|
9
|
-
get email() {
|
|
10
|
-
return this._email;
|
|
11
|
-
}
|
|
12
|
-
setEmail(email) {
|
|
13
|
-
this._email = email;
|
|
14
|
-
if (!email) {
|
|
15
|
-
localStorage.removeItem('magic-link-email');
|
|
16
|
-
}
|
|
17
|
-
else {
|
|
18
|
-
localStorage.setItem('magic-link-email', email);
|
|
19
|
-
}
|
|
20
|
-
this.cancelPreviousEmail();
|
|
21
|
-
}
|
|
22
|
-
clearEmail() {
|
|
23
|
-
this.setEmail(undefined);
|
|
24
|
-
}
|
|
25
|
-
endSession() {
|
|
26
|
-
const _super = Object.create(null, {
|
|
27
|
-
endSession: { get: () => super.endSession }
|
|
28
|
-
});
|
|
29
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
30
|
-
yield _super.endSession.call(this);
|
|
31
|
-
this.clearEmail();
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
cancelPreviousEmail() {
|
|
35
|
-
var _a;
|
|
36
|
-
(_a = this._currentAuthCancellablePromise) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
37
|
-
}
|
|
38
|
-
loginWithMagic() {
|
|
39
|
-
var _a;
|
|
40
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
-
const client = this._magicClient.getClient();
|
|
42
|
-
const user = yield this.getUserMetadata();
|
|
43
|
-
if (user && user.publicAddress) {
|
|
44
|
-
this.setEmail(user === null || user === void 0 ? void 0 : user.email);
|
|
45
|
-
return user.publicAddress;
|
|
46
|
-
}
|
|
47
|
-
const { email } = this;
|
|
48
|
-
if (!email)
|
|
49
|
-
return;
|
|
50
|
-
return client.auth.loginWithMagicLink({
|
|
51
|
-
email,
|
|
52
|
-
redirectURI: (_a = this._magicClient.config) === null || _a === void 0 ? void 0 : _a.redirectURI,
|
|
53
|
-
showUI: false,
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
export { EmailMagicWalletConnector };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { EmailMagicWalletConnector } from './EmailMagicWalletConnector';
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var tslib = require('tslib');
|
|
6
|
-
var logger = require('../../../../utils/logger.cjs');
|
|
7
|
-
var EmailMagicWalletConnector = require('../EmailMagicWalletConnector/EmailMagicWalletConnector.cjs');
|
|
8
|
-
|
|
9
|
-
class EmailOTPMagicWalletConnector extends EmailMagicWalletConnector.EmailMagicWalletConnector {
|
|
10
|
-
verifyOneTimePassword(otp) {
|
|
11
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
12
|
-
const handle = this._handle;
|
|
13
|
-
const timeoutMs = 1000 * 10;
|
|
14
|
-
const invalidOTPError = new Error('Please double check your code and try again');
|
|
15
|
-
if (!handle) {
|
|
16
|
-
throw new Error('Login with email OTP before verifying');
|
|
17
|
-
}
|
|
18
|
-
const timeoutPromise = new Promise((resolve, reject) => {
|
|
19
|
-
setTimeout(() => {
|
|
20
|
-
reject(invalidOTPError);
|
|
21
|
-
}, timeoutMs);
|
|
22
|
-
});
|
|
23
|
-
const promise = new Promise((resolve, reject) => {
|
|
24
|
-
handle
|
|
25
|
-
.on('done', () => resolve(true))
|
|
26
|
-
.on('invalid-email-otp', () => reject(invalidOTPError))
|
|
27
|
-
.on('error', reject)
|
|
28
|
-
.catch(reject)
|
|
29
|
-
.emit('verify-email-otp', otp);
|
|
30
|
-
});
|
|
31
|
-
return Promise.race([promise, timeoutPromise]);
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
loginWithMagic() {
|
|
35
|
-
var _a;
|
|
36
|
-
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
37
|
-
const client = this._magicClient.getClient();
|
|
38
|
-
const user = yield this.getUserMetadata();
|
|
39
|
-
if (user && user.publicAddress) {
|
|
40
|
-
this.setEmail(user === null || user === void 0 ? void 0 : user.email);
|
|
41
|
-
return user.publicAddress;
|
|
42
|
-
}
|
|
43
|
-
const { email } = this;
|
|
44
|
-
if (!email)
|
|
45
|
-
return;
|
|
46
|
-
(_a = this._handle) === null || _a === void 0 ? void 0 : _a.emit('cancel');
|
|
47
|
-
try {
|
|
48
|
-
yield this._handle;
|
|
49
|
-
}
|
|
50
|
-
catch (err) {
|
|
51
|
-
logger.logger.error(err);
|
|
52
|
-
}
|
|
53
|
-
this._handle = client.auth.loginWithEmailOTP({
|
|
54
|
-
email,
|
|
55
|
-
showUI: false,
|
|
56
|
-
});
|
|
57
|
-
return this._handle;
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
exports.EmailOTPMagicWalletConnector = EmailOTPMagicWalletConnector;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Magic } from 'magic-sdk';
|
|
2
|
-
import { IEmailOTPWalletConnector } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import { EmailMagicWalletConnector } from '../EmailMagicWalletConnector';
|
|
4
|
-
import { MagicPromiEvent } from '../MagicWalletConnector';
|
|
5
|
-
type LoginWithEmailOTPPromiEvent = ReturnType<Magic['auth']['loginWithEmailOTP']>;
|
|
6
|
-
export declare class EmailOTPMagicWalletConnector extends EmailMagicWalletConnector implements IEmailOTPWalletConnector {
|
|
7
|
-
_handle: LoginWithEmailOTPPromiEvent | undefined;
|
|
8
|
-
verifyOneTimePassword(otp: string): Promise<boolean>;
|
|
9
|
-
loginWithMagic(): Promise<MagicPromiEvent | undefined>;
|
|
10
|
-
}
|
|
11
|
-
export {};
|