@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,69 +1,18 @@
|
|
|
1
1
|
import { __awaiter } from 'tslib';
|
|
2
2
|
import { ethers, utils } from 'ethers';
|
|
3
|
+
import { logger } from '@dynamic-labs/wallet-connector-core';
|
|
3
4
|
import { normalizeWalletName } from '../../utils/normalizeWalletName/normalizeWalletName.js';
|
|
4
5
|
import { ProviderLookup } from '../ProviderLookup.js';
|
|
5
6
|
import { isUnsupportedProviderError } from '../../utils/isUnsupportedProviderError/isUnsupportedProviderError.js';
|
|
6
|
-
import { logger } from '../../utils/logger.js';
|
|
7
7
|
|
|
8
|
+
var _a;
|
|
8
9
|
class EthProviderHelper {
|
|
9
|
-
|
|
10
|
-
this.MetamaskProvider = () =>
|
|
11
|
-
// Stop these wallets from showing up as MetaMask
|
|
12
|
-
this.installedProviderLookup([
|
|
13
|
-
{ flag: 'isDawn', value: false },
|
|
14
|
-
{ flag: 'isBraveWallet', value: false },
|
|
15
|
-
{ flag: 'isTrustWallet', value: false },
|
|
16
|
-
{ flag: 'isExodus', value: false },
|
|
17
|
-
{ flag: 'isPhantom', value: false },
|
|
18
|
-
{ flag: 'isZerion', value: false },
|
|
19
|
-
{ flag: 'isMetaMask', value: true },
|
|
20
|
-
]);
|
|
21
|
-
this.BraveProvider = () => this.installedProviderLookup([{ flag: 'isBraveWallet', value: true }]);
|
|
22
|
-
this.DawnProvider = () => this.installedProviderLookup([{ flag: 'isDawn', value: true }]);
|
|
23
|
-
this.FrameProvider = () => this.installedProviderLookup([{ flag: 'isFrame', value: true }]);
|
|
24
|
-
this.CoinbaseProvider = () => this.installedProviderLookup([{ flag: 'isCoinbaseWallet', value: true }]);
|
|
25
|
-
this.OperaProvider = () => this.installedProviderLookup([{ flag: 'isOpera', value: true }]);
|
|
26
|
-
this.GameStopProvider = () => this.installedProviderLookup([{ flag: 'isGamestop', value: true }]);
|
|
27
|
-
this.ExodusProvider = () => this.installedProviderLookup([{ flag: 'isExodus', value: true }]);
|
|
28
|
-
this.BloctoProvider = () => this.installedProviderLookup([{ flag: 'isBlocto', value: true }]);
|
|
29
|
-
this.TrustWalletProvider = () => this.installedProviderLookup([{ flag: 'isTrustWallet', value: true }]);
|
|
30
|
-
this.PhantomProvider = () => this.installedProviderLookup([{ flag: 'isPhantom', value: true }]);
|
|
31
|
-
this.ZerionProvider = () => this.installedProviderLookup([{ flag: 'isZerion', value: true }]);
|
|
32
|
-
this.UnknownInjectedProvider = () => this.installedProviderLookup([
|
|
33
|
-
{ flag: 'isMetaMask', value: false },
|
|
34
|
-
{ flag: 'isExodus', value: false },
|
|
35
|
-
{ flag: 'isCoinbaseWallet', value: false },
|
|
36
|
-
{ flag: 'isBraveWallet', value: false },
|
|
37
|
-
{ flag: 'isGamestop', value: false },
|
|
38
|
-
{ flag: 'isFrame', value: false },
|
|
39
|
-
{ flag: 'isOpera', value: false },
|
|
40
|
-
{ flag: 'isBlocto', value: false },
|
|
41
|
-
{ flag: 'isTrustWallet', value: false },
|
|
42
|
-
{ flag: 'isPhantom', value: false },
|
|
43
|
-
{ flag: 'isZerion', value: false },
|
|
44
|
-
]);
|
|
45
|
-
this.providers = {
|
|
46
|
-
bloctoinjected: this.BloctoProvider,
|
|
47
|
-
braveevm: this.BraveProvider,
|
|
48
|
-
coinbase: this.CoinbaseProvider,
|
|
49
|
-
dawn: this.DawnProvider,
|
|
50
|
-
exodusevm: this.ExodusProvider,
|
|
51
|
-
frame: this.FrameProvider,
|
|
52
|
-
gamestop: this.GameStopProvider,
|
|
53
|
-
injectedwallet: this.UnknownInjectedProvider,
|
|
54
|
-
metamask: this.MetamaskProvider,
|
|
55
|
-
opera: this.OperaProvider,
|
|
56
|
-
phantomevm: this.PhantomProvider,
|
|
57
|
-
trust: this.TrustWalletProvider,
|
|
58
|
-
zerion: this.ZerionProvider,
|
|
59
|
-
};
|
|
60
|
-
}
|
|
61
|
-
installedProviderLookup(providerFlags) {
|
|
10
|
+
static installedProviderLookup(providerFlags) {
|
|
62
11
|
const allInstalledProviders = this.allInstalledProviders();
|
|
63
12
|
return ProviderLookup(allInstalledProviders, providerFlags);
|
|
64
13
|
}
|
|
65
|
-
allInstalledProviders() {
|
|
66
|
-
var
|
|
14
|
+
static allInstalledProviders() {
|
|
15
|
+
var _b;
|
|
67
16
|
const ethereumProviders = [];
|
|
68
17
|
if (window.ethereum) {
|
|
69
18
|
if (!window.ethereum.providers) {
|
|
@@ -75,7 +24,7 @@ class EthProviderHelper {
|
|
|
75
24
|
});
|
|
76
25
|
}
|
|
77
26
|
}
|
|
78
|
-
if ((
|
|
27
|
+
if ((_b = window.phantom) === null || _b === void 0 ? void 0 : _b.ethereum) {
|
|
79
28
|
ethereumProviders.push(window.phantom.ethereum);
|
|
80
29
|
}
|
|
81
30
|
if (window.zerionWallet) {
|
|
@@ -83,13 +32,13 @@ class EthProviderHelper {
|
|
|
83
32
|
}
|
|
84
33
|
return ethereumProviders;
|
|
85
34
|
}
|
|
86
|
-
isInstalledHelper(walletName) {
|
|
35
|
+
static isInstalledHelper(walletName) {
|
|
87
36
|
return this.findProvider(walletName) !== undefined;
|
|
88
37
|
}
|
|
89
|
-
findProvider(walletName) {
|
|
90
|
-
var
|
|
38
|
+
static findProvider(walletName) {
|
|
39
|
+
var _b, _c;
|
|
91
40
|
try {
|
|
92
|
-
const provider = (
|
|
41
|
+
const provider = (_c = (_b = this.providers)[normalizeWalletName(walletName)]) === null || _c === void 0 ? void 0 : _c.call(_b);
|
|
93
42
|
return provider === undefined
|
|
94
43
|
? undefined
|
|
95
44
|
: new ethers.providers.Web3Provider(provider, 'any'); // https://github.com/ethers-io/ethers.js/discussions/1480
|
|
@@ -103,7 +52,7 @@ class EthProviderHelper {
|
|
|
103
52
|
return undefined;
|
|
104
53
|
}
|
|
105
54
|
}
|
|
106
|
-
fetchPublicAddressWithName(name) {
|
|
55
|
+
static fetchPublicAddressWithName(name) {
|
|
107
56
|
return __awaiter(this, void 0, void 0, function* () {
|
|
108
57
|
const provider = this.findProvider(name);
|
|
109
58
|
if (!provider) {
|
|
@@ -112,7 +61,7 @@ class EthProviderHelper {
|
|
|
112
61
|
return this.fetchPublicAddressWithProvider(provider);
|
|
113
62
|
});
|
|
114
63
|
}
|
|
115
|
-
fetchPublicAddressWithProvider(provider) {
|
|
64
|
+
static fetchPublicAddressWithProvider(provider) {
|
|
116
65
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
66
|
try {
|
|
118
67
|
const [lowercaseAddress] = yield provider.send('eth_requestAccounts', []);
|
|
@@ -125,7 +74,7 @@ class EthProviderHelper {
|
|
|
125
74
|
}
|
|
126
75
|
});
|
|
127
76
|
}
|
|
128
|
-
signMessageWithName(messageToSign, name) {
|
|
77
|
+
static signMessageWithName(messageToSign, name) {
|
|
129
78
|
return __awaiter(this, void 0, void 0, function* () {
|
|
130
79
|
const walletAddress = yield this.fetchPublicAddressWithName(name);
|
|
131
80
|
if (!walletAddress) {
|
|
@@ -140,54 +89,107 @@ class EthProviderHelper {
|
|
|
140
89
|
return signedMessage;
|
|
141
90
|
});
|
|
142
91
|
}
|
|
143
|
-
_setupEventListeners(listeners, web3Provider) {
|
|
92
|
+
static _setupEventListeners(name, listeners, web3Provider) {
|
|
144
93
|
if (!web3Provider) {
|
|
145
|
-
return
|
|
146
|
-
|
|
94
|
+
return {
|
|
95
|
+
tearDownEventListeners: () => { },
|
|
147
96
|
};
|
|
148
97
|
}
|
|
149
98
|
const externalProvider = web3Provider.provider;
|
|
150
|
-
|
|
151
|
-
var
|
|
99
|
+
const handleAccountChange = (accounts) => __awaiter(this, void 0, void 0, function* () {
|
|
100
|
+
var _b, _c;
|
|
152
101
|
if (accounts.length === 0) {
|
|
153
|
-
yield ((
|
|
102
|
+
yield ((_b = listeners.onDisconnect) === null || _b === void 0 ? void 0 : _b.call(listeners));
|
|
154
103
|
return;
|
|
155
104
|
}
|
|
156
|
-
yield ((
|
|
105
|
+
yield ((_c = listeners.onAccountChange) === null || _c === void 0 ? void 0 : _c.call(listeners, accounts));
|
|
157
106
|
});
|
|
158
|
-
|
|
159
|
-
var
|
|
107
|
+
const handleChainChange = () => __awaiter(this, void 0, void 0, function* () {
|
|
108
|
+
var _d;
|
|
160
109
|
const network = yield web3Provider.getNetwork();
|
|
161
|
-
yield ((
|
|
110
|
+
yield ((_d = listeners.onChainChange) === null || _d === void 0 ? void 0 : _d.call(listeners, network.chainId.toString()));
|
|
162
111
|
});
|
|
163
|
-
|
|
164
|
-
var
|
|
112
|
+
const handleDisconnect = (error) => __awaiter(this, void 0, void 0, function* () {
|
|
113
|
+
var _e;
|
|
165
114
|
if ((error === null || error === void 0 ? void 0 : error.code) === 1013) {
|
|
166
115
|
return;
|
|
167
116
|
}
|
|
168
|
-
yield ((
|
|
117
|
+
yield ((_e = listeners.onDisconnect) === null || _e === void 0 ? void 0 : _e.call(listeners));
|
|
169
118
|
});
|
|
170
|
-
externalProvider.on('accountsChanged',
|
|
171
|
-
externalProvider.on('chainChanged',
|
|
172
|
-
externalProvider.on('disconnect',
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
119
|
+
externalProvider.on('accountsChanged', handleAccountChange);
|
|
120
|
+
externalProvider.on('chainChanged', handleChainChange);
|
|
121
|
+
externalProvider.on('disconnect', handleDisconnect);
|
|
122
|
+
const tearDownEventListeners = () => {
|
|
123
|
+
const web3Provider = this.findProvider(name);
|
|
124
|
+
if (!web3Provider || !(web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.provider)) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const externalProvider = web3Provider.provider;
|
|
128
|
+
if (handleAccountChange) {
|
|
129
|
+
externalProvider.removeListener('accountsChanged', handleAccountChange);
|
|
130
|
+
}
|
|
131
|
+
if (handleChainChange) {
|
|
132
|
+
externalProvider.removeListener('chainChanged', handleChainChange);
|
|
133
|
+
}
|
|
134
|
+
if (handleDisconnect) {
|
|
135
|
+
externalProvider.removeListener('disconnect', handleDisconnect);
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
return {
|
|
139
|
+
tearDownEventListeners,
|
|
140
|
+
};
|
|
190
141
|
}
|
|
191
|
-
}
|
|
142
|
+
}
|
|
143
|
+
_a = EthProviderHelper;
|
|
144
|
+
EthProviderHelper.MetamaskProvider = () =>
|
|
145
|
+
// Stop these wallets from showing up as MetaMask
|
|
146
|
+
_a.installedProviderLookup([
|
|
147
|
+
{ flag: 'isDawn', value: false },
|
|
148
|
+
{ flag: 'isBraveWallet', value: false },
|
|
149
|
+
{ flag: 'isTrustWallet', value: false },
|
|
150
|
+
{ flag: 'isExodus', value: false },
|
|
151
|
+
{ flag: 'isPhantom', value: false },
|
|
152
|
+
{ flag: 'isZerion', value: false },
|
|
153
|
+
{ flag: 'isMetaMask', value: true },
|
|
154
|
+
]);
|
|
155
|
+
EthProviderHelper.BraveProvider = () => _a.installedProviderLookup([{ flag: 'isBraveWallet', value: true }]);
|
|
156
|
+
EthProviderHelper.DawnProvider = () => _a.installedProviderLookup([{ flag: 'isDawn', value: true }]);
|
|
157
|
+
EthProviderHelper.FrameProvider = () => _a.installedProviderLookup([{ flag: 'isFrame', value: true }]);
|
|
158
|
+
EthProviderHelper.CoinbaseProvider = () => _a.installedProviderLookup([{ flag: 'isCoinbaseWallet', value: true }]);
|
|
159
|
+
EthProviderHelper.OperaProvider = () => _a.installedProviderLookup([{ flag: 'isOpera', value: true }]);
|
|
160
|
+
EthProviderHelper.GameStopProvider = () => _a.installedProviderLookup([{ flag: 'isGamestop', value: true }]);
|
|
161
|
+
EthProviderHelper.ExodusProvider = () => _a.installedProviderLookup([{ flag: 'isExodus', value: true }]);
|
|
162
|
+
EthProviderHelper.BloctoProvider = () => _a.installedProviderLookup([{ flag: 'isBlocto', value: true }]);
|
|
163
|
+
EthProviderHelper.TrustWalletProvider = () => _a.installedProviderLookup([{ flag: 'isTrustWallet', value: true }]);
|
|
164
|
+
EthProviderHelper.PhantomProvider = () => _a.installedProviderLookup([{ flag: 'isPhantom', value: true }]);
|
|
165
|
+
EthProviderHelper.ZerionProvider = () => _a.installedProviderLookup([{ flag: 'isZerion', value: true }]);
|
|
166
|
+
EthProviderHelper.UnknownInjectedProvider = () => _a.installedProviderLookup([
|
|
167
|
+
{ flag: 'isMetaMask', value: false },
|
|
168
|
+
{ flag: 'isExodus', value: false },
|
|
169
|
+
{ flag: 'isCoinbaseWallet', value: false },
|
|
170
|
+
{ flag: 'isBraveWallet', value: false },
|
|
171
|
+
{ flag: 'isGamestop', value: false },
|
|
172
|
+
{ flag: 'isFrame', value: false },
|
|
173
|
+
{ flag: 'isOpera', value: false },
|
|
174
|
+
{ flag: 'isBlocto', value: false },
|
|
175
|
+
{ flag: 'isTrustWallet', value: false },
|
|
176
|
+
{ flag: 'isPhantom', value: false },
|
|
177
|
+
{ flag: 'isZerion', value: false },
|
|
178
|
+
]);
|
|
179
|
+
EthProviderHelper.providers = {
|
|
180
|
+
bloctoinjected: _a.BloctoProvider,
|
|
181
|
+
braveevm: _a.BraveProvider,
|
|
182
|
+
coinbase: _a.CoinbaseProvider,
|
|
183
|
+
dawn: _a.DawnProvider,
|
|
184
|
+
exodusevm: _a.ExodusProvider,
|
|
185
|
+
frame: _a.FrameProvider,
|
|
186
|
+
gamestop: _a.GameStopProvider,
|
|
187
|
+
injectedwallet: _a.UnknownInjectedProvider,
|
|
188
|
+
metamask: _a.MetamaskProvider,
|
|
189
|
+
opera: _a.OperaProvider,
|
|
190
|
+
phantomevm: _a.PhantomProvider,
|
|
191
|
+
trust: _a.TrustWalletProvider,
|
|
192
|
+
zerion: _a.ZerionProvider,
|
|
193
|
+
};
|
|
192
194
|
|
|
193
195
|
export { EthProviderHelper };
|
|
@@ -7,13 +7,13 @@ const findEvmNetwork = ({ chainId, name, networks, }) => {
|
|
|
7
7
|
return undefined;
|
|
8
8
|
}
|
|
9
9
|
if (chainId && name) {
|
|
10
|
-
return networks.find((network) => network.chainId === chainId && network.
|
|
10
|
+
return networks.find((network) => network.chainId === chainId && network.name === name);
|
|
11
11
|
}
|
|
12
12
|
else if (chainId) {
|
|
13
13
|
return networks.find((network) => network.chainId === chainId);
|
|
14
14
|
}
|
|
15
15
|
else {
|
|
16
|
-
return networks.find((network) => network.
|
|
16
|
+
return networks.find((network) => network.name === name);
|
|
17
17
|
}
|
|
18
18
|
};
|
|
19
19
|
|
|
@@ -1,20 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
blockExplorerUrls?: string[];
|
|
3
|
-
chainId: number;
|
|
4
|
-
chainName: string;
|
|
5
|
-
iconUrls?: string[];
|
|
6
|
-
lcdUrl?: string;
|
|
7
|
-
nativeCurrency: {
|
|
8
|
-
decimals: number;
|
|
9
|
-
denom?: string;
|
|
10
|
-
name: string;
|
|
11
|
-
symbol: string;
|
|
12
|
-
};
|
|
13
|
-
networkId: number;
|
|
14
|
-
privateCustomerRpcUrls?: string[];
|
|
15
|
-
rpcUrls: string[];
|
|
16
|
-
vanityName?: string;
|
|
17
|
-
};
|
|
1
|
+
import { EvmNetwork } from '@dynamic-labs/types';
|
|
18
2
|
export declare const findEvmNetwork: ({ chainId, name, networks, }: {
|
|
19
3
|
chainId?: number | undefined;
|
|
20
4
|
name?: string | undefined;
|
|
@@ -3,13 +3,13 @@ const findEvmNetwork = ({ chainId, name, networks, }) => {
|
|
|
3
3
|
return undefined;
|
|
4
4
|
}
|
|
5
5
|
if (chainId && name) {
|
|
6
|
-
return networks.find((network) => network.chainId === chainId && network.
|
|
6
|
+
return networks.find((network) => network.chainId === chainId && network.name === name);
|
|
7
7
|
}
|
|
8
8
|
else if (chainId) {
|
|
9
9
|
return networks.find((network) => network.chainId === chainId);
|
|
10
10
|
}
|
|
11
11
|
else {
|
|
12
|
-
return networks.find((network) => network.
|
|
12
|
+
return networks.find((network) => network.name === name);
|
|
13
13
|
}
|
|
14
14
|
};
|
|
15
15
|
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
4
4
|
|
|
5
|
-
class BloctoInjected extends
|
|
5
|
+
class BloctoInjected extends InjectedWalletBase {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
8
|
this.name = 'bloctoInjected';
|
|
9
|
-
this.canConnectViaQrCode = false;
|
|
10
9
|
}
|
|
11
10
|
}
|
|
12
11
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
declare class BloctoInjected extends
|
|
1
|
+
import InjectedWalletBase from './InjectedWalletBase';
|
|
2
|
+
declare class BloctoInjected extends InjectedWalletBase {
|
|
3
3
|
name: string;
|
|
4
|
-
canConnectViaQrCode: boolean;
|
|
5
4
|
}
|
|
6
5
|
export default BloctoInjected;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import InjectedWalletBase from './InjectedWalletBase.js';
|
|
2
2
|
|
|
3
|
-
class BloctoInjected extends
|
|
3
|
+
class BloctoInjected extends InjectedWalletBase {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(...arguments);
|
|
6
6
|
this.name = 'bloctoInjected';
|
|
7
|
-
this.canConnectViaQrCode = false;
|
|
8
7
|
}
|
|
9
8
|
}
|
|
10
9
|
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
4
4
|
|
|
5
|
-
class BraveEvm extends
|
|
5
|
+
class BraveEvm extends InjectedWalletBase {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
8
|
this.name = 'BraveEvm';
|
|
9
|
-
this.canConnectViaQrCode = false;
|
|
10
9
|
}
|
|
11
10
|
}
|
|
12
11
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
declare class BraveEvm extends
|
|
1
|
+
import InjectedWalletBase from './InjectedWalletBase';
|
|
2
|
+
declare class BraveEvm extends InjectedWalletBase {
|
|
3
3
|
name: string;
|
|
4
|
-
canConnectViaQrCode: boolean;
|
|
5
4
|
}
|
|
6
5
|
export default BraveEvm;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import InjectedWalletBase from './InjectedWalletBase.js';
|
|
2
2
|
|
|
3
|
-
class BraveEvm extends
|
|
3
|
+
class BraveEvm extends InjectedWalletBase {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(...arguments);
|
|
6
6
|
this.name = 'BraveEvm';
|
|
7
|
-
this.canConnectViaQrCode = false;
|
|
8
7
|
}
|
|
9
8
|
}
|
|
10
9
|
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
4
4
|
|
|
5
|
-
class Dawn extends
|
|
5
|
+
class Dawn extends InjectedWalletBase {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
8
|
this.name = 'Dawn';
|
|
9
|
-
this.canConnectViaQrCode = false;
|
|
10
9
|
}
|
|
11
10
|
}
|
|
12
11
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import InjectedWalletBase from './InjectedWalletBase.js';
|
|
2
2
|
|
|
3
|
-
class Dawn extends
|
|
3
|
+
class Dawn extends InjectedWalletBase {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(...arguments);
|
|
6
6
|
this.name = 'Dawn';
|
|
7
|
-
this.canConnectViaQrCode = false;
|
|
8
7
|
}
|
|
9
8
|
}
|
|
10
9
|
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
4
4
|
|
|
5
|
-
class ExodusEvm extends
|
|
5
|
+
class ExodusEvm extends InjectedWalletBase {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
8
|
this.name = 'ExodusEvm';
|
|
9
|
-
this.canConnectViaQrCode = false;
|
|
10
9
|
}
|
|
11
10
|
}
|
|
12
11
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
declare class ExodusEvm extends
|
|
1
|
+
import InjectedWalletBase from './InjectedWalletBase';
|
|
2
|
+
declare class ExodusEvm extends InjectedWalletBase {
|
|
3
3
|
name: string;
|
|
4
|
-
canConnectViaQrCode: boolean;
|
|
5
4
|
}
|
|
6
5
|
export default ExodusEvm;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import InjectedWalletBase from './InjectedWalletBase.js';
|
|
2
2
|
|
|
3
|
-
class ExodusEvm extends
|
|
3
|
+
class ExodusEvm extends InjectedWalletBase {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(...arguments);
|
|
6
6
|
this.name = 'ExodusEvm';
|
|
7
|
-
this.canConnectViaQrCode = false;
|
|
8
7
|
}
|
|
9
8
|
}
|
|
10
9
|
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
4
4
|
|
|
5
|
-
class Frame extends
|
|
5
|
+
class Frame extends InjectedWalletBase {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
8
|
this.name = 'Frame';
|
|
9
|
-
this.canConnectViaQrCode = false;
|
|
10
9
|
}
|
|
11
10
|
}
|
|
12
11
|
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import InjectedWalletBase from './InjectedWalletBase.js';
|
|
2
2
|
|
|
3
|
-
class Frame extends
|
|
3
|
+
class Frame extends InjectedWalletBase {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(...arguments);
|
|
6
6
|
this.name = 'Frame';
|
|
7
|
-
this.canConnectViaQrCode = false;
|
|
8
7
|
}
|
|
9
8
|
}
|
|
10
9
|
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var InjectedWalletBase = require('./InjectedWalletBase.cjs');
|
|
4
4
|
|
|
5
|
-
class GameStop extends
|
|
5
|
+
class GameStop extends InjectedWalletBase {
|
|
6
6
|
constructor() {
|
|
7
7
|
super(...arguments);
|
|
8
8
|
this.name = 'GameStop';
|
|
9
|
-
this.canConnectViaQrCode = false;
|
|
10
9
|
}
|
|
11
10
|
}
|
|
12
11
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
declare class GameStop extends
|
|
1
|
+
import InjectedWalletBase from './InjectedWalletBase';
|
|
2
|
+
declare class GameStop extends InjectedWalletBase {
|
|
3
3
|
name: string;
|
|
4
|
-
canConnectViaQrCode: boolean;
|
|
5
4
|
}
|
|
6
5
|
export default GameStop;
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import InjectedWalletBase from './InjectedWalletBase.js';
|
|
2
2
|
|
|
3
|
-
class GameStop extends
|
|
3
|
+
class GameStop extends InjectedWalletBase {
|
|
4
4
|
constructor() {
|
|
5
5
|
super(...arguments);
|
|
6
6
|
this.name = 'GameStop';
|
|
7
|
-
this.canConnectViaQrCode = false;
|
|
8
7
|
}
|
|
9
8
|
}
|
|
10
9
|
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var tslib = require('tslib');
|
|
4
|
+
var walletConnect = require('../../walletConnect/walletConnect.cjs');
|
|
5
|
+
var walletConnectV2 = require('../../walletConnect/walletConnectV2.cjs');
|
|
6
|
+
var ethProviderHelper = require('../ethProviderHelper.cjs');
|
|
7
|
+
var EthWalletConnector = require('../EthWalletConnector.cjs');
|
|
8
|
+
|
|
9
|
+
class InjectedWalletBase extends EthWalletConnector.EthWalletConnector {
|
|
10
|
+
constructor() {
|
|
11
|
+
super(...arguments);
|
|
12
|
+
this.supportedChains = ['ETH', 'EVM'];
|
|
13
|
+
this.connectedChain = 'EVM';
|
|
14
|
+
this.walletConnectorFallback = false;
|
|
15
|
+
}
|
|
16
|
+
getMobileOrInstalledWallet() {
|
|
17
|
+
var _a;
|
|
18
|
+
if (this.walletConnectorFallback && !this.isInstalledOnBrowser()) {
|
|
19
|
+
if ((_a = this.constructorProps) === null || _a === void 0 ? void 0 : _a.isWalletConnectV2Enabled) {
|
|
20
|
+
return new walletConnectV2(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
return new walletConnect(Object.assign(Object.assign({}, this.constructorProps), { walletName: this.name }));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return this;
|
|
27
|
+
}
|
|
28
|
+
setupEventListeners(listeners) {
|
|
29
|
+
const { tearDownEventListeners } = ethProviderHelper.EthProviderHelper._setupEventListeners(this.name, listeners, this.getWeb3Provider());
|
|
30
|
+
this.teardownEventListeners = tearDownEventListeners;
|
|
31
|
+
}
|
|
32
|
+
getWeb3Provider() {
|
|
33
|
+
return ethProviderHelper.EthProviderHelper.findProvider(this.name);
|
|
34
|
+
}
|
|
35
|
+
isInstalledOnBrowser() {
|
|
36
|
+
return ethProviderHelper.EthProviderHelper.isInstalledHelper(this.name);
|
|
37
|
+
}
|
|
38
|
+
connect() {
|
|
39
|
+
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
yield this.fetchPublicAddress();
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
fetchPublicAddress() {
|
|
44
|
+
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
return ethProviderHelper.EthProviderHelper.fetchPublicAddressWithName(this.name);
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
signMessage(messageToSign) {
|
|
49
|
+
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
50
|
+
return ethProviderHelper.EthProviderHelper.signMessageWithName(messageToSign, this.name);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
proveOwnership(messageToSign) {
|
|
54
|
+
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
55
|
+
return this.signMessage(messageToSign);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
endSession() {
|
|
59
|
+
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
// nothing to do on browser-based metamask
|
|
61
|
+
return;
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
providerSwitchNetwork({ network, provider, }) {
|
|
65
|
+
const _super = Object.create(null, {
|
|
66
|
+
providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
|
|
67
|
+
});
|
|
68
|
+
return tslib.__awaiter(this, void 0, void 0, function* () {
|
|
69
|
+
return _super.providerSwitchNetwork.call(this, { network, provider });
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
module.exports = InjectedWalletBase;
|