@rango-dev/widget-embedded 0.19.0 → 0.19.1-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (476) hide show
  1. package/CHANGELOG.md +0 -4
  2. package/dist/QueueManager.d.ts +5 -2
  3. package/dist/QueueManager.d.ts.map +1 -1
  4. package/dist/components/AppRouter.d.ts +0 -2
  5. package/dist/components/AppRouter.d.ts.map +1 -1
  6. package/dist/components/AppRoutes.d.ts +1 -6
  7. package/dist/components/AppRoutes.d.ts.map +1 -1
  8. package/dist/components/BlockchainsSection/BlockchainsSection.d.ts.map +1 -1
  9. package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts +1 -1
  10. package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts.map +1 -1
  11. package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts +1 -3
  12. package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts.map +1 -1
  13. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +690 -61
  14. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
  15. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
  16. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts +1 -3
  17. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts.map +1 -1
  18. package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
  19. package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts +1 -4
  20. package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts.map +1 -1
  21. package/dist/components/HeaderButtons/HomeButtons.d.ts.map +1 -1
  22. package/dist/components/Layout/Layout.d.ts.map +1 -1
  23. package/dist/components/Layout/Layout.styles.d.ts.map +1 -1
  24. package/dist/components/Layout/Layout.types.d.ts +2 -2
  25. package/dist/components/Layout/Layout.types.d.ts.map +1 -1
  26. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.d.ts.map +1 -1
  27. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts +1727 -0
  28. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts.map +1 -1
  29. package/dist/components/NoResult/NoResult.d.ts +4 -0
  30. package/dist/components/NoResult/NoResult.d.ts.map +1 -0
  31. package/dist/components/NoResult/NoResult.helpers.d.ts +4 -0
  32. package/dist/components/NoResult/NoResult.helpers.d.ts.map +1 -0
  33. package/dist/components/{NoRoutes/NoRoutes.styles.d.ts → NoResult/NoResult.styles.d.ts} +1 -1
  34. package/dist/components/{NoRoutes/NoRoutes.styles.d.ts.map → NoResult/NoResult.styles.d.ts.map} +1 -1
  35. package/dist/components/{NoRoutes/NoRoutes.types.d.ts → NoResult/NoResult.types.d.ts} +3 -3
  36. package/dist/components/NoResult/NoResult.types.d.ts.map +1 -0
  37. package/dist/components/NoResult/index.d.ts +2 -0
  38. package/dist/components/NoResult/index.d.ts.map +1 -0
  39. package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
  40. package/dist/components/Quote/Quote.d.ts +4 -0
  41. package/dist/components/Quote/Quote.d.ts.map +1 -0
  42. package/dist/components/Quote/Quote.styles.d.ts +2217 -0
  43. package/dist/components/Quote/Quote.styles.d.ts.map +1 -0
  44. package/dist/components/Quote/Quote.types.d.ts +21 -0
  45. package/dist/components/Quote/Quote.types.d.ts.map +1 -0
  46. package/dist/components/Quote/QuoteSummary.d.ts +11 -0
  47. package/dist/components/Quote/QuoteSummary.d.ts.map +1 -0
  48. package/dist/components/Quote/QuoteSummary.styles.d.ts +315 -0
  49. package/dist/components/Quote/QuoteSummary.styles.d.ts.map +1 -0
  50. package/dist/components/Quote/index.d.ts +3 -0
  51. package/dist/components/Quote/index.d.ts.map +1 -0
  52. package/dist/components/QuoteSkeleton/QuoteSkeleton.d.ts +4 -0
  53. package/dist/components/QuoteSkeleton/QuoteSkeleton.d.ts.map +1 -0
  54. package/dist/components/QuoteSkeleton/QuoteSkeleton.styles.d.ts +633 -0
  55. package/dist/components/QuoteSkeleton/QuoteSkeleton.styles.d.ts.map +1 -0
  56. package/dist/components/QuoteSkeleton/QuoteSkeleton.types.d.ts +6 -0
  57. package/dist/components/QuoteSkeleton/QuoteSkeleton.types.d.ts.map +1 -0
  58. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.d.ts +4 -0
  59. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.d.ts.map +1 -0
  60. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.styles.d.ts +1571 -0
  61. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.styles.d.ts.map +1 -0
  62. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.types.d.ts +6 -0
  63. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.types.d.ts.map +1 -0
  64. package/dist/components/QuoteSkeleton/StepSkeleton.d.ts +4 -0
  65. package/dist/components/QuoteSkeleton/StepSkeleton.d.ts.map +1 -0
  66. package/dist/components/QuoteSkeleton/StepSkeleton.styles.d.ts +786 -0
  67. package/dist/components/QuoteSkeleton/StepSkeleton.styles.d.ts.map +1 -0
  68. package/dist/components/QuoteSkeleton/StepSkeleton.types.d.ts +4 -0
  69. package/dist/components/QuoteSkeleton/StepSkeleton.types.d.ts.map +1 -0
  70. package/dist/components/QuoteSkeleton/index.d.ts +4 -0
  71. package/dist/components/QuoteSkeleton/index.d.ts.map +1 -0
  72. package/dist/components/QuoteWarningsAndErrors/HighValueLossWarningModal.d.ts +11 -0
  73. package/dist/components/QuoteWarningsAndErrors/HighValueLossWarningModal.d.ts.map +1 -0
  74. package/dist/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.d.ts +4 -0
  75. package/dist/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.d.ts.map +1 -0
  76. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts +4 -0
  77. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts.map +1 -0
  78. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts +9 -0
  79. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts.map +1 -0
  80. package/dist/components/{RouteErrors/RouteErrors.styles.d.ts → QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts} +1 -1
  81. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -0
  82. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts +23 -0
  83. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts.map +1 -0
  84. package/dist/components/QuoteWarningsAndErrors/SlippageWariningModal.d.ts +11 -0
  85. package/dist/components/QuoteWarningsAndErrors/SlippageWariningModal.d.ts.map +1 -0
  86. package/dist/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.d.ts +11 -0
  87. package/dist/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.d.ts.map +1 -0
  88. package/dist/components/QuoteWarningsAndErrors/index.d.ts +2 -0
  89. package/dist/components/QuoteWarningsAndErrors/index.d.ts.map +1 -0
  90. package/dist/components/Slippage/Slippage.d.ts.map +1 -1
  91. package/dist/components/Slippage/Slippage.styles.d.ts +158 -0
  92. package/dist/components/Slippage/Slippage.styles.d.ts.map +1 -1
  93. package/dist/components/SwapDetails/SwapDetails.Placeholder.d.ts.map +1 -1
  94. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  95. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts +1 -1
  96. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts.map +1 -1
  97. package/dist/components/SwapDetails/SwapDetails.styles.d.ts +628 -0
  98. package/dist/components/SwapDetails/SwapDetails.styles.d.ts.map +1 -1
  99. package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
  100. package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
  101. package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts +1 -1
  102. package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts.map +1 -1
  103. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +1 -1
  104. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts.map +1 -1
  105. package/dist/components/SwapsGroup/SwapsGroup.d.ts.map +1 -1
  106. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts +157 -0
  107. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts.map +1 -1
  108. package/dist/components/TokenList/TokenList.d.ts.map +1 -1
  109. package/dist/components/TokenList/TokenList.helpers.d.ts +2 -2
  110. package/dist/components/TokenList/TokenList.helpers.d.ts.map +1 -1
  111. package/dist/components/TokenList/TokenList.styles.d.ts +1100 -1
  112. package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
  113. package/dist/components/TokenList/TokenList.types.d.ts +4 -9
  114. package/dist/components/TokenList/TokenList.types.d.ts.map +1 -1
  115. package/dist/components/TokenList/index.d.ts +0 -1
  116. package/dist/components/TokenList/index.d.ts.map +1 -1
  117. package/dist/components/UpdateUrl.d.ts +1 -6
  118. package/dist/components/UpdateUrl.d.ts.map +1 -1
  119. package/dist/components/WidgetEvents.d.ts.map +1 -1
  120. package/dist/constants/errors.d.ts +4 -4
  121. package/dist/constants/errors.d.ts.map +1 -1
  122. package/dist/constants/index.d.ts +1 -0
  123. package/dist/constants/index.d.ts.map +1 -1
  124. package/dist/constants/messages.d.ts +1 -1
  125. package/dist/constants/navigationRoutes.d.ts +1 -2
  126. package/dist/constants/navigationRoutes.d.ts.map +1 -1
  127. package/dist/constants/searchParams.d.ts +2 -1
  128. package/dist/constants/searchParams.d.ts.map +1 -1
  129. package/dist/constants/warnings.d.ts +2 -2
  130. package/dist/constants/warnings.d.ts.map +1 -1
  131. package/dist/containers/App/App.d.ts +3 -0
  132. package/dist/containers/App/App.d.ts.map +1 -0
  133. package/dist/containers/App/App.styles.d.ts +158 -0
  134. package/dist/containers/App/App.styles.d.ts.map +1 -0
  135. package/dist/containers/App/index.d.ts +2 -0
  136. package/dist/containers/App/index.d.ts.map +1 -0
  137. package/dist/containers/QuoteInfo/QuoteInfo.d.ts +4 -0
  138. package/dist/containers/QuoteInfo/QuoteInfo.d.ts.map +1 -0
  139. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts +788 -0
  140. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts.map +1 -0
  141. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts +20 -0
  142. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts.map +1 -0
  143. package/dist/containers/QuoteInfo/index.d.ts +2 -0
  144. package/dist/containers/QuoteInfo/index.d.ts.map +1 -0
  145. package/dist/containers/Wallets/Wallets.d.ts +6 -0
  146. package/dist/containers/Wallets/Wallets.d.ts.map +1 -0
  147. package/dist/containers/Wallets/Wallets.types.d.ts +11 -0
  148. package/dist/containers/Wallets/Wallets.types.d.ts.map +1 -0
  149. package/dist/containers/Wallets/index.d.ts +2 -0
  150. package/dist/containers/Wallets/index.d.ts.map +1 -0
  151. package/dist/containers/Widget/Widget.d.ts +5 -0
  152. package/dist/containers/Widget/Widget.d.ts.map +1 -0
  153. package/dist/containers/Widget/Widget.types.d.ts +5 -0
  154. package/dist/containers/Widget/Widget.types.d.ts.map +1 -0
  155. package/dist/containers/Widget/index.d.ts +3 -0
  156. package/dist/containers/Widget/index.d.ts.map +1 -0
  157. package/dist/containers/WidgetInfo/WidgetInfo.d.ts +6 -0
  158. package/dist/containers/WidgetInfo/WidgetInfo.d.ts.map +1 -0
  159. package/dist/containers/WidgetInfo/WidgetInfo.helpers.d.ts +20 -0
  160. package/dist/containers/WidgetInfo/WidgetInfo.helpers.d.ts.map +1 -0
  161. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +21 -0
  162. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts.map +1 -0
  163. package/dist/containers/WidgetInfo/index.d.ts +2 -0
  164. package/dist/containers/WidgetInfo/index.d.ts.map +1 -0
  165. package/dist/containers/WidgetProvider/WidgetProvider.d.ts +5 -0
  166. package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -0
  167. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts +7 -0
  168. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts.map +1 -0
  169. package/dist/containers/WidgetProvider/index.d.ts +2 -0
  170. package/dist/containers/WidgetProvider/index.d.ts.map +1 -0
  171. package/dist/hooks/useConfirmSwap/index.d.ts +2 -0
  172. package/dist/hooks/useConfirmSwap/index.d.ts.map +1 -0
  173. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts +3 -0
  174. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -0
  175. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts +19 -0
  176. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -0
  177. package/dist/hooks/{useConfirmSwap.d.ts → useConfirmSwap/useConfirmSwap.types.d.ts} +5 -7
  178. package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts.map +1 -0
  179. package/dist/hooks/{useFetchBestRoute.d.ts → useFetchQuote.d.ts} +3 -3
  180. package/dist/hooks/useFetchQuote.d.ts.map +1 -0
  181. package/dist/hooks/useForceAutoConnect.d.ts +2 -0
  182. package/dist/hooks/useForceAutoConnect.d.ts.map +1 -0
  183. package/dist/hooks/useLanguage.d.ts +1 -1
  184. package/dist/hooks/useLanguage.d.ts.map +1 -1
  185. package/dist/hooks/useNavigateBack.d.ts +1 -3
  186. package/dist/hooks/useNavigateBack.d.ts.map +1 -1
  187. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.d.ts +1 -1
  188. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts +2 -2
  189. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts.map +1 -1
  190. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts +5 -7
  191. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts.map +1 -1
  192. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts +1 -0
  193. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts.map +1 -1
  194. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts +5 -1
  195. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts.map +1 -1
  196. package/dist/hooks/useSwapInput.d.ts +4 -2
  197. package/dist/hooks/useSwapInput.d.ts.map +1 -1
  198. package/dist/hooks/useSyncStoresWithConfig.d.ts +1 -2
  199. package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
  200. package/dist/hooks/useTheme.d.ts +1 -1
  201. package/dist/hooks/useTheme.d.ts.map +1 -1
  202. package/dist/hooks/useWalletList.d.ts.map +1 -1
  203. package/dist/index.d.ts +21 -8
  204. package/dist/index.d.ts.map +1 -1
  205. package/dist/index.js +1 -1
  206. package/dist/index.js.map +4 -4
  207. package/dist/pages/ConfirmSwapPage.d.ts +1 -6
  208. package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
  209. package/dist/pages/HistoryPage.d.ts.map +1 -1
  210. package/dist/pages/Home.d.ts.map +1 -1
  211. package/dist/pages/LanguagePage.d.ts.map +1 -1
  212. package/dist/pages/LiquiditySourcePage.d.ts +1 -2
  213. package/dist/pages/LiquiditySourcePage.d.ts.map +1 -1
  214. package/dist/pages/SelectBlockchainPage.d.ts.map +1 -1
  215. package/dist/pages/SelectSwapItemsPage.d.ts.map +1 -1
  216. package/dist/pages/SettingsPage.d.ts +1 -6
  217. package/dist/pages/SettingsPage.d.ts.map +1 -1
  218. package/dist/pages/SwapDetailsPage.d.ts.map +1 -1
  219. package/dist/pages/ThemePage.d.ts.map +1 -1
  220. package/dist/pages/WalletsPage.d.ts +1 -8
  221. package/dist/pages/WalletsPage.d.ts.map +1 -1
  222. package/dist/store/AppStore.d.ts +47 -0
  223. package/dist/store/AppStore.d.ts.map +1 -0
  224. package/dist/store/app.d.ts +41 -22
  225. package/dist/store/app.d.ts.map +1 -1
  226. package/dist/store/notification.d.ts +4 -3
  227. package/dist/store/notification.d.ts.map +1 -1
  228. package/dist/store/quote.d.ts +89 -0
  229. package/dist/store/quote.d.ts.map +1 -0
  230. package/dist/store/slices/config.d.ts +3 -2
  231. package/dist/store/slices/config.d.ts.map +1 -1
  232. package/dist/store/slices/data.d.ts +5 -2
  233. package/dist/store/slices/data.d.ts.map +1 -1
  234. package/dist/store/slices/settings.d.ts +39 -0
  235. package/dist/store/slices/settings.d.ts.map +1 -0
  236. package/dist/store/ui.d.ts +2 -1
  237. package/dist/store/ui.d.ts.map +1 -1
  238. package/dist/store/wallets.d.ts +14 -9
  239. package/dist/store/wallets.d.ts.map +1 -1
  240. package/dist/types/config.d.ts +41 -8
  241. package/dist/types/config.d.ts.map +1 -1
  242. package/dist/types/index.d.ts +1 -1
  243. package/dist/types/index.d.ts.map +1 -1
  244. package/dist/types/quote.d.ts +82 -0
  245. package/dist/types/quote.d.ts.map +1 -0
  246. package/dist/types/swap.d.ts +4 -14
  247. package/dist/types/swap.d.ts.map +1 -1
  248. package/dist/types/wallets.d.ts +15 -1
  249. package/dist/types/wallets.d.ts.map +1 -1
  250. package/dist/utils/colors.d.ts.map +1 -1
  251. package/dist/utils/configs.d.ts +1 -0
  252. package/dist/utils/configs.d.ts.map +1 -1
  253. package/dist/utils/meta.d.ts +2 -1
  254. package/dist/utils/meta.d.ts.map +1 -1
  255. package/dist/utils/numbers.d.ts +1 -1
  256. package/dist/utils/numbers.d.ts.map +1 -1
  257. package/dist/utils/providers.d.ts +2 -2
  258. package/dist/utils/providers.d.ts.map +1 -1
  259. package/dist/utils/queue.d.ts +2 -2
  260. package/dist/utils/queue.d.ts.map +1 -1
  261. package/dist/utils/quote.d.ts +32 -0
  262. package/dist/utils/quote.d.ts.map +1 -0
  263. package/dist/utils/settings.d.ts +6 -2
  264. package/dist/utils/settings.d.ts.map +1 -1
  265. package/dist/utils/swap.d.ts +35 -24
  266. package/dist/utils/swap.d.ts.map +1 -1
  267. package/dist/utils/time.d.ts +1 -1
  268. package/dist/utils/time.d.ts.map +1 -1
  269. package/dist/utils/wallets.d.ts +9 -10
  270. package/dist/utils/wallets.d.ts.map +1 -1
  271. package/package.json +12 -10
  272. package/src/QueueManager.tsx +18 -17
  273. package/src/components/AppRouter.tsx +8 -32
  274. package/src/components/AppRoutes.tsx +57 -69
  275. package/src/components/BlockchainList/BlockchainList.styles.ts +2 -2
  276. package/src/components/BlockchainList/BlockchainList.tsx +4 -4
  277. package/src/components/BlockchainsSection/BlockchainsSection.styles.ts +1 -1
  278. package/src/components/BlockchainsSection/BlockchainsSection.tsx +26 -17
  279. package/src/components/ConfirmWalletsModal/ConfirmWallets.helpers.ts +2 -64
  280. package/src/components/ConfirmWalletsModal/ConfirmWallets.styles.ts +29 -10
  281. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +43 -47
  282. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.types.ts +1 -3
  283. package/src/components/ConfirmWalletsModal/WalletList.tsx +9 -8
  284. package/src/components/ConfirmWalletsModal/WalletList.type.ts +1 -4
  285. package/src/components/HeaderButtons/HomeButtons.tsx +28 -18
  286. package/src/components/Layout/Layout.styles.ts +2 -0
  287. package/src/components/Layout/Layout.tsx +20 -7
  288. package/src/components/Layout/Layout.types.ts +2 -2
  289. package/src/components/LoadingSwapDetails/LoadingSwapDetails.styles.ts +65 -61
  290. package/src/components/LoadingSwapDetails/LoadingSwapDetails.tsx +28 -34
  291. package/src/components/{NoRoutes/NoRoutes.helper.ts → NoResult/NoResult.helpers.ts} +23 -16
  292. package/src/components/{NoRoutes/NoRoutes.styles.ts → NoResult/NoResult.styles.ts} +2 -0
  293. package/src/components/{NoRoutes/NoRoutes.tsx → NoResult/NoResult.tsx} +12 -17
  294. package/src/components/{NoRoutes/NoRoutes.types.ts → NoResult/NoResult.types.ts} +3 -2
  295. package/src/components/NoResult/index.ts +1 -0
  296. package/src/components/NotificationContent/NotificationContent.tsx +5 -3
  297. package/src/components/Quote/Quote.styles.ts +250 -0
  298. package/src/components/Quote/Quote.tsx +414 -0
  299. package/src/components/Quote/Quote.types.ts +15 -0
  300. package/src/components/Quote/QuoteSummary.styles.ts +16 -0
  301. package/src/components/Quote/QuoteSummary.tsx +46 -0
  302. package/src/components/Quote/index.ts +2 -0
  303. package/src/components/QuoteSkeleton/QuoteSkeleton.styles.ts +42 -0
  304. package/src/components/QuoteSkeleton/QuoteSkeleton.tsx +30 -0
  305. package/src/components/QuoteSkeleton/QuoteSkeleton.types.ts +5 -0
  306. package/src/components/QuoteSkeleton/QuoteSummarySkeleton.styles.ts +57 -0
  307. package/src/components/QuoteSkeleton/QuoteSummarySkeleton.tsx +76 -0
  308. package/src/components/QuoteSkeleton/QuoteSummarySkeleton.types.ts +6 -0
  309. package/src/components/QuoteSkeleton/StepSkeleton.styles.ts +33 -0
  310. package/src/components/QuoteSkeleton/StepSkeleton.tsx +44 -0
  311. package/src/components/QuoteSkeleton/StepSkeleton.types.ts +1 -0
  312. package/src/components/QuoteSkeleton/index.ts +3 -0
  313. package/src/components/QuoteWarningsAndErrors/HighValueLossWarningModal.tsx +107 -0
  314. package/src/components/{RouteErrors/RouteErrorsModalItem.tsx → QuoteWarningsAndErrors/QuoteErrorsModalItem.tsx} +4 -4
  315. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.ts +74 -0
  316. package/src/components/{RouteErrors/RouteErrors.styles.ts → QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.ts} +8 -1
  317. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.tsx +103 -0
  318. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.ts +25 -0
  319. package/src/components/QuoteWarningsAndErrors/SlippageWariningModal.tsx +77 -0
  320. package/src/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.tsx +38 -0
  321. package/src/components/QuoteWarningsAndErrors/index.ts +1 -0
  322. package/src/components/Slippage/Slippage.styles.ts +15 -5
  323. package/src/components/Slippage/Slippage.tsx +11 -10
  324. package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +5 -8
  325. package/src/components/SwapDetails/SwapDetails.helpers.tsx +1 -1
  326. package/src/components/SwapDetails/SwapDetails.styles.ts +36 -33
  327. package/src/components/SwapDetails/SwapDetails.tsx +41 -56
  328. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.Warning.tsx +1 -1
  329. package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +4 -3
  330. package/src/components/SwapDetailsModal/SwapDetailsModal.Cancel.tsx +2 -2
  331. package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +14 -8
  332. package/src/components/SwapDetailsModal/SwapDetailsModal.helpers.tsx +1 -1
  333. package/src/components/SwapDetailsModal/SwapDetailsModal.tsx +1 -1
  334. package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +1 -1
  335. package/src/components/SwapsGroup/SwapsGroup.styles.ts +10 -1
  336. package/src/components/SwapsGroup/SwapsGroup.tsx +3 -5
  337. package/src/components/SwitchFromAndTo.tsx +2 -2
  338. package/src/components/TokenList/TokenList.helpers.ts +2 -2
  339. package/src/components/TokenList/TokenList.styles.ts +74 -38
  340. package/src/components/TokenList/TokenList.tsx +35 -26
  341. package/src/components/TokenList/TokenList.types.ts +4 -10
  342. package/src/components/TokenList/index.ts +0 -1
  343. package/src/components/UpdateUrl.tsx +35 -30
  344. package/src/components/WidgetEvents.tsx +4 -2
  345. package/src/constants/errors.ts +17 -15
  346. package/src/constants/index.ts +1 -0
  347. package/src/constants/messages.ts +1 -1
  348. package/src/constants/navigationRoutes.ts +7 -8
  349. package/src/constants/searchParams.ts +1 -0
  350. package/src/constants/warnings.ts +7 -7
  351. package/src/containers/App/App.styles.ts +18 -0
  352. package/src/containers/App/App.tsx +52 -0
  353. package/src/containers/App/index.ts +1 -0
  354. package/src/containers/QuoteInfo/QuoteInfo.styles.ts +31 -0
  355. package/src/containers/QuoteInfo/QuoteInfo.tsx +99 -0
  356. package/src/containers/QuoteInfo/QuoteInfo.types.ts +20 -0
  357. package/src/containers/QuoteInfo/index.ts +1 -0
  358. package/src/{Wallets.tsx → containers/Wallets/Wallets.tsx} +48 -34
  359. package/src/containers/Wallets/Wallets.types.ts +12 -0
  360. package/src/containers/Wallets/index.ts +1 -0
  361. package/src/containers/Widget/Widget.tsx +19 -0
  362. package/src/containers/Widget/Widget.types.ts +5 -0
  363. package/src/containers/Widget/index.ts +2 -0
  364. package/src/containers/WidgetInfo/WidgetInfo.helpers.ts +64 -0
  365. package/src/containers/WidgetInfo/WidgetInfo.tsx +62 -0
  366. package/src/containers/WidgetInfo/WidgetInfo.types.ts +21 -0
  367. package/src/containers/WidgetInfo/index.ts +1 -0
  368. package/src/containers/WidgetProvider/WidgetProvider.tsx +28 -0
  369. package/src/containers/WidgetProvider/WidgetProvider.types.ts +7 -0
  370. package/src/containers/WidgetProvider/index.ts +1 -0
  371. package/src/hooks/useConfirmSwap/index.ts +1 -0
  372. package/src/hooks/useConfirmSwap/useConfirmSwap.helpers.ts +172 -0
  373. package/src/hooks/useConfirmSwap/useConfirmSwap.ts +137 -0
  374. package/src/hooks/useConfirmSwap/useConfirmSwap.types.ts +19 -0
  375. package/src/hooks/{useFetchBestRoute.ts → useFetchQuote.ts} +3 -3
  376. package/src/hooks/useForceAutoConnect.ts +27 -0
  377. package/src/hooks/useLanguage.ts +4 -5
  378. package/src/hooks/useNavigateBack.ts +3 -52
  379. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.ts +1 -1
  380. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.ts +37 -7
  381. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.ts +60 -0
  382. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.test.ts +78 -3
  383. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.ts +15 -6
  384. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.ts +6 -1
  385. package/src/hooks/useSwapInput.ts +141 -48
  386. package/src/hooks/useSyncStoresWithConfig.ts +40 -24
  387. package/src/hooks/useTheme.ts +4 -5
  388. package/src/hooks/useWalletList.ts +3 -5
  389. package/src/index.ts +50 -5
  390. package/src/pages/ConfirmSwapPage.tsx +117 -266
  391. package/src/pages/HistoryPage.tsx +2 -7
  392. package/src/pages/Home.tsx +88 -303
  393. package/src/pages/LanguagePage.tsx +0 -5
  394. package/src/pages/LiquiditySourcePage.tsx +24 -37
  395. package/src/pages/SelectBlockchainPage.tsx +31 -24
  396. package/src/pages/SelectSwapItemsPage.tsx +18 -31
  397. package/src/pages/SettingsPage.tsx +32 -27
  398. package/src/pages/SwapDetailsPage.tsx +6 -7
  399. package/src/pages/ThemePage.tsx +2 -7
  400. package/src/pages/WalletsPage.tsx +9 -19
  401. package/src/services/httpService.ts +1 -1
  402. package/src/store/AppStore.tsx +41 -0
  403. package/src/store/app.ts +44 -6
  404. package/src/store/{bestRoute.ts → quote.ts} +71 -64
  405. package/src/store/slices/config.ts +26 -15
  406. package/src/store/slices/data.ts +74 -35
  407. package/src/store/slices/settings.ts +168 -0
  408. package/src/store/wallets.ts +68 -37
  409. package/src/types/config.ts +53 -8
  410. package/src/types/index.ts +1 -1
  411. package/src/types/quote.ts +107 -0
  412. package/src/types/swap.ts +4 -13
  413. package/src/types/wallets.ts +18 -1
  414. package/src/utils/colors.ts +2 -1
  415. package/src/utils/configs.ts +2 -1
  416. package/src/utils/date.ts +1 -1
  417. package/src/utils/meta.ts +8 -1
  418. package/src/utils/numbers.ts +1 -1
  419. package/src/utils/providers.ts +8 -5
  420. package/src/utils/queue.ts +2 -2
  421. package/src/utils/quote.ts +338 -0
  422. package/src/utils/settings.ts +17 -10
  423. package/src/utils/swap.ts +154 -120
  424. package/src/utils/time.ts +1 -1
  425. package/src/utils/wallets.ts +156 -161
  426. package/dist/Wallets.d.ts +0 -17
  427. package/dist/Wallets.d.ts.map +0 -1
  428. package/dist/Widget.d.ts +0 -9
  429. package/dist/Widget.d.ts.map +0 -1
  430. package/dist/components/LoadingSwapDetails/LoadingSwapDetailStep.d.ts +0 -4
  431. package/dist/components/LoadingSwapDetails/LoadingSwapDetailStep.d.ts.map +0 -1
  432. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.types.d.ts +0 -4
  433. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.types.d.ts.map +0 -1
  434. package/dist/components/NoRoutes/NoRoutes.d.ts +0 -4
  435. package/dist/components/NoRoutes/NoRoutes.d.ts.map +0 -1
  436. package/dist/components/NoRoutes/NoRoutes.helper.d.ts +0 -3
  437. package/dist/components/NoRoutes/NoRoutes.helper.d.ts.map +0 -1
  438. package/dist/components/NoRoutes/NoRoutes.types.d.ts.map +0 -1
  439. package/dist/components/NoRoutes/index.d.ts +0 -2
  440. package/dist/components/NoRoutes/index.d.ts.map +0 -1
  441. package/dist/components/RouteErrors/RouteErrors.d.ts +0 -4
  442. package/dist/components/RouteErrors/RouteErrors.d.ts.map +0 -1
  443. package/dist/components/RouteErrors/RouteErrors.styles.d.ts.map +0 -1
  444. package/dist/components/RouteErrors/RouteErrors.types.d.ts +0 -24
  445. package/dist/components/RouteErrors/RouteErrors.types.d.ts.map +0 -1
  446. package/dist/components/RouteErrors/RouteErrorsModal.d.ts +0 -4
  447. package/dist/components/RouteErrors/RouteErrorsModal.d.ts.map +0 -1
  448. package/dist/components/RouteErrors/RouteErrorsModalItem.d.ts +0 -4
  449. package/dist/components/RouteErrors/RouteErrorsModalItem.d.ts.map +0 -1
  450. package/dist/components/RouteErrors/index.d.ts +0 -2
  451. package/dist/components/RouteErrors/index.d.ts.map +0 -1
  452. package/dist/hooks/useConfirmSwap.d.ts.map +0 -1
  453. package/dist/hooks/useFetchBestRoute.d.ts.map +0 -1
  454. package/dist/store/bestRoute.d.ts +0 -77
  455. package/dist/store/bestRoute.d.ts.map +0 -1
  456. package/dist/store/meta.d.ts +0 -23
  457. package/dist/store/meta.d.ts.map +0 -1
  458. package/dist/store/settings.d.ts +0 -81
  459. package/dist/store/settings.d.ts.map +0 -1
  460. package/dist/types/routing.d.ts +0 -65
  461. package/dist/types/routing.d.ts.map +0 -1
  462. package/dist/utils/routing.d.ts +0 -28
  463. package/dist/utils/routing.d.ts.map +0 -1
  464. package/src/Widget.tsx +0 -119
  465. package/src/components/LoadingSwapDetails/LoadingSwapDetailStep.tsx +0 -41
  466. package/src/components/LoadingSwapDetails/LoadingSwapDetails.types.ts +0 -3
  467. package/src/components/NoRoutes/index.ts +0 -1
  468. package/src/components/RouteErrors/RouteErrors.tsx +0 -79
  469. package/src/components/RouteErrors/RouteErrors.types.ts +0 -29
  470. package/src/components/RouteErrors/RouteErrorsModal.tsx +0 -129
  471. package/src/components/RouteErrors/index.ts +0 -1
  472. package/src/hooks/useConfirmSwap.ts +0 -303
  473. package/src/store/meta.ts +0 -39
  474. package/src/store/settings.ts +0 -158
  475. package/src/types/routing.ts +0 -77
  476. package/src/utils/routing.ts +0 -321
package/src/index.ts CHANGED
@@ -1,3 +1,5 @@
1
+ import type { WidgetProps } from './containers/Widget';
2
+ import type { ConnectedWallet } from './store/wallets';
1
3
  import type {
2
4
  BlockchainAndTokenConfig,
3
5
  WidgetColors,
@@ -5,10 +7,12 @@ import type {
5
7
  WidgetConfig,
6
8
  WidgetTheme,
7
9
  } from './types';
8
- import type { WidgetProps } from './Widget';
9
10
  import type {
11
+ EventSeverity,
12
+ PendingSwapWithQueueID,
10
13
  Route,
11
14
  RouteEvent,
15
+ RouteExecutionEvents,
12
16
  RouteFailedEvent,
13
17
  RouteStartedEvent,
14
18
  RouteSucceededEvent,
@@ -27,7 +31,12 @@ import type {
27
31
  EventHandler as HandleWalletsUpdate,
28
32
  ProviderInterface,
29
33
  } from '@rango-dev/wallets-react';
30
- import type { WalletType } from '@rango-dev/wallets-shared';
34
+ import type {
35
+ WalletInfo,
36
+ WalletState,
37
+ WalletType,
38
+ } from '@rango-dev/wallets-shared';
39
+ import type { PendingSwap, PendingSwapStep } from 'rango-types';
31
40
 
32
41
  import {
33
42
  MainEvents,
@@ -37,10 +46,19 @@ import {
37
46
  StepExecutionEventStatus,
38
47
  useEvents as useWidgetEvents,
39
48
  } from '@rango-dev/queue-manager-rango-preset';
40
- import { useWallets } from '@rango-dev/wallets-react';
49
+ import {
50
+ readAccountAddress,
51
+ useWallets,
52
+ Events as WalletEvents,
53
+ } from '@rango-dev/wallets-react';
54
+ import { Networks, WalletTypes } from '@rango-dev/wallets-shared';
55
+ import { PendingSwapNetworkStatus } from 'rango-types';
41
56
 
42
- import { WidgetWallets } from './Wallets';
43
- import { Widget } from './Widget';
57
+ import { WidgetWallets } from './containers/Wallets';
58
+ import { Widget } from './containers/Widget';
59
+ import { useWidget } from './containers/WidgetInfo';
60
+ import { WidgetProvider } from './containers/WidgetProvider';
61
+ import { customizedThemeTokens } from './utils/ui';
44
62
 
45
63
  export type {
46
64
  WidgetConfig,
@@ -67,15 +85,42 @@ export type {
67
85
  StepApprovalTxSucceededEvent,
68
86
  StepOutputRevealedEvent,
69
87
  HandleWalletsUpdate,
88
+ ConnectedWallet,
70
89
  };
71
90
  export {
72
91
  Widget,
92
+ /**
93
+ * @deprecated Use `WidgetProvider` instead. This component will be removed in future versions.
94
+ */
73
95
  WidgetWallets,
96
+ WidgetProvider,
97
+ useWidget,
74
98
  useWallets,
75
99
  useWidgetEvents,
100
+ customizedThemeTokens,
76
101
  MainEvents,
77
102
  RouteEventType,
78
103
  StepEventType,
79
104
  StepExecutionEventStatus,
80
105
  StepExecutionBlockedEventStatus,
81
106
  };
107
+
108
+ // Internal type exports for Rango
109
+ export type {
110
+ WalletState,
111
+ WalletInfo,
112
+ PendingSwap,
113
+ PendingSwapWithQueueID,
114
+ PendingSwapStep,
115
+ RouteExecutionEvents,
116
+ EventSeverity,
117
+ };
118
+
119
+ // Internal function and enum exports for Rango
120
+ export {
121
+ readAccountAddress,
122
+ Networks,
123
+ WalletEvents,
124
+ WalletTypes,
125
+ PendingSwapNetworkStatus,
126
+ };
@@ -2,20 +2,16 @@
2
2
  import type {
3
3
  ConfirmSwap,
4
4
  ConfirmSwapFetchResult,
5
- } from '../hooks/useConfirmSwap';
6
- import type { WidgetConfig } from '../types';
5
+ } from '../hooks/useConfirmSwap/useConfirmSwap.types';
7
6
 
8
7
  import { i18n } from '@lingui/core';
9
8
  import { useManager } from '@rango-dev/queue-manager-react';
10
9
  import {
11
10
  Alert,
12
- BestRoute,
13
- BestRouteSkeleton,
14
11
  Button,
12
+ css,
15
13
  Divider,
16
14
  IconButton,
17
- MessageBox,
18
- Modal,
19
15
  RefreshIcon,
20
16
  SettingsIcon,
21
17
  styled,
@@ -23,66 +19,31 @@ import {
23
19
  Typography,
24
20
  WalletIcon,
25
21
  } from '@rango-dev/ui';
26
- import React, { useEffect, useState } from 'react';
22
+ import React, { useEffect, useLayoutEffect, useRef, useState } from 'react';
27
23
  import { flushSync } from 'react-dom';
28
24
  import { useNavigate } from 'react-router-dom';
29
25
 
30
- import {
31
- formatBestRoute,
32
- getRequiredWallets,
33
- } from '../components/ConfirmWalletsModal/ConfirmWallets.helpers';
26
+ import { getRequiredWallets } from '../components/ConfirmWalletsModal/ConfirmWallets.helpers';
34
27
  import { ConfirmWalletsModal } from '../components/ConfirmWalletsModal/ConfirmWalletsModal';
35
28
  import { HeaderButton } from '../components/HeaderButtons/HeaderButtons.styles';
36
29
  import { Layout } from '../components/Layout';
37
- import { NoRoutes } from '../components/NoRoutes';
38
- import { getConfirmSwapErrorMessage } from '../constants/errors';
39
30
  import { navigationRoutes } from '../constants/navigationRoutes';
40
- import {
41
- GAS_FEE_MAX_DECIMALS,
42
- GAS_FEE_MIN_DECIMALS,
43
- PERCENTAGE_CHANGE_MAX_DECIMALS,
44
- PERCENTAGE_CHANGE_MIN_DECIMALS,
45
- TOKEN_AMOUNT_MAX_DECIMALS,
46
- TOKEN_AMOUNT_MIN_DECIMALS,
47
- USD_VALUE_MAX_DECIMALS,
48
- USD_VALUE_MIN_DECIMALS,
49
- } from '../constants/routing';
50
- import { getRouteWarningMessage } from '../constants/warnings';
31
+ import { getQuoteUpdateWarningMessage } from '../constants/warnings';
32
+ import { QuoteInfo } from '../containers/QuoteInfo';
51
33
  import { useConfirmSwap } from '../hooks/useConfirmSwap';
52
- import { useBestRouteStore } from '../store/bestRoute';
53
- import { useMetaStore } from '../store/meta';
54
- import { useSettingsStore } from '../store/settings';
34
+ import { useAppStore } from '../store/AppStore';
35
+ import { useQuoteStore } from '../store/quote';
55
36
  import { useUiStore } from '../store/ui';
56
37
  import { useWalletsStore } from '../store/wallets';
57
- import {
58
- ConfirmSwapErrorTypes,
59
- RouteWarningType,
60
- SlippageWarningType,
61
- } from '../types';
38
+ import { QuoteWarningType } from '../types';
62
39
  import { getContainer } from '../utils/common';
63
- import {
64
- numberToString,
65
- secondsToString,
66
- totalArrivalTime,
67
- } from '../utils/numbers';
68
- import { getPriceImpactLevel } from '../utils/routing';
69
- import { getPercentageChange, getTotalFeeInUsd } from '../utils/swap';
70
40
 
71
41
  const Container = styled('div', {
72
42
  position: 'relative',
73
43
  width: '100%',
74
- '& .description': {
75
- display: 'flex',
76
- justifyContent: 'space-between',
77
- alignItems: 'center',
78
- paddingBottom: '$10',
79
- },
80
- '& .icon': {
81
- width: '$24',
82
- height: '$24',
83
- display: 'flex',
84
- justifyContent: 'center',
85
- alignItems: 'center',
44
+
45
+ '& .quote-update__alert': {
46
+ paddingTop: '$10',
86
47
  },
87
48
  });
88
49
 
@@ -90,54 +51,55 @@ const Buttons = styled('div', {
90
51
  width: '100%',
91
52
  display: 'flex',
92
53
  justifyContent: 'space-between',
93
- '& .confirm-button': {
94
- flexGrow: 1,
95
- paddingRight: '$10',
96
- },
97
54
  [`& ${IconButton}`]: {
98
55
  width: '$48',
99
56
  height: '$48',
100
57
  },
101
58
  });
102
59
 
103
- type PropTypes = {
104
- config?: WidgetConfig;
105
- };
60
+ const confirmBtnStyles = css({
61
+ flexGrow: 1,
62
+ paddingRight: '$10',
63
+ });
64
+
65
+ const iconStyles = css({
66
+ width: '$24',
67
+ height: '$24',
68
+ display: 'flex',
69
+ justifyContent: 'center',
70
+ alignItems: 'center',
71
+ });
106
72
 
107
- export function ConfirmSwapPage(props: PropTypes) {
73
+ const descriptionStyles = css({
74
+ display: 'flex',
75
+ justifyContent: 'space-between',
76
+ alignItems: 'center',
77
+ });
78
+
79
+ export function ConfirmSwapPage() {
108
80
  //TODO: move component's logics to a custom hook
109
- const { config } = props;
110
81
  const {
111
- bestRoute,
112
- inputAmount,
113
- outputAmount,
114
- inputUsdValue,
115
- outputUsdValue,
82
+ quote,
116
83
  setInputAmount,
117
84
  selectedWallets,
118
- routeWalletsConfirmed,
119
- setRouteWalletConfirmed,
85
+ quoteWalletsConfirmed,
86
+ setQuoteWalletConfirmed,
120
87
  customDestination,
121
- } = useBestRouteStore();
88
+ quoteWarningsConfirmed,
89
+ } = useQuoteStore();
122
90
  const navigate = useNavigate();
123
91
  const [dbErrorMessage, setDbErrorMessage] = useState<string>('');
124
- const [showSlippageWarning, setShowSlippageWarning] = useState(false);
125
92
 
126
93
  const { connectedWallets } = useWalletsStore();
127
- const showWalletsOnInit = !routeWalletsConfirmed;
94
+ const showWalletsOnInit = !quoteWalletsConfirmed;
128
95
  const [showWallets, setShowWallets] = useState(false);
129
96
  const setSelectedSwap = useUiStore.use.setSelectedSwap();
130
- const {
131
- meta: { tokens, blockchains },
132
- loadingStatus: loadingMetaStatus,
133
- } = useMetaStore();
134
- const slippage = useSettingsStore.use.slippage();
135
- const customSlippage = useSettingsStore.use.customSlippage();
97
+ const disabledLiquiditySources = useAppStore().disabledLiquiditySources;
98
+ const prevDisabledLiquiditySources = useRef(disabledLiquiditySources);
136
99
  const { manager } = useManager();
137
- const selectedSlippage = customSlippage || slippage;
138
100
  const {
139
101
  fetch: confirmSwap,
140
- loading: fetchingConfirmationRoute,
102
+ loading: fetchingConfirmationQuote,
141
103
  cancelFetch,
142
104
  } = useConfirmSwap();
143
105
  const [confirmSwapResult, setConfirmSwapResult] =
@@ -146,32 +108,8 @@ export function ConfirmSwapPage(props: PropTypes) {
146
108
  error: null,
147
109
  warnings: null,
148
110
  });
149
- const showSkeleton =
150
- fetchingConfirmationRoute || loadingMetaStatus === 'loading';
151
- const showNoRouteFound =
152
- !fetchingConfirmationRoute &&
153
- confirmSwapResult.error &&
154
- [
155
- ConfirmSwapErrorTypes.NO_ROUTE,
156
- ConfirmSwapErrorTypes.REQUEST_FAILED,
157
- ].includes(confirmSwapResult.error.type);
158
- const showBestRoute =
159
- !showNoRouteFound &&
160
- !fetchingConfirmationRoute &&
161
- bestRoute &&
162
- bestRoute.result;
163
-
164
- const totalFeeInUsd = getTotalFeeInUsd(bestRoute, tokens);
165
- const percentageChange = numberToString(
166
- getPercentageChange(
167
- inputUsdValue?.toNumber() ?? 0,
168
- outputUsdValue?.toNumber() ?? 0
169
- ),
170
- PERCENTAGE_CHANGE_MIN_DECIMALS,
171
- PERCENTAGE_CHANGE_MAX_DECIMALS
172
- );
173
111
 
174
- const warningLevel = getPriceImpactLevel(parseFloat(percentageChange));
112
+ const [showQuoteWarningModal, setShowQuoteWarningModal] = useState(false);
175
113
 
176
114
  const onConfirmSwap: ConfirmSwap['fetch'] = async ({
177
115
  selectedWallets,
@@ -183,7 +121,7 @@ export function ConfirmSwapPage(props: PropTypes) {
183
121
  };
184
122
 
185
123
  const addNewSwap = async () => {
186
- if (confirmSwapResult.swap && routeWalletsConfirmed) {
124
+ if (confirmSwapResult.swap && quoteWalletsConfirmed) {
187
125
  try {
188
126
  await manager?.create(
189
127
  'swap',
@@ -191,12 +129,11 @@ export function ConfirmSwapPage(props: PropTypes) {
191
129
  { id: confirmSwapResult.swap.requestId }
192
130
  );
193
131
  setSelectedSwap(confirmSwapResult.swap.requestId);
194
- navigate(
195
- '/' + navigationRoutes.swaps + `/${confirmSwapResult.swap.requestId}`,
196
- {
197
- replace: true,
198
- }
199
- );
132
+
133
+ const swap_url = `../${navigationRoutes.swaps}/${confirmSwapResult.swap.requestId}`;
134
+ navigate(swap_url, {
135
+ replace: true,
136
+ });
200
137
  setTimeout(() => {
201
138
  setInputAmount('');
202
139
  }, 0);
@@ -211,8 +148,8 @@ export function ConfirmSwapPage(props: PropTypes) {
211
148
  };
212
149
 
213
150
  const onStartConfirmSwap = async () => {
214
- if (confirmSwapResult?.warnings?.slippage) {
215
- setShowSlippageWarning(true);
151
+ if (confirmSwapResult?.warnings?.quote && !quoteWarningsConfirmed) {
152
+ setShowQuoteWarningModal(true);
216
153
  } else {
217
154
  await onConfirm();
218
155
  }
@@ -224,13 +161,23 @@ export function ConfirmSwapPage(props: PropTypes) {
224
161
  swap: null,
225
162
  warnings: null,
226
163
  });
227
- confirmSwap({ selectedWallets })
164
+ confirmSwap({ selectedWallets, customDestination })
228
165
  .then((res) => {
229
166
  setConfirmSwapResult(res);
230
167
  })
231
168
  .catch((error) => console.error(error));
232
169
  };
233
170
 
171
+ useEffect(() => {
172
+ const disabledLiquiditySourceReset =
173
+ !!prevDisabledLiquiditySources.current.length &&
174
+ !disabledLiquiditySources.length;
175
+ if (disabledLiquiditySourceReset) {
176
+ void onRefresh();
177
+ }
178
+ prevDisabledLiquiditySources.current = disabledLiquiditySources;
179
+ }, [disabledLiquiditySources.length]);
180
+
234
181
  useEffect(() => {
235
182
  if (showWalletsOnInit) {
236
183
  cancelFetch();
@@ -252,10 +199,10 @@ export function ConfirmSwapPage(props: PropTypes) {
252
199
  }, []);
253
200
 
254
201
  useEffect(() => {
255
- const routeChanged =
256
- confirmSwapResult.warnings?.route?.type &&
257
- Object.values(RouteWarningType).includes(
258
- confirmSwapResult.warnings?.route?.type
202
+ const quoteChanged =
203
+ confirmSwapResult.warnings?.quote?.type &&
204
+ Object.values(QuoteWarningType).includes(
205
+ confirmSwapResult.warnings?.quote?.type
259
206
  );
260
207
 
261
208
  const selectedWalletDisconnected =
@@ -269,16 +216,15 @@ export function ConfirmSwapPage(props: PropTypes) {
269
216
  )
270
217
  );
271
218
 
272
- let routeWalletsChanged = false;
219
+ let quoteWalletsChanged = false;
273
220
 
274
- if (routeChanged) {
275
- let requiredWallets = getRequiredWallets(bestRoute);
221
+ if (quoteChanged) {
222
+ let requiredWallets = getRequiredWallets(quote);
276
223
 
277
224
  const lastStepToBlockchain =
278
- bestRoute?.result?.swaps[bestRoute.result.swaps.length - 1].to
279
- .blockchain;
225
+ quote?.result?.swaps[quote.result.swaps.length - 1].to.blockchain;
280
226
 
281
- const isLastWalletRequired = !!bestRoute?.result?.swaps.find(
227
+ const isLastWalletRequired = !!quote?.result?.swaps.find(
282
228
  (swap) => swap.from.blockchain === lastStepToBlockchain
283
229
  );
284
230
 
@@ -297,26 +243,34 @@ export function ConfirmSwapPage(props: PropTypes) {
297
243
  );
298
244
 
299
245
  if (!allRequiredWalletsSelected) {
300
- routeWalletsChanged = true;
246
+ quoteWalletsChanged = true;
301
247
  }
302
248
  }
303
249
 
304
- if (bestRoute && (selectedWalletDisconnected || routeWalletsChanged)) {
250
+ if (quote && (selectedWalletDisconnected || quoteWalletsChanged)) {
305
251
  queueMicrotask(() => flushSync(setShowWallets.bind(null, true)));
306
- setRouteWalletConfirmed(false);
252
+ setQuoteWalletConfirmed(false);
307
253
  }
308
254
  }, [
309
- confirmSwapResult.warnings?.route,
255
+ confirmSwapResult.warnings?.quote,
310
256
  selectedWallets.length,
311
257
  connectedWallets.length,
312
258
  ]);
313
259
 
260
+ useLayoutEffect(() => {
261
+ if (!quote) {
262
+ navigate(`../`);
263
+ }
264
+ }, []);
265
+
314
266
  return (
315
267
  <Layout
316
268
  header={{
317
269
  title: i18n.t('Confirm Swap'),
318
- onBack: navigate.bind(null, -1),
319
- hasConnectWallet: true,
270
+ onWallet: () => {
271
+ const wallets_url = `../${navigationRoutes.wallets}`;
272
+ navigate(wallets_url);
273
+ },
320
274
  suffix: (
321
275
  <Tooltip
322
276
  container={getContainer()}
@@ -325,7 +279,7 @@ export function ConfirmSwapPage(props: PropTypes) {
325
279
  <HeaderButton
326
280
  size="small"
327
281
  variant="ghost"
328
- onClick={() => navigate('/' + navigationRoutes.settings)}>
282
+ onClick={() => navigate('../' + navigationRoutes.settings)}>
329
283
  <SettingsIcon size={18} color="black" />
330
284
  </HeaderButton>
331
285
  </Tooltip>
@@ -333,13 +287,13 @@ export function ConfirmSwapPage(props: PropTypes) {
333
287
  }}
334
288
  footer={
335
289
  <Buttons>
336
- <div className="confirm-button">
290
+ <div className={confirmBtnStyles()}>
337
291
  <Button
338
292
  variant="contained"
339
293
  type="primary"
340
294
  size="large"
341
295
  fullWidth
342
- loading={fetchingConfirmationRoute}
296
+ loading={fetchingConfirmationQuote}
343
297
  disabled={!!confirmSwapResult.error}
344
298
  onClick={onStartConfirmSwap}>
345
299
  {i18n.t('Start Swap')}
@@ -349,86 +303,33 @@ export function ConfirmSwapPage(props: PropTypes) {
349
303
  variant="contained"
350
304
  type="primary"
351
305
  size="large"
352
- loading={fetchingConfirmationRoute}
306
+ loading={fetchingConfirmationQuote}
353
307
  onClick={setShowWallets.bind(null, true)}>
354
308
  <WalletIcon size={24} />
355
309
  </IconButton>
356
310
  </Buttons>
357
311
  }>
358
- <Modal
359
- anchor="bottom"
360
- open={showSlippageWarning}
361
- prefix={
362
- <Button
363
- size="small"
364
- variant="ghost"
365
- onClick={() => navigate('/' + navigationRoutes.settings)}>
366
- <Typography variant="label" size="medium" color="$neutral700">
367
- {i18n.t('Change settings')}
368
- </Typography>
369
- </Button>
370
- }
371
- container={document.querySelector('#swap-box') as HTMLDivElement}
372
- onClose={setShowSlippageWarning.bind(null, (prevState) => !prevState)}>
373
- {confirmSwapResult.warnings?.slippage && (
374
- <MessageBox
375
- type="warning"
376
- title={
377
- confirmSwapResult.warnings.slippage.type ===
378
- SlippageWarningType.HIGH_SLIPPAGE
379
- ? i18n.t('High slippage')
380
- : i18n.t('Low slippage')
381
- }
382
- description={
383
- confirmSwapResult.warnings.slippage.type ===
384
- SlippageWarningType.HIGH_SLIPPAGE
385
- ? i18n.t({
386
- id: ' Caution, your slippage is high (={selectedSlippage}). Your trade may be front run.',
387
- values: { selectedSlippage },
388
- })
389
- : i18n.t({
390
- id: 'We recommend you to increase slippage to at least {minRequiredSlippage} for this route.',
391
- values: {
392
- minRequiredSlippage:
393
- confirmSwapResult.warnings.slippage.slippage,
394
- },
395
- })
396
- }>
397
- <Divider size={18} />
398
- <Divider size={32} />
399
- <Button
400
- size="large"
401
- type="primary"
402
- variant="contained"
403
- fullWidth
404
- onClick={onConfirm}>
405
- {i18n.t('Confirm anyway')}
406
- </Button>
407
- </MessageBox>
408
- )}
409
- </Modal>
410
312
  {showWallets && (
411
313
  <ConfirmWalletsModal
412
314
  open={showWallets}
413
315
  onClose={() => setShowWallets(false)}
414
316
  onCancel={cancelFetch}
415
- loading={fetchingConfirmationRoute}
317
+ loading={fetchingConfirmationQuote}
416
318
  onCheckBalance={onConfirmSwap}
417
- config={config}
418
319
  />
419
320
  )}
420
321
 
421
322
  <Container>
422
- <div className="description">
323
+ <div className={descriptionStyles()}>
423
324
  <Typography variant="title" size="small">
424
325
  {i18n.t('You get')}
425
326
  </Typography>
426
327
  <Button
427
328
  style={{ padding: '0' }}
428
329
  variant="ghost"
429
- disabled={fetchingConfirmationRoute}
330
+ disabled={fetchingConfirmationQuote}
430
331
  onClick={onRefresh}>
431
- <div className="icon">
332
+ <div className={iconStyles()}>
432
333
  <RefreshIcon size={16} />
433
334
  </div>
434
335
  </Button>
@@ -439,88 +340,38 @@ export function ConfirmSwapPage(props: PropTypes) {
439
340
  <Divider size={12} />
440
341
  </>
441
342
  )}
442
- {confirmSwapResult.warnings?.route && (
443
- <>
343
+ {confirmSwapResult.warnings?.quoteUpdate && (
344
+ <div className="quote-update__alert">
444
345
  <Alert
445
346
  variant="alarm"
446
347
  type="warning"
447
- title={getRouteWarningMessage(confirmSwapResult.warnings.route)}
448
- />
449
- <Divider size={12} />
450
- </>
451
- )}
452
- {showSkeleton && <BestRouteSkeleton type="swap-preview" expanded />}
453
- {showBestRoute && (
454
- <BestRoute
455
- expanded={true}
456
- tooltipContainer={getContainer()}
457
- steps={formatBestRoute(bestRoute, blockchains) ?? []}
458
- input={{
459
- value: numberToString(
460
- inputAmount,
461
- TOKEN_AMOUNT_MIN_DECIMALS,
462
- TOKEN_AMOUNT_MAX_DECIMALS
463
- ),
464
- usdValue: numberToString(
465
- inputUsdValue,
466
- USD_VALUE_MIN_DECIMALS,
467
- USD_VALUE_MAX_DECIMALS
468
- ),
469
- }}
470
- output={{
471
- value: numberToString(
472
- outputAmount,
473
- TOKEN_AMOUNT_MIN_DECIMALS,
474
- TOKEN_AMOUNT_MAX_DECIMALS
475
- ),
476
- usdValue: numberToString(
477
- outputUsdValue,
478
- USD_VALUE_MIN_DECIMALS,
479
- USD_VALUE_MAX_DECIMALS
480
- ),
481
- }}
482
- totalFee={numberToString(
483
- totalFeeInUsd,
484
- GAS_FEE_MIN_DECIMALS,
485
- GAS_FEE_MAX_DECIMALS
486
- )}
487
- totalTime={secondsToString(
488
- totalArrivalTime(bestRoute.result?.swaps)
489
- )}
490
- recommended={true}
491
- type="swap-preview"
492
- percentageChange={percentageChange}
493
- warningLevel={warningLevel}
494
- />
495
- )}
496
- {showNoRouteFound && (
497
- <>
498
- <Divider size={12} />
499
- <NoRoutes
500
- diagnosisMessage={
501
- confirmSwapResult.error?.type === ConfirmSwapErrorTypes.NO_ROUTE
502
- ? confirmSwapResult.error.diagnosisMessage
503
- : undefined
348
+ title={
349
+ confirmSwapResult.warnings.quoteUpdate &&
350
+ getQuoteUpdateWarningMessage(
351
+ confirmSwapResult.warnings.quoteUpdate
352
+ )
504
353
  }
505
- error={
506
- confirmSwapResult.error?.type ===
507
- ConfirmSwapErrorTypes.REQUEST_FAILED
508
- }
509
- fetch={onRefresh}
510
354
  />
511
- </>
512
- )}
513
- {confirmSwapResult.error?.type ===
514
- ConfirmSwapErrorTypes.ROUTE_UPDATED_WITH_HIGH_VALUE_LOSS && (
515
- <>
516
- <Alert
517
- variant="alarm"
518
- type="error"
519
- title={getConfirmSwapErrorMessage(confirmSwapResult.error)}
520
- />
521
- <Divider size={12} />
522
- </>
355
+ </div>
523
356
  )}
357
+ <QuoteInfo
358
+ quote={quote}
359
+ type="swap-preview"
360
+ expanded={true}
361
+ alertPosition="top"
362
+ error={confirmSwapResult.error}
363
+ loading={fetchingConfirmationQuote}
364
+ warning={confirmSwapResult.warnings?.quote ?? null}
365
+ refetchQuote={onRefresh}
366
+ showWarningModal={showQuoteWarningModal}
367
+ onOpenWarningModal={() => setShowQuoteWarningModal(true)}
368
+ onCloseWarningModal={() => setShowQuoteWarningModal(false)}
369
+ onConfirmWarningModal={async () => {
370
+ setShowQuoteWarningModal(false);
371
+ await addNewSwap();
372
+ }}
373
+ onChangeSettings={() => navigate('../' + navigationRoutes.settings)}
374
+ />
524
375
  </Container>
525
376
  </Layout>
526
377
  );