@lifi/widget 2.9.3 → 3.0.0-alpha.0

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 (600) hide show
  1. package/AppProvider.js +2 -2
  2. package/AppRoutes.js +75 -67
  3. package/cjs/AppProvider.js +1 -1
  4. package/cjs/AppRoutes.js +74 -66
  5. package/cjs/components/ActiveTransactions/ActiveTransactionItem.js +1 -5
  6. package/cjs/components/ActiveTransactions/ActiveTransactions.js +2 -2
  7. package/cjs/components/AmountInput/AmountInputEndAdornment.js +9 -10
  8. package/cjs/components/AmountInput/FormPriceHelperText.js +1 -1
  9. package/cjs/components/BaseTransactionButton/BaseTransactionButton.js +5 -4
  10. package/cjs/components/Card/CardLabel.d.ts +1 -1
  11. package/cjs/components/ChainSelect/ChainSelect.js +8 -5
  12. package/cjs/components/ChainSelect/useChainSelect.js +21 -2
  13. package/cjs/components/GasMessage/GasMessage.style.js +3 -6
  14. package/cjs/components/GasMessage/GasSufficiencyMessage.js +2 -1
  15. package/cjs/components/Header/Header.style.d.ts +8 -0
  16. package/cjs/components/Header/Header.style.js +16 -1
  17. package/cjs/components/Header/NavigationHeader.d.ts +1 -0
  18. package/cjs/components/Header/NavigationHeader.js +15 -8
  19. package/cjs/components/Header/NavigationTabs.js +2 -2
  20. package/cjs/components/Header/SettingsButton.d.ts +1 -0
  21. package/cjs/components/Header/SettingsButton.js +25 -0
  22. package/cjs/components/Header/SettingsButton.style.d.ts +11 -0
  23. package/cjs/components/Header/SettingsButton.style.js +43 -0
  24. package/cjs/components/Header/WalletHeader.js +11 -24
  25. package/cjs/components/Header/WalletMenu.d.ts +3 -1
  26. package/cjs/components/Header/WalletMenu.js +58 -24
  27. package/cjs/components/Header/WalletMenu.style.d.ts +1 -0
  28. package/cjs/components/Header/WalletMenu.style.js +27 -0
  29. package/cjs/components/Insurance/InsuranceCollapsed.js +1 -1
  30. package/cjs/components/NFT/NFT.js +3 -1
  31. package/cjs/components/NFT/types.d.ts +1 -1
  32. package/cjs/components/PoweredBy/PoweredBy.js +2 -1
  33. package/cjs/components/RouteCard/RouteCard.js +3 -3
  34. package/cjs/components/RouteCard/RouteCardEssentials.js +2 -1
  35. package/cjs/components/RouteCard/utils.d.ts +2 -3
  36. package/cjs/components/RouteCard/utils.js +4 -9
  37. package/cjs/components/SendToWallet/SendToWallet.js +24 -21
  38. package/cjs/components/SendToWallet/SendToWalletButton.js +3 -2
  39. package/{pages/SelectEnabledToolsPage/SelectEnabledToolsPage.style.d.ts → cjs/components/SettingsListItemButton.d.ts} +1 -1
  40. package/cjs/components/SettingsListItemButton.js +8 -0
  41. package/cjs/components/Step/DestinationWalletAddress.d.ts +2 -2
  42. package/cjs/components/Step/GasStepProcess.d.ts +2 -2
  43. package/cjs/components/Step/Step.d.ts +2 -2
  44. package/cjs/components/Step/Step.js +1 -1
  45. package/cjs/components/Step/StepList.d.ts +2 -2
  46. package/cjs/components/Step/StepList.js +4 -4
  47. package/cjs/components/Step/StepProcess.d.ts +2 -2
  48. package/cjs/components/Step/StepTimer.d.ts +2 -2
  49. package/cjs/components/StepActions/StepActions.d.ts +3 -3
  50. package/cjs/components/StepActions/StepActions.js +11 -14
  51. package/cjs/components/StepActions/types.d.ts +2 -2
  52. package/cjs/components/{Header/NavigationTabs.style.d.ts → Tabs/Tabs.style.d.ts} +2 -2
  53. package/cjs/components/{Header/NavigationTabs.style.js → Tabs/Tabs.style.js} +9 -31
  54. package/cjs/components/Tabs/index.d.ts +1 -0
  55. package/cjs/{providers/SDKProvider → components/Tabs}/index.js +1 -1
  56. package/cjs/components/Token/Token.d.ts +3 -3
  57. package/cjs/components/Token/Token.js +5 -5
  58. package/cjs/components/TokenList/TokenList.js +2 -2
  59. package/cjs/components/TokenList/TokenListItem.js +9 -5
  60. package/cjs/components/TokenList/TokenNotFound.js +1 -1
  61. package/cjs/components/TokenList/VirtualizedTokenList.js +2 -1
  62. package/cjs/config/queryClient.js +0 -4
  63. package/cjs/config/version.d.ts +1 -1
  64. package/cjs/config/version.js +1 -1
  65. package/cjs/hooks/index.d.ts +7 -1
  66. package/cjs/hooks/index.js +7 -1
  67. package/cjs/hooks/useAccount.d.ts +31 -0
  68. package/cjs/hooks/useAccount.js +53 -0
  69. package/cjs/hooks/useAvailableChains.d.ts +6 -0
  70. package/cjs/hooks/useAvailableChains.js +36 -0
  71. package/cjs/hooks/useChain.js +3 -6
  72. package/cjs/hooks/useChains.d.ts +1 -1
  73. package/cjs/hooks/useChains.js +7 -38
  74. package/cjs/hooks/useFromTokenSufficiency.d.ts +3 -3
  75. package/cjs/hooks/useFromTokenSufficiency.js +39 -41
  76. package/cjs/hooks/useGasRecommendation.d.ts +2 -2
  77. package/cjs/hooks/useGasRecommendation.js +23 -18
  78. package/cjs/hooks/useGasRefuel.js +18 -11
  79. package/cjs/hooks/useGasSufficiency.d.ts +6 -7
  80. package/cjs/hooks/useGasSufficiency.js +68 -71
  81. package/cjs/hooks/useLanguages.d.ts +6 -0
  82. package/cjs/hooks/useLanguages.js +28 -0
  83. package/cjs/hooks/useProcessMessage.d.ts +3 -3
  84. package/cjs/hooks/useProcessMessage.js +32 -28
  85. package/cjs/hooks/useRequiredToAddress.d.ts +1 -0
  86. package/cjs/hooks/useRequiredToAddress.js +19 -0
  87. package/cjs/hooks/useRouteExecution.d.ts +2 -2
  88. package/cjs/hooks/useRouteExecution.js +44 -58
  89. package/cjs/hooks/useRoutes.d.ts +1 -1
  90. package/cjs/hooks/useRoutes.js +128 -113
  91. package/cjs/hooks/useSettingMonitor.d.ts +11 -0
  92. package/cjs/hooks/useSettingMonitor.js +57 -0
  93. package/cjs/hooks/useTokenAddressBalance.d.ts +1 -1
  94. package/cjs/hooks/useTokenBalance.d.ts +5 -3
  95. package/cjs/hooks/useTokenBalance.js +77 -47
  96. package/cjs/hooks/useTokenBalances.d.ts +3 -3
  97. package/cjs/hooks/useTokenBalances.js +34 -24
  98. package/cjs/hooks/useTokenSearch.js +18 -17
  99. package/cjs/hooks/useTokens.d.ts +2 -1
  100. package/cjs/hooks/useTokens.js +18 -15
  101. package/cjs/hooks/useTools.d.ts +1 -1
  102. package/cjs/hooks/useTools.js +12 -11
  103. package/cjs/hooks/useTransactionDetails.d.ts +4 -0
  104. package/cjs/hooks/useTransactionDetails.js +56 -0
  105. package/cjs/hooks/useTransactionHistory.d.ts +5 -0
  106. package/cjs/hooks/useTransactionHistory.js +39 -0
  107. package/cjs/i18n/en.json +18 -9
  108. package/cjs/i18n/fr.json +7 -4
  109. package/cjs/i18n/pt.json +7 -4
  110. package/cjs/i18n/tr.json +7 -4
  111. package/cjs/i18n/uk.json +7 -4
  112. package/cjs/i18n/zh.json +7 -4
  113. package/cjs/icons/index.d.ts +1 -3
  114. package/cjs/icons/index.js +1 -3
  115. package/cjs/icons/lifi.d.ts +1 -0
  116. package/cjs/icons/lifi.js +4 -0
  117. package/cjs/index.d.ts +2 -3
  118. package/cjs/index.js +4 -4
  119. package/cjs/pages/ActiveTransactionsPage/ActiveTransactionsPage.js +2 -2
  120. package/cjs/pages/LanguagesPage/LanguagesPage.d.ts +2 -0
  121. package/cjs/pages/LanguagesPage/LanguagesPage.js +22 -0
  122. package/cjs/pages/LanguagesPage/index.d.ts +1 -0
  123. package/cjs/pages/LanguagesPage/index.js +17 -0
  124. package/cjs/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.js +15 -5
  125. package/cjs/pages/SelectWalletPage/EVMListItemButton.d.ts +8 -0
  126. package/cjs/pages/SelectWalletPage/EVMListItemButton.js +40 -0
  127. package/cjs/pages/SelectWalletPage/SVMListItemButton.d.ts +6 -0
  128. package/cjs/pages/SelectWalletPage/SVMListItemButton.js +34 -0
  129. package/cjs/pages/SelectWalletPage/SelectWalletPage.js +31 -32
  130. package/cjs/pages/SelectWalletPage/utils.d.ts +3 -0
  131. package/cjs/pages/SelectWalletPage/utils.js +21 -0
  132. package/{pages/SettingsPage/EnabledToolsButton.d.ts → cjs/pages/SettingsPage/BridgeAndExchangeSettings.d.ts} +1 -1
  133. package/cjs/pages/SettingsPage/BridgeAndExchangeSettings.js +36 -0
  134. package/cjs/pages/SettingsPage/GasPriceSettings.d.ts +2 -0
  135. package/cjs/pages/SettingsPage/GasPriceSettings.js +21 -0
  136. package/cjs/pages/SettingsPage/LanguageSetting.d.ts +2 -0
  137. package/cjs/pages/SettingsPage/LanguageSetting.js +26 -0
  138. package/cjs/pages/SettingsPage/ResetSettingsButton.js +3 -30
  139. package/cjs/pages/SettingsPage/RoutePrioritySettings.d.ts +2 -0
  140. package/cjs/pages/SettingsPage/RoutePrioritySettings.js +25 -0
  141. package/cjs/pages/SettingsPage/SendToWalletOptionSetting.d.ts +1 -0
  142. package/cjs/pages/SettingsPage/{ShowDestinationWallet.js → SendToWalletOptionSetting.js} +6 -9
  143. package/cjs/pages/SettingsPage/SettingsCard/BadgedValue.d.ts +8 -0
  144. package/cjs/pages/SettingsPage/SettingsCard/BadgedValue.js +7 -0
  145. package/cjs/pages/SettingsPage/SettingsCard/SettingCard.d.ts +2 -0
  146. package/cjs/pages/SettingsPage/SettingsCard/SettingCard.js +11 -0
  147. package/cjs/pages/SettingsPage/SettingsCard/SettingCard.style.d.ts +19 -0
  148. package/cjs/pages/SettingsPage/SettingsCard/SettingCard.style.js +53 -0
  149. package/cjs/pages/SettingsPage/SettingsCard/SettingCardButton.d.ts +7 -0
  150. package/cjs/pages/SettingsPage/SettingsCard/SettingCardButton.js +8 -0
  151. package/cjs/pages/SettingsPage/SettingsCard/SettingCardExpandable.d.ts +7 -0
  152. package/cjs/pages/SettingsPage/SettingsCard/SettingCardExpandable.js +16 -0
  153. package/cjs/pages/SettingsPage/SettingsCard/SettingsAccordian.d.ts +6 -0
  154. package/cjs/pages/SettingsPage/SettingsCard/SettingsAccordian.js +36 -0
  155. package/cjs/pages/SettingsPage/SettingsCard/index.d.ts +6 -0
  156. package/cjs/pages/SettingsPage/SettingsCard/index.js +22 -0
  157. package/cjs/pages/SettingsPage/SettingsCard/types.d.ts +5 -0
  158. package/cjs/pages/SettingsPage/SettingsPage.js +9 -8
  159. package/cjs/pages/SettingsPage/SlippageSettings/SlippageSettings.d.ts +2 -0
  160. package/cjs/pages/SettingsPage/SlippageSettings/SlippageSettings.js +51 -0
  161. package/cjs/pages/SettingsPage/SlippageSettings/SlippageSettings.style.d.ts +16 -0
  162. package/cjs/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js +74 -0
  163. package/cjs/pages/SettingsPage/SlippageSettings/index.d.ts +1 -0
  164. package/cjs/pages/SettingsPage/SlippageSettings/index.js +17 -0
  165. package/cjs/pages/SettingsPage/ThemeSettings.d.ts +2 -0
  166. package/cjs/pages/SettingsPage/ThemeSettings.js +39 -0
  167. package/cjs/pages/TransactionDetailsPage/ContactSupportButton.js +2 -2
  168. package/cjs/pages/TransactionDetailsPage/TransactionDetailsPage.js +33 -28
  169. package/cjs/pages/TransactionDetailsPage/TransactionDetailsSkeleton.d.ts +1 -0
  170. package/cjs/pages/TransactionDetailsPage/TransactionDetailsSkeleton.js +31 -0
  171. package/cjs/pages/TransactionHistoryPage/TransactionHistoryItem.d.ts +4 -2
  172. package/cjs/pages/TransactionHistoryPage/TransactionHistoryItem.js +34 -7
  173. package/cjs/pages/TransactionHistoryPage/TransactionHistoryPage.js +21 -22
  174. package/cjs/pages/TransactionHistoryPage/TransactionHistorySkeleton.d.ts +1 -0
  175. package/cjs/pages/TransactionHistoryPage/TransactionHistorySkeleton.js +26 -0
  176. package/cjs/pages/TransactionHistoryPage/constants.d.ts +1 -0
  177. package/cjs/pages/TransactionHistoryPage/constants.js +4 -0
  178. package/cjs/pages/TransactionPage/ExchangeRateBottomSheet.js +11 -10
  179. package/cjs/pages/TransactionPage/StartTransactionButton.js +2 -2
  180. package/cjs/pages/TransactionPage/StatusBottomSheet.js +12 -8
  181. package/cjs/pages/TransactionPage/TransactionPage.js +1 -1
  182. package/cjs/providers/FormProvider/FormUpdater.js +4 -4
  183. package/cjs/providers/I18nProvider/I18nProvider.js +3 -7
  184. package/cjs/providers/I18nProvider/types.d.ts +4 -3
  185. package/cjs/providers/WalletProvider/EVMProvider.d.ts +3 -0
  186. package/cjs/providers/WalletProvider/EVMProvider.js +79 -0
  187. package/cjs/providers/WalletProvider/SDKProviders.d.ts +1 -0
  188. package/cjs/providers/WalletProvider/SDKProviders.js +31 -0
  189. package/cjs/providers/WalletProvider/SolanaProvider.d.ts +3 -0
  190. package/cjs/providers/WalletProvider/SolanaProvider.js +35 -0
  191. package/cjs/providers/WalletProvider/WalletProvider.d.ts +1 -15
  192. package/cjs/providers/WalletProvider/WalletProvider.js +5 -183
  193. package/cjs/providers/WalletProvider/index.d.ts +1 -1
  194. package/cjs/providers/WalletProvider/index.js +1 -1
  195. package/cjs/providers/WalletProvider/utils.d.ts +3 -0
  196. package/cjs/providers/WalletProvider/utils.js +25 -0
  197. package/cjs/providers/WidgetProvider/WidgetProvider.js +51 -35
  198. package/cjs/providers/index.d.ts +0 -1
  199. package/cjs/providers/index.js +0 -1
  200. package/cjs/stores/chains/ChainOrderStore.js +24 -0
  201. package/cjs/stores/header/useHeaderStore.d.ts +1 -1
  202. package/cjs/stores/header/useHeaderStore.js +2 -2
  203. package/cjs/stores/routes/createRouteExecutionStore.js +6 -60
  204. package/cjs/stores/routes/index.d.ts +0 -1
  205. package/cjs/stores/routes/index.js +0 -1
  206. package/cjs/stores/routes/types.d.ts +2 -2
  207. package/cjs/stores/routes/utils.d.ts +8 -8
  208. package/cjs/stores/routes/utils.js +7 -5
  209. package/cjs/stores/settings/useSettingsStore.js +2 -4
  210. package/cjs/stores/settings/useSplitSubvariantStore.d.ts +1 -1
  211. package/cjs/stores/settings/useSplitSubvariantStore.js +2 -2
  212. package/cjs/types/events.d.ts +6 -5
  213. package/cjs/types/events.js +1 -1
  214. package/cjs/types/widget.d.ts +7 -14
  215. package/cjs/utils/colors.d.ts +3 -0
  216. package/cjs/utils/colors.js +13 -1
  217. package/cjs/utils/converters.d.ts +3 -0
  218. package/cjs/utils/converters.js +172 -0
  219. package/cjs/utils/format.d.ts +1 -1
  220. package/cjs/utils/format.js +5 -12
  221. package/cjs/utils/index.d.ts +1 -0
  222. package/cjs/utils/index.js +1 -0
  223. package/cjs/utils/navigationRoutes.d.ts +1 -0
  224. package/cjs/utils/navigationRoutes.js +3 -1
  225. package/cjs/utils/svm.d.ts +1 -0
  226. package/cjs/utils/svm.js +14 -0
  227. package/components/ActiveTransactions/ActiveTransactionItem.js +1 -5
  228. package/components/ActiveTransactions/ActiveTransactions.js +2 -2
  229. package/components/AmountInput/AmountInputEndAdornment.js +10 -11
  230. package/components/AmountInput/FormPriceHelperText.js +1 -1
  231. package/components/BaseTransactionButton/BaseTransactionButton.js +6 -5
  232. package/components/Card/CardLabel.d.ts +1 -1
  233. package/components/ChainSelect/ChainSelect.js +8 -5
  234. package/components/ChainSelect/useChainSelect.js +22 -3
  235. package/components/GasMessage/GasMessage.style.js +3 -6
  236. package/components/GasMessage/GasSufficiencyMessage.js +2 -1
  237. package/components/Header/Header.style.d.ts +8 -0
  238. package/components/Header/Header.style.js +16 -1
  239. package/components/Header/NavigationHeader.d.ts +1 -0
  240. package/components/Header/NavigationHeader.js +16 -10
  241. package/components/Header/NavigationTabs.js +3 -3
  242. package/components/Header/SettingsButton.d.ts +1 -0
  243. package/components/Header/SettingsButton.js +21 -0
  244. package/components/Header/SettingsButton.style.d.ts +11 -0
  245. package/components/Header/SettingsButton.style.js +40 -0
  246. package/components/Header/WalletHeader.js +15 -28
  247. package/components/Header/WalletMenu.d.ts +3 -1
  248. package/components/Header/WalletMenu.js +58 -25
  249. package/components/Header/WalletMenu.style.d.ts +1 -0
  250. package/components/Header/WalletMenu.style.js +24 -0
  251. package/components/Insurance/InsuranceCollapsed.js +1 -1
  252. package/components/NFT/NFT.js +3 -1
  253. package/components/NFT/types.d.ts +1 -1
  254. package/components/PoweredBy/PoweredBy.js +2 -1
  255. package/components/RouteCard/RouteCard.js +3 -3
  256. package/components/RouteCard/RouteCardEssentials.js +2 -1
  257. package/components/RouteCard/utils.d.ts +2 -3
  258. package/components/RouteCard/utils.js +4 -9
  259. package/components/SendToWallet/SendToWallet.js +26 -23
  260. package/components/SendToWallet/SendToWalletButton.js +5 -4
  261. package/{cjs/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.style.d.ts → components/SettingsListItemButton.d.ts} +1 -1
  262. package/components/SettingsListItemButton.js +5 -0
  263. package/components/Step/DestinationWalletAddress.d.ts +2 -2
  264. package/components/Step/GasStepProcess.d.ts +2 -2
  265. package/components/Step/Step.d.ts +2 -2
  266. package/components/Step/Step.js +2 -2
  267. package/components/Step/StepList.d.ts +2 -2
  268. package/components/Step/StepList.js +4 -4
  269. package/components/Step/StepProcess.d.ts +2 -2
  270. package/components/Step/StepTimer.d.ts +2 -2
  271. package/components/StepActions/StepActions.d.ts +3 -3
  272. package/components/StepActions/StepActions.js +12 -15
  273. package/components/StepActions/types.d.ts +2 -2
  274. package/components/{Header/NavigationTabs.style.d.ts → Tabs/Tabs.style.d.ts} +2 -2
  275. package/components/Tabs/Tabs.style.js +36 -0
  276. package/components/Tabs/index.d.ts +1 -0
  277. package/components/Tabs/index.js +1 -0
  278. package/components/Token/Token.d.ts +3 -3
  279. package/components/Token/Token.js +5 -5
  280. package/components/TokenList/TokenList.js +4 -4
  281. package/components/TokenList/TokenListItem.js +9 -6
  282. package/components/TokenList/TokenNotFound.js +2 -2
  283. package/components/TokenList/VirtualizedTokenList.js +2 -1
  284. package/config/queryClient.js +0 -4
  285. package/config/version.d.ts +1 -1
  286. package/config/version.js +1 -1
  287. package/hooks/index.d.ts +7 -1
  288. package/hooks/index.js +7 -1
  289. package/hooks/useAccount.d.ts +31 -0
  290. package/hooks/useAccount.js +48 -0
  291. package/hooks/useAvailableChains.d.ts +6 -0
  292. package/hooks/useAvailableChains.js +32 -0
  293. package/hooks/useChain.js +3 -6
  294. package/hooks/useChains.d.ts +1 -1
  295. package/hooks/useChains.js +9 -40
  296. package/hooks/useFromTokenSufficiency.d.ts +3 -3
  297. package/hooks/useFromTokenSufficiency.js +41 -43
  298. package/hooks/useGasRecommendation.d.ts +2 -2
  299. package/hooks/useGasRecommendation.js +23 -18
  300. package/hooks/useGasRefuel.js +19 -12
  301. package/hooks/useGasSufficiency.d.ts +6 -7
  302. package/hooks/useGasSufficiency.js +69 -72
  303. package/hooks/useLanguages.d.ts +6 -0
  304. package/hooks/useLanguages.js +24 -0
  305. package/hooks/useProcessMessage.d.ts +3 -3
  306. package/hooks/useProcessMessage.js +33 -29
  307. package/hooks/useRequiredToAddress.d.ts +1 -0
  308. package/hooks/useRequiredToAddress.js +15 -0
  309. package/hooks/useRouteExecution.d.ts +2 -2
  310. package/hooks/useRouteExecution.js +44 -58
  311. package/hooks/useRoutes.d.ts +1 -1
  312. package/hooks/useRoutes.js +131 -116
  313. package/hooks/useSettingMonitor.d.ts +11 -0
  314. package/hooks/useSettingMonitor.js +53 -0
  315. package/hooks/useTokenAddressBalance.d.ts +1 -1
  316. package/hooks/useTokenBalance.d.ts +5 -3
  317. package/hooks/useTokenBalance.js +74 -45
  318. package/hooks/useTokenBalances.d.ts +3 -3
  319. package/hooks/useTokenBalances.js +34 -24
  320. package/hooks/useTokenSearch.js +18 -17
  321. package/hooks/useTokens.d.ts +2 -1
  322. package/hooks/useTokens.js +19 -16
  323. package/hooks/useTools.d.ts +1 -1
  324. package/hooks/useTools.js +13 -12
  325. package/hooks/useTransactionDetails.d.ts +4 -0
  326. package/hooks/useTransactionDetails.js +52 -0
  327. package/hooks/useTransactionHistory.d.ts +5 -0
  328. package/hooks/useTransactionHistory.js +35 -0
  329. package/i18n/en.json +18 -9
  330. package/i18n/fr.json +7 -4
  331. package/i18n/pt.json +7 -4
  332. package/i18n/tr.json +7 -4
  333. package/i18n/uk.json +7 -4
  334. package/i18n/zh.json +7 -4
  335. package/icons/index.d.ts +1 -3
  336. package/icons/index.js +1 -3
  337. package/icons/lifi.d.ts +1 -0
  338. package/icons/lifi.js +1 -0
  339. package/index.d.ts +2 -3
  340. package/index.js +2 -4
  341. package/package.json +19 -19
  342. package/pages/ActiveTransactionsPage/ActiveTransactionsPage.js +2 -2
  343. package/pages/LanguagesPage/LanguagesPage.d.ts +2 -0
  344. package/pages/LanguagesPage/LanguagesPage.js +18 -0
  345. package/pages/LanguagesPage/index.d.ts +1 -0
  346. package/pages/LanguagesPage/index.js +1 -0
  347. package/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.js +16 -6
  348. package/pages/SelectWalletPage/EVMListItemButton.d.ts +8 -0
  349. package/pages/SelectWalletPage/EVMListItemButton.js +36 -0
  350. package/pages/SelectWalletPage/SVMListItemButton.d.ts +6 -0
  351. package/pages/SelectWalletPage/SVMListItemButton.js +30 -0
  352. package/pages/SelectWalletPage/SelectWalletPage.js +34 -35
  353. package/pages/SelectWalletPage/utils.d.ts +3 -0
  354. package/pages/SelectWalletPage/utils.js +17 -0
  355. package/{cjs/pages/SettingsPage/EnabledToolsButton.d.ts → pages/SettingsPage/BridgeAndExchangeSettings.d.ts} +1 -1
  356. package/pages/SettingsPage/BridgeAndExchangeSettings.js +32 -0
  357. package/pages/SettingsPage/GasPriceSettings.d.ts +2 -0
  358. package/pages/SettingsPage/GasPriceSettings.js +17 -0
  359. package/pages/SettingsPage/LanguageSetting.d.ts +2 -0
  360. package/pages/SettingsPage/LanguageSetting.js +22 -0
  361. package/pages/SettingsPage/ResetSettingsButton.js +4 -31
  362. package/pages/SettingsPage/RoutePrioritySettings.d.ts +2 -0
  363. package/pages/SettingsPage/RoutePrioritySettings.js +21 -0
  364. package/pages/SettingsPage/SendToWalletOptionSetting.d.ts +1 -0
  365. package/pages/SettingsPage/{ShowDestinationWallet.js → SendToWalletOptionSetting.js} +4 -7
  366. package/pages/SettingsPage/SettingsCard/BadgedValue.d.ts +8 -0
  367. package/pages/SettingsPage/SettingsCard/BadgedValue.js +3 -0
  368. package/pages/SettingsPage/SettingsCard/SettingCard.d.ts +2 -0
  369. package/pages/SettingsPage/SettingsCard/SettingCard.js +7 -0
  370. package/pages/SettingsPage/SettingsCard/SettingCard.style.d.ts +19 -0
  371. package/pages/SettingsPage/SettingsCard/SettingCard.style.js +50 -0
  372. package/pages/SettingsPage/SettingsCard/SettingCardButton.d.ts +7 -0
  373. package/pages/SettingsPage/SettingsCard/SettingCardButton.js +4 -0
  374. package/pages/SettingsPage/SettingsCard/SettingCardExpandable.d.ts +7 -0
  375. package/pages/SettingsPage/SettingsCard/SettingCardExpandable.js +12 -0
  376. package/pages/SettingsPage/SettingsCard/SettingsAccordian.d.ts +6 -0
  377. package/pages/SettingsPage/SettingsCard/SettingsAccordian.js +31 -0
  378. package/pages/SettingsPage/SettingsCard/index.d.ts +6 -0
  379. package/pages/SettingsPage/SettingsCard/index.js +6 -0
  380. package/pages/SettingsPage/SettingsCard/types.d.ts +5 -0
  381. package/pages/SettingsPage/SettingsPage.js +10 -9
  382. package/pages/SettingsPage/SlippageSettings/SlippageSettings.d.ts +2 -0
  383. package/pages/SettingsPage/SlippageSettings/SlippageSettings.js +47 -0
  384. package/pages/SettingsPage/SlippageSettings/SlippageSettings.style.d.ts +16 -0
  385. package/pages/SettingsPage/SlippageSettings/SlippageSettings.style.js +71 -0
  386. package/pages/SettingsPage/SlippageSettings/index.d.ts +1 -0
  387. package/pages/SettingsPage/SlippageSettings/index.js +1 -0
  388. package/pages/SettingsPage/ThemeSettings.d.ts +2 -0
  389. package/pages/SettingsPage/ThemeSettings.js +35 -0
  390. package/pages/TransactionDetailsPage/ContactSupportButton.js +2 -2
  391. package/pages/TransactionDetailsPage/TransactionDetailsPage.js +38 -33
  392. package/pages/TransactionDetailsPage/TransactionDetailsSkeleton.d.ts +1 -0
  393. package/pages/TransactionDetailsPage/TransactionDetailsSkeleton.js +27 -0
  394. package/pages/TransactionHistoryPage/TransactionHistoryItem.d.ts +4 -2
  395. package/pages/TransactionHistoryPage/TransactionHistoryItem.js +34 -7
  396. package/pages/TransactionHistoryPage/TransactionHistoryPage.js +24 -25
  397. package/pages/TransactionHistoryPage/TransactionHistorySkeleton.d.ts +1 -0
  398. package/pages/TransactionHistoryPage/TransactionHistorySkeleton.js +22 -0
  399. package/pages/TransactionHistoryPage/constants.d.ts +1 -0
  400. package/pages/TransactionHistoryPage/constants.js +1 -0
  401. package/pages/TransactionPage/ExchangeRateBottomSheet.js +11 -10
  402. package/pages/TransactionPage/StartTransactionButton.js +2 -2
  403. package/pages/TransactionPage/StatusBottomSheet.js +14 -10
  404. package/pages/TransactionPage/TransactionPage.js +1 -1
  405. package/providers/FormProvider/FormUpdater.js +4 -4
  406. package/providers/I18nProvider/I18nProvider.js +4 -8
  407. package/providers/I18nProvider/types.d.ts +4 -3
  408. package/providers/WalletProvider/EVMProvider.d.ts +3 -0
  409. package/providers/WalletProvider/EVMProvider.js +74 -0
  410. package/providers/WalletProvider/SDKProviders.d.ts +1 -0
  411. package/providers/WalletProvider/SDKProviders.js +27 -0
  412. package/providers/WalletProvider/SolanaProvider.d.ts +3 -0
  413. package/providers/WalletProvider/SolanaProvider.js +30 -0
  414. package/providers/WalletProvider/WalletProvider.d.ts +1 -15
  415. package/providers/WalletProvider/WalletProvider.js +5 -181
  416. package/providers/WalletProvider/index.d.ts +1 -1
  417. package/providers/WalletProvider/index.js +1 -1
  418. package/providers/WalletProvider/utils.d.ts +3 -0
  419. package/providers/WalletProvider/utils.js +21 -0
  420. package/providers/WidgetProvider/WidgetProvider.js +52 -36
  421. package/providers/index.d.ts +0 -1
  422. package/providers/index.js +0 -1
  423. package/stores/chains/ChainOrderStore.js +25 -1
  424. package/stores/header/useHeaderStore.d.ts +1 -1
  425. package/stores/header/useHeaderStore.js +2 -2
  426. package/stores/routes/createRouteExecutionStore.js +6 -60
  427. package/stores/routes/index.d.ts +0 -1
  428. package/stores/routes/index.js +0 -1
  429. package/stores/routes/types.d.ts +2 -2
  430. package/stores/routes/utils.d.ts +8 -8
  431. package/stores/routes/utils.js +5 -3
  432. package/stores/settings/useSettingsStore.js +2 -4
  433. package/stores/settings/useSplitSubvariantStore.d.ts +1 -1
  434. package/stores/settings/useSplitSubvariantStore.js +2 -2
  435. package/tsconfig.cjs.tsbuildinfo +1 -1
  436. package/types/events.d.ts +6 -5
  437. package/types/events.js +1 -1
  438. package/types/widget.d.ts +7 -14
  439. package/utils/colors.d.ts +3 -0
  440. package/utils/colors.js +10 -1
  441. package/utils/converters.d.ts +3 -0
  442. package/utils/converters.js +168 -0
  443. package/utils/format.d.ts +1 -1
  444. package/utils/format.js +5 -12
  445. package/utils/index.d.ts +1 -0
  446. package/utils/index.js +1 -0
  447. package/utils/navigationRoutes.d.ts +1 -0
  448. package/utils/navigationRoutes.js +3 -1
  449. package/utils/svm.d.ts +1 -0
  450. package/utils/svm.js +10 -0
  451. package/cjs/components/LiFiLogo.d.ts +0 -5
  452. package/cjs/components/LiFiLogo.js +0 -10
  453. package/cjs/fonts/Inter-Black.woff +0 -0
  454. package/cjs/fonts/Inter-Black.woff2 +0 -0
  455. package/cjs/fonts/Inter-BlackItalic.woff +0 -0
  456. package/cjs/fonts/Inter-BlackItalic.woff2 +0 -0
  457. package/cjs/fonts/Inter-Bold.woff +0 -0
  458. package/cjs/fonts/Inter-Bold.woff2 +0 -0
  459. package/cjs/fonts/Inter-BoldItalic.woff +0 -0
  460. package/cjs/fonts/Inter-BoldItalic.woff2 +0 -0
  461. package/cjs/fonts/Inter-ExtraBold.woff +0 -0
  462. package/cjs/fonts/Inter-ExtraBold.woff2 +0 -0
  463. package/cjs/fonts/Inter-ExtraBoldItalic.woff +0 -0
  464. package/cjs/fonts/Inter-ExtraBoldItalic.woff2 +0 -0
  465. package/cjs/fonts/Inter-ExtraLight.woff +0 -0
  466. package/cjs/fonts/Inter-ExtraLight.woff2 +0 -0
  467. package/cjs/fonts/Inter-ExtraLightItalic.woff +0 -0
  468. package/cjs/fonts/Inter-ExtraLightItalic.woff2 +0 -0
  469. package/cjs/fonts/Inter-Italic.woff +0 -0
  470. package/cjs/fonts/Inter-Italic.woff2 +0 -0
  471. package/cjs/fonts/Inter-Light.woff +0 -0
  472. package/cjs/fonts/Inter-Light.woff2 +0 -0
  473. package/cjs/fonts/Inter-LightItalic.woff +0 -0
  474. package/cjs/fonts/Inter-LightItalic.woff2 +0 -0
  475. package/cjs/fonts/Inter-Medium.woff +0 -0
  476. package/cjs/fonts/Inter-Medium.woff2 +0 -0
  477. package/cjs/fonts/Inter-MediumItalic.woff +0 -0
  478. package/cjs/fonts/Inter-MediumItalic.woff2 +0 -0
  479. package/cjs/fonts/Inter-Regular.woff +0 -0
  480. package/cjs/fonts/Inter-Regular.woff2 +0 -0
  481. package/cjs/fonts/Inter-SemiBold.woff +0 -0
  482. package/cjs/fonts/Inter-SemiBold.woff2 +0 -0
  483. package/cjs/fonts/Inter-SemiBoldItalic.woff +0 -0
  484. package/cjs/fonts/Inter-SemiBoldItalic.woff2 +0 -0
  485. package/cjs/fonts/Inter-Thin.woff +0 -0
  486. package/cjs/fonts/Inter-Thin.woff2 +0 -0
  487. package/cjs/fonts/Inter-ThinItalic.woff +0 -0
  488. package/cjs/fonts/Inter-ThinItalic.woff2 +0 -0
  489. package/cjs/fonts/Inter-italic.var.woff2 +0 -0
  490. package/cjs/fonts/Inter-roman.var.woff2 +0 -0
  491. package/cjs/fonts/Inter.var.woff2 +0 -0
  492. package/cjs/fonts/inter.css +0 -217
  493. package/cjs/hooks/useGetTokenBalancesWithRetry.d.ts +0 -3
  494. package/cjs/hooks/useGetTokenBalancesWithRetry.js +0 -33
  495. package/cjs/icons/LiFiFullLogo.d.ts +0 -2
  496. package/cjs/icons/LiFiFullLogo.js +0 -6
  497. package/cjs/icons/LiFiLogo.d.ts +0 -2
  498. package/cjs/icons/LiFiLogo.js +0 -6
  499. package/cjs/icons/LiFiToolLogo.d.ts +0 -2
  500. package/cjs/icons/LiFiToolLogo.js +0 -6
  501. package/cjs/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.style.js +0 -8
  502. package/cjs/pages/SettingsPage/ColorSchemeButtonGroup.d.ts +0 -2
  503. package/cjs/pages/SettingsPage/ColorSchemeButtonGroup.js +0 -27
  504. package/cjs/pages/SettingsPage/ColorSchemeButtonGroup.style.d.ts +0 -4
  505. package/cjs/pages/SettingsPage/ColorSchemeButtonGroup.style.js +0 -19
  506. package/cjs/pages/SettingsPage/EnabledToolsButton.js +0 -25
  507. package/cjs/pages/SettingsPage/EnabledToolsButton.style.d.ts +0 -5
  508. package/cjs/pages/SettingsPage/EnabledToolsButton.style.js +0 -17
  509. package/cjs/pages/SettingsPage/GasPriceSelect.d.ts +0 -1
  510. package/cjs/pages/SettingsPage/GasPriceSelect.js +0 -17
  511. package/cjs/pages/SettingsPage/LanguageSelect.d.ts +0 -2
  512. package/cjs/pages/SettingsPage/LanguageSelect.js +0 -37
  513. package/cjs/pages/SettingsPage/RoutePrioritySelect.d.ts +0 -2
  514. package/cjs/pages/SettingsPage/RoutePrioritySelect.js +0 -23
  515. package/cjs/pages/SettingsPage/ShowDestinationWallet.d.ts +0 -1
  516. package/cjs/pages/SettingsPage/SlippageInput.d.ts +0 -1
  517. package/cjs/pages/SettingsPage/SlippageInput.js +0 -30
  518. package/cjs/providers/SDKProvider/SDKProvider.d.ts +0 -4
  519. package/cjs/providers/SDKProvider/SDKProvider.js +0 -41
  520. package/cjs/providers/SDKProvider/index.d.ts +0 -1
  521. package/cjs/providers/WalletProvider/types.d.ts +0 -17
  522. package/cjs/stores/routes/useTransactionHistory.d.ts +0 -2
  523. package/cjs/stores/routes/useTransactionHistory.js +0 -15
  524. package/components/Header/NavigationTabs.style.js +0 -58
  525. package/components/LiFiLogo.d.ts +0 -5
  526. package/components/LiFiLogo.js +0 -6
  527. package/fonts/Inter-Black.woff +0 -0
  528. package/fonts/Inter-Black.woff2 +0 -0
  529. package/fonts/Inter-BlackItalic.woff +0 -0
  530. package/fonts/Inter-BlackItalic.woff2 +0 -0
  531. package/fonts/Inter-Bold.woff +0 -0
  532. package/fonts/Inter-Bold.woff2 +0 -0
  533. package/fonts/Inter-BoldItalic.woff +0 -0
  534. package/fonts/Inter-BoldItalic.woff2 +0 -0
  535. package/fonts/Inter-ExtraBold.woff +0 -0
  536. package/fonts/Inter-ExtraBold.woff2 +0 -0
  537. package/fonts/Inter-ExtraBoldItalic.woff +0 -0
  538. package/fonts/Inter-ExtraBoldItalic.woff2 +0 -0
  539. package/fonts/Inter-ExtraLight.woff +0 -0
  540. package/fonts/Inter-ExtraLight.woff2 +0 -0
  541. package/fonts/Inter-ExtraLightItalic.woff +0 -0
  542. package/fonts/Inter-ExtraLightItalic.woff2 +0 -0
  543. package/fonts/Inter-Italic.woff +0 -0
  544. package/fonts/Inter-Italic.woff2 +0 -0
  545. package/fonts/Inter-Light.woff +0 -0
  546. package/fonts/Inter-Light.woff2 +0 -0
  547. package/fonts/Inter-LightItalic.woff +0 -0
  548. package/fonts/Inter-LightItalic.woff2 +0 -0
  549. package/fonts/Inter-Medium.woff +0 -0
  550. package/fonts/Inter-Medium.woff2 +0 -0
  551. package/fonts/Inter-MediumItalic.woff +0 -0
  552. package/fonts/Inter-MediumItalic.woff2 +0 -0
  553. package/fonts/Inter-Regular.woff +0 -0
  554. package/fonts/Inter-Regular.woff2 +0 -0
  555. package/fonts/Inter-SemiBold.woff +0 -0
  556. package/fonts/Inter-SemiBold.woff2 +0 -0
  557. package/fonts/Inter-SemiBoldItalic.woff +0 -0
  558. package/fonts/Inter-SemiBoldItalic.woff2 +0 -0
  559. package/fonts/Inter-Thin.woff +0 -0
  560. package/fonts/Inter-Thin.woff2 +0 -0
  561. package/fonts/Inter-ThinItalic.woff +0 -0
  562. package/fonts/Inter-ThinItalic.woff2 +0 -0
  563. package/fonts/Inter-italic.var.woff2 +0 -0
  564. package/fonts/Inter-roman.var.woff2 +0 -0
  565. package/fonts/Inter.var.woff2 +0 -0
  566. package/fonts/inter.css +0 -217
  567. package/hooks/useGetTokenBalancesWithRetry.d.ts +0 -3
  568. package/hooks/useGetTokenBalancesWithRetry.js +0 -29
  569. package/icons/LiFiFullLogo.d.ts +0 -2
  570. package/icons/LiFiFullLogo.js +0 -2
  571. package/icons/LiFiLogo.d.ts +0 -2
  572. package/icons/LiFiLogo.js +0 -2
  573. package/icons/LiFiToolLogo.d.ts +0 -2
  574. package/icons/LiFiToolLogo.js +0 -2
  575. package/pages/SelectEnabledToolsPage/SelectEnabledToolsPage.style.js +0 -5
  576. package/pages/SettingsPage/ColorSchemeButtonGroup.d.ts +0 -2
  577. package/pages/SettingsPage/ColorSchemeButtonGroup.js +0 -23
  578. package/pages/SettingsPage/ColorSchemeButtonGroup.style.d.ts +0 -4
  579. package/pages/SettingsPage/ColorSchemeButtonGroup.style.js +0 -16
  580. package/pages/SettingsPage/EnabledToolsButton.js +0 -21
  581. package/pages/SettingsPage/EnabledToolsButton.style.d.ts +0 -5
  582. package/pages/SettingsPage/EnabledToolsButton.style.js +0 -14
  583. package/pages/SettingsPage/GasPriceSelect.d.ts +0 -1
  584. package/pages/SettingsPage/GasPriceSelect.js +0 -13
  585. package/pages/SettingsPage/LanguageSelect.d.ts +0 -2
  586. package/pages/SettingsPage/LanguageSelect.js +0 -33
  587. package/pages/SettingsPage/RoutePrioritySelect.d.ts +0 -2
  588. package/pages/SettingsPage/RoutePrioritySelect.js +0 -19
  589. package/pages/SettingsPage/ShowDestinationWallet.d.ts +0 -1
  590. package/pages/SettingsPage/SlippageInput.d.ts +0 -1
  591. package/pages/SettingsPage/SlippageInput.js +0 -26
  592. package/providers/SDKProvider/SDKProvider.d.ts +0 -4
  593. package/providers/SDKProvider/SDKProvider.js +0 -36
  594. package/providers/SDKProvider/index.d.ts +0 -1
  595. package/providers/SDKProvider/index.js +0 -1
  596. package/providers/WalletProvider/types.d.ts +0 -17
  597. package/stores/routes/useTransactionHistory.d.ts +0 -2
  598. package/stores/routes/useTransactionHistory.js +0 -11
  599. /package/cjs/{providers/WalletProvider → pages/SettingsPage/SettingsCard}/types.js +0 -0
  600. /package/{providers/WalletProvider → pages/SettingsPage/SettingsCard}/types.js +0 -0
@@ -1,22 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useRoutes = void 0;
4
- const address_1 = require("@ethersproject/address");
5
4
  const sdk_1 = require("@lifi/sdk");
6
5
  const react_query_1 = require("@tanstack/react-query");
7
- const big_js_1 = require("big.js");
6
+ const core_1 = require("@wagmi/core");
8
7
  const react_hook_form_1 = require("react-hook-form");
9
8
  const uuid_1 = require("uuid");
9
+ const viem_1 = require("viem");
10
+ const ens_1 = require("viem/ens");
11
+ const wagmi_1 = require("wagmi");
10
12
  const _1 = require(".");
11
13
  const providers_1 = require("../providers");
12
14
  const stores_1 = require("../stores");
15
+ const utils_1 = require("../utils");
16
+ const useAccount_1 = require("./useAccount");
13
17
  const useSwapOnly_1 = require("./useSwapOnly");
14
18
  const refetchTime = 60000;
15
19
  const useRoutes = ({ insurableRoute } = {}) => {
16
- const lifi = (0, providers_1.useLiFi)();
17
20
  const { subvariant, sdkConfig, insurance, contractTool } = (0, providers_1.useWidgetConfig)();
18
- const { account } = (0, providers_1.useWallet)();
21
+ const { account } = (0, useAccount_1.useAccount)();
19
22
  const queryClient = (0, react_query_1.useQueryClient)();
23
+ const config = (0, wagmi_1.useConfig)();
20
24
  const swapOnly = (0, useSwapOnly_1.useSwapOnly)();
21
25
  const { slippage, enabledBridges, enabledAutoRefuel, enabledExchanges, routePriority, } = (0, stores_1.useSettings)([
22
26
  'slippage',
@@ -41,22 +45,28 @@ const useRoutes = ({ insurableRoute } = {}) => {
41
45
  });
42
46
  const { token: fromToken } = (0, _1.useToken)(fromChainId, fromTokenAddress);
43
47
  const { token: toToken } = (0, _1.useToken)(toChainId, toTokenAddress);
48
+ const { chain: fromChain } = (0, _1.useChain)(fromChainId);
49
+ const { chain: toChain } = (0, _1.useChain)(toChainId);
44
50
  const { enabled: enabledRefuel, fromAmount: gasRecommendationFromAmount } = (0, _1.useGasRefuel)();
45
51
  const hasAmount = (!isNaN(fromTokenAmount) && Number(fromTokenAmount) > 0) ||
46
52
  (!isNaN(toTokenAmount) && Number(toTokenAmount) > 0);
47
53
  const contractCallQuoteEnabled = subvariant === 'nft'
48
54
  ? Boolean(toContractAddress && toContractCallData && toContractGasLimit)
49
55
  : true;
56
+ // When we bridge between ecosystems we need to be sure toAddress is set
57
+ const isChainTypeSatisfied = fromChain?.chainType !== toChain?.chainType ? Boolean(toAddress) : true;
50
58
  const isEnabled = !isNaN(fromChainId) &&
51
59
  !isNaN(toChainId) &&
52
60
  Boolean(fromToken?.address) &&
53
61
  Boolean(toToken?.address) &&
54
62
  !Number.isNaN(slippage) &&
55
63
  hasAmount &&
64
+ isChainTypeSatisfied &&
56
65
  contractCallQuoteEnabled;
66
+ const accountAddress = fromChain?.chainType === account.chainType ? account.address : undefined;
57
67
  const queryKey = [
58
68
  'routes',
59
- account.address,
69
+ accountAddress,
60
70
  fromChainId,
61
71
  fromToken?.address,
62
72
  fromTokenAmount,
@@ -72,126 +82,119 @@ const useRoutes = ({ insurableRoute } = {}) => {
72
82
  enabledExchanges,
73
83
  routePriority,
74
84
  subvariant,
75
- sdkConfig?.defaultRouteOptions?.allowSwitchChain,
85
+ sdkConfig?.routeOptions?.allowSwitchChain,
76
86
  enabledRefuel && enabledAutoRefuel,
77
87
  gasRecommendationFromAmount,
78
88
  insurance,
79
89
  insurableRoute?.id,
80
90
  ];
81
- const { data, isLoading, isFetching, isFetched, dataUpdatedAt, refetch } = (0, react_query_1.useQuery)(queryKey, async ({ queryKey: [_, fromAddress, fromChainId, fromTokenAddress, fromTokenAmount, toAddress, toChainId, toTokenAddress, toTokenAmount, toContractAddress, toContractCallData, toContractGasLimit, slippage, enabledBridges, enabledExchanges, routePriority, subvariant, allowSwitchChain, enabledRefuel, gasRecommendationFromAmount, insurance, insurableRouteId,], signal, }) => {
82
- let toWalletAddress;
83
- try {
84
- toWalletAddress =
85
- (await account.signer?.provider?.resolveName(toAddress)) ??
86
- ((0, address_1.isAddress)(toAddress) ? toAddress : fromAddress);
87
- }
88
- catch {
89
- toWalletAddress = (0, address_1.isAddress)(toAddress) ? toAddress : fromAddress;
90
- }
91
- const fromAmount = (0, big_js_1.default)(fromTokenAmount || 0)
92
- .mul(10 ** (fromToken?.decimals ?? 0))
93
- .toFixed(0);
94
- const formattedSlippage = parseFloat(slippage) / 100;
95
- const allowedBridges = insurableRoute
96
- ? insurableRoute.steps.flatMap((step) => step.includedSteps
97
- .filter((includedStep) => includedStep.type === 'cross')
98
- .map((includedStep) => includedStep.toolDetails.key))
99
- : enabledBridges;
100
- const allowedExchanges = insurableRoute
101
- ? insurableRoute.steps.flatMap((step) => step.includedSteps
102
- .filter((includedStep) => includedStep.type === 'swap')
103
- .map((includedStep) => includedStep.toolDetails.key))
104
- : enabledExchanges;
105
- if (subvariant === 'nft') {
106
- const contractCallQuote = await lifi.getContractCallQuote({
107
- fromAddress,
108
- fromChain: fromChainId,
109
- fromToken: fromTokenAddress,
110
- toAmount: toTokenAmount,
111
- toChain: toChainId,
112
- toToken: toTokenAddress,
113
- toContractAddress,
114
- toContractCallData,
115
- toContractGasLimit,
116
- allowBridges: allowedBridges,
117
- toFallbackAddress: toWalletAddress,
118
- slippage: formattedSlippage,
119
- }, { signal });
120
- contractCallQuote.action.toToken = toToken;
121
- const customStep = subvariant === 'nft'
122
- ? contractCallQuote.includedSteps?.find((step) => step.type === 'custom')
123
- : undefined;
124
- if (customStep && contractTool) {
125
- const toolDetails = {
126
- key: contractTool.name,
127
- name: contractTool.name,
128
- logoURI: contractTool.logoURI,
91
+ const { data, isLoading, isFetching, isFetched, dataUpdatedAt, refetch } = (0, react_query_1.useQuery)({
92
+ queryKey,
93
+ queryFn: async ({ queryKey: [_, fromAddress, fromChainId, fromTokenAddress, fromTokenAmount, toAddress, toChainId, toTokenAddress, toTokenAmount, toContractAddress, toContractCallData, toContractGasLimit, slippage, enabledBridges, enabledExchanges, routePriority, subvariant, allowSwitchChain, enabledRefuel, gasRecommendationFromAmount, insurance, insurableRouteId,], signal, }) => {
94
+ let toWalletAddress = toAddress || fromAddress;
95
+ const isAddress = (0, viem_1.isAddress)(toAddress) || (0, utils_1.isSVMAddress)(toAddress);
96
+ try {
97
+ // FIXME: resolve address in one place
98
+ toWalletAddress = !isAddress
99
+ ? await (0, core_1.getEnsAddress)(config, {
100
+ chainId: toChainId,
101
+ name: (0, ens_1.normalize)(toAddress),
102
+ })
103
+ : isAddress
104
+ ? toAddress
105
+ : fromAddress;
106
+ }
107
+ catch {
108
+ toWalletAddress = isAddress ? toAddress : fromAddress;
109
+ }
110
+ const fromAmount = (0, viem_1.parseUnits)(fromTokenAmount, fromToken.decimals).toString();
111
+ const formattedSlippage = parseFloat(slippage) / 100;
112
+ const allowedBridges = insurableRoute
113
+ ? insurableRoute.steps.flatMap((step) => step.includedSteps
114
+ .filter((includedStep) => includedStep.type === 'cross')
115
+ .map((includedStep) => includedStep.toolDetails.key))
116
+ : enabledBridges;
117
+ const allowedExchanges = insurableRoute
118
+ ? insurableRoute.steps.flatMap((step) => step.includedSteps
119
+ .filter((includedStep) => includedStep.type === 'swap')
120
+ .map((includedStep) => includedStep.toolDetails.key))
121
+ : enabledExchanges;
122
+ if (subvariant === 'nft') {
123
+ const contractCallQuote = await (0, sdk_1.getContractCallQuote)({
124
+ fromAddress,
125
+ fromChain: fromChainId,
126
+ fromToken: fromTokenAddress,
127
+ toAmount: toTokenAmount,
128
+ toChain: toChainId,
129
+ toToken: toTokenAddress,
130
+ toContractAddress,
131
+ toContractCallData,
132
+ toContractGasLimit,
133
+ allowBridges: allowedBridges,
134
+ toFallbackAddress: toWalletAddress,
135
+ slippage: formattedSlippage,
136
+ }, { signal });
137
+ contractCallQuote.action.toToken = toToken;
138
+ const customStep = subvariant === 'nft'
139
+ ? contractCallQuote.includedSteps?.find((step) => step.type === 'custom')
140
+ : undefined;
141
+ if (customStep && contractTool) {
142
+ const toolDetails = {
143
+ key: contractTool.name,
144
+ name: contractTool.name,
145
+ logoURI: contractTool.logoURI,
146
+ };
147
+ customStep.toolDetails = toolDetails;
148
+ contractCallQuote.toolDetails = toolDetails;
149
+ }
150
+ const route = {
151
+ id: (0, uuid_1.v4)(),
152
+ fromChainId: contractCallQuote.action.fromChainId,
153
+ fromAmountUSD: contractCallQuote.estimate.fromAmountUSD || '',
154
+ fromAmount: contractCallQuote.action.fromAmount,
155
+ fromToken: contractCallQuote.action.fromToken,
156
+ fromAddress: contractCallQuote.action.fromAddress,
157
+ toChainId: contractCallQuote.action.toChainId,
158
+ toAmountUSD: contractCallQuote.estimate.toAmountUSD || '',
159
+ toAmount: toTokenAmount,
160
+ toAmountMin: toTokenAmount,
161
+ toToken: toToken,
162
+ toAddress: toWalletAddress,
163
+ gasCostUSD: contractCallQuote.estimate.gasCosts?.[0].amountUSD,
164
+ steps: [contractCallQuote],
165
+ insurance: { state: 'NOT_INSURABLE', feeAmountUsd: '0' },
129
166
  };
130
- customStep.toolDetails = toolDetails;
131
- contractCallQuote.toolDetails = toolDetails;
167
+ return { routes: [route] };
132
168
  }
133
- const route = {
134
- id: (0, uuid_1.v4)(),
135
- fromChainId: contractCallQuote.action.fromChainId,
136
- fromAmountUSD: contractCallQuote.estimate.fromAmountUSD || '',
137
- fromAmount: contractCallQuote.action.fromAmount,
138
- fromToken: contractCallQuote.action.fromToken,
139
- fromAddress: contractCallQuote.action.fromAddress,
140
- toChainId: contractCallQuote.action.toChainId,
141
- toAmountUSD: contractCallQuote.estimate.toAmountUSD || '',
142
- toAmount: toTokenAmount,
143
- toAmountMin: toTokenAmount,
144
- toToken: toToken,
169
+ const data = await (0, sdk_1.getRoutes)({
170
+ fromChainId,
171
+ fromAmount,
172
+ fromTokenAddress,
173
+ toChainId,
174
+ toTokenAddress,
175
+ fromAddress,
145
176
  toAddress: toWalletAddress,
146
- gasCostUSD: contractCallQuote.estimate.gasCosts?.[0].amountUSD,
147
- steps: [contractCallQuote],
148
- insurance: { state: 'NOT_INSURABLE', feeAmountUsd: '0' },
149
- };
150
- return { routes: [route] };
151
- }
152
- return lifi.getRoutes({
153
- fromChainId,
154
- fromAmount,
155
- fromTokenAddress,
156
- toChainId,
157
- toTokenAddress,
158
- fromAddress,
159
- toAddress: toWalletAddress,
160
- fromAmountForGas: enabledRefuel && gasRecommendationFromAmount
161
- ? gasRecommendationFromAmount
162
- : undefined,
163
- options: {
164
- slippage: formattedSlippage,
165
- bridges: {
166
- allow: allowedBridges,
167
- },
168
- exchanges: {
169
- allow: allowedExchanges,
177
+ fromAmountForGas: enabledRefuel && gasRecommendationFromAmount
178
+ ? gasRecommendationFromAmount
179
+ : undefined,
180
+ options: {
181
+ slippage: formattedSlippage,
182
+ bridges: {
183
+ allow: allowedBridges,
184
+ },
185
+ exchanges: {
186
+ allow: allowedExchanges,
187
+ },
188
+ order: routePriority,
189
+ allowSwitchChain: subvariant === 'refuel' ? false : allowSwitchChain,
190
+ insurance: insurance ? Boolean(insurableRoute) : undefined,
170
191
  },
171
- order: routePriority,
172
- allowSwitchChain: subvariant === 'refuel' ? false : allowSwitchChain,
173
- insurance: insurance ? Boolean(insurableRoute) : undefined,
174
- },
175
- }, { signal });
176
- }, {
177
- enabled: isEnabled,
178
- staleTime: refetchTime,
179
- cacheTime: refetchTime,
180
- refetchInterval(data, query) {
181
- return Math.min(Math.abs(refetchTime - (Date.now() - query.state.dataUpdatedAt)), refetchTime);
182
- },
183
- retry(failureCount, error) {
184
- if (error?.code === sdk_1.LifiErrorCode.NotFound) {
185
- return false;
186
- }
187
- return true;
188
- },
189
- onSuccess(data) {
190
- if (data.routes[0]) {
192
+ }, { signal });
193
+ if (data.routes[0] && fromAddress) {
191
194
  // Update local tokens cache to keep priceUSD in sync
192
195
  const { fromToken, toToken } = data.routes[0];
193
196
  [fromToken, toToken].forEach((token) => {
194
- queryClient.setQueriesData(['token-balances', account.address, token.chainId], (data) => {
197
+ queryClient.setQueriesData({ queryKey: ['token-balances', fromAddress, token.chainId] }, (data) => {
195
198
  if (data) {
196
199
  const clonedData = [...data];
197
200
  const index = clonedData.findIndex((dataToken) => dataToken.address === token.address);
@@ -204,6 +207,18 @@ const useRoutes = ({ insurableRoute } = {}) => {
204
207
  });
205
208
  });
206
209
  }
210
+ return data;
211
+ },
212
+ enabled: isEnabled,
213
+ staleTime: refetchTime,
214
+ refetchInterval(query) {
215
+ return Math.min(Math.abs(refetchTime - (Date.now() - query.state.dataUpdatedAt)), refetchTime);
216
+ },
217
+ retry(_, error) {
218
+ if (error?.code === sdk_1.LiFiErrorCode.NotFound) {
219
+ return false;
220
+ }
221
+ return true;
207
222
  },
208
223
  });
209
224
  return {
@@ -0,0 +1,11 @@
1
+ export declare const useSettingMonitor: () => {
2
+ isBridgesChanged: boolean;
3
+ isExchangesChanged: boolean;
4
+ isSlippageChanged: boolean;
5
+ isSlippageOutsideRecommendedLimits: boolean;
6
+ isRoutePriorityChanged: boolean;
7
+ isGasPriceChanged: boolean;
8
+ isCustomRouteSettings: boolean;
9
+ isRouteSettingsWithWarnings: boolean;
10
+ reset: () => void;
11
+ };
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useSettingMonitor = void 0;
4
+ const stores_1 = require("../stores");
5
+ const shallow_1 = require("zustand/shallow");
6
+ const useTools_1 = require("./useTools");
7
+ const providers_1 = require("../providers");
8
+ const useSettingMonitor = () => {
9
+ const [enabledBridges, enabledExchanges, routePriority, slippage, gasPrice] = (0, stores_1.useSettingsStore)((state) => [
10
+ state.enabledBridges,
11
+ state.enabledExchanges,
12
+ state.routePriority,
13
+ state.slippage,
14
+ state.gasPrice,
15
+ ], shallow_1.shallow);
16
+ const { tools } = (0, useTools_1.useTools)();
17
+ const resetSettings = (0, stores_1.useSettingsStore)((state) => state.reset);
18
+ const config = (0, providers_1.useWidgetConfig)();
19
+ const isSlippageChanged = config.slippage
20
+ ? Number(slippage) !== config.slippage * 100
21
+ : slippage !== stores_1.defaultConfigurableSettings.slippage;
22
+ const isSlippageOutsideRecommendedLimits = isSlippageChanged && Number(slippage) > 1;
23
+ const isRoutePriorityChanged = config.routePriority
24
+ ? routePriority !== config.routePriority
25
+ : routePriority !== stores_1.defaultConfigurableSettings.routePriority;
26
+ const isGasPriceChanged = gasPrice !== stores_1.defaultConfigurableSettings.gasPrice;
27
+ const isBridgesChanged = tools?.bridges
28
+ ? tools?.bridges?.length !== enabledBridges?.length
29
+ : false;
30
+ const isExchangesChanged = tools?.exchanges
31
+ ? tools?.exchanges?.length !== enabledExchanges?.length
32
+ : false;
33
+ const isCustomRouteSettings = isBridgesChanged ||
34
+ isExchangesChanged ||
35
+ isSlippageChanged ||
36
+ isRoutePriorityChanged ||
37
+ isGasPriceChanged;
38
+ const isRouteSettingsWithWarnings = isSlippageOutsideRecommendedLimits;
39
+ const reset = () => {
40
+ if (tools) {
41
+ resetSettings(config, tools.bridges.map((tool) => tool.key), tools.exchanges.map((tool) => tool.key));
42
+ (0, stores_1.setDefaultSettings)(config);
43
+ }
44
+ };
45
+ return {
46
+ isBridgesChanged,
47
+ isExchangesChanged,
48
+ isSlippageChanged,
49
+ isSlippageOutsideRecommendedLimits,
50
+ isRoutePriorityChanged,
51
+ isGasPriceChanged,
52
+ isCustomRouteSettings,
53
+ isRouteSettingsWithWarnings,
54
+ reset,
55
+ };
56
+ };
57
+ exports.useSettingMonitor = useSettingMonitor;
@@ -1,5 +1,5 @@
1
1
  export declare const useTokenAddressBalance: (chainId?: number, tokenAddress?: string) => {
2
2
  token: import("..").TokenAmount | undefined;
3
3
  isLoading: boolean;
4
- refetch: <TPageData>(options?: (import("@tanstack/query-core").RefetchOptions & import("@tanstack/query-core").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/query-core").QueryObserverResult<import("..").TokenAmount[], unknown>>;
4
+ refetch: (options?: import("@tanstack/query-core/build/legacy/queryClient-IoYjXsnV").Z | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-IoYjXsnV").ac<import("..").TokenAmount[], Error>>;
5
5
  };
@@ -1,9 +1,11 @@
1
- import type { Token, TokenAmount } from '@lifi/sdk';
2
- export declare const useTokenBalance: (token?: Token, accountAddress?: string) => {
1
+ import type { ExtendedChain } from '@lifi/sdk';
2
+ import { type Token, type TokenAmount } from '@lifi/sdk';
3
+ export declare const useTokenBalance: (accountAddress?: string, token?: Token, chain?: ExtendedChain) => {
3
4
  token: TokenAmount | undefined;
4
5
  isLoading: boolean;
5
- refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<TokenAmount, unknown>>;
6
+ refetch: (options?: import("@tanstack/query-core/build/legacy/queryClient-IoYjXsnV").Z | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-IoYjXsnV").ac<TokenAmount, Error>>;
6
7
  refetchNewBalance: () => void;
7
8
  refetchAllBalances: () => void;
8
9
  getTokenBalancesWithRetry: (accountAddress: string, tokens: Token[], depth?: number) => Promise<TokenAmount[] | undefined>;
9
10
  };
11
+ export declare const getTokenBalancesWithRetry: (accountAddress: string, tokens: Token[], depth?: number) => Promise<TokenAmount[] | undefined>;
@@ -1,62 +1,72 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.useTokenBalance = void 0;
3
+ exports.getTokenBalancesWithRetry = exports.useTokenBalance = void 0;
4
+ const sdk_1 = require("@lifi/sdk");
4
5
  const react_query_1 = require("@tanstack/react-query");
5
6
  const react_1 = require("react");
6
- const providers_1 = require("../providers");
7
- const useGetTokenBalancesWithRetry_1 = require("./useGetTokenBalancesWithRetry");
7
+ const useAccount_1 = require("./useAccount");
8
8
  const defaultRefetchInterval = 30000;
9
- const useTokenBalance = (token, accountAddress) => {
10
- const { account } = (0, providers_1.useWallet)();
9
+ const useTokenBalance = (accountAddress, token, chain) => {
10
+ const { account } = (0, useAccount_1.useAccount)();
11
11
  const queryClient = (0, react_query_1.useQueryClient)();
12
- const walletAddress = accountAddress || account.address;
13
- const getTokenBalancesWithRetry = (0, useGetTokenBalancesWithRetry_1.useGetTokenBalancesWithRetry)(account.signer?.provider);
12
+ const walletAddress = accountAddress ||
13
+ // When we provide chain we want to be sure that account address used is from the same ecosystem as token
14
+ !chain
15
+ ? account.address
16
+ : chain.chainType === account.chainType
17
+ ? account.address
18
+ : undefined;
14
19
  const tokenBalanceQueryKey = (0, react_1.useMemo)(() => ['token-balance', walletAddress, token?.chainId, token?.address], [token?.address, token?.chainId, walletAddress]);
15
- const { data, isLoading, refetch } = (0, react_query_1.useQuery)(tokenBalanceQueryKey, async ({ queryKey: [, accountAddress] }) => {
16
- const cachedToken = queryClient
17
- .getQueryData([
18
- 'token-balances',
19
- accountAddress,
20
- token.chainId,
21
- ])
22
- ?.find((t) => t.address === token.address);
23
- if (cachedToken) {
24
- return cachedToken;
25
- }
26
- const tokenBalances = await getTokenBalancesWithRetry(accountAddress, [token]);
27
- if (!tokenBalances?.length) {
28
- throw Error('Could not get tokens balance.');
29
- }
30
- const cachedTokenAmount = queryClient.getQueryData(tokenBalanceQueryKey);
31
- const tokenAmount = tokenBalances[0].amount;
32
- if (cachedTokenAmount?.amount !== tokenAmount) {
33
- queryClient.setQueryDefaults(tokenBalanceQueryKey, {
34
- refetchInterval: defaultRefetchInterval,
35
- staleTime: defaultRefetchInterval,
36
- });
37
- }
38
- queryClient.setQueriesData(['token-balances', accountAddress, token.chainId], (data) => {
39
- if (data) {
40
- const clonedData = [...data];
41
- const index = clonedData.findIndex((dataToken) => dataToken.address === token.address);
42
- clonedData[index] = {
43
- ...clonedData[index],
44
- amount: tokenAmount,
45
- };
46
- return clonedData;
20
+ const { data, isLoading, refetch } = (0, react_query_1.useQuery)({
21
+ queryKey: tokenBalanceQueryKey,
22
+ queryFn: async ({ queryKey: [, accountAddress] }) => {
23
+ const cachedToken = queryClient
24
+ .getQueryData([
25
+ 'token-balances',
26
+ accountAddress,
27
+ token.chainId,
28
+ ])
29
+ ?.find((t) => t.address === token.address);
30
+ if (cachedToken) {
31
+ return cachedToken;
47
32
  }
48
- });
49
- return {
50
- ...tokenBalances[0],
51
- amount: tokenAmount,
52
- };
53
- }, {
33
+ const tokenBalances = await (0, exports.getTokenBalancesWithRetry)(accountAddress, [token]);
34
+ if (!tokenBalances?.length) {
35
+ throw Error('Could not get tokens balance.');
36
+ }
37
+ const cachedTokenAmount = queryClient.getQueryData(tokenBalanceQueryKey);
38
+ const tokenAmount = tokenBalances[0].amount;
39
+ if (cachedTokenAmount?.amount !== tokenAmount) {
40
+ queryClient.setQueryDefaults(tokenBalanceQueryKey, {
41
+ refetchInterval: defaultRefetchInterval,
42
+ staleTime: defaultRefetchInterval,
43
+ });
44
+ }
45
+ queryClient.setQueriesData({ queryKey: ['token-balances', accountAddress, token.chainId] }, (data) => {
46
+ if (data) {
47
+ const clonedData = [...data];
48
+ const index = clonedData.findIndex((dataToken) => dataToken.address === token.address);
49
+ clonedData[index] = {
50
+ ...clonedData[index],
51
+ amount: tokenAmount,
52
+ };
53
+ return clonedData;
54
+ }
55
+ });
56
+ return {
57
+ ...tokenBalances[0],
58
+ amount: tokenAmount,
59
+ };
60
+ },
54
61
  enabled: Boolean(walletAddress && token),
55
62
  refetchInterval: defaultRefetchInterval,
56
63
  staleTime: defaultRefetchInterval,
57
64
  });
58
65
  const refetchAllBalances = () => {
59
- queryClient.refetchQueries(['token-balances', accountAddress, token?.chainId], { exact: false });
66
+ queryClient.refetchQueries({
67
+ queryKey: ['token-balances', accountAddress, token?.chainId],
68
+ exact: false,
69
+ });
60
70
  };
61
71
  const refetchNewBalance = (0, react_1.useCallback)(() => {
62
72
  queryClient.setQueryDefaults(tokenBalanceQueryKey, {
@@ -70,7 +80,27 @@ const useTokenBalance = (token, accountAddress) => {
70
80
  refetch,
71
81
  refetchNewBalance,
72
82
  refetchAllBalances,
73
- getTokenBalancesWithRetry,
83
+ getTokenBalancesWithRetry: exports.getTokenBalancesWithRetry,
74
84
  };
75
85
  };
76
86
  exports.useTokenBalance = useTokenBalance;
87
+ const getTokenBalancesWithRetry = async (accountAddress, tokens, depth = 0) => {
88
+ try {
89
+ const tokenBalances = await (0, sdk_1.getTokenBalances)(accountAddress, tokens);
90
+ if (!tokenBalances.every((token) => token.blockNumber)) {
91
+ if (depth > 10) {
92
+ console.warn('Token balance backoff depth exceeded.');
93
+ return undefined;
94
+ }
95
+ await new Promise((resolve) => {
96
+ setTimeout(resolve, 1.5 ** depth * 100);
97
+ });
98
+ return (0, exports.getTokenBalancesWithRetry)(accountAddress, tokens, depth + 1);
99
+ }
100
+ return tokenBalances;
101
+ }
102
+ catch (error) {
103
+ //
104
+ }
105
+ };
106
+ exports.getTokenBalancesWithRetry = getTokenBalancesWithRetry;
@@ -1,9 +1,9 @@
1
1
  import type { TokenAmount } from '../types';
2
2
  export declare const useTokenBalances: (selectedChainId?: number) => {
3
- tokens: TokenAmount[];
3
+ tokens: TokenAmount[] | undefined;
4
4
  tokensWithBalance: TokenAmount[] | undefined;
5
- featuredTokens: import("@lifi/types").StaticToken[] | undefined;
5
+ featuredTokens: import("@lifi/sdk").StaticToken[] | undefined;
6
6
  isLoading: boolean;
7
7
  isBalanceLoading: boolean;
8
- refetch: <TPageData>(options?: (import("@tanstack/react-query").RefetchOptions & import("@tanstack/react-query").RefetchQueryFilters<TPageData>) | undefined) => Promise<import("@tanstack/react-query").QueryObserverResult<TokenAmount[], unknown>>;
8
+ refetch: (options?: import("@tanstack/query-core/build/legacy/queryClient-IoYjXsnV").Z | undefined) => Promise<import("@tanstack/query-core/build/legacy/queryClient-IoYjXsnV").ac<TokenAmount[], Error>>;
9
9
  };
@@ -1,38 +1,48 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useTokenBalances = void 0;
4
+ const sdk_1 = require("@lifi/sdk");
4
5
  const react_query_1 = require("@tanstack/react-query");
5
- const providers_1 = require("../providers");
6
+ const viem_1 = require("viem");
7
+ const useAccount_1 = require("./useAccount");
6
8
  const useFeaturedTokens_1 = require("./useFeaturedTokens");
7
9
  const useTokens_1 = require("./useTokens");
8
10
  const defaultRefetchInterval = 32000;
9
11
  const useTokenBalances = (selectedChainId) => {
10
- const lifi = (0, providers_1.useLiFi)();
11
- const { account } = (0, providers_1.useWallet)();
12
+ const { accounts } = (0, useAccount_1.useAccount)();
12
13
  const featuredTokens = (0, useFeaturedTokens_1.useFeaturedTokens)(selectedChainId);
13
- const { tokens, isLoading } = (0, useTokens_1.useTokens)(selectedChainId);
14
- const isBalanceLoadingEnabled = Boolean(account.address) &&
14
+ const { tokens, chain, isLoading } = (0, useTokens_1.useTokens)(selectedChainId);
15
+ const account = accounts.find((account) => account.chainType === chain?.chainType);
16
+ const isBalanceLoadingEnabled = Boolean(account?.address) &&
15
17
  Boolean(tokens?.length) &&
16
18
  Boolean(selectedChainId);
17
- const { data: tokensWithBalance, isLoading: isBalanceLoading, refetch, } = (0, react_query_1.useQuery)(['token-balances', account.address, selectedChainId, tokens?.length], async ({ queryKey: [, accountAddress] }) => {
18
- const tokenBalances = await lifi.getTokenBalances(accountAddress, tokens);
19
- const featuredTokenAddresses = new Set(featuredTokens?.map((token) => token.address));
20
- const sortFn = (a, b) => parseFloat(b.amount ?? '0') * parseFloat(b.priceUSD ?? '0') -
21
- parseFloat(a.amount ?? '0') * parseFloat(a.priceUSD ?? '0');
22
- const formattedTokens = (tokenBalances.length === 0 ? tokens : tokenBalances);
23
- const result = [
24
- ...formattedTokens
25
- .filter((token) => token.amount !== '0' && featuredTokenAddresses.has(token.address))
26
- .sort(sortFn),
27
- ...formattedTokens.filter((token) => token.amount === '0' && featuredTokenAddresses.has(token.address)),
28
- ...formattedTokens
29
- .filter((token) => token.amount !== '0' &&
30
- !featuredTokenAddresses.has(token.address))
31
- .sort(sortFn),
32
- ...formattedTokens.filter((token) => token.amount === '0' && !featuredTokenAddresses.has(token.address)),
33
- ];
34
- return result;
35
- }, {
19
+ const { data: tokensWithBalance, isLoading: isBalanceLoading, refetch, } = (0, react_query_1.useQuery)({
20
+ queryKey: [
21
+ 'token-balances',
22
+ account?.address,
23
+ selectedChainId,
24
+ tokens?.length,
25
+ ],
26
+ queryFn: async ({ queryKey: [, accountAddress] }) => {
27
+ const tokenBalances = await (0, sdk_1.getTokenBalances)(accountAddress, tokens);
28
+ const featuredTokenAddresses = new Set(featuredTokens?.map((token) => token.address));
29
+ const sortFn = (a, b) => parseFloat((0, viem_1.formatUnits)(b.amount ?? 0n, b.decimals)) *
30
+ parseFloat(b.priceUSD ?? '0') -
31
+ parseFloat((0, viem_1.formatUnits)(a.amount ?? 0n, a.decimals)) *
32
+ parseFloat(a.priceUSD ?? '0');
33
+ const formattedTokens = (tokenBalances.length === 0 ? tokens : tokenBalances);
34
+ const result = [
35
+ ...formattedTokens
36
+ .filter((token) => token.amount && featuredTokenAddresses.has(token.address))
37
+ .sort(sortFn),
38
+ ...formattedTokens.filter((token) => !token.amount && featuredTokenAddresses.has(token.address)),
39
+ ...formattedTokens
40
+ .filter((token) => token.amount && !featuredTokenAddresses.has(token.address))
41
+ .sort(sortFn),
42
+ ...formattedTokens.filter((token) => !token.amount && !featuredTokenAddresses.has(token.address)),
43
+ ];
44
+ return result;
45
+ },
36
46
  enabled: isBalanceLoadingEnabled,
37
47
  refetchInterval: defaultRefetchInterval,
38
48
  staleTime: defaultRefetchInterval,