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