@dynamic-labs/multi-wallet 0.17.0-RC.0 → 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 (268) hide show
  1. package/CHANGELOG.md +137 -0
  2. package/package.json +11 -14
  3. package/src/index.cjs +2 -66
  4. package/src/index.d.ts +1 -16
  5. package/src/index.js +2 -21
  6. package/src/multi-wallet.cjs +46 -159
  7. package/src/multi-wallet.d.ts +0 -3
  8. package/src/multi-wallet.js +44 -156
  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 +4 -5
  17. package/src/utils/message.d.ts +2 -2
  18. package/src/utils/message.js +2 -3
  19. package/src/wallets/constants.cjs +0 -2
  20. package/src/wallets/constants.js +1 -2
  21. package/src/wallets/cosmos/{keplrWalletConnect.cjs → KeplrWalletConnect.cjs} +27 -43
  22. package/src/wallets/cosmos/{keplrWalletConnect.d.ts → KeplrWalletConnect.d.ts} +16 -20
  23. package/src/wallets/cosmos/{keplrWalletConnect.js → KeplrWalletConnect.js} +20 -36
  24. package/src/wallets/cosmos/{keplr.cjs → KeplrWalletConnector.cjs} +24 -21
  25. package/src/wallets/cosmos/{keplr.d.ts → KeplrWalletConnector.d.ts} +14 -18
  26. package/src/wallets/cosmos/{keplr.js → KeplrWalletConnector.js} +23 -20
  27. package/src/wallets/cosmos/index.d.ts +1 -1
  28. package/src/wallets/{clients/walletConnect/walletConnect.cjs → cosmos/wcClient.lib.cjs} +38 -101
  29. package/src/wallets/{clients/walletConnect/walletConnect.d.ts → cosmos/wcClient.lib.d.ts} +8 -10
  30. package/src/wallets/{clients/walletConnect/walletConnect.js → cosmos/wcClient.lib.js} +36 -97
  31. package/src/wallets/flow/{flow-provider.cjs → FlowWalletConnector.cjs} +13 -41
  32. package/src/wallets/flow/{flow-provider.d.ts → FlowWalletConnector.d.ts} +4 -11
  33. package/src/wallets/flow/{flow-provider.js → FlowWalletConnector.js} +7 -35
  34. package/src/wallets/flow/blocto.cjs +2 -10
  35. package/src/wallets/flow/blocto.d.ts +2 -8
  36. package/src/wallets/flow/blocto.js +2 -10
  37. package/src/wallets/flow/dapper.cjs +2 -10
  38. package/src/wallets/flow/dapper.d.ts +2 -8
  39. package/src/wallets/flow/dapper.js +2 -10
  40. package/src/wallets/flow/lilico.cjs +4 -13
  41. package/src/wallets/flow/lilico.d.ts +2 -9
  42. package/src/wallets/flow/lilico.js +3 -12
  43. package/src/wallets/starknet/argentx.cjs +2 -2
  44. package/src/wallets/starknet/argentx.d.ts +1 -1
  45. package/src/wallets/starknet/argentx.js +2 -2
  46. package/src/wallets/starknet/braavos.cjs +4 -4
  47. package/src/wallets/starknet/braavos.d.ts +1 -1
  48. package/src/wallets/starknet/braavos.js +3 -3
  49. package/src/wallets/starknet/{starknetProvider.cjs → starknetWalletConnector.cjs} +9 -40
  50. package/src/wallets/starknet/{starknetProvider.d.ts → starknetWalletConnector.d.ts} +3 -14
  51. package/src/wallets/starknet/{starknetProvider.js → starknetWalletConnector.js} +5 -36
  52. package/src/wallets/window.d.ts +0 -77
  53. package/src/errors.cjs +0 -65
  54. package/src/errors.d.ts +0 -30
  55. package/src/errors.js +0 -53
  56. package/src/rpcProviders.cjs +0 -76
  57. package/src/rpcProviders.d.ts +0 -5
  58. package/src/rpcProviders.js +0 -69
  59. package/src/utils/CancellablePromise/CancellablePromise.cjs +0 -33
  60. package/src/utils/CancellablePromise/CancellablePromise.d.ts +0 -9
  61. package/src/utils/CancellablePromise/CancellablePromise.js +0 -29
  62. package/src/utils/CancellablePromise/index.d.ts +0 -1
  63. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.cjs +0 -54
  64. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.d.ts +0 -3
  65. package/src/utils/assignConfirmationScreenToProvider/assignConfirmationScreenToProvider.js +0 -50
  66. package/src/utils/assignConfirmationScreenToProvider/index.d.ts +0 -1
  67. package/src/utils/encoding.cjs +0 -18
  68. package/src/utils/encoding.d.ts +0 -4
  69. package/src/utils/encoding.js +0 -12
  70. package/src/utils/extractNonce.cjs +0 -13
  71. package/src/utils/extractNonce.d.ts +0 -1
  72. package/src/utils/extractNonce.js +0 -9
  73. package/src/utils/getChainInfo/getChainInfo.cjs +0 -59
  74. package/src/utils/getChainInfo/getChainInfo.d.ts +0 -2
  75. package/src/utils/getChainInfo/getChainInfo.js +0 -55
  76. package/src/utils/getChainInfo/index.d.ts +0 -1
  77. package/src/utils/getWalletConnectorByName.cjs +0 -19
  78. package/src/utils/getWalletConnectorByName.d.ts +0 -2
  79. package/src/utils/getWalletConnectorByName.js +0 -15
  80. package/src/utils/isEmailOTPWalletConnector/index.d.ts +0 -1
  81. package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.cjs +0 -7
  82. package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.d.ts +0 -2
  83. package/src/utils/isEmailOTPWalletConnector/isEmailOTPWalletConnector.js +0 -3
  84. package/src/utils/isEmailWalletConnector/index.d.ts +0 -1
  85. package/src/utils/isEmailWalletConnector/isEmailWalletConnector.cjs +0 -7
  86. package/src/utils/isEmailWalletConnector/isEmailWalletConnector.d.ts +0 -2
  87. package/src/utils/isEmailWalletConnector/isEmailWalletConnector.js +0 -3
  88. package/src/utils/isFunction/index.d.ts +0 -1
  89. package/src/utils/isFunction/isFunction.cjs +0 -8
  90. package/src/utils/isFunction/isFunction.d.ts +0 -1
  91. package/src/utils/isFunction/isFunction.js +0 -4
  92. package/src/utils/isMobile.cjs +0 -54
  93. package/src/utils/isMobile.d.ts +0 -13
  94. package/src/utils/isMobile.js +0 -46
  95. package/src/utils/isSameAddress/index.d.ts +0 -1
  96. package/src/utils/isSameAddress/isSameAddress.cjs +0 -9
  97. package/src/utils/isSameAddress/isSameAddress.d.ts +0 -1
  98. package/src/utils/isSameAddress/isSameAddress.js +0 -5
  99. package/src/utils/isSameAddress/utils/index.d.ts +0 -1
  100. package/src/utils/isSameAddress/utils/normalizeAddress/index.d.ts +0 -1
  101. package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.cjs +0 -17
  102. package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.d.ts +0 -1
  103. package/src/utils/isSameAddress/utils/normalizeAddress/normalizeAddress.js +0 -13
  104. package/src/utils/isSocialWalletConnector/index.d.ts +0 -1
  105. package/src/utils/isSocialWalletConnector/isSocialWalletConnector.cjs +0 -7
  106. package/src/utils/isSocialWalletConnector/isSocialWalletConnector.d.ts +0 -2
  107. package/src/utils/isSocialWalletConnector/isSocialWalletConnector.js +0 -3
  108. package/src/utils/isUnsupportedProviderError/index.d.ts +0 -1
  109. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.cjs +0 -13
  110. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.d.ts +0 -6
  111. package/src/utils/isUnsupportedProviderError/isUnsupportedProviderError.js +0 -9
  112. package/src/utils/localStorageAsync.cjs +0 -28
  113. package/src/utils/localStorageAsync.d.ts +0 -3
  114. package/src/utils/localStorageAsync.js +0 -22
  115. package/src/utils/logger.cjs +0 -9
  116. package/src/utils/logger.d.ts +0 -2
  117. package/src/utils/logger.js +0 -5
  118. package/src/utils/normalizeWalletName/index.d.ts +0 -1
  119. package/src/utils/normalizeWalletName/normalizeWalletName.cjs +0 -7
  120. package/src/utils/normalizeWalletName/normalizeWalletName.d.ts +0 -1
  121. package/src/utils/normalizeWalletName/normalizeWalletName.js +0 -3
  122. package/src/utils/shouldLowercaseAddress.cjs +0 -11
  123. package/src/utils/shouldLowercaseAddress.d.ts +0 -1
  124. package/src/utils/shouldLowercaseAddress.js +0 -7
  125. package/src/utils/walletConnect.cjs +0 -30
  126. package/src/utils/walletConnect.d.ts +0 -4
  127. package/src/utils/walletConnect.js +0 -26
  128. package/src/wallets/ProviderLookup.cjs +0 -18
  129. package/src/wallets/ProviderLookup.d.ts +0 -4
  130. package/src/wallets/ProviderLookup.js +0 -14
  131. package/src/wallets/algorand/myalgo.cjs +0 -187
  132. package/src/wallets/algorand/myalgo.d.ts +0 -36
  133. package/src/wallets/algorand/myalgo.js +0 -181
  134. package/src/wallets/algorand/myalgoSigner.cjs +0 -24
  135. package/src/wallets/algorand/myalgoSigner.d.ts +0 -21
  136. package/src/wallets/algorand/myalgoSigner.js +0 -20
  137. package/src/wallets/clients/coinbase/coinbase.cjs +0 -77
  138. package/src/wallets/clients/coinbase/coinbase.d.ts +0 -6
  139. package/src/wallets/clients/coinbase/coinbase.js +0 -66
  140. package/src/wallets/clients/coinbase/index.d.ts +0 -2
  141. package/src/wallets/clients/coinbase/types.d.ts +0 -14
  142. package/src/wallets/clients/walletConnect/index.d.ts +0 -1
  143. package/src/wallets/clients/walletConnect/types.d.ts +0 -4
  144. package/src/wallets/cosmos/getKeplrConnector.cjs +0 -18
  145. package/src/wallets/cosmos/getKeplrConnector.d.ts +0 -6
  146. package/src/wallets/cosmos/getKeplrConnector.js +0 -14
  147. package/src/wallets/ethereum/BloctoEvm.cjs +0 -140
  148. package/src/wallets/ethereum/BloctoEvm.d.ts +0 -34
  149. package/src/wallets/ethereum/BloctoEvm.js +0 -134
  150. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.cjs +0 -58
  151. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.d.ts +0 -12
  152. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/EmailMagicWalletConnector.js +0 -54
  153. package/src/wallets/ethereum/MagicConnector/EmailMagicWalletConnector/index.d.ts +0 -1
  154. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.cjs +0 -62
  155. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.d.ts +0 -11
  156. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/EmailOTPMagicWalletConnector.js +0 -58
  157. package/src/wallets/ethereum/MagicConnector/EmailOTPMagicWalletConnector/index.d.ts +0 -1
  158. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.cjs +0 -103
  159. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.d.ts +0 -34
  160. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/MagicClientNetworkHandler.js +0 -99
  161. package/src/wallets/ethereum/MagicConnector/MagicClientNetworkHandler/index.d.ts +0 -2
  162. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.cjs +0 -56
  163. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.d.ts +0 -12
  164. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/MagicSocialWalletConnector.js +0 -52
  165. package/src/wallets/ethereum/MagicConnector/MagicSocialWalletConnector/index.d.ts +0 -1
  166. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.cjs +0 -182
  167. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.d.ts +0 -60
  168. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/MagicWalletConnector.js +0 -178
  169. package/src/wallets/ethereum/MagicConnector/MagicWalletConnector/index.d.ts +0 -2
  170. package/src/wallets/ethereum/MagicConnector/index.d.ts +0 -5
  171. package/src/wallets/ethereum/coinbase.cjs +0 -81
  172. package/src/wallets/ethereum/coinbase.d.ts +0 -31
  173. package/src/wallets/ethereum/coinbase.js +0 -79
  174. package/src/wallets/ethereum/ethProvider.cjs +0 -171
  175. package/src/wallets/ethereum/ethProvider.d.ts +0 -35
  176. package/src/wallets/ethereum/ethProvider.js +0 -167
  177. package/src/wallets/ethereum/ethProviderHelper.cjs +0 -190
  178. package/src/wallets/ethereum/ethProviderHelper.d.ts +0 -40
  179. package/src/wallets/ethereum/ethProviderHelper.js +0 -186
  180. package/src/wallets/ethereum/evm-network.cjs +0 -20
  181. package/src/wallets/ethereum/evm-network.d.ts +0 -22
  182. package/src/wallets/ethereum/evm-network.js +0 -16
  183. package/src/wallets/ethereum/fortmatic.cjs +0 -98
  184. package/src/wallets/ethereum/fortmatic.d.ts +0 -34
  185. package/src/wallets/ethereum/fortmatic.js +0 -92
  186. package/src/wallets/ethereum/injected/BloctoInjected.cjs +0 -13
  187. package/src/wallets/ethereum/injected/BloctoInjected.d.ts +0 -6
  188. package/src/wallets/ethereum/injected/BloctoInjected.js +0 -11
  189. package/src/wallets/ethereum/injected/BraveEvm.cjs +0 -13
  190. package/src/wallets/ethereum/injected/BraveEvm.d.ts +0 -6
  191. package/src/wallets/ethereum/injected/BraveEvm.js +0 -11
  192. package/src/wallets/ethereum/injected/Dawn.cjs +0 -13
  193. package/src/wallets/ethereum/injected/Dawn.d.ts +0 -6
  194. package/src/wallets/ethereum/injected/Dawn.js +0 -11
  195. package/src/wallets/ethereum/injected/ExodusEvm.cjs +0 -13
  196. package/src/wallets/ethereum/injected/ExodusEvm.d.ts +0 -6
  197. package/src/wallets/ethereum/injected/ExodusEvm.js +0 -11
  198. package/src/wallets/ethereum/injected/Frame.cjs +0 -13
  199. package/src/wallets/ethereum/injected/Frame.d.ts +0 -6
  200. package/src/wallets/ethereum/injected/Frame.js +0 -11
  201. package/src/wallets/ethereum/injected/GameStop.cjs +0 -13
  202. package/src/wallets/ethereum/injected/GameStop.d.ts +0 -6
  203. package/src/wallets/ethereum/injected/GameStop.js +0 -11
  204. package/src/wallets/ethereum/injected/Opera.cjs +0 -13
  205. package/src/wallets/ethereum/injected/Opera.d.ts +0 -6
  206. package/src/wallets/ethereum/injected/Opera.js +0 -11
  207. package/src/wallets/ethereum/injected/PhantomEvm.cjs +0 -37
  208. package/src/wallets/ethereum/injected/PhantomEvm.d.ts +0 -7
  209. package/src/wallets/ethereum/injected/PhantomEvm.js +0 -35
  210. package/src/wallets/ethereum/injected/Trust.cjs +0 -13
  211. package/src/wallets/ethereum/injected/Trust.d.ts +0 -6
  212. package/src/wallets/ethereum/injected/Trust.js +0 -11
  213. package/src/wallets/ethereum/injected/UnknownInjectedWallet.cjs +0 -13
  214. package/src/wallets/ethereum/injected/UnknownInjectedWallet.d.ts +0 -6
  215. package/src/wallets/ethereum/injected/UnknownInjectedWallet.js +0 -11
  216. package/src/wallets/ethereum/injected/Zerion.cjs +0 -13
  217. package/src/wallets/ethereum/injected/Zerion.d.ts +0 -6
  218. package/src/wallets/ethereum/injected/Zerion.js +0 -11
  219. package/src/wallets/ethereum/meta-mask.cjs +0 -70
  220. package/src/wallets/ethereum/meta-mask.d.ts +0 -30
  221. package/src/wallets/ethereum/meta-mask.js +0 -68
  222. package/src/wallets/getMobileOrInjectedWallet.cjs +0 -26
  223. package/src/wallets/getMobileOrInjectedWallet.d.ts +0 -10
  224. package/src/wallets/getMobileOrInjectedWallet.js +0 -22
  225. package/src/wallets/getWalletConnectConnector.cjs +0 -18
  226. package/src/wallets/getWalletConnectConnector.d.ts +0 -7
  227. package/src/wallets/getWalletConnectConnector.js +0 -14
  228. package/src/wallets/initializeWalletProviders.cjs +0 -14
  229. package/src/wallets/initializeWalletProviders.d.ts +0 -6
  230. package/src/wallets/initializeWalletProviders.js +0 -10
  231. package/src/wallets/solana/CoinbaseSolana.cjs +0 -77
  232. package/src/wallets/solana/CoinbaseSolana.d.ts +0 -26
  233. package/src/wallets/solana/CoinbaseSolana.js +0 -75
  234. package/src/wallets/solana/glow.cjs +0 -74
  235. package/src/wallets/solana/glow.d.ts +0 -25
  236. package/src/wallets/solana/glow.js +0 -72
  237. package/src/wallets/solana/injected/BraveSol.cjs +0 -18
  238. package/src/wallets/solana/injected/BraveSol.d.ts +0 -6
  239. package/src/wallets/solana/injected/BraveSol.js +0 -16
  240. package/src/wallets/solana/injected/ExodusSol.cjs +0 -12
  241. package/src/wallets/solana/injected/ExodusSol.d.ts +0 -5
  242. package/src/wallets/solana/injected/ExodusSol.js +0 -10
  243. package/src/wallets/solana/phantom-ledger.cjs +0 -71
  244. package/src/wallets/solana/phantom-ledger.d.ts +0 -16
  245. package/src/wallets/solana/phantom-ledger.js +0 -65
  246. package/src/wallets/solana/phantom.cjs +0 -97
  247. package/src/wallets/solana/phantom.d.ts +0 -26
  248. package/src/wallets/solana/phantom.js +0 -95
  249. package/src/wallets/solana/slope.cjs +0 -125
  250. package/src/wallets/solana/slope.d.ts +0 -39
  251. package/src/wallets/solana/slope.js +0 -123
  252. package/src/wallets/solana/solProvider.cjs +0 -62
  253. package/src/wallets/solana/solProvider.d.ts +0 -18
  254. package/src/wallets/solana/solProvider.js +0 -58
  255. package/src/wallets/solana/solProviderHelper.cjs +0 -164
  256. package/src/wallets/solana/solProviderHelper.d.ts +0 -29
  257. package/src/wallets/solana/solProviderHelper.js +0 -160
  258. package/src/wallets/solana/solflare.cjs +0 -94
  259. package/src/wallets/solana/solflare.d.ts +0 -26
  260. package/src/wallets/solana/solflare.js +0 -92
  261. package/src/wallets/walletConnect/index.d.ts +0 -2
  262. package/src/wallets/walletConnect/walletConnect.cjs +0 -147
  263. package/src/wallets/walletConnect/walletConnect.d.ts +0 -39
  264. package/src/wallets/walletConnect/walletConnect.js +0 -141
  265. package/src/wallets/walletConnect/walletConnectV2.cjs +0 -282
  266. package/src/wallets/walletConnect/walletConnectV2.d.ts +0 -40
  267. package/src/wallets/walletConnect/walletConnectV2.js +0 -273
  268. package/src/wallets/walletConnect/zerion.d.ts +0 -8
@@ -1,282 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var tslib = require('tslib');
6
- var Provider = require('@walletconnect/universal-provider');
7
- var ethers = require('ethers');
8
- var walletBook = require('@dynamic-labs/wallet-book');
9
- var normalizeWalletName = require('../../utils/normalizeWalletName/normalizeWalletName.cjs');
10
- var ethProvider = require('../ethereum/ethProvider.cjs');
11
- var isMobile = require('../../utils/isMobile.cjs');
12
- var walletConnect = require('../clients/walletConnect/walletConnect.cjs');
13
- var errors = require('../../errors.cjs');
14
- var logger = require('../../utils/logger.cjs');
15
- var encoding = require('../../utils/encoding.cjs');
16
-
17
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
-
19
- var Provider__default = /*#__PURE__*/_interopDefaultLegacy(Provider);
20
-
21
- let provider;
22
- let createSession;
23
- const getInitializedProvider = (providerOpts, evmNetworks) => tslib.__awaiter(void 0, void 0, void 0, function* () {
24
- if (!provider) {
25
- provider = yield Provider__default["default"].init(providerOpts);
26
- const connection = yield provider.client.connect({
27
- requiredNamespaces: {
28
- eip155: {
29
- chains: evmNetworks
30
- // filtering out Palm for now since it causes Trust to crash
31
- .filter((network) => network.chainId !== 11297108109)
32
- .map((network) => `eip155:${network.chainId}`),
33
- events: ['chainChanged', 'accountsChanged'],
34
- methods: [
35
- 'eth_sendTransaction',
36
- 'eth_signTransaction',
37
- 'eth_sign',
38
- 'personal_sign',
39
- 'eth_signTypedData',
40
- ],
41
- },
42
- },
43
- });
44
- // eslint-disable-next-line prefer-destructuring
45
- provider.uri = connection.uri;
46
- createSession = connection.approval;
47
- }
48
- return provider;
49
- });
50
- const performPlatformSpecificConnectionMethod = (uri, metadata, opts) => {
51
- var _a, _b, _c;
52
- if (isMobile.isMobile()) {
53
- const deepLink = walletConnect.getDeepLink(uri, metadata);
54
- window.location.href = deepLink;
55
- }
56
- else {
57
- if ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.desktop) === null || _a === void 0 ? void 0 : _a.native) {
58
- const desktopUri = walletConnect.getDeepLink(uri, metadata);
59
- (_b = opts === null || opts === void 0 ? void 0 : opts.onDesktopUri) === null || _b === void 0 ? void 0 : _b.call(opts, desktopUri);
60
- }
61
- (_c = opts === null || opts === void 0 ? void 0 : opts.onDisplayUri) === null || _c === void 0 ? void 0 : _c.call(opts, uri);
62
- }
63
- };
64
- const sessionTopicKey = (walletName) => `dynamic-wc2-session-topic-${walletName}`;
65
- class WalletConnectV2 extends ethProvider.EthProvider {
66
- constructor({ evmNetworks, walletName, }) {
67
- var _a;
68
- super({ evmNetworks });
69
- this.supportedChains = ['EVM', 'ETH'];
70
- this.connectedChain = 'EVM';
71
- this.canConnectViaQrCode = true;
72
- this.canConnectViaCustodialService = false;
73
- this.isWalletConnect = true;
74
- this.switchNetworkOnlyFromWallet = false;
75
- this.name = walletName;
76
- if ((_a = provider === null || provider === void 0 ? void 0 : provider.session) === null || _a === void 0 ? void 0 : _a.topic) {
77
- if (localStorage.getItem(this.sessionTopicKey) === provider.session.topic) {
78
- this.session = provider.session;
79
- }
80
- }
81
- }
82
- get sessionTopicKey() {
83
- return sessionTopicKey(this.key);
84
- }
85
- get key() {
86
- return normalizeWalletName.normalizeWalletName(this.name);
87
- }
88
- supportsNetworkSwitching() {
89
- return true;
90
- }
91
- setupEventListeners(listeners) {
92
- if (!provider) {
93
- return;
94
- }
95
- provider.client.on('session_event', ({ params }) => {
96
- var _a, _b;
97
- if (!params || !params.event) {
98
- logger.logger.debug('session_event was called without params or params.event');
99
- return;
100
- }
101
- const { name, data } = params.event;
102
- if (name === 'chainChanged') {
103
- if (typeof data !== 'string') {
104
- logger.logger.debug(`received unexpected data for chainChanged: ${data} with type ${typeof data}}`);
105
- return;
106
- }
107
- (_a = listeners.onChainChange) === null || _a === void 0 ? void 0 : _a.call(listeners, data);
108
- }
109
- else if (name === 'accountsChanged') {
110
- if (typeof data !== 'string' || !Array.isArray(data)) {
111
- logger.logger.debug(`received unexpected data for accountsChanged: ${data} with type ${typeof data}}`);
112
- return;
113
- }
114
- (_b = listeners.onAccountChange) === null || _b === void 0 ? void 0 : _b.call(listeners, data);
115
- }
116
- });
117
- provider.client.on('session_delete', () => tslib.__awaiter(this, void 0, void 0, function* () {
118
- var _a;
119
- localStorage.removeItem(this.sessionTopicKey);
120
- yield ((_a = listeners.onDisconnect) === null || _a === void 0 ? void 0 : _a.call(listeners));
121
- }));
122
- }
123
- teardownEventListeners() {
124
- if (!provider) {
125
- return;
126
- }
127
- provider.client.removeAllListeners('session_event');
128
- provider.client.removeAllListeners('session_delete');
129
- }
130
- getDeepLink() {
131
- var _a;
132
- if (!(provider === null || provider === void 0 ? void 0 : provider.uri))
133
- return;
134
- const wallet = walletBook.getWalletBookWallet(this.name);
135
- if (!isMobile.isMobile() && !((_a = wallet.desktop) === null || _a === void 0 ? void 0 : _a.native)) {
136
- return undefined;
137
- }
138
- return walletConnect.getDeepLink(provider.uri, wallet);
139
- }
140
- getWeb3Provider() {
141
- if (!provider) {
142
- throw new Error('No provider found');
143
- }
144
- return new ethers.ethers.providers.Web3Provider(provider, 'any');
145
- }
146
- isInstalledOnBrowser() {
147
- return false;
148
- }
149
- connect() {
150
- return tslib.__awaiter(this, void 0, void 0, function* () {
151
- yield this.fetchPublicAddress();
152
- });
153
- }
154
- fetchPublicAddress(opts) {
155
- return tslib.__awaiter(this, void 0, void 0, function* () {
156
- if (this.session) {
157
- return this.session.namespaces.eip155.accounts[0].split(':')[2];
158
- }
159
- const metadata = walletBook.getWalletBookWallet(this.name);
160
- if (!provider) {
161
- throw new errors.DynamicError('No provider found');
162
- }
163
- if (!provider.uri || !createSession) {
164
- throw new errors.DynamicError('No uri or approval found');
165
- }
166
- performPlatformSpecificConnectionMethod(provider.uri, metadata, {
167
- onDesktopUri: opts === null || opts === void 0 ? void 0 : opts.onDesktopUri,
168
- onDisplayUri: opts === null || opts === void 0 ? void 0 : opts.onDisplayUri,
169
- });
170
- const session = yield createSession();
171
- if (!session) {
172
- return undefined;
173
- }
174
- this.session = session;
175
- localStorage.setItem(this.sessionTopicKey, session.topic);
176
- // need to "reconnect" the provider so that we can tell it what the rpc urls are
177
- yield provider.connect({
178
- namespaces: {
179
- eip155: {
180
- chains: this.evmNetworks
181
- // filtering out Palm for now since it causes Trust to crash
182
- .filter((network) => network.chainId !== 11297108109)
183
- .map((network) => `eip155:${network.chainId}`),
184
- events: ['chainChanged', 'accountsChanged'],
185
- methods: [
186
- 'eth_sendTransaction',
187
- 'eth_signTransaction',
188
- 'eth_sign',
189
- 'personal_sign',
190
- 'eth_signTypedData',
191
- ],
192
- rpcMap: this.evmNetworkRpcMap(),
193
- },
194
- },
195
- skipPairing: true,
196
- });
197
- // THIS LINE IS SUPER IMPORTANT
198
- // since we are skipping pairing, (see: skipPairing: true above), we need to manually set the session
199
- // so that future provider requests work (like getNetwork)
200
- provider.session = session;
201
- return session.namespaces.eip155.accounts[0].split(':')[2];
202
- });
203
- }
204
- signMessage(messageToSign) {
205
- return tslib.__awaiter(this, void 0, void 0, function* () {
206
- if (!this.session) {
207
- throw new errors.DynamicError('no session');
208
- }
209
- if (!provider) {
210
- throw new errors.DynamicError('No WalletConnect provider found to handle signing');
211
- }
212
- const metadata = walletBook.getWalletBookWallet(this.name);
213
- if (isMobile.isMobile()) {
214
- // for sign message, no uri is needed because the uri encodes connection details,
215
- // and at this point we are already connected
216
- const deepLink = walletConnect.getDeepLink('', metadata);
217
- window.location.href = deepLink;
218
- }
219
- // eslint-disable-next-line prefer-destructuring
220
- const address = this.session.namespaces.eip155.accounts[0].split(':')[2];
221
- const web3Provider = this.getWeb3Provider();
222
- return web3Provider.send('personal_sign', [
223
- encoding.utf8ToHex(messageToSign, true),
224
- address,
225
- ]);
226
- });
227
- }
228
- proveOwnership(messageToSign) {
229
- return tslib.__awaiter(this, void 0, void 0, function* () {
230
- return this.signMessage(messageToSign);
231
- });
232
- }
233
- endSession() {
234
- return tslib.__awaiter(this, void 0, void 0, function* () {
235
- if (!this.session) {
236
- return;
237
- }
238
- if (!provider) {
239
- return;
240
- }
241
- try {
242
- yield provider.disconnect();
243
- localStorage.removeItem(this.sessionTopicKey);
244
- }
245
- catch (e) {
246
- logger.logger.debug(e);
247
- }
248
- });
249
- }
250
- providerSwitchNetwork({ network, provider, }) {
251
- const _super = Object.create(null, {
252
- providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
253
- });
254
- return tslib.__awaiter(this, void 0, void 0, function* () {
255
- const currentNetworkId = yield this.getNetwork();
256
- if (currentNetworkId && currentNetworkId === network.chainId) {
257
- return;
258
- }
259
- if (this.switchNetworkOnlyFromWallet) {
260
- throw new errors.DynamicError('Network switching is only supported through the wallet');
261
- }
262
- if (!this.supportsNetworkSwitching()) {
263
- throw new errors.DynamicError('Network switching not supported');
264
- }
265
- if (!provider) {
266
- throw new errors.DynamicError('Provider not found');
267
- }
268
- return _super.providerSwitchNetwork.call(this, { network, provider });
269
- });
270
- }
271
- getConnectedAccounts() {
272
- return tslib.__awaiter(this, void 0, void 0, function* () {
273
- if (!this.session) {
274
- return [];
275
- }
276
- return [this.session.namespaces.eip155.accounts[0].split(':')[2]];
277
- });
278
- }
279
- }
280
-
281
- exports["default"] = WalletConnectV2;
282
- exports.getInitializedProvider = getInitializedProvider;
@@ -1,40 +0,0 @@
1
- import Provider, { UniversalProviderOpts } from '@walletconnect/universal-provider';
2
- import { ethers } from 'ethers';
3
- import type { SessionTypes } from '@walletconnect/types';
4
- import { WalletConnector, Chain, FetchPublicAddressOpts, WalletEventListeners } from '@dynamic-labs/wallet-connector-core';
5
- import { EvmNetwork } from '../ethereum/evm-network';
6
- import { EthProvider } from '../ethereum/ethProvider';
7
- export declare const getInitializedProvider: (providerOpts: UniversalProviderOpts, evmNetworks: EvmNetwork[]) => Promise<Provider>;
8
- declare class WalletConnectV2 extends EthProvider implements WalletConnector {
9
- supportedChains: Chain[];
10
- connectedChain: Chain;
11
- name: string;
12
- session: SessionTypes.Struct | undefined;
13
- canConnectViaQrCode: boolean;
14
- canConnectViaCustodialService: boolean;
15
- isWalletConnect: boolean;
16
- switchNetworkOnlyFromWallet: boolean;
17
- constructor({ evmNetworks, walletName, }: {
18
- evmNetworks: EvmNetwork[];
19
- walletName: string;
20
- });
21
- get sessionTopicKey(): string;
22
- get key(): string;
23
- supportsNetworkSwitching(): boolean;
24
- setupEventListeners(listeners: WalletEventListeners): void;
25
- teardownEventListeners(): void;
26
- getDeepLink(): string | undefined;
27
- getWeb3Provider(): ethers.providers.Web3Provider;
28
- isInstalledOnBrowser(): boolean;
29
- connect(): Promise<void>;
30
- fetchPublicAddress(opts?: FetchPublicAddressOpts): Promise<string | undefined>;
31
- signMessage(messageToSign: string): Promise<string | undefined>;
32
- proveOwnership(messageToSign: string): Promise<string | undefined>;
33
- endSession(): Promise<void>;
34
- providerSwitchNetwork({ network, provider, }: {
35
- network: EvmNetwork;
36
- provider: ethers.providers.Web3Provider;
37
- }): Promise<void>;
38
- getConnectedAccounts(): Promise<string[]>;
39
- }
40
- export default WalletConnectV2;
@@ -1,273 +0,0 @@
1
- import { __awaiter } from 'tslib';
2
- import Provider from '@walletconnect/universal-provider';
3
- import { ethers } from 'ethers';
4
- import { getWalletBookWallet } from '@dynamic-labs/wallet-book';
5
- import { normalizeWalletName } from '../../utils/normalizeWalletName/normalizeWalletName.js';
6
- import { EthProvider } from '../ethereum/ethProvider.js';
7
- import { isMobile } from '../../utils/isMobile.js';
8
- import { getDeepLink } from '../clients/walletConnect/walletConnect.js';
9
- import { DynamicError } from '../../errors.js';
10
- import { logger } from '../../utils/logger.js';
11
- import { utf8ToHex } from '../../utils/encoding.js';
12
-
13
- let provider;
14
- let createSession;
15
- const getInitializedProvider = (providerOpts, evmNetworks) => __awaiter(void 0, void 0, void 0, function* () {
16
- if (!provider) {
17
- provider = yield Provider.init(providerOpts);
18
- const connection = yield provider.client.connect({
19
- requiredNamespaces: {
20
- eip155: {
21
- chains: evmNetworks
22
- // filtering out Palm for now since it causes Trust to crash
23
- .filter((network) => network.chainId !== 11297108109)
24
- .map((network) => `eip155:${network.chainId}`),
25
- events: ['chainChanged', 'accountsChanged'],
26
- methods: [
27
- 'eth_sendTransaction',
28
- 'eth_signTransaction',
29
- 'eth_sign',
30
- 'personal_sign',
31
- 'eth_signTypedData',
32
- ],
33
- },
34
- },
35
- });
36
- // eslint-disable-next-line prefer-destructuring
37
- provider.uri = connection.uri;
38
- createSession = connection.approval;
39
- }
40
- return provider;
41
- });
42
- const performPlatformSpecificConnectionMethod = (uri, metadata, opts) => {
43
- var _a, _b, _c;
44
- if (isMobile()) {
45
- const deepLink = getDeepLink(uri, metadata);
46
- window.location.href = deepLink;
47
- }
48
- else {
49
- if ((_a = metadata === null || metadata === void 0 ? void 0 : metadata.desktop) === null || _a === void 0 ? void 0 : _a.native) {
50
- const desktopUri = getDeepLink(uri, metadata);
51
- (_b = opts === null || opts === void 0 ? void 0 : opts.onDesktopUri) === null || _b === void 0 ? void 0 : _b.call(opts, desktopUri);
52
- }
53
- (_c = opts === null || opts === void 0 ? void 0 : opts.onDisplayUri) === null || _c === void 0 ? void 0 : _c.call(opts, uri);
54
- }
55
- };
56
- const sessionTopicKey = (walletName) => `dynamic-wc2-session-topic-${walletName}`;
57
- class WalletConnectV2 extends EthProvider {
58
- constructor({ evmNetworks, walletName, }) {
59
- var _a;
60
- super({ evmNetworks });
61
- this.supportedChains = ['EVM', 'ETH'];
62
- this.connectedChain = 'EVM';
63
- this.canConnectViaQrCode = true;
64
- this.canConnectViaCustodialService = false;
65
- this.isWalletConnect = true;
66
- this.switchNetworkOnlyFromWallet = false;
67
- this.name = walletName;
68
- if ((_a = provider === null || provider === void 0 ? void 0 : provider.session) === null || _a === void 0 ? void 0 : _a.topic) {
69
- if (localStorage.getItem(this.sessionTopicKey) === provider.session.topic) {
70
- this.session = provider.session;
71
- }
72
- }
73
- }
74
- get sessionTopicKey() {
75
- return sessionTopicKey(this.key);
76
- }
77
- get key() {
78
- return normalizeWalletName(this.name);
79
- }
80
- supportsNetworkSwitching() {
81
- return true;
82
- }
83
- setupEventListeners(listeners) {
84
- if (!provider) {
85
- return;
86
- }
87
- provider.client.on('session_event', ({ params }) => {
88
- var _a, _b;
89
- if (!params || !params.event) {
90
- logger.debug('session_event was called without params or params.event');
91
- return;
92
- }
93
- const { name, data } = params.event;
94
- if (name === 'chainChanged') {
95
- if (typeof data !== 'string') {
96
- logger.debug(`received unexpected data for chainChanged: ${data} with type ${typeof data}}`);
97
- return;
98
- }
99
- (_a = listeners.onChainChange) === null || _a === void 0 ? void 0 : _a.call(listeners, data);
100
- }
101
- else if (name === 'accountsChanged') {
102
- if (typeof data !== 'string' || !Array.isArray(data)) {
103
- logger.debug(`received unexpected data for accountsChanged: ${data} with type ${typeof data}}`);
104
- return;
105
- }
106
- (_b = listeners.onAccountChange) === null || _b === void 0 ? void 0 : _b.call(listeners, data);
107
- }
108
- });
109
- provider.client.on('session_delete', () => __awaiter(this, void 0, void 0, function* () {
110
- var _a;
111
- localStorage.removeItem(this.sessionTopicKey);
112
- yield ((_a = listeners.onDisconnect) === null || _a === void 0 ? void 0 : _a.call(listeners));
113
- }));
114
- }
115
- teardownEventListeners() {
116
- if (!provider) {
117
- return;
118
- }
119
- provider.client.removeAllListeners('session_event');
120
- provider.client.removeAllListeners('session_delete');
121
- }
122
- getDeepLink() {
123
- var _a;
124
- if (!(provider === null || provider === void 0 ? void 0 : provider.uri))
125
- return;
126
- const wallet = getWalletBookWallet(this.name);
127
- if (!isMobile() && !((_a = wallet.desktop) === null || _a === void 0 ? void 0 : _a.native)) {
128
- return undefined;
129
- }
130
- return getDeepLink(provider.uri, wallet);
131
- }
132
- getWeb3Provider() {
133
- if (!provider) {
134
- throw new Error('No provider found');
135
- }
136
- return new ethers.providers.Web3Provider(provider, 'any');
137
- }
138
- isInstalledOnBrowser() {
139
- return false;
140
- }
141
- connect() {
142
- return __awaiter(this, void 0, void 0, function* () {
143
- yield this.fetchPublicAddress();
144
- });
145
- }
146
- fetchPublicAddress(opts) {
147
- return __awaiter(this, void 0, void 0, function* () {
148
- if (this.session) {
149
- return this.session.namespaces.eip155.accounts[0].split(':')[2];
150
- }
151
- const metadata = getWalletBookWallet(this.name);
152
- if (!provider) {
153
- throw new DynamicError('No provider found');
154
- }
155
- if (!provider.uri || !createSession) {
156
- throw new DynamicError('No uri or approval found');
157
- }
158
- performPlatformSpecificConnectionMethod(provider.uri, metadata, {
159
- onDesktopUri: opts === null || opts === void 0 ? void 0 : opts.onDesktopUri,
160
- onDisplayUri: opts === null || opts === void 0 ? void 0 : opts.onDisplayUri,
161
- });
162
- const session = yield createSession();
163
- if (!session) {
164
- return undefined;
165
- }
166
- this.session = session;
167
- localStorage.setItem(this.sessionTopicKey, session.topic);
168
- // need to "reconnect" the provider so that we can tell it what the rpc urls are
169
- yield provider.connect({
170
- namespaces: {
171
- eip155: {
172
- chains: this.evmNetworks
173
- // filtering out Palm for now since it causes Trust to crash
174
- .filter((network) => network.chainId !== 11297108109)
175
- .map((network) => `eip155:${network.chainId}`),
176
- events: ['chainChanged', 'accountsChanged'],
177
- methods: [
178
- 'eth_sendTransaction',
179
- 'eth_signTransaction',
180
- 'eth_sign',
181
- 'personal_sign',
182
- 'eth_signTypedData',
183
- ],
184
- rpcMap: this.evmNetworkRpcMap(),
185
- },
186
- },
187
- skipPairing: true,
188
- });
189
- // THIS LINE IS SUPER IMPORTANT
190
- // since we are skipping pairing, (see: skipPairing: true above), we need to manually set the session
191
- // so that future provider requests work (like getNetwork)
192
- provider.session = session;
193
- return session.namespaces.eip155.accounts[0].split(':')[2];
194
- });
195
- }
196
- signMessage(messageToSign) {
197
- return __awaiter(this, void 0, void 0, function* () {
198
- if (!this.session) {
199
- throw new DynamicError('no session');
200
- }
201
- if (!provider) {
202
- throw new DynamicError('No WalletConnect provider found to handle signing');
203
- }
204
- const metadata = getWalletBookWallet(this.name);
205
- if (isMobile()) {
206
- // for sign message, no uri is needed because the uri encodes connection details,
207
- // and at this point we are already connected
208
- const deepLink = getDeepLink('', metadata);
209
- window.location.href = deepLink;
210
- }
211
- // eslint-disable-next-line prefer-destructuring
212
- const address = this.session.namespaces.eip155.accounts[0].split(':')[2];
213
- const web3Provider = this.getWeb3Provider();
214
- return web3Provider.send('personal_sign', [
215
- utf8ToHex(messageToSign, true),
216
- address,
217
- ]);
218
- });
219
- }
220
- proveOwnership(messageToSign) {
221
- return __awaiter(this, void 0, void 0, function* () {
222
- return this.signMessage(messageToSign);
223
- });
224
- }
225
- endSession() {
226
- return __awaiter(this, void 0, void 0, function* () {
227
- if (!this.session) {
228
- return;
229
- }
230
- if (!provider) {
231
- return;
232
- }
233
- try {
234
- yield provider.disconnect();
235
- localStorage.removeItem(this.sessionTopicKey);
236
- }
237
- catch (e) {
238
- logger.debug(e);
239
- }
240
- });
241
- }
242
- providerSwitchNetwork({ network, provider, }) {
243
- const _super = Object.create(null, {
244
- providerSwitchNetwork: { get: () => super.providerSwitchNetwork }
245
- });
246
- return __awaiter(this, void 0, void 0, function* () {
247
- const currentNetworkId = yield this.getNetwork();
248
- if (currentNetworkId && currentNetworkId === network.chainId) {
249
- return;
250
- }
251
- if (this.switchNetworkOnlyFromWallet) {
252
- throw new DynamicError('Network switching is only supported through the wallet');
253
- }
254
- if (!this.supportsNetworkSwitching()) {
255
- throw new DynamicError('Network switching not supported');
256
- }
257
- if (!provider) {
258
- throw new DynamicError('Provider not found');
259
- }
260
- return _super.providerSwitchNetwork.call(this, { network, provider });
261
- });
262
- }
263
- getConnectedAccounts() {
264
- return __awaiter(this, void 0, void 0, function* () {
265
- if (!this.session) {
266
- return [];
267
- }
268
- return [this.session.namespaces.eip155.accounts[0].split(':')[2]];
269
- });
270
- }
271
- }
272
-
273
- export { WalletConnectV2 as default, getInitializedProvider };
@@ -1,8 +0,0 @@
1
- import { EvmNetwork } from '../ethereum/evm-network';
2
- import WalletConnect from '.';
3
- declare class TrustWalletConnect extends WalletConnect {
4
- constructor({ evmNetworks }: {
5
- evmNetworks: EvmNetwork[];
6
- });
7
- }
8
- export default TrustWalletConnect;