@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
@@ -4,8 +4,13 @@ import { createWithEqualityFn } from 'zustand/traditional'
4
4
  import type { PersistStoreProps } from '../types.js'
5
5
  import type { ChainOrderState } from './types.js'
6
6
 
7
- export const maxChainsToOrder = 9
8
- export const maxChainsToShow = 10
7
+ // (10 tiles: 9 + 1 for "All chains")
8
+ export const maxGridItemsToShow = 10
9
+ export const maxChainsToShow = maxGridItemsToShow - 1
10
+ // If there are more than maxChainsToShow chains to show,
11
+ // -1 tile to show a button "+ N" more chains
12
+ export const maxChainsToOrder = maxChainsToShow - 1
13
+
9
14
  const defaultChainState = {
10
15
  from: [],
11
16
  to: [],
@@ -16,6 +21,7 @@ export const createChainOrderStore = ({ namePrefix }: PersistStoreProps) =>
16
21
  persist(
17
22
  (set, get) => ({
18
23
  chainOrder: defaultChainState,
24
+ isAllNetworks: true,
19
25
  availableChains: defaultChainState,
20
26
  pinnedChains: [],
21
27
  initializeChains: (chainIds, type) => {
@@ -53,7 +59,7 @@ export const createChainOrderStore = ({ namePrefix }: PersistStoreProps) =>
53
59
  },
54
60
  }
55
61
  })
56
- return get().chainOrder[type]
62
+ return get().chainOrder[type].slice(0, maxChainsToOrder)
57
63
  },
58
64
  setChain: (chainId, type) => {
59
65
  const state = get()
@@ -64,11 +70,10 @@ export const createChainOrderStore = ({ namePrefix }: PersistStoreProps) =>
64
70
  return
65
71
  }
66
72
  set((state: ChainOrderState) => {
67
- const chainOrder = state.chainOrder[type].slice()
68
- chainOrder.unshift(chainId)
69
- if (chainOrder.length > maxChainsToOrder) {
70
- chainOrder.pop()
71
- }
73
+ const chainOrder = [chainId, ...state.chainOrder[type]].slice(
74
+ 0,
75
+ maxChainsToOrder
76
+ )
72
77
  return {
73
78
  chainOrder: {
74
79
  ...state.chainOrder,
@@ -77,6 +82,9 @@ export const createChainOrderStore = ({ namePrefix }: PersistStoreProps) =>
77
82
  }
78
83
  })
79
84
  },
85
+ setIsAllNetworks: (isAllNetworks) => {
86
+ set({ isAllNetworks })
87
+ },
80
88
  setPinnedChain: (chainId) => {
81
89
  set((state: ChainOrderState) => {
82
90
  const pinnedChains = [...state.pinnedChains]
@@ -97,6 +105,7 @@ export const createChainOrderStore = ({ namePrefix }: PersistStoreProps) =>
97
105
  version: 2,
98
106
  partialize: (state) => ({
99
107
  chainOrder: state.chainOrder,
108
+ isAllNetworks: state.isAllNetworks,
100
109
  pinnedChains: state.pinnedChains,
101
110
  }),
102
111
  }
@@ -1,6 +1,6 @@
1
1
  import type { FormType } from '../form/types.js'
2
2
 
3
- export interface ChainOrderProps {
3
+ interface ChainOrderProps {
4
4
  chainOrder: {
5
5
  from: number[]
6
6
  to: number[]
@@ -9,11 +9,13 @@ export interface ChainOrderProps {
9
9
  from: number[]
10
10
  to: number[]
11
11
  }
12
+ isAllNetworks: boolean
12
13
  pinnedChains: number[]
13
14
  }
14
15
 
15
16
  export interface ChainOrderState extends ChainOrderProps {
16
17
  initializeChains(chainIds: number[], type: FormType): number[]
17
18
  setChain(chainId: number, type: FormType): void
19
+ setIsAllNetworks(isAllNetworks: boolean): void
18
20
  setPinnedChain(chainId: number): void
19
21
  }
@@ -1,8 +1,12 @@
1
1
  import type { FormType } from '../form/types.js'
2
2
  import { useChainOrderStore } from './ChainOrderStore.js'
3
+ import { maxChainsToOrder } from './createChainOrderStore.js'
3
4
 
4
5
  export const useChainOrder = (
5
6
  type: FormType
6
7
  ): [number[], (chainId: number, type: FormType) => void] => {
7
- return useChainOrderStore((state) => [state.chainOrder[type], state.setChain])
8
+ return useChainOrderStore((state) => [
9
+ state.chainOrder[type].slice(0, maxChainsToOrder),
10
+ state.setChain,
11
+ ])
8
12
  }
@@ -3,7 +3,7 @@ import type { UseBoundStoreWithEqualityFn } from 'zustand/traditional'
3
3
 
4
4
  export type HeaderStore = UseBoundStoreWithEqualityFn<StoreApi<HeaderState>>
5
5
 
6
- export interface HeaderStateBase {
6
+ interface HeaderStateBase {
7
7
  element?: React.ReactNode | null
8
8
  title?: string
9
9
  headerHeight: number
@@ -4,7 +4,7 @@ import { createWithEqualityFn } from 'zustand/traditional'
4
4
  import type { PersistStoreProviderProps } from '../types.js'
5
5
  import type { HeaderState, HeaderStore } from './types.js'
6
6
 
7
- export const HeaderStoreContext = createContext<HeaderStore | null>(null)
7
+ const HeaderStoreContext = createContext<HeaderStore | null>(null)
8
8
 
9
9
  export function HeaderStoreProvider({ children }: PersistStoreProviderProps) {
10
10
  const storeRef = useRef<HeaderStore>(null)
@@ -18,7 +18,7 @@ export function HeaderStoreProvider({ children }: PersistStoreProviderProps) {
18
18
  )
19
19
  }
20
20
 
21
- export function useHeaderStoreContext() {
21
+ function useHeaderStoreContext() {
22
22
  const useStore = useContext(HeaderStoreContext)
23
23
  if (!useStore) {
24
24
  throw new Error(
@@ -54,7 +54,7 @@ export function useSetHeaderHeight() {
54
54
  }
55
55
  }
56
56
 
57
- export const createHeaderStore = () =>
57
+ const createHeaderStore = () =>
58
58
  createWithEqualityFn<HeaderState>(
59
59
  (set, get) => ({
60
60
  headerHeight: 108, // a basic default height
@@ -1,7 +1,7 @@
1
1
  import { create } from 'zustand'
2
2
  import type { FormTypeProps } from '../form/types.js'
3
3
 
4
- export type InputMode = 'amount' | 'price'
4
+ type InputMode = 'amount' | 'price'
5
5
 
6
6
  interface InputModeState {
7
7
  inputMode: Record<'from' | 'to', InputMode>
@@ -6,12 +6,13 @@ import type { PersistStoreProviderProps } from '../types.js'
6
6
  import { createRouteExecutionStore } from './createRouteExecutionStore.js'
7
7
  import type { RouteExecutionState } from './types.js'
8
8
 
9
- export type RouteExecutionStore = UseBoundStoreWithEqualityFn<
9
+ type RouteExecutionStore = UseBoundStoreWithEqualityFn<
10
10
  StoreApi<RouteExecutionState>
11
11
  >
12
12
 
13
- export const RouteExecutionStoreContext =
14
- createContext<RouteExecutionStore | null>(null)
13
+ const RouteExecutionStoreContext = createContext<RouteExecutionStore | null>(
14
+ null
15
+ )
15
16
 
16
17
  export function RouteExecutionStoreProvider({
17
18
  children,
@@ -9,11 +9,7 @@ export type ValueSetter<S> = <K extends keyof S>(
9
9
  value: S[Extract<K, string>]
10
10
  ) => void
11
11
 
12
- export type ValueGetter<S> = <K extends keyof S>(key: K) => S[K]
13
-
14
- export type ValuesSetter<S> = <K extends keyof S>(
15
- values: Record<K, S[Extract<K, string>]>
16
- ) => void
12
+ type ValueGetter<S> = <K extends keyof S>(key: K) => S[K]
17
13
 
18
14
  export const SettingsToolTypes = ['Bridges', 'Exchanges'] as const
19
15
  export type SettingsToolType = (typeof SettingsToolTypes)[number]
@@ -48,7 +44,7 @@ export interface SettingsActions {
48
44
 
49
45
  export type SettingsState = SettingsProps & SettingsActions
50
46
 
51
- export interface SendToWalletState {
47
+ interface SendToWalletState {
52
48
  showSendToWallet: boolean
53
49
  }
54
50
 
@@ -18,7 +18,7 @@ export const defaultConfigurableSettings: Pick<
18
18
  gasPrice: 'normal',
19
19
  }
20
20
 
21
- export const defaultSettings: SettingsProps = {
21
+ const defaultSettings: SettingsProps = {
22
22
  gasPrice: 'normal',
23
23
  enabledAutoRefuel: true,
24
24
  disabledBridges: [],
@@ -8,8 +8,9 @@ import type {
8
8
  SplitSubvariantStore,
9
9
  } from './types.js'
10
10
 
11
- export const SplitSubvariantStoreContext =
12
- createContext<SplitSubvariantStore | null>(null)
11
+ const SplitSubvariantStoreContext = createContext<SplitSubvariantStore | null>(
12
+ null
13
+ )
13
14
 
14
15
  const shouldRecreateStore = (
15
16
  store: SplitSubvariantStore,
@@ -34,7 +35,7 @@ export function SplitSubvariantStoreProvider({
34
35
  )
35
36
  }
36
37
 
37
- export function useSplitSubvariantStoreContext() {
38
+ function useSplitSubvariantStoreContext() {
38
39
  const useStore = useContext(SplitSubvariantStoreContext)
39
40
  if (!useStore) {
40
41
  throw new Error(
@@ -51,7 +52,7 @@ export function useSplitSubvariantStore<T>(
51
52
  return useStore(useShallow(selector))
52
53
  }
53
54
 
54
- export const createSplitSubvariantStore = ({ state }: SplitSubvariantProps) =>
55
+ const createSplitSubvariantStore = ({ state }: SplitSubvariantProps) =>
55
56
  createWithEqualityFn<SplitSubvariantState>(
56
57
  (set) => ({
57
58
  state,
@@ -20,10 +20,6 @@ export enum WidgetEvent {
20
20
  * @deprecated Use `PageEntered` event instead.
21
21
  */
22
22
  ReviewTransactionPageEntered = 'reviewTransactionPageEntered',
23
- /**
24
- * @deprecated use useWalletManagementEvents hook.
25
- */
26
- WalletConnected = 'walletConnected',
27
23
  WidgetExpanded = 'widgetExpanded',
28
24
  PageEntered = 'pageEntered',
29
25
  FormFieldChanged = 'formFieldChanged',
@@ -1,6 +1,15 @@
1
- import type { TokenAmount as SDKTokenAmount } from '@lifi/sdk'
1
+ import type {
2
+ TokenAmount as SDKTokenAmount,
3
+ TokenAmountExtended as SDKTokenAmountExtended,
4
+ } from '@lifi/sdk'
2
5
 
3
- export interface TokenAmount extends SDKTokenAmount {
6
+ interface TokenFlags {
4
7
  featured?: boolean
5
8
  popular?: boolean
6
9
  }
10
+
11
+ export interface TokenAmount extends SDKTokenAmount, TokenFlags {}
12
+
13
+ export interface TokenAmountExtended
14
+ extends SDKTokenAmountExtended,
15
+ TokenFlags {}
@@ -8,6 +8,7 @@ const chainTypeAddressValidation = {
8
8
  [ChainType.SVM]: isSVMAddress,
9
9
  [ChainType.MVM]: isValidSuiAddress,
10
10
  [ChainType.UTXO]: isUTXOAddress,
11
+ [ChainType.TVM]: () => false,
11
12
  }
12
13
 
13
14
  export const getChainTypeFromAddress = (
@@ -27,4 +28,5 @@ export const defaultChainIdsByType = {
27
28
  [ChainType.SVM]: ChainId.SOL,
28
29
  [ChainType.UTXO]: ChainId.BTC,
29
30
  [ChainType.MVM]: ChainId.SUI,
31
+ [ChainType.TVM]: ChainId.TRN,
30
32
  }
package/src/utils/fees.ts CHANGED
@@ -31,7 +31,7 @@ export const getAccumulatedFeeCostsBreakdown = (
31
31
  }
32
32
  }
33
33
 
34
- export const getGasCostsBreakdown = (route: RouteExtended): FeesBreakdown[] => {
34
+ const getGasCostsBreakdown = (route: RouteExtended): FeesBreakdown[] => {
35
35
  return Array.from(
36
36
  route.steps
37
37
  .reduce((groupedGasCosts, step) => {
@@ -62,7 +62,7 @@ export const getGasCostsBreakdown = (route: RouteExtended): FeesBreakdown[] => {
62
62
  )
63
63
  }
64
64
 
65
- export const getFeeCostsBreakdown = (
65
+ const getFeeCostsBreakdown = (
66
66
  route: RouteExtended,
67
67
  included?: boolean
68
68
  ): FeesBreakdown[] => {
@@ -101,7 +101,7 @@ export const getFeeCostsBreakdown = (
101
101
  )
102
102
  }
103
103
 
104
- export const getStepFeeCostsBreakdown = (
104
+ const getStepFeeCostsBreakdown = (
105
105
  feeCosts: FeeCost[] | GasCost[]
106
106
  ): FeesBreakdown => {
107
107
  const { token } = feeCosts[0]
@@ -33,7 +33,7 @@ export function formatSlippage(
33
33
  if (Number.isNaN(parsedSlippage)) {
34
34
  return defaultValue
35
35
  }
36
- if (parsedSlippage > 100) {
36
+ if (parsedSlippage >= 100) {
37
37
  return '100'
38
38
  }
39
39
  if (parsedSlippage < 0) {
@@ -73,6 +73,7 @@ export function formatInputAmount(
73
73
  }
74
74
  integer = integer.replace(/^0+|-/, '')
75
75
  fraction = fraction.replace(/(0+)$/, '')
76
+
76
77
  return `${integer || (fraction ? '0' : '')}${fraction ? `.${fraction}` : ''}`
77
78
  }
78
79
 
@@ -65,7 +65,7 @@ export const backButtonRoutes = [
65
65
  navigationRoutes.configuredWallets,
66
66
  ]
67
67
 
68
- export type NavigationRouteTypeKeys = keyof typeof navigationRoutes
68
+ type NavigationRouteTypeKeys = keyof typeof navigationRoutes
69
69
 
70
70
  export type NavigationRouteType =
71
71
  (typeof navigationRoutes)[NavigationRouteTypeKeys]
@@ -0,0 +1,67 @@
1
+ import type { BaseToken, TokenExtended } from '@lifi/sdk'
2
+ import type { FormType } from '../stores/form/types.js'
3
+ import type { WidgetChains, WidgetTokens } from '../types/widget.js'
4
+ import {
5
+ getConfigItemSets,
6
+ isFormItemAllowed,
7
+ isItemAllowedForSets,
8
+ } from './item.js'
9
+
10
+ export const filterAllowedTokens = (
11
+ dataTokens: { [chainId: number]: TokenExtended[] } | undefined,
12
+ configTokens?: WidgetTokens,
13
+ chainsConfig?: WidgetChains,
14
+ formType?: FormType
15
+ ): { [chainId: number]: TokenExtended[] } | undefined => {
16
+ if (!dataTokens) {
17
+ return
18
+ }
19
+
20
+ const includedTokens = configTokens?.include || []
21
+ const allChainIds = Array.from(
22
+ new Set([
23
+ ...includedTokens.map((t) => t.chainId),
24
+ ...Object.keys(dataTokens),
25
+ ])
26
+ ).map((chainId) => Number(chainId))
27
+
28
+ const configChainIdsSet = getConfigItemSets(
29
+ chainsConfig,
30
+ (chainIds: number[]) => new Set(chainIds),
31
+ formType
32
+ )
33
+ const allowedChainIds = configChainIdsSet
34
+ ? allChainIds.filter((chainId) =>
35
+ isItemAllowedForSets(chainId, configChainIdsSet)
36
+ )
37
+ : allChainIds
38
+
39
+ const allowedTokensByChain: { [chainId: number]: TokenExtended[] } = {}
40
+ for (const chainId of allowedChainIds) {
41
+ const chainTokens = [
42
+ ...dataTokens[chainId],
43
+ ...includedTokens.filter((t) => Number(t.chainId) === chainId),
44
+ ]
45
+
46
+ const allowedAddresses = getConfigItemSets(
47
+ configTokens,
48
+ (tokens: BaseToken[]) =>
49
+ new Set(
50
+ tokens
51
+ .filter((t) => Number(t.chainId) === chainId)
52
+ .map((t) => t.address.toLowerCase())
53
+ ),
54
+ formType
55
+ )
56
+
57
+ const filtered = chainTokens.filter((token) =>
58
+ isFormItemAllowed(token, allowedAddresses, formType, (t) =>
59
+ t.address.toLowerCase()
60
+ )
61
+ )
62
+
63
+ allowedTokensByChain[chainId] = filtered
64
+ }
65
+
66
+ return allowedTokensByChain
67
+ }
@@ -0,0 +1,172 @@
1
+ import type { TokenExtended, WalletTokenExtended } from '@lifi/sdk'
2
+ import { formatUnits } from 'viem'
3
+ import type { TokenAmount, TokenAmountExtended } from '../types/token.js'
4
+ import type { WidgetTokens } from '../types/widget.js'
5
+
6
+ const sortByBalances = (a: TokenAmount, b: TokenAmount) =>
7
+ Number.parseFloat(formatUnits(b.amount ?? 0n, b.decimals)) *
8
+ Number.parseFloat(b.priceUSD ?? '0') -
9
+ Number.parseFloat(formatUnits(a.amount ?? 0n, a.decimals)) *
10
+ Number.parseFloat(a.priceUSD ?? '0')
11
+
12
+ const sortByVolume = (a: TokenExtended, b: TokenExtended) =>
13
+ (b.volumeUSD24H ?? 0) - (a.volumeUSD24H ?? 0)
14
+
15
+ export const processTokenBalances = (
16
+ isBalanceLoading: boolean,
17
+ isAllNetworks: boolean,
18
+ configTokens?: WidgetTokens,
19
+ selectedChainId?: number,
20
+ tokens?: TokenExtended[],
21
+ tokensWithBalances?: TokenAmount[]
22
+ ) => {
23
+ if (isBalanceLoading) {
24
+ if (isAllNetworks) {
25
+ const sortedTokens = [...(tokens ?? [])].sort(sortByVolume)
26
+ return {
27
+ processedTokens: sortedTokens,
28
+ withCategories: false,
29
+ }
30
+ } else {
31
+ return processedTypedTokens(
32
+ tokens ?? [],
33
+ [],
34
+ selectedChainId,
35
+ configTokens
36
+ )
37
+ }
38
+ }
39
+
40
+ const sortedTokensWithBalances = [...(tokensWithBalances ?? [])].sort(
41
+ sortByBalances
42
+ )
43
+
44
+ const tokensWithBalancesSet = new Set(
45
+ sortedTokensWithBalances.map(
46
+ (token) => `${token.chainId}-${token.address.toLowerCase()}`
47
+ )
48
+ )
49
+ const tokensWithoutBalances =
50
+ tokens
51
+ ?.filter((token) => {
52
+ const tokenKey = `${token.chainId}-${token.address.toLowerCase()}`
53
+ return !tokensWithBalancesSet.has(tokenKey)
54
+ })
55
+ .sort(sortByVolume) ?? []
56
+
57
+ if (isAllNetworks) {
58
+ return {
59
+ processedTokens: [...sortedTokensWithBalances, ...tokensWithoutBalances],
60
+ withCategories: false,
61
+ }
62
+ } else {
63
+ return processedTypedTokens(
64
+ tokensWithoutBalances,
65
+ sortedTokensWithBalances,
66
+ selectedChainId,
67
+ configTokens
68
+ )
69
+ }
70
+ }
71
+
72
+ // NB: only for non-all-networks
73
+ const processedTypedTokens = (
74
+ tokens: TokenAmount[],
75
+ tokensWithBalances: TokenAmount[],
76
+ selectedChainId?: number,
77
+ configTokens?: WidgetTokens
78
+ ) => {
79
+ const filteredTokensMap = new Map(
80
+ tokens.map((token) => [token.address, token])
81
+ )
82
+
83
+ const featuredTokensFromConfig: TokenAmount[] = []
84
+ const popularTokensFromConfig: TokenAmount[] = []
85
+
86
+ ;(['popular', 'featured'] as const).forEach((tokenType) => {
87
+ const typedTokens = configTokens?.[tokenType]?.filter(
88
+ (token) => token.chainId === selectedChainId
89
+ )
90
+
91
+ typedTokens?.forEach((token) => {
92
+ const tokenAmount = { ...token } as TokenAmount
93
+ tokenAmount[tokenType] = true
94
+
95
+ const match = filteredTokensMap.get(token.address)
96
+ if (match?.priceUSD) {
97
+ tokenAmount.priceUSD = match.priceUSD
98
+ }
99
+ if (!token.logoURI && match?.logoURI) {
100
+ tokenAmount.logoURI = match.logoURI
101
+ }
102
+
103
+ if (tokenType === 'popular') {
104
+ popularTokensFromConfig.push(tokenAmount)
105
+ } else {
106
+ featuredTokensFromConfig.push(tokenAmount)
107
+ }
108
+ })
109
+ })
110
+
111
+ // Filter out config-added tokens from main list
112
+ const configTokenAddresses = new Set(
113
+ [...popularTokensFromConfig, ...featuredTokensFromConfig].map((t) =>
114
+ t.address.toLowerCase()
115
+ )
116
+ )
117
+
118
+ const remainingTokens = tokens.filter(
119
+ (token) => !configTokenAddresses.has(token.address.toLowerCase())
120
+ )
121
+
122
+ const otherTokens: TokenAmount[] = []
123
+
124
+ for (const token of remainingTokens) {
125
+ if (token.featured) {
126
+ featuredTokensFromConfig.push(token)
127
+ } else if (token.popular) {
128
+ popularTokensFromConfig.push(token)
129
+ } else {
130
+ otherTokens.push(token)
131
+ }
132
+ }
133
+
134
+ const sortedFeaturedTokens = [...featuredTokensFromConfig].sort(sortByVolume)
135
+ const sortedPopularTokens = [...popularTokensFromConfig].sort(sortByVolume)
136
+ const sortedOtherTokens = [...otherTokens].sort(sortByVolume)
137
+
138
+ return {
139
+ processedTokens: [
140
+ ...sortedFeaturedTokens,
141
+ ...tokensWithBalances,
142
+ ...sortedPopularTokens,
143
+ ...sortedOtherTokens,
144
+ ],
145
+ withCategories: Boolean(
146
+ featuredTokensFromConfig?.length || popularTokensFromConfig?.length
147
+ ),
148
+ }
149
+ }
150
+
151
+ export const isSearchMatch = (
152
+ token: TokenExtended | TokenAmountExtended,
153
+ search?: string
154
+ ) => {
155
+ if (!search) {
156
+ return true
157
+ }
158
+
159
+ const searchLowerCase = search.toLowerCase()
160
+ return (
161
+ token.name?.toLowerCase().includes(searchLowerCase) ||
162
+ token.symbol
163
+ ?.replaceAll('₮', 'T')
164
+ .toLowerCase()
165
+ .includes(searchLowerCase) ||
166
+ token.address?.toLowerCase().includes(searchLowerCase)
167
+ )
168
+ }
169
+
170
+ export const isSupportedToken = (token: WalletTokenExtended) => {
171
+ return token.name && token.symbol && token.priceUSD && token.chainId
172
+ }
@@ -1 +0,0 @@
1
- export declare const CloseButtonLayout: import("@emotion/styled").StyledComponent<import("@mui/material").IconButtonOwnProps & Omit<import("@mui/material").ButtonBaseOwnProps, "classes"> & import("@mui/material/OverridableComponent").CommonProps & Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "color" | "children" | "sx" | "style" | "className" | "tabIndex" | "classes" | "size" | "action" | "disabled" | "centerRipple" | "disableRipple" | "disableTouchRipple" | "focusRipple" | "focusVisibleClassName" | "LinkComponent" | "onFocusVisible" | "TouchRippleProps" | "touchRippleRef" | "disableFocusRipple" | "edge" | "loading" | "loadingIndicator"> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>, {}, {}>;
@@ -1,12 +0,0 @@
1
- import { IconButton, styled } from '@mui/material';
2
- export const CloseButtonLayout = styled(IconButton)(() => ({
3
- position: 'absolute',
4
- top: '12px',
5
- right: '26px',
6
- zIndex: 1,
7
- height: '40px',
8
- width: '40px',
9
- alignItems: 'center',
10
- justifyContent: 'center',
11
- }));
12
- //# sourceMappingURL=AppDrawer.style.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AppDrawer.style.js","sourceRoot":"","sources":["../../src/AppDrawer.style.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;IACzD,QAAQ,EAAE,UAAU;IACpB,GAAG,EAAE,MAAM;IACX,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,MAAM;IACd,KAAK,EAAE,MAAM;IACb,UAAU,EAAE,QAAQ;IACpB,cAAc,EAAE,QAAQ;CACzB,CAAC,CAAC,CAAA"}
@@ -1,3 +0,0 @@
1
- export declare const Select: import("@emotion/styled").StyledComponent<(import("@mui/material").SelectProps<unknown> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme>) & {
2
- dense?: boolean;
3
- }, {}, {}>;
@@ -1,35 +0,0 @@
1
- import { inputBaseClasses, listItemIconClasses, Select as MuiSelect, outlinedInputClasses, selectClasses, styled, } from '@mui/material';
2
- export const Select = styled(MuiSelect, {
3
- shouldForwardProp: (prop) => prop !== 'dense',
4
- })(({ theme }) => ({
5
- backgroundColor: theme.vars.palette.common.white,
6
- [`.${inputBaseClasses.input}`]: {
7
- padding: theme.spacing(2),
8
- display: 'flex',
9
- alignItems: 'center',
10
- },
11
- [`.${selectClasses.icon}`]: {
12
- right: 10,
13
- color: theme.vars.palette.text.primary,
14
- },
15
- [`.${listItemIconClasses.root}`]: {
16
- minWidth: 38,
17
- },
18
- [`.${outlinedInputClasses.notchedOutline}`]: {
19
- display: 'none',
20
- },
21
- ...theme.applyStyles('dark', {
22
- backgroundColor: theme.vars.palette.background.paper,
23
- }),
24
- variants: [
25
- {
26
- props: ({ dense }) => dense,
27
- style: {
28
- [`.${inputBaseClasses.input}`]: {
29
- padding: theme.spacing(1.625, 2, 1.5, 2),
30
- },
31
- },
32
- },
33
- ],
34
- }));
35
- //# sourceMappingURL=Select.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../../src/components/Select.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,MAAM,IAAI,SAAS,EACnB,oBAAoB,EACpB,aAAa,EACb,MAAM,GACP,MAAM,eAAe,CAAA;AAEtB,MAAM,CAAC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE;IACtC,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,OAAO;CAC9C,CAAC,CAAsB,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;IACtC,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK;IAChD,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE;QAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACzB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;KACrB;IACD,CAAC,IAAI,aAAa,CAAC,IAAI,EAAE,CAAC,EAAE;QAC1B,KAAK,EAAE,EAAE;QACT,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO;KACvC;IACD,CAAC,IAAI,mBAAmB,CAAC,IAAI,EAAE,CAAC,EAAE;QAChC,QAAQ,EAAE,EAAE;KACb;IACD,CAAC,IAAI,oBAAoB,CAAC,cAAc,EAAE,CAAC,EAAE;QAC3C,OAAO,EAAE,MAAM;KAChB;IACD,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE;QAC3B,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK;KACrD,CAAC;IACF,QAAQ,EAAE;QACR;YACE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK;YAC3B,KAAK,EAAE;gBACL,CAAC,IAAI,gBAAgB,CAAC,KAAK,EAAE,CAAC,EAAE;oBAC9B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;iBACzC;aACF;SACF;KACF;CACF,CAAC,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- import type { LiFiStepExtended } from '@lifi/sdk';
2
- import type { TypographyProps } from '@mui/material';
3
- export declare const StepFees: React.FC<TypographyProps & {
4
- step: LiFiStepExtended;
5
- }>;