@dynamic-labs/multi-wallet 0.17.0-RC.1 → 0.17.0-RC.10

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 (251) hide show
  1. package/CHANGELOG.md +114 -0
  2. package/package.json +11 -14
  3. package/src/index.cjs +0 -64
  4. package/src/index.d.ts +0 -15
  5. package/src/index.js +1 -20
  6. package/src/multi-wallet.cjs +45 -155
  7. package/src/multi-wallet.d.ts +0 -3
  8. package/src/multi-wallet.js +43 -152
  9. package/src/types.d.ts +9 -49
  10. package/src/utils/convertors.cjs +0 -7
  11. package/src/utils/convertors.d.ts +0 -1
  12. package/src/utils/convertors.js +1 -7
  13. package/src/utils/getApiProviders.cjs +15 -0
  14. package/src/utils/getApiProviders.d.ts +10 -0
  15. package/src/utils/getApiProviders.js +11 -0
  16. package/src/utils/message.cjs +3 -4
  17. package/src/utils/message.d.ts +2 -2
  18. package/src/utils/message.js +1 -2
  19. package/src/wallets/constants.cjs +0 -2
  20. package/src/wallets/constants.js +1 -2
  21. package/src/wallets/cosmos/KeplrWalletConnect.cjs +21 -21
  22. package/src/wallets/cosmos/KeplrWalletConnect.d.ts +11 -7
  23. package/src/wallets/cosmos/KeplrWalletConnect.js +13 -13
  24. package/src/wallets/cosmos/KeplrWalletConnector.cjs +21 -6
  25. package/src/wallets/cosmos/KeplrWalletConnector.d.ts +10 -6
  26. package/src/wallets/cosmos/KeplrWalletConnector.js +21 -6
  27. package/src/wallets/{clients/walletConnect/walletConnect.cjs → cosmos/wcClient.lib.cjs} +38 -101
  28. package/src/wallets/{clients/walletConnect/walletConnect.d.ts → cosmos/wcClient.lib.d.ts} +8 -10
  29. package/src/wallets/{clients/walletConnect/walletConnect.js → cosmos/wcClient.lib.js} +36 -97
  30. package/src/wallets/flow/FlowWalletConnector.cjs +7 -8
  31. package/src/wallets/flow/FlowWalletConnector.js +2 -3
  32. package/src/wallets/flow/lilico.cjs +2 -2
  33. package/src/wallets/flow/lilico.js +1 -1
  34. package/src/wallets/starknet/braavos.cjs +2 -2
  35. package/src/wallets/starknet/braavos.js +1 -1
  36. package/src/wallets/starknet/starknetWalletConnector.cjs +5 -6
  37. package/src/wallets/starknet/starknetWalletConnector.js +2 -3
  38. package/src/wallets/window.d.ts +0 -77
  39. package/src/errors.cjs +0 -65
  40. package/src/errors.d.ts +0 -30
  41. package/src/errors.js +0 -53
  42. package/src/rpcProviders.cjs +0 -76
  43. package/src/rpcProviders.d.ts +0 -5
  44. package/src/rpcProviders.js +0 -69
  45. package/src/utils/CancellablePromise/CancellablePromise.cjs +0 -33
  46. package/src/utils/CancellablePromise/CancellablePromise.d.ts +0 -9
  47. package/src/utils/CancellablePromise/CancellablePromise.js +0 -29
  48. package/src/utils/CancellablePromise/index.d.ts +0 -1
  49. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.cjs +0 -54
  50. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.d.ts +0 -3
  51. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.js +0 -50
  52. package/src/utils/assignConfirmationScreenToProvider/index.d.ts +0 -1
  53. package/src/utils/encoding.cjs +0 -18
  54. package/src/utils/encoding.d.ts +0 -4
  55. package/src/utils/encoding.js +0 -12
  56. package/src/utils/extractNonce.cjs +0 -13
  57. package/src/utils/extractNonce.d.ts +0 -1
  58. package/src/utils/extractNonce.js +0 -9
  59. package/src/utils/getChainInfo/getChainInfo.cjs +0 -59
  60. package/src/utils/getChainInfo/getChainInfo.d.ts +0 -2
  61. package/src/utils/getChainInfo/getChainInfo.js +0 -55
  62. package/src/utils/getChainInfo/index.d.ts +0 -1
  63. package/src/utils/getWalletConnectorByName.cjs +0 -19
  64. package/src/utils/getWalletConnectorByName.d.ts +0 -2
  65. package/src/utils/getWalletConnectorByName.js +0 -15
  66. package/src/utils/isEmailOTPWalletConnector/index.d.ts +0 -1
  67. package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.cjs +0 -7
  68. package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.d.ts +0 -2
  69. package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.js +0 -3
  70. package/src/utils/isEmailWalletConnector/index.d.ts +0 -1
  71. package/src/utils/isEmailWalletConnector/isEmailWalletConnector.cjs +0 -7
  72. package/src/utils/isEmailWalletConnector/isEmailWalletConnector.d.ts +0 -2
  73. package/src/utils/isEmailWalletConnector/isEmailWalletConnector.js +0 -3
  74. package/src/utils/isFunction/index.d.ts +0 -1
  75. package/src/utils/isFunction/isFunction.cjs +0 -8
  76. package/src/utils/isFunction/isFunction.d.ts +0 -1
  77. package/src/utils/isFunction/isFunction.js +0 -4
  78. package/src/utils/isMobile.cjs +0 -54
  79. package/src/utils/isMobile.d.ts +0 -13
  80. package/src/utils/isMobile.js +0 -46
  81. package/src/utils/isSameAddress/index.d.ts +0 -1
  82. package/src/utils/isSameAddress/isSameAddress.cjs +0 -9
  83. package/src/utils/isSameAddress/isSameAddress.d.ts +0 -1
  84. package/src/utils/isSameAddress/isSameAddress.js +0 -5
  85. package/src/utils/isSameAddress/utils/index.d.ts +0 -1
  86. package/src/utils/isSameAddress/utils/normalizeAddress/index.d.ts +0 -1
  87. package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.cjs +0 -17
  88. package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.d.ts +0 -1
  89. package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.js +0 -13
  90. package/src/utils/isSocialWalletConnector/index.d.ts +0 -1
  91. package/src/utils/isSocialWalletConnector/isSocialWalletConnector.cjs +0 -7
  92. package/src/utils/isSocialWalletConnector/isSocialWalletConnector.d.ts +0 -2
  93. package/src/utils/isSocialWalletConnector/isSocialWalletConnector.js +0 -3
  94. package/src/utils/isUnsupportedProviderError/index.d.ts +0 -1
  95. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs +0 -13
  96. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.d.ts +0 -6
  97. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.js +0 -9
  98. package/src/utils/localStorageAsync.cjs +0 -28
  99. package/src/utils/localStorageAsync.d.ts +0 -3
  100. package/src/utils/localStorageAsync.js +0 -22
  101. package/src/utils/logger.cjs +0 -9
  102. package/src/utils/logger.d.ts +0 -2
  103. package/src/utils/logger.js +0 -5
  104. package/src/utils/normalizeWalletName/index.d.ts +0 -1
  105. package/src/utils/normalizeWalletName/normalizeWalletName.cjs +0 -7
  106. package/src/utils/normalizeWalletName/normalizeWalletName.d.ts +0 -1
  107. package/src/utils/normalizeWalletName/normalizeWalletName.js +0 -3
  108. package/src/utils/shouldLowercaseAddress.cjs +0 -11
  109. package/src/utils/shouldLowercaseAddress.d.ts +0 -1
  110. package/src/utils/shouldLowercaseAddress.js +0 -7
  111. package/src/utils/walletConnect.cjs +0 -30
  112. package/src/utils/walletConnect.d.ts +0 -4
  113. package/src/utils/walletConnect.js +0 -26
  114. package/src/wallets/ProviderLookup.cjs +0 -18
  115. package/src/wallets/ProviderLookup.d.ts +0 -4
  116. package/src/wallets/ProviderLookup.js +0 -14
  117. package/src/wallets/algorand/MyAlgoWalletConnector.cjs +0 -149
  118. package/src/wallets/algorand/MyAlgoWalletConnector.d.ts +0 -21
  119. package/src/wallets/algorand/MyAlgoWalletConnector.js +0 -143
  120. package/src/wallets/algorand/myalgoSigner.cjs +0 -24
  121. package/src/wallets/algorand/myalgoSigner.d.ts +0 -21
  122. package/src/wallets/algorand/myalgoSigner.js +0 -20
  123. package/src/wallets/clients/coinbase/coinbase.cjs +0 -73
  124. package/src/wallets/clients/coinbase/coinbase.d.ts +0 -6
  125. package/src/wallets/clients/coinbase/coinbase.js +0 -66
  126. package/src/wallets/clients/coinbase/index.d.ts +0 -2
  127. package/src/wallets/clients/coinbase/types.d.ts +0 -14
  128. package/src/wallets/clients/walletConnect/index.d.ts +0 -1
  129. package/src/wallets/clients/walletConnect/types.d.ts +0 -4
  130. package/src/wallets/cosmos/getKeplrConnector.cjs +0 -18
  131. package/src/wallets/cosmos/getKeplrConnector.d.ts +0 -6
  132. package/src/wallets/cosmos/getKeplrConnector.js +0 -14
  133. package/src/wallets/ethereum/BloctoEvm.cjs +0 -111
  134. package/src/wallets/ethereum/BloctoEvm.d.ts +0 -25
  135. package/src/wallets/ethereum/BloctoEvm.js +0 -105
  136. package/src/wallets/ethereum/EthWalletConnector.cjs +0 -191
  137. package/src/wallets/ethereum/EthWalletConnector.d.ts +0 -35
  138. package/src/wallets/ethereum/EthWalletConnector.js +0 -187
  139. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs +0 -63
  140. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.d.ts +0 -12
  141. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js +0 -59
  142. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/index.d.ts +0 -1
  143. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs +0 -62
  144. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.d.ts +0 -11
  145. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js +0 -58
  146. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/index.d.ts +0 -1
  147. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +0 -102
  148. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +0 -33
  149. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +0 -98
  150. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/index.d.ts +0 -2
  151. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +0 -55
  152. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.d.ts +0 -12
  153. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +0 -51
  154. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/index.d.ts +0 -1
  155. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +0 -175
  156. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +0 -53
  157. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +0 -171
  158. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/index.d.ts +0 -2
  159. package/src/wallets/ethereum/MagicConnector/index.d.ts +0 -5
  160. package/src/wallets/ethereum/coinbase.cjs +0 -65
  161. package/src/wallets/ethereum/coinbase.d.ts +0 -26
  162. package/src/wallets/ethereum/coinbase.js +0 -63
  163. package/src/wallets/ethereum/ethProviderHelper.cjs +0 -197
  164. package/src/wallets/ethereum/ethProviderHelper.d.ts +0 -40
  165. package/src/wallets/ethereum/ethProviderHelper.js +0 -193
  166. package/src/wallets/ethereum/evm-network.cjs +0 -20
  167. package/src/wallets/ethereum/evm-network.d.ts +0 -22
  168. package/src/wallets/ethereum/evm-network.js +0 -16
  169. package/src/wallets/ethereum/fortmatic.cjs +0 -75
  170. package/src/wallets/ethereum/fortmatic.d.ts +0 -26
  171. package/src/wallets/ethereum/fortmatic.js +0 -69
  172. package/src/wallets/ethereum/injected/BloctoInjected.cjs +0 -13
  173. package/src/wallets/ethereum/injected/BloctoInjected.d.ts +0 -6
  174. package/src/wallets/ethereum/injected/BloctoInjected.js +0 -11
  175. package/src/wallets/ethereum/injected/BraveEvm.cjs +0 -13
  176. package/src/wallets/ethereum/injected/BraveEvm.d.ts +0 -6
  177. package/src/wallets/ethereum/injected/BraveEvm.js +0 -11
  178. package/src/wallets/ethereum/injected/Dawn.cjs +0 -13
  179. package/src/wallets/ethereum/injected/Dawn.d.ts +0 -6
  180. package/src/wallets/ethereum/injected/Dawn.js +0 -11
  181. package/src/wallets/ethereum/injected/ExodusEvm.cjs +0 -13
  182. package/src/wallets/ethereum/injected/ExodusEvm.d.ts +0 -6
  183. package/src/wallets/ethereum/injected/ExodusEvm.js +0 -11
  184. package/src/wallets/ethereum/injected/Frame.cjs +0 -13
  185. package/src/wallets/ethereum/injected/Frame.d.ts +0 -6
  186. package/src/wallets/ethereum/injected/Frame.js +0 -11
  187. package/src/wallets/ethereum/injected/GameStop.cjs +0 -13
  188. package/src/wallets/ethereum/injected/GameStop.d.ts +0 -6
  189. package/src/wallets/ethereum/injected/GameStop.js +0 -11
  190. package/src/wallets/ethereum/injected/Opera.cjs +0 -13
  191. package/src/wallets/ethereum/injected/Opera.d.ts +0 -6
  192. package/src/wallets/ethereum/injected/Opera.js +0 -11
  193. package/src/wallets/ethereum/injected/PhantomEvm.cjs +0 -37
  194. package/src/wallets/ethereum/injected/PhantomEvm.d.ts +0 -7
  195. package/src/wallets/ethereum/injected/PhantomEvm.js +0 -35
  196. package/src/wallets/ethereum/injected/Trust.cjs +0 -13
  197. package/src/wallets/ethereum/injected/Trust.d.ts +0 -6
  198. package/src/wallets/ethereum/injected/Trust.js +0 -11
  199. package/src/wallets/ethereum/injected/UnknownInjectedWallet.cjs +0 -13
  200. package/src/wallets/ethereum/injected/UnknownInjectedWallet.d.ts +0 -6
  201. package/src/wallets/ethereum/injected/UnknownInjectedWallet.js +0 -11
  202. package/src/wallets/ethereum/injected/Zerion.cjs +0 -13
  203. package/src/wallets/ethereum/injected/Zerion.d.ts +0 -6
  204. package/src/wallets/ethereum/injected/Zerion.js +0 -11
  205. package/src/wallets/ethereum/meta-mask.cjs +0 -63
  206. package/src/wallets/ethereum/meta-mask.d.ts +0 -26
  207. package/src/wallets/ethereum/meta-mask.js +0 -61
  208. package/src/wallets/getMobileOrInjectedWallet.cjs +0 -26
  209. package/src/wallets/getMobileOrInjectedWallet.d.ts +0 -8
  210. package/src/wallets/getMobileOrInjectedWallet.js +0 -22
  211. package/src/wallets/getWalletConnectConnector.cjs +0 -19
  212. package/src/wallets/getWalletConnectConnector.d.ts +0 -8
  213. package/src/wallets/getWalletConnectConnector.js +0 -15
  214. package/src/wallets/solana/CoinbaseSolana.cjs +0 -54
  215. package/src/wallets/solana/CoinbaseSolana.d.ts +0 -17
  216. package/src/wallets/solana/CoinbaseSolana.js +0 -52
  217. package/src/wallets/solana/glow.cjs +0 -51
  218. package/src/wallets/solana/glow.d.ts +0 -16
  219. package/src/wallets/solana/glow.js +0 -49
  220. package/src/wallets/solana/injected/BraveSol.cjs +0 -18
  221. package/src/wallets/solana/injected/BraveSol.d.ts +0 -6
  222. package/src/wallets/solana/injected/BraveSol.js +0 -16
  223. package/src/wallets/solana/injected/ExodusSol.cjs +0 -12
  224. package/src/wallets/solana/injected/ExodusSol.d.ts +0 -5
  225. package/src/wallets/solana/injected/ExodusSol.js +0 -10
  226. package/src/wallets/solana/phantom-ledger.cjs +0 -71
  227. package/src/wallets/solana/phantom-ledger.d.ts +0 -16
  228. package/src/wallets/solana/phantom-ledger.js +0 -65
  229. package/src/wallets/solana/phantom.cjs +0 -74
  230. package/src/wallets/solana/phantom.d.ts +0 -17
  231. package/src/wallets/solana/phantom.js +0 -72
  232. package/src/wallets/solana/slope.cjs +0 -96
  233. package/src/wallets/solana/slope.d.ts +0 -27
  234. package/src/wallets/solana/slope.js +0 -94
  235. package/src/wallets/solana/solProviderHelper.cjs +0 -164
  236. package/src/wallets/solana/solProviderHelper.d.ts +0 -29
  237. package/src/wallets/solana/solProviderHelper.js +0 -160
  238. package/src/wallets/solana/solWalletConnector.cjs +0 -57
  239. package/src/wallets/solana/solWalletConnector.d.ts +0 -18
  240. package/src/wallets/solana/solWalletConnector.js +0 -53
  241. package/src/wallets/solana/solflare.cjs +0 -65
  242. package/src/wallets/solana/solflare.d.ts +0 -14
  243. package/src/wallets/solana/solflare.js +0 -63
  244. package/src/wallets/walletConnect/index.d.ts +0 -2
  245. package/src/wallets/walletConnect/walletConnect.cjs +0 -130
  246. package/src/wallets/walletConnect/walletConnect.d.ts +0 -34
  247. package/src/wallets/walletConnect/walletConnect.js +0 -124
  248. package/src/wallets/walletConnect/walletConnectV2.cjs +0 -268
  249. package/src/wallets/walletConnect/walletConnectV2.d.ts +0 -38
  250. package/src/wallets/walletConnect/walletConnectV2.js +0 -262
  251. package/src/wallets/walletConnect/zerion.d.ts +0 -8
@@ -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
- throw new Error(`Could not find provider for ${name}`);
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 {};
@@ -1,193 +0,0 @@
1
- import { __awaiter } from 'tslib';
2
- import { ethers, utils } from 'ethers';
3
- import { normalizeWalletName } from '../../utils/normalizeWalletName/normalizeWalletName.js';
4
- import { ProviderLookup } from '../ProviderLookup.js';
5
- import { isUnsupportedProviderError } from '../../utils/isUnsupportedProviderError/isUnsupportedProviderError.js';
6
- import { logger } from '../../utils/logger.js';
7
-
8
- 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) {
62
- const allInstalledProviders = this.allInstalledProviders();
63
- return ProviderLookup(allInstalledProviders, providerFlags);
64
- }
65
- allInstalledProviders() {
66
- var _a;
67
- const ethereumProviders = [];
68
- if (window.ethereum) {
69
- if (!window.ethereum.providers) {
70
- ethereumProviders.push(window.ethereum);
71
- }
72
- else {
73
- window.ethereum.providers.forEach((provider) => {
74
- ethereumProviders.push(provider);
75
- });
76
- }
77
- }
78
- if ((_a = window.phantom) === null || _a === void 0 ? void 0 : _a.ethereum) {
79
- ethereumProviders.push(window.phantom.ethereum);
80
- }
81
- if (window.zerionWallet) {
82
- ethereumProviders.push(window.zerionWallet);
83
- }
84
- return ethereumProviders;
85
- }
86
- isInstalledHelper(walletName) {
87
- return this.findProvider(walletName) !== undefined;
88
- }
89
- findProvider(walletName) {
90
- var _a, _b;
91
- try {
92
- const provider = (_b = (_a = this.providers)[normalizeWalletName(walletName)]) === null || _b === void 0 ? void 0 : _b.call(_a);
93
- return provider === undefined
94
- ? undefined
95
- : new ethers.providers.Web3Provider(provider, 'any'); // https://github.com/ethers-io/ethers.js/discussions/1480
96
- }
97
- catch (err) {
98
- if (isUnsupportedProviderError(err)) {
99
- logger.error(`ETH Provider is not supported ${err.value}`, err);
100
- return;
101
- }
102
- logger.error(`Could not find provider for ${walletName}`, err);
103
- return undefined;
104
- }
105
- }
106
- fetchPublicAddressWithName(name) {
107
- return __awaiter(this, void 0, void 0, function* () {
108
- const provider = this.findProvider(name);
109
- if (!provider) {
110
- return Promise.resolve(undefined);
111
- }
112
- return this.fetchPublicAddressWithProvider(provider);
113
- });
114
- }
115
- fetchPublicAddressWithProvider(provider) {
116
- return __awaiter(this, void 0, void 0, function* () {
117
- try {
118
- const [lowercaseAddress] = yield provider.send('eth_requestAccounts', []);
119
- const publicAddress = utils.getAddress(lowercaseAddress);
120
- return publicAddress;
121
- }
122
- catch (err) {
123
- logger.error(err);
124
- return Promise.reject(err);
125
- }
126
- });
127
- }
128
- signMessageWithName(messageToSign, name) {
129
- return __awaiter(this, void 0, void 0, function* () {
130
- const walletAddress = yield this.fetchPublicAddressWithName(name);
131
- if (!walletAddress) {
132
- return Promise.resolve(undefined);
133
- }
134
- const provider = this.findProvider(name);
135
- if (!provider) {
136
- return Promise.resolve(undefined);
137
- }
138
- const signer = provider.getSigner();
139
- const signedMessage = yield signer.signMessage(messageToSign);
140
- return signedMessage;
141
- });
142
- }
143
- _setupEventListeners(listeners, web3Provider) {
144
- if (!web3Provider) {
145
- return () => {
146
- // nothing to teardown
147
- };
148
- }
149
- const externalProvider = web3Provider.provider;
150
- this.handleAccountChange = (accounts) => __awaiter(this, void 0, void 0, function* () {
151
- var _a, _b;
152
- if (accounts.length === 0) {
153
- yield ((_a = listeners.onDisconnect) === null || _a === void 0 ? void 0 : _a.call(listeners));
154
- return;
155
- }
156
- yield ((_b = listeners.onAccountChange) === null || _b === void 0 ? void 0 : _b.call(listeners, accounts));
157
- });
158
- this.handleChainChange = () => __awaiter(this, void 0, void 0, function* () {
159
- var _c;
160
- const network = yield web3Provider.getNetwork();
161
- yield ((_c = listeners.onChainChange) === null || _c === void 0 ? void 0 : _c.call(listeners, network.chainId.toString()));
162
- });
163
- this.handleDisconnect = (error) => __awaiter(this, void 0, void 0, function* () {
164
- var _d;
165
- if ((error === null || error === void 0 ? void 0 : error.code) === 1013) {
166
- return;
167
- }
168
- yield ((_d = listeners.onDisconnect) === null || _d === void 0 ? void 0 : _d.call(listeners));
169
- });
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
- throw new Error(`Could not find provider for ${name}`);
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
- }
190
- }
191
- }
192
-
193
- export { EthProviderHelper };
@@ -1,20 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- const findEvmNetwork = ({ chainId, name, networks, }) => {
6
- if (!chainId && !name) {
7
- return undefined;
8
- }
9
- if (chainId && name) {
10
- return networks.find((network) => network.chainId === chainId && network.chainName === name);
11
- }
12
- else if (chainId) {
13
- return networks.find((network) => network.chainId === chainId);
14
- }
15
- else {
16
- return networks.find((network) => network.chainName === name);
17
- }
18
- };
19
-
20
- exports.findEvmNetwork = findEvmNetwork;
@@ -1,22 +0,0 @@
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
- };
18
- export declare const findEvmNetwork: ({ chainId, name, networks, }: {
19
- chainId?: number | undefined;
20
- name?: string | undefined;
21
- networks: EvmNetwork[];
22
- }) => EvmNetwork | undefined;
@@ -1,16 +0,0 @@
1
- const findEvmNetwork = ({ chainId, name, networks, }) => {
2
- if (!chainId && !name) {
3
- return undefined;
4
- }
5
- if (chainId && name) {
6
- return networks.find((network) => network.chainId === chainId && network.chainName === name);
7
- }
8
- else if (chainId) {
9
- return networks.find((network) => network.chainId === chainId);
10
- }
11
- else {
12
- return networks.find((network) => network.chainName === name);
13
- }
14
- };
15
-
16
- export { findEvmNetwork };