@rango-dev/widget-embedded 0.19.0 → 0.19.1-next.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 (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 +20 -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 +13 -11
  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 +249 -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 +53 -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,16 @@ 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 {
40
+ PendingSwap,
41
+ PendingSwapNetworkStatus,
42
+ PendingSwapStep,
43
+ } from 'rango-types';
31
44
 
32
45
  import {
33
46
  MainEvents,
@@ -37,10 +50,18 @@ import {
37
50
  StepExecutionEventStatus,
38
51
  useEvents as useWidgetEvents,
39
52
  } from '@rango-dev/queue-manager-rango-preset';
40
- import { useWallets } from '@rango-dev/wallets-react';
53
+ import {
54
+ readAccountAddress,
55
+ useWallets,
56
+ Events as WalletEvents,
57
+ } from '@rango-dev/wallets-react';
58
+ import { Networks, WalletTypes } from '@rango-dev/wallets-shared';
41
59
 
42
- import { WidgetWallets } from './Wallets';
43
- import { Widget } from './Widget';
60
+ import { WidgetWallets } from './containers/Wallets';
61
+ import { Widget } from './containers/Widget';
62
+ import { useWidget } from './containers/WidgetInfo';
63
+ import { WidgetProvider } from './containers/WidgetProvider';
64
+ import { customizedThemeTokens } from './utils/ui';
44
65
 
45
66
  export type {
46
67
  WidgetConfig,
@@ -67,15 +88,42 @@ export type {
67
88
  StepApprovalTxSucceededEvent,
68
89
  StepOutputRevealedEvent,
69
90
  HandleWalletsUpdate,
91
+ ConnectedWallet,
70
92
  };
71
93
  export {
72
94
  Widget,
95
+ /**
96
+ * @deprecated Use `WidgetProvider` instead. This component will be removed in future versions.
97
+ */
73
98
  WidgetWallets,
99
+ WidgetProvider,
100
+ useWidget,
74
101
  useWallets,
75
102
  useWidgetEvents,
103
+ customizedThemeTokens,
76
104
  MainEvents,
77
105
  RouteEventType,
78
106
  StepEventType,
79
107
  StepExecutionEventStatus,
80
108
  StepExecutionBlockedEventStatus,
81
109
  };
110
+
111
+ // Internal type exports for Rango
112
+ export type {
113
+ WalletState,
114
+ WalletInfo,
115
+ PendingSwap,
116
+ PendingSwapWithQueueID,
117
+ PendingSwapStep,
118
+ RouteExecutionEvents,
119
+ EventSeverity,
120
+ };
121
+
122
+ // Internal function and enum exports for Rango
123
+ export {
124
+ readAccountAddress,
125
+ Networks,
126
+ WalletEvents,
127
+ WalletTypes,
128
+ PendingSwapNetworkStatus,
129
+ };
@@ -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
  );