@rango-dev/widget-embedded 0.12.1-next.7 → 0.12.1-next.9

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