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