@dynamic-labs/multi-wallet 0.17.0-RC.6 → 0.17.0-RC.8
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 +53 -0
- package/package.json +8 -6
- package/src/index.cjs +0 -18
- package/src/index.d.ts +0 -4
- package/src/index.js +1 -4
- package/src/multi-wallet.cjs +53 -96
- package/src/multi-wallet.js +53 -96
- package/src/types.d.ts +9 -47
- package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.d.ts +1 -1
- 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 +2 -2
- package/src/utils/message.d.ts +2 -2
- package/src/utils/message.js +1 -1
- package/src/utils/walletConnect.cjs +11 -8
- package/src/utils/walletConnect.d.ts +4 -4
- package/src/utils/walletConnect.js +11 -8
- package/src/wallets/algorand/MyAlgoWalletConnector.cjs +3 -3
- package/src/wallets/algorand/MyAlgoWalletConnector.js +1 -1
- package/src/wallets/clients/coinbase/coinbase.cjs +4 -4
- package/src/wallets/clients/coinbase/coinbase.js +1 -1
- package/src/wallets/clients/coinbase/types.d.ts +2 -2
- package/src/wallets/clients/walletConnect/walletConnect.cjs +20 -46
- package/src/wallets/clients/walletConnect/walletConnect.d.ts +1 -3
- package/src/wallets/clients/walletConnect/walletConnect.js +18 -43
- package/src/wallets/cosmos/KeplrWalletConnect.cjs +18 -16
- package/src/wallets/cosmos/KeplrWalletConnect.d.ts +7 -6
- package/src/wallets/cosmos/KeplrWalletConnect.js +14 -12
- package/src/wallets/cosmos/KeplrWalletConnector.cjs +21 -6
- package/src/wallets/cosmos/KeplrWalletConnector.d.ts +10 -5
- package/src/wallets/cosmos/KeplrWalletConnector.js +21 -6
- package/src/wallets/cosmos/wcClient.lib.cjs +100 -0
- package/src/wallets/cosmos/wcClient.lib.d.ts +20 -0
- package/src/wallets/cosmos/wcClient.lib.js +87 -0
- package/src/wallets/ethereum/BloctoEvm.cjs +10 -12
- package/src/wallets/ethereum/BloctoEvm.d.ts +2 -7
- package/src/wallets/ethereum/BloctoEvm.js +8 -10
- package/src/wallets/ethereum/EthWalletConnector.cjs +34 -19
- package/src/wallets/ethereum/EthWalletConnector.d.ts +8 -4
- package/src/wallets/ethereum/EthWalletConnector.js +28 -13
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs +0 -2
- package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js +0 -2
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs +2 -2
- package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js +1 -1
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +14 -38
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +5 -7
- package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +14 -38
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +10 -4
- package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +9 -3
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +15 -11
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +9 -8
- package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +13 -9
- package/src/wallets/ethereum/coinbase.cjs +9 -11
- package/src/wallets/ethereum/coinbase.d.ts +7 -11
- package/src/wallets/ethereum/coinbase.js +10 -12
- package/src/wallets/ethereum/ethProviderHelper.cjs +103 -101
- package/src/wallets/ethereum/ethProviderHelper.d.ts +24 -31
- package/src/wallets/ethereum/ethProviderHelper.js +100 -98
- package/src/wallets/ethereum/evm-network.cjs +2 -2
- package/src/wallets/ethereum/evm-network.d.ts +1 -17
- package/src/wallets/ethereum/evm-network.js +2 -2
- package/src/wallets/ethereum/injected/BloctoInjected.cjs +2 -3
- package/src/wallets/ethereum/injected/BloctoInjected.d.ts +2 -3
- package/src/wallets/ethereum/injected/BloctoInjected.js +2 -3
- package/src/wallets/ethereum/injected/BraveEvm.cjs +2 -3
- package/src/wallets/ethereum/injected/BraveEvm.d.ts +2 -3
- package/src/wallets/ethereum/injected/BraveEvm.js +2 -3
- package/src/wallets/ethereum/injected/Dawn.cjs +2 -3
- package/src/wallets/ethereum/injected/Dawn.d.ts +2 -3
- package/src/wallets/ethereum/injected/Dawn.js +2 -3
- package/src/wallets/ethereum/injected/ExodusEvm.cjs +2 -3
- package/src/wallets/ethereum/injected/ExodusEvm.d.ts +2 -3
- package/src/wallets/ethereum/injected/ExodusEvm.js +2 -3
- package/src/wallets/ethereum/injected/Frame.cjs +2 -3
- package/src/wallets/ethereum/injected/Frame.d.ts +2 -3
- package/src/wallets/ethereum/injected/Frame.js +2 -3
- package/src/wallets/ethereum/injected/GameStop.cjs +2 -3
- package/src/wallets/ethereum/injected/GameStop.d.ts +2 -3
- package/src/wallets/ethereum/injected/GameStop.js +2 -3
- package/src/wallets/ethereum/injected/InjectedWalletBase.cjs +74 -0
- package/src/wallets/ethereum/{meta-mask.d.ts → injected/InjectedWalletBase.d.ts} +7 -9
- package/src/wallets/ethereum/injected/InjectedWalletBase.js +72 -0
- package/src/wallets/ethereum/injected/MetaMask.cjs +13 -0
- package/src/wallets/ethereum/injected/MetaMask.d.ts +6 -0
- package/src/wallets/ethereum/injected/MetaMask.js +11 -0
- package/src/wallets/ethereum/injected/Opera.cjs +2 -3
- package/src/wallets/ethereum/injected/Opera.d.ts +2 -3
- package/src/wallets/ethereum/injected/Opera.js +2 -3
- package/src/wallets/ethereum/injected/PhantomEvm.cjs +2 -3
- package/src/wallets/ethereum/injected/PhantomEvm.d.ts +2 -3
- package/src/wallets/ethereum/injected/PhantomEvm.js +2 -3
- package/src/wallets/ethereum/injected/Trust.cjs +3 -3
- package/src/wallets/ethereum/injected/Trust.d.ts +3 -3
- package/src/wallets/ethereum/injected/Trust.js +3 -3
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.cjs +2 -3
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.d.ts +2 -3
- package/src/wallets/ethereum/injected/UnknownInjectedWallet.js +2 -3
- package/src/wallets/ethereum/injected/Zerion.cjs +3 -3
- package/src/wallets/ethereum/injected/Zerion.d.ts +3 -3
- package/src/wallets/ethereum/injected/Zerion.js +3 -3
- package/src/wallets/flow/FlowWalletConnector.cjs +7 -8
- package/src/wallets/flow/FlowWalletConnector.js +2 -3
- package/src/wallets/getWalletConnectConnector.cjs +7 -10
- package/src/wallets/getWalletConnectConnector.d.ts +2 -5
- package/src/wallets/getWalletConnectConnector.js +7 -10
- 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 +8 -12
- package/src/wallets/solana/phantom.d.ts +1 -3
- package/src/wallets/solana/phantom.js +8 -12
- package/src/wallets/solana/slope.cjs +4 -4
- package/src/wallets/solana/slope.js +1 -1
- package/src/wallets/solana/solProviderHelper.cjs +47 -48
- package/src/wallets/solana/solProviderHelper.d.ts +18 -18
- package/src/wallets/solana/solProviderHelper.js +47 -48
- package/src/wallets/solana/solWalletConnector.cjs +24 -6
- package/src/wallets/solana/solWalletConnector.d.ts +8 -5
- package/src/wallets/solana/solWalletConnector.js +23 -5
- 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/starknetWalletConnector.cjs +5 -6
- package/src/wallets/starknet/starknetWalletConnector.js +2 -3
- package/src/wallets/walletConnect/index.d.ts +1 -1
- package/src/wallets/walletConnect/walletConnect.cjs +8 -7
- package/src/wallets/walletConnect/walletConnect.d.ts +7 -7
- package/src/wallets/walletConnect/walletConnect.js +6 -5
- package/src/wallets/walletConnect/walletConnectV2.cjs +14 -14
- package/src/wallets/walletConnect/walletConnectV2.d.ts +7 -7
- package/src/wallets/walletConnect/walletConnectV2.js +3 -3
- package/src/wallets/walletConnect/zerion.d.ts +2 -4
- package/src/errors.cjs +0 -66
- package/src/errors.d.ts +0 -34
- package/src/errors.js +0 -54
- package/src/rpcProviders.cjs +0 -76
- package/src/rpcProviders.d.ts +0 -5
- package/src/rpcProviders.js +0 -69
- 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/logger.cjs +0 -9
- package/src/utils/logger.d.ts +0 -2
- package/src/utils/logger.js +0 -5
- 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/fortmatic.cjs +0 -75
- package/src/wallets/ethereum/fortmatic.d.ts +0 -26
- package/src/wallets/ethereum/fortmatic.js +0 -69
- package/src/wallets/ethereum/meta-mask.cjs +0 -63
- package/src/wallets/ethereum/meta-mask.js +0 -61
- package/src/wallets/getMobileOrInjectedWallet.cjs +0 -26
- package/src/wallets/getMobileOrInjectedWallet.d.ts +0 -8
- package/src/wallets/getMobileOrInjectedWallet.js +0 -22
|
@@ -1,28 +1,26 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import BloctoSDK from '@blocto/sdk';
|
|
3
3
|
import { ethers } from 'ethers';
|
|
4
|
-
import { logger } from '
|
|
4
|
+
import { logger } from '@dynamic-labs/wallet-connector-core';
|
|
5
5
|
import { EthWalletConnector } from './EthWalletConnector.js';
|
|
6
|
-
import { EthProviderHelper } from './ethProviderHelper.js';
|
|
7
6
|
|
|
8
7
|
class BloctoEvm extends EthWalletConnector {
|
|
9
|
-
constructor(
|
|
8
|
+
constructor(props) {
|
|
10
9
|
var _a, _b;
|
|
11
|
-
|
|
12
|
-
const BLOCTO_SUPPORTED_CHAIN_IDS = [1, 4, 56, 97, 137, 80001, 43114, 43113];
|
|
13
|
-
const bloctoSupportedNetworks = evmNetworks.filter((n) => BLOCTO_SUPPORTED_CHAIN_IDS.includes(n.chainId));
|
|
14
|
-
super({ evmNetworks: bloctoSupportedNetworks });
|
|
10
|
+
super(props);
|
|
15
11
|
this.LOCAL_STORAGE_KEY = 'dynamic_blocto_evm_chain_id';
|
|
16
12
|
this.name = 'bloctoevm';
|
|
17
13
|
this.canConnectViaCustodialService = true;
|
|
18
14
|
this.connectedChain = 'EVM';
|
|
19
15
|
this.supportedChains = ['EVM', 'ETH'];
|
|
20
|
-
this.ethProviderHelper = new EthProviderHelper();
|
|
21
16
|
this.supportsNetworkSwitching = () => false;
|
|
17
|
+
// Taken from : https://docs.blocto.app/blocto-sdk/javascript-sdk/evm-sdk/provider
|
|
18
|
+
const BLOCTO_SUPPORTED_CHAIN_IDS = [1, 4, 56, 97, 137, 80001, 43114, 43113];
|
|
19
|
+
this.evmNetworks = this.evmNetworks.filter((n) => BLOCTO_SUPPORTED_CHAIN_IDS.includes(n.chainId));
|
|
22
20
|
this.chainId =
|
|
23
21
|
Number(localStorage.getItem(this.LOCAL_STORAGE_KEY)) ||
|
|
24
|
-
((_a =
|
|
25
|
-
((_b =
|
|
22
|
+
((_a = this.evmNetworks.find((n) => n.chainId === 137)) === null || _a === void 0 ? void 0 : _a.chainId) ||
|
|
23
|
+
((_b = this.evmNetworks[0]) === null || _b === void 0 ? void 0 : _b.chainId);
|
|
26
24
|
}
|
|
27
25
|
getClient() {
|
|
28
26
|
if (!this.client) {
|
|
@@ -5,15 +5,15 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
6
|
var ethers = require('ethers');
|
|
7
7
|
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
8
|
-
var
|
|
9
|
-
var rpcProviders = require('
|
|
8
|
+
var utils = require('@dynamic-labs/utils');
|
|
9
|
+
var rpcProviders = require('@dynamic-labs/rpc-providers');
|
|
10
10
|
var evmNetwork = require('./evm-network.cjs');
|
|
11
11
|
|
|
12
12
|
class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
13
13
|
getRpcProvider() {
|
|
14
|
-
var _a, _b;
|
|
14
|
+
var _a, _b, _c;
|
|
15
15
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
16
|
-
const networkId = yield this.getNetwork();
|
|
16
|
+
const networkId = (_a = (yield this.getNetwork())) !== null && _a !== void 0 ? _a : 1;
|
|
17
17
|
if (this.evmNetworks.length === 0) {
|
|
18
18
|
return undefined;
|
|
19
19
|
}
|
|
@@ -23,14 +23,12 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
23
23
|
solana: [],
|
|
24
24
|
starknet: undefined,
|
|
25
25
|
};
|
|
26
|
-
|
|
27
|
-
return (_a = rpcProviders.getEvmDefaultRpcProvider(configurations)) === null || _a === void 0 ? void 0 : _a.provider;
|
|
28
|
-
}
|
|
29
|
-
return (_b = rpcProviders.getEvmRpcProviderByChainId(configurations, networkId)) === null || _b === void 0 ? void 0 : _b.provider;
|
|
26
|
+
return (_c = (_b = this.chainRpcProviders) === null || _b === void 0 ? void 0 : _b.getEvmProviderByChainId(configurations, networkId)) === null || _c === void 0 ? void 0 : _c.provider;
|
|
30
27
|
});
|
|
31
28
|
}
|
|
32
|
-
constructor(
|
|
33
|
-
|
|
29
|
+
constructor(props) {
|
|
30
|
+
var _a;
|
|
31
|
+
super(props);
|
|
34
32
|
this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
|
|
35
33
|
var _a;
|
|
36
34
|
[acc[network.chainId]] = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a.length)
|
|
@@ -38,7 +36,24 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
38
36
|
: network.rpcUrls;
|
|
39
37
|
return acc;
|
|
40
38
|
}, {});
|
|
41
|
-
this.evmNetworks = evmNetworks;
|
|
39
|
+
this.evmNetworks = utils.parseEvmNetworks(props.evmNetworks);
|
|
40
|
+
this.chainRpcProviders = props.chainRpcProviders;
|
|
41
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerChainProviders(rpcProviders.ProviderChain.EVM, (config) => {
|
|
42
|
+
const rpcProviders = {};
|
|
43
|
+
if (config === null || config === void 0 ? void 0 : config.evm) {
|
|
44
|
+
rpcProviders.evm = utils.parseEvmNetworks(config.evm).map((network) => {
|
|
45
|
+
var _a;
|
|
46
|
+
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
47
|
+
const provider = new ethers.ethers.providers.JsonRpcProvider(rpcUrl, network.chainId);
|
|
48
|
+
return {
|
|
49
|
+
chainId: network.chainId,
|
|
50
|
+
chainName: network.name,
|
|
51
|
+
provider,
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return rpcProviders.evm;
|
|
56
|
+
});
|
|
42
57
|
}
|
|
43
58
|
getNetwork() {
|
|
44
59
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
@@ -103,14 +118,14 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
103
118
|
networks: this.evmNetworks,
|
|
104
119
|
});
|
|
105
120
|
if (!network) {
|
|
106
|
-
throw new
|
|
121
|
+
throw new utils.DynamicError('Could not find network');
|
|
107
122
|
}
|
|
108
123
|
if (!this.supportsNetworkSwitching()) {
|
|
109
|
-
throw new
|
|
124
|
+
throw new utils.DynamicError('Network switching is not supported');
|
|
110
125
|
}
|
|
111
126
|
const provider = this.getWeb3Provider();
|
|
112
127
|
if (!provider) {
|
|
113
|
-
throw new
|
|
128
|
+
throw new utils.DynamicError('Provider not found');
|
|
114
129
|
}
|
|
115
130
|
return this.providerSwitchNetwork({ network, provider });
|
|
116
131
|
});
|
|
@@ -133,7 +148,7 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
133
148
|
}
|
|
134
149
|
try {
|
|
135
150
|
if (!this.supportsNetworkSwitching()) {
|
|
136
|
-
throw new
|
|
151
|
+
throw new utils.DynamicError('Network switching is not supported');
|
|
137
152
|
}
|
|
138
153
|
return yield provider.send('wallet_switchEthereumChain', [
|
|
139
154
|
{
|
|
@@ -144,7 +159,7 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
144
159
|
catch (error) {
|
|
145
160
|
if (((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('rejected')) ||
|
|
146
161
|
(typeof error === 'string' && error.includes('rejected'))) {
|
|
147
|
-
throw new
|
|
162
|
+
throw new utils.DynamicError("User rejected the wallet's request to switch network");
|
|
148
163
|
}
|
|
149
164
|
else if (error.code === 4902 ||
|
|
150
165
|
error.message.includes('Unrecognized chain') ||
|
|
@@ -163,13 +178,13 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
163
178
|
providerAddNetwork({ network, provider, }) {
|
|
164
179
|
var _a;
|
|
165
180
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
166
|
-
const { blockExplorerUrls, chainId, nativeCurrency, rpcUrls,
|
|
181
|
+
const { blockExplorerUrls, chainId, nativeCurrency, rpcUrls, name } = network;
|
|
167
182
|
try {
|
|
168
183
|
return yield provider.send('wallet_addEthereumChain', [
|
|
169
184
|
{
|
|
170
185
|
blockExplorerUrls,
|
|
171
186
|
chainId: `0x${chainId.toString(16)}`,
|
|
172
|
-
chainName,
|
|
187
|
+
chainName: name,
|
|
173
188
|
nativeCurrency,
|
|
174
189
|
rpcUrls,
|
|
175
190
|
},
|
|
@@ -178,7 +193,7 @@ class EthWalletConnector extends walletConnectorCore.WalletConnectorBase {
|
|
|
178
193
|
catch (error) {
|
|
179
194
|
if (((_a = error.message) === null || _a === void 0 ? void 0 : _a.includes('rejected')) ||
|
|
180
195
|
(typeof error === 'string' && error.includes('rejected'))) {
|
|
181
|
-
throw new
|
|
196
|
+
throw new utils.DynamicError("User rejected the wallet's request to add network");
|
|
182
197
|
}
|
|
183
198
|
else {
|
|
184
199
|
throw error;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ethers } from 'ethers';
|
|
2
2
|
import { NameServiceData, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import { EvmNetwork } from '
|
|
3
|
+
import { EvmNetwork, GenericNetwork } from '@dynamic-labs/types';
|
|
4
|
+
import { ChainRpcProviders } from '@dynamic-labs/rpc-providers';
|
|
4
5
|
export type SwitchNetworkOps = {
|
|
5
6
|
networkChainId?: number;
|
|
6
7
|
networkName?: string;
|
|
@@ -8,13 +9,16 @@ export type SwitchNetworkOps = {
|
|
|
8
9
|
type EvmRpcMap = {
|
|
9
10
|
[chainId: number]: string;
|
|
10
11
|
};
|
|
12
|
+
export type EthWalletConnectorOpts = {
|
|
13
|
+
chainRpcProviders: typeof ChainRpcProviders;
|
|
14
|
+
evmNetworks: GenericNetwork[];
|
|
15
|
+
isWalletConnectV2Enabled?: boolean;
|
|
16
|
+
};
|
|
11
17
|
export declare abstract class EthWalletConnector extends WalletConnectorBase {
|
|
12
18
|
evmNetworks: EvmNetwork[];
|
|
13
19
|
abstract getWeb3Provider(): ethers.providers.Web3Provider | undefined;
|
|
14
20
|
getRpcProvider(): Promise<ethers.providers.JsonRpcProvider | undefined>;
|
|
15
|
-
constructor(
|
|
16
|
-
evmNetworks: EvmNetwork[];
|
|
17
|
-
});
|
|
21
|
+
constructor(props: EthWalletConnectorOpts);
|
|
18
22
|
getNetwork(): Promise<number | undefined>;
|
|
19
23
|
getNameService(): Promise<NameServiceData | undefined>;
|
|
20
24
|
getSigner(): Promise<ethers.providers.JsonRpcSigner | undefined>;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import { ethers } from 'ethers';
|
|
3
3
|
import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
|
|
4
|
-
import { DynamicError } from '
|
|
5
|
-
import {
|
|
4
|
+
import { parseEvmNetworks, DynamicError } from '@dynamic-labs/utils';
|
|
5
|
+
import { ProviderChain } from '@dynamic-labs/rpc-providers';
|
|
6
6
|
import { findEvmNetwork } from './evm-network.js';
|
|
7
7
|
|
|
8
8
|
class EthWalletConnector extends WalletConnectorBase {
|
|
9
9
|
getRpcProvider() {
|
|
10
|
-
var _a, _b;
|
|
10
|
+
var _a, _b, _c;
|
|
11
11
|
return __awaiter(this, void 0, void 0, function* () {
|
|
12
|
-
const networkId = yield this.getNetwork();
|
|
12
|
+
const networkId = (_a = (yield this.getNetwork())) !== null && _a !== void 0 ? _a : 1;
|
|
13
13
|
if (this.evmNetworks.length === 0) {
|
|
14
14
|
return undefined;
|
|
15
15
|
}
|
|
@@ -19,14 +19,12 @@ class EthWalletConnector extends WalletConnectorBase {
|
|
|
19
19
|
solana: [],
|
|
20
20
|
starknet: undefined,
|
|
21
21
|
};
|
|
22
|
-
|
|
23
|
-
return (_a = getEvmDefaultRpcProvider(configurations)) === null || _a === void 0 ? void 0 : _a.provider;
|
|
24
|
-
}
|
|
25
|
-
return (_b = getEvmRpcProviderByChainId(configurations, networkId)) === null || _b === void 0 ? void 0 : _b.provider;
|
|
22
|
+
return (_c = (_b = this.chainRpcProviders) === null || _b === void 0 ? void 0 : _b.getEvmProviderByChainId(configurations, networkId)) === null || _c === void 0 ? void 0 : _c.provider;
|
|
26
23
|
});
|
|
27
24
|
}
|
|
28
|
-
constructor(
|
|
29
|
-
|
|
25
|
+
constructor(props) {
|
|
26
|
+
var _a;
|
|
27
|
+
super(props);
|
|
30
28
|
this.evmNetworkRpcMap = () => this.evmNetworks.reduce((acc, network) => {
|
|
31
29
|
var _a;
|
|
32
30
|
[acc[network.chainId]] = ((_a = network === null || network === void 0 ? void 0 : network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a.length)
|
|
@@ -34,7 +32,24 @@ class EthWalletConnector extends WalletConnectorBase {
|
|
|
34
32
|
: network.rpcUrls;
|
|
35
33
|
return acc;
|
|
36
34
|
}, {});
|
|
37
|
-
this.evmNetworks = evmNetworks;
|
|
35
|
+
this.evmNetworks = parseEvmNetworks(props.evmNetworks);
|
|
36
|
+
this.chainRpcProviders = props.chainRpcProviders;
|
|
37
|
+
(_a = this.chainRpcProviders) === null || _a === void 0 ? void 0 : _a.registerChainProviders(ProviderChain.EVM, (config) => {
|
|
38
|
+
const rpcProviders = {};
|
|
39
|
+
if (config === null || config === void 0 ? void 0 : config.evm) {
|
|
40
|
+
rpcProviders.evm = parseEvmNetworks(config.evm).map((network) => {
|
|
41
|
+
var _a;
|
|
42
|
+
const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
|
|
43
|
+
const provider = new ethers.providers.JsonRpcProvider(rpcUrl, network.chainId);
|
|
44
|
+
return {
|
|
45
|
+
chainId: network.chainId,
|
|
46
|
+
chainName: network.name,
|
|
47
|
+
provider,
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
return rpcProviders.evm;
|
|
52
|
+
});
|
|
38
53
|
}
|
|
39
54
|
getNetwork() {
|
|
40
55
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -159,13 +174,13 @@ class EthWalletConnector extends WalletConnectorBase {
|
|
|
159
174
|
providerAddNetwork({ network, provider, }) {
|
|
160
175
|
var _a;
|
|
161
176
|
return __awaiter(this, void 0, void 0, function* () {
|
|
162
|
-
const { blockExplorerUrls, chainId, nativeCurrency, rpcUrls,
|
|
177
|
+
const { blockExplorerUrls, chainId, nativeCurrency, rpcUrls, name } = network;
|
|
163
178
|
try {
|
|
164
179
|
return yield provider.send('wallet_addEthereumChain', [
|
|
165
180
|
{
|
|
166
181
|
blockExplorerUrls,
|
|
167
182
|
chainId: `0x${chainId.toString(16)}`,
|
|
168
|
-
chainName,
|
|
183
|
+
chainName: name,
|
|
169
184
|
nativeCurrency,
|
|
170
185
|
rpcUrls,
|
|
171
186
|
},
|
package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs
CHANGED
|
@@ -40,7 +40,6 @@ class EmailMagicWalletConnector extends MagicWalletConnector.MagicWalletConnecto
|
|
|
40
40
|
(_a = this._currentAuthCancellablePromise) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
41
41
|
}
|
|
42
42
|
loginWithMagic() {
|
|
43
|
-
var _a;
|
|
44
43
|
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
45
44
|
const client = this._magicClient.getClient();
|
|
46
45
|
const user = yield this.getUserMetadata();
|
|
@@ -53,7 +52,6 @@ class EmailMagicWalletConnector extends MagicWalletConnector.MagicWalletConnecto
|
|
|
53
52
|
return;
|
|
54
53
|
return client.auth.loginWithMagicLink({
|
|
55
54
|
email,
|
|
56
|
-
redirectURI: (_a = this._magicClient.config) === null || _a === void 0 ? void 0 : _a.redirectURI,
|
|
57
55
|
showUI: false,
|
|
58
56
|
});
|
|
59
57
|
});
|
package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js
CHANGED
|
@@ -36,7 +36,6 @@ class EmailMagicWalletConnector extends MagicWalletConnector {
|
|
|
36
36
|
(_a = this._currentAuthCancellablePromise) === null || _a === void 0 ? void 0 : _a.cancel();
|
|
37
37
|
}
|
|
38
38
|
loginWithMagic() {
|
|
39
|
-
var _a;
|
|
40
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
40
|
const client = this._magicClient.getClient();
|
|
42
41
|
const user = yield this.getUserMetadata();
|
|
@@ -49,7 +48,6 @@ class EmailMagicWalletConnector extends MagicWalletConnector {
|
|
|
49
48
|
return;
|
|
50
49
|
return client.auth.loginWithMagicLink({
|
|
51
50
|
email,
|
|
52
|
-
redirectURI: (_a = this._magicClient.config) === null || _a === void 0 ? void 0 : _a.redirectURI,
|
|
53
51
|
showUI: false,
|
|
54
52
|
});
|
|
55
53
|
});
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
|
-
var
|
|
6
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
7
7
|
var EmailMagicWalletConnector = require('../EmailMagicWalletConnector/EmailMagicWalletConnector.cjs');
|
|
8
8
|
|
|
9
9
|
class EmailOTPMagicWalletConnector extends EmailMagicWalletConnector.EmailMagicWalletConnector {
|
|
@@ -48,7 +48,7 @@ class EmailOTPMagicWalletConnector extends EmailMagicWalletConnector.EmailMagicW
|
|
|
48
48
|
yield this._handle;
|
|
49
49
|
}
|
|
50
50
|
catch (err) {
|
|
51
|
-
|
|
51
|
+
walletConnectorCore.logger.error(err);
|
|
52
52
|
}
|
|
53
53
|
this._handle = client.auth.loginWithEmailOTP({
|
|
54
54
|
email,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
|
-
import { logger } from '
|
|
2
|
+
import { logger } from '@dynamic-labs/wallet-connector-core';
|
|
3
3
|
import { EmailMagicWalletConnector } from '../EmailMagicWalletConnector/EmailMagicWalletConnector.js';
|
|
4
4
|
|
|
5
5
|
class EmailOTPMagicWalletConnector extends EmailMagicWalletConnector {
|
package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs
CHANGED
|
@@ -3,30 +3,14 @@
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
|
+
var utils = require('@dynamic-labs/utils');
|
|
6
7
|
|
|
7
|
-
// these are based off of Magic's EthNetworkName type
|
|
8
|
-
const chainNameToChainIdMap = {
|
|
9
|
-
arbitrum: 42161,
|
|
10
|
-
avalance: 43114,
|
|
11
|
-
bsc: 56,
|
|
12
|
-
gnosis: 100,
|
|
13
|
-
goerli: 5,
|
|
14
|
-
mainnet: 1,
|
|
15
|
-
optimism: 10,
|
|
16
|
-
polygon: 137,
|
|
17
|
-
sepolia: 11155111,
|
|
18
|
-
};
|
|
19
8
|
class MagicClientNetworkHandler {
|
|
20
|
-
constructor({ createClient, evmNetworks,
|
|
21
|
-
var _a, _b;
|
|
9
|
+
constructor({ createClient, evmNetworks, defaultChainId, }) {
|
|
22
10
|
this._clients = {};
|
|
23
11
|
this.evmNetworks = [];
|
|
24
|
-
this.
|
|
25
|
-
this.
|
|
26
|
-
this._networkId =
|
|
27
|
-
typeof (config === null || config === void 0 ? void 0 : config.network) === 'string'
|
|
28
|
-
? chainNameToChainIdMap[config.network]
|
|
29
|
-
: (_b = (_a = config === null || config === void 0 ? void 0 : config.network) === null || _a === void 0 ? void 0 : _a.chainId) !== null && _b !== void 0 ? _b : 1;
|
|
12
|
+
this.evmNetworks = utils.parseEvmNetworks(evmNetworks);
|
|
13
|
+
this._networkId = defaultChainId !== null && defaultChainId !== void 0 ? defaultChainId : 1;
|
|
30
14
|
this._createClient = createClient;
|
|
31
15
|
}
|
|
32
16
|
setListeners(listeners) {
|
|
@@ -46,9 +30,6 @@ class MagicClientNetworkHandler {
|
|
|
46
30
|
get networkId() {
|
|
47
31
|
return this._networkId;
|
|
48
32
|
}
|
|
49
|
-
get config() {
|
|
50
|
-
return this._config;
|
|
51
|
-
}
|
|
52
33
|
getClient() {
|
|
53
34
|
const networkId = this._networkId;
|
|
54
35
|
const client = this._clients[networkId];
|
|
@@ -64,27 +45,22 @@ class MagicClientNetworkHandler {
|
|
|
64
45
|
const rpcUrl = this._getRpcUrlByNetworkId(networkId);
|
|
65
46
|
// Should prioritize custom rpc config form dashboard
|
|
66
47
|
if (rpcUrl) {
|
|
67
|
-
return
|
|
48
|
+
return {
|
|
49
|
+
network: {
|
|
68
50
|
chainId: this._getChainIdByNetworkId(networkId),
|
|
69
51
|
rpcUrl,
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
// Next should return configuration provided through settings
|
|
73
|
-
if (this.configNetworkId === networkId) {
|
|
74
|
-
return this._config;
|
|
52
|
+
},
|
|
53
|
+
};
|
|
75
54
|
}
|
|
76
55
|
if (networkId === 1) {
|
|
77
|
-
return
|
|
56
|
+
return {
|
|
57
|
+
network: 'mainnet',
|
|
58
|
+
};
|
|
78
59
|
}
|
|
79
60
|
if (networkId === 5) {
|
|
80
|
-
return
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
get configNetworkId() {
|
|
85
|
-
var _a, _b, _c;
|
|
86
|
-
if (typeof ((_a = this._config) === null || _a === void 0 ? void 0 : _a.network) !== 'string') {
|
|
87
|
-
return (_c = (_b = this._config) === null || _b === void 0 ? void 0 : _b.network) === null || _c === void 0 ? void 0 : _c.chainId;
|
|
61
|
+
return {
|
|
62
|
+
network: 'goerli',
|
|
63
|
+
};
|
|
88
64
|
}
|
|
89
65
|
return undefined;
|
|
90
66
|
}
|
package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts
CHANGED
|
@@ -1,32 +1,30 @@
|
|
|
1
1
|
import { MagicSDKAdditionalConfiguration, MagicSDKExtensionsOption } from 'magic-sdk';
|
|
2
2
|
import { WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
|
|
3
|
-
import {
|
|
4
|
-
import { EvmNetwork } from '../../evm-network';
|
|
3
|
+
import { EvmNetwork, GenericNetwork } from '@dynamic-labs/types';
|
|
5
4
|
export type MagicLinkConfig = Pick<MagicSDKAdditionalConfiguration<string, MagicSDKExtensionsOption<string>>, 'network' | 'testMode' | 'locale'> & {
|
|
6
5
|
redirectURI?: string;
|
|
7
6
|
};
|
|
8
7
|
type ConfigForNetwork = MagicSDKAdditionalConfiguration<string, MagicSDKExtensionsOption<string>> | undefined;
|
|
9
|
-
export type MagicClientNetworkHandlerProps<TClient> =
|
|
8
|
+
export type MagicClientNetworkHandlerProps<TClient> = {
|
|
10
9
|
createClient: (config: ConfigForNetwork) => TClient;
|
|
10
|
+
defaultChainId?: number;
|
|
11
|
+
evmNetworks: GenericNetwork[];
|
|
11
12
|
};
|
|
12
13
|
export declare class MagicClientNetworkHandler<TClient = unknown> {
|
|
13
14
|
protected _clients: {
|
|
14
15
|
[chainId: number]: TClient;
|
|
15
16
|
};
|
|
16
17
|
protected _networkId: number;
|
|
17
|
-
protected _config: MagicLinkConfig | undefined;
|
|
18
18
|
protected _listeners: WalletEventListeners | undefined;
|
|
19
19
|
evmNetworks: EvmNetwork[];
|
|
20
20
|
protected _createClient: MagicClientNetworkHandlerProps<TClient>['createClient'];
|
|
21
|
-
constructor({ createClient, evmNetworks,
|
|
21
|
+
constructor({ createClient, evmNetworks, defaultChainId, }: MagicClientNetworkHandlerProps<TClient>);
|
|
22
22
|
setListeners(listeners: WalletEventListeners | undefined): void;
|
|
23
23
|
onChainChanged(networkChainId: number): void;
|
|
24
24
|
selectNetwork(networkChainId: number): Promise<void>;
|
|
25
25
|
get networkId(): number;
|
|
26
|
-
get config(): MagicLinkConfig | undefined;
|
|
27
26
|
getClient(): TClient;
|
|
28
27
|
getConfigForNetwork(networkId: number): MagicSDKAdditionalConfiguration<string, MagicSDKExtensionsOption<string>> | undefined;
|
|
29
|
-
private get configNetworkId();
|
|
30
28
|
private _getRpcUrlByNetworkId;
|
|
31
29
|
private _getChainIdByNetworkId;
|
|
32
30
|
}
|
package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js
CHANGED
|
@@ -1,28 +1,12 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
|
+
import { parseEvmNetworks } from '@dynamic-labs/utils';
|
|
2
3
|
|
|
3
|
-
// these are based off of Magic's EthNetworkName type
|
|
4
|
-
const chainNameToChainIdMap = {
|
|
5
|
-
arbitrum: 42161,
|
|
6
|
-
avalance: 43114,
|
|
7
|
-
bsc: 56,
|
|
8
|
-
gnosis: 100,
|
|
9
|
-
goerli: 5,
|
|
10
|
-
mainnet: 1,
|
|
11
|
-
optimism: 10,
|
|
12
|
-
polygon: 137,
|
|
13
|
-
sepolia: 11155111,
|
|
14
|
-
};
|
|
15
4
|
class MagicClientNetworkHandler {
|
|
16
|
-
constructor({ createClient, evmNetworks,
|
|
17
|
-
var _a, _b;
|
|
5
|
+
constructor({ createClient, evmNetworks, defaultChainId, }) {
|
|
18
6
|
this._clients = {};
|
|
19
7
|
this.evmNetworks = [];
|
|
20
|
-
this.
|
|
21
|
-
this.
|
|
22
|
-
this._networkId =
|
|
23
|
-
typeof (config === null || config === void 0 ? void 0 : config.network) === 'string'
|
|
24
|
-
? chainNameToChainIdMap[config.network]
|
|
25
|
-
: (_b = (_a = config === null || config === void 0 ? void 0 : config.network) === null || _a === void 0 ? void 0 : _a.chainId) !== null && _b !== void 0 ? _b : 1;
|
|
8
|
+
this.evmNetworks = parseEvmNetworks(evmNetworks);
|
|
9
|
+
this._networkId = defaultChainId !== null && defaultChainId !== void 0 ? defaultChainId : 1;
|
|
26
10
|
this._createClient = createClient;
|
|
27
11
|
}
|
|
28
12
|
setListeners(listeners) {
|
|
@@ -42,9 +26,6 @@ class MagicClientNetworkHandler {
|
|
|
42
26
|
get networkId() {
|
|
43
27
|
return this._networkId;
|
|
44
28
|
}
|
|
45
|
-
get config() {
|
|
46
|
-
return this._config;
|
|
47
|
-
}
|
|
48
29
|
getClient() {
|
|
49
30
|
const networkId = this._networkId;
|
|
50
31
|
const client = this._clients[networkId];
|
|
@@ -60,27 +41,22 @@ class MagicClientNetworkHandler {
|
|
|
60
41
|
const rpcUrl = this._getRpcUrlByNetworkId(networkId);
|
|
61
42
|
// Should prioritize custom rpc config form dashboard
|
|
62
43
|
if (rpcUrl) {
|
|
63
|
-
return
|
|
44
|
+
return {
|
|
45
|
+
network: {
|
|
64
46
|
chainId: this._getChainIdByNetworkId(networkId),
|
|
65
47
|
rpcUrl,
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
// Next should return configuration provided through settings
|
|
69
|
-
if (this.configNetworkId === networkId) {
|
|
70
|
-
return this._config;
|
|
48
|
+
},
|
|
49
|
+
};
|
|
71
50
|
}
|
|
72
51
|
if (networkId === 1) {
|
|
73
|
-
return
|
|
52
|
+
return {
|
|
53
|
+
network: 'mainnet',
|
|
54
|
+
};
|
|
74
55
|
}
|
|
75
56
|
if (networkId === 5) {
|
|
76
|
-
return
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
}
|
|
80
|
-
get configNetworkId() {
|
|
81
|
-
var _a, _b, _c;
|
|
82
|
-
if (typeof ((_a = this._config) === null || _a === void 0 ? void 0 : _a.network) !== 'string') {
|
|
83
|
-
return (_c = (_b = this._config) === null || _b === void 0 ? void 0 : _b.network) === null || _c === void 0 ? void 0 : _c.chainId;
|
|
57
|
+
return {
|
|
58
|
+
network: 'goerli',
|
|
59
|
+
};
|
|
84
60
|
}
|
|
85
61
|
return undefined;
|
|
86
62
|
}
|
|
@@ -5,17 +5,23 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var tslib = require('tslib');
|
|
6
6
|
var oauth = require('@magic-ext/oauth');
|
|
7
7
|
var magicSdk = require('magic-sdk');
|
|
8
|
+
var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
|
|
8
9
|
var MagicWalletConnector = require('../MagicWalletConnector/MagicWalletConnector.cjs');
|
|
9
|
-
var logger = require('../../../../utils/logger.cjs');
|
|
10
10
|
var MagicClientNetworkHandler = require('../MagicClientNetworkHandler/MagicClientNetworkHandler.cjs');
|
|
11
11
|
|
|
12
12
|
class MagicSocialWalletConnector extends MagicWalletConnector.MagicWalletConnector {
|
|
13
13
|
constructor(opts) {
|
|
14
|
+
var _a, _b, _c, _d;
|
|
14
15
|
super(opts);
|
|
15
16
|
this.canConnectViaSocial = true;
|
|
17
|
+
const apiKey = (_b = (_a = opts.apiProviders) === null || _a === void 0 ? void 0 : _a.magicLink) === null || _b === void 0 ? void 0 : _b.providerProjectId;
|
|
18
|
+
const defaultChainId = (_d = (_c = opts.apiProviders) === null || _c === void 0 ? void 0 : _c.magicLink) === null || _d === void 0 ? void 0 : _d.defaultChainId;
|
|
19
|
+
if (!apiKey) {
|
|
20
|
+
throw new Error('Missing MagicLink configuration. Add your MagicLink API key to your project configuration via the Dynamic Labs dashboard.');
|
|
21
|
+
}
|
|
16
22
|
this._magicClient = new MagicClientNetworkHandler.MagicClientNetworkHandler({
|
|
17
|
-
|
|
18
|
-
|
|
23
|
+
createClient: (config) => new magicSdk.Magic(apiKey, Object.assign(Object.assign({}, config), { extensions: [new oauth.OAuthExtension()] })),
|
|
24
|
+
defaultChainId: defaultChainId,
|
|
19
25
|
evmNetworks: opts.evmNetworks,
|
|
20
26
|
});
|
|
21
27
|
}
|
|
@@ -45,7 +51,7 @@ class MagicSocialWalletConnector extends MagicWalletConnector.MagicWalletConnect
|
|
|
45
51
|
return result.oauth;
|
|
46
52
|
}
|
|
47
53
|
catch (e) {
|
|
48
|
-
|
|
54
|
+
walletConnectorCore.logger.error(e);
|
|
49
55
|
return undefined;
|
|
50
56
|
}
|
|
51
57
|
});
|
package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js
CHANGED
|
@@ -1,17 +1,23 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import { OAuthExtension } from '@magic-ext/oauth';
|
|
3
3
|
import { Magic } from 'magic-sdk';
|
|
4
|
+
import { logger } from '@dynamic-labs/wallet-connector-core';
|
|
4
5
|
import { MagicWalletConnector } from '../MagicWalletConnector/MagicWalletConnector.js';
|
|
5
|
-
import { logger } from '../../../../utils/logger.js';
|
|
6
6
|
import { MagicClientNetworkHandler } from '../MagicClientNetworkHandler/MagicClientNetworkHandler.js';
|
|
7
7
|
|
|
8
8
|
class MagicSocialWalletConnector extends MagicWalletConnector {
|
|
9
9
|
constructor(opts) {
|
|
10
|
+
var _a, _b, _c, _d;
|
|
10
11
|
super(opts);
|
|
11
12
|
this.canConnectViaSocial = true;
|
|
13
|
+
const apiKey = (_b = (_a = opts.apiProviders) === null || _a === void 0 ? void 0 : _a.magicLink) === null || _b === void 0 ? void 0 : _b.providerProjectId;
|
|
14
|
+
const defaultChainId = (_d = (_c = opts.apiProviders) === null || _c === void 0 ? void 0 : _c.magicLink) === null || _d === void 0 ? void 0 : _d.defaultChainId;
|
|
15
|
+
if (!apiKey) {
|
|
16
|
+
throw new Error('Missing MagicLink configuration. Add your MagicLink API key to your project configuration via the Dynamic Labs dashboard.');
|
|
17
|
+
}
|
|
12
18
|
this._magicClient = new MagicClientNetworkHandler({
|
|
13
|
-
|
|
14
|
-
|
|
19
|
+
createClient: (config) => new Magic(apiKey, Object.assign(Object.assign({}, config), { extensions: [new OAuthExtension()] })),
|
|
20
|
+
defaultChainId: defaultChainId,
|
|
15
21
|
evmNetworks: opts.evmNetworks,
|
|
16
22
|
});
|
|
17
23
|
}
|