@dynamic-labs/multi-wallet 0.17.0-RC.2 → 0.17.0-RC.21

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 (277) hide show
  1. package/CHANGELOG.md +242 -0
  2. package/package.json +10 -26
  3. package/src/index.cjs +0 -69
  4. package/src/index.d.ts +0 -18
  5. package/src/index.js +1 -23
  6. package/src/multi-wallet.cjs +38 -182
  7. package/src/multi-wallet.d.ts +1 -4
  8. package/src/multi-wallet.js +37 -180
  9. package/src/types.d.ts +12 -50
  10. package/src/utils/getApiProviders.cjs +15 -0
  11. package/src/utils/getApiProviders.d.ts +17 -0
  12. package/src/utils/getApiProviders.js +11 -0
  13. package/src/utils/message.cjs +3 -4
  14. package/src/utils/message.d.ts +2 -2
  15. package/src/utils/message.js +1 -2
  16. package/src/errors.cjs +0 -65
  17. package/src/errors.d.ts +0 -30
  18. package/src/errors.js +0 -53
  19. package/src/polyfills.cjs +0 -16
  20. package/src/polyfills.d.ts +0 -1
  21. package/src/polyfills.js +0 -14
  22. package/src/rpcProviders.cjs +0 -76
  23. package/src/rpcProviders.d.ts +0 -5
  24. package/src/rpcProviders.js +0 -69
  25. package/src/utils/CancellablePromise/CancellablePromise.cjs +0 -33
  26. package/src/utils/CancellablePromise/CancellablePromise.d.ts +0 -9
  27. package/src/utils/CancellablePromise/CancellablePromise.js +0 -29
  28. package/src/utils/CancellablePromise/index.d.ts +0 -1
  29. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.cjs +0 -54
  30. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.d.ts +0 -3
  31. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.js +0 -50
  32. package/src/utils/assignConfirmationScreenToProvider/index.d.ts +0 -1
  33. package/src/utils/convertors.cjs +0 -43
  34. package/src/utils/convertors.d.ts +0 -3
  35. package/src/utils/convertors.js +0 -38
  36. package/src/utils/encoding.cjs +0 -18
  37. package/src/utils/encoding.d.ts +0 -4
  38. package/src/utils/encoding.js +0 -12
  39. package/src/utils/extractNonce.cjs +0 -13
  40. package/src/utils/extractNonce.d.ts +0 -1
  41. package/src/utils/extractNonce.js +0 -9
  42. package/src/utils/getChainInfo/getChainInfo.cjs +0 -59
  43. package/src/utils/getChainInfo/getChainInfo.d.ts +0 -2
  44. package/src/utils/getChainInfo/getChainInfo.js +0 -55
  45. package/src/utils/getChainInfo/index.d.ts +0 -1
  46. package/src/utils/getWalletConnectorByName.cjs +0 -19
  47. package/src/utils/getWalletConnectorByName.d.ts +0 -2
  48. package/src/utils/getWalletConnectorByName.js +0 -15
  49. package/src/utils/isEmailOTPWalletConnector/index.d.ts +0 -1
  50. package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.cjs +0 -7
  51. package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.d.ts +0 -2
  52. package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.js +0 -3
  53. package/src/utils/isEmailWalletConnector/index.d.ts +0 -1
  54. package/src/utils/isEmailWalletConnector/isEmailWalletConnector.cjs +0 -7
  55. package/src/utils/isEmailWalletConnector/isEmailWalletConnector.d.ts +0 -2
  56. package/src/utils/isEmailWalletConnector/isEmailWalletConnector.js +0 -3
  57. package/src/utils/isFunction/index.d.ts +0 -1
  58. package/src/utils/isFunction/isFunction.cjs +0 -8
  59. package/src/utils/isFunction/isFunction.d.ts +0 -1
  60. package/src/utils/isFunction/isFunction.js +0 -4
  61. package/src/utils/isMobile.cjs +0 -54
  62. package/src/utils/isMobile.d.ts +0 -13
  63. package/src/utils/isMobile.js +0 -46
  64. package/src/utils/isSameAddress/index.d.ts +0 -1
  65. package/src/utils/isSameAddress/isSameAddress.cjs +0 -9
  66. package/src/utils/isSameAddress/isSameAddress.d.ts +0 -1
  67. package/src/utils/isSameAddress/isSameAddress.js +0 -5
  68. package/src/utils/isSameAddress/utils/index.d.ts +0 -1
  69. package/src/utils/isSameAddress/utils/normalizeAddress/index.d.ts +0 -1
  70. package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.cjs +0 -17
  71. package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.d.ts +0 -1
  72. package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.js +0 -13
  73. package/src/utils/isSocialWalletConnector/index.d.ts +0 -1
  74. package/src/utils/isSocialWalletConnector/isSocialWalletConnector.cjs +0 -7
  75. package/src/utils/isSocialWalletConnector/isSocialWalletConnector.d.ts +0 -2
  76. package/src/utils/isSocialWalletConnector/isSocialWalletConnector.js +0 -3
  77. package/src/utils/isUnsupportedProviderError/index.d.ts +0 -1
  78. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs +0 -13
  79. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.d.ts +0 -6
  80. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.js +0 -9
  81. package/src/utils/localStorageAsync.cjs +0 -28
  82. package/src/utils/localStorageAsync.d.ts +0 -3
  83. package/src/utils/localStorageAsync.js +0 -22
  84. package/src/utils/logger.cjs +0 -9
  85. package/src/utils/logger.d.ts +0 -2
  86. package/src/utils/logger.js +0 -5
  87. package/src/utils/normalizeWalletName/index.d.ts +0 -1
  88. package/src/utils/normalizeWalletName/normalizeWalletName.cjs +0 -7
  89. package/src/utils/normalizeWalletName/normalizeWalletName.d.ts +0 -1
  90. package/src/utils/normalizeWalletName/normalizeWalletName.js +0 -3
  91. package/src/utils/shouldLowercaseAddress.cjs +0 -11
  92. package/src/utils/shouldLowercaseAddress.d.ts +0 -1
  93. package/src/utils/shouldLowercaseAddress.js +0 -7
  94. package/src/utils/walletConnect.cjs +0 -30
  95. package/src/utils/walletConnect.d.ts +0 -4
  96. package/src/utils/walletConnect.js +0 -26
  97. package/src/wallets/ProviderLookup.cjs +0 -18
  98. package/src/wallets/ProviderLookup.d.ts +0 -4
  99. package/src/wallets/ProviderLookup.js +0 -14
  100. package/src/wallets/algorand/MyAlgoWalletConnector.cjs +0 -149
  101. package/src/wallets/algorand/MyAlgoWalletConnector.d.ts +0 -21
  102. package/src/wallets/algorand/MyAlgoWalletConnector.js +0 -143
  103. package/src/wallets/algorand/myalgoSigner.cjs +0 -24
  104. package/src/wallets/algorand/myalgoSigner.d.ts +0 -21
  105. package/src/wallets/algorand/myalgoSigner.js +0 -20
  106. package/src/wallets/clients/coinbase/coinbase.cjs +0 -73
  107. package/src/wallets/clients/coinbase/coinbase.d.ts +0 -6
  108. package/src/wallets/clients/coinbase/coinbase.js +0 -66
  109. package/src/wallets/clients/coinbase/index.d.ts +0 -2
  110. package/src/wallets/clients/coinbase/types.d.ts +0 -14
  111. package/src/wallets/clients/walletConnect/index.d.ts +0 -1
  112. package/src/wallets/clients/walletConnect/types.d.ts +0 -4
  113. package/src/wallets/clients/walletConnect/walletConnect.cjs +0 -204
  114. package/src/wallets/clients/walletConnect/walletConnect.d.ts +0 -22
  115. package/src/wallets/clients/walletConnect/walletConnect.js +0 -187
  116. package/src/wallets/constants.cjs +0 -16
  117. package/src/wallets/constants.d.ts +0 -4
  118. package/src/wallets/constants.js +0 -10
  119. package/src/wallets/cosmos/KeplrWalletConnect.cjs +0 -196
  120. package/src/wallets/cosmos/KeplrWalletConnect.d.ts +0 -46
  121. package/src/wallets/cosmos/KeplrWalletConnect.js +0 -194
  122. package/src/wallets/cosmos/KeplrWalletConnector.cjs +0 -193
  123. package/src/wallets/cosmos/KeplrWalletConnector.d.ts +0 -70
  124. package/src/wallets/cosmos/KeplrWalletConnector.js +0 -189
  125. package/src/wallets/cosmos/getKeplrConnector.cjs +0 -18
  126. package/src/wallets/cosmos/getKeplrConnector.d.ts +0 -6
  127. package/src/wallets/cosmos/getKeplrConnector.js +0 -14
  128. package/src/wallets/cosmos/index.d.ts +0 -1
  129. package/src/wallets/cosmos/utils/indexDB.cjs +0 -97
  130. package/src/wallets/cosmos/utils/indexDB.d.ts +0 -18
  131. package/src/wallets/cosmos/utils/indexDB.js +0 -93
  132. package/src/wallets/cosmos/wcClient.cjs +0 -333
  133. package/src/wallets/cosmos/wcClient.d.ts +0 -104
  134. package/src/wallets/cosmos/wcClient.js +0 -325
  135. package/src/wallets/ethereum/BloctoEvm.cjs +0 -111
  136. package/src/wallets/ethereum/BloctoEvm.d.ts +0 -25
  137. package/src/wallets/ethereum/BloctoEvm.js +0 -105
  138. package/src/wallets/ethereum/EthWalletConnector.cjs +0 -191
  139. package/src/wallets/ethereum/EthWalletConnector.d.ts +0 -35
  140. package/src/wallets/ethereum/EthWalletConnector.js +0 -187
  141. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs +0 -63
  142. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.d.ts +0 -12
  143. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js +0 -59
  144. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/index.d.ts +0 -1
  145. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs +0 -62
  146. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.d.ts +0 -11
  147. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js +0 -58
  148. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/index.d.ts +0 -1
  149. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +0 -102
  150. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +0 -33
  151. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +0 -98
  152. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/index.d.ts +0 -2
  153. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +0 -55
  154. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.d.ts +0 -12
  155. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +0 -51
  156. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/index.d.ts +0 -1
  157. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +0 -175
  158. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +0 -53
  159. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +0 -171
  160. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/index.d.ts +0 -2
  161. package/src/wallets/ethereum/MagicConnector/index.d.ts +0 -5
  162. package/src/wallets/ethereum/coinbase.cjs +0 -65
  163. package/src/wallets/ethereum/coinbase.d.ts +0 -26
  164. package/src/wallets/ethereum/coinbase.js +0 -63
  165. package/src/wallets/ethereum/ethProviderHelper.cjs +0 -197
  166. package/src/wallets/ethereum/ethProviderHelper.d.ts +0 -40
  167. package/src/wallets/ethereum/ethProviderHelper.js +0 -193
  168. package/src/wallets/ethereum/evm-network.cjs +0 -20
  169. package/src/wallets/ethereum/evm-network.d.ts +0 -22
  170. package/src/wallets/ethereum/evm-network.js +0 -16
  171. package/src/wallets/ethereum/fortmatic.cjs +0 -75
  172. package/src/wallets/ethereum/fortmatic.d.ts +0 -26
  173. package/src/wallets/ethereum/fortmatic.js +0 -69
  174. package/src/wallets/ethereum/injected/BloctoInjected.cjs +0 -13
  175. package/src/wallets/ethereum/injected/BloctoInjected.d.ts +0 -6
  176. package/src/wallets/ethereum/injected/BloctoInjected.js +0 -11
  177. package/src/wallets/ethereum/injected/BraveEvm.cjs +0 -13
  178. package/src/wallets/ethereum/injected/BraveEvm.d.ts +0 -6
  179. package/src/wallets/ethereum/injected/BraveEvm.js +0 -11
  180. package/src/wallets/ethereum/injected/Dawn.cjs +0 -13
  181. package/src/wallets/ethereum/injected/Dawn.d.ts +0 -6
  182. package/src/wallets/ethereum/injected/Dawn.js +0 -11
  183. package/src/wallets/ethereum/injected/ExodusEvm.cjs +0 -13
  184. package/src/wallets/ethereum/injected/ExodusEvm.d.ts +0 -6
  185. package/src/wallets/ethereum/injected/ExodusEvm.js +0 -11
  186. package/src/wallets/ethereum/injected/Frame.cjs +0 -13
  187. package/src/wallets/ethereum/injected/Frame.d.ts +0 -6
  188. package/src/wallets/ethereum/injected/Frame.js +0 -11
  189. package/src/wallets/ethereum/injected/GameStop.cjs +0 -13
  190. package/src/wallets/ethereum/injected/GameStop.d.ts +0 -6
  191. package/src/wallets/ethereum/injected/GameStop.js +0 -11
  192. package/src/wallets/ethereum/injected/Opera.cjs +0 -13
  193. package/src/wallets/ethereum/injected/Opera.d.ts +0 -6
  194. package/src/wallets/ethereum/injected/Opera.js +0 -11
  195. package/src/wallets/ethereum/injected/PhantomEvm.cjs +0 -37
  196. package/src/wallets/ethereum/injected/PhantomEvm.d.ts +0 -7
  197. package/src/wallets/ethereum/injected/PhantomEvm.js +0 -35
  198. package/src/wallets/ethereum/injected/Trust.cjs +0 -13
  199. package/src/wallets/ethereum/injected/Trust.d.ts +0 -6
  200. package/src/wallets/ethereum/injected/Trust.js +0 -11
  201. package/src/wallets/ethereum/injected/UnknownInjectedWallet.cjs +0 -13
  202. package/src/wallets/ethereum/injected/UnknownInjectedWallet.d.ts +0 -6
  203. package/src/wallets/ethereum/injected/UnknownInjectedWallet.js +0 -11
  204. package/src/wallets/ethereum/injected/Zerion.cjs +0 -13
  205. package/src/wallets/ethereum/injected/Zerion.d.ts +0 -6
  206. package/src/wallets/ethereum/injected/Zerion.js +0 -11
  207. package/src/wallets/ethereum/meta-mask.cjs +0 -63
  208. package/src/wallets/ethereum/meta-mask.d.ts +0 -26
  209. package/src/wallets/ethereum/meta-mask.js +0 -61
  210. package/src/wallets/flow/FlowWalletConnector.cjs +0 -163
  211. package/src/wallets/flow/FlowWalletConnector.d.ts +0 -29
  212. package/src/wallets/flow/FlowWalletConnector.js +0 -158
  213. package/src/wallets/flow/blocto.cjs +0 -22
  214. package/src/wallets/flow/blocto.d.ts +0 -7
  215. package/src/wallets/flow/blocto.js +0 -20
  216. package/src/wallets/flow/dapper.cjs +0 -22
  217. package/src/wallets/flow/dapper.d.ts +0 -7
  218. package/src/wallets/flow/dapper.js +0 -20
  219. package/src/wallets/flow/lilico.cjs +0 -42
  220. package/src/wallets/flow/lilico.d.ts +0 -8
  221. package/src/wallets/flow/lilico.js +0 -40
  222. package/src/wallets/getMobileOrInjectedWallet.cjs +0 -26
  223. package/src/wallets/getMobileOrInjectedWallet.d.ts +0 -8
  224. package/src/wallets/getMobileOrInjectedWallet.js +0 -22
  225. package/src/wallets/getWalletConnectConnector.cjs +0 -19
  226. package/src/wallets/getWalletConnectConnector.d.ts +0 -8
  227. package/src/wallets/getWalletConnectConnector.js +0 -15
  228. package/src/wallets/solana/CoinbaseSolana.cjs +0 -54
  229. package/src/wallets/solana/CoinbaseSolana.d.ts +0 -17
  230. package/src/wallets/solana/CoinbaseSolana.js +0 -52
  231. package/src/wallets/solana/glow.cjs +0 -51
  232. package/src/wallets/solana/glow.d.ts +0 -16
  233. package/src/wallets/solana/glow.js +0 -49
  234. package/src/wallets/solana/injected/BraveSol.cjs +0 -18
  235. package/src/wallets/solana/injected/BraveSol.d.ts +0 -6
  236. package/src/wallets/solana/injected/BraveSol.js +0 -16
  237. package/src/wallets/solana/injected/ExodusSol.cjs +0 -12
  238. package/src/wallets/solana/injected/ExodusSol.d.ts +0 -5
  239. package/src/wallets/solana/injected/ExodusSol.js +0 -10
  240. package/src/wallets/solana/phantom-ledger.cjs +0 -71
  241. package/src/wallets/solana/phantom-ledger.d.ts +0 -16
  242. package/src/wallets/solana/phantom-ledger.js +0 -65
  243. package/src/wallets/solana/phantom.cjs +0 -74
  244. package/src/wallets/solana/phantom.d.ts +0 -17
  245. package/src/wallets/solana/phantom.js +0 -72
  246. package/src/wallets/solana/slope.cjs +0 -96
  247. package/src/wallets/solana/slope.d.ts +0 -27
  248. package/src/wallets/solana/slope.js +0 -94
  249. package/src/wallets/solana/solProviderHelper.cjs +0 -164
  250. package/src/wallets/solana/solProviderHelper.d.ts +0 -29
  251. package/src/wallets/solana/solProviderHelper.js +0 -160
  252. package/src/wallets/solana/solWalletConnector.cjs +0 -57
  253. package/src/wallets/solana/solWalletConnector.d.ts +0 -18
  254. package/src/wallets/solana/solWalletConnector.js +0 -53
  255. package/src/wallets/solana/solflare.cjs +0 -65
  256. package/src/wallets/solana/solflare.d.ts +0 -14
  257. package/src/wallets/solana/solflare.js +0 -63
  258. package/src/wallets/starknet/argentx.cjs +0 -20
  259. package/src/wallets/starknet/argentx.d.ts +0 -7
  260. package/src/wallets/starknet/argentx.js +0 -18
  261. package/src/wallets/starknet/braavos.cjs +0 -33
  262. package/src/wallets/starknet/braavos.d.ts +0 -7
  263. package/src/wallets/starknet/braavos.js +0 -31
  264. package/src/wallets/starknet/ethereumContractAbi.cjs +0 -357
  265. package/src/wallets/starknet/ethereumContractAbi.js +0 -355
  266. package/src/wallets/starknet/starknetWalletConnector.cjs +0 -171
  267. package/src/wallets/starknet/starknetWalletConnector.d.ts +0 -34
  268. package/src/wallets/starknet/starknetWalletConnector.js +0 -169
  269. package/src/wallets/walletConnect/index.d.ts +0 -2
  270. package/src/wallets/walletConnect/walletConnect.cjs +0 -130
  271. package/src/wallets/walletConnect/walletConnect.d.ts +0 -34
  272. package/src/wallets/walletConnect/walletConnect.js +0 -124
  273. package/src/wallets/walletConnect/walletConnectV2.cjs +0 -268
  274. package/src/wallets/walletConnect/walletConnectV2.d.ts +0 -38
  275. package/src/wallets/walletConnect/walletConnectV2.js +0 -262
  276. package/src/wallets/walletConnect/zerion.d.ts +0 -8
  277. package/src/wallets/window.d.ts +0 -95
@@ -1,171 +0,0 @@
1
- import { __awaiter } from 'tslib';
2
- import { Magic } from 'magic-sdk';
3
- import { ethers } from 'ethers';
4
- import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
5
- import { DynamicError } from '../../../../errors.js';
6
- import { logger } from '../../../../utils/logger.js';
7
- import { assignConfirmationScreenToProvider } from '../../../../utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.js';
8
- import { CancellablePromise } from '../../../../utils/CancellablePromise/CancellablePromise.js';
9
- import { MagicClientNetworkHandler } from '../MagicClientNetworkHandler/MagicClientNetworkHandler.js';
10
-
11
- const storedAddressKey = 'dynamic_magic_address';
12
- class MagicWalletConnector extends WalletConnectorBase {
13
- get key() {
14
- return 'magiclink';
15
- }
16
- constructor({ apiKey, walletUiUtils, evmNetworks, config, }) {
17
- super();
18
- this.canConnectViaCustodialService = true;
19
- this.connectedChain = 'EVM';
20
- this.supportedChains = ['ETH', 'EVM'];
21
- this.name = 'Magic Link';
22
- this._magicClient = new MagicClientNetworkHandler({
23
- config,
24
- createClient: (config) => new Magic(apiKey, config),
25
- evmNetworks,
26
- });
27
- this.evmNetworks = evmNetworks;
28
- this._walletUiUtils = walletUiUtils;
29
- }
30
- getDeepLink() {
31
- return undefined;
32
- }
33
- connect() {
34
- return __awaiter(this, void 0, void 0, function* () {
35
- yield this.fetchPublicAddress();
36
- });
37
- }
38
- endSession() {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- localStorage.removeItem(storedAddressKey);
41
- const client = this._magicClient.getClient();
42
- yield client.user.logout();
43
- });
44
- }
45
- getUserMetadata() {
46
- return __awaiter(this, void 0, void 0, function* () {
47
- if (yield this._isLoggedIn()) {
48
- const client = this._magicClient.getClient();
49
- return client.user.getMetadata();
50
- }
51
- return undefined;
52
- });
53
- }
54
- fetchPublicAddress() {
55
- return __awaiter(this, void 0, void 0, function* () {
56
- const address = localStorage.getItem(storedAddressKey);
57
- if (address)
58
- return address;
59
- const client = this._magicClient.getClient();
60
- try {
61
- try {
62
- this._currentAuthCancellablePromise = CancellablePromise.fromPromise(this.loginWithMagic());
63
- yield this._currentAuthCancellablePromise;
64
- }
65
- catch (err) {
66
- logger.error(err);
67
- return;
68
- }
69
- const metadata = yield client.user.getMetadata();
70
- if (!metadata || !metadata.publicAddress) {
71
- throw new Error('No public address');
72
- }
73
- if (metadata.issuer) {
74
- this.providerResources = [`magic-auth:issuer:${metadata.issuer}`];
75
- }
76
- localStorage.setItem(storedAddressKey, metadata.publicAddress);
77
- return metadata.publicAddress;
78
- }
79
- catch (err) {
80
- return undefined;
81
- }
82
- });
83
- }
84
- getBalance() {
85
- return __awaiter(this, void 0, void 0, function* () {
86
- const provider = yield this.getWeb3Provider();
87
- if (!provider)
88
- throw new DynamicError('No provider');
89
- const signer = provider.getSigner();
90
- const userAddress = yield signer.getAddress();
91
- return ethers.utils.formatEther(yield provider.getBalance(userAddress));
92
- });
93
- }
94
- getConnectedAccounts() {
95
- return __awaiter(this, void 0, void 0, function* () {
96
- const address = localStorage.getItem(storedAddressKey);
97
- if (!address)
98
- return [];
99
- return [address];
100
- });
101
- }
102
- getNetwork() {
103
- return __awaiter(this, void 0, void 0, function* () {
104
- return this._magicClient.networkId;
105
- });
106
- }
107
- getRpcProvider() {
108
- return __awaiter(this, void 0, void 0, function* () {
109
- return undefined;
110
- });
111
- }
112
- getSigner() {
113
- return __awaiter(this, void 0, void 0, function* () {
114
- const provider = yield this.getWeb3Provider();
115
- return provider.getSigner();
116
- });
117
- }
118
- getWeb3Provider() {
119
- return __awaiter(this, void 0, void 0, function* () {
120
- const client = this._magicClient.getClient();
121
- const provider = new ethers.providers.Web3Provider(client.rpcProvider);
122
- assignConfirmationScreenToProvider(provider, this._walletUiUtils);
123
- return provider;
124
- });
125
- }
126
- setupEventListeners(listeners) {
127
- this._listeners = listeners;
128
- this._magicClient.setListeners(listeners);
129
- this._checkIfLoggedIn();
130
- }
131
- signMessage(messageToSign) {
132
- return __awaiter(this, void 0, void 0, function* () {
133
- const provider = yield this.getWeb3Provider();
134
- return provider.getSigner().signMessage(messageToSign);
135
- });
136
- }
137
- supportsNetworkSwitching() {
138
- return true;
139
- }
140
- switchNetwork({ networkChainId, }) {
141
- return __awaiter(this, void 0, void 0, function* () {
142
- if (!networkChainId) {
143
- return;
144
- }
145
- this._magicClient.selectNetwork(networkChainId);
146
- });
147
- }
148
- teardownEventListeners() {
149
- this._listeners = undefined;
150
- this._magicClient.setListeners(undefined);
151
- }
152
- _isLoggedIn() {
153
- return __awaiter(this, void 0, void 0, function* () {
154
- const client = this._magicClient.getClient();
155
- return client.user.isLoggedIn();
156
- });
157
- }
158
- _checkIfLoggedIn() {
159
- var _a, _b;
160
- return __awaiter(this, void 0, void 0, function* () {
161
- const isLoggedIn = yield this._isLoggedIn();
162
- if (!isLoggedIn) {
163
- localStorage.removeItem(storedAddressKey);
164
- (_b = (_a = this._listeners) === null || _a === void 0 ? void 0 : _a.onDisconnect) === null || _b === void 0 ? void 0 : _b.call(_a);
165
- }
166
- return isLoggedIn;
167
- });
168
- }
169
- }
170
-
171
- export { MagicWalletConnector };
@@ -1,2 +0,0 @@
1
- export { MagicWalletConnector } from './MagicWalletConnector';
2
- export type { MagicConnectorProps, MagicPromiEvent, } from './MagicWalletConnector';
@@ -1,5 +0,0 @@
1
- export * from './EmailMagicWalletConnector';
2
- export * from './MagicWalletConnector';
3
- export * from './EmailOTPMagicWalletConnector';
4
- export * from './MagicClientNetworkHandler';
5
- export * from './MagicSocialWalletConnector';
@@ -1,65 +0,0 @@
1
- 'use strict';
2
-
3
- var tslib = require('tslib');
4
- var ethers = require('ethers');
5
- var coinbase = require('../clients/coinbase/coinbase.cjs');
6
- var ethProviderHelper = require('./ethProviderHelper.cjs');
7
- var EthWalletConnector = require('./EthWalletConnector.cjs');
8
-
9
- class Coinbase extends EthWalletConnector.EthWalletConnector {
10
- constructor({ appName, appLogoUrl, evmNetworks, }) {
11
- super({ evmNetworks });
12
- this.name = 'Coinbase';
13
- this.supportedChains = ['EVM', 'ETH'];
14
- this.connectedChain = 'EVM';
15
- this.canConnectViaQrCode = true;
16
- this.ethProviderHelper = new ethProviderHelper.EthProviderHelper();
17
- this.coinbaseProviderOpts = {
18
- appLogoUrl: appLogoUrl,
19
- appName: appName,
20
- evmNetworks: evmNetworks,
21
- };
22
- }
23
- setupEventListeners(listeners) {
24
- return this.ethProviderHelper._setupEventListeners(listeners, this.getWeb3Provider());
25
- }
26
- teardownEventListeners() {
27
- return this.ethProviderHelper._teardownEventListeners(this.name);
28
- }
29
- getWeb3Provider() {
30
- if (this.isInstalledOnBrowser()) {
31
- return this.ethProviderHelper.findProvider(this.name);
32
- }
33
- return new ethers.ethers.providers.Web3Provider(coinbase.getCoinbaseProvider({
34
- opts: this.coinbaseProviderOpts,
35
- }), 'any');
36
- }
37
- isInstalledOnBrowser() {
38
- return this.ethProviderHelper.isInstalledHelper(this.name);
39
- }
40
- fetchPublicAddress(opts) {
41
- return tslib.__awaiter(this, void 0, void 0, function* () {
42
- if (this.isInstalledOnBrowser()) {
43
- return this.ethProviderHelper.fetchPublicAddressWithName(this.name);
44
- }
45
- return coinbase.fetchPublicAddress(this.coinbaseProviderOpts, opts);
46
- });
47
- }
48
- signMessage(messageToSign) {
49
- return tslib.__awaiter(this, void 0, void 0, function* () {
50
- if (this.isInstalledOnBrowser()) {
51
- return this.ethProviderHelper.signMessageWithName(messageToSign, this.name);
52
- }
53
- return coinbase.signMessage(this.coinbaseProviderOpts, messageToSign);
54
- });
55
- }
56
- endSession() {
57
- return tslib.__awaiter(this, void 0, void 0, function* () {
58
- if (this.isInstalledOnBrowser())
59
- return;
60
- coinbase.killCoinbaseSession();
61
- });
62
- }
63
- }
64
-
65
- module.exports = Coinbase;
@@ -1,26 +0,0 @@
1
- import { ethers } from 'ethers';
2
- import { Chain, FetchPublicAddressOpts, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
3
- import { EthProviderHelper } from './ethProviderHelper';
4
- import { EthWalletConnector } from './EthWalletConnector';
5
- import { EvmNetwork } from './evm-network';
6
- declare class Coinbase extends EthWalletConnector {
7
- name: string;
8
- supportedChains: Chain[];
9
- connectedChain: Chain;
10
- canConnectViaQrCode: boolean;
11
- ethProviderHelper: EthProviderHelper;
12
- private coinbaseProviderOpts;
13
- constructor({ appName, appLogoUrl, evmNetworks, }: {
14
- appLogoUrl?: string;
15
- appName?: string;
16
- evmNetworks: EvmNetwork[];
17
- });
18
- setupEventListeners(listeners: WalletEventListeners): () => void;
19
- teardownEventListeners(): void;
20
- getWeb3Provider(): ethers.providers.Web3Provider | undefined;
21
- isInstalledOnBrowser(): boolean;
22
- fetchPublicAddress(opts?: FetchPublicAddressOpts): Promise<string | undefined>;
23
- signMessage(messageToSign: string): Promise<string | undefined>;
24
- endSession(): Promise<void>;
25
- }
26
- export default Coinbase;
@@ -1,63 +0,0 @@
1
- import { __awaiter } from 'tslib';
2
- import { ethers } from 'ethers';
3
- import { getCoinbaseProvider, fetchPublicAddress, signMessage, killCoinbaseSession } from '../clients/coinbase/coinbase.js';
4
- import { EthProviderHelper } from './ethProviderHelper.js';
5
- import { EthWalletConnector } from './EthWalletConnector.js';
6
-
7
- class Coinbase extends EthWalletConnector {
8
- constructor({ appName, appLogoUrl, evmNetworks, }) {
9
- super({ evmNetworks });
10
- this.name = 'Coinbase';
11
- this.supportedChains = ['EVM', 'ETH'];
12
- this.connectedChain = 'EVM';
13
- this.canConnectViaQrCode = true;
14
- this.ethProviderHelper = new EthProviderHelper();
15
- this.coinbaseProviderOpts = {
16
- appLogoUrl: appLogoUrl,
17
- appName: appName,
18
- evmNetworks: evmNetworks,
19
- };
20
- }
21
- setupEventListeners(listeners) {
22
- return this.ethProviderHelper._setupEventListeners(listeners, this.getWeb3Provider());
23
- }
24
- teardownEventListeners() {
25
- return this.ethProviderHelper._teardownEventListeners(this.name);
26
- }
27
- getWeb3Provider() {
28
- if (this.isInstalledOnBrowser()) {
29
- return this.ethProviderHelper.findProvider(this.name);
30
- }
31
- return new ethers.providers.Web3Provider(getCoinbaseProvider({
32
- opts: this.coinbaseProviderOpts,
33
- }), 'any');
34
- }
35
- isInstalledOnBrowser() {
36
- return this.ethProviderHelper.isInstalledHelper(this.name);
37
- }
38
- fetchPublicAddress(opts) {
39
- return __awaiter(this, void 0, void 0, function* () {
40
- if (this.isInstalledOnBrowser()) {
41
- return this.ethProviderHelper.fetchPublicAddressWithName(this.name);
42
- }
43
- return fetchPublicAddress(this.coinbaseProviderOpts, opts);
44
- });
45
- }
46
- signMessage(messageToSign) {
47
- return __awaiter(this, void 0, void 0, function* () {
48
- if (this.isInstalledOnBrowser()) {
49
- return this.ethProviderHelper.signMessageWithName(messageToSign, this.name);
50
- }
51
- return signMessage(this.coinbaseProviderOpts, messageToSign);
52
- });
53
- }
54
- endSession() {
55
- return __awaiter(this, void 0, void 0, function* () {
56
- if (this.isInstalledOnBrowser())
57
- return;
58
- killCoinbaseSession();
59
- });
60
- }
61
- }
62
-
63
- export { Coinbase as default };
@@ -1,197 +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 normalizeWalletName = require('../../utils/normalizeWalletName/normalizeWalletName.cjs');
8
- var ProviderLookup = require('../ProviderLookup.cjs');
9
- var isUnsupportedProviderError = require('../../utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs');
10
- var logger = require('../../utils/logger.cjs');
11
-
12
- class EthProviderHelper {
13
- constructor() {
14
- this.MetamaskProvider = () =>
15
- // Stop these wallets from showing up as MetaMask
16
- this.installedProviderLookup([
17
- { flag: 'isDawn', value: false },
18
- { flag: 'isBraveWallet', value: false },
19
- { flag: 'isTrustWallet', value: false },
20
- { flag: 'isExodus', value: false },
21
- { flag: 'isPhantom', value: false },
22
- { flag: 'isZerion', value: false },
23
- { flag: 'isMetaMask', value: true },
24
- ]);
25
- this.BraveProvider = () => this.installedProviderLookup([{ flag: 'isBraveWallet', value: true }]);
26
- this.DawnProvider = () => this.installedProviderLookup([{ flag: 'isDawn', value: true }]);
27
- this.FrameProvider = () => this.installedProviderLookup([{ flag: 'isFrame', value: true }]);
28
- this.CoinbaseProvider = () => this.installedProviderLookup([{ flag: 'isCoinbaseWallet', value: true }]);
29
- this.OperaProvider = () => this.installedProviderLookup([{ flag: 'isOpera', value: true }]);
30
- this.GameStopProvider = () => this.installedProviderLookup([{ flag: 'isGamestop', value: true }]);
31
- this.ExodusProvider = () => this.installedProviderLookup([{ flag: 'isExodus', value: true }]);
32
- this.BloctoProvider = () => this.installedProviderLookup([{ flag: 'isBlocto', value: true }]);
33
- this.TrustWalletProvider = () => this.installedProviderLookup([{ flag: 'isTrustWallet', value: true }]);
34
- this.PhantomProvider = () => this.installedProviderLookup([{ flag: 'isPhantom', value: true }]);
35
- this.ZerionProvider = () => this.installedProviderLookup([{ flag: 'isZerion', value: true }]);
36
- this.UnknownInjectedProvider = () => this.installedProviderLookup([
37
- { flag: 'isMetaMask', value: false },
38
- { flag: 'isExodus', value: false },
39
- { flag: 'isCoinbaseWallet', value: false },
40
- { flag: 'isBraveWallet', value: false },
41
- { flag: 'isGamestop', value: false },
42
- { flag: 'isFrame', value: false },
43
- { flag: 'isOpera', value: false },
44
- { flag: 'isBlocto', value: false },
45
- { flag: 'isTrustWallet', value: false },
46
- { flag: 'isPhantom', value: false },
47
- { flag: 'isZerion', value: false },
48
- ]);
49
- this.providers = {
50
- bloctoinjected: this.BloctoProvider,
51
- braveevm: this.BraveProvider,
52
- coinbase: this.CoinbaseProvider,
53
- dawn: this.DawnProvider,
54
- exodusevm: this.ExodusProvider,
55
- frame: this.FrameProvider,
56
- gamestop: this.GameStopProvider,
57
- injectedwallet: this.UnknownInjectedProvider,
58
- metamask: this.MetamaskProvider,
59
- opera: this.OperaProvider,
60
- phantomevm: this.PhantomProvider,
61
- trust: this.TrustWalletProvider,
62
- zerion: this.ZerionProvider,
63
- };
64
- }
65
- installedProviderLookup(providerFlags) {
66
- const allInstalledProviders = this.allInstalledProviders();
67
- return ProviderLookup.ProviderLookup(allInstalledProviders, providerFlags);
68
- }
69
- allInstalledProviders() {
70
- var _a;
71
- const ethereumProviders = [];
72
- if (window.ethereum) {
73
- if (!window.ethereum.providers) {
74
- ethereumProviders.push(window.ethereum);
75
- }
76
- else {
77
- window.ethereum.providers.forEach((provider) => {
78
- ethereumProviders.push(provider);
79
- });
80
- }
81
- }
82
- if ((_a = window.phantom) === null || _a === void 0 ? void 0 : _a.ethereum) {
83
- ethereumProviders.push(window.phantom.ethereum);
84
- }
85
- if (window.zerionWallet) {
86
- ethereumProviders.push(window.zerionWallet);
87
- }
88
- return ethereumProviders;
89
- }
90
- isInstalledHelper(walletName) {
91
- return this.findProvider(walletName) !== undefined;
92
- }
93
- findProvider(walletName) {
94
- var _a, _b;
95
- try {
96
- const provider = (_b = (_a = this.providers)[normalizeWalletName.normalizeWalletName(walletName)]) === null || _b === void 0 ? void 0 : _b.call(_a);
97
- return provider === undefined
98
- ? undefined
99
- : new ethers.ethers.providers.Web3Provider(provider, 'any'); // https://github.com/ethers-io/ethers.js/discussions/1480
100
- }
101
- catch (err) {
102
- if (isUnsupportedProviderError.isUnsupportedProviderError(err)) {
103
- logger.logger.error(`ETH Provider is not supported ${err.value}`, err);
104
- return;
105
- }
106
- logger.logger.error(`Could not find provider for ${walletName}`, err);
107
- return undefined;
108
- }
109
- }
110
- fetchPublicAddressWithName(name) {
111
- return tslib.__awaiter(this, void 0, void 0, function* () {
112
- const provider = this.findProvider(name);
113
- if (!provider) {
114
- return Promise.resolve(undefined);
115
- }
116
- return this.fetchPublicAddressWithProvider(provider);
117
- });
118
- }
119
- fetchPublicAddressWithProvider(provider) {
120
- return tslib.__awaiter(this, void 0, void 0, function* () {
121
- try {
122
- const [lowercaseAddress] = yield provider.send('eth_requestAccounts', []);
123
- const publicAddress = ethers.utils.getAddress(lowercaseAddress);
124
- return publicAddress;
125
- }
126
- catch (err) {
127
- logger.logger.error(err);
128
- return Promise.reject(err);
129
- }
130
- });
131
- }
132
- signMessageWithName(messageToSign, name) {
133
- return tslib.__awaiter(this, void 0, void 0, function* () {
134
- const walletAddress = yield this.fetchPublicAddressWithName(name);
135
- if (!walletAddress) {
136
- return Promise.resolve(undefined);
137
- }
138
- const provider = this.findProvider(name);
139
- if (!provider) {
140
- return Promise.resolve(undefined);
141
- }
142
- const signer = provider.getSigner();
143
- const signedMessage = yield signer.signMessage(messageToSign);
144
- return signedMessage;
145
- });
146
- }
147
- _setupEventListeners(listeners, web3Provider) {
148
- if (!web3Provider) {
149
- return () => {
150
- // nothing to teardown
151
- };
152
- }
153
- const externalProvider = web3Provider.provider;
154
- this.handleAccountChange = (accounts) => tslib.__awaiter(this, void 0, void 0, function* () {
155
- var _a, _b;
156
- if (accounts.length === 0) {
157
- yield ((_a = listeners.onDisconnect) === null || _a === void 0 ? void 0 : _a.call(listeners));
158
- return;
159
- }
160
- yield ((_b = listeners.onAccountChange) === null || _b === void 0 ? void 0 : _b.call(listeners, accounts));
161
- });
162
- this.handleChainChange = () => tslib.__awaiter(this, void 0, void 0, function* () {
163
- var _c;
164
- const network = yield web3Provider.getNetwork();
165
- yield ((_c = listeners.onChainChange) === null || _c === void 0 ? void 0 : _c.call(listeners, network.chainId.toString()));
166
- });
167
- this.handleDisconnect = (error) => tslib.__awaiter(this, void 0, void 0, function* () {
168
- var _d;
169
- if ((error === null || error === void 0 ? void 0 : error.code) === 1013) {
170
- return;
171
- }
172
- yield ((_d = listeners.onDisconnect) === null || _d === void 0 ? void 0 : _d.call(listeners));
173
- });
174
- externalProvider.on('accountsChanged', this.handleAccountChange);
175
- externalProvider.on('chainChanged', this.handleChainChange);
176
- externalProvider.on('disconnect', this.handleDisconnect);
177
- return () => { };
178
- }
179
- _teardownEventListeners(name) {
180
- const web3Provider = this.findProvider(name);
181
- if (!web3Provider || !(web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.provider)) {
182
- return;
183
- }
184
- const externalProvider = web3Provider.provider;
185
- if (this.handleAccountChange) {
186
- externalProvider.removeListener('accountsChanged', this.handleAccountChange);
187
- }
188
- if (this.handleChainChange) {
189
- externalProvider.removeListener('chainChanged', this.handleChainChange);
190
- }
191
- if (this.handleDisconnect) {
192
- externalProvider.removeListener('disconnect', this.handleDisconnect);
193
- }
194
- }
195
- }
196
-
197
- exports.EthProviderHelper = EthProviderHelper;
@@ -1,40 +0,0 @@
1
- import { ethers } from 'ethers';
2
- import { WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
3
- import { ProviderCondition, IEthereum } from '../window';
4
- type Provider = () => ethers.providers.ExternalProvider | undefined;
5
- type AccountChangeEventHandler = (accounts: string[]) => Promise<void>;
6
- type ChainChangeEventHandler = (chainId: string | number) => Promise<void>;
7
- type DisconnectEventHandler = (error?: {
8
- code: number;
9
- }) => Promise<void>;
10
- export declare class EthProviderHelper {
11
- handleAccountChange: AccountChangeEventHandler | undefined;
12
- handleChainChange: ChainChangeEventHandler | undefined;
13
- handleDisconnect: DisconnectEventHandler | undefined;
14
- MetamaskProvider: Provider;
15
- BraveProvider: Provider;
16
- DawnProvider: Provider;
17
- FrameProvider: Provider;
18
- CoinbaseProvider: Provider;
19
- OperaProvider: Provider;
20
- GameStopProvider: Provider;
21
- ExodusProvider: Provider;
22
- BloctoProvider: Provider;
23
- TrustWalletProvider: Provider;
24
- PhantomProvider: Provider;
25
- ZerionProvider: Provider;
26
- UnknownInjectedProvider: Provider;
27
- providers: {
28
- [wallet: string]: Provider;
29
- };
30
- installedProviderLookup(providerFlags: Array<ProviderCondition>): IEthereum | undefined;
31
- allInstalledProviders(): IEthereum[];
32
- isInstalledHelper(walletName: string): boolean;
33
- findProvider(walletName: string): ethers.providers.Web3Provider | undefined;
34
- fetchPublicAddressWithName(name: string): Promise<string | undefined>;
35
- fetchPublicAddressWithProvider(provider: ethers.providers.Web3Provider): Promise<string | undefined>;
36
- signMessageWithName(messageToSign: string, name: string): Promise<string | undefined>;
37
- _setupEventListeners(listeners: WalletEventListeners, web3Provider?: ethers.providers.Web3Provider): () => void;
38
- _teardownEventListeners(name: string): void;
39
- }
40
- export {};