@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,183 +1,7 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { LiFiWalletManagement, readActiveWallets, supportedWallets, addChain as walletAgnosticAddChain, switchChainAndAddToken as walletAgnosticAddToken, switchChain as walletAgnosticSwitchChain, } from '@lifi/wallet-management';
3
- import { createContext, useCallback, useContext, useEffect, useMemo, useState, } from 'react';
4
- import { useWidgetEvents } from '../../hooks';
5
- import { WidgetEvent } from '../../types';
6
- import { useWidgetConfig } from '../WidgetProvider';
7
- const liFiWalletManagement = new LiFiWalletManagement();
8
- const stub = () => {
9
- throw new Error(`You forgot to wrap your component in <${WalletProvider.name}>.`);
10
- };
11
- const initialContext = {
12
- connect: stub,
13
- disconnect: stub,
14
- switchChain: stub,
15
- addChain: stub,
16
- addToken: stub,
17
- account: {},
18
- };
19
- const WalletContext = createContext(initialContext);
20
- export const useWallet = () => useContext(WalletContext);
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { EVMProvider } from './EVMProvider';
3
+ import { SDKProviders } from './SDKProviders';
4
+ import { SolanaProvider } from './SolanaProvider';
21
5
  export const WalletProvider = ({ children }) => {
22
- const emitter = useWidgetEvents();
23
- const { walletManagement } = useWidgetConfig();
24
- const [account, setAccount] = useState({});
25
- const [currentWallet, setCurrentWallet] = useState();
26
- const handleWalletUpdate = async (wallet) => {
27
- setCurrentWallet(wallet);
28
- const account = await extractAccountFromSigner(wallet?.account?.signer);
29
- setAccount(account);
30
- return account;
31
- };
32
- const connect = useCallback(async (wallet) => {
33
- if (walletManagement) {
34
- const signer = await walletManagement.connect();
35
- const account = await extractAccountFromSigner(signer);
36
- setAccount(account);
37
- emitter.emit(WidgetEvent.WalletConnected, {
38
- address: account.address,
39
- chainId: account.chainId,
40
- });
41
- return;
42
- }
43
- await liFiWalletManagement.connect(wallet);
44
- wallet.on('walletAccountChanged', handleWalletUpdate);
45
- const account = await handleWalletUpdate(wallet);
46
- emitter.emit(WidgetEvent.WalletConnected, {
47
- address: account.address,
48
- chainId: account.chainId,
49
- });
50
- }, [emitter, walletManagement]);
51
- const disconnect = useCallback(async () => {
52
- if (walletManagement) {
53
- await walletManagement.disconnect();
54
- setAccount({});
55
- return;
56
- }
57
- if (currentWallet) {
58
- await liFiWalletManagement.disconnect(currentWallet);
59
- currentWallet.removeAllListeners();
60
- await handleWalletUpdate(undefined);
61
- }
62
- }, [currentWallet, walletManagement]);
63
- const switchChain = useCallback(async (chainId) => {
64
- try {
65
- if (walletManagement?.switchChain) {
66
- const signer = await walletManagement.switchChain(chainId);
67
- const account = await extractAccountFromSigner(signer);
68
- setAccount(account);
69
- return signer;
70
- }
71
- else if (!currentWallet) {
72
- const provider = account.signer?.provider;
73
- if (!provider) {
74
- throw new Error(`Switch chain: No provider available`);
75
- }
76
- await walletAgnosticSwitchChain(provider, chainId);
77
- }
78
- else {
79
- await currentWallet?.switchChain(chainId);
80
- await handleWalletUpdate(currentWallet);
81
- }
82
- // TODO: this will fail if it's not created with ethers 'any' network, replace with the new signer when possible
83
- return account.signer;
84
- }
85
- catch {
86
- return account.signer;
87
- }
88
- }, [account.signer, currentWallet, walletManagement]);
89
- const addChain = useCallback(async (chainId) => {
90
- try {
91
- if (walletManagement?.addChain) {
92
- return walletManagement.addChain(chainId);
93
- }
94
- else if (!currentWallet) {
95
- const provider = account.signer?.provider;
96
- if (!provider) {
97
- throw new Error(`Add chain: No provider available`);
98
- }
99
- await walletAgnosticAddChain(provider, chainId);
100
- }
101
- else {
102
- await currentWallet?.addChain(chainId);
103
- await handleWalletUpdate(currentWallet);
104
- }
105
- return true;
106
- }
107
- catch {
108
- return false;
109
- }
110
- }, [account.signer?.provider, currentWallet, walletManagement]);
111
- const addToken = useCallback(async (chainId, token) => {
112
- try {
113
- if (walletManagement?.addToken) {
114
- return walletManagement.addToken(token, chainId);
115
- }
116
- else if (!currentWallet) {
117
- const provider = account.signer?.provider;
118
- if (!provider) {
119
- throw new Error(`Add token: No provider available`);
120
- }
121
- await walletAgnosticAddToken(provider, chainId, token);
122
- }
123
- else {
124
- await currentWallet?.addToken(chainId, token);
125
- await handleWalletUpdate(currentWallet);
126
- }
127
- }
128
- catch { }
129
- }, [account.signer?.provider, currentWallet, walletManagement]);
130
- useEffect(() => {
131
- const autoConnect = async () => {
132
- const persistedActiveWallets = readActiveWallets();
133
- const activeWallets = supportedWallets.filter((wallet) => persistedActiveWallets.some((perstistedWallet) => perstistedWallet.name === wallet.name));
134
- if (!activeWallets.length) {
135
- return;
136
- }
137
- await liFiWalletManagement.autoConnect(activeWallets);
138
- activeWallets[0].on('walletAccountChanged', handleWalletUpdate);
139
- await handleWalletUpdate(activeWallets[0]);
140
- };
141
- autoConnect();
142
- }, []);
143
- // keep widget in sync with changing external signer object
144
- useEffect(() => {
145
- if (walletManagement) {
146
- let ignore = false;
147
- const updateAccount = async () => {
148
- const account = await extractAccountFromSigner(walletManagement?.signer);
149
- // we should ignore the update if there is a newer one
150
- if (!ignore) {
151
- setAccount(account);
152
- }
153
- };
154
- updateAccount();
155
- return () => {
156
- ignore = true;
157
- };
158
- }
159
- }, [walletManagement]);
160
- const value = useMemo(() => ({
161
- connect,
162
- disconnect,
163
- switchChain,
164
- addChain,
165
- addToken,
166
- account,
167
- }), [account, addChain, addToken, connect, disconnect, switchChain]);
168
- return (_jsx(WalletContext.Provider, { value: value, children: children }));
169
- };
170
- export const extractAccountFromSigner = async (signer) => {
171
- try {
172
- return {
173
- address: await signer?.getAddress(),
174
- isActive: (signer && !!(await signer.getAddress()) === null) || !!signer,
175
- signer,
176
- chainId: await signer?.getChainId(),
177
- };
178
- }
179
- catch (error) {
180
- console.error(error);
181
- return {};
182
- }
6
+ return (_jsx(SolanaProvider, { children: _jsxs(EVMProvider, { children: [_jsx(SDKProviders, {}), children] }) }));
183
7
  };
@@ -1,2 +1,2 @@
1
1
  export * from './WalletProvider';
2
- export * from './types';
2
+ export * from './utils';
@@ -1,2 +1,2 @@
1
1
  export * from './WalletProvider';
2
- export * from './types';
2
+ export * from './utils';
@@ -0,0 +1,3 @@
1
+ import type { ExtendedChain } from '@lifi/sdk';
2
+ import type { Chain } from 'viem';
3
+ export declare const formatChain: (chain: ExtendedChain) => Chain;
@@ -0,0 +1,21 @@
1
+ export const formatChain = (chain) => ({
2
+ ...chain,
3
+ ...chain.metamask,
4
+ blockExplorers: chain.metamask.blockExplorerUrls.reduce((blockExplorers, blockExplorer, index) => {
5
+ blockExplorers[index === 0 ? 'default' : `${index}`] = {
6
+ name: blockExplorer,
7
+ url: blockExplorer,
8
+ };
9
+ return blockExplorers;
10
+ }, {}),
11
+ name: chain.metamask.chainName,
12
+ rpcUrls: {
13
+ default: { http: chain.metamask.rpcUrls },
14
+ public: { http: chain.metamask.rpcUrls },
15
+ },
16
+ contracts: {
17
+ ...(chain.multicallAddress
18
+ ? { multicall3: { address: chain.multicallAddress } }
19
+ : undefined),
20
+ },
21
+ });
@@ -1,6 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { getChainByKey } from '@lifi/sdk';
2
+ import { config, createConfig } from '@lifi/sdk';
3
3
  import { createContext, useContext, useId, useMemo } from 'react';
4
+ import { version } from '../../config/version';
4
5
  import { setDefaultSettings } from '../../stores';
5
6
  import { formatInputAmount } from '../../utils';
6
7
  const initialContext = {
@@ -9,13 +10,15 @@ const initialContext = {
9
10
  };
10
11
  const WidgetContext = createContext(initialContext);
11
12
  export const useWidgetConfig = () => useContext(WidgetContext);
12
- export const WidgetProvider = ({ children, config: { fromChain, fromToken, toChain, toToken, fromAmount, toAddress, integrator, ...config } = {}, }) => {
13
+ let sdkInitialized = false;
14
+ export const WidgetProvider = ({ children, config: widgetConfig }) => {
13
15
  const elementId = useId();
14
- if (!integrator) {
16
+ if (!widgetConfig?.integrator) {
15
17
  throw Error('Required property "integrator" is missing.');
16
18
  }
17
19
  const value = useMemo(() => {
18
20
  try {
21
+ // Get search params from URL
19
22
  const searchParams = Object.fromEntries(new URLSearchParams(window?.location.search));
20
23
  // Prevent using fromToken/toToken params if chain is not selected
21
24
  ['from', 'to'].forEach((key) => {
@@ -23,51 +26,64 @@ export const WidgetProvider = ({ children, config: { fromChain, fromToken, toCha
23
26
  delete searchParams[`${key}Token`];
24
27
  }
25
28
  });
29
+ // Create widget configuration object
26
30
  const value = {
27
- ...config,
31
+ ...widgetConfig,
28
32
  fromChain: (searchParams.fromChain &&
29
- isNaN(parseInt(searchParams.fromChain, 10))) ||
30
- typeof fromChain === 'string'
31
- ? getChainByKey((searchParams.fromChain || fromChain)?.toLowerCase())?.id
32
- : (searchParams.fromChain &&
33
- !isNaN(parseInt(searchParams.fromChain, 10))) ||
34
- typeof fromChain === 'number'
35
- ? parseInt(searchParams.fromChain, 10) || fromChain
36
- : undefined,
37
- toChain: (searchParams.toChain && isNaN(parseInt(searchParams.toChain, 10))) ||
38
- typeof toChain === 'string'
39
- ? getChainByKey((searchParams.toChain || toChain)?.toLowerCase())?.id
40
- : (searchParams.toChain &&
41
- !isNaN(parseInt(searchParams.toChain, 10))) ||
42
- typeof toChain === 'number'
43
- ? parseInt(searchParams.toChain, 10) || toChain
44
- : undefined,
45
- fromToken: searchParams.fromToken?.toLowerCase() || fromToken?.toLowerCase(),
46
- toToken: searchParams.toToken?.toLowerCase() || toToken?.toLowerCase(),
33
+ !isNaN(parseInt(searchParams.fromChain, 10))) ||
34
+ typeof widgetConfig.fromChain === 'number'
35
+ ? parseInt(searchParams.fromChain, 10) || widgetConfig.fromChain
36
+ : undefined,
37
+ toChain: (searchParams.toChain &&
38
+ !isNaN(parseInt(searchParams.toChain, 10))) ||
39
+ typeof widgetConfig.toChain === 'number'
40
+ ? parseInt(searchParams.toChain, 10) || widgetConfig.toChain
41
+ : undefined,
42
+ fromToken: searchParams.fromToken || widgetConfig.fromToken,
43
+ toToken: searchParams.toToken || widgetConfig.toToken,
47
44
  fromAmount: typeof searchParams.fromAmount === 'string' &&
48
45
  !isNaN(parseFloat(searchParams.fromAmount))
49
46
  ? formatInputAmount(searchParams.fromAmount)
50
- : fromAmount,
51
- toAddress: searchParams.toAddress || toAddress,
47
+ : widgetConfig.fromAmount,
48
+ toAddress: searchParams.toAddress || widgetConfig.toAddress,
49
+ integrator: widgetConfig.integrator,
52
50
  elementId,
53
- integrator,
54
51
  };
52
+ // Set default settings for widget settings store
55
53
  setDefaultSettings(value);
54
+ // Configure SDK
55
+ const _config = {
56
+ ...widgetConfig.sdkConfig,
57
+ apiKey: widgetConfig.apiKey,
58
+ integrator: widgetConfig.integrator ?? window?.location.hostname,
59
+ routeOptions: {
60
+ fee: widgetConfig.fee,
61
+ referrer: widgetConfig.referrer,
62
+ order: widgetConfig.routePriority,
63
+ slippage: widgetConfig.slippage,
64
+ ...widgetConfig.sdkConfig?.routeOptions,
65
+ },
66
+ disableVersionCheck: true,
67
+ widgetVersion: version,
68
+ preloadChains: false,
69
+ };
70
+ if (!sdkInitialized) {
71
+ createConfig(_config);
72
+ sdkInitialized = true;
73
+ }
74
+ else {
75
+ config.set(_config);
76
+ }
56
77
  return value;
57
78
  }
58
79
  catch (e) {
59
80
  console.warn(e);
60
- return { ...config, elementId, integrator };
81
+ return {
82
+ ...widgetConfig,
83
+ elementId,
84
+ integrator: widgetConfig.integrator,
85
+ };
61
86
  }
62
- }, [
63
- config,
64
- elementId,
65
- fromAmount,
66
- fromChain,
67
- fromToken,
68
- integrator,
69
- toChain,
70
- toToken,
71
- ]);
87
+ }, [elementId, widgetConfig]);
72
88
  return (_jsx(WidgetContext.Provider, { value: value, children: children }));
73
89
  };
@@ -1,6 +1,5 @@
1
1
  export * from './FormProvider';
2
2
  export * from './I18nProvider';
3
- export * from './SDKProvider';
4
3
  export * from './ThemeProvider';
5
4
  export * from './WalletProvider';
6
5
  export * from './WidgetProvider';
@@ -1,6 +1,5 @@
1
1
  export * from './FormProvider';
2
2
  export * from './I18nProvider';
3
- export * from './SDKProvider';
4
3
  export * from './ThemeProvider';
5
4
  export * from './WalletProvider';
6
5
  export * from './WidgetProvider';
@@ -1,12 +1,36 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { createContext, useContext, useRef } from 'react';
2
+ import { createContext, useContext, useEffect, useRef } from 'react';
3
+ import { useFormContext } from 'react-hook-form';
4
+ import { useChains } from '../../hooks';
5
+ import { FormKey } from '../../providers';
3
6
  import { createChainOrderStore } from './createChainOrderStore';
4
7
  export const ChainOrderStoreContext = createContext(null);
5
8
  export function ChainOrderStoreProvider({ children, ...props }) {
6
9
  const storeRef = useRef();
10
+ const { chains: filteredChains } = useChains();
11
+ const { setValue, getValues } = useFormContext();
7
12
  if (!storeRef.current) {
8
13
  storeRef.current = createChainOrderStore(props);
9
14
  }
15
+ useEffect(() => {
16
+ if (filteredChains) {
17
+ const chainOrder = storeRef.current
18
+ ?.getState()
19
+ .initializeChains(filteredChains.map((chain) => chain.id));
20
+ if (chainOrder) {
21
+ const [fromChainValue, toChainValue] = getValues([
22
+ FormKey.FromChain,
23
+ FormKey.ToChain,
24
+ ]);
25
+ if (!fromChainValue) {
26
+ setValue(FormKey.FromChain, chainOrder[0]);
27
+ }
28
+ if (!toChainValue) {
29
+ setValue(FormKey.ToChain, chainOrder[0]);
30
+ }
31
+ }
32
+ }
33
+ }, [filteredChains, getValues, setValue]);
10
34
  return (_jsx(ChainOrderStoreContext.Provider, { value: storeRef.current, children: children }));
11
35
  }
12
36
  export function useChainOrderStore(selector, equalityFn) {
@@ -3,6 +3,6 @@ import type { PersistStoreProps, PersistStoreProviderProps } from '../types';
3
3
  import type { HeaderState, HeaderStore } from './types';
4
4
  export declare const HeaderStoreContext: import("react").Context<HeaderStore | null>;
5
5
  export declare function HeaderStoreProvider({ children, ...props }: PersistStoreProviderProps): import("react/jsx-runtime").JSX.Element;
6
- export declare function useHeaderStore<T>(selector: (state: HeaderState) => T, equalityFn?: (left: T, right: T) => boolean): T;
6
+ export declare function useHeaderStore<T>(selector: (state: HeaderState) => T): T;
7
7
  export declare function useHeaderStoreContext(): HeaderStore;
8
8
  export declare const createHeaderStore: ({ namePrefix }: PersistStoreProps) => import("zustand/traditional").UseBoundStoreWithEqualityFn<import("zustand").StoreApi<HeaderState>>;
@@ -9,12 +9,12 @@ export function HeaderStoreProvider({ children, ...props }) {
9
9
  }
10
10
  return (_jsx(HeaderStoreContext.Provider, { value: storeRef.current, children: children }));
11
11
  }
12
- export function useHeaderStore(selector, equalityFn) {
12
+ export function useHeaderStore(selector) {
13
13
  const useStore = useContext(HeaderStoreContext);
14
14
  if (!useStore) {
15
15
  throw new Error(`You forgot to wrap your component in <${HeaderStoreProvider.name}>.`);
16
16
  }
17
- return useStore(selector, equalityFn);
17
+ return useStore(selector);
18
18
  }
19
19
  export function useHeaderStoreContext() {
20
20
  const useStore = useContext(HeaderStoreContext);
@@ -9,10 +9,11 @@ export const createRouteExecutionStore = ({ namePrefix }) => createWithEqualityF
9
9
  if (!get().routes[route.id]) {
10
10
  set((state) => {
11
11
  const routes = { ...state.routes };
12
- // clean previous idle routes that were not executed
12
+ // clean previous idle and done routes
13
13
  Object.keys(routes)
14
- .filter((routeId) => routeId !== insurableRouteId &&
15
- routes[routeId]?.status === RouteExecutionStatus.Idle)
14
+ .filter((routeId) => (routeId !== insurableRouteId &&
15
+ hasEnumFlag(routes[routeId].status, RouteExecutionStatus.Idle)) ||
16
+ hasEnumFlag(routes[routeId].status, RouteExecutionStatus.Done))
16
17
  .forEach((routeId) => delete routes[routeId]);
17
18
  routes[route.id] = {
18
19
  route,
@@ -107,7 +108,7 @@ export const createRouteExecutionStore = ({ namePrefix }) => createWithEqualityF
107
108
  ...persistedState,
108
109
  };
109
110
  try {
110
- // Move transactions to history after 1 day
111
+ // Remove failed transactions from history after 1 day
111
112
  const currentTime = new Date().getTime();
112
113
  const oneDay = 1000 * 60 * 60 * 24;
113
114
  Object.values(state.routes).forEach((routeExecution) => {
@@ -117,68 +118,13 @@ export const createRouteExecutionStore = ({ namePrefix }) => createWithEqualityF
117
118
  ?.startedAt ?? 0;
118
119
  const outdated = startedAt > 0 && currentTime - startedAt > oneDay;
119
120
  if (routeExecution?.route && outdated) {
120
- routeExecution.status |= RouteExecutionStatus.Done;
121
+ delete state.routes[routeExecution.route.id];
121
122
  }
122
123
  });
123
- // migrate old routes
124
- const routeString = localStorage.getItem('routes');
125
- if (routeString) {
126
- const routes = JSON.parse(routeString);
127
- routes.forEach((route) => {
128
- if (state.routes[route.id]) {
129
- return;
130
- }
131
- state.routes[route.id] = {
132
- route,
133
- status: RouteExecutionStatus.Idle,
134
- };
135
- const isFailed = isRouteFailed(route);
136
- if (isFailed) {
137
- state.routes[route.id].status = RouteExecutionStatus.Failed;
138
- return;
139
- }
140
- const isDone = isRouteDone(route);
141
- if (isDone) {
142
- state.routes[route.id].status = RouteExecutionStatus.Done;
143
- return;
144
- }
145
- const isLoading = route.steps.some((step) => step.execution);
146
- if (isLoading) {
147
- state.routes[route.id].status = RouteExecutionStatus.Pending;
148
- }
149
- });
150
- localStorage.removeItem('routes');
151
- }
152
124
  }
153
125
  catch (error) {
154
126
  console.error(error);
155
127
  }
156
128
  return state;
157
129
  },
158
- migrate: (persistedState, version) => {
159
- if (version === 0) {
160
- Object.values(persistedState.routes).forEach((route) => {
161
- if (route) {
162
- switch (route.status) {
163
- case 'idle':
164
- route.status = RouteExecutionStatus.Idle;
165
- break;
166
- case 'loading':
167
- route.status = RouteExecutionStatus.Pending;
168
- break;
169
- case 'success':
170
- case 'warning':
171
- route.status = RouteExecutionStatus.Done;
172
- break;
173
- case 'error':
174
- route.status = RouteExecutionStatus.Failed;
175
- break;
176
- default:
177
- break;
178
- }
179
- }
180
- });
181
- }
182
- return persistedState;
183
- },
184
130
  }), Object.is);
@@ -2,5 +2,4 @@ export * from './RouteExecutionStore';
2
2
  export * from './types';
3
3
  export * from './useExecutingRoutesIds';
4
4
  export * from './useSetExecutableRoute';
5
- export * from './useTransactionHistory';
6
5
  export * from './utils';
@@ -2,5 +2,4 @@ export * from './RouteExecutionStore';
2
2
  export * from './types';
3
3
  export * from './useExecutingRoutesIds';
4
4
  export * from './useSetExecutableRoute';
5
- export * from './useTransactionHistory';
6
5
  export * from './utils';
@@ -1,6 +1,6 @@
1
- import type { Route } from '@lifi/sdk';
1
+ import type { Route, RouteExtended } from '@lifi/sdk';
2
2
  export interface RouteExecution {
3
- route: Route;
3
+ route: RouteExtended;
4
4
  status: RouteExecutionStatus;
5
5
  }
6
6
  export interface RouteExecutionState {
@@ -1,8 +1,8 @@
1
- import type { Process, Route } from '@lifi/sdk';
2
- export declare const isRouteDone: (route: Route) => boolean;
3
- export declare const isRoutePartiallyDone: (route: Route) => boolean;
4
- export declare const isRouteRefunded: (route: Route) => boolean;
5
- export declare const isRouteFailed: (route: Route) => boolean;
6
- export declare const isRouteActive: (route?: Route) => boolean;
7
- export declare const doesRouteHaveCustomTool: (route: Route) => boolean;
8
- export declare const getUpdatedProcess: (currentRoute: Route, updatedRoute: Route) => Process | undefined;
1
+ import type { Process, RouteExtended } from '@lifi/sdk';
2
+ export declare const isRouteDone: (route: RouteExtended) => boolean;
3
+ export declare const isRoutePartiallyDone: (route: RouteExtended) => boolean;
4
+ export declare const isRouteRefunded: (route: RouteExtended) => boolean;
5
+ export declare const isRouteFailed: (route: RouteExtended) => boolean;
6
+ export declare const isRouteActive: (route?: RouteExtended) => boolean;
7
+ export declare const getUpdatedProcess: (currentRoute: RouteExtended, updatedRoute: RouteExtended) => Process | undefined;
8
+ export declare const getSourceTxHash: (route?: RouteExtended) => string | undefined;
@@ -20,9 +20,6 @@ export const isRouteActive = (route) => {
20
20
  const alreadyStarted = route.steps.some((step) => step.execution);
21
21
  return !isDone && !isFailed && alreadyStarted;
22
22
  };
23
- export const doesRouteHaveCustomTool = (route) => {
24
- return route.steps.some((step) => step.tool === 'custom' || step.toolDetails.key === 'custom');
25
- };
26
23
  export const getUpdatedProcess = (currentRoute, updatedRoute) => {
27
24
  const processDiff = microdiff(currentRoute, updatedRoute).find((diff) => diff.path.includes('process'));
28
25
  if (!processDiff) {
@@ -34,3 +31,8 @@ export const getUpdatedProcess = (currentRoute, updatedRoute) => {
34
31
  .reduce((obj, path) => obj[path], updatedRoute);
35
32
  return process;
36
33
  };
34
+ export const getSourceTxHash = (route) => {
35
+ return route?.steps[0].execution?.process
36
+ .filter((process) => process.type !== 'TOKEN_ALLOWANCE')
37
+ .find((process) => process.txHash)?.txHash;
38
+ };
@@ -101,10 +101,8 @@ export const useSettingsStore = createWithEqualityFn(persist((set, get) => ({
101
101
  }), Object.is);
102
102
  export const setDefaultSettings = (config) => {
103
103
  const { slippage, routePriority, setValue, gasPrice } = useSettingsStore.getState();
104
- const defaultSlippage = (config?.slippage ||
105
- config?.sdkConfig?.defaultRouteOptions?.slippage ||
106
- 0) * 100;
107
- const defaultRoutePriority = config?.routePriority || config?.sdkConfig?.defaultRouteOptions?.order;
104
+ const defaultSlippage = (config?.slippage || config?.sdkConfig?.routeOptions?.slippage || 0) * 100;
105
+ const defaultRoutePriority = config?.routePriority || config?.sdkConfig?.routeOptions?.order;
108
106
  defaultConfigurableSettings.slippage = (defaultSlippage || defaultConfigurableSettings.slippage)?.toString();
109
107
  defaultConfigurableSettings.routePriority =
110
108
  defaultRoutePriority || defaultConfigurableSettings.routePriority;
@@ -2,6 +2,6 @@
2
2
  import type { SplitSubvariantProps, SplitSubvariantProviderProps, SplitSubvariantState, SplitSubvariantStore } from './types';
3
3
  export declare const SplitSubvariantStoreContext: import("react").Context<SplitSubvariantStore | null>;
4
4
  export declare function SplitSubvariantStoreProvider({ children, ...props }: SplitSubvariantProviderProps): import("react/jsx-runtime").JSX.Element;
5
- export declare function useSplitSubvariantStore<T>(selector: (state: SplitSubvariantState) => T, equalityFn?: (left: T, right: T) => boolean): T;
5
+ export declare function useSplitSubvariantStore<T>(selector: (state: SplitSubvariantState) => T): T;
6
6
  export declare function useSplitSubvariantStoreContext(): SplitSubvariantStore;
7
7
  export declare const createSplitSubvariantStore: ({ state }: SplitSubvariantProps) => import("zustand/traditional").UseBoundStoreWithEqualityFn<import("zustand").StoreApi<SplitSubvariantState>>;
@@ -13,12 +13,12 @@ export function SplitSubvariantStoreProvider({ children, ...props }) {
13
13
  }
14
14
  return (_jsx(SplitSubvariantStoreContext.Provider, { value: storeRef.current, children: children }));
15
15
  }
16
- export function useSplitSubvariantStore(selector, equalityFn) {
16
+ export function useSplitSubvariantStore(selector) {
17
17
  const useStore = useContext(SplitSubvariantStoreContext);
18
18
  if (!useStore) {
19
19
  throw new Error(`You forgot to wrap your component in <${SplitSubvariantStoreProvider.name}>.`);
20
20
  }
21
- return useStore(selector, equalityFn);
21
+ return useStore(selector);
22
22
  }
23
23
  export function useSplitSubvariantStoreContext() {
24
24
  const useStore = useContext(SplitSubvariantStoreContext);