@dynamic-labs/multi-wallet 0.17.0-RC.7 → 0.17.0-RC.9

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