@lifi/widget 3.40.11 → 4.0.0-alpha.2

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 (606) hide show
  1. package/dist/esm/AppDefault.d.ts +8 -0
  2. package/dist/esm/AppDefault.js +231 -14
  3. package/dist/esm/AppDefault.js.map +1 -1
  4. package/dist/esm/AppLayout.d.ts +1 -0
  5. package/dist/esm/AppLayout.js +19 -0
  6. package/dist/esm/AppLayout.js.map +1 -0
  7. package/dist/esm/AppProvider.js +7 -20
  8. package/dist/esm/AppProvider.js.map +1 -1
  9. package/dist/esm/components/ActiveTransactions/ActiveTransactionItem.js +9 -6
  10. package/dist/esm/components/ActiveTransactions/ActiveTransactionItem.js.map +1 -1
  11. package/dist/esm/components/ActiveTransactions/ActiveTransactions.js +2 -2
  12. package/dist/esm/components/ActiveTransactions/ActiveTransactions.js.map +1 -1
  13. package/dist/esm/components/ActiveTransactions/ActiveTransactions.style.d.ts +2 -2
  14. package/dist/esm/components/AmountInput/AmountInput.js +5 -7
  15. package/dist/esm/components/AmountInput/AmountInput.js.map +1 -1
  16. package/dist/esm/components/AmountInput/AmountInput.style.d.ts +2 -2
  17. package/dist/esm/components/AmountInput/AmountInputAdornment.style.d.ts +1 -1
  18. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js +1 -1
  19. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
  20. package/dist/esm/components/AmountInput/PriceFormHelperText.style.d.ts +1 -1
  21. package/dist/esm/components/AppContainer.d.ts +1 -1
  22. package/dist/esm/components/Avatar/AccountAvatar.d.ts +1 -1
  23. package/dist/esm/components/Avatar/AccountAvatar.js.map +1 -1
  24. package/dist/esm/components/Avatar/Avatar.style.d.ts +1 -1
  25. package/dist/esm/components/Avatar/SmallAvatar.d.ts +1 -1
  26. package/dist/esm/components/ButtonTertiary.d.ts +1 -1
  27. package/dist/esm/components/Card/Card.d.ts +1 -1
  28. package/dist/esm/components/Card/CardButton.style.d.ts +2 -2
  29. package/dist/esm/components/Card/CardHeader.d.ts +1 -1
  30. package/dist/esm/components/Card/CardIconButton.d.ts +3 -3
  31. package/dist/esm/components/Card/CardLabel.d.ts +1 -1
  32. package/dist/esm/components/Card/CardTitle.d.ts +1 -1
  33. package/dist/esm/components/Card/InputCard.d.ts +1 -1
  34. package/dist/esm/components/ChainSelect/ChainSelect.js +8 -3
  35. package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
  36. package/dist/esm/components/ChainSelect/ChainSelect.style.d.ts +3 -3
  37. package/dist/esm/components/Chains/ChainList.style.d.ts +4 -4
  38. package/dist/esm/components/Chains/VirtualizedChainList.d.ts +1 -1
  39. package/dist/esm/components/Chains/VirtualizedChainList.js +7 -1
  40. package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -1
  41. package/dist/esm/components/ContractComponent/ItemPrice.d.ts +1 -1
  42. package/dist/esm/components/ContractComponent/ItemPrice.js +1 -1
  43. package/dist/esm/components/ContractComponent/ItemPrice.js.map +1 -1
  44. package/dist/esm/components/ContractComponent/NFT/NFT.js +1 -1
  45. package/dist/esm/components/ContractComponent/NFT/NFT.js.map +1 -1
  46. package/dist/esm/components/ContractComponent/NFT/NFT.style.d.ts +1 -1
  47. package/dist/esm/components/Header/BackButton.d.ts +1 -2
  48. package/dist/esm/components/Header/BackButton.js +16 -2
  49. package/dist/esm/components/Header/BackButton.js.map +1 -1
  50. package/dist/esm/components/Header/DisconnectIconButton.d.ts +1 -1
  51. package/dist/esm/components/Header/DisconnectIconButton.js.map +1 -1
  52. package/dist/esm/components/Header/Header.js +1 -1
  53. package/dist/esm/components/Header/Header.js.map +1 -1
  54. package/dist/esm/components/Header/Header.style.d.ts +3 -3
  55. package/dist/esm/components/Header/NavigationHeader.js +7 -13
  56. package/dist/esm/components/Header/NavigationHeader.js.map +1 -1
  57. package/dist/esm/components/Header/SettingsButton.js +3 -3
  58. package/dist/esm/components/Header/SettingsButton.js.map +1 -1
  59. package/dist/esm/components/Header/SettingsButton.style.d.ts +2 -2
  60. package/dist/esm/components/Header/TransactionHistoryButton.js +3 -3
  61. package/dist/esm/components/Header/TransactionHistoryButton.js.map +1 -1
  62. package/dist/esm/components/Header/WalletHeader.js.map +1 -1
  63. package/dist/esm/components/ListItem/ListItem.d.ts +1 -1
  64. package/dist/esm/components/ListItem/ListItemButton.d.ts +1 -1
  65. package/dist/esm/components/ListItemButton.d.ts +1 -1
  66. package/dist/esm/components/Messages/GasSufficiencyMessage.js +1 -1
  67. package/dist/esm/components/Messages/GasSufficiencyMessage.js.map +1 -1
  68. package/dist/esm/components/PageContainer.d.ts +1 -1
  69. package/dist/esm/components/PageEntered.js +1 -1
  70. package/dist/esm/components/PageEntered.js.map +1 -1
  71. package/dist/esm/components/PoweredBy/PoweredBy.style.d.ts +1 -1
  72. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js +0 -9
  73. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js.map +1 -1
  74. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.style.d.ts +1 -1
  75. package/dist/esm/components/RouteCard/RouteCard.js +1 -3
  76. package/dist/esm/components/RouteCard/RouteCard.js.map +1 -1
  77. package/dist/esm/components/Routes/Routes.js +3 -4
  78. package/dist/esm/components/Routes/Routes.js.map +1 -1
  79. package/dist/esm/components/Routes/RoutesContent.js +1 -2
  80. package/dist/esm/components/Routes/RoutesContent.js.map +1 -1
  81. package/dist/esm/components/Routes/RoutesExpanded.js +4 -3
  82. package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -1
  83. package/dist/esm/components/Routes/RoutesExpanded.style.d.ts +1 -1
  84. package/dist/esm/components/Search/SearchInput.style.d.ts +1 -1
  85. package/dist/esm/components/Search/SearchNotFound.style.d.ts +2 -2
  86. package/dist/esm/components/SelectChainAndToken.js +2 -3
  87. package/dist/esm/components/SelectChainAndToken.js.map +1 -1
  88. package/dist/esm/components/SelectTokenButton/SelectTokenButton.js +10 -10
  89. package/dist/esm/components/SelectTokenButton/SelectTokenButton.js.map +1 -1
  90. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.d.ts +3 -3
  91. package/dist/esm/components/SendToWallet/SendToWallet.style.d.ts +1 -1
  92. package/dist/esm/components/SendToWallet/SendToWalletButton.js +10 -8
  93. package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  94. package/dist/esm/components/SettingsListItemButton.d.ts +1 -1
  95. package/dist/esm/components/Skeleton/WidgetSkeleton.style.d.ts +4 -4
  96. package/dist/esm/components/Step/CircularProgress.d.ts +3 -3
  97. package/dist/esm/components/Step/CircularProgress.js +8 -8
  98. package/dist/esm/components/Step/CircularProgress.js.map +1 -1
  99. package/dist/esm/components/Step/CircularProgress.style.d.ts +2 -2
  100. package/dist/esm/components/Step/CircularProgress.style.js.map +1 -1
  101. package/dist/esm/components/Step/Step.js +8 -11
  102. package/dist/esm/components/Step/Step.js.map +1 -1
  103. package/dist/esm/components/Step/StepAction.d.ts +5 -0
  104. package/dist/esm/components/Step/{StepProcess.js → StepAction.js} +16 -12
  105. package/dist/esm/components/Step/StepAction.js.map +1 -0
  106. package/dist/esm/components/StepActions/StepActions.js +3 -2
  107. package/dist/esm/components/StepActions/StepActions.js.map +1 -1
  108. package/dist/esm/components/StepActions/StepActions.style.d.ts +2 -2
  109. package/dist/esm/components/StepDivider/StepDivider.style.d.ts +1 -1
  110. package/dist/esm/components/Tabs/NavigationTabs.d.ts +4 -4
  111. package/dist/esm/components/Tabs/Tabs.style.d.ts +3 -3
  112. package/dist/esm/components/Timer/StepTimer.js +26 -74
  113. package/dist/esm/components/Timer/StepTimer.js.map +1 -1
  114. package/dist/esm/components/Token/Token.style.d.ts +1 -1
  115. package/dist/esm/components/TokenList/PinTokenButton.d.ts +6 -0
  116. package/dist/esm/components/TokenList/PinTokenButton.js +29 -0
  117. package/dist/esm/components/TokenList/PinTokenButton.js.map +1 -0
  118. package/dist/esm/components/TokenList/TokenDetailsSheetContent.style.d.ts +2 -2
  119. package/dist/esm/components/TokenList/TokenList.js +13 -5
  120. package/dist/esm/components/TokenList/TokenList.js.map +1 -1
  121. package/dist/esm/components/TokenList/TokenList.style.d.ts +6 -6
  122. package/dist/esm/components/TokenList/TokenListItem.js +5 -4
  123. package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
  124. package/dist/esm/components/TokenList/VirtualizedTokenList.js +63 -38
  125. package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
  126. package/dist/esm/components/TokenList/types.d.ts +2 -3
  127. package/dist/esm/components/TokenList/useTokenSelect.js +2 -3
  128. package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
  129. package/dist/esm/components/TokenRate/TokenRate.d.ts +1 -1
  130. package/dist/esm/components/TokenRate/TokenRate.js +1 -1
  131. package/dist/esm/components/TokenRate/TokenRate.js.map +1 -1
  132. package/dist/esm/components/TokenRate/TokenRate.style.d.ts +1 -1
  133. package/dist/esm/components/TransactionDetails.js +3 -2
  134. package/dist/esm/components/TransactionDetails.js.map +1 -1
  135. package/dist/esm/config/version.d.ts +1 -1
  136. package/dist/esm/config/version.js +1 -1
  137. package/dist/esm/config/version.js.map +1 -1
  138. package/dist/esm/hooks/useActionMessage.d.ts +5 -0
  139. package/dist/esm/hooks/useActionMessage.js +18 -0
  140. package/dist/esm/hooks/useActionMessage.js.map +1 -0
  141. package/dist/esm/hooks/useAddressActivity.js +18 -9
  142. package/dist/esm/hooks/useAddressActivity.js.map +1 -1
  143. package/dist/esm/hooks/useAddressValidation.js +5 -2
  144. package/dist/esm/hooks/useAddressValidation.js.map +1 -1
  145. package/dist/esm/hooks/useAvailableChains.d.ts +2 -1
  146. package/dist/esm/hooks/useAvailableChains.js +32 -11
  147. package/dist/esm/hooks/useAvailableChains.js.map +1 -1
  148. package/dist/esm/hooks/useExplorer.js +1 -2
  149. package/dist/esm/hooks/useExplorer.js.map +1 -1
  150. package/dist/esm/hooks/useFilteredByTokenBalances.js +3 -1
  151. package/dist/esm/hooks/useFilteredByTokenBalances.js.map +1 -1
  152. package/dist/esm/hooks/useFromTokenSufficiency.d.ts +1 -1
  153. package/dist/esm/hooks/useFromTokenSufficiency.js +4 -4
  154. package/dist/esm/hooks/useFromTokenSufficiency.js.map +1 -1
  155. package/dist/esm/hooks/useGasRecommendation.js +3 -1
  156. package/dist/esm/hooks/useGasRecommendation.js.map +1 -1
  157. package/dist/esm/hooks/useGasSufficiency.js +21 -15
  158. package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
  159. package/dist/esm/hooks/useHasChainExpansion.d.ts +1 -1
  160. package/dist/esm/hooks/useHasChainExpansion.js +11 -3
  161. package/dist/esm/hooks/useHasChainExpansion.js.map +1 -1
  162. package/dist/esm/hooks/useInitializeSDKProviders.d.ts +1 -0
  163. package/dist/esm/hooks/useInitializeSDKProviders.js +11 -0
  164. package/dist/esm/hooks/useInitializeSDKProviders.js.map +1 -0
  165. package/dist/esm/hooks/useIsBatchingSupported.js +7 -3
  166. package/dist/esm/hooks/useIsBatchingSupported.js.map +1 -1
  167. package/dist/esm/hooks/useIsContractAddress.js +12 -9
  168. package/dist/esm/hooks/useIsContractAddress.js.map +1 -1
  169. package/dist/esm/hooks/useNavigateBack.d.ts +1 -4
  170. package/dist/esm/hooks/useNavigateBack.js +9 -23
  171. package/dist/esm/hooks/useNavigateBack.js.map +1 -1
  172. package/dist/esm/hooks/useRouteExecution.js +12 -13
  173. package/dist/esm/hooks/useRouteExecution.js.map +1 -1
  174. package/dist/esm/hooks/useRoutes.js +23 -60
  175. package/dist/esm/hooks/useRoutes.js.map +1 -1
  176. package/dist/esm/hooks/useToAddressAutoPopulate.js +3 -1
  177. package/dist/esm/hooks/useToAddressAutoPopulate.js.map +1 -1
  178. package/dist/esm/hooks/useToAddressRequirements.js +3 -2
  179. package/dist/esm/hooks/useToAddressRequirements.js.map +1 -1
  180. package/dist/esm/hooks/useTokenBalance.d.ts +3 -3
  181. package/dist/esm/hooks/useTokenBalance.js +8 -6
  182. package/dist/esm/hooks/useTokenBalance.js.map +1 -1
  183. package/dist/esm/hooks/useTokenBalances.d.ts +1 -0
  184. package/dist/esm/hooks/useTokenBalances.js +70 -5
  185. package/dist/esm/hooks/useTokenBalances.js.map +1 -1
  186. package/dist/esm/hooks/useTokenBalancesQueries.js +4 -2
  187. package/dist/esm/hooks/useTokenBalancesQueries.js.map +1 -1
  188. package/dist/esm/hooks/useTokenSearch.js +3 -1
  189. package/dist/esm/hooks/useTokenSearch.js.map +1 -1
  190. package/dist/esm/hooks/useTokens.js +11 -5
  191. package/dist/esm/hooks/useTokens.js.map +1 -1
  192. package/dist/esm/hooks/useTools.js +3 -1
  193. package/dist/esm/hooks/useTools.js.map +1 -1
  194. package/dist/esm/hooks/useTransactionDetails.js +3 -1
  195. package/dist/esm/hooks/useTransactionDetails.js.map +1 -1
  196. package/dist/esm/hooks/useTransactionHistory.js +3 -1
  197. package/dist/esm/hooks/useTransactionHistory.js.map +1 -1
  198. package/dist/esm/hooks/useWidgetChains.d.ts +6 -0
  199. package/dist/esm/hooks/useWidgetChains.js +5 -0
  200. package/dist/esm/hooks/useWidgetChains.js.map +1 -0
  201. package/dist/esm/i18n/bn.json +4 -1
  202. package/dist/esm/i18n/de.json +4 -1
  203. package/dist/esm/i18n/en.json +3 -14
  204. package/dist/esm/i18n/es.json +4 -1
  205. package/dist/esm/i18n/fr.json +4 -1
  206. package/dist/esm/i18n/hi.json +4 -1
  207. package/dist/esm/i18n/id.json +4 -1
  208. package/dist/esm/i18n/it.json +4 -1
  209. package/dist/esm/i18n/ja.json +4 -1
  210. package/dist/esm/i18n/ko.json +4 -1
  211. package/dist/esm/i18n/pl.json +4 -1
  212. package/dist/esm/i18n/pt.json +4 -1
  213. package/dist/esm/i18n/th.json +4 -1
  214. package/dist/esm/i18n/tr.json +4 -1
  215. package/dist/esm/i18n/uk.json +4 -1
  216. package/dist/esm/i18n/vi.json +4 -1
  217. package/dist/esm/i18n/zh.json +4 -1
  218. package/dist/esm/index.d.ts +2 -2
  219. package/dist/esm/index.js +2 -2
  220. package/dist/esm/index.js.map +1 -1
  221. package/dist/esm/pages/LanguagesPage.js +7 -6
  222. package/dist/esm/pages/LanguagesPage.js.map +1 -1
  223. package/dist/esm/pages/MainPage/MainPage.js +1 -3
  224. package/dist/esm/pages/MainPage/MainPage.js.map +1 -1
  225. package/dist/esm/pages/MainPage/ReviewButton.js +5 -5
  226. package/dist/esm/pages/MainPage/ReviewButton.js.map +1 -1
  227. package/dist/esm/pages/RoutesPage/RoutesPage.d.ts +1 -2
  228. package/dist/esm/pages/RoutesPage/RoutesPage.js +5 -4
  229. package/dist/esm/pages/RoutesPage/RoutesPage.js.map +1 -1
  230. package/dist/esm/pages/SelectChainPage/SelectChainPage.js +1 -1
  231. package/dist/esm/pages/SelectChainPage/SelectChainPage.js.map +1 -1
  232. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +2 -13
  233. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
  234. package/dist/esm/pages/SendToWallet/BookmarksPage.js +3 -5
  235. package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
  236. package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js +1 -1
  237. package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -1
  238. package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js +4 -3
  239. package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -1
  240. package/dist/esm/pages/SendToWallet/RecentWalletsPage.js +4 -7
  241. package/dist/esm/pages/SendToWallet/RecentWalletsPage.js.map +1 -1
  242. package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js +1 -1
  243. package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js.map +1 -1
  244. package/dist/esm/pages/SendToWallet/SendToWalletPage.d.ts +1 -1
  245. package/dist/esm/pages/SendToWallet/SendToWalletPage.js +5 -5
  246. package/dist/esm/pages/SendToWallet/SendToWalletPage.js.map +1 -1
  247. package/dist/esm/pages/SendToWallet/SendToWalletPage.style.d.ts +8 -8
  248. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js +4 -2
  249. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -1
  250. package/dist/esm/pages/SettingsPage/LanguageSetting.js +2 -2
  251. package/dist/esm/pages/SettingsPage/LanguageSetting.js.map +1 -1
  252. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCard.style.d.ts +1 -1
  253. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.d.ts +12 -2
  254. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js +10 -4
  255. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js.map +1 -1
  256. package/dist/esm/pages/SettingsPage/SettingsCard/SettingsAccordian.d.ts +1 -1
  257. package/dist/esm/pages/SettingsPage/SettingsCard/SettingsAccordian.js +2 -2
  258. package/dist/esm/pages/SettingsPage/SettingsCard/SettingsAccordian.js.map +1 -1
  259. package/dist/esm/pages/SettingsPage/SettingsPage.js +5 -1
  260. package/dist/esm/pages/SettingsPage/SettingsPage.js.map +1 -1
  261. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js +3 -3
  262. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
  263. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.d.ts +3 -3
  264. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js +9 -9
  265. package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.d.ts +1 -0
  266. package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.js +58 -0
  267. package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.js.map +1 -0
  268. package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsPage.js +7 -8
  269. package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsPage.js.map +1 -1
  270. package/dist/esm/pages/TransactionHistoryPage/TransactionHistoryItem.js +4 -3
  271. package/dist/esm/pages/TransactionHistoryPage/TransactionHistoryItem.js.map +1 -1
  272. package/dist/esm/pages/TransactionHistoryPage/TransactionHistoryPage.d.ts +1 -2
  273. package/dist/esm/pages/TransactionHistoryPage/TransactionHistoryPage.js.map +1 -1
  274. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js +13 -12
  275. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
  276. package/dist/esm/pages/TransactionPage/TransactionPage.d.ts +1 -1
  277. package/dist/esm/pages/TransactionPage/TransactionPage.js +13 -6
  278. package/dist/esm/pages/TransactionPage/TransactionPage.js.map +1 -1
  279. package/dist/esm/providers/I18nProvider/I18nProvider.js +1 -0
  280. package/dist/esm/providers/I18nProvider/I18nProvider.js.map +1 -1
  281. package/dist/esm/providers/SDKClientProvider.d.ts +4 -0
  282. package/dist/esm/providers/SDKClientProvider.js +29 -0
  283. package/dist/esm/providers/SDKClientProvider.js.map +1 -0
  284. package/dist/esm/providers/WalletProvider/WalletProvider.d.ts +7 -2
  285. package/dist/esm/providers/WalletProvider/WalletProvider.js +27 -11
  286. package/dist/esm/providers/WalletProvider/WalletProvider.js.map +1 -1
  287. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js +15 -18
  288. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js.map +1 -1
  289. package/dist/esm/providers/WidgetProvider/WidgetProvider.js +0 -27
  290. package/dist/esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
  291. package/dist/esm/stores/StoreProvider.js +2 -1
  292. package/dist/esm/stores/StoreProvider.js.map +1 -1
  293. package/dist/esm/stores/bookmarks/types.d.ts +2 -3
  294. package/dist/esm/stores/chains/ChainOrderStore.js +17 -12
  295. package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
  296. package/dist/esm/stores/chains/createChainOrderStore.d.ts +0 -8
  297. package/dist/esm/stores/chains/createChainOrderStore.js +1 -5
  298. package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -1
  299. package/dist/esm/stores/form/FormStore.js +18 -8
  300. package/dist/esm/stores/form/FormStore.js.map +1 -1
  301. package/dist/esm/stores/form/FormUpdater.js +5 -50
  302. package/dist/esm/stores/form/FormUpdater.js.map +1 -1
  303. package/dist/esm/stores/form/URLSearchParamsBuilder.js +11 -31
  304. package/dist/esm/stores/form/URLSearchParamsBuilder.js.map +1 -1
  305. package/dist/esm/stores/form/getDefaultValuesFromQueryString.d.ts +7 -0
  306. package/dist/esm/stores/form/getDefaultValuesFromQueryString.js +32 -0
  307. package/dist/esm/stores/form/getDefaultValuesFromQueryString.js.map +1 -0
  308. package/dist/esm/stores/form/types.d.ts +2 -3
  309. package/dist/esm/stores/form/types.js.map +1 -1
  310. package/dist/esm/stores/header/types.d.ts +5 -3
  311. package/dist/esm/stores/header/useHeaderStore.js +14 -0
  312. package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
  313. package/dist/esm/stores/pinnedTokens/PinnedTokensStore.d.ts +4 -0
  314. package/dist/esm/stores/pinnedTokens/PinnedTokensStore.js +20 -0
  315. package/dist/esm/stores/pinnedTokens/PinnedTokensStore.js.map +1 -0
  316. package/dist/esm/stores/pinnedTokens/createPinnedTokensStore.d.ts +19 -0
  317. package/dist/esm/stores/pinnedTokens/createPinnedTokensStore.js +61 -0
  318. package/dist/esm/stores/pinnedTokens/createPinnedTokensStore.js.map +1 -0
  319. package/dist/esm/stores/pinnedTokens/types.d.ts +17 -0
  320. package/dist/esm/stores/pinnedTokens/types.js +2 -0
  321. package/dist/esm/stores/pinnedTokens/types.js.map +1 -0
  322. package/dist/esm/stores/routes/RouteExecutionStore.d.ts +2 -3
  323. package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -1
  324. package/dist/esm/stores/routes/createRouteExecutionStore.js +2 -5
  325. package/dist/esm/stores/routes/createRouteExecutionStore.js.map +1 -1
  326. package/dist/esm/stores/routes/useExecutingRoutesIds.js +2 -2
  327. package/dist/esm/stores/routes/useExecutingRoutesIds.js.map +1 -1
  328. package/dist/esm/stores/routes/utils.d.ts +2 -2
  329. package/dist/esm/stores/routes/utils.js +15 -15
  330. package/dist/esm/stores/routes/utils.js.map +1 -1
  331. package/dist/esm/stores/settings/SettingsStore.d.ts +2 -3
  332. package/dist/esm/stores/settings/SettingsStore.js.map +1 -1
  333. package/dist/esm/stores/settings/createSettingsStore.d.ts +2 -0
  334. package/dist/esm/stores/settings/createSettingsStore.js +2 -1
  335. package/dist/esm/stores/settings/createSettingsStore.js.map +1 -1
  336. package/dist/esm/stores/settings/types.d.ts +3 -3
  337. package/dist/esm/stores/settings/types.js.map +1 -1
  338. package/dist/esm/types/events.d.ts +2 -10
  339. package/dist/esm/types/events.js +0 -1
  340. package/dist/esm/types/events.js.map +1 -1
  341. package/dist/esm/types/token.d.ts +1 -0
  342. package/dist/esm/types/widget.d.ts +9 -16
  343. package/dist/esm/types/widget.js +1 -0
  344. package/dist/esm/types/widget.js.map +1 -1
  345. package/dist/esm/utils/chainType.d.ts +1 -2
  346. package/dist/esm/utils/chainType.js +1 -19
  347. package/dist/esm/utils/chainType.js.map +1 -1
  348. package/dist/esm/utils/converters.js +11 -18
  349. package/dist/esm/utils/converters.js.map +1 -1
  350. package/dist/esm/utils/format.d.ts +1 -0
  351. package/dist/esm/utils/format.js +2 -1
  352. package/dist/esm/utils/format.js.map +1 -1
  353. package/dist/esm/utils/getActionMessage.d.ts +7 -0
  354. package/dist/esm/utils/getActionMessage.js +111 -0
  355. package/dist/esm/utils/getActionMessage.js.map +1 -0
  356. package/dist/esm/utils/getErrorMessage.d.ts +6 -0
  357. package/dist/esm/utils/getErrorMessage.js +118 -0
  358. package/dist/esm/utils/getErrorMessage.js.map +1 -0
  359. package/dist/esm/utils/prepareActions.d.ts +2 -0
  360. package/dist/esm/utils/prepareActions.js +24 -0
  361. package/dist/esm/utils/prepareActions.js.map +1 -0
  362. package/dist/esm/utils/tokenList.d.ts +3 -2
  363. package/dist/esm/utils/tokenList.js +104 -8
  364. package/dist/esm/utils/tokenList.js.map +1 -1
  365. package/package.json +30 -23
  366. package/src/AppDefault.tsx +279 -31
  367. package/src/AppLayout.tsx +36 -0
  368. package/src/AppProvider.tsx +12 -40
  369. package/src/components/ActiveTransactions/ActiveTransactionItem.tsx +9 -6
  370. package/src/components/ActiveTransactions/ActiveTransactions.tsx +2 -2
  371. package/src/components/AmountInput/AmountInput.tsx +6 -8
  372. package/src/components/AmountInput/AmountInputEndAdornment.tsx +1 -1
  373. package/src/components/Avatar/AccountAvatar.tsx +1 -1
  374. package/src/components/ChainSelect/ChainSelect.tsx +8 -4
  375. package/src/components/Chains/VirtualizedChainList.tsx +7 -3
  376. package/src/components/ContractComponent/ItemPrice.tsx +1 -2
  377. package/src/components/ContractComponent/NFT/NFT.tsx +1 -1
  378. package/src/components/Header/BackButton.tsx +15 -3
  379. package/src/components/Header/DisconnectIconButton.tsx +2 -1
  380. package/src/components/Header/Header.tsx +1 -1
  381. package/src/components/Header/NavigationHeader.tsx +23 -46
  382. package/src/components/Header/SettingsButton.tsx +3 -3
  383. package/src/components/Header/TransactionHistoryButton.tsx +3 -3
  384. package/src/components/Header/WalletHeader.tsx +1 -1
  385. package/src/components/Messages/GasSufficiencyMessage.tsx +1 -1
  386. package/src/components/PageEntered.ts +1 -1
  387. package/src/components/ReverseTokensButton/ReverseTokensButton.tsx +0 -10
  388. package/src/components/RouteCard/RouteCard.tsx +1 -3
  389. package/src/components/Routes/Routes.tsx +3 -4
  390. package/src/components/Routes/RoutesContent.tsx +1 -2
  391. package/src/components/Routes/RoutesExpanded.tsx +4 -3
  392. package/src/components/SelectChainAndToken.tsx +2 -4
  393. package/src/components/SelectTokenButton/SelectTokenButton.tsx +11 -13
  394. package/src/components/SendToWallet/SendToWalletButton.tsx +9 -12
  395. package/src/components/Step/CircularProgress.style.tsx +3 -3
  396. package/src/components/Step/CircularProgress.tsx +11 -11
  397. package/src/components/Step/Step.tsx +13 -14
  398. package/src/components/Step/{StepProcess.tsx → StepAction.tsx} +20 -15
  399. package/src/components/StepActions/StepActions.tsx +3 -2
  400. package/src/components/Timer/StepTimer.tsx +43 -105
  401. package/src/components/TokenList/PinTokenButton.tsx +50 -0
  402. package/src/components/TokenList/TokenList.tsx +67 -59
  403. package/src/components/TokenList/TokenListItem.tsx +20 -11
  404. package/src/components/TokenList/VirtualizedTokenList.tsx +80 -53
  405. package/src/components/TokenList/types.ts +2 -3
  406. package/src/components/TokenList/useTokenSelect.ts +2 -8
  407. package/src/components/TokenRate/TokenRate.tsx +1 -2
  408. package/src/components/TransactionDetails.tsx +3 -2
  409. package/src/config/version.ts +1 -1
  410. package/src/hooks/useActionMessage.ts +33 -0
  411. package/src/hooks/useAddressActivity.ts +19 -11
  412. package/src/hooks/useAddressValidation.ts +9 -2
  413. package/src/hooks/useAvailableChains.ts +42 -14
  414. package/src/hooks/useExplorer.ts +1 -2
  415. package/src/hooks/useFilteredByTokenBalances.ts +3 -1
  416. package/src/hooks/useFromTokenSufficiency.ts +8 -5
  417. package/src/hooks/useGasRecommendation.ts +3 -0
  418. package/src/hooks/useGasSufficiency.ts +23 -13
  419. package/src/hooks/useHasChainExpansion.ts +13 -3
  420. package/src/hooks/useInitializeSDKProviders.ts +12 -0
  421. package/src/hooks/useIsBatchingSupported.ts +11 -5
  422. package/src/hooks/useIsContractAddress.ts +14 -10
  423. package/src/hooks/useNavigateBack.ts +11 -29
  424. package/src/hooks/useRouteExecution.ts +12 -16
  425. package/src/hooks/useRoutes.ts +26 -74
  426. package/src/hooks/useToAddressAutoPopulate.ts +3 -1
  427. package/src/hooks/useToAddressRequirements.ts +3 -2
  428. package/src/hooks/useTokenBalance.ts +18 -3
  429. package/src/hooks/useTokenBalances.ts +91 -5
  430. package/src/hooks/useTokenBalancesQueries.ts +4 -2
  431. package/src/hooks/useTokenSearch.ts +10 -3
  432. package/src/hooks/useTokens.ts +11 -6
  433. package/src/hooks/useTools.ts +3 -1
  434. package/src/hooks/useTransactionDetails.ts +3 -0
  435. package/src/hooks/useTransactionHistory.ts +3 -0
  436. package/src/hooks/useWidgetChains.ts +6 -0
  437. package/src/index.ts +2 -8
  438. package/src/pages/LanguagesPage.tsx +2 -1
  439. package/src/pages/MainPage/MainPage.tsx +1 -3
  440. package/src/pages/MainPage/ReviewButton.tsx +5 -5
  441. package/src/pages/RoutesPage/RoutesPage.tsx +6 -6
  442. package/src/pages/SelectChainPage/SelectChainPage.tsx +1 -1
  443. package/src/pages/SelectTokenPage/SelectTokenPage.tsx +4 -28
  444. package/src/pages/SendToWallet/BookmarksPage.tsx +3 -5
  445. package/src/pages/SendToWallet/ConfirmAddressSheet.tsx +1 -1
  446. package/src/pages/SendToWallet/ConnectedWalletsPage.tsx +5 -4
  447. package/src/pages/SendToWallet/RecentWalletsPage.tsx +4 -7
  448. package/src/pages/SendToWallet/SendToConfiguredWalletPage.tsx +1 -1
  449. package/src/pages/SendToWallet/SendToWalletPage.tsx +6 -6
  450. package/src/pages/SettingsPage/BridgeAndExchangeSettings.tsx +4 -2
  451. package/src/pages/SettingsPage/LanguageSetting.tsx +2 -2
  452. package/src/pages/SettingsPage/SettingsCard/SettingCardExpandable.tsx +63 -33
  453. package/src/pages/SettingsPage/SettingsCard/SettingsAccordian.tsx +3 -2
  454. package/src/pages/SettingsPage/SettingsPage.tsx +7 -0
  455. package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.style.tsx +10 -10
  456. package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.tsx +5 -5
  457. package/src/pages/SettingsPage/SmallBalanceFilterSettings.tsx +116 -0
  458. package/src/pages/TransactionDetailsPage/TransactionDetailsPage.tsx +7 -8
  459. package/src/pages/TransactionHistoryPage/TransactionHistoryItem.tsx +4 -3
  460. package/src/pages/TransactionHistoryPage/TransactionHistoryPage.tsx +1 -2
  461. package/src/pages/TransactionPage/StatusBottomSheet.tsx +15 -14
  462. package/src/pages/TransactionPage/TransactionPage.tsx +14 -7
  463. package/src/providers/I18nProvider/I18nProvider.tsx +1 -0
  464. package/src/providers/SDKClientProvider.tsx +41 -0
  465. package/src/providers/WalletProvider/WalletProvider.tsx +61 -20
  466. package/src/providers/WalletProvider/useExternalWalletProvider.ts +20 -18
  467. package/src/providers/WidgetProvider/WidgetProvider.tsx +0 -29
  468. package/src/stores/StoreProvider.tsx +10 -7
  469. package/src/stores/bookmarks/types.ts +2 -3
  470. package/src/stores/chains/ChainOrderStore.tsx +29 -16
  471. package/src/stores/chains/createChainOrderStore.ts +1 -5
  472. package/src/stores/form/FormStore.tsx +19 -18
  473. package/src/stores/form/FormUpdater.tsx +5 -73
  474. package/src/stores/form/URLSearchParamsBuilder.tsx +12 -39
  475. package/src/stores/form/getDefaultValuesFromQueryString.ts +48 -0
  476. package/src/stores/form/types.ts +2 -5
  477. package/src/stores/header/types.ts +5 -3
  478. package/src/stores/header/useHeaderStore.tsx +14 -0
  479. package/src/stores/pinnedTokens/PinnedTokensStore.tsx +38 -0
  480. package/src/stores/pinnedTokens/createPinnedTokensStore.ts +71 -0
  481. package/src/stores/pinnedTokens/types.ts +20 -0
  482. package/src/stores/routes/RouteExecutionStore.tsx +2 -5
  483. package/src/stores/routes/createRouteExecutionStore.ts +4 -5
  484. package/src/stores/routes/useExecutingRoutesIds.ts +2 -2
  485. package/src/stores/routes/utils.ts +21 -19
  486. package/src/stores/settings/SettingsStore.tsx +2 -3
  487. package/src/stores/settings/createSettingsStore.ts +2 -1
  488. package/src/stores/settings/types.ts +3 -5
  489. package/src/types/events.ts +2 -11
  490. package/src/types/token.ts +1 -0
  491. package/src/types/widget.ts +18 -26
  492. package/src/utils/chainType.ts +1 -24
  493. package/src/utils/converters.ts +14 -20
  494. package/src/utils/format.ts +3 -1
  495. package/src/utils/getActionMessage.ts +168 -0
  496. package/src/utils/getErrorMessage.ts +144 -0
  497. package/src/utils/prepareActions.ts +27 -0
  498. package/src/utils/tokenList.ts +117 -11
  499. package/CHANGELOG.md +0 -2646
  500. package/dist/esm/AppRoutes.d.ts +0 -1
  501. package/dist/esm/AppRoutes.js +0 -111
  502. package/dist/esm/AppRoutes.js.map +0 -1
  503. package/dist/esm/components/Step/StepProcess.d.ts +0 -5
  504. package/dist/esm/components/Step/StepProcess.js.map +0 -1
  505. package/dist/esm/config/baseAccount.d.ts +0 -2
  506. package/dist/esm/config/baseAccount.js +0 -6
  507. package/dist/esm/config/baseAccount.js.map +0 -1
  508. package/dist/esm/config/coinbase.d.ts +0 -2
  509. package/dist/esm/config/coinbase.js +0 -6
  510. package/dist/esm/config/coinbase.js.map +0 -1
  511. package/dist/esm/config/metaMask.d.ts +0 -2
  512. package/dist/esm/config/metaMask.js +0 -11
  513. package/dist/esm/config/metaMask.js.map +0 -1
  514. package/dist/esm/config/walletConnect.d.ts +0 -2
  515. package/dist/esm/config/walletConnect.js +0 -4
  516. package/dist/esm/config/walletConnect.js.map +0 -1
  517. package/dist/esm/hooks/useExpansionRoutes.d.ts +0 -2
  518. package/dist/esm/hooks/useExpansionRoutes.js +0 -26
  519. package/dist/esm/hooks/useExpansionRoutes.js.map +0 -1
  520. package/dist/esm/hooks/useInternalWalletProvider.d.ts +0 -1
  521. package/dist/esm/hooks/useInternalWalletProvider.js +0 -6
  522. package/dist/esm/hooks/useInternalWalletProvider.js.map +0 -1
  523. package/dist/esm/hooks/useProcessMessage.d.ts +0 -11
  524. package/dist/esm/hooks/useProcessMessage.js +0 -199
  525. package/dist/esm/hooks/useProcessMessage.js.map +0 -1
  526. package/dist/esm/providers/WalletProvider/EVMBaseProvider.d.ts +0 -2
  527. package/dist/esm/providers/WalletProvider/EVMBaseProvider.js +0 -31
  528. package/dist/esm/providers/WalletProvider/EVMBaseProvider.js.map +0 -1
  529. package/dist/esm/providers/WalletProvider/EVMExternalContext.d.ts +0 -1
  530. package/dist/esm/providers/WalletProvider/EVMExternalContext.js +0 -3
  531. package/dist/esm/providers/WalletProvider/EVMExternalContext.js.map +0 -1
  532. package/dist/esm/providers/WalletProvider/EVMProvider.d.ts +0 -2
  533. package/dist/esm/providers/WalletProvider/EVMProvider.js +0 -20
  534. package/dist/esm/providers/WalletProvider/EVMProvider.js.map +0 -1
  535. package/dist/esm/providers/WalletProvider/SDKProviders.d.ts +0 -1
  536. package/dist/esm/providers/WalletProvider/SDKProviders.js +0 -62
  537. package/dist/esm/providers/WalletProvider/SDKProviders.js.map +0 -1
  538. package/dist/esm/providers/WalletProvider/SVMBaseProvider.d.ts +0 -2
  539. package/dist/esm/providers/WalletProvider/SVMBaseProvider.js +0 -27
  540. package/dist/esm/providers/WalletProvider/SVMBaseProvider.js.map +0 -1
  541. package/dist/esm/providers/WalletProvider/SVMExternalContext.d.ts +0 -1
  542. package/dist/esm/providers/WalletProvider/SVMExternalContext.js +0 -3
  543. package/dist/esm/providers/WalletProvider/SVMExternalContext.js.map +0 -1
  544. package/dist/esm/providers/WalletProvider/SVMProvider.d.ts +0 -2
  545. package/dist/esm/providers/WalletProvider/SVMProvider.js +0 -20
  546. package/dist/esm/providers/WalletProvider/SVMProvider.js.map +0 -1
  547. package/dist/esm/providers/WalletProvider/SuiBaseProvider.d.ts +0 -2
  548. package/dist/esm/providers/WalletProvider/SuiBaseProvider.js +0 -17
  549. package/dist/esm/providers/WalletProvider/SuiBaseProvider.js.map +0 -1
  550. package/dist/esm/providers/WalletProvider/SuiExternalContext.d.ts +0 -1
  551. package/dist/esm/providers/WalletProvider/SuiExternalContext.js +0 -3
  552. package/dist/esm/providers/WalletProvider/SuiExternalContext.js.map +0 -1
  553. package/dist/esm/providers/WalletProvider/SuiProvider.d.ts +0 -2
  554. package/dist/esm/providers/WalletProvider/SuiProvider.js +0 -20
  555. package/dist/esm/providers/WalletProvider/SuiProvider.js.map +0 -1
  556. package/dist/esm/providers/WalletProvider/UTXOBaseProvider.d.ts +0 -2
  557. package/dist/esm/providers/WalletProvider/UTXOBaseProvider.js +0 -18
  558. package/dist/esm/providers/WalletProvider/UTXOBaseProvider.js.map +0 -1
  559. package/dist/esm/providers/WalletProvider/UTXOExternalContext.d.ts +0 -1
  560. package/dist/esm/providers/WalletProvider/UTXOExternalContext.js +0 -3
  561. package/dist/esm/providers/WalletProvider/UTXOExternalContext.js.map +0 -1
  562. package/dist/esm/providers/WalletProvider/UTXOProvider.d.ts +0 -2
  563. package/dist/esm/providers/WalletProvider/UTXOProvider.js +0 -20
  564. package/dist/esm/providers/WalletProvider/UTXOProvider.js.map +0 -1
  565. package/package.json.tmp +0 -100
  566. package/src/AppRoutes.tsx +0 -112
  567. package/src/config/baseAccount.ts +0 -7
  568. package/src/config/coinbase.ts +0 -7
  569. package/src/config/metaMask.ts +0 -13
  570. package/src/config/walletConnect.ts +0 -5
  571. package/src/hooks/useExpansionRoutes.ts +0 -29
  572. package/src/hooks/useInternalWalletProvider.ts +0 -6
  573. package/src/hooks/useProcessMessage.ts +0 -273
  574. package/src/i18n/bn.json +0 -354
  575. package/src/i18n/de.json +0 -354
  576. package/src/i18n/en.json +0 -368
  577. package/src/i18n/es.json +0 -354
  578. package/src/i18n/fr.json +0 -354
  579. package/src/i18n/hi.json +0 -354
  580. package/src/i18n/id.json +0 -354
  581. package/src/i18n/it.json +0 -354
  582. package/src/i18n/ja.json +0 -354
  583. package/src/i18n/ko.json +0 -354
  584. package/src/i18n/pl.json +0 -354
  585. package/src/i18n/pt.json +0 -354
  586. package/src/i18n/th.json +0 -354
  587. package/src/i18n/tr.json +0 -354
  588. package/src/i18n/uk.json +0 -354
  589. package/src/i18n/vi.json +0 -354
  590. package/src/i18n/zh.json +0 -354
  591. package/src/providers/WalletProvider/EVMBaseProvider.tsx +0 -41
  592. package/src/providers/WalletProvider/EVMExternalContext.ts +0 -3
  593. package/src/providers/WalletProvider/EVMProvider.tsx +0 -28
  594. package/src/providers/WalletProvider/SDKProviders.tsx +0 -86
  595. package/src/providers/WalletProvider/SVMBaseProvider.tsx +0 -37
  596. package/src/providers/WalletProvider/SVMExternalContext.ts +0 -3
  597. package/src/providers/WalletProvider/SVMProvider.tsx +0 -29
  598. package/src/providers/WalletProvider/SuiBaseProvider.tsx +0 -31
  599. package/src/providers/WalletProvider/SuiExternalContext.ts +0 -3
  600. package/src/providers/WalletProvider/SuiProvider.tsx +0 -28
  601. package/src/providers/WalletProvider/UTXOBaseProvider.tsx +0 -29
  602. package/src/providers/WalletProvider/UTXOExternalContext.ts +0 -3
  603. package/src/providers/WalletProvider/UTXOProvider.tsx +0 -28
  604. package/src/utils/compactNumberFormatter.test.ts +0 -67
  605. package/src/utils/format.test.ts +0 -53
  606. package/tsconfig.json +0 -15
@@ -1,5 +1,8 @@
1
- import type { TokenExtended, WalletTokenExtended } from '@lifi/sdk'
2
- import { formatUnits } from 'viem'
1
+ import {
2
+ formatUnits,
3
+ type TokenExtended,
4
+ type WalletTokenExtended,
5
+ } from '@lifi/sdk'
3
6
  import type { TokenAmount, TokenAmountExtended } from '../types/token.js'
4
7
  import type { WidgetTokens } from '../types/widget.js'
5
8
 
@@ -18,21 +21,42 @@ export const processTokenBalances = (
18
21
  configTokens?: WidgetTokens,
19
22
  selectedChainId?: number,
20
23
  tokens?: TokenExtended[],
21
- tokensWithBalances?: TokenAmount[]
24
+ tokensWithBalances?: TokenAmount[],
25
+ isPinnedToken?: (chainId: number, tokenAddress: string) => boolean
22
26
  ) => {
23
27
  if (isBalanceLoading) {
24
28
  if (noCategories) {
25
29
  const sortedTokens = [...(tokens ?? [])].sort(sortByVolume)
30
+ // Separate pinned tokens
31
+ if (isPinnedToken) {
32
+ const pinned: TokenAmount[] = []
33
+ const notPinned: TokenAmount[] = []
34
+ for (const token of sortedTokens) {
35
+ if (isPinnedToken(token.chainId, token.address)) {
36
+ const pinnedToken = { ...token, pinned: true } as TokenAmount
37
+ pinned.push(pinnedToken)
38
+ } else {
39
+ notPinned.push(token)
40
+ }
41
+ }
42
+ return {
43
+ processedTokens: [...pinned, ...notPinned],
44
+ withCategories: false,
45
+ withPinnedTokens: !!pinned.length,
46
+ }
47
+ }
26
48
  return {
27
49
  processedTokens: sortedTokens,
28
50
  withCategories: false,
51
+ withPinnedTokens: false,
29
52
  }
30
53
  } else {
31
54
  return processedTypedTokens(
32
55
  tokens ?? [],
33
56
  [],
34
57
  selectedChainId,
35
- configTokens
58
+ configTokens,
59
+ isPinnedToken
36
60
  )
37
61
  }
38
62
  }
@@ -55,16 +79,55 @@ export const processTokenBalances = (
55
79
  .sort(sortByVolume) ?? []
56
80
 
57
81
  if (noCategories) {
82
+ // Separate pinned tokens
83
+ if (isPinnedToken) {
84
+ const pinnedWithBalances: TokenAmount[] = []
85
+ const notPinnedWithBalances: TokenAmount[] = []
86
+ const pinnedWithoutBalances: TokenAmount[] = []
87
+ const notPinnedWithoutBalances: TokenAmount[] = []
88
+
89
+ for (const token of sortedTokensWithBalances) {
90
+ if (isPinnedToken(token.chainId, token.address)) {
91
+ const pinnedToken = { ...token, pinned: true } as TokenAmount
92
+ pinnedWithBalances.push(pinnedToken)
93
+ } else {
94
+ notPinnedWithBalances.push(token)
95
+ }
96
+ }
97
+
98
+ for (const token of tokensWithoutBalances) {
99
+ if (isPinnedToken(token.chainId, token.address)) {
100
+ const pinnedToken = { ...token, pinned: true } as TokenAmount
101
+ pinnedWithoutBalances.push(pinnedToken)
102
+ } else {
103
+ notPinnedWithoutBalances.push(token)
104
+ }
105
+ }
106
+
107
+ return {
108
+ processedTokens: [
109
+ ...pinnedWithBalances,
110
+ ...pinnedWithoutBalances,
111
+ ...notPinnedWithBalances,
112
+ ...notPinnedWithoutBalances,
113
+ ],
114
+ withCategories: false,
115
+ withPinnedTokens:
116
+ !!pinnedWithBalances.length || !!pinnedWithoutBalances.length,
117
+ }
118
+ }
58
119
  return {
59
120
  processedTokens: [...sortedTokensWithBalances, ...tokensWithoutBalances],
60
121
  withCategories: false,
122
+ withPinnedTokens: false,
61
123
  }
62
124
  } else {
63
125
  return processedTypedTokens(
64
126
  tokensWithoutBalances,
65
127
  sortedTokensWithBalances,
66
128
  selectedChainId,
67
- configTokens
129
+ configTokens,
130
+ isPinnedToken
68
131
  )
69
132
  }
70
133
  }
@@ -74,12 +137,14 @@ const processedTypedTokens = (
74
137
  tokens: TokenAmount[],
75
138
  tokensWithBalances: TokenAmount[],
76
139
  selectedChainId?: number,
77
- configTokens?: WidgetTokens
140
+ configTokens?: WidgetTokens,
141
+ isPinnedToken?: (chainId: number, tokenAddress: string) => boolean
78
142
  ) => {
79
143
  const filteredTokensMap = new Map(
80
144
  tokens.map((token) => [token.address, token])
81
145
  )
82
146
 
147
+ const pinnedTokens: TokenAmount[] = []
83
148
  const featuredTokensFromConfig: TokenAmount[] = []
84
149
  const popularTokensFromConfig: TokenAmount[] = []
85
150
 
@@ -107,6 +172,16 @@ const processedTypedTokens = (
107
172
  } else {
108
173
  featuredTokensFromConfig.push(tokenAmount)
109
174
  }
175
+
176
+ // Additionally add to pinned tokens if it is pinned
177
+ const isPinned =
178
+ isPinnedToken && selectedChainId
179
+ ? isPinnedToken(selectedChainId, token.address)
180
+ : false
181
+ if (isPinned) {
182
+ const pinnedToken = { ...tokenAmount, pinned: true } as TokenAmount
183
+ pinnedTokens.push(pinnedToken)
184
+ }
110
185
  })
111
186
  })
112
187
 
@@ -123,8 +198,17 @@ const processedTypedTokens = (
123
198
 
124
199
  const otherTokens: TokenAmount[] = []
125
200
 
201
+ // Separate pinned tokens and categorize remaining tokens
126
202
  for (const token of remainingTokens) {
127
- if (token.featured) {
203
+ const isPinned =
204
+ isPinnedToken && selectedChainId
205
+ ? isPinnedToken(selectedChainId, token.address)
206
+ : false
207
+
208
+ if (isPinned) {
209
+ const pinnedToken = { ...token, pinned: true } as TokenAmount
210
+ pinnedTokens.push(pinnedToken)
211
+ } else if (token.featured) {
128
212
  featuredTokensFromConfig.push(token)
129
213
  } else if (token.popular) {
130
214
  popularTokensFromConfig.push(token)
@@ -133,20 +217,42 @@ const processedTypedTokens = (
133
217
  }
134
218
  }
135
219
 
220
+ // Also check tokens with balances for pinned status
221
+ const pinnedTokensWithBalances: TokenAmount[] = []
222
+ const nonPinnedTokensWithBalances: TokenAmount[] = []
223
+
224
+ if (isPinnedToken && selectedChainId) {
225
+ for (const token of tokensWithBalances) {
226
+ if (isPinnedToken(selectedChainId, token.address)) {
227
+ const pinnedToken = { ...token, pinned: true } as TokenAmount
228
+ pinnedTokensWithBalances.push(pinnedToken)
229
+ } else {
230
+ nonPinnedTokensWithBalances.push(token)
231
+ }
232
+ }
233
+ } else {
234
+ nonPinnedTokensWithBalances.push(...tokensWithBalances)
235
+ }
236
+
237
+ const sortedPinnedTokens = [
238
+ ...pinnedTokens,
239
+ ...pinnedTokensWithBalances,
240
+ ].sort(sortByVolume)
136
241
  const sortedFeaturedTokens = [...featuredTokensFromConfig].sort(sortByVolume)
137
242
  const sortedPopularTokens = [...popularTokensFromConfig].sort(sortByVolume)
138
243
  const sortedOtherTokens = [...otherTokens].sort(sortByVolume)
139
244
 
140
245
  return {
141
246
  processedTokens: [
247
+ ...sortedPinnedTokens,
142
248
  ...sortedFeaturedTokens,
143
- ...tokensWithBalances,
249
+ ...nonPinnedTokensWithBalances,
144
250
  ...sortedPopularTokens,
145
251
  ...sortedOtherTokens,
146
252
  ],
147
- withCategories: Boolean(
148
- featuredTokensFromConfig?.length || popularTokensFromConfig?.length
149
- ),
253
+ withCategories:
254
+ !!featuredTokensFromConfig.length || !!popularTokensFromConfig.length,
255
+ withPinnedTokens: !!sortedPinnedTokens.length,
150
256
  }
151
257
  }
152
258