@rango-dev/widget-embedded 0.17.1-next.2 → 0.17.1-next.20

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 (374) hide show
  1. package/dist/QueueManager.d.ts +5 -2
  2. package/dist/QueueManager.d.ts.map +1 -1
  3. package/dist/components/AppRouter.d.ts +0 -2
  4. package/dist/components/AppRouter.d.ts.map +1 -1
  5. package/dist/components/AppRoutes.d.ts +1 -6
  6. package/dist/components/AppRoutes.d.ts.map +1 -1
  7. package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts +1 -3
  8. package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts.map +1 -1
  9. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +1 -1
  10. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
  11. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts +1 -3
  12. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts.map +1 -1
  13. package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -1
  14. package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts +1 -4
  15. package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts.map +1 -1
  16. package/dist/components/Layout/Layout.d.ts.map +1 -1
  17. package/dist/components/Layout/Layout.types.d.ts +2 -2
  18. package/dist/components/Layout/Layout.types.d.ts.map +1 -1
  19. package/dist/components/NoResult/NoResult.d.ts +4 -0
  20. package/dist/components/NoResult/NoResult.d.ts.map +1 -0
  21. package/dist/components/NoResult/NoResult.helpers.d.ts +4 -0
  22. package/dist/components/NoResult/NoResult.helpers.d.ts.map +1 -0
  23. package/dist/components/{NoRoutes/NoRoutes.styles.d.ts → NoResult/NoResult.styles.d.ts} +1 -1
  24. package/dist/components/{NoRoutes/NoRoutes.styles.d.ts.map → NoResult/NoResult.styles.d.ts.map} +1 -1
  25. package/dist/components/{NoRoutes/NoRoutes.types.d.ts → NoResult/NoResult.types.d.ts} +3 -3
  26. package/dist/components/NoResult/NoResult.types.d.ts.map +1 -0
  27. package/dist/components/NoResult/index.d.ts +2 -0
  28. package/dist/components/NoResult/index.d.ts.map +1 -0
  29. package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
  30. package/dist/components/Quote/Quote.d.ts +4 -0
  31. package/dist/components/Quote/Quote.d.ts.map +1 -0
  32. package/dist/components/Quote/Quote.styles.d.ts +1588 -0
  33. package/dist/components/Quote/Quote.styles.d.ts.map +1 -0
  34. package/dist/components/Quote/Quote.types.d.ts +21 -0
  35. package/dist/components/Quote/Quote.types.d.ts.map +1 -0
  36. package/dist/components/Quote/QuoteSkeleton.d.ts +4 -0
  37. package/dist/components/Quote/QuoteSkeleton.d.ts.map +1 -0
  38. package/dist/components/Quote/QuoteSkeleton.styles.d.ts +319 -0
  39. package/dist/components/Quote/QuoteSkeleton.styles.d.ts.map +1 -0
  40. package/dist/components/Quote/QuoteSkeleton.types.d.ts +6 -0
  41. package/dist/components/Quote/QuoteSkeleton.types.d.ts.map +1 -0
  42. package/dist/components/Quote/QuoteSummary.d.ts +11 -0
  43. package/dist/components/Quote/QuoteSummary.d.ts.map +1 -0
  44. package/dist/components/Quote/QuoteSummary.styles.d.ts +158 -0
  45. package/dist/components/Quote/QuoteSummary.styles.d.ts.map +1 -0
  46. package/dist/components/Quote/index.d.ts +4 -0
  47. package/dist/components/Quote/index.d.ts.map +1 -0
  48. package/dist/components/QuoteWarningsAndErrors/HighValueLossWarningModal.d.ts +11 -0
  49. package/dist/components/QuoteWarningsAndErrors/HighValueLossWarningModal.d.ts.map +1 -0
  50. package/dist/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.d.ts +4 -0
  51. package/dist/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.d.ts.map +1 -0
  52. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts +4 -0
  53. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts.map +1 -0
  54. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts +9 -0
  55. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts.map +1 -0
  56. package/dist/components/{RouteErrors/RouteErrors.styles.d.ts → QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts} +1 -1
  57. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -0
  58. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts +23 -0
  59. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts.map +1 -0
  60. package/dist/components/QuoteWarningsAndErrors/SlippageWariningModal.d.ts +11 -0
  61. package/dist/components/QuoteWarningsAndErrors/SlippageWariningModal.d.ts.map +1 -0
  62. package/dist/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.d.ts +11 -0
  63. package/dist/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.d.ts.map +1 -0
  64. package/dist/components/QuoteWarningsAndErrors/index.d.ts +2 -0
  65. package/dist/components/QuoteWarningsAndErrors/index.d.ts.map +1 -0
  66. package/dist/components/SwapDetails/SwapDetails.Placeholder.d.ts.map +1 -1
  67. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  68. package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
  69. package/dist/components/SwapsGroup/SwapsGroup.d.ts.map +1 -1
  70. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts.map +1 -1
  71. package/dist/components/TokenList/TokenList.d.ts.map +1 -1
  72. package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
  73. package/dist/components/UpdateUrl.d.ts +1 -6
  74. package/dist/components/UpdateUrl.d.ts.map +1 -1
  75. package/dist/components/WidgetEvents.d.ts.map +1 -1
  76. package/dist/constants/errors.d.ts +4 -4
  77. package/dist/constants/errors.d.ts.map +1 -1
  78. package/dist/constants/index.d.ts +1 -0
  79. package/dist/constants/index.d.ts.map +1 -1
  80. package/dist/constants/messages.d.ts +1 -1
  81. package/dist/constants/navigationRoutes.d.ts +1 -2
  82. package/dist/constants/navigationRoutes.d.ts.map +1 -1
  83. package/dist/constants/searchParams.d.ts +2 -1
  84. package/dist/constants/searchParams.d.ts.map +1 -1
  85. package/dist/constants/warnings.d.ts +2 -2
  86. package/dist/constants/warnings.d.ts.map +1 -1
  87. package/dist/containers/App/App.d.ts +3 -0
  88. package/dist/containers/App/App.d.ts.map +1 -0
  89. package/dist/containers/App/App.styles.d.ts +158 -0
  90. package/dist/containers/App/App.styles.d.ts.map +1 -0
  91. package/dist/containers/App/index.d.ts +2 -0
  92. package/dist/containers/App/index.d.ts.map +1 -0
  93. package/dist/containers/QuoteInfo/QuoteInfo.d.ts +4 -0
  94. package/dist/containers/QuoteInfo/QuoteInfo.d.ts.map +1 -0
  95. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts +788 -0
  96. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts.map +1 -0
  97. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts +20 -0
  98. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts.map +1 -0
  99. package/dist/containers/QuoteInfo/index.d.ts +2 -0
  100. package/dist/containers/QuoteInfo/index.d.ts.map +1 -0
  101. package/dist/containers/Wallets/Wallets.d.ts +6 -0
  102. package/dist/containers/Wallets/Wallets.d.ts.map +1 -0
  103. package/dist/containers/Wallets/Wallets.types.d.ts +11 -0
  104. package/dist/containers/Wallets/Wallets.types.d.ts.map +1 -0
  105. package/dist/containers/Wallets/index.d.ts +2 -0
  106. package/dist/containers/Wallets/index.d.ts.map +1 -0
  107. package/dist/containers/Widget/Widget.d.ts +5 -0
  108. package/dist/containers/Widget/Widget.d.ts.map +1 -0
  109. package/dist/containers/Widget/Widget.types.d.ts +5 -0
  110. package/dist/containers/Widget/Widget.types.d.ts.map +1 -0
  111. package/dist/containers/Widget/index.d.ts +3 -0
  112. package/dist/containers/Widget/index.d.ts.map +1 -0
  113. package/dist/containers/WidgetInfo/WidgetInfo.d.ts +6 -0
  114. package/dist/containers/WidgetInfo/WidgetInfo.d.ts.map +1 -0
  115. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +14 -0
  116. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts.map +1 -0
  117. package/dist/containers/WidgetInfo/index.d.ts +2 -0
  118. package/dist/containers/WidgetInfo/index.d.ts.map +1 -0
  119. package/dist/containers/WidgetProvider/WidgetProvider.d.ts +5 -0
  120. package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -0
  121. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts +7 -0
  122. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts.map +1 -0
  123. package/dist/containers/WidgetProvider/index.d.ts +2 -0
  124. package/dist/containers/WidgetProvider/index.d.ts.map +1 -0
  125. package/dist/hooks/useConfirmSwap/index.d.ts +2 -0
  126. package/dist/hooks/useConfirmSwap/index.d.ts.map +1 -0
  127. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts +3 -0
  128. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -0
  129. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts +19 -0
  130. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -0
  131. package/dist/hooks/{useConfirmSwap.d.ts → useConfirmSwap/useConfirmSwap.types.d.ts} +5 -7
  132. package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts.map +1 -0
  133. package/dist/hooks/{useFetchBestRoute.d.ts → useFetchQuote.d.ts} +3 -3
  134. package/dist/hooks/useFetchQuote.d.ts.map +1 -0
  135. package/dist/hooks/useForceAutoConnect.d.ts +2 -0
  136. package/dist/hooks/useForceAutoConnect.d.ts.map +1 -0
  137. package/dist/hooks/useLanguage.d.ts +1 -1
  138. package/dist/hooks/useLanguage.d.ts.map +1 -1
  139. package/dist/hooks/useNavigateBack.d.ts +1 -3
  140. package/dist/hooks/useNavigateBack.d.ts.map +1 -1
  141. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.d.ts +1 -1
  142. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts +2 -2
  143. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts.map +1 -1
  144. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts +5 -7
  145. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts.map +1 -1
  146. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts +1 -0
  147. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts.map +1 -1
  148. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts +5 -1
  149. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts.map +1 -1
  150. package/dist/hooks/useSwapInput.d.ts +4 -2
  151. package/dist/hooks/useSwapInput.d.ts.map +1 -1
  152. package/dist/hooks/useSyncStoresWithConfig.d.ts +1 -2
  153. package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
  154. package/dist/hooks/useWalletList.d.ts.map +1 -1
  155. package/dist/index.d.ts +13 -5
  156. package/dist/index.d.ts.map +1 -1
  157. package/dist/index.js +1 -1
  158. package/dist/index.js.map +4 -4
  159. package/dist/pages/ConfirmSwapPage.d.ts +1 -6
  160. package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
  161. package/dist/pages/HistoryPage.d.ts.map +1 -1
  162. package/dist/pages/Home.d.ts.map +1 -1
  163. package/dist/pages/LanguagePage.d.ts.map +1 -1
  164. package/dist/pages/LiquiditySourcePage.d.ts +1 -2
  165. package/dist/pages/LiquiditySourcePage.d.ts.map +1 -1
  166. package/dist/pages/SelectBlockchainPage.d.ts.map +1 -1
  167. package/dist/pages/SelectSwapItemsPage.d.ts.map +1 -1
  168. package/dist/pages/SettingsPage.d.ts +1 -6
  169. package/dist/pages/SettingsPage.d.ts.map +1 -1
  170. package/dist/pages/SwapDetailsPage.d.ts.map +1 -1
  171. package/dist/pages/ThemePage.d.ts.map +1 -1
  172. package/dist/pages/WalletsPage.d.ts +1 -8
  173. package/dist/pages/WalletsPage.d.ts.map +1 -1
  174. package/dist/store/AppStore.d.ts +11 -0
  175. package/dist/store/AppStore.d.ts.map +1 -0
  176. package/dist/store/app.d.ts +5 -23
  177. package/dist/store/app.d.ts.map +1 -1
  178. package/dist/store/{bestRoute.d.ts → quote.d.ts} +39 -27
  179. package/dist/store/quote.d.ts.map +1 -0
  180. package/dist/store/settings.d.ts +3 -2
  181. package/dist/store/settings.d.ts.map +1 -1
  182. package/dist/store/slices/config.d.ts +3 -2
  183. package/dist/store/slices/config.d.ts.map +1 -1
  184. package/dist/store/slices/data.d.ts +3 -0
  185. package/dist/store/slices/data.d.ts.map +1 -1
  186. package/dist/store/wallets.d.ts +5 -4
  187. package/dist/store/wallets.d.ts.map +1 -1
  188. package/dist/types/config.d.ts +19 -5
  189. package/dist/types/config.d.ts.map +1 -1
  190. package/dist/types/index.d.ts +1 -1
  191. package/dist/types/index.d.ts.map +1 -1
  192. package/dist/types/quote.d.ts +82 -0
  193. package/dist/types/quote.d.ts.map +1 -0
  194. package/dist/types/swap.d.ts +3 -13
  195. package/dist/types/swap.d.ts.map +1 -1
  196. package/dist/utils/colors.d.ts.map +1 -1
  197. package/dist/utils/configs.d.ts +1 -0
  198. package/dist/utils/configs.d.ts.map +1 -1
  199. package/dist/utils/meta.d.ts +2 -1
  200. package/dist/utils/meta.d.ts.map +1 -1
  201. package/dist/utils/numbers.d.ts +1 -1
  202. package/dist/utils/numbers.d.ts.map +1 -1
  203. package/dist/utils/{routing.d.ts → quote.d.ts} +16 -12
  204. package/dist/utils/quote.d.ts.map +1 -0
  205. package/dist/utils/settings.d.ts +3 -2
  206. package/dist/utils/settings.d.ts.map +1 -1
  207. package/dist/utils/swap.d.ts +34 -23
  208. package/dist/utils/swap.d.ts.map +1 -1
  209. package/dist/utils/wallets.d.ts +2 -2
  210. package/dist/utils/wallets.d.ts.map +1 -1
  211. package/package.json +6 -6
  212. package/src/QueueManager.tsx +18 -17
  213. package/src/components/AppRouter.tsx +8 -32
  214. package/src/components/AppRoutes.tsx +57 -69
  215. package/src/components/BlockchainList/BlockchainList.tsx +4 -4
  216. package/src/components/BlockchainsSection/BlockchainsSection.tsx +7 -7
  217. package/src/components/ConfirmWalletsModal/ConfirmWallets.helpers.ts +2 -64
  218. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +39 -45
  219. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.types.ts +1 -3
  220. package/src/components/ConfirmWalletsModal/WalletList.tsx +6 -5
  221. package/src/components/ConfirmWalletsModal/WalletList.type.ts +1 -4
  222. package/src/components/Layout/Layout.tsx +10 -7
  223. package/src/components/Layout/Layout.types.ts +2 -2
  224. package/src/components/LoadingSwapDetails/LoadingSwapDetails.styles.ts +3 -3
  225. package/src/components/LoadingSwapDetails/LoadingSwapDetails.tsx +6 -6
  226. package/src/components/{NoRoutes/NoRoutes.helper.ts → NoResult/NoResult.helpers.ts} +23 -16
  227. package/src/components/{NoRoutes/NoRoutes.styles.ts → NoResult/NoResult.styles.ts} +2 -0
  228. package/src/components/{NoRoutes/NoRoutes.tsx → NoResult/NoResult.tsx} +10 -12
  229. package/src/components/{NoRoutes/NoRoutes.types.ts → NoResult/NoResult.types.ts} +3 -2
  230. package/src/components/NoResult/index.ts +1 -0
  231. package/src/components/NotificationContent/NotificationContent.tsx +5 -3
  232. package/src/components/Quote/Quote.styles.ts +239 -0
  233. package/src/components/Quote/Quote.tsx +413 -0
  234. package/src/components/Quote/Quote.types.ts +15 -0
  235. package/src/components/Quote/QuoteSkeleton.styles.ts +110 -0
  236. package/src/components/Quote/QuoteSkeleton.tsx +108 -0
  237. package/src/components/Quote/QuoteSkeleton.types.ts +5 -0
  238. package/src/components/Quote/QuoteSummary.styles.ts +15 -0
  239. package/src/components/Quote/QuoteSummary.tsx +46 -0
  240. package/src/components/Quote/index.ts +3 -0
  241. package/src/components/QuoteWarningsAndErrors/HighValueLossWarningModal.tsx +107 -0
  242. package/src/components/{RouteErrors/RouteErrorsModalItem.tsx → QuoteWarningsAndErrors/QuoteErrorsModalItem.tsx} +4 -4
  243. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.ts +74 -0
  244. package/src/components/{RouteErrors/RouteErrors.styles.ts → QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.ts} +8 -1
  245. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.tsx +103 -0
  246. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.ts +25 -0
  247. package/src/components/QuoteWarningsAndErrors/SlippageWariningModal.tsx +77 -0
  248. package/src/components/QuoteWarningsAndErrors/UnknownPriceWarningModal.tsx +38 -0
  249. package/src/components/QuoteWarningsAndErrors/index.ts +1 -0
  250. package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +0 -4
  251. package/src/components/SwapDetails/SwapDetails.tsx +17 -24
  252. package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +4 -3
  253. package/src/components/SwapDetailsModal/SwapDetailsModal.Cancel.tsx +2 -2
  254. package/src/components/SwapsGroup/SwapsGroup.styles.ts +8 -1
  255. package/src/components/SwapsGroup/SwapsGroup.tsx +0 -2
  256. package/src/components/SwitchFromAndTo.tsx +2 -2
  257. package/src/components/TokenList/TokenList.styles.ts +14 -2
  258. package/src/components/TokenList/TokenList.tsx +6 -7
  259. package/src/components/UpdateUrl.tsx +36 -29
  260. package/src/components/WidgetEvents.tsx +4 -2
  261. package/src/constants/errors.ts +17 -15
  262. package/src/constants/index.ts +1 -0
  263. package/src/constants/messages.ts +1 -1
  264. package/src/constants/navigationRoutes.ts +7 -8
  265. package/src/constants/searchParams.ts +1 -0
  266. package/src/constants/warnings.ts +7 -7
  267. package/src/containers/App/App.styles.ts +18 -0
  268. package/src/containers/App/App.tsx +55 -0
  269. package/src/containers/App/index.ts +1 -0
  270. package/src/containers/QuoteInfo/QuoteInfo.styles.ts +31 -0
  271. package/src/containers/QuoteInfo/QuoteInfo.tsx +98 -0
  272. package/src/containers/QuoteInfo/QuoteInfo.types.ts +20 -0
  273. package/src/containers/QuoteInfo/index.ts +1 -0
  274. package/src/{Wallets.tsx → containers/Wallets/Wallets.tsx} +40 -32
  275. package/src/containers/Wallets/Wallets.types.ts +12 -0
  276. package/src/containers/Wallets/index.ts +1 -0
  277. package/src/containers/Widget/Widget.tsx +19 -0
  278. package/src/containers/Widget/Widget.types.ts +5 -0
  279. package/src/containers/Widget/index.ts +2 -0
  280. package/src/containers/WidgetInfo/WidgetInfo.tsx +47 -0
  281. package/src/containers/WidgetInfo/WidgetInfo.types.ts +14 -0
  282. package/src/containers/WidgetInfo/index.ts +1 -0
  283. package/src/containers/WidgetProvider/WidgetProvider.tsx +28 -0
  284. package/src/containers/WidgetProvider/WidgetProvider.types.ts +7 -0
  285. package/src/containers/WidgetProvider/index.ts +1 -0
  286. package/src/hooks/useConfirmSwap/index.ts +1 -0
  287. package/src/hooks/useConfirmSwap/useConfirmSwap.helpers.ts +172 -0
  288. package/src/hooks/useConfirmSwap/useConfirmSwap.ts +137 -0
  289. package/src/hooks/useConfirmSwap/useConfirmSwap.types.ts +19 -0
  290. package/src/hooks/{useFetchBestRoute.ts → useFetchQuote.ts} +3 -3
  291. package/src/hooks/useForceAutoConnect.ts +27 -0
  292. package/src/hooks/useLanguage.ts +2 -2
  293. package/src/hooks/useNavigateBack.ts +3 -52
  294. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.ts +1 -1
  295. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.ts +37 -7
  296. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.ts +60 -0
  297. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.test.ts +78 -3
  298. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.ts +13 -4
  299. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.ts +6 -1
  300. package/src/hooks/useSwapInput.ts +139 -46
  301. package/src/hooks/useSyncStoresWithConfig.ts +22 -19
  302. package/src/hooks/useWalletList.ts +3 -5
  303. package/src/index.ts +14 -3
  304. package/src/pages/ConfirmSwapPage.tsx +95 -248
  305. package/src/pages/HistoryPage.tsx +1 -5
  306. package/src/pages/Home.tsx +75 -270
  307. package/src/pages/LanguagePage.tsx +0 -5
  308. package/src/pages/LiquiditySourcePage.tsx +22 -35
  309. package/src/pages/SelectBlockchainPage.tsx +8 -15
  310. package/src/pages/SelectSwapItemsPage.tsx +9 -23
  311. package/src/pages/SettingsPage.tsx +8 -15
  312. package/src/pages/SwapDetailsPage.tsx +6 -7
  313. package/src/pages/ThemePage.tsx +0 -4
  314. package/src/pages/WalletsPage.tsx +4 -15
  315. package/src/services/httpService.ts +1 -1
  316. package/src/store/AppStore.tsx +35 -0
  317. package/src/store/app.ts +18 -6
  318. package/src/store/{bestRoute.ts → quote.ts} +68 -60
  319. package/src/store/settings.ts +7 -4
  320. package/src/store/slices/config.ts +25 -15
  321. package/src/store/slices/data.ts +64 -29
  322. package/src/store/wallets.ts +12 -8
  323. package/src/types/config.ts +20 -5
  324. package/src/types/index.ts +1 -1
  325. package/src/types/quote.ts +107 -0
  326. package/src/types/swap.ts +3 -12
  327. package/src/utils/colors.ts +2 -1
  328. package/src/utils/configs.ts +2 -1
  329. package/src/utils/meta.ts +8 -1
  330. package/src/utils/numbers.ts +1 -1
  331. package/src/utils/quote.ts +338 -0
  332. package/src/utils/settings.ts +8 -7
  333. package/src/utils/swap.ts +153 -116
  334. package/src/utils/wallets.ts +29 -17
  335. package/dist/Wallets.d.ts +0 -17
  336. package/dist/Wallets.d.ts.map +0 -1
  337. package/dist/Widget.d.ts +0 -9
  338. package/dist/Widget.d.ts.map +0 -1
  339. package/dist/components/NoRoutes/NoRoutes.d.ts +0 -4
  340. package/dist/components/NoRoutes/NoRoutes.d.ts.map +0 -1
  341. package/dist/components/NoRoutes/NoRoutes.helper.d.ts +0 -3
  342. package/dist/components/NoRoutes/NoRoutes.helper.d.ts.map +0 -1
  343. package/dist/components/NoRoutes/NoRoutes.types.d.ts.map +0 -1
  344. package/dist/components/NoRoutes/index.d.ts +0 -2
  345. package/dist/components/NoRoutes/index.d.ts.map +0 -1
  346. package/dist/components/RouteErrors/RouteErrors.d.ts +0 -4
  347. package/dist/components/RouteErrors/RouteErrors.d.ts.map +0 -1
  348. package/dist/components/RouteErrors/RouteErrors.styles.d.ts.map +0 -1
  349. package/dist/components/RouteErrors/RouteErrors.types.d.ts +0 -24
  350. package/dist/components/RouteErrors/RouteErrors.types.d.ts.map +0 -1
  351. package/dist/components/RouteErrors/RouteErrorsModal.d.ts +0 -4
  352. package/dist/components/RouteErrors/RouteErrorsModal.d.ts.map +0 -1
  353. package/dist/components/RouteErrors/RouteErrorsModalItem.d.ts +0 -4
  354. package/dist/components/RouteErrors/RouteErrorsModalItem.d.ts.map +0 -1
  355. package/dist/components/RouteErrors/index.d.ts +0 -2
  356. package/dist/components/RouteErrors/index.d.ts.map +0 -1
  357. package/dist/hooks/useConfirmSwap.d.ts.map +0 -1
  358. package/dist/hooks/useFetchBestRoute.d.ts.map +0 -1
  359. package/dist/store/bestRoute.d.ts.map +0 -1
  360. package/dist/store/meta.d.ts +0 -23
  361. package/dist/store/meta.d.ts.map +0 -1
  362. package/dist/types/routing.d.ts +0 -65
  363. package/dist/types/routing.d.ts.map +0 -1
  364. package/dist/utils/routing.d.ts.map +0 -1
  365. package/src/Widget.tsx +0 -119
  366. package/src/components/NoRoutes/index.ts +0 -1
  367. package/src/components/RouteErrors/RouteErrors.tsx +0 -79
  368. package/src/components/RouteErrors/RouteErrors.types.ts +0 -29
  369. package/src/components/RouteErrors/RouteErrorsModal.tsx +0 -129
  370. package/src/components/RouteErrors/index.ts +0 -1
  371. package/src/hooks/useConfirmSwap.ts +0 -303
  372. package/src/store/meta.ts +0 -39
  373. package/src/types/routing.ts +0 -77
  374. package/src/utils/routing.ts +0 -321
@@ -11,8 +11,8 @@ import { SearchInput } from '../components/SearchInput';
11
11
  import { TokenList } from '../components/TokenList/TokenList';
12
12
  import { navigationRoutes } from '../constants/navigationRoutes';
13
13
  import { useNavigateBack } from '../hooks/useNavigateBack';
14
- import { useAppStore } from '../store/app';
15
- import { useBestRouteStore } from '../store/bestRoute';
14
+ import { useAppStore } from '../store/AppStore';
15
+ import { useQuoteStore } from '../store/quote';
16
16
  import { useWalletsStore } from '../store/wallets';
17
17
  import { getTokensBalanceFromWalletAndSort } from '../utils/wallets';
18
18
 
@@ -23,7 +23,7 @@ interface PropTypes {
23
23
  export function SelectSwapItemsPage(props: PropTypes) {
24
24
  const { type } = props;
25
25
  const navigate = useNavigate();
26
- const { navigateBackFrom } = useNavigateBack();
26
+ const navigateBack = useNavigateBack();
27
27
  const {
28
28
  fromBlockchain,
29
29
  toBlockchain,
@@ -31,7 +31,7 @@ export function SelectSwapItemsPage(props: PropTypes) {
31
31
  setToToken,
32
32
  setFromBlockchain,
33
33
  setToBlockchain,
34
- } = useBestRouteStore();
34
+ } = useQuoteStore();
35
35
  const { connectedWallets } = useWalletsStore();
36
36
  const [searchedFor, setSearchedFor] = useState<string>('');
37
37
 
@@ -63,36 +63,22 @@ export function SelectSwapItemsPage(props: PropTypes) {
63
63
 
64
64
  const updateToken = (token: Token) => {
65
65
  if (type === 'source') {
66
- setFromToken(token);
66
+ setFromToken({ token, meta: { blockchains, tokens } });
67
67
  } else {
68
- setToToken(token);
68
+ setToToken({ token, meta: { blockchains, tokens } });
69
69
  }
70
70
  };
71
71
 
72
72
  return (
73
73
  <Layout
74
74
  header={{
75
- onBack: () =>
76
- navigateBackFrom(
77
- type === 'source'
78
- ? navigationRoutes.fromSwap
79
- : navigationRoutes.toSwap
80
- ),
81
- title: i18n.t('Swap {type}', {
82
- type: type === 'source' ? 'from' : 'to',
83
- }),
75
+ title: i18n.t('Swap {type}', { type }),
84
76
  }}>
85
77
  <BlockchainsSection
86
78
  blockchains={blockchains}
87
79
  type={type == 'source' ? 'from' : 'to'}
88
80
  blockchain={type === 'source' ? fromBlockchain : toBlockchain}
89
- onMoreClick={() =>
90
- navigate(
91
- type === 'source'
92
- ? navigationRoutes.fromBlockchain
93
- : navigationRoutes.toBlockchain
94
- )
95
- }
81
+ onMoreClick={() => navigate(navigationRoutes.blockchains)}
96
82
  onChange={(blockchain) => {
97
83
  updateBlockchain(blockchain);
98
84
  }}
@@ -123,7 +109,7 @@ export function SelectSwapItemsPage(props: PropTypes) {
123
109
  updateBlockchain(tokenBlockchain);
124
110
  }
125
111
 
126
- navigateBackFrom(navigationRoutes.fromSwap);
112
+ navigateBack();
127
113
  }}
128
114
  />
129
115
  </Layout>
@@ -18,27 +18,21 @@ import { SettingsContainer } from '../components/SettingsContainer';
18
18
  import { Slippage } from '../components/Slippage';
19
19
  import { SlippageTooltipContainer as TooltipContainer } from '../components/Slippage/Slippage.styles';
20
20
  import { navigationRoutes } from '../constants/navigationRoutes';
21
- import { useNavigateBack } from '../hooks/useNavigateBack';
22
- import { useMetaStore } from '../store/meta';
21
+ import { useAppStore } from '../store/AppStore';
23
22
  import { useSettingsStore } from '../store/settings';
24
23
  import { getContainer } from '../utils/common';
25
24
  import { getUniqueSwappersGroups } from '../utils/settings';
26
25
 
27
- interface PropTypes {
28
- supportedSwappers?: string[];
29
- singleTheme?: boolean;
30
- }
31
-
32
- export function SettingsPage({ supportedSwappers, singleTheme }: PropTypes) {
26
+ export function SettingsPage() {
33
27
  const navigate = useNavigate();
34
- const { navigateBackFrom } = useNavigateBack();
28
+ const { theme } = useAppStore().config;
29
+ const fetchStatus = useAppStore().fetchStatus;
30
+ const swappers = useAppStore().swappers();
35
31
 
36
32
  const infiniteApprove = useSettingsStore.use.infiniteApprove();
37
33
  const toggleInfiniteApprove = useSettingsStore.use.toggleInfiniteApprove();
38
- const loadingMetaStatus = useMetaStore.use.loadingStatus();
39
34
 
40
- const supportedUniqueSwappersGroups =
41
- getUniqueSwappersGroups(supportedSwappers);
35
+ const supportedUniqueSwappersGroups = getUniqueSwappersGroups(swappers);
42
36
 
43
37
  const bridgeSources = supportedUniqueSwappersGroups.filter(
44
38
  (uniqueItem) =>
@@ -58,7 +52,7 @@ export function SettingsPage({ supportedSwappers, singleTheme }: PropTypes) {
58
52
  ).length;
59
53
 
60
54
  const handleEndItem = (totalSelected: number, total: number) => {
61
- switch (loadingMetaStatus) {
55
+ switch (fetchStatus) {
62
56
  case 'loading':
63
57
  return <Skeleton variant="text" size="medium" width={50} />;
64
58
  case 'failed':
@@ -167,7 +161,7 @@ export function SettingsPage({ supportedSwappers, singleTheme }: PropTypes) {
167
161
  exchangeItem,
168
162
  // languageItem
169
163
  ];
170
- if (!singleTheme) {
164
+ if (!theme?.singleTheme) {
171
165
  settingItems.push(themeItem);
172
166
  }
173
167
  settingItems.push(infiniteApprovalItem);
@@ -175,7 +169,6 @@ export function SettingsPage({ supportedSwappers, singleTheme }: PropTypes) {
175
169
  return (
176
170
  <Layout
177
171
  header={{
178
- onBack: navigateBackFrom.bind(null, navigationRoutes.settings),
179
172
  title: i18n.t('Setting'),
180
173
  }}>
181
174
  <SettingsContainer>
@@ -4,9 +4,8 @@ import React from 'react';
4
4
 
5
5
  import { SwapDetails } from '../components/SwapDetails';
6
6
  import { SwapDetailsPlaceholder } from '../components/SwapDetails/SwapDetails.Placeholder';
7
- import { navigationRoutes } from '../constants/navigationRoutes';
8
7
  import { useNavigateBack } from '../hooks/useNavigateBack';
9
- import { useMetaStore } from '../store/meta';
8
+ import { useAppStore } from '../store/AppStore';
10
9
  import { useUiStore } from '../store/ui';
11
10
  import { getPendingSwaps } from '../utils/queue';
12
11
 
@@ -15,10 +14,10 @@ export function SwapDetailsPage() {
15
14
  const loading = !state.loadedFromPersistor;
16
15
  const pendingSwaps = getPendingSwaps(manager);
17
16
  const requestId = useUiStore.use.selectedSwapRequestId();
18
- const { navigateBackFrom } = useNavigateBack();
19
- const { loadingStatus } = useMetaStore();
17
+ const navigateBack = useNavigateBack();
18
+ const { fetchStatus: fetchMetaStatus } = useAppStore();
20
19
 
21
- const showSkeleton = loading || loadingStatus === 'loading';
20
+ const showSkeleton = loading || fetchMetaStatus === 'loading';
22
21
 
23
22
  const selectedSwap = pendingSwaps.find(
24
23
  ({ swap }) => swap.requestId === requestId
@@ -36,8 +35,8 @@ export function SwapDetailsPage() {
36
35
  const onDelete = async () => {
37
36
  if (selectedSwap?.id) {
38
37
  try {
39
- await manager?.deleteQueue(selectedSwap.id);
40
- navigateBackFrom(navigationRoutes.swapDetails);
38
+ manager?.deleteQueue(selectedSwap.id);
39
+ navigateBack();
41
40
  } catch (e) {
42
41
  console.log(e);
43
42
  }
@@ -13,8 +13,6 @@ import React from 'react';
13
13
 
14
14
  import { Layout } from '../components/Layout';
15
15
  import { SettingsContainer } from '../components/SettingsContainer';
16
- import { navigationRoutes } from '../constants/navigationRoutes';
17
- import { useNavigateBack } from '../hooks/useNavigateBack';
18
16
  import { useSettingsStore } from '../store/settings';
19
17
 
20
18
  type Theme = 'dark' | 'light' | 'auto';
@@ -26,7 +24,6 @@ enum Mode {
26
24
  }
27
25
 
28
26
  export function ThemePage() {
29
- const { navigateBackFrom } = useNavigateBack();
30
27
  const theme = useSettingsStore.use.theme();
31
28
  const setTheme = useSettingsStore.use.setTheme();
32
29
 
@@ -72,7 +69,6 @@ export function ThemePage() {
72
69
  return (
73
70
  <Layout
74
71
  header={{
75
- onBack: navigateBackFrom.bind(null, navigationRoutes.settings),
76
72
  title: i18n.t('Theme'),
77
73
  }}>
78
74
  <SettingsContainer>
@@ -1,4 +1,3 @@
1
- import type { WidgetConfig } from '../types';
2
1
  import type { WalletType } from '@rango-dev/wallets-shared';
3
2
 
4
3
  import { i18n } from '@lingui/core';
@@ -7,18 +6,10 @@ import React, { Fragment, useState } from 'react';
7
6
 
8
7
  import { Layout } from '../components/Layout';
9
8
  import { WalletModal } from '../components/WalletModal';
10
- import { navigationRoutes } from '../constants/navigationRoutes';
11
- import { useNavigateBack } from '../hooks/useNavigateBack';
12
9
  import { useWalletList } from '../hooks/useWalletList';
13
- import { useMetaStore } from '../store/meta';
10
+ import { useAppStore } from '../store/AppStore';
14
11
  import { getContainer } from '../utils/common';
15
12
 
16
- interface PropTypes {
17
- supportedWallets: WidgetConfig['wallets'];
18
- multiWallets: boolean;
19
- config?: WidgetConfig;
20
- }
21
-
22
13
  const ListContainer = styled('div', {
23
14
  display: 'grid',
24
15
  gap: '$10',
@@ -35,8 +26,8 @@ const Container = styled('div', {
35
26
  export const TIME_TO_CLOSE_MODAL = 3_000;
36
27
  export const TIME_TO_IGNORE_MODAL = 300;
37
28
 
38
- export function WalletsPage({ config }: PropTypes) {
39
- const { navigateBackFrom } = useNavigateBack();
29
+ export function WalletsPage() {
30
+ const { config, fetchStatus: fetchMetaStatus } = useAppStore();
40
31
  const [openModal, setOpenModal] = useState(false);
41
32
  const [selectedWalletType, setSelectedWalletType] = useState<WalletType>('');
42
33
  let modalTimerId: ReturnType<typeof setTimeout> | null = null;
@@ -59,7 +50,6 @@ export function WalletsPage({ config }: PropTypes) {
59
50
  },
60
51
  });
61
52
 
62
- const loadingMetaStatus = useMetaStore.use.loadingStatus();
63
53
  const selectedWallet = list.find(
64
54
  (wallet) => wallet.type === selectedWalletType
65
55
  );
@@ -71,7 +61,6 @@ export function WalletsPage({ config }: PropTypes) {
71
61
  <Layout
72
62
  header={{
73
63
  title: i18n.t('Connect Wallets'),
74
- onBack: navigateBackFrom.bind(null, navigationRoutes.wallets),
75
64
  }}>
76
65
  <Container>
77
66
  <Typography variant="title" size="xmedium" align="center">
@@ -88,7 +77,7 @@ export function WalletsPage({ config }: PropTypes) {
88
77
  onClick={(type) => {
89
78
  void handleClick(type);
90
79
  }}
91
- isLoading={loadingMetaStatus === 'loading'}
80
+ isLoading={fetchMetaStatus === 'loading'}
92
81
  />
93
82
  </Fragment>
94
83
  );
@@ -8,6 +8,6 @@ export const httpService = () => {
8
8
  if (rango) {
9
9
  return rango;
10
10
  }
11
- rango = new RangoClient(getConfig('API_KEY'));
11
+ rango = new RangoClient(getConfig('API_KEY'), getConfig('BASE_URL'));
12
12
  return rango;
13
13
  };
@@ -0,0 +1,35 @@
1
+ import type { WidgetConfig } from '../types';
2
+ import type { PropsWithChildren } from 'react';
3
+
4
+ import React, { createContext, useContext, useRef } from 'react';
5
+
6
+ import { createAppStore } from './app';
7
+
8
+ type AppStore = ReturnType<typeof createAppStore>;
9
+ type AppStoreProviderProps = PropsWithChildren<{ config?: WidgetConfig }>;
10
+
11
+ export const AppStoreContext = createContext<AppStore | null>(null);
12
+
13
+ export function useAppStore() {
14
+ const store = useContext(AppStoreContext);
15
+
16
+ if (!store) {
17
+ throw new Error('Missing AppStoreContext.Provider in the tree');
18
+ }
19
+
20
+ return store();
21
+ }
22
+
23
+ export function AppStoreProvider(props: AppStoreProviderProps) {
24
+ const appStoreRef = useRef<AppStore>();
25
+
26
+ if (!appStoreRef.current) {
27
+ appStoreRef.current = createAppStore(props.config);
28
+ }
29
+
30
+ return (
31
+ <AppStoreContext.Provider value={appStoreRef.current}>
32
+ {props.children}
33
+ </AppStoreContext.Provider>
34
+ );
35
+ }
package/src/store/app.ts CHANGED
@@ -1,15 +1,27 @@
1
1
  import type { ConfigSlice } from './slices/config';
2
2
  import type { DataSlice } from './slices/data';
3
+ import type { WidgetConfig } from '../types';
4
+ import type { StateCreator } from 'zustand';
3
5
 
4
6
  import { create } from 'zustand';
5
7
 
6
- import createSelectors from './selectors';
7
8
  import { createConfigSlice } from './slices/config';
8
9
  import { createDataSlice } from './slices/data';
9
10
 
10
- const store = create<DataSlice & ConfigSlice>()((...a) => ({
11
- ...createDataSlice(...a),
12
- ...createConfigSlice(...a),
13
- }));
11
+ export type StateCreatorWithInitialData<
12
+ T extends Partial<WidgetConfig>,
13
+ R extends Record<string, unknown>,
14
+ V extends Record<string, unknown>
15
+ > = (
16
+ initialData: T | undefined,
17
+ ...rest: Parameters<StateCreator<R, [], [], V>>
18
+ ) => ReturnType<StateCreator<R, [], [], V>>;
14
19
 
15
- export const useAppStore = createSelectors(store);
20
+ export type AppStoreState = DataSlice & ConfigSlice;
21
+
22
+ export function createAppStore(initialData?: WidgetConfig) {
23
+ return create<AppStoreState>()((...a) => ({
24
+ ...createDataSlice(...a),
25
+ ...createConfigSlice(initialData, ...a),
26
+ }));
27
+ }
@@ -1,7 +1,12 @@
1
1
  import type { TokenWithBalance } from '../components/TokenList';
2
2
  import type { Wallet } from '../types';
3
3
  import type { PendingSwap } from '@rango-dev/queue-manager-rango-preset/dist/shared';
4
- import type { BestRouteResponse, BlockchainMeta, Token } from 'rango-sdk';
4
+ import type {
5
+ BestRouteResponse,
6
+ BlockchainMeta,
7
+ MetaResponse,
8
+ Token,
9
+ } from 'rango-sdk';
5
10
 
6
11
  import BigNumber from 'bignumber.js';
7
12
  import { create } from 'zustand';
@@ -9,21 +14,24 @@ import { subscribeWithSelector } from 'zustand/middleware';
9
14
 
10
15
  import { ZERO } from '../constants/numbers';
11
16
  import { isPositiveNumber } from '../utils/numbers';
12
- import {
13
- createRetryRoute,
14
- getBestRouteToTokenUsdPrice,
15
- } from '../utils/routing';
17
+ import { createRetryQuote, getQuoteToTokenUsdPrice } from '../utils/quote';
16
18
  import { calcOutputUsdValue } from '../utils/swap';
17
19
 
18
- import { useMetaStore } from './meta';
19
20
  import createSelectors from './selectors';
20
21
 
21
- const getUsdValue = (token: Token | null, amount: string): BigNumber | null =>
22
+ export const getUsdValue = (
23
+ token: Token | null,
24
+ amount: string
25
+ ): BigNumber | null =>
22
26
  token?.usdPrice
23
27
  ? new BigNumber(amount || ZERO).multipliedBy(token?.usdPrice || 0)
24
28
  : null;
25
29
 
26
- export interface RouteState {
30
+ export type Meta = Pick<MetaResponse, 'blockchains' | 'tokens'>;
31
+
32
+ export type SetTokenParams = { token: Token; meta: Meta } | { token: null };
33
+
34
+ export interface QuoteState {
27
35
  fromBlockchain: BlockchainMeta | null;
28
36
  toBlockchain: BlockchainMeta | null;
29
37
  inputAmount: string;
@@ -32,30 +40,32 @@ export interface RouteState {
32
40
  outputUsdValue: BigNumber | null;
33
41
  fromToken: TokenWithBalance | null;
34
42
  toToken: TokenWithBalance | null;
35
- routeWalletsConfirmed: boolean;
43
+ quoteWalletsConfirmed: boolean;
36
44
  selectedWallets: Wallet[];
37
- resetRoute: () => void;
45
+ quoteWarningsConfirmed: boolean;
46
+ resetQuote: () => void;
38
47
  resetToBlockchain: () => void;
39
48
  resetFromBlockchain: () => void;
40
49
  setFromBlockchain: (chain: BlockchainMeta | null) => void;
41
50
  setToBlockchain: (chian: BlockchainMeta | null) => void;
42
51
 
43
- setFromToken: (token: Token | null) => void;
44
- setToToken: (token: Token | null) => void;
52
+ setFromToken: (params: SetTokenParams) => void;
53
+ setToToken: (params: SetTokenParams) => void;
45
54
  setInputAmount: (amount: string) => void;
46
- bestRoute: BestRouteResponse | null;
47
- setRoute: (bestRoute: BestRouteResponse | null) => void;
48
- retry: (pendingSwap: PendingSwap) => void;
55
+ quote: BestRouteResponse | null;
56
+ setQuote: (quote: BestRouteResponse | null) => void;
57
+ retry: (pendingSwap: PendingSwap, meta: Meta) => void;
49
58
  switchFromAndTo: () => void;
50
- setRouteWalletConfirmed: (flag: boolean) => void;
59
+ setQuoteWalletConfirmed: (flag: boolean) => void;
51
60
  setSelectedWallets: (wallets: Wallet[]) => void;
52
61
  customDestination: string;
53
62
  setCustomDestination: (address: string) => void;
54
- resetRouteWallets: () => void;
63
+ resetQuoteWallets: () => void;
64
+ setQuoteWarningsConfirmed: (flag: boolean) => void;
55
65
  }
56
66
 
57
- export const useBestRouteStore = createSelectors(
58
- create<RouteState>()(
67
+ export const useQuoteStore = createSelectors(
68
+ create<QuoteState>()(
59
69
  subscribeWithSelector((set) => ({
60
70
  fromBlockchain: null,
61
71
  fromToken: null,
@@ -65,37 +75,38 @@ export const useBestRouteStore = createSelectors(
65
75
  outputUsdValue: new BigNumber(0),
66
76
  toBlockchain: null,
67
77
  toToken: null,
68
- bestRoute: null,
69
- routeWalletsConfirmed: false,
78
+ quote: null,
79
+ quoteWalletsConfirmed: false,
70
80
  selectedWallets: [],
71
81
  customDestination: '',
72
- setRoute: (bestRoute) =>
82
+ quoteWarningsConfirmed: false,
83
+ setQuote: (quote) =>
73
84
  set((state) => {
74
85
  let outputAmount: BigNumber | null = null;
75
86
  let outputUsdValue: BigNumber = ZERO;
76
87
  if (!isPositiveNumber(state.inputAmount)) {
77
88
  return {};
78
89
  }
79
- if (!!bestRoute) {
80
- outputAmount = !!bestRoute.result?.outputAmount
81
- ? new BigNumber(bestRoute.result?.outputAmount)
90
+ if (!!quote) {
91
+ outputAmount = !!quote.result?.outputAmount
92
+ ? new BigNumber(quote.result?.outputAmount)
82
93
  : null;
83
94
  outputUsdValue = calcOutputUsdValue(
84
- bestRoute.result?.outputAmount,
85
- getBestRouteToTokenUsdPrice(bestRoute) || state.toToken?.usdPrice
95
+ quote.result?.outputAmount,
96
+ getQuoteToTokenUsdPrice(quote) || state.toToken?.usdPrice
86
97
  );
87
98
  }
88
99
  return {
89
- bestRoute,
90
- ...(!!bestRoute && {
100
+ quote: quote,
101
+ ...(!!quote && {
91
102
  outputAmount,
92
103
  outputUsdValue,
93
104
  }),
94
105
  };
95
106
  }),
96
- resetRoute: () =>
107
+ resetQuote: () =>
97
108
  set(() => ({
98
- bestRoute: null,
109
+ quote: null,
99
110
  outputAmount: null,
100
111
  outputUsdValue: new BigNumber(0),
101
112
  })),
@@ -108,7 +119,7 @@ export const useBestRouteStore = createSelectors(
108
119
  return {
109
120
  fromBlockchain: chain,
110
121
  ...(state.fromToken && {
111
- bestRoute: null,
122
+ quote: null,
112
123
  fromToken: null,
113
124
  outputAmount: null,
114
125
  outputUsdValue: null,
@@ -116,18 +127,17 @@ export const useBestRouteStore = createSelectors(
116
127
  };
117
128
  });
118
129
  },
119
- setFromToken: (token) => {
120
- const { blockchains } = useMetaStore.getState().meta;
130
+ setFromToken: (params) => {
121
131
  return set((state) => ({
122
- fromToken: token,
123
- ...(token && {
132
+ fromToken: params.token,
133
+ ...(params.token && {
124
134
  fromBlockchain:
125
- blockchains.find(
126
- (blockchain) => blockchain.name === token.blockchain
135
+ params.meta.blockchains.find(
136
+ (blockchain) => blockchain.name === params.token.blockchain
127
137
  ) ?? null,
128
138
  }),
129
139
  ...(!!state.inputAmount && {
130
- inputUsdValue: getUsdValue(token, state.inputAmount),
140
+ inputUsdValue: getUsdValue(params.token, state.inputAmount),
131
141
  }),
132
142
  }));
133
143
  },
@@ -140,7 +150,7 @@ export const useBestRouteStore = createSelectors(
140
150
  return {
141
151
  toBlockchain: chain,
142
152
  ...(state.toToken && {
143
- bestRoute: null,
153
+ quote: null,
144
154
  toToken: null,
145
155
  outputAmount: null,
146
156
  outputUsdValue: null,
@@ -148,14 +158,13 @@ export const useBestRouteStore = createSelectors(
148
158
  };
149
159
  });
150
160
  },
151
- setToToken: (token) => {
152
- const { blockchains } = useMetaStore.getState().meta;
161
+ setToToken: (params) => {
153
162
  return set(() => ({
154
- toToken: token,
155
- ...(token && {
163
+ toToken: params.token,
164
+ ...(params.token && {
156
165
  toBlockchain:
157
- blockchains.find(
158
- (blockchain) => blockchain.name === token.blockchain
166
+ params.meta.blockchains.find(
167
+ (blockchain) => blockchain.name === params.token.blockchain
159
168
  ) ?? null,
160
169
  }),
161
170
  }));
@@ -166,24 +175,22 @@ export const useBestRouteStore = createSelectors(
166
175
  ...(!amount && {
167
176
  outputAmount: new BigNumber(0),
168
177
  outputUsdValue: new BigNumber(0),
169
- bestRoute: null,
178
+ quote: null,
170
179
  }),
171
180
  ...(!!state.fromToken && {
172
181
  inputUsdValue: getUsdValue(state.fromToken, amount),
173
182
  }),
174
183
  }));
175
184
  },
176
- retry: (pendingSwap) => {
177
- const { tokens, blockchains } = useMetaStore.getState().meta;
178
-
185
+ retry: (pendingSwap, meta) => {
186
+ const { tokens, blockchains } = meta;
179
187
  const {
180
188
  fromBlockchain,
181
189
  fromToken,
182
190
  toBlockchain,
183
191
  toToken,
184
192
  inputAmount,
185
- } = createRetryRoute(pendingSwap, blockchains, tokens);
186
-
193
+ } = createRetryQuote(pendingSwap, blockchains, tokens);
187
194
  set({
188
195
  fromBlockchain,
189
196
  fromToken,
@@ -193,7 +200,7 @@ export const useBestRouteStore = createSelectors(
193
200
  outputUsdValue: new BigNumber(0),
194
201
  toBlockchain,
195
202
  toToken,
196
- bestRoute: null,
203
+ quote: null,
197
204
  });
198
205
  },
199
206
  switchFromAndTo: () =>
@@ -208,14 +215,13 @@ export const useBestRouteStore = createSelectors(
208
215
  state.outputAmount?.toString() || ''
209
216
  ),
210
217
  })),
211
-
212
218
  resetFromBlockchain: () =>
213
219
  set(() => ({
214
220
  fromToken: null,
215
221
  fromBlockchain: null,
216
222
  outputAmount: null,
217
223
  outputUsdValue: null,
218
- bestRoute: null,
224
+ quote: null,
219
225
  })),
220
226
  resetToBlockchain: () =>
221
227
  set(() => ({
@@ -223,20 +229,22 @@ export const useBestRouteStore = createSelectors(
223
229
  toBlockchain: null,
224
230
  outputAmount: null,
225
231
  outputUsdValue: null,
226
- bestRoute: null,
232
+ quote: null,
227
233
  })),
228
- setRouteWalletConfirmed: (flag) =>
234
+ setQuoteWalletConfirmed: (flag) =>
229
235
  set({
230
- routeWalletsConfirmed: flag,
236
+ quoteWalletsConfirmed: flag,
231
237
  }),
232
238
  setSelectedWallets: (wallets) => set({ selectedWallets: wallets }),
233
239
  setCustomDestination: (address) => set({ customDestination: address }),
234
- resetRouteWallets: () =>
240
+ resetQuoteWallets: () =>
235
241
  set({
236
- routeWalletsConfirmed: false,
242
+ quoteWalletsConfirmed: false,
237
243
  selectedWallets: [],
238
244
  customDestination: '',
239
245
  }),
246
+ setQuoteWarningsConfirmed: (flag) =>
247
+ set({ quoteWarningsConfirmed: flag }),
240
248
  }))
241
249
  )
242
250
  );
@@ -1,3 +1,5 @@
1
+ import type { SwapperMeta } from 'rango-sdk';
2
+
1
3
  import { type Language } from '@rango-dev/ui';
2
4
  import { create } from 'zustand';
3
5
  import { persist, subscribeWithSelector } from 'zustand/middleware';
@@ -7,7 +9,6 @@ import { DEFAULT_LANGUAGE } from '../constants/languages';
7
9
  import { DEFAULT_SLIPPAGE } from '../constants/swapSettings';
8
10
  import { removeDuplicateFrom } from '../utils/common';
9
11
 
10
- import { useMetaStore } from './meta';
11
12
  import createSelectors from './selectors';
12
13
 
13
14
  export type ThemeMode = 'auto' | 'dark' | 'light';
@@ -31,7 +32,10 @@ export interface SettingsState {
31
32
  toggleLiquiditySource: (name: string) => void;
32
33
  setTheme: (theme: ThemeMode) => void;
33
34
  setLanguage: (language: Language) => void;
34
- toggleAllLiquiditySources: (shouldReset?: boolean) => void;
35
+ toggleAllLiquiditySources: (
36
+ swappers: SwapperMeta[],
37
+ shouldReset?: boolean
38
+ ) => void;
35
39
  setAffiliateRef: (affiliateRef: string | null) => void;
36
40
  setAffiliatePercent: (affiliatePercent: number | null) => void;
37
41
  setAffiliateWallets: (
@@ -102,12 +106,11 @@ export const useSettingsStore = createSelectors(
102
106
  set(() => ({
103
107
  affiliateWallets,
104
108
  })),
105
- toggleAllLiquiditySources: (shouldReset?: boolean) =>
109
+ toggleAllLiquiditySources: (swappers, shouldReset) =>
106
110
  set((state) => {
107
111
  if (shouldReset) {
108
112
  return { disabledLiquiditySources: [] };
109
113
  }
110
- const { swappers } = useMetaStore.getState().meta;
111
114
  const swappersGroup = removeDuplicateFrom(
112
115
  swappers.map((swapper) => swapper.swapperGroup)
113
116
  );