@rango-dev/widget-embedded 0.12.1-next.3 → 0.12.1-next.30

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 (469) hide show
  1. package/dist/Wallets.d.ts +4 -3
  2. package/dist/Wallets.d.ts.map +1 -1
  3. package/dist/Widget.d.ts +3 -2
  4. package/dist/Widget.d.ts.map +1 -1
  5. package/dist/components/AppRouter.d.ts +3 -2
  6. package/dist/components/AppRouter.d.ts.map +1 -1
  7. package/dist/components/AppRoutes.d.ts +1 -1
  8. package/dist/components/AppRoutes.d.ts.map +1 -1
  9. package/dist/components/BlockchainList/BlockchainList.d.ts +4 -0
  10. package/dist/components/BlockchainList/BlockchainList.d.ts.map +1 -0
  11. package/dist/components/BlockchainList/BlockchainList.helpers.d.ts +4 -0
  12. package/dist/components/BlockchainList/BlockchainList.helpers.d.ts.map +1 -0
  13. package/dist/components/BlockchainList/BlockchainList.styles.d.ts +307 -0
  14. package/dist/components/BlockchainList/BlockchainList.styles.d.ts.map +1 -0
  15. package/dist/components/BlockchainList/BlockchainList.types.d.ts +8 -0
  16. package/dist/components/BlockchainList/BlockchainList.types.d.ts.map +1 -0
  17. package/dist/components/BlockchainList/LoadingBlockchainList.d.ts +3 -0
  18. package/dist/components/BlockchainList/LoadingBlockchainList.d.ts.map +1 -0
  19. package/dist/components/BlockchainList/index.d.ts +2 -0
  20. package/dist/components/BlockchainList/index.d.ts.map +1 -0
  21. package/dist/components/BlockchainsSection/BlockchainSection.helpers.d.ts +3 -0
  22. package/dist/components/BlockchainsSection/BlockchainSection.helpers.d.ts.map +1 -0
  23. package/dist/components/BlockchainsSection/BlockchainsSection.d.ts +4 -0
  24. package/dist/components/BlockchainsSection/BlockchainsSection.d.ts.map +1 -0
  25. package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts +154 -0
  26. package/dist/components/BlockchainsSection/BlockchainsSection.styles.d.ts.map +1 -0
  27. package/dist/components/BlockchainsSection/BlockchainsSection.types.d.ts +9 -0
  28. package/dist/components/BlockchainsSection/BlockchainsSection.types.d.ts.map +1 -0
  29. package/dist/components/BlockchainsSection/index.d.ts +2 -0
  30. package/dist/components/BlockchainsSection/index.d.ts.map +1 -0
  31. package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts +6 -0
  32. package/dist/components/ConfirmWalletsModal/ConfirmWallets.helpers.d.ts.map +1 -0
  33. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts +2599 -0
  34. package/dist/components/ConfirmWalletsModal/ConfirmWallets.styles.d.ts.map +1 -0
  35. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts +4 -0
  36. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.d.ts.map +1 -0
  37. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts +11 -0
  38. package/dist/components/ConfirmWalletsModal/ConfirmWalletsModal.types.d.ts.map +1 -0
  39. package/dist/components/ConfirmWalletsModal/WalletList.d.ts +4 -0
  40. package/dist/components/ConfirmWalletsModal/WalletList.d.ts.map +1 -0
  41. package/dist/components/ConfirmWalletsModal/WalletList.styles.d.ts +460 -0
  42. package/dist/components/ConfirmWalletsModal/WalletList.styles.d.ts.map +1 -0
  43. package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts +12 -0
  44. package/dist/components/ConfirmWalletsModal/WalletList.type.d.ts.map +1 -0
  45. package/dist/components/HeaderButtons/BackButton.d.ts +5 -0
  46. package/dist/components/HeaderButtons/BackButton.d.ts.map +1 -0
  47. package/dist/components/HeaderButtons/CancelButton.d.ts +5 -0
  48. package/dist/components/HeaderButtons/CancelButton.d.ts.map +1 -0
  49. package/dist/components/HeaderButtons/HeaderButtons.styles.d.ts +616 -0
  50. package/dist/components/HeaderButtons/HeaderButtons.styles.d.ts.map +1 -0
  51. package/dist/components/HeaderButtons/HeaderButtons.types.d.ts +13 -0
  52. package/dist/components/HeaderButtons/HeaderButtons.types.d.ts.map +1 -0
  53. package/dist/components/HeaderButtons/HomeButtons.d.ts +4 -0
  54. package/dist/components/HeaderButtons/HomeButtons.d.ts.map +1 -0
  55. package/dist/components/HeaderButtons/UnreadNotificationsBadge.d.ts +3 -0
  56. package/dist/components/HeaderButtons/UnreadNotificationsBadge.d.ts.map +1 -0
  57. package/dist/components/HeaderButtons/WalletButton.d.ts +5 -0
  58. package/dist/components/HeaderButtons/WalletButton.d.ts.map +1 -0
  59. package/dist/components/HeaderButtons/index.d.ts +5 -0
  60. package/dist/components/HeaderButtons/index.d.ts.map +1 -0
  61. package/dist/components/Layout/Layout.d.ts +7 -0
  62. package/dist/components/Layout/Layout.d.ts.map +1 -0
  63. package/dist/components/Layout/Layout.styles.d.ts +464 -0
  64. package/dist/components/Layout/Layout.styles.d.ts.map +1 -0
  65. package/dist/components/Layout/Layout.types.d.ts +17 -0
  66. package/dist/components/Layout/Layout.types.d.ts.map +1 -0
  67. package/dist/components/Layout/index.d.ts +2 -0
  68. package/dist/components/Layout/index.d.ts.map +1 -0
  69. package/dist/components/LoadingLiquiditySourceList/LoadingLiquiditySourceList.d.ts +3 -0
  70. package/dist/components/LoadingLiquiditySourceList/LoadingLiquiditySourceList.d.ts.map +1 -0
  71. package/dist/components/LoadingLiquiditySourceList/LoadingLiquiditySourceList.styles.d.ts +155 -0
  72. package/dist/components/LoadingLiquiditySourceList/LoadingLiquiditySourceList.styles.d.ts.map +1 -0
  73. package/dist/components/LoadingLiquiditySourceList/index.d.ts +2 -0
  74. package/dist/components/LoadingLiquiditySourceList/index.d.ts.map +1 -0
  75. package/dist/components/LoadingSwapDetails/LoadingSwapDetailStep.d.ts +4 -0
  76. package/dist/components/LoadingSwapDetails/LoadingSwapDetailStep.d.ts.map +1 -0
  77. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.d.ts +3 -0
  78. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.d.ts.map +1 -0
  79. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts +460 -0
  80. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.styles.d.ts.map +1 -0
  81. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.types.d.ts +4 -0
  82. package/dist/components/LoadingSwapDetails/LoadingSwapDetails.types.d.ts.map +1 -0
  83. package/dist/components/LoadingSwapDetails/index.d.ts +2 -0
  84. package/dist/components/LoadingSwapDetails/index.d.ts.map +1 -0
  85. package/dist/components/NoRoutes/NoRoutes.d.ts +4 -0
  86. package/dist/components/NoRoutes/NoRoutes.d.ts.map +1 -0
  87. package/dist/components/NoRoutes/NoRoutes.helper.d.ts +3 -0
  88. package/dist/components/NoRoutes/NoRoutes.helper.d.ts.map +1 -0
  89. package/dist/components/NoRoutes/NoRoutes.styles.d.ts +460 -0
  90. package/dist/components/NoRoutes/NoRoutes.styles.d.ts.map +1 -0
  91. package/dist/components/NoRoutes/NoRoutes.types.d.ts +20 -0
  92. package/dist/components/NoRoutes/NoRoutes.types.d.ts.map +1 -0
  93. package/dist/components/NoRoutes/index.d.ts +2 -0
  94. package/dist/components/NoRoutes/index.d.ts.map +1 -0
  95. package/dist/components/NotificationContent/NotificationContent.d.ts +3 -0
  96. package/dist/components/NotificationContent/NotificationContent.d.ts.map +1 -0
  97. package/dist/components/NotificationContent/NotificationContent.styles.d.ts +613 -0
  98. package/dist/components/NotificationContent/NotificationContent.styles.d.ts.map +1 -0
  99. package/dist/components/NotificationContent/NotificationNotFound.d.ts +3 -0
  100. package/dist/components/NotificationContent/NotificationNotFound.d.ts.map +1 -0
  101. package/dist/components/NotificationContent/index.d.ts +2 -0
  102. package/dist/components/NotificationContent/index.d.ts.map +1 -0
  103. package/dist/components/RouteErrors/RouteErrors.d.ts +4 -0
  104. package/dist/components/RouteErrors/RouteErrors.d.ts.map +1 -0
  105. package/dist/components/RouteErrors/RouteErrors.styles.d.ts +613 -0
  106. package/dist/components/RouteErrors/RouteErrors.styles.d.ts.map +1 -0
  107. package/dist/components/RouteErrors/RouteErrors.types.d.ts +24 -0
  108. package/dist/components/RouteErrors/RouteErrors.types.d.ts.map +1 -0
  109. package/dist/components/RouteErrors/RouteErrorsModal.d.ts +4 -0
  110. package/dist/components/RouteErrors/RouteErrorsModal.d.ts.map +1 -0
  111. package/dist/components/RouteErrors/RouteErrorsModalItem.d.ts +4 -0
  112. package/dist/components/RouteErrors/RouteErrorsModalItem.d.ts.map +1 -0
  113. package/dist/components/RouteErrors/index.d.ts +2 -0
  114. package/dist/components/RouteErrors/index.d.ts.map +1 -0
  115. package/dist/components/SearchInput/SearchInput.d.ts +4 -0
  116. package/dist/components/SearchInput/SearchInput.d.ts.map +1 -0
  117. package/dist/components/SearchInput/SearchInput.styles.d.ts +154 -0
  118. package/dist/components/SearchInput/SearchInput.styles.d.ts.map +1 -0
  119. package/dist/components/SearchInput/SearchInput.types.d.ts +10 -0
  120. package/dist/components/SearchInput/SearchInput.types.d.ts.map +1 -0
  121. package/dist/components/SearchInput/index.d.ts +2 -0
  122. package/dist/components/SearchInput/index.d.ts.map +1 -0
  123. package/dist/components/SettingsContainer/SettingsContainer.style.d.ts +613 -0
  124. package/dist/components/SettingsContainer/SettingsContainer.style.d.ts.map +1 -0
  125. package/dist/components/SettingsContainer/index.d.ts +2 -0
  126. package/dist/components/SettingsContainer/index.d.ts.map +1 -0
  127. package/dist/components/Slippage/Slippage.d.ts +3 -0
  128. package/dist/components/Slippage/Slippage.d.ts.map +1 -0
  129. package/dist/components/Slippage/Slippage.styles.d.ts +613 -0
  130. package/dist/components/Slippage/Slippage.styles.d.ts.map +1 -0
  131. package/dist/components/Slippage/SlippageTooltipContent.d.ts +3 -0
  132. package/dist/components/Slippage/SlippageTooltipContent.d.ts.map +1 -0
  133. package/dist/components/Slippage/index.d.ts +2 -0
  134. package/dist/components/Slippage/index.d.ts.map +1 -0
  135. package/dist/components/SwapDetails/SwapDetails.Placeholder.d.ts +4 -0
  136. package/dist/components/SwapDetails/SwapDetails.Placeholder.d.ts.map +1 -0
  137. package/dist/components/SwapDetails/SwapDetails.d.ts +4 -0
  138. package/dist/components/SwapDetails/SwapDetails.d.ts.map +1 -0
  139. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts +8 -0
  140. package/dist/components/SwapDetails/SwapDetails.helpers.d.ts.map +1 -0
  141. package/dist/components/SwapDetails/SwapDetails.styles.d.ts +919 -0
  142. package/dist/components/SwapDetails/SwapDetails.styles.d.ts.map +1 -0
  143. package/dist/components/SwapDetails/SwapDetails.types.d.ts +12 -0
  144. package/dist/components/SwapDetails/SwapDetails.types.d.ts.map +1 -0
  145. package/dist/components/SwapDetails/index.d.ts +2 -0
  146. package/dist/components/SwapDetails/index.d.ts.map +1 -0
  147. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.Failed.d.ts +4 -0
  148. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.Failed.d.ts.map +1 -0
  149. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.Warning.d.ts +4 -0
  150. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.Warning.d.ts.map +1 -0
  151. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.d.ts +4 -0
  152. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.d.ts.map +1 -0
  153. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.styles.d.ts +154 -0
  154. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.styles.d.ts.map +1 -0
  155. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.types.d.ts +20 -0
  156. package/dist/components/SwapDetailsAlerts/SwapDetailsAlerts.types.d.ts.map +1 -0
  157. package/dist/components/SwapDetailsAlerts/index.d.ts +3 -0
  158. package/dist/components/SwapDetailsAlerts/index.d.ts.map +1 -0
  159. package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts +4 -0
  160. package/dist/components/SwapDetailsModal/SwapDetailsCompleteModal.d.ts.map +1 -0
  161. package/dist/components/SwapDetailsModal/SwapDetailsModal.Cancel.d.ts +4 -0
  162. package/dist/components/SwapDetailsModal/SwapDetailsModal.Cancel.d.ts.map +1 -0
  163. package/dist/components/SwapDetailsModal/SwapDetailsModal.Delete.d.ts +4 -0
  164. package/dist/components/SwapDetailsModal/SwapDetailsModal.Delete.d.ts.map +1 -0
  165. package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts +4 -0
  166. package/dist/components/SwapDetailsModal/SwapDetailsModal.WalletState.d.ts.map +1 -0
  167. package/dist/components/SwapDetailsModal/SwapDetailsModal.d.ts +4 -0
  168. package/dist/components/SwapDetailsModal/SwapDetailsModal.d.ts.map +1 -0
  169. package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts +4 -0
  170. package/dist/components/SwapDetailsModal/SwapDetailsModal.helpers.d.ts.map +1 -0
  171. package/dist/components/SwapDetailsModal/SwapDetailsModal.styles.d.ts +154 -0
  172. package/dist/components/SwapDetailsModal/SwapDetailsModal.styles.d.ts.map +1 -0
  173. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts +46 -0
  174. package/dist/components/SwapDetailsModal/SwapDetailsModal.types.d.ts.map +1 -0
  175. package/dist/components/SwapDetailsModal/index.d.ts +4 -0
  176. package/dist/components/SwapDetailsModal/index.d.ts.map +1 -0
  177. package/dist/components/SwapsGroup/SwapsGroup.d.ts +4 -0
  178. package/dist/components/SwapsGroup/SwapsGroup.d.ts.map +1 -0
  179. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts +613 -0
  180. package/dist/components/SwapsGroup/SwapsGroup.styles.d.ts.map +1 -0
  181. package/dist/components/SwapsGroup/SwapsGroup.types.d.ts +12 -0
  182. package/dist/components/SwapsGroup/SwapsGroup.types.d.ts.map +1 -0
  183. package/dist/components/SwapsGroup/index.d.ts +2 -0
  184. package/dist/components/SwapsGroup/index.d.ts.map +1 -0
  185. package/dist/components/SwitchFromAndTo.d.ts +1 -1
  186. package/dist/components/SwitchFromAndTo.d.ts.map +1 -1
  187. package/dist/components/TokenList/LoadingTokenList.d.ts +4 -0
  188. package/dist/components/TokenList/LoadingTokenList.d.ts.map +1 -0
  189. package/dist/components/TokenList/TokenList.d.ts +4 -0
  190. package/dist/components/TokenList/TokenList.d.ts.map +1 -0
  191. package/dist/components/TokenList/TokenList.helpers.d.ts +3 -0
  192. package/dist/components/TokenList/TokenList.helpers.d.ts.map +1 -0
  193. package/dist/components/TokenList/TokenList.styles.d.ts +1532 -0
  194. package/dist/components/TokenList/TokenList.styles.d.ts.map +1 -0
  195. package/dist/components/TokenList/TokenList.types.d.ts +41 -0
  196. package/dist/components/TokenList/TokenList.types.d.ts.map +1 -0
  197. package/dist/components/TokenList/index.d.ts +3 -0
  198. package/dist/components/TokenList/index.d.ts.map +1 -0
  199. package/dist/components/UpdateUrl.d.ts.map +1 -1
  200. package/dist/components/WalletModal/WalletModal.d.ts +4 -0
  201. package/dist/components/WalletModal/WalletModal.d.ts.map +1 -0
  202. package/dist/components/WalletModal/WalletModal.types.d.ts +10 -0
  203. package/dist/components/WalletModal/WalletModal.types.d.ts.map +1 -0
  204. package/dist/components/WalletModal/WalletModalContent.d.ts +4 -0
  205. package/dist/components/WalletModal/WalletModalContent.d.ts.map +1 -0
  206. package/dist/components/WalletModal/WalletModalContent.styles.d.ts +613 -0
  207. package/dist/components/WalletModal/WalletModalContent.styles.d.ts.map +1 -0
  208. package/dist/components/WalletModal/index.d.ts +2 -0
  209. package/dist/components/WalletModal/index.d.ts.map +1 -0
  210. package/dist/components/WidgetEvents.d.ts.map +1 -1
  211. package/dist/constants/errors.d.ts +29 -0
  212. package/dist/constants/errors.d.ts.map +1 -1
  213. package/dist/constants/messages.d.ts +7 -0
  214. package/dist/constants/messages.d.ts.map +1 -0
  215. package/dist/constants/navigationRoutes.d.ts +8 -4
  216. package/dist/constants/navigationRoutes.d.ts.map +1 -1
  217. package/dist/constants/routing.d.ts +13 -0
  218. package/dist/constants/routing.d.ts.map +1 -0
  219. package/dist/constants/searchParams.d.ts +2 -2
  220. package/dist/constants/searchParams.d.ts.map +1 -1
  221. package/dist/constants/swapSettings.d.ts.map +1 -1
  222. package/dist/constants/wallets.d.ts +3 -0
  223. package/dist/constants/wallets.d.ts.map +1 -0
  224. package/dist/constants/warnings.d.ts +3 -0
  225. package/dist/constants/warnings.d.ts.map +1 -0
  226. package/dist/globalStyles.d.ts +1 -1
  227. package/dist/globalStyles.d.ts.map +1 -1
  228. package/dist/hooks/useConfirmSwap.d.ts +14 -6
  229. package/dist/hooks/useConfirmSwap.d.ts.map +1 -1
  230. package/dist/hooks/useFetchBestRoute.d.ts +9 -0
  231. package/dist/hooks/useFetchBestRoute.d.ts.map +1 -0
  232. package/dist/hooks/useNavigateBack.d.ts.map +1 -1
  233. package/dist/hooks/useSwapInput.d.ts +12 -0
  234. package/dist/hooks/useSwapInput.d.ts.map +1 -0
  235. package/dist/hooks/useTheme.d.ts +3 -29
  236. package/dist/hooks/useTheme.d.ts.map +1 -1
  237. package/dist/hooks/useWalletList.d.ts +20 -0
  238. package/dist/hooks/useWalletList.d.ts.map +1 -0
  239. package/dist/index.js +1 -1
  240. package/dist/index.js.map +4 -4
  241. package/dist/pages/ConfirmSwapPage.d.ts +6 -3
  242. package/dist/pages/ConfirmSwapPage.d.ts.map +1 -1
  243. package/dist/pages/HistoryPage.d.ts.map +1 -1
  244. package/dist/pages/Home.d.ts.map +1 -1
  245. package/dist/pages/LanguagePage.d.ts +3 -0
  246. package/dist/pages/LanguagePage.d.ts.map +1 -0
  247. package/dist/pages/LiquiditySourcePage.d.ts +8 -0
  248. package/dist/pages/LiquiditySourcePage.d.ts.map +1 -0
  249. package/dist/pages/SelectBlockchainPage.d.ts +8 -0
  250. package/dist/pages/SelectBlockchainPage.d.ts.map +1 -0
  251. package/dist/pages/SelectSwapItemsPage.d.ts +11 -0
  252. package/dist/pages/SelectSwapItemsPage.d.ts.map +1 -0
  253. package/dist/pages/SettingsPage.d.ts.map +1 -1
  254. package/dist/pages/SwapDetailsPage.d.ts.map +1 -1
  255. package/dist/pages/ThemePage.d.ts +3 -0
  256. package/dist/pages/ThemePage.d.ts.map +1 -0
  257. package/dist/pages/WalletsPage.d.ts +4 -2
  258. package/dist/pages/WalletsPage.d.ts.map +1 -1
  259. package/dist/store/bestRoute.d.ts +32 -19
  260. package/dist/store/bestRoute.d.ts.map +1 -1
  261. package/dist/store/meta.d.ts +10 -3
  262. package/dist/store/meta.d.ts.map +1 -1
  263. package/dist/store/notification.d.ts +38 -0
  264. package/dist/store/notification.d.ts.map +1 -0
  265. package/dist/store/settings.d.ts +2 -2
  266. package/dist/store/settings.d.ts.map +1 -1
  267. package/dist/store/ui.d.ts +0 -2
  268. package/dist/store/ui.d.ts.map +1 -1
  269. package/dist/store/wallets.d.ts +14 -12
  270. package/dist/store/wallets.d.ts.map +1 -1
  271. package/dist/types/config.d.ts +11 -6
  272. package/dist/types/config.d.ts.map +1 -1
  273. package/dist/types/notification.d.ts +22 -0
  274. package/dist/types/notification.d.ts.map +1 -0
  275. package/dist/types/routing.d.ts +30 -23
  276. package/dist/types/routing.d.ts.map +1 -1
  277. package/dist/types/swap.d.ts +8 -1
  278. package/dist/types/swap.d.ts.map +1 -1
  279. package/dist/utils/common.d.ts +6 -0
  280. package/dist/utils/common.d.ts.map +1 -1
  281. package/dist/utils/configs.d.ts +2 -0
  282. package/dist/utils/configs.d.ts.map +1 -1
  283. package/dist/utils/date.d.ts +1 -1
  284. package/dist/utils/date.d.ts.map +1 -1
  285. package/dist/utils/meta.d.ts +3 -0
  286. package/dist/utils/meta.d.ts.map +1 -0
  287. package/dist/utils/numbers.d.ts +5 -2
  288. package/dist/utils/numbers.d.ts.map +1 -1
  289. package/dist/utils/routing.d.ts +10 -7
  290. package/dist/utils/routing.d.ts.map +1 -1
  291. package/dist/utils/settings.d.ts +10 -0
  292. package/dist/utils/settings.d.ts.map +1 -0
  293. package/dist/utils/swap.d.ts +29 -14
  294. package/dist/utils/swap.d.ts.map +1 -1
  295. package/dist/utils/time.d.ts +2 -2
  296. package/dist/utils/time.d.ts.map +1 -1
  297. package/dist/utils/wallets.d.ts +20 -14
  298. package/dist/utils/wallets.d.ts.map +1 -1
  299. package/package.json +8 -8
  300. package/src/Wallets.tsx +23 -17
  301. package/src/Widget.tsx +92 -28
  302. package/src/components/AppRouter.tsx +35 -6
  303. package/src/components/AppRoutes.tsx +54 -19
  304. package/src/components/BlockchainList/BlockchainList.helpers.ts +37 -0
  305. package/src/components/BlockchainList/BlockchainList.styles.ts +19 -0
  306. package/src/components/BlockchainList/BlockchainList.tsx +73 -0
  307. package/src/components/BlockchainList/BlockchainList.types.ts +8 -0
  308. package/src/components/BlockchainList/LoadingBlockchainList.tsx +20 -0
  309. package/src/components/BlockchainList/index.ts +1 -0
  310. package/src/components/BlockchainsSection/BlockchainSection.helpers.ts +20 -0
  311. package/src/components/BlockchainsSection/BlockchainsSection.styles.ts +7 -0
  312. package/src/components/BlockchainsSection/BlockchainsSection.tsx +105 -0
  313. package/src/components/BlockchainsSection/BlockchainsSection.types.ts +9 -0
  314. package/src/components/BlockchainsSection/index.ts +1 -0
  315. package/src/components/ConfirmWalletsModal/ConfirmWallets.helpers.ts +86 -0
  316. package/src/components/ConfirmWalletsModal/ConfirmWallets.styles.ts +210 -0
  317. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.tsx +494 -0
  318. package/src/components/ConfirmWalletsModal/ConfirmWalletsModal.types.ts +11 -0
  319. package/src/components/ConfirmWalletsModal/WalletList.styles.ts +34 -0
  320. package/src/components/ConfirmWalletsModal/WalletList.tsx +294 -0
  321. package/src/components/ConfirmWalletsModal/WalletList.type.ts +12 -0
  322. package/src/components/HeaderButtons/BackButton.tsx +16 -0
  323. package/src/components/HeaderButtons/CancelButton.tsx +21 -0
  324. package/src/components/HeaderButtons/HeaderButtons.styles.ts +40 -0
  325. package/src/components/HeaderButtons/HeaderButtons.types.ts +12 -0
  326. package/src/components/HeaderButtons/HomeButtons.tsx +81 -0
  327. package/src/components/HeaderButtons/UnreadNotificationsBadge.tsx +20 -0
  328. package/src/components/HeaderButtons/WalletButton.tsx +23 -0
  329. package/src/components/HeaderButtons/index.ts +4 -0
  330. package/src/components/Layout/Layout.styles.ts +53 -0
  331. package/src/components/Layout/Layout.tsx +74 -0
  332. package/src/components/Layout/Layout.types.ts +20 -0
  333. package/src/components/Layout/index.ts +1 -0
  334. package/src/components/LoadingLiquiditySourceList/LoadingLiquiditySourceList.styles.ts +5 -0
  335. package/src/components/LoadingLiquiditySourceList/LoadingLiquiditySourceList.tsx +23 -0
  336. package/src/components/LoadingLiquiditySourceList/index.ts +1 -0
  337. package/src/components/LoadingSwapDetails/LoadingSwapDetailStep.tsx +41 -0
  338. package/src/components/LoadingSwapDetails/LoadingSwapDetails.styles.ts +78 -0
  339. package/src/components/LoadingSwapDetails/LoadingSwapDetails.tsx +53 -0
  340. package/src/components/LoadingSwapDetails/LoadingSwapDetails.types.ts +3 -0
  341. package/src/components/LoadingSwapDetails/index.ts +1 -0
  342. package/src/components/NoRoutes/NoRoutes.helper.ts +52 -0
  343. package/src/components/NoRoutes/NoRoutes.styles.ts +15 -0
  344. package/src/components/NoRoutes/NoRoutes.tsx +81 -0
  345. package/src/components/NoRoutes/NoRoutes.types.ts +21 -0
  346. package/src/components/NoRoutes/index.ts +1 -0
  347. package/src/components/NotificationContent/NotificationContent.styles.ts +34 -0
  348. package/src/components/NotificationContent/NotificationContent.tsx +108 -0
  349. package/src/components/NotificationContent/NotificationNotFound.tsx +17 -0
  350. package/src/components/NotificationContent/index.ts +1 -0
  351. package/src/components/RouteErrors/RouteErrors.styles.ts +28 -0
  352. package/src/components/RouteErrors/RouteErrors.tsx +79 -0
  353. package/src/components/RouteErrors/RouteErrors.types.ts +29 -0
  354. package/src/components/RouteErrors/RouteErrorsModal.tsx +129 -0
  355. package/src/components/RouteErrors/RouteErrorsModalItem.tsx +24 -0
  356. package/src/components/RouteErrors/index.ts +1 -0
  357. package/src/components/SearchInput/SearchInput.styles.ts +9 -0
  358. package/src/components/SearchInput/SearchInput.tsx +51 -0
  359. package/src/components/SearchInput/SearchInput.types.ts +10 -0
  360. package/src/components/SearchInput/index.ts +1 -0
  361. package/src/components/SettingsContainer/SettingsContainer.style.ts +27 -0
  362. package/src/components/SettingsContainer/index.ts +6 -0
  363. package/src/components/Slippage/Slippage.styles.ts +24 -0
  364. package/src/components/Slippage/Slippage.tsx +94 -0
  365. package/src/components/Slippage/SlippageTooltipContent.tsx +23 -0
  366. package/src/components/Slippage/index.ts +1 -0
  367. package/src/components/SwapDetails/SwapDetails.Placeholder.tsx +79 -0
  368. package/src/components/SwapDetails/SwapDetails.helpers.tsx +85 -0
  369. package/src/components/SwapDetails/SwapDetails.styles.ts +72 -0
  370. package/src/components/SwapDetails/SwapDetails.tsx +428 -0
  371. package/src/components/SwapDetails/SwapDetails.types.ts +12 -0
  372. package/src/components/SwapDetails/index.ts +1 -0
  373. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.Failed.tsx +36 -0
  374. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.Warning.tsx +55 -0
  375. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.styles.ts +7 -0
  376. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.tsx +74 -0
  377. package/src/components/SwapDetailsAlerts/SwapDetailsAlerts.types.ts +28 -0
  378. package/src/components/SwapDetailsAlerts/index.ts +2 -0
  379. package/src/components/SwapDetailsModal/SwapDetailsCompleteModal.tsx +101 -0
  380. package/src/components/SwapDetailsModal/SwapDetailsModal.Cancel.tsx +34 -0
  381. package/src/components/SwapDetailsModal/SwapDetailsModal.Delete.tsx +34 -0
  382. package/src/components/SwapDetailsModal/SwapDetailsModal.WalletState.tsx +34 -0
  383. package/src/components/SwapDetailsModal/SwapDetailsModal.helpers.tsx +22 -0
  384. package/src/components/SwapDetailsModal/SwapDetailsModal.styles.ts +6 -0
  385. package/src/components/SwapDetailsModal/SwapDetailsModal.tsx +45 -0
  386. package/src/components/SwapDetailsModal/SwapDetailsModal.types.ts +54 -0
  387. package/src/components/SwapDetailsModal/index.ts +3 -0
  388. package/src/components/SwapsGroup/SwapsGroup.styles.ts +26 -0
  389. package/src/components/SwapsGroup/SwapsGroup.tsx +126 -0
  390. package/src/components/SwapsGroup/SwapsGroup.types.ts +13 -0
  391. package/src/components/SwapsGroup/index.ts +1 -0
  392. package/src/components/SwitchFromAndTo.tsx +23 -41
  393. package/src/components/TokenList/LoadingTokenList.tsx +34 -0
  394. package/src/components/TokenList/TokenList.helpers.ts +13 -0
  395. package/src/components/TokenList/TokenList.styles.ts +121 -0
  396. package/src/components/TokenList/TokenList.tsx +271 -0
  397. package/src/components/TokenList/TokenList.types.ts +48 -0
  398. package/src/components/TokenList/index.ts +2 -0
  399. package/src/components/UpdateUrl.tsx +40 -22
  400. package/src/components/WalletModal/WalletModal.tsx +20 -0
  401. package/src/components/WalletModal/WalletModal.types.ts +11 -0
  402. package/src/components/WalletModal/WalletModalContent.styles.ts +44 -0
  403. package/src/components/WalletModal/WalletModalContent.tsx +54 -0
  404. package/src/components/WalletModal/index.ts +1 -0
  405. package/src/components/WidgetEvents.tsx +37 -5
  406. package/src/constants/errors.ts +56 -1
  407. package/src/constants/messages.ts +8 -0
  408. package/src/constants/navigationRoutes.ts +8 -4
  409. package/src/constants/routing.ts +17 -0
  410. package/src/constants/searchParams.ts +2 -2
  411. package/src/constants/swapSettings.ts +5 -1
  412. package/src/constants/wallets.ts +3 -0
  413. package/src/constants/warnings.ts +26 -0
  414. package/src/globalStyles.ts +1 -4
  415. package/src/hooks/useConfirmSwap.ts +251 -220
  416. package/src/hooks/useFetchBestRoute.ts +38 -0
  417. package/src/hooks/useNavigateBack.ts +25 -9
  418. package/src/hooks/useSwapInput.ts +116 -0
  419. package/src/hooks/useTheme.ts +35 -74
  420. package/src/hooks/useWalletList.ts +125 -0
  421. package/src/pages/ConfirmSwapPage.tsx +499 -228
  422. package/src/pages/HistoryPage.tsx +104 -15
  423. package/src/pages/Home.tsx +405 -110
  424. package/src/pages/LanguagePage.tsx +83 -0
  425. package/src/pages/LiquiditySourcePage.tsx +159 -0
  426. package/src/pages/SelectBlockchainPage.tsx +81 -0
  427. package/src/pages/SelectSwapItemsPage.tsx +169 -0
  428. package/src/pages/SettingsPage.tsx +165 -72
  429. package/src/pages/SwapDetailsPage.tsx +40 -141
  430. package/src/pages/ThemePage.tsx +96 -0
  431. package/src/pages/WalletsPage.tsx +79 -124
  432. package/src/store/bestRoute.ts +85 -180
  433. package/src/store/meta.ts +23 -3
  434. package/src/store/notification.ts +77 -0
  435. package/src/store/settings.ts +20 -13
  436. package/src/store/ui.ts +1 -5
  437. package/src/store/wallets.ts +92 -76
  438. package/src/types/config.ts +12 -7
  439. package/src/types/notification.ts +33 -0
  440. package/src/types/routing.ts +29 -28
  441. package/src/types/swap.ts +9 -1
  442. package/src/utils/common.ts +56 -3
  443. package/src/utils/configs.ts +3 -0
  444. package/src/utils/date.ts +15 -18
  445. package/src/utils/meta.ts +9 -0
  446. package/src/utils/numbers.ts +66 -20
  447. package/src/utils/routing.ts +105 -27
  448. package/src/utils/settings.ts +57 -0
  449. package/src/utils/swap.ts +244 -117
  450. package/src/utils/time.ts +69 -36
  451. package/src/utils/wallets.ts +165 -116
  452. package/dist/components/ConfirmSwapErrors.d.ts +0 -4
  453. package/dist/components/ConfirmSwapErrors.d.ts.map +0 -1
  454. package/dist/components/ConfirmSwapWarnings.d.ts +0 -3
  455. package/dist/components/ConfirmSwapWarnings.d.ts.map +0 -1
  456. package/dist/components/Layout.d.ts +0 -7
  457. package/dist/components/Layout.d.ts.map +0 -1
  458. package/dist/pages/LiquiditySourcesPage.d.ts +0 -7
  459. package/dist/pages/LiquiditySourcesPage.d.ts.map +0 -1
  460. package/dist/pages/SelectChainPage.d.ts +0 -8
  461. package/dist/pages/SelectChainPage.d.ts.map +0 -1
  462. package/dist/pages/SelectTokenPage.d.ts +0 -15
  463. package/dist/pages/SelectTokenPage.d.ts.map +0 -1
  464. package/src/components/ConfirmSwapErrors.tsx +0 -34
  465. package/src/components/ConfirmSwapWarnings.tsx +0 -22
  466. package/src/components/Layout.tsx +0 -105
  467. package/src/pages/LiquiditySourcesPage.tsx +0 -63
  468. package/src/pages/SelectChainPage.tsx +0 -42
  469. package/src/pages/SelectTokenPage.tsx +0 -64
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var Vo=Object.defineProperty;var a=(t,e)=>Vo(t,"name",{value:e,configurable:!0});import{SwapContainer as Cs,styled as Ws,I18nManager as ys}from"@rango-dev/ui";import z,{useContext as bs,useEffect as As,useMemo as Es,useState as Lo}from"react";import xe,{Fragment as An}from"react";import{MemoryRouter as En,useInRouterContext as Rn}from"react-router";import{useQueueManager as Bn}from"@rango-dev/queue-manager-rango-preset";import{useEffect as Ye,useRef as Je}from"react";import{createSearchParams as Wn,useLocation as yn,useSearchParams as bn}from"react-router-dom";import{create as hn}from"zustand";import Z from"bignumber.js";import Ko from"bignumber.js";var F=new Ko(0);import Ds from"bignumber.js";function q(t){return Array.from(new Set(t))}a(q,"removeDuplicateFrom");function De(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}a(De,"areEqual");function mt(t,e){let o;return n;function n(...s){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...s)},e)}}a(mt,"debounce");import{BigNumber as pt}from"bignumber.js";var ft=a(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),y=a((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new pt(t),s=1,r=1e3;for(let i=0;i<60;i++)if(new pt(n.toFixed(i,s)).eq(n)){r=i;break}if(n.gte(1e4))return n.toFormat(0,s);if(n.gte(1e3)||n.gte(100))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,1))),s);if(n.gte(1))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,2))),s);if(n.gte(.01))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,4))),s);for(let i=e||4;i<17;i++)if(n.gte(Math.pow(10,-i)))return n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,i))),s);return n.isEqualTo(0)?"0":n.toFormat(Math.min(r,Math.min(o||100,Math.max(e||0,8))),s)},"numberToString");var dt=a(t=>t?.result?.swaps?.reduce((e,o)=>e+o.estimatedTimeInSeconds,0)||0,"totalArrivalTime");var ge=a(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function Le(t,e,o){return o&&t.find(n=>{let s=e?.split("--");return s?.length===1?n.symbol===s[0]&&n.address===null&&n.blockchain===o.name:n.symbol===s?.[0]&&n.address===s?.[1]&&n.blockchain===o.name})||null}a(Le,"searchParamsToToken");function gt(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}a(gt,"getBestRouteToTokenUsdPrice");function _e(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}a(_e,"isNumberOfSwapsChanged");function qe(t,e){let o=t.result?.swaps.map(s=>s.swapperId)||[],n=e.result?.swaps.map(s=>s.swapperId)||[];return!De(o,n)}a(qe,"isRouteSwappersUpdated");function He(t,e){let o=t.result?.swaps.map(s=>s.to.symbol)||[],n=e.result?.swaps.map(s=>s.to.symbol)||[];return!De(o,n)}a(He,"isRouteInternalCoinsUpdated");function St(t,e){return _e(t,e)||qe(t,e)||He(t,e)}a(St,"isRouteChanged");function ht(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}a(ht,"getRequiredBalanceOfWallet");function $e(t){if(t.store==="bestRoute"){let{prevState:e,currentState:o}=t;return!!o.fromToken&&!!o.toToken&&(e.fromChain?.name!==o.fromChain?.name||e.toChain?.name!==o.toChain?.name||e.fromToken?.symbol!==o.fromToken?.symbol||e.toToken?.symbol!==o.toToken?.symbol||e.fromToken?.blockchain!==e.fromToken?.blockchain||e.toToken?.blockchain!==o.toToken?.blockchain||e.fromToken?.address!==o.fromToken?.address||e.toToken?.address!==o.toToken?.address||e.inputAmount!==o.inputAmount)}else if(t.store==="settings"){let{prevState:e,currentState:o}=t;return e.slippage!==o.slippage||e.customSlippage!==o.customSlippage||e.disabledLiquiditySources?.length!==o.disabledLiquiditySources?.length||e.infiniteApprove||o.infiniteApprove}return!1}a($e,"isRouteParametersChanged");function Tt(t){if(!t)return null;let e=(t.result?.swaps||[]).map(o=>({...o,fromAmount:y(o.fromAmount,6,6),toAmount:y(o.toAmount,6,6)}));return{...t,...t.result&&{result:{...t.result,swaps:e}}}}a(Tt,"getFormatedBestRoute");function kt(t){let e=t.steps.map(o=>({...o,feeInUsd:y(o.feeInUsd,4,4),outputAmount:y(o.outputAmount,6,6),expectedOutputAmountHumanReadable:y(o.expectedOutputAmountHumanReadable,6,6)}));return{...t,inputAmount:y(t.inputAmount,6,6),steps:e}}a(kt,"getFormatedPendingSwap");var wt=a((t,e)=>t?"loading":e?"failed":"success","getBestRouteStatus");var jo=a(t=>{let e=t;e.use={};for(let o of Object.keys(e.getState()))e.use[o]=()=>e(n=>n[o]);return e},"createSelectors"),Q=jo;import{subscribeWithSelector as Tn}from"zustand/middleware";import{RangoClient as Xo}from"rango-sdk";var Qo="c6381a79-2817-4602-83bf-6a641a409e32",Ge={API_KEY:Qo};function Se(t){return Ge[t]}a(Se,"getConfig");function Ct(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),Ge=e,Ge}a(Ct,"initConfig");var he,oe=a(()=>he||(he=new Xo(Se("API_KEY")),he),"httpService");import{create as Jo}from"zustand";import{persist as zo,subscribeWithSelector as Zo}from"zustand/middleware";var Wt=[.5,1,3,5,8,13,20],yt=1,bt=5,At=100,Et=0;import{create as Yo}from"zustand";var k=Q(Yo()(t=>({meta:{blockchains:[],popularTokens:[],swappers:[],tokens:[]},loadingStatus:"loading",fetchMeta:async()=>{try{let e=await oe().getAllMetadata(),o=q(e.tokens.map(s=>s.blockchain)),n=e.blockchains.filter(s=>s.enabled&&o.includes(s.name));e.blockchains=n.sort((s,r)=>s.sort-r.sort),t({meta:e,loadingStatus:"success"})}catch{t({loadingStatus:"failed"})}}})));var A=Q(Jo()(zo(Zo(t=>({slippage:yt,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,disabledLiquiditySources:[],theme:"auto",setSlippage:e=>t(()=>({slippage:e})),setCustomSlippage:e=>t(()=>({customSlippage:e})),setAffiliateRef:e=>t(()=>({affiliateRef:e})),setAffiliatePercent:e=>t(()=>({affiliatePercent:e})),setAffiliateWallets:e=>t(()=>({affiliateWallets:e})),toggleAllLiquiditySources:()=>t(e=>{let{swappers:o}=k.getState().meta,n=q(o.map(s=>s.swapperGroup));return n.length===e.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:n}}),toggleInfiniteApprove:()=>t(e=>({infiniteApprove:!e.infiniteApprove})),toggleLiquiditySource:e=>t(o=>o.disabledLiquiditySources.includes(e)?{disabledLiquiditySources:o.disabledLiquiditySources.filter(n=>n!=e)}:{disabledLiquiditySources:o.disabledLiquiditySources.concat(e)}),setTheme:e=>t(()=>({theme:e}))})),{name:"user-settings",skipHydration:!0})));import L from"bignumber.js";import{i18n as Y}from"@lingui/core";import{getCosmosExperimentalChainInfo as en,isEvmAddress as tn,KEPLR_COMPATIBLE_WALLETS as on,detectInstallLink as nn,WalletTypes as rn,Networks as Rt}from"@rango-dev/wallets-shared";import{WalletState as X}from"@rango-dev/ui";import{isCosmosBlockchain as sn}from"rango-types";import{readAccountAddress as an}from"@rango-dev/wallets-react";import Te from"bignumber.js";function ln(t){switch(!0){case t.connected:return X.CONNECTED;case t.connecting:return X.CONNECTING;case!t.installed:return X.NOT_INSTALLED;default:return X.DISCONNECTED}}a(ln,"getStateWallet");var un=[rn.LEAP];function Bt(t,e,o){return o.filter(n=>!un.includes(n)).map(n=>{let{name:s,img:r,installLink:i,showOnMobile:l}=e(n),u=ln(t(n));return{name:s,image:r,installLink:nn(i),state:u,type:n,showOnMobile:!(typeof l>"u")}})}a(Bt,"getlistWallet");function ke(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}a(ke,"walletAndSupportedChainsNames");function xt(t,e,o,n){let s=[];function r(l,u){if(!!!s.find(f=>f.chain===l)){let f={address:u,chain:l,walletType:t};s.push(f)}}a(r,"addAccount");let i=n||[];return e.forEach(l=>{let{address:u,network:c}=an(l),f=i.length>0,T=i.includes(c),w=c===Rt.Unknown;if(f&&!T&&!w)return;let S=c===Rt.Unknown&&tn(u);if(w&&!S)return;o.includes(c)||S?i.filter(p=>o.includes(p)).forEach(p=>{r(p,u.toLowerCase())}):r(c,u)}),s}a(xt,"prepareAccountsForWalletStore");function ae(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain;e.includes(n)||e.push(n),e.includes(s)||e.push(s),o.internalSwaps&&Array.isArray(o.internalSwaps)&&o.internalSwaps.forEach(r=>{let i=r.from.blockchain,l=r.to.blockchain;e.includes(i)||e.push(i),e.includes(l)||e.push(l)})}),e}a(ae,"getRequiredChains");function we(t,e,o,n){return t.map(r=>({address:r.address,walletType:r.walletType,chain:r.chain,image:o(r.walletType).img,name:o(r.walletType).name,selected:n===r.chain?!1:!!e.find(i=>i.chain===r.chain&&i.walletType===r.walletType)}))}a(we,"getSelectableWallets");function se(t,e,o,n){if(t.length===0)return null;let s=t.filter(r=>r.chain===e);return s.length===0?null:s.map(r=>r.balances?.find(i=>n!==null&&i.address===n||n===null&&i.address===n&&i.symbol===o)||null).filter(r=>r!==null).sort((r,i)=>parseFloat(i?.amount||"0")-parseFloat(r?.amount||"1")).find(()=>!0)||null}a(se,"getBalanceFromWallet");function Ce(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}a(Ce,"isAccountAndWalletMatched");function vt(t,e,o){let{address:n,blockChain:s,explorerUrl:r,balances:i=[]}=e;return{address:n,chain:s,loading:!1,error:!1,explorerUrl:r,walletType:t.walletType,balances:i?.map(l=>({chain:s,symbol:l.asset.symbol,ticker:l.asset.symbol,address:l.asset.address||null,rawAmount:l.amount.amount,decimal:l.amount.decimals,amount:new Te(l.amount.amount).shiftedBy(-l.amount.decimals).toFixed(),logo:"",usdPrice:mn(s,l.asset.symbol,l.asset.address,o)||null}))||[]}}a(vt,"makeBalanceFor");function Pt(t){return{...t,loading:!1,error:!0}}a(Pt,"resetConnectedWalletState");var It=a(t=>{let e=new Set,n=t?.reduce((r,i)=>r.findIndex(l=>l.address===i.address&&l.chain===i.chain)===-1?[...r,i]:r,[])?.map(r=>{let i={name:r.chain,accounts:[]};return e.has(r.address)||e.add(r.address),e.forEach(l=>{r.address===l&&i.accounts.push(r)}),i}),s=y(n?.flatMap(r=>r.accounts)?.flatMap(r=>r?.balances)?.map(r=>new Te(r?.amount||F).multipliedBy(r?.usdPrice||0))?.reduce((r,i)=>r.plus(i),F)||F).toString();return cn(s)},"calculateWalletUsdValue");function cn(t){let e=t.toString().split(".");return e[0]=e[0].replace(/\B(?=(\d{3})+(?!\d))/g,","),e.join(".")}a(cn,"numberWithThousandSeperator");var We=a(t=>!t.some(o=>o.balance)?t.filter(o=>!o.address).concat(t.filter(o=>o.address&&!o.isSecondaryCoin),t.filter(o=>o.isSecondaryCoin)):t.filter(o=>!!o.balance).sort((o,n)=>parseFloat(n.balance?.usdValue||"0")-parseFloat(o.balance?.usdValue||"0")).concat(t.filter(o=>!o.balance&&!o.isSecondaryCoin),t.filter(o=>!o.balance&&o.isSecondaryCoin)),"sortTokens"),mn=a((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice"),Nt=a((t,e)=>{let o=en(Object.entries(t).map(([,n])=>n).filter(sn));return o&&!!o[e]},"isExperimentalChain"),Ve=a(t=>{let e=new Set(t.map(o=>o.walletType));return on.filter(o=>e.has(o))},"getKeplrCompatibleConnectedWallets");function ye(t,e){return t.map(({balance:o,...n})=>{let s=y(new Te(se(e,n.blockchain,n.symbol,n.address)?.amount||F)),r="";return n.usdPrice&&(r=y(new Te(se(e,n.blockchain,n.symbol,n.address)?.amount||F).multipliedBy(n.usdPrice))),{...n,...s!=="0"&&{balance:{amount:s,usdValue:r}}}})}a(ye,"getTokensWithBalance");function le(t,e,o,n){if(t?.name===n[0]?.name)return n;let r=e.filter(i=>i.blockchain===t?.name);return We(ye(r,o))}a(le,"getSortedTokens");function V(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}a(V,"tokensAreEqual");function Ke(t,e){let o,n=t[0],s=t[1];return t.length===1?o=n:V(n,e)?o=s:o=n,o}a(Ke,"getDefaultToken");function Mt(t){return t.sort((e,o)=>+(o.state===X.CONNECTED)-+(e.state===X.CONNECTED)||+(o.state===X.DISCONNECTED||o.state===X.CONNECTING)-+(e.state===X.DISCONNECTED||e.state===X.CONNECTING))}a(Mt,"sortWalletsBasedOnState");import{PendingSwapNetworkStatus as be}from"@rango-dev/queue-manager-rango-preset";function Ae(t,e){return!t||!e||t.lte(F)||e.lte(F)?0:e.div(t).minus(1).multipliedBy(100)}a(Ae,"getOutputRatio");function Ee(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new L(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new L(1e3)))??!1}a(Ee,"outputRatioHasWarning");function je(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new L(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new L(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}a(je,"hasLimitError");function Ot(t){if(!t)return{swap:null,fromAmountRangeError:"",recommendation:""};let e=(t?.result?.swaps||[]).filter(l=>{let u=l.fromAmountMinValue?new L(l.fromAmountMinValue):null,c=l.fromAmountMaxValue?new L(l.fromAmountMaxValue):null;return l.fromAmountRestrictionType==="EXCLUSIVE"?u?.gte(l.fromAmount)||c?.lte(l.fromAmount):u?.gt(l.fromAmount)||c?.lt(l.fromAmount)})[0];if(!e)return{swap:null,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new L(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new L(e.fromAmountMaxValue):null,s=e.fromAmountRestrictionType==="EXCLUSIVE",r="",i="";return!s&&o&&o.gt(e.fromAmount)?(r=`Required: >= ${y(o)} ${e.from.symbol}`,i="Increase your swap amount"):s&&o&&o.gte(e.fromAmount)&&(r=`Required: > ${y(o)} ${e.from.symbol}`,i="Increase your swap amount"),!s&&n&&n.lt(e.fromAmount)?(r=`Required: <= ${y(n)} ${e.from.symbol}`,i="Decrease your swap amount"):s&&n&&n.lte(e.fromAmount)&&(r=`Required: < ${y(n)} ${e.from.symbol}`,i="Decrease your swap amount"),{swap:e,fromAmountRangeError:r,recommendation:i}}a(Ot,"LimitErrorMessage");function Ut(t,e,o,n,s,r,i,l,u){return t!=="success"?{title:`${Y.t("Connect Wallet")}`,disabled:!0}:e.length==0?{title:`${Y.t("Connect Wallet")}`,disabled:!1}:o?{title:`${Y.t("Finding Best Route...")}`,disabled:!0}:!u||u==="0"?{title:`${Y.t("Enter an amount")}`,disabled:!0}:!n||!n.result?{title:`${Y.t("Swap")}`,disabled:!0}:s?{title:`${Y.t("Limit Error")}`,disabled:!0}:r?{title:`${Y.t("Price impact is too high!")}`,disabled:!0}:i?{title:`${Y.t("USD price is unknown, price impact might be high!")}`,disabled:!1,hasWarning:!0}:l?{title:`${Y.t("The route goes through Ethereum. Continue?")}`,disabled:!1,hasWarning:!0}:{title:`${Y.t("Swap")}`,disabled:!1}}a(Ut,"getSwapButtonState");function Dt(t,e,o,n){return!((!o||!n||o.lte(F)||n.lte(F))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}a(Dt,"canComputePriceImpact");function Ft(t){let e=[];return t?.result?.swaps.forEach(o=>{let n=o.from.blockchain,s=o.to.blockchain,r=e[e.length-1];n!=r&&e.push(n),r=e[e.length-1],s!=r&&e.push(s)}),e}a(Ft,"requiredWallets");var pn=a((t,e,o,n)=>n?.find(r=>r.blockchain===t&&r.symbol?.toUpperCase()===e?.toUpperCase()&&r.address===o)?.usdPrice||null,"getUsdPrice");function fn(t,e){let o=F;for(let n=0;n<t.fee.length;n++){let s=t.fee[n];if(s.expenseType==="DECREASE_FROM_OUTPUT")continue;let r=pn(s.asset.blockchain,s.asset.symbol,s.asset.address,e);o=o.plus(new L(s.amount).multipliedBy(r||0))}return o}a(fn,"getUsdFeeOfStep");function Re(t,e){return t?.result?.swaps.reduce((o,n)=>o.plus(fn(n,e)),F)||null}a(Re,"getTotalFeeInUsd");function Lt(t){return t?!t.lt(new L(30)):!1}a(Lt,"hasHighFee");function _t(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}a(_t,"getMinRequiredSlippage");function qt(t,e){return e?parseFloat(t)>=parseFloat(e):!0}a(qt,"hasProperSlippage");function Be(t,e,o,n,s,r,i,l,u,c,f,T){let w=s.reduce((p,m)=>(p[m.chain]=m.address,p),{}),h=[];n.forEach(p=>{let m=h.find(W=>W.blockchain===p.chain);m?m.addresses.push(p.address):h.push({blockchain:p.chain,addresses:[p.address]})});let S=!!f,C=q((f?.result?.swaps||[]).reduce((p,m)=>(p.push(m.from.blockchain,m.to.blockchain),m.internalSwaps&&Array.isArray(m.internalSwaps)&&m.internalSwaps.map(W=>{p.push(W.from.blockchain,W.to.blockchain)}),p),[]));return{amount:o.toString(),affiliateRef:l??void 0,affiliatePercent:u??void 0,affiliateWallets:c??void 0,checkPrerequisites:S,from:{address:t.address,blockchain:t.blockchain,symbol:t.symbol},to:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},connectedWallets:h,destination:T||void 0,selectedWallets:w,swapperGroups:r,swappersGroupsExclude:!0,slippage:i.toString(),...S&&{blockchains:C}}}a(Be,"createBestRouteRequestBody");function Qe(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}a(Qe,"getWalletsForNewSwap");function ie(t){return t?.result?.outputAmount||null}a(ie,"getRouteOutputAmount");function ne(t,e){return!t||!e?null:new L(e).div(new L(t)).minus(1).multipliedBy(100)}a(ne,"getPercentageChange");function Ht(t,e){let o=ie(t),n=ie(e);if(!o||!n)return!1;let s=ne(o,n);return s?s.toNumber()<=-1:!0}a(Ht,"isOutputAmountChangedALot");function $t(t,e){let o=t.validationStatus,n=ae(t);return e.sort((r,i)=>n.indexOf(r.chain)-n.indexOf(i.chain)).flatMap(r=>ht(r,o)||[]).filter(r=>!r.ok).map(r=>{let i=r.asset.symbol,l=y(new L(r.currentAmount.amount).shiftedBy(-r.currentAmount.decimals),8),u=y(new L(r.requiredAmount.amount).shiftedBy(-r.requiredAmount.decimals),8),c="";return r.reason==="FEE"&&(c=" for network fee"),r.reason==="INPUT_ASSET"&&(c=" for swap"),r.reason==="FEE_AND_INPUT_ASSET"&&(c=" for input and network fee"),`Needs \u2248 ${u} ${i}${c}, but you have ${l} ${i} in your ${r.asset.blockchain} wallet.`})}a($t,"getBalanceWarnings");function Gt(t,e){return(t?new L(t):F).multipliedBy(e||0)}a(Gt,"calcOutputUsdValue");function Xe(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==be.NetworkChanged}a(Xe,"isNetworkStatusInWarningState");function Vt(t,e){let o="bellow button or",n=t.extraMessage,s=t.extraMessageDetail;if(t.networkStatusExtraMessageDetail?.includes(o)&&(t.networkStatusExtraMessageDetail=t.networkStatusExtraMessageDetail.replace(o,"")),Xe(e))switch(n=t.networkStatusExtraMessage||"",s=t.networkStatusExtraMessageDetail||"",e?.networkStatus){case be.WaitingForConnectingWallet:n=n||"Waiting for connecting wallet";break;case be.WaitingForQueue:n=n||"Waiting for other running tasks to be finished";break;case be.WaitingForNetworkChange:n=n||"Waiting for changing wallet network";break}s=s||"",n=n||"";let i=n?.indexOf("code")!==-1&&n?.indexOf("reason")!==-1;return{shortMessage:n,detailedMessage:{content:s,long:i}}}a(Vt,"getSwapMessages");function Kt(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}a(Kt,"getLastConvertedTokenInFailedSwap");function jt(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}a(jt,"shouldRetrySwap");function Qt(t,e){return(k.getState().meta.blockchains.find(s=>s.name===t)?.addressPatterns||[]).filter(s=>new RegExp(s).test(e)).length>0}a(Qt,"isValidCustomDestination");function Xt(t,e,o,n,s){return t||!e&&!Ft(n).every(r=>s.map(i=>i.chain).includes(r))||!!e&&!o||!!e&&!!o&&!Ft(n).filter(r=>r!==e).every(r=>s.map(i=>i.chain).includes(r))}a(Xt,"confirmSwapDisabled");import{create as dn}from"zustand";import{subscribeWithSelector as gn}from"zustand/middleware";import{shallow as Sn}from"zustand/shallow";var R=Q(dn()(gn((t,e)=>({connectedWallets:[],selectedWallets:[],customDestination:"",connectWallet:o=>{let n=e().getWalletsDetails;t(s=>({connectedWallets:s.connectedWallets.filter(r=>r.walletType!==o[0].walletType).concat(o.map(r=>({balances:[],address:r.address,chain:r.chain,loading:!0,walletType:r.walletType,error:!1,explorerUrl:null})))})),n(o)},disconnectWallet:o=>{t(n=>({connectedWallets:n.connectedWallets.filter(s=>s.walletType!==o),selectedWallets:n.selectedWallets.filter(s=>s.walletType!=o)}))},initSelectedWallets:()=>t(o=>{let n=ae(d.getState().bestRoute),s=o.connectedWallets,r=[];return n.forEach(i=>{if(!!!o.selectedWallets.find(u=>u.chain===i)){let u=s.find(c=>c.chain===i);u&&r.push({address:u.address,chain:u.chain,walletType:u.walletType})}}),{selectedWallets:o.selectedWallets.concat(r)}}),setSelectedWallet:o=>t(n=>({selectedWallets:n.selectedWallets.filter(s=>s.chain!==o.chain).concat({chain:o.chain,address:o.address,walletType:o.walletType})})),setCustomDestination:o=>t(()=>({customDestination:o})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n=!0)=>{let s=e().getWalletsDetails,{tokens:r}=k.getState().meta;t(i=>({connectedWallets:i.connectedWallets.map(l=>o.find(u=>Ce(u,l))?{...l,loading:!0}:l)}));try{let i=o.map(({address:c,chain:f})=>({address:c,blockchain:f})),u=(await oe().getWalletsDetails(i)).wallets;if(u)t(c=>({connectedWallets:c.connectedWallets.map(f=>{let T=o.find(h=>Ce(h,f)),w=u.find(h=>h.address===f.address&&h.blockChain===f.chain);return w?.failed&&T&&n&&s([T],!1),T&&w?vt(T,w,r):f})}));else throw new Error("Wallet not found")}catch{t(l=>({connectedWallets:l.connectedWallets.map(u=>o.find(c=>Ce(c,u))?Pt(u):u)}))}}}))));R.subscribe(t=>t.connectedWallets,t=>{d.setState(({sourceTokens:e,destinationTokens:o})=>{let n=ye(e,t),s=ye(o,t);return{sourceTokens:We(n),destinationTokens:We(s)}})},{equalityFn:Sn});var Yt=a(t=>!!t.connectedWallets.find(e=>e.loading),"fetchingBalanceSelector");var ue=a((t,e)=>t?.usdPrice?new Z(e||F).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),d=Q(hn()(Tn(t=>({fromChain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new Z(0),outputUsdValue:new Z(0),toChain:null,toToken:null,bestRoute:null,loading:!1,error:"",sourceTokens:[],destinationTokens:[],setBestRoute:e=>t(o=>{let n=null,s=F;return ge(o.inputAmount)?(e&&(n=e.result?.outputAmount?new Z(e.result?.outputAmount):null,s=Gt(e.result?.outputAmount,gt(e)||o.toToken?.usdPrice)),{bestRoute:e,...!!e&&{outputAmount:n,outputUsdValue:s}}):{}}),resetRoute:()=>t(()=>({loading:!0,error:"",bestRoute:null,outputAmount:null,outputUsdValue:new Z(0)})),setFromChain:(e,o)=>{t(n=>{if(n.fromChain?.name===e?.name)return{};let s=k.getState().meta.tokens,r=R.getState().connectedWallets,i=le(e,s,r,n.destinationTokens),l=Ke(i,n.toToken);return{fromChain:e,sourceTokens:i,...o&&{fromToken:l},...!!n.inputAmount&&{inputUsdValue:ue(l,n.inputAmount)}}})},setFromToken:e=>t(o=>({fromToken:e,...!!o.inputAmount&&{inputUsdValue:ue(e,o.inputAmount)}})),setToChain:(e,o)=>{t(n=>{if(n.toChain?.name===e?.name)return{};let s=k.getState().meta.tokens,r=R.getState().connectedWallets,i=le(e,s,r,n.destinationTokens);return{toChain:e,destinationTokens:i,...o&&{toToken:Ke(i,n.fromToken)}}})},setToToken:e=>t(()=>({toToken:e})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new Z(0),outputUsdValue:new Z(0),bestRoute:null,error:""},...!!o.fromToken&&{inputUsdValue:ue(o.fromToken,e)}}))},retry:e=>{let{tokens:o,blockchains:n}=k.getState().meta,s=R.getState().connectedWallets,r=e.status==="failed"?e.steps.findIndex(C=>C.status==="failed"):null;if(r===null||r<0)return;let i=e.steps[0],l=e.steps[e.steps.length-1],u=n.find(C=>C.name===i.fromBlockchain)||null,c=n.find(C=>C.name===l.toBlockchain)||null,f=o.find(C=>V(C,{blockchain:i.fromBlockchain,symbol:i.fromSymbol,address:i.fromSymbolAddress})),T=o.find(C=>V(C,{blockchain:l.toBlockchain,symbol:l.toSymbol,address:l.toSymbolAddress})),w=le(u,o,s,[]),h=le(c,o,s,[]),S=e.inputAmount;t({fromChain:u,fromToken:f,inputAmount:S,outputAmount:null,inputUsdValue:ue(f||null,S),outputUsdValue:new Z(0),toChain:c,toToken:T,bestRoute:null,loading:!1,error:"",sourceTokens:w,destinationTokens:h})},switchFromAndTo:()=>t(e=>({fromChain:e.toChain,fromToken:e.toToken,toChain:e.fromChain,toToken:e.fromToken,sourceTokens:e.destinationTokens,destinationTokens:e.sourceTokens,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:ue(e.toToken,e.outputAmount?.toString()||"")}))})))),kn=a((t,e)=>{let o=null,n=a(()=>{let{fromToken:i,toToken:l,inputAmount:u,resetRoute:c}=t.getState(),{slippage:f,customSlippage:T,disabledLiquiditySources:w,affiliateRef:h,affiliatePercent:S,affiliateWallets:C}=e.getState();if(!i||!l||!ge(u))return;o?.abort(),o=new AbortController;let p=Be(i,l,u,[],[],w,T||f,h,S,C);t.getState().loading||c(),oe().getBestRoute(p,{signal:o.signal}).then(m=>{let{setBestRoute:W}=t.getState();W(m),t.setState({loading:!1}),o=null}).catch(m=>{m.code!=="ERR_CANCELED"&&t.setState({error:m.message,loading:!1})})},"fetchBestRoute"),s=mt(n,600),r=a(()=>{let{fromToken:i,toToken:l,inputAmount:u,inputUsdValue:c,resetRoute:f}=d.getState();if(!ge(u)||c?.eq(0))return t.setState({loading:!1});if(V(i,l))return t.setState({loading:!1,bestRoute:null,outputAmount:new Z(u),outputUsdValue:c});t.getState().loading||f(),s()},"bestRouteParamsListener");return d.subscribe(i=>({fromChain:i.fromChain,fromToken:i.fromToken,toChain:i.toChain,toToken:i.toToken,inputAmount:i.inputAmount}),r,{equalityFn:(i,l)=>!$e({store:"bestRoute",prevState:i,currentState:l})}),A.subscribe(i=>({slippage:i.slippage,customSlippage:i.customSlippage,disabledLiquiditySources:i.disabledLiquiditySources,infiniteApprove:i.infiniteApprove}),r,{equalityFn:(i,l)=>!$e({store:"settings",prevState:i,currentState:l})}),{fetchBestRoute:n}},"bestRoute"),{fetchBestRoute:Jt}=kn(d,A);var g={home:"/",fromChain:"from-chain",fromToken:"from-token",toChain:"to-chain",toToken:"to-token",settings:"settings",liquiditySources:"/settings/liquidity-sources",swaps:"swaps",wallets:"wallets",confirmSwap:"confirm-swap",swapDetails:"swaps/:requestId"};import{create as wn}from"zustand";var O=Q(wn()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",toggleConnectWalletsButton:()=>t(e=>({connectWalletsButtonDisabled:!e.connectWalletsButtonDisabled})),setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));function zt(){let t=Je(!0),[e,o]=bn(),n=yn(),s=Je(n.search),r=Je({}),i=d.use.fromChain(),l=d.use.toChain(),u=d.use.fromToken(),c=d.use.toToken(),f=d.use.setFromChain(),T=d.use.setFromToken(),w=d.use.setToChain(),h=d.use.setToToken(),S=d.use.inputAmount(),C=d.use.setInputAmount(),E=k.use.loadingStatus(),{blockchains:p,tokens:m}=k.use.meta(),W=O.use.setSelectedSwap();return Ye(()=>{let B={};Wn(s.current).forEach((v,I)=>{B[I]=v}),r.current=B;let x=n.pathname.split(g.swaps+"/")[1]||null;x&&W(x)},[]),Ye(()=>{if(!t.current){let B="",x="",v="",I="",N="";if(E!=="success")B=r.current["fromChain"],x=r.current["fromToken"],v=r.current["toChain"],I=r.current["toToken"],N=r.current["fromAmount"]||S;else{if(n.state==="redirect")return;B=i?.name||"",x=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),v=l?.name||"",I=(c?.symbol||"")+(c?.address?`--${c?.address}`:""),N=S}o({...B&&{["fromChain"]:B},...x&&{["fromToken"]:x},...v&&{["toChain"]:v},...I&&{["toToken"]:I},...N&&{["fromAmount"]:N.toString()}},{replace:!0})}t.current=!1},[n.pathname,S,i,u,l,c]),Ye(()=>{if(E==="success"){let B=e.get("fromChain"),x=e.get("fromToken"),v=e.get("toChain"),I=e.get("toToken"),N=e.get("fromAmount"),H=p.find(P=>P.name===B),$=Le(m,x,H||null),D=p.find(P=>P.name===v),b=Le(m,I,D||null);H&&(f(H),$&&T($)),D&&(w(D),b&&h(b)),N&&C(N)}},[E]),null}a(zt,"UpdateUrl");import{useWallets as xn}from"@rango-dev/wallets-react";import{isEvmBlockchain as vn}from"rango-types";function Zt({children:t,...e}){let o=Rn(),n=o?An:En,{blockchains:s}=k.use.meta(),{canSwitchNetworkTo:r}=xn(),i=s.filter(vn);return Bn({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:i,canSwitchNetworkTo:r}),xe.createElement(xe.Fragment,null,xe.createElement(n,null,t),o&&xe.createElement(zt,null))}a(Zt,"AppRouter");import Me,{useEffect as Fe}from"react";import{useNavigate as Qr}from"react-router-dom";import{HeaderLayout as Xr}from"@rango-dev/ui";import{useWallets as Yr}from"@rango-dev/wallets-react";import K from"react";import{useRoutes as Kr}from"react-router-dom";import _,{useEffect as Dn,useState as so}from"react";import{useNavigate as Ln}from"react-router-dom";import{useWallets as _n}from"@rango-dev/wallets-react";import{i18n as ve}from"@lingui/core";import{useInRouterContext as Pn,useNavigate as In}from"react-router-dom";function U(){let t=Pn(),e=In();return g,{navigateBackFrom:a(n=>{if(n===g.swapDetails)return e("/"+g.swaps,{replace:!0});!t||window.history.state&&window.history.state.idx>0?e(-1):[g.fromChain,g.fromToken,g.toChain,g.toToken,g.settings,g.wallets,g.swaps,g.confirmSwap].includes(n)?e(g.home,{replace:!0}):n===g.liquiditySources&&e("/"+g.settings,{replace:!0})},"navigateBackFrom")}}a(U,"useNavigateBack");import{Divider as ao,ConfirmSwap as qn,LoadingFailedAlert as Hn,HighSlippageWarning as $n,PercentageChange as Gn,RoutesOverview as Vn,TokenPreview as io}from"@rango-dev/ui";import{useManager as Kn}from"@rango-dev/queue-manager-react";import{useEffect as Mn,useRef as ze,useState as Ze}from"react";import et from"bignumber.js";import{calculatePendingSwap as eo}from"@rango-dev/queue-manager-rango-preset";function oo(){let t=d.use.fromToken(),e=d.use.toToken(),o=d.use.inputAmount(),n=d.use.bestRoute(),s=d.use.setBestRoute(),r=d.use.inputUsdValue(),i=A.use.affiliateRef(),l=A.use.affiliatePercent(),u=A.use.affiliateWallets(),c=R.use.connectedWallets(),f=R.use.customDestination(),T=R.use.selectedWallets(),w=k.use.meta(),h=A.use.customSlippage(),S=A.use.slippage(),C=A.use.disabledLiquiditySources(),E=h||S,p=ze(!1),m=ze(null),W=ze(null),[B,x]=Ze(!1),[v,I]=Ze([]),[N,H]=Ze([]);return Mn(()=>()=>W.current?.abort(),[]),!t||!e||!o||!n?{loading:!1,warnings:[],errors:[],confirmSwap:null}:{loading:B,warnings:N,errors:v,confirmSwap:a(async()=>{if(p.current){let b={slippage:E.toString(),disabledSwappersGroups:C};return v.length>0&&I([]),N.length>0&&H([]),p.current=!1,m.current?eo(o.toString(),m.current,Qe(T),b,!1,w):void 0}W.current=new AbortController,x(!0);let D=Be(t,e,o,c,T,C,E,i,l,u,n,f);try{let b=await oe().getBestRoute(D,{signal:W.current?.signal});if(W.current=null,x(!1),!b.result||!new et(b.requestAmount).isEqualTo(new et(o||"-1"))){I(G=>G.concat({type:0}));return}let P={errors:[],warnings:[]};if(St(n,b)){s(b);let G=new et(b.result?.outputAmount||"0").multipliedBy(e.usdPrice||0),fe=Ae(r,G);Ee(r,fe)?P.errors.push({type:1}):Ht(n,b)?P.warnings.push({type:3,newOutputAmount:y(ie(b)),percentageChange:y(ne(ie(n),ie(b)),null,2)}):He(n,b)?P.warnings.push({type:2}):_e(n,b)?P.warnings.push({type:0}):qe(n,b)&&P.warnings.push({type:1})}let ee=$t(b,T);ee.length===0||P.errors.push({type:4,messages:ee});let me=_t(n);qt(E.toString(),me)||P.errors.push({type:3,minRequiredSlippage:me});let pe=P.errors.length===0,te=P.warnings.length===0;if((pe||!pe&&p.current)&&(te||!te&&p.current)){let G={slippage:E.toString(),disabledSwappersGroups:C};return eo(o.toString(),b,Qe(T),G,!1,w)}else p.current||(p.current=!0,I(P.errors),H(P.warnings),m.current=b);return}catch(b){if(b?.code==="ERR_CANCELED")return;let P=b?.response?.status;x(!1),I([{type:2,status:P}]);return}},"confirmSwap")}}a(oo,"useConfirmSwap");import no from"react";import{BalanceErrors as Fn,MinRequiredSlippage as On}from"@rango-dev/ui";import{useNavigate as Un}from"react-router-dom";function tt(t){let e=Un();return t.flatMap(o=>{switch(o.type){case 0:return"No routes found. Please try again later.";case 2:return`Failed to confirm swap ${o.status?`'status': ${o.status})`:""}, please try again.`;case 1:return"Route updated and price impact is too high, try again later!";case 3:return no.createElement(On,{minRequiredSlippage:o.minRequiredSlippage,changeSlippage:()=>e("/"+g.settings)});case 4:return no.createElement(Fn,{messages:o.messages});default:return[]}})}a(tt,"ConfirmSwapErrors");function ro(t){return t.flatMap(e=>{switch(e.type){case 0:return"Route has been updated.";case 3:return`Output amount changed to ${e.newOutputAmount} (${e.percentageChange}% change).`;case 1:return"Route swappers has been updated.";case 2:return"Route internal coins has been updated.";default:return[]}})}a(ro,"ConfirmSwapWarnings");function lo({customDestinationEnabled:t}){let e=Ln(),{navigateBackFrom:o}=U(),n=d.use.bestRoute(),s=d.use.loading(),r=d.use.error(),i=O.use.setSelectedSwap(),{blockchains:l,tokens:u}=k.use.meta(),c=k.use.loadingStatus(),f=R.use.connectedWallets(),T=R.use.selectedWallets(),w=R.use.customDestination(),h=R.use.setCustomDestination(),S=R.use.initSelectedWallets(),C=R.use.setSelectedWallet(),E=A.use.slippage(),p=A.use.customSlippage(),m=d.use.inputUsdValue(),W=d.use.outputUsdValue(),B=d.use.setInputAmount(),[x,v]=so(""),I=wt(s,!!r),[N,H]=so(""),{manager:$}=Kn(),{loading:D,errors:b,warnings:P,confirmSwap:ce}=oo(),ee=p||E,re=!b.find(M=>M.type===3),{getWalletInfo:me,connect:pe}=_n(),te=n?.result?.swaps[0],G=n?.result?.swaps[n?.result?.swaps.length-1],fe=y(te?.fromAmount,4,6),ut=y(G?.toAmount,4,6);Dn(()=>{S(),w&&h("")},[]);let qo=n?.result?.swaps[n?.result?.swaps.length-1].to.blockchain,ct=!!n?.result?.swaps.find(M=>M.from.blockchain===qo),de=we(f,T,me,ct?"":N),Ho=a(M=>{let Ue=M;Ve(de).forEach(Go=>pe?.(Go,Ue))},"handleConnectChain"),$o=Re(n,u),Oe=!m||!W||!W.gt(0)?null:ne(m.toNumber(),W.toNumber());return _.createElement(qn,{requiredWallets:ae(n),selectableWallets:de,setCustomDestination:h,customDestination:w,customDestinationEnabled:t,isValidCustomDestination:Qt,checkedDestination:!!N,setDestinationChain:H,onBack:o.bind(null,g.confirmSwap),onConfirm:async()=>{ce?.().then(async M=>{if(M)try{await $?.create("swap",{swapDetails:M},{id:M.requestId}),i(M.requestId),e("/"+g.swaps+`/${M.requestId}`,{replace:!0}),setTimeout(()=>{B("")},0)}catch(Ue){v("Error: "+Ue?.message)}})},isWalletRequired:ct,onChange:M=>C(M),confirmDisabled:c!=="success"||Xt(s,N,w,n,de),handleConnectChain:M=>Ho(M),isExperimentalChain:M=>Ve(de).length>0?Nt(l,M):!1,previewInputs:_.createElement(_.Fragment,null,_.createElement(io,{chain:{displayName:te?.from.blockchain||"",logo:te?.from.blockchainLogo||""},token:{symbol:te?.from.symbol||"",image:te?.from.logo||""},usdValue:m?y(m):null,amount:fe,label:ve.t("From"),loadingStatus:c!=="success"?c:I}),_.createElement(ao,{size:12}),_.createElement(io,{chain:{displayName:G?.to.blockchain||"",logo:G?.to.blockchainLogo||""},token:{symbol:G?.to.symbol||"",image:G?.to.logo||""},usdValue:W?y(W):null,amount:ut,label:ve.t("To"),loadingStatus:c!=="success"?c:I,percentageChange:Oe?_.createElement(Gn,{percentageChange:y(Oe,0,2),showPercentageChange:!!Oe?.lt(0)}):null})),previewRoutes:_.createElement(Vn,{routes:n,totalFee:y($o,0,2)}),loading:D,errors:x?[x,...tt(b)]:tt(b),warnings:ro(P),extraMessages:_.createElement(_.Fragment,null,c==="failed"&&_.createElement(Hn,null),c==="failed"&&re&&_.createElement(ao,null),_.createElement($n,{selectedSlippage:ee,highSlippage:ee>=bt,changeSlippage:()=>e("/"+g.settings)})),confirmButtonTitle:P.length>0||b.length>0?`${ve.t("Proceed anyway!")}`:`${ve.t("Confirm swap!")}`})}a(lo,"ConfirmSwapPage");import{History as jn}from"@rango-dev/ui";import{useManager as Qn}from"@rango-dev/queue-manager-react";import Xn from"react";import{useNavigate as Yn}from"react-router-dom";var Pe=a(t=>{let e=[];return t?.getAll().forEach((o,n)=>{let s=o.list.getStorage();s?.swapDetails&&e.push({id:n,swap:s?.swapDetails})}),e.sort((o,n)=>Number(n.swap.creationTime)-Number(o.swap.creationTime))},"getPendingSwaps");import uo from"dayjs";var co=a(t=>{let e=new Map([["today",{title:"Today",swaps:[]}],["week",{title:"This week",swaps:[]}],["month",{title:"This month",swaps:[]}],["year",{title:"This year",swaps:[]}],["history",{title:"History",swaps:[]}]]),o=uo();return t.forEach(n=>{let s=uo(Number(n.creationTime));o.isSame(s,"day")?e.get("today")?.swaps.push(n):o.isSame(s,"week")?e.get("week")?.swaps.push(n):o.isSame(s,"month")?e.get("month")?.swaps.push(n):o.isSame(s,"year")?e.get("year")?.swaps.push(n):e.get("history")?.swaps.push(n)}),Array.from(e.values())},"groupSwapsByDate");function mo(){let t=O.use.setSelectedSwap(),e=Yn(),{navigateBackFrom:o}=U(),{manager:n,state:s}=Qn(),r=Pe(n).map(({swap:l})=>l),i=!s.loadedFromPersistor;return Xn.createElement(jn,{list:r,groupBy:co,loading:i,onSwapClick:l=>{t(l),e(`${l}`,{replace:!0})},onBack:o.bind(null,g.swaps)})}a(mo,"HistoryPage");import go,{useEffect as ir}from"react";import{useNavigate as lr}from"react-router-dom";import{HomePanel as ur}from"@rango-dev/ui";import Ie,{useEffect as Jn,useRef as zn,useState as Zn}from"react";import{useInRouterContext as er,useSearchParams as tr}from"react-router-dom";import{styled as or,Button as nr,VerticalSwapIcon as rr}from"@rango-dev/ui";function sr({count:t}){let e=zn(!0),[o,n]=tr(),s=d.use.outputAmount();return Jn(()=>{if(e.current)e.current=!1;else{let r=o.get("fromChain"),i=o.get("fromToken"),l=o.get("toChain"),u=o.get("toToken");n({...l&&{["fromChain"]:l},...u&&{["fromToken"]:u},...r&&{["toChain"]:r},...i&&{["toToken"]:i},...s&&{["fromAmount"]:s.toString()}})}},[t]),null}a(sr,"SwithFromAndTo");var ar=or("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)"});function po(){let t=d.use.switchFromAndTo(),e=er(),[o,n]=Zn(0);return Ie.createElement(ar,null,Ie.createElement(nr,{variant:"ghost",onClick:()=>{t(),n(s=>s+1)}},Ie.createElement(rr,{size:32}),e&&Ie.createElement(sr,{count:o})))}a(po,"SwithFromAndToButton");var fo={genericServerError:"Error connecting server, please reload the app and try again"};import So from"bignumber.js";function ho(){let t=lr(),e=d.use.fromChain(),o=d.use.fromToken(),n=d.use.toChain(),s=d.use.toToken(),r=d.use.setInputAmount(),i=d.use.inputUsdValue(),l=d.use.inputAmount(),u=d.use.outputAmount(),c=d.use.outputUsdValue(),f=d.use.bestRoute(),T=k.use.meta().tokens,w=d.use.loading(),h=d.use.error(),S=k.use.loadingStatus(),C=R.use.connectedWallets(),E=O.use.setCurrentPage(),p=S==="failed"?fo.genericServerError:h,m=!1,W=!!l&&(!!f||w||!!h),B=Ae(i,c),x=Ee(i,B),{fromAmountRangeError:v,recommendation:I,swap:N}=Ot(f),H=!Dt(f,l,i,c),$=Ut(S,C,w,f,je(f),x,H,m,l),D=Re(f,T),b=Lt(D),P=e&&o?y(se(C,e?.name,o?.symbol,o?.address)?.amount||"0",8):"0",ce=e&&o?y(se(C,e?.name,o?.symbol,o?.address)?.amount||"0",se(C,e?.name,o?.symbol,o?.address)?.decimal):"0";ir(()=>(E(g.home),E.bind(null,"")),[]);let ee=!i||!c||!c.gt(0)?null:ne(i.toNumber(),c.toNumber());return go.createElement(ur,{bestRoute:f,bestRouteError:h,fetchBestRoute:Jt,onClickHistory:()=>t(g.swaps),onClickSettings:()=>t(g.settings),setInputAmount:r,fromChain:e,toChain:n,fromToken:o,toToken:s,outputAmount:u?y(new So(u)):y(new So(0)),inputAmount:l,loadingStatus:S,showBestRoute:W,fetchingBestRoute:w,outputUsdValue:y(c),inputUsdValue:y(i),swapButtonTitle:$.title,swapButtonDisabled:$.disabled,swapButtonClick:()=>{$.title==="Connect Wallet"?t(g.wallets):t(g.confirmSwap,{replace:!0})},onChainClick:re=>{t(re)},onTokenClick:re=>{t(re)},highFee:b,errorMessage:p,hasLimitError:je,swap:N,fromAmountRangeError:v,recommendation:I,totalFeeInUsd:y(D,0,2),swithFromAndToComponent:go.createElement(po,null),connectedWallets:C,percentageChange:y(ee,0,2),showPercentageChange:!!ee?.lt(0),tokenBalanceReal:ce,tokenBalance:P,totalTime:ft(dt(f)),bestRouteData:Tt(f),swapFromAmount:y(N?.fromAmount||null)})}a(ho,"Home");import{LiquiditySourcesSelector as cr}from"@rango-dev/ui";import mr from"react";function To({supportedSwappers:t}){let e=k.use.meta().swappers,o=k.use.loadingStatus(),n=A.use.toggleLiquiditySource(),s=A.use.disabledLiquiditySources(),r=A.use.toggleAllLiquiditySources(),{navigateBackFrom:i}=U(),l=[];return q(e.map(u=>u.swapperGroup)).map(u=>e.find(c=>c.swapperGroup===u)).find(u=>{if(u)for(let c of u.types)l.push({title:u.swapperGroup,logo:u.logo,type:c,selected:!s.includes(u.swapperGroup)})}),mr.createElement(cr,{toggleAll:r,list:t?l.filter(u=>t.filter(c=>c===u.title).length>0):l,onChange:u=>n(u.title),onBack:i.bind(null,g.liquiditySources),loadingStatus:o})}a(To,"LiquiditySourcePage");import pr from"react";import{BlockchainSelector as fr}from"@rango-dev/ui";function ot(t){let{type:e,supportedChains:o}=t,n=o?k.use.meta().blockchains.filter(f=>o.includes(f.name)):k.use.meta().blockchains,s=k.use.loadingStatus(),r=d.use.fromChain(),i=d.use.toChain(),l=d.use.setFromChain(),u=d.use.setToChain(),{navigateBackFrom:c}=U();return pr.createElement(fr,{type:e==="from"?"Source":"Destination",list:n,selected:e==="from"?r:i,loadingStatus:s,onChange:f=>{e==="from"?l(f,!0):u(f,!0),c(g.fromChain)},onBack:c.bind(null,g.fromChain)})}a(ot,"SelectChainPage");import dr from"react";import{TokenSelector as gr}from"@rango-dev/ui";function nt(t){let{navigateBackFrom:e}=U(),{type:o,supportedTokens:n}=t,s=d.use.sourceTokens(),r=d.use.destinationTokens(),i=n?s.filter(h=>n.some(S=>V(S,h))):s,l=n?r.filter(h=>n.some(S=>V(S,h))):r,u=d.use.fromToken(),c=d.use.toToken(),f=d.use.setFromToken(),T=d.use.setToToken(),w=k.use.loadingStatus();return dr.createElement(gr,{type:o==="from"?"Source":"Destination",list:o=="from"?i:l,selected:o==="from"?u:c,onChange:h=>{o==="from"?f(h):T(h),e(g.fromToken)},onBack:e.bind(null,g.fromToken),loadingStatus:w})}a(nt,"SelectTokenPage");import Sr from"react";import{Settings as hr}from"@rango-dev/ui";import{useNavigate as Tr}from"react-router-dom";function ko({supportedSwappers:t,singleTheme:e}){let o=A.use.slippage(),n=A.use.setSlippage(),s=A.use.disabledLiquiditySources(),r=A.use.customSlippage(),i=A.use.setCustomSlippage(),l=A.use.theme(),u=A.use.setTheme(),c=k.use.meta().swappers,f=Tr(),{navigateBackFrom:T}=U(),w=A.use.infiniteApprove(),h=A.use.toggleInfiniteApprove(),S=k.use.loadingStatus(),C=[];q(c.map(p=>p.swapperGroup)).map(p=>c.find(m=>m.swapperGroup===p)).find(p=>{if(p)for(let m of p.types)C.push({title:p.swapperGroup,logo:p.logo,type:m,selected:!s.includes(p.swapperGroup)})}),t&&C.filter(p=>t.filter(m=>m===p.title).length>0);let E=t?C.filter(p=>t.filter(m=>m===p.title).length>0):C;return Sr.createElement(hr,{slippages:Wt,selectedSlippage:o,onSlippageChange:p=>n(p),onLiquiditySourcesClick:()=>f(g.liquiditySources),onBack:T.bind(null,g.settings),liquiditySources:E,selectedLiquiditySources:E.filter(p=>p.selected),singleTheme:e,customSlippage:r,onCustomSlippageChange:i,minSlippage:Et,maxSlippage:At,selectedTheme:l,onThemeChange:u,infiniteApprove:w,toggleInfiniteApprove:h,loadingStatus:S})}a(ko,"SettingsPage");import{Alert as wr,SecondaryPage as Cr,styled as rt,Wallet as Wr,WalletState as Co}from"@rango-dev/ui";import J,{useEffect as Wo,useRef as yr,useState as br}from"react";import{WalletTypes as Ar,detectMobileScreens as Er}from"@rango-dev/wallets-shared";import{useWallets as Rr}from"@rango-dev/wallets-react";import{i18n as Br}from"@lingui/core";import{Spinner as xr}from"@rango-dev/ui";import{LoadingFailedAlert as vr}from"@rango-dev/ui";import{allProviders as kr}from"@rango-dev/provider-all";function Ne(t,e){let o=kr({walletconnect2:{WC_PROJECT_ID:e?.walletConnectProjectId||""}});if(t){let n=[];return t.forEach(s=>{if(typeof s=="string"){let r=o.find(i=>i.config.type===s);r?n.push(r):console.warn(`Couldn't find ${s} provider. Please make sure you are passing the correct name.`)}else n.push(s)}),n}return o}a(Ne,"matchAndGenerateProviders");function wo(t,e){return Ne(t,e).map(s=>s.config.type)}a(wo,"configWalletsToWalletName");var Pr=rt("div",{display:"grid",gap:".5rem",gridTemplateColumns:" repeat(2, minmax(0, 1fr))",alignContent:"baseline",padding:"0.5rem",overflowY:"auto"}),Ir=rt("div",{display:"flex",justifyContent:"center",width:"100%",position:"absolute",top:"50%"}),Nr=rt("div",{paddingBottom:"$16"}),Mr=Object.values(Ar);function yo({supportedWallets:t,multiWallets:e,config:o}){let{navigateBackFrom:n}=U(),{state:s,disconnect:r,getWalletInfo:i,connect:l}=Rr(),u=Bt(s,i,wo(t,{walletConnectProjectId:o?.walletConnectProjectId})||Mr),c=yr(),f=Er()?u.filter(p=>p.showOnMobile):u;f=Mt(f);let[T,w]=br(""),h=O.use.toggleConnectWalletsButton(),S=k.use.loadingStatus(),C=a(async p=>{let m=s(p);try{if(T&&w(""),m.connected)await r(p);else{if(!e&&u.find(W=>W.state===Co.CONNECTED))return;await l(p)}}catch(W){w("Error: "+W?.message)}},"onSelectWallet"),E=a(()=>{let p=c.current?.filter(m=>m.state===Co.CONNECTING)||[];for(let m of p)r(m.type)},"disconnectConnectingWallets");return Wo(()=>(h(),()=>{E(),h()}),[]),Wo(()=>{c.current=u},[u]),J.createElement(Cr,{title:Br.t("Select Wallet")||"",textField:!1,onBack:n.bind(null,g.wallets)},J.createElement(J.Fragment,null,T&&J.createElement(Nr,null,J.createElement(wr,{type:"error",title:T})),S==="loading"&&J.createElement(Ir,{className:"loader"},J.createElement(xr,{size:24})),S==="failed"&&J.createElement(vr,null),J.createElement(Pr,null,S==="success"&&f.map((p,m)=>J.createElement(Wr,{...p,key:`${m}-${p.type}`,onClick:C})))))}a(yo,"WalletsPage");import Eo from"react";import{useManager as Fr}from"@rango-dev/queue-manager-react";import{SwapHistory as Or,useCopyToClipboard as Ur,SwapDetailsPlaceholder as Dr}from"@rango-dev/ui";import{cancelSwap as Lr,PendingSwapNetworkStatus as _r}from"@rango-dev/queue-manager-rango-preset";import{useWallets as qr}from"@rango-dev/wallets-react";import{getCurrentBlockchainOfOrNull as Hr,getCurrentStep as $r,getRelatedWalletOrNull as Gr}from"@rango-dev/queue-manager-rango-preset";function bo(t){let e=Math.floor((new Date().getTime()-t)/1e3),o,n=Math.floor(e/31536e3);return n>=1?o="year":(n=Math.floor(e/2592e3),n>=1?o="month":(n=Math.floor(e/86400),n>=1?o="day":(n=Math.floor(e/3600),n>=1?o="hour":(n=Math.floor(e/60),n>=1?o="minute":(n=e,o="second"))))),(n>1||n===0)&&(o+="s"),n+" "+o}a(bo,"timeSince");function Ao(t){return t.finishTime?`${bo(parseInt(t.finishTime))} ago`:`${bo(parseInt(t.creationTime))} ago`}a(Ao,"getSwapDate");import{useNavigate as Vr}from"react-router-dom";function Ro(){let t=O.use.selectedSwapRequestId(),{canSwitchNetworkTo:e,connect:o,getWalletInfo:n}=qr(),s=d.use.retry(),r=Vr(),{navigateBackFrom:i}=U(),[l,u]=Ur(2e3),{manager:c,state:f}=Fr(),w=Pe(c).find(({swap:b})=>b.requestId===t),h=a(()=>{let b=c?.get(w?.id);b&&Lr(b)},"onCancel"),S=w?.swap,C=!f.loadedFromPersistor;if(!S)return Eo.createElement(Dr,{requestId:t||"",loading:C,onBack:i.bind(null,g.swapDetails)});let E=$r(S),p=E?Hr(S,E):null,m=E?Gr(S,E):null,W=E?.networkStatus,B=Vt(S,E),x=Xe(E),v=Ao(S),I=jt(S),N=a(b=>!!n(b)?.mobileWallet,"isMobileWallet"),$=W===_r.WaitingForNetworkChange&&!!p&&!!m?.walletType&&(N(m.walletType)||e(m.walletType,p))?o.bind(null,m.walletType,p):void 0,D=Kt(S);return Eo.createElement(Or,{onBack:i.bind(null,g.swapDetails),pendingSwap:kt(S),onCopy:u,isCopied:l,onCancel:h,shortMessage:B.shortMessage,detailedMessage:B.detailedMessage,currentStepBlockchain:p||"",switchNetwork:$,type:x?"warning":S.extraMessageSeverity||void 0,date:v,...I&&{onRetry:()=>{s(S),setTimeout(()=>{r(g.home)},0)}},...D&&{lastConvertedTokenInFailedSwap:{blockchain:D.blockchain,outputAmount:D.outputAmount||"",symbol:D.symbol}}})}a(Ro,"SwapDetailsPage");var jr=a(t=>t.replace("/",""),"getAbsolutePath");function Bo(t){let{config:e}=t;return Kr([{path:g.home,element:K.createElement(ho,null)},{path:g.fromChain,element:K.createElement(ot,{type:"from",supportedChains:e?.from?.blockchains})},{path:g.toChain,element:K.createElement(ot,{type:"to",supportedChains:e?.to?.blockchains})},{path:g.fromToken,element:K.createElement(nt,{type:"from",supportedTokens:e?.from?.tokens})},{path:g.toToken,element:K.createElement(nt,{type:"to",supportedTokens:e?.to?.tokens})},{path:g.settings,element:K.createElement(ko,{singleTheme:e?.theme?.singleTheme,supportedSwappers:e?.liquiditySources})},{path:g.liquiditySources,element:K.createElement(To,{supportedSwappers:e?.liquiditySources})},{path:g.swaps,element:K.createElement(mo,null)},{path:g.swapDetails,element:K.createElement(Ro,null)},{path:g.wallets,element:K.createElement(yo,{supportedWallets:e?.wallets,multiWallets:typeof e?.multiWallets>"u"?!0:e.multiWallets,config:e})},{path:jr(g.confirmSwap),element:K.createElement(lo,{customDestinationEnabled:e?.customDestination})}])}a(Bo,"AppRoutes");function xo({config:t}){let e=Qr(),{connectedWallets:o,selectedWallets:n}=R(),{getWalletInfo:s}=Yr(),r=q(we(o,n,s).map(B=>B.image)),{blockchains:i,tokens:l}=k.use.meta(),u=d.use.setFromChain(),c=d.use.setFromToken(),f=d.use.setToChain(),T=d.use.setToToken(),w=d.use.setInputAmount(),h=A.use.setAffiliateRef(),S=A.use.setAffiliatePercent(),C=A.use.setAffiliateWallets(),E=It(o),p=O.use.connectWalletsButtonDisabled(),m=k.use.loadingStatus(),W=R(Yt);return Fe(()=>{if(m==="success"){let B=i.find(v=>v.name===t?.to?.blockchain),x=l.find(v=>V(v,t?.to?.token||null));f(B||null),T(x||null)}},[t?.to?.token,t?.to?.blockchain,m]),Fe(()=>{w(t?.amount?.toString()||"")},[t?.amount]),Fe(()=>{if(m==="success"){let B=i.find(v=>v.name===t?.from?.blockchain),x=l.find(v=>V(v,t?.from?.token||null));u(B||null),c(x||null)}},[t?.from?.token,t?.from?.blockchain,m]),Fe(()=>{h(t?.affiliate?.ref??null),S(t?.affiliate?.percent??null),C(t?.affiliate?.wallets??null)},[t?.affiliate?.ref,t?.affiliate?.percent,t?.affiliate?.wallets]),Me.createElement(Me.Fragment,null,Me.createElement(Xr,{loadingStatus:m,connectedWalletsImages:r,connectedWallets:o,totalBalance:E,fetchingBalance:W,onClick:()=>{p||e(g.wallets)}},Me.createElement(Bo,{config:t})))}a(xo,"Layout");import{globalCss as Jr}from"@rango-dev/ui";var vo=a(t=>Jr({"@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')"],body:{fontFamily:t}})(),"globalFont");import{createTheme as Po,generateRangeColors as j}from"@rango-dev/ui";import{useState as es,useEffect as Io,useLayoutEffect as ts}from"react";import{useEffect as zr,useRef as Zr}from"react";function st(t){let e=Zr();return zr(()=>{e.current=t},[t]),e.current}a(st,"usePrevious");function No({colors:t,fontFamily:e="Roboto",borderRadius:o=8,mode:n="auto"}){let s=A.use.theme(),r=k.use.fetchMeta(),i=A.use.setTheme(),l=t?.light,u=t?.dark,c=l?.neutral||"#fafafa",f=l?.background||"#fff",T=l?.foreground||"#000",w={...j("primary","dark",u?.primary),...j("error","dark",u?.error),...j("warning","dark",u?.warning),...j("success","dark",u?.success),...j("neutral","dark",u?.neutral),surface:u?.surface,background:u?.background,foreground:u?.foreground},h={surface:l?.surface||"#fff",...j("primary","light",l?.primary||"#5FA425"),...j("error","light",l?.error||"#FF0000"),...j("warning","light",l?.warning||"#F5A623"),...j("success","light",l?.success||"#0070F3"),...j("neutral","light",c),background:f,foreground:T},S=Po({colors:h,radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${l?.neutral||"#f0f2f5"} ,0px 6px 10px 3px ${l?.neutral||"#f0f2f5"}, 0px 1px 18px 3px ${l?.neutral||"#f0f2f5"}`}}),C=Po({colors:{...h,...j("neutral","dark","#111111"),foreground:f,background:T,surface:"#000",...JSON.parse(JSON.stringify(w))},radii:{5:`${o}px`},shadows:{s:`0px 3px 5px 3px ${u?.neutral||"#222"}, 0px 6px 10px 3px ${u?.neutral||"#222"}, 0px 1px 18px 3px ${u?.neutral||"#222"}`}}),[E,p]=es("light");Io(()=>{(async()=>await r())();let B=a(x=>{x.matches?p("dark"):p("light")},"switchTheme");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&p("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",B),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",B)}},[]),Io(()=>{n!=="auto"&&i(n)},[n]);let m=st(e);return ts(()=>{let{classList:B}=document.body;m&&B.remove(`font_${m.replace(/ /g,"")}`),B.add(`font_${e.replace(/ /g,"")}`)},[e]),{activeTheme:a(()=>s==="auto"?E==="dark"?C:S:s==="dark"?C:S,"getActiveTheme")()}}a(No,"useTheme");import os,{useMemo as ns}from"react";import{Provider as rs}from"@rango-dev/queue-manager-react";import{makeQueueDefinition as ss,checkWaitingForNetworkChange as as}from"@rango-dev/queue-manager-rango-preset";import{useWallets as is}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as ls}from"@rango-dev/wallets-shared";import{isEvmBlockchain as us}from"rango-types";function cs(t){let{providers:e,getSigners:o,state:n,connect:s,canSwitchNetworkTo:r,getWalletInfo:i}=is(),l=ns(()=>ss({API_KEY:Se("API_KEY")}),[]),{blockchains:u}=k.use.meta(),f={blockchains:R.use.connectedWallets().map(m=>({accounts:[m],name:m.chain}))},T=a((m,W)=>{if(r(m,W))return s(m,W)},"switchNetwork"),w=a(m=>!!i(m).mobileWallet,"isMobileWallet"),h=u.filter(m=>m.enabled).reduce((m,W)=>(m[W.name]=W,m),{}),S=u.filter(us),C=a(m=>{let{supportedChains:W}=i(m);return ke(W)},"getSupportedChainNames"),E=e(),p={meta:{blockchains:h,evmBasedChains:S,evmNetworkChainInfo:ls(S),getSupportedChainNames:C},getSigners:o,wallets:f,providers:E,switchNetwork:T,canSwitchNetworkTo:r,connect:s,state:n,isMobileWallet:w};return os.createElement(rs,{queuesDefs:[l],context:p,onPersistedDataLoaded:m=>{as(m)},isPaused:!1},t.children)}a(cs,"QueueManager");var Mo=cs;import Oo from"react";import{Events as at,Provider as ps}from"@rango-dev/wallets-react";import{isEvmBlockchain as fs}from"rango-sdk";import{useEffect as ms}from"react";function Fo(t,e){let o=R.use.clearConnectedWallet(),n=Ne(void 0,e);return ms(()=>{o(),n=Ne(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t]),{providers:n}}a(Fo,"useWalletProviders");import{createContext as ds,useRef as gs}from"react";var it=ds({onConnectWallet:()=>{}});function lt(t){let{blockchains:e}=k.use.meta(),{providers:o}=Fo(t.providers,t?.options),n=R.use.disconnectWallet(),s=R.use.connectWallet(),r=gs(),i=e.filter(fs).map(u=>u.name),l=a((u,c,f,T,w)=>{if(c===at.ACCOUNTS)if(f){let h=ke(w),S=xt(u,f,i,h);s(S)}else n(u);if(c===at.ACCOUNTS&&T.connected){let h=`${u}-${T.network}-${f}`;T.connected&&(r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(c===at.NETWORK&&T.network){let h=`${u}-${T.network}`;r.current?r.current(h):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(u,c,f,T,w)},"onUpdateState");return Oo.createElement(it.Provider,{value:{onConnectWallet:u=>{r.current=u}}},Oo.createElement(ps,{allBlockChains:e,providers:o,onUpdateState:l,autoConnect:!0},t.children))}a(lt,"WidgetWallets");import{useEffect as Ss}from"react";import{useEvents as hs,MainEvents as Ts,StepEventType as Uo,StepExecutionEventStatus as ks,isApprovalTX as ws}from"@rango-dev/queue-manager-rango-preset";function Do(){let t=R.use.connectedWallets(),e=R.use.getWalletsDetails(),o=hs();return Ss(()=>(o.on(Ts.StepEvent,n=>{let{event:s,step:r}=n;if(s.type===Uo.TX_EXECUTION&&s.status===ks.TX_SENT&&!ws(r)||s.type===Uo.SUCCEEDED){let l=t.find(c=>c.chain===r?.fromBlockchain),u=r?.fromBlockchain!==r?.toBlockchain&&t.find(c=>c.chain===r?.toBlockchain);l&&e([l]),u&&e([u])}}),()=>o.all.clear()),[o,t.length]),null}a(Do,"WidgetEvents");var Rs=Ws("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function _o(t){let{config:e}=t;vo(e?.theme?.fontFamily||"Roboto");let{activeTheme:o}=No(e?.theme||{}),[n,s]=Lo(""),[r,i]=Lo(),l=O.use.currentPage(),u=bs(it);return Es(()=>{e?.apiKey&&Ct({API_KEY:e?.apiKey})},[e]),As(()=>{A.persist.rehydrate(),u.onConnectWallet(s)},[]),z.createElement(ys,{language:e?.language},z.createElement(Rs,{id:"swap-container",className:o},z.createElement(Mo,null,z.createElement(Do,null),z.createElement(Cs,{fixedHeight:l!==g.home},z.createElement(Zt,{lastConnectedWallet:n,disconnectedWallet:r,clearDisconnectedWallet:()=>{i(void 0)}},z.createElement(xo,{config:e}))))))}a(_o,"Main");function Bs(t){return t.config?.externalWallets?z.createElement(_o,{...t}):z.createElement(lt,{providers:t.config?.wallets,options:{walletConnectProjectId:t.config?.walletConnectProjectId}},z.createElement(_o,{...t}))}a(Bs,"Widget");import{useWallets as Kp}from"@rango-dev/wallets-react";import{useEvents as Yp,MainEvents as Jp,RouteEventType as sf,StepEventType as gf,StepExecutionEventStatus as Sf,StepExecutionBlockedEventStatus as hf}from"@rango-dev/queue-manager-rango-preset";export{Jp as MainEvents,sf as RouteEventType,gf as StepEventType,hf as StepExecutionBlockedEventStatus,Sf as StepExecutionEventStatus,Bs as Widget,lt as WidgetWallets,Kp as useWallets,Yp as useWidgetEvents};
1
+ var fp=Object.defineProperty;var i=(t,e)=>fp(t,"name",{value:e,configurable:!0});import{I18nManager as rg,styled as ig}from"@rango-dev/ui";import rt,{useContext as sg,useEffect as Co,useMemo as ag,useState as cp}from"react";import{useQueueManager as oc}from"@rango-dev/queue-manager-rango-preset";import{useWallets as nc}from"@rango-dev/wallets-react";import{isEvmBlockchain as rc}from"rango-types";import Tt,{useEffect as ic,useRef as sc}from"react";import{MemoryRouter as ac,useInRouterContext as lc}from"react-router";import{useLocation as pc,useNavigate as uc}from"react-router-dom";var h={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{i18n as Qo}from"@lingui/core";import{Alert as Ou,BestRoute as Uu,BestRouteSkeleton as zu,Button as qu,Divider as nr,styled as Pt,SwapInput as Is,Typography as rr,WarningIcon as Hu}from"@rango-dev/ui";import Y,{useEffect as Gu,useRef as Vu,useState as Xu}from"react";import{useNavigate as Ku}from"react-router-dom";import{ChevronLeftIcon as yp}from"@rango-dev/ui";import fi from"react";import{darkTheme as gp,IconButton as hp,styled as To}from"@rango-dev/ui";var Le=To(hp,{width:"$24",position:"relative",padding:"0",overflow:"unset"}),mi=To("div",{position:"absolute",background:"$secondary500",[`.${gp} &`]:{$$color:"$colors$secondary400"},width:"$6",height:"$6",borderRadius:"$lg",right:"$4",border:"1px solid $surface100"}),xt=To("div",{display:"flex",justifyContent:"flex-end",width:"$40"}),di=To("div",{position:"absolute",backgroundColor:"$secondary500",width:"14px",height:"14px",display:"flex",justifyContent:"center",alignItems:"center",borderRadius:"7px",top:"$0",right:"$0"});function _n(t){return fi.createElement(Le,{variant:"ghost",size:"small",onClick:t.onClick},fi.createElement(yp,{color:"black",size:16}))}i(_n,"BackButton");import{i18n as Sp}from"@lingui/core";import{Button as Cp,Typography as Tp}from"@rango-dev/ui";import $n from"react";function Fn(t){return $n.createElement(xt,null,$n.createElement(Cp,{variant:"ghost",onClick:t.onClick,size:"xsmall"},$n.createElement(Tp,{variant:"label",size:"medium",color:"error500"},Sp.t("Cancel"))))}i(Fn,"CancelButton");import{i18n as kp}from"@lingui/core";import{Tooltip as wp,WalletIcon as vp}from"@rango-dev/ui";import ko from"react";function On(t){return ko.createElement(wp,{container:t.container,side:"top",content:kp.t("Connect Wallet")},ko.createElement(Le,{variant:"ghost",size:"small",onClick:t.onClick},t.isConnected&&ko.createElement(mi,null),ko.createElement(vp,{size:18,color:"black"})))}i(On,"WalletButton");import{i18n as Ko}from"@lingui/core";import{NotificationsIcon as au,Popover as lu,RefreshIcon as pu,SettingsIcon as uu,Tooltip as jo,TransactionIcon as cu}from"@rango-dev/ui";import de from"react";function lt(t){return Array.from(new Set(t))}i(lt,"removeDuplicateFrom");function Un(t,e){return t.length===e.length&&t.every((o,n)=>o===e[n])}i(Un,"areEqual");function hi(t,e){let o;return n;function n(...r){o&&clearTimeout(o),o=setTimeout(()=>{o=null,t(...r)},e)}}i(hi,"debounce");function St(t,e){return t.toLowerCase().indexOf(e.toLowerCase())>-1}i(St,"containsText");var gi=i((t,e)=>{t=t.replace(/^#/,""),t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let[o,n,r]=t.match(/.{2}/g);[o,n,r]=[parseInt(o,16)+e,parseInt(n,16)+e,parseInt(r,16)+e],o=Math.max(Math.min(255,o),0).toString(16),n=Math.max(Math.min(255,n),0).toString(16),r=Math.max(Math.min(255,r),0).toString(16);let s=(o.length<2?"0":"")+o,a=(n.length<2?"0":"")+n,p=(r.length<2?"0":"")+r;return`#${s}${a}${p}`},"colorShade"),yi=i((t,e)=>{let o={[t]:e};for(let n=1;n<10;n++)n<5&&(o={...o,[t+n*100]:gi(e,(5-n)*32)}),n===5&&(o={...o,[t+n*100]:e}),n>5&&(o={...o,[t+n*100]:gi(e,-((n-5)*32))});return o},"generateRangeColors"),se=i(()=>document.getElementById("swap-box"),"getContainer");import{i18n as eu}from"@lingui/core";import{ChainToken as Ji,ChevronRightIcon as tu,ListItemButton as ou,Typography as nu}from"@rango-dev/ui";import _e from"react";import{useNavigate as ru}from"react-router-dom";import{create as Vp}from"zustand";import{RangoClient as xp}from"rango-sdk";var bp="c6381a79-2817-4602-83bf-6a641a409e32",zn={API_KEY:bp};function wo(t){return zn[t]}i(wo,"getConfig");function Si(t){let e;return typeof structuredClone=="function"?e=structuredClone(t):e=JSON.parse(JSON.stringify(t)),zn=e,zn}i(Si,"initConfig");var Ci=20,Ti=25;var vo,Et=i(()=>vo||(vo=new xp(wo("API_KEY")),vo),"httpService");import{WalletState as Ve}from"@rango-dev/ui";import{readAccountAddress as Bp}from"@rango-dev/wallets-react";import{detectInstallLink as Wp,getCosmosExperimentalChainInfo as Np,isEvmAddress as Ip,KEPLR_COMPATIBLE_WALLETS as Yg,Networks as vi}from"@rango-dev/wallets-shared";import qn from"bignumber.js";import{isCosmosBlockchain as Mp}from"rango-types";import Ep from"bignumber.js";var We=new Ep(0);import{WalletTypes as Ap}from"@rango-dev/wallets-shared";var ki=[Ap.LEAP];import{BigNumber as wi}from"bignumber.js";var At=i(t=>{let e=(t%60).toString().padStart(2,"0");return`${parseInt((t/60).toString()).toString().padStart(2,"0")}:${e}`},"secondsToString"),w=i((t,e=null,o=null)=>{if(t==null||t==="")return"";let n=new wi(t),r=1,s=1e3;for(let a=0;a<60;a++)if(new wi(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 Bt=i(t=>t?.reduce((e,o)=>e+(o.estimatedTimeInSeconds??0),0)||0,"totalArrivalTime");var Ge=i((t,e)=>t.toLowerCase().indexOf(e.toLowerCase())>-1,"containsText"),Vt=i(t=>!!t&&parseFloat(t)>0,"isPositiveNumber");function bo(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(bo,"limitDecimalPlaces");function Lp(t){switch(!0){case t.connected:return Ve.CONNECTED;case t.connecting:return Ve.CONNECTING;case!t.installed:return Ve.NOT_INSTALLED;default:return Ve.DISCONNECTED}}i(Lp,"mapStatusToWalletState");function bi(t,e,o,n){return o.filter(r=>!ki.includes(r)).filter(r=>{if(n){let{supportedChains:s}=e(r);return!!s.find(a=>a.name===n)}return!0}).map(r=>{let{name:s,img:a,installLink:p}=e(r),l=Lp(t(r));return{title:s,image:a,link:Wp(p),state:l,type:r}})}i(bi,"mapWalletTypesToWalletInfo");function xo(t){if(!t)return null;let e=[];return e=t.map(o=>o.name),e}i(xo,"walletAndSupportedChainsNames");function xi(t,e,o,n){let r=[];function s(p,l){if(!!!r.find(m=>m.chain===p)){let m={address:l,chain:p,walletType:t};r.push(m)}}i(s,"addAccount");let a=n||[];return e.forEach(p=>{let{address:l,network:u}=Bp(p),m=a.length>0,g=a.includes(u),f=u===vi.Unknown;if(m&&!g&&!f)return;let y=u===vi.Unknown&&Ip(l);if(f&&!y)return;o.includes(u)||y?a.filter(x=>o.includes(x)).forEach(x=>{s(x,l.toLowerCase())}):s(u,l)}),r}i(xi,"prepareAccountsForWalletStore");function Ei(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,p=s.to.blockchain;e.includes(a)||e.push(a),e.includes(p)||e.push(p)})}),e}i(Ei,"getRequiredChains");function Wt(t,e,o,n){if(t.length===0)return null;let r=t.filter(s=>s.chain===e);return r.length===0?null:r.map(s=>s.balances?.find(a=>n!==null&&a.address===n||n===null&&a.address===n&&a.symbol===o)||null).filter(s=>s!==null).sort((s,a)=>parseFloat(a?.amount||"0")-parseFloat(s?.amount||"1")).find(()=>!0)||null}i(Wt,"getBalanceFromWallet");function Eo(t,e){return t.address===e.address&&t.chain===e.chain&&t.walletType===e.walletType}i(Eo,"isAccountAndWalletMatched");function Ai(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 qn(r.amount.amount).shiftedBy(-r.amount.decimals).toFixed(),logo:"",usdPrice:Ao(o,r.asset.symbol,r.asset.address,e)||null}))||[]}i(Ai,"makeBalanceFor");function Bi(t){return{...t,loading:!1,error:!0}}i(Bi,"resetConnectedWalletState");var Nt=i(t=>!t.some(o=>o.balance)?t.filter(o=>!o.address).concat(t.filter(o=>o.address&&!o.isSecondaryCoin),t.filter(o=>o.isSecondaryCoin)):t.filter(o=>!!o.balance).sort((o,n)=>parseFloat(n.balance?.usdValue||"0")-parseFloat(o.balance?.usdValue||"0")).concat(t.filter(o=>!o.balance&&!o.isSecondaryCoin),t.filter(o=>!o.balance&&o.isSecondaryCoin)),"sortTokens"),Ao=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice"),Bo=i((t,e)=>{let o=Np(Object.entries(t).map(([,n])=>n).filter(Mp));return o&&o[e]?.experimental},"isExperimentalChain");function It(t,e){return t.map(({balance:o,...n})=>{let r=w(new qn(Wt(e,n.blockchain,n.symbol,n.address)?.amount||We)),s="";return n.usdPrice&&(s=w(new qn(Wt(e,n.blockchain,n.symbol,n.address)?.amount||We).multipliedBy(n.usdPrice))),{...n,...r!=="0"&&{balance:{amount:r,usdValue:s}}}})}i(It,"getTokensWithBalance");function Xt(t,e,o,n){if(t?.name===n[0]?.name)return n;let s=e.filter(a=>a.blockchain===t?.name);return Nt(It(s,o))}i(Xt,"getSortedTokens");function Pe(t,e){return t?.blockchain===e?.blockchain&&t?.symbol===e?.symbol&&t?.address===e?.address}i(Pe,"tokensAreEqual");function Hn(t,e){let o,n=t[0],r=t[1];return t.length===1?o=n:Pe(n,e)?o=r:o=n,o}i(Hn,"getDefaultToken");function Wi(t){return t.sort((e,o)=>+(o.state===Ve.CONNECTED)-+(e.state===Ve.CONNECTED)||+(o.state===Ve.DISCONNECTED||o.state===Ve.CONNECTING)-+(e.state===Ve.DISCONNECTED||e.state===Ve.CONNECTING))}i(Wi,"sortWalletsBasedOnConnectionState");function Wo(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(Wo,"getConciseAddress");function Ni({chain:t,connectedWallets:e,walletType:o}){return e.find(n=>n.walletType===o&&n.chain===t)?.address}i(Ni,"getAddress");var Pp=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"),Ne=Pp;import{create as qp}from"zustand";import{subscribeWithSelector as Hp}from"zustand/middleware";import{shallow as Gp}from"zustand/shallow";import ct from"bignumber.js";import{create as Up}from"zustand";import{subscribeWithSelector as zp}from"zustand/middleware";import ah from"bignumber.js";function Gn(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(Gn,"searchParamsToToken");function Ii(t){return t?.result?.swaps[t?.result?.swaps.length-1].to.usdPrice}i(Ii,"getBestRouteToTokenUsdPrice");function Vn(t,e){let o=t.result?.swaps||[],n=e.result?.swaps||[];return o.length!==n.length}i(Vn,"isNumberOfSwapsChanged");function Xn(t,e){let o=t.result?.swaps.map(r=>r.swapperId)||[],n=e.result?.swaps.map(r=>r.swapperId)||[];return!Un(o,n)}i(Xn,"isRouteSwappersUpdated");function Kn(t,e){let o=t.result?.swaps.map(r=>r.to.symbol)||[],n=e.result?.swaps.map(r=>r.to.symbol)||[];return!Un(o,n)}i(Kn,"isRouteInternalCoinsUpdated");function Mi(t,e){return Vn(t,e)||Xn(t,e)||Kn(t,e)}i(Mi,"isRouteChanged");function Li(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(Li,"getRequiredBalanceOfWallet");function Pi(t){if(!t)return null;let e=(t.result?.swaps||[]).map(o=>({...o,fromAmount:w(o.fromAmount,6,6),toAmount:w(o.toAmount,6,6)}));return{...t,...t.result&&{result:{...t.result,swaps:e}}}}i(Pi,"getFormattedBestRoute");function Mt(t){let e;return t<=-3&&t>-10?e="low":t<=-10&&(e="high"),e}i(Mt,"getPriceImpactLevel");function Io(t,e){let o=i(r=>`${r.symbol}-${r.blockchain}-${r.address??""}`,"tokenToString"),n=new Set;return t.forEach(r=>n.add(o(r))),e.filter(r=>n.has(o(r)))}i(Io,"findCommonTokens");import{i18n as De}from"@lingui/core";import{PendingSwapNetworkStatus as _o}from"@rango-dev/queue-manager-rango-preset";import ve from"bignumber.js";function Di(t){return t.result?.swaps.map(e=>({swapper:{displayName:e.swapperId,image:e.swapperLogo},from:{token:{displayName:e.from.symbol,image:e.from.logo},chain:{displayName:e.from.blockchain,image:e.from.blockchainLogo},price:{value:w(e.fromAmount,6,6),usdValue:w(e.from.usdPrice?.toString(),4,4)}},to:{token:{displayName:e.to.symbol,image:e.to.logo},chain:{displayName:e.to.blockchain,image:e.to.blockchainLogo},price:{value:w(e.toAmount,6,6),usdValue:w(e.to.usdPrice?.toString(),4,4)}}}))}i(Di,"formatBestRoute");function Mo(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(Mo,"getRequiredWallets");function Lo(t,e){return t.addressPatterns.filter(r=>new RegExp(r).test(e)).length>0}i(Lo,"isValidAddress");import{i18n as Ce}from"@lingui/core";var Kt=(r=>(r[r.ROUTE_UPDATED=0]="ROUTE_UPDATED",r[r.ROUTE_SWAPPERS_UPDATED=1]="ROUTE_SWAPPERS_UPDATED",r[r.ROUTE_COINS_UPDATED=2]="ROUTE_COINS_UPDATED",r[r.ROUTE_AND_OUTPUT_AMOUNT_UPDATED=3]="ROUTE_AND_OUTPUT_AMOUNT_UPDATED",r))(Kt||{});var G={genericServerError:Ce.t("Failed Network, Please retry your swap."),liquiditySourcesError:{title:Ce.t("Please reset your liquidity sources."),description:Ce.t("You have limited the liquidity sources and this might result in Rango finding no routes. Please consider resetting your liquidity sources")},noRoutesError:{title:Ce.t("No Routes Found"),description:"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:Ce.t("Bridge Limit Error: Please increase your amount"),decreaseAmount:Ce.t("Bridge Limit Error: Please decrease your amount")},highValueLossError:{impactTitle:Ce.t("High Price Impact"),title:Ce.t("Price impact is too high!"),description:Ce.t("The price impact is significantly higher than the allowed amount. If you are sure, continue, otherwise, change the swap."),confirmMessage:Ce.t("Confirm High price impact")},routeUpdatedWithHighValueLoss:{title:Ce.t("Route updated and price impact is too high, try again later!")},unknownPriceError:{impactTitle:Ce.t("USD Price Unknown"),title:Ce.t("USD Price Unknown, Cannot calculate Price Impact."),description:Ce.t("USD Price Unknown, Cannot calculate Price Impact. The price impact may be higher than usual. Are you sure to continue the Swap?"),confirmMessage:Ce.t("Confirm USD Price Unknown")}};function Po(t){switch(t.type){case 0:return t.diagnosisMessage??G.noRoutesError.title;case 2:return G.genericServerError;case 1:return G.routeUpdatedWithHighValueLoss.title;default:return""}}i(Po,"getConfirmSwapErrorMessage");import{i18n as Do}from"@lingui/core";var Ct={connectWallet:Do.t("Connect Wallet"),swap:Do.t("Swap"),swapAnyway:Do.t("Swap anyway"),ethRouteWarning:Do.t("The route goes through Ethereum. Continue?")};function Oo(t,e){return!t||!e||t.lte(We)||e.lte(We)?0:e.div(t).minus(1).multipliedBy(100)}i(Oo,"getOutputRatio");function Uo(t,e){return(parseInt(e.toFixed(2)||"0")<=-10&&t?.gte(new ve(400))||parseInt(e.toFixed(2)||"0")<=-5&&t?.gte(new ve(1e3)))??!1}i(Uo,"outputRatioHasWarning");function zo(t){return(t?.result?.swaps||[]).filter(e=>{let o=e.fromAmountMinValue?new ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(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(zo,"hasLimitError");function qo(t){if(!t)return{swap:null,fromAmountRangeError:"",recommendation:""};let e=(t?.result?.swaps||[]).filter(p=>{let l=p.fromAmountMinValue?new ve(p.fromAmountMinValue):null,u=p.fromAmountMaxValue?new ve(p.fromAmountMaxValue):null;return p.fromAmountRestrictionType==="EXCLUSIVE"?l?.gte(p.fromAmount)||u?.lte(p.fromAmount):l?.gt(p.fromAmount)||u?.lt(p.fromAmount)})[0];if(!e)return{swap:null,fromAmountRangeError:"",recommendation:""};let o=e.fromAmountMinValue?new ve(e.fromAmountMinValue):null,n=e.fromAmountMaxValue?new ve(e.fromAmountMaxValue):null,r=e.fromAmountRestrictionType==="EXCLUSIVE",s="",a="";return!r&&o&&o.gt(e.fromAmount)?(s=De.t({id:"requiredEqualMin",message:"Required: >= {min} {symbol}",values:{min:w(o,6,6),symbol:e.from.symbol}}),a=G.bridgeLimitErrors.increaseAmount):r&&o&&o.gte(e.fromAmount)&&(s=De.t({id:"requiredMin",message:"Required: > {min} {symbol}",values:{min:w(o,6,6),symbol:e.from.symbol}}),a=G.bridgeLimitErrors.increaseAmount),!r&&n&&n.lt(e.fromAmount)?(s=De.t({id:"requiredEqualMax",message:"Required: <= {max} {symbol}",values:{max:w(n,6,6),symbol:e.from.symbol}}),a=G.bridgeLimitErrors.decreaseAmount):r&&n&&n.lte(e.fromAmount)&&(s=De.t({id:"requiredMax",message:"Required: < {max} {symbol}",values:{max:w(n,6,6),symbol:e.from.symbol}}),a=G.bridgeLimitErrors.decreaseAmount),{swap:e,fromAmountRangeError:s,recommendation:a}}i(qo,"LimitErrorMessage");function $i(t,e,o,n,r,s,a,p,l){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||!l||l==="0"?{title:Ct.swap,disabled:!0,state:"swap"}:s||a?{title:Ct.swapAnyway,disabled:!1,hasWarning:!0,state:"needToConfirm"}:p?{title:Ct.ethRouteWarning,disabled:!1,hasWarning:!0,state:"warning"}:{title:Ct.swap,disabled:!1,state:"swap"}}i($i,"getSwapButtonState");function jn(t,e,o){return!((!o||o.lte(We))&&t?.result&&e&&e!=="0"&&parseFloat(e||"0")!==0&&t.result)}i(jn,"canComputePriceImpact");function $p(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($p,"requiredWallets");var Fp=i((t,e,o,n)=>n?.find(s=>s.blockchain===t&&s.symbol?.toUpperCase()===e?.toUpperCase()&&s.address===o)?.usdPrice||null,"getUsdPrice");function Op(t,e){let o=We;for(let n=0;n<t.fee.length;n++){let r=t.fee[n];if(r.expenseType==="DECREASE_FROM_OUTPUT")continue;let s=Fp(r.asset.blockchain,r.asset.symbol,r.asset.address,e);o=o.plus(new ve(r.amount).multipliedBy(s||0))}return o}i(Op,"getUsdFeeOfStep");function Ho(t,e){return t?.result?.swaps.reduce((o,n)=>o.plus(Op(n,e)),We)||null}i(Ho,"getTotalFeeInUsd");function Fi(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(Fi,"getMinRequiredSlippage");function Oi(t,e){return e?parseFloat(t)>=parseFloat(e):!0}i(Oi,"hasProperSlippage");function Go(t){let{fromToken:e,toToken:o,inputAmount:n,wallets:r,selectedWallets:s,disabledLiquiditySources:a,slippage:p,affiliateRef:l,affiliatePercent:u,affiliateWallets:m,initialRoute:g,destination:f}=t,d=s?.reduce((S,v)=>(S[v.chain]=v.address,S),{}),y=[];r?.forEach(S=>{let v=y.find(A=>A.blockchain===S.chain);v?v.addresses.push(S.address):y.push({blockchain:S.chain,addresses:[S.address]})});let c=!!g,k=lt((g?.result?.swaps||[]).reduce((S,v)=>(S.push(v.from.blockchain,v.to.blockchain),v.internalSwaps&&Array.isArray(v.internalSwaps)&&v.internalSwaps.map(A=>{S.push(A.from.blockchain,A.to.blockchain)}),S),[]));return{amount:n.toString(),affiliateRef:l??void 0,affiliatePercent:u??void 0,affiliateWallets:m??void 0,checkPrerequisites:c,from:{address:e.address,blockchain:e.blockchain,symbol:e.symbol},to:{address:o.address,blockchain:o.blockchain,symbol:o.symbol},connectedWallets:y,selectedWallets:d??{},slippage:p.toString(),...f&&{destination:f},...a.length>0&&{swapperGroups:a,swappersGroupsExclude:!0},...c&&{blockchains:k}}}i(Go,"createBestRouteRequestBody");function Ui(t){return t.reduce((o,n)=>(o[n.chain]={address:n.address,walletType:n.walletType},o),{})}i(Ui,"getWalletsForNewSwap");function Lt(t){return t?.result?.outputAmount||null}i(Lt,"getRouteOutputAmount");function Re(t,e){return!t||!e?null:new ve(e).div(new ve(t)).minus(1).multipliedBy(100)}i(Re,"getPercentageChange");function zi(t,e){let o=Lt(t),n=Lt(e);if(!o||!n)return!1;let r=Re(o,n);return r?r.toNumber()<=-1:!0}i(zi,"isOutputAmountChangedALot");function qi(t,e){let o=t.validationStatus,n=Ei(t);return e.sort((s,a)=>n.indexOf(s.chain)-n.indexOf(a.chain)).flatMap(s=>Li(s,o)||[]).filter(s=>!s.ok).map(s=>{let a=s.asset.symbol,p=w(new ve(s.currentAmount.amount).shiftedBy(-s.currentAmount.decimals),8,8),l=w(new ve(s.requiredAmount.amount).shiftedBy(-s.requiredAmount.decimals),8,8),u="";return s.reason==="FEE"&&(u=De.t(" for network fee")),s.reason==="INPUT_ASSET"&&(u=De.t(" for swap")),s.reason==="FEE_AND_INPUT_ASSET"&&(u=De.t(" for input and network fee")),De.t({id:"balanceWarningMessage",message:"Needs \u2248 {requiredAmount} {symbol}{reason}, but you have {currentAmount} {symbol} in your {blockchain} wallet.",values:{requiredAmount:l,symbol:a,reason:u,currentAmount:p,blockchain:s.asset.blockchain}})})}i(qi,"getBalanceWarnings");function Hi(t,e){return(t?new ve(t):We).multipliedBy(e||0)}i(Hi,"calcOutputUsdValue");function jt(t){return!!t&&t.networkStatus!==null&&t.networkStatus!==_o.NetworkChanged}i(jt,"isNetworkStatusInWarningState");function Gi(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 _o.WaitingForConnectingWallet:n=n||De.t("Waiting for connecting wallet");break;case _o.WaitingForQueue:n=n||De.t("Waiting for other running tasks to be finished");break;case _o.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(Gi,"getSwapMessages");function Vi(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(Vi,"getLastConvertedTokenInFailedSwap");function Xi(t){return t.status==="failed"&&!!t.finishTime&&new Date().getTime()-parseInt(t.finishTime)<4*3600*1e3}i(Xi,"shouldRetrySwap");function Ki(t,e,o,n,r,s){return t||!e&&!$p(n).every(a=>r.map(p=>p.chain).includes(a))||!!e&&!o||!!e&&!!o&&s&&!Lo(s,o)}i(Ki,"confirmSwapDisabled");var Yt=i((t,e)=>t?.usdPrice?new ct(e||We).multipliedBy(t?.usdPrice||0):null,"getUsdValue"),M=Ne(Up()(zp(t=>({fromBlockchain:null,fromToken:null,inputAmount:"",outputAmount:null,inputUsdValue:new ct(0),outputUsdValue:new ct(0),toBlockchain:null,toToken:null,bestRoute:null,routeWalletsConfirmed:!1,sourceTokens:[],destinationTokens:[],selectedWallets:[],customDestination:"",setRoute:e=>t(o=>{let n=null,r=We;return Vt(o.inputAmount)?(e&&(n=e.result?.outputAmount?new ct(e.result?.outputAmount):null,r=Hi(e.result?.outputAmount,Ii(e)||o.toToken?.usdPrice)),{bestRoute:e,...!!e&&{outputAmount:n,outputUsdValue:r}}):{}}),resetRoute:()=>t(()=>({bestRoute:null,outputAmount:null,outputUsdValue:new ct(0)})),setFromBlockchain:(e,o)=>{t(n=>{if(n.fromBlockchain?.name===e?.name)return{};let r=T.getState().meta.tokens,s=O.getState().connectedWallets,a=Xt(e,r,s,n.destinationTokens),p=Hn(a,n.toToken);return{fromBlockchain:e,sourceTokens:a,...o&&{fromToken:p},...!!n.inputAmount&&{inputUsdValue:Yt(p,n.inputAmount)}}})},setFromToken:e=>t(o=>({fromToken:e,...!!o.inputAmount&&{inputUsdValue:Yt(e,o.inputAmount)}})),setToBlockchain:(e,o)=>{t(n=>{if(n.toBlockchain?.name===e?.name)return{};let r=T.getState().meta.tokens,s=O.getState().connectedWallets,a=Xt(e,r,s,n.destinationTokens);return{toBlockchain:e,destinationTokens:a,...o&&{toToken:Hn(a,n.fromToken)}}})},setToToken:e=>t(()=>({toToken:e})),setInputAmount:e=>{t(o=>({inputAmount:e,...!e&&{outputAmount:new ct(0),outputUsdValue:new ct(0),bestRoute:null},...!!o.fromToken&&{inputUsdValue:Yt(o.fromToken,e)}}))},retry:e=>{let{tokens:o,blockchains:n}=T.getState().meta,r=O.getState().connectedWallets,s=e.status==="failed"?e.steps.findIndex(c=>c.status==="failed"):null;if(s===null||s<0)return;let a=e.steps[0],p=e.steps[e.steps.length-1],l=n.find(c=>c.name===a.fromBlockchain)||null,u=n.find(c=>c.name===p.toBlockchain)||null,m=o.find(c=>Pe(c,{blockchain:a.fromBlockchain,symbol:a.fromSymbol,address:a.fromSymbolAddress})),g=o.find(c=>Pe(c,{blockchain:p.toBlockchain,symbol:p.toSymbol,address:p.toSymbolAddress})),f=Xt(l,o,r,[]),d=Xt(u,o,r,[]),y=e.inputAmount;t({fromBlockchain:l,fromToken:m,inputAmount:y,outputAmount:null,inputUsdValue:Yt(m||null,y),outputUsdValue:new ct(0),toBlockchain:u,toToken:g,bestRoute:null,sourceTokens:f,destinationTokens:d})},switchFromAndTo:()=>t(e=>({fromBlockchain:e.toBlockchain,fromToken:e.toToken,toBlockchain:e.fromBlockchain,toToken:e.fromToken,sourceTokens:e.destinationTokens,destinationTokens:e.sourceTokens,inputAmount:e.outputAmount?.toString()||"",inputUsdValue:Yt(e.toToken,e.outputAmount?.toString()||"")})),resetFromBlockchain:()=>t(()=>({fromBlockchain:null,sourceTokens:[]})),resetToBlockchain:()=>t(()=>({toBlockchain:null,destinationTokens:[]})),setRouteWalletConfirmed:e=>t({routeWalletsConfirmed:e}),setSelectedWallets:e=>t({selectedWallets:e}),setCustomDestination:e=>t({customDestination:e}),resetRouteWallets:()=>t({routeWalletsConfirmed:!1,selectedWallets:[],customDestination:""})}))));var O=Ne(qp()(Hp((t,e)=>({connectedWallets:[],customDestination:"",loading:!1,connectWallet:o=>{let n=e().getWalletsDetails;t(r=>({loading:!0,connectedWallets:r.connectedWallets.filter(s=>s.walletType!==o[0].walletType).concat(o.map(s=>{let a=!r.connectedWallets.find(p=>p.chain===s.chain&&p.selected);return{balances:[],address:s.address,chain:s.chain,explorerUrl:null,walletType:s.walletType,selected:a,loading:!0,error:!1}}))})),n(o)},disconnectWallet:o=>{t(n=>{let r=n.connectedWallets.filter(s=>s.selected&&s.walletType!==o).map(s=>s.chain);return{connectedWallets:n.connectedWallets.filter(s=>s.walletType!==o).map(s=>r.includes(s.chain)?s:(r.push(s.chain),{...s,selected:!0}))}})},selectWallets:o=>t(n=>({connectedWallets:n.connectedWallets.map(r=>{let s=!!o.find(p=>p.chain===r.chain&&p.walletType!==r.walletType&&r.selected),a=!!o.find(p=>p.chain===r.chain&&p.walletType===r.walletType&&!r.selected);return s?{...r,selected:!1}:a?{...r,selected:!0}:r})})),clearConnectedWallet:()=>t(()=>({connectedWallets:[],selectedWallets:[]})),getWalletsDetails:async(o,n=!0)=>{let r=e().getWalletsDetails,{tokens:s}=T.getState().meta;t(a=>({loading:!0,connectedWallets:a.connectedWallets.map(p=>o.find(l=>Eo(l,p))?{...p,loading:!0}:p)}));try{let a=o.map(({address:u,chain:m})=>({address:u,blockchain:m})),l=(await Et().getWalletsDetails(a)).wallets;if(l)t(u=>({loading:!1,connectedWallets:u.connectedWallets.map(m=>{let g=o.find(d=>Eo(d,m)),f=l.find(d=>d.address===m.address&&d.blockChain===m.chain);return f?.failed&&g&&n&&r([g],!1),g&&f?{...m,explorerUrl:f.explorerUrl,balances:Ai(f,s)}:m})}));else throw new Error("Wallet not found")}catch{t(p=>({loading:!1,connectedWallets:p.connectedWallets.map(l=>o.find(u=>Eo(u,l))?Bi(l):l)}))}}}))));O.subscribe(t=>t.connectedWallets,t=>{M.setState(({sourceTokens:e,destinationTokens:o})=>{let n=It(e,t),r=It(o,t);return{sourceTokens:Nt(n),destinationTokens:Nt(r)}})},{equalityFn:Gp});var T=Ne(Vp()(t=>({meta:{blockchains:[],popularTokens:[],swappers:[],tokens:[]},loadingStatus:"loading",setTokensWithBalance:()=>{let e=O.getState().connectedWallets;t(o=>({...o,meta:{...o.meta,tokens:Nt(It(o.meta.tokens,e))}}))},fetchMeta:async()=>{try{let e=await Et().getAllMetadata(),o=lt(e.tokens.map(r=>r.blockchain)),n=e.blockchains.filter(r=>r.enabled&&o.includes(r.name));e.blockchains=n.sort((r,s)=>r.sort-s.sort),t({meta:e,loadingStatus:"success"})}catch{t({loadingStatus:"failed"})}}})));import{create as Xp}from"zustand";import{persist as Kp,subscribeWithSelector as jp}from"zustand/middleware";var Ie=Ne(Xp()(Kp(jp((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}}},p=e().notifications.filter(l=>l.requestId!==n.requestId);t(()=>({notifications:[...p,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 Yp}from"zustand";var be=Ne(Yp()(t=>({connectWalletsButtonDisabled:!1,selectedSwapRequestId:null,currentPage:"",setSelectedSwap:e=>t({selectedSwapRequestId:e}),setCurrentPage:e=>t({currentPage:e})})));import{styled as Vo}from"@rango-dev/ui";var ji=Vo("div",{padding:"$10",width:"350px",minHeight:"150px"}),Yi=Vo("ul",{padding:0,margin:0,listStyle:"none",".to-chain-token":{transform:"translateX(-3px)"}}),Ri=Vo("div",{display:"flex",padding:0,alignItems:"center",alignSelf:"stretch"}),Qi=Vo("div",{display:"flex",justifyContent:"center",alignItems:"center",flexDirection:"column",padding:"$10",width:"100%",height:"150px"});import{i18n as Rp}from"@lingui/core";import{Divider as Qp,NoNotificationIcon as Zp,Typography as Jp}from"@rango-dev/ui";import Xo from"react";function Zi(){return Xo.createElement(Qi,null,Xo.createElement(Zp,{color:"secondary",size:26}),Xo.createElement(Qp,{size:12}),Xo.createElement(Jp,{variant:"body",size:"medium",color:"neutral900"},Rp.t("You have no notification")))}i(Zi,"NotificationNotFound");var iu=4;function Yn(){let t=ru(),e=be.use.setSelectedSwap(),{getUnreadNotifications:o}=Ie(),n=o(),{tokens:r,blockchains:s}=T.use.meta(),a=n.sort((l,u)=>u.creationTime-l.creationTime).slice(0,iu),p=i(l=>{e(l),t(`/swaps/${l}`)},"handleOnClick");return _e.createElement(ji,null,a.length?_e.createElement(Yi,null,a.map(l=>{let u=r.find(d=>d.address===l.route.from.tokenAddress&&d.blockchain===l.route.from.blockchain&&d.symbol===l.route.from.tokenSymbol),m=s.find(d=>d.name===l.route.from.blockchain),g=r.find(d=>d.address===l.route.to.tokenAddress&&d.blockchain===l.route.to.blockchain&&d.symbol===l.route.to.tokenSymbol),f=s.find(d=>d.name===l.route.to.blockchain);return _e.createElement(ou,{key:l.requestId,onClick:()=>p(l.requestId),title:_e.createElement(nu,{variant:"body",size:"small",color:"$neutral900"},eu.t(l.event.message)),id:l.requestId,start:_e.createElement(Ri,null,_e.createElement("div",{className:"from-chain-token"},_e.createElement(Ji,{tokenImage:u?u.image:"",chainImage:m?m.logo:"",size:"small"})),_e.createElement("div",{className:"to-chain-token"},_e.createElement(Ji,{tokenImage:g?g.image:"",chainImage:f?f.logo:"",size:"small"}))),end:_e.createElement(tu,{size:12,color:"gray"})})})):_e.createElement(Zi,null))}i(Yn,"NotificationContent");import{Typography as su}from"@rango-dev/ui";import es from"react";function ts(){let{getUnreadNotifications:t}=Ie(),e=t().length;return e?es.createElement(di,null,es.createElement(su,{variant:"body",size:"xsmall",color:"$background"},e)):null}i(ts,"UnreadNotificationsBadge");function Rn(t){let{layoutRef:e,onClickRefresh:o,onClickHistory:n,onClickSettings:r,onClickNotifications:s}=t;return de.createElement(de.Fragment,null,de.createElement(jo,{container:se(),side:"top",content:Ko.t("Refresh")},de.createElement(Le,{variant:"ghost",size:"small",onClick:o,disabled:!o},de.createElement(pu,{size:16,color:o?"black":"gray"}))),de.createElement(jo,{container:se(),side:"top",content:Ko.t("Notifications")},de.createElement(lu,{align:"center",collisionBoundary:e,collisionPadding:{right:20,left:20},container:se(),content:de.createElement(Yn,null)},de.createElement(Le,{size:"small",variant:"ghost",onClick:s},de.createElement(au,{size:18,color:"black"}),de.createElement(ts,null)))),de.createElement(jo,{container:se(),side:"top",content:Ko.t("Settings")},de.createElement(Le,{size:"small",variant:"ghost",onClick:r},de.createElement(uu,{size:18,color:"black"}))),de.createElement(jo,{container:se(),side:"top",content:Ko.t("Transactions History")},de.createElement(Le,{size:"small",variant:"ghost",onClick:n},de.createElement(cu,{size:18,color:"black"}))))}i(Rn,"HomeButtons");import{BottomLogo as mu,Divider as du,Header as fu}from"@rango-dev/ui";import ye from"react";import{useNavigate as gu}from"react-router-dom";import{styled as Qn}from"@rango-dev/ui";var os=Qn("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",backgroundColor:"$neutral100",variants:{fixedHeight:{true:{height:"95vh"},false:{height:"auto"}}}}),ns=Qn("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"}}}}),rs=Qn("div",{backgroundColor:"$background","& .footer__content":{padding:"$0 $20"},"& .footer__logo":{padding:"$0 $20 $10 $20"}});function hu(t,e){let{children:o,header:n,footer:r,noPadding:s,hasLogo:a=!0,fixedHeight:p=!0}=t,l=O.use.connectedWallets(),u=be.use.connectWalletsButtonDisabled(),m=gu(),g=i(()=>{u||m("/"+h.wallets)},"onConnectWallet");return ye.createElement(os,{ref:e,fixedHeight:p,id:"swap-box"},ye.createElement(fu,{prefix:ye.createElement(ye.Fragment,null,n.onBack&&ye.createElement(_n,{onClick:n.onBack})),title:n.title,suffix:ye.createElement(ye.Fragment,null,n.suffix,n.hasConnectWallet&&ye.createElement(On,{container:se(),onClick:g,isConnected:!!l?.length}),n.onCancel&&ye.createElement(Fn,{onClick:n.onCancel}))}),ye.createElement(ns,{noPadding:s},o),(a||r)&&ye.createElement(rs,null,ye.createElement("div",{className:"footer__content"},r),a&&ye.createElement("div",{className:"footer__logo"},ye.createElement(du,{size:12}),ye.createElement(mu,null))))}i(hu,"LayoutComponent");var Q=ye.forwardRef(hu);Q.displayName="Layout";import{Alert as Tu,Button as ku,Divider as gs,NoRouteIcon as wu,RefreshIcon as vu,Typography as hs}from"@rango-dev/ui";import $e from"react";import{create as yu}from"zustand";import{persist as Su,subscribeWithSelector as Cu}from"zustand/middleware";var is=[.5,1,3],ss=1,as=5,ls=100,ps=0;var q=Ne(yu()(Su(Cu(t=>({slippage:ss,customSlippage:null,infiniteApprove:!1,affiliateRef:null,affiliatePercent:null,affiliateWallets:null,disabledLiquiditySources:[],theme:"auto",setSlippage:e=>t(()=>({slippage:e})),setCustomSlippage:e=>t(()=>({customSlippage:e})),setAffiliateRef:e=>t(()=>({affiliateRef:e})),setAffiliatePercent:e=>t(()=>({affiliatePercent:e})),setAffiliateWallets:e=>t(()=>({affiliateWallets:e})),toggleAllLiquiditySources:e=>t(o=>{if(e)return{disabledLiquiditySources:[]};let{swappers:n}=T.getState().meta,r=lt(n.map(s=>s.swapperGroup));return r.length===o.disabledLiquiditySources.length?{disabledLiquiditySources:[]}:{disabledLiquiditySources:r}}),toggleInfiniteApprove:()=>t(e=>({infiniteApprove:!e.infiniteApprove})),toggleLiquiditySource:e=>t(o=>o.disabledLiquiditySources.includes(e)?{disabledLiquiditySources:o.disabledLiquiditySources.filter(n=>n!=e)}:{disabledLiquiditySources:o.disabledLiquiditySources.concat(e)}),setTheme:e=>t(()=>({theme:e}))})),{name:"user-settings",skipHydration:!0})));import{i18n as us}from"@lingui/core";function cs(t,e,o,n,r){return o?{alert:{type:"warning",text:G.genericServerError,action:{onClick:r,title:us.t("Retry")}},description:""}:t?{alert:{type:"error",text:t,action:null},description:""}:e.length?{alert:{type:"warning",text:G.liquiditySourcesError.title,action:{onClick:()=>n(!0),title:us.t("Reset")}},description:G.liquiditySourcesError.description}:{alert:null,description:G.noRoutesError.description}}i(cs,"makeInfo");import{styled as Zn}from"@rango-dev/ui";var ms=Zn("div",{display:"flex",flexDirection:"column",alignItems:"center"}),ds=Zn("div",{width:"100%"}),fs=Zn("div",{padding:"$6 $0"});function Rt(t){let{diagnosisMessage:e,fetch:o,error:n}=t,r=q.use.disabledLiquiditySources(),s=T.use.loadingStatus(),a=q.use.toggleAllLiquiditySources(),l=cs(e??null,r,n||s==="failed",a,o);return $e.createElement(ms,null,$e.createElement(wu,{size:24,color:"gray"}),$e.createElement(gs,{size:4}),$e.createElement(hs,{variant:"title",size:"small"},G.noRoutesError.title),!!l.description&&$e.createElement(hs,{variant:"body",size:"small",align:"center",color:"neutral900"},l.description),$e.createElement(gs,{size:4}),!!l.alert&&$e.createElement(ds,null,$e.createElement(Tu,{type:l.alert.type,title:l.alert.text,action:l.alert.action&&$e.createElement(ku,{size:"xsmall",type:l.alert.type,prefix:$e.createElement(fs,null,$e.createElement(vu,{size:8})),onClick:l.alert.action.onClick},l.alert.action.title),variant:"alarm"})))}i(Rt,"NoRoutes");import{Alert as xs,Divider as Wu,InfoIcon as Nu}from"@rango-dev/ui";import Oe from"react";import{styled as Yo}from"@rango-dev/ui";var ys=Yo("div",{width:"100%",paddingTop:"$10"}),Jn=Yo("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",gap:10,width:"100%"}),Ss=Yo("div",{display:"flex",padding:"$5 0",justifyContent:"space-between",alignItems:"center",width:"100%"}),Cs=Yo("div",{padding:"$2",alignSelf:"flex-start",cursor:"pointer"});import{i18n as Qt}from"@lingui/core";import{Button as bu,Divider as ws,MessageBox as vs,Modal as xu,Typography as Eu,WarningIcon as Au}from"@rango-dev/ui";import Fe from"react";import{useNavigate as Bu}from"react-router-dom";import{Typography as Ts}from"@rango-dev/ui";import er from"react";function ks(t){let{title:e,value:o,valueColor:n}=t;return er.createElement(Ss,null,er.createElement(Ts,{size:"medium",variant:"label",color:"neutral800"},e),er.createElement(Ts,{size:"large",variant:"label",color:n||"foreground"},`${n?"%":"$"}${o}`))}i(ks,"RouteErrorsModalItem");function bs(t){let{highValueLoss:e,open:o,onToggle:n,percentageChange:r,inputUsdValue:s,outputUsdValue:a,totalFeeInUsd:p}=t,l=Bu(),u=e&&r?.lt(-10)?"error":"warning",m=[{title:Qt.t("Swapping"),value:w(s,4,4)},{title:Qt.t("Gas cost"),value:w(p,2,2)},{title:Qt.t("Receiving"),value:w(a,4,4)},{title:Qt.t("Price impact"),value:w(r,2,2),valueColor:`${u}500`}];return Fe.createElement(xu,{open:o,onClose:()=>n(!1),container:document.getElementById("swap-box")||document.body},e?Fe.createElement(vs,{type:u,title:G.highValueLossError.impactTitle,description:G.highValueLossError.description}):Fe.createElement(vs,{type:u,title:G.unknownPriceError.impactTitle,description:G.unknownPriceError.description}),e&&Fe.createElement(Jn,null,Fe.createElement(ws,{size:20}),Fe.createElement(Eu,{size:"small",variant:"title"},Qt.t("Details")),Fe.createElement(Jn,null,m.map((g,f)=>Fe.createElement(ks,{key:f,...g})))),Fe.createElement(ws,{size:32}),Fe.createElement(bu,{type:"primary",size:"large",prefix:Fe.createElement(Au,null),fullWidth:!0,onClick:()=>{l(h.confirmSwap)}},e?G.highValueLossError.confirmMessage:G.unknownPriceError.confirmMessage))}i(bs,"RouteErrorsModal");var Iu=-10;function tr(t){let{bestRoute:e}=M(),{highValueLoss:o,percentageChange:n,priceImpactCanNotBeComputed:r,openModal:s,onToggle:a,totalFeeInUsd:p,outputUsdValue:l,inputUsdValue:u,loading:m,extraSpace:g}=t,f=zo(e),{recommendation:d}=qo(e),y=!f&&(o||r),c=y||f;return Oe.createElement(Oe.Fragment,null,(m||g&&!c)&&Oe.createElement(Wu,{size:20}),c&&Oe.createElement(ys,null,y&&Oe.createElement(Oe.Fragment,null,Oe.createElement(xs,{title:o?G.highValueLossError.title:G.unknownPriceError.title,type:o&&n?.lt(Iu)?"error":"warning",variant:"alarm",action:Oe.createElement(Cs,{onClick:()=>a(!0)},Oe.createElement(Nu,{size:12,color:"gray"}))})),f&&Oe.createElement(xs,{type:"error",variant:"alarm",title:d})),Oe.createElement(bs,{highValueLoss:o,open:s,onToggle:a,percentageChange:n,inputUsdValue:u,outputUsdValue:l,totalFeeInUsd:p}))}i(tr,"RouteErrors");import{ReverseIcon as Mu,styled as Es}from"@rango-dev/ui";import or from"react";var Lu=Es("div",{position:"absolute",bottom:"-12px",left:"50%",transform:"translate(-50%, 10%)",cursor:"pointer"}),Pu=Es("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 As(){let t=M.use.switchFromAndTo();return or.createElement(Lu,null,or.createElement(Pu,{onClick:()=>{t()}},or.createElement(Mu,{size:12})))}i(As,"SwitchFromAndToButton");import{useEffect as Bs,useRef as $u,useState as Ws}from"react";import{useRef as Du,useState as _u}from"react";function Ro(){let[t,e]=_u(!1),o=Du(null),n=i(()=>o.current?.abort(),"cancel");return{fetch:i(async s=>{n(),o.current=new AbortController,e(!0);try{let a=await Et().getBestRoute(s,{signal:o.current.signal});return o.current=null,a}catch(a){throw a}finally{e(!1)}},"fetch"),loading:t,cancelFetch:n}}i(Ro,"useFetchBestRoute");var Fu=600;function Ns(){let{fetch:t,cancelFetch:e}=Ro(),[o,n]=Ws(!1),{fromToken:r,toToken:s,inputAmount:a,inputUsdValue:p,resetRoute:l,setRoute:u}=M(),{slippage:m,customSlippage:g,affiliatePercent:f,affiliateRef:d,affiliateWallets:y,disabledLiquiditySources:c}=q(),[k,x]=Ws(""),S=$u(c),v=g??m,C=!r||!s||Pe(r,s)||!Vt(a),I=i(()=>{if(o||n(!0),!C){l();let W=Go({fromToken:r,toToken:s,inputAmount:a,disabledLiquiditySources:c,slippage:v,affiliateRef:d,affiliatePercent:f,affiliateWallets:y});t(W).then(V=>{n(!1),u(V)}).catch(V=>{l(),V?.code!=="ERR_CANCELED"&&(x(V.message),n(!1))})}},"fetch"),D=hi(()=>{C||I()},Fu);return Bs(()=>{if(!Vt(a)||p?.eq(0)){n(!1),e();return}if(!C)return l(),n(!0),D(),e},[a,C]),Bs(()=>{let W=!!S.current.length&&!c.length;return!C&&W&&I(),S.current=c,e},[c.length]),{fetch:I,loading:o,error:k}}i(Ns,"useSwapInput");var ju=Pt("div",{display:"flex",flexDirection:"column",overflowY:"visible"}),Yu=Pt("div",{position:"relative"}),Ru=Pt("div",{display:"flex",flexDirection:"column",gap:5,alignSelf:"stretch"}),Ms=Pt("div",{width:"100%",paddingTop:"$2"}),Qu=Pt("div",{paddingBottom:"$15"}),Zu=Pt("div",{width:"100%",display:"flex"});function Zo(){let t=Ku(),{fetch:e,loading:o,error:n}=Ns(),{fromToken:r,fromBlockchain:s,toToken:a,toBlockchain:p,setInputAmount:l,inputAmount:u,inputUsdValue:m,outputAmount:g,outputUsdValue:f,bestRoute:d,resetRouteWallets:y}=M(),{meta:{tokens:c},loadingStatus:k}=T(),x=O.use.connectedWallets(),S=be.use.setCurrentPage(),[v,A]=Xu(!1),{fromAmountRangeError:C,swap:I,recommendation:D}=qo(d),W=Vu(null),V=!!Number(u)&&(!!d||o||!!n),R=!1,X=Oo(m,f),N=Uo(m,X),U=!jn(d,u,m),$=!jn(d,u,f),b=$i(k,x,o,d,zo(d),N,U||$,R,u),ce=s&&r?w(Wt(x,s?.name,r?.symbol,r?.address)?.amount||"0",8,8):"0",we=s&&r?w(Wt(x,s?.name,r?.symbol,r?.address)?.amount||"0",Wt(x,s?.name,r?.symbol,r?.address)?.decimal):"0";Gu(()=>(S(h.home),y(),S.bind(null,"")),[]);let z=!m||!f||!f.gt(0)?null:Re(m.toNumber(),f.toNumber()),re=i(qe=>qe.map((ie,it)=>({swapper:{displayName:ie.swapperId,image:ie.swapperLogo},from:{token:{displayName:ie.from.symbol,image:ie.from.logo},chain:{displayName:ie.from.blockchain,image:ie.from.blockchainLogo},price:{value:it===0?w(u,6,6):ie.fromAmount}},to:{token:{displayName:ie.to.symbol,image:ie.to.logo},chain:{displayName:ie.to.blockchain,image:ie.to.blockchainLogo},price:{value:ie.toAmount}},alerts:ie.swapperId===I?.swapperId?Y.createElement(Qu,null,Y.createElement(Ou,{type:"error",title:D,footer:Y.createElement(Zu,null,Y.createElement(rr,{size:"xsmall",variant:"body",color:"neutral900"},C),Y.createElement(nr,{direction:"horizontal",size:8}),Y.createElement(rr,{size:"xsmall",variant:"body",color:"neutral900"},"|"),Y.createElement(nr,{direction:"horizontal",size:8}),Y.createElement(rr,{size:"xsmall",variant:"body",color:"neutral900"},Qo.t({id:"yourSymbol",message:"Yours: {amount} {symbol}",values:{amount:w(I?.fromAmount||null,6,6),symbol:ie?.from.symbol}})))})):void 0})),"getBestRouteSteps"),le=Ho(d,c),me=Pi(d);return Y.createElement(Q,{ref:W,fixedHeight:!1,hasLogo:!0,footer:Y.createElement(qu,{type:"primary",size:"large",disabled:b.disabled,prefix:!b.disabled&&b.hasWarning&&Y.createElement(Hu,null),fullWidth:!0,onClick:()=>{b.state==="waitForConnecting"?t(h.wallets):b.state==="needToConfirm"?A(!0):t(h.confirmSwap)}},b.title),header:{hasConnectWallet:!0,title:Qo.t("Swap"),suffix:Y.createElement(Rn,{layoutRef:W.current,onClickRefresh:d||n?e:void 0,onClickHistory:()=>t(h.swaps),onClickSettings:()=>t(h.settings)})}},Y.createElement(ju,null,Y.createElement(Ru,null,Y.createElement(Yu,null,Y.createElement(Is,{label:Qo.t("From"),mode:"From",onInputChange:l,balance:ce,chain:{displayName:s?.displayName||"",image:s?.logo||""},token:{displayName:r?.symbol||"",image:r?.image||""},onClickToken:()=>t("from-swap"),price:{value:u,usdValue:U?void 0:w(m,4,4),error:U?G.unknownPriceError.impactTitle:void 0},disabled:k==="failed",loading:k==="loading",onSelectMaxBalance:()=>{ce!=="0"&&l(we.split(",").join(""))}}),Y.createElement(As,null)),Y.createElement(Is,{sharpBottomStyle:!!d?.result||o,label:Qo.t("To"),mode:"To",chain:{displayName:p?.displayName||"",image:p?.logo||""},token:{displayName:a?.symbol||"",image:a?.image||""},percentageChange:z?.lt(0)?w(z,2,2):null,warningLevel:Mt(z?.toNumber()??0),price:{value:w(g,6,6),usdValue:$?void 0:w(f,4,4),error:$?G.unknownPriceError.impactTitle:void 0},onClickToken:()=>t("to-swap"),disabled:k==="failed",loading:k==="loading"})),o&&Y.createElement(Ms,null,Y.createElement(zu,{type:"basic"})),V&&!o&&me?.result?.swaps?.length?Y.createElement(Ms,null,Y.createElement(Uu,{type:"basic",recommended:!0,tooltipContainer:se(),input:{value:w(u,6,6),usdValue:w(m,4,4)},output:{value:w(g,6,6),usdValue:w(f,4,4)},steps:re(me.result.swaps),percentageChange:w(z,2,2),totalFee:w(le,2,2),totalTime:At(Bt(d?.result?.swaps))})):V&&!o?Y.createElement(Y.Fragment,null,Y.createElement(nr,{size:20}),Y.createElement(Rt,{diagnosisMessage:me?.diagnosisMessages?.[0],fetch:e,error:!!n})):null),Y.createElement(tr,{openModal:v,onToggle:A,totalFeeInUsd:le,outputUsdValue:f,inputUsdValue:m,percentageChange:z,highValueLoss:N,priceImpactCanNotBeComputed:U||$,loading:o||k==="loading",extraSpace:!!d?.result||!d}))}i(Zo,"Home");import{useEffect as ir,useRef as sr}from"react";import{createSearchParams as Ju,useLocation as ec,useSearchParams as tc}from"react-router-dom";function Ls(){let t=sr(!0),[e,o]=tc(),n=ec(),r=sr(n.search),s=sr({}),a=M.use.fromBlockchain(),p=M.use.toBlockchain(),l=M.use.fromToken(),u=M.use.toToken(),m=M.use.setFromBlockchain(),g=M.use.setFromToken(),f=M.use.setToBlockchain(),d=M.use.setToToken(),y=M.use.inputAmount(),c=M.use.setInputAmount(),k=T.use.loadingStatus(),{blockchains:x,tokens:S}=T.use.meta(),v=be.use.setSelectedSwap();return ir(()=>{let A={};Ju(r.current).forEach((I,D)=>{A[D]=I}),s.current=A;let C=n.pathname.split(h.swaps+"/")[1]||null;C&&v(C)},[]),ir(()=>{if(!t.current){let A="",C="",I="",D="",W="";if(k!=="success")A=s.current["fromBlockchain"],C=s.current["fromToken"],I=s.current["toBlockchain"],D=s.current["toToken"],W=s.current["fromAmount"]||y;else{if(n.state==="redirect")return;A=a?.name||"",C=(l?.symbol||"")+(l?.address?`--${l?.address}`:""),I=p?.name||"",D=(u?.symbol||"")+(u?.address?`--${u?.address}`:""),W=y}o({...A&&{["fromBlockchain"]:A},...C&&{["fromToken"]:C},...I&&{["toBlockchain"]:I},...D&&{["toToken"]:D},...W&&{["fromAmount"]:W.toString()}},{replace:!0})}t.current=!1},[n.pathname,y,a,l,p,u]),ir(()=>{if(k==="success"){let A=e.get("fromBlockchain"),C=e.get("fromToken"),I=e.get("toBlockchain"),D=e.get("toToken"),W=e.get("fromAmount"),V=x.find(U=>U.name===A),R=Gn(S,C,V||null),X=x.find(U=>U.name===I),N=Gn(S,D,X||null);V&&(m(V),R&&g(R)),X&&(f(X),N&&d(N)),W&&c(W)}},[k]),null}i(Ls,"UpdateUrl");function cc(t){let e=pc(),o=uc(),n=sc(!0),r=e.pathname.split("/"),a=r[r.length-1]===h.confirmSwap&&n.current;return ic(()=>{a&&o("."),n.current=!1},[]),a?Tt.createElement(Zo,null):Tt.createElement(Tt.Fragment,null," ",t.children)}i(cc,"Route");function Ps({children:t,...e}){let o=lc(),n=o?cc:ac,{blockchains:r}=T.use.meta(),{canSwitchNetworkTo:s}=nc(),a=r.filter(rc);return oc({lastConnectedWallet:e.lastConnectedWallet,clearDisconnectedWallet:e.clearDisconnectedWallet,disconnectedWallet:e.disconnectedWallet,evmChains:a,canSwitchNetworkTo:s}),Tt.createElement(Tt.Fragment,null,Tt.createElement(n,null,t),o&&Tt.createElement(Ls,null))}i(Ps,"AppRouter");import Be from"react";import{useRoutes as Pf}from"react-router-dom";import{i18n as Xe}from"@lingui/core";import{useManager as im}from"@rango-dev/queue-manager-react";import{Alert as gr,BestRoute as sm,BestRouteSkeleton as am,Button as an,Divider as Ot,IconButton as ka,MessageBox as lm,Modal as pm,RefreshIcon as um,SettingsIcon as cm,styled as wa,Tooltip as mm,Typography as Ta,WalletIcon as dm}from"@rango-dev/ui";import L,{useEffect as ln,useState as pn}from"react";import{flushSync as fm}from"react-dom";import{useNavigate as gm}from"react-router-dom";import{i18n as et}from"@lingui/core";import{Alert as fr,BalanceErrors as Hc,Button as ha,ChevronDownIcon as Gc,ChevronLeftIcon as Vc,Divider as Ft,MessageBox as Xc,Modal as ya,Typography as sn,WalletIcon as Kc}from"@rango-dev/ui";import E,{useEffect as jc,useLayoutEffect as Yc,useRef as Rc,useState as vt}from"react";import{useNavigate as Qc}from"react-router-dom";import{i18n as Jo}from"@lingui/core";function en(t){switch(t.type){case 0:return Jo.t("Route has been updated.");case 3:return Jo.t("Output amount changed to {newOutputAmount} ({percentageChange}% change).",{newOutputAmount:t.newOutputAmount,percentageChange:t.percentageChange});case 1:return Jo.t("Route swappers has been updated.");case 2:return Jo.t("Route internal coins has been updated.");default:return""}}i(en,"getRouteWarningMessage");import*as _t from"@radix-ui/react-collapsible";import{Button as mc,darkTheme as Dt,IconButton as dc,keyframes as Ds,styled as Te,TextField as fc}from"@rango-dev/ui";var Zt=300,gc=Ds({from:{height:0},to:{height:"var(--radix-collapsible-content-height)"}}),hc=Ds({from:{height:"var(--radix-collapsible-content-height)"},to:{height:0}}),_s=Te("div",{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center"}),$s=Te("div",{display:"grid",gap:"$10",gridTemplateColumns:" repeat(3, minmax(0, 1fr))",alignContent:"baseline"}),Fs=Te("button",{borderRadius:"$xm",padding:"$10",border:"0",display:"flex",justifyContent:"center",$$color:"$colors$neutral100",[`.${Dt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color",alignItems:"center",cursor:"pointer",width:110,position:"relative","&:hover":{$$color:"$colors$info100",[`.${Dt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$color:"$colors$info100",[`.${Dt} &`]:{$$color:"$colors$info700"},backgroundColor:"$$color",outline:0},variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary",outlineStyle:"solid"}}}}),Os=Te(_t.Trigger,{padding:"$0",border:"none",outline:"none",width:"100%",backgroundColor:"transparent",fontFamily:"inherit"}),Us=Te("div",{padding:"$20",display:"flex",justifyContent:"center",alignItems:"center",backgroundColor:"$neutral200",position:"relative",width:"100%"}),zs=Te(dc,{position:"absolute",left:"$20"}),qs=Te("div",{paddingTop:"$20","& .wallets-list":{display:"grid",gap:"$10",gridTemplateColumns:" repeat(3, minmax(0, 1fr))",alignContent:"baseline"}}),Hs=Te(_t.Root,{backgroundColor:"$neutral200",borderRadius:"$sm",variants:{selected:{true:{outlineWidth:1,outlineColor:"$secondary500",outlineStyle:"solid"}}}}),Gs=Te(mc,{width:"100%",borderRadius:"$sm !important",padding:"$15 !important",justifyContent:"space-between",alignItems:"center",$$color:"$colors$neutral100",[`.${Dt} &`]:{$$color:"$colors$neutral300"},backgroundColor:"$$color","&:hover":{$$color:"$colors$info100",[`.${Dt} &`]:{$$color:"$colors$neutral100"},backgroundColor:"$$color"},"&:focus-visible":{$$background:"$colors$info100",[`.${Dt} &`]:{$$background:"$colors$info700"},backgroundColor:"$$background",outline:0}}),Vs=Te("div",{padding:"$10 $0","& .button__content":{display:"flex",justifyContent:"center",alignItems:"center"},"& .alarms":{paddingTop:"5px"}}),Xs=Te("div",{transition:`all ${Zt}ms ease`,variants:{orientation:{down:{transform:"rotate(0)"},up:{transform:"rotate(180deg)"}}}}),Ks=Te("div",{display:"flex"}),js=Te(fc,{padding:"$0 $15 $15 $15"}),Ys=Te(_t.Content,{overflow:"hidden",variants:{open:{true:{animation:`${gc} ${Zt}ms ease-out`},false:{animation:`${hc} ${Zt}ms ease-out`}}}}),Rs=Te("div",{overflow:"visible",width:"100%"});import{i18n as Je}from"@lingui/core";import{Button as Uc,Divider as cr,Image as zc,MessageBox as mr,Modal as ca,SelectableWallet as qc,Typography as ma,WalletState as da}from"@rango-dev/ui";import ne,{useEffect as fa,useState as eo}from"react";import{WalletState as Zs}from"@rango-dev/ui";import{useWallets as Sc}from"@rango-dev/wallets-react";import{KEPLR_COMPATIBLE_WALLETS as Cc,WalletTypes as Tc}from"@rango-dev/wallets-shared";import{useEffect as kc,useState as wc}from"react";import{allProviders as yc}from"@rango-dev/provider-all";function tn(t,e){let o=yc({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(tn,"matchAndGenerateProviders");function Qs(t,e){return tn(t,e).map(r=>r.config.type)}i(Qs,"configWalletsToWalletName");var vc=Object.values(Tc);function on(t){let{config:e,chain:o,onBeforeConnect:n,onConnect:r}=t,{state:s,disconnect:a,getWalletInfo:p,connect:l}=Sc(),{connectedWallets:u}=O(),{blockchains:m}=T().meta,g=typeof e?.multiWallets>"u"?!0:e.multiWallets,f=Qs(e?.wallets,{walletConnectProjectId:e?.walletConnectProjectId})||vc,d=bi(s,p,f,o),y=Wi(d),[c,k]=wc(""),x=i(C=>!u.find(I=>I.walletType===C&&I.chain===o),"isExperimentalChainNotAdded"),S=i(async C=>{let I=s(C);try{if(c&&k(""),I.connected)await a(C);else{let D=!!d.find(W=>W.state===Zs.CONNECTED);if(!g&&D)return;n?.(C),await l(C),r?.(C)}}catch(D){k("Error: "+D?.message)}},"handleClick"),v=i(()=>{let C=d?.filter(I=>I.state===Zs.CONNECTING)||[];for(let I of C)a(I.type)},"disconnectConnectingWallets");kc(()=>()=>{v()},[]);let A=i((C,I,D)=>Bo(D,I)&&x(C)&&!Cc.includes(C),"shouldExcludeWallet");return{list:y.filter(C=>!A(C.type,o??"",m)),error:c,handleClick:S}}i(on,"useWalletList");import{i18n as na}from"@lingui/core";import{styled as ia,Typography as Mc,Wallet as Lc,WalletState as Pc}from"@rango-dev/ui";import wt,{Fragment as Dc,useState as ra}from"react";import{Divider as Bc,Modal as Wc}from"@rango-dev/ui";import lr from"react";import{i18n as $t}from"@lingui/core";import{Image as Ec,MessageBox as ar,WalletState as Ac}from"@rango-dev/ui";import kt from"react";import{keyframes as bc,styled as nn}from"@rango-dev/ui";var mk=nn("div",{borderRadius:"$lg",width:"$45",height:"$45",backgroundColor:"$success300",display:"flex",justifyContent:"center",alignItems:"center"}),Js=nn("div",{position:"relative"}),xc=bc({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),ea=nn("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${xc} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),ta=nn("div",{"& img":{borderRadius:"50%"}});function oa(t){let{state:e,image:o,error:n}=t;return e===Ac.CONNECTED?kt.createElement(ar,{type:"success",title:$t.t("Wallet Connected"),description:$t.t("Your wallet is connected, you can use it to swap.")}):n?kt.createElement(ar,{type:"error",title:$t.t("Failed to Connect"),description:n||$t.t("Your wallet is not connected. Please try again.")}):kt.createElement(ar,{type:"loading",title:$t.t("Connecting to your wallet"),description:$t.t("Click connect in your wallet popup."),icon:kt.createElement(Js,null,kt.createElement(ta,null,kt.createElement(Ec,{src:o,size:45})),kt.createElement(ea,null))})}i(oa,"ModalContent");function Jt(t){let{open:e,onClose:o,...n}=t;return lr.createElement(Wc,{open:e,onClose:o,container:document.getElementById("swap-box")||document.body},lr.createElement(oa,{...n}),lr.createElement(Bc,{direction:"vertical",size:32}))}i(Jt,"WalletModal");import{useInRouterContext as Nc,useNavigate as Ic}from"react-router-dom";function oe(){let t=Nc(),e=Ic(),o=M.use.routeWalletsConfirmed();return h,{navigateBackFrom:i(r=>{if(r===h.swapDetails)return e("/"+h.swaps,{replace:!0});if(!t||window.history.state&&window.history.state.idx>0)e(-1);else{if([h.settings,h.wallets].includes(r)&&o)return e("/"+h.confirmSwap,{replace:!0});[h.fromSwap,h.toSwap,h.settings,h.wallets,h.swaps,h.confirmSwap].includes(r)?e(h.home,{replace:!0}):r===h.fromBlockchain?e("/"+h.fromSwap,{replace:!0}):r===h.toBlockchain?e("/"+h.fromSwap,{replace:!0}):r===h.liquiditySources&&e("/"+h.settings,{replace:!0})}},"navigateBackFrom")}}i(oe,"useNavigateBack");var _c=ia("div",{display:"grid",gap:"$10",gridTemplateColumns:" repeat(3, minmax(0, 1fr))",alignContent:"baseline",paddingTop:"$15",height:"100%"}),$c=ia("div",{textAlign:"center"}),rn=3e3,pr=300;function sa({config:t}){let{navigateBackFrom:e}=oe(),[o,n]=ra(!1),[r,s]=ra(""),a=null,{list:p,handleClick:l,error:u}=on({config:t,onBeforeConnect:y=>{a=setTimeout(()=>{n(!0),s(y)},pr)},onConnect:()=>{a&&clearTimeout(a),setTimeout(()=>{n(!1)},rn)}}),m=T.use.loadingStatus(),g=p.find(y=>y.type===r),f=g?.image||"",d=g?.state||Pc.NOT_INSTALLED;return wt.createElement(Q,{header:{title:na.t("Connect Wallets"),onBack:e.bind(null,h.wallets)}},wt.createElement($c,null,wt.createElement(Mc,{variant:"title",size:"xmedium",align:"center"},na.t("Choose a wallet to connect.")),wt.createElement(_c,null,p.map((y,c)=>{let k=`wallet-${c}-${y.type}`;return wt.createElement(Dc,{key:k},wt.createElement(Lc,{...y,container:se(),onClick:x=>{l(x)},isLoading:m==="loading"}))}),wt.createElement(Jt,{open:!!o,onClose:()=>n(!1),image:f,state:d,error:u}))))}i(sa,"WalletsPage");function aa(t,e){return e.find(o=>o.name===t)?.displayName}i(aa,"getBlockchainDisplayNameFor");import{keyframes as Fc,styled as ur}from"@rango-dev/ui";var la=ur("div",{position:"relative"}),Oc=Fc({"0%":{transform:"rotate(0deg)"},"100%":{transform:"rotate(360deg)"}}),pa=ur("div",{position:"absolute",border:"2px solid rgba(0, 0, 0, 0.1)",borderTop:"2px solid $info500",borderRadius:"$lg",width:"$45",height:"$45",animation:`${Oc} 1s linear infinite`,top:0,bottom:0,right:0,left:0}),ua=ur("div",{"& img":{borderRadius:"50%"}});function dr(t){let{config:e,chain:o,isSelected:n,selectWallet:r,limit:s,onShowMore:a}=t,p=O.use.connectedWallets(),{blockchains:l}=T.use.meta(),[u,m]=eo(""),[g,f]=eo(null),[d,y]=eo(!1),[c,k]=eo(null),{connect:x}=ga(),S=null,{list:v,error:A,handleClick:C}=on({config:e,chain:o,onBeforeConnect:N=>{S=setTimeout(()=>{m(N)},pr)},onConnect:()=>{S&&clearTimeout(S),setTimeout(()=>{m("")},rn)}}),[I,D]=eo(v),W=v.length,V=s&&W-s>0,R=i(async N=>{y(!1),k("in-progress"),await x(N.walletType,N.chain),k("completed")},"addExperimentalChain");fa(()=>{D(N=>{let U=v.findIndex($=>n($.type,o));return V&&U>1?[v[U]].concat(v.filter(($,b)=>b!==U)):N.map($=>v.find(b=>b.type===$.type)??$)})},[JSON.stringify(v)]);let X=document.querySelector("#swap-box");return fa(()=>{let N=null;return c==="completed"&&(N=setTimeout(()=>k(null),rn)),()=>{N&&clearTimeout(N)}},[c]),ne.createElement(ne.Fragment,null,I.slice(0,s).map(N=>{let U=Ni({connectedWallets:p,walletType:N.type,chain:o}),$=U?Wo(U):"",b=Bo(l,o),ce=!p.find(me=>me.walletType===N.type&&me.chain===o),we=b&&ce&&N.state===da.CONNECTED,z=we?Je.t({id:"addChain",message:"Add {chain} chain",values:{chain:o}}):$,re=i(()=>{N.state===da.DISCONNECTED?C(N.type):we?(f({walletType:N.type,chain:o,address:U??""}),y(!0)):r({walletType:N.type,chain:o,address:U??""})},"onClick"),le=g?.chain?aa(g.chain,l):void 0;return ne.createElement(ne.Fragment,null,ne.createElement(Jt,{open:u===N.type,onClose:()=>m(""),image:N.image,state:N.state,error:A}),!!g&&ne.createElement(ca,{open:!!g&&d,container:X,onClose:()=>{f(null)}},ne.createElement(mr,{title:Je.t({id:"addBlockchain",message:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:le}}),type:"warning",description:Je.t({id:"addBlockchainDescription",message:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:le}})},ne.createElement(cr,{size:18}),ne.createElement(cr,{size:32}),ne.createElement(Uc,{onClick:R.bind(null,g),variant:"outlined",type:"primary",fullWidth:!0,size:"large"},Je.t("Confirm")))),c&&ne.createElement(ca,{open:!!c,onClose:k.bind(null,null),container:X},c==="in-progress"?ne.createElement(mr,{type:"loading",title:Je.t({id:"addBlockchain",message:"Add {blockchainDisplayName} Chain",values:{blockchainDisplayName:le}}),description:Je.t({id:"addBlockchainDescription",message:"You should connect a {blockchainDisplayName} supported wallet or choose a different {blockchainDisplayName} address",values:{blockchainDisplayName:le}}),icon:ne.createElement(la,null,ne.createElement(ua,null,ne.createElement(zc,{src:N.image,size:45})),ne.createElement(pa,null))}):ne.createElement(mr,{type:"success",title:Je.t({id:"blockchainAdded",message:"{blockchainDisplayName} Chain Added",values:{blockchainDisplayName:le}}),description:Je.t({id:"blockchainAddedDescription",message:"{blockchainDisplayName} is added to your wallet, you can use it to swap.",values:{blockchainDisplayName:le}})}),ne.createElement(cr,{direction:"vertical",size:32})),ne.createElement(qc,{key:N.type,description:z,onClick:re,selected:n(N.type,o),...N}))}),V&&ne.createElement(Fs,{selected:!1,onClick:a.bind(null)},ne.createElement(ma,{variant:"label",size:"medium"},Je.t("Show more wallets"),ne.createElement(ma,{variant:"label",size:"medium",color:"$primary"},"\xA0+",W-(s??0)))))}i(dr,"WalletList");var Zc=2;function Sa(t){let{open:e,onClose:o,onCancel:n,onCheckBalance:r,config:s,loading:a}=t,{blockchains:p}=T.use.meta(),{bestRoute:l,setSelectedWallets:u,routeWalletsConfirmed:m,setRouteWalletConfirmed:g,customDestination:f,setCustomDestination:d}=M(),{connectedWallets:y,selectWallets:c}=O(),[k,x]=vt(""),[S,v]=vt([]),[A,C]=vt(""),[I,D]=vt(null),[W,V]=vt(f),[R,X]=vt(!!f),N=Rc(null),U=Mo(l),$=typeof s?.customDestination>"u"?!0:s.customDestination,b=p.find(B=>B.name===l?.result?.swaps[l?.result?.swaps.length-1].to.blockchain),ce=i(B=>!!l?.result?.swaps.find(F=>F.from.blockchain===B),"isWalletRequiredFor"),[we,z]=vt(y.filter(B=>B.selected&&U.includes(B.chain))),re=p.find(B=>B.name===b?.name),le=i((B,F)=>!!we.find(_=>_.walletType===B&&_.chain===F&&_.selected&&(ce(F)||!ce(F)&&!W)),"isSelected"),me=!!W&&R&&re&&!Lo(re,W),qe=i(()=>{X(!1),V(""),z(B=>{let F=!1;return B.map(_=>!F&&_.chain===b?.name?(F=!0,{..._,selected:!0}):_)})},"resetCustomDestination"),ie=i(B=>{if(k&&x(""),le(B.walletType,B.chain))return;let _=y.find(ee=>ee.walletType===B.walletType&&ee.chain===B.chain);_&&(n(),B.chain===b?.name&&R&&(X(!1),V("")),z(ee=>ee.filter(pe=>pe.chain!==B.chain).concat({..._,selected:!0})))},"onChange"),it=i(()=>{let B=we.filter(F=>F.selected);c(B),u(B),d(W),g(!0),o()},"onConfirmBalance"),st=i(async()=>{v([]),C(""),D(null);let B=y.filter(ee=>we.find(pe=>pe.chain===ee.chain&&pe.walletType===ee.walletType)),F=await r?.({selectedWallets:B,customDestination:W}),_=F.warnings;_?.balance?.messages&&v(_.balance.messages),_?.route&&D(_.route),F.error&&C(Po(F.error)),!F.error&&(!_?.balance?.messages.length||0>0)?it():v(_?.balance?.messages??[])},"onConfirmWallets");jc(()=>{z(B=>B.concat(y.filter(F=>!!!B.find(ee=>ee.chain===F.chain)&&F.selected&&U.includes(F.chain))))},[y.length]),Yc(()=>{R&&N.current&&setTimeout(()=>{N?.current?.scrollIntoView({behavior:"smooth"})},Zt)},[R]);let ht=document.querySelector("#swap-box"),at=Qc();return E.createElement(ya,{open:e,onClose:()=>{m||at(h.home,{replace:!0}),o()},dismissible:!k,container:ht,...!k&&{footer:E.createElement(Ks,null,E.createElement(ha,{loading:a,disabled:Ki(a,R,W,l,we,b),onClick:st,variant:"contained",type:"primary",fullWidth:!0,size:"large"},"Confirm"))},...k&&{containerStyle:{padding:"$0"},header:E.createElement(Us,null,E.createElement(zs,{variant:"ghost",onClick:x.bind(null,"")},E.createElement(Vc,{size:16})),E.createElement(sn,{variant:"headline",size:"small"},et.t({id:"yourWallets",message:"Your {blockchainName} wallets",values:{blockchainName:k}})))},anchor:"center"},E.createElement(ya,{open:S.length>0,onClose:v.bind(null,[]),container:ht},E.createElement(Xc,{title:et.t("Insufficient account balance"),type:"error",description:E.createElement(Hc,{messages:S??[]})},E.createElement(ha,{variant:"outlined",size:"large",type:"primary",fullWidth:!0,onClick:it},et.t("Proceed anyway")))),k&&E.createElement(qs,null,E.createElement("div",{className:"wallets-list"},E.createElement(dr,{chain:k,isSelected:le,selectWallet:ie,multiWallets:s?.multiWallets??!0,supportedWallets:s?.wallets??[],config:s,onShowMore:x.bind(null,k)}))),!k&&E.createElement(E.Fragment,null,A&&E.createElement(E.Fragment,null,E.createElement(fr,{variant:"alarm",type:"error",title:et.t(A)}),E.createElement(Ft,{size:12})),I&&E.createElement(E.Fragment,null,E.createElement(fr,{variant:"alarm",type:"warning",title:en(I)}),E.createElement(Ft,{size:12})),E.createElement(Rs,null,U.map((B,F)=>{let _=p.find(He=>He.name===B),ee=`wallet-${F}`,pe=F===U.length-1;return E.createElement("div",{key:ee},E.createElement(_s,null,E.createElement(sn,{variant:"title",size:"xmedium"},et.t({id:"yourWallets",message:"Your {blockchainName} wallets",values:{blockchainName:_?.displayName}})),E.createElement(sn,{variant:"label",color:"$neutral900",size:"medium"},et.t({id:"needConnect",message:"You need to connect a {blockchainName} wallet.",values:{blockchainName:_?.displayName}}))),E.createElement(Ft,{size:24}),E.createElement($s,null,E.createElement(dr,{chain:B,isSelected:le,selectWallet:ie,multiWallets:s?.multiWallets??!0,supportedWallets:s?.wallets??[],config:s,limit:Zc,onShowMore:()=>x(_?.name??"")})),!pe&&E.createElement(Ft,{size:32}),pe&&$&&E.createElement(Vs,null,E.createElement(Hs,{ref:N,selected:R,open:R,onOpenChange:He=>{He?ce(b?.name??"")||z(ci=>ci.map(yt=>yt.chain===b?.name?{...yt,selected:!1}:yt)):qe()}},E.createElement(Os,{onClick:()=>X(He=>!He)},E.createElement(Gs,{fullWidth:!0,variant:"default",suffix:E.createElement(Xs,{orientation:R?"up":"down"},E.createElement(Gc,{size:10,color:"gray"}))},E.createElement("div",{className:"button__content"},E.createElement(Kc,{size:18,color:"info"}),E.createElement(Ft,{size:4,direction:"horizontal"}),E.createElement(sn,{variant:"label",size:"medium"},et.t("Send to a different address"))))),E.createElement(Ys,{open:R},E.createElement(E.Fragment,null,E.createElement(Ft,{size:4}),E.createElement(js,{autoFocus:!0,placeholder:et.t("Your destination address"),value:W,onChange:He=>{V(He.target.value)}})))),me&&E.createElement("div",{className:"alarms"},E.createElement(fr,{variant:"alarm",type:"error",title:et.t({id:"addressMatch",values:{destination:W},message:"Address {destination} doesn't match the blockchain address pattern."})}))))}))))}i(Sa,"ConfirmWalletsModal");import{calculatePendingSwap as em}from"@rango-dev/queue-manager-rango-preset";import tm from"bignumber.js";import{useEffect as om}from"react";function nm(t,e){if(!t.result)throw new Error(G.noRoutesError.title,{cause:{type:0,diagnosisMessage:t.diagnosisMessages?.[0]}});let o=new tm(t.result?.outputAmount||"0").multipliedBy(e.outputUsdValue||0),n=Oo(e.inputUsdValue,o);if(Uo(e.inputUsdValue,n))throw new Error("High value loss for route",{cause:{type:1}});return t}i(nm,"throwErrorIfResponseIsNotValid");function rm(t,e,o){let n=Mi(t,e),r={balance:null,route:null,slippage:null};n&&(zi(t,e)?r.route={type:3,newOutputAmount:w(Lt(e)),percentageChange:w(Re(Lt(t),Lt(e)),null,2)}:Vn(t,e)?r.route={type:0}:Xn(t,e)?r.route={type:1}:Kn(t,e)&&(r.route={type:2}));let s=qi(e,o.selectedWallets);s.length===0||(r.balance={messages:s});let p=Fi(t),l=o.userSlippage>as;return Oi(o.userSlippage.toString(),p)?l&&(r.slippage={type:1,slippage:o.userSlippage.toString()}):r.slippage={type:0,slippage:p},r}i(rm,"generateWarnings");function Ca(){let{fromToken:t,toToken:e,inputAmount:o,inputUsdValue:n,setRoute:r,bestRoute:s,customDestination:a}=M(),{slippage:p,customSlippage:l,affiliatePercent:u,affiliateRef:m,affiliateWallets:g,disabledLiquiditySources:f}=q(),{connectedWallets:d}=O(),{meta:y}=T(),c=l||p,{fetch:k,cancelFetch:x,loading:S}=Ro();return om(()=>x,[]),{loading:S,fetch:i(async A=>{let C=A.selectedWallets,I=A?.customDestination??a;if(!t||!e||!o||!s)return{route:null,swap:null,error:null,warnings:null};let D=Go({fromToken:t,toToken:e,inputAmount:o,wallets:d,selectedWallets:C,disabledLiquiditySources:f,slippage:c,affiliateRef:m,affiliatePercent:u,affiliateWallets:g,initialRoute:s,destination:I}),W;try{W=await k(D).then(X=>nm(X,{outputUsdValue:e.usdPrice,inputUsdValue:n})),r(W)}catch(X){return X?.code==="ERR_CANCELED"?{swap:null,error:{type:3},warnings:null}:X.cause?{swap:null,error:X.cause,warnings:null}:{swap:null,error:{type:2},warnings:null}}let V={slippage:c.toString(),disabledSwappersGroups:f},R=em(o.toString(),W,Ui(C),V,!1,y);return{route:W,swap:R,error:null,warnings:rm(s,W,{selectedWallets:C,userSlippage:c})}},"fetch"),cancelFetch:x}}i(Ca,"useConfirmSwap");var hm=wa("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"}}),ym=wa("div",{width:"100%",display:"flex",justifyContent:"space-between","& .confirm-button":{flexGrow:1,paddingRight:"$10"},[`& ${ka}`]:{width:"$48",height:"$48"}});function va(t){let{config:e}=t,{bestRoute:o,inputAmount:n,outputAmount:r,inputUsdValue:s,outputUsdValue:a,setInputAmount:p,selectedWallets:l,routeWalletsConfirmed:u,setRouteWalletConfirmed:m,customDestination:g}=M(),f=gm(),[d,y]=pn(""),[c,k]=pn(!1),{connectedWallets:x}=O(),S=!u,[v,A]=pn(!1),C=be.use.setSelectedSwap(),{meta:{tokens:I},loadingStatus:D}=T(),W=q.use.slippage(),V=q.use.customSlippage(),{manager:R}=im(),X=V||W,{fetch:N,loading:U,cancelFetch:$}=Ca(),[b,ce]=pn({swap:null,error:null,warnings:null}),we=U||D==="loading",z=!U&&b.error&&[0,2].includes(b.error.type),re=!z&&!U&&o&&o.result,le=Ho(o,I),me=w(Re(s?.toNumber()??0,a?.toNumber()??0),2,2),qe=Mt(parseFloat(me)),ie=i(async({selectedWallets:B,customDestination:F})=>{let _=await N?.({selectedWallets:B,customDestination:F});return ce(_),_},"onConfirmSwap"),it=i(async()=>{if(b.swap&&u)try{await R?.create("swap",{swapDetails:b.swap},{id:b.swap.requestId}),C(b.swap.requestId),f("/"+h.swaps+`/${b.swap.requestId}`,{replace:!0}),setTimeout(()=>{p("")},0)}catch(B){y("Error: "+B?.message)}},"addNewSwap"),st=i(async()=>{await it()},"onConfirm"),ht=i(async()=>{b?.warnings?.slippage?k(!0):await st()},"onStartConfirmSwap"),at=i(async()=>{ce({error:null,swap:null,warnings:null}),N({selectedWallets:l}).then(B=>{ce(B)}).catch(B=>console.error(B))},"onRefresh");return ln(()=>{S&&$()},[S]),ln(()=>{S&&A(S)},[S]),ln(()=>{S||N({selectedWallets:l,customDestination:g}).then(B=>ce(B)).catch(B=>console.error(B))},[]),ln(()=>{let B=b.warnings?.route?.type&&Object.values(Kt).includes(b.warnings?.route?.type),F=l.length<1||!l.every(ee=>x.find(pe=>ee.address===pe.address&&ee.walletType===pe.walletType&&ee.chain===pe.chain)),_=!1;if(B){let ee=Mo(o),pe=o?.result?.swaps[o.result.swaps.length-1].to.blockchain;!!o?.result?.swaps.find(yt=>yt.from.blockchain===pe)||(ee=ee.slice(-ee.length,ee.length-1)),ee.every(yt=>l.find(dp=>dp.chain===yt))||(_=!0)}o&&(F||_)&&(queueMicrotask(()=>fm(A.bind(null,!0))),m(!1))},[b.warnings?.route,l.length,x.length]),L.createElement(Q,{header:{title:Xe.t("Confirm Swap"),onBack:f.bind(null,-1),hasConnectWallet:!0,suffix:L.createElement(mm,{container:se(),side:"bottom",content:Xe.t("Settings")},L.createElement(Le,{size:"small",variant:"ghost",onClick:()=>f("/"+h.settings)},L.createElement(cm,{size:18,color:"black"})))},footer:L.createElement(ym,null,L.createElement("div",{className:"confirm-button"},L.createElement(an,{variant:"contained",type:"primary",size:"large",fullWidth:!0,loading:U,disabled:!!b.error,onClick:ht},Xe.t("Start Swap"))),L.createElement(ka,{variant:"contained",type:"primary",size:"large",loading:U,onClick:A.bind(null,!0)},L.createElement(dm,{size:24})))},L.createElement(pm,{anchor:"bottom",open:c,prefix:L.createElement(an,{size:"small",variant:"ghost",onClick:()=>f("/"+h.settings)},L.createElement(Ta,{variant:"label",size:"medium",color:"$neutral900"},Xe.t("Change settings"))),container:document.querySelector("#swap-box"),onClose:k.bind(null,B=>!B)},b.warnings?.slippage&&L.createElement(lm,{type:"warning",title:b.warnings.slippage.type===1?Xe.t("High slippage"):Xe.t("Low slippage"),description:b.warnings.slippage.type===1?Xe.t("highSlippage",{selectedSlippage:X},{message:" Caution, your slippage is high (={selectedSlippage}). Your trade may be front run."}):Xe.t("increaseSlippage",{minRequiredSlippage:b.warnings.slippage.slippage},{message:"We recommend you to increase slippage to at least {minRequiredSlippage} for this route."})},L.createElement(Ot,{size:18}),L.createElement(Ot,{size:32}),L.createElement(an,{size:"large",type:"primary",variant:"contained",fullWidth:!0,onClick:st},Xe.t("Confirm anyway")))),v&&L.createElement(Sa,{open:v,onClose:()=>A(!1),onCancel:$,loading:U,onCheckBalance:ie,config:e}),L.createElement(hm,null,L.createElement("div",{className:"description"},L.createElement(Ta,{variant:"title",size:"small"},Xe.t("You get")),L.createElement(an,{style:{padding:"0"},variant:"ghost",disabled:U,onClick:at},L.createElement("div",{className:"icon"},L.createElement(um,{size:16})))),d&&L.createElement(L.Fragment,null,L.createElement(gr,{type:"error",variant:"alarm",title:d}),L.createElement(Ot,{size:12})),b.warnings?.route&&L.createElement(L.Fragment,null,L.createElement(gr,{variant:"alarm",type:"warning",title:en(b.warnings.route)}),L.createElement(Ot,{size:12})),we&&L.createElement(am,{type:"swap-preview",expanded:!0}),re&&L.createElement(sm,{expanded:!0,tooltipContainer:se(),steps:Di(o)??[],input:{value:w(n,6,6),usdValue:w(s,4,4)},output:{value:w(r,6,6),usdValue:w(a,4,4)},totalFee:w(le,2,2),totalTime:At(Bt(o.result?.swaps)),recommended:!0,type:"swap-preview",percentageChange:me,warningLevel:qe}),z&&L.createElement(L.Fragment,null,L.createElement(Ot,{size:12}),L.createElement(Rt,{diagnosisMessage:b.error?.type===0?b.error.diagnosisMessage:void 0,error:b.error?.type===2,fetch:at})),b.error?.type===1&&L.createElement(L.Fragment,null,L.createElement(gr,{variant:"alarm",type:"error",title:Po(b.error)}),L.createElement(Ot,{size:12}))))}i(va,"ConfirmSwapPage");import{i18n as mn}from"@lingui/core";import{useManager as vm}from"@rango-dev/queue-manager-react";import{Divider as bm,NotFound as xm,styled as Ma}from"@rango-dev/ui";import mt,{useState as Em}from"react";import{useNavigate as Am}from"react-router-dom";import{CloseIcon as Cm,IconButton as Tm,SearchIcon as km,TextField as wm}from"@rango-dev/ui";import to from"react";import{styled as Sm}from"@rango-dev/ui";var ba=Sm("div",{width:"$24",height:"$24",display:"flex",alignItems:"center",justifyContent:"center"});function tt(t){let{variant:e,fullWidth:o,color:n,size:r,onChange:s,value:a,setValue:p,...l}=t;return to.createElement(wm,{prefix:to.createElement(ba,null,to.createElement(km,{color:"black"})),suffix:!!a.length&&to.createElement(Tm,{variant:"ghost",onClick:()=>p?.(""),size:"small"},to.createElement(Cm,{color:"gray",size:10})),fullWidth:o,color:n,variant:e,style:{padding:10,borderRadius:25,alignItems:"center"},size:r,value:a,onChange:s,...l})}i(tt,"SearchInput");import{i18n as Ea}from"@lingui/core";import{Divider as Aa,SwapListItem as Ba,Typography as Wa}from"@rango-dev/ui";import te from"react";import{styled as un}from"@rango-dev/ui";var hr=un("div",{width:"100%",display:"flex",flexDirection:"column"}),yr=un("div",{display:"flex",justifyContent:"flex-start",padding:"$2"}),Sr=un("div",{gap:"$10",display:"flex",flexDirection:"column"}),xa=un("div",{height:"100%",display:"flex",justifyContent:"center",alignItems:"center"});function Cr(t){let{list:e,onSwapClick:o,groupBy:n,isLoading:r}=t,s=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(l=>te.createElement(te.Fragment,{key:l.title},te.createElement(hr,null,te.createElement(yr,null,te.createElement(Wa,{variant:"label",size:"medium",color:"neutral800",className:"group-title"},Ea.t(l.title))),te.createElement(Aa,{size:4}),te.createElement(Sr,null,l.swaps.map((u,m)=>{let g=m+l.title;return te.createElement(te.Fragment,{key:g},te.createElement(Ba,{isLoading:!0}))}))))))}return te.createElement(te.Fragment,null,s.filter(a=>a.swaps.length>0).map(a=>te.createElement(te.Fragment,{key:a.title},te.createElement(hr,null,te.createElement(yr,null,te.createElement(Wa,{variant:"label",size:"medium",color:"neutral800",className:"group-title"},Ea.t(a.title))),te.createElement(Aa,{size:4}),te.createElement(Sr,null,a.swaps.map(p=>{let l=p.steps[0],u=p.steps[p.steps.length-1];return te.createElement(te.Fragment,{key:p.requestId},te.createElement(Ba,{requestId:p.requestId,creationTime:p.creationTime,status:p.status,onClick:o,onlyShowTime:a.title==="Today",swapTokenData:{from:{token:{image:l.fromLogo,displayName:l.fromSymbol},blockchain:{image:l.fromBlockchainLogo||""},amount:bo(p.inputAmount)},to:{token:{image:u.toLogo,displayName:u.toSymbol},blockchain:{image:u.toBlockchainLogo||""},amount:bo(u.outputAmount||""),estimatedAmount:bo(u.expectedOutputAmountHumanReadable||"")}}}))}))))))}i(Cr,"SwapsGroup");import Na from"dayjs";var Ia=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=Na();return t.forEach(n=>{let r=Na(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 cn=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 Bm=Ma("div",{display:"flex",flexDirection:"column",alignItems:"flex-start",height:"100%",gap:15}),Wm=Ma("div",{overflowY:"visible",width:"100%",display:"flex",flexDirection:"column",gap:15,height:"100%"}),Nm=i((t,e)=>t?.length?t.filter(o=>Ge(o.fromBlockchain,e)||Ge(o.toBlockchain,e)||Ge(o.toSymbol,e)||Ge(o.fromSymbol,e)).length:!1,"isStepContainsText");function La(){let t=be.use.setSelectedSwap(),e=Am(),{navigateBackFrom:o}=oe(),{manager:n,state:r}=vm(),s=cn(n).map(({swap:f})=>f),[a,p]=Em(""),l=!r.loadedFromPersistor,u=i(f=>{let d=f.target.value;p(d)},"searchHandler"),m=s;a&&(m=s.filter(f=>Ge(f.inputAmount,a)||Ge(f.status,a)||Nm(f.steps,a)||Ge(f.requestId,a)));let g=!m?.length&&!l;return mt.createElement(Q,{header:{onBack:o.bind(null,h.swaps),title:mn.t("History")}},mt.createElement(Bm,null,mt.createElement(tt,{setValue:p,fullWidth:!0,variant:"contained",placeholder:mn.t("Search Transaction"),autoFocus:!0,onChange:u,value:a}),mt.createElement(Wm,null,g&&mt.createElement(xa,null,mt.createElement(bm,{size:32}),mt.createElement(xm,{title:mn.t("No results found"),description:a?mn.t("Try using different keywords"):""})),!g&&mt.createElement(Cr,{list:m,onSwapClick:f=>{t(f),e(`${f}`,{replace:!0})},groupBy:Ia,isLoading:l}))))}i(La,"HistoryPage");import{i18n as no}from"@lingui/core";import{List as Im,ListItemButton as Mm,Radio as wr,RadioRoot as Lm,Typography as vr}from"@rango-dev/ui";import Ue,{useState as Pm}from"react";import{styled as dn}from"@rango-dev/ui";var ot=dn("div",{height:"100%"}),oo=dn("ul",{padding:"$15 $5 0",margin:0,listStyle:"none",height:"100%",overflowY:"visible"}),Tr=dn("div",{width:80,display:"flex",justifyContent:"flex-end"}),kr=dn("div",{display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",height:"100%"});function Pa(){let{navigateBackFrom:t}=oe(),[e,o]=Pm("english"),n=[{id:"english",value:"english",title:Ue.createElement(vr,{variant:"title",size:"xmedium"},no.t("English")),onClick:()=>o("english"),end:Ue.createElement(wr,{value:"english"})},{id:"french",value:"french",title:Ue.createElement(vr,{variant:"title",size:"xmedium"},no.t("French")),onClick:()=>o("french"),end:Ue.createElement(wr,{value:"french"})},{id:"spanish",value:"spanish",title:Ue.createElement(vr,{variant:"title",size:"xmedium"},no.t("Spanish")),onClick:()=>o("spanish"),end:Ue.createElement(wr,{value:"spanish"})}];return Ue.createElement(Q,{header:{onBack:t.bind(null,h.settings),title:no.t("Language")}},Ue.createElement(ot,null,Ue.createElement(Lm,{value:e},Ue.createElement(Im,{type:Ue.createElement(Mm,{title:no.t("language"),id:"_",onClick:()=>console.log()}),items:n}))))}i(Pa,"LanguagePage");import{i18n as Ut}from"@lingui/core";import{Button as Om,Checkbox as Um,Image as zm,ListItemButton as qm,NotFound as Hm,Typography as Gm}from"@rango-dev/ui";import ke,{useState as Vm}from"react";import{Checkbox as $m,Skeleton as _a}from"@rango-dev/ui";import ro from"react";import{ListItem as Dm,styled as _m}from"@rango-dev/ui";var Da=_m(Dm,{height:61});var Fm=30;function br(){return ro.createElement(oo,null,Array.from(Array(Fm),t=>ro.createElement(Da,{hasDivider:!0,key:t,start:ro.createElement(_a,{variant:"circular",width:35,height:35}),title:ro.createElement(_a,{variant:"text",size:"large",width:90}),end:ro.createElement($m,{checked:!1})})))}i(br,"LoadingLiquiditySourceList");function fn(t){let e=T.use.meta().swappers,o=q.use.disabledLiquiditySources(),n=[];return lt(e.map(s=>s.swapperGroup)).map(s=>{let a=e.find(p=>p.swapperGroup===s);if(a){let p=!0;t&&(p=t.some(l=>l===a.title)),p&&a.types.map(l=>{n.push({id:a.swapperGroup,groupTitle:a.swapperGroup,logo:a.logo,type:l,selected:!o.includes(a.swapperGroup)})})}}),n}i(fn,"getUniqueSwappersGroups");function xr({supportedSwappers:t,sourceType:e}){let[o,n]=Vm(""),r=q.use.toggleLiquiditySource(),{navigateBackFrom:s}=oe(),a=T.use.loadingStatus(),p=fn(t),l=[];e==="Exchanges"&&l.push("DEX"),e==="Bridges"&&(l.push("BRIDGE"),l.push("AGGREGATOR"));let u=p.filter(c=>l.includes(c.type)),m=u.length===u.filter(c=>c.selected).length,g=i(()=>{u.forEach(c=>{m?r(c.groupTitle):c.selected||r(c.groupTitle)})},"toggleAllSources"),f=u.map(c=>{let{selected:k,groupTitle:x,logo:S}=c;return{start:ke.createElement(zm,{src:S,size:22,type:"circular"}),onClick:()=>r(x),end:ke.createElement(Um,{checked:k}),title:ke.createElement(Gm,{variant:"title",size:"xmedium"},Ut.t(x)),...c}}),d=i(c=>{let k=c.target.value;n(k)},"searchHandler"),y=f;return o&&(y=f.filter(c=>Ge(c.groupTitle,o))),ke.createElement(Q,{header:{onBack:s.bind(null,h.settings),title:Ut.t(e),suffix:ke.createElement(Tr,null,ke.createElement(Om,{variant:"ghost",size:"xsmall",onClick:g},Ut.t(m?"Deselect all":"Select all")))}},ke.createElement(ot,null,ke.createElement(tt,{value:o,setValue:n,fullWidth:!0,color:"light",variant:"contained",placeholder:Ut.t("Swap {sourceType}",{sourceType:e}),onChange:d}),a==="loading"&&ke.createElement(br,null),!y.length&&o?ke.createElement(kr,null,ke.createElement(Hm,{title:Ut.t("No results found"),description:Ut.t("Try using different keywords")})):a==="success"&&ke.createElement(oo,null,y.map(c=>ke.createElement(ke.Fragment,{key:c.id},ke.createElement(qm,{style:{height:"61px"},...c,selected:!1,hasDivider:!0}))))))}i(xr,"LiquiditySourcePage");import{i18n as Ga}from"@lingui/core";import{Divider as Wr,SelectableCategoryList as ed}from"@rango-dev/ui";import bt,{useState as Va}from"react";import{i18n as Ar}from"@lingui/core";import{Divider as qa,Image as Ym,ListItemButton as Rm,NotFound as Qm,Typography as Ha}from"@rango-dev/ui";import Me,{useEffect as Zm,useState as Jm}from"react";import{BlockchainCategories as Er}from"@rango-dev/ui";import{TransactionType as gn}from"rango-sdk";var Xm=i((t,e)=>{switch(e){case Er.ALL:return!0;case Er.UTXO:return t.type===gn.TRANSFER;case Er.OTHER:return t.type!==gn.TRANSFER&&t.type!==gn.COSMOS&&t.type!==gn.EVM;default:return t.type===e}},"filterByType"),$a=i((t,e,o)=>t.filter(n=>Xm(n,o)).filter(n=>St(n.name,e)||St(n.displayName,e)),"filterBlockchains");import{styled as Fa}from"@rango-dev/ui";var Oa=Fa("div",{display:"flex",flexDirection:"column",overflow:"hidden"}),hn=Fa("ul",{padding:0,margin:0,listStyle:"none",overflowY:"auto",paddingRight:"$5",".image-container":{borderRadius:"$xm",overflow:"hidden"}});import{ListItem as Km,Skeleton as Ua}from"@rango-dev/ui";import yn from"react";var jm=20;function za(){return yn.createElement(hn,null,Array.from(Array(jm),t=>yn.createElement(Km,{key:t,hasDivider:!0,start:yn.createElement(Ua,{variant:"circular",width:35,height:35}),title:yn.createElement(Ua,{variant:"text",size:"large",width:90})})))}i(za,"LoadingBlockchainList");function Br(t){let{list:e,searchedFor:o,onChange:n,blockchainCategory:r}=t,[s,a]=Jm(e),p=T.use.loadingStatus();Zm(()=>{a([...$a(e,o,r)])},[e,o,r]);let l=i(()=>!s.length&&o?Me.createElement(Me.Fragment,null,Me.createElement(qa,{size:32}),Me.createElement(Qm,{title:Ar.t("No results found"),description:Ar.t("Try using different keywords")})):Me.createElement(hn,{key:`${r}-${o}`},s.map(u=>Me.createElement(Rm,{key:`${u.name}-${u.chainId}`,hasDivider:!0,onClick:()=>n(u),start:Me.createElement(Ym,{src:u.logo,size:30}),title:Me.createElement(Ha,{variant:"title",size:"medium"},u.displayName),id:u.chainId}))),"renderList");return Me.createElement(Oa,null,Me.createElement(Ha,{variant:"label",size:"large"},Ar.t("Select Blockchain")),Me.createElement(qa,{size:4}),p==="loading"&&Me.createElement(za,null),p==="success"&&l())}i(Br,"BlockchainList");function Nr(t){let{type:e,supportedBlockchains:o}=t,{navigateBackFrom:n}=oe(),[r,s]=Va(""),[a,p]=Va("ALL"),l=M.use.setToBlockchain(),u=M.use.setFromBlockchain(),{meta:{blockchains:m},loadingStatus:g}=T(),f=o?T.use.meta().blockchains.filter(d=>o.includes(d.name)):T.use.meta().blockchains;return bt.createElement(Q,{header:{onBack:n.bind(null,h[`${e}Blockchain`]),title:Ga.t("Select Blockchain")}},bt.createElement(Wr,{size:12}),bt.createElement(ed,{setCategory:p,category:a,blockchains:m,isLoading:g==="loading"}),bt.createElement(Wr,{size:24}),bt.createElement(tt,{value:r,autoFocus:!0,placeholder:Ga.t("Search Blockchain"),color:"light",variant:"contained",size:"large",setValue:()=>s(""),onChange:d=>s(d.target.value)}),bt.createElement(Wr,{size:16}),bt.createElement(Br,{list:f,searchedFor:r,blockchainCategory:a,onChange:d=>{e==="from"?u(d,!0):l(d,!0),n(h[`${e}Blockchain`])}}))}i(Nr,"SelectBlockchainPage");import{i18n as ll}from"@lingui/core";import{Divider as pl}from"@rango-dev/ui";import zt,{useEffect as yd,useState as ul}from"react";import{useNavigate as Sd}from"react-router-dom";import{i18n as Ir}from"@lingui/core";import{BlockchainsChip as Sn,Divider as ja,Image as Ya,Skeleton as od,Typography as Mr}from"@rango-dev/ui";import Se,{useEffect as nd,useState as rd}from"react";var Xa=i(t=>{let e=[],o=[];for(let n of t)n.name==="ETH"||n.name==="COSMOS"||n.name==="OSMOSIS"?e.push(n):o.push(n);return e.concat(o)},"sortBlockchains");import{styled as td}from"@rango-dev/ui";var Ka=td("div",{display:"grid",gap:"$10",gridTemplateColumns:"repeat(6, minmax(0, 1fr))"});var id=9,Lr=10,sd=12;function Pr(t){let{blockchains:e,type:o,blockchain:n,onChange:r,onMoreClick:s}=t,a=Xa(e),[p,l]=rd(null),u=T.use.loadingStatus(),m=M.use.resetToBlockchain(),g=M.use.resetFromBlockchain(),f=p?id:Lr;return nd(()=>{let d=a.slice(Lr,a.length).find(y=>y.chainId===n?.chainId&&y.name===n?.name);d&&l(d)},[n]),Se.createElement("div",null,Se.createElement(ja,{size:12}),Se.createElement(Mr,{variant:"label",size:"large"},Ir.t("Select Blockchain")),Se.createElement(ja,{size:12}),Se.createElement(Ka,null,u==="loading"&&Array.from(Array(sd),d=>Se.createElement(od,{key:d,variant:"rounded",height:50})),u==="success"&&Se.createElement(Se.Fragment,null,Se.createElement(Sn,{selected:!n,onClick:()=>{o==="from"?g():m()}},Se.createElement(Mr,{variant:"body",size:"xsmall",color:"secondary500"},Ir.t("All"))),!!p&&Se.createElement(Sn,{selected:!!p&&p.chainId===n?.chainId,key:p.chainId,onClick:()=>r(p)},Se.createElement(Ya,{src:p.logo,size:30})),a.slice(0,f).map(d=>Se.createElement(Sn,{key:d.chainId,selected:!!n&&n.chainId===d.chainId,onClick:()=>r(d)},Se.createElement(Ya,{src:d.logo,size:30}))),Se.createElement(Sn,{onClick:s},Se.createElement(Mr,{variant:"body",size:"xsmall",color:"secondary500"},Ir._("More +{count}",{count:a.length-Lr}))))))}i(Pr,"BlockchainsSection");import{i18n as Fr}from"@lingui/core";import{darkTheme as ol,Divider as so,ExternalLinkIcon as pd,Image as ud,ListItemButton as cd,NotFound as md,PinIcon as dd,Skeleton as nl,Typography as ao,VirtualizedList as fd}from"@rango-dev/ui";import P,{forwardRef as gd,useEffect as rl,useState as il}from"react";import{Divider as el,ListItem as ld,Skeleton as io}from"@rango-dev/ui";import ze from"react";import{styled as Ke,Typography as ad}from"@rango-dev/ui";var Ra=Ke("div",{display:"flex",flexDirection:"column",flexGrow:1}),Dr=Ke("div",{display:"flex",alignItems:"center","._typography":{textOverflow:"ellipsis",whiteSpace:"nowrap",maxWidth:100,overflow:"hidden"}}),Cn=Ke("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:"$neutral800",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"}}}}}),_r=Ke("div",{paddingLeft:"$5",paddingRight:"$5",borderRadius:"$md",display:"flex",alignItems:"center"}),$r=Ke(ad,{}),Qa=Ke("div",{textAlign:"right"}),Tn=Ke("ul",{display:"flex",alignItems:"end",flexDirection:"column"}),Hx=Ke("div",{display:"flex",alignItems:"center"}),Za=Ke("div",{position:"relative",".image-container":{borderRadius:"$xm",overflow:"hidden"}}),Ja=Ke("div",{position:"absolute",backgroundColor:"$neutral100",padding:"$4",borderRadius:"50%",bottom:-6,right:-6});function tl(t){return ze.createElement(Cn,null,Array.from(Array(t.size),e=>ze.createElement(ld,{key:e,hasDivider:!0,start:ze.createElement(io,{variant:"circular",width:35,height:35}),end:ze.createElement(Tn,null,ze.createElement(io,{variant:"text",size:"large",width:70}),ze.createElement(el,{size:4}),ze.createElement(io,{variant:"text",size:"medium",width:50})),title:ze.createElement("div",null,ze.createElement(io,{variant:"text",size:"large",width:90}),ze.createElement(el,{size:4}),ze.createElement(io,{variant:"text",size:"medium",width:90}))})))}i(tl,"LoadingTokenList");var Or=20,hd=i(t=>{let{address:e,name:o,url:n,token:r,customCssForTag:s,customCssForTagTitle:a}=t,p=e.length;return P.createElement("div",{className:"description"},o?P.createElement("div",{className:"token-name"},o):P.createElement(Dr,{className:"token-title"},P.createElement(ao,{variant:"title",size:"xmedium"},r.symbol),P.createElement(so,{direction:"horizontal",size:4}),P.createElement(_r,{css:s},P.createElement($r,{variant:"body",size:"xsmall",css:a},r.blockchain))),!!e&&P.createElement("div",{className:`token-address ${!o&&"token-address-without-name"}`},P.createElement("a",{href:n,target:"_blank",rel:"nofollow noreferrer",onClick:l=>l.stopPropagation()},p>10?`${e.slice(0,5)}...${e.slice(p-6,p)}`:e," ",P.createElement(pd,{color:"gray",size:12}))))},"renderDesc");function sl(t){let{list:e,searchedFor:o="",onChange:n,selectedBlockchain:r}=t,[s,a]=il(e),p=T.use.loadingStatus(),[l,u]=il(!0),m=O.use.loading(),{blockchains:g}=T.use.meta(),f=gd((c,k)=>P.createElement("div",{...c,ref:k,style:{...c.style,height:`${parseFloat(c.style?.height)+8*2}px`}})),d=i(()=>{a(e.slice(0,s.length+Or))},"loadNextPage");rl(()=>{u(e.length>s.length)},[s.length]),rl(()=>{a(e.slice(0,Or))},[e]);let y=i(()=>!s.length&&o?P.createElement(P.Fragment,null,P.createElement(so,{size:32}),P.createElement(md,{title:Fr.t("No results found"),description:Fr.t("Try using different keywords")})):P.createElement(fd,{Item:({index:c,style:k})=>{let x=s[c].address||"",S=g.find(I=>I.name===s[c].blockchain),v=yi(s[c].symbol,S?.color||""),A={$$color:v[`${s[c].symbol}100`],[`.${ol} &`]:{$$color:v[`${s[c].symbol}900`]},backgroundColor:"$$color"},C={$$color:v[`${s[c].symbol}700`],[`.${ol} &`]:{$$color:v[`${s[c].symbol}100`]},color:"$$color"};return P.createElement("div",{style:{...k,paddingRight:5}},P.createElement(cd,{style:{height:k?.height},"tab-index":c,key:`${s[c].symbol}${s[c].address}`,id:`${s[c].symbol}${s[c].address}`,hasDivider:!0,onClick:()=>n(s[c]),start:P.createElement(Za,null,P.createElement(ud,{src:s[c].image,size:30}),s[c].pin&&P.createElement(Ja,null,P.createElement(dd,{size:12,color:"gray"}))),title:S?.type==="COSMOS"||s[c].name||!s[c].name&&!x?P.createElement(Dr,null,P.createElement(ao,{variant:"title",size:"xmedium"},s[c].symbol),P.createElement(so,{direction:"horizontal",size:4}),P.createElement(_r,{css:A},P.createElement($r,{variant:"body",size:"xsmall",css:C},s[c].blockchain))):void 0,description:S?.info&&x&&S.type!=="COSMOS"?hd({address:x,token:s[c],customCssForTag:A,customCssForTagTitle:C,name:s[c].name,url:S.info.addressUrl.split("{wallet}").join(x)}):s[c].name||void 0,end:m?P.createElement(Tn,null,P.createElement(nl,{variant:"text",size:"large",width:70}),P.createElement(so,{size:4}),P.createElement(nl,{variant:"text",size:"medium",width:50})):s[c]?.balance&&P.createElement(Qa,null,P.createElement(ao,{variant:"title",size:"small"},s[c].balance?.amount),P.createElement("div",null),s[c].balance?.usdValue&&P.createElement(ao,{variant:"body",color:"neutral800",size:"xsmall"},`$${s[c].balance?.usdValue}`))}))},hasNextPage:l,itemCount:s.length,loadNextPage:d,innerElementType:f,size:60,key:`${r}-${o}`}),"renderList");return P.createElement(Ra,null,P.createElement(ao,{variant:"label",size:"large"},Fr.t("Select Token")),P.createElement(so,{size:4}),p==="loading"&&P.createElement(tl,{size:Or}),p==="success"&&P.createElement(Cn,null,y()))}i(sl,"TokenList");var al=i((t,e)=>t.filter(o=>St(o.symbol,e)||St(o.address||"",e)||St(o.name||"",e)).sort((o,n)=>n.pin-o.pin),"filterTokens");function Ur(t){let{type:e,supportedBlockchains:o,supportedTokens:n,pinnedTokens:r}=t,[s,a]=ul(""),p=Sd(),{navigateBackFrom:l}=oe(),{meta:{tokens:u},setTokensWithBalance:m}=T(),{sourceTokens:g,destinationTokens:f,fromBlockchain:d,toBlockchain:y,setFromToken:c,setToToken:k,setFromBlockchain:x,setToBlockchain:S}=M(),{connectedWallets:v,loading:A}=O(),[C,I]=ul(""),D=o?T.use.meta().blockchains.filter($=>o.includes($.name)):T.use.meta().blockchains,W=n?Io(n,u):u.filter($=>new Set(D.map(b=>b.name)).has($.blockchain)),V=n?Io(n,g):g,R=n?Io(n,f):f,X=e==="from"?V:R,N=[];return e==="from"&&!d||e==="to"&&!y?N=W:X.length&&(N=X.map($=>({...$,pin:r?.some(b=>Pe(b,$))}))),yd(()=>{v.length&&!A&&m()},[v,A]),zt.createElement(Q,{header:{onBack:()=>l(e==="from"?h.fromSwap:h.toSwap),title:ll.t("Swap {type}",{type:e})}},zt.createElement(Pr,{blockchains:D,type:e,blockchain:e==="from"?d:y,onMoreClick:()=>p(e==="from"?h.fromBlockchain:h.toBlockchain),onChange:$=>{e==="from"?x($,!0):S($,!0),a($.name)}}),zt.createElement(pl,{size:24}),zt.createElement(tt,{value:C,autoFocus:!0,placeholder:ll.t("Search Token"),color:"light",variant:"contained",size:"large",setValue:()=>I(""),onChange:$=>I($.target.value)}),zt.createElement(pl,{size:16}),zt.createElement(sl,{list:al(N,C),selectedBlockchain:s,searchedFor:C,onChange:$=>{let b=D.find(ce=>$.blockchain===ce.name);e==="from"?(c($),b&&x(b,!0)):(k($),b&&S(b,!0)),l(h.fromSwap)}}))}i(Ur,"SelectSwapItemsPage");import{i18n as dt}from"@lingui/core";import{ChevronRightIcon as vn,Divider as Hr,InfoIcon as bd,List as xd,ListItemButton as Ed,Skeleton as Ad,Switch as Bd,Tooltip as Wd,Typography as ft}from"@rango-dev/ui";import H from"react";import{useNavigate as Nd}from"react-router-dom";import{i18n as gl}from"@lingui/core";import{Chip as Td,Divider as hl,InfoIcon as kd,TextField as wd,Tooltip as vd,Typography as yl}from"@rango-dev/ui";import xe from"react";import{styled as kn}from"@rango-dev/ui";var cl=kn("div",{paddingTop:"$5",paddingBottom:"30px"}),ml=kn("div",{display:"flex",alignItems:"center",justifyContent:"start"}),dl=kn("div",{display:"flex",justifyContent:"start",alignItems:"center",paddingBottom:"$10"}),wn=kn("div",{maxWidth:"300px",padding:"$10"});import{i18n as zr}from"@lingui/core";import{Typography as Cd}from"@rango-dev/ui";import lo from"react";function fl(){return lo.createElement(wn,null,lo.createElement(Cd,{variant:"label",size:"medium",color:"neutral900"},zr.t("Your transaction will be reverted if the price changes unfavorably by more than this percentage"),lo.createElement("br",null),lo.createElement("br",null),lo.createElement("b",null,zr.t("Warning")),":",zr.t("This setting is applied per step, e.g. 1Inch, Thorchain, etc. and only that step will be reverted, not the whole transaction")))}i(fl,"SlippageTooltipContent");function qr(){let t=q.use.slippage(),e=q.use.setSlippage(),o=q.use.customSlippage(),n=q.use.setCustomSlippage();return xe.createElement(cl,null,xe.createElement(dl,null,xe.createElement(yl,{variant:"title",size:"xmedium"},gl.t("Slippage tolerance per swap")),xe.createElement(hl,{direction:"horizontal",size:4}),xe.createElement(vd,{container:se(),side:"top",content:xe.createElement(fl,null)},xe.createElement(kd,{color:"gray"}))),xe.createElement(ml,null,is.map((r,s)=>{let a=`slippage-${s}`;return xe.createElement(xe.Fragment,null,xe.createElement(Td,{style:{width:"64px",flexShrink:0},key:a,onClick:()=>{o&&n(null),e(r)},selected:!o&&r===t,label:`${r.toString()}%`}),xe.createElement(hl,{direction:"horizontal",size:8}))}),xe.createElement(wd,{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>=ps&&s<=ls)&&n(s)},suffix:o&&xe.createElement(yl,{variant:"body",size:"small"},"%"),placeholder:gl.t("Custom")})))}i(qr,"Slippage");function Sl({supportedSwappers:t,singleTheme:e}){let o=Nd(),{navigateBackFrom:n}=oe(),r=q.use.infiniteApprove(),s=q.use.toggleInfiniteApprove(),a=T.use.loadingStatus(),p=fn(t),l=p.filter(C=>C.type==="BRIDGE"||C.type==="AGGREGATOR"),u=l.length,m=l.filter(C=>C.selected).length,g=p.filter(C=>C.type==="DEX"),f=g.length,d=g.filter(C=>C.selected).length,y=i((C,I)=>{switch(a){case"loading":return H.createElement(Ad,{variant:"text",size:"medium",width:50});case"failed":return H.createElement(ft,{variant:"body",size:"medium",color:"$error500"},dt.t("Loading failed"));default:return H.createElement(ft,{variant:"body",size:"medium"},`${C} / ${I}`)}},"handleEndItem"),c={id:"bridge-item",title:H.createElement(ft,{variant:"title",size:"xmedium"},dt.t("Enabled bridges")),end:H.createElement(H.Fragment,null,y(m,u),H.createElement(Hr,{direction:"horizontal",size:8}),H.createElement(vn,{color:"black"})),onClick:()=>o(h.bridges)},k={id:"exchange-item",title:H.createElement(ft,{variant:"title",size:"xmedium"},dt.t("Enabled exchanges")),end:H.createElement(H.Fragment,null,y(d,f),H.createElement(Hr,{direction:"horizontal",size:8}),H.createElement(vn,{color:"gray"})),onClick:()=>o(h.exchanges)},x={id:"language-item",title:H.createElement(ft,{variant:"title",size:"xmedium"},dt.t("Language")),end:H.createElement(vn,{color:"gray"}),onClick:()=>o(h.languages)},S={id:"theme-item",title:H.createElement(ft,{variant:"title",size:"xmedium"},dt.t("Theme")),end:H.createElement(vn,{color:"gray"}),onClick:()=>o(h.themes)},v={id:"infinite-approval-item",title:H.createElement(H.Fragment,null,H.createElement(ft,{variant:"title",size:"xmedium"},dt.t("Infinite Approval")),H.createElement(Hr,{direction:"horizontal",size:4}),H.createElement(Wd,{side:"top",container:se(),content:H.createElement(wn,null,H.createElement(ft,{variant:"label",size:"medium",color:"neutral900"},dt.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.")))},H.createElement(bd,{color:"gray"}))),end:H.createElement(Bd,{checked:r}),onClick:s},A=[c,k,x];return e||A.push(S),A.push(v),H.createElement(Q,{header:{onBack:n.bind(null,h.settings),title:dt.t("Setting")}},H.createElement(ot,null,H.createElement(qr,null),H.createElement(xd,{type:H.createElement(Ed,{title:"_",id:"_",onClick:()=>console.log()}),items:A})))}i(Sl,"SettingsPage");import{cancelSwap as Ef}from"@rango-dev/queue-manager-rango-preset";import{useManager as Af}from"@rango-dev/queue-manager-react";import Rl from"react";import{i18n as nt}from"@lingui/core";import{getCurrentBlockchainOfOrNull as sf,getCurrentStep as af,getRelatedWalletOrNull as lf,PendingSwapNetworkStatus as Ln}from"@rango-dev/queue-manager-rango-preset";import{Button as ql,CopyIcon as pf,Divider as uf,IconButton as cf,RouteCost as mf,RouteSummary as df,StepDetails as ff,Typography as Ht,useCopyToClipboard as gf}from"@rango-dev/ui";import{useWallets as hf}from"@rango-dev/wallets-react";import Z,{useEffect as Hl,useRef as yf,useState as Gl}from"react";import{useNavigate as Sf}from"react-router-dom";import{i18n as Ee}from"@lingui/core";var Id=1e3,Md=31536e3,Ld=2592e3,Pd=86400,Dd=3600,_d=60;function Cl(t){let e=Math.floor((Date.now()-t)/Id),n=[{turningPoint:Md,label:Ee.t("year"),pluralLabel:Ee.t("years")},{turningPoint:Ld,label:Ee.t("month"),pluralLabel:Ee.t("months")},{turningPoint:Pd,label:Ee.t("day"),pluralLabel:Ee.t("days")},{turningPoint:Dd,label:Ee.t("hour"),pluralLabel:Ee.t("hours")},{turningPoint:_d,label:Ee.t("minute"),pluralLabel:Ee.t("minutes")}].sort((r,s)=>s.turningPoint-r.turningPoint);for(let r of n){let{turningPoint:s,label:a,pluralLabel:p}=r,l=Math.floor(e/s);if(l>1)return`${l} ${p}`;if(l===1)return`${l} ${a}`}return e>1?`${e} ${Ee.t("seconds")}`:`${e} ${Ee.t("second")}`}i(Cl,"timeSince");function Tl(t){return t.finishTime?Ee.t({id:"timeAgo",message:"{time} ago",values:{time:Cl(parseInt(t.finishTime))}}):Ee.t({id:"timeAgo",message:"{time} ago",values:{time:Cl(parseInt(t.creationTime))}})}i(Tl,"getSwapDate");import{PendingSwapNetworkStatus as En}from"@rango-dev/queue-manager-rango-preset";import{Modal as Hd}from"@rango-dev/ui";import An from"react";import{i18n as bn}from"@lingui/core";import{Button as kl,Divider as Gr,MessageBox as $d,Typography as wl}from"@rango-dev/ui";import je from"react";var vl=i(({onCancel:t,onClose:e})=>je.createElement(je.Fragment,null,je.createElement(Gr,{size:20}),je.createElement($d,{type:"error",title:bn.t("Transaction Cancel"),description:bn.t("Are you sure you want to Cancel this swap?")}),je.createElement(Gr,{size:32}),je.createElement(kl,{variant:"contained",type:"primary",size:"large",onClick:t},je.createElement(wl,{variant:"title",size:"medium",color:"neutral100"},bn.t("Yes, Cancel it"))),je.createElement(Gr,{size:12}),je.createElement(kl,{variant:"outlined",type:"primary",size:"large",onClick:e},je.createElement(wl,{variant:"title",size:"medium",color:"primary"},bn.t("No, Continue")))),"CancelContent");import{i18n as xn}from"@lingui/core";import{Button as bl,Divider as Vr,MessageBox as Fd,Typography as xl}from"@rango-dev/ui";import Ye from"react";var El=i(({onDelete:t,onClose:e})=>Ye.createElement(Ye.Fragment,null,Ye.createElement(Vr,{size:20}),Ye.createElement(Fd,{type:"error",title:xn.t("Delete Transaction"),description:xn.t("Are you sure you want to delete this swap?")}),Ye.createElement(Vr,{size:32}),Ye.createElement(bl,{variant:"contained",type:"primary",size:"large",onClick:t},Ye.createElement(xl,{variant:"title",size:"medium",color:"neutral100"},xn.t("Yes, Delete it"))),Ye.createElement(Vr,{size:12}),Ye.createElement(bl,{variant:"outlined",type:"primary",size:"large",onClick:e},Ye.createElement(xl,{variant:"title",size:"medium",color:"primary"},xn.t("No, Cancel")))),"DeleteContent");import{i18n as Xr}from"@lingui/core";import{PendingSwapNetworkStatus as Kr}from"@rango-dev/queue-manager-rango-preset";var jr={[Kr.WaitingForNetworkChange]:{type:"loading",title:Xr.t("Change Network")},[Kr.WaitingForConnectingWallet]:{type:"warning",title:Xr.t("Connect Wallet")},[Kr.NetworkChanged]:{type:"success",title:Xr.t("Network Changed")}};import{MessageBox as Ud,Wallet as zd,WalletState as Bl}from"@rango-dev/ui";import{useWallets as qd}from"@rango-dev/wallets-react";import po from"react";import{styled as Od}from"@rango-dev/ui";var Al=Od("div",{display:"flex",justifyContent:"center"});var Wl=i(t=>{let{type:e,title:o,currentStepWallet:n,message:r,showWalletButton:s}=t,{connect:a,getWalletInfo:p,state:l}=qd(),u=n?.walletType,g=u&&l(u).connected?Bl.CONNECTED:Bl.DISCONNECTED;return po.createElement(po.Fragment,null,po.createElement(Ud,{type:e,title:o,description:r}),s&&u&&po.createElement(Al,null,po.createElement(zd,{container:se(),title:p(u).name,image:p(u).img,type:u,state:g,onClick:async()=>a(u)})))},"WalletStateContent");function Yr(t){let{state:e,onClose:o,onDelete:n,onCancel:r,currentStepWallet:s,message:a}=t,p=e===En.WaitingForNetworkChange||e===En.WaitingForConnectingWallet||e===En.NetworkChanged;return An.createElement(Hd,{open:!!e,onClose:o,container:document.getElementById("swap-box")||document.body},p&&An.createElement(Wl,{type:jr[e].type,title:jr[e].title,currentStepWallet:s,message:a,showWalletButton:e!==En.WaitingForNetworkChange}),e==="delete"&&An.createElement(El,{onClose:o,onDelete:n}),e==="cancel"&&An.createElement(vl,{onClose:o,onCancel:r}))}i(Yr,"SwapDetailsModal");import{i18n as uo}from"@lingui/core";import{Button as Rr,Divider as Bn,MessageBox as Nl,Modal as Gd,TokenAmount as Vd,Typography as Wn}from"@rango-dev/ui";import fe from"react";import{useNavigate as Xd}from"react-router-dom";function Qr(t){let{open:e,onClose:o,status:n,priceValue:r,usdValue:s,token:a,chain:p,percentageChange:l,description:u,diagnosisUrl:m}=t,g=Xd();return fe.createElement(Gd,{open:e,onClose:o,container:document.getElementById("swap-box")||document.body},n==="success"?fe.createElement(Nl,{type:"success",title:uo.t("Swap Successful")},fe.createElement(Vd,{direction:"vertical",type:"output",centerAlign:!0,price:{value:r,usdValue:s},token:a,chain:p,percentageChange:l}),fe.createElement(Bn,{size:12}),fe.createElement(Wn,{variant:"body",size:"medium",color:"neutral900",align:"center"},u)):fe.createElement(Nl,{type:"error",title:uo.t("Transaction Failed"),description:u}),fe.createElement(Bn,{size:32}),n==="success"&&fe.createElement(Rr,{variant:"contained",type:"primary",size:"large",onClick:()=>g(h.home)},fe.createElement(Wn,{variant:"title",size:"medium",color:"neutral100"},uo.t("Done"))),fe.createElement(Bn,{size:12}),m&&fe.createElement(fe.Fragment,null,fe.createElement(Rr,{variant:"contained",type:"primary",size:"large",onClick:()=>window.open(m,"_blank")},fe.createElement(Wn,{variant:"title",size:"medium",color:"primary"},uo.t("Diagnosis"))),fe.createElement(Bn,{size:12})),fe.createElement(Rr,{variant:"outlined",type:"primary",size:"large",onClick:o},fe.createElement(Wn,{variant:"title",size:"medium",color:"primary"},uo.t("See Details"))))}i(Qr,"SwapDetailsCompleteModal");import nf from"react";import{i18n as Jd}from"@lingui/core";import{Alert as _l,IconButton as ef,LinkIcon as tf}from"@rango-dev/ui";import gt,{Fragment as of}from"react";import{Alert as Kd,ChevronDownIcon as jd,ChevronUpIcon as Yd,IconButton as Rd}from"@rango-dev/ui";import Nn,{useState as Qd}from"react";function Il(t){let{message:e}=t,[o,n]=Qd(!1);return Nn.createElement(Kd,{type:"error",title:e.shortMessage,action:e.detailedMessage.content&&Nn.createElement(Rd,{onClick:()=>n(r=>!r),variant:"ghost",size:"xsmall"},o?Nn.createElement(Yd,{size:12,color:"gray"}):Nn.createElement(jd,{size:12,color:"gray"})),footer:o?e.detailedMessage.content:void 0})}i(Il,"FailedAlert");import{styled as Zd}from"@rango-dev/ui";var Ml=Zd("div",{display:"flex",flexDirection:"column",gap:"$10"});import{i18n as Ll}from"@lingui/core";import{PendingSwapNetworkStatus as Zr}from"@rango-dev/queue-manager-rango-preset";import{Alert as Jr,Button as Pl}from"@rango-dev/ui";import co from"react";function Dl(t){let{switchNetwork:e,setNetworkModal:o,message:n,showNetworkModal:r}=t;return e?co.createElement(Jr,{type:"warning",title:n.shortMessage,action:co.createElement(Pl,{size:"xxsmall",type:"warning",onClick:()=>{o(Zr.WaitingForNetworkChange),e().catch(s=>{console.log(s)})}},Ll.t("Change"))}):r===Zr.WaitingForConnectingWallet?co.createElement(Jr,{type:"warning",title:n.shortMessage,action:co.createElement(Pl,{size:"xxsmall",type:"warning",onClick:()=>{o(Zr.WaitingForConnectingWallet)}},Ll.t("Connect"))}):co.createElement(Jr,{type:"warning",title:n.shortMessage})}i(Dl,"WarningAlert");function ei(t){let{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r,step:s,hasAlreadyProceededToSign:a}=t,p=jt(s),l=s.status==="waitingForApproval"&&!p,u=s.status==="running"&&!p;return gt.createElement(Ml,null,s.explorerUrl?.map((m,g,f)=>{let d=g+m.url,y=g===f.length-1,c=y&&u||l,k=y&&s.status==="failed";return gt.createElement(of,{key:d},gt.createElement(_l,{type:c&&"loading"||k&&"error"||"success",title:m.description?`${m.description} Tx`:Jd.t("View transaction"),action:m.url&&gt.createElement(ef,{variant:"ghost",size:"xsmall",onClick:()=>window.open(m.url,"_blank")},gt.createElement(tf,{size:16}))}))}),(u&&!a||l&&!s.explorerUrl?.length)&&gt.createElement(_l,{type:"loading",title:r.shortMessage}),s.status!=="failed"&&p&&gt.createElement(Dl,{switchNetwork:e,showNetworkModal:o,setNetworkModal:n,message:r}),s.status==="failed"&&gt.createElement(Il,{message:r}))}i(ei,"SwapDetailsAlerts");var $l=2e3;var Fl=i(({swap:t,...e})=>{let o=t.hasAlreadyProceededToSign!==!1;return t.steps.map((n,r)=>{let s=r===0?t.inputAmount:t.steps[r-1].outputAmount;return{from:{token:{displayName:n.fromSymbol,image:n.fromLogo||""},chain:{displayName:n.fromBlockchain,image:n.fromBlockchainLogo||""},price:{value:w(s,6,6)}},to:{token:{displayName:n.toSymbol,image:n.toLogo},chain:{displayName:n.toBlockchain,image:n.toBlockchainLogo||""},price:{value:w(n.outputAmount||n.expectedOutputAmountHumanReadable,6,6)}},swapper:{displayName:n.swapperId,image:n.swapperLogo||""},alerts:nf.createElement(ei,{step:n,hasAlreadyProceededToSign:o,...e})}})},"getSteps");function Ol(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"}}i(Ol,"getStepState");import{darkTheme as rf,styled as qt}from"@rango-dev/ui";var In=qt("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",[`.${rf} &`]:{$$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"}}),Mn=qt("div",{width:"100%"}),Ul=qt("div",{padding:"$0 $20 $20 $20",width:"100%",overflow:"auto"}),N0=qt("div",{display:"flex",flexDirection:"column",gap:"$10"}),zl=qt("div",{height:"450px",display:"flex",alignItems:"center",justifyContent:"center"}),I0=qt("div",{display:"flex",justifyContent:"center",width:"100%",paddingTop:"33%",flex:1});function ti(t){let{swap:e,requestId:o,onDelete:n,onCancel:r}=t,{canSwitchNetworkTo:s,connect:a,getWalletInfo:p}=hf(),l=M.use.retry(),u=Sf(),{navigateBackFrom:m}=oe(),[g,f]=gf($l),d=yf(null),[y,c]=Gl(null),[k,x]=Gl(null),{meta:{tokens:S}}=T(),v=i(()=>{r(),c(null)},"onCancel"),A=Ie.use.getUnreadNotifications(),C=Ie.use.setAsRead(),I=A(),D=af(e),W=D?.networkStatus;Hl(()=>{I.find(_=>_.requestId===e.requestId)&&(e.status==="success"||e.status==="failed")&&(x(e.status),C(e.requestId))},[e.status]),Hl(()=>{b?c(Ln.WaitingForNetworkChange):W===Ln.WaitingForConnectingWallet||W===Ln.NetworkChanged?c(W):c(null)},[W]);let V=Vi(e),R=D?sf(e,D):null,X=D?lf(e,D):null,N=Tl(e),U=Xi(e),$=i(F=>!!p(F)?.mobileWallet,"isMobileWallet"),b=W===Ln.WaitingForNetworkChange&&!!R&&!!X?.walletType&&($(X.walletType)||s(X.walletType,R)),ce=b?a.bind(null,X.walletType,R):void 0,we=Gi(e,D),z=Fl({swap:e,switchNetwork:ce,showNetworkModal:W,setNetworkModal:c,message:we}),re=z.length,[le,me]=[e.steps[0],e.steps[re-1]],qe=me.outputAmount||me.expectedOutputAmountHumanReadable,ie=e.steps.reduce((F,_)=>F+parseFloat(_.feeInUsd||""),0),it=e.steps.find(F=>F.diagnosisUrl)?.diagnosisUrl,st=w(String(parseFloat(w(qe,6,6))*(Ao(me.toBlockchain,me.toSymbol,me.toSymbolAddress,S)||0)),4,4),ht=w(String(parseFloat(e.inputAmount)*(Ao(le.fromBlockchain,le.fromSymbol,le.fromSymbolAddress,S)||0)),4,4),at=Re(ht,st),B=e.status==="success"?nt.t({id:"receivedMessage",message:"You have received {amount} {token} in {conciseAddress} wallet on {chain} chain.",values:{amount:w(qe,6,6),token:z[re-1].to.token.displayName,conciseAddress:Wo(e.wallets[z[re-1].to.chain.displayName]?.address||""),chain:z[re-1].to.chain.displayName}}):`${nt.t("Transaction was not sent.")} ${V?nt.t({id:"remainSymbol",message:"{amount} {symbol} on {blockchain} remain in your wallet",values:{amount:V.outputAmount,symbol:V.symbol,blockchain:V.blockchain}}):""}`;return Z.createElement(Q,{noPadding:!0,header:{title:nt.t("Swap and Bridge"),onBack:m.bind(null,h.swapDetails),onCancel:e.status==="running"?()=>c("cancel"):void 0,suffix:e.status!=="running"&&Z.createElement(xt,null,Z.createElement(ql,{variant:"ghost",type:"error",size:"xsmall",onClick:()=>c("delete")},Z.createElement(Ht,{size:"medium",variant:"label",color:"error"},nt.t("Delete"))))},footer:U&&!k&&Z.createElement(ql,{fullWidth:!0,variant:"contained",type:"primary",size:"large",onClick:()=>{l(e),setTimeout(()=>{u(h.home)},0)}},nt.t("Try again"))},Z.createElement(In,null,Z.createElement(Mn,null,Z.createElement("div",{className:"row"},Z.createElement(Ht,{variant:"label",size:"large",color:"neutral900"},`${nt.t("Request ID")}:`),Z.createElement("div",{className:"request-id"},Z.createElement(Ht,{variant:"label",size:"small",color:"neutral900"},o),Z.createElement(cf,{variant:"ghost",onClick:f.bind(null,o||"")},Z.createElement(pf,{size:16,color:"gray"})))),Z.createElement("div",{className:"row"},Z.createElement(Ht,{variant:"label",size:"large",color:"neutral900"},`${nt.t("Created at")}:`),Z.createElement(Ht,{variant:"label",size:"small",color:"neutral900"},N))),Z.createElement("div",{className:"output"},Z.createElement(mf,{fee:w(String(ie),2,2),time:At(Bt(e.steps)),steps:re}),Z.createElement(df,{from:{price:{value:w(e.inputAmount,6,6),usdValue:ht},token:{displayName:z[0].from.token.displayName,image:z[0].from.token.image},chain:{image:z[0].from.chain.image,displayName:z[0].from.chain.displayName}},to:{price:{value:w(qe,6,6),usdValue:st},token:{displayName:z[re-1].to.token.displayName,image:z[re-1].to.token.image},chain:{image:z[re-1].to.chain.image,displayName:z[re-1].to.chain.displayName}},percentageChange:w(at,2,2),warningLevel:Mt(at?.toNumber()??0)})),Z.createElement("div",{className:"title-steps"},Z.createElement(Ht,{variant:"title",size:"small"},nt.t("Swaps steps"))),Z.createElement(uf,{size:8}),Z.createElement(Ul,{ref:d},z.map((F,_)=>{let ee=_,pe=Ol(e.steps[_]),He=pe==="error"||pe==="in-progress"||pe==="warning"||pe==="completed"&&_===z.length-1;return Z.createElement(ff,{key:ee,step:F,type:"route-progress",ref:d,state:pe,hasSeparator:_!==0,tabIndex:ee,isFocused:He})}))),Z.createElement(Yr,{state:y,onClose:()=>c(null),onCancel:v,onDelete:n,message:we.detailedMessage.content,currentStepWallet:X}),Z.createElement(Qr,{open:!!k,diagnosisUrl:it,onClose:()=>x(null),status:e.status==="success"?"success":"failed",priceValue:w(qe,6,6),usdValue:st,percentageChange:w(at,2,2),token:{displayName:z[re-1].to.token.displayName,image:z[re-1].to.token.image},chain:{image:z[re-1].to.chain.image},description:B}))}i(ti,"SwapDetails");import{i18n as yo}from"@lingui/core";import{CopyIcon as vf,IconButton as bf,NotFound as xf,Skeleton as jl,Typography as Dn}from"@rango-dev/ui";import ue from"react";import{i18n as Tf}from"@lingui/core";import{ChainToken as kf,Divider as ni,Skeleton as ho,Typography as wf}from"@rango-dev/ui";import J from"react";import{styled as oi}from"@rango-dev/ui";var Vl=oi("div",{width:"100%",height:"100%",padding:"$0 $20",".cost":{paddingTop:"$15",display:"flex"},".route-summary":{padding:"$15 $0"},".route-summary-item":{display:"flex",justifyContent:"space-between",alignItems:"center"},".token-amount":{display:"flex",justifyContent:"space-between",alignItems:"center"},".route-summary-separator":{width:"0px",height:"$16",borderLeft:"1px solid $neutral400",marginLeft:"13px"},".swaps-steps":{paddingBottom:"$10"}}),Xl=oi("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"}}),Pn=oi("div",{width:"0px",height:"$20",borderLeft:"1px dashed $neutral900",marginLeft:"25px"});import{ChainToken as Kl,Divider as mo,NextIcon as Cf,Skeleton as fo}from"@rango-dev/ui";import ae from"react";function go(t){let{extraInfo:e}=t;return ae.createElement(Xl,null,ae.createElement("div",{className:"step-title"},ae.createElement(fo,{height:28,width:28,variant:"circular"}),ae.createElement(mo,{direction:"horizontal",size:8}),ae.createElement(fo,{height:15,width:148,variant:"rounded"})),ae.createElement("div",{className:"step-tokens"},ae.createElement(mo,{direction:"horizontal",size:20}),ae.createElement("div",{className:"step-token-info"},ae.createElement(Kl,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(mo,{direction:"horizontal",size:8}),ae.createElement(fo,{height:12,width:76,variant:"rounded"})),ae.createElement("div",{className:"step-icon-container"},ae.createElement(Cf,{color:"gray",size:16})),ae.createElement("div",{className:"step-token-info"},ae.createElement(Kl,{size:"small",loading:!0,chainImage:"",tokenImage:""}),ae.createElement(mo,{direction:"horizontal",size:8}),ae.createElement(fo,{height:12,width:76,variant:"rounded"}))),e&&ae.createElement("div",{className:"extra-info"},ae.createElement(mo,{direction:"horizontal",size:20}),ae.createElement(fo,{height:22,width:297,variant:"rectangular"})))}i(go,"LoadingSwapDetailStep");function ri(){let t=J.createElement("div",{className:"route-summary-item"},J.createElement("div",{className:"token-amount"},J.createElement(kf,{loading:!0,size:"medium",chainImage:"",tokenImage:""}),J.createElement(ni,{size:8,direction:"horizontal"}),J.createElement(ho,{height:15,width:148,variant:"rounded"})),J.createElement(ho,{height:12,width:64,variant:"rounded"}));return J.createElement(Vl,null,J.createElement("div",{className:"cost"},J.createElement(ho,{width:60,height:10,variant:"rounded"}),J.createElement(ni,{size:4,direction:"horizontal"}),J.createElement(ho,{width:60,height:10,variant:"rounded"}),J.createElement(ni,{size:4,direction:"horizontal"}),J.createElement(ho,{width:60,height:10,variant:"rounded"})),J.createElement("div",{className:"route-summary"},t,J.createElement("div",{className:"route-summary-separator"}),t),J.createElement("div",{className:"swaps-steps"},J.createElement(wf,{variant:"title",size:"small"},Tf.t("Swaps steps"))),J.createElement("div",{className:"step-container"},J.createElement(go,{extraInfo:!0}),J.createElement(Pn,null),J.createElement(go,null),J.createElement(Pn,null),J.createElement(go,null),J.createElement(Pn,null),J.createElement(go,null)))}i(ri,"LoadingSwapDetails");function Yl(t){let{requestId:e,showSkeleton:o}=t,{navigateBackFrom:n}=oe();return ue.createElement(Q,{noPadding:!0,header:{title:yo.t("Swap and Bridge"),onBack:n.bind(null,h.swapDetails),suffix:ue.createElement(xt,null)}},o&&ue.createElement(In,null,ue.createElement(Mn,null,ue.createElement("div",{className:"row"},ue.createElement(Dn,{variant:"label",size:"large",color:"neutral900"},`${yo.t("Request ID")}:`),ue.createElement("div",{className:"request-id"},ue.createElement(Dn,{variant:"label",size:"small",color:"neutral900"},ue.createElement(jl,{width:60,height:10,variant:"rounded"})),ue.createElement(bf,{variant:"ghost"},ue.createElement(vf,{size:16,color:"gray"})))),ue.createElement("div",{className:"row"},ue.createElement(Dn,{variant:"label",size:"large",color:"neutral900"},`${yo.t("Created at")}:`),ue.createElement(Dn,{variant:"label",size:"small",color:"neutral900"},ue.createElement(jl,{width:60,height:10,variant:"rounded"})))),ue.createElement(ri,null)),!o&&ue.createElement(zl,null,ue.createElement(xf,{title:yo.t("Not found"),description:yo.t({id:"swapNotFound",values:{requestId:e},message:"Swap with request ID = {requestId} not found."})})))}i(Yl,"SwapDetailsPlaceholder");function Ql(){let{manager:t,state:e}=Af(),o=!e.loadedFromPersistor,n=cn(t),r=be.use.selectedSwapRequestId(),{navigateBackFrom:s}=oe(),{loadingStatus:a}=T(),p=o||a==="loading",l=n.find(({swap:f})=>f.requestId===r),u=i(()=>{if(l?.id){let f=t?.get(l.id);f&&Ef(f)}},"onCancel"),m=i(async()=>{if(l?.id)try{await t?.deleteQueue(l.id),s(h.swapDetails)}catch(f){console.log(f)}},"onDelete"),g=l?.swap;return!g||p?Rl.createElement(Yl,{requestId:r||"",showSkeleton:p}):Rl.createElement(ti,{swap:g,requestId:r||"",onCancel:u,onDelete:m})}i(Ql,"SwapDetailsPage");import{i18n as So}from"@lingui/core";import{AutoThemeIcon as Bf,DarkModeIcon as Wf,LightModeIcon as Nf,List as If,ListItemButton as Mf,Radio as ii,RadioRoot as Lf,Typography as si}from"@rango-dev/ui";import Ae from"react";function Zl(){let{navigateBackFrom:t}=oe(),e=q.use.theme(),o=q.use.setTheme(),n=[{id:"light",value:"light",title:Ae.createElement(si,{variant:"title",size:"xmedium"},So.t("Light")),onClick:()=>o("light"),start:Ae.createElement(Nf,{color:"gray"}),end:Ae.createElement(ii,{value:"light"})},{id:"dark",value:"dark",title:Ae.createElement(si,{variant:"title",size:"xmedium"},So.t("Dark")),onClick:()=>o("dark"),start:Ae.createElement(Wf,{color:"gray"}),end:Ae.createElement(ii,{value:"dark"})},{id:"auto",value:"auto",title:Ae.createElement(si,{variant:"title",size:"xmedium"},So.t("Auto")),onClick:()=>o("auto"),start:Ae.createElement(Bf,{color:"gray"}),end:Ae.createElement(ii,{value:"auto"})}];return Ae.createElement(Q,{header:{onBack:t.bind(null,h.settings),title:So.t("Theme")}},Ae.createElement(ot,null,Ae.createElement(Lf,{onValueChange:r=>o(r),value:e},Ae.createElement(If,{type:Ae.createElement(Mf,{title:So.t("Theme"),id:"_",onClick:()=>console.log()}),items:n}))))}i(Zl,"ThemePage");var Df=i(t=>t.replace("/",""),"getAbsolutePath");function Jl(t){let{config:e}=t;return Pf([{path:h.home,element:Be.createElement(Zo,null)},{path:h.fromSwap,element:Be.createElement(Ur,{type:"from",supportedBlockchains:e?.from?.blockchains,supportedTokens:e?.from?.tokens,pinnedTokens:e?.pinnedTokens})},{path:h.toSwap,element:Be.createElement(Ur,{type:"to",supportedBlockchains:e?.to?.blockchains,supportedTokens:e?.to?.tokens,pinnedTokens:e?.pinnedTokens})},{path:h.fromBlockchain,element:Be.createElement(Nr,{type:"from",supportedBlockchains:e?.to?.blockchains})},{path:h.toBlockchain,element:Be.createElement(Nr,{type:"to",supportedBlockchains:e?.to?.blockchains})},{path:h.settings,element:Be.createElement(Sl,{singleTheme:e?.theme?.singleTheme,supportedSwappers:e?.liquiditySources})},{path:h.themes,element:Be.createElement(Zl,null)},{path:h.languages,element:Be.createElement(Pa,null)},{path:h.exchanges,element:Be.createElement(xr,{sourceType:"Exchanges",supportedSwappers:e?.liquiditySources})},{path:h.bridges,element:Be.createElement(xr,{sourceType:"Bridges",supportedSwappers:e?.liquiditySources})},{path:h.swaps,element:Be.createElement(La,null)},{path:h.swapDetails,element:Be.createElement(Ql,null)},{path:h.wallets,element:Be.createElement(sa,{supportedWallets:e?.wallets,multiWallets:typeof e?.multiWallets>"u"?!0:e.multiWallets,config:e})},{path:Df(h.confirmSwap),element:Be.createElement(va,{config:e})}])}i(Jl,"AppRoutes");import{isApprovalTX as _f,MainEvents as tp,RouteEventType as op,StepEventType as Gt,StepExecutionEventStatus as $f,useEvents as Ff}from"@rango-dev/queue-manager-rango-preset";import{useEffect as np}from"react";import{StepExecutionBlockedEventStatus as ai}from"@rango-dev/queue-manager-rango-preset";var ep=[ai.WAITING_FOR_CHANGE_WALLET_ACCOUNT,ai.WAITING_FOR_NETWORK_CHANGE,ai.WAITING_FOR_WALLET_CONNECT];function rp(){let t=O.use.connectedWallets(),e=O.use.getWalletsDetails(),o=Ie.use.setNotification(),n=Ie.use.setAsRead(),r=Ff();return np(()=>(r.on(tp.StepEvent,s=>{let{event:a,step:p,route:l}=s;if(a.type===Gt.TX_EXECUTION&&a.status===$f.TX_SENT&&!_f(p)||a.type===Gt.SUCCEEDED){let m=t.find(f=>f.chain===p?.fromBlockchain),g=p?.fromBlockchain!==p?.toBlockchain&&t.find(f=>f.chain===p?.toBlockchain);m&&e([m]),g&&e([g])}a.type===Gt.TX_EXECUTION_BLOCKED&&ep.includes(a.status)||a.type===Gt.FAILED?o(a,l):(a.type===Gt.TX_EXECUTION||a.type===Gt.CHECK_STATUS)&&n(l.requestId)}),()=>r.all.clear()),[r,t.length]),np(()=>(r.on(tp.RouteEvent,s=>{let{event:a,route:p}=s;(a.type===op.FAILED||a.type===op.SUCCEEDED)&&o(a,p)}),()=>r.all.clear()),[r,t.length]),null}i(rp,"WidgetEvents");import{globalCss as Of}from"@rango-dev/ui";var ip=i(()=>Of({"@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 Uf,darkTheme as zf,lightTheme as qf}from"@rango-dev/ui";import{useEffect as sp,useState as Hf}from"react";function ap({fontFamily:t="Roboto",borderRadius:e=Ci,secondaryBorderRadius:o=Ti,mode:n="auto"}){let r=q.use.theme(),s=T.use.fetchMeta(),a=q.use.setTheme(),p=Uf({radii:{primary:`${e}px`,secondary:`${o}px`},fonts:{widget:t}}),l=`${p.className} ${qf.className}`,u=`${p.className} ${zf.className}`,[m,g]=Hf("light");return sp(()=>{i(async()=>{await s()},"fetchData")();let y=i(c=>{c.matches?g("dark"):g("light")},"switchTheme");return window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches&&g("dark"),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",y),()=>{window.matchMedia("(prefers-color-scheme: dark)").removeEventListener("change",y)}},[]),sp(()=>{n!=="auto"&&a(n)},[n]),{activeTheme:i(()=>r==="auto"?m==="dark"?u:l:r==="dark"?u:l,"getActiveTheme")()}}i(ap,"useTheme");import Gf,{useMemo as Vf}from"react";import{Provider as Xf}from"@rango-dev/queue-manager-react";import{makeQueueDefinition as Kf,checkWaitingForNetworkChange as jf}from"@rango-dev/queue-manager-rango-preset";import{useWallets as Yf}from"@rango-dev/wallets-react";import{convertEvmBlockchainMetaToEvmChainInfo as Rf}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Qf}from"rango-types";function Zf(t){let{providers:e,getSigners:o,state:n,connect:r,canSwitchNetworkTo:s,getWalletInfo:a}=Yf(),p=Vf(()=>Kf({API_KEY:wo("API_KEY")}),[]),{blockchains:l}=T.use.meta(),m={blockchains:O.use.connectedWallets().map(S=>({accounts:[S],name:S.chain}))},g=i((S,v)=>{if(s(S,v))return r(S,v)},"switchNetwork"),f=i(S=>!!a(S).mobileWallet,"isMobileWallet"),d=l.filter(S=>S.enabled).reduce((S,v)=>(S[v.name]=v,S),{}),y=l.filter(Qf),c=i(S=>{let{supportedChains:v}=a(S);return xo(v)},"getSupportedChainNames"),k=e(),x={meta:{blockchains:d,evmBasedChains:y,evmNetworkChainInfo:Rf(y),getSupportedChainNames:c},getSigners:o,wallets:m,providers:k,switchNetwork:g,canSwitchNetworkTo:s,connect:r,state:n,isMobileWallet:f};return Gf.createElement(Xf,{queuesDefs:[p],context:x,onPersistedDataLoaded:S=>{jf(S)},isPaused:!1},t.children)}i(Zf,"QueueManager");var lp=Zf;import{Events as li,Provider as eg}from"@rango-dev/wallets-react";import{isEvmBlockchain as tg}from"rango-sdk";import up,{createContext as og,useRef as ng}from"react";import{useEffect as Jf}from"react";function pp(t,e){let o=O.use.clearConnectedWallet(),n=tn(void 0,e);return Jf(()=>{o(),n=tn(t,{walletConnectProjectId:e?.walletConnectProjectId})},[t]),{providers:n}}i(pp,"useWalletProviders");var pi=og({onConnectWallet:()=>{}});function ui(t){let{blockchains:e}=T.use.meta(),{providers:o}=pp(t.providers,t?.options),n=O.use.disconnectWallet(),r=O.use.connectWallet(),s=ng(),a=e.filter(tg).map(l=>l.name),p=i((l,u,m,g,f)=>{if(u===li.ACCOUNTS)if(m){let d=xo(f),y=xi(l,m,a,d);r(y)}else n(l);if(u===li.ACCOUNTS&&g.connected){let d=`${l}-${g.network}-${m}`;g.connected&&(s.current?s.current(d):console.warn("onConnectWallet handler hasn't been set. Are you sure?"))}if(u===li.NETWORK&&g.network){let d=`${l}-${g.network}`;s.current?s.current(d):console.warn("onConnectWallet handler hasn't been set. Are you sure?")}t.onUpdateState&&t.onUpdateState(l,u,m,g,f)},"onUpdateState");return up.createElement(pi.Provider,{value:{onConnectWallet:l=>{s.current=l}}},up.createElement(eg,{allBlockChains:e,providers:o,onUpdateState:p,autoConnect:!0},t.children))}i(ui,"WidgetWallets");var lg=ig("div",{width:"100%",display:"flex",justifyContent:"center",alignItems:"center",fontFamily:"$widget",boxSizing:"border-box","& *, *::before, *::after":{boxSizing:"inherit",listStyleType:"none"},"& *:focus-visible":{outline:"1px $info500 solid",transition:"none"}});function mp(t){let{config:e}=t;ip();let{activeTheme:o}=ap(e?.theme||{}),[n,r]=cp(""),[s,a]=cp(),p=sg(pi);ag(()=>{e?.apiKey&&Si({API_KEY:e?.apiKey})},[e]),Co(()=>{q.persist.rehydrate(),Ie.persist.rehydrate(),p.onConnectWallet(r)},[]);let{setInputAmount:l,setToToken:u,setToBlockchain:m,setFromBlockchain:g,setFromToken:f}=M(),{meta:{tokens:d,blockchains:y},loadingStatus:c}=T(),{setAffiliateRef:k,setAffiliatePercent:x,setAffiliateWallets:S}=q();return Co(()=>{l(e?.amount?.toString()||"")},[e?.amount]),Co(()=>{if(c==="success"){let v=y.find(C=>C.name===e?.from?.blockchain),A=d.find(C=>Pe(C,e?.from?.token||null));g(v||null),f(A||null)}},[e?.from?.token,e?.from?.blockchain,c]),Co(()=>{if(c==="success"){let v=y.find(C=>C.name===e?.to?.blockchain),A=d.find(C=>Pe(C,e?.to?.token||null));m(v||null),u(A||null)}},[e?.to?.token,e?.to?.blockchain,c]),Co(()=>{k(e?.affiliate?.ref??null),x(e?.affiliate?.percent??null),S(e?.affiliate?.wallets??null)},[e?.affiliate?.ref,e?.affiliate?.percent,e?.affiliate?.wallets]),rt.createElement(rg,{language:e?.language},rt.createElement(lg,{id:"swap-container",className:o},rt.createElement(lp,null,rt.createElement(rp,null),rt.createElement(Ps,{lastConnectedWallet:n,disconnectedWallet:s,clearDisconnectedWallet:()=>{a(void 0)}},rt.createElement(Jl,{config:e})))))}i(mp,"Main");function pg(t){return t.config?.externalWallets?rt.createElement(mp,{...t}):rt.createElement(ui,{providers:t.config?.wallets,options:{walletConnectProjectId:t.config?.walletConnectProjectId}},rt.createElement(mp,{...t}))}i(pg,"Widget");import{useWallets as ga}from"@rango-dev/wallets-react";import{useEvents as _N,MainEvents as $N,RouteEventType as VN,StepEventType as eI,StepExecutionEventStatus as tI,StepExecutionBlockedEventStatus as oI}from"@rango-dev/queue-manager-rango-preset";export{$N as MainEvents,VN as RouteEventType,eI as StepEventType,oI as StepExecutionBlockedEventStatus,tI as StepExecutionEventStatus,pg as Widget,ui as WidgetWallets,ga as useWallets,_N as useWidgetEvents};
2
2
  //# sourceMappingURL=index.js.map