@0xsquid/react-hooks 1.0.4 → 1.0.6

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 (317) hide show
  1. package/dist/assets/images/icons/wallets/index.d.ts +22 -0
  2. package/{src/assets/images/icons/wallets/index.ts → dist/assets/images/icons/wallets/index.js} +21 -21
  3. package/dist/assets/images/icons/wallets/index.js.map +1 -0
  4. package/dist/connectors/ExodusConnector.d.ts +4 -0
  5. package/{src/connectors/ExodusConnector.ts → dist/connectors/ExodusConnector.js} +3 -3
  6. package/dist/connectors/ExodusConnector.js.map +1 -0
  7. package/dist/connectors/LedgerLiveConnector.d.ts +40 -0
  8. package/dist/connectors/LedgerLiveConnector.js +177 -0
  9. package/dist/connectors/LedgerLiveConnector.js.map +1 -0
  10. package/dist/contracts/typechain/factories/ERC20__factory.js +324 -0
  11. package/dist/contracts/typechain/factories/ERC20__factory.js.map +1 -0
  12. package/dist/core/constants.d.ts +37 -0
  13. package/dist/core/constants.js +487 -0
  14. package/dist/core/constants.js.map +1 -0
  15. package/dist/core/externalLinks.d.ts +18 -0
  16. package/{src/core/externalLinks.ts → dist/core/externalLinks.js} +5 -9
  17. package/dist/core/externalLinks.js.map +1 -0
  18. package/dist/core/index.js +2 -0
  19. package/dist/core/index.js.map +1 -0
  20. package/dist/core/multicall3.d.ts +16 -0
  21. package/dist/core/multicall3.js +23 -0
  22. package/dist/core/multicall3.js.map +1 -0
  23. package/dist/core/numbers.d.ts +3 -0
  24. package/dist/core/numbers.js +28 -0
  25. package/dist/core/numbers.js.map +1 -0
  26. package/dist/core/providers/CosmosProvider.d.ts +34 -0
  27. package/dist/core/providers/CosmosProvider.js +12 -0
  28. package/dist/core/providers/CosmosProvider.js.map +1 -0
  29. package/dist/core/queries/queries-keys.d.ts +34 -0
  30. package/dist/core/queries/queries-keys.js +120 -0
  31. package/dist/core/queries/queries-keys.js.map +1 -0
  32. package/dist/core/queries/react-query-config.d.ts +3 -0
  33. package/dist/core/queries/react-query-config.js +11 -0
  34. package/dist/core/queries/react-query-config.js.map +1 -0
  35. package/dist/core/types/components.d.ts +14 -0
  36. package/dist/core/types/components.js +2 -0
  37. package/dist/core/types/components.js.map +1 -0
  38. package/dist/core/types/config.d.ts +47 -0
  39. package/dist/core/types/config.js +2 -0
  40. package/dist/core/types/config.js.map +1 -0
  41. package/dist/core/types/dex.d.ts +28 -0
  42. package/dist/core/types/dex.js +33 -0
  43. package/dist/core/types/dex.js.map +1 -0
  44. package/dist/core/types/error.d.ts +44 -0
  45. package/dist/core/types/error.js +12 -0
  46. package/dist/core/types/error.js.map +1 -0
  47. package/dist/core/types/event.d.ts +17 -0
  48. package/dist/core/types/event.js +2 -0
  49. package/dist/core/types/event.js.map +1 -0
  50. package/dist/core/types/route.d.ts +9 -0
  51. package/dist/core/types/route.js +4 -0
  52. package/dist/core/types/route.js.map +1 -0
  53. package/dist/core/types/swap.d.ts +8 -0
  54. package/dist/core/types/swap.js +2 -0
  55. package/dist/core/types/swap.js.map +1 -0
  56. package/dist/core/types/tokens.d.ts +29 -0
  57. package/dist/core/types/tokens.js +2 -0
  58. package/dist/core/types/tokens.js.map +1 -0
  59. package/dist/core/types/transaction.d.ts +68 -0
  60. package/dist/core/types/transaction.js +38 -0
  61. package/dist/core/types/transaction.js.map +1 -0
  62. package/dist/core/types/types.d.ts +30 -0
  63. package/dist/core/types/types.js +7 -0
  64. package/dist/core/types/types.js.map +1 -0
  65. package/dist/core/types/wallet.d.ts +55 -0
  66. package/dist/core/types/wallet.js +26 -0
  67. package/dist/core/types/wallet.js.map +1 -0
  68. package/dist/hooks/chains/useSquidChains.d.ts +12 -0
  69. package/dist/hooks/chains/useSquidChains.js +45 -0
  70. package/dist/hooks/chains/useSquidChains.js.map +1 -0
  71. package/dist/hooks/cosmos/useCosmos.d.ts +33 -0
  72. package/dist/hooks/cosmos/useCosmos.js +194 -0
  73. package/dist/hooks/cosmos/useCosmos.js.map +1 -0
  74. package/dist/hooks/cosmos/useCosmosForChain.d.ts +4 -0
  75. package/dist/hooks/cosmos/useCosmosForChain.js +22 -0
  76. package/dist/hooks/cosmos/useCosmosForChain.js.map +1 -0
  77. package/{src/hooks/index.ts → dist/hooks/index.d.ts} +1 -7
  78. package/dist/hooks/index.js +27 -0
  79. package/dist/hooks/index.js.map +1 -0
  80. package/dist/hooks/navigation/useKeyboardNavigation.d.ts +7 -0
  81. package/dist/hooks/navigation/useKeyboardNavigation.js +69 -0
  82. package/dist/hooks/navigation/useKeyboardNavigation.js.map +1 -0
  83. package/dist/hooks/store/useSquidStore.d.ts +105 -0
  84. package/dist/hooks/store/useSquidStore.js +35 -0
  85. package/dist/hooks/store/useSquidStore.js.map +1 -0
  86. package/dist/hooks/swap/useSwap.d.ts +25 -0
  87. package/dist/hooks/swap/useSwap.js +229 -0
  88. package/dist/hooks/swap/useSwap.js.map +1 -0
  89. package/dist/hooks/tokens/useAllTokensWithBalance.d.ts +11 -0
  90. package/dist/hooks/tokens/useAllTokensWithBalance.js +97 -0
  91. package/dist/hooks/tokens/useAllTokensWithBalance.js.map +1 -0
  92. package/dist/hooks/tokens/useBalance.d.ts +34 -0
  93. package/dist/hooks/tokens/useBalance.js +112 -0
  94. package/dist/hooks/tokens/useBalance.js.map +1 -0
  95. package/dist/hooks/tokens/useMultiChainBalance.d.ts +17 -0
  96. package/dist/hooks/tokens/useMultiChainBalance.js +36 -0
  97. package/dist/hooks/tokens/useMultiChainBalance.js.map +1 -0
  98. package/dist/hooks/tokens/usePrices.d.ts +6 -0
  99. package/dist/hooks/tokens/usePrices.js +42 -0
  100. package/dist/hooks/tokens/usePrices.js.map +1 -0
  101. package/dist/hooks/tokens/useSingleTokenPrice.d.ts +10 -0
  102. package/dist/hooks/tokens/useSingleTokenPrice.js +32 -0
  103. package/dist/hooks/tokens/useSingleTokenPrice.js.map +1 -0
  104. package/dist/hooks/tokens/useSquidTokens.d.ts +13 -0
  105. package/dist/hooks/tokens/useSquidTokens.js +35 -0
  106. package/dist/hooks/tokens/useSquidTokens.js.map +1 -0
  107. package/dist/hooks/tokens/useTokensWithBalance.d.ts +7 -0
  108. package/dist/hooks/tokens/useTokensWithBalance.js +111 -0
  109. package/dist/hooks/tokens/useTokensWithBalance.js.map +1 -0
  110. package/dist/hooks/transaction/useEstimate.d.ts +44 -0
  111. package/dist/hooks/transaction/useEstimate.js +274 -0
  112. package/dist/hooks/transaction/useEstimate.js.map +1 -0
  113. package/dist/hooks/transaction/useEstimatePriceImpact.d.ts +7 -0
  114. package/dist/hooks/transaction/useEstimatePriceImpact.js +26 -0
  115. package/dist/hooks/transaction/useEstimatePriceImpact.js.map +1 -0
  116. package/dist/hooks/transaction/useExecuteTransaction.d.ts +20 -0
  117. package/dist/hooks/transaction/useExecuteTransaction.js +310 -0
  118. package/dist/hooks/transaction/useExecuteTransaction.js.map +1 -0
  119. package/dist/hooks/transaction/useExpress.d.ts +5 -0
  120. package/dist/hooks/transaction/useExpress.js +31 -0
  121. package/dist/hooks/transaction/useExpress.js.map +1 -0
  122. package/dist/hooks/transaction/useGetRoute.d.ts +14 -0
  123. package/dist/hooks/transaction/useGetRoute.js +96 -0
  124. package/dist/hooks/transaction/useGetRoute.js.map +1 -0
  125. package/dist/hooks/transaction/useSingleTransaction.d.ts +8 -0
  126. package/dist/hooks/transaction/useSingleTransaction.js +99 -0
  127. package/dist/hooks/transaction/useSingleTransaction.js.map +1 -0
  128. package/dist/hooks/transaction/useTransaction.d.ts +25 -0
  129. package/dist/hooks/transaction/useTransaction.js +521 -0
  130. package/dist/hooks/transaction/useTransaction.js.map +1 -0
  131. package/dist/hooks/user/useUserParams.d.ts +6 -0
  132. package/dist/hooks/user/useUserParams.js +41 -0
  133. package/dist/hooks/user/useUserParams.js.map +1 -0
  134. package/dist/hooks/wallet/useAddToken.d.ts +4 -0
  135. package/dist/hooks/wallet/useAddToken.js +45 -0
  136. package/dist/hooks/wallet/useAddToken.js.map +1 -0
  137. package/dist/hooks/wallet/useAutoConnect.d.ts +6 -0
  138. package/dist/hooks/wallet/useAutoConnect.js +44 -0
  139. package/dist/hooks/wallet/useAutoConnect.js.map +1 -0
  140. package/dist/hooks/wallet/useGnosisContext.d.ts +7 -0
  141. package/dist/hooks/wallet/useGnosisContext.js +70 -0
  142. package/dist/hooks/wallet/useGnosisContext.js.map +1 -0
  143. package/dist/hooks/wallet/useIntegratorContext.d.ts +5 -0
  144. package/dist/hooks/wallet/useIntegratorContext.js +39 -0
  145. package/dist/hooks/wallet/useIntegratorContext.js.map +1 -0
  146. package/dist/hooks/wallet/useMultiChainWallet.d.ts +8 -0
  147. package/dist/hooks/wallet/useMultiChainWallet.js +113 -0
  148. package/dist/hooks/wallet/useMultiChainWallet.js.map +1 -0
  149. package/dist/hooks/wallet/useWallet.d.ts +6 -0
  150. package/dist/hooks/wallet/useWallet.js +65 -0
  151. package/dist/hooks/wallet/useWallet.js.map +1 -0
  152. package/dist/hooks/webapp-router/useSquidRouter.d.ts +11 -0
  153. package/dist/hooks/webapp-router/useSquidRouter.js +33 -0
  154. package/dist/hooks/webapp-router/useSquidRouter.js.map +1 -0
  155. package/{src/index.ts → dist/index.d.ts} +0 -1
  156. package/dist/index.js.map +1 -0
  157. package/dist/provider/index.d.ts +10 -0
  158. package/dist/provider/index.js +71 -0
  159. package/dist/provider/index.js.map +1 -0
  160. package/dist/services/external/analyticsService.d.ts +18 -0
  161. package/dist/services/external/analyticsService.js +30 -0
  162. package/dist/services/external/analyticsService.js.map +1 -0
  163. package/dist/services/external/coingeckoService.d.ts +8 -0
  164. package/dist/services/external/coingeckoService.js +20 -0
  165. package/dist/services/external/coingeckoService.js.map +1 -0
  166. package/dist/services/external/rpcService.d.ts +4 -0
  167. package/dist/services/external/rpcService.js +145 -0
  168. package/dist/services/external/rpcService.js.map +1 -0
  169. package/dist/services/external/secretService.d.ts +28 -0
  170. package/dist/services/external/secretService.js +129 -0
  171. package/dist/services/external/secretService.js.map +1 -0
  172. package/dist/services/index.js +2 -0
  173. package/dist/services/index.js.map +1 -0
  174. package/dist/services/internal/apiService.d.ts +4 -0
  175. package/dist/services/internal/apiService.js +7 -0
  176. package/dist/services/internal/apiService.js.map +1 -0
  177. package/dist/services/internal/assetsService.d.ts +28 -0
  178. package/dist/services/internal/assetsService.js +46 -0
  179. package/dist/services/internal/assetsService.js.map +1 -0
  180. package/dist/services/internal/configService.d.ts +40 -0
  181. package/dist/services/internal/configService.js +119 -0
  182. package/dist/services/internal/configService.js.map +1 -0
  183. package/dist/services/internal/errorService.d.ts +30 -0
  184. package/{src/services/internal/errorService.ts → dist/services/internal/errorService.js} +35 -54
  185. package/dist/services/internal/errorService.js.map +1 -0
  186. package/dist/services/internal/eventService.d.ts +52 -0
  187. package/dist/services/internal/eventService.js +66 -0
  188. package/dist/services/internal/eventService.js.map +1 -0
  189. package/dist/services/internal/priceService.d.ts +1 -0
  190. package/dist/services/internal/priceService.js +7 -0
  191. package/dist/services/internal/priceService.js.map +1 -0
  192. package/dist/services/internal/transactionService.d.ts +43 -0
  193. package/dist/services/internal/transactionService.js +172 -0
  194. package/dist/services/internal/transactionService.js.map +1 -0
  195. package/dist/services/internal/transactionStatusService.d.ts +28 -0
  196. package/dist/services/internal/transactionStatusService.js +225 -0
  197. package/dist/services/internal/transactionStatusService.js.map +1 -0
  198. package/dist/services/internal/walletService.d.ts +28 -0
  199. package/dist/services/internal/walletService.js +123 -0
  200. package/dist/services/internal/walletService.js.map +1 -0
  201. package/dist/tests/assetsService.test.d.ts +1 -0
  202. package/dist/tests/assetsService.test.js +130 -0
  203. package/dist/tests/assetsService.test.js.map +1 -0
  204. package/dist/tests/configService.test.d.ts +1 -0
  205. package/dist/tests/configService.test.js +295 -0
  206. package/dist/tests/configService.test.js.map +1 -0
  207. package/dist/tests/fetchSquidData.d.ts +6 -0
  208. package/dist/tests/fetchSquidData.js +27 -0
  209. package/dist/tests/fetchSquidData.js.map +1 -0
  210. package/{src/tests/jest-svg-transform.ts → dist/tests/jest-svg-transform.js} +11 -9
  211. package/dist/tests/jest-svg-transform.js.map +1 -0
  212. package/dist/tests/sample.json +0 -0
  213. package/dist/tests/walletService.test.d.ts +1 -0
  214. package/dist/tests/walletService.test.js +74 -0
  215. package/dist/tests/walletService.test.js.map +1 -0
  216. package/package.json +6 -1
  217. package/.babelrc +0 -7
  218. package/.eslintignore +0 -1
  219. package/.eslintrc.json +0 -44
  220. package/CHANGELOG.md +0 -9
  221. package/jest.config.ts +0 -28
  222. package/scripts/copyAssets.js +0 -27
  223. package/scripts/removeBuildTestFolder.js +0 -28
  224. package/scripts/replacePaths.js +0 -37
  225. package/src/connectors/LedgerLiveConnector.ts +0 -226
  226. package/src/contracts/typechain/ERC20.d.ts +0 -441
  227. package/src/contracts/typechain/factories/ERC20__factory.ts +0 -340
  228. package/src/core/constants.ts +0 -549
  229. package/src/core/multicall3.ts +0 -22
  230. package/src/core/numbers.ts +0 -44
  231. package/src/core/providers/CosmosProvider.tsx +0 -55
  232. package/src/core/queries/queries-keys.ts +0 -156
  233. package/src/core/queries/react-query-config.ts +0 -13
  234. package/src/core/types/components.ts +0 -16
  235. package/src/core/types/config.ts +0 -52
  236. package/src/core/types/dex.ts +0 -31
  237. package/src/core/types/error.ts +0 -52
  238. package/src/core/types/event.ts +0 -16
  239. package/src/core/types/route.ts +0 -21
  240. package/src/core/types/swap.ts +0 -8
  241. package/src/core/types/tokens.ts +0 -30
  242. package/src/core/types/transaction.ts +0 -84
  243. package/src/core/types/types.ts +0 -37
  244. package/src/core/types/wallet.ts +0 -83
  245. package/src/hooks/chains/useSquidChains.ts +0 -66
  246. package/src/hooks/cosmos/useCosmos.ts +0 -279
  247. package/src/hooks/cosmos/useCosmosForChain.ts +0 -33
  248. package/src/hooks/navigation/useKeyboardNavigation.ts +0 -88
  249. package/src/hooks/store/useSquidStore.ts +0 -80
  250. package/src/hooks/swap/useSwap.ts +0 -359
  251. package/src/hooks/tokens/useAllTokensWithBalance.ts +0 -157
  252. package/src/hooks/tokens/useBalance.ts +0 -180
  253. package/src/hooks/tokens/useMultiChainBalance.ts +0 -59
  254. package/src/hooks/tokens/usePrices.ts +0 -52
  255. package/src/hooks/tokens/useSingleTokenPrice.ts +0 -45
  256. package/src/hooks/tokens/useSquidTokens.ts +0 -48
  257. package/src/hooks/tokens/useTokensWithBalance.ts +0 -169
  258. package/src/hooks/transaction/useEstimate.ts +0 -397
  259. package/src/hooks/transaction/useEstimatePriceImpact.ts +0 -39
  260. package/src/hooks/transaction/useExecuteTransaction.ts +0 -440
  261. package/src/hooks/transaction/useExpress.ts +0 -46
  262. package/src/hooks/transaction/useGetRoute.ts +0 -145
  263. package/src/hooks/transaction/useSingleTransaction.ts +0 -155
  264. package/src/hooks/transaction/useTransaction.ts +0 -734
  265. package/src/hooks/user/useUserParams.ts +0 -63
  266. package/src/hooks/wallet/useAddToken.ts +0 -53
  267. package/src/hooks/wallet/useAutoConnect.ts +0 -56
  268. package/src/hooks/wallet/useGnosisContext.ts +0 -84
  269. package/src/hooks/wallet/useIntegratorContext.ts +0 -44
  270. package/src/hooks/wallet/useMultiChainWallet.ts +0 -146
  271. package/src/hooks/wallet/useWallet.ts +0 -86
  272. package/src/hooks/webapp-router/useSquidRouter.ts +0 -42
  273. package/src/provider/index.tsx +0 -105
  274. package/src/react-app-env.d.ts +0 -2
  275. package/src/services/external/analyticsService.ts +0 -46
  276. package/src/services/external/coingeckoService.ts +0 -35
  277. package/src/services/external/rpcService.ts +0 -196
  278. package/src/services/external/secretService.ts +0 -178
  279. package/src/services/internal/apiService.ts +0 -6
  280. package/src/services/internal/assetsService.ts +0 -84
  281. package/src/services/internal/configService.ts +0 -261
  282. package/src/services/internal/eventService.ts +0 -93
  283. package/src/services/internal/priceService.ts +0 -10
  284. package/src/services/internal/transactionService.ts +0 -255
  285. package/src/services/internal/transactionStatusService.ts +0 -293
  286. package/src/services/internal/walletService.ts +0 -158
  287. package/src/tests/assetsService.test.ts +0 -176
  288. package/src/tests/configService.test.ts +0 -486
  289. package/src/tests/fetchSquidData.ts +0 -43
  290. package/src/tests/walletService.test.ts +0 -178
  291. package/tsconfig.cjs.json +0 -8
  292. package/tsconfig.json +0 -31
  293. /package/{src → dist}/assets/images/icons/wallets/binance.svg +0 -0
  294. /package/{src → dist}/assets/images/icons/wallets/bitget.svg +0 -0
  295. /package/{src → dist}/assets/images/icons/wallets/bitkeep.svg +0 -0
  296. /package/{src → dist}/assets/images/icons/wallets/blockchaindotcom.svg +0 -0
  297. /package/{src → dist}/assets/images/icons/wallets/brave.svg +0 -0
  298. /package/{src → dist}/assets/images/icons/wallets/c98.svg +0 -0
  299. /package/{src → dist}/assets/images/icons/wallets/coinbase.svg +0 -0
  300. /package/{src → dist}/assets/images/icons/wallets/cosmostation.svg +0 -0
  301. /package/{src → dist}/assets/images/icons/wallets/defiConnect.svg +0 -0
  302. /package/{src → dist}/assets/images/icons/wallets/exodus.svg +0 -0
  303. /package/{src → dist}/assets/images/icons/wallets/fetchai.svg +0 -0
  304. /package/{src → dist}/assets/images/icons/wallets/keplr.svg +0 -0
  305. /package/{src → dist}/assets/images/icons/wallets/leap.svg +0 -0
  306. /package/{src → dist}/assets/images/icons/wallets/metamask.svg +0 -0
  307. /package/{src → dist}/assets/images/icons/wallets/okx.svg +0 -0
  308. /package/{src → dist}/assets/images/icons/wallets/rabby.svg +0 -0
  309. /package/{src → dist}/assets/images/icons/wallets/trustwallet.svg +0 -0
  310. /package/{src → dist}/assets/images/icons/wallets/walletConnect.svg +0 -0
  311. /package/{src → dist}/assets/images/icons/wallets/wallet_icon.svg +0 -0
  312. /package/{src → dist}/assets/images/icons/wallets/xdefi.svg +0 -0
  313. /package/{src → dist}/assets/images/icons/wallets/zerion.svg +0 -0
  314. /package/{src → dist}/contracts/typechain/factories/ERC20__factory.d.ts +0 -0
  315. /package/{src/core/index.ts → dist/core/index.d.ts} +0 -0
  316. /package/{src/services/index.ts → dist/services/index.d.ts} +0 -0
  317. /package/{src/tests/sample.json → dist/tests/jest-svg-transform.d.ts} +0 -0
@@ -0,0 +1,20 @@
1
+ import { backendVersion } from "./../../core/constants";
2
+ import { getQueryHeaders } from "./../../services/internal/apiService";
3
+ import axios from "axios";
4
+ export const fetchPriceForToken = async ({ apiUrl, chainId, tokenAddress, integratorId, }) => {
5
+ if (chainId && tokenAddress) {
6
+ const params = {
7
+ chainId,
8
+ tokenAddress,
9
+ };
10
+ const url = `${apiUrl}/${backendVersion}/token-price`;
11
+ const response = await axios.get(url, {
12
+ params,
13
+ headers: getQueryHeaders(integratorId),
14
+ });
15
+ const result = (await response.data);
16
+ return result.token.usdPrice ?? 0;
17
+ }
18
+ return 0;
19
+ };
20
+ //# sourceMappingURL=coingeckoService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coingeckoService.js","sourceRoot":"","sources":["../../../src/services/external/coingeckoService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAEjE,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,EACvC,MAAM,EACN,OAAO,EACP,YAAY,EACZ,YAAY,GACQ,EAAmB,EAAE;IACzC,IAAI,OAAO,IAAI,YAAY,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG;YACb,OAAO;YACP,YAAY;SACb,CAAC;QACF,MAAM,GAAG,GAAG,GAAG,MAAM,IAAI,cAAc,cAAc,CAAC;QAEtD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE;YACpC,MAAM;YACN,OAAO,EAAE,eAAe,CAAC,YAAY,CAAC;SACvC,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAqB,CAAC;QACzD,OAAO,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { TokenWithBalance } from "@/core/types/tokens";
2
+ import type { ChainData, Token } from "@0xsquid/sdk/dist/types";
3
+ export declare const getAllEvmTokensBalance: (evmTokens: Token[], userAddress: string) => Promise<TokenWithBalance[]>;
4
+ export declare const getWorkingCosmosRpcUrl: (chainData: ChainData) => Promise<string>;
@@ -0,0 +1,145 @@
1
+ import { ERC20__factory } from "./../../contracts/typechain/factories/ERC20__factory";
2
+ import { nativeEvmTokenAddress } from "./../../core/constants";
3
+ import { multicallAbi, multicallAddress } from "./../../core/multicall3";
4
+ import { StargateClient } from "@cosmjs/stargate";
5
+ import { fetchBalance } from "@wagmi/core";
6
+ import { constants, utils } from "ethers";
7
+ import { readContracts } from "wagmi";
8
+ /**
9
+ * Use readContracts to fetch all tokens balance in one call
10
+ * native tokens & erc20 tokens will have different abi & contract & function name
11
+ * Because it's not possible to fetch native token balance with balanceOf
12
+ * @param tokens
13
+ * @param userAddress
14
+ * @returns
15
+ */
16
+ const getTokensSupportingMultiCall = async (tokens, userAddress) => {
17
+ const multicallBalances = (await readContracts({
18
+ contracts: tokens.map((t) => {
19
+ const isTokenNative = t.address.toLowerCase() === nativeEvmTokenAddress;
20
+ return {
21
+ chainId: +t.chainId,
22
+ abi: isTokenNative ? multicallAbi : ERC20__factory.abi,
23
+ address: isTokenNative
24
+ ? multicallAddress
25
+ : t.address,
26
+ functionName: isTokenNative ? "getEthBalance" : "balanceOf",
27
+ args: [userAddress],
28
+ };
29
+ }),
30
+ allowFailure: true,
31
+ }));
32
+ return tokens.map((t, i) => ({
33
+ ...t,
34
+ balance: utils.formatUnits(multicallBalances[i] ?? constants.Zero, t.decimals),
35
+ }));
36
+ };
37
+ /**
38
+ * Some chains don't support multicall, so we need to fetch them with Promise.all & fetchBalance
39
+ * @param tokens
40
+ * @param userAddress
41
+ * @returns
42
+ */
43
+ const getTokensWithoutMultiCall = async (tokens, userAddress) => {
44
+ const balances = (await Promise.all(tokens.map(async (t) => {
45
+ let balance;
46
+ try {
47
+ if (t.address.toLowerCase() === nativeEvmTokenAddress) {
48
+ balance = await fetchBalance({
49
+ address: userAddress,
50
+ chainId: +t.chainId,
51
+ });
52
+ }
53
+ else {
54
+ balance = await fetchBalance({
55
+ address: userAddress,
56
+ chainId: +t.chainId,
57
+ token: t.address,
58
+ });
59
+ }
60
+ return balance;
61
+ }
62
+ catch (error) {
63
+ return {
64
+ decimals: t.decimals,
65
+ formatted: "0",
66
+ symbol: t.symbol,
67
+ value: constants.Zero,
68
+ };
69
+ }
70
+ })));
71
+ return tokens.map((t, i) => ({
72
+ ...t,
73
+ balance: utils.formatUnits(balances[i].value, t.decimals),
74
+ }));
75
+ };
76
+ export const getAllEvmTokensBalance = async (evmTokens, userAddress) => {
77
+ // Some tokens don't support multicall, so we need to fetch them with Promise.all
78
+ // TODO: Once we support multicall on all chains, we can remove this split
79
+ const chainWithoutMulticall = [314, 3141]; // Filecoin, & Filecoin testnet
80
+ const splittedTokensByMultiCallSupport = evmTokens.reduce((acc, token) => {
81
+ if (chainWithoutMulticall.includes(+token.chainId)) {
82
+ acc[0].push(token);
83
+ }
84
+ else {
85
+ acc[1].push(token);
86
+ }
87
+ return acc;
88
+ }, [[], []]);
89
+ const tokensNotSupportingMulticall = splittedTokensByMultiCallSupport[0];
90
+ const tokensSupportingMulticall = splittedTokensByMultiCallSupport[1];
91
+ const tokensMulticall = await getTokensSupportingMultiCall(tokensSupportingMulticall, userAddress);
92
+ const tokensNotMultiCall = await getTokensWithoutMultiCall(tokensNotSupportingMulticall, userAddress);
93
+ return [...tokensMulticall, ...tokensNotMultiCall];
94
+ };
95
+ /**
96
+ * We'll get the current block of a given RPC to see if we can query it
97
+ * Without getting CORS error or any other error
98
+ * @param rpc
99
+ * @returns
100
+ */
101
+ const testCosmosRpc = async (rpc) => {
102
+ let rpcIsValid = false;
103
+ try {
104
+ const client = await StargateClient.connect(rpc);
105
+ const block = await client.getBlock();
106
+ rpcIsValid = !!block.id;
107
+ }
108
+ catch (error) {
109
+ rpcIsValid = false;
110
+ }
111
+ return rpcIsValid;
112
+ };
113
+ export const getWorkingCosmosRpcUrl = async (chainData) => {
114
+ const rpcList = (chainData.rpcList ?? chainData.rpc)
115
+ ? [chainData.rpc]
116
+ : [];
117
+ // if rpcList is empty, use the default rpc
118
+ if (rpcList.length === 0) {
119
+ try {
120
+ const isValid = await testCosmosRpc(chainData.rpc);
121
+ if (isValid) {
122
+ return chainData.rpc;
123
+ }
124
+ }
125
+ catch (error) {
126
+ console.log(`Error fetching rpc url: ${chainData.rpc} - Error: ${error?.toString()}`);
127
+ }
128
+ }
129
+ // if rpcList is not empty, try to fetch each rpc until we find a valid one
130
+ for (const rpc of rpcList) {
131
+ try {
132
+ // eslint-disable-next-line no-await-in-loop
133
+ const isValid = await testCosmosRpc(rpc);
134
+ if (isValid) {
135
+ return rpc;
136
+ }
137
+ }
138
+ catch (error) {
139
+ console.log(`Error fetching rpc url: ${chainData.rpc} - Error: ${error?.toString()}`);
140
+ }
141
+ }
142
+ // In the case that all rpcs are invalid, return the default rpc anyway
143
+ return chainData.rpc;
144
+ };
145
+ //# sourceMappingURL=rpcService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rpcService.js","sourceRoot":"","sources":["../../../src/services/external/rpcService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { TokenWithBalance } from "@/core/types/tokens";
2
+ import type { ChainData, Token } from "@0xsquid/squid-types";
3
+ import type { Keplr } from "@keplr-wallet/types";
4
+ import { SecretNetworkClient } from "secretjs";
5
+ /**
6
+ * Fetch secret network token balance
7
+ * Using the permit signature, see permit function for more details
8
+ * @param secretJS
9
+ * @param contract
10
+ * @param chainId
11
+ * @param walletAddress
12
+ * @param permit
13
+ * @returns
14
+ */
15
+ export declare const getTokenBalance: (secretJS: SecretNetworkClient, contract: {
16
+ address: string;
17
+ codeHash: string;
18
+ }, permit: any) => Promise<unknown>;
19
+ export declare const getPermit: (chainId: string, contracts: any[], address: string) => Promise<any>;
20
+ /**
21
+ * Fetches the secret balance of the user
22
+ * This has a different logic than the other balances because Secret network hides the balance of the user by design
23
+ * So we need to fetch the balance in a different way
24
+ */
25
+ export declare const SECRET_CHAIN_ID = "secret-4";
26
+ export declare const fetchAllSecretBalances: (chainData: ChainData, userAddress: string, secretTokens: (Token & {
27
+ codeHash?: string;
28
+ })[], keplr?: Keplr) => Promise<TokenWithBalance[]>;
@@ -0,0 +1,129 @@
1
+ import { StargateClient } from "@cosmjs/stargate";
2
+ import { formatUnits } from "ethers/lib/utils.js";
3
+ import { SecretNetworkClient } from "secretjs";
4
+ /**
5
+ * Fetch secret network token balance
6
+ * Using the permit signature, see permit function for more details
7
+ * @param secretJS
8
+ * @param contract
9
+ * @param chainId
10
+ * @param walletAddress
11
+ * @param permit
12
+ * @returns
13
+ */
14
+ export const getTokenBalance = async (secretJS, contract, permit) => {
15
+ if (permit) {
16
+ const msg = {
17
+ balance: {},
18
+ };
19
+ const result = await secretJS.query.compute.queryContract({
20
+ contract_address: contract.address,
21
+ code_hash: contract.codeHash,
22
+ query: {
23
+ with_permit: {
24
+ query: msg,
25
+ permit,
26
+ },
27
+ },
28
+ });
29
+ return result;
30
+ }
31
+ return -1;
32
+ };
33
+ export const getPermit = async (chainId, contracts, address) => {
34
+ const contractsString = contracts.join("_");
35
+ const permKey = `perm_${chainId}_${contractsString}_${address}`;
36
+ let permit;
37
+ const permitStored = window.localStorage.getItem(permKey);
38
+ if (permitStored)
39
+ permit = JSON.parse(permitStored);
40
+ // Not able to fetch permit signature from local storage,
41
+ // Ask user to sign message
42
+ if (!permit) {
43
+ try {
44
+ const result = await window.keplr.signAmino(chainId, address, {
45
+ chain_id: chainId,
46
+ account_number: "0",
47
+ sequence: "0",
48
+ fee: {
49
+ amount: [{ denom: "uscrt", amount: "0" }],
50
+ gas: "1",
51
+ },
52
+ msgs: [
53
+ {
54
+ type: "query_permit",
55
+ value: {
56
+ permit_name: "secret-bridge-balance",
57
+ allowed_tokens: contracts,
58
+ permissions: ["balance"],
59
+ },
60
+ },
61
+ ],
62
+ memo: "",
63
+ }, {
64
+ preferNoSetFee: true,
65
+ preferNoSetMemo: true,
66
+ });
67
+ permit = {
68
+ params: {
69
+ permit_name: "secret-bridge-balance",
70
+ allowed_tokens: contracts,
71
+ chain_id: chainId,
72
+ permissions: ["balance"],
73
+ },
74
+ signature: result.signature,
75
+ };
76
+ window.localStorage.setItem(permKey, JSON.stringify(permit));
77
+ }
78
+ catch (err) {
79
+ console.log("--- PERMIT ERROR ---");
80
+ console.log(err);
81
+ }
82
+ }
83
+ return permit;
84
+ };
85
+ /**
86
+ * Fetches the secret balance of the user
87
+ * This has a different logic than the other balances because Secret network hides the balance of the user by design
88
+ * So we need to fetch the balance in a different way
89
+ */
90
+ export const SECRET_CHAIN_ID = "secret-4";
91
+ export const fetchAllSecretBalances = async (chainData, userAddress, secretTokens, keplr) => {
92
+ if (!keplr)
93
+ return [];
94
+ // Enables app to utilize keplr's secret utilities
95
+ await keplr.enable(SECRET_CHAIN_ID);
96
+ // Create a client that handles the query encryption
97
+ const client = new SecretNetworkClient({
98
+ url: chainData.rest,
99
+ chainId: SECRET_CHAIN_ID,
100
+ wallet: keplr.getOfflineSignerOnlyAmino(SECRET_CHAIN_ID),
101
+ encryptionUtils: keplr.getEnigmaUtils(SECRET_CHAIN_ID),
102
+ walletAddress: userAddress,
103
+ });
104
+ // Get secret tokens
105
+ const permit = await getPermit(SECRET_CHAIN_ID, secretTokens.map((st) => st.address), userAddress);
106
+ // Fetching all balances in parallel
107
+ const privateTokens = await Promise.all(secretTokens
108
+ .filter((t) => !!t.codeHash)
109
+ .map(async (token) => {
110
+ const result = (await getTokenBalance(client, {
111
+ address: token.address,
112
+ codeHash: token.codeHash ?? "",
113
+ }, permit));
114
+ return {
115
+ ...token,
116
+ balance: formatUnits(result.balance.amount, token?.decimals),
117
+ };
118
+ }));
119
+ // Use Stargate getBalance for SCRT
120
+ const stargateClient = await StargateClient.connect(chainData.rpc);
121
+ const nativeSecretToken = secretTokens.find((t) => t.address === "uscrt");
122
+ const publicTokenBalance = await stargateClient.getBalance(userAddress, "uscrt");
123
+ const publicTokenWithBalance = {
124
+ ...nativeSecretToken,
125
+ balance: formatUnits(publicTokenBalance.amount, nativeSecretToken?.decimals),
126
+ };
127
+ return [...privateTokens, publicTokenWithBalance];
128
+ };
129
+ //# sourceMappingURL=secretService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"secretService.js","sourceRoot":"","sources":["../../../src/services/external/secretService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from "./internal/walletService";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const getQueryHeaders: (integratorId?: string, requestId?: string) => {
2
+ "X-Request-Id"?: string | undefined;
3
+ "X-Integrator-Id"?: string | undefined;
4
+ };
@@ -0,0 +1,7 @@
1
+ export const getQueryHeaders = (integratorId, requestId) => {
2
+ return {
3
+ ...(integratorId ? { "X-Integrator-Id": integratorId } : {}),
4
+ ...(requestId ? { "X-Request-Id": requestId } : {}),
5
+ };
6
+ };
7
+ //# sourceMappingURL=apiService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apiService.js","sourceRoot":"","sources":["../../../src/services/internal/apiService.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,YAAqB,EAAE,SAAkB,EAAE,EAAE;IAC3E,OAAO;QACL,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,iBAAiB,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACpD,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { AppConfig } from "@/core/types/config";
2
+ import type { ChainData, Token } from "@0xsquid/squid-types";
3
+ export declare const shareSubgraphId: (token1: Token, token2: Token) => boolean;
4
+ /**
5
+ * Check if `tokenToCheck` shares any subgraph id with the tokens being compared
6
+ * If any of the tokens being compared shares a subgraph id with `tokenToCheck`, it will be sorted first
7
+ * @param a first token being compared
8
+ * @param b second token being compared
9
+ * @param tokenToCheck the token to check subgraph ids against
10
+ */
11
+ export declare function sortTokensBySharedSubgraphIds({ a, b, tokenToCheck, }: {
12
+ a: Token;
13
+ b: Token;
14
+ tokenToCheck: Token;
15
+ }): -1 | 0 | 1;
16
+ /**
17
+ * Filter chains based on provided config
18
+ *
19
+ * Filter order:
20
+ * 1. Chains that are not disabled or coming soon
21
+ * 2. Disabled chains
22
+ * 3. Coming soon chains
23
+ */
24
+ export declare function filterChains({ chains, config, direction, }: {
25
+ chains: ChainData[];
26
+ config: Pick<AppConfig, "disabledChains" | "comingSoonChainIds">;
27
+ direction: "from" | "to";
28
+ }): ChainData[];
@@ -0,0 +1,46 @@
1
+ export const shareSubgraphId = (token1, token2) => {
2
+ return Boolean(token1?.subGraphIds?.some((sgi) => !!token2?.subGraphIds?.includes(sgi)) ||
3
+ token2?.subGraphIds?.some((sgi) => !!token1?.subGraphIds?.includes(sgi)));
4
+ };
5
+ /**
6
+ * Check if `tokenToCheck` shares any subgraph id with the tokens being compared
7
+ * If any of the tokens being compared shares a subgraph id with `tokenToCheck`, it will be sorted first
8
+ * @param a first token being compared
9
+ * @param b second token being compared
10
+ * @param tokenToCheck the token to check subgraph ids against
11
+ */
12
+ export function sortTokensBySharedSubgraphIds({ a, b, tokenToCheck, }) {
13
+ const tokenToCheckSharesIdsWithA = shareSubgraphId(a, tokenToCheck);
14
+ const tokenToCheckSharesIdsWithB = shareSubgraphId(b, tokenToCheck);
15
+ if (tokenToCheckSharesIdsWithA && !tokenToCheckSharesIdsWithB) {
16
+ return -1;
17
+ }
18
+ if (!tokenToCheckSharesIdsWithA && tokenToCheckSharesIdsWithB) {
19
+ return 1;
20
+ }
21
+ return 0;
22
+ }
23
+ /**
24
+ * Filter chains based on provided config
25
+ *
26
+ * Filter order:
27
+ * 1. Chains that are not disabled or coming soon
28
+ * 2. Disabled chains
29
+ * 3. Coming soon chains
30
+ */
31
+ export function filterChains({ chains, config, direction, }) {
32
+ // filter coming soon chains
33
+ const comingSoonChains = chains.filter((c) => config.comingSoonChainIds?.includes(c.chainId));
34
+ // map direction to be a key of config.disabledChains object
35
+ const parsedDirection = direction === "from" ? "source" : "destination";
36
+ // get disabled chains for the direction provided
37
+ const disabledChainsOnDirection = config.disabledChains?.[parsedDirection];
38
+ // filter disabled chains
39
+ const disabledChains = chains.filter((c) => disabledChainsOnDirection?.includes(c.chainId) &&
40
+ !config.comingSoonChainIds?.includes(c.chainId));
41
+ // filter chains that are not disabled or coming soon
42
+ const filteredChains = chains.filter((c) => !config.comingSoonChainIds?.includes(c.chainId) &&
43
+ !disabledChainsOnDirection?.includes(c.chainId));
44
+ return [...filteredChains, ...disabledChains, ...comingSoonChains];
45
+ }
46
+ //# sourceMappingURL=assetsService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assetsService.js","sourceRoot":"","sources":["../../../src/services/internal/assetsService.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAa,EAAE,MAAa,EAAE,EAAE;IAC9D,OAAO,OAAO,CACZ,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC;QACtE,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAC3E,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,UAAU,6BAA6B,CAAC,EAC5C,CAAC,EACD,CAAC,EACD,YAAY,GAKb;IACC,MAAM,0BAA0B,GAAG,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAEpE,MAAM,0BAA0B,GAAG,eAAe,CAAC,CAAC,EAAE,YAAY,CAAC,CAAC;IAEpE,IAAI,0BAA0B,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAC9D,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,IAAI,CAAC,0BAA0B,IAAI,0BAA0B,EAAE,CAAC;QAC9D,OAAO,CAAC,CAAC;IACX,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,EAC3B,MAAM,EACN,MAAM,EACN,SAAS,GAKV;IACC,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC3C,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAC/C,CAAC;IAEF,4DAA4D;IAC5D,MAAM,eAAe,GAAG,SAAS,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;IACxE,iDAAiD;IACjD,MAAM,yBAAyB,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,CAAC;IAE3E,yBAAyB;IACzB,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CACJ,yBAAyB,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QAC9C,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAClD,CAAC;IAEF,qDAAqD;IACrD,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CACJ,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/C,CAAC,yBAAyB,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAClD,CAAC;IAEF,OAAO,CAAC,GAAG,cAAc,EAAE,GAAG,cAAc,EAAE,GAAG,gBAAgB,CAAC,CAAC;AACrE,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { AppConfig } from "@/core/types/config";
2
+ import type { ChainData, Token } from "@0xsquid/sdk/dist/types";
3
+ export declare const getConfigWithDefaults: (config: AppConfig | undefined) => AppConfig;
4
+ export declare const randomIntFromInterval: (min: number, max: number) => number;
5
+ export declare const getTokensForChain: (tokens: Token[], chainId: number | string | undefined) => Token[];
6
+ export declare const getFirstAvailableChainId: (config: AppConfig, direction: "from" | "to", chains?: ChainData[] | undefined) => string | number | undefined;
7
+ export declare const getDefaultTokenAddressForChain: (tokens: Token[], config: AppConfig, chainId: number | string | undefined, unavailableTokenAddress?: string) => string | undefined;
8
+ /**
9
+ * Retrieves the initial token address for a specific chain and direction.
10
+ * If no initial assets are set in config, returns the default token address for the chain.
11
+ *
12
+ * @param tokens - The list of tokens.
13
+ * @param config - The application configuration.
14
+ * @param chainId - The ID of the chain.
15
+ * @param direction - The direction ("from" or "to").
16
+ * @returns The initial token address if found; otherwise, the default token address.
17
+ */
18
+ export declare const getInitialOrDefaultTokenAddressForChain: ({ chainId, config, direction, tokens, unavailableTokenAddress, }: {
19
+ tokens: Token[];
20
+ config: AppConfig;
21
+ chainId: number | string | undefined;
22
+ direction: "from" | "to";
23
+ unavailableTokenAddress?: string;
24
+ }) => string | undefined;
25
+ /**
26
+ * Filter tokens for destination chain
27
+ *
28
+ * Case 1: fromToken.bridgeOnly = true
29
+ * Destination token list shows only tokens with the same commonKey as fromToken
30
+ *
31
+ * Case 2: fromToken.bridgeOnly = false
32
+ * Destination token list shows all tokens with bridgeOnly = false
33
+ * OR Destination token list shows all tokens with the same commonKey as fromToken
34
+ * @param tokens
35
+ * @param selectedDestinationChain
36
+ * @param selectedSourceChainID
37
+ * @param selectedSourceToken
38
+ * @returns
39
+ */
40
+ export declare const filterTokensForDestination: <T extends Token>(tokens: T[], selectedDestinationChain: ChainData | undefined, selectedSourceToken: Token | undefined) => T[];
@@ -0,0 +1,119 @@
1
+ import { defaultValues } from "./../../core/constants";
2
+ import { ChainType } from "@0xsquid/sdk/dist/types";
3
+ import get from "lodash/get";
4
+ import { shareSubgraphId } from "./assetsService";
5
+ export const getConfigWithDefaults = (config) => {
6
+ return {
7
+ integratorId: get(config, "integratorId", defaultValues.config.integratorId),
8
+ companyName: get(config, "companyName", defaultValues.config.companyName),
9
+ slippage: get(config, "slippage", defaultValues.config.slippage),
10
+ advanced: get(config, "advanced", defaultValues.config.advanced),
11
+ internalSameChainSwapAllowed: get(config, "internalSameChainSwapAllowed", defaultValues.config.internalSameChainSwapAllowed),
12
+ hideAnimations: get(config, "hideAnimations", defaultValues.config.hideAnimations),
13
+ infiniteApproval: get(config, "infiniteApproval", defaultValues.config.infiniteApproval),
14
+ enableExpress: get(config, "enableExpress", defaultValues.config.enableExpress),
15
+ collectFees: get(config, "collectFees", defaultValues.config.collectFees),
16
+ enableGetGasOnDestination: get(config, "enableGetGasOnDestination", defaultValues.config.enableGetGasOnDestination),
17
+ apiUrl: get(config, "apiUrl", defaultValues.config.apiUrl),
18
+ showOnRampLink: get(config, "showOnRampLink", defaultValues.config.showOnRampLink),
19
+ priceImpactWarnings: get(config, "priceImpactWarnings", defaultValues.config.priceImpactWarnings),
20
+ initialAssets: get(config, "initialAssets", defaultValues.config.initialAssets),
21
+ defaultTokensPerChain: get(config, "defaultTokensPerChain", defaultValues.config.defaultTokensPerChain),
22
+ preferDex: get(config, "preferDex", defaultValues.config.preferDex),
23
+ favTokens: get(config, "favTokens", defaultValues.config.favTokens),
24
+ comingSoonChainIds: get(config, "comingSoonChainIds", defaultValues.config.comingSoonChainIds),
25
+ availableChains: get(config, "availableChains", defaultValues.config.availableChains),
26
+ onChainQuoting: get(config, "onChainQuoting", defaultValues.config.onChainQuoting),
27
+ disabledChains: get(config, "disabledChains", defaultValues.config.disabledChains),
28
+ };
29
+ };
30
+ export const randomIntFromInterval = (min, max) => {
31
+ return Math.floor(Math.random() * (max - min + 1) + min);
32
+ };
33
+ export const getTokensForChain = (tokens, chainId) => {
34
+ return chainId ? tokens.filter((t) => t.chainId === chainId) : tokens;
35
+ };
36
+ export const getFirstAvailableChainId = (config, direction, chains = []) => {
37
+ // available chains are those that are not coming soon or disabled chains
38
+ const availableChains = chains.filter((c) => !config.comingSoonChainIds?.find((id) => id === c.chainId) &&
39
+ !config.disabledChains?.[direction === "from" ? "source" : "destination"]?.some((id) => id === c.chainId));
40
+ if (direction === "from" &&
41
+ config.initialAssets?.from &&
42
+ availableChains.some((c) => c.chainId === String(config.initialAssets?.from?.chainId))) {
43
+ return config.initialAssets.from.chainId;
44
+ }
45
+ if (direction === "to" &&
46
+ config.initialAssets?.to &&
47
+ availableChains.some((c) => c.chainId === String(config.initialAssets?.to?.chainId))) {
48
+ return config.initialAssets.to.chainId;
49
+ }
50
+ return availableChains.length > 0 ? availableChains[0].chainId : undefined;
51
+ };
52
+ export const getDefaultTokenAddressForChain = (tokens, config, chainId, unavailableTokenAddress) => {
53
+ const chainIdDefaultToken = config.defaultTokensPerChain?.find((token) => token.chainId == chainId);
54
+ if (chainIdDefaultToken &&
55
+ chainIdDefaultToken.address !== unavailableTokenAddress) {
56
+ return chainIdDefaultToken.address;
57
+ }
58
+ const filteredTokens = chainId
59
+ ? tokens.filter((t) => t.chainId === chainId && t.address !== unavailableTokenAddress)
60
+ : tokens;
61
+ return filteredTokens.length > 0 ? filteredTokens[0].address : undefined;
62
+ };
63
+ /**
64
+ * Retrieves the initial token address for a specific chain and direction.
65
+ * If no initial assets are set in config, returns the default token address for the chain.
66
+ *
67
+ * @param tokens - The list of tokens.
68
+ * @param config - The application configuration.
69
+ * @param chainId - The ID of the chain.
70
+ * @param direction - The direction ("from" or "to").
71
+ * @returns The initial token address if found; otherwise, the default token address.
72
+ */
73
+ export const getInitialOrDefaultTokenAddressForChain = ({ chainId, config, direction, tokens, unavailableTokenAddress, }) => {
74
+ if (direction === "from" &&
75
+ config.initialAssets?.from &&
76
+ config.initialAssets.from.chainId === chainId) {
77
+ return config.initialAssets.from.address;
78
+ }
79
+ if (direction === "to" &&
80
+ config.initialAssets?.to &&
81
+ config.initialAssets.to.chainId === chainId) {
82
+ return config.initialAssets.to.address;
83
+ }
84
+ return getDefaultTokenAddressForChain(tokens, config, chainId, unavailableTokenAddress);
85
+ };
86
+ /**
87
+ * Filter tokens for destination chain
88
+ *
89
+ * Case 1: fromToken.bridgeOnly = true
90
+ * Destination token list shows only tokens with the same commonKey as fromToken
91
+ *
92
+ * Case 2: fromToken.bridgeOnly = false
93
+ * Destination token list shows all tokens with bridgeOnly = false
94
+ * OR Destination token list shows all tokens with the same commonKey as fromToken
95
+ * @param tokens
96
+ * @param selectedDestinationChain
97
+ * @param selectedSourceChainID
98
+ * @param selectedSourceToken
99
+ * @returns
100
+ */
101
+ export const filterTokensForDestination = (tokens, selectedDestinationChain, selectedSourceToken) => {
102
+ let filteredTokens = [];
103
+ if (selectedSourceToken?.subGraphOnly) {
104
+ filteredTokens = tokens.filter((t) => shareSubgraphId(t, selectedSourceToken) &&
105
+ t.chainId === selectedDestinationChain?.chainId);
106
+ }
107
+ filteredTokens = tokens.filter((t) => !t.subGraphOnly || shareSubgraphId(t, selectedSourceToken));
108
+ // We don't want to show the same source token & chain in the destination list
109
+ // except for Cosmos swaps
110
+ return filteredTokens.filter((t) => {
111
+ const areSameToken = t.address === selectedSourceToken?.address &&
112
+ t.chainId === selectedSourceToken.chainId;
113
+ // only return tokens that are on the same chain as the destination chain
114
+ const isValidChain = t.chainId === selectedDestinationChain?.chainId;
115
+ const isCosmosSwap = selectedDestinationChain?.chainType === ChainType.COSMOS;
116
+ return isValidChain && (isCosmosSwap || !areSameToken);
117
+ });
118
+ };
119
+ //# sourceMappingURL=configService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configService.js","sourceRoot":"","sources":["../../../src/services/internal/configService.ts"],"names":[],"mappings":"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"}