@lifi/widget 3.40.8 → 4.0.0-alpha.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 (603) hide show
  1. package/CHANGELOG.md +0 -50
  2. package/dist/esm/AppDefault.d.ts +8 -0
  3. package/dist/esm/AppDefault.js +231 -14
  4. package/dist/esm/AppDefault.js.map +1 -1
  5. package/dist/esm/AppLayout.d.ts +1 -0
  6. package/dist/esm/AppLayout.js +19 -0
  7. package/dist/esm/AppLayout.js.map +1 -0
  8. package/dist/esm/AppProvider.js +7 -20
  9. package/dist/esm/AppProvider.js.map +1 -1
  10. package/dist/esm/components/ActiveTransactions/ActiveTransactionItem.js +9 -6
  11. package/dist/esm/components/ActiveTransactions/ActiveTransactionItem.js.map +1 -1
  12. package/dist/esm/components/ActiveTransactions/ActiveTransactions.js +2 -2
  13. package/dist/esm/components/ActiveTransactions/ActiveTransactions.js.map +1 -1
  14. package/dist/esm/components/ActiveTransactions/ActiveTransactions.style.d.ts +2 -2
  15. package/dist/esm/components/AmountInput/AmountInput.js +5 -7
  16. package/dist/esm/components/AmountInput/AmountInput.js.map +1 -1
  17. package/dist/esm/components/AmountInput/AmountInput.style.d.ts +2 -2
  18. package/dist/esm/components/AmountInput/AmountInputAdornment.style.d.ts +1 -1
  19. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js +1 -1
  20. package/dist/esm/components/AmountInput/AmountInputEndAdornment.js.map +1 -1
  21. package/dist/esm/components/AmountInput/PriceFormHelperText.style.d.ts +1 -1
  22. package/dist/esm/components/AppContainer.d.ts +1 -1
  23. package/dist/esm/components/Avatar/AccountAvatar.d.ts +1 -1
  24. package/dist/esm/components/Avatar/AccountAvatar.js.map +1 -1
  25. package/dist/esm/components/Avatar/Avatar.style.d.ts +1 -1
  26. package/dist/esm/components/Avatar/SmallAvatar.d.ts +1 -1
  27. package/dist/esm/components/ButtonTertiary.d.ts +1 -1
  28. package/dist/esm/components/Card/Card.d.ts +1 -1
  29. package/dist/esm/components/Card/CardButton.style.d.ts +2 -2
  30. package/dist/esm/components/Card/CardHeader.d.ts +1 -1
  31. package/dist/esm/components/Card/CardIconButton.d.ts +3 -3
  32. package/dist/esm/components/Card/CardLabel.d.ts +1 -1
  33. package/dist/esm/components/Card/CardTitle.d.ts +1 -1
  34. package/dist/esm/components/Card/InputCard.d.ts +1 -1
  35. package/dist/esm/components/ChainSelect/ChainSelect.js +8 -3
  36. package/dist/esm/components/ChainSelect/ChainSelect.js.map +1 -1
  37. package/dist/esm/components/ChainSelect/ChainSelect.style.d.ts +3 -3
  38. package/dist/esm/components/Chains/ChainList.style.d.ts +4 -4
  39. package/dist/esm/components/Chains/VirtualizedChainList.d.ts +1 -1
  40. package/dist/esm/components/Chains/VirtualizedChainList.js +7 -1
  41. package/dist/esm/components/Chains/VirtualizedChainList.js.map +1 -1
  42. package/dist/esm/components/ContractComponent/ItemPrice.d.ts +1 -1
  43. package/dist/esm/components/ContractComponent/ItemPrice.js +1 -1
  44. package/dist/esm/components/ContractComponent/ItemPrice.js.map +1 -1
  45. package/dist/esm/components/ContractComponent/NFT/NFT.js +1 -1
  46. package/dist/esm/components/ContractComponent/NFT/NFT.js.map +1 -1
  47. package/dist/esm/components/ContractComponent/NFT/NFT.style.d.ts +1 -1
  48. package/dist/esm/components/Header/BackButton.d.ts +1 -2
  49. package/dist/esm/components/Header/BackButton.js +16 -2
  50. package/dist/esm/components/Header/BackButton.js.map +1 -1
  51. package/dist/esm/components/Header/DisconnectIconButton.d.ts +1 -1
  52. package/dist/esm/components/Header/DisconnectIconButton.js.map +1 -1
  53. package/dist/esm/components/Header/Header.js +1 -1
  54. package/dist/esm/components/Header/Header.js.map +1 -1
  55. package/dist/esm/components/Header/Header.style.d.ts +3 -3
  56. package/dist/esm/components/Header/NavigationHeader.js +7 -13
  57. package/dist/esm/components/Header/NavigationHeader.js.map +1 -1
  58. package/dist/esm/components/Header/SettingsButton.js +3 -3
  59. package/dist/esm/components/Header/SettingsButton.js.map +1 -1
  60. package/dist/esm/components/Header/SettingsButton.style.d.ts +2 -2
  61. package/dist/esm/components/Header/TransactionHistoryButton.js +3 -3
  62. package/dist/esm/components/Header/TransactionHistoryButton.js.map +1 -1
  63. package/dist/esm/components/Header/WalletHeader.js.map +1 -1
  64. package/dist/esm/components/ListItem/ListItem.d.ts +1 -1
  65. package/dist/esm/components/ListItem/ListItemButton.d.ts +1 -1
  66. package/dist/esm/components/ListItemButton.d.ts +1 -1
  67. package/dist/esm/components/Messages/GasSufficiencyMessage.js +1 -1
  68. package/dist/esm/components/Messages/GasSufficiencyMessage.js.map +1 -1
  69. package/dist/esm/components/PageContainer.d.ts +1 -1
  70. package/dist/esm/components/PageEntered.js +1 -1
  71. package/dist/esm/components/PageEntered.js.map +1 -1
  72. package/dist/esm/components/PoweredBy/PoweredBy.style.d.ts +1 -1
  73. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js +0 -9
  74. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.js.map +1 -1
  75. package/dist/esm/components/ReverseTokensButton/ReverseTokensButton.style.d.ts +1 -1
  76. package/dist/esm/components/RouteCard/RouteCard.js +1 -3
  77. package/dist/esm/components/RouteCard/RouteCard.js.map +1 -1
  78. package/dist/esm/components/Routes/Routes.js +3 -4
  79. package/dist/esm/components/Routes/Routes.js.map +1 -1
  80. package/dist/esm/components/Routes/RoutesContent.js +1 -2
  81. package/dist/esm/components/Routes/RoutesContent.js.map +1 -1
  82. package/dist/esm/components/Routes/RoutesExpanded.js +4 -3
  83. package/dist/esm/components/Routes/RoutesExpanded.js.map +1 -1
  84. package/dist/esm/components/Routes/RoutesExpanded.style.d.ts +1 -1
  85. package/dist/esm/components/Search/SearchInput.style.d.ts +1 -1
  86. package/dist/esm/components/Search/SearchNotFound.style.d.ts +2 -2
  87. package/dist/esm/components/SelectChainAndToken.js +2 -3
  88. package/dist/esm/components/SelectChainAndToken.js.map +1 -1
  89. package/dist/esm/components/SelectTokenButton/SelectTokenButton.js +10 -10
  90. package/dist/esm/components/SelectTokenButton/SelectTokenButton.js.map +1 -1
  91. package/dist/esm/components/SelectTokenButton/SelectTokenButton.style.d.ts +3 -3
  92. package/dist/esm/components/SendToWallet/SendToWallet.style.d.ts +1 -1
  93. package/dist/esm/components/SendToWallet/SendToWalletButton.js +10 -8
  94. package/dist/esm/components/SendToWallet/SendToWalletButton.js.map +1 -1
  95. package/dist/esm/components/SettingsListItemButton.d.ts +1 -1
  96. package/dist/esm/components/Skeleton/WidgetSkeleton.style.d.ts +4 -4
  97. package/dist/esm/components/Step/CircularProgress.d.ts +3 -3
  98. package/dist/esm/components/Step/CircularProgress.js +8 -8
  99. package/dist/esm/components/Step/CircularProgress.js.map +1 -1
  100. package/dist/esm/components/Step/CircularProgress.style.d.ts +2 -2
  101. package/dist/esm/components/Step/CircularProgress.style.js.map +1 -1
  102. package/dist/esm/components/Step/Step.js +8 -11
  103. package/dist/esm/components/Step/Step.js.map +1 -1
  104. package/dist/esm/components/Step/StepAction.d.ts +5 -0
  105. package/dist/esm/components/Step/{StepProcess.js → StepAction.js} +16 -12
  106. package/dist/esm/components/Step/StepAction.js.map +1 -0
  107. package/dist/esm/components/StepActions/StepActions.js +3 -2
  108. package/dist/esm/components/StepActions/StepActions.js.map +1 -1
  109. package/dist/esm/components/StepActions/StepActions.style.d.ts +2 -2
  110. package/dist/esm/components/StepDivider/StepDivider.style.d.ts +1 -1
  111. package/dist/esm/components/Tabs/NavigationTabs.d.ts +4 -4
  112. package/dist/esm/components/Tabs/Tabs.style.d.ts +3 -3
  113. package/dist/esm/components/Timer/StepTimer.js +26 -74
  114. package/dist/esm/components/Timer/StepTimer.js.map +1 -1
  115. package/dist/esm/components/Token/Token.style.d.ts +1 -1
  116. package/dist/esm/components/TokenList/PinTokenButton.d.ts +6 -0
  117. package/dist/esm/components/TokenList/PinTokenButton.js +29 -0
  118. package/dist/esm/components/TokenList/PinTokenButton.js.map +1 -0
  119. package/dist/esm/components/TokenList/TokenDetailsSheetContent.style.d.ts +2 -2
  120. package/dist/esm/components/TokenList/TokenList.js +13 -5
  121. package/dist/esm/components/TokenList/TokenList.js.map +1 -1
  122. package/dist/esm/components/TokenList/TokenList.style.d.ts +6 -6
  123. package/dist/esm/components/TokenList/TokenListItem.js +5 -4
  124. package/dist/esm/components/TokenList/TokenListItem.js.map +1 -1
  125. package/dist/esm/components/TokenList/VirtualizedTokenList.js +63 -38
  126. package/dist/esm/components/TokenList/VirtualizedTokenList.js.map +1 -1
  127. package/dist/esm/components/TokenList/types.d.ts +2 -3
  128. package/dist/esm/components/TokenList/useTokenSelect.js +2 -3
  129. package/dist/esm/components/TokenList/useTokenSelect.js.map +1 -1
  130. package/dist/esm/components/TokenRate/TokenRate.d.ts +1 -1
  131. package/dist/esm/components/TokenRate/TokenRate.js +1 -1
  132. package/dist/esm/components/TokenRate/TokenRate.js.map +1 -1
  133. package/dist/esm/components/TokenRate/TokenRate.style.d.ts +1 -1
  134. package/dist/esm/components/TransactionDetails.js +3 -2
  135. package/dist/esm/components/TransactionDetails.js.map +1 -1
  136. package/dist/esm/config/version.d.ts +1 -1
  137. package/dist/esm/config/version.js +1 -1
  138. package/dist/esm/config/version.js.map +1 -1
  139. package/dist/esm/hooks/useActionMessage.d.ts +5 -0
  140. package/dist/esm/hooks/useActionMessage.js +18 -0
  141. package/dist/esm/hooks/useActionMessage.js.map +1 -0
  142. package/dist/esm/hooks/useAddressActivity.js +18 -9
  143. package/dist/esm/hooks/useAddressActivity.js.map +1 -1
  144. package/dist/esm/hooks/useAddressValidation.js +5 -2
  145. package/dist/esm/hooks/useAddressValidation.js.map +1 -1
  146. package/dist/esm/hooks/useAvailableChains.d.ts +2 -1
  147. package/dist/esm/hooks/useAvailableChains.js +32 -11
  148. package/dist/esm/hooks/useAvailableChains.js.map +1 -1
  149. package/dist/esm/hooks/useExplorer.js +1 -2
  150. package/dist/esm/hooks/useExplorer.js.map +1 -1
  151. package/dist/esm/hooks/useFilteredByTokenBalances.js +3 -1
  152. package/dist/esm/hooks/useFilteredByTokenBalances.js.map +1 -1
  153. package/dist/esm/hooks/useFromTokenSufficiency.d.ts +1 -1
  154. package/dist/esm/hooks/useFromTokenSufficiency.js +4 -4
  155. package/dist/esm/hooks/useFromTokenSufficiency.js.map +1 -1
  156. package/dist/esm/hooks/useGasRecommendation.js +3 -1
  157. package/dist/esm/hooks/useGasRecommendation.js.map +1 -1
  158. package/dist/esm/hooks/useGasSufficiency.js +21 -15
  159. package/dist/esm/hooks/useGasSufficiency.js.map +1 -1
  160. package/dist/esm/hooks/useHasChainExpansion.d.ts +1 -1
  161. package/dist/esm/hooks/useHasChainExpansion.js +11 -3
  162. package/dist/esm/hooks/useHasChainExpansion.js.map +1 -1
  163. package/dist/esm/hooks/useInitializeSDKProviders.d.ts +1 -0
  164. package/dist/esm/hooks/useInitializeSDKProviders.js +11 -0
  165. package/dist/esm/hooks/useInitializeSDKProviders.js.map +1 -0
  166. package/dist/esm/hooks/useIsBatchingSupported.js +7 -3
  167. package/dist/esm/hooks/useIsBatchingSupported.js.map +1 -1
  168. package/dist/esm/hooks/useIsContractAddress.js +12 -9
  169. package/dist/esm/hooks/useIsContractAddress.js.map +1 -1
  170. package/dist/esm/hooks/useNavigateBack.d.ts +1 -4
  171. package/dist/esm/hooks/useNavigateBack.js +9 -23
  172. package/dist/esm/hooks/useNavigateBack.js.map +1 -1
  173. package/dist/esm/hooks/useRouteExecution.js +12 -13
  174. package/dist/esm/hooks/useRouteExecution.js.map +1 -1
  175. package/dist/esm/hooks/useRoutes.js +23 -60
  176. package/dist/esm/hooks/useRoutes.js.map +1 -1
  177. package/dist/esm/hooks/useToAddressAutoPopulate.js +3 -1
  178. package/dist/esm/hooks/useToAddressAutoPopulate.js.map +1 -1
  179. package/dist/esm/hooks/useToAddressRequirements.js +3 -2
  180. package/dist/esm/hooks/useToAddressRequirements.js.map +1 -1
  181. package/dist/esm/hooks/useTokenBalance.d.ts +3 -3
  182. package/dist/esm/hooks/useTokenBalance.js +8 -6
  183. package/dist/esm/hooks/useTokenBalance.js.map +1 -1
  184. package/dist/esm/hooks/useTokenBalances.d.ts +1 -0
  185. package/dist/esm/hooks/useTokenBalances.js +70 -5
  186. package/dist/esm/hooks/useTokenBalances.js.map +1 -1
  187. package/dist/esm/hooks/useTokenBalancesQueries.js +4 -2
  188. package/dist/esm/hooks/useTokenBalancesQueries.js.map +1 -1
  189. package/dist/esm/hooks/useTokenSearch.js +3 -1
  190. package/dist/esm/hooks/useTokenSearch.js.map +1 -1
  191. package/dist/esm/hooks/useTokens.js +11 -5
  192. package/dist/esm/hooks/useTokens.js.map +1 -1
  193. package/dist/esm/hooks/useTools.js +3 -1
  194. package/dist/esm/hooks/useTools.js.map +1 -1
  195. package/dist/esm/hooks/useTransactionDetails.js +3 -1
  196. package/dist/esm/hooks/useTransactionDetails.js.map +1 -1
  197. package/dist/esm/hooks/useTransactionHistory.js +3 -1
  198. package/dist/esm/hooks/useTransactionHistory.js.map +1 -1
  199. package/dist/esm/hooks/useWidgetChains.d.ts +6 -0
  200. package/dist/esm/hooks/useWidgetChains.js +5 -0
  201. package/dist/esm/hooks/useWidgetChains.js.map +1 -0
  202. package/dist/esm/i18n/bn.json +4 -1
  203. package/dist/esm/i18n/de.json +4 -1
  204. package/dist/esm/i18n/en.json +3 -14
  205. package/dist/esm/i18n/es.json +4 -1
  206. package/dist/esm/i18n/fr.json +4 -1
  207. package/dist/esm/i18n/hi.json +4 -1
  208. package/dist/esm/i18n/id.json +4 -1
  209. package/dist/esm/i18n/it.json +4 -1
  210. package/dist/esm/i18n/ja.json +4 -1
  211. package/dist/esm/i18n/ko.json +4 -1
  212. package/dist/esm/i18n/pl.json +4 -1
  213. package/dist/esm/i18n/pt.json +4 -1
  214. package/dist/esm/i18n/th.json +4 -1
  215. package/dist/esm/i18n/tr.json +4 -1
  216. package/dist/esm/i18n/uk.json +4 -1
  217. package/dist/esm/i18n/vi.json +4 -1
  218. package/dist/esm/i18n/zh.json +4 -1
  219. package/dist/esm/index.d.ts +2 -2
  220. package/dist/esm/index.js +2 -2
  221. package/dist/esm/index.js.map +1 -1
  222. package/dist/esm/pages/LanguagesPage.js +7 -6
  223. package/dist/esm/pages/LanguagesPage.js.map +1 -1
  224. package/dist/esm/pages/MainPage/MainPage.js +1 -3
  225. package/dist/esm/pages/MainPage/MainPage.js.map +1 -1
  226. package/dist/esm/pages/MainPage/ReviewButton.js +5 -5
  227. package/dist/esm/pages/MainPage/ReviewButton.js.map +1 -1
  228. package/dist/esm/pages/RoutesPage/RoutesPage.d.ts +1 -2
  229. package/dist/esm/pages/RoutesPage/RoutesPage.js +5 -4
  230. package/dist/esm/pages/RoutesPage/RoutesPage.js.map +1 -1
  231. package/dist/esm/pages/SelectChainPage/SelectChainPage.js +1 -1
  232. package/dist/esm/pages/SelectChainPage/SelectChainPage.js.map +1 -1
  233. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js +2 -13
  234. package/dist/esm/pages/SelectTokenPage/SelectTokenPage.js.map +1 -1
  235. package/dist/esm/pages/SendToWallet/BookmarksPage.js +3 -5
  236. package/dist/esm/pages/SendToWallet/BookmarksPage.js.map +1 -1
  237. package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js +1 -1
  238. package/dist/esm/pages/SendToWallet/ConfirmAddressSheet.js.map +1 -1
  239. package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js +4 -3
  240. package/dist/esm/pages/SendToWallet/ConnectedWalletsPage.js.map +1 -1
  241. package/dist/esm/pages/SendToWallet/RecentWalletsPage.js +4 -7
  242. package/dist/esm/pages/SendToWallet/RecentWalletsPage.js.map +1 -1
  243. package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js +1 -1
  244. package/dist/esm/pages/SendToWallet/SendToConfiguredWalletPage.js.map +1 -1
  245. package/dist/esm/pages/SendToWallet/SendToWalletPage.d.ts +1 -1
  246. package/dist/esm/pages/SendToWallet/SendToWalletPage.js +5 -5
  247. package/dist/esm/pages/SendToWallet/SendToWalletPage.js.map +1 -1
  248. package/dist/esm/pages/SendToWallet/SendToWalletPage.style.d.ts +8 -8
  249. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js +4 -2
  250. package/dist/esm/pages/SettingsPage/BridgeAndExchangeSettings.js.map +1 -1
  251. package/dist/esm/pages/SettingsPage/LanguageSetting.js +2 -2
  252. package/dist/esm/pages/SettingsPage/LanguageSetting.js.map +1 -1
  253. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCard.style.d.ts +1 -1
  254. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.d.ts +12 -2
  255. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js +10 -4
  256. package/dist/esm/pages/SettingsPage/SettingsCard/SettingCardExpandable.js.map +1 -1
  257. package/dist/esm/pages/SettingsPage/SettingsCard/SettingsAccordian.d.ts +1 -1
  258. package/dist/esm/pages/SettingsPage/SettingsCard/SettingsAccordian.js +2 -2
  259. package/dist/esm/pages/SettingsPage/SettingsCard/SettingsAccordian.js.map +1 -1
  260. package/dist/esm/pages/SettingsPage/SettingsPage.js +5 -1
  261. package/dist/esm/pages/SettingsPage/SettingsPage.js.map +1 -1
  262. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js +3 -3
  263. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.js.map +1 -1
  264. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.d.ts +3 -3
  265. package/dist/esm/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js +9 -9
  266. package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.d.ts +1 -0
  267. package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.js +58 -0
  268. package/dist/esm/pages/SettingsPage/SmallBalanceFilterSettings.js.map +1 -0
  269. package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsPage.js +7 -8
  270. package/dist/esm/pages/TransactionDetailsPage/TransactionDetailsPage.js.map +1 -1
  271. package/dist/esm/pages/TransactionHistoryPage/TransactionHistoryItem.js +4 -3
  272. package/dist/esm/pages/TransactionHistoryPage/TransactionHistoryItem.js.map +1 -1
  273. package/dist/esm/pages/TransactionHistoryPage/TransactionHistoryPage.d.ts +1 -2
  274. package/dist/esm/pages/TransactionHistoryPage/TransactionHistoryPage.js.map +1 -1
  275. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js +13 -12
  276. package/dist/esm/pages/TransactionPage/StatusBottomSheet.js.map +1 -1
  277. package/dist/esm/pages/TransactionPage/TransactionPage.d.ts +1 -1
  278. package/dist/esm/pages/TransactionPage/TransactionPage.js +13 -6
  279. package/dist/esm/pages/TransactionPage/TransactionPage.js.map +1 -1
  280. package/dist/esm/providers/I18nProvider/I18nProvider.js +1 -0
  281. package/dist/esm/providers/I18nProvider/I18nProvider.js.map +1 -1
  282. package/dist/esm/providers/SDKClientProvider.d.ts +4 -0
  283. package/dist/esm/providers/SDKClientProvider.js +29 -0
  284. package/dist/esm/providers/SDKClientProvider.js.map +1 -0
  285. package/dist/esm/providers/WalletProvider/WalletProvider.d.ts +7 -2
  286. package/dist/esm/providers/WalletProvider/WalletProvider.js +27 -11
  287. package/dist/esm/providers/WalletProvider/WalletProvider.js.map +1 -1
  288. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js +15 -18
  289. package/dist/esm/providers/WalletProvider/useExternalWalletProvider.js.map +1 -1
  290. package/dist/esm/providers/WidgetProvider/WidgetProvider.js +0 -27
  291. package/dist/esm/providers/WidgetProvider/WidgetProvider.js.map +1 -1
  292. package/dist/esm/stores/StoreProvider.js +2 -1
  293. package/dist/esm/stores/StoreProvider.js.map +1 -1
  294. package/dist/esm/stores/bookmarks/types.d.ts +2 -3
  295. package/dist/esm/stores/chains/ChainOrderStore.js +17 -12
  296. package/dist/esm/stores/chains/ChainOrderStore.js.map +1 -1
  297. package/dist/esm/stores/chains/createChainOrderStore.d.ts +0 -8
  298. package/dist/esm/stores/chains/createChainOrderStore.js +1 -5
  299. package/dist/esm/stores/chains/createChainOrderStore.js.map +1 -1
  300. package/dist/esm/stores/form/FormStore.js +18 -8
  301. package/dist/esm/stores/form/FormStore.js.map +1 -1
  302. package/dist/esm/stores/form/FormUpdater.js +5 -50
  303. package/dist/esm/stores/form/FormUpdater.js.map +1 -1
  304. package/dist/esm/stores/form/URLSearchParamsBuilder.js +11 -31
  305. package/dist/esm/stores/form/URLSearchParamsBuilder.js.map +1 -1
  306. package/dist/esm/stores/form/getDefaultValuesFromQueryString.d.ts +7 -0
  307. package/dist/esm/stores/form/getDefaultValuesFromQueryString.js +32 -0
  308. package/dist/esm/stores/form/getDefaultValuesFromQueryString.js.map +1 -0
  309. package/dist/esm/stores/form/types.d.ts +2 -3
  310. package/dist/esm/stores/form/types.js.map +1 -1
  311. package/dist/esm/stores/header/types.d.ts +5 -3
  312. package/dist/esm/stores/header/useHeaderStore.js +14 -0
  313. package/dist/esm/stores/header/useHeaderStore.js.map +1 -1
  314. package/dist/esm/stores/pinnedTokens/PinnedTokensStore.d.ts +4 -0
  315. package/dist/esm/stores/pinnedTokens/PinnedTokensStore.js +20 -0
  316. package/dist/esm/stores/pinnedTokens/PinnedTokensStore.js.map +1 -0
  317. package/dist/esm/stores/pinnedTokens/createPinnedTokensStore.d.ts +19 -0
  318. package/dist/esm/stores/pinnedTokens/createPinnedTokensStore.js +61 -0
  319. package/dist/esm/stores/pinnedTokens/createPinnedTokensStore.js.map +1 -0
  320. package/dist/esm/stores/pinnedTokens/types.d.ts +17 -0
  321. package/dist/esm/stores/pinnedTokens/types.js +2 -0
  322. package/dist/esm/stores/pinnedTokens/types.js.map +1 -0
  323. package/dist/esm/stores/routes/RouteExecutionStore.d.ts +2 -3
  324. package/dist/esm/stores/routes/RouteExecutionStore.js.map +1 -1
  325. package/dist/esm/stores/routes/createRouteExecutionStore.js +2 -5
  326. package/dist/esm/stores/routes/createRouteExecutionStore.js.map +1 -1
  327. package/dist/esm/stores/routes/useExecutingRoutesIds.js +2 -2
  328. package/dist/esm/stores/routes/useExecutingRoutesIds.js.map +1 -1
  329. package/dist/esm/stores/routes/utils.d.ts +2 -2
  330. package/dist/esm/stores/routes/utils.js +15 -15
  331. package/dist/esm/stores/routes/utils.js.map +1 -1
  332. package/dist/esm/stores/settings/SettingsStore.d.ts +2 -3
  333. package/dist/esm/stores/settings/SettingsStore.js.map +1 -1
  334. package/dist/esm/stores/settings/createSettingsStore.d.ts +2 -0
  335. package/dist/esm/stores/settings/createSettingsStore.js +2 -1
  336. package/dist/esm/stores/settings/createSettingsStore.js.map +1 -1
  337. package/dist/esm/stores/settings/types.d.ts +3 -3
  338. package/dist/esm/stores/settings/types.js.map +1 -1
  339. package/dist/esm/types/events.d.ts +2 -10
  340. package/dist/esm/types/events.js +0 -1
  341. package/dist/esm/types/events.js.map +1 -1
  342. package/dist/esm/types/token.d.ts +1 -0
  343. package/dist/esm/types/widget.d.ts +9 -16
  344. package/dist/esm/types/widget.js +1 -0
  345. package/dist/esm/types/widget.js.map +1 -1
  346. package/dist/esm/utils/chainType.d.ts +1 -2
  347. package/dist/esm/utils/chainType.js +1 -19
  348. package/dist/esm/utils/chainType.js.map +1 -1
  349. package/dist/esm/utils/converters.js +11 -18
  350. package/dist/esm/utils/converters.js.map +1 -1
  351. package/dist/esm/utils/format.d.ts +1 -0
  352. package/dist/esm/utils/format.js +2 -1
  353. package/dist/esm/utils/format.js.map +1 -1
  354. package/dist/esm/utils/getActionMessage.d.ts +7 -0
  355. package/dist/esm/utils/getActionMessage.js +111 -0
  356. package/dist/esm/utils/getActionMessage.js.map +1 -0
  357. package/dist/esm/utils/getErrorMessage.d.ts +6 -0
  358. package/dist/esm/utils/getErrorMessage.js +118 -0
  359. package/dist/esm/utils/getErrorMessage.js.map +1 -0
  360. package/dist/esm/utils/prepareActions.d.ts +2 -0
  361. package/dist/esm/utils/prepareActions.js +24 -0
  362. package/dist/esm/utils/prepareActions.js.map +1 -0
  363. package/dist/esm/utils/tokenList.d.ts +3 -2
  364. package/dist/esm/utils/tokenList.js +104 -8
  365. package/dist/esm/utils/tokenList.js.map +1 -1
  366. package/package.json +15 -23
  367. package/package.json.tmp +16 -28
  368. package/src/AppDefault.tsx +279 -31
  369. package/src/AppLayout.tsx +36 -0
  370. package/src/AppProvider.tsx +12 -40
  371. package/src/components/ActiveTransactions/ActiveTransactionItem.tsx +9 -6
  372. package/src/components/ActiveTransactions/ActiveTransactions.tsx +2 -2
  373. package/src/components/AmountInput/AmountInput.tsx +6 -8
  374. package/src/components/AmountInput/AmountInputEndAdornment.tsx +1 -1
  375. package/src/components/Avatar/AccountAvatar.tsx +1 -1
  376. package/src/components/ChainSelect/ChainSelect.tsx +8 -4
  377. package/src/components/Chains/VirtualizedChainList.tsx +7 -3
  378. package/src/components/ContractComponent/ItemPrice.tsx +1 -2
  379. package/src/components/ContractComponent/NFT/NFT.tsx +1 -1
  380. package/src/components/Header/BackButton.tsx +15 -3
  381. package/src/components/Header/DisconnectIconButton.tsx +2 -1
  382. package/src/components/Header/Header.tsx +1 -1
  383. package/src/components/Header/NavigationHeader.tsx +23 -46
  384. package/src/components/Header/SettingsButton.tsx +3 -3
  385. package/src/components/Header/TransactionHistoryButton.tsx +3 -3
  386. package/src/components/Header/WalletHeader.tsx +1 -1
  387. package/src/components/Messages/GasSufficiencyMessage.tsx +1 -1
  388. package/src/components/PageEntered.ts +1 -1
  389. package/src/components/ReverseTokensButton/ReverseTokensButton.tsx +0 -10
  390. package/src/components/RouteCard/RouteCard.tsx +1 -3
  391. package/src/components/Routes/Routes.tsx +3 -4
  392. package/src/components/Routes/RoutesContent.tsx +1 -2
  393. package/src/components/Routes/RoutesExpanded.tsx +4 -3
  394. package/src/components/SelectChainAndToken.tsx +2 -4
  395. package/src/components/SelectTokenButton/SelectTokenButton.tsx +11 -13
  396. package/src/components/SendToWallet/SendToWalletButton.tsx +9 -12
  397. package/src/components/Step/CircularProgress.style.tsx +3 -3
  398. package/src/components/Step/CircularProgress.tsx +11 -11
  399. package/src/components/Step/Step.tsx +13 -14
  400. package/src/components/Step/{StepProcess.tsx → StepAction.tsx} +20 -15
  401. package/src/components/StepActions/StepActions.tsx +3 -2
  402. package/src/components/Timer/StepTimer.tsx +43 -105
  403. package/src/components/TokenList/PinTokenButton.tsx +50 -0
  404. package/src/components/TokenList/TokenList.tsx +67 -59
  405. package/src/components/TokenList/TokenListItem.tsx +20 -11
  406. package/src/components/TokenList/VirtualizedTokenList.tsx +80 -53
  407. package/src/components/TokenList/types.ts +2 -3
  408. package/src/components/TokenList/useTokenSelect.ts +2 -8
  409. package/src/components/TokenRate/TokenRate.tsx +1 -2
  410. package/src/components/TransactionDetails.tsx +3 -2
  411. package/src/config/version.ts +1 -1
  412. package/src/hooks/useActionMessage.ts +33 -0
  413. package/src/hooks/useAddressActivity.ts +19 -11
  414. package/src/hooks/useAddressValidation.ts +9 -2
  415. package/src/hooks/useAvailableChains.ts +42 -14
  416. package/src/hooks/useExplorer.ts +1 -2
  417. package/src/hooks/useFilteredByTokenBalances.ts +3 -1
  418. package/src/hooks/useFromTokenSufficiency.ts +8 -5
  419. package/src/hooks/useGasRecommendation.ts +3 -0
  420. package/src/hooks/useGasSufficiency.ts +23 -13
  421. package/src/hooks/useHasChainExpansion.ts +13 -3
  422. package/src/hooks/useInitializeSDKProviders.ts +12 -0
  423. package/src/hooks/useIsBatchingSupported.ts +11 -5
  424. package/src/hooks/useIsContractAddress.ts +14 -10
  425. package/src/hooks/useNavigateBack.ts +11 -29
  426. package/src/hooks/useRouteExecution.ts +12 -16
  427. package/src/hooks/useRoutes.ts +26 -74
  428. package/src/hooks/useToAddressAutoPopulate.ts +3 -1
  429. package/src/hooks/useToAddressRequirements.ts +3 -2
  430. package/src/hooks/useTokenBalance.ts +18 -3
  431. package/src/hooks/useTokenBalances.ts +91 -5
  432. package/src/hooks/useTokenBalancesQueries.ts +4 -2
  433. package/src/hooks/useTokenSearch.ts +10 -3
  434. package/src/hooks/useTokens.ts +11 -6
  435. package/src/hooks/useTools.ts +3 -1
  436. package/src/hooks/useTransactionDetails.ts +3 -0
  437. package/src/hooks/useTransactionHistory.ts +3 -0
  438. package/src/hooks/useWidgetChains.ts +6 -0
  439. package/src/i18n/bn.json +4 -1
  440. package/src/i18n/de.json +4 -1
  441. package/src/i18n/en.json +3 -14
  442. package/src/i18n/es.json +4 -1
  443. package/src/i18n/fr.json +4 -1
  444. package/src/i18n/hi.json +4 -1
  445. package/src/i18n/id.json +4 -1
  446. package/src/i18n/it.json +4 -1
  447. package/src/i18n/ja.json +4 -1
  448. package/src/i18n/ko.json +4 -1
  449. package/src/i18n/pl.json +4 -1
  450. package/src/i18n/pt.json +4 -1
  451. package/src/i18n/th.json +4 -1
  452. package/src/i18n/tr.json +4 -1
  453. package/src/i18n/uk.json +4 -1
  454. package/src/i18n/vi.json +4 -1
  455. package/src/i18n/zh.json +4 -1
  456. package/src/index.ts +2 -8
  457. package/src/pages/LanguagesPage.tsx +2 -1
  458. package/src/pages/MainPage/MainPage.tsx +1 -3
  459. package/src/pages/MainPage/ReviewButton.tsx +5 -5
  460. package/src/pages/RoutesPage/RoutesPage.tsx +6 -6
  461. package/src/pages/SelectChainPage/SelectChainPage.tsx +1 -1
  462. package/src/pages/SelectTokenPage/SelectTokenPage.tsx +4 -28
  463. package/src/pages/SendToWallet/BookmarksPage.tsx +3 -5
  464. package/src/pages/SendToWallet/ConfirmAddressSheet.tsx +1 -1
  465. package/src/pages/SendToWallet/ConnectedWalletsPage.tsx +5 -4
  466. package/src/pages/SendToWallet/RecentWalletsPage.tsx +4 -7
  467. package/src/pages/SendToWallet/SendToConfiguredWalletPage.tsx +1 -1
  468. package/src/pages/SendToWallet/SendToWalletPage.tsx +6 -6
  469. package/src/pages/SettingsPage/BridgeAndExchangeSettings.tsx +4 -2
  470. package/src/pages/SettingsPage/LanguageSetting.tsx +2 -2
  471. package/src/pages/SettingsPage/SettingsCard/SettingCardExpandable.tsx +63 -33
  472. package/src/pages/SettingsPage/SettingsCard/SettingsAccordian.tsx +3 -2
  473. package/src/pages/SettingsPage/SettingsPage.tsx +7 -0
  474. package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.style.tsx +10 -10
  475. package/src/pages/SettingsPage/SlippageSettings/SlippageSettings.tsx +5 -5
  476. package/src/pages/SettingsPage/SmallBalanceFilterSettings.tsx +116 -0
  477. package/src/pages/TransactionDetailsPage/TransactionDetailsPage.tsx +7 -8
  478. package/src/pages/TransactionHistoryPage/TransactionHistoryItem.tsx +4 -3
  479. package/src/pages/TransactionHistoryPage/TransactionHistoryPage.tsx +1 -2
  480. package/src/pages/TransactionPage/StatusBottomSheet.tsx +15 -14
  481. package/src/pages/TransactionPage/TransactionPage.tsx +14 -7
  482. package/src/providers/I18nProvider/I18nProvider.tsx +1 -0
  483. package/src/providers/SDKClientProvider.tsx +41 -0
  484. package/src/providers/WalletProvider/WalletProvider.tsx +61 -20
  485. package/src/providers/WalletProvider/useExternalWalletProvider.ts +20 -18
  486. package/src/providers/WidgetProvider/WidgetProvider.tsx +0 -29
  487. package/src/stores/StoreProvider.tsx +10 -7
  488. package/src/stores/bookmarks/types.ts +2 -3
  489. package/src/stores/chains/ChainOrderStore.tsx +29 -16
  490. package/src/stores/chains/createChainOrderStore.ts +1 -5
  491. package/src/stores/form/FormStore.tsx +19 -18
  492. package/src/stores/form/FormUpdater.tsx +5 -73
  493. package/src/stores/form/URLSearchParamsBuilder.tsx +12 -39
  494. package/src/stores/form/getDefaultValuesFromQueryString.ts +48 -0
  495. package/src/stores/form/types.ts +2 -5
  496. package/src/stores/header/types.ts +5 -3
  497. package/src/stores/header/useHeaderStore.tsx +14 -0
  498. package/src/stores/pinnedTokens/PinnedTokensStore.tsx +38 -0
  499. package/src/stores/pinnedTokens/createPinnedTokensStore.ts +71 -0
  500. package/src/stores/pinnedTokens/types.ts +20 -0
  501. package/src/stores/routes/RouteExecutionStore.tsx +2 -5
  502. package/src/stores/routes/createRouteExecutionStore.ts +4 -5
  503. package/src/stores/routes/useExecutingRoutesIds.ts +2 -2
  504. package/src/stores/routes/utils.ts +21 -19
  505. package/src/stores/settings/SettingsStore.tsx +2 -3
  506. package/src/stores/settings/createSettingsStore.ts +2 -1
  507. package/src/stores/settings/types.ts +3 -5
  508. package/src/types/events.ts +2 -11
  509. package/src/types/token.ts +1 -0
  510. package/src/types/widget.ts +18 -26
  511. package/src/utils/chainType.ts +1 -24
  512. package/src/utils/converters.ts +14 -20
  513. package/src/utils/format.ts +3 -1
  514. package/src/utils/getActionMessage.ts +168 -0
  515. package/src/utils/getErrorMessage.ts +144 -0
  516. package/src/utils/prepareActions.ts +27 -0
  517. package/src/utils/tokenList.ts +117 -11
  518. package/dist/esm/AppRoutes.d.ts +0 -1
  519. package/dist/esm/AppRoutes.js +0 -111
  520. package/dist/esm/AppRoutes.js.map +0 -1
  521. package/dist/esm/components/Step/StepProcess.d.ts +0 -5
  522. package/dist/esm/components/Step/StepProcess.js.map +0 -1
  523. package/dist/esm/config/baseAccount.d.ts +0 -2
  524. package/dist/esm/config/baseAccount.js +0 -6
  525. package/dist/esm/config/baseAccount.js.map +0 -1
  526. package/dist/esm/config/coinbase.d.ts +0 -2
  527. package/dist/esm/config/coinbase.js +0 -6
  528. package/dist/esm/config/coinbase.js.map +0 -1
  529. package/dist/esm/config/metaMask.d.ts +0 -2
  530. package/dist/esm/config/metaMask.js +0 -11
  531. package/dist/esm/config/metaMask.js.map +0 -1
  532. package/dist/esm/config/walletConnect.d.ts +0 -2
  533. package/dist/esm/config/walletConnect.js +0 -4
  534. package/dist/esm/config/walletConnect.js.map +0 -1
  535. package/dist/esm/hooks/useExpansionRoutes.d.ts +0 -2
  536. package/dist/esm/hooks/useExpansionRoutes.js +0 -26
  537. package/dist/esm/hooks/useExpansionRoutes.js.map +0 -1
  538. package/dist/esm/hooks/useInternalWalletProvider.d.ts +0 -1
  539. package/dist/esm/hooks/useInternalWalletProvider.js +0 -6
  540. package/dist/esm/hooks/useInternalWalletProvider.js.map +0 -1
  541. package/dist/esm/hooks/useProcessMessage.d.ts +0 -11
  542. package/dist/esm/hooks/useProcessMessage.js +0 -199
  543. package/dist/esm/hooks/useProcessMessage.js.map +0 -1
  544. package/dist/esm/providers/WalletProvider/EVMBaseProvider.d.ts +0 -2
  545. package/dist/esm/providers/WalletProvider/EVMBaseProvider.js +0 -31
  546. package/dist/esm/providers/WalletProvider/EVMBaseProvider.js.map +0 -1
  547. package/dist/esm/providers/WalletProvider/EVMExternalContext.d.ts +0 -1
  548. package/dist/esm/providers/WalletProvider/EVMExternalContext.js +0 -3
  549. package/dist/esm/providers/WalletProvider/EVMExternalContext.js.map +0 -1
  550. package/dist/esm/providers/WalletProvider/EVMProvider.d.ts +0 -2
  551. package/dist/esm/providers/WalletProvider/EVMProvider.js +0 -20
  552. package/dist/esm/providers/WalletProvider/EVMProvider.js.map +0 -1
  553. package/dist/esm/providers/WalletProvider/SDKProviders.d.ts +0 -1
  554. package/dist/esm/providers/WalletProvider/SDKProviders.js +0 -62
  555. package/dist/esm/providers/WalletProvider/SDKProviders.js.map +0 -1
  556. package/dist/esm/providers/WalletProvider/SVMBaseProvider.d.ts +0 -2
  557. package/dist/esm/providers/WalletProvider/SVMBaseProvider.js +0 -27
  558. package/dist/esm/providers/WalletProvider/SVMBaseProvider.js.map +0 -1
  559. package/dist/esm/providers/WalletProvider/SVMExternalContext.d.ts +0 -1
  560. package/dist/esm/providers/WalletProvider/SVMExternalContext.js +0 -3
  561. package/dist/esm/providers/WalletProvider/SVMExternalContext.js.map +0 -1
  562. package/dist/esm/providers/WalletProvider/SVMProvider.d.ts +0 -2
  563. package/dist/esm/providers/WalletProvider/SVMProvider.js +0 -20
  564. package/dist/esm/providers/WalletProvider/SVMProvider.js.map +0 -1
  565. package/dist/esm/providers/WalletProvider/SuiBaseProvider.d.ts +0 -2
  566. package/dist/esm/providers/WalletProvider/SuiBaseProvider.js +0 -17
  567. package/dist/esm/providers/WalletProvider/SuiBaseProvider.js.map +0 -1
  568. package/dist/esm/providers/WalletProvider/SuiExternalContext.d.ts +0 -1
  569. package/dist/esm/providers/WalletProvider/SuiExternalContext.js +0 -3
  570. package/dist/esm/providers/WalletProvider/SuiExternalContext.js.map +0 -1
  571. package/dist/esm/providers/WalletProvider/SuiProvider.d.ts +0 -2
  572. package/dist/esm/providers/WalletProvider/SuiProvider.js +0 -20
  573. package/dist/esm/providers/WalletProvider/SuiProvider.js.map +0 -1
  574. package/dist/esm/providers/WalletProvider/UTXOBaseProvider.d.ts +0 -2
  575. package/dist/esm/providers/WalletProvider/UTXOBaseProvider.js +0 -18
  576. package/dist/esm/providers/WalletProvider/UTXOBaseProvider.js.map +0 -1
  577. package/dist/esm/providers/WalletProvider/UTXOExternalContext.d.ts +0 -1
  578. package/dist/esm/providers/WalletProvider/UTXOExternalContext.js +0 -3
  579. package/dist/esm/providers/WalletProvider/UTXOExternalContext.js.map +0 -1
  580. package/dist/esm/providers/WalletProvider/UTXOProvider.d.ts +0 -2
  581. package/dist/esm/providers/WalletProvider/UTXOProvider.js +0 -20
  582. package/dist/esm/providers/WalletProvider/UTXOProvider.js.map +0 -1
  583. package/src/AppRoutes.tsx +0 -112
  584. package/src/config/baseAccount.ts +0 -7
  585. package/src/config/coinbase.ts +0 -7
  586. package/src/config/metaMask.ts +0 -13
  587. package/src/config/walletConnect.ts +0 -5
  588. package/src/hooks/useExpansionRoutes.ts +0 -29
  589. package/src/hooks/useInternalWalletProvider.ts +0 -6
  590. package/src/hooks/useProcessMessage.ts +0 -273
  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
@@ -7,10 +7,11 @@ import { StepActions } from '../../components/StepActions/StepActions.js'
7
7
  import { Token } from '../../components/Token/Token.js'
8
8
  import { useExplorer } from '../../hooks/useExplorer.js'
9
9
  import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'
10
+ import { prepareActions } from '../../utils/prepareActions.js'
10
11
  import { shortenAddress } from '../../utils/wallet.js'
11
12
  import { StepTimer } from '../Timer/StepTimer.js'
12
13
  import { DestinationWalletAddress } from './DestinationWalletAddress.js'
13
- import { StepProcess } from './StepProcess.js'
14
+ import { StepAction } from './StepAction.js'
14
15
 
15
16
  export const Step: React.FC<{
16
17
  step: LiFiStepExtended
@@ -22,8 +23,8 @@ export const Step: React.FC<{
22
23
  const { t } = useTranslation()
23
24
  const { subvariant, subvariantOptions } = useWidgetConfig()
24
25
  const { getAddressLink } = useExplorer()
25
- const stepHasError = step.execution?.process.some(
26
- (process) => process.status === 'FAILED'
26
+ const stepHasError = step.execution?.actions?.some(
27
+ (action) => action.status === 'FAILED'
27
28
  )
28
29
 
29
30
  const getCardTitle = () => {
@@ -39,31 +40,27 @@ export const Step: React.FC<{
39
40
 
40
41
  if (hasBridgeStep && hasSwapStep) {
41
42
  return isCustomVariant
42
- ? subvariantOptions?.custom === 'deposit' ||
43
- subvariantOptions?.custom === 'fund'
43
+ ? subvariantOptions?.custom === 'deposit'
44
44
  ? t('main.stepBridgeAndDeposit')
45
45
  : t('main.stepBridgeAndBuy')
46
46
  : t('main.stepSwapAndBridge')
47
47
  }
48
48
  if (hasBridgeStep) {
49
49
  return isCustomVariant
50
- ? subvariantOptions?.custom === 'deposit' ||
51
- subvariantOptions?.custom === 'fund'
50
+ ? subvariantOptions?.custom === 'deposit'
52
51
  ? t('main.stepBridgeAndDeposit')
53
52
  : t('main.stepBridgeAndBuy')
54
53
  : t('main.stepBridge')
55
54
  }
56
55
  if (hasSwapStep) {
57
56
  return isCustomVariant
58
- ? subvariantOptions?.custom === 'deposit' ||
59
- subvariantOptions?.custom === 'fund'
57
+ ? subvariantOptions?.custom === 'deposit'
60
58
  ? t('main.stepSwapAndDeposit')
61
59
  : t('main.stepSwapAndBuy')
62
60
  : t('main.stepSwap')
63
61
  }
64
62
  return isCustomVariant
65
- ? subvariantOptions?.custom === 'deposit' ||
66
- subvariantOptions?.custom === 'fund'
63
+ ? subvariantOptions?.custom === 'deposit'
67
64
  ? t('main.stepDeposit')
68
65
  : t('main.stepBuy')
69
66
  : t('main.stepSwap')
@@ -94,9 +91,11 @@ export const Step: React.FC<{
94
91
  >
95
92
  {fromToken ? <Token token={fromToken} px={2} py={1} /> : null}
96
93
  <StepActions step={step} px={2} py={1} dense />
97
- {step.execution?.process.map((process, index) => (
98
- <StepProcess key={index} step={step} process={process} />
99
- ))}
94
+ {prepareActions(step.execution?.actions ?? []).map(
95
+ (actionsGroup, index) => (
96
+ <StepAction key={index} step={step} actionsGroup={actionsGroup} />
97
+ )
98
+ )}
100
99
  {formattedToAddress && toAddressLink ? (
101
100
  <DestinationWalletAddress
102
101
  step={step}
@@ -1,27 +1,32 @@
1
- import type { LiFiStep, Process } from '@lifi/sdk'
1
+ import type { ExecutionAction, LiFiStepExtended } from '@lifi/sdk'
2
2
  import OpenInNewRounded from '@mui/icons-material/OpenInNewRounded'
3
3
  import { Box, Link, Typography } from '@mui/material'
4
+ import { useActionMessage } from '../../hooks/useActionMessage.js'
4
5
  import { useExplorer } from '../../hooks/useExplorer.js'
5
- import { useProcessMessage } from '../../hooks/useProcessMessage.js'
6
6
  import { CardIconButton } from '../Card/CardIconButton.js'
7
7
  import { CircularProgress } from './CircularProgress.js'
8
8
 
9
- export const StepProcess: React.FC<{
10
- step: LiFiStep
11
- process: Process
12
- }> = ({ step, process }) => {
13
- const { title, message } = useProcessMessage(step, process)
9
+ export const StepAction: React.FC<{
10
+ step: LiFiStepExtended
11
+ actionsGroup: ExecutionAction[]
12
+ }> = ({ step, actionsGroup }) => {
13
+ const action = actionsGroup.at(-1)
14
+ const { title, message } = useActionMessage(step, action)
14
15
  const { getTransactionLink } = useExplorer()
15
16
 
16
- const transactionLink = process.txHash
17
+ if (!action) {
18
+ return null
19
+ }
20
+
21
+ const transactionLink = action.txHash
17
22
  ? getTransactionLink({
18
- txHash: process.txHash,
19
- chain: process.chainId,
23
+ txHash: action.txHash,
24
+ chain: action.chainId,
20
25
  })
21
- : process.txLink
26
+ : action.txLink
22
27
  ? getTransactionLink({
23
- txLink: process.txLink,
24
- chain: process.chainId,
28
+ txLink: action.txLink,
29
+ chain: action.chainId,
25
30
  })
26
31
  : undefined
27
32
 
@@ -38,14 +43,14 @@ export const StepProcess: React.FC<{
38
43
  alignItems: 'center',
39
44
  }}
40
45
  >
41
- <CircularProgress process={process} />
46
+ <CircularProgress action={action} />
42
47
  <Typography
43
48
  sx={{
44
49
  marginLeft: 2,
45
50
  marginRight: 0.5,
46
51
  flex: 1,
47
52
  fontSize: 14,
48
- fontWeight: process.error ? 600 : 400,
53
+ fontWeight: action.error ? 600 : 400,
49
54
  }}
50
55
  >
51
56
  {title}
@@ -1,5 +1,5 @@
1
1
  import type { LiFiStep, StepExtended } from '@lifi/sdk'
2
- import { isGaslessStep } from '@lifi/sdk'
2
+ import { useEthereumContext } from '@lifi/widget-provider'
3
3
  import ArrowForward from '@mui/icons-material/ArrowForward'
4
4
  import ExpandLess from '@mui/icons-material/ExpandLess'
5
5
  import ExpandMore from '@mui/icons-material/ExpandMore'
@@ -123,6 +123,7 @@ export const StepActions: React.FC<StepActionsProps> = ({
123
123
  const IncludedSteps: React.FC<IncludedStepsProps> = ({ step }) => {
124
124
  const { subvariant, subvariantOptions, feeConfig, hiddenUI } =
125
125
  useWidgetConfig()
126
+ const { isGaslessStep } = useEthereumContext()
126
127
 
127
128
  let includedSteps = step.includedSteps
128
129
  if (hiddenUI?.includes(HiddenUI.IntegratorStepDetails)) {
@@ -163,7 +164,7 @@ const IncludedSteps: React.FC<IncludedStepsProps> = ({ step }) => {
163
164
  ) : null
164
165
  }
165
166
 
166
- const hasGaslessSupport = isGaslessStep(step)
167
+ const hasGaslessSupport = !!isGaslessStep?.(step)
167
168
 
168
169
  return (
169
170
  <Box
@@ -1,49 +1,17 @@
1
1
  import type { LiFiStepExtended } from '@lifi/sdk'
2
- import { useEffect, useState } from 'react'
2
+ import { useState } from 'react'
3
3
  import { useTranslation } from 'react-i18next'
4
4
  import { useTimer } from '../../hooks/timer/useTimer.js'
5
5
  import { formatTimer } from '../../utils/timer.js'
6
6
  import { TimerContent } from './TimerContent.js'
7
7
 
8
- /**
9
- * Finds the most recent process that is either a SWAP, CROSS_CHAIN, or RECEIVING_CHAIN.
10
- * Includes RECEIVING_CHAIN to track the complete transaction lifecycle for UI updates.
11
- */
12
- const getProgressProcess = (step: LiFiStepExtended) =>
13
- step.execution?.process.findLast(
14
- (process) =>
15
- process.type === 'SWAP' ||
16
- process.type === 'CROSS_CHAIN' ||
17
- process.type === 'RECEIVING_CHAIN'
18
- )
19
-
20
- /**
21
- * Finds the most recent SWAP or CROSS_CHAIN process, excluding RECEIVING_CHAIN.
22
- * Expiry time is based on when the active transaction started, not the receiving phase.
23
- */
24
- const getExpiryProcess = (step: LiFiStepExtended) =>
25
- step.execution?.process.findLast(
26
- (process) => process.type === 'SWAP' || process.type === 'CROSS_CHAIN'
27
- )
28
-
29
- /**
30
- * Calculates expiry timestamp based on process start time, estimated duration, and pause time.
31
- * Pause time is added when action is required (usually for signature requests).
32
- */
33
8
  const getExpiryTimestamp = (step: LiFiStepExtended) => {
34
- const lastProcess = getExpiryProcess(step)
35
- let timeInPause = 0
36
- if (lastProcess?.actionRequiredAt) {
37
- const actionDoneAt =
38
- lastProcess.pendingAt ?? lastProcess.doneAt ?? Date.now()
39
- timeInPause = new Date(
40
- actionDoneAt - lastProcess.actionRequiredAt
41
- ).getTime()
9
+ const execution = step?.execution
10
+ if (!execution) {
11
+ return new Date()
42
12
  }
43
13
  const expiry = new Date(
44
- (lastProcess?.startedAt ?? Date.now()) +
45
- step.estimate.executionDuration * 1000 +
46
- timeInPause
14
+ (execution.signedAt ?? Date.now()) + step.estimate.executionDuration * 1000
47
15
  )
48
16
  return expiry
49
17
  }
@@ -52,78 +20,16 @@ export const StepTimer: React.FC<{
52
20
  step: LiFiStepExtended
53
21
  hideInProgress?: boolean
54
22
  }> = ({ step, hideInProgress }) => {
55
- const { t, i18n } = useTranslation()
56
- const [isExpired, setExpired] = useState(false)
57
- const [isExecutionStarted, setExecutionStarted] = useState(
58
- () => !!getProgressProcess(step)
59
- )
60
- const [expiryTimestamp, setExpiryTimestamp] = useState(() =>
61
- getExpiryTimestamp(step)
62
- )
63
- const { days, hours, minutes, seconds, isRunning, pause, resume, restart } =
64
- useTimer({
65
- autoStart: false,
66
- expiryTimestamp,
67
- onExpire: () => setExpired(true),
68
- })
69
-
70
- useEffect(() => {
71
- const executionProcess = getProgressProcess(step)
72
- if (!executionProcess) {
73
- return
74
- }
75
-
76
- if (isExecutionStarted && isExpired) {
77
- return
78
- }
79
-
80
- const isProcessStarted =
81
- executionProcess.status === 'STARTED' ||
82
- executionProcess.status === 'PENDING'
83
-
84
- const shouldRestart = !isExecutionStarted && isProcessStarted && !isRunning
85
-
86
- const shouldPause =
87
- isExecutionStarted &&
88
- (executionProcess.status === 'ACTION_REQUIRED' ||
89
- executionProcess.status === 'MESSAGE_REQUIRED' ||
90
- executionProcess.status === 'RESET_REQUIRED') &&
91
- isRunning
92
-
93
- const shouldStop =
94
- isExecutionStarted && executionProcess.status === 'FAILED'
95
-
96
- const shouldResume = isExecutionStarted && isProcessStarted && !isRunning
97
-
98
- if (shouldRestart) {
99
- const newExpiryTimestamp = getExpiryTimestamp(step)
100
- setExecutionStarted(true)
101
- setExpiryTimestamp(newExpiryTimestamp)
102
- return restart(newExpiryTimestamp, true)
103
- }
104
- if (shouldPause) {
105
- return pause()
106
- }
107
- if (shouldResume) {
108
- return resume()
109
- }
110
- if (shouldStop) {
111
- setExecutionStarted(false)
112
- setExpired(false)
113
- }
114
- }, [isExecutionStarted, isExpired, isRunning, pause, restart, resume, step])
115
-
116
- const isTimerExpired = isExpired || (!minutes && !seconds)
23
+ const { i18n } = useTranslation()
117
24
 
118
25
  if (
119
26
  step.execution?.status === 'DONE' ||
120
- step.execution?.status === 'FAILED' ||
121
- (isTimerExpired && hideInProgress)
27
+ step.execution?.status === 'FAILED'
122
28
  ) {
123
29
  return null
124
30
  }
125
31
 
126
- if (!isExecutionStarted) {
32
+ if (!step.execution?.signedAt) {
127
33
  const showSeconds = step.estimate.executionDuration < 60
128
34
  const duration = showSeconds
129
35
  ? Math.floor(step.estimate.executionDuration)
@@ -139,9 +45,41 @@ export const StepTimer: React.FC<{
139
45
  )
140
46
  }
141
47
 
142
- return isTimerExpired ? (
143
- t('main.inProgress')
144
- ) : (
48
+ return (
49
+ <ExecutionTimer
50
+ expiryTimestamp={getExpiryTimestamp(step)}
51
+ hideInProgress={hideInProgress}
52
+ />
53
+ )
54
+ }
55
+
56
+ const ExecutionTimer = ({
57
+ expiryTimestamp,
58
+ hideInProgress,
59
+ }: {
60
+ expiryTimestamp: Date
61
+ hideInProgress?: boolean
62
+ }) => {
63
+ const { t, i18n } = useTranslation()
64
+
65
+ const [isExpired, setExpired] = useState(false)
66
+
67
+ const { days, hours, minutes, seconds } = useTimer({
68
+ autoStart: true,
69
+ expiryTimestamp,
70
+ onExpire: () => setExpired(true),
71
+ })
72
+
73
+ const isTimerExpired = isExpired || (!minutes && !seconds)
74
+
75
+ if (isTimerExpired) {
76
+ if (hideInProgress) {
77
+ return null
78
+ }
79
+ return t('main.inProgress')
80
+ }
81
+
82
+ return (
145
83
  <TimerContent>
146
84
  {formatTimer({
147
85
  locale: i18n.language,
@@ -0,0 +1,50 @@
1
+ import PushPinIcon from '@mui/icons-material/PushPin'
2
+ import PushPinOutlinedIcon from '@mui/icons-material/PushPinOutlined'
3
+ import { IconButton } from '@mui/material'
4
+ import { usePinnedTokensStore } from '../../stores/pinnedTokens/PinnedTokensStore.js'
5
+
6
+ interface PinTokenButtonProps {
7
+ chainId: number
8
+ tokenAddress: string
9
+ }
10
+
11
+ export const PinTokenButton = ({
12
+ chainId,
13
+ tokenAddress,
14
+ }: PinTokenButtonProps) => {
15
+ const [pinnedTokens, pinToken, unpinToken] = usePinnedTokensStore((state) => [
16
+ state.pinnedTokens,
17
+ state.pinToken,
18
+ state.unpinToken,
19
+ ])
20
+
21
+ const isPinned =
22
+ pinnedTokens[chainId]?.includes(tokenAddress.toLowerCase()) ?? false
23
+
24
+ const handleClick = (e: React.MouseEvent) => {
25
+ e.stopPropagation()
26
+ ;(e.currentTarget as HTMLElement).blur()
27
+ if (isPinned) {
28
+ unpinToken(chainId, tokenAddress)
29
+ } else {
30
+ pinToken(chainId, tokenAddress)
31
+ }
32
+ }
33
+
34
+ const PinIcon = isPinned ? PushPinIcon : PushPinOutlinedIcon
35
+
36
+ return (
37
+ <IconButton
38
+ sx={{ width: 20, height: 20 }}
39
+ size="small"
40
+ onClick={handleClick}
41
+ >
42
+ <PinIcon
43
+ sx={{
44
+ fontSize: 12,
45
+ color: isPinned ? 'text.primary' : 'text.secondary',
46
+ }}
47
+ />
48
+ </IconButton>
49
+ )
50
+ }
@@ -1,6 +1,8 @@
1
1
  import { Box } from '@mui/material'
2
- import { type FC, memo, useEffect } from 'react'
2
+ import { type FC, memo, useEffect, useRef } from 'react'
3
3
  import { useDebouncedWatch } from '../../hooks/useDebouncedWatch.js'
4
+ import { useListHeight } from '../../hooks/useListHeight.js'
5
+ import { useNavigateBack } from '../../hooks/useNavigateBack.js'
4
6
  import { useTokenBalances } from '../../hooks/useTokenBalances.js'
5
7
  import { useWidgetEvents } from '../../hooks/useWidgetEvents.js'
6
8
  import { useChainOrderStore } from '../../stores/chains/ChainOrderStore.js'
@@ -12,69 +14,75 @@ import type { TokenListProps } from './types.js'
12
14
  import { useTokenSelect } from './useTokenSelect.js'
13
15
  import { VirtualizedTokenList } from './VirtualizedTokenList.js'
14
16
 
15
- export const TokenList: FC<TokenListProps> = memo(
16
- ({ formType, parentRef, height, onClick }) => {
17
- const emitter = useWidgetEvents()
17
+ export const TokenList: FC<TokenListProps> = memo(({ formType, headerRef }) => {
18
+ const navigateBack = useNavigateBack()
19
+ const listParentRef = useRef<HTMLUListElement | null>(null)
20
+ const { listHeight } = useListHeight({
21
+ listParentRef,
22
+ headerRef,
23
+ })
18
24
 
19
- const [selectedChainId, selectedTokenAddress] = useFieldValues(
20
- FormKeyHelper.getChainKey(formType),
21
- FormKeyHelper.getTokenKey(formType)
22
- )
25
+ const emitter = useWidgetEvents()
23
26
 
24
- const isAllNetworks = useChainOrderStore(
25
- (state) => state[`${formType}IsAllNetworks`]
26
- )
27
+ const [selectedChainId, selectedTokenAddress] = useFieldValues(
28
+ FormKeyHelper.getChainKey(formType),
29
+ FormKeyHelper.getTokenKey(formType)
30
+ )
27
31
 
28
- const [tokenSearchFilter]: string[] = useDebouncedWatch(
29
- 320,
30
- 'tokenSearchFilter'
31
- )
32
+ const isAllNetworks = useChainOrderStore(
33
+ (state) => state[`${formType}IsAllNetworks`]
34
+ )
32
35
 
33
- const {
34
- tokens,
35
- withCategories,
36
- isTokensLoading,
37
- isBalanceLoading,
38
- isSearchLoading,
39
- } = useTokenBalances(
40
- selectedChainId,
41
- formType,
42
- isAllNetworks,
43
- tokenSearchFilter
44
- )
36
+ const [tokenSearchFilter]: string[] = useDebouncedWatch(
37
+ 320,
38
+ 'tokenSearchFilter'
39
+ )
45
40
 
46
- const handleTokenClick = useTokenSelect(formType, onClick)
41
+ const {
42
+ tokens,
43
+ withCategories,
44
+ withPinnedTokens,
45
+ isTokensLoading,
46
+ isBalanceLoading,
47
+ isSearchLoading,
48
+ } = useTokenBalances(
49
+ selectedChainId,
50
+ formType,
51
+ isAllNetworks,
52
+ tokenSearchFilter
53
+ )
47
54
 
48
- const showCategories =
49
- withCategories && !tokenSearchFilter && !isAllNetworks
55
+ const handleTokenClick = useTokenSelect(formType, navigateBack)
50
56
 
51
- useEffect(() => {
52
- const normalizedSearchFilter = tokenSearchFilter?.replaceAll('$', '')
53
- if (normalizedSearchFilter) {
54
- emitter.emit(WidgetEvent.TokenSearch, {
55
- value: normalizedSearchFilter,
56
- tokens,
57
- })
58
- }
59
- }, [tokenSearchFilter, tokens, emitter])
57
+ const showCategories = withCategories && !tokenSearchFilter && !isAllNetworks
60
58
 
61
- return (
62
- <Box ref={parentRef} style={{ height, overflow: 'auto' }}>
63
- {!tokens.length && !isTokensLoading && !isSearchLoading ? (
64
- <TokenNotFound formType={formType} />
65
- ) : null}
66
- <VirtualizedTokenList
67
- tokens={tokens}
68
- scrollElementRef={parentRef}
69
- chainId={selectedChainId}
70
- isLoading={isTokensLoading || isSearchLoading}
71
- isBalanceLoading={isBalanceLoading}
72
- showCategories={showCategories}
73
- onClick={handleTokenClick}
74
- selectedTokenAddress={selectedTokenAddress}
75
- isAllNetworks={isAllNetworks}
76
- />
77
- </Box>
78
- )
79
- }
80
- )
59
+ useEffect(() => {
60
+ const normalizedSearchFilter = tokenSearchFilter?.replaceAll('$', '')
61
+ if (normalizedSearchFilter) {
62
+ emitter.emit(WidgetEvent.TokenSearch, {
63
+ value: normalizedSearchFilter,
64
+ tokens,
65
+ })
66
+ }
67
+ }, [tokenSearchFilter, tokens, emitter])
68
+
69
+ return (
70
+ <Box ref={listParentRef} style={{ height: listHeight, overflow: 'auto' }}>
71
+ {!tokens.length && !isTokensLoading && !isSearchLoading ? (
72
+ <TokenNotFound formType={formType} />
73
+ ) : null}
74
+ <VirtualizedTokenList
75
+ tokens={tokens}
76
+ scrollElementRef={listParentRef}
77
+ chainId={selectedChainId}
78
+ isLoading={isTokensLoading || isSearchLoading}
79
+ isBalanceLoading={isBalanceLoading}
80
+ showCategories={showCategories}
81
+ showPinnedTokens={withPinnedTokens}
82
+ onClick={handleTokenClick}
83
+ selectedTokenAddress={selectedTokenAddress}
84
+ isAllNetworks={isAllNetworks}
85
+ />
86
+ </Box>
87
+ )
88
+ })
@@ -21,6 +21,7 @@ import { formatTokenAmount, formatTokenPrice } from '../../utils/format.js'
21
21
  import { shortenAddress } from '../../utils/wallet.js'
22
22
  import { TokenAvatar } from '../Avatar/TokenAvatar.js'
23
23
  import { ListItemButton } from '../ListItem/ListItemButton.js'
24
+ import { PinTokenButton } from './PinTokenButton.js'
24
25
  import { IconButton, ListItem } from './TokenList.style.js'
25
26
  import type {
26
27
  TokenListItemAvatarProps,
@@ -248,17 +249,17 @@ const TokenListItemButton: React.FC<TokenListItemButtonProps> = memo(
248
249
  appear={false}
249
250
  mountOnEnter
250
251
  >
251
- <Box
252
- sx={{
253
- display: 'flex',
254
- }}
255
- >
252
+ <Box>
256
253
  <OpenTokenDetailsButton
257
254
  tokenAddress={token.address}
258
255
  withoutContractAddress={withoutContractAddress}
259
256
  chainId={token.chainId}
260
257
  onClick={onShowTokenDetails}
261
258
  />
259
+ <PinTokenButton
260
+ chainId={token.chainId}
261
+ tokenAddress={token.address}
262
+ />
262
263
  </Box>
263
264
  </Slide>
264
265
  </Box>
@@ -301,6 +302,8 @@ const TokenListItemButton: React.FC<TokenListItemButtonProps> = memo(
301
302
  <Box
302
303
  sx={{
303
304
  display: 'flex',
305
+ alignItems: 'center',
306
+ gap: 0.5,
304
307
  }}
305
308
  >
306
309
  <Box
@@ -312,12 +315,18 @@ const TokenListItemButton: React.FC<TokenListItemButtonProps> = memo(
312
315
  >
313
316
  {shortenAddress(token.address)}
314
317
  </Box>
315
- <OpenTokenDetailsButton
316
- tokenAddress={token.address}
317
- withoutContractAddress={withoutContractAddress}
318
- chainId={token.chainId}
319
- onClick={onShowTokenDetails}
320
- />
318
+ <Box>
319
+ <OpenTokenDetailsButton
320
+ tokenAddress={token.address}
321
+ withoutContractAddress={withoutContractAddress}
322
+ chainId={token.chainId}
323
+ onClick={onShowTokenDetails}
324
+ />
325
+ <PinTokenButton
326
+ chainId={token.chainId}
327
+ tokenAddress={token.address}
328
+ />
329
+ </Box>
321
330
  </Box>
322
331
  </Slide>
323
332
  </Box>