@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,11 +1,11 @@
1
- import type { ChainId, Process, Route } from '@lifi/sdk';
1
+ import type { ChainId, ChainType, Process, Route } from '@lifi/sdk';
2
2
  export declare enum WidgetEvent {
3
3
  RouteExecutionStarted = "routeExecutionStarted",
4
4
  RouteExecutionUpdated = "routeExecutionUpdated",
5
5
  RouteExecutionCompleted = "routeExecutionCompleted",
6
6
  RouteExecutionFailed = "routeExecutionFailed",
7
7
  RouteHighValueLoss = "routeHighValueLoss",
8
- RouteContactSupport = "routeContactSupport",
8
+ ContactSupport = "contactSupport",
9
9
  SourceChainTokenSelected = "sourceChainTokenSelected",
10
10
  DestinationChainTokenSelected = "destinationChainTokenSelected",
11
11
  SendToWalletToggled = "sendToWalletToggled",
@@ -18,14 +18,14 @@ export type WidgetEvents = {
18
18
  routeExecutionCompleted: Route;
19
19
  routeExecutionFailed: RouteExecutionUpdate;
20
20
  routeHighValueLoss: RouteHighValueLossUpdate;
21
- routeContactSupport: RouteContactSupport;
21
+ contactSupport: ContactSupport;
22
22
  sourceChainTokenSelected: ChainTokenSelected;
23
23
  destinationChainTokenSelected: ChainTokenSelected;
24
24
  sendToWalletToggled: boolean;
25
25
  reviewTransactionPageEntered?: Route;
26
26
  walletConnected: WalletConnected;
27
27
  };
28
- export interface RouteContactSupport {
28
+ export interface ContactSupport {
29
29
  supportId?: string;
30
30
  }
31
31
  export interface RouteHighValueLossUpdate {
@@ -43,6 +43,7 @@ export interface ChainTokenSelected {
43
43
  tokenAddress: string;
44
44
  }
45
45
  export interface WalletConnected {
46
- chainId?: number;
47
46
  address?: string;
47
+ chainId?: number;
48
+ chainType?: ChainType;
48
49
  }
@@ -8,7 +8,7 @@ var WidgetEvent;
8
8
  WidgetEvent["RouteExecutionCompleted"] = "routeExecutionCompleted";
9
9
  WidgetEvent["RouteExecutionFailed"] = "routeExecutionFailed";
10
10
  WidgetEvent["RouteHighValueLoss"] = "routeHighValueLoss";
11
- WidgetEvent["RouteContactSupport"] = "routeContactSupport";
11
+ WidgetEvent["ContactSupport"] = "contactSupport";
12
12
  WidgetEvent["SourceChainTokenSelected"] = "sourceChainTokenSelected";
13
13
  WidgetEvent["DestinationChainTokenSelected"] = "destinationChainTokenSelected";
14
14
  WidgetEvent["SendToWalletToggled"] = "sendToWalletToggled";
@@ -1,5 +1,4 @@
1
- import type { Signer } from '@ethersproject/abstract-signer';
2
- import type { BaseToken, ChainKey, ConfigUpdate, Order, RouteOptions, StaticToken, Token } from '@lifi/sdk';
1
+ import type { BaseToken, Order, RouteOptions, SDKOptions, StaticToken, Token } from '@lifi/sdk';
3
2
  import type { Components, PaletteMode, PaletteOptions, Shape, Theme } from '@mui/material';
4
3
  import type { TypographyOptions } from '@mui/material/styles/createTypography';
5
4
  import type { CSSProperties, ReactNode, RefObject } from 'react';
@@ -37,15 +36,10 @@ export type ThemeConfig = {
37
36
  components?: Pick<Components<Omit<Theme, 'components'>>, 'MuiAvatar'>;
38
37
  };
39
38
  export interface WidgetWalletManagement {
40
- connect(): Promise<Signer>;
41
- disconnect(): Promise<void>;
42
- switchChain?(chainId: number): Promise<Signer>;
43
- addToken?(token: StaticToken, chainId: number): Promise<void>;
44
- addChain?(chainId: number): Promise<boolean>;
45
- signer?: Signer;
39
+ connect(): Promise<void>;
46
40
  }
47
- export interface SDKConfig extends Omit<ConfigUpdate, 'defaultExecutionSettings' | 'defaultRouteOptions' | 'disableVersionCheck' | 'integrator'> {
48
- defaultRouteOptions?: Omit<RouteOptions, 'bridges' | 'exchanges' | 'insurance'>;
41
+ export interface WidgetSDKOptions extends Omit<SDKOptions, 'apiKey' | 'disableVersionCheck' | 'integrator' | 'routeOptions' | 'widgetVersion'> {
42
+ routeOptions?: Omit<RouteOptions, 'bridges' | 'exchanges' | 'insurance'>;
49
43
  }
50
44
  export interface WidgetContractTool {
51
45
  logoURI: string;
@@ -60,8 +54,8 @@ export interface WidgetContract {
60
54
  fallbackAddress?: string;
61
55
  }
62
56
  export interface WidgetConfig {
63
- fromChain?: `${ChainKey}` | number;
64
- toChain?: `${ChainKey}` | number;
57
+ fromChain?: number;
58
+ toChain?: number;
65
59
  fromToken?: string;
66
60
  toToken?: string;
67
61
  toAddress?: string;
@@ -90,7 +84,7 @@ export interface WidgetConfig {
90
84
  requiredUI?: RequiredUIType[];
91
85
  useRecommendedRoute?: boolean;
92
86
  walletManagement?: WidgetWalletManagement;
93
- sdkConfig?: SDKConfig;
87
+ sdkConfig?: WidgetSDKOptions;
94
88
  buildUrl?: boolean;
95
89
  keyPrefix?: string;
96
90
  bridges?: {
@@ -117,7 +111,6 @@ export interface WidgetConfig {
117
111
  deny?: LanguageKey[];
118
112
  };
119
113
  languageResources?: LanguageResources;
120
- disableLanguageDetector?: boolean;
121
114
  }
122
115
  export type WidgetDrawerProps = {
123
116
  elementRef?: RefObject<HTMLDivElement>;
@@ -1,3 +1,6 @@
1
1
  import type { PaletteMode, Theme } from '@mui/material';
2
2
  export declare const getContrastAlphaColor: (mode: PaletteMode, alpha: string | number) => string;
3
3
  export declare const getContrastTextColor: (theme: Theme, background?: string) => "#fff" | "#000";
4
+ export declare const getWarningBackgroundColor: (theme: Theme) => string;
5
+ export declare const getInfoBackgroundColor: (theme: Theme) => string;
6
+ export declare const getCardFieldsetBackgroundColor: (theme: Theme) => string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getContrastTextColor = exports.getContrastAlphaColor = void 0;
3
+ exports.getCardFieldsetBackgroundColor = exports.getInfoBackgroundColor = exports.getWarningBackgroundColor = exports.getContrastTextColor = exports.getContrastAlphaColor = void 0;
4
4
  const colors_1 = require("@mui/material/colors");
5
5
  const styles_1 = require("@mui/material/styles");
6
6
  const getContrastAlphaColor = (mode, alpha) => mode === 'light' ? `rgb(0 0 0 / ${alpha})` : `rgb(255 255 255 / ${alpha})`;
@@ -9,3 +9,15 @@ const getContrastTextColor = (theme, background) => (0, styles_1.getContrastRati
9
9
  ? colors_1.common.white
10
10
  : colors_1.common.black;
11
11
  exports.getContrastTextColor = getContrastTextColor;
12
+ const getWarningBackgroundColor = (theme) => theme.palette.mode === 'light'
13
+ ? (0, styles_1.alpha)(theme.palette.warning.main, 0.32)
14
+ : (0, styles_1.alpha)(theme.palette.warning.main, 0.16);
15
+ exports.getWarningBackgroundColor = getWarningBackgroundColor;
16
+ const getInfoBackgroundColor = (theme) => theme.palette.mode === 'light'
17
+ ? (0, styles_1.alpha)(theme.palette.info.main, 0.12)
18
+ : (0, styles_1.alpha)(theme.palette.info.main, 0.16);
19
+ exports.getInfoBackgroundColor = getInfoBackgroundColor;
20
+ const getCardFieldsetBackgroundColor = (theme) => theme.palette.mode === 'dark'
21
+ ? theme.palette.grey[800]
22
+ : (0, styles_1.alpha)(theme.palette.common.black, 0.04);
23
+ exports.getCardFieldsetBackgroundColor = getCardFieldsetBackgroundColor;
@@ -0,0 +1,3 @@
1
+ import type { StatusResponse, ToolsResponse } from '@lifi/sdk';
2
+ import type { RouteExecution } from '../stores';
3
+ export declare const buildRouteFromTxHistory: (tx: StatusResponse, tools?: ToolsResponse) => RouteExecution | undefined;
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildRouteFromTxHistory = void 0;
4
+ const buildProcessFromTxHistory = (tx) => {
5
+ const sending = tx.sending;
6
+ const receiving = tx.receiving;
7
+ if (!sending.token?.chainId || !receiving.token?.chainId) {
8
+ return [];
9
+ }
10
+ const processStatus = tx.status === 'DONE' ? 'DONE' : 'FAILED';
11
+ const substatus = processStatus === 'FAILED' ? 'UNKNOWN_ERROR' : 'COMPLETED';
12
+ if (sending.chainId === receiving.chainId) {
13
+ return [
14
+ {
15
+ type: 'SWAP', // operations on same chain will be swaps
16
+ startedAt: sending.timestamp ?? Date.now(),
17
+ message: '',
18
+ status: processStatus,
19
+ txHash: sending.txHash,
20
+ txLink: sending.txLink,
21
+ doneAt: receiving.timestamp ?? Date.now(),
22
+ substatus,
23
+ substatusMessage: '',
24
+ },
25
+ ];
26
+ }
27
+ const process = [
28
+ {
29
+ type: 'CROSS_CHAIN', // first step of bridging, ignoring the approvals
30
+ startedAt: sending.timestamp ?? Date.now(),
31
+ message: '',
32
+ status: processStatus, // can be FAILED
33
+ txHash: sending.txHash,
34
+ txLink: sending.txLink,
35
+ doneAt: sending.timestamp,
36
+ },
37
+ {
38
+ type: 'RECEIVING_CHAIN', // final step of bridging, post swaps
39
+ startedAt: receiving.timestamp ?? Date.now(),
40
+ message: '',
41
+ status: processStatus,
42
+ substatus,
43
+ substatusMessage: '',
44
+ doneAt: receiving.timestamp ?? Date.now(),
45
+ txHash: receiving.txHash,
46
+ txLink: receiving.txLink,
47
+ },
48
+ ];
49
+ return process;
50
+ };
51
+ const buildRouteFromTxHistory = (tx, tools) => {
52
+ const sending = tx.sending;
53
+ const receiving = tx.receiving;
54
+ if (!sending.token?.chainId || !receiving.token?.chainId) {
55
+ return;
56
+ }
57
+ const selectedBridge = tools?.bridges.find((bridge) => bridge.key === tx.tool);
58
+ const selectedExchange = tools?.exchanges.find((exchange) => exchange.key === tx.tool);
59
+ const usedTool = {
60
+ key: tx.tool,
61
+ name: selectedBridge?.name ?? selectedExchange?.name ?? tx.tool,
62
+ logoURI: selectedBridge?.logoURI ?? selectedExchange?.logoURI ?? '',
63
+ };
64
+ const fromToken = {
65
+ ...sending.token,
66
+ amount: BigInt(sending.amount ?? 0),
67
+ priceUSD: sending.amountUSD ?? '0',
68
+ symbol: sending.token?.symbol ?? '',
69
+ decimals: sending.token?.decimals ?? 0,
70
+ name: sending.token?.name ?? '',
71
+ chainId: sending.token?.chainId,
72
+ };
73
+ const toToken = {
74
+ ...receiving.token,
75
+ amount: BigInt(receiving.amount ?? 0),
76
+ priceUSD: receiving.amountUSD ?? '0',
77
+ symbol: receiving.token?.symbol ?? '',
78
+ decimals: receiving.token?.decimals ?? 0,
79
+ name: receiving.token?.name ?? '',
80
+ chainId: receiving.token?.chainId,
81
+ };
82
+ const routeExecution = {
83
+ status: 1,
84
+ route: {
85
+ id: tx.transactionId,
86
+ fromAddress: tx.fromAddress,
87
+ toAddress: tx.toAddress,
88
+ fromChainId: sending.chainId,
89
+ fromAmount: sending.amount ?? '',
90
+ fromAmountUSD: sending.amountUSD ?? '',
91
+ toAmount: receiving.amount ?? '',
92
+ toAmountMin: receiving.amount ?? '',
93
+ toAmountUSD: receiving.amountUSD ?? '',
94
+ toChainId: receiving.chainId,
95
+ fromToken,
96
+ toToken,
97
+ steps: [
98
+ {
99
+ id: '',
100
+ type: 'lifi',
101
+ tool: tx.tool,
102
+ toolDetails: usedTool,
103
+ action: {
104
+ fromToken: sending.token,
105
+ fromAmount: sending.amount ?? '',
106
+ fromChainId: sending.chainId,
107
+ fromAddress: tx.fromAddress,
108
+ toToken: receiving.token,
109
+ toChainId: receiving.chainId,
110
+ toAddress: tx.toAddress,
111
+ slippage: 0,
112
+ },
113
+ estimate: {
114
+ tool: tx.tool,
115
+ approvalAddress: '',
116
+ fromAmount: sending.amount ?? '',
117
+ fromAmountUSD: sending.amountUSD ?? '',
118
+ toAmountMin: receiving.amount ?? '',
119
+ toAmount: receiving.amount ?? '',
120
+ toAmountUSD: receiving.amountUSD ?? '',
121
+ executionDuration: 30,
122
+ },
123
+ includedSteps: [
124
+ {
125
+ id: '',
126
+ type: sending.chainId === receiving.chainId ? 'swap' : 'cross',
127
+ action: {
128
+ fromChainId: sending.chainId,
129
+ fromAmount: sending.amount ?? '',
130
+ fromToken: sending.token,
131
+ toChainId: receiving.chainId,
132
+ toToken: receiving.token,
133
+ slippage: 0,
134
+ fromAddress: tx.fromAddress,
135
+ toAddress: tx.toAddress,
136
+ },
137
+ estimate: {
138
+ tool: tx.tool,
139
+ fromAmount: sending.amount ?? '',
140
+ toAmount: receiving.amount ?? '',
141
+ toAmountMin: receiving.amount ?? '',
142
+ approvalAddress: '',
143
+ executionDuration: 30,
144
+ },
145
+ tool: tx.tool,
146
+ toolDetails: usedTool,
147
+ },
148
+ ],
149
+ integrator: '',
150
+ execution: {
151
+ status: 'DONE', // can be FAILED
152
+ process: buildProcessFromTxHistory(tx),
153
+ fromAmount: sending.amount,
154
+ toAmount: receiving.amount,
155
+ toToken: receiving.token,
156
+ gasAmount: sending.gasAmount,
157
+ gasAmountUSD: sending.gasAmountUSD,
158
+ gasPrice: sending.gasPrice,
159
+ gasToken: sending.gasToken,
160
+ gasUsed: sending.gasUsed,
161
+ },
162
+ },
163
+ ],
164
+ insurance: {
165
+ state: 'NOT_INSURABLE',
166
+ feeAmountUsd: '0',
167
+ },
168
+ },
169
+ };
170
+ return routeExecution;
171
+ };
172
+ exports.buildRouteFromTxHistory = buildRouteFromTxHistory;
@@ -3,7 +3,7 @@
3
3
  * @param amount amount to format.
4
4
  * @returns formatted amount.
5
5
  */
6
- export declare const formatTokenAmount: (amount?: string, decimals?: number, decimalPlaces?: number) => string;
6
+ export declare const formatTokenAmount: (amount: bigint | undefined, decimals: number, decimalPlaces?: number) => string;
7
7
  export declare const formatSlippage: (slippage?: string, defaultValue?: string, returnInitial?: boolean) => string;
8
8
  export declare const formatInputAmount: (amount: string, decimals?: number | null, returnInitial?: boolean) => string;
9
9
  export declare const formatTokenPrice: (amount?: string, price?: string) => number;
@@ -1,23 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatTokenPrice = exports.formatInputAmount = exports.formatSlippage = exports.formatTokenAmount = void 0;
4
- const big_js_1 = require("big.js");
5
- // JavaScript numbers use exponential notation for positive exponents of 21 and above. We need more.
6
- big_js_1.default.PE = 42;
7
- // JavaScript numbers use exponential notation for negative exponents of -7 and below. We need more.
8
- big_js_1.default.NE = -42;
4
+ const viem_1 = require("viem");
9
5
  /**
10
6
  * Format token amount to at least 4 decimals.
11
7
  * @param amount amount to format.
12
8
  * @returns formatted amount.
13
9
  */
14
- const formatTokenAmount = (amount = '0', decimals = 0, decimalPlaces = 3) => {
15
- let shiftedAmount = amount;
16
- if (decimals) {
17
- shiftedAmount = (Number(amount) / 10 ** decimals).toString();
18
- }
19
- const parsedAmount = parseFloat(shiftedAmount);
20
- if (parsedAmount === 0 || isNaN(Number(shiftedAmount))) {
10
+ const formatTokenAmount = (amount = 0n, decimals, decimalPlaces = 3) => {
11
+ const formattedAmount = amount ? (0, viem_1.formatUnits)(amount, decimals) : '0';
12
+ const parsedAmount = parseFloat(formattedAmount);
13
+ if (parsedAmount === 0 || isNaN(Number(formattedAmount))) {
21
14
  return '0';
22
15
  }
23
16
  const absAmount = Math.abs(parsedAmount);
@@ -5,4 +5,5 @@ export * from './enum';
5
5
  export * from './format';
6
6
  export * from './input';
7
7
  export * from './navigationRoutes';
8
+ export * from './svm';
8
9
  export * from './wallet';
@@ -21,4 +21,5 @@ __exportStar(require("./enum"), exports);
21
21
  __exportStar(require("./format"), exports);
22
22
  __exportStar(require("./input"), exports);
23
23
  __exportStar(require("./navigationRoutes"), exports);
24
+ __exportStar(require("./svm"), exports);
24
25
  __exportStar(require("./wallet"), exports);
@@ -5,6 +5,7 @@ export declare const navigationRoutes: {
5
5
  exchanges: string;
6
6
  fromChain: string;
7
7
  fromToken: string;
8
+ languages: string;
8
9
  routes: string;
9
10
  selectWallet: string;
10
11
  settings: string;
@@ -8,8 +8,9 @@ exports.navigationRoutes = {
8
8
  exchanges: 'exchanges',
9
9
  fromChain: 'from-chain',
10
10
  fromToken: 'from-token',
11
+ languages: 'languages',
11
12
  routes: 'routes',
12
- selectWallet: 'wallet',
13
+ selectWallet: 'select-wallet',
13
14
  settings: 'settings',
14
15
  toChain: 'to-chain',
15
16
  toToken: 'to-token',
@@ -38,6 +39,7 @@ exports.backButtonRoutes = [
38
39
  exports.navigationRoutes.activeTransactions,
39
40
  exports.navigationRoutes.bridges,
40
41
  exports.navigationRoutes.exchanges,
42
+ exports.navigationRoutes.languages,
41
43
  exports.navigationRoutes.fromChain,
42
44
  exports.navigationRoutes.fromToken,
43
45
  exports.navigationRoutes.routes,
@@ -0,0 +1 @@
1
+ export declare const isSVMAddress: (address: string) => boolean;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isSVMAddress = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
5
+ const isSVMAddress = (address) => {
6
+ try {
7
+ new web3_js_1.PublicKey(address);
8
+ return true;
9
+ }
10
+ catch {
11
+ return false;
12
+ }
13
+ };
14
+ exports.isSVMAddress = isSVMAddress;
@@ -16,11 +16,7 @@ export const ActiveTransactionItem = ({ routeId, dense }) => {
16
16
  routeId,
17
17
  executeInBackground: true,
18
18
  });
19
- // TODO: replace with ES2023 findLast
20
- const lastActiveStep = route?.steps
21
- .slice()
22
- .reverse()
23
- .find((step) => step.execution);
19
+ const lastActiveStep = route?.steps.findLast((step) => step.execution);
24
20
  const lastActiveProcess = lastActiveStep?.execution?.process.at(-1);
25
21
  const { title } = useProcessMessage(lastActiveStep, lastActiveProcess);
26
22
  if (!route || !lastActiveStep) {
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Stack } from '@mui/material';
3
3
  import { useTranslation } from 'react-i18next';
4
4
  import { useNavigate } from 'react-router-dom';
5
- import { useWallet } from '../../providers';
5
+ import { useAccount } from '../../hooks';
6
6
  import { useExecutingRoutesIds } from '../../stores';
7
7
  import { navigationRoutes } from '../../utils';
8
8
  import { Card, CardTitle } from '../Card';
@@ -11,7 +11,7 @@ import { ShowAllButton } from './ActiveTransactions.style';
11
11
  export const ActiveTransactions = (props) => {
12
12
  const { t } = useTranslation();
13
13
  const navigate = useNavigate();
14
- const { account } = useWallet();
14
+ const { account } = useAccount();
15
15
  const executingRoutes = useExecutingRoutesIds(account.address);
16
16
  if (!executingRoutes?.length) {
17
17
  return null;
@@ -1,22 +1,23 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { InputAdornment, Skeleton } from '@mui/material';
3
- import Big from 'big.js';
4
3
  import { useFormContext, useWatch } from 'react-hook-form';
5
4
  import { useTranslation } from 'react-i18next';
6
- import { useChains, useGasRecommendation, useTokenAddressBalance, } from '../../hooks';
5
+ import { formatUnits } from 'viem';
6
+ import { useAvailableChains, useGasRecommendation, useTokenAddressBalance, } from '../../hooks';
7
7
  import { FormKeyHelper } from '../../providers';
8
- import { formatTokenAmount } from '../../utils';
9
8
  import { Button } from './AmountInputAdornment.style';
10
9
  export const AmountInputEndAdornment = ({ formType }) => {
11
10
  const { t } = useTranslation();
12
11
  const { setValue } = useFormContext();
13
- const { getChainById } = useChains();
12
+ const { getChainById } = useAvailableChains();
14
13
  const [chainId, tokenAddress] = useWatch({
15
14
  name: [
16
15
  FormKeyHelper.getChainKey(formType),
17
16
  FormKeyHelper.getTokenKey(formType),
18
17
  ],
19
18
  });
19
+ // We get gas recommendations for the source chain to make sure that after pressing the Max button
20
+ // the user will have enough funds remaining to cover gas costs
20
21
  const { data } = useGasRecommendation(chainId);
21
22
  const { token, isLoading } = useTokenAddressBalance(chainId, tokenAddress);
22
23
  const handleMax = () => {
@@ -25,15 +26,13 @@ export const AmountInputEndAdornment = ({ formType }) => {
25
26
  if (chain?.nativeToken.address === tokenAddress &&
26
27
  data?.available &&
27
28
  data?.recommended) {
28
- const tokenAmount = Big(token?.amount ?? 0);
29
- const recommendedAmount = Big(data.recommended.amount)
30
- .div(10 ** data.recommended.token.decimals)
31
- .div(2);
32
- if (tokenAmount.gt(recommendedAmount)) {
33
- maxAmount = formatTokenAmount(tokenAmount.minus(recommendedAmount).toString());
29
+ const tokenAmount = token?.amount ?? 0n;
30
+ const recommendedAmount = BigInt(data.recommended.amount) / 2n;
31
+ if (tokenAmount > recommendedAmount) {
32
+ maxAmount = tokenAmount - recommendedAmount;
34
33
  }
35
34
  }
36
- setValue(FormKeyHelper.getAmountKey(formType), maxAmount || '', {
35
+ setValue(FormKeyHelper.getAmountKey(formType), maxAmount && token ? formatUnits(maxAmount, token.decimals) : '', {
37
36
  shouldTouch: true,
38
37
  });
39
38
  };
@@ -27,6 +27,6 @@ export const FormPriceHelperTextBase = ({ formType, isLoading, tokenAddress, tok
27
27
  }, children: t(`format.currency`, {
28
28
  value: fromAmountTokenPrice,
29
29
  }) }), isLoading && tokenAddress ? (_jsx(Skeleton, { variant: "text", width: 48, height: 16, sx: { borderRadius: 0.25 } })) : token?.amount ? (_jsx(Typography, { fontWeight: 400, fontSize: 12, color: "text.secondary", lineHeight: 1.3334, pl: 0.25, children: `/ ${t(`format.number`, {
30
- value: formatTokenAmount(token?.amount),
30
+ value: formatTokenAmount(token.amount, token.decimals),
31
31
  })}` })) : null] }));
32
32
  };
@@ -2,26 +2,27 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { LoadingButton } from '@mui/lab';
3
3
  import { useTranslation } from 'react-i18next';
4
4
  import { useNavigate } from 'react-router-dom';
5
- import { useWallet, useWidgetConfig } from '../../providers';
5
+ import { useAccount } from '../../hooks';
6
+ import { useWidgetConfig } from '../../providers';
6
7
  import { navigationRoutes } from '../../utils';
7
8
  export const BaseTransactionButton = ({ onClick, text, disabled, loading, }) => {
8
9
  const { t } = useTranslation();
9
10
  const navigate = useNavigate();
10
11
  const { walletManagement } = useWidgetConfig();
11
- const { account, connect } = useWallet();
12
+ const { account } = useAccount();
12
13
  const handleClick = async () => {
13
- if (account.isActive) {
14
+ if (account.isConnected) {
14
15
  onClick?.();
15
16
  }
16
17
  else if (walletManagement) {
17
- await connect();
18
+ await walletManagement.connect();
18
19
  }
19
20
  else {
20
21
  navigate(navigationRoutes.selectWallet);
21
22
  }
22
23
  };
23
24
  const getButtonText = () => {
24
- if (account.isActive) {
25
+ if (account.isConnected) {
25
26
  if (text) {
26
27
  return text;
27
28
  }
@@ -2,7 +2,7 @@
2
2
  export declare const CardLabel: import("@emotion/styled").StyledComponent<import("@mui/system").BoxOwnProps<import("@mui/material").Theme> & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
3
3
  ref?: import("react").RefObject<HTMLDivElement> | ((instance: HTMLDivElement | null) => void) | null | undefined;
4
4
  }, keyof import("@mui/system").BoxOwnProps<import("@mui/material").Theme>> & import("@mui/system").MUIStyledCommonProps<import("@mui/material").Theme> & {
5
- type?: "active" | "insurance" | "insurance-icon" | undefined;
5
+ type?: "insurance" | "active" | "insurance-icon" | undefined;
6
6
  }, {}, {}>;
7
7
  export declare const CardLabelTypography: import("@emotion/styled").StyledComponent<import("@mui/material").TypographyOwnProps & import("@mui/material/OverridableComponent").CommonProps & Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
8
8
  ref?: ((instance: HTMLSpanElement | null) => void) | import("react").RefObject<HTMLSpanElement> | null | undefined;
@@ -1,5 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Avatar, Box, Skeleton, Tooltip, Typography } from '@mui/material';
3
+ import { useEffect } from 'react';
3
4
  import { useWatch } from 'react-hook-form';
4
5
  import { useNavigate } from 'react-router-dom';
5
6
  import { FormKeyHelper } from '../../providers';
@@ -13,11 +14,13 @@ export const ChainSelect = ({ formType }) => {
13
14
  const [chainId] = useWatch({
14
15
  name: [FormKeyHelper.getChainKey(formType)],
15
16
  });
16
- const hasChainInOrderedList = chainOrder.includes(chainId);
17
- // If we don't have a chain in the ordered chain list we should add it.
18
- if (!hasChainInOrderedList) {
19
- setChainOrder(chainId);
20
- }
17
+ useEffect(() => {
18
+ const hasChainInOrderedList = chainOrder.includes(chainId);
19
+ // If we don't have a chain in the ordered chain list we should add it.
20
+ if (!hasChainInOrderedList) {
21
+ setChainOrder(chainId);
22
+ }
23
+ }, [chainId, chainOrder, setChainOrder]);
21
24
  const showAllChains = () => {
22
25
  navigate(navigationRoutes[`${formType}Chain`]);
23
26
  };
@@ -1,12 +1,14 @@
1
1
  import { useController, useFormContext } from 'react-hook-form';
2
2
  import { useChains, useSwapOnly } from '../../hooks';
3
- import { FormKey, FormKeyHelper } from '../../providers';
3
+ import { FormKey, FormKeyHelper, useWidgetConfig } from '../../providers';
4
4
  import { useChainOrder } from '../../stores';
5
+ import { RequiredUI } from '../../types';
5
6
  export const useChainSelect = (formType) => {
7
+ const { requiredUI } = useWidgetConfig();
6
8
  const chainKey = FormKeyHelper.getChainKey(formType);
7
9
  const { field: { onChange, onBlur }, } = useController({ name: chainKey });
8
- const { setValue } = useFormContext();
9
- const { chains, isLoading } = useChains();
10
+ const { setValue, getValues } = useFormContext();
11
+ const { chains, isLoading, getChainById } = useChains();
10
12
  const [chainOrder, setChainOrder] = useChainOrder();
11
13
  const swapOnly = useSwapOnly();
12
14
  const getChains = () => {
@@ -29,6 +31,23 @@ export const useChainSelect = (formType) => {
29
31
  setValue(FormKeyHelper.getTokenKey(formType), '');
30
32
  setValue(FormKeyHelper.getAmountKey(formType), '');
31
33
  setValue(FormKey.TokenSearchFilter, '');
34
+ const [fromChainId, toChainId] = getValues([
35
+ FormKey.FromChain,
36
+ FormKey.ToChain,
37
+ ]);
38
+ const fromChain = getChainById(fromChainId);
39
+ const toChain = getChainById(toChainId);
40
+ const differentChainType = fromChain && toChain && fromChain.chainType !== toChain.chainType;
41
+ const requiredToAddress = requiredUI?.includes(RequiredUI.ToAddress) || differentChainType;
42
+ // toAddress field is required (always visible) when bridging between
43
+ // two ecosystems (fromChain and toChain have different chain types).
44
+ // We clean up toAddress on every chain change if toAddress is not required.
45
+ // This is used when we switch between different chain ecosystems (chain types) and
46
+ // prevents cases when after we switch the chain from one type to another "Send to wallet" field hides,
47
+ // but it keeps toAddress value set for the previous chain pair.
48
+ if (!requiredToAddress) {
49
+ setValue(FormKey.ToAddress, '');
50
+ }
32
51
  setChainOrder(chainId);
33
52
  };
34
53
  return {
@@ -2,15 +2,14 @@ import { Box } from '@mui/material';
2
2
  import { switchClasses } from '@mui/material/Switch';
3
3
  import { alpha, darken, lighten, styled } from '@mui/material/styles';
4
4
  import { Switch } from '../Switch';
5
+ import { getInfoBackgroundColor, getWarningBackgroundColor } from '../../utils';
5
6
  const MessageCard = styled(Box)(({ theme }) => ({
6
7
  borderRadius: theme.shape.borderRadius,
7
8
  position: 'relative',
8
9
  whiteSpace: 'pre-line',
9
10
  }));
10
11
  export const WarningMessageCard = styled(MessageCard)(({ theme }) => ({
11
- backgroundColor: theme.palette.mode === 'light'
12
- ? alpha(theme.palette.warning.main, 0.32)
13
- : alpha(theme.palette.warning.main, 0.16),
12
+ backgroundColor: getWarningBackgroundColor(theme),
14
13
  }));
15
14
  export const WarningMessageCardTitle = styled(Box)(({ theme }) => ({
16
15
  color: theme.palette.mode === 'light'
@@ -18,9 +17,7 @@ export const WarningMessageCardTitle = styled(Box)(({ theme }) => ({
18
17
  : alpha(theme.palette.warning.main, 1),
19
18
  }));
20
19
  export const InfoMessageCard = styled(MessageCard)(({ theme }) => ({
21
- backgroundColor: theme.palette.mode === 'light'
22
- ? alpha(theme.palette.info.main, 0.12)
23
- : alpha(theme.palette.info.main, 0.16),
20
+ backgroundColor: getInfoBackgroundColor(theme),
24
21
  }));
25
22
  export const InfoMessageCardTitle = styled(Box)(({ theme }) => ({
26
23
  color: theme.palette.mode === 'light'