@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,160 +0,0 @@
1
- import { __awaiter } from 'tslib';
2
- import { bufferToBase64 } from '../../utils/convertors.js';
3
- import { ProviderLookup } from '../ProviderLookup.js';
4
- import { normalizeWalletName } from '../../utils/normalizeWalletName/normalizeWalletName.js';
5
-
6
- class SolProviderHelper {
7
- constructor() {
8
- this.GlowProvider = () => this.installedProviderLookup([{ flag: 'isGlow', value: true }]);
9
- this.CoinbaseProvider = () => this.findSolanaProviders(window.coinbaseSolana)[0];
10
- this.PhantomProvider = () => this.installedProviderLookup([
11
- { flag: 'isPhantom', value: true },
12
- { flag: 'isBraveWallet', value: false },
13
- { flag: 'isExodus', value: false },
14
- ]);
15
- this.SolflareProvider = () => this.installedProviderLookup([{ flag: 'isSolflare', value: true }]);
16
- this.BraveProvider = () => this.installedProviderLookup([
17
- { flag: 'isPhantom', value: true },
18
- { flag: 'isBraveWallet', value: true },
19
- ]);
20
- this.ExodusProvider = () => this.installedProviderLookup([
21
- { flag: 'isPhantom', value: true },
22
- { flag: 'isExodus', value: true },
23
- ]);
24
- this.providers = {
25
- bravesol: this.BraveProvider,
26
- coinbasesolana: this.CoinbaseProvider,
27
- exodussol: this.ExodusProvider,
28
- glow: this.GlowProvider,
29
- phantom: this.PhantomProvider,
30
- phantomledger: this.PhantomProvider,
31
- solflare: this.SolflareProvider,
32
- };
33
- }
34
- installedProviderLookup(providerFlags) {
35
- return ProviderLookup(this.allInstalledProviders(), providerFlags);
36
- }
37
- allInstalledProviders() {
38
- return this.findSolanaProviders(window.solana).concat(this.findSolanaProviders(window.solflare), this.findSolanaProviders(window.glowSolana));
39
- }
40
- findSolanaProviders(solana) {
41
- const solanaProviders = [];
42
- if (solana && !solana.providers) {
43
- solanaProviders.push(solana);
44
- }
45
- else if (solana && solana.providers) {
46
- solana.providers.forEach((provider) => {
47
- solanaProviders.push(provider);
48
- });
49
- }
50
- return solanaProviders;
51
- }
52
- isInstalledHelper(walletName) {
53
- return this.findProvider(walletName) !== undefined;
54
- }
55
- findProvider(walletName) {
56
- var _a, _b;
57
- return (_b = (_a = this.providers)[normalizeWalletName(walletName)]) === null || _b === void 0 ? void 0 : _b.call(_a);
58
- }
59
- fetchPublicAddressWithName(name) {
60
- return __awaiter(this, void 0, void 0, function* () {
61
- const provider = this.findProvider(name);
62
- if (!provider) {
63
- return Promise.resolve(undefined);
64
- }
65
- yield provider.connect();
66
- const { publicKey } = provider;
67
- return publicKey ? publicKey.toString() : Promise.resolve(undefined);
68
- });
69
- }
70
- connectWithName(name) {
71
- return __awaiter(this, void 0, void 0, function* () {
72
- const provider = this.findProvider(name);
73
- if (!provider) {
74
- return Promise.resolve(undefined);
75
- }
76
- try {
77
- yield provider.connect();
78
- return provider;
79
- }
80
- catch (err) {
81
- return undefined;
82
- }
83
- });
84
- }
85
- signMessageWithName(messageToSign, name) {
86
- return __awaiter(this, void 0, void 0, function* () {
87
- const walletAddress = yield this.fetchPublicAddressWithName(name);
88
- if (!walletAddress) {
89
- return Promise.resolve(undefined);
90
- }
91
- const provider = this.findProvider(name);
92
- if (!provider) {
93
- return Promise.resolve(undefined);
94
- }
95
- const encodedMessage = new TextEncoder().encode(messageToSign);
96
- return provider.connect().then(() => __awaiter(this, void 0, void 0, function* () {
97
- const { signature } = (yield provider.signMessage(encodedMessage, 'utf8'));
98
- return bufferToBase64(signature);
99
- }));
100
- });
101
- }
102
- _setupEventListeners(listeners, web3Provider) {
103
- const handleAccountChange = (address) => __awaiter(this, void 0, void 0, function* () {
104
- var _a, _b, _c;
105
- if (!address) {
106
- yield (web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.connect());
107
- if ((_a = web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.publicKey) === null || _a === void 0 ? void 0 : _a.toString()) {
108
- (_b = listeners.onAccountChange) === null || _b === void 0 ? void 0 : _b.call(listeners, [web3Provider.publicKey.toString()]);
109
- }
110
- return;
111
- }
112
- if (address.toString()) {
113
- yield ((_c = listeners.onAccountChange) === null || _c === void 0 ? void 0 : _c.call(listeners, [address.toString()]));
114
- }
115
- });
116
- const handleDisconnect = () => __awaiter(this, void 0, void 0, function* () {
117
- var _d;
118
- yield ((_d = listeners.onDisconnect) === null || _d === void 0 ? void 0 : _d.call(listeners));
119
- });
120
- web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.on('accountChanged', handleAccountChange);
121
- web3Provider === null || web3Provider === void 0 ? void 0 : web3Provider.on('disconnect', handleDisconnect);
122
- return () => { };
123
- }
124
- _teardownEventListeners(name) {
125
- const web3Provider = this.findProvider(name);
126
- if (!web3Provider) {
127
- return;
128
- }
129
- web3Provider.removeAllListeners();
130
- }
131
- getConnectedAccountsWithName(name) {
132
- return __awaiter(this, void 0, void 0, function* () {
133
- const provider = this.findProvider(name);
134
- if (!provider) {
135
- return [];
136
- }
137
- let connectionResult;
138
- try {
139
- connectionResult = yield provider.connect({
140
- onlyIfTrusted: true,
141
- });
142
- }
143
- catch (e) {
144
- return [];
145
- }
146
- const { address, publicKey } = connectionResult !== null && connectionResult !== void 0 ? connectionResult : {};
147
- if (address) {
148
- return [address];
149
- }
150
- else if (publicKey) {
151
- return [publicKey.toString()];
152
- }
153
- else {
154
- return [];
155
- }
156
- });
157
- }
158
- }
159
-
160
- export { SolProviderHelper };
@@ -1,57 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var tslib = require('tslib');
6
- var web3_js = require('@solana/web3.js');
7
- var walletConnectorCore = require('@dynamic-labs/wallet-connector-core');
8
- var rpcProviders = require('../../rpcProviders.cjs');
9
- var errors = require('../../errors.cjs');
10
-
11
- class SolWalletConnector extends walletConnectorCore.WalletConnectorBase {
12
- constructor({ solNetworks }) {
13
- super();
14
- this.supportedChains = ['SOL'];
15
- this.connectedChain = 'SOL';
16
- this.solNetworks = solNetworks;
17
- }
18
- getWeb3Provider() {
19
- var _a;
20
- const [network] = this.solNetworks;
21
- if (!network) {
22
- throw new errors.DynamicError('No enabled networks');
23
- }
24
- const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
25
- return new web3_js.Connection(rpcUrl, 'confirmed');
26
- }
27
- getRpcProvider() {
28
- var _a;
29
- return tslib.__awaiter(this, void 0, void 0, function* () {
30
- if (this.solNetworks.length === 0)
31
- return;
32
- const configurations = {
33
- cosmos: [],
34
- evm: undefined,
35
- solana: this.solNetworks,
36
- starknet: undefined,
37
- };
38
- return (_a = rpcProviders.getSolanaDefaultRpcProvider(configurations)) === null || _a === void 0 ? void 0 : _a.provider;
39
- });
40
- }
41
- getBalance() {
42
- return tslib.__awaiter(this, void 0, void 0, function* () {
43
- const signer = yield this.getSigner();
44
- if (!signer)
45
- return;
46
- const publicKey = new web3_js.PublicKey(signer.publicKey.toString());
47
- const balance = this.lamportsToSol(yield this.getWeb3Provider().getBalance(publicKey));
48
- return balance.toString();
49
- });
50
- }
51
- // Solana uses lamports as the smallest unit of currency. This converts lamports to SOL.
52
- lamportsToSol(lamports) {
53
- return lamports / 1000000000;
54
- }
55
- }
56
-
57
- exports.SolWalletConnector = SolWalletConnector;
@@ -1,18 +0,0 @@
1
- import { Connection } from '@solana/web3.js';
2
- import type { NetworkConfiguration } from '@dynamic-labs/sdk-api';
3
- import { Chain, WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
4
- import { ISolana } from '../window';
5
- export declare abstract class SolWalletConnector extends WalletConnectorBase {
6
- solNetworks: NetworkConfiguration[];
7
- supportedChains: Chain[];
8
- connectedChain: Chain;
9
- constructor({ solNetworks }: {
10
- solNetworks: NetworkConfiguration[];
11
- });
12
- getWeb3Provider(): Connection;
13
- getRpcProvider(): Promise<Connection | undefined>;
14
- abstract getSigner(): Promise<ISolana | undefined>;
15
- abstract connect(): Promise<void>;
16
- getBalance(): Promise<string | undefined>;
17
- lamportsToSol(lamports: number): number;
18
- }
@@ -1,53 +0,0 @@
1
- import { __awaiter } from 'tslib';
2
- import { Connection, PublicKey } from '@solana/web3.js';
3
- import { WalletConnectorBase } from '@dynamic-labs/wallet-connector-core';
4
- import { getSolanaDefaultRpcProvider } from '../../rpcProviders.js';
5
- import { DynamicError } from '../../errors.js';
6
-
7
- class SolWalletConnector extends WalletConnectorBase {
8
- constructor({ solNetworks }) {
9
- super();
10
- this.supportedChains = ['SOL'];
11
- this.connectedChain = 'SOL';
12
- this.solNetworks = solNetworks;
13
- }
14
- getWeb3Provider() {
15
- var _a;
16
- const [network] = this.solNetworks;
17
- if (!network) {
18
- throw new DynamicError('No enabled networks');
19
- }
20
- const rpcUrl = ((_a = network.privateCustomerRpcUrls) === null || _a === void 0 ? void 0 : _a[0]) || network.rpcUrls[0];
21
- return new Connection(rpcUrl, 'confirmed');
22
- }
23
- getRpcProvider() {
24
- var _a;
25
- return __awaiter(this, void 0, void 0, function* () {
26
- if (this.solNetworks.length === 0)
27
- return;
28
- const configurations = {
29
- cosmos: [],
30
- evm: undefined,
31
- solana: this.solNetworks,
32
- starknet: undefined,
33
- };
34
- return (_a = getSolanaDefaultRpcProvider(configurations)) === null || _a === void 0 ? void 0 : _a.provider;
35
- });
36
- }
37
- getBalance() {
38
- return __awaiter(this, void 0, void 0, function* () {
39
- const signer = yield this.getSigner();
40
- if (!signer)
41
- return;
42
- const publicKey = new PublicKey(signer.publicKey.toString());
43
- const balance = this.lamportsToSol(yield this.getWeb3Provider().getBalance(publicKey));
44
- return balance.toString();
45
- });
46
- }
47
- // Solana uses lamports as the smallest unit of currency. This converts lamports to SOL.
48
- lamportsToSol(lamports) {
49
- return lamports / 1000000000;
50
- }
51
- }
52
-
53
- export { SolWalletConnector };
@@ -1,65 +0,0 @@
1
- 'use strict';
2
-
3
- var tslib = require('tslib');
4
- var convertors = require('../../utils/convertors.cjs');
5
- var solWalletConnector = require('./solWalletConnector.cjs');
6
- var solProviderHelper = require('./solProviderHelper.cjs');
7
-
8
- class Solflare extends solWalletConnector.SolWalletConnector {
9
- constructor() {
10
- super(...arguments);
11
- this.name = 'Solflare';
12
- this.solProviderHelper = new solProviderHelper.SolProviderHelper();
13
- }
14
- isInstalledOnBrowser() {
15
- return this.solProviderHelper.isInstalledHelper(this.name);
16
- }
17
- fetchPublicAddress() {
18
- return tslib.__awaiter(this, void 0, void 0, function* () {
19
- return this.solProviderHelper.fetchPublicAddressWithName(this.name);
20
- });
21
- }
22
- connect() {
23
- return tslib.__awaiter(this, void 0, void 0, function* () {
24
- yield this.solProviderHelper.connectWithName(this.name);
25
- });
26
- }
27
- getSigner() {
28
- return tslib.__awaiter(this, void 0, void 0, function* () {
29
- return this.solProviderHelper.connectWithName(this.name);
30
- });
31
- }
32
- signMessage(messageToSign) {
33
- return tslib.__awaiter(this, void 0, void 0, function* () {
34
- const walletAddress = yield this.fetchPublicAddress();
35
- if (!walletAddress) {
36
- return undefined;
37
- }
38
- const provider = this.solProviderHelper.findProvider(this.name);
39
- if (!provider) {
40
- return undefined;
41
- }
42
- const encodedMessage = new TextEncoder().encode(messageToSign);
43
- const isSignedMessage = (value) => value.signature !== undefined;
44
- yield provider.connect();
45
- /**
46
- * TODO: Remove the sleep once problem is fixed on Solflare's extension.
47
- * Tracked in DYN-442
48
- */
49
- yield new Promise((resolve) => {
50
- setTimeout(resolve, 100);
51
- });
52
- const rawMessage = yield provider.signMessage(encodedMessage, 'utf8');
53
- return isSignedMessage(rawMessage)
54
- ? convertors.bufferToBase64(rawMessage.signature)
55
- : undefined;
56
- });
57
- }
58
- getConnectedAccounts() {
59
- return tslib.__awaiter(this, void 0, void 0, function* () {
60
- return this.solProviderHelper.getConnectedAccountsWithName(this.name);
61
- });
62
- }
63
- }
64
-
65
- module.exports = Solflare;
@@ -1,14 +0,0 @@
1
- import { ISolana } from '../window';
2
- import { SolWalletConnector } from './solWalletConnector';
3
- import { SolProviderHelper } from './solProviderHelper';
4
- declare class Solflare extends SolWalletConnector {
5
- name: string;
6
- solProviderHelper: SolProviderHelper;
7
- isInstalledOnBrowser(): boolean;
8
- fetchPublicAddress(): Promise<string | undefined>;
9
- connect(): Promise<void>;
10
- getSigner(): Promise<ISolana | undefined>;
11
- signMessage(messageToSign: string): Promise<string | undefined>;
12
- getConnectedAccounts(): Promise<string[]>;
13
- }
14
- export default Solflare;
@@ -1,63 +0,0 @@
1
- import { __awaiter } from 'tslib';
2
- import { bufferToBase64 } from '../../utils/convertors.js';
3
- import { SolWalletConnector } from './solWalletConnector.js';
4
- import { SolProviderHelper } from './solProviderHelper.js';
5
-
6
- class Solflare extends SolWalletConnector {
7
- constructor() {
8
- super(...arguments);
9
- this.name = 'Solflare';
10
- this.solProviderHelper = new SolProviderHelper();
11
- }
12
- isInstalledOnBrowser() {
13
- return this.solProviderHelper.isInstalledHelper(this.name);
14
- }
15
- fetchPublicAddress() {
16
- return __awaiter(this, void 0, void 0, function* () {
17
- return this.solProviderHelper.fetchPublicAddressWithName(this.name);
18
- });
19
- }
20
- connect() {
21
- return __awaiter(this, void 0, void 0, function* () {
22
- yield this.solProviderHelper.connectWithName(this.name);
23
- });
24
- }
25
- getSigner() {
26
- return __awaiter(this, void 0, void 0, function* () {
27
- return this.solProviderHelper.connectWithName(this.name);
28
- });
29
- }
30
- signMessage(messageToSign) {
31
- return __awaiter(this, void 0, void 0, function* () {
32
- const walletAddress = yield this.fetchPublicAddress();
33
- if (!walletAddress) {
34
- return undefined;
35
- }
36
- const provider = this.solProviderHelper.findProvider(this.name);
37
- if (!provider) {
38
- return undefined;
39
- }
40
- const encodedMessage = new TextEncoder().encode(messageToSign);
41
- const isSignedMessage = (value) => value.signature !== undefined;
42
- yield provider.connect();
43
- /**
44
- * TODO: Remove the sleep once problem is fixed on Solflare's extension.
45
- * Tracked in DYN-442
46
- */
47
- yield new Promise((resolve) => {
48
- setTimeout(resolve, 100);
49
- });
50
- const rawMessage = yield provider.signMessage(encodedMessage, 'utf8');
51
- return isSignedMessage(rawMessage)
52
- ? bufferToBase64(rawMessage.signature)
53
- : undefined;
54
- });
55
- }
56
- getConnectedAccounts() {
57
- return __awaiter(this, void 0, void 0, function* () {
58
- return this.solProviderHelper.getConnectedAccountsWithName(this.name);
59
- });
60
- }
61
- }
62
-
63
- export { Solflare as default };
@@ -1,2 +0,0 @@
1
- export { default } from './walletConnect';
2
- export { default as WalletConnectV2 } from './walletConnectV2';
@@ -1,130 +0,0 @@
1
- 'use strict';
2
-
3
- var tslib = require('tslib');
4
- var WalletConnectProvider = require('@walletconnect/ethereum-provider');
5
- var ethers = require('ethers');
6
- var walletBook = require('@dynamic-labs/wallet-book');
7
- var constants = require('../constants.cjs');
8
- var EthWalletConnector = require('../ethereum/EthWalletConnector.cjs');
9
- var walletConnect = require('../clients/walletConnect/walletConnect.cjs');
10
- var isMobile = require('../../utils/isMobile.cjs');
11
- var normalizeWalletName = require('../../utils/normalizeWalletName/normalizeWalletName.cjs');
12
- var errors = require('../../errors.cjs');
13
-
14
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
15
-
16
- var WalletConnectProvider__default = /*#__PURE__*/_interopDefaultLegacy(WalletConnectProvider);
17
-
18
- class WalletConnect extends EthWalletConnector.EthWalletConnector {
19
- constructor({ walletName, evmNetworks, }) {
20
- super({ evmNetworks });
21
- this.supportedChains = ['EVM', 'ETH'];
22
- this.connectedChain = 'EVM';
23
- this.canConnectViaQrCode = true;
24
- this.isWalletConnect = true;
25
- this.switchNetworkOnlyFromWallet = false;
26
- this.name = walletName;
27
- }
28
- getClient() {
29
- if (this.client) {
30
- return this.client;
31
- }
32
- this.client = walletConnect.initClient(normalizeWalletName.normalizeWalletName(this.name), this.clientOptions);
33
- return this.client;
34
- }
35
- supportsNetworkSwitching() {
36
- if (this.connectedChain === 'EVM') {
37
- return true;
38
- }
39
- else {
40
- const client = this.getClient();
41
- return Boolean(client === null || client === void 0 ? void 0 : client.chainId);
42
- }
43
- }
44
- setupEventListeners(listeners) {
45
- return walletConnect.setupWalletConnectEventListeners({
46
- onAccountChange: listeners.onAccountChange,
47
- onChainChange: listeners.onChainChange,
48
- onDisconnect: listeners.onDisconnect,
49
- }, this.getClient());
50
- }
51
- teardownEventListeners() {
52
- walletConnect.teardownWalletConnectEventListeners(this.getClient());
53
- }
54
- getWeb3Provider() {
55
- const client = this.getClient();
56
- return client
57
- ? new ethers.ethers.providers.Web3Provider(new WalletConnectProvider__default["default"]({
58
- connector: client,
59
- infuraId: constants.infuraId,
60
- rpc: this.evmNetworkRpcMap(),
61
- }), 'any')
62
- : undefined;
63
- }
64
- fetchPublicAddress(opts) {
65
- return tslib.__awaiter(this, void 0, void 0, function* () {
66
- return walletConnect.fetchWalletConnectEVMPublicAddress(walletBook.getWalletBookWallet(this.name), this.getClient(), Object.assign(Object.assign({}, opts), { onConnect: (payload) => {
67
- var _a;
68
- (_a = opts === null || opts === void 0 ? void 0 : opts.onConnect) === null || _a === void 0 ? void 0 : _a.call(opts, payload);
69
- this.connectedChain = payload.params[0].chainId ? 'EVM' : 'SOL';
70
- } }));
71
- });
72
- }
73
- getDeepLink() {
74
- var _a;
75
- const wallet = walletBook.getWalletBookWallet(this.name);
76
- if (!isMobile.isMobile() && !((_a = wallet.desktop) === null || _a === void 0 ? void 0 : _a.native)) {
77
- return undefined;
78
- }
79
- return walletConnect.getDeepLink(this.getClient().uri, wallet, {
80
- removeWCUri: isMobile.isIOS() && normalizeWalletName.normalizeWalletName(this.name) === 'cryptocom',
81
- });
82
- }
83
- signMessage(messageToSign) {
84
- return tslib.__awaiter(this, void 0, void 0, function* () {
85
- return walletConnect.signWalletConnectPersonalMessage(messageToSign, walletBook.getWalletBookWallet(this.name), this.getClient());
86
- });
87
- }
88
- endSession() {
89
- return tslib.__awaiter(this, void 0, void 0, function* () {
90
- walletConnect.killWalletConnectSession(this.getClient());
91
- });
92
- }
93
- providerSwitchNetwork({ network, provider, }) {
94
- const _super = Object.create(null, {
95
- providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
96
- });
97
- return tslib.__awaiter(this, void 0, void 0, function* () {
98
- const client = this.getClient();
99
- const currentNetworkId = yield this.getNetwork();
100
- if (currentNetworkId && currentNetworkId === network.chainId) {
101
- return;
102
- }
103
- if (this.switchNetworkOnlyFromWallet !== undefined &&
104
- this.switchNetworkOnlyFromWallet) {
105
- throw new errors.DynamicError('Network switching is only supported through the wallet');
106
- }
107
- if (!this.supportsNetworkSwitching()) {
108
- throw new errors.DynamicError('Network switching not supported');
109
- }
110
- if (!client) {
111
- throw new errors.DynamicError('Client not found');
112
- }
113
- if (isMobile.isMobile()) {
114
- const deepLink = walletConnect.getDeepLink(client.uri, walletBook.getWalletBookWallet(this.name));
115
- window.location.href = deepLink;
116
- }
117
- return _super.providerSwitchNetwork.call(this, { network, provider });
118
- });
119
- }
120
- getConnectedAccounts() {
121
- return tslib.__awaiter(this, void 0, void 0, function* () {
122
- const client = this.getClient();
123
- if (!client.connected)
124
- return [];
125
- return client.accounts;
126
- });
127
- }
128
- }
129
-
130
- module.exports = WalletConnect;
@@ -1,34 +0,0 @@
1
- import Client from '@walletconnect/client';
2
- import { ethers } from 'ethers';
3
- import { Chain, FetchPublicAddressOpts, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
4
- import { EthWalletConnector } from '../ethereum/EthWalletConnector';
5
- import { EvmNetwork } from '../ethereum/evm-network';
6
- declare class WalletConnect extends EthWalletConnector {
7
- supportedChains: Chain[];
8
- connectedChain: Chain;
9
- name: string;
10
- canConnectViaQrCode: boolean;
11
- isWalletConnect: boolean;
12
- switchNetworkOnlyFromWallet: boolean;
13
- client?: Client;
14
- clientOptions?: any;
15
- constructor({ walletName, evmNetworks, }: {
16
- evmNetworks: EvmNetwork[];
17
- walletName: string;
18
- });
19
- getClient(): Client;
20
- supportsNetworkSwitching(): boolean;
21
- setupEventListeners(listeners: WalletEventListeners): () => void;
22
- teardownEventListeners(): void;
23
- getWeb3Provider(): ethers.providers.Web3Provider | undefined;
24
- fetchPublicAddress(opts?: FetchPublicAddressOpts): Promise<string | undefined>;
25
- getDeepLink(): string | undefined;
26
- signMessage(messageToSign: string): Promise<string | undefined>;
27
- endSession(): Promise<void>;
28
- providerSwitchNetwork({ network, provider, }: {
29
- network: EvmNetwork;
30
- provider: ethers.providers.Web3Provider;
31
- }): Promise<void>;
32
- getConnectedAccounts(): Promise<string[]>;
33
- }
34
- export default WalletConnect;