@lifi/widget 3.29.1 → 3.30.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 (366) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/esm/AppProvider.d.ts +0 -1
  3. package/dist/esm/AppProvider.js +1 -1
  4. package/dist/esm/AppProvider.js.map +1 -1
  5. package/dist/esm/components/AmountInput/AmountInput.d.ts +0 -9
  6. package/dist/esm/components/AmountInput/AmountInput.js +1 -1
  7. package/dist/esm/components/AmountInput/AmountInput.js.map +1 -1
  8. package/dist/esm/components/AmountInput/AmountInputAdornment.style.d.ts +0 -1
  9. package/dist/esm/components/AmountInput/AmountInputAdornment.style.js +1 -6
  10. package/dist/esm/components/AmountInput/AmountInputAdornment.style.js.map +1 -1
  11. package/dist/esm/components/AmountInput/AmountInputEndAdornment.d.ts +1 -1
  12. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js +3 -2
  13. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
  14. package/dist/esm/components/AmountInput/PriceFormHelperText.d.ts +1 -7
  15. package/dist/esm/components/AmountInput/PriceFormHelperText.js +4 -3
  16. package/dist/esm/components/AmountInput/PriceFormHelperText.js.map +1 -1
  17. package/dist/esm/components/Avatar/Avatar.d.ts +0 -4
  18. package/dist/esm/components/Avatar/Avatar.js +1 -1
  19. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  20. package/dist/esm/components/Avatar/TokenAvatar.d.ts +0 -15
  21. package/dist/esm/components/Avatar/TokenAvatar.js +2 -2
  22. package/dist/esm/components/Avatar/TokenAvatar.js.map +1 -1
  23. package/dist/esm/components/Card/CardButton.style.d.ts +0 -1
  24. package/dist/esm/components/Card/CardButton.style.js +0 -7
  25. package/dist/esm/components/Card/CardButton.style.js.map +1 -1
  26. package/dist/esm/components/ChainSelect/ChainSelect.js +35 -18
  27. package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
  28. package/dist/esm/components/ChainSelect/useChainSelect.d.ts +1 -1
  29. package/dist/esm/components/ChainSelect/useChainSelect.js +3 -3
  30. package/dist/esm/components/ChainSelect/useChainSelect.js.map +1 -1
  31. package/dist/esm/components/Chains/AllChainsAvatar.d.ts +7 -0
  32. package/dist/esm/components/Chains/AllChainsAvatar.js +77 -0
  33. package/dist/esm/components/Chains/AllChainsAvatar.js.map +1 -0
  34. package/dist/esm/components/Chains/ChainList.d.ts +2 -1
  35. package/dist/esm/components/Chains/ChainList.js +2 -2
  36. package/dist/esm/components/Chains/ChainList.js.map +1 -1
  37. package/dist/esm/components/Chains/ChainSearchInput.js +2 -2
  38. package/dist/esm/components/Chains/ChainSearchInput.js.map +1 -1
  39. package/dist/esm/components/Chains/SelectChainContent.js +1 -1
  40. package/dist/esm/components/Chains/SelectChainContent.js.map +1 -1
  41. package/dist/esm/components/Chains/VirtualizedChainList.d.ts +2 -1
  42. package/dist/esm/components/Chains/VirtualizedChainList.js +42 -10
  43. package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -1
  44. package/dist/esm/components/FeeBreakdownTooltip.d.ts +2 -3
  45. package/dist/esm/components/FeeBreakdownTooltip.js +1 -1
  46. package/dist/esm/components/FeeBreakdownTooltip.js.map +1 -1
  47. package/dist/esm/components/Header/Header.d.ts +1 -2
  48. package/dist/esm/components/Header/Header.js +1 -1
  49. package/dist/esm/components/Header/Header.js.map +1 -1
  50. package/dist/esm/components/Header/WalletHeader.d.ts +0 -1
  51. package/dist/esm/components/Header/WalletHeader.js +1 -1
  52. package/dist/esm/components/Header/WalletHeader.js.map +1 -1
  53. package/dist/esm/components/RouteCard/RouteCardEssentials.js +1 -1
  54. package/dist/esm/components/RouteCard/RouteCardEssentials.js.map +1 -1
  55. package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  56. package/dist/esm/components/StepActions/StepActions.d.ts +1 -10
  57. package/dist/esm/components/StepActions/StepActions.js +6 -6
  58. package/dist/esm/components/StepActions/StepActions.js.map +1 -1
  59. package/dist/esm/components/Tabs/Tabs.style.d.ts +0 -1
  60. package/dist/esm/components/Tabs/Tabs.style.js +1 -1
  61. package/dist/esm/components/Tabs/Tabs.style.js.map +1 -1
  62. package/dist/esm/components/Timer/TimerContent.js +1 -2
  63. package/dist/esm/components/Timer/TimerContent.js.map +1 -1
  64. package/dist/esm/components/Token/Token.d.ts +0 -2
  65. package/dist/esm/components/Token/Token.js +2 -2
  66. package/dist/esm/components/Token/Token.js.map +1 -1
  67. package/dist/esm/components/TokenList/TokenDetailsSheet.d.ts +1 -5
  68. package/dist/esm/components/TokenList/TokenDetailsSheet.js +4 -2
  69. package/dist/esm/components/TokenList/TokenDetailsSheet.js.map +1 -1
  70. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js +2 -2
  71. package/dist/esm/components/TokenList/TokenDetailsSheetContent.js.map +1 -1
  72. package/dist/esm/components/TokenList/TokenList.js +11 -53
  73. package/dist/esm/components/TokenList/TokenList.js.map +1 -1
  74. package/dist/esm/components/TokenList/TokenListItem.d.ts +1 -4
  75. package/dist/esm/components/TokenList/TokenListItem.js +30 -26
  76. package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
  77. package/dist/esm/components/TokenList/VirtualizedTokenList.js +56 -37
  78. package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
  79. package/dist/esm/components/TokenList/types.d.ts +8 -11
  80. package/dist/esm/components/TokenList/useTokenSelect.d.ts +0 -4
  81. package/dist/esm/components/TokenList/useTokenSelect.js +3 -4
  82. package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
  83. package/dist/esm/components/TokenRate/TokenRate.js +1 -3
  84. package/dist/esm/components/TokenRate/TokenRate.js.map +1 -1
  85. package/dist/esm/components/TransactionDetails.js +2 -2
  86. package/dist/esm/components/TransactionDetails.js.map +1 -1
  87. package/dist/esm/config/version.d.ts +1 -1
  88. package/dist/esm/config/version.js +1 -1
  89. package/dist/esm/hooks/timer/time.d.ts +0 -8
  90. package/dist/esm/hooks/timer/time.js.map +1 -1
  91. package/dist/esm/hooks/timer/useTimer.d.ts +3 -2
  92. package/dist/esm/hooks/useAccountsBalancesData.d.ts +6 -0
  93. package/dist/esm/hooks/useAccountsBalancesData.js +64 -0
  94. package/dist/esm/hooks/useAccountsBalancesData.js.map +1 -0
  95. package/dist/esm/hooks/useAvailableChains.d.ts +2 -1
  96. package/dist/esm/hooks/useChain.d.ts +1 -1
  97. package/dist/esm/hooks/useChains.d.ts +1 -1
  98. package/dist/esm/hooks/useExplorer.d.ts +2 -1
  99. package/dist/esm/hooks/useFilteredByTokenBalances.d.ts +9 -0
  100. package/dist/esm/hooks/useFilteredByTokenBalances.js +78 -0
  101. package/dist/esm/hooks/useFilteredByTokenBalances.js.map +1 -0
  102. package/dist/esm/hooks/useListHeight.d.ts +0 -3
  103. package/dist/esm/hooks/useListHeight.js +2 -3
  104. package/dist/esm/hooks/useListHeight.js.map +1 -1
  105. package/dist/esm/hooks/useRoutes.js +2 -2
  106. package/dist/esm/hooks/useRoutes.js.map +1 -1
  107. package/dist/esm/hooks/useToAddressAutoPopulate.d.ts +2 -1
  108. package/dist/esm/hooks/useToken.d.ts +2 -2
  109. package/dist/esm/hooks/useToken.js +13 -10
  110. package/dist/esm/hooks/useToken.js.map +1 -1
  111. package/dist/esm/hooks/useTokenAddressBalance.d.ts +3 -3
  112. package/dist/esm/hooks/useTokenAddressBalance.js +10 -14
  113. package/dist/esm/hooks/useTokenAddressBalance.js.map +1 -1
  114. package/dist/esm/hooks/useTokenBalances.d.ts +6 -9
  115. package/dist/esm/hooks/useTokenBalances.js +57 -72
  116. package/dist/esm/hooks/useTokenBalances.js.map +1 -1
  117. package/dist/esm/hooks/useTokenBalancesQueries.d.ts +11 -0
  118. package/dist/esm/hooks/useTokenBalancesQueries.js +74 -0
  119. package/dist/esm/hooks/useTokenBalancesQueries.js.map +1 -0
  120. package/dist/esm/hooks/useTokenSearch.js +3 -3
  121. package/dist/esm/hooks/useTokenSearch.js.map +1 -1
  122. package/dist/esm/hooks/useTokens.d.ts +6 -6
  123. package/dist/esm/hooks/useTokens.js +98 -69
  124. package/dist/esm/hooks/useTokens.js.map +1 -1
  125. package/dist/esm/i18n/bn.json +3 -3
  126. package/dist/esm/i18n/de.json +3 -3
  127. package/dist/esm/i18n/en.json +3 -3
  128. package/dist/esm/i18n/es.json +3 -3
  129. package/dist/esm/i18n/fr.json +3 -3
  130. package/dist/esm/i18n/hi.json +3 -3
  131. package/dist/esm/i18n/id.json +3 -3
  132. package/dist/esm/i18n/it.json +3 -3
  133. package/dist/esm/i18n/ja.json +3 -3
  134. package/dist/esm/i18n/ko.json +3 -3
  135. package/dist/esm/i18n/pl.json +3 -3
  136. package/dist/esm/i18n/pt.json +5 -5
  137. package/dist/esm/i18n/th.json +3 -3
  138. package/dist/esm/i18n/tr.json +3 -3
  139. package/dist/esm/i18n/uk.json +3 -3
  140. package/dist/esm/i18n/vi.json +3 -3
  141. package/dist/esm/i18n/zh.json +3 -3
  142. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js +6 -1
  143. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.js.map +1 -1
  144. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +2 -4
  145. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
  146. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js.map +1 -1
  147. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js +27 -17
  148. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
  149. package/dist/esm/pages/TransactionPage/RouteTracker.d.ts +2 -1
  150. package/dist/esm/pages/TransactionPage/StatusBottomSheet.d.ts +0 -5
  151. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js +1 -1
  152. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
  153. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js +1 -1
  154. package/dist/esm/pages/TransactionPage/TokenValueBottomSheet.js.map +1 -1
  155. package/dist/esm/providers/I18nProvider/types.d.ts +4 -3
  156. package/dist/esm/providers/WalletProvider/EVMProvider.d.ts +0 -1
  157. package/dist/esm/providers/WalletProvider/EVMProvider.js +1 -1
  158. package/dist/esm/providers/WalletProvider/EVMProvider.js.map +1 -1
  159. package/dist/esm/providers/WalletProvider/SVMProvider.d.ts +0 -1
  160. package/dist/esm/providers/WalletProvider/SVMProvider.js +1 -1
  161. package/dist/esm/providers/WalletProvider/SVMProvider.js.map +1 -1
  162. package/dist/esm/providers/WalletProvider/SuiProvider.d.ts +0 -1
  163. package/dist/esm/providers/WalletProvider/SuiProvider.js +1 -1
  164. package/dist/esm/providers/WalletProvider/SuiProvider.js.map +1 -1
  165. package/dist/esm/providers/WalletProvider/UTXOProvider.d.ts +0 -1
  166. package/dist/esm/providers/WalletProvider/UTXOProvider.js +1 -1
  167. package/dist/esm/providers/WalletProvider/UTXOProvider.js.map +1 -1
  168. package/dist/esm/providers/WalletProvider/WalletProvider.d.ts +0 -1
  169. package/dist/esm/providers/WalletProvider/WalletProvider.js +1 -1
  170. package/dist/esm/providers/WalletProvider/WalletProvider.js.map +1 -1
  171. package/dist/esm/stores/bookmarks/BookmarkStore.d.ts +1 -2
  172. package/dist/esm/stores/bookmarks/BookmarkStore.js +1 -1
  173. package/dist/esm/stores/bookmarks/BookmarkStore.js.map +1 -1
  174. package/dist/esm/stores/chains/ChainOrderStore.d.ts +0 -5
  175. package/dist/esm/stores/chains/ChainOrderStore.js +2 -2
  176. package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
  177. package/dist/esm/stores/chains/createChainOrderStore.d.ts +3 -2
  178. package/dist/esm/stores/chains/createChainOrderStore.js +13 -8
  179. package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -1
  180. package/dist/esm/stores/chains/types.d.ts +4 -1
  181. package/dist/esm/stores/chains/useChainOrder.js +5 -1
  182. package/dist/esm/stores/chains/useChainOrder.js.map +1 -1
  183. package/dist/esm/stores/header/types.d.ts +2 -1
  184. package/dist/esm/stores/header/useHeaderStore.d.ts +1 -4
  185. package/dist/esm/stores/header/useHeaderStore.js +3 -3
  186. package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
  187. package/dist/esm/stores/inputMode/useInputModeStore.d.ts +1 -1
  188. package/dist/esm/stores/routes/RouteExecutionStore.d.ts +2 -2
  189. package/dist/esm/stores/routes/RouteExecutionStore.js +1 -1
  190. package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -1
  191. package/dist/esm/stores/settings/types.d.ts +3 -3
  192. package/dist/esm/stores/settings/types.js.map +1 -1
  193. package/dist/esm/stores/settings/useSettingsStore.d.ts +1 -2
  194. package/dist/esm/stores/settings/useSettingsStore.js +1 -1
  195. package/dist/esm/stores/settings/useSettingsStore.js.map +1 -1
  196. package/dist/esm/stores/settings/useSplitSubvariantStore.d.ts +1 -4
  197. package/dist/esm/stores/settings/useSplitSubvariantStore.js +3 -3
  198. package/dist/esm/stores/settings/useSplitSubvariantStore.js.map +1 -1
  199. package/dist/esm/types/events.d.ts +0 -4
  200. package/dist/esm/types/events.js +0 -4
  201. package/dist/esm/types/events.js.map +1 -1
  202. package/dist/esm/types/token.d.ts +7 -2
  203. package/dist/esm/utils/chainType.d.ts +1 -0
  204. package/dist/esm/utils/chainType.js +2 -0
  205. package/dist/esm/utils/chainType.js.map +1 -1
  206. package/dist/esm/utils/fees.d.ts +1 -4
  207. package/dist/esm/utils/fees.js +3 -3
  208. package/dist/esm/utils/fees.js.map +1 -1
  209. package/dist/esm/utils/format.js +1 -1
  210. package/dist/esm/utils/format.js.map +1 -1
  211. package/dist/esm/utils/navigationRoutes.d.ts +2 -1
  212. package/dist/esm/utils/token.d.ts +8 -0
  213. package/dist/esm/utils/token.js +29 -0
  214. package/dist/esm/utils/token.js.map +1 -0
  215. package/dist/esm/utils/tokenList.d.ts +9 -0
  216. package/dist/esm/utils/tokenList.js +106 -0
  217. package/dist/esm/utils/tokenList.js.map +1 -0
  218. package/package.json +10 -10
  219. package/package.json.tmp +9 -9
  220. package/src/AppProvider.tsx +1 -1
  221. package/src/components/AmountInput/AmountInput.tsx +1 -1
  222. package/src/components/AmountInput/AmountInputAdornment.style.tsx +1 -7
  223. package/src/components/AmountInput/AmountInputEndAdornment.tsx +3 -2
  224. package/src/components/AmountInput/PriceFormHelperText.tsx +4 -3
  225. package/src/components/Avatar/Avatar.tsx +1 -1
  226. package/src/components/Avatar/TokenAvatar.tsx +2 -2
  227. package/src/components/Card/CardButton.style.tsx +0 -8
  228. package/src/components/ChainSelect/ChainSelect.tsx +112 -40
  229. package/src/components/ChainSelect/useChainSelect.ts +3 -3
  230. package/src/components/Chains/AllChainsAvatar.tsx +113 -0
  231. package/src/components/Chains/ChainList.tsx +3 -0
  232. package/src/components/Chains/ChainSearchInput.tsx +2 -2
  233. package/src/components/Chains/SelectChainContent.tsx +1 -0
  234. package/src/components/Chains/VirtualizedChainList.tsx +80 -12
  235. package/src/components/FeeBreakdownTooltip.tsx +2 -5
  236. package/src/components/Header/Header.tsx +1 -1
  237. package/src/components/Header/WalletHeader.tsx +1 -1
  238. package/src/components/RouteCard/RouteCardEssentials.tsx +1 -1
  239. package/src/components/SendToWallet/SendToWalletButton.tsx +0 -1
  240. package/src/components/StepActions/StepActions.tsx +6 -6
  241. package/src/components/Tabs/Tabs.style.tsx +1 -1
  242. package/src/components/Timer/TimerContent.tsx +1 -2
  243. package/src/components/Token/Token.tsx +2 -2
  244. package/src/components/TokenList/TokenDetailsSheet.tsx +4 -9
  245. package/src/components/TokenList/TokenDetailsSheetContent.tsx +2 -6
  246. package/src/components/TokenList/TokenList.tsx +57 -129
  247. package/src/components/TokenList/TokenListItem.tsx +177 -154
  248. package/src/components/TokenList/VirtualizedTokenList.tsx +88 -48
  249. package/src/components/TokenList/types.ts +15 -11
  250. package/src/components/TokenList/useTokenSelect.ts +3 -9
  251. package/src/components/TokenRate/TokenRate.tsx +0 -1
  252. package/src/components/TransactionDetails.tsx +2 -3
  253. package/src/config/version.ts +1 -1
  254. package/src/hooks/timer/time.ts +0 -10
  255. package/src/hooks/timer/useTimer.ts +2 -2
  256. package/src/hooks/useAccountsBalancesData.ts +101 -0
  257. package/src/hooks/useAvailableChains.ts +1 -1
  258. package/src/hooks/useExplorer.ts +1 -1
  259. package/src/hooks/useFilteredByTokenBalances.ts +130 -0
  260. package/src/hooks/useListHeight.ts +2 -3
  261. package/src/hooks/useRoutes.ts +4 -2
  262. package/src/hooks/useToAddressAutoPopulate.ts +1 -1
  263. package/src/hooks/useToken.ts +31 -13
  264. package/src/hooks/useTokenAddressBalance.ts +15 -20
  265. package/src/hooks/useTokenBalances.ts +81 -80
  266. package/src/hooks/useTokenBalancesQueries.ts +94 -0
  267. package/src/hooks/useTokenSearch.ts +4 -7
  268. package/src/hooks/useTokens.ts +153 -87
  269. package/src/i18n/bn.json +3 -3
  270. package/src/i18n/de.json +3 -3
  271. package/src/i18n/en.json +3 -3
  272. package/src/i18n/es.json +3 -3
  273. package/src/i18n/fr.json +3 -3
  274. package/src/i18n/hi.json +3 -3
  275. package/src/i18n/id.json +3 -3
  276. package/src/i18n/it.json +3 -3
  277. package/src/i18n/ja.json +3 -3
  278. package/src/i18n/ko.json +3 -3
  279. package/src/i18n/pl.json +3 -3
  280. package/src/i18n/pt.json +5 -5
  281. package/src/i18n/th.json +3 -3
  282. package/src/i18n/tr.json +3 -3
  283. package/src/i18n/uk.json +3 -3
  284. package/src/i18n/vi.json +3 -3
  285. package/src/i18n/zh.json +3 -3
  286. package/src/pages/SelectTokenPage/SearchTokenInput.tsx +5 -0
  287. package/src/pages/SelectTokenPage/SelectTokenPage.tsx +7 -13
  288. package/src/pages/SettingsPage/SettingsCard/SettingCardExpandable.tsx +0 -1
  289. package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.tsx +33 -30
  290. package/src/pages/TransactionPage/RouteTracker.tsx +1 -1
  291. package/src/pages/TransactionPage/StatusBottomSheet.tsx +5 -3
  292. package/src/pages/TransactionPage/TokenValueBottomSheet.tsx +1 -1
  293. package/src/providers/I18nProvider/types.ts +3 -3
  294. package/src/providers/WalletProvider/EVMProvider.tsx +1 -1
  295. package/src/providers/WalletProvider/SVMProvider.tsx +1 -1
  296. package/src/providers/WalletProvider/SuiProvider.tsx +1 -1
  297. package/src/providers/WalletProvider/UTXOProvider.tsx +1 -1
  298. package/src/providers/WalletProvider/WalletProvider.tsx +1 -1
  299. package/src/stores/bookmarks/BookmarkStore.tsx +1 -1
  300. package/src/stores/chains/ChainOrderStore.tsx +3 -7
  301. package/src/stores/chains/createChainOrderStore.ts +17 -8
  302. package/src/stores/chains/types.ts +3 -1
  303. package/src/stores/chains/useChainOrder.ts +5 -1
  304. package/src/stores/header/types.ts +1 -1
  305. package/src/stores/header/useHeaderStore.tsx +3 -3
  306. package/src/stores/inputMode/useInputModeStore.ts +1 -1
  307. package/src/stores/routes/RouteExecutionStore.tsx +4 -3
  308. package/src/stores/settings/types.ts +2 -6
  309. package/src/stores/settings/useSettingsStore.ts +1 -1
  310. package/src/stores/settings/useSplitSubvariantStore.tsx +5 -4
  311. package/src/types/events.ts +0 -4
  312. package/src/types/token.ts +11 -2
  313. package/src/utils/chainType.ts +2 -0
  314. package/src/utils/fees.ts +3 -3
  315. package/src/utils/format.ts +2 -1
  316. package/src/utils/navigationRoutes.ts +1 -1
  317. package/src/utils/token.ts +67 -0
  318. package/src/utils/tokenList.ts +172 -0
  319. package/dist/esm/AppDrawer.style.d.ts +0 -1
  320. package/dist/esm/AppDrawer.style.js +0 -12
  321. package/dist/esm/AppDrawer.style.js.map +0 -1
  322. package/dist/esm/components/Select.d.ts +0 -3
  323. package/dist/esm/components/Select.js +0 -35
  324. package/dist/esm/components/Select.js.map +0 -1
  325. package/dist/esm/components/StepActions/StepFees.d.ts +0 -5
  326. package/dist/esm/components/StepActions/StepFees.js +0 -32
  327. package/dist/esm/components/StepActions/StepFees.js.map +0 -1
  328. package/dist/esm/components/TokenList/utils.d.ts +0 -2
  329. package/dist/esm/components/TokenList/utils.js +0 -35
  330. package/dist/esm/components/TokenList/utils.js.map +0 -1
  331. package/dist/esm/pages/MainPage/MainPage.style.d.ts +0 -1
  332. package/dist/esm/pages/MainPage/MainPage.style.js +0 -8
  333. package/dist/esm/pages/MainPage/MainPage.style.js.map +0 -1
  334. package/dist/esm/pages/SelectNativeTokenPage.d.ts +0 -2
  335. package/dist/esm/pages/SelectNativeTokenPage.js +0 -23
  336. package/dist/esm/pages/SelectNativeTokenPage.js.map +0 -1
  337. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.style.d.ts +0 -1
  338. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.style.js +0 -6
  339. package/dist/esm/pages/SelectTokenPage/SearchTokenInput.style.js.map +0 -1
  340. package/dist/esm/pages/SelectTokenPage/types.d.ts +0 -4
  341. package/dist/esm/pages/SelectTokenPage/types.js +0 -6
  342. package/dist/esm/pages/SelectTokenPage/types.js.map +0 -1
  343. package/dist/esm/providers/WidgetProvider/utils.d.ts +0 -5
  344. package/dist/esm/providers/WidgetProvider/utils.js +0 -17
  345. package/dist/esm/providers/WidgetProvider/utils.js.map +0 -1
  346. package/dist/esm/stores/form/useFieldController.d.ts +0 -11
  347. package/dist/esm/stores/form/useFieldController.js +0 -20
  348. package/dist/esm/stores/form/useFieldController.js.map +0 -1
  349. package/dist/esm/stores/form/useValidation.d.ts +0 -2
  350. package/dist/esm/stores/form/useValidation.js +0 -14
  351. package/dist/esm/stores/form/useValidation.js.map +0 -1
  352. package/dist/esm/stores/form/useValidationActions.d.ts +0 -2
  353. package/dist/esm/stores/form/useValidationActions.js +0 -10
  354. package/dist/esm/stores/form/useValidationActions.js.map +0 -1
  355. package/src/AppDrawer.style.tsx +0 -12
  356. package/src/components/Select.tsx +0 -42
  357. package/src/components/StepActions/StepFees.tsx +0 -49
  358. package/src/components/TokenList/utils.ts +0 -42
  359. package/src/pages/MainPage/MainPage.style.tsx +0 -8
  360. package/src/pages/SelectNativeTokenPage.tsx +0 -47
  361. package/src/pages/SelectTokenPage/SearchTokenInput.style.tsx +0 -6
  362. package/src/pages/SelectTokenPage/types.ts +0 -4
  363. package/src/providers/WidgetProvider/utils.ts +0 -26
  364. package/src/stores/form/useFieldController.ts +0 -31
  365. package/src/stores/form/useValidation.ts +0 -15
  366. package/src/stores/form/useValidationActions.ts +0 -12
@@ -1,96 +1,97 @@
1
- import { getTokenBalances } from '@lifi/sdk'
2
- import { useAccount } from '@lifi/wallet-management'
3
- import { useQuery } from '@tanstack/react-query'
4
- import { formatUnits } from 'viem'
1
+ import { useMemo } from 'react'
5
2
  import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
6
- import type { TokenAmount } from '../types/token.js'
7
- import { getQueryKey } from '../utils/queries.js'
3
+ import type { FormType } from '../stores/form/types.js'
4
+ import { isSearchMatch, processTokenBalances } from '../utils/tokenList.js'
5
+ import { useAccountsBalancesData } from './useAccountsBalancesData.js'
6
+ import { useTokenBalancesQueries } from './useTokenBalancesQueries.js'
8
7
  import { useTokens } from './useTokens.js'
9
8
 
10
- const defaultRefetchInterval = 32_000
9
+ export const useTokenBalances = (
10
+ selectedChainId?: number,
11
+ formType?: FormType,
12
+ isAllNetworks?: boolean,
13
+ search?: string
14
+ ) => {
15
+ const {
16
+ allTokens,
17
+ isLoading: isTokensLoading,
18
+ isSearchLoading,
19
+ } = useTokens(formType, search, isAllNetworks ? undefined : selectedChainId)
11
20
 
12
- export const useTokenBalances = (selectedChainId?: number) => {
13
- const { tokens, featuredTokens, popularTokens, chain, isLoading } =
14
- useTokens(selectedChainId)
15
- const { account } = useAccount({ chainType: chain?.chainType })
16
- const { keyPrefix } = useWidgetConfig()
21
+ const { data: accountsWithAllTokens, isLoading: isAccountsLoading } =
22
+ useAccountsBalancesData(selectedChainId, formType, isAllNetworks, allTokens)
17
23
 
18
24
  const isBalanceLoadingEnabled =
19
- Boolean(account.address) &&
20
- Boolean(tokens?.length) &&
21
- Boolean(selectedChainId)
25
+ Boolean(accountsWithAllTokens) && !isAccountsLoading
22
26
 
23
- const {
24
- data: tokensWithBalance,
25
- isLoading: isBalanceLoading,
26
- refetch,
27
- } = useQuery({
28
- queryKey: [
29
- getQueryKey('token-balances', keyPrefix),
30
- account.address,
31
- selectedChainId,
32
- tokens?.length,
33
- ],
34
- queryFn: async ({ queryKey: [, accountAddress] }) => {
35
- const tokensWithBalance: TokenAmount[] = await getTokenBalances(
36
- accountAddress as string,
37
- tokens!
38
- )
27
+ const { data: allTokensWithBalances, isLoading: isBalanceQueriesLoading } =
28
+ useTokenBalancesQueries(accountsWithAllTokens, isBalanceLoadingEnabled)
39
29
 
40
- if (!tokensWithBalance?.length) {
41
- return tokens as TokenAmount[]
42
- }
30
+ const { tokens: configTokens } = useWidgetConfig()
43
31
 
44
- const sortFn = (a: TokenAmount, b: TokenAmount) =>
45
- Number.parseFloat(formatUnits(b.amount ?? 0n, b.decimals)) *
46
- Number.parseFloat(b.priceUSD ?? '0') -
47
- Number.parseFloat(formatUnits(a.amount ?? 0n, a.decimals)) *
48
- Number.parseFloat(a.priceUSD ?? '0')
32
+ const isBalanceLoading =
33
+ (isBalanceQueriesLoading || isAccountsLoading) &&
34
+ !allTokensWithBalances?.length
49
35
 
50
- const featuredTokens: TokenAmount[] = []
51
- const tokensWithAmount: TokenAmount[] = []
52
- const popularTokens: TokenAmount[] = []
53
- const allTokens: TokenAmount[] = []
36
+ const displayedTokensList = useMemo(() => {
37
+ const tokensByChain = isAllNetworks
38
+ ? Object.values(allTokens ?? {}).flat()
39
+ : selectedChainId
40
+ ? allTokens?.[selectedChainId]
41
+ : undefined
42
+ return tokensByChain?.filter((t) => isSearchMatch(t, search)) ?? []
43
+ }, [allTokens, isAllNetworks, selectedChainId, search])
54
44
 
55
- tokensWithBalance.forEach((token) => {
56
- if (token.amount) {
57
- token.featured = false
58
- token.popular = false
59
- }
60
- if (token.featured) {
61
- featuredTokens.push(token)
62
- } else if (token.amount) {
63
- tokensWithAmount.push(token)
64
- } else if (token.popular) {
65
- popularTokens.push(token)
66
- } else {
67
- allTokens.push(token)
68
- }
69
- })
45
+ const displayedTokensWithBalances = useMemo(() => {
46
+ const balancesByChain = isAllNetworks
47
+ ? allTokensWithBalances
48
+ : selectedChainId
49
+ ? allTokensWithBalances?.filter((t) => t.chainId === selectedChainId)
50
+ : undefined
51
+ const displayedTokensSet = new Set(
52
+ displayedTokensList?.map(
53
+ (t) => `${t.chainId}-${t.address.toLowerCase()}`
54
+ ) || []
55
+ )
56
+ return balancesByChain?.filter((token) => {
57
+ const tokenKey = `${token.chainId}-${token.address.toLowerCase()}`
58
+ // Check if token is in displayed list and has amount
59
+ const isInDisplayedList = displayedTokensSet.has(tokenKey) && token.amount
60
+ // Check if it matches search (for cached appended tokens)
61
+ const matchesSearch = isSearchMatch(token, search)
62
+ return isInDisplayedList || matchesSearch
63
+ })
64
+ }, [
65
+ allTokensWithBalances,
66
+ displayedTokensList,
67
+ search,
68
+ selectedChainId,
69
+ isAllNetworks,
70
+ ])
70
71
 
71
- tokensWithAmount.sort(sortFn)
72
-
73
- const result = [
74
- ...featuredTokens,
75
- ...tokensWithAmount,
76
- ...popularTokens,
77
- ...allTokens,
78
- ]
79
- return result
80
- },
81
- enabled: isBalanceLoadingEnabled,
82
- refetchInterval: defaultRefetchInterval,
83
- staleTime: defaultRefetchInterval,
84
- })
72
+ const { processedTokens, withCategories } = useMemo(() => {
73
+ return processTokenBalances(
74
+ isBalanceLoading,
75
+ isAllNetworks ?? false,
76
+ configTokens,
77
+ selectedChainId,
78
+ displayedTokensList,
79
+ displayedTokensWithBalances
80
+ )
81
+ }, [
82
+ isBalanceLoading,
83
+ isAllNetworks,
84
+ configTokens,
85
+ selectedChainId,
86
+ displayedTokensList,
87
+ displayedTokensWithBalances,
88
+ ])
85
89
 
86
90
  return {
87
- tokens,
88
- tokensWithBalance,
89
- featuredTokens,
90
- popularTokens,
91
- chain,
92
- isLoading,
93
- isBalanceLoading: isBalanceLoading && isBalanceLoadingEnabled,
94
- refetch,
91
+ tokens: processedTokens ?? [],
92
+ withCategories,
93
+ isTokensLoading,
94
+ isSearchLoading,
95
+ isBalanceLoading,
95
96
  }
96
97
  }
@@ -0,0 +1,94 @@
1
+ import { getTokenBalances, type TokenExtended } from '@lifi/sdk'
2
+ import { useQueries } from '@tanstack/react-query'
3
+ import { useMemo, useRef } from 'react'
4
+ import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
5
+ import type { TokenAmount, TokenAmountExtended } from '../types/token.js'
6
+ import { getQueryKey } from '../utils/queries.js'
7
+
8
+ const defaultRefetchInterval = 32_000
9
+
10
+ export const useTokenBalancesQueries = (
11
+ accountsWithTokens?: Record<string, Record<number, TokenExtended[]>>,
12
+ isBalanceLoadingEnabled?: boolean
13
+ ) => {
14
+ const { keyPrefix } = useWidgetConfig()
15
+ const firstLoadStartRef = useRef<number | null>(null)
16
+
17
+ const queryConfig = useMemo(() => {
18
+ if (!accountsWithTokens) {
19
+ return []
20
+ }
21
+ return Object.entries(accountsWithTokens).flatMap(
22
+ ([accountAddress, chainTokens]) =>
23
+ Object.entries(chainTokens).map(([chainIdStr, tokens]) => {
24
+ const chainId = Number(chainIdStr)
25
+ return {
26
+ queryKey: [
27
+ getQueryKey('token-balances', keyPrefix),
28
+ accountAddress,
29
+ chainId,
30
+ tokens.length,
31
+ ],
32
+ queryFn: async (): Promise<TokenAmountExtended[]> => {
33
+ if (!accountAddress || !tokens) {
34
+ return []
35
+ }
36
+ return await getTokenBalances(accountAddress, tokens)
37
+ },
38
+ enabled: isBalanceLoadingEnabled,
39
+ refetchInterval: defaultRefetchInterval,
40
+ staleTime: defaultRefetchInterval,
41
+ keepPreviousData: true,
42
+ }
43
+ })
44
+ )
45
+ }, [accountsWithTokens, isBalanceLoadingEnabled, keyPrefix])
46
+
47
+ const result = useQueries({
48
+ queries: queryConfig,
49
+ combine: (results) => {
50
+ const now = Date.now()
51
+
52
+ const hasLoadingQueries = results.some((result) => result.isLoading)
53
+ if (hasLoadingQueries && firstLoadStartRef.current === null) {
54
+ firstLoadStartRef.current = now
55
+ }
56
+
57
+ const allComplete = results.every(
58
+ (result) => result.isSuccess || result.isError
59
+ )
60
+
61
+ // Reset the start time when all queries complete
62
+ if (allComplete) {
63
+ firstLoadStartRef.current = null
64
+ }
65
+
66
+ // Calculate time since first load started
67
+ const timeSinceStart = firstLoadStartRef.current
68
+ ? now - firstLoadStartRef.current
69
+ : 0
70
+
71
+ // Return results if all complete OR if 500ms have passed since first query started
72
+ const shouldReturnResults = allComplete || timeSinceStart >= 500
73
+
74
+ if (shouldReturnResults) {
75
+ const data: TokenAmount[] = results
76
+ .flatMap((result) => result.data || [])
77
+ .filter((token) => token.amount)
78
+ return {
79
+ data,
80
+ isLoading: !allComplete,
81
+ isError: results.some((result) => result.isError),
82
+ }
83
+ }
84
+
85
+ return {
86
+ data: undefined,
87
+ isLoading: true,
88
+ isError: false,
89
+ }
90
+ },
91
+ })
92
+
93
+ return result
94
+ }
@@ -35,18 +35,15 @@ export const useTokenSearch = (
35
35
  new Set(
36
36
  tokens
37
37
  .filter((t) => t.chainId === token.chainId)
38
- .map((t) => t.address)
38
+ .map((t) => t.address.toLowerCase())
39
39
  ),
40
40
  formType
41
41
  )
42
42
 
43
43
  // Return undefined if the token is denied
44
44
  if (
45
- !isFormItemAllowed(
46
- token,
47
- filteredConfigTokens,
48
- formType,
49
- (t) => t.address
45
+ !isFormItemAllowed(token, filteredConfigTokens, formType, (t) =>
46
+ t.address.toLowerCase()
50
47
  )
51
48
  ) {
52
49
  return undefined
@@ -58,7 +55,7 @@ export const useTokenSearch = (
58
55
  if (
59
56
  data &&
60
57
  !data.tokens[chainId as number]?.some(
61
- (t) => t.address === token.address
58
+ (t) => t.address.toLowerCase() === token.address.toLowerCase()
62
59
  )
63
60
  ) {
64
61
  const clonedData = { ...data, tokens: { ...data.tokens } }
@@ -1,111 +1,177 @@
1
- import { ChainType, getTokens } from '@lifi/sdk'
2
- import { useQuery } from '@tanstack/react-query'
1
+ import {
2
+ ChainType,
3
+ getToken,
4
+ getTokens,
5
+ type TokensExtendedResponse,
6
+ } from '@lifi/sdk'
7
+ import { useQuery, useQueryClient } from '@tanstack/react-query'
3
8
  import { useMemo } from 'react'
4
9
  import { useWidgetConfig } from '../providers/WidgetProvider/WidgetProvider.js'
5
- import type { TokenAmount } from '../types/token.js'
10
+ import type { FormType } from '../stores/form/types.js'
11
+ import {
12
+ defaultChainIdsByType,
13
+ getChainTypeFromAddress,
14
+ } from '../utils/chainType.js'
15
+ import { isItemAllowed } from '../utils/item.js'
6
16
  import { getQueryKey } from '../utils/queries.js'
7
- import { useChains } from './useChains.js'
17
+ import { filterAllowedTokens } from '../utils/token.js'
18
+
19
+ export const useTokens = (
20
+ formType?: FormType,
21
+ search?: string,
22
+ chainId?: number
23
+ ) => {
24
+ const {
25
+ tokens: configTokens,
26
+ chains: chainsConfig,
27
+ keyPrefix,
28
+ } = useWidgetConfig()
29
+
30
+ const { isLoading: isSearchLoading } = useBackgroundTokenSearch(
31
+ search,
32
+ chainId
33
+ )
8
34
 
9
- export const useTokens = (selectedChainId?: number) => {
10
- const { tokens: configTokens, keyPrefix } = useWidgetConfig()
11
35
  const { data, isLoading } = useQuery({
12
36
  queryKey: [getQueryKey('tokens', keyPrefix)],
13
- queryFn: () =>
14
- getTokens({
15
- chainTypes: [
16
- ChainType.EVM,
17
- ChainType.SVM,
18
- ChainType.UTXO,
19
- ChainType.MVM,
20
- ],
21
- orderBy: 'volumeUSD24H',
22
- limit: 1000,
23
- }),
37
+ queryFn: async ({ signal }) => {
38
+ const chainTypes = [
39
+ ChainType.EVM,
40
+ ChainType.SVM,
41
+ ChainType.UTXO,
42
+ ChainType.MVM,
43
+ ].filter((chainType) => isItemAllowed(chainType, chainsConfig?.types))
44
+ const tokensResponse: TokensExtendedResponse = await getTokens(
45
+ {
46
+ chainTypes,
47
+ orderBy: 'volumeUSD24H',
48
+ extended: true,
49
+ limit: 1000,
50
+ },
51
+ { signal }
52
+ )
53
+ return tokensResponse
54
+ },
24
55
  refetchInterval: 300_000,
25
56
  staleTime: 300_000,
26
57
  })
27
- const {
28
- chains,
29
- isLoading: isSupportedChainsLoading,
30
- getChainById,
31
- } = useChains()
32
-
33
- const filteredData = useMemo(() => {
34
- if (isSupportedChainsLoading || !data) {
35
- return
36
- }
37
- const chain = getChainById(selectedChainId, chains)
38
- const chainAllowed = selectedChainId && chain
39
- if (!chainAllowed) {
40
- return
41
- }
42
- let filteredTokens = data.tokens?.[selectedChainId] || []
43
- const includedTokens = configTokens?.include?.filter(
44
- (token) => token.chainId === selectedChainId
45
- )
46
- if (includedTokens?.length) {
47
- filteredTokens = [...includedTokens, ...filteredTokens]
48
- }
49
58
 
50
- const filteredTokensMap = new Map(
51
- filteredTokens.map((token) => [token.address, token])
59
+ const allTokens = useMemo(() => {
60
+ return filterAllowedTokens(
61
+ data?.tokens,
62
+ configTokens,
63
+ chainsConfig,
64
+ formType
52
65
  )
66
+ }, [data?.tokens, configTokens, chainsConfig, formType])
53
67
 
54
- const [popularTokens, featuredTokens] = (
55
- ['popular', 'featured'] as ('popular' | 'featured')[]
56
- ).map((tokenType) => {
57
- const typedConfigTokens = configTokens?.[tokenType]?.filter(
58
- (token) => token.chainId === selectedChainId
68
+ return {
69
+ allTokens,
70
+ isLoading,
71
+ isSearchLoading,
72
+ }
73
+ }
74
+
75
+ // This hook is used to search for tokens in the background.
76
+ // It updates the main tokens cache with the search results,
77
+ // if any of the tokens are not already in the cache.
78
+ const useBackgroundTokenSearch = (search?: string, chainId?: number) => {
79
+ const { chains: chainsConfig, keyPrefix } = useWidgetConfig()
80
+ const queryClient = useQueryClient()
81
+
82
+ const { isLoading: isSearchLoading } = useQuery({
83
+ queryKey: [getQueryKey('tokens-search', keyPrefix), search, chainId],
84
+ queryFn: async ({ queryKey, signal }) => {
85
+ const [, searchQuery, chainId] = queryKey as [string, string, number]
86
+ const chainTypes = [
87
+ ChainType.EVM,
88
+ ChainType.SVM,
89
+ ChainType.UTXO,
90
+ ChainType.MVM,
91
+ ].filter((chainType) => isItemAllowed(chainType, chainsConfig?.types))
92
+ const tokensResponse: TokensExtendedResponse = await getTokens(
93
+ {
94
+ chainTypes,
95
+ orderBy: 'volumeUSD24H',
96
+ extended: true,
97
+ search: searchQuery,
98
+ limit: 1000,
99
+ },
100
+ { signal }
59
101
  )
60
102
 
61
- const populatedConfigTokens = typedConfigTokens?.map((token) => {
62
- // Mark token as popular
63
- ;(token as TokenAmount)[tokenType] = true
64
- // Check if this token exists in the filteredTokensMap and add priceUSD if it does
65
- const matchingFilteredToken = filteredTokensMap.get(token.address)
66
- if (matchingFilteredToken?.priceUSD) {
67
- ;(token as TokenAmount).priceUSD = matchingFilteredToken.priceUSD
103
+ // If the chainId is not provided, try to get it from the search query
104
+ let _chainId = chainId
105
+ if (!_chainId) {
106
+ const chainType = getChainTypeFromAddress(searchQuery)
107
+ if (chainType) {
108
+ _chainId = defaultChainIdsByType[chainType]
68
109
  }
69
- if (!token.logoURI && matchingFilteredToken) {
70
- ;(token as TokenAmount).logoURI = matchingFilteredToken.logoURI
110
+ }
111
+
112
+ // Fallback: If the main search returned no tokens for the specific chainId,
113
+ // fetch a single token using the /token endpoint
114
+ if (_chainId && searchQuery) {
115
+ const existingTokens = tokensResponse.tokens[_chainId] || []
116
+ if (!existingTokens.length) {
117
+ const token = await getToken(_chainId, searchQuery, { signal })
118
+ if (token) {
119
+ tokensResponse.tokens[_chainId] = [token]
120
+ }
71
121
  }
72
- return token
73
- }) as TokenAmount[]
122
+ }
74
123
 
75
- if (populatedConfigTokens?.length) {
76
- const configTokenAddresses = new Set(
77
- populatedConfigTokens?.map((token) => token.address)
78
- )
79
- filteredTokens = filteredTokens.filter(
80
- (token) => !configTokenAddresses.has(token.address)
124
+ // Merge search results into main tokens cache
125
+ if (searchQuery) {
126
+ queryClient.setQueriesData<TokensExtendedResponse>(
127
+ { queryKey: [getQueryKey('tokens', keyPrefix)] },
128
+ (data) => {
129
+ if (!data) {
130
+ return data
131
+ }
132
+
133
+ const clonedData = { ...data, tokens: { ...data.tokens } }
134
+
135
+ Object.entries(tokensResponse.tokens).forEach(
136
+ ([chainId, searchTokens]) => {
137
+ const chainIdNum = Number(chainId)
138
+ const existingTokens = clonedData.tokens[chainIdNum] || []
139
+
140
+ const existingTokenAddresses = new Set(
141
+ existingTokens.map((token) => token.address.toLowerCase())
142
+ )
143
+
144
+ // Find tokens in search results that don't exist in the main list
145
+ const newTokens = searchTokens.filter(
146
+ (searchToken) =>
147
+ !existingTokenAddresses.has(
148
+ searchToken.address.toLowerCase()
149
+ )
150
+ )
151
+
152
+ // Add new tokens to the main list
153
+ if (newTokens.length > 0) {
154
+ clonedData.tokens[chainIdNum] = [
155
+ ...existingTokens,
156
+ ...newTokens,
157
+ ]
158
+ }
159
+ }
160
+ )
161
+
162
+ return clonedData
163
+ }
81
164
  )
82
- populatedConfigTokens.push(...filteredTokens)
83
- filteredTokens = populatedConfigTokens
84
165
  }
85
166
 
86
- return populatedConfigTokens
87
- })
88
-
89
- return {
90
- tokens: filteredTokens,
91
- featuredTokens,
92
- popularTokens,
93
- chain,
94
- }
95
- }, [
96
- chains,
97
- configTokens,
98
- data,
99
- getChainById,
100
- isSupportedChainsLoading,
101
- selectedChainId,
102
- ])
167
+ return tokensResponse
168
+ },
169
+ enabled: !!search,
170
+ refetchInterval: 300_000,
171
+ staleTime: 300_000,
172
+ })
103
173
 
104
174
  return {
105
- tokens: filteredData?.tokens,
106
- featuredTokens: filteredData?.featuredTokens,
107
- popularTokens: filteredData?.popularTokens,
108
- chain: filteredData?.chain,
109
- isLoading,
175
+ isLoading: isSearchLoading,
110
176
  }
111
177
  }
package/src/i18n/bn.json CHANGED
@@ -212,6 +212,7 @@
212
212
  "slippage": ""
213
213
  },
214
214
  "main": {
215
+ "allNetworks": "",
215
216
  "allTokens": "",
216
217
  "bridgeStepDetails": "",
217
218
  "checkoutStepDetails": "",
@@ -310,10 +311,9 @@
310
311
  "tokenOnChainAmount": "",
311
312
  "tokenSearch": "",
312
313
  "valueLoss": "মান ক্ষতি",
313
- "searchChain": "",
314
- "searchChains": "",
315
314
  "searchBridges": "",
316
- "searchExchanges": ""
315
+ "searchExchanges": "",
316
+ "searchNetwork": ""
317
317
  },
318
318
  "settings": {
319
319
  "appearance": "",
package/src/i18n/de.json CHANGED
@@ -212,6 +212,7 @@
212
212
  "slippage": ""
213
213
  },
214
214
  "main": {
215
+ "allNetworks": "",
215
216
  "allTokens": "",
216
217
  "bridgeStepDetails": "",
217
218
  "checkoutStepDetails": "",
@@ -310,10 +311,9 @@
310
311
  "tokenOnChainAmount": "",
311
312
  "tokenSearch": "",
312
313
  "valueLoss": "Wertverlust",
313
- "searchChain": "",
314
- "searchChains": "",
315
314
  "searchBridges": "",
316
- "searchExchanges": ""
315
+ "searchExchanges": "",
316
+ "searchNetwork": ""
317
317
  },
318
318
  "settings": {
319
319
  "appearance": "",
package/src/i18n/en.json CHANGED
@@ -212,6 +212,7 @@
212
212
  "slippage": "The maximum percentage difference between the expected price, and the actual price at which a transfer is executed. This value can be changed in settings."
213
213
  },
214
214
  "main": {
215
+ "allNetworks": "All networks",
215
216
  "allTokens": "All tokens",
216
217
  "bridgeStepDetails": "Bridge from {{from}} to {{to}} via {{tool}}",
217
218
  "checkoutStepDetails": "Purchase via {{tool}}",
@@ -310,10 +311,9 @@
310
311
  "tokenOnChainAmount": "{{amount, numberExt}} {{tokenSymbol}} on {{chainName}}",
311
312
  "tokenSearch": "Search by token or address",
312
313
  "valueLoss": "Value loss",
313
- "searchChain": "Search chain",
314
- "searchChains": "Search by chain name",
315
314
  "searchBridges": "Search by bridge name",
316
- "searchExchanges": "Search by exchange name"
315
+ "searchExchanges": "Search by exchange name",
316
+ "searchNetwork": "Search network"
317
317
  },
318
318
  "settings": {
319
319
  "appearance": "Appearance",
package/src/i18n/es.json CHANGED
@@ -212,6 +212,7 @@
212
212
  "slippage": "El porcentaje máximo de diferencia entre el precio esperado, y el precio real al que se ejecuta una transferencia. Este valor puede cambiarse en ajustes."
213
213
  },
214
214
  "main": {
215
+ "allNetworks": "",
215
216
  "allTokens": "Todos los tokens",
216
217
  "bridgeStepDetails": "Puente de {{from}} a {{to}} vía {{tool}}",
217
218
  "checkoutStepDetails": "Comprar a través de {{tool}}",
@@ -310,10 +311,9 @@
310
311
  "tokenOnChainAmount": "",
311
312
  "tokenSearch": "",
312
313
  "valueLoss": "Valor perdido",
313
- "searchChain": "",
314
- "searchChains": "Buscar por nombre de cadena",
315
314
  "searchBridges": "Buscar por nombre de puente",
316
- "searchExchanges": "Buscar por nombre de intercambio"
315
+ "searchExchanges": "Buscar por nombre de intercambio",
316
+ "searchNetwork": ""
317
317
  },
318
318
  "settings": {
319
319
  "appearance": "",
package/src/i18n/fr.json CHANGED
@@ -212,6 +212,7 @@
212
212
  "slippage": ""
213
213
  },
214
214
  "main": {
215
+ "allNetworks": "",
215
216
  "allTokens": "Tous les tokens",
216
217
  "bridgeStepDetails": "Transférer de {{from}} à {{to}} via {{tool}}",
217
218
  "checkoutStepDetails": "Achat via {{tool}}",
@@ -310,10 +311,9 @@
310
311
  "tokenOnChainAmount": "",
311
312
  "tokenSearch": "",
312
313
  "valueLoss": "Perte de valeur",
313
- "searchChain": "",
314
- "searchChains": "",
315
314
  "searchBridges": "",
316
- "searchExchanges": ""
315
+ "searchExchanges": "",
316
+ "searchNetwork": ""
317
317
  },
318
318
  "settings": {
319
319
  "appearance": "",