@rango-dev/widget-embedded 0.17.1-next.9 → 0.18.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 (355) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/dist/QueueManager.d.ts +3 -1
  3. package/dist/QueueManager.d.ts.map +1 -1
  4. package/dist/components/AppRouter.d.ts.map +1 -1
  5. package/dist/components/AppRoutes.d.ts.map +1 -1
  6. package/dist/components/BlockchainsSection/BlockchainsSection.d.ts.map +1 -1
  7. package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts +1 -1
  8. package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts.map +1 -1
  9. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +690 -61
  10. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -1
  11. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -1
  12. package/dist/components/HeaderButtons/HomeButtons.d.ts.map +1 -1
  13. package/dist/components/Layout/Layout.d.ts.map +1 -1
  14. package/dist/components/Layout/Layout.styles.d.ts.map +1 -1
  15. package/dist/components/Layout/Layout.types.d.ts +2 -2
  16. package/dist/components/Layout/Layout.types.d.ts.map +1 -1
  17. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.d.ts.map +1 -1
  18. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts +1727 -0
  19. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts.map +1 -1
  20. package/dist/components/NoResult/NoResult.d.ts.map +1 -1
  21. package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -1
  22. package/dist/components/Quote/Quote.d.ts.map +1 -1
  23. package/dist/components/Quote/Quote.styles.d.ts +793 -5
  24. package/dist/components/Quote/Quote.styles.d.ts.map +1 -1
  25. package/dist/components/Quote/Quote.types.d.ts +0 -1
  26. package/dist/components/Quote/Quote.types.d.ts.map +1 -1
  27. package/dist/components/Quote/QuoteSummary.styles.d.ts +157 -0
  28. package/dist/components/Quote/QuoteSummary.styles.d.ts.map +1 -1
  29. package/dist/components/Quote/index.d.ts +0 -1
  30. package/dist/components/Quote/index.d.ts.map +1 -1
  31. package/dist/components/QuoteSkeleton/QuoteSkeleton.d.ts.map +1 -0
  32. package/dist/components/{Quote → QuoteSkeleton}/QuoteSkeleton.styles.d.ts +314 -0
  33. package/dist/components/QuoteSkeleton/QuoteSkeleton.styles.d.ts.map +1 -0
  34. package/dist/components/QuoteSkeleton/QuoteSkeleton.types.d.ts.map +1 -0
  35. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.d.ts +4 -0
  36. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.d.ts.map +1 -0
  37. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.styles.d.ts +1571 -0
  38. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.styles.d.ts.map +1 -0
  39. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.types.d.ts +6 -0
  40. package/dist/components/QuoteSkeleton/QuoteSummarySkeleton.types.d.ts.map +1 -0
  41. package/dist/components/QuoteSkeleton/StepSkeleton.d.ts +4 -0
  42. package/dist/components/QuoteSkeleton/StepSkeleton.d.ts.map +1 -0
  43. package/dist/components/QuoteSkeleton/StepSkeleton.styles.d.ts +786 -0
  44. package/dist/components/QuoteSkeleton/StepSkeleton.styles.d.ts.map +1 -0
  45. package/dist/components/QuoteSkeleton/StepSkeleton.types.d.ts +4 -0
  46. package/dist/components/QuoteSkeleton/StepSkeleton.types.d.ts.map +1 -0
  47. package/dist/components/QuoteSkeleton/index.d.ts +4 -0
  48. package/dist/components/QuoteSkeleton/index.d.ts.map +1 -0
  49. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.d.ts.map +1 -1
  50. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.d.ts.map +1 -1
  51. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.d.ts.map +1 -1
  52. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts +1 -0
  53. package/dist/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.d.ts.map +1 -1
  54. package/dist/components/Slippage/Slippage.d.ts.map +1 -1
  55. package/dist/components/Slippage/Slippage.styles.d.ts +158 -0
  56. package/dist/components/Slippage/Slippage.styles.d.ts.map +1 -1
  57. package/dist/components/SwapDetails/SwapDetails.Placeholder.d.ts.map +1 -1
  58. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -1
  59. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts +1 -1
  60. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts.map +1 -1
  61. package/dist/components/SwapDetails/SwapDetails.styles.d.ts +628 -0
  62. package/dist/components/SwapDetails/SwapDetails.styles.d.ts.map +1 -1
  63. package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -1
  64. package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -1
  65. package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts +1 -1
  66. package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts.map +1 -1
  67. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +1 -1
  68. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.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 +157 -0
  71. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts.map +1 -1
  72. package/dist/components/TokenList/TokenList.d.ts.map +1 -1
  73. package/dist/components/TokenList/TokenList.helpers.d.ts +2 -2
  74. package/dist/components/TokenList/TokenList.helpers.d.ts.map +1 -1
  75. package/dist/components/TokenList/TokenList.styles.d.ts +1100 -1
  76. package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -1
  77. package/dist/components/TokenList/TokenList.types.d.ts +4 -9
  78. package/dist/components/TokenList/TokenList.types.d.ts.map +1 -1
  79. package/dist/components/TokenList/index.d.ts +0 -1
  80. package/dist/components/TokenList/index.d.ts.map +1 -1
  81. package/dist/components/UpdateUrl.d.ts.map +1 -1
  82. package/dist/constants/errors.d.ts.map +1 -1
  83. package/dist/constants/index.d.ts +1 -0
  84. package/dist/constants/index.d.ts.map +1 -1
  85. package/dist/constants/navigationRoutes.d.ts +1 -2
  86. package/dist/constants/navigationRoutes.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.map +1 -1
  94. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts +316 -0
  95. package/dist/containers/QuoteInfo/QuoteInfo.styles.d.ts.map +1 -1
  96. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts +3 -0
  97. package/dist/containers/QuoteInfo/QuoteInfo.types.d.ts.map +1 -1
  98. package/dist/containers/Wallets/Wallets.d.ts +6 -0
  99. package/dist/containers/Wallets/Wallets.d.ts.map +1 -0
  100. package/dist/containers/Wallets/Wallets.types.d.ts +11 -0
  101. package/dist/containers/Wallets/Wallets.types.d.ts.map +1 -0
  102. package/dist/containers/Wallets/index.d.ts +2 -0
  103. package/dist/containers/Wallets/index.d.ts.map +1 -0
  104. package/dist/containers/Widget/Widget.d.ts +5 -0
  105. package/dist/containers/Widget/Widget.d.ts.map +1 -0
  106. package/dist/containers/Widget/Widget.types.d.ts +5 -0
  107. package/dist/containers/Widget/Widget.types.d.ts.map +1 -0
  108. package/dist/containers/Widget/index.d.ts +3 -0
  109. package/dist/containers/Widget/index.d.ts.map +1 -0
  110. package/dist/containers/WidgetInfo/WidgetInfo.d.ts +6 -0
  111. package/dist/containers/WidgetInfo/WidgetInfo.d.ts.map +1 -0
  112. package/dist/containers/WidgetInfo/WidgetInfo.helpers.d.ts +20 -0
  113. package/dist/containers/WidgetInfo/WidgetInfo.helpers.d.ts.map +1 -0
  114. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts +21 -0
  115. package/dist/containers/WidgetInfo/WidgetInfo.types.d.ts.map +1 -0
  116. package/dist/containers/WidgetInfo/index.d.ts +2 -0
  117. package/dist/containers/WidgetInfo/index.d.ts.map +1 -0
  118. package/dist/containers/WidgetProvider/WidgetProvider.d.ts +5 -0
  119. package/dist/containers/WidgetProvider/WidgetProvider.d.ts.map +1 -0
  120. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts +7 -0
  121. package/dist/containers/WidgetProvider/WidgetProvider.types.d.ts.map +1 -0
  122. package/dist/containers/WidgetProvider/index.d.ts +2 -0
  123. package/dist/containers/WidgetProvider/index.d.ts.map +1 -0
  124. package/dist/hooks/useConfirmSwap/useConfirmSwap.d.ts.map +1 -1
  125. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts +6 -3
  126. package/dist/hooks/useConfirmSwap/useConfirmSwap.helpers.d.ts.map +1 -1
  127. package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts +1 -1
  128. package/dist/hooks/useConfirmSwap/useConfirmSwap.types.d.ts.map +1 -1
  129. package/dist/hooks/useLanguage.d.ts +1 -1
  130. package/dist/hooks/useLanguage.d.ts.map +1 -1
  131. package/dist/hooks/useNavigateBack.d.ts +1 -3
  132. package/dist/hooks/useNavigateBack.d.ts.map +1 -1
  133. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.d.ts +1 -1
  134. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts +2 -2
  135. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.d.ts.map +1 -1
  136. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts +3 -5
  137. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.d.ts.map +1 -1
  138. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts +1 -0
  139. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.d.ts.map +1 -1
  140. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts +5 -1
  141. package/dist/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.d.ts.map +1 -1
  142. package/dist/hooks/useSwapInput.d.ts.map +1 -1
  143. package/dist/hooks/useSyncStoresWithConfig.d.ts.map +1 -1
  144. package/dist/hooks/useTheme.d.ts +1 -1
  145. package/dist/hooks/useTheme.d.ts.map +1 -1
  146. package/dist/index.d.ts +20 -8
  147. package/dist/index.d.ts.map +1 -1
  148. package/dist/index.js +1 -1
  149. package/dist/index.js.map +4 -4
  150. package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
  151. package/dist/pages/HistoryPage.d.ts.map +1 -1
  152. package/dist/pages/Home.d.ts.map +1 -1
  153. package/dist/pages/LanguagePage.d.ts.map +1 -1
  154. package/dist/pages/LiquiditySourcePage.d.ts.map +1 -1
  155. package/dist/pages/SelectBlockchainPage.d.ts.map +1 -1
  156. package/dist/pages/SelectSwapItemsPage.d.ts.map +1 -1
  157. package/dist/pages/SettingsPage.d.ts.map +1 -1
  158. package/dist/pages/SwapDetailsPage.d.ts.map +1 -1
  159. package/dist/pages/ThemePage.d.ts.map +1 -1
  160. package/dist/pages/WalletsPage.d.ts.map +1 -1
  161. package/dist/store/AppStore.d.ts +37 -1
  162. package/dist/store/AppStore.d.ts.map +1 -1
  163. package/dist/store/app.d.ts +39 -2
  164. package/dist/store/app.d.ts.map +1 -1
  165. package/dist/store/notification.d.ts +4 -3
  166. package/dist/store/notification.d.ts.map +1 -1
  167. package/dist/store/quote.d.ts +9 -9
  168. package/dist/store/quote.d.ts.map +1 -1
  169. package/dist/store/slices/config.d.ts.map +1 -1
  170. package/dist/store/slices/data.d.ts +2 -2
  171. package/dist/store/slices/data.d.ts.map +1 -1
  172. package/dist/store/slices/settings.d.ts +39 -0
  173. package/dist/store/slices/settings.d.ts.map +1 -0
  174. package/dist/store/ui.d.ts +2 -1
  175. package/dist/store/ui.d.ts.map +1 -1
  176. package/dist/store/wallets.d.ts +9 -5
  177. package/dist/store/wallets.d.ts.map +1 -1
  178. package/dist/types/config.d.ts +36 -3
  179. package/dist/types/config.d.ts.map +1 -1
  180. package/dist/types/swap.d.ts +4 -14
  181. package/dist/types/swap.d.ts.map +1 -1
  182. package/dist/types/wallets.d.ts +15 -1
  183. package/dist/types/wallets.d.ts.map +1 -1
  184. package/dist/utils/colors.d.ts.map +1 -1
  185. package/dist/utils/configs.d.ts +1 -0
  186. package/dist/utils/configs.d.ts.map +1 -1
  187. package/dist/utils/meta.d.ts +2 -1
  188. package/dist/utils/meta.d.ts.map +1 -1
  189. package/dist/utils/providers.d.ts +2 -2
  190. package/dist/utils/providers.d.ts.map +1 -1
  191. package/dist/utils/queue.d.ts +2 -2
  192. package/dist/utils/queue.d.ts.map +1 -1
  193. package/dist/utils/quote.d.ts +1 -1
  194. package/dist/utils/quote.d.ts.map +1 -1
  195. package/dist/utils/settings.d.ts +4 -1
  196. package/dist/utils/settings.d.ts.map +1 -1
  197. package/dist/utils/swap.d.ts +13 -5
  198. package/dist/utils/swap.d.ts.map +1 -1
  199. package/dist/utils/time.d.ts +1 -1
  200. package/dist/utils/time.d.ts.map +1 -1
  201. package/dist/utils/wallets.d.ts +7 -8
  202. package/dist/utils/wallets.d.ts.map +1 -1
  203. package/package.json +12 -10
  204. package/src/QueueManager.tsx +4 -3
  205. package/src/components/AppRouter.tsx +2 -27
  206. package/src/components/AppRoutes.tsx +54 -33
  207. package/src/components/BlockchainList/BlockchainList.styles.ts +2 -2
  208. package/src/components/BlockchainsSection/BlockchainsSection.styles.ts +1 -1
  209. package/src/components/BlockchainsSection/BlockchainsSection.tsx +19 -10
  210. package/src/components/ConfirmWalletsModal/ConfirmWallets.styles.ts +29 -10
  211. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +15 -7
  212. package/src/components/ConfirmWalletsModal/WalletList.tsx +3 -3
  213. package/src/components/HeaderButtons/HomeButtons.tsx +28 -18
  214. package/src/components/Layout/Layout.styles.ts +2 -0
  215. package/src/components/Layout/Layout.tsx +20 -7
  216. package/src/components/Layout/Layout.types.ts +2 -2
  217. package/src/components/LoadingSwapDetails/LoadingSwapDetails.styles.ts +65 -61
  218. package/src/components/LoadingSwapDetails/LoadingSwapDetails.tsx +28 -34
  219. package/src/components/NoResult/NoResult.helpers.ts +12 -12
  220. package/src/components/NoResult/NoResult.tsx +2 -5
  221. package/src/components/NotificationContent/NotificationContent.tsx +2 -1
  222. package/src/components/Quote/Quote.styles.ts +49 -12
  223. package/src/components/Quote/Quote.tsx +107 -38
  224. package/src/components/Quote/Quote.types.ts +0 -1
  225. package/src/components/Quote/QuoteSummary.styles.ts +9 -8
  226. package/src/components/Quote/QuoteSummary.tsx +2 -2
  227. package/src/components/Quote/index.ts +0 -1
  228. package/src/components/QuoteSkeleton/QuoteSkeleton.styles.ts +42 -0
  229. package/src/components/QuoteSkeleton/QuoteSkeleton.tsx +30 -0
  230. package/src/components/QuoteSkeleton/QuoteSummarySkeleton.styles.ts +57 -0
  231. package/src/components/QuoteSkeleton/QuoteSummarySkeleton.tsx +76 -0
  232. package/src/components/QuoteSkeleton/QuoteSummarySkeleton.types.ts +6 -0
  233. package/src/components/QuoteSkeleton/StepSkeleton.styles.ts +33 -0
  234. package/src/components/QuoteSkeleton/StepSkeleton.tsx +44 -0
  235. package/src/components/QuoteSkeleton/StepSkeleton.types.ts +1 -0
  236. package/src/components/QuoteSkeleton/index.ts +3 -0
  237. package/src/components/QuoteWarningsAndErrors/QuoteErrorsModalItem.tsx +1 -1
  238. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.helpers.ts +11 -4
  239. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.styles.ts +8 -1
  240. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.tsx +13 -13
  241. package/src/components/QuoteWarningsAndErrors/QuoteWarningsAndErrors.types.ts +1 -0
  242. package/src/components/QuoteWarningsAndErrors/SlippageWariningModal.tsx +3 -3
  243. package/src/components/Slippage/Slippage.styles.ts +15 -5
  244. package/src/components/Slippage/Slippage.tsx +11 -10
  245. package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +5 -8
  246. package/src/components/SwapDetails/SwapDetails.helpers.tsx +1 -1
  247. package/src/components/SwapDetails/SwapDetails.styles.ts +36 -33
  248. package/src/components/SwapDetails/SwapDetails.tsx +28 -39
  249. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.Warning.tsx +1 -1
  250. package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +4 -3
  251. package/src/components/SwapDetailsModal/SwapDetailsModal.Cancel.tsx +2 -2
  252. package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +14 -8
  253. package/src/components/SwapDetailsModal/SwapDetailsModal.helpers.tsx +1 -1
  254. package/src/components/SwapDetailsModal/SwapDetailsModal.tsx +1 -1
  255. package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +1 -1
  256. package/src/components/SwapsGroup/SwapsGroup.styles.ts +10 -1
  257. package/src/components/SwapsGroup/SwapsGroup.tsx +3 -5
  258. package/src/components/TokenList/TokenList.helpers.ts +2 -2
  259. package/src/components/TokenList/TokenList.styles.ts +74 -38
  260. package/src/components/TokenList/TokenList.tsx +30 -20
  261. package/src/components/TokenList/TokenList.types.ts +4 -10
  262. package/src/components/TokenList/index.ts +0 -1
  263. package/src/components/UpdateUrl.tsx +0 -5
  264. package/src/constants/errors.ts +9 -5
  265. package/src/constants/index.ts +1 -0
  266. package/src/constants/navigationRoutes.ts +7 -8
  267. package/src/containers/App/App.styles.ts +18 -0
  268. package/src/containers/App/App.tsx +52 -0
  269. package/src/containers/App/index.ts +1 -0
  270. package/src/containers/QuoteInfo/QuoteInfo.styles.ts +17 -1
  271. package/src/containers/QuoteInfo/QuoteInfo.tsx +46 -44
  272. package/src/containers/QuoteInfo/QuoteInfo.types.ts +3 -0
  273. package/src/{Wallets.tsx → containers/Wallets/Wallets.tsx} +25 -31
  274. package/src/containers/Wallets/Wallets.types.ts +12 -0
  275. package/src/containers/Wallets/index.ts +1 -0
  276. package/src/containers/Widget/Widget.tsx +19 -0
  277. package/src/containers/Widget/Widget.types.ts +5 -0
  278. package/src/containers/Widget/index.ts +2 -0
  279. package/src/containers/WidgetInfo/WidgetInfo.helpers.ts +64 -0
  280. package/src/containers/WidgetInfo/WidgetInfo.tsx +62 -0
  281. package/src/containers/WidgetInfo/WidgetInfo.types.ts +21 -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/useConfirmSwap.helpers.ts +15 -11
  287. package/src/hooks/useConfirmSwap/useConfirmSwap.ts +21 -20
  288. package/src/hooks/useConfirmSwap/useConfirmSwap.types.ts +1 -1
  289. package/src/hooks/useLanguage.ts +4 -5
  290. package/src/hooks/useNavigateBack.ts +3 -52
  291. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.constants.ts +1 -1
  292. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.helpers.ts +37 -7
  293. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.mock.ts +60 -0
  294. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.test.ts +78 -3
  295. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.ts +15 -6
  296. package/src/hooks/usePrepareBlockchainList/usePrepareBlockchainList.types.ts +6 -1
  297. package/src/hooks/useSwapInput.ts +86 -28
  298. package/src/hooks/useSyncStoresWithConfig.ts +18 -5
  299. package/src/hooks/useTheme.ts +4 -5
  300. package/src/index.ts +53 -5
  301. package/src/pages/ConfirmSwapPage.tsx +61 -33
  302. package/src/pages/HistoryPage.tsx +2 -7
  303. package/src/pages/Home.tsx +55 -81
  304. package/src/pages/LanguagePage.tsx +0 -5
  305. package/src/pages/LiquiditySourcePage.tsx +3 -7
  306. package/src/pages/SelectBlockchainPage.tsx +26 -18
  307. package/src/pages/SelectSwapItemsPage.tsx +13 -26
  308. package/src/pages/SettingsPage.tsx +26 -17
  309. package/src/pages/SwapDetailsPage.tsx +3 -4
  310. package/src/pages/ThemePage.tsx +2 -7
  311. package/src/pages/WalletsPage.tsx +5 -8
  312. package/src/services/httpService.ts +1 -1
  313. package/src/store/AppStore.tsx +7 -1
  314. package/src/store/app.ts +31 -5
  315. package/src/store/quote.ts +3 -4
  316. package/src/store/slices/config.ts +1 -0
  317. package/src/store/slices/data.ts +10 -6
  318. package/src/store/slices/settings.ts +168 -0
  319. package/src/store/wallets.ts +57 -29
  320. package/src/types/config.ts +48 -3
  321. package/src/types/swap.ts +4 -13
  322. package/src/types/wallets.ts +18 -1
  323. package/src/utils/colors.ts +2 -1
  324. package/src/utils/configs.ts +2 -1
  325. package/src/utils/date.ts +1 -1
  326. package/src/utils/meta.ts +8 -1
  327. package/src/utils/providers.ts +8 -5
  328. package/src/utils/queue.ts +2 -2
  329. package/src/utils/quote.ts +7 -7
  330. package/src/utils/settings.ts +11 -5
  331. package/src/utils/swap.ts +46 -40
  332. package/src/utils/time.ts +1 -1
  333. package/src/utils/wallets.ts +127 -144
  334. package/dist/Wallets.d.ts +0 -18
  335. package/dist/Wallets.d.ts.map +0 -1
  336. package/dist/Widget.d.ts +0 -9
  337. package/dist/Widget.d.ts.map +0 -1
  338. package/dist/components/LoadingSwapDetails/LoadingSwapDetailStep.d.ts +0 -4
  339. package/dist/components/LoadingSwapDetails/LoadingSwapDetailStep.d.ts.map +0 -1
  340. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.types.d.ts +0 -4
  341. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.types.d.ts.map +0 -1
  342. package/dist/components/Quote/QuoteSkeleton.d.ts.map +0 -1
  343. package/dist/components/Quote/QuoteSkeleton.styles.d.ts.map +0 -1
  344. package/dist/components/Quote/QuoteSkeleton.types.d.ts.map +0 -1
  345. package/dist/store/settings.d.ts +0 -82
  346. package/dist/store/settings.d.ts.map +0 -1
  347. package/src/Widget.tsx +0 -106
  348. package/src/components/LoadingSwapDetails/LoadingSwapDetailStep.tsx +0 -41
  349. package/src/components/LoadingSwapDetails/LoadingSwapDetails.types.ts +0 -3
  350. package/src/components/Quote/QuoteSkeleton.styles.ts +0 -110
  351. package/src/components/Quote/QuoteSkeleton.tsx +0 -108
  352. package/src/store/settings.ts +0 -161
  353. /package/dist/components/{Quote → QuoteSkeleton}/QuoteSkeleton.d.ts +0 -0
  354. /package/dist/components/{Quote → QuoteSkeleton}/QuoteSkeleton.types.d.ts +0 -0
  355. /package/src/components/{Quote → QuoteSkeleton}/QuoteSkeleton.types.ts +0 -0
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var bu=Object.defineProperty;var s=(t,e)=>bu(t,"name",{value:e,configurable:!0});import{MainEvents as LP,RouteEventType as MP,StepEventType as PP,StepExecutionBlockedEventStatus as $P,StepExecutionEventStatus as _P,useEvents as DP}from"@rango-dev/queue-manager-rango-preset";import{useWallets as xl}from"@rango-dev/wallets-react";import{Events as rr,Provider as Ru}from"@rango-dev/wallets-react";import{isEvmBlockchain as ec}from"rango-sdk";import Fo,{createContext as tc,useEffect as oc,useRef as nc}from"react";import{useEffect as Uu}from"react";import{create as Du}from"zustand";import{subscribeWithSelector as Fu}from"zustand/middleware";import{RangoClient as Eu}from"rango-sdk";var Qi="c6381a79-2817-4602-83bf-6a641a409e32";var Zn={API_KEY:Qi};function bo(t){return Zn[t]}s(bo,"getConfig");function Vi(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Zn=e,Zn}s(Vi,"initConfig");var ji=20,Ki=25,Xi="Roboto",Rn="theme-widget";var Eo,Nt=s(()=>Eo||(Eo=new Eu(bo("API_KEY")),Eo),"httpService");import{WalletState as Ge}from"@rango-dev/ui";import{readAccountAddress as Nu}from"@rango-dev/wallets-react";import{detectInstallLink as Wu,getCosmosExperimentalChainInfo as Bu,isEvmAddress as Lu,KEPLR_COMPATIBLE_WALLETS as yy,Networks as Zi}from"@rango-dev/wallets-shared";import er from"bignumber.js";import{isCosmosBlockchain as Mu}from"rango-types";import Au from"bignumber.js";var be=new Au(0);import{WalletTypes as Iu}from"@rango-dev/wallets-shared";var Yi=[Iu.LEAP];import{BigNumber as Ji}from"bignumber.js";var Ao=s(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),W=s((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Ji(t),r=1,i=1e3;for(let a=0;a<60;a++)if(new Ji(n.toFixed(a,r)).eq(n)){i=a;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(i,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(i,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(i,Math.min(o||100,Math.max(e||0,4))),r);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(i,Math.min(o||100,Math.max(e||0,a))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(i,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var Io=s(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var qe=s((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Xt=s(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function No(t,e=4){let o=parseFloat(t);if(isNaN(o))return t;let n=Math.pow(10,e);return(Math.round(o*n)/n).toString()}s(No,"limitDecimalPlaces");function Pu(t){switch(!0){case t.connected:return Ge.CONNECTED;case t.connecting:return Ge.CONNECTING;case!t.installed:return Ge.NOT_INSTALLED;default:return Ge.DISCONNECTED}}s(Pu,"mapStatusToWalletState");function Ri(t,e,o,n){return o.filter(r=>!Yi.includes(r)).filter(r=>{let{supportedChains:i,isContractWallet:a}=e(r),{installed:l,network:p}=t(r);return a&&(!l||!!n&&p!==n)?!1:n?!!i.find(c=>c.name===n):!0}).map(r=>{let{name:i,img:a,installLink:l}=e(r),p=Pu(t(r));return{title:i,image:a,link:Wu(l),state:p,type:r}})}s(Ri,"mapWalletTypesToWalletInfo");function Wo(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}s(Wo,"walletAndSupportedChainsNames");function es(t,e,o,n,r){let i=[];function a(p,u){if(!!!i.find(m=>m.chain===p)){let m={address:u,chain:p,walletType:t};i.push(m)}}s(a,"addAccount");let l=n||[];return e.forEach(p=>{let{address:u,network:c}=Nu(p),m=l.length>0,g=l.includes(c),h=c===Zi.Unknown;if(m&&!g&&!h)return;let k=c===Zi.Unknown&&Lu(u);if(h&&!k)return;o.includes(c)||k?r?a(c,u.toLowerCase()):l.filter(f=>o.includes(f)).forEach(f=>{a(f,u.toLowerCase())}):a(c,u)}),i}s(es,"prepareAccountsForWalletStore");function ts(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain;e.includes(n)||e.push(n),e.includes(r)||e.push(r),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(i=>{let a=i.from.blockchain,l=i.to.blockchain;e.includes(a)||e.push(a),e.includes(l)||e.push(l)})}),e}s(ts,"getRequiredChains");function Wt(t,e,o,n){if(t.length===0)return null;let r=t.filter(i=>i.chain===e);return r.length===0?null:r.map(i=>i.balances?.find(a=>n!==null&&a.address===n||n===null&&a.address===n&&a.symbol===o)||null).filter(i=>i!==null).sort((i,a)=>parseFloat(a?.amount||"0")-parseFloat(i?.amount||"1")).find(()=>!0)||null}s(Wt,"getBalanceFromWallet");function Bo(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}s(Bo,"isAccountAndWalletMatched");function os(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new er(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:Lo(o,r.asset.symbol,r.asset.address,e)||null}))||[]}s(os,"makeBalanceFor");function ns(t){return{...t,loading:!1,error:!0}}s(ns,"resetConnectedWalletState");var Lo=s((t,e,o,n)=>n?.find(i=>i.blockchain===t&&i.symbol?.toUpperCase()===e?.toUpperCase()&&i.address===o)?.usdPrice||null,"getUsdPrice"),Mo=s((t,e)=>{let o=Bu(Object.entries(t).map(([,n])=>n).filter(Mu));return o&&o[e]?.experimental},"isExperimentalChain");function $u(t,e){return t.map(({balance:o,...n})=>{let r=W(new er(Wt(e,n.blockchain,n.symbol,n.address)?.amount||be)),i="";return n.usdPrice&&(i=W(new er(Wt(e,n.blockchain,n.symbol,n.address)?.amount||be).multipliedBy(n.usdPrice))),{...n,...r!=="0"&&{balance:{amount:r,usdValue:i}}}})}s($u,"getTokensWithBalance");function rs(t,e){let o=e.length>0?$u(t,e):t;return o.sort((n,r)=>n.balance?.usdValue&&r.balance?.usdValue?parseFloat(r.balance.usdValue)-parseFloat(n.balance.usdValue):!n.balance?.usdValue&&r.balance?.usdValue?1:n.balance?.usdValue&&!r.balance?.usdValue?-1:!n.balance?.usdValue&&!r.balance?.usdValue?parseFloat(r.balance?.amount||"0")-parseFloat(n.balance?.amount||"0"):0),o}s(rs,"getTokensBalanceFromWalletAndSort");function Ae(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}s(Ae,"tokensAreEqual");function is(t){return t.sort((e,o)=>+(o.state===Ge.CONNECTED)-+(e.state===Ge.CONNECTED)||+(o.state===Ge.DISCONNECTED||o.state===Ge.CONNECTING)-+(e.state===Ge.DISCONNECTED||e.state===Ge.CONNECTING))}s(is,"sortWalletsBasedOnConnectionState");function Po(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}s(Po,"getConciseAddress");function ss({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}s(ss,"getAddress");var _u=s(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),He=_u;var H=He(Du()(Fu((t,e)=>({connectedWallets:[],customDestination:"",loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(i=>({loading:!0,connectedWallets:i.connectedWallets.filter(a=>a.walletType!==o[0].walletType).concat(o.map(a=>{let l=!i.connectedWallets.find(p=>p.chain===a.chain&&p.selected);return{balances:[],address:a.address,chain:a.chain,explorerUrl:null,walletType:a.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(i=>i.selected&&i.walletType!==o).map(i=>i.chain);return{connectedWallets:n.connectedWallets.filter(i=>i.walletType!==o).map(i=>r.includes(i.chain)?i:(r.push(i.chain),{...i,selected:!0}))}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let i=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),a=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return i?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let i=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(l=>o.find(p=>Bo(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:u,chain:c})=>({address:u,blockchain:c})),p=(await Nt().getWalletsDetails(a)).wallets;if(p)t(u=>({loading:!1,connectedWallets:u.connectedWallets.map(c=>{let m=o.find(h=>Bo(h,c)),g=p.find(h=>h.address===c.address&&h.blockChain===c.chain);return g?.failed&&m&&r&&i([m],n,!1),m&&g?{...c,explorerUrl:g.explorerUrl,balances:os(g,n)}:c})}));else throw new Error("Wallet not found")}catch{t(l=>({loading:!1,connectedWallets:l.connectedWallets.map(p=>o.find(u=>Bo(u,p))?ns(p):p)}))}}}))));import{allProviders as Ou}from"@rango-dev/provider-all";function $o(t,e){let o=Ou({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let i=o.find(a=>a.config.type===r);i?n.push(i):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}s($o,"matchAndGenerateProviders");function as(t,e){return $o(t,e).map(r=>r.config.type)}s(as,"configWalletsToWalletName");function ls(t,e){let o=H.use.clearConnectedWallet(),n=$o(void 0,e);return Uu(()=>{o(),n=$o(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}s(ls,"useWalletProviders");import Xu,{createContext as Yu,useContext as Ju,useRef as Zu}from"react";import{create as Ku}from"zustand";var tr={apiKey:"",multiWallets:!0,enableNewLiquiditySources:!0},ps=s((t,e,o)=>({config:{...tr,...t},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})}}),"createConfigSlice");function Bt(t){return Array.from(new Set(t))}s(Bt,"removeDuplicateFrom");function or(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}s(or,"areEqual");function us(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}s(us,"debounce");function St(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}s(St,"containsText");var ee=s(()=>document.getElementById("swap-box"),"getContainer");import{create as Qu}from"zustand";import{persist as Vu,subscribeWithSelector as ju}from"zustand/middleware";import{English as zu,French as qu,Japanese as Gu,Spanish as Hu}from"@rango-dev/ui";var cs=[{title:"English",label:"English",local:"en",SVGFlag:zu},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Hu},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:qu},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Gu}],_o="en";var ms=[.5,1,3],ds=1,fs=5,gs=100,hs=0;var D=He(Qu()(Vu(ju((t,e)=>({preferredBlockchains:[],slippage:ds,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,disabledLiquiditySources:[],theme:"auto",language:_o,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((a,l)=>{let p=a===o,u=l<=10-1;return p&&u}))return;let i=n.filter(a=>!(a===o));t(()=>({preferredBlockchains:[o,...i]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let i=Bt(o.map(a=>a.swapperGroup));return i.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:i}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o}))})),{name:"user-settings",skipHydration:!0})));function Do(t){let e=D.use.disabledLiquiditySources(),o=t.map(i=>i.swapperGroup),n=[];return Bt(t.map(i=>i.swapperGroup)).map(i=>{let a=t.find(l=>l.swapperGroup===i);if(a){let l=!0;o&&(l=o.some(p=>p===a.swapperGroup)),l&&a.types.map(p=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:p,selected:!e.includes(a.swapperGroup)})})}}),n}s(Do,"getUniqueSwappersGroups");function ys(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}s(ys,"sortLiquiditySourcesByGroupTitle");var Ss=s((t,e)=>({_blockchains:[],_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchains;if(!o||!o?.type)return n;let r=e().config,i=(o.type==="source"?r.from?.blockchains:r.to?.blockchains)??[];return n.filter(l=>!(i.length>0&&!i.includes(l.name)))},tokens:o=>{let n=e()._tokens;if(!o||!o?.type)return n;let r=e().config,i=(o.type==="source"?r.from?.tokens:r.to?.tokens)??[],a=e().blockchains({type:o.type});return n.filter(p=>i.length>0&&!i.some(u=>Ae(u,p))||o.blockchain&&p.blockchain!==o.blockchain||!a.some(u=>u.name===p.blockchain)?!1:o.searchFor?!!(St(p.symbol,o.searchFor)||St(p.address||"",o.searchFor)||St(p.name||"",o.searchFor)):!0).sort((p,u)=>e().isTokenPinned(p)?-1:e().isTokenPinned(u)||p.isSecondaryCoin?1:u.isSecondaryCoin||!p.address&&u.address?-1:p.address&&!u.address?1:0)},isTokenPinned:o=>!!e().config.pinnedTokens?.some(r=>Ae(r,o)),swappers:()=>{let{config:{enableNewLiquiditySources:o,liquiditySources:n}}=e();return e()._swappers.filter(a=>{let l=n?.includes(a.swapperGroup);return o||!n||n.length===0?!l:l}).sort(ys)},fetch:async()=>{try{let o=await Nt().getAllMetadata();t({fetchStatus:"success"});let n=[],r=[],i=o.popularTokens,a=o.swappers,l=new Set;o.tokens.forEach(p=>{l.add(p.blockchain),r.push(p)}),o.blockchains.forEach(p=>{p.enabled&&l.has(p.name)&&n.push(p)}),n.sort((p,u)=>p.sort-u.sort),t({_blockchains:n,_tokens:r,_popularTokens:i,_swappers:a})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");function Cs(t){return Ku()((...e)=>({...Ss(...e),...ps(t,...e)}))}s(Cs,"createAppStore");var ks=Yu(null);function v(){let t=Ju(ks);if(!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}s(v,"useAppStore");function Ts(t){let e=Zu();return e.current||(e.current=Cs(t.config)),Xu.createElement(ks.Provider,{value:e.current},t.children)}s(Ts,"AppStoreProvider");var ir=tc({onConnectWallet:()=>{}});function rc(t){let e=v().updateConfig,o=v().blockchains(),n=v().tokens(),{providers:r}=ls(t.providers,t?.options),i=H.use.disconnectWallet(),a=H.use.connectWallet(),l=nc();oc(()=>{t.config&&e(t.config)},[t.config]);let p=o.filter(ec).map(c=>c.name),u=s((c,m,g,h,w)=>{if(m===rr.ACCOUNTS)if(g){let k=Wo(w.supportedBlockchains),y=es(c,g,p,k,w.isContractWallet);a(y,n)}else i(c);if(m===rr.ACCOUNTS&&h.connected){let k=`${c}-${h.network}-${g}`;h.connected&&(l.current?l.current(k):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(m===rr.NETWORK&&h.network){let k=`${c}-${h.network}`;l.current?l.current(k):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(c,m,g,h,w)},"onUpdateState");return Fo.createElement(ir.Provider,{value:{onConnectWallet:c=>{l.current=c}}},Fo.createElement(Ru,{allBlockChains:o,providers:r,onUpdateState:u,autoConnect:!0},t.children))}s(rc,"Main");function sr(t){let{config:e,...o}=t;return Fo.createElement(Ts,{config:e},Fo.createElement(rc,{...o,config:e}))}s(sr,"WidgetWallets");import{I18nManager as Vh,styled as jh}from"@rango-dev/ui";import tt,{useContext as Kh,useEffect as wu,useMemo as Xh,useState as vu}from"react";import{useQueueManager as id}from"@rango-dev/queue-manager-rango-preset";import{useWallets as sd}from"@rango-dev/wallets-react";import{isEvmBlockchain as ad}from"rango-types";import wt,{useEffect as ld,useRef as pd}from"react";import{MemoryRouter as ud,useInRouterContext as cd}from"react-router";import{useLocation as md,useNavigate as dd}from"react-router-dom";var S={home:"/",fromSwap:"from-swap",fromBlockchain:"/from-swap/blockchains",toBlockchain:"/to-swap/blockchains",toSwap:"to-swap",settings:"settings",liquiditySources:"/settings/liquidity-sources",themes:"/settings/themes",bridges:"/settings/bridges",exchanges:"/settings/exchanges",languages:"/settings/languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:"swaps/:requestId"};import{useWallets as sc}from"@rango-dev/wallets-react";import{useEffect as ac,useRef as lc}from"react";function ws(){let{connect:t,state:e}=sc(),o=lc({}),{fetchStatus:n}=v(),r=new URLSearchParams(location.search).get("autoConnect")||"",i=e(r);ac(()=>{n==="success"&&r&&i.installed&&!i.connecting&&!i.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[i,n])}s(ws,"useForceAutoConnect");import{i18n as Or}from"@lingui/core";import{Button as jm,styled as Ur,SwapInput as rl,WarningIcon as Km}from"@rango-dev/ui";import De,{useEffect as Xm,useRef as Ym,useState as Jm}from"react";import{useNavigate as Zm}from"react-router-dom";import{ChevronLeftIcon as cc}from"@rango-dev/ui";import bs from"react";import{darkTheme as pc,IconButton as uc,styled as Oo}from"@rango-dev/ui";var We=Oo(uc,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),vs=Oo("div",{position:"absolute",background:"$secondary500",[`.${pc} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Lt=Oo("div",{display:"flex",justifyContent:"flex-end",width:"$40"}),xs=Oo("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"});function ar(t){return bs.createElement(We,{variant:"ghost",size:"small",onClick:t.onClick},bs.createElement(cc,{color:"black",size:16}))}s(ar,"BackButton");import{i18n as mc}from"@lingui/core";import{Button as dc,Typography as fc}from"@rango-dev/ui";import lr from"react";function pr(t){return lr.createElement(Lt,null,lr.createElement(dc,{variant:"ghost",onClick:t.onClick,size:"xsmall"},lr.createElement(fc,{variant:"label",size:"medium",color:"error500"},mc.t("Cancel"))))}s(pr,"CancelButton");import{i18n as gc}from"@lingui/core";import{Tooltip as hc,WalletIcon as yc}from"@rango-dev/ui";import Uo from"react";function ur(t){return Uo.createElement(hc,{container:t.container,side:"top",content:gc.t("Connect Wallet")},Uo.createElement(We,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&Uo.createElement(vs,null),Uo.createElement(yc,{size:18,color:"black"})))}s(ur,"WalletButton");import{i18n as Go}from"@lingui/core";import{NotificationsIcon as Mc,Popover as Pc,RefreshIcon as $c,SettingsIcon as _c,Tooltip as Ho,TransactionIcon as Dc}from"@rango-dev/ui";import ue from"react";import{i18n as Ec}from"@lingui/core";import{ChainToken as Bs,ChevronRightIcon as Ac,ListItemButton as Ic,Typography as Nc}from"@rango-dev/ui";import Be from"react";import{useNavigate as Wc}from"react-router-dom";import{create as Sc}from"zustand";import{persist as Cc,subscribeWithSelector as kc}from"zustand/middleware";var Ie=He(Sc()(Cc(kc((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],i=n.steps[n.steps.length-1],a={event:o,creationTime:Date.now(),read:!1,requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,tokenAddress:r.fromSymbolAddress,tokenSymbol:r.fromSymbol},to:{blockchain:i.toBlockchain,tokenSymbol:i.toSymbol,tokenAddress:i.toSymbolAddress}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,a]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{create as Tc}from"zustand";var Ce=He(Tc()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));import{styled as zo}from"@rango-dev/ui";var Es=zo("div",{padding:"$10",width:"350px",minHeight:"150px"}),As=zo("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),Is=zo("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),Ns=zo("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as wc}from"@lingui/core";import{Divider as vc,NoNotificationIcon as xc,Typography as bc}from"@rango-dev/ui";import qo from"react";function Ws(){return qo.createElement(Ns,null,qo.createElement(xc,{color:"secondary",size:26}),qo.createElement(vc,{size:12}),qo.createElement(bc,{variant:"body",size:"medium",color:"neutral700"},wc.t("You have no notification")))}s(Ws,"NotificationNotFound");var Bc=4;function cr(){let t=Wc(),e=Ce.use.setSelectedSwap(),{getUnreadNotifications:o}=Ie(),n=o(),r=v().blockchains(),i=v().tokens(),a=n.sort((p,u)=>u.creationTime-p.creationTime).slice(0,Bc),l=s(p=>{e(p),t(`/swaps/${p}`)},"handleOnClick");return Be.createElement(Es,null,a.length?Be.createElement(As,null,a.map(p=>{let u=i.find(h=>h.address===p.route.from.tokenAddress&&h.blockchain===p.route.from.blockchain&&h.symbol===p.route.from.tokenSymbol),c=r.find(h=>h.name===p.route.from.blockchain),m=i.find(h=>h.address===p.route.to.tokenAddress&&h.blockchain===p.route.to.blockchain&&h.symbol===p.route.to.tokenSymbol),g=r.find(h=>h.name===p.route.to.blockchain);return Be.createElement(Ic,{key:p.requestId,onClick:()=>l(p.requestId),title:Be.createElement(Nc,{variant:"body",size:"small",color:"$neutral700"},Ec.t(p.event.message)),id:p.requestId,start:Be.createElement(Is,null,Be.createElement("div",{className:"from-chain-token"},Be.createElement(Bs,{tokenImage:u?u.image:"",chainImage:c?c.logo:"",size:"small"})),Be.createElement("div",{className:"to-chain-token"},Be.createElement(Bs,{tokenImage:m?m.image:"",chainImage:g?g.logo:"",size:"small"}))),end:Be.createElement(Ac,{size:12,color:"gray"})})})):Be.createElement(Ws,null))}s(cr,"NotificationContent");import{Typography as Lc}from"@rango-dev/ui";import Ls from"react";function Ms(){let{getUnreadNotifications:t}=Ie(),e=t().length;return e?Ls.createElement(xs,null,Ls.createElement(Lc,{variant:"body",size:"xsmall",color:"$background"},e)):null}s(Ms,"UnreadNotificationsBadge");function mr(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r,onClickNotifications:i}=t;return ue.createElement(ue.Fragment,null,ue.createElement(Ho,{container:ee(),side:"top",content:Go.t("Refresh")},ue.createElement(We,{variant:"ghost",size:"small",onClick:o,disabled:!o},ue.createElement($c,{size:16,color:o?"black":"gray"}))),ue.createElement(Ho,{container:ee(),side:"top",content:Go.t("Notifications")},ue.createElement(Pc,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:ee(),content:ue.createElement(cr,null)},ue.createElement(We,{size:"small",variant:"ghost",onClick:i},ue.createElement(Mc,{size:18,color:"black"}),ue.createElement(Ms,null)))),ue.createElement(Ho,{container:ee(),side:"top",content:Go.t("Settings")},ue.createElement(We,{size:"small",variant:"ghost",onClick:r},ue.createElement(_c,{size:18,color:"black"}))),ue.createElement(Ho,{container:ee(),side:"top",content:Go.t("Transactions History")},ue.createElement(We,{size:"small",variant:"ghost",onClick:n},ue.createElement(Dc,{size:18,color:"black"}))))}s(mr,"HomeButtons");import{BottomLogo as Oc,Divider as Uc,Header as zc}from"@rango-dev/ui";import de from"react";import{useNavigate as qc}from"react-router-dom";import{darkTheme as Fc,styled as dr}from"@rango-dev/ui";var Ps=dr("div",{position:"relative",display:"flex",flexDirection:"column",borderRadius:"$primary",overflow:"hidden !important",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)",width:"95vw",maxWidth:"390px",maxHeight:"700px",$$color:"$colors$neutral100",[`.${Fc} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"95vh"},false:{height:"auto"}}}}),$s=dr("div",{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",display:"flex",flexDirection:"column",flex:1,padding:"$20 $20 $10 $20",backgroundColor:"$background",position:"relative",overflowY:"auto",overflowX:"hidden",variants:{noPadding:{true:{padding:"0"}}}}),_s=dr("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function Gc(t,e){let{children:o,header:n,footer:r,noPadding:i,hasLogo:a=!0,fixedHeight:l=!0}=t,p=H.use.connectedWallets(),u=Ce.use.connectWalletsButtonDisabled(),c=qc(),m=s(()=>{u||c("/"+S.wallets)},"onConnectWallet");return de.createElement(Ps,{ref:e,fixedHeight:l,id:"swap-box"},de.createElement(zc,{prefix:de.createElement(de.Fragment,null,n.onBack&&de.createElement(ar,{onClick:n.onBack})),title:n.title,suffix:de.createElement(de.Fragment,null,n.suffix,n.hasConnectWallet&&de.createElement(ur,{container:ee(),onClick:m,isConnected:!!p?.length}),n.onCancel&&de.createElement(pr,{onClick:n.onCancel}))}),de.createElement($s,{noPadding:i},o),(a||r)&&de.createElement(_s,null,de.createElement("div",{className:"footer__content"},r),a&&de.createElement("div",{className:"footer__logo"},de.createElement(Uc,{size:12}),de.createElement(Oc,null))))}s(Gc,"LayoutComponent");var K=de.forwardRef(Gc);K.displayName="Layout";import{ReverseIcon as Zc,styled as oa}from"@rango-dev/ui";import xr from"react";import lt from"bignumber.js";import{create as Yc}from"zustand";import{subscribeWithSelector as Jc}from"zustand/middleware";import{getLastSuccessfulStep as Xc}from"@rango-dev/queue-manager-rango-preset";import Jk from"bignumber.js";var it=(r=>(r[r.HIGH_VALUE_LOSS=0]="HIGH_VALUE_LOSS",r[r.UNKNOWN_PRICE=1]="UNKNOWN_PRICE",r[r.INSUFFICIENT_SLIPPAGE=2]="INSUFFICIENT_SLIPPAGE",r[r.HIGH_SLIPPAGE=3]="HIGH_SLIPPAGE",r))(it||{});function Ds(t,e){return e.find(o=>o.name===t)?.displayName}s(Ds,"getBlockchainDisplayNameFor");function fr(t,e){return e.find(o=>o.name===t)?.shortName}s(fr,"getBlockchainShortNameFor");function gr(t,e){return e.find(o=>Ae(o,t))??null}s(gr,"findToken");function hr(t,e){return e.find(o=>o.name===t)??null}s(hr,"findBlockchain");import{i18n as Le}from"@lingui/core";import{PendingSwapNetworkStatus as Ko}from"@rango-dev/queue-manager-rango-preset";import ke from"bignumber.js";function Qo(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,i=e[e.length-1];n!=i&&e.push(n),i=e[e.length-1],r!=i&&e.push(r)}),e}s(Qo,"getRequiredWallets");function Vo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}s(Vo,"isValidAddress");import{i18n as fe}from"@lingui/core";var q=s(()=>({genericServerError:fe.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:fe.t("Please reset your liquidity sources."),description:fe.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources")},noResultError:{title:fe.t("No Routes Found"),description:fe.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:fe.t("Bridge Limit Error: Please increase your amount"),decreaseAmount:fe.t("Bridge Limit Error: Please decrease your amount")},highValueLossError:{impactTitle:fe.t("High Price Impact"),title:fe.t("Price impact is too high!"),description:fe.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:fe.t("Confirm High price impact")},quoteUpdatedWithHighValueLoss:{title:fe.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:fe.t("USD Price Unknown"),title:fe.t("USD Price Unknown, Cannot calculate Price Impact."),description:fe.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:fe.t("Confirm USD Price Unknown")}}),"errorMessages");function Fs(t){switch(t.type){case 0:return t.diagnosisMessage??q().noResultError.title;case 1:return q().genericServerError;default:return""}}s(Fs,"getQuoteErrorMessage");import{i18n as jo}from"@lingui/core";var Ct=s(()=>({connectWallet:jo.t("Connect Wallet"),swap:jo.t("Swap"),swapAnyway:jo.t("Swap anyway"),ethWarning:jo.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function Os(t,e){return!t||!e||t.lte(be)||e.lte(be)?0:e.div(t).minus(1).multipliedBy(100).toNumber()}s(Os,"getOutputRatio");function Jo(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new ke(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new ke(1e3)))??!1}s(Jo,"hasHighValueLoss");function Yt(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new ke(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ke(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}s(Yt,"hasLimitError");function yr(t){let e=(t.result?.swaps||[]).filter(l=>{let p=l.fromAmountMinValue?new ke(l.fromAmountMinValue):null,u=l.fromAmountMaxValue?new ke(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||u?.lte(l.fromAmount):p?.gt(l.fromAmount)||u?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new ke(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ke(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",i="",a="";return!r&&o&&o.gt(e.fromAmount)?(i=Le.t({id:"Required: >= {min} {symbol}",values:{min:W(o,6,6),symbol:e.from.symbol}}),a=q().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(i=Le.t({id:"Required: > {min} {symbol}",values:{min:W(o,6,6),symbol:e.from.symbol}}),a=q().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(i=Le.t({id:"Required: <= {max} {symbol}",values:{max:W(n,6,6),symbol:e.from.symbol}}),a=q().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(i=Le.t({id:"Required: < {max} {symbol}",values:{max:W(n,6,6),symbol:e.from.symbol}}),a=q().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:i,recommendation:a}}s(yr,"getLimitErrorMessage");function Us(t,e,o,n,r,i,a,l,p){return t!=="success"?{title:Ct().connectWallet,state:"waitForConnecting",disabled:!0}:e.length==0?{title:Ct().connectWallet,state:"waitForConnecting",disabled:!1}:o||!n||!n.result||r||!p||p==="0"?{title:Ct().swap,disabled:!0,state:"swap"}:i||a?{title:Ct().swapAnyway,disabled:!1,hasWarning:!0,state:"needToConfirm"}:l?{title:Ct().ethWarning,disabled:!1,hasWarning:!0,state:"warning"}:{title:Ct().swap,disabled:!1,state:"swap"}}s(Us,"getSwapButtonState");function Sr(t,e,o){return!((!o||o.lte(be))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}s(Sr,"canComputePriceImpact");function Qc(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,i=e[e.length-1];n!=i&&e.push(n),i=e[e.length-1],r!=i&&e.push(r)}),e}s(Qc,"requiredWallets");var Vc=s((t,e,o,n)=>n?.find(i=>i.blockchain===t&&i.symbol?.toUpperCase()===e?.toUpperCase()&&i.address===o)?.usdPrice||null,"getUsdPrice");function jc(t,e){let o=be;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let i=Vc(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new ke(r.amount).multipliedBy(i||0))}return o}s(jc,"getUsdFeeOfStep");function Zo(t,e){return t.reduce((o,n)=>o.plus(jc(n,e)),be)}s(Zo,"getTotalFeeInUsd");function Cr(t){let e=new Map;return t.result?.swaps.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}s(Cr,"checkSlippageErrors");function zs(t,e){let o=new Map;return t.result?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseInt(n.recommendedSlippage?.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}s(zs,"checkSlippageWarnings");function Ro(t){return t.result?.swaps.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}s(Ro,"getMinRequiredSlippage");function qs(t,e){return e?parseFloat(t)>=parseFloat(e):!0}s(qs,"hasProperSlippage");function en(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:i,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:u,affiliateRef:c,affiliatePercent:m,affiliateWallets:g,initialQuote:h,destination:w}=t,k=i?.reduce((d,C)=>(d[C.chain]=C.address,d),{}),y=[];r?.forEach(d=>{let C=y.find(E=>E.blockchain===d.chain);C?C.addresses.push(d.address):y.push({blockchain:d.chain,addresses:[d.address]})});let x=!!h,f=Bt((h?.result?.swaps||[]).reduce((d,C)=>(d.push(C.from.blockchain,C.to.blockchain),C.internalSwaps&&Array.isArray(C.internalSwaps)&&C.internalSwaps.map(E=>{d.push(E.from.blockchain,E.to.blockchain)}),d),[]));return{amount:n.toString(),affiliateRef:c??void 0,affiliatePercent:m??void 0,affiliateWallets:g??void 0,checkPrerequisites:x,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:k??{},slippage:u.toString(),...w&&{destination:w},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(d=>!a.includes(d)),swappersGroupsExclude:!1},...x&&{blockchains:f}}}s(en,"createQuoteRequestBody");function Gs(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}s(Gs,"getWalletsForNewSwap");function Mt(t){return t.result?.outputAmount||null}s(Mt,"getQuoteOutputAmount");function at(t,e){return new ke(e).div(new ke(t)).minus(1).multipliedBy(100).toNumber()}s(at,"getPercentageChange");function Hs(t,e){let o=Mt(t),n=Mt(e);if(!o||!n)return!1;let r=at(o,n);return r?r<=-1:!0}s(Hs,"isOutputAmountChangedALot");function Qs(t,e){let o=t.validationStatus,n=ts(t);return e.sort((i,a)=>n.indexOf(i.chain)-n.indexOf(a.chain)).flatMap(i=>Js(i,o)||[]).filter(i=>!i.ok).map(i=>{let a=i.asset.symbol,l=W(new ke(i.currentAmount.amount).shiftedBy(-i.currentAmount.decimals),8,8),p=W(new ke(i.requiredAmount.amount).shiftedBy(-i.requiredAmount.decimals),8,8),u="";return i.reason==="FEE"&&(u=Le.t(" for network fee")),i.reason==="INPUT_ASSET"&&(u=Le.t(" for swap")),i.reason==="FEE_AND_INPUT_ASSET"&&(u=Le.t(" for input and network fee")),Le.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:p,symbol:a,reason:u,currentAmount:l,blockchain:i.asset.blockchain}})})}s(Qs,"getBalanceWarnings");function Vs(t,e){return(t?new ke(t):be).multipliedBy(e||0)}s(Vs,"calcOutputUsdValue");function Jt(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Ko.NetworkChanged}s(Jt,"isNetworkStatusInWarningState");function js(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Jt(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Ko.WaitingForConnectingWallet:n=n||Le.t("Waiting for connecting wallet");break;case Ko.WaitingForQueue:n=n||Le.t("Waiting for other running tasks to be finished");break;case Ko.WaitingForNetworkChange:n=n||Le.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:a}}}s(js,"getSwapMessages");function Ks(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}s(Ks,"getLastConvertedTokenInFailedSwap");function Xs(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}s(Xs,"shouldRetrySwap");function Ys(t,e,o,n,r,i){return t||!e&&!Qc(n).every(a=>r.map(l=>l.chain).includes(a))||!!e&&!o||!!e&&!!o&&i&&!Vo(i,o)}s(Ys,"confirmSwapDisabled");function kr(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}s(kr,"searchParamsToToken");function Rs(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}s(Rs,"getQuoteToTokenUsdPrice");function Tr(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}s(Tr,"isNumberOfSwapsChanged");function wr(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!or(o,n)}s(wr,"isQuoteSwappersUpdated");function vr(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!or(o,n)}s(vr,"isQuoteInternalCoinsUpdated");function ea(t,e){return Tr(t,e)||wr(t,e)||vr(t,e)}s(ea,"isQuoteChanged");function Js(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}s(Js,"getRequiredBalanceOfWallet");function Xe(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}s(Xe,"getPriceImpactLevel");function ta(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],i=Xc(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=hr(i?i.toBlockchain:n.fromBlockchain,e),p=hr(r.toBlockchain,e),u=gr(i?{blockchain:l?.name??"",symbol:i.toSymbol,address:i.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),c=gr(a,o),m=i?i.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:u,toBlockchain:p,toToken:c,inputAmount:m}}s(ta,"createRetryQuote");function tn(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:i}=e,a=kt(o,t.requestAmount),l=kt(n,t.result?.outputAmount??"");if(t.result&&a&&l){let c=at(a.toString(),l.toString());if(Jo(a,c)){let g=Zo(t.result.swaps,r),h=Xe(c);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:c,totalFee:g,warningLevel:h}}}else if(t.result&&(!a||!l))return{type:1};let p=Ro(t),u=i>fs;if(qs(e.userSlippage.toString(),p)){if(u&&parseFloat(p??"0")<i)return{type:3,slippage:i.toString()}}else return{type:2,recommendedSlippages:zs(t,i),minRequiredSlippage:p};return null}s(tn,"generateQuoteWarnings");function Pt(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0);return!t||!e||o?null:at(t.toString(),e.toString())}s(Pt,"getPriceImpact");var kt=s((t,e)=>t?.usdPrice?new lt(e||be).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),P=He(Yc()(Jc(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new lt(0),outputUsdValue:new lt(0),toBlockchain:null,toToken:null,quote:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:"",quoteWarningsConfirmed:!1,setQuote:e=>t(o=>{let n=null,r=be;return Xt(o.inputAmount)?(e&&(n=e.result?.outputAmount?new lt(e.result?.outputAmount):null,r=Vs(e.result?.outputAmount,Rs(e)||o.toToken?.usdPrice)),{quote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetQuote:()=>t(()=>({quote:null,outputAmount:null,outputUsdValue:new lt(0)})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{quote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:kt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{quote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new lt(0),outputUsdValue:new lt(0),quote:null},...!!o.fromToken&&{inputUsdValue:kt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:i,fromToken:a,toBlockchain:l,toToken:p,inputAmount:u}=ta(e,r,n);t({fromBlockchain:i,fromToken:a,inputAmount:u,outputAmount:null,inputUsdValue:kt(a??null,u),outputUsdValue:new lt(0),toBlockchain:l,toToken:p,quote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:kt(e.toToken,e.outputAmount?.toString()||"")})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:""}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));var Rc=oa("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),em=oa("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&:hover":{color:"$secondary500"}});function na(){let t=P.use.switchFromAndTo();return xr.createElement(Rc,null,xr.createElement(em,{onClick:()=>{t()}},xr.createElement(Zc,{size:12})))}s(na,"SwitchFromAndToButton");import{Divider as zm}from"@rango-dev/ui";import mt from"react";import{i18n as Ir}from"@lingui/core";import{Alert as am,ChevronDownIcon as lm,ChevronRightIcon as Na,Divider as Nr,Image as Wa,InfoIcon as pm,QuoteCost as um,StepDetails as cm,TokenAmount as mm,Tooltip as Ba,Typography as Dt}from"@rango-dev/ui";import B,{useLayoutEffect as dm,useRef as fm,useState as gm}from"react";import{styled as br}from"@rango-dev/ui";var Er=br("div",{width:"100%",paddingTop:"$2"}),ra=br("div",{paddingBottom:"$15"}),ia=br("div",{width:"100%",display:"flex"});import*as nn from"@radix-ui/react-collapsible";import{darkTheme as Ye,styled as pt}from"@rango-dev/ui";import*as _t from"@radix-ui/react-collapsible";import{Button as tm,darkTheme as $t,IconButton as om,keyframes as sa,styled as he,TextField as nm}from"@rango-dev/ui";var Zt=300,rm=sa({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),im=sa({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),aa=he("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),la=he("div",{display:"grid",gap:"$10",gridTemplateColumns:" repeat(3, minmax(0, 1fr))",alignContent:"baseline"}),pa=he("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${$t} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${$t} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${$t} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),ua=he(_t.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),ca=he("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),ma=he(om,{position:"absolute",left:"$20"}),da=he("div",{paddingTop:"$20","& .wallets-list":{display:"grid",gap:"$10",gridTemplateColumns:" repeat(3, minmax(0, 1fr))",alignContent:"baseline"}}),fa=he(_t.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),ga=he(tm,{width:"100%",borderRadius:"$sm !important",padding:"$15 !important",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${$t} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color","&:hover":{$$color:"$colors$info100",[`.${$t} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${$t} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}}),ha=he("div",{padding:"$10 $0","& .button__content":{display:"flex",justifyContent:"center",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),ya=he("div",{transition:`all ${Zt}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Sa=he("div",{display:"flex"}),Ca=he(nm,{padding:"$0 $15 $15 $15"}),on=he(_t.Content,{overflow:"hidden",variants:{open:{true:{animation:`${rm} ${Zt}ms ease-out`},false:{animation:`${im} ${Zt}ms ease-out`}}}}),ka=he("div",{overflow:"visible",width:"100%"});var Ar=300,Ta=pt(nn.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",variants:{recommended:{true:{$$color:"$colors$info300",[`.${Ye} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ye} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& .steps-details":{padding:"$10 $15"}}),wa=pt("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",cursor:"pointer",boxSizing:"border-box",position:"relative",variants:{recommended:{true:{$$color:"$colors$info100",[`.${Ye} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}},false:{$$color:"$colors$neutral200",[`.${Ye} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{},false:{}}},compoundVariants:[{listItem:!0,recommended:!0,css:{"&:hover":{$$color:"$colors$secondary200",[`.${Ye} &`]:{$$color:"$colors$secondary700"},backgroundColor:"$$color"}}},{listItem:!0,recommended:!1,css:{"&:hover":{$$color:"$colors$neutral300",[`.${Ye} &`]:{$$color:"$colors$neutral400"},backgroundColor:"$$color"}}}],"& .summary":{width:"100%",padding:"$15 $15 $10 $15"},"& .basic-info":{paddingTop:"$10",display:"flex",alignItems:"center"}}),va=pt(nn.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Image}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Image}`]:{border:"1px transparent solid",borderRadius:"100%"}}},recommended:{true:{$$color:"$colors$info300",[`.${Ye} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ye} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& div:nth-child(1)":{display:"flex"}}),xa=pt(on,{width:"100%"}),rn=pt("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Ar}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),IT=pt("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),ba=pt("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ye} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Ea=pt("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"});import{TokenAmount as Ia}from"@rango-dev/ui";import sn from"react";import{styled as sm}from"@rango-dev/ui";var Aa=sm("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%","& .separator":{height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"}});function Rt(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return sn.createElement(Aa,null,sn.createElement(Ia,{direction:"horizontal",label:"Swap input",type:"input",price:{value:e.price.value,usdValue:e.price.usdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),sn.createElement("div",{className:"separator"}),sn.createElement(Ia,{direction:"horizontal",label:"Estimated output",type:"output",price:{value:o.price.value,usdValue:o.price.usdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}s(Rt,"QuoteSummary");function Wr(t){let{quote:e,input:o,output:n,error:r,warning:i,type:a,recommended:l=!0}=t,p=v().tokens(),[u,c]=gm(t.expanded),m=fm(null),g=W(Zo(e.result?.swaps??[],p),2,2),h=Ao(Io(e.result?.swaps)),w=Pt(o.usdValue,n.usdValue??null),k=W(String(w),2,2),y=Xe(w??0),f=s(d=>d.map((C,E)=>{let $,I=r?.type===3&&r.swap.swapperId===C.swapperId||i?.type===2&&i.recommendedSlippages?.has(E),_=i?.type===2&&i.recommendedSlippages?.has(E);return I?$="error":_&&($="warning"),{swapper:{displayName:C.swapperId,image:C.swapperLogo},from:{token:{displayName:C.from.symbol,image:C.from.logo},chain:{displayName:C.from.blockchain,image:C.from.blockchainLogo},price:{value:E===0?W(o.value,6,6):C.fromAmount}},to:{token:{displayName:C.to.symbol,image:C.to.logo},chain:{displayName:C.to.blockchain,image:C.to.blockchainLogo},price:{value:C.toAmount}},state:$,alerts:I||_?B.createElement(ra,null,B.createElement(am,{type:I?"error":"warning",title:r?.type===3?r?.recommendation:Ir.t("Slippage Error:"),footer:B.createElement(ia,null,r?.type===3&&B.createElement(B.Fragment,null,B.createElement(Dt,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),B.createElement(Nr,{direction:"horizontal",size:8}),B.createElement(Dt,{size:"xsmall",variant:"body",color:"neutral900"},"|"),B.createElement(Nr,{direction:"horizontal",size:8}),B.createElement(Dt,{size:"xsmall",variant:"body",color:"neutral900"},Ir.t({id:"Yours: {amount} {symbol}",values:{amount:W(C.fromAmount,6,6),symbol:C?.from.symbol}}))),(r?.type===4||i?.type===2)&&B.createElement(Dt,{size:"xsmall",variant:"body",color:"neutral900"},Ir.t({id:"min required Slippage: {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(E)},...i?.type===2&&{minRequiredSlippage:i.recommendedSlippages?.get(E)}}})))})):void 0}}),"getQuoteSteps")(e.result?.swaps??[]),T=f.length;return dm(()=>{u&&m.current&&setTimeout(()=>{m?.current?.scrollIntoView({behavior:"smooth"})},Ar)},[u]),B.createElement(B.Fragment,null,B.createElement(wa,{recommended:l,listItem:a==="list-item",basic:a==="basic"},B.createElement("div",{className:"summary"},B.createElement(um,{fee:g,time:h,steps:T}),a==="basic"&&B.createElement("div",{className:"basic-info"},B.createElement(Ea,null,B.createElement(pm,{size:12,color:"gray"})),B.createElement(Dt,{size:"small",variant:"body",style:{letterSpacing:.4}},`${o.value} ${f[0].from.token.displayName} = ${n.value} ${f[f.length-1].to.token.displayName}`),B.createElement(Dt,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${n.usdValue})`)),a==="list-item"&&B.createElement(mm,{type:"output",direction:"vertical",price:{value:n.value,usdValue:n.usdValue},token:{displayName:f[T-1].to.token.displayName,image:f[T-1].to.token.image},chain:{image:f[T-1].to.chain.image},percentageChange:k,warningLevel:y}),a==="swap-preview"&&B.createElement(B.Fragment,null,B.createElement(Rt,{from:f[0].from,to:f[T-1].to,percentageChange:k,warningLevel:y}),B.createElement(Nr,{size:4}))),B.createElement(Ta,{recommended:l,open:u,onOpenChange:c},B.createElement(va,{ref:d=>m.current=d,recommended:l,onClick:c.bind(null,d=>!d)},B.createElement("div",null,f.map((d,C)=>{let E=`item-${C}`;return B.createElement(B.Fragment,{key:E},B.createElement(Ba,{container:t.tooltipContainer,side:"bottom",sideOffset:4,content:d.from.chain.displayName},B.createElement(Wa,{src:d.from.chain.image,size:16})),C===T-1&&B.createElement(B.Fragment,null,B.createElement(rn,null,B.createElement(Na,{size:12,color:"black"})),B.createElement(Ba,{container:t.tooltipContainer,side:"bottom",sideOffset:4,content:d.to.chain.displayName},B.createElement(Wa,{src:d.to.chain.image,size:16}))),C!==T-1&&B.createElement(rn,null,B.createElement(Na,{size:12,color:"black"})))})),B.createElement(rn,{orientation:u?"up":"down"},B.createElement(lm,{size:12,color:"black"}))),B.createElement(xa,{open:u},B.createElement(ba,null),B.createElement("div",{className:"steps-details"},f.map((d,C)=>{let E=`item-${C}`;return B.createElement(cm,{type:"quote-details",key:E,step:d,hasSeparator:C!==f.length-1,state:d.state})}))))))}s(Wr,"Quote");import{ChainToken as an,Divider as Me,NextIcon as ym,Skeleton as ye}from"@rango-dev/ui";import A from"react";import{darkTheme as hm,styled as La}from"@rango-dev/ui";var Ma=La("div",{$$color:"$colors$neutral100",[`.${hm} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15 ","& .cost-and-tag":{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"},variants:{rounded:{true:{borderRadius:"$xm"}}},"& .cost":{display:"flex"},"& .basic-summary":{padding:"$15 $0 14px $0"},"& .output":{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"},"& .output__token-info":{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"},"& .quote-summary":{display:"flex",justifyContent:"space-between",alignItems:"end"},"& .quote-summary__separator":{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"},"& .token-amount":{display:"flex",justifyContent:"space-between"},"& .token-amount__label":{display:"flex",flexDirection:"column",alignItems:"start"},"& .chains":{paddingTop:"$2"},"& .swap-preview":{padding:"$15 $0 $15 $0"},"& .steps":{paddingLeft:"$8"},"& .step__title":{display:"flex",alignItems:"center"},"& .step__content":{display:"flex",alignItems:"start"},"& .step__tokens":{paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center"},"& .step__token-info":{display:"flex",alignItems:"center"},"& .step__icon-container":{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}}),Pa=La("div",{borderLeft:"1px dashed black",minHeight:" 64px",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});function Br(t){let{separator:e=!0}=t;return A.createElement(A.Fragment,null,A.createElement("div",{className:"step__title"},A.createElement(ye,{height:22,width:22,variant:"circular"}),A.createElement(Me,{direction:"horizontal",size:8}),A.createElement(ye,{height:15,width:148,variant:"rounded"})),A.createElement("div",{className:"step__content"},A.createElement(Pa,{hideSeparator:!e}),A.createElement("div",{className:"step__tokens"},A.createElement("div",{className:"step__token-info"},A.createElement(an,{size:"small",loading:!0,chainImage:"",tokenImage:""}),A.createElement(Me,{direction:"horizontal",size:8}),A.createElement(ye,{height:12,width:76,variant:"rounded"})),A.createElement("div",{className:"step__icon-container"},A.createElement(ym,{color:"gray",size:16})),A.createElement("div",{className:"step__token-info"},A.createElement(an,{size:"small",loading:!0,chainImage:"",tokenImage:""}),A.createElement(Me,{direction:"horizontal",size:8}),A.createElement(ye,{height:12,width:76,variant:"rounded"})))))}s(Br,"StepSkeleton");function Lr(t){let{type:e,expanded:o,tag:n=!1}=t,r=A.createElement("div",{className:"quote-summary"},A.createElement("div",{className:"token-amount"},A.createElement(an,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),A.createElement(Me,{size:8,direction:"horizontal"}),A.createElement("div",{className:"token-amount__label"},A.createElement(ye,{height:10,width:60,variant:"rounded"}),A.createElement(Me,{size:4}),A.createElement(ye,{height:15,width:148,variant:"rounded"}))),A.createElement(ye,{height:12,width:64,variant:"rounded"}));return A.createElement(Ma,null,A.createElement("div",{className:"cost-and-tag"},A.createElement("div",{className:"cost"},A.createElement(ye,{width:60,height:10,variant:"rounded"}),A.createElement(Me,{size:4,direction:"horizontal"}),A.createElement(ye,{width:60,height:10,variant:"rounded"}),A.createElement(Me,{size:4,direction:"horizontal"}),A.createElement(ye,{width:60,height:10,variant:"rounded"})),n&&A.createElement(ye,{height:22,width:100,variant:"rounded"})),e==="basic"&&A.createElement("div",{className:"basic-summary"},A.createElement(ye,{height:15,width:148,variant:"rounded"})),e==="list-item"&&A.createElement("div",{className:"output"},A.createElement("div",{className:"output__token-info"},A.createElement(an,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),A.createElement(Me,{direction:"horizontal",size:4}),A.createElement(ye,{height:15,width:150,variant:"rounded"})),A.createElement(Me,{size:4}),A.createElement(ye,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&A.createElement(A.Fragment,null,A.createElement(Me,{size:4}),A.createElement("div",{className:"swap-preview"},r,A.createElement("div",{className:"quote-summary__separator"}),r)),A.createElement("div",{className:"chains"},A.createElement(ye,{height:15,width:321,variant:"rounded"})),o&&A.createElement("div",{className:"steps"},A.createElement(Me,{size:20}),A.createElement(Br,null),A.createElement(Br,null),A.createElement(Br,{separator:!1})))}s(Lr,"QuoteSkeleton");import{i18n as _m}from"@lingui/core";import{Alert as Dm,Button as Fm,InfoIcon as Om}from"@rango-dev/ui";import Ee from"react";import{useNavigate as Um}from"react-router-dom";import{Alert as Sm,Button as Cm,Divider as Ua,NoRouteIcon as km,RefreshIcon as Tm,Typography as za}from"@rango-dev/ui";import Pe from"react";import{i18n as $a}from"@lingui/core";function _a(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:q().genericServerError,action:{onClick:n,title:$a.t("Retry")}},description:""}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:e.length?{alert:{type:"warning",text:q().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:$a.t("Reset")}},description:q().liquiditySourcesError.description}:{alert:null,description:q().noResultError.description}}s(_a,"makeInfo");import{styled as Mr}from"@rango-dev/ui";var Da=Mr("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),Fa=Mr("div",{width:"100%"}),Oa=Mr("div",{padding:"$6 $0"});function Pr(t){let{fetch:e,error:o}=t,n=D.use.disabledLiquiditySources(),r=D.use.toggleAllLiquiditySources(),i=v().swappers(),a=_a(o,n,()=>r(i,!0),e);return Pe.createElement(Da,null,Pe.createElement(km,{size:24,color:"gray"}),Pe.createElement(Ua,{size:4}),Pe.createElement(za,{variant:"title",size:"small"},q().noResultError.title),!!a.description&&Pe.createElement(za,{variant:"body",size:"small",align:"center",color:"neutral700"},a.description),Pe.createElement(Ua,{size:4}),!!a.alert&&Pe.createElement(Fa,null,Pe.createElement(Sm,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&Pe.createElement(Cm,{size:"xsmall",type:a.alert.type,prefix:Pe.createElement(Oa,null,Pe.createElement(Tm,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}s(Pr,"NoResult");import{i18n as oo}from"@lingui/core";import{Button as wm,Divider as ja,MessageBox as vm,Modal as xm,Typography as bm,WarningIcon as Em}from"@rango-dev/ui";import Qe from"react";import{Typography as Qa}from"@rango-dev/ui";import _r from"react";import{styled as ln}from"@rango-dev/ui";var qa=ln("div",{width:"100%",paddingTop:"$10"}),$r=ln("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),Ga=ln("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%"}),Ha=ln("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function Va(t){let{title:e,value:o,valueColor:n}=t;return _r.createElement(Ga,null,_r.createElement(Qa,{size:"medium",variant:"label",color:"neutral600"},e),_r.createElement(Qa,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}s(Va,"QuoteErrorsModalItem");function Ka(t){let{open:e,onClose:o,onConfirm:n,warning:r}=t,i=r.warningLevel==="high"?"error":"warning",a=[{title:oo.t("Swapping"),value:W(r.inputUsdValue,4,4)},{title:oo.t("Gas cost"),value:W(r.totalFee,2,2)},{title:oo.t("Receiving"),value:W(r.outputUsdValue,4,4)},{title:oo.t("Price impact"),value:W(r.priceImpact,2,2),valueColor:`${i}500`}];return Qe.createElement(xm,{open:e,onClose:o,container:ee()},Qe.createElement(vm,{type:i,title:q().highValueLossError.impactTitle,description:q().highValueLossError.description}),Qe.createElement($r,null,Qe.createElement(ja,{size:20}),Qe.createElement(bm,{size:"small",variant:"title"},oo.t("Details")),Qe.createElement($r,null,a.map((l,p)=>Qe.createElement(Va,{key:p,...l})))),Qe.createElement(ja,{size:32}),Qe.createElement(wm,{type:"primary",size:"large",prefix:Qe.createElement(Em,null),fullWidth:!0,onClick:n},q().highValueLossError.confirmMessage))}s(Ka,"HighValueLossWarningModal");import{i18n as Xa}from"@lingui/core";function Ya(t,e){let o={alertType:"warning",title:"",action:"show-info"};return t?(t.type===0&&(Xe(t.priceImpact)==="high"&&(o.alertType="error"),o.title=q().highValueLossError.title),t.type===1&&(o.title=q().unknownPriceError.title),t.type===2&&(o.title=Xa.t({id:"minimum required slippage for this route: {minRequiredSlippage}",values:{minRequiredSlippage:t.minRequiredSlippage}})),t.type===3&&(o.title=Xa.t("Caution, your slippage is high")),o):e?(o.alertType="error",e.type===3&&(o.title=e.recommendation,o.action=null),e.type===4&&(o.title="",o.action="change-settings"),o):null}s(Ya,"makeAlerts");import{i18n as Ft}from"@lingui/core";import{Button as Ja,Divider as Za,MessageBox as Am,Modal as Im,Typography as Nm}from"@rango-dev/ui";import Tt from"react";import{useNavigate as Wm}from"react-router-dom";function Ra(t){let{customSlippage:e,slippage:o}=D(),{open:n,onClose:r,onConfirm:i,warning:a}=t,l=Wm(),p=e??o;return Tt.createElement(Im,{anchor:"bottom",open:n,prefix:Tt.createElement(Ja,{size:"small",variant:"ghost",onClick:()=>l("/"+S.settings)},Tt.createElement(Nm,{variant:"label",size:"medium",color:"$neutral900"},Ft.t("Change settings"))),container:ee(),onClose:r},Tt.createElement(Am,{type:"warning",title:a.type===3?Ft.t("High slippage"):Ft.t("Low slippage"),description:a.type===3?Ft.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):Ft.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},Tt.createElement(Za,{size:18}),Tt.createElement(Za,{size:32}),Tt.createElement(Ja,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:i},Ft.t("Confirm anyway"))))}s(Ra,"SlippageWarningModal");import{Button as Bm,Divider as Lm,MessageBox as Mm,Modal as Pm,WarningIcon as $m}from"@rango-dev/ui";import no from"react";function el(t){let{open:e,onClose:o,onConfirm:n}=t;return no.createElement(Pm,{open:e,onClose:o,container:ee()},no.createElement(Mm,{type:"warning",title:q().unknownPriceError.impactTitle,description:q().unknownPriceError.description}),no.createElement(Lm,{size:32}),no.createElement(Bm,{type:"primary",size:"large",prefix:no.createElement($m,null),fullWidth:!0,onClick:n},q().unknownPriceError.confirmMessage))}s(el,"UnknownPriceWarningModal");function Dr(t){let{warning:e,error:o,refetchQuote:n,showWarningModal:r,onOpenWarningModal:i,onCloseWarningModal:a,onConfirmWarningModal:l}=t,p=Um(),u={open:r,onClose:a,onConfirm:l},c=o?.type===0||o?.type===1,m=Ya(e,o?.type===3||o?.type===4?o:null);return Ee.createElement(Ee.Fragment,null,c&&Ee.createElement(Pr,{error:o,fetch:n}),!!m&&Ee.createElement(qa,null,Ee.createElement(Dm,{title:m.title,type:m.alertType,variant:"alarm",action:m.action==="show-info"?Ee.createElement(Ha,{onClick:i},Ee.createElement(Om,{size:12,color:"gray"})):Ee.createElement(Fm,{size:"xsmall",type:"error",onClick:()=>p(S.settings)},_m.t("Change Settings"))})),e&&Ee.createElement(Ee.Fragment,null,e.type===0&&Ee.createElement(Ka,{...u,warning:e}),(e.type===3||e.type===2)&&Ee.createElement(Ra,{...u,warning:e}),e.type===1&&Ee.createElement(el,{...u,warning:e})))}s(Dr,"QuoteWarningsAndErrors");function ro(t){let{quote:e,type:o,loading:n,error:r,warning:i,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:c,expanded:m=!1}=t,{inputAmount:g,inputUsdValue:h,outputUsdValue:w,outputAmount:k}=P(),y=e&&e.result&&!n;return mt.createElement(mt.Fragment,null,n&&mt.createElement(Er,null,mt.createElement(Lr,{type:o,expanded:m})),y?mt.createElement(Er,null,mt.createElement(Wr,{quote:e,error:r,warning:i,type:o,expanded:m,recommended:!0,input:{value:W(g,6,6),usdValue:W(h,4,4)},output:{value:W(k,6,6),usdValue:W(w,4,4)}})):null,!i&&!r&&mt.createElement(zm,{size:16}),(i||r)&&mt.createElement(Dr,{warning:i,error:r,loading:n,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:u,onConfirmWarningModal:c}))}s(ro,"QuoteInfo");import{useEffect as ol,useRef as Qm,useState as Fr}from"react";function pn(t){if(!t.result)throw new Error(q().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});if(Yt(t)){let{swap:n,recommendation:r,fromAmountRangeError:i}=yr(t);throw new Error("bridge limit error",{cause:{type:3,swap:n,recommendation:r,fromAmountRangeError:i}})}let o=Cr(t);if(o){let n=Ro(t);throw new Error("",{cause:{type:4,recommendedSlippages:o,minRequiredSlippage:n}})}return t}s(pn,"throwErrorIfResponseIsNotValid");function tl(t,e,o){let n=ea(t,e),r={quote:null,quoteUpdate:null,balance:null},i=tn(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.tokens,userSlippage:o.userSlippage});i&&(r.quote=i),n&&(Hs(t,e)?r.quoteUpdate={type:3,newOutputAmount:W(Mt(e)),percentageChange:W(at(Mt(t)??"",Mt(e)??""),null,2)}:Tr(t,e)?r.quoteUpdate={type:0}:wr(t,e)?r.quoteUpdate={type:1}:vr(t,e)&&(r.quoteUpdate={type:2}));let a=Qs(e,o.selectedWallets);return a.length===0||(r.balance={messages:a}),r}s(tl,"generateWarnings");function un(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}s(un,"handleQuoteErrors");import{useRef as Gm,useState as Hm}from"react";function cn(){let[t,e]=Hm(!1),o=Gm(null),n=s(()=>o.current?.abort(),"cancel");return{fetch:s(async i=>{n(),o.current=new AbortController,e(!0);try{let a=await Nt().getBestRoute(i,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}s(cn,"useFetchQuote");var Vm=600;function nl(){let{fetch:t,cancelFetch:e}=cn(),{liquiditySources:o,enableNewLiquiditySources:n}=v().config,r=v().tokens(),{fromToken:i,toToken:a,inputAmount:l,inputUsdValue:p,resetQuote:u,setQuote:c}=P(),{slippage:m,customSlippage:g,affiliatePercent:h,affiliateRef:w,affiliateWallets:k,disabledLiquiditySources:y}=D(),[x,f]=Fr(!1),[T,d]=Fr(null),[C,E]=Fr(null),$=Qm(y),I=g??m,L=!i||!a||Ae(i,a)||!Xt(l),Q=s(F=>{f(F),d(null),E(null)},"resetState"),b=s(()=>{if(x||Q(!0),!L){u();let F=en({fromToken:i,toToken:a,inputAmount:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:y,slippage:I,affiliateRef:w,affiliatePercent:h,affiliateWallets:k});t(F).then(O=>{f(!1),c(O),pn(O);let ne=tn(O,{fromToken:i,toToken:a,userSlippage:I,tokens:r});E(ne)}).catch(O=>{let{error:ne}=un(O);(ne?.type===0||ne?.type===1)&&u(),ne?.type!==2&&(d(ne),f(!1))})}},"fetch"),z=us(()=>{L||b()},Vm);return ol(()=>{if(!Xt(l)||p?.eq(0)){Q(!1),e();return}if(!L)return u(),Q(!0),z(),e},[l,L]),ol(()=>{let F=!!$.current.length&&!y.length;return!L&&F&&b(),$.current=y,e},[y.length]),{fetch:b,loading:x,error:T,warning:C}}s(nl,"useSwapInput");var Rm=Ur("div",{display:"flex",flexDirection:"column",overflowY:"visible"}),ed=Ur("div",{position:"relative"}),td=Ur("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function mn(){let t=Zm(),{fetch:e,loading:o,error:n,warning:r}=nl(),{fromToken:i,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:u,inputAmount:c,inputUsdValue:m,outputAmount:g,outputUsdValue:h,quote:w,resetQuoteWallets:k,setQuoteWarningsConfirmed:y}=P(),x=v().fetchStatus,f=H.use.connectedWallets(),T=Ce.use.setCurrentPage(),[d,C]=Jm(!1),E=Ym(null),$=!1,I=Os(m,h),_=Jo(m,I),L=!Sr(w,c,m),Q=!Sr(w,c,h),b=Us(x,f,o,w,Yt(w),_,L||Q,$,c),z=a&&i?W(Wt(f,a?.name,i?.symbol,i?.address)?.amount||"0",8,8):"0",F=a&&i?W(Wt(f,a?.name,i?.symbol,i?.address)?.amount||"0",Wt(f,a?.name,i?.symbol,i?.address)?.decimal):"0";Xm(()=>(T(S.home),k(),T.bind(null,"")),[]);let O=!m||!h||!h.gt(0)?null:at(m.toString(),h.toString());return De.createElement(K,{ref:E,fixedHeight:!1,hasLogo:!0,footer:De.createElement(jm,{type:"primary",size:"large",disabled:b.disabled,prefix:!b.disabled&&b.hasWarning&&De.createElement(Km,null),fullWidth:!0,onClick:()=>{b.state==="waitForConnecting"?t(S.wallets):r?C(!0):t(S.confirmSwap)}},b.title),header:{hasConnectWallet:!0,title:Or.t("Swap"),suffix:De.createElement(mr,{layoutRef:E.current,onClickRefresh:w||n?e:void 0,onClickHistory:()=>t(S.swaps),onClickSettings:()=>t(S.settings)})}},De.createElement(Rm,null,De.createElement(td,null,De.createElement(ed,null,De.createElement(rl,{label:Or.t("From"),mode:"From",onInputChange:u,balance:z,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:i?.symbol||"",image:i?.image||""},onClickToken:()=>t("from-swap"),price:{value:c,usdValue:L?void 0:W(m,4,4),error:L?q().unknownPriceError.impactTitle:void 0},disabled:x==="failed",loading:x==="loading",onSelectMaxBalance:()=>{z!=="0"&&u(F.split(",").join(""))}}),De.createElement(na,null)),De.createElement(rl,{sharpBottomStyle:!!w?.result||o,label:Or.t("To"),mode:"To",chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:W(Pt(m,h),2,2),warningLevel:Xe(O??0),price:{value:W(g,6,6),usdValue:Q?void 0:W(h,4,4),error:Q?q().unknownPriceError.impactTitle:void 0},onClickToken:()=>t("to-swap"),disabled:x==="failed",loading:x==="loading"})),De.createElement(ro,{quote:w,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:d,onOpenWarningModal:()=>C(!0),onCloseWarningModal:()=>C(!1),onConfirmWarningModal:()=>{C(!1),y(!0),t(S.confirmSwap)}})))}s(mn,"Home");import{useEffect as zr,useRef as qr}from"react";import{createSearchParams as od,useLocation as nd,useSearchParams as rd}from"react-router-dom";import{useEffect as Ot,useMemo as dn,useRef as fn}from"react";function il(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:i,toToken:a,fromBlockchain:l,toBlockchain:p}=P(),u=v().config,c=v().fetchStatus,m=v().blockchains(),g=v().tokens(),{setAffiliateRef:h,setAffiliatePercent:w,setAffiliateWallets:k}=D(),y=dn(()=>u?.from?.tokens,[u?.from?.tokens]),x=dn(()=>u?.from?.blockchains,[u?.from?.blockchains]),f=dn(()=>u?.to?.tokens,[u?.to?.tokens]),T=dn(()=>u?.to?.blockchains,[u?.to?.blockchains]),d=fn(void 0),C=fn(void 0),E=fn(void 0),$=fn(void 0);Ot(()=>{t(u?.amount?.toString()||"")},[u?.amount]),Ot(()=>{if(c==="success"){let I=m.find(L=>L.name===u?.from?.blockchain),_=g.find(L=>Ae(L,u?.from?.token||null));(I||!I&&E.current)&&n(I??null),_?r({token:_,meta:{blockchains:m,tokens:g}}):!_&&d.current&&r({token:null}),E.current=u?.from?.blockchain,d.current=u?.from?.token}},[u?.from?.token?.symbol,u?.from?.token?.address,u?.from?.token?.blockchain,u?.from?.blockchain,c]),Ot(()=>{i&&y&&(y.some(I=>Ae(I,i))||r({token:null})),l&&x&&(x.includes(l.name)||n(null))},[y,x]),Ot(()=>{a&&f&&(f.some(I=>Ae(I,a))||e({token:null})),p&&T&&(T.includes(p.name)||o(null))},[f,T]),Ot(()=>{if(c==="success"){let I=m.find(L=>L.name===u?.to?.blockchain),_=g.find(L=>Ae(L,u?.to?.token||null));(I||!I&&$.current)&&o(I??null),_?e({token:_,meta:{blockchains:m,tokens:g}}):!_&&C.current&&e({token:null}),$.current=u?.to?.blockchain,C.current=u?.to?.token}},[u?.to?.token?.symbol,u?.to?.token?.address,u?.to?.token?.blockchain,u?.to?.blockchain,c]),Ot(()=>{h(u?.affiliate?.ref??null),w(u?.affiliate?.percent??null),k(u?.affiliate?.wallets??null)},[u?.affiliate?.ref,u?.affiliate?.percent,u?.affiliate?.wallets])}s(il,"useSyncStoresWithConfig");function sl(){let t=qr(!0),[e,o]=rd(),n=nd(),r=qr(n.search),i=qr({}),a=P.use.fromBlockchain(),l=P.use.toBlockchain(),p=P.use.fromToken(),u=P.use.toToken(),c=P.use.setFromBlockchain(),m=P.use.setFromToken(),g=P.use.setToBlockchain(),h=P.use.setToToken(),w=P.use.inputAmount(),k=P.use.setInputAmount(),y=v().fetchStatus,x=v().blockchains(),f=v().tokens(),T=Ce.use.setSelectedSwap();return il(),zr(()=>{let d={};od(r.current).forEach((E,$)=>{d[$]=E}),i.current=d;let C=n.pathname.split(S.swaps+"/")[1]||null;C&&T(C)},[]),zr(()=>{if(!t.current){let d="",C="",E="",$="",I="",_=i.current["autoConnect"];if(y!=="success")d=i.current["fromBlockchain"],C=i.current["fromToken"],E=i.current["toBlockchain"],$=i.current["toToken"],I=i.current["fromAmount"]||w;else{if(n.state==="redirect")return;d=a?.name||"",C=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),E=l?.name||"",$=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),I=w}o({...d&&{["fromBlockchain"]:d},...C&&{["fromToken"]:C},...E&&{["toBlockchain"]:E},...$&&{["toToken"]:$},...I&&{["fromAmount"]:I.toString()},..._&&{["autoConnect"]:_}},{replace:!0})}t.current=!1},[n.pathname,w,a,p,l,u]),zr(()=>{if(y==="success"){let d=e.get("fromBlockchain"),C=e.get("fromToken"),E=e.get("toBlockchain"),$=e.get("toToken"),I=e.get("fromAmount"),_=x.find(z=>z.name===d),L=kr(f,C,_||null),Q=x.find(z=>z.name===E),b=kr(f,$,Q||null);_&&(c(_),L&&m({token:L,meta:{blockchains:x,tokens:f}})),Q&&(g(Q),b&&h({token:b,meta:{blockchains:x,tokens:f}})),I&&k(I)}},[y]),null}s(sl,"UpdateUrl");function fd(t){let e=md(),o=dd(),n=pd(!0),r=e.pathname.split("/"),a=r[r.length-1]===S.confirmSwap&&n.current;return ld(()=>{a&&o("."),n.current=!1},[]),a?wt.createElement(mn,null):wt.createElement(wt.Fragment,null," ",t.children)}s(fd,"Route");function al({children:t,...e}){let o=cd(),n=o?fd:ud,r=v().blockchains(),{canSwitchNetworkTo:i}=sd();ws();let a=r.filter(ad);return id({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:i}),wt.createElement(wt.Fragment,null,wt.createElement(n,null,t),o&&wt.createElement(sl,null))}s(al,"AppRouter");import xe from"react";import{useRoutes as xh}from"react-router-dom";import{i18n as wn}from"@lingui/core";import{useManager as Zd}from"@rango-dev/queue-manager-react";import{Alert as Il,Button as Nl,Divider as Wl,IconButton as Bl,RefreshIcon as Rd,SettingsIcon as ef,styled as Ll,Tooltip as tf,Typography as of,WalletIcon as nf}from"@rango-dev/ui";import Y,{useEffect as vn,useState as xn}from"react";import{flushSync as rf}from"react-dom";import{useNavigate as sf}from"react-router-dom";import{i18n as Je}from"@lingui/core";import{Alert as Xr,BalanceErrors as Ud,Button as bl,ChevronDownIcon as zd,ChevronLeftIcon as qd,Divider as zt,MessageBox as Gd,Modal as El,Typography as Tn,WalletIcon as Hd}from"@rango-dev/ui";import N,{useEffect as Qd,useLayoutEffect as Vd,useRef as jd,useState as bt}from"react";import{useNavigate as Kd}from"react-router-dom";import{i18n as gn}from"@lingui/core";function hn(t){switch(t.type){case 0:return gn.t("Route has been updated.");case 3:return gn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return gn.t("Route swappers has been updated.");case 2:return gn.t("Route internal coins has been updated.");default:return""}}s(hn,"getQuoteUpdateWarningMessage");import{i18n as Fe}from"@lingui/core";import{Button as Dd,Divider as jr,Image as Fd,MessageBox as kn,Modal as kl,SelectableWallet as Od,Typography as Tl,WalletState as wl}from"@rango-dev/ui";import oe,{useEffect as vl,useState as so}from"react";import{WalletState as ll}from"@rango-dev/ui";import{useWallets as gd}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as hd,WalletTypes as yd}from"@rango-dev/wallets-shared";import{useEffect as Sd,useState as Cd}from"react";var kd=Object.values(yd);function yn(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:i,disconnect:a,getWalletInfo:l,connect:p}=gd(),{connectedWallets:u}=H(),c=v().blockchains(),m=as(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||kd,g=Ri(i,l,m,o),h=is(g),[w,k]=Cd(""),y=s(d=>!u.find(C=>C.walletType===d&&C.chain===o),"isExperimentalChainNotAdded"),x=s(async d=>{let C=i(d);try{if(w&&k(""),C.connected)await a(d);else{let E=!!g.find($=>$.state===ll.CONNECTED);if(!e?.multiWallets&&E)return;n?.(d),await p(d),r?.(d)}}catch(E){k("Error: "+E?.message)}},"handleClick"),f=s(()=>{let d=g?.filter(C=>C.state===ll.CONNECTING)||[];for(let C of d)a(C.type)},"disconnectConnectingWallets");Sd(()=>()=>{f()},[]);let T=s((d,C,E)=>Mo(E,C)&&y(d)&&!hd.includes(d),"shouldExcludeWallet");return{list:h.filter(d=>!T(d.type,o??"",c)),error:w,handleClick:x}}s(yn,"useWalletList");import{i18n as dl}from"@lingui/core";import{styled as gl,Typography as Nd,Wallet as Wd,WalletState as Bd}from"@rango-dev/ui";import xt,{Fragment as Ld,useState as fl}from"react";import{Divider as bd,Modal as Ed}from"@rango-dev/ui";import Hr from"react";import{i18n as Ut}from"@lingui/core";import{Image as vd,MessageBox as Gr,WalletState as xd}from"@rango-dev/ui";import vt from"react";import{keyframes as Td,styled as Sn}from"@rango-dev/ui";var Eb=Sn("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),pl=Sn("div",{position:"relative"}),wd=Td({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ul=Sn("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${wd} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),cl=Sn("div",{"& img":{borderRadius:"50%"}});function ml(t){let{state:e,image:o,error:n}=t;return e===xd.CONNECTED?vt.createElement(Gr,{type:"success",title:Ut.t("Wallet Connected"),description:Ut.t("Your wallet is connected, you can use it to swap.")}):n?vt.createElement(Gr,{type:"error",title:Ut.t("Failed to Connect"),description:n||Ut.t("Your wallet is not connected. Please try again.")}):vt.createElement(Gr,{type:"loading",title:Ut.t("Connecting to your wallet"),description:Ut.t("Click connect in your wallet popup."),icon:vt.createElement(pl,null,vt.createElement(cl,null,vt.createElement(vd,{src:o,size:45})),vt.createElement(ul,null))})}s(ml,"ModalContent");function io(t){let{open:e,onClose:o,...n}=t;return Hr.createElement(Ed,{open:e,onClose:o,container:document.getElementById("swap-box")||document.body},Hr.createElement(ml,{...n}),Hr.createElement(bd,{direction:"vertical",size:32}))}s(io,"WalletModal");import{useInRouterContext as Ad,useNavigate as Id}from"react-router-dom";function re(){let t=Ad(),e=Id(),o=P.use.quoteWalletsConfirmed();return S,{navigateBackFrom:s(r=>{if(r===S.swapDetails)return e("/"+S.swaps,{replace:!0});if(!t||window.history.state&&window.history.state.idx>0)e(-1);else{if([S.settings,S.wallets].includes(r)&&o)return e("/"+S.confirmSwap,{replace:!0});[S.fromSwap,S.toSwap,S.settings,S.wallets,S.swaps,S.confirmSwap].includes(r)?e(S.home,{replace:!0}):r===S.fromBlockchain?e("/"+S.fromSwap,{replace:!0}):r===S.toBlockchain?e("/"+S.fromSwap,{replace:!0}):r===S.liquiditySources&&e("/"+S.settings,{replace:!0})}},"navigateBackFrom")}}s(re,"useNavigateBack");var Md=gl("div",{display:"grid",gap:"$10",gridTemplateColumns:" repeat(3, minmax(0, 1fr))",alignContent:"baseline",paddingTop:"$15",height:"100%"}),Pd=gl("div",{textAlign:"center"}),Cn=3e3,Qr=300;function hl(){let{config:t,fetchStatus:e}=v(),{navigateBackFrom:o}=re(),[n,r]=fl(!1),[i,a]=fl(""),l=null,{list:p,handleClick:u,error:c}=yn({config:t,onBeforeConnect:w=>{l=setTimeout(()=>{r(!0),a(w)},Qr)},onConnect:()=>{l&&clearTimeout(l),setTimeout(()=>{r(!1)},Cn)}}),m=p.find(w=>w.type===i),g=m?.image||"",h=m?.state||Bd.NOT_INSTALLED;return xt.createElement(K,{header:{title:dl.t("Connect Wallets"),onBack:()=>o(S.wallets)}},xt.createElement(Pd,null,xt.createElement(Nd,{variant:"title",size:"xmedium",align:"center"},dl.t("Choose a wallet to connect.")),xt.createElement(Md,null,p.map((w,k)=>{let y=`wallet-${k}-${w.type}`;return xt.createElement(Ld,{key:y},xt.createElement(Wd,{...w,container:ee(),onClick:x=>{u(x)},isLoading:e==="loading"}))}),xt.createElement(io,{open:!!n,onClose:()=>r(!1),image:g,state:h,error:c}))))}s(hl,"WalletsPage");import{keyframes as $d,styled as Vr}from"@rango-dev/ui";var yl=Vr("div",{position:"relative"}),_d=$d({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),Sl=Vr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${_d} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),Cl=Vr("div",{"& img":{borderRadius:"50%"}});function Kr(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:i}=t,{config:a}=v(),l=H.use.connectedWallets(),{blockchains:p}=v(),[u,c]=so(""),[m,g]=so(null),[h,w]=so(!1),[k,y]=so(null),{suggestAndConnect:x}=xl(),f=null,{list:T,error:d,handleClick:C}=yn({config:a,chain:e,onBeforeConnect:b=>{f=setTimeout(()=>{c(b)},Qr)},onConnect:()=>{f&&clearTimeout(f),setTimeout(()=>{c("")},Cn)}}),[E,$]=so(T),I=T.length,_=r&&I-r>0,L=s(async b=>{w(!1),y("in-progress");try{await x(b.walletType,b.chain),y("completed")}catch{y("rejected")}},"addExperimentalChain");vl(()=>{$(b=>{let z=T.findIndex(F=>o(F.type,e));return _&&z>1?[T[z]].concat(T.filter((F,O)=>O!==z)):b.map(F=>T.find(O=>O.type===F.type)??F)})},[JSON.stringify(T)]);let Q=document.querySelector("#swap-box");return vl(()=>{let b=null;return(k==="completed"||k==="rejected")&&(b=setTimeout(()=>y(null),Cn)),()=>{b&&clearTimeout(b)}},[k]),oe.createElement(oe.Fragment,null,E.slice(0,r).map(b=>{let z=ss({connectedWallets:l,walletType:b.type,chain:e}),F=z?Po(z):"",O=Mo(p(),e),ne=!l.find(nt=>nt.walletType===b.type&&nt.chain===e),Ue=O&&ne&&b.state===wl.CONNECTED,ot=Ue?Fe.t({id:"Add {chain} chain",values:{chain:e}}):F,V=s(()=>{b.state===wl.DISCONNECTED?C(b.type):Ue?(g({walletType:b.type,chain:e,address:z??""}),w(!0)):n({walletType:b.type,chain:e,address:z??""})},"onClick"),Z=m?.chain?Ds(m.chain,p()):void 0;return oe.createElement(oe.Fragment,null,oe.createElement(io,{open:u===b.type,onClose:()=>c(""),image:b.image,state:b.state,error:d}),!!m&&oe.createElement(kl,{open:!!m&&h,container:Q,onClose:()=>{g(null)}},oe.createElement(kn,{title:Fe.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:Z}}),type:"warning",description:Fe.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:Z}})},oe.createElement(jr,{size:18}),oe.createElement(jr,{size:32}),oe.createElement(Dd,{onClick:L.bind(null,m),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Fe.t("Confirm")))),k&&oe.createElement(kl,{open:!!k,onClose:y.bind(null,null),container:Q},k==="in-progress"&&oe.createElement(kn,{type:"loading",title:Fe.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:Z}}),description:Fe.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:Z}}),icon:oe.createElement(yl,null,oe.createElement(Cl,null,oe.createElement(Fd,{src:b.image,size:45})),oe.createElement(Sl,null))}),k==="completed"&&oe.createElement(kn,{type:"success",title:Fe.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:Z}}),description:Fe.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:Z}})}),k==="rejected"&&oe.createElement(kn,{type:"error",title:Fe.t("Request Rejected"),description:Fe.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:Z}})}),oe.createElement(jr,{direction:"vertical",size:32})),oe.createElement(Od,{key:b.type,description:ot,onClick:V,selected:o(b.type,e),...b}))}),_&&oe.createElement(pa,{selected:!1,onClick:i.bind(null)},oe.createElement(Tl,{variant:"label",size:"medium"},Fe.t("Show more wallets"),oe.createElement(Tl,{variant:"label",size:"medium",color:"$primary"},"\xA0+",I-(r??0)))))}s(Kr,"WalletList");var Xd=2;function Al(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:i}=t,a=v().config,l=v().blockchains(),{quote:p,setSelectedWallets:u,quoteWalletsConfirmed:c,setQuoteWalletConfirmed:m,customDestination:g,setCustomDestination:h}=P(),{connectedWallets:w,selectWallets:k}=H(),[y,x]=bt(""),[f,T]=bt([]),[d,C]=bt(""),[E,$]=bt(null),[I,_]=bt(g),[L,Q]=bt(!!g),b=jd(null),z=Qo(p),F=l.find(U=>U.name===p?.result?.swaps[p?.result?.swaps.length-1].to.blockchain),O=s(U=>!!p?.result?.swaps.find(j=>j.from.blockchain===U),"isWalletRequiredFor"),[ne,Ue]=bt(w.filter(U=>U.selected&&z.includes(U.chain))),ot=l.find(U=>U.name===F?.name),V=s((U,j)=>!!ne.find(R=>R.walletType===U&&R.chain===j&&R.selected&&(O(j)||!O(j)&&!I)),"isSelected"),Z=!!I&&L&&ot&&!Vo(ot,I),nt=s(()=>{Q(!1),_(""),Ue(U=>{let j=!1;return U.map(R=>!j&&R.chain===F?.name?(j=!0,{...R,selected:!0}):R)})},"resetCustomDestination"),rt=s(U=>{if(y&&x(""),V(U.walletType,U.chain))return;let R=w.find(ae=>ae.walletType===U.walletType&&ae.chain===U.chain);R&&(n(),U.chain===F?.name&&L&&(Q(!1),_("")),Ue(ae=>ae.filter(me=>me.chain!==U.chain).concat({...R,selected:!0})))},"onChange"),ht=s(()=>{let U=ne.filter(j=>j.selected);k(U),u(U),h(I),m(!0),o()},"onConfirmBalance"),Jn=s(async()=>{T([]),C(""),$(null);let U=w.filter(ae=>ne.find(me=>me.chain===ae.chain&&me.walletType===ae.walletType)),j=await r?.({selectedWallets:U,customDestination:I}),R=j.warnings;R?.balance?.messages&&T(R.balance.messages),R?.quoteUpdate&&$(R.quoteUpdate),j.error&&C(Fs(j.error)),!j.error&&(!R?.balance?.messages.length||0>0)?ht():T(R?.balance?.messages??[])},"onConfirmWallets");Qd(()=>{Ue(U=>U.concat(w.filter(j=>!!!U.find(ae=>ae.chain===j.chain)&&j.selected&&z.includes(j.chain))))},[w.length]),Vd(()=>{L&&b.current&&setTimeout(()=>{b?.current?.scrollIntoView({behavior:"smooth"})},Zt)},[L]);let xo=document.querySelector("#swap-box"),jt=Kd();return N.createElement(El,{open:e,onClose:()=>{c||jt(S.home,{replace:!0}),o()},dismissible:!y,container:xo,...!y&&{footer:N.createElement(Sa,null,N.createElement(bl,{loading:i,disabled:Ys(i,L,I,p,ne,F),onClick:Jn,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...y&&{containerStyle:{padding:"$0"},header:N.createElement(ca,null,N.createElement(ma,{variant:"ghost",onClick:x.bind(null,"")},N.createElement(qd,{size:16})),N.createElement(Tn,{variant:"headline",size:"small"},Je.t({id:"Your {blockchainName} wallets",values:{blockchainName:y}})))},anchor:"center"},N.createElement(El,{open:f.length>0,onClose:T.bind(null,[]),container:xo},N.createElement(Gd,{title:Je.t("Insufficient account balance"),type:"error",description:N.createElement(Ud,{messages:f??[]})},N.createElement(bl,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:ht},Je.t("Proceed anyway")))),y&&N.createElement(da,null,N.createElement("div",{className:"wallets-list"},N.createElement(Kr,{chain:y,isSelected:V,selectWallet:rt,onShowMore:x.bind(null,y)}))),!y&&N.createElement(N.Fragment,null,d&&N.createElement(N.Fragment,null,N.createElement(Xr,{variant:"alarm",type:"error",title:Je.t(d)}),N.createElement(zt,{size:12})),E&&N.createElement(N.Fragment,null,N.createElement(Xr,{variant:"alarm",type:"warning",title:hn(E)}),N.createElement(zt,{size:12})),N.createElement(ka,null,z.map((U,j)=>{let R=l.find(ze=>ze.name===U),ae=`wallet-${j}`,me=j===z.length-1;return N.createElement("div",{key:ae},N.createElement(aa,null,N.createElement(Tn,{variant:"title",size:"xmedium"},Je.t({id:"Your {blockchainName} wallets",values:{blockchainName:R?.displayName}})),N.createElement(Tn,{variant:"label",color:"$neutral700",size:"medium"},Je.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:R?.displayName}}))),N.createElement(zt,{size:24}),N.createElement(la,null,N.createElement(Kr,{chain:U,isSelected:V,selectWallet:rt,limit:Xd,onShowMore:()=>x(R?.name??"")})),!me&&N.createElement(zt,{size:32}),me&&a?.customDestination&&N.createElement(ha,null,N.createElement(fa,{ref:b,selected:L,open:L,onOpenChange:ze=>{ze?O(F?.name??"")||Ue(yt=>yt.map(Kt=>Kt.chain===F?.name?{...Kt,selected:!1}:Kt)):nt()}},N.createElement(ua,{onClick:()=>Q(ze=>!ze)},N.createElement(ga,{fullWidth:!0,variant:"default",suffix:N.createElement(ya,{orientation:L?"up":"down"},N.createElement(zd,{size:10,color:"gray"}))},N.createElement("div",{className:"button__content"},N.createElement(Hd,{size:18,color:"info"}),N.createElement(zt,{size:4,direction:"horizontal"}),N.createElement(Tn,{variant:"label",size:"medium"},Je.t("Send to a different address"))))),N.createElement(on,{open:L},N.createElement(N.Fragment,null,N.createElement(zt,{size:4}),N.createElement(Ca,{autoFocus:!0,placeholder:Je.t("Your destination address"),value:I,onChange:ze=>{_(ze.target.value)}})))),Z&&N.createElement("div",{className:"alarms"},N.createElement(Xr,{variant:"alarm",type:"error",title:Je.t({values:{destination:I},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}s(Al,"ConfirmWalletsModal");import{calculatePendingSwap as Yd}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Jd}from"react";function Yr(){let{fromToken:t,toToken:e,inputAmount:o,setQuote:n,resetQuote:r,quote:i,customDestination:a,setQuoteWarningsConfirmed:l}=P(),{slippage:p,customSlippage:u,affiliatePercent:c,affiliateRef:m,affiliateWallets:g,disabledLiquiditySources:h}=D(),{connectedWallets:w}=H(),k=v().blockchains(),y=v().tokens(),x=u||p,{fetch:f,cancelFetch:T,loading:d}=cn();return Jd(()=>T,[]),{loading:d,fetch:s(async E=>{let $=E.selectedWallets,I=E?.customDestination??a;if(!t||!e||!o||!i)return{quote:null,swap:null,error:null,warnings:null};let _=en({fromToken:t,toToken:e,inputAmount:o,wallets:w,selectedWallets:$,disabledLiquiditySources:h,slippage:x,affiliateRef:m,affiliatePercent:c,affiliateWallets:g,initialQuote:i,destination:I}),L;try{L=await f(_).then(F=>pn(F)),n(L)}catch(F){let O=un(F);return(O.error?.type===0||O.error?.type===1)&&r(),O}let Q={slippage:x.toString(),disabledSwappersGroups:h},b=Yd(o.toString(),L,Gs($),Q,!1,{blockchains:k,tokens:y}),z=tl(i,L,{fromToken:t,toToken:e,tokens:y,selectedWallets:$,userSlippage:x});return z.quoteUpdate&&l(!1),{quote:L,swap:b,error:null,warnings:z}},"fetch"),cancelFetch:T}}s(Yr,"useConfirmSwap");var af=Ll("div",{position:"relative",width:"100%","& .description":{display:"flex",justifyContent:"space-between",alignItems:"center",paddingBottom:"$10"},"& .icon":{width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}}),lf=Ll("div",{width:"100%",display:"flex",justifyContent:"space-between","& .confirm-button":{flexGrow:1,paddingRight:"$10"},[`& ${Bl}`]:{width:"$48",height:"$48"}});function Ml(){let{quote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,setQuoteWalletConfirmed:r,customDestination:i,quoteWarningsConfirmed:a}=P(),l=sf(),[p,u]=xn(""),{connectedWallets:c}=H(),m=!n,[g,h]=xn(!1),w=Ce.use.setSelectedSwap(),{manager:k}=Zd(),{fetch:y,loading:x,cancelFetch:f}=Yr(),[T,d]=xn({swap:null,error:null,warnings:null}),[C,E]=xn(!1),$=s(async({selectedWallets:b,customDestination:z})=>{let F=await y?.({selectedWallets:b,customDestination:z});return d(F),F},"onConfirmSwap"),I=s(async()=>{if(T.swap&&n)try{await k?.create("swap",{swapDetails:T.swap},{id:T.swap.requestId}),w(T.swap.requestId),l("/"+S.swaps+`/${T.swap.requestId}`,{replace:!0}),setTimeout(()=>{e("")},0)}catch(b){u("Error: "+b?.message)}},"addNewSwap"),_=s(async()=>{await I()},"onConfirm"),L=s(async()=>{T?.warnings?.quote&&!a?E(!0):await _()},"onStartConfirmSwap"),Q=s(async()=>{d({error:null,swap:null,warnings:null}),y({selectedWallets:o}).then(b=>{d(b)}).catch(b=>console.error(b))},"onRefresh");return vn(()=>{m&&f()},[m]),vn(()=>{m&&h(m)},[m]),vn(()=>{m||y({selectedWallets:o,customDestination:i}).then(b=>d(b)).catch(b=>console.error(b))},[]),vn(()=>{let b=T.warnings?.quote?.type&&Object.values(it).includes(T.warnings?.quote?.type),z=o.length<1||!o.every(O=>c.find(ne=>O.address===ne.address&&O.walletType===ne.walletType&&O.chain===ne.chain)),F=!1;if(b){let O=Qo(t),ne=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(V=>V.from.blockchain===ne)||(O=O.slice(-O.length,O.length-1)),O.every(V=>o.find(Z=>Z.chain===V))||(F=!0)}t&&(z||F)&&(queueMicrotask(()=>rf(h.bind(null,!0))),r(!1))},[T.warnings?.quote,o.length,c.length]),Y.createElement(K,{header:{title:wn.t("Confirm Swap"),onBack:()=>l(-1),hasConnectWallet:!0,suffix:Y.createElement(tf,{container:ee(),side:"bottom",content:wn.t("Settings")},Y.createElement(We,{size:"small",variant:"ghost",onClick:()=>l("/"+S.settings)},Y.createElement(ef,{size:18,color:"black"})))},footer:Y.createElement(lf,null,Y.createElement("div",{className:"confirm-button"},Y.createElement(Nl,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:x,disabled:!!T.error,onClick:L},wn.t("Start Swap"))),Y.createElement(Bl,{variant:"contained",type:"primary",size:"large",loading:x,onClick:h.bind(null,!0)},Y.createElement(nf,{size:24})))},g&&Y.createElement(Al,{open:g,onClose:()=>h(!1),onCancel:f,loading:x,onCheckBalance:$}),Y.createElement(af,null,Y.createElement("div",{className:"description"},Y.createElement(of,{variant:"title",size:"small"},wn.t("You get")),Y.createElement(Nl,{style:{padding:"0"},variant:"ghost",disabled:x,onClick:Q},Y.createElement("div",{className:"icon"},Y.createElement(Rd,{size:16})))),p&&Y.createElement(Y.Fragment,null,Y.createElement(Il,{type:"error",variant:"alarm",title:p}),Y.createElement(Wl,{size:12})),T.warnings?.quoteUpdate&&Y.createElement(Y.Fragment,null,Y.createElement(Il,{variant:"alarm",type:"warning",title:T.warnings.quoteUpdate&&hn(T.warnings.quoteUpdate)}),Y.createElement(Wl,{size:12})),Y.createElement(ro,{quote:t,type:"swap-preview",expanded:!0,error:T.error,loading:x,warning:T.warnings?.quote??null,refetchQuote:Q,showWarningModal:C,onOpenWarningModal:()=>E(!0),onCloseWarningModal:()=>E(!1),onConfirmWarningModal:async()=>{E(!1),await I()}})))}s(Ml,"ConfirmSwapPage");import{i18n as An}from"@lingui/core";import{useManager as ff}from"@rango-dev/queue-manager-react";import{Divider as gf,NotFound as hf,styled as ql}from"@rango-dev/ui";import dt,{useState as yf}from"react";import{useNavigate as Sf}from"react-router-dom";import{CloseIcon as uf,IconButton as cf,SearchIcon as mf,TextField as df}from"@rango-dev/ui";import ao from"react";import{styled as pf}from"@rango-dev/ui";var Pl=pf("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function Ze(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:i,value:a,setValue:l,...p}=t;return ao.createElement(df,{prefix:ao.createElement(Pl,null,ao.createElement(mf,{color:"black"})),suffix:!!a.length&&ao.createElement(cf,{variant:"ghost",onClick:()=>l?.(""),size:"small"},ao.createElement(uf,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:i,...p})}s(Ze,"SearchInput");import{i18n as _l}from"@lingui/core";import{Divider as Dl,SwapListItem as Fl,Typography as Ol}from"@rango-dev/ui";import te from"react";import{styled as bn}from"@rango-dev/ui";var Jr=bn("div",{width:"100%",display:"flex",flexDirection:"column"}),Zr=bn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Rr=bn("div",{gap:"$10",display:"flex",flexDirection:"column"}),$l=bn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function ei(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,i=n?n(e):[{title:"History",swaps:e}];if(r){let a=[{},{}];return te.createElement(te.Fragment,null,[{title:"Today",swaps:a},{title:"Last month",swaps:a}].map(p=>te.createElement(te.Fragment,{key:p.title},te.createElement(Jr,null,te.createElement(Zr,null,te.createElement(Ol,{variant:"label",size:"medium",color:"neutral600",className:"group-title"},_l.t(p.title))),te.createElement(Dl,{size:4}),te.createElement(Rr,null,p.swaps.map((u,c)=>{let m=c+p.title;return te.createElement(te.Fragment,{key:m},te.createElement(Fl,{isLoading:!0}))}))))))}return te.createElement(te.Fragment,null,i.filter(a=>a.swaps.length>0).map(a=>te.createElement(te.Fragment,{key:a.title},te.createElement(Jr,null,te.createElement(Zr,null,te.createElement(Ol,{variant:"label",size:"medium",color:"neutral600",className:"group-title"},_l.t(a.title))),te.createElement(Dl,{size:4}),te.createElement(Rr,null,a.swaps.map(l=>{let p=l.steps[0],u=l.steps[l.steps.length-1];return te.createElement(te.Fragment,{key:l.requestId},te.createElement(Fl,{requestId:l.requestId,creationTime:l.creationTime,status:l.status,onClick:o,onlyShowTime:a.title==="Today",swapTokenData:{from:{token:{image:p.fromLogo,displayName:p.fromSymbol},blockchain:{image:p.fromBlockchainLogo||""},amount:No(l.inputAmount)},to:{token:{image:u.toLogo,displayName:u.toSymbol},blockchain:{image:u.toBlockchainLogo||""},amount:No(u.outputAmount||""),estimatedAmount:No(u.expectedOutputAmountHumanReadable||"")}}}))}))))))}s(ei,"SwapsGroup");import Ul from"dayjs";var zl=s(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["month",{title:"Last month",swaps:[]}],["year",{title:"Last year",swaps:[]}],["history",{title:"History",swaps:[]}]]),o=Ul();return t.forEach(n=>{let r=Ul(Number(n.creationTime));o.isSame(r,"day")?e.get("today")?.swaps.push(n):o.isSame(r,"month")?e.get("month")?.swaps.push(n):o.isSame(r,"year")?e.get("year")?.swaps.push(n):e.get("history")?.swaps.push(n)}),Array.from(e.values())},"groupSwapsByDate");var En=s(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");var Cf=ql("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),kf=ql("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Tf=s((t,e)=>t?.length?t.filter(o=>qe(o.fromBlockchain,e)||qe(o.toBlockchain,e)||qe(o.toSymbol,e)||qe(o.fromSymbol,e)).length:!1,"isStepContainsText");function Gl(){let t=Ce.use.setSelectedSwap(),e=Sf(),{navigateBackFrom:o}=re(),{manager:n,state:r}=ff(),i=En(n).map(({swap:g})=>g),[a,l]=yf(""),p=!r.loadedFromPersistor,u=s(g=>{let h=g.target.value;l(h)},"searchHandler"),c=i;a&&(c=i.filter(g=>qe(g.inputAmount,a)||qe(g.status,a)||Tf(g.steps,a)||qe(g.requestId,a)));let m=!c?.length&&!p;return dt.createElement(K,{header:{onBack:()=>o(S.swaps),title:An.t("History")}},dt.createElement(Cf,null,dt.createElement(Ze,{setValue:l,fullWidth:!0,variant:"contained",placeholder:An.t("Search Transaction"),autoFocus:!0,onChange:u,value:a}),dt.createElement(kf,null,m&&dt.createElement($l,null,dt.createElement(gf,{size:32}),dt.createElement(hf,{title:An.t("No results found"),description:a?An.t("Try using different keywords"):""})),!m&&dt.createElement(ei,{list:c,onSwapClick:g=>{t(g),e(`${g}`,{replace:!0})},groupBy:zl,isLoading:p}))))}s(Gl,"HistoryPage");import{i18n as Hl}from"@lingui/core";import{List as wf,ListItemButton as vf,Radio as xf,RadioRoot as bf,Typography as Ef}from"@rango-dev/ui";import ft from"react";import{styled as In}from"@rango-dev/ui";var Re=In("div",{height:"100%",overflow:"hidden"}),lo=In("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto"}),ti=In("div",{width:80,display:"flex",justifyContent:"flex-end"}),oi=In("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Nn(){let t=D.use.language(),e=D.use.setLanguage();return{activeLanguage:t,languages:cs,defaultLanguage:_o,changeLanguage:e}}s(Nn,"useLanguage");function Ql(){let{navigateBackFrom:t}=re(),{activeLanguage:e,changeLanguage:o,languages:n}=Nn(),r=n.map(i=>{let{local:a,label:l,SVGFlag:p}=i;return{id:a,value:a,title:ft.createElement(Ef,{variant:"title",size:"xmedium"},l),onClick:()=>o(i.local),end:ft.createElement(xf,{value:a}),start:ft.createElement(p,null)}});return ft.createElement(K,{header:{onBack:()=>t(S.settings),title:Hl.t("Language")}},ft.createElement(Re,null,ft.createElement(bf,{value:e},ft.createElement(wf,{type:ft.createElement(vf,{title:Hl.t("language"),id:"_",onClick:()=>console.log()}),items:r}))))}s(Ql,"LanguagePage");import{i18n as qt}from"@lingui/core";import{Button as Bf,Checkbox as Lf,Image as Mf,ListItemButton as Pf,NotFound as $f,Typography as _f}from"@rango-dev/ui";import Se,{useState as Df}from"react";import{Checkbox as Nf,Skeleton as jl}from"@rango-dev/ui";import po from"react";import{ListItem as Af,styled as If}from"@rango-dev/ui";var Vl=If(Af,{height:61});var Wf=30;function ni(){return po.createElement(lo,null,Array.from(Array(Wf),t=>po.createElement(Vl,{hasDivider:!0,key:t,start:po.createElement(jl,{variant:"circular",width:35,height:35}),title:po.createElement(jl,{variant:"text",size:"large",width:90}),end:po.createElement(Nf,{checked:!1})})))}s(ni,"LoadingLiquiditySourceList");function ri({sourceType:t}){let e=v().fetchStatus,o=v().swappers(),[n,r]=Df(""),i=D.use.toggleLiquiditySource(),{navigateBackFrom:a}=re(),l=Do(o),p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&(p.push("BRIDGE"),p.push("AGGREGATOR"));let u=l.filter(k=>p.includes(k.type)),c=u.length===u.filter(k=>k.selected).length,m=s(()=>{u.forEach(k=>{c?i(k.groupTitle):k.selected||i(k.groupTitle)})},"toggleAllSources"),g=u.map(k=>{let{selected:y,groupTitle:x,logo:f}=k;return{start:Se.createElement(Mf,{src:f,size:22,type:"circular"}),onClick:()=>i(x),end:Se.createElement(Lf,{checked:y}),title:Se.createElement(_f,{variant:"title",size:"xmedium"},qt.t(x)),...k}}),h=s(k=>{let y=k.target.value;r(y)},"searchHandler"),w=g;return n&&(w=g.filter(k=>qe(k.groupTitle,n))),Se.createElement(K,{header:{onBack:()=>a(S.settings),title:qt.t(t),suffix:Se.createElement(ti,null,Se.createElement(Bf,{variant:"ghost",size:"xsmall",onClick:m},qt.t(c?"Deselect all":"Select all")))}},Se.createElement(Re,null,Se.createElement(Ze,{value:n,setValue:r,fullWidth:!0,color:"light",variant:"contained",placeholder:qt.t("Search {sourceType}",{sourceType:t}),onChange:h}),e==="loading"&&Se.createElement(ni,null),!w.length&&n?Se.createElement(oi,null,Se.createElement($f,{title:qt.t("No results found"),description:qt.t("Try using different keywords")})):e==="success"&&Se.createElement(lo,null,w.map(k=>Se.createElement(Se.Fragment,{key:k.id},Se.createElement(Pf,{style:{height:"61px"},...k,selected:!1,hasDivider:!0}))))))}s(ri,"LiquiditySourcePage");import{i18n as tp}from"@lingui/core";import{Divider as li,SelectableCategoryList as Vf}from"@rango-dev/ui";import Et,{useState as op}from"react";import{i18n as si}from"@lingui/core";import{Divider as Rl,Image as zf,ListItemButton as qf,NotFound as Gf,Typography as ep}from"@rango-dev/ui";import Ne,{useEffect as Hf,useState as Qf}from"react";import{BlockchainCategories as ii}from"@rango-dev/ui";import{TransactionType as Wn}from"rango-sdk";var Ff=s((t,e)=>{switch(e){case ii.ALL:return!0;case ii.UTXO:return t.type===Wn.TRANSFER;case ii.OTHER:return t.type!==Wn.TRANSFER&&t.type!==Wn.COSMOS&&t.type!==Wn.EVM;default:return t.type===e}},"filterByType"),Kl=s((t,e,o)=>t.filter(n=>Ff(n,o)).filter(n=>St(n.name,e)||St(n.displayName,e)),"filterBlockchains");import{styled as Xl}from"@rango-dev/ui";var Yl=Xl("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),Bn=Xl("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",".image-container":{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Of,Skeleton as Jl}from"@rango-dev/ui";import Ln from"react";var Uf=20;function Zl(){return Ln.createElement(Bn,null,Array.from(Array(Uf),t=>Ln.createElement(Of,{key:t,hasDivider:!0,start:Ln.createElement(Jl,{variant:"circular",width:35,height:35}),title:Ln.createElement(Jl,{variant:"text",size:"large",width:90})})))}s(Zl,"LoadingBlockchainList");function ai(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[i,a]=Qf(e),{fetchStatus:l}=v();Hf(()=>{a([...Kl(e,o,r)])},[e,o,r]);let p=s(()=>!i.length&&o?Ne.createElement(Ne.Fragment,null,Ne.createElement(Rl,{size:32}),Ne.createElement(Gf,{title:si.t("No results found"),description:si.t("Try using different keywords")})):Ne.createElement(Bn,{key:`${r}-${o}`},i.map(u=>Ne.createElement(qf,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Ne.createElement(zf,{src:u.logo,size:30}),title:Ne.createElement(ep,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Ne.createElement(Yl,null,Ne.createElement(ep,{variant:"label",size:"large"},si.t("Select Blockchain")),Ne.createElement(Rl,{size:4}),l==="loading"&&Ne.createElement(Zl,null),l==="success"&&p())}s(ai,"BlockchainList");function pi(t){let{type:e}=t,{navigateBackFrom:o}=re(),[n,r]=op(""),[i,a]=op("ALL"),l=P.use.setToBlockchain(),p=P.use.setFromBlockchain(),u=v().fetchStatus,c=v().blockchains({type:e}),m=e==="source"?"fromBlockchain":"toBlockchain";return Et.createElement(K,{header:{onBack:()=>{o(S[m])},title:tp.t("Select Blockchain")}},Et.createElement(li,{size:12}),Et.createElement(Vf,{setCategory:a,category:i,blockchains:c,isLoading:u==="loading"}),Et.createElement(li,{size:24}),Et.createElement(Ze,{value:n,autoFocus:!0,placeholder:tp.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:g=>r(g.target.value)}),Et.createElement(li,{size:16}),Et.createElement(ai,{list:c,searchedFor:n,blockchainCategory:i,onChange:g=>{e==="source"?p(g):l(g),o(S[m])}}))}s(pi,"SelectBlockchainPage");import{i18n as kp}from"@lingui/core";import{Divider as Tp}from"@rango-dev/ui";import Gt,{useState as pg}from"react";import{useNavigate as ug}from"react-router-dom";import{i18n as ci}from"@lingui/core";import{BlockchainsChip as Mn,Divider as sp,Image as ap,Skeleton as Jf,Typography as mi}from"@rango-dev/ui";import ge from"react";import{useEffect as Xf}from"react";var np=["ETH","COSMOS","OSMOSIS"];function rp(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(jf),o?.limit&&t.length>o.limit){let i=o.limit,a=e;if(e.length<=o.limit)for(let l=0;l<o.limit;l++){let p=n[l];a=a.filter(u=>p.name!==u)}n.sort(Kf(a)),r=n.splice(i)}return{list:n,more:r}}s(rp,"prepare");function jf(t,e){let o=np,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),i=n>-1,a=r>-1;return i&&a?n>r?1:-1:i?-1:a?1:0}s(jf,"sortByMostUsedBlockchains");function Kf(t){return s(function(o,n){let r=t.findIndex(p=>p===o.name),i=t.findIndex(p=>p===n.name),a=r>-1,l=i>-1;return a&&l?r>i?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}s(Kf,"generateSortByPreferredBlockchainsFor");function ui(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=D();Xf(()=>{e?.selected&&n(e?.selected)},[e?.selected]);let r=rp(t,o,e);return{list:r.list,more:r.more,history:[]}}s(ui,"usePrepareBlockchainList");import{styled as Yf}from"@rango-dev/ui";var ip=Yf("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var Zf=12;function di(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:i}=t,a=ui(e,{limit:10,selected:n?.name}),{fetchStatus:l}=v(),p=P.use.resetToBlockchain(),u=P.use.resetFromBlockchain(),c=a.more.length>0,m=a.more.length===1,g=!m&&c;return ge.createElement("div",null,ge.createElement(sp,{size:12}),ge.createElement(mi,{variant:"label",size:"large"},ci.t("Select Blockchain")),ge.createElement(sp,{size:12}),ge.createElement(ip,null,l==="loading"&&Array.from(Array(Zf),h=>ge.createElement(Jf,{key:h,variant:"rounded",height:50})),l==="success"&&ge.createElement(ge.Fragment,null,ge.createElement(Mn,{selected:!n,onClick:()=>{o==="from"?u():p()}},ge.createElement(mi,{variant:"body",size:"xsmall",color:"secondary500"},ci.t("All"))),a.list.map(h=>ge.createElement(Mn,{key:h.name,selected:!!n&&n.name===h.name,onClick:()=>r(h)},ge.createElement(ap,{src:h.logo,size:30}))),m?ge.createElement(Mn,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},ge.createElement(ap,{src:a.more[0].logo,size:30})):null,g?ge.createElement(Mn,{onClick:i,key:"more-blockchains"},ge.createElement(mi,{variant:"body",size:"xsmall",color:"secondary500"},ci._("More +{count}",{count:a.more.length}))):null)))}s(di,"BlockchainsSection");import{i18n as Si}from"@lingui/core";import{darkTheme as gp,Divider as co,ExternalLinkIcon as tg,Image as og,ListItemButton as ng,NotFound as rg,PinIcon as ig,Skeleton as hp,Typography as mo,VirtualizedList as sg}from"@rango-dev/ui";import M,{forwardRef as ag,useEffect as yp,useState as Sp}from"react";var lp=s((t,e)=>{t=t.replace(/^#/,""),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let[i,a,l]=t.match(/.{2}/g);[i,a,l]=[parseInt(i,16)+e,parseInt(a,16)+e,parseInt(l,16)+e],i=Math.max(Math.min(255,i),0).toString(16),a=Math.max(Math.min(255,a),0).toString(16),l=Math.max(Math.min(255,l),0).toString(16);let p=(i.length<2?"0":"")+i,u=(a.length<2?"0":"")+a,c=(l.length<2?"0":"")+l;return`#${p}${u}${c}`},"colorShade"),Pn=s((t,e)=>{let a={[t]:e};for(let l=1;l<10;l++)l<5&&(a={...a,[t+l*100]:lp(e,(5-l)*32)}),l===5&&(a={...a,[t+l*100]:e}),l>5&&(a={...a,[t+l*100]:lp(e,-((l-5)*32))});return a},"generateRangeColors"),fi=s((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let i in o){let a=o[i];if(a&&a!==t[i])if(n=!0,i==="background"||i==="foreground")r={...r,[i]:a};else if(i==="neutral"&&e){let l=Pn(i,a);r={...r,[`${i}100`]:l[`${i}900`],[`${i}200`]:l[`${i}800`],[`${i}300`]:l[`${i}700`],[`${i}400`]:l[`${i}600`],[`${i}500`]:l[`${i}500`],[`${i}600`]:l[`${i}400`],[`${i}700`]:l[`${i}300`],[`${i}800`]:l[`${i}200`],[`${i}900`]:l[`${i}100`]}}else r={...r,...Pn(i,a)}}return n?r:{}},"generateColors");import{Divider as dp,ListItem as eg,Skeleton as uo}from"@rango-dev/ui";import Oe from"react";import{styled as Ve,Typography as Rf}from"@rango-dev/ui";var pp=Ve("div",{display:"flex",flexDirection:"column",flexGrow:1}),gi=Ve("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),$n=Ve("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none",".description":{position:"relative",height:12,width:150,".token-title":{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"},".token-address":{transform:"translateY(12px)",visibility:"hidden","& a":{fontSize:"$12",lineHeight:"$16",color:"$neutral600",textDecoration:"none"}},".token-name":{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}},"&:hover":{".description":{".token-address":{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},".token-address-without-name":{bottom:"-15px"},".token-name":{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},".token-title":{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),hi=Ve("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),yi=Ve(Rf,{}),up=Ve("div",{textAlign:"right"}),_n=Ve("ul",{display:"flex",alignItems:"end",flexDirection:"column"}),rN=Ve("div",{display:"flex",alignItems:"center"}),cp=Ve("div",{position:"relative",".image-container":{borderRadius:"$xm",overflow:"hidden"}}),mp=Ve("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6});function fp(t){return Oe.createElement($n,null,Array.from(Array(t.size),e=>Oe.createElement(eg,{key:e,hasDivider:!0,start:Oe.createElement(uo,{variant:"circular",width:35,height:35}),end:Oe.createElement(_n,null,Oe.createElement(uo,{variant:"text",size:"large",width:70}),Oe.createElement(dp,{size:4}),Oe.createElement(uo,{variant:"text",size:"medium",width:50})),title:Oe.createElement("div",null,Oe.createElement(uo,{variant:"text",size:"large",width:90}),Oe.createElement(dp,{size:4}),Oe.createElement(uo,{variant:"text",size:"medium",width:90}))})))}s(fp,"LoadingTokenList");var Ci=20,lg=s(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:i,customCssForTagTitle:a}=t,l=e.length;return M.createElement("div",{className:"description"},o?M.createElement("div",{className:"token-name"},o):M.createElement(gi,{className:"token-title"},M.createElement(mo,{variant:"title",size:"xmedium"},r.symbol),M.createElement(co,{direction:"horizontal",size:4}),M.createElement(hi,{css:i},M.createElement(yi,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&M.createElement("div",{className:`token-address ${!o&&"token-address-without-name"}`},M.createElement("a",{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",M.createElement(tg,{color:"gray",size:12}))))},"renderDesc");function Cp(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[i,a]=Sp(e),l=v().fetchStatus,p=v().blockchains(),[u,c]=Sp(!0),m=H.use.loading(),{isTokenPinned:g}=v(),h=ag((y,x)=>M.createElement("div",{...y,ref:x,style:{...y.style,height:`${parseFloat(y.style?.height)+8*2}px`}})),w=s(()=>{a(e.slice(0,i.length+Ci))},"loadNextPage");yp(()=>{c(e.length>i.length)},[i.length]),yp(()=>{a(e.slice(0,Ci))},[e]);let k=s(()=>!i.length&&o?M.createElement(M.Fragment,null,M.createElement(co,{size:32}),M.createElement(rg,{title:Si.t("No results found"),description:Si.t("Try using different keywords")})):M.createElement(sg,{Item:({index:y,style:x})=>{let f=i[y],T=f.address||"",d=p.find(I=>I.name===f.blockchain),C=Pn(f.symbol,d?.color||""),E={$$color:C[`${f.symbol}100`],[`.${gp} &`]:{$$color:C[`${f.symbol}900`]},backgroundColor:"$$color"},$={$$color:C[`${f.symbol}700`],[`.${gp} &`]:{$$color:C[`${f.symbol}100`]},color:"$$color"};return M.createElement("div",{style:{...x,paddingRight:5}},M.createElement(ng,{style:{height:x?.height},"tab-index":y,key:`${f.symbol}${f.address}`,id:`${f.symbol}${f.address}`,hasDivider:!0,onClick:()=>n(i[y]),start:M.createElement(cp,null,M.createElement(og,{src:f.image,size:30}),g(f)&&M.createElement(mp,null,M.createElement(ig,{size:12,color:"gray"}))),title:d?.type==="COSMOS"||f.name||!f.name&&!T?M.createElement(gi,null,M.createElement(mo,{variant:"title",size:"xmedium"},f.symbol),M.createElement(co,{direction:"horizontal",size:4}),M.createElement(hi,{css:E},M.createElement(yi,{variant:"body",size:"xsmall",css:$},f.blockchain))):void 0,description:d?.info&&T&&d.type!=="COSMOS"?lg({address:T,token:i[y],customCssForTag:E,customCssForTagTitle:$,name:f.name,url:d.info.addressUrl.split("{wallet}").join(T)}):f.name||void 0,end:m?M.createElement(_n,null,M.createElement(hp,{variant:"text",size:"large",width:70}),M.createElement(co,{size:4}),M.createElement(hp,{variant:"text",size:"medium",width:50})):i[y]?.balance&&M.createElement(up,null,M.createElement(mo,{variant:"title",size:"small"},f.balance?.amount),M.createElement("div",null),f.balance?.usdValue&&M.createElement(mo,{variant:"body",color:"neutral600",size:"xsmall"},`$${f.balance?.usdValue}`))}))},hasNextPage:u,itemCount:i.length,loadNextPage:w,innerElementType:h,size:60,key:`${r}-${o}`}),"renderList");return M.createElement(pp,null,M.createElement(mo,{variant:"label",size:"large"},Si.t("Select Token")),M.createElement(co,{size:4}),l==="loading"&&M.createElement(fp,{size:Ci}),l==="success"&&M.createElement($n,null,k()))}s(Cp,"TokenList");function ki(t){let{type:e}=t,o=ug(),{navigateBackFrom:n}=re(),{fromBlockchain:r,toBlockchain:i,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:u}=P(),{connectedWallets:c}=H(),[m,g]=pg(""),w=(e==="source"?r:i)?.name??"",k=v().blockchains({type:e}),y=v().tokens({type:e,blockchain:w,searchFor:m}),x=rs(y,c),f=s(d=>{e==="source"?p(d):u(d)},"updateBlockchain"),T=s(d=>{e==="source"?a({token:d,meta:{blockchains:k,tokens:y}}):l({token:d,meta:{blockchains:k,tokens:y}})},"updateToken");return Gt.createElement(K,{header:{onBack:()=>n(e==="source"?S.fromSwap:S.toSwap),title:kp.t("Swap {type}",{type:e==="source"?"from":"to"})}},Gt.createElement(di,{blockchains:k,type:e=="source"?"from":"to",blockchain:e==="source"?r:i,onMoreClick:()=>o(e==="source"?S.fromBlockchain:S.toBlockchain),onChange:d=>{f(d)}}),Gt.createElement(Tp,{size:24}),Gt.createElement(Ze,{value:m,autoFocus:!0,placeholder:kp.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:d=>g(d.target.value)}),Gt.createElement(Tp,{size:16}),Gt.createElement(Cp,{list:x,selectedBlockchain:w,searchedFor:m,onChange:d=>{T(d);let C=k.find(E=>d.blockchain===E.name);C&&f(C),n(S.fromSwap)}}))}s(ki,"SelectSwapItemsPage");import{i18n as At}from"@lingui/core";import{ChevronRightIcon as vi,Divider as xi,InfoIcon as hg,List as yg,ListItemButton as Sg,Skeleton as Cg,Switch as kg,Tooltip as Tg,Typography as It}from"@rango-dev/ui";import G from"react";import{useNavigate as wg}from"react-router-dom";import{i18n as Ep}from"@lingui/core";import{Chip as mg,Divider as Ap,InfoIcon as dg,TextField as fg,Tooltip as gg,Typography as Ip}from"@rango-dev/ui";import Te from"react";import{styled as Dn}from"@rango-dev/ui";var wp=Dn("div",{paddingTop:"$5",paddingBottom:"30px"}),vp=Dn("div",{display:"flex",alignItems:"center",justifyContent:"start"}),xp=Dn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Fn=Dn("div",{maxWidth:"300px",padding:"$10"});import{i18n as Ti}from"@lingui/core";import{Typography as cg}from"@rango-dev/ui";import fo from"react";function bp(){return fo.createElement(Fn,null,fo.createElement(cg,{variant:"label",size:"medium",color:"neutral700"},Ti.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),fo.createElement("br",null),fo.createElement("br",null),fo.createElement("b",null,Ti.t("Warning")),":",Ti.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}s(bp,"SlippageTooltipContent");function wi(){let t=D.use.slippage(),e=D.use.setSlippage(),o=D.use.customSlippage(),n=D.use.setCustomSlippage();return Te.createElement(wp,null,Te.createElement(xp,null,Te.createElement(Ip,{variant:"title",size:"xmedium"},Ep.t("Slippage tolerance per swap")),Te.createElement(Ap,{direction:"horizontal",size:4}),Te.createElement(gg,{container:ee(),side:"top",content:Te.createElement(bp,null)},Te.createElement(dg,{color:"gray"}))),Te.createElement(vp,null,ms.map((r,i)=>{let a=`slippage-${i}`;return Te.createElement(Te.Fragment,null,Te.createElement(mg,{style:{width:"64px",flexShrink:0},key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}),Te.createElement(Ap,{direction:"horizontal",size:8}))}),Te.createElement(fg,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let i=parseFloat(r.target.value);(!i||i>=hs&&i<=gs)&&n(i)},suffix:o&&Te.createElement(Ip,{variant:"body",size:"small"},"%"),placeholder:Ep.t("Custom")})))}s(wi,"Slippage");function Np(){let t=wg(),{theme:e}=v().config,o=v().fetchStatus,n=v().swappers(),{navigateBackFrom:r}=re(),i=D.use.infiniteApprove(),a=D.use.toggleInfiniteApprove(),l=Do(n),p=l.filter(d=>d.type==="BRIDGE"||d.type==="AGGREGATOR"),u=p.length,c=p.filter(d=>d.selected).length,m=l.filter(d=>d.type==="DEX"),g=m.length,h=m.filter(d=>d.selected).length,w=s((d,C)=>{switch(o){case"loading":return G.createElement(Cg,{variant:"text",size:"medium",width:50});case"failed":return G.createElement(It,{variant:"body",size:"medium",color:"$error500"},At.t("Loading failed"));default:return G.createElement(It,{variant:"body",size:"medium"},`${d} / ${C}`)}},"handleEndItem"),k={id:"bridge-item",title:G.createElement(It,{variant:"title",size:"xmedium"},At.t("Enabled bridges")),end:G.createElement(G.Fragment,null,w(c,u),G.createElement(xi,{direction:"horizontal",size:8}),G.createElement(vi,{color:"black"})),onClick:()=>t(S.bridges)},y={id:"exchange-item",title:G.createElement(It,{variant:"title",size:"xmedium"},At.t("Enabled exchanges")),end:G.createElement(G.Fragment,null,w(h,g),G.createElement(xi,{direction:"horizontal",size:8}),G.createElement(vi,{color:"gray"})),onClick:()=>t(S.exchanges)},x={id:"theme-item",title:G.createElement(It,{variant:"title",size:"xmedium"},At.t("Theme")),end:G.createElement(vi,{color:"gray"}),onClick:()=>t(S.themes)},f={id:"infinite-approval-item",title:G.createElement(G.Fragment,null,G.createElement(It,{variant:"title",size:"xmedium"},At.t("Infinite Approval")),G.createElement(xi,{direction:"horizontal",size:4}),G.createElement(Tg,{side:"top",container:ee(),content:G.createElement(Fn,null,G.createElement(It,{variant:"label",size:"medium",color:"neutral700"},At.t("Enabling the 'Infinite Approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},G.createElement(hg,{color:"gray"}))),end:G.createElement(kg,{checked:i}),onClick:a},T=[k,y];return e?.singleTheme||T.push(x),T.push(f),G.createElement(K,{header:{onBack:()=>r(S.settings),title:At.t("Setting")}},G.createElement(Re,null,G.createElement(wi,null),G.createElement(yg,{type:G.createElement(Sg,{title:"_",id:"_",onClick:()=>console.log()}),items:T})))}s(Np,"SettingsPage");import{cancelSwap as hh}from"@rango-dev/queue-manager-rango-preset";import{useManager as yh}from"@rango-dev/queue-manager-react";import au from"react";import{i18n as et}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Jg,getCurrentStep as Zg,getRelatedWalletOrNull as Rg,PendingSwapNetworkStatus as Kn}from"@rango-dev/queue-manager-rango-preset";import{Button as Rp,CopyIcon as eh,Divider as th,IconButton as oh,QuoteCost as nh,StepDetails as rh,Typography as Qt,useCopyToClipboard as ih}from"@rango-dev/ui";import{useWallets as sh}from"@rango-dev/wallets-react";import X,{useEffect as eu,useRef as ah,useState as tu}from"react";import{useNavigate as lh}from"react-router-dom";import{i18n as we}from"@lingui/core";var vg=1e3,xg=31536e3,bg=2592e3,Eg=86400,Ag=3600,Ig=60;function Wp(t){let e=Math.floor((Date.now()-t)/vg),n=[{turningPoint:xg,label:we.t("year"),pluralLabel:we.t("years")},{turningPoint:bg,label:we.t("month"),pluralLabel:we.t("months")},{turningPoint:Eg,label:we.t("day"),pluralLabel:we.t("days")},{turningPoint:Ag,label:we.t("hour"),pluralLabel:we.t("hours")},{turningPoint:Ig,label:we.t("minute"),pluralLabel:we.t("minutes")}].sort((r,i)=>i.turningPoint-r.turningPoint);for(let r of n){let{turningPoint:i,label:a,pluralLabel:l}=r,p=Math.floor(e/i);if(p>1)return`${p} ${l}`;if(p===1)return`${p} ${a}`}return e>1?`${e} ${we.t("seconds")}`:`${e} ${we.t("second")}`}s(Wp,"timeSince");function Bp(t){return t.finishTime?we.t({id:"{time} ago",values:{time:Wp(parseInt(t.finishTime))}}):we.t({id:"{time} ago",values:{time:Wp(parseInt(t.creationTime))}})}s(Bp,"getSwapDate");import{PendingSwapNetworkStatus as zn}from"@rango-dev/queue-manager-rango-preset";import{Modal as $g}from"@rango-dev/ui";import qn from"react";import{i18n as On}from"@lingui/core";import{Button as Lp,Divider as bi,MessageBox as Ng,Typography as Mp}from"@rango-dev/ui";import je from"react";var Pp=s(({onCancel:t,onClose:e})=>je.createElement(je.Fragment,null,je.createElement(bi,{size:20}),je.createElement(Ng,{type:"error",title:On.t("Transaction Cancel"),description:On.t("Are you sure you want to Cancel this swap?")}),je.createElement(bi,{size:32}),je.createElement(Lp,{variant:"contained",type:"primary",size:"large",onClick:t},je.createElement(Mp,{variant:"title",size:"medium",color:"neutral100"},On.t("Yes, Cancel it"))),je.createElement(bi,{size:12}),je.createElement(Lp,{variant:"outlined",type:"primary",size:"large",onClick:e},je.createElement(Mp,{variant:"title",size:"medium",color:"primary"},On.t("No, Continue")))),"CancelContent");import{i18n as Un}from"@lingui/core";import{Button as $p,Divider as Ei,MessageBox as Wg,Typography as _p}from"@rango-dev/ui";import Ke from"react";var Dp=s(({onDelete:t,onClose:e})=>Ke.createElement(Ke.Fragment,null,Ke.createElement(Ei,{size:20}),Ke.createElement(Wg,{type:"error",title:Un.t("Delete Transaction"),description:Un.t("Are you sure you want to delete this swap?")}),Ke.createElement(Ei,{size:32}),Ke.createElement($p,{variant:"contained",type:"primary",size:"large",onClick:t},Ke.createElement(_p,{variant:"title",size:"medium",color:"neutral100"},Un.t("Yes, Delete it"))),Ke.createElement(Ei,{size:12}),Ke.createElement($p,{variant:"outlined",type:"primary",size:"large",onClick:e},Ke.createElement(_p,{variant:"title",size:"medium",color:"primary"},Un.t("No, Cancel")))),"DeleteContent");import{i18n as Ai}from"@lingui/core";import{PendingSwapNetworkStatus as Ii}from"@rango-dev/queue-manager-rango-preset";var Ni={[Ii.WaitingForNetworkChange]:{type:"loading",title:Ai.t("Change Network")},[Ii.WaitingForConnectingWallet]:{type:"warning",title:Ai.t("Connect Wallet")},[Ii.NetworkChanged]:{type:"success",title:Ai.t("Network Changed")}};import{MessageBox as Lg,Wallet as Mg,WalletState as Op}from"@rango-dev/ui";import{useWallets as Pg}from"@rango-dev/wallets-react";import go from"react";import{styled as Bg}from"@rango-dev/ui";var Fp=Bg("div",{display:"flex",justifyContent:"center"});var Up=s(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:i}=t,{connect:a,getWalletInfo:l,state:p}=Pg(),u=n?.walletType,m=u&&p(u).connected?Op.CONNECTED:Op.DISCONNECTED;return go.createElement(go.Fragment,null,go.createElement(Lg,{type:e,title:o,description:r}),i&&u&&go.createElement(Fp,null,go.createElement(Mg,{container:ee(),title:l(u).name,image:l(u).img,type:u,state:m,onClick:async()=>a(u)})))},"WalletStateContent");function Wi(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:i,message:a}=t,l=e===zn.WaitingForNetworkChange||e===zn.WaitingForConnectingWallet||e===zn.NetworkChanged;return qn.createElement($g,{open:!!e,onClose:o,container:document.getElementById("swap-box")||document.body},l&&qn.createElement(Up,{type:Ni[e].type,title:Ni[e].title,currentStepWallet:i,message:a,showWalletButton:e!==zn.WaitingForNetworkChange}),e==="delete"&&qn.createElement(Dp,{onClose:o,onDelete:n}),e==="cancel"&&qn.createElement(Pp,{onClose:o,onCancel:r}))}s(Wi,"SwapDetailsModal");import{i18n as ho}from"@lingui/core";import{Button as Bi,Divider as Gn,MessageBox as zp,Modal as _g,TokenAmount as Dg,Typography as Hn}from"@rango-dev/ui";import ce from"react";import{useNavigate as Fg}from"react-router-dom";function Li(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:i,token:a,chain:l,percentageChange:p,description:u,diagnosisUrl:c}=t,m=Fg();return ce.createElement(_g,{open:e,onClose:o,container:document.getElementById("swap-box")||document.body},n==="success"?ce.createElement(zp,{type:"success",title:ho.t("Swap Successful")},ce.createElement(Dg,{direction:"vertical",type:"output",centerAlign:!0,price:{value:r,usdValue:i},token:a,chain:l,percentageChange:p}),ce.createElement(Gn,{size:12}),ce.createElement(Hn,{variant:"body",size:"medium",color:"neutral700",align:"center"},u)):ce.createElement(zp,{type:"error",title:ho.t("Transaction Failed"),description:u}),ce.createElement(Gn,{size:32}),n==="success"&&ce.createElement(Bi,{variant:"contained",type:"primary",size:"large",onClick:()=>m(S.home)},ce.createElement(Hn,{variant:"title",size:"medium",color:"neutral100"},ho.t("Done"))),ce.createElement(Gn,{size:12}),c&&ce.createElement(ce.Fragment,null,ce.createElement(Bi,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(c,"_blank")},ce.createElement(Hn,{variant:"title",size:"medium",color:"primary"},ho.t("Diagnosis"))),ce.createElement(Gn,{size:12})),ce.createElement(Bi,{variant:"outlined",type:"primary",size:"large",onClick:o},ce.createElement(Hn,{variant:"title",size:"medium",color:"primary"},ho.t("See Details"))))}s(Li,"SwapDetailsCompleteModal");import Xg from"react";import{i18n as Qg}from"@lingui/core";import{Alert as jp,IconButton as Vg,LinkIcon as jg}from"@rango-dev/ui";import gt,{Fragment as Kg}from"react";import{Alert as Og,ChevronDownIcon as Ug,ChevronUpIcon as zg,IconButton as qg}from"@rango-dev/ui";import Qn,{useState as Gg}from"react";function qp(t){let{message:e}=t,[o,n]=Gg(!1);return Qn.createElement(Og,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&Qn.createElement(qg,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?Qn.createElement(zg,{size:12,color:"gray"}):Qn.createElement(Ug,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}s(qp,"FailedAlert");import{styled as Hg}from"@rango-dev/ui";var Gp=Hg("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as Hp}from"@lingui/core";import{PendingSwapNetworkStatus as Mi}from"@rango-dev/queue-manager-rango-preset";import{Alert as Pi,Button as Qp}from"@rango-dev/ui";import yo from"react";function Vp(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?yo.createElement(Pi,{type:"warning",title:n.shortMessage,action:yo.createElement(Qp,{size:"xxsmall",type:"warning",onClick:()=>{o(Mi.WaitingForNetworkChange),e().catch(i=>{console.log(i)})}},Hp.t("Change"))}):r===Mi.WaitingForConnectingWallet?yo.createElement(Pi,{type:"warning",title:n.shortMessage,action:yo.createElement(Qp,{size:"xxsmall",type:"warning",onClick:()=>{o(Mi.WaitingForConnectingWallet)}},Hp.t("Connect"))}):yo.createElement(Pi,{type:"warning",title:n.shortMessage})}s(Vp,"WarningAlert");function $i(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:i,hasAlreadyProceededToSign:a}=t,l=Jt(i),p=i.status==="waitingForApproval"&&!l,u=i.status==="running"&&!l;return gt.createElement(Gp,null,i.explorerUrl?.map((c,m,g)=>{let h=m+c.url,w=m===g.length-1,k=w&&u||p,y=w&&i.status==="failed";return gt.createElement(Kg,{key:h},gt.createElement(jp,{type:k&&"loading"||y&&"error"||"success",title:c.description?`${c.description} Tx`:Qg.t("View transaction"),action:c.url&&gt.createElement(Vg,{variant:"ghost",size:"xsmall",onClick:()=>window.open(c.url,"_blank")},gt.createElement(jg,{size:16}))}))}),(u&&!a||p&&!i.explorerUrl?.length)&&gt.createElement(jp,{type:"loading",title:r.shortMessage}),i.status!=="failed"&&l&&gt.createElement(Vp,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),i.status==="failed"&&gt.createElement(qp,{message:r}))}s($i,"SwapDetailsAlerts");var Kp=2e3;var Xp=s(({swap:t,blockchains:e,...o})=>{let n=t.hasAlreadyProceededToSign!==!1;return t.steps.map((r,i)=>{let a=i===0?t.inputAmount:t.steps[i-1].outputAmount;return{from:{token:{displayName:r.fromSymbol,image:r.fromLogo??""},chain:{displayName:fr(r.fromBlockchain,e)??"",image:r.fromBlockchainLogo??""},price:{value:W(a,6,6)}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:fr(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:W(r.outputAmount||r.expectedOutputAmountHumanReadable,6,6)}},swapper:{displayName:r.swapperId,image:r.swapperLogo??""},alerts:Xg.createElement($i,{step:r,hasAlreadyProceededToSign:n,...o})}})},"getSteps");function Yp(t){if(Jt(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}s(Yp,"getStepState");import{darkTheme as Yg,styled as Ht}from"@rango-dev/ui";var Vn=Ht("div",{display:"flex",width:"100%",flexDirection:"column",alignItems:"center",height:"0",flexGrow:1,"& .row":{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${Yg} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"},"& .request-id":{display:"flex",justifyContent:"center",alignItems:"center",height:"$24"},"& .output":{display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"},"& .title-steps":{textAlign:"left",width:"100%",padding:"0 $20 $10"}}),jn=Ht("div",{width:"100%"}),Jp=Ht("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),zB=Ht("div",{display:"flex",flexDirection:"column",gap:"$10"}),Zp=Ht("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),qB=Ht("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1});function _i(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:i,connect:a,getWalletInfo:l}=sh(),p=v().blockchains(),u=v().tokens(),c=P.use.retry(),m=lh(),{navigateBackFrom:g}=re(),[h,w]=ih(Kp),k=ah(null),[y,x]=tu(null),[f,T]=tu(null),d=s(()=>{r(),x(null)},"onCancel"),C=Ie.use.getUnreadNotifications(),E=Ie.use.setAsRead(),$=C(),I=Zg(e),_=I?.networkStatus;eu(()=>{$.find(me=>me.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(T(e.status),E(e.requestId))},[e.status]),eu(()=>{ne?x(Kn.WaitingForNetworkChange):_===Kn.WaitingForConnectingWallet||_===Kn.NetworkChanged?x(_):x(null)},[_]);let L=Ks(e),Q=I?Jg(e,I):null,b=I?Rg(e,I):null,z=Bp(e),F=Xs(e),O=s(ae=>!!l(ae)?.mobileWallet,"isMobileWallet"),ne=_===Kn.WaitingForNetworkChange&&!!Q&&!!b?.walletType&&(O(b.walletType)||i(b.walletType,Q)),Ue=ne?a.bind(null,b.walletType,Q):void 0,ot=js(e,I),V=Xp({swap:e,switchNetwork:Ue,showNetworkModal:_,setNetworkModal:x,message:ot,blockchains:p}),Z=V.length,[nt,rt]=[e.steps[0],e.steps[Z-1]],ht=rt.outputAmount||rt.expectedOutputAmountHumanReadable,Jn=e.steps.reduce((ae,me)=>ae+parseFloat(me.feeInUsd||""),0),xo=e.steps.find(ae=>ae.diagnosisUrl)?.diagnosisUrl,jt=W(String(parseFloat(W(ht,6,6))*(Lo(rt.toBlockchain,rt.toSymbol,rt.toSymbolAddress,u)||0)),4,4),U=W(String(parseFloat(e.inputAmount)*(Lo(nt.fromBlockchain,nt.fromSymbol,nt.fromSymbolAddress,u)||0)),4,4),j=Pt(U,jt),R=e.status==="success"?et.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:W(ht,6,6),token:V[Z-1].to.token.displayName,conciseAddress:Po(e.wallets[V[Z-1].to.chain.displayName]?.address||""),chain:V[Z-1].to.chain.displayName}}):`${et.t("Transaction was not sent.")} ${L?et.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:L.outputAmount,symbol:L.symbol,blockchain:L.blockchain}}):""}`;return X.createElement(K,{noPadding:!0,header:{title:et.t("Swap and Bridge"),onBack:()=>g(S.swapDetails),onCancel:e.status==="running"?()=>x("cancel"):void 0,suffix:e.status!=="running"&&X.createElement(Lt,null,X.createElement(Rp,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>x("delete")},X.createElement(Qt,{size:"medium",variant:"label",color:"error"},et.t("Delete"))))},footer:F&&!f&&X.createElement(Rp,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{c(e,{blockchains:p,tokens:u}),setTimeout(()=>{m(S.home)},0)}},et.t("Try again"))},X.createElement(Vn,null,X.createElement(jn,null,X.createElement("div",{className:"row"},X.createElement(Qt,{variant:"label",size:"large",color:"neutral700"},`${et.t("Request ID")}:`),X.createElement("div",{className:"request-id"},X.createElement(Qt,{variant:"label",size:"small",color:"neutral700"},o),X.createElement(oh,{variant:"ghost",onClick:w.bind(null,o||"")},X.createElement(eh,{size:16,color:"gray"})))),X.createElement("div",{className:"row"},X.createElement(Qt,{variant:"label",size:"large",color:"neutral700"},`${et.t("Created at")}:`),X.createElement(Qt,{variant:"label",size:"small",color:"neutral700"},z))),X.createElement("div",{className:"output"},X.createElement(nh,{fee:W(String(Jn),2,2),time:Ao(Io(e.steps)),steps:Z}),X.createElement(Rt,{from:{price:{value:W(e.inputAmount,6,6),usdValue:U},token:{displayName:V[0].from.token.displayName,image:V[0].from.token.image},chain:{image:V[0].from.chain.image,displayName:V[0].from.chain.displayName}},to:{price:{value:W(ht,6,6),usdValue:jt},token:{displayName:V[Z-1].to.token.displayName,image:V[Z-1].to.token.image},chain:{image:V[Z-1].to.chain.image,displayName:V[Z-1].to.chain.displayName}},percentageChange:W(String(j),2,2),warningLevel:Xe(j??0)})),X.createElement("div",{className:"title-steps"},X.createElement(Qt,{variant:"title",size:"small"},et.t("Swaps steps"))),X.createElement(th,{size:8}),X.createElement(Jp,{ref:k},V.map((ae,me)=>{let ze=me,yt=Yp(e.steps[me]),Kt=yt==="error"||yt==="in-progress"||yt==="warning"||yt==="completed"&&me===V.length-1;return X.createElement(rh,{key:ze,step:ae,type:"swap-progress",ref:k,state:yt,hasSeparator:me!==0,tabIndex:ze,isFocused:Kt})}))),X.createElement(Wi,{state:y,onClose:()=>x(null),onCancel:d,onDelete:n,message:ot.detailedMessage.content,currentStepWallet:b}),X.createElement(Li,{open:!!f,diagnosisUrl:xo,onClose:()=>T(null),status:e.status==="success"?"success":"failed",priceValue:W(ht,6,6),usdValue:jt,percentageChange:W(String(j),2,2),token:{displayName:V[Z-1].to.token.displayName,image:V[Z-1].to.token.image},chain:{image:V[Z-1].to.chain.image},description:R}))}s(_i,"SwapDetails");import{i18n as wo}from"@lingui/core";import{CopyIcon as dh,IconButton as fh,NotFound as gh,Skeleton as iu,Typography as Yn}from"@rango-dev/ui";import pe from"react";import{i18n as uh}from"@lingui/core";import{ChainToken as ch,Divider as Fi,Skeleton as To,Typography as mh}from"@rango-dev/ui";import J from"react";import{styled as Di}from"@rango-dev/ui";var ou=Di("div",{width:"100%",height:"100%",padding:"$0 $20",".cost":{paddingTop:"$15",display:"flex"},".quote-summary":{padding:"$15 $0"},".quote-summary-item":{display:"flex",justifyContent:"space-between",alignItems:"center"},".token-amount":{display:"flex",justifyContent:"space-between",alignItems:"center"},".quote-summary-separator":{width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"},".swaps-steps":{paddingBottom:"$10"}}),nu=Di("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15",".step-title":{display:"flex",justifyContent:"start",alignItems:"center"},".step-tokens":{paddingTop:"$5",display:"flex",alignItems:"center"},".step-token-info":{display:"flex",alignItems:"center"},".step-icon-container":{padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"},".extra-info":{display:"flex",paddingTop:"$10",paddingBottom:"$5"}}),Xn=Di("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"});import{ChainToken as ru,Divider as So,NextIcon as ph,Skeleton as Co}from"@rango-dev/ui";import le from"react";function ko(t){let{extraInfo:e}=t;return le.createElement(nu,null,le.createElement("div",{className:"step-title"},le.createElement(Co,{height:28,width:28,variant:"circular"}),le.createElement(So,{direction:"horizontal",size:8}),le.createElement(Co,{height:15,width:148,variant:"rounded"})),le.createElement("div",{className:"step-tokens"},le.createElement(So,{direction:"horizontal",size:20}),le.createElement("div",{className:"step-token-info"},le.createElement(ru,{size:"small",loading:!0,chainImage:"",tokenImage:""}),le.createElement(So,{direction:"horizontal",size:8}),le.createElement(Co,{height:12,width:76,variant:"rounded"})),le.createElement("div",{className:"step-icon-container"},le.createElement(ph,{color:"gray",size:16})),le.createElement("div",{className:"step-token-info"},le.createElement(ru,{size:"small",loading:!0,chainImage:"",tokenImage:""}),le.createElement(So,{direction:"horizontal",size:8}),le.createElement(Co,{height:12,width:76,variant:"rounded"}))),e&&le.createElement("div",{className:"extra-info"},le.createElement(So,{direction:"horizontal",size:20}),le.createElement(Co,{height:22,width:297,variant:"rectangular"})))}s(ko,"LoadingSwapDetailStep");function Oi(){let t=J.createElement("div",{className:"quote-summary-item"},J.createElement("div",{className:"token-amount"},J.createElement(ch,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),J.createElement(Fi,{size:8,direction:"horizontal"}),J.createElement(To,{height:15,width:148,variant:"rounded"})),J.createElement(To,{height:12,width:64,variant:"rounded"}));return J.createElement(ou,null,J.createElement("div",{className:"cost"},J.createElement(To,{width:60,height:10,variant:"rounded"}),J.createElement(Fi,{size:4,direction:"horizontal"}),J.createElement(To,{width:60,height:10,variant:"rounded"}),J.createElement(Fi,{size:4,direction:"horizontal"}),J.createElement(To,{width:60,height:10,variant:"rounded"})),J.createElement("div",{className:"quote-summary"},t,J.createElement("div",{className:"quote-summary-separator"}),t),J.createElement("div",{className:"swaps-steps"},J.createElement(mh,{variant:"title",size:"small"},uh.t("Swaps steps"))),J.createElement("div",{className:"step-container"},J.createElement(ko,{extraInfo:!0}),J.createElement(Xn,null),J.createElement(ko,null),J.createElement(Xn,null),J.createElement(ko,null),J.createElement(Xn,null),J.createElement(ko,null)))}s(Oi,"LoadingSwapDetails");function su(t){let{requestId:e,showSkeleton:o}=t,{navigateBackFrom:n}=re();return pe.createElement(K,{noPadding:!0,header:{title:wo.t("Swap and Bridge"),onBack:()=>n(S.swapDetails),suffix:pe.createElement(Lt,null)}},o&&pe.createElement(Vn,null,pe.createElement(jn,null,pe.createElement("div",{className:"row"},pe.createElement(Yn,{variant:"label",size:"large",color:"neutral700"},`${wo.t("Request ID")}:`),pe.createElement("div",{className:"request-id"},pe.createElement(Yn,{variant:"label",size:"small",color:"neutral700"},pe.createElement(iu,{width:60,height:10,variant:"rounded"})),pe.createElement(fh,{variant:"ghost"},pe.createElement(dh,{size:16,color:"gray"})))),pe.createElement("div",{className:"row"},pe.createElement(Yn,{variant:"label",size:"large",color:"neutral700"},`${wo.t("Created at")}:`),pe.createElement(Yn,{variant:"label",size:"small",color:"neutral700"},pe.createElement(iu,{width:60,height:10,variant:"rounded"})))),pe.createElement(Oi,null)),!o&&pe.createElement(Zp,null,pe.createElement(gh,{title:wo.t("Not found"),description:wo.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}s(su,"SwapDetailsPlaceholder");function lu(){let{manager:t,state:e}=yh(),o=!e.loadedFromPersistor,n=En(t),r=Ce.use.selectedSwapRequestId(),{navigateBackFrom:i}=re(),{fetchStatus:a}=v(),l=o||a==="loading",p=n.find(({swap:g})=>g.requestId===r),u=s(()=>{if(p?.id){let g=t?.get(p.id);g&&hh(g)}},"onCancel"),c=s(async()=>{if(p?.id)try{await t?.deleteQueue(p.id),i(S.swapDetails)}catch(g){console.log(g)}},"onDelete"),m=p?.swap;return!m||l?au.createElement(su,{requestId:r||"",showSkeleton:l}):au.createElement(_i,{swap:m,requestId:r||"",onCancel:u,onDelete:c})}s(lu,"SwapDetailsPage");import{i18n as vo}from"@lingui/core";import{AutoThemeIcon as Sh,DarkModeIcon as Ch,LightModeIcon as kh,List as Th,ListItemButton as wh,Radio as Ui,RadioRoot as vh,Typography as zi}from"@rango-dev/ui";import ve from"react";function pu(){let{navigateBackFrom:t}=re(),e=D.use.theme(),o=D.use.setTheme(),n=[{id:"light",value:"light",title:ve.createElement(zi,{variant:"title",size:"xmedium"},vo.t("Light")),onClick:()=>o("light"),start:ve.createElement(kh,{color:"gray"}),end:ve.createElement(Ui,{value:"light"})},{id:"dark",value:"dark",title:ve.createElement(zi,{variant:"title",size:"xmedium"},vo.t("Dark")),onClick:()=>o("dark"),start:ve.createElement(Ch,{color:"gray"}),end:ve.createElement(Ui,{value:"dark"})},{id:"auto",value:"auto",title:ve.createElement(zi,{variant:"title",size:"xmedium"},vo.t("Auto")),onClick:()=>o("auto"),start:ve.createElement(Sh,{color:"gray"}),end:ve.createElement(Ui,{value:"auto"})}];return ve.createElement(K,{header:{onBack:()=>t(S.settings),title:vo.t("Theme")}},ve.createElement(Re,null,ve.createElement(vh,{onValueChange:r=>o(r),value:e},ve.createElement(Th,{type:ve.createElement(wh,{title:vo.t("Theme"),id:"_",onClick:()=>console.log()}),items:n}))))}s(pu,"ThemePage");var bh=s(t=>t.replace("/",""),"getAbsolutePath");function uu(){return xh([{path:S.home,element:xe.createElement(mn,null)},{path:S.fromSwap,element:xe.createElement(ki,{type:"source"})},{path:S.toSwap,element:xe.createElement(ki,{type:"destination"})},{path:S.fromBlockchain,element:xe.createElement(pi,{type:"source"})},{path:S.toBlockchain,element:xe.createElement(pi,{type:"destination"})},{path:S.settings,element:xe.createElement(Np,null)},{path:S.themes,element:xe.createElement(pu,null)},{path:S.languages,element:xe.createElement(Ql,null)},{path:S.exchanges,element:xe.createElement(ri,{sourceType:"Exchanges"})},{path:S.bridges,element:xe.createElement(ri,{sourceType:"Bridges"})},{path:S.swaps,element:xe.createElement(Gl,null)},{path:S.swapDetails,element:xe.createElement(lu,null)},{path:S.wallets,element:xe.createElement(hl,null)},{path:bh(S.confirmSwap),element:xe.createElement(Ml,null)}])}s(uu,"AppRoutes");import{isApprovalTX as Eh,MainEvents as mu,RouteEventType as du,StepEventType as Vt,StepExecutionEventStatus as Ah,useEvents as Ih}from"@rango-dev/queue-manager-rango-preset";import{useEffect as fu}from"react";import{StepExecutionBlockedEventStatus as qi}from"@rango-dev/queue-manager-rango-preset";var cu=[qi.WAITING_FOR_CHANGE_WALLET_ACCOUNT,qi.WAITING_FOR_NETWORK_CHANGE,qi.WAITING_FOR_WALLET_CONNECT];function gu(){let t=v().tokens(),e=H.use.connectedWallets(),o=H.use.getWalletsDetails(),n=Ie.use.setNotification(),r=Ie.use.setAsRead(),i=Ih();return fu(()=>(i.on(mu.StepEvent,a=>{let{event:l,step:p,route:u}=a;if(l.type===Vt.TX_EXECUTION&&l.status===Ah.TX_SENT&&!Eh(p)||l.type===Vt.SUCCEEDED){let m=e.find(h=>h.chain===p?.fromBlockchain),g=p?.fromBlockchain!==p?.toBlockchain&&e.find(h=>h.chain===p?.toBlockchain);m&&o([m],t),g&&o([g],t)}l.type===Vt.TX_EXECUTION_BLOCKED&&cu.includes(l.status)||l.type===Vt.FAILED?n(l,u):(l.type===Vt.TX_EXECUTION||l.type===Vt.CHECK_STATUS)&&r(u.requestId)}),()=>i.all.clear()),[i,e.length]),fu(()=>(i.on(mu.RouteEvent,a=>{let{event:l,route:p}=a;(l.type===du.FAILED||l.type===du.SUCCEEDED)&&n(l,p)}),()=>i.all.clear()),[i,e.length]),null}s(gu,"WidgetEvents");import{globalCss as Nh}from"@rango-dev/ui";var hu=s(()=>Nh({"@import":["url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')","url('https://fonts.cdnfonts.com/css/times-new-roman')"]})(),"globalFont");import{createTheme as Hi,darkTheme as Ph,lightTheme as $h}from"@rango-dev/ui";import{useEffect as Cu,useState as _h}from"react";import{theme as Lh,darkColors as Mh}from"@rango-dev/ui";var yu=s(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Wh=s(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=yu(o%52)+e;return yu(o%52)+e},"toAlphabeticName"),Bh=s((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),Gi=s(t=>Wh(Bh(5381,JSON.stringify(t))>>>0),"toHash");function Su(t){let e=Lh.colors,o=fi({...e,...Mh},!0,t?.dark),n=fi(e,!1,t?.light),r=Object.keys(o).length>0,i=Object.keys(n).length>0,a,l;if(i){let p={colors:n};a={id:`${Rn}-light-${Gi(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${Rn}-dark-${Gi(p)}`,tokens:p}}return{light:a,dark:l}}s(Su,"customizedThemeTokens");function ku(t){let{colors:e,fontFamily:o=Xi,borderRadius:n=ji,secondaryBorderRadius:r=Ki,mode:i="auto"}=t,[a,l]=_h("light"),p=D.use.theme(),u=D.use.setTheme(),{dark:c,light:m}=Su(e),g=Hi({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),h=[g.className,$h.className],w=[g.className,Ph.className];if(m){let y=Hi(m.id,m.tokens);h.push(y.className)}if(c){let y=Hi(c.id,c.tokens);w.push(y.className)}return Cu(()=>{let y=s(x=>{x.matches?l("dark"):l("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&l("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",y),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",y)}},[]),Cu(()=>{i!=="auto"&&u(i)},[i]),{activeTheme:s(()=>{let y=h.join(" "),x=w.join(" ");return p==="auto"?a==="dark"?x:y:p==="dark"?x:y},"getActiveTheme")}}s(ku,"useTheme");import{checkWaitingForNetworkChange as Dh,makeQueueDefinition as Fh}from"@rango-dev/queue-manager-rango-preset";import{Provider as Oh}from"@rango-dev/queue-manager-react";import{useWallets as Uh}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as zh}from"@rango-dev/wallets-shared";import{isEvmBlockchain as qh}from"rango-types";import Gh,{useMemo as Hh}from"react";function Qh(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:i,getWalletInfo:a}=Uh(),l=Hh(()=>Fh({API_KEY:bo("API_KEY")}),[]),p=v().blockchains(),c={blockchains:H.use.connectedWallets().map(f=>({accounts:[f],name:f.chain}))},m=s(async(f,T)=>{if(i(f,T))return r(f,T)},"switchNetwork"),g=s(f=>!!a(f).mobileWallet,"isMobileWallet"),h=p.filter(f=>f.enabled).reduce((f,T)=>(f[T.name]=T,f),{}),w=p.filter(qh),k=s(f=>{let{supportedChains:T}=a(f);return Wo(T)},"getSupportedChainNames"),y=e(),x={meta:{blockchains:h,evmBasedChains:w,evmNetworkChainInfo:zh(w),getSupportedChainNames:k},getSigners:o,wallets:c,providers:y,switchNetwork:m,canSwitchNetworkTo:i,connect:r,state:n,isMobileWallet:g};return Gh.createElement(Oh,{queuesDefs:[l],context:x,onPersistedDataLoaded:f=>{Dh(f)},isPaused:!1},t.children)}s(Qh,"QueueManager");var Tu=Qh;var Yh=jh("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",fontFamily:"$widget",boxSizing:"border-box","& *, *::before, *::after":{boxSizing:"inherit",listStyleType:"none"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"}});function xu(){hu();let{fetch:t,config:e}=v(),{activeTheme:o}=ku(e?.theme||{}),{activeLanguage:n,changeLanguage:r}=Nn(),[i,a]=vu(""),[l,p]=vu(),u=Kh(ir);return Xh(()=>{e?.apiKey&&Vi({API_KEY:e?.apiKey})},[e]),wu(()=>{t().catch(),D.persist.rehydrate(),Ie.persist.rehydrate(),u.onConnectWallet(a)},[]),wu(()=>{e?.language&&r(e.language)},[e?.language]),tt.createElement(Vh,{language:n},tt.createElement(Yh,{id:"swap-container",className:o()},tt.createElement(Tu,null,tt.createElement(gu,null),tt.createElement(al,{lastConnectedWallet:i,disconnectedWallet:l,clearDisconnectedWallet:()=>{p(void 0)}},tt.createElement(uu,null)))))}s(xu,"Main");function Jh(t){return t.config?.externalWallets?tt.createElement(xu,null):tt.createElement(sr,{config:t.config??tr,providers:t.config?.wallets,options:{walletConnectProjectId:t.config?.walletConnectProjectId}},tt.createElement(xu,null))}s(Jh,"Widget");export{LP as MainEvents,MP as RouteEventType,PP as StepEventType,$P as StepExecutionBlockedEventStatus,_P as StepExecutionEventStatus,Jh as Widget,sr as WidgetWallets,xl as useWallets,DP as useWidgetEvents};
1
+ var Du=Object.defineProperty;var i=(t,e)=>Du(t,"name",{value:e,configurable:!0});import{MainEvents as j_,RouteEventType as K_,StepEventType as X_,StepExecutionBlockedEventStatus as Y_,StepExecutionEventStatus as J_,useEvents as Z_}from"@rango-dev/queue-manager-rango-preset";import{readAccountAddress as eD,useWallets as kl,Events as tD}from"@rango-dev/wallets-react";import{Networks as nD,WalletTypes as rD}from"@rango-dev/wallets-shared";import{Events as Wr,Provider as Cm}from"@rango-dev/wallets-react";import{isEvmBlockchain as km}from"rango-sdk";import rn,{createContext as Tm,useEffect as wa,useRef as wm}from"react";import{useEffect as en,useLayoutEffect as Sa,useMemo as tn,useRef as on}from"react";import om,{createContext as nm,useContext as rm,useEffect as im,useRef as sm}from"react";import{create as em}from"zustand";import{persist as tm}from"zustand/middleware";var ur={apiKey:"",multiWallets:!0,enableNewLiquiditySources:!0,customDestination:!0},Cs=i((t,e,o)=>({config:{...ur,...t},updateConfig:n=>{let r=o().config;e({config:{...r,...n}})}}),"createConfigSlice");import{RangoClient as Fu}from"rango-sdk";var No="c6381a79-2817-4602-83bf-6a641a409e32",ks="https://api.rango.exchange";var mr={API_KEY:No};function Pt(t){return mr[t]||""}i(Pt,"getConfig");function Ts(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),mr=e,mr}i(Ts,"initConfig");var ws=20,xs=25,vs="Roboto",dr="theme-widget";var Bo,$t=i(()=>Bo||(Bo=new Fu(Pt("API_KEY"),Pt("BASE_URL")),Bo),"httpService");function Mt(t){return Array.from(new Set(t))}i(Mt,"removeDuplicateFrom");function fr(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(fr,"areEqual");function bs(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(bs,"debounce");function wt(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(wt,"containsText");var j=i(()=>document.getElementById("swap-box"),"getContainer");function Po(t,e){let o=t.map(s=>s.swapperGroup),n=[];return Mt(t.map(s=>s.swapperGroup)).map(s=>{let a=t.find(l=>l.swapperGroup===s);if(a){let l=!0;o&&(l=o.some(p=>p===a.swapperGroup)),l&&a.types.map(p=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:p,selected:!e.includes(a.swapperGroup)})})}}),n}i(Po,"getUniqueSwappersGroups");function As(t,e){return t.swapperGroup<e.swapperGroup?-1:t.swapperGroup>e.swapperGroup?1:0}i(As,"sortLiquiditySourcesByGroupTitle");function We(t,e){return e?.[t]==="hidden"}i(We,"isFeatureHidden");function $o(t,e){return e?.[t]==="enabled"}i($o,"isFeatureEnabled");import{WalletState as Ke}from"@rango-dev/ui";import{readAccountAddress as qu}from"@rango-dev/wallets-react";import{detectInstallLink as zu,getCosmosExperimentalChainInfo as Gu,isEvmAddress as Hu,KEPLR_COMPATIBLE_WALLETS as eC,Networks as Ws}from"@rango-dev/wallets-shared";import gr from"bignumber.js";import{isCosmosBlockchain as Qu}from"rango-types";import Ou from"bignumber.js";var Ae=new Ou(0);import{WalletTypes as Uu}from"@rango-dev/wallets-shared";var Es=[Uu.LEAP];import{BigNumber as Is}from"bignumber.js";var Mo=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),I=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new Is(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new Is(n.toFixed(a,r)).eq(n)){s=a;break}if(n.gte(1e4))return n.toFormat(0,r);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,1))),r);if(n.gte(1))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,2))),r);if(n.gte(.01))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,4))),r);for(let a=e||4;a<17;a++)if(n.gte(Math.pow(10,-a)))return n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,a))),r);return n.isEqualTo(0)?"0":n.toFormat(Math.min(s,Math.min(o||100,Math.max(e||0,8))),r)},"numberToString");var _o=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var je=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),eo=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Do(t,e=4){let o=parseFloat(t);if(isNaN(o))return t;let n=Math.pow(10,e);return(Math.round(o*n)/n).toString()}i(Do,"limitDecimalPlaces");function hr(t){switch(!0){case t.connected:return Ke.CONNECTED;case t.connecting:return Ke.CONNECTING;case!t.installed:return Ke.NOT_INSTALLED;default:return Ke.DISCONNECTED}}i(hr,"mapStatusToWalletState");function Ls(t,e,o,n){return o.filter(r=>!Es.includes(r)).filter(r=>{let{supportedChains:s,isContractWallet:a}=e(r),{installed:l,network:p}=t(r);return a&&(!l||!!n&&p!==n)?!1:n?!!s.find(u=>u.name===n):!0}).map(r=>{let{name:s,img:a,installLink:l}=e(r),p=hr(t(r));return{title:s,image:a,link:zu(l),state:p,type:r}})}i(Ls,"mapWalletTypesToWalletInfo");function Uo(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(Uo,"walletAndSupportedChainsNames");function Ns(t,e,o,n,r){let s=[];function a(p,c){if(!!!s.find(m=>m.chain===p)){let m={address:c,chain:p,walletType:t};s.push(m)}}i(a,"addAccount");let l=n||[];return e.forEach(p=>{let{address:c,network:u}=qu(p),m=l.length>0,g=l.includes(u),f=u===Ws.Unknown;if(m&&!g&&!f)return;let y=u===Ws.Unknown&&Hu(c);if(f&&!y)return;o.includes(u)||y?r?a(u,c.toLowerCase()):l.filter(k=>o.includes(k)).forEach(k=>{a(k,c.toLowerCase())}):a(u,c)}),s}i(Ns,"prepareAccountsForWalletStore");function Bs(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain;e.includes(n)||e.push(n),e.includes(r)||e.push(r),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(s=>{let a=s.from.blockchain,l=s.to.blockchain;e.includes(a)||e.push(a),e.includes(l)||e.push(l)})}),e}i(Bs,"getRequiredChains");function qo(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(qo,"isAccountAndWalletMatched");function Ps(t,e){let{blockChain:o,balances:n=[]}=t;return n?.map(r=>({chain:o,symbol:r.asset.symbol,ticker:r.asset.symbol,address:r.asset.address||null,rawAmount:r.amount.amount,decimal:r.amount.decimals,amount:new gr(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:ju(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(Ps,"makeBalanceFor");function $s(t){return{...t,loading:!1,error:!0}}i($s,"resetConnectedWalletState");var Ms=i(t=>{let e=new Set,n=t?.reduce((s,a)=>s.findIndex(l=>l.address===a.address&&l.chain===a.chain)===-1?[...s,a]:s,[])?.map(s=>{let a={name:s.chain,accounts:[]};return e.has(s.address)||e.add(s.address),e.forEach(l=>{s.address===l&&a.accounts.push(s)}),a}),r=I(n?.flatMap(s=>s.accounts)?.flatMap(s=>s?.balances)?.map(s=>new gr(s?.amount||Ae).multipliedBy(s?.usdPrice||0))?.reduce((s,a)=>s.plus(a),Ae)||Ae).toString();return Vu(r)},"calculateWalletUsdValue");function Vu(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}i(Vu,"numberWithThousandSeparator");var ju=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice"),zo=i((t,e)=>{let o=Gu(Object.entries(t).map(([,n])=>n).filter(Qu));return o&&o[e]?.experimental},"isExperimentalChain");function Go(t){return t?{...t,amount:I(t.amount,8,8),usdValue:I(t.usdValue,4,4)}:null}i(Go,"formatBalance");function Ku(t,e){return t?.usdValue&&e?.usdValue?parseFloat(e.usdValue)-parseFloat(t.usdValue):!t?.usdValue&&e?.usdValue?1:t?.usdValue&&!e?.usdValue?-1:!t?.usdValue&&!e?.usdValue?parseFloat(e?.amount||"0")-parseFloat(t?.amount||"0"):0}i(Ku,"sortTokensByBalance");function Xu(t,e,o){let n=o(t),r=o(e);return n===r?0:n?-1:1}i(Xu,"sortTokensByPinnedToken");function _s(t,e,o){return t.sort((n,r)=>{let s=e(n),a=e(r),l=Xu(n,r,o);return l!==0?l:Ku(s,a)}),t}i(_s,"sortTokens");function Le(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(Le,"tokensAreEqual");function Ds(t){return t.sort((e,o)=>+(o.state===Ke.CONNECTED)-+(e.state===Ke.CONNECTED)||+(o.state===Ke.DISCONNECTED||o.state===Ke.CONNECTING)-+(e.state===Ke.DISCONNECTED||e.state===Ke.CONNECTING))}i(Ds,"sortWalletsBasedOnConnectionState");function Ho(t,e=8,o=3){if(t.length<2*e+o)return t;let n=t.slice(0,e),r=t.slice(-e);return`${n}${".".repeat(o)}${r}`}i(Ho,"getConciseAddress");function Fs({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Fs,"getAddress");function yr(t){return`${t.blockchain}-${t.symbol}-${t.address??""}`}i(yr,"createTokenHash");function Qo(t){return t.flatMap(e=>e.balances).reduce((e,o)=>{let n={amount:o?.amount??"",decimals:o?.decimal??0,usdValue:o?.usdPrice?new gr(o?.usdPrice??Ae).multipliedBy(o?.amount).toString():""},r=o?yr({symbol:o.symbol,blockchain:o.chain,address:o.address}):null,s=r?e[r]:null;return r&&(!s||s&&s.amount<n.amount)&&(e[r]=n),e},{})}i(Qo,"makeTokensBalance");var Os=i((t,e)=>!!t.find(o=>o.chain===e&&o.loading),"isFetchingBalance");var Us=i((t,e)=>({_blockchains:[],_tokens:[],_popularTokens:[],_swappers:[],fetchStatus:"loading",blockchains:o=>{let n=e()._blockchains;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.blockchains:r.to?.blockchains)??[];return n.filter(l=>!(s.length>0&&!s.includes(l.name)))},tokens:o=>{let n=e()._tokens;if(!o||!o?.type)return n;let r=e().config,s=(o.type==="source"?r.from?.tokens:r.to?.tokens)??[],a=e().blockchains({type:o.type});return n.filter(p=>s.length>0&&!s.some(c=>Le(c,p))||o.blockchain&&p.blockchain!==o.blockchain||!a.some(c=>c.name===p.blockchain)?!1:o.searchFor?!!(wt(p.symbol,o.searchFor)||wt(p.address||"",o.searchFor)||wt(p.name||"",o.searchFor)):!0).sort((p,c)=>e().isTokenPinned(p,o.type)?-1:e().isTokenPinned(c,o.type)||p.isSecondaryCoin?1:c.isSecondaryCoin||!p.address&&c.address?-1:p.address&&!c.address?1:0)},isTokenPinned:(o,n)=>!!(n==="source"?e().config.from?.pinnedTokens:e().config.to?.pinnedTokens)?.some(a=>Le(a,o)),swappers:()=>{let{config:{enableNewLiquiditySources:o,liquiditySources:n}}=e();return e()._swappers.filter(a=>{let l=n?.includes(a.swapperGroup);return o||!n||n.length===0?!l:l}).sort(As)},fetch:async()=>{try{let o=await $t().getAllMetadata();t({fetchStatus:"success"});let n=[],r=[],s=o.popularTokens,a=o.swappers,l=new Set;o.tokens.forEach(p=>{l.add(p.blockchain),r.push(p)}),o.blockchains.forEach(p=>{p.enabled&&l.has(p.name)&&n.push(p)}),n.sort((p,c)=>p.sort-c.sort),t({_blockchains:n,_tokens:r,_popularTokens:s,_swappers:a})}catch(o){throw t({fetchStatus:"failed"}),o}}}),"createDataSlice");import{English as Yu,French as Ju,Japanese as Zu,Spanish as Ru}from"@rango-dev/ui";var qs=[{title:"English",label:"English",local:"en",SVGFlag:Yu},{title:"Spanish",label:"Espa\xF1ol",local:"es",SVGFlag:Ru},{title:"French",label:"Fran\xE7ais",local:"fr",SVGFlag:Ju},{title:"Japanese",label:"\u65E5\u672C\u8A9E",local:"ja",SVGFlag:Zu}],_t="en";var zs=[.5,1,3],Gs=1,Hs=5,Qs=100,Vs=0;var js=i((t,e)=>({disabledLiquiditySources:[],theme:"auto",language:_t,preferredBlockchains:[],slippage:Gs,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,addPreferredBlockchain:o=>{let n=e().preferredBlockchains;if(n.find((a,l)=>{let p=a===o,c=l<=10-1;return p&&c}))return;let s=n.filter(a=>!(a===o));t(()=>({preferredBlockchains:[o,...s]}))},setSlippage:o=>t(()=>({slippage:o})),setCustomSlippage:o=>t(()=>({customSlippage:o})),setAffiliateRef:o=>t(()=>({affiliateRef:o})),setAffiliatePercent:o=>t(()=>({affiliatePercent:o})),setAffiliateWallets:o=>t(()=>({affiliateWallets:o})),toggleAllLiquiditySources:(o,n)=>t(r=>{if(n)return{disabledLiquiditySources:[]};let s=Mt(o.map(a=>a.swapperGroup));return s.length===r.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:s}}),toggleInfiniteApprove:()=>t(o=>({infiniteApprove:!o.infiniteApprove})),toggleLiquiditySource:o=>t(n=>n.disabledLiquiditySources.includes(o)?{disabledLiquiditySources:n.disabledLiquiditySources.filter(r=>r!=o)}:{disabledLiquiditySources:n.disabledLiquiditySources.concat(o)}),setTheme:o=>t(()=>({theme:o})),setLanguage:o=>t(()=>({language:o})),updateSettings:o=>{let{features:n}=o,r=We("theme",n),s=We("language",n),a=We("liquiditySource",n);t({...r&&{theme:"auto"},...s&&{language:_t},...a&&{disabledLiquiditySources:[]}})}}),"createSettingsSlice");function Ks(t){return em()(tm((...e)=>({...Us(...e),...js(...e),...Cs(t,...e)}),{name:"user-settings",skipHydration:!0,partialize:e=>({theme:e.theme,language:e.language,affiliatePercent:e.affiliatePercent,affiliateRef:e.affiliateRef,affiliateWallets:e.affiliateWallets,slippage:e.slippage,customSlippage:e.customSlippage,infiniteApprove:e.infiniteApprove,preferredBlockchains:e.preferredBlockchains,disabledLiquiditySources:e.disabledLiquiditySources})}))}i(Ks,"createAppStore");var Xs=nm(null);function d(){let t=rm(Xs);if(im(()=>{t&&!t.persist.hasHydrated()&&t.persist.rehydrate()},[]),!t)throw new Error("Missing AppStoreContext.Provider in the tree");return t()}i(d,"useAppStore");function Ys(t){let e=sm();return e.current||(e.current=Ks(t.config)),om.createElement(Xs.Provider,{value:e.current},t.children)}i(Ys,"AppStoreProvider");import gt from"bignumber.js";import{create as dm}from"zustand";import{subscribeWithSelector as fm}from"zustand/middleware";import{getLastSuccessfulStep as um}from"@rango-dev/queue-manager-rango-preset";import Sk from"bignumber.js";var mt=(r=>(r[r.HIGH_VALUE_LOSS=0]="HIGH_VALUE_LOSS",r[r.UNKNOWN_PRICE=1]="UNKNOWN_PRICE",r[r.INSUFFICIENT_SLIPPAGE=2]="INSUFFICIENT_SLIPPAGE",r[r.HIGH_SLIPPAGE=3]="HIGH_SLIPPAGE",r))(mt||{});function Js(t,e){return e.find(o=>o.name===t)?.displayName}i(Js,"getBlockchainDisplayNameFor");function Xe(t,e){return e.find(o=>o.name===t)?.shortName}i(Xe,"getBlockchainShortNameFor");function Zs(t,e){return e.find(o=>o.id===t)?.swapperGroup}i(Zs,"getSwapperDisplayName");function Cr(t,e){return e.find(o=>Le(o,t))??null}i(Cr,"findToken");function kr(t,e){return e.find(o=>o.name===t)??null}i(kr,"findBlockchain");import{i18n as De}from"@lingui/core";import ke from"bignumber.js";import{PendingSwapNetworkStatus as Xo}from"rango-types";function Vo(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(Vo,"getRequiredWallets");function jo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(jo,"isValidAddress");import{i18n as me}from"@lingui/core";var Q=i(()=>({genericServerError:me.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:me.t("Please reset your liquidity sources."),description:me.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources.")},noResultError:{title:me.t("No Routes Found."),description:me.t("Reasons why Rango couldn't find a route: low liquidity on token, very low input amount or no routes available for the selected input/output token combination.")},bridgeLimitErrors:{increaseAmount:me.t("Bridge Limit Error: Please increase your amount."),decreaseAmount:me.t("Bridge Limit Error: Please decrease your amount.")},highValueLossError:{impactTitle:me.t("High Price Impact"),title:me.t("Price impact is too high!"),description:me.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:me.t("Confirm high price impact")},quoteUpdatedWithHighValueLoss:{title:me.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:me.t("USD Price Unknown"),title:me.t("USD Price Unknown, Cannot calculate Price Impact."),description:me.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:me.t("Confirm USD Price Unknown")}}),"errorMessages");function Rs(t){switch(t.type){case 0:return t.diagnosisMessage??Q().noResultError.title;case 1:return Q().genericServerError;default:return""}}i(Rs,"getQuoteErrorMessage");import{i18n as Ko}from"@lingui/core";var xt=i(()=>({connectWallet:Ko.t("Connect Wallet"),swap:Ko.t("Swap"),swapAnyway:Ko.t("Swap anyway"),ethWarning:Ko.t("The route goes through Ethereum. Continue?")}),"swapButtonTitles");function ea(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new ke(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new ke(1e3)))??!1}i(ea,"hasHighValueLoss");function Tr(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new ke(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ke(e.fromAmountMaxValue):null;return e.fromAmountRestrictionType==="EXCLUSIVE"?o?.gte(e.fromAmount)||n?.lte(e.fromAmount):o?.gt(e.fromAmount)||n?.lt(e.fromAmount)}).length>0}i(Tr,"hasLimitError");function wr(t){let e=(t.result?.swaps||[]).filter(l=>{let p=l.fromAmountMinValue?new ke(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new ke(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?p?.gte(l.fromAmount)||c?.lte(l.fromAmount):p?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0],o=e.fromAmountMinValue?new ke(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ke(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",s="",a="";return!r&&o&&o.gt(e.fromAmount)?(s=De.t({id:"Required: >= {min} {symbol}",values:{min:I(o,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=De.t({id:"Required: > {min} {symbol}",values:{min:I(o,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=De.t({id:"Required: <= {max} {symbol}",values:{max:I(n,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=De.t({id:"Required: < {max} {symbol}",values:{max:I(n,6,6),symbol:e.from.symbol}}),a=Q().bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:s,recommendation:a}}i(wr,"getLimitErrorMessage");function ta(t){let{fetchMetaStatus:e,anyWalletConnected:o,fetchingQuote:n,inputAmount:r,quote:s,warning:a,error:l,needsToWarnEthOnPath:p}=t;return e!=="success"?{title:xt().connectWallet,action:"connect-wallet",disabled:!0}:o?n||!s||!s.result||l||!r||r==="0"?{title:xt().swap,action:"confirm-swap",disabled:!0}:a?{title:xt().swapAnyway,action:"confirm-warning",disabled:!1}:p?{title:xt().ethWarning,action:"confirm-warning",disabled:!1}:{title:xt().swap,action:"confirm-swap",disabled:!1}:{title:xt().connectWallet,action:"connect-wallet",disabled:!1}}i(ta,"getSwapButtonState");function xr(t,e,o){return!((!o||o.lte(Ae))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(xr,"canComputePriceImpact");function am(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,r=o.to.blockchain,s=e[e.length-1];n!=s&&e.push(n),s=e[e.length-1],r!=s&&e.push(r)}),e}i(am,"requiredWallets");var lm=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function pm(t,e){let o=Ae;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=lm(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new ke(r.amount).multipliedBy(s||0))}return o}i(pm,"getUsdFeeOfStep");function Yo(t,e){return t.reduce((o,n)=>o.plus(pm(n,e)),Ae)}i(Yo,"getTotalFeeInUsd");function vr(t){let e=new Map;return t.result?.swaps.forEach((o,n)=>{o.recommendedSlippage?.error&&e.set(n,o.recommendedSlippage.slippage)}),e.size>0?e:null}i(vr,"checkSlippageErrors");function oa(t,e){let o=new Map;return t.result?.swaps.forEach((n,r)=>{n.recommendedSlippage?.slippage&&parseFloat(n.recommendedSlippage.slippage)>e&&o.set(r,n.recommendedSlippage.slippage)}),o.size>0?o:null}i(oa,"checkSlippageWarnings");function Jo(t){return t.result?.swaps.map(o=>o.recommendedSlippage)?.map(o=>o?.slippage||"0")?.filter(o=>parseFloat(o)>0)?.sort((o,n)=>parseFloat(n)-parseFloat(o))?.find(()=>!0)||null}i(Jo,"getMinRequiredSlippage");function na(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(na,"hasProperSlippage");function Zo(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,liquiditySources:l,excludeLiquiditySources:p,slippage:c,affiliateRef:u,affiliatePercent:m,affiliateWallets:g,initialQuote:f,destination:C}=t,y=s?.reduce((x,w)=>(x[w.chain]=w.address,x),{}),h=[];r?.forEach(x=>{let w=h.find(A=>A.blockchain===x.chain);w?w.addresses.push(x.address):h.push({blockchain:x.chain,addresses:[x.address]})});let b=!!f,k=Mt((f?.result?.swaps||[]).reduce((x,w)=>(x.push(w.from.blockchain,w.to.blockchain),w.internalSwaps&&Array.isArray(w.internalSwaps)&&w.internalSwaps.map(A=>{x.push(A.from.blockchain,A.to.blockchain)}),x),[]));return{amount:n.toString(),affiliateRef:u??void 0,affiliatePercent:m??void 0,affiliateWallets:g??void 0,checkPrerequisites:b,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:h,selectedWallets:y??{},slippage:c.toString(),...C&&{destination:C},...p&&{swapperGroups:a.concat(l??[]),swappersGroupsExclude:!0},...!p&&{swapperGroups:l?.filter(x=>!a.includes(x)),swappersGroupsExclude:!1},...b&&{blockchains:k}}}i(Zo,"createQuoteRequestBody");function ra(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(ra,"getWalletsForNewSwap");function Dt(t){return t.result?.outputAmount||null}i(Dt,"getQuoteOutputAmount");function ia(t,e){return new ke(e).div(new ke(t)).minus(1).multipliedBy(100).toNumber()}i(ia,"getPercentageChange");function sa(t,e){let o=Dt(t),n=Dt(e);if(!o||!n)return!1;let r=Ne(o,n);return r?r<=-1:!0}i(sa,"isOutputAmountChangedALot");function aa(t,e,o){let n=t.validationStatus,r=Bs(t);return e.sort((a,l)=>r.indexOf(a.chain)-r.indexOf(l.chain)).flatMap(a=>da(a,n)||[]).filter(a=>!a.ok).map(a=>{let l=a.asset.symbol,p=I(new ke(a.currentAmount.amount).shiftedBy(-a.currentAmount.decimals),8,8),c=I(new ke(a.requiredAmount.amount).shiftedBy(-a.requiredAmount.decimals),8,8),u="";return a.reason==="FEE"&&(u=De.t(" for network fee")),a.reason==="INPUT_ASSET"&&(u=De.t(" for swap")),a.reason==="FEE_AND_INPUT_ASSET"&&(u=De.t(" for input and network fee")),De.t({id:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:c,symbol:l,reason:u,currentAmount:p,blockchain:Xe(a.asset.blockchain,o)}})})}i(aa,"generateBalanceWarnings");function la(t,e){return(t?new ke(t):Ae).multipliedBy(e||0)}i(la,"calcOutputUsdValue");function to(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==Xo.NetworkChanged}i(to,"isNetworkStatusInWarningState");function pa(t,e){let o="bellow button or",n=t.extraMessage,r=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),to(e))switch(n=t.networkStatusExtraMessage||"",r=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case Xo.WaitingForConnectingWallet:n=n||De.t("Waiting for connecting wallet");break;case Xo.WaitingForQueue:n=n||De.t("Waiting for other running tasks to be finished");break;case Xo.WaitingForNetworkChange:n=n||De.t("Waiting for changing wallet network");break;default:n=n||"";break}r=r||"",n=n||"";let a=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:r,long:a}}}i(pa,"getSwapMessages");function ca(t){let e=null;if(t.status==="failed"){let o=t.steps.slice().reverse().filter(n=>n.status==="success")[0];o&&(e={blockchain:o.toBlockchain,symbol:o.toSymbol,outputAmount:o.outputAmount,address:o.toSymbolAddress})}return e}i(ca,"getLastConvertedTokenInFailedSwap");function ua(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(ua,"shouldRetrySwap");function ma(t,e,o,n,r,s){return t||!e&&!am(n).every(a=>r.map(l=>l.chain).includes(a))||!!e&&!o||!!e&&!!o&&s&&!jo(s,o)}i(ma,"confirmSwapDisabled");function br(t,e,o){return o&&t.find(n=>{let r=e?.split("--");return r?.length===1?n.symbol===r[0]&&n.address===null&&n.blockchain===o.name:n.symbol===r?.[0]&&n.address===r?.[1]&&n.blockchain===o.name})||null}i(br,"searchParamsToToken");function ga(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(ga,"getQuoteToTokenUsdPrice");function Ar(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Ar,"isNumberOfSwapsChanged");function Er(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!fr(o,n)}i(Er,"isQuoteSwappersUpdated");function Ir(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!fr(o,n)}i(Ir,"isQuoteInternalCoinsUpdated");function ha(t,e){return Ar(t,e)||Er(t,e)||Ir(t,e)}i(ha,"isQuoteChanged");function da(t,e){if(e===null)return null;let o=e?.find(n=>n.blockchain===t.chain)?.wallets.find(n=>n.address?.toLowerCase()===t.address.toLowerCase());return o?o.requiredAssets:null}i(da,"getRequiredBalanceOfWallet");function it(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(it,"getPriceImpactLevel");function ya(t,e,o){let n=t.steps[0],r=t.steps[t.steps.length-1],s=um(t.steps),a={blockchain:r.toBlockchain,symbol:r.toSymbol,address:r.toSymbolAddress},l=kr(s?s.toBlockchain:n.fromBlockchain,e),p=kr(r.toBlockchain,e),c=Cr(s?{blockchain:l?.name??"",symbol:s.toSymbol,address:s.toSymbolAddress}:{blockchain:l?.name??"",symbol:n.fromSymbol,address:n.fromSymbolAddress},o),u=Cr(a,o),m=s?s.outputAmount??"":t.inputAmount;return{fromBlockchain:l,fromToken:c,toBlockchain:p,toToken:u,inputAmount:m}}i(ya,"createRetryQuote");function Ro(t,e){let{fromToken:o,toToken:n,tokens:r,userSlippage:s}=e,a=vt(o,t.requestAmount),l=vt(n,t.result?.outputAmount??"");if(t.result&&a&&l){let u=Ne(a.toString(),l.toString());if(!!u&&ea(a,u)){let g=Yo(t.result.swaps,r),f=it(u);return{type:0,inputUsdValue:a,outputUsdValue:l,priceImpact:u,totalFee:g,warningLevel:f}}}else if(t.result&&(!a||!l))return{type:1};let p=Jo(t),c=s>Hs;if(na(e.userSlippage.toString(),p)){if(c&&parseFloat(p??"0")<s)return{type:3,slippage:s.toString()}}else return{type:2,recommendedSlippages:oa(t,s),minRequiredSlippage:p};return null}i(Ro,"generateQuoteWarnings");function Ne(t,e){let o=typeof e=="string"?parseFloat(e)<=0:!e?.gt(0),n=!t||!e||o?null:ia(t.toString(),e.toString());return n&&n<0?n:null}i(Ne,"getPriceImpact");var mm=i(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),ft=mm;var vt=i((t,e)=>t?.usdPrice?new gt(e||Ae).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),O=ft(dm()(fm(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new gt(0),outputUsdValue:new gt(0),toBlockchain:null,toToken:null,quote:null,quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:"",quoteWarningsConfirmed:!1,setQuote:e=>t(o=>{let n=null,r=Ae;return eo(o.inputAmount)?(e&&(n=e.result?.outputAmount?new gt(e.result?.outputAmount):null,r=la(e.result?.outputAmount,ga(e)||o.toToken?.usdPrice)),{quote:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetQuote:()=>t(()=>({quote:null,outputAmount:null,outputUsdValue:new gt(0)})),setFromBlockchain:e=>{t(o=>o.fromBlockchain?.name===e?.name?{}:{fromBlockchain:e,...o.fromToken&&{quote:null,fromToken:null,outputAmount:null,outputUsdValue:null}})},setFromToken:e=>t(o=>({fromToken:e.token,...e.token&&{fromBlockchain:e.meta.blockchains.find(n=>n.name===e.token.blockchain)??null},...!!o.inputAmount&&{inputUsdValue:vt(e.token,o.inputAmount)}})),setToBlockchain:e=>{t(o=>o.toBlockchain?.name===e?.name?{}:{toBlockchain:e,...o.toToken&&{quote:null,toToken:null,outputAmount:null,outputUsdValue:null}})},setToToken:e=>t(()=>({toToken:e.token,...e.token&&{toBlockchain:e.meta.blockchains.find(o=>o.name===e.token.blockchain)??null}})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new gt(0),outputUsdValue:new gt(0),quote:null},...!!o.fromToken&&{inputUsdValue:vt(o.fromToken,e)}}))},retry:(e,o)=>{let{tokens:n,blockchains:r}=o,{fromBlockchain:s,fromToken:a,toBlockchain:l,toToken:p,inputAmount:c}=ya(e,r,n);t({fromBlockchain:s,fromToken:a,inputAmount:c,outputAmount:null,inputUsdValue:vt(a??null,c),outputUsdValue:new gt(0),toBlockchain:l,toToken:p,quote:null})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:vt(e.toToken,e.outputAmount?.toString()||"")})),resetFromBlockchain:()=>t(()=>({fromToken:null,fromBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),resetToBlockchain:()=>t(()=>({toToken:null,toBlockchain:null,outputAmount:null,outputUsdValue:null,quote:null})),setQuoteWalletConfirmed:e=>t({quoteWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetQuoteWallets:()=>t({quoteWalletsConfirmed:!1,selectedWallets:[],customDestination:""}),setQuoteWarningsConfirmed:e=>t({quoteWarningsConfirmed:e})}))));function Ca(){let{setInputAmount:t,setToToken:e,setToBlockchain:o,setFromBlockchain:n,setFromToken:r,fromToken:s,toToken:a,fromBlockchain:l,toBlockchain:p}=O(),c=d().config,u=d().fetchStatus,m=d().blockchains(),g=d().tokens(),{setAffiliateRef:f,setAffiliatePercent:C,setAffiliateWallets:y}=d(),h=tn(()=>c?.from?.tokens,[c?.from?.tokens]),b=tn(()=>c?.from?.blockchains,[c?.from?.blockchains]),k=tn(()=>c?.to?.tokens,[c?.to?.tokens]),T=tn(()=>c?.to?.blockchains,[c?.to?.blockchains]),x=on(void 0),w=on(void 0),A=on(void 0),L=on(void 0);en(()=>{t(c?.amount?.toString()||"")},[c?.amount]),Sa(()=>{if(u==="success"){let S=m.find($=>$.name===c?.from?.blockchain),P=g.find($=>Le($,c?.from?.token||null));(S||!S&&A.current)&&n(S??null),P?r({token:P,meta:{blockchains:m,tokens:g}}):!P&&x.current&&r({token:null}),A.current=c?.from?.blockchain,x.current=c?.from?.token}},[c?.from?.token?.symbol,c?.from?.token?.address,c?.from?.token?.blockchain,c?.from?.blockchain,u]),en(()=>{s&&h&&(h.some(S=>Le(S,s))||r({token:null})),l&&b&&(b.includes(l.name)||n(null))},[h,b]),en(()=>{a&&k&&(k.some(S=>Le(S,a))||e({token:null})),p&&T&&(T.includes(p.name)||o(null))},[k,T]),Sa(()=>{if(u==="success"){let S=m.find($=>$.name===c?.to?.blockchain),P=g.find($=>Le($,c?.to?.token||null));(S||!S&&L.current)&&o(S??null),P?e({token:P,meta:{blockchains:m,tokens:g}}):!P&&w.current&&e({token:null}),L.current=c?.to?.blockchain,w.current=c?.to?.token}},[c?.to?.token?.symbol,c?.to?.token?.address,c?.to?.token?.blockchain,c?.to?.blockchain,u]),en(()=>{f(c?.affiliate?.ref??null),C(c?.affiliate?.percent??null),y(c?.affiliate?.wallets??null)},[c?.affiliate?.ref,c?.affiliate?.percent,c?.affiliate?.wallets])}i(Ca,"useSyncStoresWithConfig");import{useEffect as Sm}from"react";import{create as gm}from"zustand";import{subscribeWithSelector as hm}from"zustand/middleware";var z=ft(gm()(hm((t,e)=>({connectedWallets:[],balances:{},customDestination:"",loading:!1,connectWallet:(o,n)=>{let r=e().getWalletsDetails;t(s=>({loading:!0,connectedWallets:s.connectedWallets.filter(a=>a.walletType!==o[0].walletType).concat(o.map(a=>{let l=!s.connectedWallets.find(p=>p.chain===a.chain&&p.selected);return{balances:[],address:a.address,chain:a.chain,explorerUrl:null,walletType:a.walletType,selected:l,loading:!0,error:!1}}))})),r(o,n)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(l=>l.selected&&l.walletType!==o).map(l=>l.chain),s=n.connectedWallets.filter(l=>l.walletType!==o).map(l=>r.includes(l.chain)?l:(r.push(l.chain),{...l,selected:!0}));return{balances:Qo(s),connectedWallets:s}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let s=!!o.find(l=>l.chain===r.chain&&l.walletType!==r.walletType&&r.selected),a=!!o.find(l=>l.chain===r.chain&&l.walletType===r.walletType&&!r.selected);return s?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n,r=!0)=>{let s=e().getWalletsDetails;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(l=>o.find(p=>qo(p,l))?{...l,loading:!0}:l)}));try{let a=o.map(({address:c,chain:u})=>({address:c,blockchain:u})),p=(await $t().getWalletsDetails(a)).wallets;if(p)t(c=>{let u=c.connectedWallets.map(g=>{let f=o.find(y=>qo(y,g)),C=p.find(y=>y.address===g.address&&y.blockChain===g.chain);return C?.failed&&f&&r&&s([f],n,!1),f&&C?{...g,explorerUrl:C.explorerUrl,balances:Ps(C,n),loading:!1}:g});return{loading:!1,balances:Qo(u),connectedWallets:u}});else throw new Error("Wallet not found")}catch{t(l=>{let p=l.connectedWallets.map(u=>o.find(m=>qo(m,u))?$s(u):u);return{loading:!1,balances:Qo(p),connectedWallets:p}})}},getBalanceFor:o=>{let{balances:n}=e(),r=yr(o);return n[r]??null}}))));import{allProviders as ym}from"@rango-dev/provider-all";function nn(t,e){let o=ym({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(r=>{if(typeof r=="string"){let s=o.find(a=>a.config.type===r);s?n.push(s):console.warn(`Couldn't find ${r} provider. Please make sure you are passing the correct name.`)}else n.push(r)}),n}return o}i(nn,"matchAndGenerateProviders");function ka(t,e){return nn(t,e).map(r=>r.config.type)}i(ka,"configWalletsToWalletName");function Ta(t,e){let o=z.use.clearConnectedWallet(),n=nn(void 0,e);return Sm(()=>{o(),n=nn(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t?.length]),{providers:n}}i(Ta,"useWalletProviders");var sn=Tm({onConnectWallet:()=>{}});function xm(t){let{updateConfig:e,updateSettings:o,fetch:n}=d(),r=d().blockchains(),s=d().tokens(),a={walletConnectProjectId:t.config?.walletConnectProjectId},{providers:l}=Ta(t.config.wallets,a),{connectWallet:p,disconnectWallet:c}=z(),u=wm();Ca(),wa(()=>{n().catch(console.log)},[]),wa(()=>{t.config&&(e(t.config),o(t.config))},[t.config]);let m=r.filter(km).map(f=>f.name),g=i((f,C,y,h,b)=>{if(C===Wr.ACCOUNTS)if(y){let k=Uo(b.supportedBlockchains),T=Ns(f,y,m,k,b.isContractWallet);p(T,s)}else c(f);if(C===Wr.ACCOUNTS&&h.connected){let k=`${f}-${h.network}-${y}`;h.connected&&(u.current?u.current(k):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(C===Wr.NETWORK&&h.network){let k=`${f}-${h.network}`;u.current?u.current(k):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(f,C,y,h,b)},"onUpdateState");return rn.createElement(sn.Provider,{value:{onConnectWallet:f=>{u.current=f}}},rn.createElement(Cm,{allBlockChains:r,providers:l,onUpdateState:g,autoConnect:!0},t.children))}i(xm,"Main");function an(t){let{config:e,...o}=t;return rn.createElement(Ys,{config:e},rn.createElement(xm,{...o,config:e}))}i(an,"WidgetWallets");import Ss from"react";import{I18nManager as aS}from"@rango-dev/ui";import Wo,{useContext as lS,useEffect as Nu,useState as Bu}from"react";import{useQueueManager as Bm}from"@rango-dev/queue-manager-rango-preset";import{useWallets as Pm}from"@rango-dev/wallets-react";import{isEvmBlockchain as $m}from"rango-types";import ln,{Fragment as Mm}from"react";import{MemoryRouter as _m,useInRouterContext as Dm}from"react-router";import{useWallets as bm}from"@rango-dev/wallets-react";import{useEffect as Am,useRef as Em}from"react";function xa(){let{connect:t,state:e}=bm(),o=Em({}),{fetchStatus:n}=d(),r=new URLSearchParams(location.search).get("autoConnect")||"",s=e(r);Am(()=>{n==="success"&&r&&s.installed&&!s.connecting&&!s.connected&&!o.current[r]&&(o.current[r]=!0,t(r))},[s,n])}i(xa,"useForceAutoConnect");import{useEffect as Lr,useRef as Nr}from"react";import{createSearchParams as Wm,useLocation as Lm,useSearchParams as Nm}from"react-router-dom";var M={home:"/",fromSwap:"from-swap",toSwap:"to-swap",blockchains:"blockchains",settings:"settings",liquiditySources:"liquidity-sources",themes:"themes",bridges:"bridges",exchanges:"exchanges",languages:"languages",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:":requestId"};import{create as Im}from"zustand";var Te=ft(Im()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function va(){let t=Nr(!0),[e,o]=Nm(),n=Lm(),r=Nr(n.search),s=Nr({}),a=O.use.fromBlockchain(),l=O.use.toBlockchain(),p=O.use.fromToken(),c=O.use.toToken(),u=O.use.setFromBlockchain(),m=O.use.setFromToken(),g=O.use.setToBlockchain(),f=O.use.setToToken(),C=O.use.inputAmount(),y=O.use.setInputAmount(),h=d().fetchStatus,b=d().blockchains(),k=d().tokens(),T=Te.use.setSelectedSwap();return Lr(()=>{let x={};Wm(r.current).forEach((A,L)=>{x[L]=A}),s.current=x;let w=n.pathname.split(M.swaps+"/")[1]||null;w&&T(w)},[]),Lr(()=>{if(!t.current){let x="",w="",A="",L="",S="",P=s.current["autoConnect"];h!=="success"?(x=s.current["fromBlockchain"],w=s.current["fromToken"],A=s.current["toBlockchain"],L=s.current["toToken"],S=s.current["fromAmount"]||C):(x=a?.name||"",w=(p?.symbol||"")+(p?.address?`--${p?.address}`:""),A=l?.name||"",L=(c?.symbol||"")+(c?.address?`--${c?.address}`:""),S=C),o({...x&&{["fromBlockchain"]:x},...w&&{["fromToken"]:w},...A&&{["toBlockchain"]:A},...L&&{["toToken"]:L},...S&&{["fromAmount"]:S.toString()},...P&&{["autoConnect"]:P}},{replace:!0})}t.current=!1},[n.pathname,C,a,p,l,c]),Lr(()=>{if(h==="success"){let x=e.get("fromBlockchain"),w=e.get("fromToken"),A=e.get("toBlockchain"),L=e.get("toToken"),S=e.get("fromAmount"),P=b.find(_=>_.name===x),$=br(k,w,P||null),N=b.find(_=>_.name===A),v=br(k,L,N||null);P&&(u(P),$&&m({token:$,meta:{blockchains:b,tokens:k}})),N&&(g(N),v&&f({token:v,meta:{blockchains:b,tokens:k}})),S&&y(S)}},[h]),null}i(va,"UpdateUrl");function ba({children:t,...e}){let o=Dm(),n=o?Mm:_m,r=d().blockchains(),{canSwitchNetworkTo:s}=Pm();xa();let a=r.filter($m);return Bm({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:s}),ln.createElement(ln.Fragment,null,ln.createElement(n,null,t),o&&ln.createElement(va,null))}i(ba,"AppRouter");import ve from"react";import{useRoutes as Ky}from"react-router-dom";import{i18n as Nn}from"@lingui/core";import{useManager as Xf}from"@rango-dev/queue-manager-react";import{Alert as Np,Button as Bp,css as ci,Divider as Yf,IconButton as Pp,RefreshIcon as Jf,SettingsIcon as Zf,styled as $p,Tooltip as Rf,Typography as eg,WalletIcon as tg}from"@rango-dev/ui";import ee,{useEffect as ho,useLayoutEffect as og,useRef as ng,useState as Bn}from"react";import{flushSync as rg}from"react-dom";import{useNavigate as ig}from"react-router-dom";import{i18n as st}from"@lingui/core";import{Alert as Qr,BalanceErrors as Kd,Button as Tl,ChevronDownIcon as Xd,ChevronLeftIcon as Yd,Divider as zt,MessageBox as Jd,Modal as wl,Typography as wn,WalletIcon as Zd}from"@rango-dev/ui";import W,{useEffect as Rd,useLayoutEffect as ef,useRef as tf,useState as Et}from"react";import{useNavigate as of}from"react-router-dom";import{i18n as pn}from"@lingui/core";function cn(t){switch(t.type){case 0:return pn.t("Route has been updated.");case 3:return pn.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return pn.t("Route swappers has been updated.");case 2:return pn.t("Route internal coins has been updated.");default:return""}}i(cn,"getQuoteUpdateWarningMessage");import*as Ot from"@radix-ui/react-collapsible";import{Button as Om,css as Aa,darkTheme as Ft,IconButton as Um,keyframes as Ea,styled as de,TextField as qm}from"@rango-dev/ui";var oo=300,zm=Ea({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),Gm=Ea({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),Ia=de("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),Wa=de("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),Hm=de("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Ft} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${Ft} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${Ft} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),La=de(Hm,{alignSelf:"stretch",minHeight:"93px"}),Na=de(Ot.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),Ba=de("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),Pa=de(Um,{position:"absolute",left:"$20"}),$a=de("div",{paddingTop:"$20"}),Ma=Aa({display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),_a=de(Ot.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Da=de(Om,{width:"100%",borderRadius:"$sm !important",padding:"$15 !important",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Ft} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color","&:hover":{$$color:"$colors$info100",[`.${Ft} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${Ft} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}}),Fa=de("div",{padding:"$10 $0","& .button__content":{display:"flex",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),Oa=Aa({paddingTop:"5px"}),Ua=de("div",{transition:`all ${oo}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),qa=de("div",{display:"flex"}),za=de(qm,{backgroundColor:"$neutral100",padding:"$0 $15 $15 $15"}),un=de(Ot.Content,{backgroundColor:"$neutral100",overflow:"hidden",variants:{open:{true:{animation:`${zm} ${oo}ms ease-out`},false:{animation:`${Gm} ${oo}ms ease-out`}}}}),Ga=de("div",{overflow:"visible",width:"100%"});import{i18n as Ue}from"@lingui/core";import{Button as Qd,Divider as Gr,Image as Vd,MessageBox as Tn,Modal as hl,SelectableWallet as jd,Typography as yl,WalletState as Sl}from"@rango-dev/ui";import R,{useEffect as Cl,useState as ro}from"react";import{WalletState as Ha}from"@rango-dev/ui";import{useWallets as Qm}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as Vm,WalletTypes as jm}from"@rango-dev/wallets-shared";import{useEffect as Km,useState as Xm}from"react";var Ym=Object.values(jm);function mn(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:s,disconnect:a,getWalletInfo:l,connect:p}=Qm(),{connectedWallets:c}=z(),u=d().blockchains(),m=ka(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||Ym,g=Ls(s,l,m,o),f=Ds(g),[C,y]=Xm(""),h=i(x=>!c.find(w=>w.walletType===x&&w.chain===o),"isExperimentalChainNotAdded"),b=i(async x=>{let w=s(x);try{if(C&&y(""),w.connected)await a(x);else{let A=!!g.find(L=>L.state===Ha.CONNECTED);if(!e?.multiWallets&&A)return;n?.(x),await p(x),r?.(x)}}catch(A){y("Error: "+A?.message)}},"handleClick"),k=i(()=>{let x=g?.filter(w=>w.state===Ha.CONNECTING)||[];for(let w of x)a(w.type)},"disconnectConnectingWallets");Km(()=>()=>{k()},[]);let T=i((x,w,A)=>zo(A,w)&&h(x)&&!Vm.includes(x),"shouldExcludeWallet");return{list:f.filter(x=>!T(x.type,o??"",u)),error:C,handleClick:b}}i(mn,"useWalletList");import{i18n as pl}from"@lingui/core";import{styled as ul,Typography as Dd,Wallet as Fd,WalletState as Od}from"@rango-dev/ui";import At,{Fragment as Ud,useState as cl}from"react";import{BottomLogo as Ed,Divider as Id,Header as Wd}from"@rango-dev/ui";import fe from"react";import{useNavigate as Jm}from"react-router-dom";function ht(){let t=Jm();return()=>t(-1)}i(ht,"useNavigateBack");import{ChevronLeftIcon as ed}from"@rango-dev/ui";import ja from"react";import{darkTheme as Zm,IconButton as Rm,styled as dn}from"@rango-dev/ui";var Fe=dn(Rm,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),Qa=dn("div",{position:"absolute",background:"$secondary500",[`.${Zm} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),Ut=dn("div",{display:"flex",justifyContent:"flex-end",width:"$40"}),Va=dn("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"});function Br(t){return ja.createElement(Fe,{variant:"ghost",size:"small",onClick:t.onClick},ja.createElement(ed,{color:"black",size:16}))}i(Br,"BackButton");import{i18n as td}from"@lingui/core";import{Button as od,Typography as nd}from"@rango-dev/ui";import Pr from"react";function $r(t){return Pr.createElement(Ut,null,Pr.createElement(od,{variant:"ghost",onClick:t.onClick,size:"xsmall"},Pr.createElement(nd,{variant:"label",size:"medium",color:"error500"},td.t("Cancel"))))}i($r,"CancelButton");import{i18n as rd}from"@lingui/core";import{Tooltip as id,WalletIcon as sd}from"@rango-dev/ui";import fn from"react";function Mr(t){return fn.createElement(id,{container:t.container,side:"top",content:rd.t("Connect Wallet")},fn.createElement(Fe,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&fn.createElement(Qa,null),fn.createElement(sd,{size:18,color:"black"})))}i(Mr,"WalletButton");import{i18n as yn}from"@lingui/core";import{NotificationsIcon as Td,Popover as wd,RefreshIcon as xd,SettingsIcon as vd,Tooltip as Sn,TransactionIcon as bd}from"@rango-dev/ui";import ce from"react";import{i18n as fd}from"@lingui/core";import{ChainToken as Ra,ChevronRightIcon as gd,ListItemButton as hd,Typography as yd}from"@rango-dev/ui";import Oe from"react";import{useNavigate as Sd}from"react-router-dom";import{create as ad}from"zustand";import{persist as ld,subscribeWithSelector as pd}from"zustand/middleware";var Be=ft(ad()(ld(pd((t,e)=>({notifications:[],setNotification:(o,n)=>{let r=n.steps[0],s=n.steps[n.steps.length-1],a={event:o,creationTime:Date.now(),read:!1,requestId:n.requestId,route:{from:{blockchain:r.fromBlockchain,tokenAddress:r.fromSymbolAddress,tokenSymbol:r.fromSymbol},to:{blockchain:s.toBlockchain,tokenSymbol:s.toSymbol,tokenAddress:s.toSymbolAddress}}},l=e().notifications.filter(p=>p.requestId!==n.requestId);t(()=>({notifications:[...l,a]}))},setAsRead:o=>{t(n=>({notifications:n.notifications.map(r=>r.requestId===o?{...r,read:!0}:r)}))},getUnreadNotifications:()=>e().notifications.filter(o=>!o.read)})),{name:"notification",skipHydration:!0})));import{styled as gn}from"@rango-dev/ui";var Ka=gn("div",{padding:"$10",width:"350px",minHeight:"150px"}),Xa=gn("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),Ya=gn("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),Ja=gn("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as cd}from"@lingui/core";import{Divider as ud,NoNotificationIcon as md,Typography as dd}from"@rango-dev/ui";import hn from"react";function Za(){return hn.createElement(Ja,null,hn.createElement(md,{color:"secondary",size:26}),hn.createElement(ud,{size:12}),hn.createElement(dd,{variant:"body",size:"medium",color:"neutral700"},cd.t("You have no notification")))}i(Za,"NotificationNotFound");var Cd=4;function _r(){let t=Sd(),e=Te.use.setSelectedSwap(),{getUnreadNotifications:o}=Be(),n=o(),r=d().blockchains(),s=d().tokens(),a=n.sort((p,c)=>c.creationTime-p.creationTime).slice(0,Cd),l=i(p=>{e(p),t(`${M.swaps}/${p}`)},"handleOnClick");return Oe.createElement(Ka,null,a.length?Oe.createElement(Xa,null,a.map(p=>{let c=s.find(f=>f.address===p.route.from.tokenAddress&&f.blockchain===p.route.from.blockchain&&f.symbol===p.route.from.tokenSymbol),u=r.find(f=>f.name===p.route.from.blockchain),m=s.find(f=>f.address===p.route.to.tokenAddress&&f.blockchain===p.route.to.blockchain&&f.symbol===p.route.to.tokenSymbol),g=r.find(f=>f.name===p.route.to.blockchain);return Oe.createElement(hd,{key:p.requestId,onClick:()=>l(p.requestId),title:Oe.createElement(yd,{variant:"body",size:"small",color:"$neutral700"},fd.t(p.event.message)),id:p.requestId,start:Oe.createElement(Ya,null,Oe.createElement("div",{className:"from-chain-token"},Oe.createElement(Ra,{tokenImage:c?c.image:"",chainImage:u?u.logo:"",size:"small"})),Oe.createElement("div",{className:"to-chain-token"},Oe.createElement(Ra,{tokenImage:m?m.image:"",chainImage:g?g.logo:"",size:"small"}))),end:Oe.createElement(gd,{size:12,color:"gray"})})})):Oe.createElement(Za,null))}i(_r,"NotificationContent");import{Typography as kd}from"@rango-dev/ui";import el from"react";function tl(){let{getUnreadNotifications:t}=Be(),e=t().length;return e?el.createElement(Va,null,el.createElement(kd,{variant:"body",size:"xsmall",color:"$background"},e)):null}i(tl,"UnreadNotificationsBadge");function Dr(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r,onClickNotifications:s}=t,{config:{features:a}}=d(),l=We("notification",a);return ce.createElement(ce.Fragment,null,ce.createElement(Sn,{container:j(),side:"top",content:yn.t("Refresh")},ce.createElement(Fe,{variant:"ghost",size:"small",onClick:o,disabled:!o},ce.createElement(xd,{size:16,color:o?"black":"gray"}))),!l&&ce.createElement(Sn,{container:j(),side:"top",content:yn.t("Notifications")},ce.createElement(wd,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:j(),content:ce.createElement(_r,null)},ce.createElement(Fe,{size:"small",variant:"ghost",onClick:s},ce.createElement(Td,{size:18,color:"black"}),ce.createElement(tl,null)))),ce.createElement(Sn,{container:j(),side:"top",content:yn.t("Settings")},ce.createElement(Fe,{size:"small",variant:"ghost",onClick:r},ce.createElement(vd,{size:18,color:"black"}))),ce.createElement(Sn,{container:j(),side:"top",content:yn.t("Transactions History")},ce.createElement(Fe,{size:"small",variant:"ghost",onClick:n},ce.createElement(bd,{size:18,color:"black"}))))}i(Dr,"HomeButtons");import{darkTheme as Ad,styled as Fr}from"@rango-dev/ui";var ol=Fr("div",{position:"relative",display:"flex",flexDirection:"column",borderRadius:"$primary",overflow:"hidden !important",boxShadow:"15px 15px 15px 0px rgba(0, 0, 0, 0.05)",width:"95vw",minWidth:"300px",maxWidth:"390px",maxHeight:"700px",textAlign:"left",$$color:"$colors$neutral100",[`.${Ad} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",variants:{fixedHeight:{true:{height:"95vh"},false:{height:"auto"}}}}),nl=Fr("div",{borderTopLeftRadius:"20px",borderTopRightRadius:"20px",display:"flex",flexDirection:"column",flex:1,padding:"$20 $20 $10 $20",backgroundColor:"$background",position:"relative",overflowY:"auto",overflowX:"hidden",variants:{noPadding:{true:{padding:"0"}}}}),rl=Fr("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function Ld(t,e){let{children:o,header:n,footer:r,noPadding:s,hasLogo:a=!0,fixedHeight:l=!0}=t,p=z.use.connectedWallets(),{config:{features:c}}=d(),u=We("connectWalletButton",c),m=Te.use.connectWalletsButtonDisabled(),g=ht(),f=i(()=>{!m&&n.onWallet&&n.onWallet()},"onConnectWallet"),C=typeof n.hasBackButton>"u"||n.hasBackButton;return fe.createElement(ol,{ref:e,fixedHeight:l,id:"swap-box"},fe.createElement(Wd,{prefix:fe.createElement(fe.Fragment,null,C&&fe.createElement(Br,{onClick:g})),title:n.title,suffix:fe.createElement(fe.Fragment,null,n.suffix,n.onWallet&&!u&&fe.createElement(Mr,{container:j(),onClick:f,isConnected:!!p?.length}),n.onCancel&&fe.createElement($r,{onClick:n.onCancel}))}),fe.createElement(nl,{noPadding:s},o),(a||r)&&fe.createElement(rl,null,fe.createElement("div",{className:"footer__content"},r),a&&fe.createElement("div",{className:"footer__logo"},fe.createElement(Id,{size:12}),fe.createElement(Ed,null))))}i(Ld,"LayoutComponent");var K=fe.forwardRef(Ld);K.displayName="Layout";import{Divider as Md,Modal as _d}from"@rango-dev/ui";import Ur from"react";import{i18n as qt}from"@lingui/core";import{Image as Pd,MessageBox as Or,WalletState as $d}from"@rango-dev/ui";import bt from"react";import{keyframes as Nd,styled as Cn}from"@rango-dev/ui";var Hx=Cn("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),il=Cn("div",{position:"relative"}),Bd=Nd({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),sl=Cn("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Bd} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),al=Cn("div",{"& img":{borderRadius:"50%"}});function ll(t){let{state:e,image:o,error:n}=t;return e===$d.CONNECTED?bt.createElement(Or,{type:"success",title:qt.t("Wallet Connected"),description:qt.t("Your wallet is connected, you can use it to swap.")}):n?bt.createElement(Or,{type:"error",title:qt.t("Failed to Connect"),description:n||qt.t("Your wallet is not connected. Please try again.")}):bt.createElement(Or,{type:"loading",title:qt.t("Connecting to your wallet"),description:qt.t("Click connect in your wallet popup."),icon:bt.createElement(il,null,bt.createElement(al,null,bt.createElement(Pd,{src:o,size:45})),bt.createElement(sl,null))})}i(ll,"ModalContent");function no(t){let{open:e,onClose:o,...n}=t;return Ur.createElement(_d,{open:e,onClose:o,container:document.getElementById("swap-box")||document.body},Ur.createElement(ll,{...n}),Ur.createElement(Md,{direction:"vertical",size:32}))}i(no,"WalletModal");var qd=ul("div",{display:"flex",justifyContent:"space-evenly",alignItems:"center",gap:"$10",flexWrap:"wrap",paddingTop:"$5",height:"100%"}),zd=ul("div",{textAlign:"center"}),kn=3e3,qr=300;function ml(){let{config:t,fetchStatus:e}=d(),[o,n]=cl(!1),[r,s]=cl(""),a=null,{list:l,handleClick:p,error:c}=mn({config:t,onBeforeConnect:f=>{a=setTimeout(()=>{n(!0),s(f)},qr)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},kn)}}),u=l.find(f=>f.type===r),m=u?.image||"",g=u?.state||Od.NOT_INSTALLED;return At.createElement(K,{header:{title:pl.t("Connect Wallets")}},At.createElement(zd,null,At.createElement(Dd,{variant:"title",size:"xmedium",align:"center"},pl.t("Choose a wallet to connect.")),At.createElement(qd,null,l.map((f,C)=>{let y=`wallet-${C}-${f.type}`;return At.createElement(Ud,{key:y},At.createElement(Fd,{...f,container:j(),onClick:h=>{p(h)},isLoading:e==="loading"}))}),At.createElement(no,{open:!!o,onClose:()=>n(!1),image:m,state:g,error:c}))))}i(ml,"WalletsPage");import{keyframes as Gd,styled as zr}from"@rango-dev/ui";var dl=zr("div",{position:"relative"}),Hd=Gd({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),fl=zr("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Hd} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),gl=zr("div",{"& img":{borderRadius:"50%"}});function Hr(t){let{chain:e,isSelected:o,selectWallet:n,limit:r,onShowMore:s}=t,{config:a}=d(),l=z.use.connectedWallets(),{blockchains:p}=d(),[c,u]=ro(""),[m,g]=ro(null),[f,C]=ro(!1),[y,h]=ro(null),{suggestAndConnect:b}=kl(),k=null,{list:T,error:x,handleClick:w}=mn({config:a,chain:e,onBeforeConnect:v=>{k=setTimeout(()=>{u(v)},qr)},onConnect:()=>{k&&clearTimeout(k),setTimeout(()=>{u("")},kn)}}),[A,L]=ro(T),S=T.length,P=r&&S-r>0,$=i(async v=>{C(!1),h("in-progress");try{await b(v.walletType,v.chain),h("completed")}catch{h("rejected")}},"addExperimentalChain");Cl(()=>{L(v=>{let _=T.findIndex(E=>o(E.type,e));return P&&_>1?[T[_]].concat(T.filter((E,G)=>G!==_)):v.map(E=>T.find(G=>G.type===E.type)??E)})},[JSON.stringify(T)]);let N=document.querySelector("#swap-box");return Cl(()=>{let v=null;return(y==="completed"||y==="rejected")&&(v=setTimeout(()=>h(null),kn)),()=>{v&&clearTimeout(v)}},[y]),R.createElement(R.Fragment,null,A.slice(0,r).map(v=>{let _=Fs({connectedWallets:l,walletType:v.type,chain:e}),E=_?Ho(_):"",G=zo(p(),e),J=!l.find(ye=>ye.walletType===v.type&&ye.chain===e),te=G&&J&&v.state===Sl.CONNECTED,H=te?Ue.t({id:"Add {chain} chain",values:{chain:e}}):E,re=i(()=>{v.state===Sl.DISCONNECTED?w(v.type):te?(g({walletType:v.type,chain:e,address:_??""}),C(!0)):n({walletType:v.type,chain:e,address:_??""})},"onClick"),he=m?.chain?Js(m.chain,p()):void 0;return R.createElement(R.Fragment,null,R.createElement(no,{open:c===v.type,onClose:()=>u(""),image:v.image,state:v.state,error:x}),!!m&&R.createElement(hl,{open:!!m&&f,container:N,onClose:()=>{g(null)}},R.createElement(Tn,{title:Ue.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:he}}),type:"warning",description:Ue.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:he}})},R.createElement(Gr,{size:18}),R.createElement(Gr,{size:32}),R.createElement(Qd,{onClick:$.bind(null,m),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Ue.t("Confirm")))),y&&R.createElement(hl,{open:!!y,onClose:h.bind(null,null),container:N},y==="in-progress"&&R.createElement(Tn,{type:"loading",title:Ue.t({id:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:he}}),description:Ue.t({id:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:he}}),icon:R.createElement(dl,null,R.createElement(gl,null,R.createElement(Vd,{src:v.image,size:45})),R.createElement(fl,null))}),y==="completed"&&R.createElement(Tn,{type:"success",title:Ue.t({id:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:he}}),description:Ue.t({id:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:he}})}),y==="rejected"&&R.createElement(Tn,{type:"error",title:Ue.t("Request Rejected"),description:Ue.t({id:"You've rejected adding {blockchainDisplayName} chain to your wallet.",values:{blockchainDisplayName:he}})}),R.createElement(Gr,{direction:"vertical",size:32})),R.createElement(jd,{key:v.type,description:H,onClick:re,selected:o(v.type,e),...v}))}),P&&R.createElement(La,{selected:!1,onClick:s},R.createElement(yl,{variant:"label",size:"medium"},Ue.t("Show more wallets"),R.createElement(yl,{variant:"label",size:"medium",color:"$primary"},"\xA0+",S-(r??0)))))}i(Hr,"WalletList");var nf=2;function xl(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,loading:s}=t,a=d().config,l=d().blockchains(),{quote:p,setSelectedWallets:c,quoteWalletsConfirmed:u,setQuoteWalletConfirmed:m,customDestination:g,setCustomDestination:f}=O(),{connectedWallets:C,selectWallets:y}=z(),[h,b]=Et(""),[k,T]=Et([]),[x,w]=Et(""),[A,L]=Et(null),[S,P]=Et(g),[$,N]=Et(!!g),v=tf(null),_=Vo(p),E=l.find(D=>D.name===p?.result?.swaps[p?.result?.swaps.length-1].to.blockchain),G=i(D=>!!p?.result?.swaps.find(Y=>Y.from.blockchain===D),"isWalletRequiredFor"),[J,te]=Et(C.filter(D=>D.selected&&_.includes(D.chain))),H=l.find(D=>D.name===E?.name),re=i((D,Y)=>!!J.find(U=>U.walletType===D&&U.chain===Y&&U.selected&&(G(Y)||!G(Y)&&!S)),"isSelected"),he=!!S&&$&&H&&!jo(H,S),ye=i(()=>{N(!1),P(""),te(D=>{let Y=!1;return D.map(U=>!Y&&U.chain===E?.name?(Y=!0,{...U,selected:!0}):U)})},"resetCustomDestination"),_e=i(D=>{if(h&&b(""),re(D.walletType,D.chain))return;let U=C.find(ie=>ie.walletType===D.walletType&&ie.chain===D.chain);U&&(n(),D.chain===E?.name&&$&&(N(!1),P("")),te(ie=>ie.filter(Ve=>Ve.chain!==D.chain).concat({...U,selected:!0})))},"onChange"),Bt=i(()=>{let D=J.filter(Y=>Y.selected);y(D),c(D),f(S),m(!0),o()},"onConfirmBalance"),Rt=i(async()=>{T([]),w(""),L(null);let D=C.filter(ie=>J.find(Ve=>Ve.chain===ie.chain&&Ve.walletType===ie.walletType)),Y=await r?.({selectedWallets:D,customDestination:S}),U=Y.warnings;U?.balance?.messages&&T(U.balance.messages),U?.quoteUpdate&&L(U.quoteUpdate),Y.error&&w(Rs(Y.error)),!Y.error&&(!U?.balance?.messages.length||0>0)?Bt():T(U?.balance?.messages??[])},"onConfirmWallets");Rd(()=>{te(D=>D.concat(C.filter(Y=>!!!D.find(ie=>ie.chain===Y.chain)&&Y.selected&&_.includes(Y.chain))))},[C.length]),ef(()=>{$&&v.current&&setTimeout(()=>{v?.current?.scrollIntoView({behavior:"smooth"})},oo)},[$]);let rt=document.querySelector("#swap-box"),Qe=of();return W.createElement(wl,{open:e,onClose:()=>{u||Qe("../",{replace:!0}),o()},dismissible:!h,container:rt,...!h&&{footer:W.createElement(qa,null,W.createElement(Tl,{loading:s,disabled:ma(s,$,S,p,J,E),onClick:Rt,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...h&&{containerStyle:{padding:"$0"},header:W.createElement(Ba,null,W.createElement(Pa,{variant:"ghost",onClick:b.bind(null,"")},W.createElement(Yd,{size:16})),W.createElement(wn,{variant:"headline",size:"small"},st.t({id:"Your {blockchainName} wallets",values:{blockchainName:Xe(h,l)}})))},anchor:"center"},W.createElement(wl,{open:k.length>0,onClose:T.bind(null,[]),container:rt},W.createElement(Jd,{title:st.t("Insufficient account balance"),type:"error",description:W.createElement(Kd,{messages:k??[]})},W.createElement(Tl,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:Bt},st.t("Proceed anyway")))),h&&W.createElement($a,null,W.createElement("div",{className:Ma()},W.createElement(Hr,{chain:h,isSelected:re,selectWallet:_e,onShowMore:b.bind(null,h)}))),!h&&W.createElement(W.Fragment,null,x&&W.createElement(W.Fragment,null,W.createElement(Qr,{variant:"alarm",type:"error",title:st.t(x)}),W.createElement(zt,{size:12})),A&&W.createElement(W.Fragment,null,W.createElement(Qr,{variant:"alarm",type:"warning",title:cn(A)}),W.createElement(zt,{size:12})),W.createElement(Ga,null,_.map((D,Y)=>{let U=l.find(be=>be.name===D),ie=`wallet-${Y}`,Ve=Y===_.length-1;return W.createElement("div",{key:ie},W.createElement(Ia,null,W.createElement(wn,{variant:"title",size:"xmedium"},st.t({id:"Your {blockchainName} wallets",values:{blockchainName:U?.shortName}})),W.createElement(wn,{variant:"label",color:"$neutral700",size:"medium"},st.t({id:"You need to connect a {blockchainName} wallet.",values:{blockchainName:U?.shortName}}))),W.createElement(zt,{size:24}),W.createElement(Wa,null,W.createElement(Hr,{chain:D,isSelected:re,selectWallet:_e,limit:nf,onShowMore:()=>b(U?.name??"")})),!Ve&&W.createElement(zt,{size:32}),Ve&&a?.customDestination&&W.createElement(Fa,null,W.createElement(_a,{ref:v,selected:$,open:$,onOpenChange:be=>{be?G(E?.name??"")||te(pr=>pr.map(cr=>cr.chain===E?.name?{...cr,selected:!1}:cr)):ye()}},W.createElement(Na,{onClick:()=>N(be=>!be)},W.createElement(Da,{fullWidth:!0,variant:"default",suffix:W.createElement(Ua,{orientation:$?"up":"down"},W.createElement(Xd,{size:10,color:"gray"}))},W.createElement("div",{className:"button__content"},W.createElement(Zd,{size:18,color:"info"}),W.createElement(zt,{size:4,direction:"horizontal"}),W.createElement(wn,{variant:"label",size:"medium"},st.t("Send to a different address"))))),W.createElement(un,{open:$},W.createElement(W.Fragment,null,W.createElement(zt,{size:4}),W.createElement(za,{autoFocus:!0,placeholder:st.t("Your destination address"),value:S,onChange:be=>{P(be.target.value)}})))),he&&W.createElement("div",{className:Oa()},W.createElement(Qr,{variant:"alarm",type:"error",title:st.t({values:{destination:S},id:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(xl,"ConfirmWalletsModal");import{Divider as Hf}from"@rango-dev/ui";import Pe from"react";import{i18n as Jr}from"@lingui/core";import{Alert as lf,ChevronDownIcon as pf,ChevronRightIcon as cf,Divider as Zr,Image as zl,InfoIcon as uf,QuoteCost as mf,StepDetails as df,TokenAmount as ff,Tooltip as Gl,Typography as ao}from"@rango-dev/ui";import B,{useLayoutEffect as gf,useRef as Hl,useState as hf}from"react";import{styled as io}from"@rango-dev/ui";var vl=io("div",{paddingBottom:"$10"}),Vr=io("div",{width:"100%","& .position-top__skeleton":{paddingTop:"$10"}}),bl=io("div",{variants:{paddingTop:{true:{paddingTop:"$10"}}}}),Al=io("div",{paddingBottom:"$15"}),El=io("div",{width:"100%",display:"flex"});import*as xn from"@radix-ui/react-collapsible";import{css as jr,darkTheme as Ye,Image as Il,styled as Je,Typography as rf}from"@rango-dev/ui";var Kr=300,Wl=Je(xn.Root,{display:"flex",flexDirection:"column",alignItems:"start",overflowX:"auto",overflowY:"hidden",width:"100%",borderRadius:"$xm",cursor:"default",variants:{recommended:{true:{$$color:"$colors$info300",[`.${Ye} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ye} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}}}),Ll=jr({padding:"$10 $15"}),Nl=Je("div",{borderRadius:"$xm",display:"flex",flexDirection:"column",alignItems:"start",justifyContent:"space-between",color:"$foreground",cursor:"pointer",boxSizing:"border-box",position:"relative",variants:{recommended:{true:{$$color:"$colors$info100",[`.${Ye} &`]:{$$color:"$colors$secondary600"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}},false:{$$color:"$colors$neutral200",[`.${Ye} &`]:{$$color:"$colors$neutral500"},backgroundColor:"$$color","&:hover":{backgroundColor:"$$color"}}},basic:{true:{borderTopRightRadius:"0",borderTopLeftRadius:"0"}},listItem:{true:{},false:{}}},compoundVariants:[{listItem:!0,recommended:!0,css:{"&:hover":{$$color:"$colors$secondary200",[`.${Ye} &`]:{$$color:"$colors$secondary700"},backgroundColor:"$$color"}}},{listItem:!0,recommended:!1,css:{"&:hover":{$$color:"$colors$neutral300",[`.${Ye} &`]:{$$color:"$colors$neutral400"},backgroundColor:"$$color"}}}]}),Bl=jr({padding:"$15 $15 $10 $15",cursor:"default"}),Pl=jr({paddingTop:"$10",display:"flex",alignItems:"center",".usd-value":{$$color:"$colors$neutral600",[`.${Ye} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),$l=Je(xn.Trigger,{display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",height:"$36",padding:"$10 $15",boxSizing:"border-box",cursor:"pointer",border:"none",outline:"none",backgroundColor:"transparent",variants:{error:{true:{[`& ${Il}`]:{border:"1px $warning500 solid",borderRadius:"100%"}},false:{[`& ${Il}`]:{border:"1px transparent solid",borderRadius:"100%"}}},recommended:{true:{$$color:"$colors$info300",[`.${Ye} &`]:{$$color:"$colors$secondary800"},backgroundColor:"$$color"},false:{$$color:"$colors$neutral400",[`.${Ye} &`]:{$$color:"$colors$neutral200"},backgroundColor:"$$color"}}},"& div:nth-child(1)":{display:"flex"}}),Xr=Je("div",{width:"18px",height:"18px",borderRadius:"100%",border:"1.5px transparent solid",display:"flex",justifyContent:"center",alignItems:"center",variants:{state:{error:{borderColor:"$error500"},warning:{borderColor:"$warning500"}}}}),Ml=Je(un,{width:"100%",background:"inherit"}),Yr=Je("div",{display:"flex",justifyContent:"center",alignItems:"center",padding:"$2",transition:`all ${Kr}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Zv=Je("div",{height:"$12",marginLeft:"$10",marginRight:"$10",borderLeft:"1px solid $foreground"}),_l=Je("div",{display:"flex",justifyContent:"center",margin:"0 $15",borderTop:"1px solid",$$color:"$colors$neutral300",[`.${Ye} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color"}),Dl=Je("div",{width:"$16",height:"$16",justifyContent:"center",alignItems:"center",display:"flex"}),Fl=Je(rf,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",letterSpacing:.4});import{TokenAmount as ql}from"@rango-dev/ui";import vn from"react";import{css as sf,styled as af}from"@rango-dev/ui";var Ol=af("div",{position:"relative",display:"flex",flexDirection:"column",width:"100%"}),Ul=sf({height:"14px",marginLeft:"14px",position:"absolute",borderLeft:"1px solid $foreground",top:"42%"});function so(t){let{from:e,to:o,percentageChange:n,warningLevel:r}=t;return vn.createElement(Ol,null,vn.createElement(ql,{direction:"horizontal",label:"Swap input",type:"input",price:{value:e.price.value,usdValue:e.price.usdValue},token:{displayName:e.token.displayName,image:e.token.image},chain:{image:e.chain.image}}),vn.createElement("div",{className:Ul()}),vn.createElement(ql,{direction:"horizontal",label:"Estimated output",type:"output",price:{value:o.price.value,usdValue:o.price.usdValue},token:{displayName:o.token.displayName,image:o.token.image},chain:{image:o.chain.image},percentageChange:n,warningLevel:r}))}i(so,"QuoteSummary");function Rr(t){let{quote:e,input:o,output:n,error:r,warning:s,type:a,recommended:l=!0}=t,p=d().tokens(),c=d().blockchains(),u=d().swappers(),[m,g]=hf(t.expanded),f=Hl(null),C=Hl(m),y=I(Yo(e.result?.swaps??[],p),2,2),h=Mo(_o(e.result?.swaps)),b=I(o.value,6,6),k=I(n.value,6,6),T=n.usdValue?I(n.usdValue,4,4):"",x=Ne(o.usdValue,n.usdValue??null),w=I(x,2,2),A=it(x??0),S=i(N=>N.map((v,_)=>{let E,G=r?.type===3&&r.swap.swapperId===v.swapperId||r?.type===4&&r.recommendedSlippages?.has(_),J=s?.type===2&&s.recommendedSlippages?.has(_);return G?E="error":J&&(E="warning"),{swapper:{displayName:Zs(v.swapperId,u),image:v.swapperLogo},from:{token:{displayName:v.from.symbol,image:v.from.logo},chain:{displayName:Xe(v.from.blockchain,c),image:v.from.blockchainLogo},price:{value:_===0?I(o.value,6,6):I(v.fromAmount,6,6),usdValue:I((v.from.usdPrice??0)*parseFloat(v.fromAmount),4,4)}},to:{token:{displayName:v.to.symbol,image:v.to.logo},chain:{displayName:Xe(v.to.blockchain,c),image:v.to.blockchainLogo},price:{value:I(v.toAmount,6,6),usdValue:I((v.to.usdPrice??0)*parseFloat(v.toAmount),4,4)}},state:E,alerts:G||J?B.createElement(Al,null,B.createElement(lf,{type:G?"error":"warning",title:r?.type===3?r?.recommendation:Jr.t("Slippage Error:"),footer:B.createElement(El,null,r?.type===3&&B.createElement(B.Fragment,null,B.createElement(ao,{size:"xsmall",variant:"body",color:"neutral900"},r.fromAmountRangeError),B.createElement(Zr,{direction:"horizontal",size:8}),B.createElement(ao,{size:"xsmall",variant:"body",color:"neutral900"},"|"),B.createElement(Zr,{direction:"horizontal",size:8}),B.createElement(ao,{size:"xsmall",variant:"body",color:"neutral900"},Jr.t({id:"Yours: {amount} {symbol}",values:{amount:I(v.fromAmount,6,6),symbol:v?.from.symbol}}))),(r?.type===4||s?.type===2)&&B.createElement(ao,{size:"xsmall",variant:"body",color:"neutral900"},Jr.t({id:"Minimum required slippage is {minRequiredSlippage}",values:{...r?.type===4&&{minRequiredSlippage:r.recommendedSlippages?.get(_)},...s?.type===2&&{minRequiredSlippage:s.recommendedSlippages?.get(_)}}})))})):void 0}}),"getQuoteSteps")(e.result?.swaps??[]),P=S.length,$=j();return gf(()=>{m&&!C.current&&f.current&&setTimeout(()=>{f?.current?.scrollIntoView({behavior:"smooth"})},Kr),C.current=m},[m,C]),B.createElement(B.Fragment,null,B.createElement(Nl,{recommended:l,listItem:a==="list-item",basic:a==="basic"},B.createElement("div",{className:Bl()},B.createElement(mf,{fee:y,time:h,steps:P}),a==="basic"&&B.createElement("div",{className:Pl()},B.createElement(Dl,null,B.createElement(uf,{size:12,color:"gray"})),B.createElement(Fl,{size:"small",variant:"body"},`${b} ${S[0].from.token.displayName} = ${k} ${S[S.length-1].to.token.displayName}`),B.createElement(ao,{color:"$neutral600",ml:2,size:"xsmall",variant:"body"},`($${T})`)),a==="list-item"&&B.createElement(ff,{type:"output",direction:"vertical",price:{value:k,usdValue:T},token:{displayName:S[P-1].to.token.displayName,image:S[P-1].to.token.image},chain:{image:S[P-1].to.chain.image},percentageChange:w,warningLevel:A}),a==="swap-preview"&&B.createElement(B.Fragment,null,B.createElement(so,{from:S[0].from,to:S[P-1].to,percentageChange:w,warningLevel:A}),B.createElement(Zr,{size:4}))),B.createElement(Wl,{recommended:l,open:m,onOpenChange:g},B.createElement($l,{ref:N=>f.current=N,recommended:l,onClick:()=>g(N=>!N)},B.createElement("div",null,S.map((N,v)=>{let _=`item-${v}`,E=B.createElement(Yr,null,B.createElement(cf,{size:12,color:"black",...N.state&&{color:N.state==="error"?"error":"warning"}}));return B.createElement(B.Fragment,{key:_},B.createElement(Gl,{container:$,side:"bottom",sideOffset:4,content:N.from.chain.displayName},B.createElement(Xr,{state:N.state||S[v-1]?.state},B.createElement(zl,{src:N.from.chain.image,size:16}))),v===P-1&&B.createElement(B.Fragment,null,E,B.createElement(Gl,{container:$,side:"bottom",sideOffset:4,content:N.to.chain.displayName},B.createElement(Xr,{state:N.state},B.createElement(zl,{src:N.to.chain.image,size:16})))),v!==P-1&&B.createElement(B.Fragment,null,E))})),B.createElement(Yr,{orientation:m?"up":"down"},B.createElement(pf,{size:12,color:"black"}))),B.createElement(Ml,{open:m},B.createElement(_l,null),B.createElement("div",{className:Ll()},S.map((N,v)=>{let _=`item-${v}`;return B.createElement(df,{type:"quote-details",key:_,step:N,hasSeparator:v!==S.length-1,state:N.state})}))))))}i(Rr,"Quote");import{Divider as Cf,Skeleton as kf}from"@rango-dev/ui";import at from"react";import{darkTheme as yf,styled as bn}from"@rango-dev/ui";var Ql=bn("div",{$$color:"$colors$neutral100",[`.${yf} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",borderBottomLeftRadius:"$xm",borderBottomRightRadius:"$xm",padding:"$15 ",variants:{rounded:{true:{borderRadius:"$xm"}}}}),Vl=bn("div",{paddingTop:"$2"}),jl=bn("div",{paddingLeft:"$8"}),Kl=bn("div",{borderLeft:"1px dashed black",minHeight:" 0",margin:"0px 11.5px",alignSelf:"stretch",variants:{hideSeparator:{true:{minHeight:"unset",height:"0"}}}});import{ChainToken as ip,Divider as It,Skeleton as Re}from"@rango-dev/ui";import q from"react";import{styled as Ze}from"@rango-dev/ui";var Xl=Ze("div",{display:"flex",justifyContent:"space-between",alignItems:"center",height:"22px"}),Yl=Ze("div",{display:"flex"}),Jl=Ze("div",{padding:"$15 $0 14px $0"}),Zl=Ze("div",{padding:"$6 $0 $15 $0",display:"flex",flexDirection:"column"}),Rl=Ze("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$5"}),ep=Ze("div",{display:"flex",justifyContent:"space-between",alignItems:"end"}),tp=Ze("div",{height:"$28",marginLeft:"13px",borderLeft:"1px solid $neutral700"}),op=Ze("div",{width:"65%",display:"flex",justifyContent:"start"}),np=Ze("div",{display:"flex",flexDirection:"column",alignItems:"start",flexGrow:1,maxWidth:"148px"}),rp=Ze("div",{padding:"$15 $0 $15 $0"});function co(t){let{type:e,tag:o=!1}=t,n=q.createElement(ep,null,q.createElement(op,null,q.createElement(ip,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(It,{size:8,direction:"horizontal"}),q.createElement(np,null,q.createElement(Re,{height:10,width:60,variant:"rounded"}),q.createElement(It,{size:4}),q.createElement(Re,{height:15,variant:"rounded"}))),q.createElement(Re,{height:12,width:64,variant:"rounded"}));return q.createElement("div",null,q.createElement(Xl,null,q.createElement(Yl,null,q.createElement(Re,{width:60,height:10,variant:"rounded"}),q.createElement(It,{size:4,direction:"horizontal"}),q.createElement(Re,{width:60,height:10,variant:"rounded"}),q.createElement(It,{size:4,direction:"horizontal"}),q.createElement(Re,{width:60,height:10,variant:"rounded"})),o&&q.createElement(Re,{height:22,width:100,variant:"rounded"})),e==="basic"&&q.createElement(Jl,null,q.createElement(Re,{height:15,width:148,variant:"rounded"})),e==="list-item"&&q.createElement(Zl,null,q.createElement(Rl,null,q.createElement(ip,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),q.createElement(It,{direction:"horizontal",size:4}),q.createElement(Re,{height:15,width:150,variant:"rounded"})),q.createElement(It,{size:4}),q.createElement(Re,{height:10,width:184,variant:"rounded"})),e==="swap-preview"&&q.createElement(q.Fragment,null,q.createElement(It,{size:4}),q.createElement(rp,null,n,q.createElement(tp,null),n)))}i(co,"QuoteSummarySkeleton");import{ChainToken as cp,Divider as ti,NextIcon as Sf,Skeleton as An}from"@rango-dev/ui";import ae from"react";import{styled as uo}from"@rango-dev/ui";var sp=uo("div",{display:"flex",alignItems:"start"}),ap=uo("div",{flexGrow:1,paddingTop:"$5",paddingBottom:"$10",display:"flex",alignItems:"center"}),ei=uo("div",{display:"flex",alignItems:"center",flexGrow:1}),lp=uo("div",{margin:"$0 $2",padding:"$4",display:"flex",justifyContent:"center",alignItems:"center"}),pp=uo("div",{display:"flex",alignItems:"center"});function et(t){let{separator:e=!0}=t;return ae.createElement(ae.Fragment,null,ae.createElement(pp,null,ae.createElement(An,{height:22,width:22,variant:"circular"}),ae.createElement(ti,{direction:"horizontal",size:8}),ae.createElement(An,{height:15,width:148,variant:"rounded"})),ae.createElement(sp,null,ae.createElement(Kl,{hideSeparator:!e}),ae.createElement(ap,null,ae.createElement(ei,null,ae.createElement(cp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(ti,{direction:"horizontal",size:8}),ae.createElement(An,{height:12,variant:"rounded"})),ae.createElement(lp,null,ae.createElement(Sf,{color:"gray",size:16})),ae.createElement(ei,null,ae.createElement(cp,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(ti,{direction:"horizontal",size:8}),ae.createElement(An,{height:12,variant:"rounded"})))))}i(et,"StepSkeleton");function oi(t){let{type:e,expanded:o,tag:n=!1}=t;return at.createElement(Ql,{rounded:e!=="basic"},at.createElement(co,{type:e,tag:n}),at.createElement(Vl,null,at.createElement(kf,{height:15,variant:"rounded"})),o&&at.createElement(jl,null,at.createElement(Cf,{size:20}),at.createElement(et,null),at.createElement(et,null),at.createElement(et,{separator:!1})))}i(oi,"QuoteSkeleton");import{i18n as Uf}from"@lingui/core";import{Alert as qf,Button as zf,InfoIcon as Gf}from"@rango-dev/ui";import Ee from"react";import{Alert as Tf,Button as wf,Divider as hp,NoRouteIcon as xf,RefreshIcon as vf,Typography as yp}from"@rango-dev/ui";import qe from"react";import{i18n as up}from"@lingui/core";function mp(t,e,o,n){return t?.type===1?{alert:{type:"warning",text:Q().genericServerError,action:{onClick:n,title:up.t("Retry")}},description:""}:e.length?{alert:{type:"warning",text:Q().liquiditySourcesError.title,action:{onClick:()=>o(!0),title:up.t("Reset")}},description:Q().liquiditySourcesError.description}:t?.type===0&&t.diagnosisMessage?{alert:{type:"error",text:t.diagnosisMessage,action:null},description:""}:{alert:null,description:Q().noResultError.description}}i(mp,"makeInfo");import{styled as ni}from"@rango-dev/ui";var dp=ni("div",{minHeight:"162px",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"}),fp=ni("div",{width:"100%"}),gp=ni("div",{padding:"$6 $0"});function ri(t){let{fetch:e,error:o}=t,n=d().disabledLiquiditySources,r=d().toggleAllLiquiditySources,s=d().swappers(),a=mp(o,n,()=>r(s,!0),e);return qe.createElement(dp,null,qe.createElement(xf,{size:24,color:"gray"}),qe.createElement(hp,{size:4}),qe.createElement(yp,{variant:"title",size:"small"},Q().noResultError.title),!!a.description&&qe.createElement(yp,{variant:"body",size:"small",align:"center",color:"neutral700"},a.description),qe.createElement(hp,{size:4}),!!a.alert&&qe.createElement(fp,null,qe.createElement(Tf,{type:a.alert.type,title:a.alert.text,action:a.alert.action&&qe.createElement(wf,{size:"xsmall",type:a.alert.type,prefix:qe.createElement(gp,null,qe.createElement(vf,{size:8})),onClick:a.alert.action.onClick},a.alert.action.title),variant:"alarm"})))}i(ri,"NoResult");import{i18n as mo}from"@lingui/core";import{Button as Af,Divider as xp,MessageBox as Ef,Modal as If,Typography as Wf,WarningIcon as Lf}from"@rango-dev/ui";import tt from"react";import{Typography as Tp}from"@rango-dev/ui";import si from"react";import{darkTheme as bf,styled as En}from"@rango-dev/ui";var Sp=En("div",{width:"100%",paddingTop:"$10"}),ii=En("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),Cp=En("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%","._title":{$$color:"$colors$neutral600",[`.${bf} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),kp=En("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});function wp(t){let{title:e,value:o,valueColor:n}=t;return si.createElement(Cp,null,si.createElement(Tp,{size:"medium",variant:"label",className:"_title"},e),si.createElement(Tp,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(wp,"QuoteErrorsModalItem");function vp(t){let{open:e,onClose:o,onConfirm:n,warning:r}=t,s=r.warningLevel==="high"?"error":"warning",a=[{title:mo.t("Swapping"),value:I(r.inputUsdValue,4,4)},{title:mo.t("Gas cost"),value:I(r.totalFee,2,2)},{title:mo.t("Receiving"),value:I(r.outputUsdValue,4,4)},{title:mo.t("Price impact"),value:I(r.priceImpact,2,2),valueColor:`${s}500`}];return tt.createElement(If,{open:e,onClose:o,container:j()},tt.createElement(Ef,{type:s,title:Q().highValueLossError.impactTitle,description:Q().highValueLossError.description}),tt.createElement(ii,null,tt.createElement(xp,{size:20}),tt.createElement(Wf,{size:"small",variant:"title"},mo.t("Details")),tt.createElement(ii,null,a.map((l,p)=>tt.createElement(wp,{key:p,...l})))),tt.createElement(xp,{size:32}),tt.createElement(Af,{type:"primary",size:"large",prefix:tt.createElement(Lf,null),fullWidth:!0,onClick:n},Q().highValueLossError.confirmMessage))}i(vp,"HighValueLossWarningModal");import{i18n as ai}from"@lingui/core";function bp(t,e){let o={alertType:"warning",title:"",action:"show-info"};return t?(t.type===0&&(it(t.priceImpact)==="high"&&(o.alertType="error"),o.action=null,o.title=Q().highValueLossError.title),t.type===1&&(o.title=Q().unknownPriceError.title),t.type===2&&(o.title=ai.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:t.minRequiredSlippage}}),o.action="change-settings"),t.type===3&&(o.title=ai.t("Caution, your slippage is high.")),o):e?(o.alertType="error",e.type===3&&(o.title=e.recommendation,o.action="show-info"),e.type===4&&(o.title=ai.t({id:"You need to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:e.minRequiredSlippage}}),o.action="change-settings"),o):null}i(bp,"makeAlerts");import{i18n as Gt}from"@lingui/core";import{Button as Ap,Divider as Ep,MessageBox as Nf,Modal as Bf,Typography as Pf}from"@rango-dev/ui";import Wt from"react";import{useNavigate as $f}from"react-router-dom";function Ip(t){let{customSlippage:e,slippage:o}=d(),{open:n,onClose:r,onConfirm:s,warning:a}=t,l=$f(),p=e??o;return Wt.createElement(Bf,{anchor:"bottom",open:n,prefix:Wt.createElement(Ap,{size:"small",variant:"ghost",onClick:()=>l("../"+M.settings)},Wt.createElement(Pf,{variant:"label",size:"medium",color:"$neutral900"},Gt.t("Change settings"))),container:j(),onClose:r},Wt.createElement(Nf,{type:"warning",title:a.type===3?Gt.t("High slippage"):Gt.t("Low slippage"),description:a.type===3?Gt.t({id:" Caution, your slippage is high (={userSlippage}). Your trade may be front run.",values:{userSlippage:p}}):Gt.t({id:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route.",values:{minRequiredSlippage:a.minRequiredSlippage}})},Wt.createElement(Ep,{size:18}),Wt.createElement(Ep,{size:32}),Wt.createElement(Ap,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:s},Gt.t("Confirm anyway"))))}i(Ip,"SlippageWarningModal");import{Button as Mf,Divider as _f,MessageBox as Df,Modal as Ff,WarningIcon as Of}from"@rango-dev/ui";import fo from"react";function Wp(t){let{open:e,onClose:o,onConfirm:n}=t;return fo.createElement(Ff,{open:e,onClose:o,container:j()},fo.createElement(Df,{type:"warning",title:Q().unknownPriceError.impactTitle,description:Q().unknownPriceError.description}),fo.createElement(_f,{size:32}),fo.createElement(Mf,{type:"primary",size:"large",prefix:fo.createElement(Of,null),fullWidth:!0,onClick:n},Q().unknownPriceError.confirmMessage))}i(Wp,"UnknownPriceWarningModal");function li(t){let{warning:e,error:o,refetchQuote:n,showWarningModal:r,onOpenWarningModal:s,onCloseWarningModal:a,onConfirmWarningModal:l,onChangeSettings:p}=t,c={open:r,onClose:a,onConfirm:l},u=o?.type===0||o?.type===1,m=bp(e,o?.type===3||o?.type===4?o:null);return Ee.createElement(Ee.Fragment,null,u&&Ee.createElement(ri,{error:o,fetch:n}),!!m&&Ee.createElement(Sp,null,Ee.createElement(qf,{title:m.title,type:m.alertType,variant:"alarm",...m.action==="show-info"&&{action:Ee.createElement(kp,{onClick:s},Ee.createElement(Gf,{size:12,color:"gray"}))},...m.action==="change-settings"&&{action:Ee.createElement(zf,{size:"xxsmall",type:m.alertType,onClick:p},Uf.t("Change"))}})),e&&Ee.createElement(Ee.Fragment,null,e.type===0&&Ee.createElement(vp,{...c,warning:e}),(e.type===3||e.type===2)&&Ee.createElement(Ip,{...c,warning:e}),e.type===1&&Ee.createElement(Wp,{...c,warning:e})))}i(li,"QuoteWarningsAndErrors");function go(t){let{quote:e,type:o,loading:n,error:r,warning:s,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:c,onConfirmWarningModal:u,onChangeSettings:m,expanded:g=!1,alertPosition:f="bottom"}=t,{inputAmount:C,inputUsdValue:y,outputUsdValue:h,outputAmount:b}=O(),T=!(r&&(r.type===0||r.type===1))&&e&&e.result&&!n,x=(s||r)&&Pe.createElement(li,{warning:s,error:r,loading:n,refetchQuote:a,showWarningModal:l,onOpenWarningModal:p,onCloseWarningModal:c,onConfirmWarningModal:u,onChangeSettings:m});return Pe.createElement(Pe.Fragment,null,n&&Pe.createElement(Vr,null,Pe.createElement(bl,{paddingTop:f==="top"},Pe.createElement(oi,{type:o,expanded:g}))),f==="top"&&Pe.createElement(vl,null,x),T?Pe.createElement(Vr,null,Pe.createElement(Rr,{quote:e,error:r,warning:s,type:o,expanded:g,recommended:!0,input:{value:C,usdValue:y?.toString()??""},output:{value:b?.toString()??"",usdValue:h?.toString()??""}})):null,f==="bottom"&&Pe.createElement(Pe.Fragment,null,!s&&!r&&Pe.createElement(Hf,{size:16}),x))}i(go,"QuoteInfo");import{calculatePendingSwap as jf}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Kf}from"react";import{useRef as Qf,useState as Vf}from"react";function In(){let[t,e]=Vf(!1),o=Qf(null),n=i(()=>o.current?.abort(),"cancel");return{fetch:i(async s=>{n(),o.current=new AbortController,e(!0);try{let a=await $t().getBestRoute(s,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}i(In,"useFetchQuote");function Wn(t){if(!t.result)throw new Error(Q().noResultError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});if(Tr(t)){let{swap:n,recommendation:r,fromAmountRangeError:s}=wr(t);throw new Error("bridge limit error",{cause:{type:3,swap:n,recommendation:r,fromAmountRangeError:s}})}let o=vr(t);if(o){let n=Jo(t);throw new Error("",{cause:{type:4,recommendedSlippages:o,minRequiredSlippage:n}})}return t}i(Wn,"throwErrorIfResponseIsNotValid");function Lp(t,e,o){let n=!1;t&&(n=ha(t,e));let r={quote:null,quoteUpdate:null,balance:null},s=Ro(e,{fromToken:o.fromToken,toToken:o.toToken,tokens:o.meta.tokens,userSlippage:o.userSlippage});s&&(r.quote=s),t&&n&&(sa(t,e)?r.quoteUpdate={type:3,newOutputAmount:I(Dt(e)),percentageChange:I(Ne(Dt(t)??"",Dt(e)??""),null,2)}:Ar(t,e)?r.quoteUpdate={type:0}:Er(t,e)?r.quoteUpdate={type:1}:Ir(t,e)&&(r.quoteUpdate={type:2}));let a=aa(e,o.selectedWallets,o.meta.blockchains);return a.length===0||(r.balance={messages:a}),r}i(Lp,"generateWarnings");function Ln(t){return t?.code==="ERR_CANCELED"?{swap:null,error:{type:2},warnings:null}:t.cause?{swap:null,error:t.cause,warnings:null}:{swap:null,error:{type:1},warnings:null}}i(Ln,"handleQuoteErrors");function pi(){let{fromToken:t,toToken:e,inputAmount:o,setQuote:n,quote:r,customDestination:s,setQuoteWarningsConfirmed:a}=O(),{slippage:l,customSlippage:p,affiliatePercent:c,affiliateRef:u,affiliateWallets:m,disabledLiquiditySources:g}=d(),{connectedWallets:f}=z(),C=d().blockchains(),y=d().tokens(),{features:h}=d().config,{enableNewLiquiditySources:b}=d().config,k=p||l,{fetch:T,cancelFetch:x,loading:w}=In();return Kf(()=>x,[]),{loading:w,fetch:i(async L=>{let S=L.selectedWallets,P=L?.customDestination??s;if(!t||!e||!o)return{quote:null,swap:null,error:null,warnings:null};let $=Zo({fromToken:t,toToken:e,inputAmount:o,wallets:f,selectedWallets:S,excludeLiquiditySources:b,disabledLiquiditySources:g,slippage:k,affiliateRef:u,affiliatePercent:c,affiliateWallets:m,initialQuote:r??void 0,destination:P});$o("experimentalRoute",h)&&($.experimental=!0);let N;try{N=await T($).then(G=>Wn(G)),n(N)}catch(G){return Ln(G)}let v={slippage:k.toString(),disabledSwappersGroups:g},_=jf(o.toString(),N,ra(S),v,!1,{blockchains:C,tokens:y}),E=Lp(r??void 0,N,{fromToken:t,toToken:e,meta:{blockchains:C,tokens:y},selectedWallets:S,userSlippage:k});return E.quoteUpdate&&a(!1),{quote:N,swap:_,error:null,warnings:E}},"fetch"),cancelFetch:x}}i(pi,"useConfirmSwap");var sg=$p("div",{position:"relative",width:"100%","& .quote-update__alert":{paddingTop:"$10"}}),ag=$p("div",{width:"100%",display:"flex",justifyContent:"space-between",[`& ${Pp}`]:{width:"$48",height:"$48"}}),lg=ci({flexGrow:1,paddingRight:"$10"}),pg=ci({width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center"}),cg=ci({display:"flex",justifyContent:"space-between",alignItems:"center"});function Mp(){let{quote:t,setInputAmount:e,selectedWallets:o,quoteWalletsConfirmed:n,setQuoteWalletConfirmed:r,customDestination:s,quoteWarningsConfirmed:a}=O(),l=ig(),[p,c]=Bn(""),{connectedWallets:u}=z(),m=!n,[g,f]=Bn(!1),C=Te.use.setSelectedSwap(),y=d().disabledLiquiditySources,h=ng(y),{manager:b}=Xf(),{fetch:k,loading:T,cancelFetch:x}=pi(),[w,A]=Bn({swap:null,error:null,warnings:null}),[L,S]=Bn(!1),P=i(async({selectedWallets:E,customDestination:G})=>{let J=await k?.({selectedWallets:E,customDestination:G});return A(J),J},"onConfirmSwap"),$=i(async()=>{if(w.swap&&n)try{await b?.create("swap",{swapDetails:w.swap},{id:w.swap.requestId}),C(w.swap.requestId);let E=`../${M.swaps}/${w.swap.requestId}`;l(E,{replace:!0}),setTimeout(()=>{e("")},0)}catch(E){c("Error: "+E?.message)}},"addNewSwap"),N=i(async()=>{await $()},"onConfirm"),v=i(async()=>{w?.warnings?.quote&&!a?S(!0):await N()},"onStartConfirmSwap"),_=i(async()=>{A({error:null,swap:null,warnings:null}),k({selectedWallets:o,customDestination:s}).then(E=>{A(E)}).catch(E=>console.error(E))},"onRefresh");return ho(()=>{!!h.current.length&&!y.length&&_(),h.current=y},[y.length]),ho(()=>{m&&x()},[m]),ho(()=>{m&&f(m)},[m]),ho(()=>{m||k({selectedWallets:o,customDestination:s}).then(E=>A(E)).catch(E=>console.error(E))},[]),ho(()=>{let E=w.warnings?.quote?.type&&Object.values(mt).includes(w.warnings?.quote?.type),G=o.length<1||!o.every(te=>u.find(H=>te.address===H.address&&te.walletType===H.walletType&&te.chain===H.chain)),J=!1;if(E){let te=Vo(t),H=t?.result?.swaps[t.result.swaps.length-1].to.blockchain;!!t?.result?.swaps.find(ye=>ye.from.blockchain===H)||(te=te.slice(-te.length,te.length-1)),te.every(ye=>o.find(_e=>_e.chain===ye))||(J=!0)}t&&(G||J)&&(queueMicrotask(()=>rg(f.bind(null,!0))),r(!1))},[w.warnings?.quote,o.length,u.length]),og(()=>{t||l("../")},[]),ee.createElement(K,{header:{title:Nn.t("Confirm Swap"),onWallet:()=>{let E=`../${M.wallets}`;l(E)},suffix:ee.createElement(Rf,{container:j(),side:"bottom",content:Nn.t("Settings")},ee.createElement(Fe,{size:"small",variant:"ghost",onClick:()=>l("../"+M.settings)},ee.createElement(Zf,{size:18,color:"black"})))},footer:ee.createElement(ag,null,ee.createElement("div",{className:lg()},ee.createElement(Bp,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:T,disabled:!!w.error,onClick:v},Nn.t("Start Swap"))),ee.createElement(Pp,{variant:"contained",type:"primary",size:"large",loading:T,onClick:f.bind(null,!0)},ee.createElement(tg,{size:24})))},g&&ee.createElement(xl,{open:g,onClose:()=>f(!1),onCancel:x,loading:T,onCheckBalance:P}),ee.createElement(sg,null,ee.createElement("div",{className:cg()},ee.createElement(eg,{variant:"title",size:"small"},Nn.t("You get")),ee.createElement(Bp,{style:{padding:"0"},variant:"ghost",disabled:T,onClick:_},ee.createElement("div",{className:pg()},ee.createElement(Jf,{size:16})))),p&&ee.createElement(ee.Fragment,null,ee.createElement(Np,{type:"error",variant:"alarm",title:p}),ee.createElement(Yf,{size:12})),w.warnings?.quoteUpdate&&ee.createElement("div",{className:"quote-update__alert"},ee.createElement(Np,{variant:"alarm",type:"warning",title:w.warnings.quoteUpdate&&cn(w.warnings.quoteUpdate)})),ee.createElement(go,{quote:t,type:"swap-preview",expanded:!0,alertPosition:"top",error:w.error,loading:T,warning:w.warnings?.quote??null,refetchQuote:_,showWarningModal:L,onOpenWarningModal:()=>S(!0),onCloseWarningModal:()=>S(!1),onConfirmWarningModal:async()=>{S(!1),await $()},onChangeSettings:()=>l("../"+M.settings)})))}i(Mp,"ConfirmSwapPage");import{i18n as Mn}from"@lingui/core";import{useManager as Sg}from"@rango-dev/queue-manager-react";import{Divider as Cg,NotFound as kg,styled as Hp}from"@rango-dev/ui";import Ct,{useState as Tg}from"react";import{useNavigate as wg}from"react-router-dom";import{CloseIcon as mg,IconButton as dg,SearchIcon as fg,TextField as gg}from"@rango-dev/ui";import yo from"react";import{styled as ug}from"@rango-dev/ui";var _p=ug("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function lt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:l,...p}=t;return yo.createElement(gg,{prefix:yo.createElement(_p,null,yo.createElement(fg,{color:"black"})),suffix:!!a.length&&yo.createElement(dg,{variant:"ghost",onClick:()=>l?.(""),size:"small"},yo.createElement(mg,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:s,...p})}i(lt,"SearchInput");import{i18n as Fp}from"@lingui/core";import{Divider as Op,SwapListItem as Up,Typography as qp}from"@rango-dev/ui";import Z from"react";import{css as hg,darkTheme as yg,styled as Pn}from"@rango-dev/ui";var $n=hg(),ui=Pn("div",{width:"100%",display:"flex",flexDirection:"column",[`& .${$n}`]:{$$color:"$colors$neutral600",[`.${yg} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),mi=Pn("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),di=Pn("div",{gap:"$10",display:"flex",flexDirection:"column"}),Dp=Pn("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function fi(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,s=n?n(e):[{title:"History",swaps:e}];if(r){let a=[{},{}];return Z.createElement(Z.Fragment,null,[{title:"Today",swaps:a},{title:"Last month",swaps:a}].map(p=>Z.createElement(Z.Fragment,{key:p.title},Z.createElement(ui,null,Z.createElement(mi,null,Z.createElement(qp,{variant:"label",size:"medium",className:$n()},Fp.t(p.title))),Z.createElement(Op,{size:4}),Z.createElement(di,null,p.swaps.map((c,u)=>{let m=u+p.title;return Z.createElement(Z.Fragment,{key:m},Z.createElement(Up,{isLoading:!0}))}))))))}return Z.createElement(Z.Fragment,null,s.filter(a=>a.swaps.length>0).map(a=>Z.createElement(Z.Fragment,{key:a.title},Z.createElement(ui,null,Z.createElement(mi,null,Z.createElement(qp,{variant:"label",size:"medium",className:$n()},Fp.t(a.title))),Z.createElement(Op,{size:4}),Z.createElement(di,null,a.swaps.map(l=>{let p=l.steps[0],c=l.steps[l.steps.length-1];return Z.createElement(Z.Fragment,{key:l.requestId},Z.createElement(Up,{requestId:l.requestId,creationTime:l.creationTime,status:l.status,onClick:o,onlyShowTime:a.title==="Today",swapTokenData:{from:{token:{image:p.fromLogo,displayName:p.fromSymbol},blockchain:{image:p.fromBlockchainLogo||""},amount:Do(l.inputAmount)},to:{token:{image:c.toLogo,displayName:c.toSymbol},blockchain:{image:c.toBlockchainLogo||""},amount:Do(c.outputAmount||""),estimatedAmount:Do(c.expectedOutputAmountHumanReadable||"")}}}))}))))))}i(fi,"SwapsGroup");import zp from"dayjs";var Gp=i(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["month",{title:"Last month",swaps:[]}],["year",{title:"Last year",swaps:[]}],["history",{title:"History",swaps:[]}]]),o=zp();return t.forEach(n=>{let r=zp(Number(n.creationTime));o.isSame(r,"day")?e.get("today")?.swaps.push(n):o.isSame(r,"month")?e.get("month")?.swaps.push(n):o.isSame(r,"year")?e.get("year")?.swaps.push(n):e.get("history")?.swaps.push(n)}),Array.from(e.values())},"groupSwapsByDate");var Ht=i(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let r=o.list.getStorage();r?.swapDetails&&e.push({id:n,swap:r?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");var xg=Hp("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),vg=Hp("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),bg=i((t,e)=>t?.length?t.filter(o=>je(o.fromBlockchain,e)||je(o.toBlockchain,e)||je(o.toSymbol,e)||je(o.fromSymbol,e)).length:!1,"isStepContainsText");function Qp(){let t=Te.use.setSelectedSwap(),e=wg(),{manager:o,state:n}=Sg(),r=Ht(o).map(({swap:m})=>m),[s,a]=Tg(""),l=!n.loadedFromPersistor,p=i(m=>{let g=m.target.value;a(g)},"searchHandler"),c=r;s&&(c=r.filter(m=>je(m.inputAmount,s)||je(m.status,s)||bg(m.steps,s)||je(m.requestId,s)));let u=!c?.length&&!l;return Ct.createElement(K,{header:{title:Mn.t("History")}},Ct.createElement(xg,null,Ct.createElement(lt,{setValue:a,fullWidth:!0,variant:"contained",placeholder:Mn.t("Search Transaction"),autoFocus:!0,onChange:p,value:s}),Ct.createElement(vg,null,u&&Ct.createElement(Dp,null,Ct.createElement(Cg,{size:32}),Ct.createElement(kg,{title:Mn.t("No results found"),description:s?Mn.t("Try using different keywords"):""})),!u&&Ct.createElement(fi,{list:c,onSwapClick:m=>{t(m),e(m)},groupBy:Gp,isLoading:l}))))}i(Qp,"HistoryPage");import{i18n as yi}from"@lingui/core";import{Button as Bg,styled as Si,SwapInput as Xp,WarningIcon as Pg}from"@rango-dev/ui";import $e,{useEffect as $g,useRef as Mg,useState as _g}from"react";import{useNavigate as Dg}from"react-router-dom";import{ReverseIcon as Ag,styled as Vp}from"@rango-dev/ui";import gi from"react";var Eg=Vp("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Ig=Vp("div",{borderRadius:"$md",border:"3px solid $background",background:"$neutral100",width:"$24",height:"$24",display:"flex",justifyContent:"center",alignItems:"center",color:"$foreground","&:hover":{color:"$secondary500"}});function jp(){let t=O.use.switchFromAndTo();return gi.createElement(Eg,null,gi.createElement(Ig,{onClick:()=>{t()}},gi.createElement(Ag,{size:12})))}i(jp,"SwitchFromAndToButton");import{useCallback as Wg,useEffect as Lg,useState as hi}from"react";var Ng=600;function Kp(){let{fetch:t,cancelFetch:e}=In(),{liquiditySources:o,enableNewLiquiditySources:n,features:r}=d().config,s=d().tokens(),{fromToken:a,toToken:l,inputAmount:p,inputUsdValue:c,resetQuote:u,setQuote:m}=O(),{slippage:g,customSlippage:f,affiliatePercent:C,affiliateRef:y,affiliateWallets:h,disabledLiquiditySources:b}=d(),[k,T]=hi(!1),[x,w]=hi(null),[A,L]=hi(null),S=f??g,$=!a||!l||Le(a,l)||!eo(p),N=i(E=>{T(E),w(null),L(null)},"resetState"),v=i(E=>{let{fromToken:G,toToken:J,inputAmount:te,liquiditySources:H,excludeLiquiditySources:re,disabledLiquiditySources:he,slippage:ye,affiliateRef:_e,affiliatePercent:Bt,affiliateWallets:Rt}=E;if(k||N(!0),!$&&G&&J){u();let rt=Zo({fromToken:G,toToken:J,inputAmount:te,liquiditySources:H,excludeLiquiditySources:re,disabledLiquiditySources:he,slippage:ye,affiliateRef:_e,affiliatePercent:Bt,affiliateWallets:Rt});$o("experimentalRoute",r)&&(rt.experimental=!0),t(rt).then(Qe=>{T(!1),m(Qe),Wn(Qe);let D=Ro(Qe,{fromToken:G,toToken:J,userSlippage:S,tokens:s});L(D)}).catch(Qe=>{let{error:D}=Ln(Qe);(D?.type===0||D?.type===1)&&u(),D?.type!==2&&(w(D),T(!1))})}},"fetch"),_=Wg(bs(E=>{$||v(E)},Ng),[$]);return Lg(()=>{if(!eo(p)||c?.eq(0)){N(!1),e();return}if(!$)return u(),N(!0),_({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:b,slippage:S,affiliateRef:y,affiliatePercent:C,affiliateWallets:h}),e},[p,a?.symbol,a?.address,a?.blockchain,l?.symbol,l?.address,l?.blockchain,$,o?.length,n,b.length,S,y,C,JSON.stringify(h)]),{fetch:()=>v({inputAmount:p,fromToken:a,toToken:l,liquiditySources:o,excludeLiquiditySources:n,disabledLiquiditySources:b,slippage:S,affiliateRef:y,affiliatePercent:C,affiliateWallets:h}),loading:k,error:x,warning:A}}i(Kp,"useSwapInput");var Fg=Si("div",{display:"flex",flexDirection:"column",overflowY:"visible","& .quote__container":{paddingTop:"$2"}}),Og=Si("div",{position:"relative"}),Ug=Si("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"});function Yp(){let t=Dg(),{fetch:e,loading:o,error:n,warning:r}=Kp(),{fromToken:s,fromBlockchain:a,toToken:l,toBlockchain:p,setInputAmount:c,inputAmount:u,inputUsdValue:m,outputAmount:g,outputUsdValue:f,quote:C,resetQuoteWallets:y,setQuoteWarningsConfirmed:h}=O(),b=d().fetchStatus,{connectedWallets:k,getBalanceFor:T}=z(),x=Te.use.setCurrentPage(),[w,A]=_g(!1),L=Mg(null),S=!!a&&Os(k,a.name),P=!1,$=!xr(C,u,m),N=!xr(C,u,f),v=ta({fetchMetaStatus:b,fetchingQuote:o,inputAmount:u,quote:C,anyWalletConnected:k.length>0,error:n,warning:r,needsToWarnEthOnPath:P}),_=s?T(s):null,E=Go(_)?.amount??"0",G=a&&s?I(_?.amount,_?.decimals):"0";$g(()=>(x(M.home),y(),x.bind(null,"")),[]);let J=!m||!f||!f.gt(0)?null:Ne(m.toString(),f.toString());return $e.createElement(K,{ref:L,fixedHeight:!1,hasLogo:!0,footer:$e.createElement(Bg,{type:"primary",size:"large",disabled:v.disabled,prefix:v.action==="confirm-warning"&&$e.createElement(Pg,null),fullWidth:!0,onClick:()=>{v.action==="connect-wallet"?t(M.wallets):v.action==="confirm-warning"?A(!0):t(M.confirmSwap)}},v.title),header:{onWallet:()=>{t(M.wallets)},hasBackButton:!1,title:yi.t("Swap"),suffix:$e.createElement(Dr,{layoutRef:L.current,onClickRefresh:C||n?e:void 0,onClickHistory:()=>t(M.swaps),onClickSettings:()=>t(M.settings)})}},$e.createElement(Fg,null,$e.createElement(Ug,null,$e.createElement(Og,null,$e.createElement(Xp,{label:yi.t("From"),mode:"From",onInputChange:c,balance:E,chain:{displayName:a?.displayName||"",image:a?.logo||""},token:{displayName:s?.symbol||"",image:s?.image||""},onClickToken:()=>t(M.fromSwap),price:{value:u,usdValue:$?void 0:I(m,4,4),error:$?Q().unknownPriceError.impactTitle:void 0},disabled:b==="failed",loading:b==="loading",loadingBalance:S,onSelectMaxBalance:()=>{E!=="0"&&c(G.split(",").join(""))}}),$e.createElement(jp,null)),$e.createElement(Xp,{sharpBottomStyle:!!C?.result||o,label:yi.t("To"),mode:"To",fetchingQuote:o,chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:l?.symbol||"",image:l?.image||""},percentageChange:I(Ne(m,f),2,2),warningLevel:it(J??0),price:{value:I(g,6,6),usdValue:N?void 0:I(f,4,4),error:N?Q().unknownPriceError.impactTitle:void 0},onClickToken:()=>t(M.toSwap),disabled:b==="failed",loading:b==="loading"})),$e.createElement("div",{className:"quote__container"},$e.createElement(go,{quote:C,loading:o,error:n,warning:r,type:"basic",refetchQuote:e,showWarningModal:w,onOpenWarningModal:()=>A(!0),onCloseWarningModal:()=>A(!1),onConfirmWarningModal:()=>{A(!1),h(!0),t(M.confirmSwap)},onChangeSettings:()=>t(M.settings)}))))}i(Yp,"Home");import{i18n as Jp}from"@lingui/core";import{List as qg,ListItemButton as zg,Radio as Gg,RadioRoot as Hg,Typography as Qg}from"@rango-dev/ui";import kt from"react";import{styled as _n}from"@rango-dev/ui";var pt=_n("div",{height:"100%",overflow:"hidden"}),So=_n("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"auto"}),Ci=_n("div",{width:80,display:"flex",justifyContent:"flex-end"}),ki=_n("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Dn(){let{setLanguage:t,language:e}=d();return{activeLanguage:e,languages:qs,defaultLanguage:_t,changeLanguage:r=>t(r||_t)}}i(Dn,"useLanguage");function Zp(){let{activeLanguage:t,changeLanguage:e,languages:o}=Dn(),n=o.map(r=>{let{local:s,label:a,SVGFlag:l}=r;return{id:s,value:s,title:kt.createElement(Qg,{variant:"title",size:"xmedium"},a),onClick:()=>e(r.local),end:kt.createElement(Gg,{value:s}),start:kt.createElement(l,null)}});return kt.createElement(K,{header:{title:Jp.t("Language")}},kt.createElement(pt,null,kt.createElement(Hg,{value:t},kt.createElement(qg,{type:kt.createElement(zg,{title:Jp.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}i(Zp,"LanguagePage");import{i18n as Qt}from"@lingui/core";import{Button as Yg,Checkbox as Jg,Image as Zg,ListItemButton as Rg,NotFound as eh,Typography as th}from"@rango-dev/ui";import ge,{useState as oh}from"react";import{Checkbox as Kg,Skeleton as ec}from"@rango-dev/ui";import Co from"react";import{ListItem as Vg,styled as jg}from"@rango-dev/ui";var Rp=jg(Vg,{height:61});var Xg=30;function Ti(){return Co.createElement(So,null,Array.from(Array(Xg),t=>Co.createElement(Rp,{hasDivider:!0,key:t,start:Co.createElement(ec,{variant:"circular",width:35,height:35}),title:Co.createElement(ec,{variant:"text",size:"large",width:90}),end:Co.createElement(Kg,{checked:!1})})))}i(Ti,"LoadingLiquiditySourceList");function wi({sourceType:t}){let e=d().fetchStatus,o=d().swappers(),n=d().disabledLiquiditySources,[r,s]=oh(""),a=d().toggleLiquiditySource,l=Po(o,n),p=[];t==="Exchanges"&&p.push("DEX"),t==="Bridges"&&(p.push("BRIDGE"),p.push("AGGREGATOR"));let c=l.filter(y=>p.includes(y.type)),u=c.length===c.filter(y=>y.selected).length,m=i(()=>{c.forEach(y=>{u?a(y.groupTitle):y.selected||a(y.groupTitle)})},"toggleAllSources"),g=c.map(y=>{let{selected:h,groupTitle:b,logo:k}=y;return{start:ge.createElement(Zg,{src:k,size:22,type:"circular"}),onClick:()=>a(b),end:ge.createElement(Jg,{checked:h}),title:ge.createElement(th,{variant:"title",size:"xmedium"},Qt.t(b)),...y}}),f=i(y=>{let h=y.target.value;s(h)},"searchHandler"),C=g;return r&&(C=g.filter(y=>je(y.groupTitle,r))),ge.createElement(K,{header:{title:Qt.t(t),suffix:ge.createElement(Ci,null,ge.createElement(Yg,{variant:"ghost",size:"xsmall",onClick:m},Qt.t(u?"Deselect all":"Select all")))}},ge.createElement(pt,null,ge.createElement(lt,{value:r,setValue:s,fullWidth:!0,color:"light",variant:"contained",placeholder:Qt.t("Search {sourceType}",{sourceType:t}),onChange:f}),e==="loading"&&ge.createElement(Ti,null),!C.length&&r?ge.createElement(ki,null,ge.createElement(eh,{title:Qt.t("No results found"),description:Qt.t("Try using different keywords")})):e==="success"&&ge.createElement(So,null,C.map(y=>ge.createElement(ge.Fragment,{key:y.id},ge.createElement(Rg,{style:{height:"61px"},...y,selected:!1,hasDivider:!0}))))))}i(wi,"LiquiditySourcePage");import{i18n as lc}from"@lingui/core";import{Divider as Ai,getCountCategories as mh,SelectableCategoryList as dh}from"@rango-dev/ui";import ct,{useState as pc}from"react";import{i18n as vi}from"@lingui/core";import{Divider as sc,Image as ah,ListItemButton as lh,NotFound as ph,Typography as ac}from"@rango-dev/ui";import Me,{useEffect as ch,useState as uh}from"react";import{BlockchainCategories as xi}from"@rango-dev/ui";import{TransactionType as Fn}from"rango-sdk";var nh=i((t,e)=>{switch(e){case xi.ALL:return!0;case xi.UTXO:return t.type===Fn.TRANSFER;case xi.OTHER:return t.type!==Fn.TRANSFER&&t.type!==Fn.COSMOS&&t.type!==Fn.EVM;default:return t.type===e}},"filterByType"),tc=i((t,e,o)=>t.filter(n=>nh(n,o)).filter(n=>wt(n.name,e)||wt(n.displayName,e)),"filterBlockchains");import{ImageContainer as rh,styled as oc}from"@rango-dev/ui";var nc=oc("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),On=oc("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",[`& ${rh}`]:{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as ih,Skeleton as rc}from"@rango-dev/ui";import Un from"react";var sh=20;function ic(){return Un.createElement(On,null,Array.from(Array(sh),t=>Un.createElement(ih,{key:t,hasDivider:!0,start:Un.createElement(rc,{variant:"circular",width:35,height:35}),title:Un.createElement(rc,{variant:"text",size:"large",width:90})})))}i(ic,"LoadingBlockchainList");function bi(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=uh(e),{fetchStatus:l}=d();ch(()=>{a([...tc(e,o,r)])},[e,o,r]);let p=i(()=>!s.length&&o?Me.createElement(Me.Fragment,null,Me.createElement(sc,{size:32}),Me.createElement(ph,{title:vi.t("No results found"),description:vi.t("Try using different keywords")})):Me.createElement(On,{key:`${r}-${o}`},s.map(c=>Me.createElement(lh,{key:`${c.name}-${c.chainId}`,hasDivider:!0,onClick:()=>n(c),start:Me.createElement(ah,{src:c.logo,size:30}),title:Me.createElement(ac,{variant:"title",size:"medium"},c.displayName),id:c.chainId}))),"renderList");return Me.createElement(nc,null,Me.createElement(ac,{variant:"label",size:"large"},vi.t("Select Blockchain")),Me.createElement(sc,{size:4}),l==="loading"&&Me.createElement(ic,null),l==="success"&&p())}i(bi,"BlockchainList");function Ei(t){let{type:e}=t,o=ht(),[n,r]=pc(""),[s,a]=pc("ALL"),l=O.use.setToBlockchain(),p=O.use.setFromBlockchain(),c=d().fetchStatus,u=d().blockchains({type:e}),g=mh(u)!==1;return ct.createElement(K,{header:{title:lc.t("Select Blockchain")}},ct.createElement(Ai,{size:12}),g&&ct.createElement(ct.Fragment,null,ct.createElement(dh,{setCategory:a,category:s,blockchains:u,isLoading:c==="loading"}),ct.createElement(Ai,{size:24})),ct.createElement(lt,{value:n,autoFocus:!0,placeholder:lc.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>r(""),onChange:f=>r(f.target.value)}),ct.createElement(Ai,{size:16}),ct.createElement(bi,{list:u,searchedFor:n,blockchainCategory:s,onChange:f=>{e==="source"?p(f):l(f),o()}}))}i(Ei,"SelectBlockchainPage");import{i18n as Lc}from"@lingui/core";import{Divider as Nc}from"@rango-dev/ui";import Kt,{useState as Nh}from"react";import{useNavigate as Bh}from"react-router-dom";import{i18n as Li}from"@lingui/core";import{BlockchainsChip as qn,Divider as dc,Image as fc,Skeleton as Sh,Tooltip as Ch,Typography as Ni}from"@rango-dev/ui";import le from"react";import{useEffect as hh}from"react";var cc=["ETH","COSMOS","OSMOSIS"];function Ii(t,e,o){let n=JSON.parse(JSON.stringify(t)),r=[];if(n.sort(fh),o?.limit&&t.length>o.limit){let s=o.limit,a=e;if(e.length<=o.limit){let l=o.limit-e.length;for(let p=0;p<=l;p++){let c=n[p];a=a.filter(u=>c.name!==u)}}n.sort(gh(a)),r=n.splice(s)}return{list:n,more:r}}i(Ii,"prepare");function fh(t,e){let o=cc,n=o.findIndex(l=>l===t.name),r=o.findIndex(l=>l===e.name),s=n>-1,a=r>-1;return s&&a?n>r?1:-1:s?-1:a?1:0}i(fh,"sortByMostUsedBlockchains");function gh(t){return i(function(o,n){let r=t.findIndex(p=>p===o.name),s=t.findIndex(p=>p===n.name),a=r>-1,l=s>-1;return a&&l?r>s?1:-1:t.includes(o.name)?-1:t.includes(n.name)?1:0},"sortByPreferred")}i(gh,"generateSortByPreferredBlockchainsFor");function uc(t,e){return!!e.list.find(o=>o.name===t)}i(uc,"isInVisibleList");function Wi(t,e){let{preferredBlockchains:o,addPreferredBlockchain:n}=d();hh(()=>{if(e?.selected){let s=Ii(t,o,e);uc(e.selected,s)||n(e?.selected)}},[e?.selected]);let r=Ii(t,o,e);return{list:r.list,more:r.more,history:[]}}i(Wi,"usePrepareBlockchainList");import{styled as yh}from"@rango-dev/ui";var mc=yh("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var kh=12;function Bi(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=Wi(e,{limit:10,selected:n?.name}),{fetchStatus:l}=d(),p=O.use.resetToBlockchain(),c=O.use.resetFromBlockchain(),u=a.more.length>0,m=a.more.length===1,g=!m&&u;return le.createElement(le.Fragment,null,le.createElement(dc,{size:12}),le.createElement(Ni,{variant:"label",size:"large"},Li.t("Select Blockchain")),le.createElement(dc,{size:12}),le.createElement(mc,null,l==="loading"&&Array.from(Array(kh),f=>le.createElement(Sh,{key:f,variant:"rounded",height:50})),l==="success"&&le.createElement(le.Fragment,null,le.createElement(qn,{selected:!n,onClick:()=>{o==="from"?c():p()}},le.createElement(Ni,{variant:"body",size:"xsmall",color:"secondary500"},Li.t("All"))),a.list.map(f=>le.createElement(Ch,{key:f.name,content:f.shortName,side:"bottom",sideOffset:2,container:j()},le.createElement(qn,{key:f.name,selected:!!n&&n.name===f.name,onClick:()=>r(f)},le.createElement(fc,{src:f.logo,size:30})))),m?le.createElement(qn,{key:a.more[0].name,selected:!!n&&n.name===a.more[0].name,onClick:()=>r(a.more[0])},le.createElement(fc,{src:a.more[0].logo,size:30})):null,g?le.createElement(qn,{onClick:s,key:"more-blockchains"},le.createElement(Ni,{variant:"body",size:"xsmall",color:"secondary500"},Li._("More +{count}",{count:a.more.length}))):null)))}i(Bi,"BlockchainsSection");import{i18n as Gi}from"@lingui/core";import{darkTheme as bc,Divider as jt,ExternalLinkIcon as xh,Image as vh,ListItemButton as bh,NotFound as Ah,PinIcon as Eh,Skeleton as Ac,Typography as Qn,VirtualizedList as Ih}from"@rango-dev/ui";import F,{forwardRef as Wh,useEffect as Ec,useState as Ic}from"react";var gc=i((t,e)=>{t=t.replace(/^#/,""),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let[s,a,l]=t.match(/.{2}/g);[s,a,l]=[parseInt(s,16)+e,parseInt(a,16)+e,parseInt(l,16)+e],s=Math.max(Math.min(255,s),0).toString(16),a=Math.max(Math.min(255,a),0).toString(16),l=Math.max(Math.min(255,l),0).toString(16);let p=(s.length<2?"0":"")+s,c=(a.length<2?"0":"")+a,u=(l.length<2?"0":"")+l;return`#${p}${c}${u}`},"colorShade"),zn=i((t,e)=>{let a={[t]:e};for(let l=1;l<10;l++)l<5&&(a={...a,[t+l*100]:gc(e,(5-l)*25)}),l===5&&(a={...a,[t+l*100]:e}),l>5&&(a={...a,[t+l*100]:gc(e,-((l-5)*25))});return a},"generateRangeColors"),Pi=i((t,e,o)=>{if(!o||!Object.entries(o).length)return{};let n=!1,r={...t};for(let s in o){let a=o[s];if(a&&a!==t[s])if(n=!0,s==="background"||s==="foreground")r={...r,[s]:a};else if(s==="neutral"&&e){let l=zn(s,a);r={...r,[`${s}100`]:l[`${s}900`],[`${s}200`]:l[`${s}800`],[`${s}300`]:l[`${s}700`],[`${s}400`]:l[`${s}600`],[`${s}500`]:l[`${s}500`],[`${s}600`]:l[`${s}400`],[`${s}700`]:l[`${s}300`],[`${s}800`]:l[`${s}200`],[`${s}900`]:l[`${s}100`]}}else r={...r,...zn(s,a)}}return n?r:{}},"generateColors");import{Divider as xc,ListItem as wh,Skeleton as ko}from"@rango-dev/ui";import Ge from"react";import{css as Vt,darkTheme as hc,ImageContainer as Th,styled as ze,Typography as yc}from"@rango-dev/ui";var $i=Vt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}),Mi=Vt({position:"relative",height:12,width:"30%",maxWidth:"150px"}),_i=Vt({position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",bottom:"-8px"}),Di=Vt({transform:"translateY(12px)",visibility:"hidden","& a":{display:"flex",justifyContent:"center",alignItems:"center",fontSize:"$12",lineHeight:"$16",$$color:"$colors$neutral600",[`.${hc} &`]:{$$color:"$colors$neutral700"},color:"$$color",textDecoration:"none"}}),Fi=Vt({}),Oi=Vt(),Sc=ze("div",{display:"flex",flexDirection:"column",flexGrow:1}),Ui=ze("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Gn=ze("ul",{flexGrow:1,padding:0,margin:0,listStyle:"none","& li":{alignItems:"none","&:hover":{[`& .${Mi}`]:{[`& .${Di}`]:{position:"absolute",transform:"none",transition:"transform 225ms cubic-bezier(0, 0, 0.2, 1) 0ms",visibility:"visible"},[`& .${Fi}`]:{bottom:"-15px"},[`& .${$i}`]:{position:"absolute",transform:"translateY(-12px)",visibility:"hidden"},[`& .${_i}`]:{position:"absolute",transform:"translateY(-12px)",bottom:"-10px"}}}}}),qi=ze("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),zi=ze(yc,{}),Cc=ze("div",{textAlign:"right",width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",[`& .${Oi}`]:{$$color:"$colors$neutral600",[`.${hc} &`]:{$$color:"$colors$neutral700"},color:"$$color"}}),Hn=ze("div",{display:"flex",alignItems:"end",flexDirection:"column"}),qL=ze("div",{display:"flex",alignItems:"center"}),kc=ze("div",{position:"relative",[`& ${Th}`]:{borderRadius:"$xm",overflow:"hidden"}}),Tc=ze("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6}),wc=ze(yc,{width:"100%",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"});function vc(t){return Ge.createElement(Gn,null,Array.from(Array(t.size),e=>Ge.createElement(wh,{key:e,hasDivider:!0,start:Ge.createElement(ko,{variant:"circular",width:35,height:35}),end:Ge.createElement(Hn,null,Ge.createElement(ko,{variant:"text",size:"large",width:70}),Ge.createElement(xc,{size:4}),Ge.createElement(ko,{variant:"text",size:"medium",width:50})),title:Ge.createElement("div",null,Ge.createElement(ko,{variant:"text",size:"large",width:90}),Ge.createElement(xc,{size:4}),Ge.createElement(ko,{variant:"text",size:"medium",width:90}))})))}i(vc,"LoadingTokenList");var Hi=20,Lh=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,l=e.length;return F.createElement("div",{className:Mi()},o?F.createElement("div",{className:$i()},o):F.createElement(Ui,{className:_i()},F.createElement(Qn,{variant:"title",size:"xmedium"},r.symbol),F.createElement(jt,{direction:"horizontal",size:4}),F.createElement(qi,{css:s},F.createElement(zi,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&F.createElement("div",{className:`${Di()} ${!o&&Fi()}`},F.createElement("a",{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:p=>p.stopPropagation()},l>10?`${e.slice(0,5)}...${e.slice(l-6,l)}`:e," ",F.createElement(jt,{size:4,direction:"horizontal"}),F.createElement(xh,{color:"gray",size:12}))))},"renderDesc");function Wc(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=Ic(e),l=d().fetchStatus,p=d().blockchains(),[c,u]=Ic(!0),{getBalanceFor:m,loading:g}=z(),{isTokenPinned:f}=d(),C=Wh((b,k)=>F.createElement("div",{...b,ref:k,style:{...b.style,height:`${parseFloat(b.style?.height)+8*2}px`}})),y=i(()=>{a(e.slice(0,s.length+Hi))},"loadNextPage");Ec(()=>{u(e.length>s.length)},[s.length]),Ec(()=>{a(e.slice(0,Hi))},[e]);let h=i(()=>!s.length&&o?F.createElement(F.Fragment,null,F.createElement(jt,{size:32}),F.createElement(Ah,{title:Gi.t("No results found"),description:Gi.t("Try using different keywords")})):F.createElement(Ih,{Item:({index:b,style:k})=>{let T=s[b],x=Go(m(T)),w=T.address||"",A=p.find($=>$.name===T.blockchain),L=zn(T.symbol,A?.color||""),S={$$color:L[`${T.symbol}100`],[`.${bc} &`]:{$$color:L[`${T.symbol}900`]},backgroundColor:"$$color"},P={$$color:L[`${T.symbol}700`],[`.${bc} &`]:{$$color:L[`${T.symbol}100`]},color:"$$color"};return F.createElement("div",{style:{...k,paddingRight:5}},F.createElement(bh,{style:{height:k?.height,width:"100%",overflow:"hidden"},"tab-index":b,key:`${T.symbol}${T.address}`,id:`${T.symbol}${T.address}`,hasDivider:!0,onClick:()=>n(s[b]),start:F.createElement(kc,null,F.createElement(vh,{src:T.image,size:30}),f(T,t.type)&&F.createElement(Tc,null,F.createElement(Eh,{size:12,color:"gray"}))),title:A?.type==="COSMOS"||T.name||!T.name&&!w?F.createElement(Ui,null,F.createElement(Qn,{variant:"title",size:"xmedium"},T.symbol),F.createElement(jt,{direction:"horizontal",size:4}),F.createElement(qi,{css:S},F.createElement(zi,{variant:"body",size:"xsmall",css:P},T.blockchain))):void 0,description:A?.info&&w&&A.type!=="COSMOS"?Lh({address:w,token:s[b],customCssForTag:S,customCssForTagTitle:P,name:T.name,url:A.info.addressUrl.split("{wallet}").join(w)}):T.name||void 0,end:g?F.createElement(Hn,null,F.createElement(Ac,{variant:"text",size:"large",width:70}),F.createElement(jt,{size:4}),F.createElement(Ac,{variant:"text",size:"medium",width:50})):x&&F.createElement(Cc,null,F.createElement(wc,{variant:"title",size:"small"},x.amount),F.createElement("div",null),x.usdValue&&F.createElement(Qn,{variant:"body",className:Oi(),size:"xsmall"},`$${x.usdValue}`))}))},hasNextPage:c,itemCount:s.length,loadNextPage:y,innerElementType:C,size:60,key:`${r}-${o}`}),"renderList");return F.createElement(Sc,null,F.createElement(Qn,{variant:"label",size:"large"},Gi.t("Select Token")),F.createElement(jt,{size:4}),l==="loading"&&F.createElement(vc,{size:Hi}),l==="success"&&F.createElement(Gn,null,h()))}i(Wc,"TokenList");function Qi(t){let{type:e}=t,o=Bh(),n=ht(),{fromBlockchain:r,toBlockchain:s,setFromToken:a,setToToken:l,setFromBlockchain:p,setToBlockchain:c}=O(),u=z.use.getBalanceFor(),[m,g]=Nh(""),{isTokenPinned:f}=d(),y=(e==="source"?r:s)?.name??"",h=d().blockchains({type:e}),b=d().tokens({type:e,blockchain:y,searchFor:m}),T=_s(b,u,i(A=>f(A,e),"checkIsTokenPinned")),x=i(A=>{e==="source"?p(A):c(A)},"updateBlockchain"),w=i(A=>{e==="source"?a({token:A,meta:{blockchains:h,tokens:b}}):l({token:A,meta:{blockchains:h,tokens:b}})},"updateToken");return Kt.createElement(K,{header:{title:Lc.t("Swap {type}",{type:e})}},Kt.createElement(Bi,{blockchains:h,type:e=="source"?"from":"to",blockchain:e==="source"?r:s,onMoreClick:()=>o(M.blockchains),onChange:A=>{x(A)}}),Kt.createElement(Nc,{size:24}),Kt.createElement(lt,{value:m,autoFocus:!0,placeholder:Lc.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>g(""),onChange:A=>g(A.target.value)}),Kt.createElement(Nc,{size:16}),Kt.createElement(Wc,{list:T,selectedBlockchain:y,searchedFor:m,type:e,onChange:A=>{w(A);let L=h.find(S=>A.blockchain===S.name);L&&x(L),n()}}))}i(Qi,"SelectSwapItemsPage");import{i18n as Lt}from"@lingui/core";import{ChevronRightIcon as Ki,Divider as Xi,InfoIcon as Uh,List as qh,ListItemButton as zh,Skeleton as Gh,Switch as Hh,Tooltip as Qh,Typography as Nt}from"@rango-dev/ui";import V from"react";import{useNavigate as Vh}from"react-router-dom";import{i18n as Dc}from"@lingui/core";import{Divider as _h,InfoIcon as Dh,TextField as Fh,Tooltip as Oh,Typography as Fc}from"@rango-dev/ui";import Ie from"react";import{Chip as Ph,styled as To,TextField as $h}from"@rango-dev/ui";var Bc=To("div",{paddingTop:"$5",padding:"$10 $5"}),Pc=To("div",{display:"flex",flexWrap:"wrap",gap:"$10",[`& ${$h}`]:{flex:"1 1 0",maxWidth:"127px",minWidth:"85px"}}),$c=To("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),Vn=To("div",{maxWidth:"280px",padding:"$10"}),Mc=To(Ph,{width:"61px",flexShrink:0});import{i18n as Vi}from"@lingui/core";import{Typography as Mh}from"@rango-dev/ui";import wo from"react";function _c(){return wo.createElement(Vn,null,wo.createElement(Mh,{variant:"label",size:"medium",color:"neutral700"},Vi.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),wo.createElement("br",null),wo.createElement("br",null),wo.createElement("b",null,Vi.t("Warning")),":",Vi.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}i(_c,"SlippageTooltipContent");function ji(){let{slippage:t,setSlippage:e,customSlippage:o,setCustomSlippage:n}=d();return Ie.createElement(Bc,null,Ie.createElement($c,null,Ie.createElement(Fc,{variant:"title",size:"xmedium"},Dc.t("Slippage tolerance per swap")),Ie.createElement(_h,{direction:"horizontal",size:4}),Ie.createElement(Oh,{container:j(),side:"top",sideOffset:4,content:Ie.createElement(_c,null)},Ie.createElement(Dh,{color:"gray"}))),Ie.createElement(Pc,null,zs.map((r,s)=>{let a=`slippage-${s}`;return Ie.createElement(Ie.Fragment,null,Ie.createElement(Mc,{key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}))}),Ie.createElement(Fh,{type:"number",min:"0.01",max:"30",step:"0.01",fullWidth:!0,variant:"contained",value:o||"",color:"dark",onChange:r=>{let s=parseFloat(r.target.value);(!s||s>=Vs&&s<=Qs)&&n(s)},suffix:o&&Ie.createElement(Fc,{variant:"body",size:"small"},"%"),placeholder:Dc.t("Custom")})))}i(ji,"Slippage");function Oc(){let t=Vh(),{theme:e}=d().config,o=d().fetchStatus,n=d().swappers(),r=d().disabledLiquiditySources,{config:{features:s}}=d(),a=We("theme",s),l=We("liquiditySource",s),p=We("language",s),c=d().infiniteApprove,u=d().toggleInfiniteApprove,m=Po(n,r),g=m.filter(S=>S.type==="BRIDGE"||S.type==="AGGREGATOR"),f=g.length,C=g.filter(S=>S.selected).length,y=m.filter(S=>S.type==="DEX"),h=y.length,b=y.filter(S=>S.selected).length,k=i((S,P)=>{switch(o){case"loading":return V.createElement(Gh,{variant:"text",size:"medium",width:50});case"failed":return V.createElement(Nt,{variant:"body",size:"medium",color:"$error500"},Lt.t("Loading failed"));default:return V.createElement(Nt,{variant:"body",size:"medium"},`${S} / ${P}`)}},"handleEndItem"),T={id:"bridge-item",title:V.createElement(Nt,{variant:"title",size:"xmedium"},Lt.t("Enabled bridges")),end:V.createElement(V.Fragment,null,k(C,f),V.createElement(Xi,{direction:"horizontal",size:8}),V.createElement(Ki,{color:"black"})),onClick:()=>t(M.bridges)},x={id:"exchange-item",title:V.createElement(Nt,{variant:"title",size:"xmedium"},Lt.t("Enabled exchanges")),end:V.createElement(V.Fragment,null,k(b,h),V.createElement(Xi,{direction:"horizontal",size:8}),V.createElement(Ki,{color:"gray"})),onClick:()=>t(M.exchanges)},w={id:"theme-item",title:V.createElement(Nt,{variant:"title",size:"xmedium"},Lt.t("Theme")),end:V.createElement(Ki,{color:"gray"}),onClick:()=>t(M.themes)},A={id:"infinite-approval-item",title:V.createElement(V.Fragment,null,V.createElement(Nt,{variant:"title",size:"xmedium"},Lt.t("Infinite approval")),V.createElement(Xi,{direction:"horizontal",size:4}),V.createElement(Qh,{side:"top",sideOffset:4,container:j(),content:V.createElement(Vn,null,V.createElement(Nt,{variant:"label",size:"medium",color:"neutral700"},Lt.t("Enabling the 'Infinite approval' mode grants unrestricted access to smart contracts of DEXes/Bridges, allowing them to utilize the approved token amount without limitations.")))},V.createElement(Uh,{color:"gray"}))),end:V.createElement(Hh,{checked:c}),onClick:u},L=l?[]:[T,x];return!e?.singleTheme&&!a&&L.push(w),L.push(A),V.createElement(K,{header:{title:Lt.t("Settings")}},V.createElement(pt,null,V.createElement(ji,null),V.createElement(qh,{type:V.createElement(zh,{title:"_",id:"_",onClick:()=>console.log()}),items:L})))}i(Oc,"SettingsPage");import{cancelSwap as Uy}from"@rango-dev/queue-manager-rango-preset";import{useManager as qy}from"@rango-dev/queue-manager-react";import yu from"react";import{i18n as ut}from"@lingui/core";import{getCurrentBlockchainOfOrNull as Ty,getCurrentStep as wy,getRelatedWalletOrNull as xy}from"@rango-dev/queue-manager-rango-preset";import{Button as cu,CopyIcon as vy,Divider as by,IconButton as Ay,QuoteCost as Ey,StepDetails as Iy,Typography as Jt,useCopyToClipboard as Wy}from"@rango-dev/ui";import{useWallets as Ly}from"@rango-dev/wallets-react";import{PendingSwapNetworkStatus as rr}from"rango-types";import X,{useEffect as uu,useRef as Ny,useState as mu}from"react";import{useNavigate as By}from"react-router-dom";import{i18n as we}from"@lingui/core";var jh=1e3,Kh=31536e3,Xh=2592e3,Yh=86400,Jh=3600,Zh=60;function Uc(t){let e=Math.floor((Date.now()-t)/jh),n=[{turningPoint:Kh,label:we.t("year"),pluralLabel:we.t("years")},{turningPoint:Xh,label:we.t("month"),pluralLabel:we.t("months")},{turningPoint:Yh,label:we.t("day"),pluralLabel:we.t("days")},{turningPoint:Jh,label:we.t("hour"),pluralLabel:we.t("hours")},{turningPoint:Zh,label:we.t("minute"),pluralLabel:we.t("minutes")}].sort((r,s)=>s.turningPoint-r.turningPoint);for(let r of n){let{turningPoint:s,label:a,pluralLabel:l}=r,p=Math.floor(e/s);if(p>1)return`${p} ${l}`;if(p===1)return`${p} ${a}`}return e>1?`${e} ${we.t("seconds")}`:`${e} ${we.t("second")}`}i(Uc,"timeSince");function qc(t){return t.finishTime?we.t({id:"{time} ago",values:{time:Uc(parseInt(t.finishTime))}}):we.t({id:"{time} ago",values:{time:Uc(parseInt(t.creationTime))}})}i(qc,"getSwapDate");import{Modal as iy}from"@rango-dev/ui";import{PendingSwapNetworkStatus as Xn}from"rango-types";import Yn from"react";import{i18n as jn}from"@lingui/core";import{Button as zc,Divider as Yi,MessageBox as Rh,Typography as Gc}from"@rango-dev/ui";import ot from"react";var Hc=i(({onCancel:t,onClose:e})=>ot.createElement(ot.Fragment,null,ot.createElement(Yi,{size:20}),ot.createElement(Rh,{type:"error",title:jn.t("Cancel Swap"),description:jn.t("Are you sure you want to cancel this swap?")}),ot.createElement(Yi,{size:32}),ot.createElement(zc,{variant:"contained",type:"primary",size:"large",onClick:t},ot.createElement(Gc,{variant:"title",size:"medium",color:"neutral100"},jn.t("Yes, Cancel it"))),ot.createElement(Yi,{size:12}),ot.createElement(zc,{variant:"outlined",type:"primary",size:"large",onClick:e},ot.createElement(Gc,{variant:"title",size:"medium",color:"primary"},jn.t("No, Continue")))),"CancelContent");import{i18n as Kn}from"@lingui/core";import{Button as Qc,Divider as Ji,MessageBox as ey,Typography as Vc}from"@rango-dev/ui";import nt from"react";var jc=i(({onDelete:t,onClose:e})=>nt.createElement(nt.Fragment,null,nt.createElement(Ji,{size:20}),nt.createElement(ey,{type:"error",title:Kn.t("Delete Transaction"),description:Kn.t("Are you sure you want to delete this swap?")}),nt.createElement(Ji,{size:32}),nt.createElement(Qc,{variant:"contained",type:"primary",size:"large",onClick:t},nt.createElement(Vc,{variant:"title",size:"medium",color:"neutral100"},Kn.t("Yes, Delete it"))),nt.createElement(Ji,{size:12}),nt.createElement(Qc,{variant:"outlined",type:"primary",size:"large",onClick:e},nt.createElement(Vc,{variant:"title",size:"medium",color:"primary"},Kn.t("No, Cancel")))),"DeleteContent");import{i18n as Zi}from"@lingui/core";import{PendingSwapNetworkStatus as Ri}from"rango-types";var es={[Ri.WaitingForNetworkChange]:{type:"loading",title:Zi.t("Change Network")},[Ri.WaitingForConnectingWallet]:{type:"warning",title:Zi.t("Connect Wallet")},[Ri.NetworkChanged]:{type:"success",title:Zi.t("Network Changed")}};import{MessageBox as oy,Wallet as ny}from"@rango-dev/ui";import{useWallets as ry}from"@rango-dev/wallets-react";import xo from"react";import{styled as ty}from"@rango-dev/ui";var Kc=ty("div",{display:"flex",justifyContent:"center"});var Xc=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s}=t,{connect:a,getWalletInfo:l,state:p}=ry(),c=n?.walletType,u=c?hr(p(c)):null,m=c?l(c):null;return xo.createElement(xo.Fragment,null,xo.createElement(oy,{type:e,title:o,description:r}),s&&!!c&&!!u&&!!m&&xo.createElement(Kc,null,xo.createElement(ny,{container:j(),title:m.name,image:m.img,type:c,state:u,link:m.installLink,onClick:async()=>a(c)})))},"WalletStateContent");function ts(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:s,message:a}=t,l=e===Xn.WaitingForNetworkChange||e===Xn.WaitingForConnectingWallet||e===Xn.NetworkChanged;return Yn.createElement(iy,{open:!!e,onClose:o,container:document.getElementById("swap-box")||document.body},l&&Yn.createElement(Xc,{type:es[e].type,title:es[e].title,currentStepWallet:s,message:a,showWalletButton:e!==Xn.WaitingForNetworkChange}),e==="delete"&&Yn.createElement(jc,{onClose:o,onDelete:n}),e==="cancel"&&Yn.createElement(Hc,{onClose:o,onCancel:r}))}i(ts,"SwapDetailsModal");import{i18n as vo}from"@lingui/core";import{Button as os,Divider as Jn,MessageBox as Yc,Modal as sy,TokenAmount as ay,Typography as Zn}from"@rango-dev/ui";import ue from"react";import{useNavigate as ly}from"react-router-dom";function ns(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:s,token:a,chain:l,percentageChange:p,description:c,diagnosisUrl:u}=t,m=ly();return ue.createElement(sy,{open:e,onClose:o,container:document.getElementById("swap-box")||document.body},n==="success"?ue.createElement(Yc,{type:"success",title:vo.t("Swap Successful")},ue.createElement(ay,{direction:"vertical",type:"output",centerAlign:!0,price:{value:r,usdValue:s},token:a,chain:l,percentageChange:p}),ue.createElement(Jn,{size:12}),ue.createElement(Zn,{variant:"body",size:"medium",color:"neutral700",align:"center"},c)):ue.createElement(Yc,{type:"error",title:vo.t("Transaction Failed"),description:c}),ue.createElement(Jn,{size:32}),n==="success"&&ue.createElement(os,{variant:"contained",type:"primary",size:"large",onClick:()=>{m("../../")}},ue.createElement(Zn,{variant:"title",size:"medium",color:"neutral100"},vo.t("Done"))),ue.createElement(Jn,{size:12}),u&&ue.createElement(ue.Fragment,null,ue.createElement(os,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(u,"_blank")},ue.createElement(Zn,{variant:"title",size:"medium",color:"primary"},vo.t("Diagnosis"))),ue.createElement(Jn,{size:12})),ue.createElement(os,{variant:"outlined",type:"primary",size:"large",onClick:o},ue.createElement(Zn,{variant:"title",size:"medium",color:"primary"},vo.t("See Details"))))}i(ns,"SwapDetailsCompleteModal");import Cy from"react";import{i18n as gy}from"@lingui/core";import{Alert as ou,IconButton as hy,LinkIcon as yy}from"@rango-dev/ui";import Tt,{Fragment as Sy}from"react";import{Alert as py,ChevronDownIcon as cy,ChevronUpIcon as uy,IconButton as my}from"@rango-dev/ui";import Rn,{useState as dy}from"react";function Jc(t){let{message:e}=t,[o,n]=dy(!1);return Rn.createElement(py,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&Rn.createElement(my,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?Rn.createElement(uy,{size:12,color:"gray"}):Rn.createElement(cy,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}i(Jc,"FailedAlert");import{styled as fy}from"@rango-dev/ui";var Zc=fy("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as Rc}from"@lingui/core";import{Alert as rs,Button as eu}from"@rango-dev/ui";import{PendingSwapNetworkStatus as is}from"rango-types";import bo from"react";function tu(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?bo.createElement(rs,{type:"warning",title:n.shortMessage,action:bo.createElement(eu,{size:"xxsmall",type:"warning",onClick:()=>{o(is.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},Rc.t("Change"))}):r===is.WaitingForConnectingWallet?bo.createElement(rs,{type:"warning",title:n.shortMessage,action:bo.createElement(eu,{size:"xxsmall",type:"warning",onClick:()=>{o(is.WaitingForConnectingWallet)}},Rc.t("Connect"))}):bo.createElement(rs,{type:"warning",title:n.shortMessage})}i(tu,"WarningAlert");function ss(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:s,hasAlreadyProceededToSign:a}=t,l=to(s),p=s.status==="waitingForApproval"&&!l,c=s.status==="running"&&!l;return Tt.createElement(Zc,null,s.explorerUrl?.map((u,m,g)=>{let f=m+u.url,C=m===g.length-1,y=C&&c||p,h=C&&s.status==="failed";return Tt.createElement(Sy,{key:f},Tt.createElement(ou,{type:y&&"loading"||h&&"error"||"success",title:u.description?`${u.description} Tx`:gy.t("View transaction"),action:u.url&&Tt.createElement(hy,{variant:"ghost",size:"xsmall",onClick:()=>window.open(u.url,"_blank")},Tt.createElement(yy,{size:16}))}))}),(c&&!a||p&&!s.explorerUrl?.length)&&Tt.createElement(ou,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&l&&Tt.createElement(tu,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&Tt.createElement(Jc,{message:r}))}i(ss,"SwapDetailsAlerts");var nu=2e3;var ru=i(({swap:t,blockchains:e,...o})=>{let n=t.hasAlreadyProceededToSign!==!1;return t.steps.map((r,s)=>{let a=s===0?t.inputAmount:t.steps[s-1].outputAmount;return{from:{token:{displayName:r.fromSymbol,image:r.fromLogo??""},chain:{displayName:Xe(r.fromBlockchain,e)??"",image:r.fromBlockchainLogo??""},price:{value:I(a,6,6)}},to:{token:{displayName:r.toSymbol,image:r.toLogo},chain:{displayName:Xe(r.toBlockchain,e)??"",image:r.toBlockchainLogo??""},price:{value:I(r.outputAmount||r.expectedOutputAmountHumanReadable,6,6)}},swapper:{displayName:r.swapperId,image:r.swapperLogo??""},alerts:Cy.createElement(ss,{step:r,hasAlreadyProceededToSign:n,...o})}})},"getSteps");function iu(t){if(to(t)&&t.status!=="failed"&&t.status!=="success")return"warning";switch(t.status){case"created":return"default";case"approved":case"waitingForApproval":case"running":return"in-progress";case"failed":return"error";case"success":return"completed"}}i(iu,"getStepState");import{css as er,darkTheme as ky,styled as Xt}from"@rango-dev/ui";var tr=Xt("div",{display:"flex",width:"100%",flexDirection:"column",alignItems:"center",height:"0",flexGrow:1}),or=Xt("div",{width:"100%"}),su=Xt("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),xP=Xt("div",{display:"flex",flexDirection:"column",gap:"$10"}),au=Xt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),vP=Xt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1}),Yt=er({display:"flex",width:"100%",justifyContent:"space-between",alignItems:"center",padding:"$10 $20",borderBottom:"1px solid",$$color:"$colors$neutral300",[`.${ky} &`]:{$$color:"$colors$neutral400"},borderColor:"$$color",color:"$neutral500"}),nr=er({display:"flex",justifyContent:"center",alignItems:"center",height:"$24"}),lu=er({display:"flex",width:"100%",padding:"$15 $20 $20",flexDirection:"column",alignItems:"start"}),pu=er({width:"100%",padding:"0 $20 $10"});function as(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:l}=Ly(),p=d().blockchains(),c=d().tokens(),u=O.use.retry(),m=By(),[g,f]=Wy(nu),C=Ny(null),[y,h]=mu(null),[b,k]=mu(null),T=i(()=>{r(),h(null)},"onCancel"),x=Be.use.getUnreadNotifications(),w=Be.use.setAsRead(),A=x(),L=wy(e),S=L?.networkStatus;uu(()=>{A.find(ie=>ie.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(k(e.status),w(e.requestId))},[e.status]),uu(()=>{G?h(rr.WaitingForNetworkChange):S===rr.WaitingForConnectingWallet||S===rr.NetworkChanged?h(S):h(null)},[S]);let P=ca(e),$=L?Ty(e,L):null,N=L?xy(e,L):null,v=qc(e),_=ua(e),E=i(U=>!!l(U)?.mobileWallet,"isMobileWallet"),G=S===rr.WaitingForNetworkChange&&!!$&&!!N?.walletType&&(E(N.walletType)||s(N.walletType,$)),J=G?a.bind(null,N.walletType,$):void 0,te=pa(e,L),H=ru({swap:e,switchNetwork:J,showNetworkModal:S,setNetworkModal:h,message:te,blockchains:p}),re=H.length,[he,ye]=[e.steps[0],e.steps[re-1]],_e=ye.outputAmount||ye.expectedOutputAmountHumanReadable,Bt=e.steps.reduce((U,ie)=>U+parseFloat(ie.feeInUsd||""),0),Rt=e.steps.find(U=>U.diagnosisUrl)?.diagnosisUrl,rt=I(parseFloat(I(_e,6,6))*(ye.toUsdPrice||0),4,4),Qe=I(parseFloat(e.inputAmount)*(he.fromUsdPrice||0),4,4),D=Ne(Qe,rt),Y=e.status==="success"?ut.t({id:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:I(_e,6,6),token:H[re-1].to.token.displayName,conciseAddress:Ho(e.wallets[H[re-1].to.chain.displayName]?.address||""),chain:H[re-1].to.chain.displayName}}):`${ut.t("Transaction was not sent.")} ${P?ut.t({id:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:P.outputAmount,symbol:P.symbol,blockchain:P.blockchain}}):""}`;return X.createElement(K,{noPadding:!0,header:{title:ut.t("Swap and Bridge"),onCancel:e.status==="running"?()=>h("cancel"):void 0,suffix:e.status!=="running"&&X.createElement(Ut,null,X.createElement(cu,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>h("delete")},X.createElement(Jt,{size:"medium",variant:"label",color:"error"},ut.t("Delete"))))},footer:_&&!b&&X.createElement(cu,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{u(e,{blockchains:p,tokens:c}),setTimeout(()=>{m("../../")},0)}},ut.t("Try again"))},X.createElement(tr,null,X.createElement(or,null,X.createElement("div",{className:Yt()},X.createElement(Jt,{variant:"label",size:"large",color:"neutral700"},`${ut.t("Request ID")}:`),X.createElement("div",{className:nr()},X.createElement(Jt,{variant:"label",size:"small",color:"neutral700"},o),X.createElement(Ay,{variant:"ghost",onClick:f.bind(null,o||"")},X.createElement(vy,{size:16,color:"gray"})))),X.createElement("div",{className:Yt()},X.createElement(Jt,{variant:"label",size:"large",color:"neutral700"},`${ut.t("Created at")}:`),X.createElement(Jt,{variant:"label",size:"small",color:"neutral700"},v))),X.createElement("div",{className:lu()},X.createElement(Ey,{fee:I(String(Bt),2,2),time:Mo(_o(e.steps)),steps:re}),X.createElement(so,{from:{price:{value:I(e.inputAmount,6,6),usdValue:Qe},token:{displayName:H[0].from.token.displayName,image:H[0].from.token.image},chain:{image:H[0].from.chain.image,displayName:H[0].from.chain.displayName}},to:{price:{value:I(_e,6,6),usdValue:rt},token:{displayName:H[re-1].to.token.displayName,image:H[re-1].to.token.image},chain:{image:H[re-1].to.chain.image,displayName:H[re-1].to.chain.displayName}},percentageChange:I(D,2,2),warningLevel:it(D??0)})),X.createElement("div",{className:pu()},X.createElement(Jt,{variant:"title",size:"small"},ut.t("Swaps steps"))),X.createElement(by,{size:8}),X.createElement(su,{ref:C},H.map((U,ie)=>{let Ve=ie,be=iu(e.steps[ie]),pr=be==="error"||be==="in-progress"||be==="warning"||be==="completed"&&ie===H.length-1;return X.createElement(Iy,{key:Ve,step:U,type:"swap-progress",ref:C,state:be,hasSeparator:ie!==0,tabIndex:Ve,isFocused:pr})}))),X.createElement(ts,{state:y,onClose:()=>h(null),onCancel:T,onDelete:n,message:te.detailedMessage.content,currentStepWallet:N}),X.createElement(ns,{open:!!b,diagnosisUrl:Rt,onClose:()=>k(null),status:e.status==="success"?"success":"failed",priceValue:I(_e,6,6),usdValue:rt,percentageChange:I(D,2,2),token:{displayName:H[re-1].to.token.displayName,image:H[re-1].to.token.image},chain:{image:H[re-1].to.chain.image},description:Y}))}i(as,"SwapDetails");import{i18n as Eo}from"@lingui/core";import{CopyIcon as Dy,IconButton as Fy,NotFound as Oy,Skeleton as gu,Typography as sr}from"@rango-dev/ui";import pe from"react";import{i18n as Py}from"@lingui/core";import{Divider as $y,Skeleton as My,Typography as _y}from"@rango-dev/ui";import se from"react";import{css as He,styled as ls}from"@rango-dev/ui";var du=ls("div",{width:"100%",height:"100%",padding:"$10 $20"}),Ao=ls("div",{backgroundColor:"$neutral100",borderRadius:"$xm",padding:"$10 $15"}),ir=ls("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral700",marginLeft:"25px"}),RP=He({display:"flex",justifyContent:"space-between",alignItems:"center"}),e$=He({display:"flex",justifyContent:"space-between",alignItems:"center"}),t$=He({paddingTop:"$15",display:"flex"}),o$=He({padding:"$15 $0"}),n$=He({width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"}),r$=He({paddingBottom:"$10"}),i$=He({display:"flex",justifyContent:"start",alignItems:"center"}),s$=He({paddingTop:"$5",display:"flex",alignItems:"center"}),a$=He({display:"flex",alignItems:"center"}),l$=He({padding:"$4 $6",display:"flex",justifyContent:"center",alignItems:"center"}),fu=He({display:"flex",paddingTop:"$10",paddingBottom:"$5"});function ps(){return se.createElement(du,null,se.createElement(co,{type:"swap-preview"}),se.createElement("div",{className:"swaps-steps"},se.createElement(_y,{variant:"title",size:"small"},Py.t("Swaps steps"))),se.createElement(se.Fragment,null,se.createElement(Ao,null,se.createElement(et,{separator:!1}),se.createElement("div",{className:fu()},se.createElement($y,{direction:"horizontal",size:20}),se.createElement(My,{height:22,variant:"rectangular"}))),se.createElement(ir,null),se.createElement(Ao,null,se.createElement(et,{separator:!1})),se.createElement(ir,null),se.createElement(Ao,null,se.createElement(et,{separator:!1})),se.createElement(ir,null),se.createElement(Ao,null,se.createElement(et,{separator:!1}))))}i(ps,"LoadingSwapDetails");function hu(t){let{requestId:e,showSkeleton:o}=t;return pe.createElement(K,{noPadding:!0,header:{title:Eo.t("Swap and Bridge"),suffix:pe.createElement(Ut,null)}},o&&pe.createElement(tr,null,pe.createElement(or,null,pe.createElement("div",{className:Yt()},pe.createElement(sr,{variant:"label",size:"large",color:"neutral700"},`${Eo.t("Request ID")}:`),pe.createElement("div",{className:nr()},pe.createElement(sr,{variant:"label",size:"small",color:"neutral700"},pe.createElement(gu,{width:60,height:10,variant:"rounded"})),pe.createElement(Fy,{variant:"ghost"},pe.createElement(Dy,{size:16,color:"gray"})))),pe.createElement("div",{className:Yt()},pe.createElement(sr,{variant:"label",size:"large",color:"neutral700"},`${Eo.t("Created at")}:`),pe.createElement(sr,{variant:"label",size:"small",color:"neutral700"},pe.createElement(gu,{width:60,height:10,variant:"rounded"})))),pe.createElement(ps,null)),!o&&pe.createElement(au,null,pe.createElement(Oy,{title:Eo.t("Not found"),description:Eo.t({id:"Swap with request ID = {requestId} not found.",values:{requestId:e}})})))}i(hu,"SwapDetailsPlaceholder");function Su(){let{manager:t,state:e}=qy(),o=!e.loadedFromPersistor,n=Ht(t),r=Te.use.selectedSwapRequestId(),s=ht(),{fetchStatus:a}=d(),l=o||a==="loading",p=n.find(({swap:g})=>g.requestId===r),c=i(()=>{if(p?.id){let g=t?.get(p.id);g&&Uy(g)}},"onCancel"),u=i(async()=>{if(p?.id)try{t?.deleteQueue(p.id),s()}catch(g){console.log(g)}},"onDelete"),m=p?.swap;return!m||l?yu.createElement(hu,{requestId:r||"",showSkeleton:l}):yu.createElement(as,{swap:m,requestId:r||"",onCancel:c,onDelete:u})}i(Su,"SwapDetailsPage");import{i18n as Io}from"@lingui/core";import{AutoThemeIcon as zy,DarkModeIcon as Gy,LightModeIcon as Hy,List as Qy,ListItemButton as Vy,Radio as cs,RadioRoot as jy,Typography as us}from"@rango-dev/ui";import xe from"react";function Cu(){let{setTheme:t,theme:e}=d(),o=[{id:"light",value:"light",title:xe.createElement(us,{variant:"title",size:"xmedium"},Io.t("Light")),onClick:()=>t("light"),start:xe.createElement(Hy,{color:"gray"}),end:xe.createElement(cs,{value:"light"})},{id:"dark",value:"dark",title:xe.createElement(us,{variant:"title",size:"xmedium"},Io.t("Dark")),onClick:()=>t("dark"),start:xe.createElement(Gy,{color:"gray"}),end:xe.createElement(cs,{value:"dark"})},{id:"auto",value:"auto",title:xe.createElement(us,{variant:"title",size:"xmedium"},Io.t("Auto")),onClick:()=>t("auto"),start:xe.createElement(zy,{color:"gray"}),end:xe.createElement(cs,{value:"auto"})}];return xe.createElement(K,{header:{title:Io.t("Theme")}},xe.createElement(pt,null,xe.createElement(jy,{onValueChange:n=>t(n),value:e},xe.createElement(Qy,{type:xe.createElement(Vy,{title:Io.t("Theme"),id:"_",onClick:()=>console.log()}),items:o}))))}i(Cu,"ThemePage");function ku(){return Ky([{path:M.home,element:ve.createElement(Yp,null)},{path:M.fromSwap,children:[{index:!0,element:ve.createElement(Qi,{type:"source"})},{path:M.blockchains,element:ve.createElement(Ei,{type:"source"})}]},{path:M.toSwap,children:[{index:!0,element:ve.createElement(Qi,{type:"destination"})},{path:M.blockchains,element:ve.createElement(Ei,{type:"destination"})}]},{path:M.settings,children:[{index:!0,element:ve.createElement(Oc,null)},{path:M.themes,element:ve.createElement(Cu,null)},{path:M.languages,element:ve.createElement(Zp,null)},{path:M.exchanges,element:ve.createElement(wi,{sourceType:"Exchanges"})},{path:M.bridges,element:ve.createElement(wi,{sourceType:"Bridges"})}]},{path:M.swaps,children:[{index:!0,element:ve.createElement(Qp,null)},{path:M.swapDetails,element:ve.createElement(Su,null)}]},{path:M.wallets,element:ve.createElement(ml,null)},{path:M.confirmSwap,element:ve.createElement(Mp,null)}])}i(ku,"AppRoutes");import{isApprovalTX as Xy,MainEvents as wu,RouteEventType as xu,StepEventType as Zt,StepExecutionEventStatus as Yy,useEvents as Jy}from"@rango-dev/queue-manager-rango-preset";import{useEffect as vu}from"react";import{StepExecutionBlockedEventStatus as ms}from"@rango-dev/queue-manager-rango-preset";var Tu=[ms.WAITING_FOR_CHANGE_WALLET_ACCOUNT,ms.WAITING_FOR_NETWORK_CHANGE,ms.WAITING_FOR_WALLET_CONNECT];function bu(){let t=d().tokens(),e=z.use.connectedWallets(),o=z.use.getWalletsDetails(),n=Be.use.setNotification(),r=Be.use.setAsRead(),s=Jy();return vu(()=>(s.on(wu.StepEvent,a=>{let{event:l,step:p,route:c}=a;if(l.type===Zt.TX_EXECUTION&&l.status===Yy.TX_SENT&&!Xy(p)||l.type===Zt.SUCCEEDED){let m=e.find(f=>f.chain===p?.fromBlockchain),g=p?.fromBlockchain!==p?.toBlockchain&&e.find(f=>f.chain===p?.toBlockchain);m&&o([m],t),g&&o([g],t)}l.type===Zt.TX_EXECUTION_BLOCKED&&Tu.includes(l.status)||l.type===Zt.FAILED?n(l,c):(l.type===Zt.TX_EXECUTION||l.type===Zt.CHECK_STATUS)&&r(c.requestId)}),()=>s.all.clear()),[s,e.length]),vu(()=>(s.on(wu.RouteEvent,a=>{let{event:l,route:p}=a;(l.type===xu.FAILED||l.type===xu.SUCCEEDED)&&n(l,p)}),()=>s.all.clear()),[s,e.length]),null}i(bu,"WidgetEvents");import{globalCss as Zy}from"@rango-dev/ui";var Au=i(()=>Zy({"@import":["url('https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap')","url('https://fonts.cdnfonts.com/css/times-new-roman')"]})(),"globalFont");import{createTheme as gs,darkTheme as nS,lightTheme as rS}from"@rango-dev/ui";import{useEffect as Iu,useState as iS}from"react";import{theme as tS,darkColors as oS}from"@rango-dev/ui";var Eu=i(t=>String.fromCharCode(t+(t>25?39:97)),"toAlphabeticChar"),Ry=i(t=>{let e="",o;for(o=Math.abs(t);o>52;o=o/52|0)e=Eu(o%52)+e;return Eu(o%52)+e},"toAlphabeticName"),eS=i((t,e)=>{let o=e.length;for(;o;)t=t*33^e.charCodeAt(--o);return t},"toPhash"),ds=i(t=>Ry(eS(5381,JSON.stringify(t))>>>0),"toHash");function fs(t){let e=tS.colors,o=Pi({...e,...oS},!0,t?.dark),n=Pi(e,!1,t?.light),r=Object.keys(o).length>0,s=Object.keys(n).length>0,a,l;if(s){let p={colors:n};a={id:`${dr}-light-${ds(p)}`,tokens:p}}if(r){let p={colors:o};l={id:`${dr}-dark-${ds(p)}`,tokens:p}}return{light:a,dark:l}}i(fs,"customizedThemeTokens");function Wu(t){let{colors:e,fontFamily:o=vs,borderRadius:n=ws,secondaryBorderRadius:r=xs,mode:s="auto"}=t,[a,l]=iS("light"),{setTheme:p,theme:c}=d(),{dark:u,light:m}=fs(e),g=gs({radii:{primary:`${n}px`,secondary:`${r}px`},fonts:{widget:o}}),f=[g.className,rS.className],C=[g.className,nS.className];if(m){let h=gs(m.id,m.tokens);f.push(h.className)}if(u){let h=gs(u.id,u.tokens);C.push(h.className)}return Iu(()=>{let h=i(b=>{b.matches?l("dark"):l("light")},"switchThemeListener");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&l("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",h),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",h)}},[]),Iu(()=>{s!=="auto"&&p(s)},[s]),{activeTheme:i(()=>{let h=f.join(" "),b=C.join(" ");return c==="auto"?a==="dark"?b:h:c==="dark"?b:h},"getActiveTheme")}}i(Wu,"useTheme");import{styled as sS}from"@rango-dev/ui";var Lu=sS("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",fontFamily:"$widget",boxSizing:"border-box","& *, *::before, *::after":{boxSizing:"inherit",listStyleType:"none"},"& *:focus-visible":{outlineColor:"$info500",transition:"none"}});function ar(){Au();let{config:t}=d(),{activeTheme:e}=Wu(t?.theme||{}),{activeLanguage:o,changeLanguage:n}=Dn(),[r,s]=Bu(""),[a,l]=Bu(),p=lS(sn);return Nu(()=>{Be.persist.rehydrate(),p.onConnectWallet(s)},[]),Nu(()=>{n(t?.language)},[t?.language]),Wo.createElement(aS,{language:o},Wo.createElement(Lu,{id:"swap-container",className:e()},Wo.createElement(bu,null),Wo.createElement(ba,{lastConnectedWallet:r,disconnectedWallet:a,clearDisconnectedWallet:()=>{l(void 0)}},Wo.createElement(ku,null))))}i(ar,"Main");import ys,{useMemo as AS}from"react";import{checkWaitingForNetworkChange as pS,makeQueueDefinition as cS}from"@rango-dev/queue-manager-rango-preset";import{Provider as uS}from"@rango-dev/queue-manager-react";import{useWallets as mS}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as dS}from"@rango-dev/wallets-shared";import{isEvmBlockchain as fS}from"rango-types";import gS,{useMemo as hS}from"react";function yS(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=mS(),l=hS(()=>cS({API_KEY:t.apiKey||Pt("API_KEY"),BASE_URL:Pt("BASE_URL")}),[t.apiKey]),p=d().blockchains(),u={blockchains:z.use.connectedWallets().map(k=>({accounts:[k],name:k.chain}))},m=i(async(k,T)=>{if(s(k,T))return r(k,T)},"switchNetwork"),g=i(k=>!!a(k).mobileWallet,"isMobileWallet"),f=p.filter(k=>k.enabled).reduce((k,T)=>(k[T.name]=T,k),{}),C=p.filter(fS),y=i(k=>{let{supportedChains:T}=a(k);return Uo(T)},"getSupportedChainNames"),h=e(),b={meta:{blockchains:f,evmBasedChains:C,evmNetworkChainInfo:dS(C),getSupportedChainNames:y},getSigners:o,wallets:u,providers:h,switchNetwork:m,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:g};return gS.createElement(uS,{queuesDefs:[l],context:b,onPersistedDataLoaded:k=>{pS(k)},isPaused:!1},t.children)}i(yS,"QueueManager");var Pu=yS;import{useManager as wS}from"@rango-dev/queue-manager-react";import xS,{createContext as vS,useContext as bS}from"react";import{cancelSwap as SS,getCurrentBlockchainOfOrNull as CS,getCurrentStep as kS,getRelatedWalletOrNull as TS}from"@rango-dev/queue-manager-rango-preset";var Lo=class{constructor(e,o){this.manager=e,this.actions=o}getAllSwaps(){return Ht(this.manager)}getCurrentStep(e){return this.getCurrentStepInfo(e).step}getCurrentStepWallet(e){return this.getCurrentStepInfo(e).wallet}getCurrentStepNetwork(e){return this.getCurrentStepInfo(e).network}retry(e,o){return this.actions.retrySwap(e,o)}cancel(e){let o=this.manager?.get(e);o&&SS(o)}getCurrentStepInfo(e){let o=kS(e);return{step:o,wallet:o?TS(e,o):null,network:o?CS(e,o):null}}};i(Lo,"WidgetHistory");var $u=vS(void 0);function hs(t){let{manager:e}=wS(),o=O.use.retry(),n=new Lo(e,{retrySwap:o}),r=z.use.connectedWallets(),s=z.use.loading(),a=Ms(r),l=z.use.getWalletsDetails(),p=d().blockchains(),c=d().tokens(),u=d().swappers(),m=d().fetchStatus,g={history:n,wallets:{isLoading:s,details:r,totalBalance:a,refetch:l},meta:{blockchains:p,tokens:c,swappers:u,loadingStatus:m}};return xS.createElement($u.Provider,{value:g},t.children)}i(hs,"WidgetInfo");function Mu(){let t=bS($u);if(!t)throw new Error("useWidget can only be used within the WidgetProvider component");return t}i(Mu,"useWidget");function lr(t){let{onUpdateState:e,config:o}=t;return AS(()=>{Ts({API_KEY:o?.apiKey||No,BASE_URL:o?.apiUrl||ks})},[o]),ys.createElement(an,{config:o,onUpdateState:e},ys.createElement(Pu,{apiKey:o.apiKey},ys.createElement(hs,null,t.children)))}i(lr,"WidgetProvider");function _u(t){return t.config?.externalWallets?Ss.createElement(ar,null):Ss.createElement(lr,{config:t.config??ur},Ss.createElement(ar,null))}i(_u,"Widget");export{j_ as MainEvents,nD as Networks,K_ as RouteEventType,X_ as StepEventType,Y_ as StepExecutionBlockedEventStatus,J_ as StepExecutionEventStatus,tD as WalletEvents,rD as WalletTypes,_u as Widget,lr as WidgetProvider,an as WidgetWallets,fs as customizedThemeTokens,eD as readAccountAddress,kl as useWallets,Mu as useWidget,Z_ as useWidgetEvents};
2
2
  //# sourceMappingURL=index.js.map