@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.
Files changed (164) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/package.json +8 -6
  3. package/src/index.cjs +0 -18
  4. package/src/index.d.ts +0 -4
  5. package/src/index.js +1 -4
  6. package/src/multi-wallet.cjs +53 -96
  7. package/src/multi-wallet.js +53 -96
  8. package/src/types.d.ts +9 -47
  9. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.d.ts +1 -1
  10. package/src/utils/getApiProviders.cjs +15 -0
  11. package/src/utils/getApiProviders.d.ts +10 -0
  12. package/src/utils/getApiProviders.js +11 -0
  13. package/src/utils/message.cjs +2 -2
  14. package/src/utils/message.d.ts +2 -2
  15. package/src/utils/message.js +1 -1
  16. package/src/utils/walletConnect.cjs +11 -8
  17. package/src/utils/walletConnect.d.ts +4 -4
  18. package/src/utils/walletConnect.js +11 -8
  19. package/src/wallets/algorand/MyAlgoWalletConnector.cjs +3 -3
  20. package/src/wallets/algorand/MyAlgoWalletConnector.js +1 -1
  21. package/src/wallets/clients/coinbase/coinbase.cjs +4 -4
  22. package/src/wallets/clients/coinbase/coinbase.js +1 -1
  23. package/src/wallets/clients/coinbase/types.d.ts +2 -2
  24. package/src/wallets/clients/walletConnect/walletConnect.cjs +20 -46
  25. package/src/wallets/clients/walletConnect/walletConnect.d.ts +1 -3
  26. package/src/wallets/clients/walletConnect/walletConnect.js +18 -43
  27. package/src/wallets/cosmos/KeplrWalletConnect.cjs +18 -16
  28. package/src/wallets/cosmos/KeplrWalletConnect.d.ts +7 -6
  29. package/src/wallets/cosmos/KeplrWalletConnect.js +14 -12
  30. package/src/wallets/cosmos/KeplrWalletConnector.cjs +21 -6
  31. package/src/wallets/cosmos/KeplrWalletConnector.d.ts +10 -5
  32. package/src/wallets/cosmos/KeplrWalletConnector.js +21 -6
  33. package/src/wallets/cosmos/wcClient.lib.cjs +100 -0
  34. package/src/wallets/cosmos/wcClient.lib.d.ts +20 -0
  35. package/src/wallets/cosmos/wcClient.lib.js +87 -0
  36. package/src/wallets/ethereum/BloctoEvm.cjs +10 -12
  37. package/src/wallets/ethereum/BloctoEvm.d.ts +2 -7
  38. package/src/wallets/ethereum/BloctoEvm.js +8 -10
  39. package/src/wallets/ethereum/EthWalletConnector.cjs +34 -19
  40. package/src/wallets/ethereum/EthWalletConnector.d.ts +8 -4
  41. package/src/wallets/ethereum/EthWalletConnector.js +28 -13
  42. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs +0 -2
  43. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js +0 -2
  44. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs +2 -2
  45. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js +1 -1
  46. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +14 -38
  47. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +5 -7
  48. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +14 -38
  49. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +10 -4
  50. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +9 -3
  51. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +15 -11
  52. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +9 -8
  53. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +13 -9
  54. package/src/wallets/ethereum/coinbase.cjs +9 -11
  55. package/src/wallets/ethereum/coinbase.d.ts +7 -11
  56. package/src/wallets/ethereum/coinbase.js +10 -12
  57. package/src/wallets/ethereum/ethProviderHelper.cjs +103 -101
  58. package/src/wallets/ethereum/ethProviderHelper.d.ts +24 -31
  59. package/src/wallets/ethereum/ethProviderHelper.js +100 -98
  60. package/src/wallets/ethereum/evm-network.cjs +2 -2
  61. package/src/wallets/ethereum/evm-network.d.ts +1 -17
  62. package/src/wallets/ethereum/evm-network.js +2 -2
  63. package/src/wallets/ethereum/injected/BloctoInjected.cjs +2 -3
  64. package/src/wallets/ethereum/injected/BloctoInjected.d.ts +2 -3
  65. package/src/wallets/ethereum/injected/BloctoInjected.js +2 -3
  66. package/src/wallets/ethereum/injected/BraveEvm.cjs +2 -3
  67. package/src/wallets/ethereum/injected/BraveEvm.d.ts +2 -3
  68. package/src/wallets/ethereum/injected/BraveEvm.js +2 -3
  69. package/src/wallets/ethereum/injected/Dawn.cjs +2 -3
  70. package/src/wallets/ethereum/injected/Dawn.d.ts +2 -3
  71. package/src/wallets/ethereum/injected/Dawn.js +2 -3
  72. package/src/wallets/ethereum/injected/ExodusEvm.cjs +2 -3
  73. package/src/wallets/ethereum/injected/ExodusEvm.d.ts +2 -3
  74. package/src/wallets/ethereum/injected/ExodusEvm.js +2 -3
  75. package/src/wallets/ethereum/injected/Frame.cjs +2 -3
  76. package/src/wallets/ethereum/injected/Frame.d.ts +2 -3
  77. package/src/wallets/ethereum/injected/Frame.js +2 -3
  78. package/src/wallets/ethereum/injected/GameStop.cjs +2 -3
  79. package/src/wallets/ethereum/injected/GameStop.d.ts +2 -3
  80. package/src/wallets/ethereum/injected/GameStop.js +2 -3
  81. package/src/wallets/ethereum/injected/InjectedWalletBase.cjs +74 -0
  82. package/src/wallets/ethereum/{meta-mask.d.ts → injected/InjectedWalletBase.d.ts} +7 -9
  83. package/src/wallets/ethereum/injected/InjectedWalletBase.js +72 -0
  84. package/src/wallets/ethereum/injected/MetaMask.cjs +13 -0
  85. package/src/wallets/ethereum/injected/MetaMask.d.ts +6 -0
  86. package/src/wallets/ethereum/injected/MetaMask.js +11 -0
  87. package/src/wallets/ethereum/injected/Opera.cjs +2 -3
  88. package/src/wallets/ethereum/injected/Opera.d.ts +2 -3
  89. package/src/wallets/ethereum/injected/Opera.js +2 -3
  90. package/src/wallets/ethereum/injected/PhantomEvm.cjs +2 -3
  91. package/src/wallets/ethereum/injected/PhantomEvm.d.ts +2 -3
  92. package/src/wallets/ethereum/injected/PhantomEvm.js +2 -3
  93. package/src/wallets/ethereum/injected/Trust.cjs +3 -3
  94. package/src/wallets/ethereum/injected/Trust.d.ts +3 -3
  95. package/src/wallets/ethereum/injected/Trust.js +3 -3
  96. package/src/wallets/ethereum/injected/UnknownInjectedWallet.cjs +2 -3
  97. package/src/wallets/ethereum/injected/UnknownInjectedWallet.d.ts +2 -3
  98. package/src/wallets/ethereum/injected/UnknownInjectedWallet.js +2 -3
  99. package/src/wallets/ethereum/injected/Zerion.cjs +3 -3
  100. package/src/wallets/ethereum/injected/Zerion.d.ts +3 -3
  101. package/src/wallets/ethereum/injected/Zerion.js +3 -3
  102. package/src/wallets/flow/FlowWalletConnector.cjs +7 -8
  103. package/src/wallets/flow/FlowWalletConnector.js +2 -3
  104. package/src/wallets/getWalletConnectConnector.cjs +7 -10
  105. package/src/wallets/getWalletConnectConnector.d.ts +2 -5
  106. package/src/wallets/getWalletConnectConnector.js +7 -10
  107. package/src/wallets/solana/CoinbaseSolana.cjs +8 -11
  108. package/src/wallets/solana/CoinbaseSolana.d.ts +1 -3
  109. package/src/wallets/solana/CoinbaseSolana.js +8 -11
  110. package/src/wallets/solana/glow.cjs +8 -11
  111. package/src/wallets/solana/glow.d.ts +1 -3
  112. package/src/wallets/solana/glow.js +8 -11
  113. package/src/wallets/solana/injected/BraveSol.cjs +2 -1
  114. package/src/wallets/solana/injected/BraveSol.js +2 -1
  115. package/src/wallets/solana/phantom-ledger.cjs +5 -5
  116. package/src/wallets/solana/phantom-ledger.js +1 -1
  117. package/src/wallets/solana/phantom.cjs +8 -12
  118. package/src/wallets/solana/phantom.d.ts +1 -3
  119. package/src/wallets/solana/phantom.js +8 -12
  120. package/src/wallets/solana/slope.cjs +4 -4
  121. package/src/wallets/solana/slope.js +1 -1
  122. package/src/wallets/solana/solProviderHelper.cjs +47 -48
  123. package/src/wallets/solana/solProviderHelper.d.ts +18 -18
  124. package/src/wallets/solana/solProviderHelper.js +47 -48
  125. package/src/wallets/solana/solWalletConnector.cjs +24 -6
  126. package/src/wallets/solana/solWalletConnector.d.ts +8 -5
  127. package/src/wallets/solana/solWalletConnector.js +23 -5
  128. package/src/wallets/solana/solflare.cjs +6 -7
  129. package/src/wallets/solana/solflare.d.ts +0 -2
  130. package/src/wallets/solana/solflare.js +6 -7
  131. package/src/wallets/starknet/starknetWalletConnector.cjs +5 -6
  132. package/src/wallets/starknet/starknetWalletConnector.js +2 -3
  133. package/src/wallets/walletConnect/index.d.ts +1 -1
  134. package/src/wallets/walletConnect/walletConnect.cjs +8 -7
  135. package/src/wallets/walletConnect/walletConnect.d.ts +7 -7
  136. package/src/wallets/walletConnect/walletConnect.js +6 -5
  137. package/src/wallets/walletConnect/walletConnectV2.cjs +14 -14
  138. package/src/wallets/walletConnect/walletConnectV2.d.ts +7 -7
  139. package/src/wallets/walletConnect/walletConnectV2.js +3 -3
  140. package/src/wallets/walletConnect/zerion.d.ts +2 -4
  141. package/src/errors.cjs +0 -66
  142. package/src/errors.d.ts +0 -34
  143. package/src/errors.js +0 -54
  144. package/src/rpcProviders.cjs +0 -76
  145. package/src/rpcProviders.d.ts +0 -5
  146. package/src/rpcProviders.js +0 -69
  147. package/src/utils/CancellablePromise/CancellablePromise.cjs +0 -33
  148. package/src/utils/CancellablePromise/CancellablePromise.d.ts +0 -9
  149. package/src/utils/CancellablePromise/CancellablePromise.js +0 -29
  150. package/src/utils/CancellablePromise/index.d.ts +0 -1
  151. package/src/utils/logger.cjs +0 -9
  152. package/src/utils/logger.d.ts +0 -2
  153. package/src/utils/logger.js +0 -5
  154. package/src/wallets/cosmos/getKeplrConnector.cjs +0 -18
  155. package/src/wallets/cosmos/getKeplrConnector.d.ts +0 -6
  156. package/src/wallets/cosmos/getKeplrConnector.js +0 -14
  157. package/src/wallets/ethereum/fortmatic.cjs +0 -75
  158. package/src/wallets/ethereum/fortmatic.d.ts +0 -26
  159. package/src/wallets/ethereum/fortmatic.js +0 -69
  160. package/src/wallets/ethereum/meta-mask.cjs +0 -63
  161. package/src/wallets/ethereum/meta-mask.js +0 -61
  162. package/src/wallets/getMobileOrInjectedWallet.cjs +0 -26
  163. package/src/wallets/getMobileOrInjectedWallet.d.ts +0 -8
  164. 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
- constructor() {
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 _a;
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 ((_a = window.phantom) === null || _a === void 0 ? void 0 : _a.ethereum) {
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 _a, _b;
38
+ static findProvider(walletName) {
39
+ var _b, _c;
91
40
  try {
92
- const provider = (_b = (_a = this.providers)[normalizeWalletName(walletName)]) === null || _b === void 0 ? void 0 : _b.call(_a);
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
- // nothing to teardown
94
+ return {
95
+ tearDownEventListeners: () => { },
147
96
  };
148
97
  }
149
98
  const externalProvider = web3Provider.provider;
150
- this.handleAccountChange = (accounts) => __awaiter(this, void 0, void 0, function* () {
151
- var _a, _b;
99
+ const handleAccountChange = (accounts) => __awaiter(this, void 0, void 0, function* () {
100
+ var _b, _c;
152
101
  if (accounts.length === 0) {
153
- yield ((_a = listeners.onDisconnect) === null || _a === void 0 ? void 0 : _a.call(listeners));
102
+ yield ((_b = listeners.onDisconnect) === null || _b === void 0 ? void 0 : _b.call(listeners));
154
103
  return;
155
104
  }
156
- yield ((_b = listeners.onAccountChange) === null || _b === void 0 ? void 0 : _b.call(listeners, accounts));
105
+ yield ((_c = listeners.onAccountChange) === null || _c === void 0 ? void 0 : _c.call(listeners, accounts));
157
106
  });
158
- this.handleChainChange = () => __awaiter(this, void 0, void 0, function* () {
159
- var _c;
107
+ const handleChainChange = () => __awaiter(this, void 0, void 0, function* () {
108
+ var _d;
160
109
  const network = yield web3Provider.getNetwork();
161
- yield ((_c = listeners.onChainChange) === null || _c === void 0 ? void 0 : _c.call(listeners, network.chainId.toString()));
110
+ yield ((_d = listeners.onChainChange) === null || _d === void 0 ? void 0 : _d.call(listeners, network.chainId.toString()));
162
111
  });
163
- this.handleDisconnect = (error) => __awaiter(this, void 0, void 0, function* () {
164
- var _d;
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 ((_d = listeners.onDisconnect) === null || _d === void 0 ? void 0 : _d.call(listeners));
117
+ yield ((_e = listeners.onDisconnect) === null || _e === void 0 ? void 0 : _e.call(listeners));
169
118
  });
170
- externalProvider.on('accountsChanged', this.handleAccountChange);
171
- externalProvider.on('chainChanged', this.handleChainChange);
172
- externalProvider.on('disconnect', this.handleDisconnect);
173
- return () => { };
174
- }
175
- _teardownEventListeners(name) {
176
- const web3Provider = this.findProvider(name);
177
- if (!web3Provider || !(web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.provider)) {
178
- return;
179
- }
180
- const externalProvider = web3Provider.provider;
181
- if (this.handleAccountChange) {
182
- externalProvider.removeListener('accountsChanged', this.handleAccountChange);
183
- }
184
- if (this.handleChainChange) {
185
- externalProvider.removeListener('chainChanged', this.handleChainChange);
186
- }
187
- if (this.handleDisconnect) {
188
- externalProvider.removeListener('disconnect', this.handleDisconnect);
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.chainName === name);
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.chainName === name);
16
+ return networks.find((network) => network.name === name);
17
17
  }
18
18
  };
19
19
 
@@ -1,20 +1,4 @@
1
- export type EvmNetwork = {
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.chainName === name);
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.chainName === name);
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 metaMask = require('../meta-mask.cjs');
3
+ var InjectedWalletBase = require('./InjectedWalletBase.cjs');
4
4
 
5
- class BloctoInjected extends metaMask {
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 MetaMask from '../meta-mask';
2
- declare class BloctoInjected extends MetaMask {
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 MetaMask from '../meta-mask.js';
1
+ import InjectedWalletBase from './InjectedWalletBase.js';
2
2
 
3
- class BloctoInjected extends MetaMask {
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 metaMask = require('../meta-mask.cjs');
3
+ var InjectedWalletBase = require('./InjectedWalletBase.cjs');
4
4
 
5
- class BraveEvm extends metaMask {
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 MetaMask from '../meta-mask';
2
- declare class BraveEvm extends MetaMask {
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 MetaMask from '../meta-mask.js';
1
+ import InjectedWalletBase from './InjectedWalletBase.js';
2
2
 
3
- class BraveEvm extends MetaMask {
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 metaMask = require('../meta-mask.cjs');
3
+ var InjectedWalletBase = require('./InjectedWalletBase.cjs');
4
4
 
5
- class Dawn extends metaMask {
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,6 +1,5 @@
1
- import MetaMask from '../meta-mask';
2
- declare class Dawn extends MetaMask {
1
+ import InjectedWalletBase from './InjectedWalletBase';
2
+ declare class Dawn extends InjectedWalletBase {
3
3
  name: string;
4
- canConnectViaQrCode: boolean;
5
4
  }
6
5
  export default Dawn;
@@ -1,10 +1,9 @@
1
- import MetaMask from '../meta-mask.js';
1
+ import InjectedWalletBase from './InjectedWalletBase.js';
2
2
 
3
- class Dawn extends MetaMask {
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 metaMask = require('../meta-mask.cjs');
3
+ var InjectedWalletBase = require('./InjectedWalletBase.cjs');
4
4
 
5
- class ExodusEvm extends metaMask {
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 MetaMask from '../meta-mask';
2
- declare class ExodusEvm extends MetaMask {
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 MetaMask from '../meta-mask.js';
1
+ import InjectedWalletBase from './InjectedWalletBase.js';
2
2
 
3
- class ExodusEvm extends MetaMask {
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 metaMask = require('../meta-mask.cjs');
3
+ var InjectedWalletBase = require('./InjectedWalletBase.cjs');
4
4
 
5
- class Frame extends metaMask {
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,6 +1,5 @@
1
- import MetaMask from '../meta-mask';
2
- declare class Frame extends MetaMask {
1
+ import InjectedWalletBase from './InjectedWalletBase';
2
+ declare class Frame extends InjectedWalletBase {
3
3
  name: string;
4
- canConnectViaQrCode: boolean;
5
4
  }
6
5
  export default Frame;
@@ -1,10 +1,9 @@
1
- import MetaMask from '../meta-mask.js';
1
+ import InjectedWalletBase from './InjectedWalletBase.js';
2
2
 
3
- class Frame extends MetaMask {
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 metaMask = require('../meta-mask.cjs');
3
+ var InjectedWalletBase = require('./InjectedWalletBase.cjs');
4
4
 
5
- class GameStop extends metaMask {
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 MetaMask from '../meta-mask';
2
- declare class GameStop extends MetaMask {
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 MetaMask from '../meta-mask.js';
1
+ import InjectedWalletBase from './InjectedWalletBase.js';
2
2
 
3
- class GameStop extends MetaMask {
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;