@lifi/widget 1.32.8 → 2.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 (305) hide show
  1. package/App.js +3 -3
  2. package/AppDrawer.js +4 -3
  3. package/AppDrawer.style.d.ts +5 -5
  4. package/cjs/App.js +3 -3
  5. package/cjs/AppDrawer.js +4 -3
  6. package/cjs/AppDrawer.style.d.ts +5 -5
  7. package/cjs/components/ActiveSwaps/ActiveSwaps.style.d.ts +3 -3
  8. package/cjs/components/Card/CardIconButton.d.ts +29 -0
  9. package/cjs/components/Card/CardIconButton.js +17 -0
  10. package/cjs/components/Card/CardLabel.d.ts +26 -0
  11. package/cjs/components/Card/CardLabel.js +45 -0
  12. package/cjs/components/Card/CardTitle.d.ts +2 -2
  13. package/cjs/components/Card/index.d.ts +2 -0
  14. package/cjs/components/Card/index.js +2 -0
  15. package/cjs/components/GasMessage/FundsSufficiencyMessage.d.ts +1 -0
  16. package/cjs/components/GasMessage/FundsSufficiencyMessage.js +16 -0
  17. package/cjs/components/{GasSufficiencyMessage/GasSufficiencyMessage.d.ts → GasMessage/GasMessage.d.ts} +4 -2
  18. package/cjs/components/GasMessage/GasMessage.js +19 -0
  19. package/cjs/components/GasMessage/GasMessage.style.d.ts +34 -0
  20. package/cjs/components/GasMessage/GasMessage.style.js +48 -0
  21. package/cjs/components/GasMessage/GasRefuelMessage.d.ts +3 -0
  22. package/cjs/components/GasMessage/GasRefuelMessage.js +26 -0
  23. package/cjs/components/GasMessage/GasSufficiencyMessage.d.ts +7 -0
  24. package/cjs/components/GasMessage/GasSufficiencyMessage.js +21 -0
  25. package/cjs/components/GasMessage/index.d.ts +2 -0
  26. package/cjs/components/GasMessage/index.js +18 -0
  27. package/cjs/components/Header/Header.style.d.ts +5 -5
  28. package/cjs/components/Header/NavigationHeader.js +4 -4
  29. package/cjs/components/Header/WalletHeader.js +5 -5
  30. package/cjs/components/Insurance/Insurance.d.ts +3 -0
  31. package/cjs/components/Insurance/Insurance.js +11 -0
  32. package/cjs/components/Insurance/InsuranceCard.d.ts +3 -0
  33. package/cjs/components/Insurance/InsuranceCard.js +20 -0
  34. package/cjs/components/Insurance/InsuranceCollapsed.d.ts +3 -0
  35. package/cjs/components/Insurance/InsuranceCollapsed.js +32 -0
  36. package/cjs/components/Insurance/index.d.ts +1 -0
  37. package/cjs/components/{GasSufficiencyMessage → Insurance}/index.js +1 -1
  38. package/cjs/components/Insurance/types.d.ts +14 -0
  39. package/cjs/components/Insurance/types.js +2 -0
  40. package/cjs/components/NFT/NFT.style.d.ts +1 -1
  41. package/cjs/components/PoweredBy/PoweredBy.style.d.ts +1 -1
  42. package/cjs/components/ReverseTokensButton/ReverseTokensButton.style.d.ts +2 -2
  43. package/cjs/components/SendToWallet/SendToWallet.js +31 -25
  44. package/cjs/components/SendToWallet/SendToWallet.style.d.ts +2 -2
  45. package/cjs/components/SendToWallet/SendToWalletButton.js +3 -3
  46. package/cjs/components/SmallAvatar.d.ts +2 -2
  47. package/cjs/components/Step/CircularProgress.style.d.ts +1 -1
  48. package/cjs/components/Step/DestinationWalletAddress.js +2 -2
  49. package/cjs/components/Step/GasStepProcess.js +2 -2
  50. package/cjs/components/Step/Step.js +7 -5
  51. package/cjs/components/Step/StepList.d.ts +1 -1
  52. package/cjs/components/Step/StepProcess.style.d.ts +3 -3
  53. package/cjs/components/StepActions/StepActions.d.ts +5 -0
  54. package/cjs/components/StepActions/StepActions.js +55 -17
  55. package/cjs/components/StepActions/StepActions.style.d.ts +1 -1
  56. package/cjs/components/SwapButton/SwapButton.js +2 -2
  57. package/cjs/components/SwapButton/types.d.ts +1 -2
  58. package/cjs/components/SwapInput/SwapInput.style.d.ts +2 -2
  59. package/cjs/components/SwapInput/SwapInputAdornment.style.d.ts +3 -3
  60. package/cjs/components/SwapInput/SwapInputEndAdornment.js +18 -1
  61. package/cjs/components/SwapRouteCard/SwapRouteCard.d.ts +1 -2
  62. package/cjs/components/SwapRouteCard/SwapRouteCard.js +10 -26
  63. package/cjs/components/SwapRouteCard/SwapRouteCard.style.d.ts +4 -36
  64. package/cjs/components/SwapRouteCard/SwapRouteCard.style.js +7 -38
  65. package/cjs/components/SwapRouteCard/SwapRouteCardEssentials.d.ts +3 -0
  66. package/cjs/components/SwapRouteCard/SwapRouteCardEssentials.js +27 -0
  67. package/cjs/components/SwapRouteCard/SwapRouteCardSkeleton.js +5 -5
  68. package/cjs/components/SwapRouteCard/types.d.ts +2 -2
  69. package/cjs/components/SwapRouteCard/utils.d.ts +5 -0
  70. package/cjs/components/SwapRouteCard/utils.js +32 -2
  71. package/cjs/components/SwapRoutes/SwapRoutes.js +3 -12
  72. package/cjs/components/SwapRoutes/SwapRoutesExpanded.js +3 -5
  73. package/cjs/components/SwapRoutes/{SwapRoutes.style.d.ts → SwapRoutesExpanded.style.d.ts} +0 -9
  74. package/cjs/components/SwapRoutes/{SwapRoutes.style.js → SwapRoutesExpanded.style.js} +1 -12
  75. package/cjs/components/Switch.js +4 -4
  76. package/cjs/components/Token/Token.style.d.ts +2 -2
  77. package/cjs/config/theme.js +1 -1
  78. package/cjs/config/version.d.ts +1 -1
  79. package/cjs/config/version.js +1 -1
  80. package/cjs/hooks/index.d.ts +4 -0
  81. package/cjs/hooks/index.js +4 -0
  82. package/cjs/hooks/useChains.js +2 -2
  83. package/cjs/hooks/useFeaturedTokens.d.ts +1 -1
  84. package/cjs/hooks/useFeaturedTokens.js +2 -2
  85. package/cjs/hooks/useFundsSufficiency.d.ts +5 -0
  86. package/cjs/hooks/useFundsSufficiency.js +73 -0
  87. package/cjs/hooks/useGasRecommendation.d.ts +2 -0
  88. package/cjs/hooks/useGasRecommendation.js +23 -0
  89. package/cjs/hooks/useGasRefuel.d.ts +7 -0
  90. package/cjs/hooks/useGasRefuel.js +61 -0
  91. package/cjs/hooks/useGasSufficiency.d.ts +2 -3
  92. package/cjs/hooks/useGasSufficiency.js +6 -37
  93. package/cjs/hooks/useGetTokenBalancesWithRetry.d.ts +3 -0
  94. package/cjs/hooks/useGetTokenBalancesWithRetry.js +33 -0
  95. package/cjs/hooks/useSwapRoutes.d.ts +7 -2
  96. package/cjs/hooks/useSwapRoutes.js +31 -11
  97. package/cjs/hooks/useTokenAddressBalance.js +4 -2
  98. package/cjs/hooks/useTokenBalance.js +4 -22
  99. package/cjs/hooks/useTokenBalances.d.ts +1 -1
  100. package/cjs/hooks/useTokenSearch.js +2 -2
  101. package/cjs/hooks/useTokens.js +2 -3
  102. package/cjs/i18n/en.json +14 -7
  103. package/cjs/i18n/it.json +6 -2
  104. package/cjs/i18n/pt.json +234 -0
  105. package/cjs/i18n/uk.json +5 -1
  106. package/cjs/icons/InsuraceLogo.d.ts +2 -0
  107. package/cjs/icons/InsuraceLogo.js +11 -0
  108. package/cjs/icons/index.d.ts +1 -0
  109. package/cjs/icons/index.js +1 -0
  110. package/cjs/index.d.ts +0 -6
  111. package/cjs/index.js +1 -6
  112. package/cjs/pages/MainPage/MainGasMessage.d.ts +3 -0
  113. package/cjs/pages/MainPage/MainGasMessage.js +12 -0
  114. package/cjs/pages/MainPage/MainPage.js +3 -2
  115. package/cjs/pages/MainPage/MainSwapButton.js +1 -1
  116. package/cjs/pages/SettingsPage/ColorSchemeButtonGroup.js +2 -2
  117. package/cjs/pages/SettingsPage/ColorSchemeButtonGroup.style.d.ts +2 -2
  118. package/cjs/pages/SettingsPage/RoutePrioritySelect.js +1 -1
  119. package/cjs/pages/SwapDetailsPage/SwapDetailsPage.js +4 -3
  120. package/cjs/pages/SwapPage/ExchangeRateBottomSheet.d.ts +1 -2
  121. package/cjs/pages/SwapPage/ExchangeRateBottomSheet.js +1 -14
  122. package/cjs/pages/SwapPage/StartSwapButton.d.ts +3 -2
  123. package/cjs/pages/SwapPage/StartSwapButton.js +14 -4
  124. package/cjs/pages/SwapPage/SwapPage.js +18 -7
  125. package/cjs/pages/SwapPage/types.d.ts +9 -0
  126. package/cjs/pages/SwapPage/types.js +2 -0
  127. package/cjs/pages/SwapRoutesPage/SwapRoutesPage.js +1 -1
  128. package/cjs/providers/SDKProvider/SDKProvider.d.ts +2 -2
  129. package/cjs/providers/SDKProvider/SDKProvider.js +2 -1
  130. package/cjs/providers/SwapFormProvider/FormUpdater.js +2 -3
  131. package/cjs/providers/WidgetProvider/WidgetProvider.js +17 -4
  132. package/cjs/providers/WidgetProvider/utils.d.ts +1 -1
  133. package/cjs/providers/WidgetProvider/utils.js +2 -4
  134. package/cjs/stores/StoreProvider.js +1 -1
  135. package/cjs/stores/routes/createRouteExecutionStore.js +3 -2
  136. package/cjs/stores/routes/index.d.ts +0 -1
  137. package/cjs/stores/routes/index.js +0 -1
  138. package/cjs/stores/routes/types.d.ts +1 -5
  139. package/cjs/stores/routes/useSetExecutableRoute.d.ts +1 -1
  140. package/cjs/stores/settings/types.d.ts +1 -0
  141. package/cjs/stores/settings/useSettingsStore.js +1 -0
  142. package/cjs/types/widget.d.ts +5 -10
  143. package/cjs/utils/format.js +4 -1
  144. package/components/ActiveSwaps/ActiveSwaps.style.d.ts +3 -3
  145. package/components/Card/CardIconButton.d.ts +29 -0
  146. package/components/Card/CardIconButton.js +14 -0
  147. package/components/Card/CardLabel.d.ts +26 -0
  148. package/components/Card/CardLabel.js +42 -0
  149. package/components/Card/CardTitle.d.ts +2 -2
  150. package/components/Card/index.d.ts +2 -0
  151. package/components/Card/index.js +2 -0
  152. package/components/GasMessage/FundsSufficiencyMessage.d.ts +1 -0
  153. package/components/GasMessage/FundsSufficiencyMessage.js +12 -0
  154. package/components/{GasSufficiencyMessage/GasSufficiencyMessage.d.ts → GasMessage/GasMessage.d.ts} +4 -2
  155. package/components/GasMessage/GasMessage.js +15 -0
  156. package/components/GasMessage/GasMessage.style.d.ts +34 -0
  157. package/components/GasMessage/GasMessage.style.js +45 -0
  158. package/components/GasMessage/GasRefuelMessage.d.ts +3 -0
  159. package/components/GasMessage/GasRefuelMessage.js +22 -0
  160. package/components/GasMessage/GasSufficiencyMessage.d.ts +7 -0
  161. package/components/GasMessage/GasSufficiencyMessage.js +17 -0
  162. package/components/GasMessage/index.d.ts +2 -0
  163. package/components/GasMessage/index.js +2 -0
  164. package/components/Header/Header.style.d.ts +5 -5
  165. package/components/Header/NavigationHeader.js +4 -4
  166. package/components/Header/WalletHeader.js +6 -6
  167. package/components/Insurance/Insurance.d.ts +3 -0
  168. package/components/Insurance/Insurance.js +7 -0
  169. package/components/Insurance/InsuranceCard.d.ts +3 -0
  170. package/components/Insurance/InsuranceCard.js +16 -0
  171. package/components/Insurance/InsuranceCollapsed.d.ts +3 -0
  172. package/components/Insurance/InsuranceCollapsed.js +28 -0
  173. package/components/Insurance/index.d.ts +1 -0
  174. package/components/Insurance/index.js +1 -0
  175. package/components/Insurance/types.d.ts +14 -0
  176. package/components/Insurance/types.js +1 -0
  177. package/components/NFT/NFT.style.d.ts +1 -1
  178. package/components/PoweredBy/PoweredBy.style.d.ts +1 -1
  179. package/components/ReverseTokensButton/ReverseTokensButton.style.d.ts +2 -2
  180. package/components/SendToWallet/SendToWallet.js +34 -28
  181. package/components/SendToWallet/SendToWallet.style.d.ts +2 -2
  182. package/components/SendToWallet/SendToWalletButton.js +4 -4
  183. package/components/SmallAvatar.d.ts +2 -2
  184. package/components/Step/CircularProgress.style.d.ts +1 -1
  185. package/components/Step/DestinationWalletAddress.js +2 -2
  186. package/components/Step/GasStepProcess.js +2 -2
  187. package/components/Step/Step.js +7 -5
  188. package/components/Step/StepList.d.ts +1 -1
  189. package/components/Step/StepProcess.style.d.ts +3 -3
  190. package/components/StepActions/StepActions.d.ts +5 -0
  191. package/components/StepActions/StepActions.js +52 -16
  192. package/components/StepActions/StepActions.style.d.ts +1 -1
  193. package/components/SwapButton/SwapButton.js +2 -2
  194. package/components/SwapButton/types.d.ts +1 -2
  195. package/components/SwapInput/SwapInput.style.d.ts +2 -2
  196. package/components/SwapInput/SwapInputAdornment.style.d.ts +3 -3
  197. package/components/SwapInput/SwapInputEndAdornment.js +19 -2
  198. package/components/SwapRouteCard/SwapRouteCard.d.ts +1 -2
  199. package/components/SwapRouteCard/SwapRouteCard.js +11 -26
  200. package/components/SwapRouteCard/SwapRouteCard.style.d.ts +4 -36
  201. package/components/SwapRouteCard/SwapRouteCard.style.js +7 -38
  202. package/components/SwapRouteCard/SwapRouteCardEssentials.d.ts +3 -0
  203. package/components/SwapRouteCard/SwapRouteCardEssentials.js +23 -0
  204. package/components/SwapRouteCard/SwapRouteCardSkeleton.js +5 -5
  205. package/components/SwapRouteCard/types.d.ts +2 -2
  206. package/components/SwapRouteCard/utils.d.ts +5 -0
  207. package/components/SwapRouteCard/utils.js +30 -1
  208. package/components/SwapRoutes/SwapRoutes.js +5 -14
  209. package/components/SwapRoutes/SwapRoutesExpanded.js +2 -4
  210. package/components/SwapRoutes/{SwapRoutes.style.d.ts → SwapRoutesExpanded.style.d.ts} +0 -9
  211. package/components/SwapRoutes/{SwapRoutes.style.js → SwapRoutesExpanded.style.js} +1 -12
  212. package/components/Switch.js +5 -5
  213. package/components/Token/Token.style.d.ts +2 -2
  214. package/config/theme.js +1 -1
  215. package/config/version.d.ts +1 -1
  216. package/config/version.js +1 -1
  217. package/hooks/index.d.ts +4 -0
  218. package/hooks/index.js +4 -0
  219. package/hooks/useChains.js +2 -2
  220. package/hooks/useFeaturedTokens.d.ts +1 -1
  221. package/hooks/useFeaturedTokens.js +2 -2
  222. package/hooks/useFundsSufficiency.d.ts +5 -0
  223. package/hooks/useFundsSufficiency.js +69 -0
  224. package/hooks/useGasRecommendation.d.ts +2 -0
  225. package/hooks/useGasRecommendation.js +19 -0
  226. package/hooks/useGasRefuel.d.ts +7 -0
  227. package/hooks/useGasRefuel.js +57 -0
  228. package/hooks/useGasSufficiency.d.ts +2 -3
  229. package/hooks/useGasSufficiency.js +7 -38
  230. package/hooks/useGetTokenBalancesWithRetry.d.ts +3 -0
  231. package/hooks/useGetTokenBalancesWithRetry.js +29 -0
  232. package/hooks/useSwapRoutes.d.ts +7 -2
  233. package/hooks/useSwapRoutes.js +32 -12
  234. package/hooks/useTokenAddressBalance.js +4 -2
  235. package/hooks/useTokenBalance.js +5 -23
  236. package/hooks/useTokenBalances.d.ts +1 -1
  237. package/hooks/useTokenSearch.js +2 -2
  238. package/hooks/useTokens.js +2 -3
  239. package/i18n/en.json +14 -7
  240. package/i18n/it.json +6 -2
  241. package/i18n/pt.json +234 -0
  242. package/i18n/uk.json +5 -1
  243. package/icons/InsuraceLogo.d.ts +2 -0
  244. package/icons/InsuraceLogo.js +7 -0
  245. package/icons/index.d.ts +1 -0
  246. package/icons/index.js +1 -0
  247. package/index.d.ts +0 -6
  248. package/index.js +0 -5
  249. package/package.json +10 -10
  250. package/pages/ActiveSwapsPage/ActiveSwapsPage.js +2 -2
  251. package/pages/MainPage/MainGasMessage.d.ts +3 -0
  252. package/pages/MainPage/MainGasMessage.js +8 -0
  253. package/pages/MainPage/MainPage.js +3 -2
  254. package/pages/MainPage/MainSwapButton.js +1 -1
  255. package/pages/SettingsPage/ColorSchemeButtonGroup.js +2 -2
  256. package/pages/SettingsPage/ColorSchemeButtonGroup.style.d.ts +2 -2
  257. package/pages/SettingsPage/RoutePrioritySelect.js +1 -1
  258. package/pages/SwapDetailsPage/SwapDetailsPage.js +5 -4
  259. package/pages/SwapHistoryPage/SwapHistoryPage.js +2 -2
  260. package/pages/SwapPage/ExchangeRateBottomSheet.d.ts +1 -2
  261. package/pages/SwapPage/ExchangeRateBottomSheet.js +0 -12
  262. package/pages/SwapPage/StartSwapButton.d.ts +3 -2
  263. package/pages/SwapPage/StartSwapButton.js +13 -4
  264. package/pages/SwapPage/SwapPage.js +21 -10
  265. package/pages/SwapPage/types.d.ts +9 -0
  266. package/pages/SwapPage/types.js +1 -0
  267. package/pages/SwapRoutesPage/SwapRoutesPage.js +1 -1
  268. package/providers/SDKProvider/SDKProvider.d.ts +2 -2
  269. package/providers/SDKProvider/SDKProvider.js +3 -2
  270. package/providers/SwapFormProvider/FormUpdater.js +2 -3
  271. package/providers/WidgetProvider/WidgetProvider.js +17 -4
  272. package/providers/WidgetProvider/utils.d.ts +1 -1
  273. package/providers/WidgetProvider/utils.js +2 -4
  274. package/stores/StoreProvider.js +2 -2
  275. package/stores/routes/createRouteExecutionStore.js +3 -2
  276. package/stores/routes/index.d.ts +0 -1
  277. package/stores/routes/index.js +0 -1
  278. package/stores/routes/types.d.ts +1 -5
  279. package/stores/routes/useSetExecutableRoute.d.ts +1 -1
  280. package/stores/settings/types.d.ts +1 -0
  281. package/stores/settings/useSettingsStore.js +1 -0
  282. package/tsconfig.cjs.tsbuildinfo +1 -1
  283. package/types/widget.d.ts +5 -10
  284. package/utils/format.js +4 -1
  285. package/cjs/components/GasSufficiencyMessage/GasSufficiencyMessage.js +0 -31
  286. package/cjs/components/GasSufficiencyMessage/GasSufficiencyMessage.style.d.ts +0 -9
  287. package/cjs/components/GasSufficiencyMessage/GasSufficiencyMessage.style.js +0 -14
  288. package/cjs/components/GasSufficiencyMessage/index.d.ts +0 -1
  289. package/cjs/components/SwapRoutes/useSetRecommendedRoute.d.ts +0 -2
  290. package/cjs/components/SwapRoutes/useSetRecommendedRoute.js +0 -13
  291. package/cjs/config/env.d.ts +0 -3
  292. package/cjs/config/env.js +0 -6
  293. package/cjs/stores/routes/useRecommendedRouteStore.d.ts +0 -10
  294. package/cjs/stores/routes/useRecommendedRouteStore.js +0 -39
  295. package/components/GasSufficiencyMessage/GasSufficiencyMessage.js +0 -27
  296. package/components/GasSufficiencyMessage/GasSufficiencyMessage.style.d.ts +0 -9
  297. package/components/GasSufficiencyMessage/GasSufficiencyMessage.style.js +0 -11
  298. package/components/GasSufficiencyMessage/index.d.ts +0 -1
  299. package/components/GasSufficiencyMessage/index.js +0 -1
  300. package/components/SwapRoutes/useSetRecommendedRoute.d.ts +0 -2
  301. package/components/SwapRoutes/useSetRecommendedRoute.js +0 -9
  302. package/config/env.d.ts +0 -3
  303. package/config/env.js +0 -3
  304. package/stores/routes/useRecommendedRouteStore.d.ts +0 -10
  305. package/stores/routes/useRecommendedRouteStore.js +0 -32
@@ -1,30 +1,33 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import DeleteIcon from '@mui/icons-material/Delete';
3
3
  import { Box, Button, Tooltip } from '@mui/material';
4
- import { useCallback, useRef } from 'react';
4
+ import { useCallback, useRef, useState } from 'react';
5
5
  import { useFormContext } from 'react-hook-form';
6
6
  import { useTranslation } from 'react-i18next';
7
7
  import { useLocation } from 'react-router-dom';
8
- import { GasSufficiencyMessage } from '../../components/GasSufficiencyMessage';
8
+ import { GasMessage } from '../../components/GasMessage';
9
+ import { Insurance } from '../../components/Insurance';
9
10
  import { getStepList } from '../../components/Step';
10
11
  import { useNavigateBack, useRouteExecution } from '../../hooks';
11
12
  import { SwapFormKey, useWidgetConfig } from '../../providers';
12
13
  import { RouteExecutionStatus } from '../../stores';
13
14
  import { ExchangeRateBottomSheet } from './ExchangeRateBottomSheet';
14
- import { StartSwapButton } from './StartSwapButton';
15
+ import { StartIdleSwapButton, StartSwapButton } from './StartSwapButton';
15
16
  import { StatusBottomSheet } from './StatusBottomSheet';
16
17
  import { Container } from './SwapPage.style';
17
- import { getTokenValueLossThreshold, TokenValueBottomSheet, } from './TokenValueBottomSheet';
18
+ import { TokenValueBottomSheet, getTokenValueLossThreshold, } from './TokenValueBottomSheet';
18
19
  export const SwapPage = () => {
19
20
  const { t } = useTranslation();
20
- const { variant } = useWidgetConfig();
21
- const { state } = useLocation();
21
+ const { setValue } = useFormContext();
22
22
  const { navigateBack } = useNavigateBack();
23
+ const { variant, insurance } = useWidgetConfig();
24
+ const { state } = useLocation();
25
+ const stateRouteId = state?.routeId;
26
+ const [routeId, setRouteId] = useState(stateRouteId);
23
27
  const tokenValueBottomSheetRef = useRef(null);
24
28
  const exchangeRateBottomSheetRef = useRef(null);
25
- const { setValue } = useFormContext();
26
29
  const { route, status, executeRoute, restartRoute, deleteRoute } = useRouteExecution({
27
- routeId: state?.routeId,
30
+ routeId: routeId,
28
31
  onAcceptExchangeRateUpdate: exchangeRateBottomSheetRef.current?.open,
29
32
  });
30
33
  const handleExecuteRoute = useCallback(() => {
@@ -64,8 +67,16 @@ export const SwapPage = () => {
64
67
  return '';
65
68
  }
66
69
  };
67
- return (_jsxs(Container, { children: [getStepList(route), status === RouteExecutionStatus.Idle ||
68
- status === RouteExecutionStatus.Failed ? (_jsxs(_Fragment, { children: [_jsx(GasSufficiencyMessage, { route: route, mt: 2 }), _jsxs(Box, { mt: 2, display: "flex", children: [_jsx(StartSwapButton, { text: getSwapButtonText(), onClick: handleSwapClick, currentRoute: route }), status === RouteExecutionStatus.Failed ? (_jsx(Tooltip, { title: t('button.removeSwap'), placement: "bottom-end", enterDelay: 400, arrow: true, children: _jsx(Button, { onClick: handleRemoveRoute, sx: {
70
+ const SwapButton = insurance && status === RouteExecutionStatus.Idle
71
+ ? StartIdleSwapButton
72
+ : StartSwapButton;
73
+ const insuranceAvailable = insurance &&
74
+ variant !== 'refuel' &&
75
+ (route?.insurance?.state === 'INSURED' ||
76
+ (status === RouteExecutionStatus.Idle &&
77
+ route?.insurance?.state === 'INSURABLE'));
78
+ return (_jsxs(Container, { children: [getStepList(route), insuranceAvailable ? (_jsx(Insurance, { mt: 2, status: status, insurableRouteId: stateRouteId, feeAmountUsd: route?.insurance.feeAmountUsd, onChange: setRouteId })) : null, status === RouteExecutionStatus.Idle ||
79
+ status === RouteExecutionStatus.Failed ? (_jsxs(_Fragment, { children: [_jsx(GasMessage, { mt: 2, route: route }), _jsxs(Box, { mt: 2, display: "flex", children: [_jsx(SwapButton, { text: getSwapButtonText(), onClick: handleSwapClick, route: route, insurableRouteId: stateRouteId }), status === RouteExecutionStatus.Failed ? (_jsx(Tooltip, { title: t('button.removeSwap'), placement: "bottom-end", enterDelay: 400, arrow: true, children: _jsx(Button, { onClick: handleRemoveRoute, sx: {
69
80
  minWidth: 48,
70
81
  marginLeft: 1,
71
82
  }, children: _jsx(DeleteIcon, {}) }) })) : null] })] })) : null, route && status ? (_jsx(StatusBottomSheet, { status: status, route: route })) : null, route ? (_jsx(TokenValueBottomSheet, { route: route, ref: tokenValueBottomSheetRef, onContinue: handleExecuteRoute })) : null, route ? (_jsx(ExchangeRateBottomSheet, { ref: exchangeRateBottomSheetRef })) : null] }));
@@ -0,0 +1,9 @@
1
+ import type { Route } from '@lifi/sdk';
2
+ export interface StartSwapButtonProps {
3
+ onClick?(): void;
4
+ route?: Route;
5
+ text?: string;
6
+ disabled?: boolean;
7
+ loading?: boolean;
8
+ insurableRouteId: string;
9
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -30,5 +30,5 @@ export const SwapRoutesPage = () => {
30
30
  .setAction(_jsx(ProgressToNextUpdate, { updatedAt: dataUpdatedAt || new Date().getTime(), timeToUpdate: refetchTime, isLoading: isFetching, onClick: () => refetch(), sx: { marginRight: -1 }, size: "medium", edge: "end" }));
31
31
  }, [dataUpdatedAt, isFetching, refetch, refetchTime]);
32
32
  const routeNotFound = !swapRoutes?.length && !isLoading && !isFetching;
33
- return (_jsx(Stack, { direction: "column", spacing: 2, flex: 1, children: routeNotFound ? (_jsx(SwapRouteNotFoundCard, {})) : isLoading ? (Array.from({ length: 3 }).map((_, index) => (_jsx(SwapRouteCardSkeleton, {}, index)))) : (swapRoutes?.map((route, index) => (_jsx(SwapRouteCard, { route: route, onClick: () => handleRouteClick(route), active: index === 0 }, route.id)))) }));
33
+ return (_jsx(Stack, { direction: "column", spacing: 2, flex: 1, children: routeNotFound ? (_jsx(SwapRouteNotFoundCard, {})) : isLoading ? (Array.from({ length: 3 }).map((_, index) => (_jsx(SwapRouteCardSkeleton, {}, index)))) : (swapRoutes?.map((route, index) => (_jsx(SwapRouteCard, { route: route, onClick: () => handleRouteClick(route), active: index === 0, expanded: swapRoutes?.length <= 2 }, route.id)))) }));
34
34
  };
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- import LIFI from '@lifi/sdk';
3
- export declare const useLiFi: () => LIFI;
2
+ import { LiFi } from '@lifi/sdk';
3
+ export declare const useLiFi: () => LiFi;
4
4
  export declare const SDKProvider: React.FC<React.PropsWithChildren>;
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import LIFI from '@lifi/sdk';
2
+ import { LiFi } from '@lifi/sdk';
3
3
  import { createContext, useContext, useMemo } from 'react';
4
4
  import { useWidgetConfig } from '../WidgetProvider';
5
5
  let lifi;
@@ -10,6 +10,7 @@ export const SDKProvider = ({ children, }) => {
10
10
  const value = useMemo(() => {
11
11
  const config = {
12
12
  ...sdkConfig,
13
+ integrator: integrator ?? window.location.hostname,
13
14
  defaultRouteOptions: {
14
15
  fee,
15
16
  integrator: integrator ?? window.location.hostname,
@@ -20,7 +21,7 @@ export const SDKProvider = ({ children, }) => {
20
21
  },
21
22
  };
22
23
  if (!lifi) {
23
- lifi = new LIFI({
24
+ lifi = new LiFi({
24
25
  disableVersionCheck: true,
25
26
  ...config,
26
27
  });
@@ -5,7 +5,7 @@ import { SwapFormKey } from '../SwapFormProvider';
5
5
  import { useWallet } from '../WalletProvider';
6
6
  import { isItemAllowed, useWidgetConfig } from '../WidgetProvider';
7
7
  export const FormUpdater = ({ defaultValues }) => {
8
- const { fromChain, toChain, chains, disabledChains } = useWidgetConfig();
8
+ const { fromChain, toChain, chains } = useWidgetConfig();
9
9
  const { account } = useWallet();
10
10
  const { setValue, getValues, getFieldState, resetField,
11
11
  // Subscription to touchedFields is required by getFieldState to work
@@ -13,7 +13,7 @@ export const FormUpdater = ({ defaultValues }) => {
13
13
  const previousDefaultValues = useRef(defaultValues);
14
14
  // Set wallet chain as default if no chains are provided by config and if they were not changed during widget usage
15
15
  useEffect(() => {
16
- const chainAllowed = account.chainId && isItemAllowed(account.chainId, chains, disabledChains);
16
+ const chainAllowed = account.chainId && isItemAllowed(account.chainId, chains);
17
17
  if (!account.isActive || !account.chainId || !chainAllowed) {
18
18
  return;
19
19
  }
@@ -37,7 +37,6 @@ export const FormUpdater = ({ defaultValues }) => {
37
37
  account.chainId,
38
38
  account.isActive,
39
39
  chains,
40
- disabledChains,
41
40
  fromChain,
42
41
  getFieldState,
43
42
  getValues,
@@ -4,13 +4,16 @@ import { createContext, useContext, useId, useMemo } from 'react';
4
4
  import { setDefaultSettings } from '../../stores';
5
5
  import { formatAmount } from '../../utils';
6
6
  const initialContext = {
7
- disabledChains: [],
8
7
  elementId: '',
8
+ integrator: '',
9
9
  };
10
10
  const WidgetContext = createContext(initialContext);
11
11
  export const useWidgetConfig = () => useContext(WidgetContext);
12
- export const WidgetProvider = ({ children, config: { fromChain, fromToken, toChain, toToken, fromAmount, ...config } = {}, }) => {
12
+ export const WidgetProvider = ({ children, config: { fromChain, fromToken, toChain, toToken, fromAmount, integrator, ...config } = {}, }) => {
13
13
  const elementId = useId();
14
+ if (!integrator) {
15
+ throw Error('Required property "integrator" is missing.');
16
+ }
14
17
  const value = useMemo(() => {
15
18
  try {
16
19
  const searchParams = Object.fromEntries(new URLSearchParams(window?.location.search));
@@ -46,14 +49,24 @@ export const WidgetProvider = ({ children, config: { fromChain, fromToken, toCha
46
49
  ? formatAmount(searchParams.fromAmount)
47
50
  : fromAmount,
48
51
  elementId,
52
+ integrator,
49
53
  };
50
54
  setDefaultSettings(value);
51
55
  return value;
52
56
  }
53
57
  catch (e) {
54
58
  console.warn(e);
55
- return { ...config, elementId };
59
+ return { ...config, elementId, integrator };
56
60
  }
57
- }, [config, elementId, fromAmount, fromChain, fromToken, toChain, toToken]);
61
+ }, [
62
+ config,
63
+ elementId,
64
+ fromAmount,
65
+ fromChain,
66
+ fromToken,
67
+ integrator,
68
+ toChain,
69
+ toToken,
70
+ ]);
58
71
  return (_jsx(WidgetContext.Provider, { value: value, children: children }));
59
72
  };
@@ -1,4 +1,4 @@
1
1
  export declare const isItemAllowed: <T>(itemId: T, items?: {
2
2
  allow?: T[] | undefined;
3
3
  deny?: T[] | undefined;
4
- } | undefined, disabledChains?: T[] | undefined) => boolean;
4
+ } | undefined) => boolean;
@@ -1,8 +1,6 @@
1
- export const isItemAllowed = (itemId, items,
2
- /** @deprecated Remove in the next major release */
3
- disabledChains) => {
1
+ export const isItemAllowed = (itemId, items) => {
4
2
  if (items?.allow?.length) {
5
3
  return items.allow.includes(itemId);
6
4
  }
7
- return !(disabledChains?.includes(itemId) || items?.deny?.includes(itemId));
5
+ return !items?.deny?.includes(itemId);
8
6
  };
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { RecommendedRouteStoreProvider, RouteExecutionStoreProvider, } from './routes';
2
+ import { RouteExecutionStoreProvider } from './routes';
3
3
  export const StoreProvider = ({ children, namePrefix }) => {
4
- return (_jsx(RouteExecutionStoreProvider, { namePrefix: namePrefix, children: _jsx(RecommendedRouteStoreProvider, { children: children }) }));
4
+ return (_jsx(RouteExecutionStoreProvider, { namePrefix: namePrefix, children: children }));
5
5
  };
@@ -5,13 +5,14 @@ import { RouteExecutionStatus } from './types';
5
5
  import { isRouteDone, isRouteFailed, isRoutePartiallyDone, isRouteRefunded, } from './utils';
6
6
  export const createRouteExecutionStore = ({ namePrefix }) => create(persist((set, get) => ({
7
7
  routes: {},
8
- setExecutableRoute: (route) => {
8
+ setExecutableRoute: (route, insurableRouteId) => {
9
9
  if (!get().routes[route.id]) {
10
10
  set((state) => {
11
11
  const routes = { ...state.routes };
12
12
  // clean previous idle routes that were not executed
13
13
  Object.keys(routes)
14
- .filter((routeId) => routes[routeId]?.status === RouteExecutionStatus.Idle)
14
+ .filter((routeId) => routeId !== insurableRouteId &&
15
+ routes[routeId]?.status === RouteExecutionStatus.Idle)
15
16
  .forEach((routeId) => delete routes[routeId]);
16
17
  routes[route.id] = {
17
18
  route,
@@ -1,7 +1,6 @@
1
1
  export * from './RouteExecutionStore';
2
2
  export * from './types';
3
3
  export * from './useExecutingRoutesIds';
4
- export * from './useRecommendedRouteStore';
5
4
  export * from './useSetExecutableRoute';
6
5
  export * from './useSwapHistory';
7
6
  export * from './utils';
@@ -1,7 +1,6 @@
1
1
  export * from './RouteExecutionStore';
2
2
  export * from './types';
3
3
  export * from './useExecutingRoutesIds';
4
- export * from './useRecommendedRouteStore';
5
4
  export * from './useSetExecutableRoute';
6
5
  export * from './useSwapHistory';
7
6
  export * from './utils';
@@ -5,7 +5,7 @@ export interface RouteExecution {
5
5
  }
6
6
  export interface RouteExecutionState {
7
7
  routes: Partial<Record<string, RouteExecution>>;
8
- setExecutableRoute: (route: Route) => void;
8
+ setExecutableRoute: (route: Route, insurableRouteId?: string) => void;
9
9
  updateRoute: (route: Route) => void;
10
10
  restartRoute: (routeId: string) => void;
11
11
  deleteRoute: (routeId: string) => void;
@@ -19,7 +19,3 @@ export declare enum RouteExecutionStatus {
19
19
  Partial = 8,
20
20
  Refunded = 16
21
21
  }
22
- export interface RecommendedRouteState {
23
- recommendedRoute?: Route;
24
- setRecommendedRoute: (route?: Route) => void;
25
- }
@@ -1 +1 @@
1
- export declare const useSetExecutableRoute: () => (route: import("@lifi/types").Route) => void;
1
+ export declare const useSetExecutableRoute: () => (route: import("@lifi/types").Route, insurableRouteId?: string | undefined) => void;
@@ -9,6 +9,7 @@ export interface SettingsProps {
9
9
  gasPrice?: string;
10
10
  language?: string;
11
11
  routePriority?: Order;
12
+ enabledAutoRefuel: boolean;
12
13
  showDestinationWallet: boolean;
13
14
  slippage?: string;
14
15
  enabledBridges: string[];
@@ -8,6 +8,7 @@ export const defaultConfigurableSettings = {
8
8
  export const defaultSettings = {
9
9
  appearance: 'auto',
10
10
  gasPrice: 'normal',
11
+ enabledAutoRefuel: true,
11
12
  showDestinationWallet: true,
12
13
  enabledBridges: [],
13
14
  enabledExchanges: [],