@velora-dex/widget 0.3.9 → 0.3.11-dev.1

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 (228) hide show
  1. package/dist/components/widget/AppHeader/Activities/hooks.d.ts +2 -2
  2. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts +7 -4
  3. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.d.ts.map +1 -1
  4. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js +361 -136
  5. package/dist/components/widget/Dialog/SelectTokenDialog/SelectTokenDialog.js.map +1 -1
  6. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js +1 -1
  7. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/index.js.map +1 -1
  8. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js +2 -1
  9. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenCloud/tokens.js.map +1 -1
  10. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js +1 -1
  11. package/dist/components/widget/Dialog/SelectTokenDialog/TokenListBody/TokenListRow.js.map +1 -1
  12. package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.d.ts.map +1 -1
  13. package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js +48 -36
  14. package/dist/components/widget/Dialog/SelectTokenDialog/TokenSearch.js.map +1 -1
  15. package/dist/components/widget/Dialog/SelectTokenDialog/types.d.ts +3 -2
  16. package/dist/components/widget/Dialog/SelectTokenDialog/types.d.ts.map +1 -1
  17. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js +2 -1
  18. package/dist/components/widget/NetworkIcon/NetworkIconSquare.js.map +1 -1
  19. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.d.ts.map +1 -1
  20. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js +57 -108
  21. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherDropdown.js.map +1 -1
  22. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherList.d.ts +3 -0
  23. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherList.d.ts.map +1 -0
  24. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherList.js +71 -0
  25. package/dist/components/widget/NetworkSwitcher/NetworkSwitcherList.js.map +1 -0
  26. package/dist/components/widget/NetworkSwitcher/common/AllNetworksItem.d.ts +5 -0
  27. package/dist/components/widget/NetworkSwitcher/common/AllNetworksItem.d.ts.map +1 -0
  28. package/dist/components/widget/NetworkSwitcher/common/AllNetworksItem.js +48 -0
  29. package/dist/components/widget/NetworkSwitcher/common/AllNetworksItem.js.map +1 -0
  30. package/dist/components/widget/NetworkSwitcher/common/NetworkItem.d.ts +7 -0
  31. package/dist/components/widget/NetworkSwitcher/common/NetworkItem.d.ts.map +1 -0
  32. package/dist/components/widget/NetworkSwitcher/common/NetworkItem.js +46 -0
  33. package/dist/components/widget/NetworkSwitcher/common/NetworkItem.js.map +1 -0
  34. package/dist/components/widget/NetworkSwitcher/types.d.ts +12 -2
  35. package/dist/components/widget/NetworkSwitcher/types.d.ts.map +1 -1
  36. package/dist/components/widget/NetworkSwitcher/utils/items.d.ts +3 -0
  37. package/dist/components/widget/NetworkSwitcher/utils/items.d.ts.map +1 -0
  38. package/dist/components/widget/NetworkSwitcher/utils/items.js +63 -0
  39. package/dist/components/widget/NetworkSwitcher/utils/items.js.map +1 -0
  40. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js +2 -1
  41. package/dist/components/widget/NetworkWithIcon/NetworkWithIcon.js.map +1 -1
  42. package/dist/components/widget/Screen/GenericScreen.d.ts +6 -2
  43. package/dist/components/widget/Screen/GenericScreen.d.ts.map +1 -1
  44. package/dist/components/widget/Screen/GenericScreen.js +112 -33
  45. package/dist/components/widget/Screen/GenericScreen.js.map +1 -1
  46. package/dist/components/widget/SelectToken/SelectTokenButton.d.ts +1 -1
  47. package/dist/components/widget/SelectToken/SelectTokenButton.d.ts.map +1 -1
  48. package/dist/components/widget/SelectToken/SelectTokenButton.js +100 -73
  49. package/dist/components/widget/SelectToken/SelectTokenButton.js.map +1 -1
  50. package/dist/components/widget/SelectToken/types.d.ts +3 -0
  51. package/dist/components/widget/SelectToken/types.d.ts.map +1 -1
  52. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.d.ts.map +1 -1
  53. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js +5 -0
  54. package/dist/components/widget/SwapModeSwitcher/state/swapSideAtom.js.map +1 -1
  55. package/dist/components/widget/TokenInput/InputContainer.d.ts +3 -0
  56. package/dist/components/widget/TokenInput/InputContainer.d.ts.map +1 -0
  57. package/dist/components/widget/TokenInput/InputContainer.js +54 -0
  58. package/dist/components/widget/TokenInput/InputContainer.js.map +1 -0
  59. package/dist/components/widget/TokenInput/InputField.d.ts +6 -0
  60. package/dist/components/widget/TokenInput/InputField.d.ts.map +1 -0
  61. package/dist/components/widget/TokenInput/InputField.js +84 -0
  62. package/dist/components/widget/TokenInput/InputField.js.map +1 -0
  63. package/dist/components/widget/TokenInput/InputFooter.d.ts +5 -0
  64. package/dist/components/widget/TokenInput/InputFooter.d.ts.map +1 -0
  65. package/dist/components/widget/TokenInput/InputFooter.js +206 -0
  66. package/dist/components/widget/TokenInput/InputFooter.js.map +1 -0
  67. package/dist/components/widget/TokenInput/InputHeader.d.ts +5 -0
  68. package/dist/components/widget/TokenInput/InputHeader.d.ts.map +1 -0
  69. package/dist/components/widget/TokenInput/InputHeader.js +58 -0
  70. package/dist/components/widget/TokenInput/InputHeader.js.map +1 -0
  71. package/dist/components/widget/TokenInput/common/Balance.d.ts +3 -0
  72. package/dist/components/widget/TokenInput/common/Balance.d.ts.map +1 -0
  73. package/dist/components/widget/TokenInput/common/Balance.js +23 -0
  74. package/dist/components/widget/TokenInput/common/Balance.js.map +1 -0
  75. package/dist/components/widget/TokenInput/common/MaxButtons.d.ts +3 -0
  76. package/dist/components/widget/TokenInput/common/MaxButtons.d.ts.map +1 -0
  77. package/dist/components/widget/TokenInput/common/MaxButtons.js +37 -0
  78. package/dist/components/widget/TokenInput/common/MaxButtons.js.map +1 -0
  79. package/dist/components/widget/TokenInput/index.d.ts.map +1 -1
  80. package/dist/components/widget/TokenInput/index.js +125 -147
  81. package/dist/components/widget/TokenInput/index.js.map +1 -1
  82. package/dist/components/widget/TokenInput/types.d.ts +6 -1
  83. package/dist/components/widget/TokenInput/types.d.ts.map +1 -1
  84. package/dist/core/Updaters.d.ts.map +1 -1
  85. package/dist/core/Updaters.js +2 -0
  86. package/dist/core/Updaters.js.map +1 -1
  87. package/dist/core/constants.d.ts +4 -1
  88. package/dist/core/constants.d.ts.map +1 -1
  89. package/dist/core/constants.js +4 -1
  90. package/dist/core/constants.js.map +1 -1
  91. package/dist/core/index.d.ts.map +1 -1
  92. package/dist/core/index.js +2 -0
  93. package/dist/core/index.js.map +1 -1
  94. package/dist/core/inputs/hooks/useMaxButtonProps.d.ts +2 -7
  95. package/dist/core/inputs/hooks/useMaxButtonProps.d.ts.map +1 -1
  96. package/dist/core/inputs/hooks/useMaxButtonProps.js +17 -6
  97. package/dist/core/inputs/hooks/useMaxButtonProps.js.map +1 -1
  98. package/dist/core/inputs/hooks/useTokenToInputProps.d.ts.map +1 -1
  99. package/dist/core/inputs/hooks/useTokenToInputProps.js +11 -7
  100. package/dist/core/inputs/hooks/useTokenToInputProps.js.map +1 -1
  101. package/dist/core/screen/hooks/useResizeObserver.d.ts +2 -0
  102. package/dist/core/screen/hooks/useResizeObserver.d.ts.map +1 -0
  103. package/dist/core/screen/hooks/useResizeObserver.js +36 -0
  104. package/dist/core/screen/hooks/useResizeObserver.js.map +1 -0
  105. package/dist/core/state/chainToAtom.d.ts +4 -4
  106. package/dist/core/state/configAtom.d.ts +2 -2
  107. package/dist/core/state/containerAtom.d.ts +3 -0
  108. package/dist/core/state/containerAtom.d.ts.map +1 -1
  109. package/dist/core/state/containerAtom.js +2 -1
  110. package/dist/core/state/containerAtom.js.map +1 -1
  111. package/dist/core/state/enabledChainsAtom.d.ts +9 -9
  112. package/dist/hooks/gas/config.js +2 -1
  113. package/dist/hooks/gas/config.js.map +1 -1
  114. package/dist/hooks/otc/mutations/useFillOrder.js +2 -2
  115. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.d.ts.map +1 -1
  116. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js +75 -35
  117. package/dist/hooks/otc/tradeFlow/useFillOtcOrderFlow.js.map +1 -1
  118. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.d.ts.map +1 -1
  119. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js +2 -1
  120. package/dist/hooks/otc/tradeFlow/useOtcOrderFlow.js.map +1 -1
  121. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts +136 -3
  122. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.d.ts.map +1 -1
  123. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js +53 -33
  124. package/dist/hooks/permit/hooks/permit2/usePermit2Allowance.js.map +1 -1
  125. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.d.ts.map +1 -1
  126. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js +75 -77
  127. package/dist/hooks/permit/hooks/permit2/useSignTokenPermit2TransferFrom.js.map +1 -1
  128. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.d.ts +136 -0
  129. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.d.ts.map +1 -0
  130. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.js +22 -0
  131. package/dist/hooks/permit/hooks/permit2/useTokenFromPermit2Allowance.js.map +1 -0
  132. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts +3 -1
  133. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.d.ts.map +1 -1
  134. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js +271 -189
  135. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermit.js.map +1 -1
  136. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.d.ts +3 -2
  137. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.d.ts.map +1 -1
  138. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js +36 -37
  139. package/dist/hooks/swap/tradeFlow/common/useApproveOrPermitEvents.js.map +1 -1
  140. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.d.ts.map +1 -1
  141. package/dist/hooks/swap/tradeFlow/common/useRequiredAllowanceForOrders.js.map +1 -1
  142. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts +4 -1
  143. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.d.ts.map +1 -1
  144. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js +12 -12
  145. package/dist/hooks/swap/tradeFlow/common/useSignPermit1Or2.js.map +1 -1
  146. package/dist/hooks/swap/tradeFlow/useDeltaFlow.d.ts.map +1 -1
  147. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js +7 -5
  148. package/dist/hooks/swap/tradeFlow/useDeltaFlow.js.map +1 -1
  149. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.d.ts.map +1 -1
  150. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js +2 -1
  151. package/dist/hooks/swap/tradeFlow/useLimitOrderFlow.js.map +1 -1
  152. package/dist/hooks/swap/tradeFlow/useMarketFlow.d.ts.map +1 -1
  153. package/dist/hooks/swap/tradeFlow/useMarketFlow.js +7 -5
  154. package/dist/hooks/swap/tradeFlow/useMarketFlow.js.map +1 -1
  155. package/dist/hooks/tokens/allowance/types.d.ts +10 -0
  156. package/dist/hooks/tokens/allowance/types.d.ts.map +1 -1
  157. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts +1 -14
  158. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.d.ts.map +1 -1
  159. package/dist/hooks/tokens/allowance/useGenericTokenAllowance.js.map +1 -1
  160. package/dist/hooks/tokens/allowance/utils.d.ts +11 -0
  161. package/dist/hooks/tokens/allowance/utils.d.ts.map +1 -0
  162. package/dist/hooks/tokens/allowance/utils.js +19 -0
  163. package/dist/hooks/tokens/allowance/utils.js.map +1 -0
  164. package/dist/hooks/tokens/balances/queries.d.ts +1 -1
  165. package/dist/hooks/tokens/balances/queries.d.ts.map +1 -1
  166. package/dist/hooks/tokens/balances/queries.js +4 -3
  167. package/dist/hooks/tokens/balances/queries.js.map +1 -1
  168. package/dist/hooks/tokens/balances/types.d.ts +1 -0
  169. package/dist/hooks/tokens/balances/types.d.ts.map +1 -1
  170. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.d.ts +2 -1
  171. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.d.ts.map +1 -1
  172. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js +30 -26
  173. package/dist/hooks/tokens/balances/useAttachTokenBalanceMultichain.js.map +1 -1
  174. package/dist/hooks/tokens/balances/useMultichainTokenBalances.d.ts +2 -1
  175. package/dist/hooks/tokens/balances/useMultichainTokenBalances.d.ts.map +1 -1
  176. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js +34 -26
  177. package/dist/hooks/tokens/balances/useMultichainTokenBalances.js.map +1 -1
  178. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts +2 -1
  179. package/dist/hooks/tokens/useAllTokensWithFilter.d.ts.map +1 -1
  180. package/dist/hooks/tokens/useAllTokensWithFilter.js +62 -57
  181. package/dist/hooks/tokens/useAllTokensWithFilter.js.map +1 -1
  182. package/dist/hooks/useBreakpoints.d.ts +4 -0
  183. package/dist/hooks/useBreakpoints.d.ts.map +1 -0
  184. package/dist/hooks/useBreakpoints.js +24 -0
  185. package/dist/hooks/useBreakpoints.js.map +1 -0
  186. package/dist/hooks/useSelectableDestChains.d.ts +1 -1
  187. package/dist/lib/constants/delta.d.ts +1 -1
  188. package/dist/lib/constants/delta.js +2 -1
  189. package/dist/lib/constants/delta.js.map +1 -1
  190. package/dist/lib/constants/mobile.d.ts +2 -0
  191. package/dist/lib/constants/mobile.d.ts.map +1 -0
  192. package/dist/lib/constants/mobile.js +6 -0
  193. package/dist/lib/constants/mobile.js.map +1 -0
  194. package/dist/lib/constants/otc.js +2 -1
  195. package/dist/lib/constants/otc.js.map +1 -1
  196. package/dist/lib/constants/weth.js +2 -1
  197. package/dist/lib/constants/weth.js.map +1 -1
  198. package/dist/lib/utils/mobile.d.ts +6 -0
  199. package/dist/lib/utils/mobile.d.ts.map +1 -0
  200. package/dist/lib/utils/mobile.js +10 -0
  201. package/dist/lib/utils/mobile.js.map +1 -0
  202. package/dist/lib/web3/wagmi/config.d.ts +46 -46
  203. package/dist/lib/web3/wagmi/config.d.ts.map +1 -1
  204. package/dist/lib/web3/wagmi/config.js +6 -1
  205. package/dist/lib/web3/wagmi/config.js.map +1 -1
  206. package/dist/lib/web3/wagmi/constants.d.ts +45 -45
  207. package/dist/lib/web3/wagmi/constants.js +2 -1
  208. package/dist/lib/web3/wagmi/constants.js.map +1 -1
  209. package/dist/lib/web3/wagmi/supportedChains.d.ts +379 -1
  210. package/dist/lib/web3/wagmi/supportedChains.d.ts.map +1 -1
  211. package/dist/lib/web3/wagmi/supportedChains.js +18 -0
  212. package/dist/lib/web3/wagmi/supportedChains.js.map +1 -0
  213. package/dist/lib/web3/wagmi/switchChain.d.ts +177 -177
  214. package/dist/lib/web3/wagmi/switchChain.d.ts.map +1 -1
  215. package/dist/lib/web3/wagmi/transports.d.ts.map +1 -1
  216. package/dist/lib/web3/wagmi/transports.js +3 -2
  217. package/dist/lib/web3/wagmi/transports.js.map +1 -1
  218. package/dist/styles.css +45 -14
  219. package/dist/tokens/constants.js +2 -1
  220. package/dist/tokens/constants.js.map +1 -1
  221. package/dist/tokens/defaultTokens.js +2 -1
  222. package/dist/tokens/defaultTokens.js.map +1 -1
  223. package/dist/tokens/lists/state/effects.d.ts +1 -0
  224. package/dist/tokens/lists/state/effects.d.ts.map +1 -1
  225. package/dist/tokens/lists/state/effects.js +12 -2
  226. package/dist/tokens/lists/state/effects.js.map +1 -1
  227. package/dist/tokens/lists/state/tokenListsStateAtom.d.ts +4 -4
  228. package/package.json +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useAttachTokenBalanceMultichain.js","sources":["../../../../src/hooks/tokens/balances/useAttachTokenBalanceMultichain.ts"],"sourcesContent":["import type { Token } from \"@/tokens/state/types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { formatUnits, isAddress } from \"viem\";\nimport { useMultiChainTokenBalances } from \"./useMultichainTokenBalances\";\nimport { useMultiChainTokenPrices } from \"../prices/useMultichainTokenPrices\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\nimport { useAccount } from \"wagmi\";\nimport { useSelectedTokenBalances } from \"./useSelectedTokenBalances\";\nimport { useTradeMode } from \"@/core/state/tradeModeAtom\";\n\ntype AddTokenBalanceToToken = <\n T extends Pick<Token, \"address\" | \"network\" | \"decimals\">,\n>(\n token: T\n) => T & { balance?: string; usdBalance?: number };\n\n/**\n This hook will fetch the balances and return a function that will add a balance to the token if available.\n */\nexport const useAttachTokenBalanceMultichain = ({\n addressesMap,\n}: {\n addressesMap: Partial<Record<SupportedChainId, string[]>>;\n}): AddTokenBalanceToToken => {\n const { address: account } = useAccount();\n const tradeMode = useTradeMode();\n\n const multiChainTokenBalances = useMultiChainTokenBalances({\n addressesMap,\n });\n const selectedTokenBalances = useSelectedTokenBalances(tradeMode);\n\n const chainIds = useMemo(\n () => Object.keys(addressesMap).map(Number).filter(isSupportedChainId),\n [addressesMap]\n );\n\n const multiChainTokenPrices = useMultiChainTokenPrices(chainIds);\n\n return useCallback<AddTokenBalanceToToken>(\n (token) => {\n if (!account) return token;\n\n const loweredAddress = token.address.toLowerCase();\n\n if (!isAddress(loweredAddress)) return token;\n\n const balance =\n // selected token balances have priority,\n // because only these balances are invalidated after each transaction/order,\n // and have the most frequent refetch interval\n selectedTokenBalances[token.network]?.[loweredAddress] ??\n // otherwise grab the balance from the multichain balances query\n multiChainTokenBalances[token.network]?.[loweredAddress]?.result;\n\n if (balance === undefined) return token;\n\n const tokenPrice =\n multiChainTokenPrices[token.network]?.[loweredAddress]?.price;\n\n const usdBalance = tokenPrice\n ? +formatUnits(BigInt(balance), token.decimals) * tokenPrice\n : undefined;\n\n return {\n ...token,\n balance: balance.toString(),\n usdBalance,\n };\n },\n [\n account,\n multiChainTokenBalances,\n multiChainTokenPrices,\n selectedTokenBalances,\n ]\n );\n};\n"],"names":["useAttachTokenBalanceMultichain","t0","$","_c","addressesMap","address","account","useAccount","tradeMode","useTradeMode","t1","multiChainTokenBalances","useMultiChainTokenBalances","selectedTokenBalances","useSelectedTokenBalances","t2","Object","keys","map","Number","filter","isSupportedChainId","chainIds","multiChainTokenPrices","useMultiChainTokenPrices","t3","token","loweredAddress","toLowerCase","isAddress","balance","network","result","undefined","tokenPrice","price","usdBalance","formatUnits","BigInt","decimals","toString"],"mappings":"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"}
1
+ {"version":3,"file":"useAttachTokenBalanceMultichain.js","sources":["../../../../src/hooks/tokens/balances/useAttachTokenBalanceMultichain.ts"],"sourcesContent":["import type { Token } from \"@/tokens/state/types\";\n\nimport { useCallback, useMemo } from \"react\";\n\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { formatUnits, isAddress } from \"viem\";\nimport { useMultiChainTokenBalances } from \"./useMultichainTokenBalances\";\nimport { useMultiChainTokenPrices } from \"../prices/useMultichainTokenPrices\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\nimport { useAccount } from \"wagmi\";\nimport { useSelectedTokenBalances } from \"./useSelectedTokenBalances\";\nimport { useTradeMode } from \"@/core/state/tradeModeAtom\";\n\ntype AddTokenBalanceToToken = <\n T extends Pick<Token, \"address\" | \"network\" | \"decimals\">,\n>(\n token: T\n) => T & { balance?: string; usdBalance?: number };\n\n/**\n This hook will fetch the balances and return a function that will add a balance to the token if available.\n */\nexport const useAttachTokenBalanceMultichain = ({\n addressesMap,\n intent = \"fetch\",\n}: {\n addressesMap: Partial<Record<SupportedChainId, string[]>>;\n intent?: \"fetch\" | \"prefetch\";\n}): AddTokenBalanceToToken => {\n const { address: account } = useAccount();\n const tradeMode = useTradeMode();\n\n const multiChainTokenBalances = useMultiChainTokenBalances({\n addressesMap,\n intent,\n });\n const selectedTokenBalances = useSelectedTokenBalances(tradeMode);\n\n const chainIds = useMemo(\n () => Object.keys(addressesMap).map(Number).filter(isSupportedChainId),\n [addressesMap]\n );\n\n const multiChainTokenPrices = useMultiChainTokenPrices(chainIds);\n\n return useCallback<AddTokenBalanceToToken>(\n (token) => {\n if (!account) return token;\n\n const loweredAddress = token.address.toLowerCase();\n\n if (!isAddress(loweredAddress)) return token;\n\n const balance =\n // selected token balances have priority,\n // because only these balances are invalidated after each transaction/order,\n // and have the most frequent refetch interval\n selectedTokenBalances[token.network]?.[loweredAddress] ??\n // otherwise grab the balance from the multichain balances query\n multiChainTokenBalances[token.network]?.[loweredAddress]?.result;\n\n if (balance === undefined) return token;\n\n const tokenPrice =\n multiChainTokenPrices[token.network]?.[loweredAddress]?.price;\n\n const usdBalance = tokenPrice\n ? +formatUnits(BigInt(balance), token.decimals) * tokenPrice\n : undefined;\n\n return {\n ...token,\n balance: balance.toString(),\n usdBalance,\n };\n },\n [\n account,\n multiChainTokenBalances,\n multiChainTokenPrices,\n selectedTokenBalances,\n ]\n );\n};\n"],"names":["useAttachTokenBalanceMultichain","t0","$","_c","addressesMap","intent","t1","undefined","address","account","useAccount","tradeMode","useTradeMode","t2","multiChainTokenBalances","useMultiChainTokenBalances","selectedTokenBalances","useSelectedTokenBalances","t3","Object","keys","map","Number","filter","isSupportedChainId","chainIds","multiChainTokenPrices","useMultiChainTokenPrices","t4","token","loweredAddress","toLowerCase","isAddress","balance","network","result","tokenPrice","price","usdBalance","formatUnits","BigInt","decimals","toString"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { SupportedChainId } from '../../../lib/web3/wagmi/types';
2
2
  import { AddressBalanceMap } from './types';
3
- export declare const useMultiChainTokenBalances: <TData>({ addressesMap, select, }: {
3
+ export declare const useMultiChainTokenBalances: <TData>({ addressesMap, select, intent, }: {
4
4
  addressesMap: Partial<Record<SupportedChainId, string[]>>;
5
5
  select?: (data: AddressBalanceMap) => TData;
6
+ intent?: "fetch" | "prefetch";
6
7
  }) => Record<number, AddressBalanceMap>;
7
8
  //# sourceMappingURL=useMultichainTokenBalances.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useMultichainTokenBalances.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/useMultichainTokenBalances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAIjD,eAAO,MAAM,0BAA0B,GAAI,KAAK,EAAE,2BAG/C;IACD,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,KAAK,CAAC;CAC7C,sCAkCA,CAAC"}
1
+ {"version":3,"file":"useMultichainTokenBalances.d.ts","sourceRoot":"","sources":["../../../../src/hooks/tokens/balances/useMultichainTokenBalances.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAK/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAKjD,eAAO,MAAM,0BAA0B,GAAI,KAAK,EAAE,mCAI/C;IACD,YAAY,EAAE,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,KAAK,CAAC;IAC5C,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAC/B,sCAyCA,CAAC"}
@@ -5,62 +5,70 @@ import { useAccount } from 'wagmi';
5
5
  import { constructTokenBalancesQueryOptions } from './queries.js';
6
6
  import { assert } from 'ts-essentials';
7
7
  import { isSupportedChainId } from '../../../lib/web3/wagmi/utils.js';
8
+ import { useAllTokensListsFetched } from '../../../tokens/lists/state/effects.js';
8
9
 
9
10
  const useMultiChainTokenBalances = (t0) => {
10
- const $ = distExports.c(9);
11
+ const $ = distExports.c(10);
11
12
  const {
12
13
  addressesMap,
13
- select
14
+ select,
15
+ intent: t1
14
16
  } = t0;
17
+ const intent = t1 === void 0 ? "fetch" : t1;
15
18
  const {
16
19
  address: account
17
20
  } = useAccount();
18
- let t1;
19
- if ($[0] !== account || $[1] !== addressesMap || $[2] !== select) {
20
- t1 = {
21
- queries: Object.entries(addressesMap).map((t22) => {
22
- const [_chainId, addresses] = t22;
21
+ const allTokensListsFetched = useAllTokensListsFetched();
22
+ const enabled = intent === "prefetch" ? allTokensListsFetched : true;
23
+ let t2;
24
+ if ($[0] !== account || $[1] !== addressesMap || $[2] !== enabled || $[3] !== select) {
25
+ t2 = {
26
+ queries: Object.entries(addressesMap).map((t32) => {
27
+ const [_chainId, addresses] = t32;
23
28
  const validAddressesLowerCase = addresses.map(_temp).filter(_temp2);
24
29
  const chainId = Number(_chainId);
25
30
  assert(isSupportedChainId(chainId), "SupportedChainId guaranteed by");
26
31
  return constructTokenBalancesQueryOptions({
27
32
  tokenAddressesLowercase: validAddressesLowerCase,
28
33
  chainId,
29
- account});
34
+ account,
35
+ enabled
36
+ });
30
37
  })
31
38
  };
32
39
  $[0] = account;
33
40
  $[1] = addressesMap;
34
- $[2] = select;
35
- $[3] = t1;
41
+ $[2] = enabled;
42
+ $[3] = select;
43
+ $[4] = t2;
36
44
  } else {
37
- t1 = $[3];
45
+ t2 = $[4];
38
46
  }
39
- const queriesResult = useQueries(t1);
40
- let t2;
41
- if ($[4] !== addressesMap || $[5] !== queriesResult) {
42
- let t3;
43
- if ($[7] !== addressesMap) {
44
- t3 = (acc, queryResult, index) => {
47
+ const queriesResult = useQueries(t2);
48
+ let t3;
49
+ if ($[5] !== addressesMap || $[6] !== queriesResult) {
50
+ let t4;
51
+ if ($[8] !== addressesMap) {
52
+ t4 = (acc, queryResult, index) => {
45
53
  if (queryResult.data) {
46
54
  const chainId_0 = Object.keys(addressesMap)[index];
47
55
  acc[Number(chainId_0)] = queryResult.data;
48
56
  }
49
57
  return acc;
50
58
  };
51
- $[7] = addressesMap;
52
- $[8] = t3;
59
+ $[8] = addressesMap;
60
+ $[9] = t4;
53
61
  } else {
54
- t3 = $[8];
62
+ t4 = $[9];
55
63
  }
56
- t2 = queriesResult.reduce(t3, {});
57
- $[4] = addressesMap;
58
- $[5] = queriesResult;
59
- $[6] = t2;
64
+ t3 = queriesResult.reduce(t4, {});
65
+ $[5] = addressesMap;
66
+ $[6] = queriesResult;
67
+ $[7] = t3;
60
68
  } else {
61
- t2 = $[6];
69
+ t3 = $[7];
62
70
  }
63
- return t2;
71
+ return t3;
64
72
  };
65
73
  function _temp(address) {
66
74
  return address.toLowerCase();
@@ -1 +1 @@
1
- {"version":3,"file":"useMultichainTokenBalances.js","sources":["../../../../src/hooks/tokens/balances/useMultichainTokenBalances.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useQueries } from \"@tanstack/react-query\";\nimport { isAddress, type Address } from \"viem\";\nimport { useAccount } from \"wagmi\";\nimport { constructTokenBalancesQueryOptions } from \"./queries\";\nimport type { AddressBalanceMap } from \"./types\";\nimport { assert } from \"ts-essentials\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\n\nexport const useMultiChainTokenBalances = <TData>({\n addressesMap,\n select,\n}: {\n addressesMap: Partial<Record<SupportedChainId, string[]>>;\n select?: (data: AddressBalanceMap) => TData;\n}) => {\n const { address: account } = useAccount();\n\n const queriesResult = useQueries({\n queries: Object.entries(addressesMap).map(([_chainId, addresses]) => {\n const validAddressesLowerCase = addresses\n .map((address) => address.toLowerCase() as Lowercase<string>)\n .filter((address): address is Lowercase<Address> => isAddress(address));\n\n const chainId = Number(_chainId);\n\n // Object.entries destroyed the types.\n // should not happen, but to satisfy TypeScript:\n assert(isSupportedChainId(chainId), \"SupportedChainId guaranteed by\");\n\n return constructTokenBalancesQueryOptions({\n tokenAddressesLowercase: validAddressesLowerCase,\n chainId,\n account: account,\n select,\n });\n }),\n });\n\n return queriesResult.reduce<Record<number, AddressBalanceMap>>(\n (acc, queryResult, index) => {\n if (queryResult.data) {\n const chainId = Object.keys(addressesMap)[index];\n acc[Number(chainId)] = queryResult.data;\n }\n return acc;\n },\n {}\n );\n};\n"],"names":["useMultiChainTokenBalances","t0","$","_c","addressesMap","select","address","account","useAccount","t1","queries","Object","entries","map","t2","_chainId","addresses","validAddressesLowerCase","_temp","filter","_temp2","chainId","Number","assert","isSupportedChainId","constructTokenBalancesQueryOptions","tokenAddressesLowercase","queriesResult","useQueries","t3","acc","queryResult","index","data","chainId_0","keys","reduce","toLowerCase","address_0","isAddress"],"mappings":"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"}
1
+ {"version":3,"file":"useMultichainTokenBalances.js","sources":["../../../../src/hooks/tokens/balances/useMultichainTokenBalances.ts"],"sourcesContent":["import type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useQueries } from \"@tanstack/react-query\";\nimport { isAddress, type Address } from \"viem\";\nimport { useAccount } from \"wagmi\";\nimport { constructTokenBalancesQueryOptions } from \"./queries\";\nimport type { AddressBalanceMap } from \"./types\";\nimport { assert } from \"ts-essentials\";\nimport { isSupportedChainId } from \"@/lib/web3/wagmi/utils\";\nimport { useAllTokensListsFetched } from \"@/tokens/lists/state/effects\";\n\nexport const useMultiChainTokenBalances = <TData>({\n addressesMap,\n select,\n intent = \"fetch\",\n}: {\n addressesMap: Partial<Record<SupportedChainId, string[]>>;\n select?: (data: AddressBalanceMap) => TData;\n intent?: \"fetch\" | \"prefetch\";\n}) => {\n const { address: account } = useAccount();\n\n const allTokensListsFetched = useAllTokensListsFetched();\n\n // don't prefetch until we know all the tokens from tokenLists are fetched,\n // to avoid re-running token balances fetch for incomplete token sets\n const enabled = intent === \"prefetch\" ? allTokensListsFetched : true;\n\n const queriesResult = useQueries({\n queries: Object.entries(addressesMap).map(([_chainId, addresses]) => {\n const validAddressesLowerCase = addresses\n .map((address) => address.toLowerCase() as Lowercase<string>)\n .filter((address): address is Lowercase<Address> => isAddress(address));\n\n const chainId = Number(_chainId);\n\n // Object.entries destroyed the types.\n // should not happen, but to satisfy TypeScript:\n assert(isSupportedChainId(chainId), \"SupportedChainId guaranteed by\");\n\n return constructTokenBalancesQueryOptions({\n tokenAddressesLowercase: validAddressesLowerCase,\n chainId,\n account: account,\n select,\n enabled,\n });\n }),\n });\n\n return queriesResult.reduce<Record<number, AddressBalanceMap>>(\n (acc, queryResult, index) => {\n if (queryResult.data) {\n const chainId = Object.keys(addressesMap)[index];\n acc[Number(chainId)] = queryResult.data;\n }\n return acc;\n },\n {}\n );\n};\n"],"names":["useMultiChainTokenBalances","t0","$","_c","addressesMap","select","intent","t1","undefined","address","account","useAccount","allTokensListsFetched","useAllTokensListsFetched","enabled","t2","queries","Object","entries","map","t3","_chainId","addresses","validAddressesLowerCase","_temp","filter","_temp2","chainId","Number","assert","isSupportedChainId","constructTokenBalancesQueryOptions","tokenAddressesLowercase","queriesResult","useQueries","t4","acc","queryResult","index","data","chainId_0","keys","reduce","toLowerCase","address_0","isAddress"],"mappings":";;;;;;;;;AAUO,MAAMA,6BAA6BC,CAAAA,EAAAA,KAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,EAAA,CAAA;AAAQ,EAAA,MAAA;AAAA,IAAAC,YAAAA;AAAAA,IAAAC,MAAAA;AAAAA,IAAAC,MAAAA,EAAAC;AAAAA,GAAA,GAAAN,EAAAA;AAGhD,EAAA,MAAAK,MAAAA,GAAAC,EAAAA,KAAAC,MAAAA,GAAA,OAAA,GAAAD,EAAAA;AAMA,EAAA,MAAA;AAAA,IAAAE,OAAAA,EAAAC;AAAAA,MAA6BC,UAAAA,EAAW;AAExC,EAAA,MAAAC,wBAA8BC,wBAAAA,EAAyB;AAIvD,EAAA,MAAAC,OAAAA,GAAgBR,MAAAA,KAAW,UAAA,GAAXM,qBAAAA,GAAA,IAAA;AAAqD,EAAA,IAAAG,EAAAA;AAAA,EAAA,IAAAb,CAAAA,CAAA,CAAA,CAAA,KAAAQ,OAAAA,IAAAR,EAAA,CAAA,CAAA,KAAAE,YAAAA,IAAAF,CAAAA,CAAA,CAAA,CAAA,KAAAY,OAAAA,IAAAZ,CAAAA,QAAAG,MAAAA,EAAA;AAEpCU,IAAAA,EAAAA,GAAA;AAAA,MAAAC,SACtBC,MAAAA,CAAMC,OAAAA,CAASd,YAAY,CAAA,CAACe,GAAAA,CAAKC,CAAAA,GAAAA,KAAA;AAAC,QAAA,MAAA,CAAAC,QAAAA,EAAAC,SAAA,CAAA,GAAAF,GAAAA;AACzC,QAAA,MAAAG,0BAAgCD,SAAAA,CAASH,GAAAA,CAClCK,KAAuD,CAAA,CAACC,OACrDC,MAA8D,CAAA;AAExE,QAAA,MAAAC,OAAAA,GAAgBC,OAAOP,QAAQ,CAAA;AAI/BQ,QAAAA,MAAAA,CAAOC,kBAAAA,CAAmBH,OAAO,CAAA,EAAG,gCAAgC,CAAA;AAAC,QAAA,OAE9DI,kCAAAA,CAAmC;AAAA,UAAAC,uBAAAA,EACfT,uBAAAA;AAAAA,UAAuBI,OAAAA;AAAAA,UAAAjB,OAAAA;AAAAA,UAAAI;AAAAA,SAKjD,CAAA;AAAA,MAAC,CACH;AAAA,KACH;AAACZ,IAAAA,CAAAA,MAAAQ,OAAAA;AAAAR,IAAAA,CAAAA,MAAAE,YAAAA;AAAAF,IAAAA,CAAAA,MAAAY,OAAAA;AAAAZ,IAAAA,CAAAA,MAAAG,MAAAA;AAAAH,IAAAA,CAAAA,MAAAa,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAb,EAAA,CAAA,CAAA;AAAA,EAAA;AApBD,EAAA,MAAA+B,aAAAA,GAAsBC,WAAWnB,EAoBhC,CAAA;AAAE,EAAA,IAAAK,EAAAA;AAAA,EAAA,IAAAlB,EAAA,CAAA,CAAA,KAAAE,gBAAAF,CAAAA,QAAA+B,aAAAA,EAAA;AAAA,IAAA,IAAAE,EAAAA;AAAA,IAAA,IAAAjC,CAAAA,QAAAE,YAAAA,EAAA;AAGD+B,MAAAA,EAAAA,GAAAA,CAAAC,GAAAA,EAAAC,WAAAA,EAAAC,KAAAA,KAAA;AACE,QAAA,IAAID,YAAWE,IAAAA,EAAK;AAClB,UAAA,MAAAC,SAAAA,GAAgBvB,MAAAA,CAAMwB,IAAAA,CAAMrC,YAAY,EAAEkC,KAAK,CAAA;AAC/CF,UAAAA,GAAAA,CAAIR,MAAAA,CAAOD,SAAO,CAAC,CAAA,GAAIU,WAAAA,CAAWE,IAAAA;AAAAA,QAAd;AACrB,QAAA,OACMH,GAAAA;AAAAA,MAAG,CAAA;AACXlC,MAAAA,CAAAA,MAAAE,YAAAA;AAAAF,MAAAA,CAAAA,MAAAiC,EAAAA;AAAAA,IAAA,CAAA,MAAA;AAAAA,MAAAA,EAAAA,GAAAjC,EAAA,CAAA,CAAA;AAAA,IAAA;AAPIkB,IAAAA,EAAAA,GAAAa,aAAAA,CAAaS,MAAAA,CAClBP,EAAAA,EAOA,EACF,CAAA;AAACjC,IAAAA,CAAAA,MAAAE,YAAAA;AAAAF,IAAAA,CAAAA,MAAA+B,aAAAA;AAAA/B,IAAAA,CAAAA,MAAAkB,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAlB,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OATMkB,EAAAA;AASN;AAhDuC,SAAAI,MAAAf,OAAAA,EAAA;AAAA,EAAA,OAoBhBA,QAAOkC,WAAAA,EAAa;AAAsB;AApB1B,SAAAjB,OAAAkB,SAAAA,EAAA;AAAA,EAAA,OAqBkBC,UAAUpC,SAAO,CAAA;AAAC;;;;"}
@@ -1,11 +1,12 @@
1
1
  import { Token, TokenMaybeWithUsdBalance } from '../../tokens/state/types';
2
2
  import { SupportedChainId } from '../../lib/web3/wagmi/types';
3
3
  import { BridgeInfoMode } from '../swap/prices/delta/queries/bridgeInfo/useBridgeInfo';
4
- export declare const useAllTokensWithFilter: ({ tokenFilter, forcedChainId, searchOnOtherChainsIfNothingFound, withETH, }: {
4
+ export declare const useAllTokensWithFilter: ({ tokenFilter, forcedChainId, searchOnOtherChainsIfNothingFound, withETH, intent, }: {
5
5
  tokenFilter: string;
6
6
  forcedChainId?: SupportedChainId;
7
7
  searchOnOtherChainsIfNothingFound?: boolean;
8
8
  withETH?: boolean;
9
+ intent?: "fetch" | "prefetch";
9
10
  }) => TokenMaybeWithUsdBalance[];
10
11
  export declare const usePrefetchTokenBalances: () => void;
11
12
  type AllTokensFromChainsInput = {
@@ -1 +1 @@
1
- {"version":3,"file":"useAllTokensWithFilter.d.ts","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithFilter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAK5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AAE5F,eAAO,MAAM,sBAAsB,GAAI,6EAKpC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,KAAG,wBAAwB,EA8E3B,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAMpC,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,aAAa,EACb,aAAa,GACd,EAAE,wBAAwB,GAAG;IAC5B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACtC,CAqBA;AAED,wBAAgB,mBAAmB,CAAC,EAClC,WAAW,EACX,WAAW,EACX,SAAS,EACT,IAAI,GACL,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,EAAE,cAAc,CAAC;CACtB,8BAuBA"}
1
+ {"version":3,"file":"useAllTokensWithFilter.d.ts","sourceRoot":"","sources":["../../../src/hooks/tokens/useAllTokensWithFilter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAK5E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAM/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uDAAuD,CAAC;AAE5F,eAAO,MAAM,sBAAsB,GAAI,qFAMpC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,gBAAgB,CAAC;IACjC,iCAAiC,CAAC,EAAE,OAAO,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;CAC/B,KAAG,wBAAwB,EA+E3B,CAAC;AAEF,eAAO,MAAM,wBAAwB,YAOpC,CAAC;AAEF,KAAK,wBAAwB,GAAG;IAC9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,aAAa,EACb,aAAa,GACd,EAAE,wBAAwB,GAAG;IAC5B,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CACtC,CAqBA;AAED,wBAAgB,mBAAmB,CAAC,EAClC,WAAW,EACX,WAAW,EACX,SAAS,EACT,IAAI,GACL,EAAE;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,SAAS,EAAE,gBAAgB,CAAC;IAC5B,IAAI,EAAE,cAAc,CAAC;CACtB,8BAuBA"}
@@ -13,133 +13,137 @@ import { isAddress } from 'viem';
13
13
  import { allTokensByChainAtom } from '../../tokens/state/allTokensByChainAtom.js';
14
14
 
15
15
  const useAllTokensWithFilter = (t0) => {
16
- const $ = distExports.c(23);
16
+ const $ = distExports.c(24);
17
17
  const {
18
18
  tokenFilter,
19
19
  forcedChainId,
20
20
  searchOnOtherChainsIfNothingFound,
21
- withETH: t1
21
+ withETH: t1,
22
+ intent: t2
22
23
  } = t0;
23
24
  const withETH = t1 === void 0 ? true : t1;
25
+ const intent = t2 === void 0 ? "fetch" : t2;
24
26
  const appChainId = useChainId();
25
27
  const allTokens = useAllTokens(forcedChainId);
26
28
  const nativeToken = useNativeToken(forcedChainId);
27
- let t2;
29
+ let t3;
28
30
  if ($[0] !== allTokens || $[1] !== nativeToken || $[2] !== withETH) {
29
- t2 = withETH ? [nativeToken].concat(allTokens) : allTokens;
31
+ t3 = withETH ? [nativeToken].concat(allTokens) : allTokens;
30
32
  $[0] = allTokens;
31
33
  $[1] = nativeToken;
32
34
  $[2] = withETH;
33
- $[3] = t2;
35
+ $[3] = t3;
34
36
  } else {
35
- t2 = $[3];
37
+ t3 = $[3];
36
38
  }
37
- const allIncludedTokens = t2;
39
+ const allIncludedTokens = t3;
38
40
  const filteredTokens = filterTokens({
39
41
  filterString: tokenFilter.trim(),
40
42
  tokenArray: allIncludedTokens
41
43
  });
42
44
  const isTokenFilterValidAddress = isAddress(tokenFilter);
43
45
  const searchOnAllChains = isTokenFilterValidAddress && searchOnOtherChainsIfNothingFound || filteredTokens.length === 0 && !!tokenFilter && searchOnOtherChainsIfNothingFound;
44
- const t3 = !searchOnAllChains ? emptyArray : void 0;
45
- let t4;
46
- if ($[4] !== t3) {
47
- t4 = {
48
- includeChains: t3
46
+ const t4 = !searchOnAllChains ? emptyArray : void 0;
47
+ let t5;
48
+ if ($[4] !== t4) {
49
+ t5 = {
50
+ includeChains: t4
49
51
  };
50
- $[4] = t3;
51
- $[5] = t4;
52
+ $[4] = t4;
53
+ $[5] = t5;
52
54
  } else {
53
- t4 = $[5];
55
+ t5 = $[5];
54
56
  }
55
57
  const {
56
58
  tokens: tokensFromAllChains,
57
59
  addressMap: tokensFromAllChainsMap
58
- } = useAllTokensFromChains(t4);
59
- let t5;
60
+ } = useAllTokensFromChains(t5);
61
+ let t6;
60
62
  bb0: {
61
63
  if (searchOnAllChains) {
62
- let t63;
64
+ let t73;
63
65
  if ($[6] !== tokensFromAllChains || $[7] !== tokensFromAllChainsMap) {
64
- t63 = {
66
+ t73 = {
65
67
  tokensToDisplay: tokensFromAllChains,
66
68
  addressesMap: tokensFromAllChainsMap
67
69
  };
68
70
  $[6] = tokensFromAllChains;
69
71
  $[7] = tokensFromAllChainsMap;
70
- $[8] = t63;
72
+ $[8] = t73;
71
73
  } else {
72
- t63 = $[8];
74
+ t73 = $[8];
73
75
  }
74
- t5 = t63;
76
+ t6 = t73;
75
77
  break bb0;
76
78
  }
77
79
  const currentChainId = forcedChainId ?? appChainId;
78
- let t62;
80
+ let t72;
79
81
  if ($[9] !== allIncludedTokens) {
80
- t62 = allIncludedTokens.map(_temp);
82
+ t72 = allIncludedTokens.map(_temp);
81
83
  $[9] = allIncludedTokens;
82
- $[10] = t62;
84
+ $[10] = t72;
83
85
  } else {
84
- t62 = $[10];
86
+ t72 = $[10];
85
87
  }
86
- const allTokensWithNativeAddresses = t62;
87
- let t72;
88
+ const allTokensWithNativeAddresses = t72;
89
+ let t82;
88
90
  if ($[11] !== allTokensWithNativeAddresses || $[12] !== currentChainId) {
89
- t72 = {
91
+ t82 = {
90
92
  [currentChainId]: allTokensWithNativeAddresses
91
93
  };
92
94
  $[11] = allTokensWithNativeAddresses;
93
95
  $[12] = currentChainId;
94
- $[13] = t72;
96
+ $[13] = t82;
95
97
  } else {
96
- t72 = $[13];
98
+ t82 = $[13];
97
99
  }
98
- let t8;
99
- if ($[14] !== allIncludedTokens || $[15] !== t72) {
100
- t8 = {
100
+ let t9;
101
+ if ($[14] !== allIncludedTokens || $[15] !== t82) {
102
+ t9 = {
101
103
  tokensToDisplay: allIncludedTokens,
102
- addressesMap: t72
104
+ addressesMap: t82
103
105
  };
104
106
  $[14] = allIncludedTokens;
105
- $[15] = t72;
106
- $[16] = t8;
107
+ $[15] = t82;
108
+ $[16] = t9;
107
109
  } else {
108
- t8 = $[16];
110
+ t9 = $[16];
109
111
  }
110
- t5 = t8;
112
+ t6 = t9;
111
113
  }
112
114
  const {
113
115
  addressesMap,
114
116
  tokensToDisplay
115
- } = t5;
116
- let t6;
117
- if ($[17] !== addressesMap) {
118
- t6 = {
119
- addressesMap
117
+ } = t6;
118
+ let t7;
119
+ if ($[17] !== addressesMap || $[18] !== intent) {
120
+ t7 = {
121
+ addressesMap,
122
+ intent
120
123
  };
121
124
  $[17] = addressesMap;
122
- $[18] = t6;
125
+ $[18] = intent;
126
+ $[19] = t7;
123
127
  } else {
124
- t6 = $[18];
128
+ t7 = $[19];
125
129
  }
126
- const attachTokenBalance = useAttachTokenBalanceMultichain(t6);
127
- let t7;
128
- if ($[19] !== attachTokenBalance || $[20] !== tokenFilter || $[21] !== tokensToDisplay) {
130
+ const attachTokenBalance = useAttachTokenBalanceMultichain(t7);
131
+ let t8;
132
+ if ($[20] !== attachTokenBalance || $[21] !== tokenFilter || $[22] !== tokensToDisplay) {
129
133
  const trimmedTokenFilter = tokenFilter.trim();
130
134
  const sorter = createSortWithClosestMatch(trimmedTokenFilter);
131
- t7 = filterTokens({
135
+ t8 = filterTokens({
132
136
  filterString: trimmedTokenFilter,
133
137
  tokenArray: tokensToDisplay
134
138
  }).map(attachTokenBalance).sort(sorter);
135
- $[19] = attachTokenBalance;
136
- $[20] = tokenFilter;
137
- $[21] = tokensToDisplay;
138
- $[22] = t7;
139
+ $[20] = attachTokenBalance;
140
+ $[21] = tokenFilter;
141
+ $[22] = tokensToDisplay;
142
+ $[23] = t8;
139
143
  } else {
140
- t7 = $[22];
144
+ t8 = $[23];
141
145
  }
142
- const filteredAndSortedTokens = t7;
146
+ const filteredAndSortedTokens = t8;
143
147
  return filteredAndSortedTokens;
144
148
  };
145
149
  const usePrefetchTokenBalances = () => {
@@ -147,7 +151,8 @@ const usePrefetchTokenBalances = () => {
147
151
  let t0;
148
152
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
149
153
  t0 = {
150
- tokenFilter: ""
154
+ tokenFilter: "",
155
+ intent: "prefetch"
151
156
  };
152
157
  $[0] = t0;
153
158
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"useAllTokensWithFilter.js","sources":["../../../src/hooks/tokens/useAllTokensWithFilter.ts"],"sourcesContent":["import { createSortWithClosestMatch } from \"@/tokens/utils/sorting\";\nimport { filterTokens } from \"@/tokens/utils/filtering\";\nimport { useAllTokens } from \"@/tokens/hooks\";\nimport type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { useMemo } from \"react\";\nimport { useNativeToken } from \"./useNativeToken\";\nimport { useAttachTokenBalanceMultichain } from \"./balances/useAttachTokenBalanceMultichain\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useChainId } from \"wagmi\";\nimport { useTokensFromAcross } from \"./useTokensFromAcross\";\nimport { emptyArray } from \"@/lib/constants\";\nimport { isAddress } from \"viem\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport type { BridgeInfoMode } from \"../swap/prices/delta/queries/bridgeInfo/useBridgeInfo\";\n\nexport const useAllTokensWithFilter = ({\n tokenFilter,\n forcedChainId,\n searchOnOtherChainsIfNothingFound,\n withETH = true,\n}: {\n tokenFilter: string;\n forcedChainId?: SupportedChainId;\n searchOnOtherChainsIfNothingFound?: boolean;\n withETH?: boolean;\n}): TokenMaybeWithUsdBalance[] => {\n const appChainId = useChainId();\n\n const allTokens = useAllTokens(forcedChainId);\n const nativeToken = useNativeToken(forcedChainId);\n\n const allIncludedTokens = withETH\n ? [nativeToken].concat(allTokens)\n : allTokens;\n\n const filteredTokens = useMemo(() => {\n return filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: allIncludedTokens,\n });\n }, [tokenFilter, allIncludedTokens]);\n\n const isTokenFilterValidAddress = isAddress(tokenFilter);\n const searchOnAllChains =\n (isTokenFilterValidAddress && searchOnOtherChainsIfNothingFound) || // if it's a token address, always search on other chains, if allowed\n // -- we want to show this token on all chains.\n (filteredTokens.length === 0 &&\n // not already found tokens on current chain &&\n // filter given, and explicitly asked to search other chains\n !!tokenFilter &&\n searchOnOtherChainsIfNothingFound);\n\n const { tokens: tokensFromAllChains, addressMap: tokensFromAllChainsMap } =\n useAllTokensFromChains({\n // no need to exclude any chains, we actually want to search on all chains in this scenario\n // excludeChains: forcedChainId ? [forcedChainId] : [appChainId],\n includeChains: !searchOnAllChains ? emptyArray : undefined,\n });\n\n const { addressesMap, tokensToDisplay } = useMemo(() => {\n if (searchOnAllChains)\n return {\n tokensToDisplay: tokensFromAllChains,\n addressesMap: tokensFromAllChainsMap,\n };\n\n const currentChainId = forcedChainId ?? appChainId;\n const allTokensWithNativeAddresses = allIncludedTokens.map(\n ({ address }) => address\n );\n\n return {\n tokensToDisplay: allIncludedTokens,\n addressesMap: {\n [currentChainId]: allTokensWithNativeAddresses,\n },\n };\n }, [\n appChainId,\n forcedChainId,\n searchOnAllChains,\n tokensFromAllChains,\n tokensFromAllChainsMap,\n allIncludedTokens,\n ]);\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap,\n });\n\n const filteredAndSortedTokens = useMemo<TokenMaybeWithUsdBalance[]>(() => {\n const trimmedTokenFilter = tokenFilter.trim();\n\n const sorter = createSortWithClosestMatch(trimmedTokenFilter);\n return filterTokens({\n filterString: trimmedTokenFilter,\n tokenArray: tokensToDisplay,\n })\n .map(attachTokenBalance)\n .sort(sorter);\n }, [attachTokenBalance, tokenFilter, tokensToDisplay]);\n\n return filteredAndSortedTokens;\n};\n\nexport const usePrefetchTokenBalances = () => {\n // will fetch balances for all tokens from tokenLists for current chain,\n // if necessary, can be made to fetch for all chains, but that may be too many requests\n useAllTokensWithFilter({\n tokenFilter: \"\",\n });\n};\n\ntype AllTokensFromChainsInput = {\n includeChains?: number[];\n excludeChains?: number[];\n};\n\n/**\n * @description\n * Returns tokens and token address maps from all chains, optionally filtered by include/exclude chains.\n * If no chains are specified, it will return all tokens from all chains.\n * If includeChains is specified, it will only return tokens from those chains.\n * If excludeChains is specified, it will exclude tokens from those chains.\n */\nexport function useAllTokensFromChains({\n includeChains,\n excludeChains,\n}: AllTokensFromChainsInput): {\n tokens: Token[];\n addressMap: Record<number, string[]>;\n} {\n const { listByChainId: tokensListsByChain } =\n useAtomValue(allTokensByChainAtom);\n\n return useMemo(() => {\n const tokens: Token[] = [];\n const addressMap: Record<number, string[]> = {};\n\n for (const [_chainId, { tokens: _tokens }] of Object.entries(\n tokensListsByChain\n )) {\n const chainId = Number(_chainId);\n if (includeChains && !includeChains.includes(chainId)) continue;\n if (excludeChains && excludeChains.includes(chainId)) continue;\n\n tokens.push(..._tokens);\n addressMap[chainId] = _tokens.map((token) => token.address);\n }\n\n return { tokens, addressMap };\n }, [tokensListsByChain, includeChains, excludeChains]);\n}\n\nexport function useAcrossTokenLists({\n tokenFilter,\n fromChainId,\n toChainId,\n mode,\n}: {\n tokenFilter: string;\n fromChainId: SupportedChainId;\n toChainId: SupportedChainId;\n mode: BridgeInfoMode;\n}) {\n const { crossTokens } = useTokensFromAcross({\n fromChainId,\n toChainId,\n mode,\n });\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap: {\n [toChainId]: crossTokens.map((token) => token.address),\n },\n });\n\n return useMemo<TokenMaybeWithUsdBalance[]>(() => {\n const trimmedTokenFilter = tokenFilter.trim();\n\n const sorter = createSortWithClosestMatch(trimmedTokenFilter);\n const filteredTokens = filterTokens({\n filterString: trimmedTokenFilter,\n tokenArray: crossTokens,\n });\n return filteredTokens.map(attachTokenBalance).sort(sorter);\n }, [attachTokenBalance, crossTokens, tokenFilter]);\n}\n"],"names":["useAllTokensWithFilter","t0","$","_c","tokenFilter","forcedChainId","searchOnOtherChainsIfNothingFound","withETH","t1","undefined","appChainId","useChainId","allTokens","useAllTokens","nativeToken","useNativeToken","t2","concat","allIncludedTokens","filteredTokens","filterTokens","filterString","trim","tokenArray","isTokenFilterValidAddress","isAddress","searchOnAllChains","length","t3","emptyArray","t4","includeChains","tokens","tokensFromAllChains","addressMap","tokensFromAllChainsMap","useAllTokensFromChains","t5","bb0","t6","tokensToDisplay","addressesMap","currentChainId","map","_temp","allTokensWithNativeAddresses","t7","t8","attachTokenBalance","useAttachTokenBalanceMultichain","trimmedTokenFilter","sorter","createSortWithClosestMatch","sort","filteredAndSortedTokens","usePrefetchTokenBalances","Symbol","for","excludeChains","listByChainId","tokensListsByChain","useAtomValue","allTokensByChainAtom","useMemo","_chainId","_tokens","Object","entries","chainId","Number","includes","push","token","address","useAcrossTokenLists","fromChainId","toChainId","mode","crossTokens","useTokensFromAcross","_temp3"],"mappings":"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"}
1
+ {"version":3,"file":"useAllTokensWithFilter.js","sources":["../../../src/hooks/tokens/useAllTokensWithFilter.ts"],"sourcesContent":["import { createSortWithClosestMatch } from \"@/tokens/utils/sorting\";\nimport { filterTokens } from \"@/tokens/utils/filtering\";\nimport { useAllTokens } from \"@/tokens/hooks\";\nimport type { Token, TokenMaybeWithUsdBalance } from \"@/tokens/state/types\";\nimport { useAtomValue } from \"@/core/store\";\nimport { useMemo } from \"react\";\nimport { useNativeToken } from \"./useNativeToken\";\nimport { useAttachTokenBalanceMultichain } from \"./balances/useAttachTokenBalanceMultichain\";\nimport type { SupportedChainId } from \"@/lib/web3/wagmi/types\";\nimport { useChainId } from \"wagmi\";\nimport { useTokensFromAcross } from \"./useTokensFromAcross\";\nimport { emptyArray } from \"@/lib/constants\";\nimport { isAddress } from \"viem\";\nimport { allTokensByChainAtom } from \"@/tokens/state/allTokensByChainAtom\";\nimport type { BridgeInfoMode } from \"../swap/prices/delta/queries/bridgeInfo/useBridgeInfo\";\n\nexport const useAllTokensWithFilter = ({\n tokenFilter,\n forcedChainId,\n searchOnOtherChainsIfNothingFound,\n withETH = true,\n intent = \"fetch\",\n}: {\n tokenFilter: string;\n forcedChainId?: SupportedChainId;\n searchOnOtherChainsIfNothingFound?: boolean;\n withETH?: boolean;\n intent?: \"fetch\" | \"prefetch\";\n}): TokenMaybeWithUsdBalance[] => {\n const appChainId = useChainId();\n\n const allTokens = useAllTokens(forcedChainId);\n const nativeToken = useNativeToken(forcedChainId);\n\n const allIncludedTokens = withETH\n ? [nativeToken].concat(allTokens)\n : allTokens;\n\n const filteredTokens = useMemo(() => {\n return filterTokens({\n filterString: tokenFilter.trim(),\n tokenArray: allIncludedTokens,\n });\n }, [tokenFilter, allIncludedTokens]);\n\n const isTokenFilterValidAddress = isAddress(tokenFilter);\n const searchOnAllChains =\n (isTokenFilterValidAddress && searchOnOtherChainsIfNothingFound) || // if it's a token address, always search on other chains, if allowed\n // -- we want to show this token on all chains.\n (filteredTokens.length === 0 &&\n // not already found tokens on current chain &&\n // filter given, and explicitly asked to search other chains\n !!tokenFilter &&\n searchOnOtherChainsIfNothingFound);\n\n const { tokens: tokensFromAllChains, addressMap: tokensFromAllChainsMap } =\n useAllTokensFromChains({\n // no need to exclude any chains, we actually want to search on all chains in this scenario\n // excludeChains: forcedChainId ? [forcedChainId] : [appChainId],\n includeChains: !searchOnAllChains ? emptyArray : undefined,\n });\n\n const { addressesMap, tokensToDisplay } = useMemo(() => {\n if (searchOnAllChains)\n return {\n tokensToDisplay: tokensFromAllChains,\n addressesMap: tokensFromAllChainsMap,\n };\n\n const currentChainId = forcedChainId ?? appChainId;\n const allTokensWithNativeAddresses = allIncludedTokens.map(\n ({ address }) => address\n );\n\n return {\n tokensToDisplay: allIncludedTokens,\n addressesMap: {\n [currentChainId]: allTokensWithNativeAddresses,\n },\n };\n }, [\n appChainId,\n forcedChainId,\n searchOnAllChains,\n tokensFromAllChains,\n tokensFromAllChainsMap,\n allIncludedTokens,\n ]);\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap,\n intent,\n });\n\n const filteredAndSortedTokens = useMemo<TokenMaybeWithUsdBalance[]>(() => {\n const trimmedTokenFilter = tokenFilter.trim();\n\n const sorter = createSortWithClosestMatch(trimmedTokenFilter);\n return filterTokens({\n filterString: trimmedTokenFilter,\n tokenArray: tokensToDisplay,\n })\n .map(attachTokenBalance)\n .sort(sorter);\n }, [attachTokenBalance, tokenFilter, tokensToDisplay]);\n\n return filteredAndSortedTokens;\n};\n\nexport const usePrefetchTokenBalances = () => {\n // will fetch balances for all tokens from tokenLists for current chain,\n // if necessary, can be made to fetch for all chains, but that may be too many requests\n useAllTokensWithFilter({\n tokenFilter: \"\",\n intent: \"prefetch\",\n });\n};\n\ntype AllTokensFromChainsInput = {\n includeChains?: number[];\n excludeChains?: number[];\n};\n\n/**\n * @description\n * Returns tokens and token address maps from all chains, optionally filtered by include/exclude chains.\n * If no chains are specified, it will return all tokens from all chains.\n * If includeChains is specified, it will only return tokens from those chains.\n * If excludeChains is specified, it will exclude tokens from those chains.\n */\nexport function useAllTokensFromChains({\n includeChains,\n excludeChains,\n}: AllTokensFromChainsInput): {\n tokens: Token[];\n addressMap: Record<number, string[]>;\n} {\n const { listByChainId: tokensListsByChain } =\n useAtomValue(allTokensByChainAtom);\n\n return useMemo(() => {\n const tokens: Token[] = [];\n const addressMap: Record<number, string[]> = {};\n\n for (const [_chainId, { tokens: _tokens }] of Object.entries(\n tokensListsByChain\n )) {\n const chainId = Number(_chainId);\n if (includeChains && !includeChains.includes(chainId)) continue;\n if (excludeChains && excludeChains.includes(chainId)) continue;\n\n tokens.push(..._tokens);\n addressMap[chainId] = _tokens.map((token) => token.address);\n }\n\n return { tokens, addressMap };\n }, [tokensListsByChain, includeChains, excludeChains]);\n}\n\nexport function useAcrossTokenLists({\n tokenFilter,\n fromChainId,\n toChainId,\n mode,\n}: {\n tokenFilter: string;\n fromChainId: SupportedChainId;\n toChainId: SupportedChainId;\n mode: BridgeInfoMode;\n}) {\n const { crossTokens } = useTokensFromAcross({\n fromChainId,\n toChainId,\n mode,\n });\n\n const attachTokenBalance = useAttachTokenBalanceMultichain({\n addressesMap: {\n [toChainId]: crossTokens.map((token) => token.address),\n },\n });\n\n return useMemo<TokenMaybeWithUsdBalance[]>(() => {\n const trimmedTokenFilter = tokenFilter.trim();\n\n const sorter = createSortWithClosestMatch(trimmedTokenFilter);\n const filteredTokens = filterTokens({\n filterString: trimmedTokenFilter,\n tokenArray: crossTokens,\n });\n return filteredTokens.map(attachTokenBalance).sort(sorter);\n }, [attachTokenBalance, crossTokens, tokenFilter]);\n}\n"],"names":["useAllTokensWithFilter","t0","$","_c","tokenFilter","forcedChainId","searchOnOtherChainsIfNothingFound","withETH","t1","intent","t2","undefined","appChainId","useChainId","allTokens","useAllTokens","nativeToken","useNativeToken","t3","concat","allIncludedTokens","filteredTokens","filterTokens","filterString","trim","tokenArray","isTokenFilterValidAddress","isAddress","searchOnAllChains","length","t4","emptyArray","t5","includeChains","tokens","tokensFromAllChains","addressMap","tokensFromAllChainsMap","useAllTokensFromChains","t6","bb0","t7","tokensToDisplay","addressesMap","currentChainId","map","_temp","allTokensWithNativeAddresses","t8","t9","attachTokenBalance","useAttachTokenBalanceMultichain","trimmedTokenFilter","sorter","createSortWithClosestMatch","sort","filteredAndSortedTokens","usePrefetchTokenBalances","Symbol","for","excludeChains","listByChainId","tokensListsByChain","useAtomValue","allTokensByChainAtom","useMemo","_chainId","_tokens","Object","entries","chainId","Number","includes","push","token","address","useAcrossTokenLists","fromChainId","toChainId","mode","crossTokens","useTokensFromAcross","_temp3"],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function useBreakpoints(): {
2
+ isOverMd: boolean;
3
+ };
4
+ //# sourceMappingURL=useBreakpoints.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBreakpoints.d.ts","sourceRoot":"","sources":["../../src/hooks/useBreakpoints.ts"],"names":[],"mappings":"AAIA,wBAAgB,cAAc;;EAK7B"}
@@ -0,0 +1,24 @@
1
+ import { d as distExports } from '../_virtual/index.js';
2
+ import { BREAKPOINTS } from '../core/constants.js';
3
+ import { offsetWidthAtom } from '../core/state/containerAtom.js';
4
+ import { useAtomValue } from '../core/store.js';
5
+
6
+ function useBreakpoints() {
7
+ const $ = distExports.c(2);
8
+ const offsetWidth = useAtomValue(offsetWidthAtom);
9
+ const isOverMd = offsetWidth !== null ? offsetWidth >= BREAKPOINTS.md : true;
10
+ let t0;
11
+ if ($[0] !== isOverMd) {
12
+ t0 = {
13
+ isOverMd
14
+ };
15
+ $[0] = isOverMd;
16
+ $[1] = t0;
17
+ } else {
18
+ t0 = $[1];
19
+ }
20
+ return t0;
21
+ }
22
+
23
+ export { useBreakpoints };
24
+ //# sourceMappingURL=useBreakpoints.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBreakpoints.js","sources":["../../src/hooks/useBreakpoints.ts"],"sourcesContent":["import { BREAKPOINTS } from \"@/core/constants\";\nimport { offsetWidthAtom } from \"@/core/state/containerAtom\";\nimport { useAtomValue } from \"@/core/store\";\n\nexport function useBreakpoints() {\n const offsetWidth = useAtomValue(offsetWidthAtom);\n const isOverMd = offsetWidth !== null ? offsetWidth >= BREAKPOINTS.md : true;\n\n return { isOverMd };\n}\n"],"names":["useBreakpoints","$","_c","offsetWidth","useAtomValue","offsetWidthAtom","isOverMd","BREAKPOINTS","md","t0"],"mappings":";;;;;AAIO,SAAAA,cAAAA,GAAA;AAAA,EAAA,MAAAC,CAAAA,GAAAC,cAAA,CAAA,CAAA;AACL,EAAA,MAAAC,WAAAA,GAAoBC,aAAaC,eAAe,CAAA;AAChD,EAAA,MAAAC,QAAAA,GAAiBH,WAAAA,KAAgB,IAAA,GAAOA,WAAAA,IAAeI,YAAWC,EAAAA,GAAjD,IAAA;AAA4D,EAAA,IAAAC,EAAAA;AAAA,EAAA,IAAAR,CAAAA,QAAAK,QAAAA,EAAA;AAEtEG,IAAAA,EAAAA,GAAA;AAAA,MAAAH;AAAAA,KAAW;AAACL,IAAAA,CAAAA,MAAAK,QAAAA;AAAAL,IAAAA,CAAAA,MAAAQ,EAAAA;AAAAA,EAAA,CAAA,MAAA;AAAAA,IAAAA,EAAAA,GAAAR,EAAA,CAAA,CAAA;AAAA,EAAA;AAAA,EAAA,OAAZQ,EAAAA;AAAY;;;;"}
@@ -14,5 +14,5 @@ export declare function computeSelectableDestChains({ enableCrossChain, deltaEna
14
14
  enabledDestChains: NonEmptyArray<SupportedChainId>;
15
15
  availableCrosses: SupportedChainId[];
16
16
  fromChainId: SupportedChainId;
17
- }): (1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[];
17
+ }): (1 | 10 | 56 | 42161 | 137 | 43114 | 8453 | 100 | 146 | 130)[];
18
18
  //# sourceMappingURL=useSelectableDestChains.d.ts.map
@@ -1,7 +1,7 @@
1
1
  import { TradeMode } from '../../core/state/tradeModeAtom';
2
2
  import { SupportedChainId } from '../web3/wagmi/types';
3
3
  export declare const deltaEnabledOnAPI: Record<SupportedChainId, boolean>;
4
- export declare const CHAINS_WITH_DELTA: (1 | 10 | 137 | 56 | 43114 | 42161 | 8453 | 100 | 146 | 130)[];
4
+ export declare const CHAINS_WITH_DELTA: (1 | 10 | 56 | 42161 | 137 | 43114 | 8453 | 100 | 146 | 130)[];
5
5
  export declare const DELTA_FALLBACK_TRADE_MODE: "swap";
6
6
  export declare const DELTA_ONLY_TRADE_MODES: TradeMode[];
7
7
  //# sourceMappingURL=delta.d.ts.map
@@ -1,4 +1,5 @@
1
- import { unichain, sonic, base, avalanche, arbitrum, polygon, gnosis, bsc, optimism, mainnet } from 'wagmi/chains';
1
+ import { arbitrum, bsc, optimism } from '../web3/wagmi/supportedChains.js';
2
+ import { unichain, sonic, base, avalanche, polygon, gnosis, mainnet } from 'wagmi/chains';
2
3
 
3
4
  const deltaEnabledOnAPI = {
4
5
  [mainnet.id]: true,
@@ -1 +1 @@
1
- {"version":3,"file":"delta.js","sources":["../../../src/lib/constants/delta.ts"],"sourcesContent":["import type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport {\n arbitrum,\n avalanche,\n base,\n bsc,\n gnosis,\n mainnet,\n optimism,\n polygon,\n sonic,\n unichain,\n} from \"../web3/wagmi/supportedChains\";\nimport type { SupportedChainId } from \"../web3/wagmi/types\";\n\nexport const deltaEnabledOnAPI: Record<SupportedChainId, boolean> = {\n [mainnet.id]: true,\n [optimism.id]: true,\n [bsc.id]: true,\n [gnosis.id]: false,\n [polygon.id]: true,\n [arbitrum.id]: true,\n [avalanche.id]: false,\n [base.id]: true,\n [sonic.id]: false,\n [unichain.id]: true,\n};\n\nexport const CHAINS_WITH_DELTA = Object.entries(deltaEnabledOnAPI).flatMap(\n ([chainId, enabled]) => (enabled ? [Number(chainId) as SupportedChainId] : [])\n);\n\nexport const DELTA_FALLBACK_TRADE_MODE = \"swap\" as const satisfies TradeMode;\nexport const DELTA_ONLY_TRADE_MODES: TradeMode[] = [\"limit\"];\n"],"names":["deltaEnabledOnAPI","mainnet","id","optimism","bsc","gnosis","polygon","arbitrum","avalanche","base","sonic","unichain","CHAINS_WITH_DELTA","Object","entries","flatMap","chainId","enabled","Number","DELTA_FALLBACK_TRADE_MODE","DELTA_ONLY_TRADE_MODES"],"mappings":";;AAeO,MAAMA,iBAAAA,GAAuD;AAAA,EAClE,CAACC,OAAAA,CAAQC,EAAE,GAAG,IAAA;AAAA,EACd,CAACC,QAAAA,CAASD,EAAE,GAAG,IAAA;AAAA,EACf,CAACE,GAAAA,CAAIF,EAAE,GAAG,IAAA;AAAA,EACV,CAACG,MAAAA,CAAOH,EAAE,GAAG,KAAA;AAAA,EACb,CAACI,OAAAA,CAAQJ,EAAE,GAAG,IAAA;AAAA,EACd,CAACK,QAAAA,CAASL,EAAE,GAAG,IAAA;AAAA,EACf,CAACM,SAAAA,CAAUN,EAAE,GAAG,KAAA;AAAA,EAChB,CAACO,IAAAA,CAAKP,EAAE,GAAG,IAAA;AAAA,EACX,CAACQ,KAAAA,CAAMR,EAAE,GAAG,KAAA;AAAA,EACZ,CAACS,QAAAA,CAAST,EAAE,GAAG;AACjB;AAEO,MAAMU,oBAAoBC,MAAAA,CAAOC,OAAAA,CAAQd,iBAAiB,CAAA,CAAEe,OAAAA,CACjE,CAAC,CAACC,OAAAA,EAASC,OAAO,CAAA,KAAOA,UAAU,CAACC,MAAAA,CAAOF,OAAO,CAAqB,CAAA,GAAI,EAC7E;AAEO,MAAMG,yBAAAA,GAA4B;AAClC,MAAMC,sBAAAA,GAAsC,CAAC,OAAO;;;;"}
1
+ {"version":3,"file":"delta.js","sources":["../../../src/lib/constants/delta.ts"],"sourcesContent":["import type { TradeMode } from \"@/core/state/tradeModeAtom\";\nimport {\n arbitrum,\n avalanche,\n base,\n bsc,\n gnosis,\n mainnet,\n optimism,\n polygon,\n sonic,\n unichain,\n} from \"../web3/wagmi/supportedChains\";\nimport type { SupportedChainId } from \"../web3/wagmi/types\";\n\nexport const deltaEnabledOnAPI: Record<SupportedChainId, boolean> = {\n [mainnet.id]: true,\n [optimism.id]: true,\n [bsc.id]: true,\n [gnosis.id]: false,\n [polygon.id]: true,\n [arbitrum.id]: true,\n [avalanche.id]: false,\n [base.id]: true,\n [sonic.id]: false,\n [unichain.id]: true,\n};\n\nexport const CHAINS_WITH_DELTA = Object.entries(deltaEnabledOnAPI).flatMap(\n ([chainId, enabled]) => (enabled ? [Number(chainId) as SupportedChainId] : [])\n);\n\nexport const DELTA_FALLBACK_TRADE_MODE = \"swap\" as const satisfies TradeMode;\nexport const DELTA_ONLY_TRADE_MODES: TradeMode[] = [\"limit\"];\n"],"names":["deltaEnabledOnAPI","mainnet","id","optimism","bsc","gnosis","polygon","arbitrum","avalanche","base","sonic","unichain","CHAINS_WITH_DELTA","Object","entries","flatMap","chainId","enabled","Number","DELTA_FALLBACK_TRADE_MODE","DELTA_ONLY_TRADE_MODES"],"mappings":";;;AAeO,MAAMA,iBAAAA,GAAuD;AAAA,EAClE,CAACC,OAAAA,CAAQC,EAAE,GAAG,IAAA;AAAA,EACd,CAACC,QAAAA,CAASD,EAAE,GAAG,IAAA;AAAA,EACf,CAACE,GAAAA,CAAIF,EAAE,GAAG,IAAA;AAAA,EACV,CAACG,MAAAA,CAAOH,EAAE,GAAG,KAAA;AAAA,EACb,CAACI,OAAAA,CAAQJ,EAAE,GAAG,IAAA;AAAA,EACd,CAACK,QAAAA,CAASL,EAAE,GAAG,IAAA;AAAA,EACf,CAACM,SAAAA,CAAUN,EAAE,GAAG,KAAA;AAAA,EAChB,CAACO,IAAAA,CAAKP,EAAE,GAAG,IAAA;AAAA,EACX,CAACQ,KAAAA,CAAMR,EAAE,GAAG,KAAA;AAAA,EACZ,CAACS,QAAAA,CAAST,EAAE,GAAG;AACjB;AAEO,MAAMU,oBAAoBC,MAAAA,CAAOC,OAAAA,CAAQd,iBAAiB,CAAA,CAAEe,OAAAA,CACjE,CAAC,CAACC,OAAAA,EAASC,OAAO,CAAA,KAAOA,UAAU,CAACC,MAAAA,CAAOF,OAAO,CAAqB,CAAA,GAAI,EAC7E;AAEO,MAAMG,yBAAAA,GAA4B;AAClC,MAAMC,sBAAAA,GAAsC,CAAC,OAAO;;;;"}
@@ -0,0 +1,2 @@
1
+ export declare const IS_MOBILE_DEVICE: boolean;
2
+ //# sourceMappingURL=mobile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile.d.ts","sourceRoot":"","sources":["../../../src/lib/constants/mobile.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,SAAmB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { isMobileDevice } from '../utils/mobile.js';
2
+
3
+ const IS_MOBILE_DEVICE = isMobileDevice();
4
+
5
+ export { IS_MOBILE_DEVICE };
6
+ //# sourceMappingURL=mobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mobile.js","sources":["../../../src/lib/constants/mobile.ts"],"sourcesContent":["import { isMobileDevice } from \"../utils/mobile\";\n\nexport const IS_MOBILE_DEVICE = isMobileDevice();\n"],"names":["IS_MOBILE_DEVICE","isMobileDevice"],"mappings":";;AAEO,MAAMA,mBAAmBC,cAAAA;;;;"}
@@ -1,4 +1,5 @@
1
- import { mainnet, polygon, bsc, avalanche } from 'wagmi/chains';
1
+ import { bsc } from '../web3/wagmi/supportedChains.js';
2
+ import { mainnet, polygon, avalanche } from 'wagmi/chains';
2
3
 
3
4
  const CHAINS_WITH_OTC = [mainnet.id, polygon.id, bsc.id, avalanche.id];
4
5
 
@@ -1 +1 @@
1
- {"version":3,"file":"otc.js","sources":["../../../src/lib/constants/otc.ts"],"sourcesContent":["import {\n avalanche,\n bsc,\n mainnet,\n polygon,\n} from \"../web3/wagmi/supportedChains\";\nimport type { SupportedChainId } from \"../web3/wagmi/types\";\n\nexport const CHAINS_WITH_OTC: SupportedChainId[] = [\n mainnet.id,\n polygon.id,\n bsc.id,\n avalanche.id,\n];\n"],"names":["CHAINS_WITH_OTC","mainnet","id","polygon","bsc","avalanche"],"mappings":";;AAQO,MAAMA,eAAAA,GAAsC,CACjDC,OAAAA,CAAQC,EAAAA,EACRC,QAAQD,EAAAA,EACRE,GAAAA,CAAIF,EAAAA,EACJG,SAAAA,CAAUH,EAAE;;;;"}
1
+ {"version":3,"file":"otc.js","sources":["../../../src/lib/constants/otc.ts"],"sourcesContent":["import {\n avalanche,\n bsc,\n mainnet,\n polygon,\n} from \"../web3/wagmi/supportedChains\";\nimport type { SupportedChainId } from \"../web3/wagmi/types\";\n\nexport const CHAINS_WITH_OTC: SupportedChainId[] = [\n mainnet.id,\n polygon.id,\n bsc.id,\n avalanche.id,\n];\n"],"names":["CHAINS_WITH_OTC","mainnet","id","polygon","bsc","avalanche"],"mappings":";;;AAQO,MAAMA,eAAAA,GAAsC,CACjDC,OAAAA,CAAQC,EAAAA,EACRC,QAAQD,EAAAA,EACRE,GAAAA,CAAIF,EAAAA,EACJG,SAAAA,CAAUH,EAAE;;;;"}
@@ -1,3 +1,4 @@
1
+ import { bsc, arbitrum, optimism } from '../web3/wagmi/supportedChains.js';
1
2
  import { ReactComponent as ForwardRef } from '../../assets/weth.svg.js';
2
3
  import WethSvgStr from '../../assets/weth.svg2.js';
3
4
  import { ReactComponent as ForwardRef$5 } from '../../assets/wmatic.svg.js';
@@ -10,7 +11,7 @@ import { ReactComponent as ForwardRef$3 } from '../../assets/wxdai.svg.js';
10
11
  import WxdaiSvgStr from '../../assets/wxdai.svg2.js';
11
12
  import { ReactComponent as ForwardRef$1 } from '../../assets/wS.svg.js';
12
13
  import wSSvgStr from '../../assets/wS.svg2.js';
13
- import { unichain, sonic, bsc, gnosis, avalanche, arbitrum, base, polygon, optimism, mainnet } from 'wagmi/chains';
14
+ import { unichain, sonic, gnosis, avalanche, base, polygon, mainnet } from 'wagmi/chains';
14
15
 
15
16
  const wrappedNativeCurrency = {
16
17
  [mainnet.id]: "0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",