@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
@@ -1,13 +1,14 @@
1
+ import { useLocation } from '@tanstack/react-router'
1
2
  import { useEffect } from 'react'
2
- import { useLocation } from 'react-router-dom'
3
3
  import { useAddressValidation } from '../../hooks/useAddressValidation.js'
4
+ import { useWidgetConfig } from '../../providers/WidgetProvider/WidgetProvider.js'
4
5
  import { useSendToWalletActions } from '../../stores/settings/useSendToWalletStore.js'
5
- import { formatInputAmount } from '../../utils/format.js'
6
6
  import { useBookmarkActions } from '../bookmarks/useBookmarkActions.js'
7
- import type { DefaultValues, FormFieldNames } from '../form/types.js'
7
+ import type { FormFieldNames } from '../form/types.js'
8
8
  import { useFieldActions } from '../form/useFieldActions.js'
9
9
  import { useFieldValues } from '../form/useFieldValues.js'
10
10
  import { useTouchedFields } from '../form/useTouchedFields.js'
11
+ import { getDefaultValuesFromQueryString } from './getDefaultValuesFromQueryString.js'
11
12
 
12
13
  const formValueKeys: FormFieldNames[] = [
13
14
  'fromAmount',
@@ -18,34 +19,6 @@ const formValueKeys: FormFieldNames[] = [
18
19
  'toToken',
19
20
  ]
20
21
 
21
- const getDefaultValuesFromQueryString = (): Partial<DefaultValues> => {
22
- const searchParams = Object.fromEntries(
23
- new URLSearchParams(window?.location.search)
24
- )
25
-
26
- // Prevent using fromToken/toToken params if chain is not selected
27
- ;['from', 'to'].forEach((key) => {
28
- if (searchParams[`${key}Token`] && !searchParams[`${key}Chain`]) {
29
- delete searchParams[`${key}Token`]
30
- }
31
- })
32
-
33
- return {
34
- ...(Number.isFinite(Number.parseInt(searchParams.fromChain, 10))
35
- ? { fromChain: Number.parseInt(searchParams.fromChain, 10) }
36
- : {}),
37
- ...(Number.isFinite(Number.parseInt(searchParams.toChain, 10))
38
- ? { toChain: Number.parseInt(searchParams.toChain, 10) }
39
- : {}),
40
- ...(searchParams.fromToken ? { fromToken: searchParams.fromToken } : {}),
41
- ...(searchParams.toToken ? { toToken: searchParams.toToken } : {}),
42
- ...(Number.isFinite(Number.parseFloat(searchParams.fromAmount))
43
- ? { fromAmount: formatInputAmount(searchParams.fromAmount) }
44
- : {}),
45
- ...(searchParams.toAddress ? { toAddress: searchParams.toAddress } : {}),
46
- }
47
- }
48
-
49
22
  export const URLSearchParamsBuilder = () => {
50
23
  const { pathname } = useLocation()
51
24
  const touchedFields = useTouchedFields()
@@ -53,7 +26,7 @@ export const URLSearchParamsBuilder = () => {
53
26
  const { setSendToWallet } = useSendToWalletActions()
54
27
  const { setSelectedBookmark, addRecentWallet } = useBookmarkActions()
55
28
  const { validateAddress } = useAddressValidation()
56
-
29
+ const { buildUrl } = useWidgetConfig()
57
30
  // Using these methods as trying to use the touchedFields and values above
58
31
  // often has a lag that can effect the widgets initialisation sequence
59
32
  // and accidentally cause values to be wiped from the query string
@@ -62,7 +35,8 @@ export const URLSearchParamsBuilder = () => {
62
35
 
63
36
  useEffect(() => {
64
37
  // get the initial values from the querystring
65
- const formValues = getDefaultValuesFromQueryString()
38
+ const formValues = getDefaultValuesFromQueryString({ buildUrl })
39
+ const { toAddress, ...initialFormValues } = formValues
66
40
 
67
41
  /**
68
42
  * When URL builder is enabled and user opens a page with toAddress parameter,
@@ -71,19 +45,17 @@ export const URLSearchParamsBuilder = () => {
71
45
  * same way as a manually entered and validated address.
72
46
  */
73
47
  const initializeFromAddress = async () => {
74
- if (formValues.toAddress) {
48
+ if (toAddress) {
75
49
  try {
76
50
  const validationResult = await validateAddress({
77
- value: formValues.toAddress,
51
+ value: toAddress,
78
52
  })
79
- // Check if the toAddress is still in the query string
80
- // Could be modified by the user before the validation is done
81
- const { toAddress } = getDefaultValuesFromQueryString()
82
53
  if (validationResult.isValid && toAddress) {
83
54
  const bookmark = {
84
55
  address: validationResult.address,
85
56
  chainType: validationResult.chainType,
86
57
  }
58
+ setUserAndDefaultValues({ toAddress })
87
59
  setSelectedBookmark(bookmark)
88
60
  addRecentWallet(bookmark)
89
61
  setSendToWallet(true)
@@ -94,14 +66,15 @@ export const URLSearchParamsBuilder = () => {
94
66
  }
95
67
  }
96
68
 
69
+ setUserAndDefaultValues(initialFormValues)
97
70
  initializeFromAddress()
98
- setUserAndDefaultValues(formValues)
99
71
  }, [
100
72
  setUserAndDefaultValues,
101
73
  setSendToWallet,
102
74
  validateAddress,
103
75
  setSelectedBookmark,
104
76
  addRecentWallet,
77
+ buildUrl,
105
78
  ])
106
79
 
107
80
  // biome-ignore lint/correctness/useExhaustiveDependencies: run only when pathname changes
@@ -0,0 +1,48 @@
1
+ import { formatInputAmount } from '../../utils/format.js'
2
+ import type { DefaultValues } from './types.js'
3
+
4
+ interface GetDefaultValuesFromQueryStringOptions {
5
+ includeToAddress?: boolean
6
+ buildUrl?: boolean
7
+ }
8
+
9
+ export const getDefaultValuesFromQueryString = ({
10
+ buildUrl = false,
11
+ includeToAddress = true,
12
+ }: GetDefaultValuesFromQueryStringOptions): Partial<DefaultValues> => {
13
+ if (typeof window === 'undefined') {
14
+ return {}
15
+ }
16
+
17
+ if (!buildUrl) {
18
+ return {}
19
+ }
20
+
21
+ const searchParams = Object.fromEntries(
22
+ new URLSearchParams(window.location.search)
23
+ )
24
+
25
+ // Prevent using fromToken/toToken params if chain is not selected.
26
+ ;(['from', 'to'] as const).forEach((key) => {
27
+ if (searchParams[`${key}Token`] && !searchParams[`${key}Chain`]) {
28
+ delete searchParams[`${key}Token`]
29
+ }
30
+ })
31
+
32
+ return {
33
+ ...(Number.isFinite(Number.parseInt(searchParams.fromChain, 10))
34
+ ? { fromChain: Number.parseInt(searchParams.fromChain, 10) }
35
+ : {}),
36
+ ...(Number.isFinite(Number.parseInt(searchParams.toChain, 10))
37
+ ? { toChain: Number.parseInt(searchParams.toChain, 10) }
38
+ : {}),
39
+ ...(searchParams.fromToken ? { fromToken: searchParams.fromToken } : {}),
40
+ ...(searchParams.toToken ? { toToken: searchParams.toToken } : {}),
41
+ ...(Number.isFinite(Number.parseFloat(searchParams.fromAmount))
42
+ ? { fromAmount: formatInputAmount(searchParams.fromAmount) }
43
+ : {}),
44
+ ...(includeToAddress && searchParams.toAddress
45
+ ? { toAddress: searchParams.toAddress }
46
+ : {}),
47
+ }
48
+ }
@@ -1,6 +1,5 @@
1
1
  import type { ContractCall } from '@lifi/sdk'
2
- import type { StoreApi } from 'zustand'
3
- import type { UseBoundStoreWithEqualityFn } from 'zustand/traditional'
2
+ import type { StoreApi, UseBoundStore } from 'zustand'
4
3
 
5
4
  export interface DefaultFieldValues {
6
5
  fromChain?: number
@@ -85,9 +84,7 @@ export type FormValuesState = FormProps &
85
84
  ValidationProps &
86
85
  ValidationActions
87
86
 
88
- export type FormStoreStore = UseBoundStoreWithEqualityFn<
89
- StoreApi<FormValuesState>
90
- >
87
+ export type FormStoreStore = UseBoundStore<StoreApi<FormValuesState>>
91
88
 
92
89
  export interface SetOptions {
93
90
  isDirty?: boolean
@@ -1,12 +1,12 @@
1
- import type { StoreApi } from 'zustand'
2
- import type { UseBoundStoreWithEqualityFn } from 'zustand/traditional'
1
+ import type { StoreApi, UseBoundStore } from 'zustand'
3
2
 
4
- export type HeaderStore = UseBoundStoreWithEqualityFn<StoreApi<HeaderState>>
3
+ export type HeaderStore = UseBoundStore<StoreApi<HeaderState>>
5
4
 
6
5
  interface HeaderStateBase {
7
6
  element?: React.ReactNode | null
8
7
  title?: string
9
8
  headerHeight: number
9
+ backAction?: () => void
10
10
  }
11
11
 
12
12
  export interface HeaderState extends HeaderStateBase {
@@ -15,4 +15,6 @@ export interface HeaderState extends HeaderStateBase {
15
15
  removeAction(): void
16
16
  removeTitle(): void
17
17
  setHeaderHeight(headerHeight: number): void
18
+ setBackAction(action: () => void): void
19
+ executeBackAction(): void
18
20
  }
@@ -84,4 +84,18 @@ const createHeaderStore = () =>
84
84
  headerHeight,
85
85
  }))
86
86
  },
87
+ setBackAction: (action) => {
88
+ set(() => ({
89
+ backAction: action,
90
+ }))
91
+ },
92
+ executeBackAction: () => {
93
+ const { backAction } = get()
94
+ if (backAction) {
95
+ backAction()
96
+ set(() => ({
97
+ backAction: undefined,
98
+ }))
99
+ }
100
+ },
87
101
  }))
@@ -0,0 +1,38 @@
1
+ import { createContext, useContext, useRef } from 'react'
2
+ import { useShallow } from 'zustand/shallow'
3
+ import type { PersistStoreProviderProps } from '../types.js'
4
+ import { createPinnedTokensStore } from './createPinnedTokensStore.js'
5
+ import type { PinnedTokensState, PinnedTokensStore } from './types.js'
6
+
7
+ const PinnedTokensStoreContext = createContext<PinnedTokensStore | null>(null)
8
+
9
+ export const PinnedTokensStoreProvider: React.FC<PersistStoreProviderProps> = ({
10
+ children,
11
+ ...props
12
+ }) => {
13
+ const storeRef = useRef<PinnedTokensStore>(null)
14
+
15
+ if (!storeRef.current) {
16
+ storeRef.current = createPinnedTokensStore(props)
17
+ }
18
+
19
+ return (
20
+ <PinnedTokensStoreContext.Provider value={storeRef.current}>
21
+ {children}
22
+ </PinnedTokensStoreContext.Provider>
23
+ )
24
+ }
25
+
26
+ export function usePinnedTokensStore<T>(
27
+ selector: (store: PinnedTokensState) => T
28
+ ) {
29
+ const useStore = useContext(PinnedTokensStoreContext)
30
+
31
+ if (!useStore) {
32
+ throw new Error(
33
+ `You forgot to wrap your component in <${PinnedTokensStoreProvider.name}>.`
34
+ )
35
+ }
36
+
37
+ return useStore(useShallow(selector))
38
+ }
@@ -0,0 +1,71 @@
1
+ import { create } from 'zustand'
2
+ import { persist } from 'zustand/middleware'
3
+ import type { PersistStoreProps } from '../types.js'
4
+ import type { PinnedTokensState } from './types.js'
5
+
6
+ export const createPinnedTokensStore = ({ namePrefix }: PersistStoreProps) =>
7
+ create<PinnedTokensState>()(
8
+ persist(
9
+ (set, get) => ({
10
+ pinnedTokens: {},
11
+ pinToken: (chainId: number, tokenAddress: string) => {
12
+ set((state) => {
13
+ const normalizedAddress = tokenAddress.toLowerCase()
14
+ const chainTokens = state.pinnedTokens[chainId] || []
15
+ if (!chainTokens.includes(normalizedAddress)) {
16
+ return {
17
+ pinnedTokens: {
18
+ ...state.pinnedTokens,
19
+ [chainId]: [...chainTokens, normalizedAddress],
20
+ },
21
+ }
22
+ }
23
+ return state
24
+ })
25
+ },
26
+ unpinToken: (chainId: number, tokenAddress: string) => {
27
+ set((state) => {
28
+ const normalizedAddress = tokenAddress.toLowerCase()
29
+ const chainTokens = state.pinnedTokens[chainId] || []
30
+ if (chainTokens.includes(normalizedAddress)) {
31
+ return {
32
+ pinnedTokens: {
33
+ ...state.pinnedTokens,
34
+ [chainId]: chainTokens.filter(
35
+ (addr) => addr !== normalizedAddress
36
+ ),
37
+ },
38
+ }
39
+ }
40
+ return state
41
+ })
42
+ },
43
+ isPinned: (chainId: number, tokenAddress: string) => {
44
+ const normalizedAddress = tokenAddress.toLowerCase()
45
+ const chainTokens = get().pinnedTokens[chainId] || []
46
+ return chainTokens.includes(normalizedAddress)
47
+ },
48
+ getPinnedTokens: (chainId: number) => {
49
+ return get().pinnedTokens[chainId] || []
50
+ },
51
+ getAllPinnedTokens: () => {
52
+ const allPinned: Array<{ chainId: number; tokenAddress: string }> = []
53
+ const pinnedTokens = get().pinnedTokens
54
+ Object.entries(pinnedTokens).forEach(([chainIdStr, addresses]) => {
55
+ const chainId = Number.parseInt(chainIdStr, 10)
56
+ addresses.forEach((address) => {
57
+ allPinned.push({ chainId, tokenAddress: address })
58
+ })
59
+ })
60
+ return allPinned
61
+ },
62
+ }),
63
+ {
64
+ name: `${namePrefix || 'li.fi'}-pinned-tokens`,
65
+ version: 0,
66
+ partialize: (state) => ({
67
+ pinnedTokens: state.pinnedTokens,
68
+ }),
69
+ }
70
+ )
71
+ )
@@ -0,0 +1,20 @@
1
+ import type { StoreApi } from 'zustand'
2
+ import type { UseBoundStoreWithEqualityFn } from 'zustand/traditional'
3
+
4
+ export interface PinnedTokensProps {
5
+ pinnedTokens: Record<number, string[]>
6
+ }
7
+
8
+ export interface PinnedTokensActions {
9
+ pinToken: (chainId: number, tokenAddress: string) => void
10
+ unpinToken: (chainId: number, tokenAddress: string) => void
11
+ isPinned: (chainId: number, tokenAddress: string) => boolean
12
+ getPinnedTokens: (chainId: number) => string[]
13
+ getAllPinnedTokens: () => Array<{ chainId: number; tokenAddress: string }>
14
+ }
15
+
16
+ export type PinnedTokensState = PinnedTokensProps & PinnedTokensActions
17
+
18
+ export type PinnedTokensStore = UseBoundStoreWithEqualityFn<
19
+ StoreApi<PinnedTokensState>
20
+ >
@@ -1,14 +1,11 @@
1
1
  import { createContext, useContext, useRef } from 'react'
2
- import type { StoreApi } from 'zustand'
2
+ import type { StoreApi, UseBoundStore } from 'zustand'
3
3
  import { useShallow } from 'zustand/shallow'
4
- import type { UseBoundStoreWithEqualityFn } from 'zustand/traditional'
5
4
  import type { PersistStoreProviderProps } from '../types.js'
6
5
  import { createRouteExecutionStore } from './createRouteExecutionStore.js'
7
6
  import type { RouteExecutionState } from './types.js'
8
7
 
9
- type RouteExecutionStore = UseBoundStoreWithEqualityFn<
10
- StoreApi<RouteExecutionState>
11
- >
8
+ type RouteExecutionStore = UseBoundStore<StoreApi<RouteExecutionState>>
12
9
 
13
10
  const RouteExecutionStoreContext = createContext<RouteExecutionStore | null>(
14
11
  null
@@ -121,7 +121,7 @@ export const createRouteExecutionStore = ({ namePrefix }: PersistStoreProps) =>
121
121
  }),
122
122
  {
123
123
  name: `${namePrefix || 'li.fi'}-widget-routes`,
124
- version: 2,
124
+ version: 3,
125
125
  partialize: (state) => ({ routes: state.routes }),
126
126
  merge: (persistedState: any, currentState: RouteExecutionState) => {
127
127
  const state = {
@@ -134,10 +134,9 @@ export const createRouteExecutionStore = ({ namePrefix }: PersistStoreProps) =>
134
134
  const oneDay = 1000 * 60 * 60 * 24
135
135
  Object.values(state.routes).forEach((routeExecution) => {
136
136
  const startedAt =
137
- routeExecution?.route.steps
138
- ?.find((step) => step.execution?.status === 'FAILED')
139
- ?.execution?.process.find((process) => process.startedAt)
140
- ?.startedAt ?? 0
137
+ routeExecution?.route.steps?.find(
138
+ (step) => step.execution?.status === 'FAILED'
139
+ )?.execution?.startedAt ?? 0
141
140
  const outdated = startedAt > 0 && currentTime - startedAt > oneDay
142
141
  if (routeExecution?.route && outdated) {
143
142
  delete state.routes[routeExecution.route.id]
@@ -16,8 +16,8 @@ export const useExecutingRoutesIds = () => {
16
16
  )
17
17
  .sort(
18
18
  (a, b) =>
19
- (b?.route.steps[0].execution?.process[0]?.startedAt ?? 0) -
20
- (a?.route.steps[0].execution?.process[0]?.startedAt ?? 0)
19
+ (b?.route.steps[0].execution?.startedAt ?? 0) -
20
+ (a?.route.steps[0].execution?.startedAt ?? 0)
21
21
  )
22
22
  .map(({ route }) => route.id)
23
23
  )
@@ -1,4 +1,4 @@
1
- import type { Process, RouteExtended } from '@lifi/sdk'
1
+ import type { ExecutionAction, RouteExtended } from '@lifi/sdk'
2
2
  import microdiff from 'microdiff'
3
3
 
4
4
  export const isRouteDone = (route: RouteExtended) => {
@@ -7,13 +7,13 @@ export const isRouteDone = (route: RouteExtended) => {
7
7
 
8
8
  export const isRoutePartiallyDone = (route: RouteExtended) => {
9
9
  return route.steps.some((step) =>
10
- step.execution?.process.some((process) => process.substatus === 'PARTIAL')
10
+ step.execution?.actions?.some((action) => action.substatus === 'PARTIAL')
11
11
  )
12
12
  }
13
13
 
14
14
  export const isRouteRefunded = (route: RouteExtended) => {
15
15
  return route.steps.some((step) =>
16
- step.execution?.process.some((process) => process.substatus === 'REFUNDED')
16
+ step.execution?.actions?.some((action) => action.substatus === 'REFUNDED')
17
17
  )
18
18
  }
19
19
 
@@ -31,31 +31,33 @@ export const isRouteActive = (route?: RouteExtended) => {
31
31
  return !isDone && !isFailed && alreadyStarted
32
32
  }
33
33
 
34
- export const getUpdatedProcess = (
34
+ export const getUpdatedAction = (
35
35
  currentRoute: RouteExtended,
36
36
  updatedRoute: RouteExtended
37
- ): Process | undefined => {
38
- const processDiff = microdiff(currentRoute, updatedRoute).find((diff) =>
39
- diff.path.includes('process')
37
+ ): ExecutionAction | undefined => {
38
+ const actionDiff = microdiff(currentRoute, updatedRoute).find((diff) =>
39
+ diff.path.includes('actions')
40
40
  )
41
- if (!processDiff) {
41
+ if (!actionDiff) {
42
42
  return undefined
43
43
  }
44
- // Find process index in the diff array so we can slice the complete rpocess object
45
- // e.g. ['steps', 0, 'execution', 'process', 0, 'message']
46
- const processDiffIndex = processDiff.path.indexOf('process') + 2
47
- const processPathSlice = processDiff.path.slice(0, processDiffIndex)
44
+ // Find action index in the diff array so we can slice the complete action object
45
+ // e.g. ['steps', 0, 'execution', 'actions', 0, 'message']
46
+ const actionDiffIndex = actionDiff.path.indexOf('actions') + 2
47
+ const actionPathSlice = actionDiff.path.slice(0, actionDiffIndex)
48
48
  // Reduce updated route using the diff path to get updated process
49
- const process = processPathSlice.reduce(
49
+ const action = actionPathSlice.reduce(
50
50
  (obj, path) => obj[path],
51
51
  updatedRoute as any
52
- ) as Process
53
- return process
52
+ ) as ExecutionAction
53
+ return action
54
54
  }
55
55
 
56
56
  export const getSourceTxHash = (route?: RouteExtended) => {
57
- const sourceProcess = route?.steps[0].execution?.process
58
- .filter((process) => process.type !== 'TOKEN_ALLOWANCE')
59
- .find((process) => process.txHash || process.taskId)
60
- return sourceProcess?.txHash || sourceProcess?.taskId
57
+ const sourceAction = route?.steps[0].execution?.actions
58
+ .filter(
59
+ (action) => !['RESET_ALLOWANCE', 'SET_ALLOWANCE'].includes(action.type)
60
+ )
61
+ .find((action) => action.txHash || action.taskId)
62
+ return sourceAction?.txHash || sourceAction?.taskId
61
63
  }
@@ -4,13 +4,12 @@ import {
4
4
  useContext,
5
5
  useRef,
6
6
  } from 'react'
7
- import type { StoreApi } from 'zustand'
7
+ import type { StoreApi, UseBoundStore } from 'zustand'
8
8
  import { useShallow } from 'zustand/shallow'
9
- import type { UseBoundStoreWithEqualityFn } from 'zustand/traditional'
10
9
  import { createSettingsStore } from './createSettingsStore.js'
11
10
  import type { SettingsState, SettingsStoreProviderProps } from './types.js'
12
11
 
13
- type SettingsStore = UseBoundStoreWithEqualityFn<StoreApi<SettingsState>>
12
+ type SettingsStore = UseBoundStore<StoreApi<SettingsState>>
14
13
 
15
14
  const SettingsStoreContext = createContext<SettingsStore | null>(null)
16
15
 
@@ -29,6 +29,7 @@ const defaultSettings: SettingsProps = {
29
29
  enabledExchanges: [],
30
30
  _enabledBridges: {},
31
31
  _enabledExchanges: {},
32
+ smallBalanceThreshold: undefined,
32
33
  }
33
34
 
34
35
  export const createSettingsStore = (config: WidgetConfig) =>
@@ -145,7 +146,7 @@ export const createSettingsStore = (config: WidgetConfig) =>
145
146
  }),
146
147
  {
147
148
  name: 'li.fi-widget-settings',
148
- version: 5,
149
+ version: 6,
149
150
  partialize: (state) => {
150
151
  const {
151
152
  disabledBridges,
@@ -1,7 +1,6 @@
1
1
  import type { Order } from '@lifi/sdk'
2
2
  import type { PropsWithChildren } from 'react'
3
- import type { StoreApi } from 'zustand'
4
- import type { UseBoundStoreWithEqualityFn } from 'zustand/traditional'
3
+ import type { StoreApi, UseBoundStore } from 'zustand'
5
4
  import type { LanguageResource } from '../../providers/I18nProvider/types.js'
6
5
  import type { SplitSubvariant, WidgetConfig } from '../../types/widget.js'
7
6
 
@@ -29,6 +28,7 @@ export interface SettingsProps {
29
28
  disabledExchanges: string[]
30
29
  enabledExchanges: string[]
31
30
  _enabledExchanges: Record<string, boolean>
31
+ smallBalanceThreshold?: string
32
32
  }
33
33
 
34
34
  export interface SettingsActions {
@@ -61,9 +61,7 @@ export interface SplitSubvariantState {
61
61
  setState(state: SplitSubvariant): void
62
62
  }
63
63
 
64
- export type SplitSubvariantStore = UseBoundStoreWithEqualityFn<
65
- StoreApi<SplitSubvariantState>
66
- >
64
+ export type SplitSubvariantStore = UseBoundStore<StoreApi<SplitSubvariantState>>
67
65
 
68
66
  export interface SplitSubvariantProps {
69
67
  state?: SplitSubvariant
@@ -1,4 +1,4 @@
1
- import type { ChainId, ChainType, Process, Route } from '@lifi/sdk'
1
+ import type { ChainId, ChainType, ExecutionAction, Route } from '@lifi/sdk'
2
2
  import type { DefaultValues } from '../stores/form/types.js'
3
3
  import type { SettingsProps } from '../stores/settings/types.js'
4
4
  import type { NavigationRouteType } from '../utils/navigationRoutes.js'
@@ -26,7 +26,6 @@ export enum WidgetEvent {
26
26
  SettingUpdated = 'settingUpdated',
27
27
  SourceChainTokenSelected = 'sourceChainTokenSelected',
28
28
  TokenSearch = 'tokenSearch',
29
- TokensReversed = 'tokensReversed',
30
29
  WidgetExpanded = 'widgetExpanded',
31
30
  }
32
31
 
@@ -49,7 +48,6 @@ export type WidgetEvents = {
49
48
  settingUpdated: SettingUpdated
50
49
  sourceChainTokenSelected: ChainTokenSelected
51
50
  tokenSearch: TokenSearch
52
- tokensReversed: TokensReversed
53
51
  walletConnected: WalletConnected
54
52
  widgetExpanded: boolean
55
53
  }
@@ -68,7 +66,7 @@ export type RouteHighValueLossUpdate = {
68
66
 
69
67
  export type RouteExecutionUpdate = {
70
68
  route: Route
71
- process: Process
69
+ action: ExecutionAction
72
70
  }
73
71
 
74
72
  export type RouteSelected = {
@@ -81,13 +79,6 @@ export type TokenSearch = {
81
79
  tokens: TokenAmount[]
82
80
  }
83
81
 
84
- export type TokensReversed = {
85
- fromChainId?: ChainId
86
- fromTokenAddress?: string
87
- toChainId?: ChainId
88
- toTokenAddress?: string
89
- }
90
-
91
82
  export type ChainTokenSelected = {
92
83
  chainId: ChainId
93
84
  tokenAddress: string
@@ -7,6 +7,7 @@ import type {
7
7
  interface TokenFlags {
8
8
  featured?: boolean
9
9
  popular?: boolean
10
+ pinned?: boolean
10
11
  verified?: boolean
11
12
  }
12
13