{"version":3,"file":"static/js/main.199b2eac.js","mappings":"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","sources":["components/NumberFormat/index.tsx","constants/chain.ts","constants/global.ts","constants/storage.ts","i18n.ts","utils/analytics.ts","initSettings.ts","utils/sentry.ts","worker/factory.ts","components/Notification/assets/icon_close.svg","components/Loading/BigLoading/index.tsx","components/Notification/assets/icon_notification_info.svg","components/Notification/assets/icon_notification_success.svg","components/Notification/assets/icon_notification_warning.svg","components/Notification/index.tsx","types/wallet.ts","features/wallet/actions.ts","features/wallet/walletSlice.ts","hooks/index.ts","configs/index.ts","connectors/bitKeep.ts","connectors/coinbase.ts","connectors/metaMask.ts","connectors/okx.ts","connectors/trust.ts","constants/wallets.ts","connectors/phantom.ts","utils/signer.ts","utils/wagmi.ts","types/odyssey.ts","utils/axios.ts","features/chain/actions.ts","features/chain/chainSlice.ts","features/global/actions.ts","constants/onChainReferral.ts","features/global/globalSlice.ts","utils/address.ts","constants/event.ts","utils/tx.tsx","utils/error/index.ts","entities/SentryService.ts","features/transaction/actions.ts","features/user/actions.ts","features/user/userSlice.ts","features/user/hooks.ts","hooks/web3/useChain.ts","features/config/hook.ts","constants/query.ts","features/global/api.ts","features/global/query.ts","features/chain/hook.ts","constants/launchpad/vault.tsx","constants/spot.ts","features/web3/actions.ts","features/web3/web3Slice.ts","features/web3/hook.ts","connectors/privy/usePrivyWallet.ts","hooks/web3/useWagami.ts","hooks/web3/useWalletNetwork.tsx","features/wallet/hook.ts","connectors/ActiveConnectorManager.tsx","connectors/privy/index.ts","connectors/binance.ts","connectors/walletConnectV2.ts","connectors/wagmi/config.ts","types/redux.ts","utils/transform/account.ts","utils/portfolio.ts","types/global.ts","utils/timeUtils.ts","utils/pairs.ts","entities/WrappedInstrument.tsx","entities/WrappedPair.tsx","entities/WrappedAccount.tsx","utils/trade.ts","entities/WrappedOrder.ts","entities/WrappedPortfolio.ts","constants/trade/priceBasisForPnl.tsx","utils/position.ts","entities/WrappedPosition.ts","entities/WrappedRange.ts","assets/svg/icons/error.tsx","components/ErrorBoundary/index.tsx","components/Loading/index.tsx","constants/yearSummary.ts","pages/Year2024Summary/store/index.ts","features/spot/store.ts","features/global/store.ts","features/global/stores.ts","features/global/hooks.ts","hooks/useSystemPrefersColor.ts","hooks/useSocket.ts","types/socket.ts","features/socket/store.ts","components/Text/BlockNumberText/index.tsx","features/socket/hooks.ts","components/Text/BlockNumberText/BlockNumberTextMobile/index.tsx","components/SubPage/assets/icon_topbar_back.svg","constants/bigNumber.ts","components/SubPage/index.tsx","components/Tabs/SynTitleTabs/index.tsx","types/liquidity.ts","constants/earn.ts","constants/simulation.ts","utils/notification.ts","types/balance.ts","constants/portfolio.ts","features/portfolio/actions.ts","features/balance/actions.ts","features/global/type.ts","features/earn/action.ts","utils/pair.ts","utils/transform/transformWrappedEntities.ts","types/earn.ts","types/trade.ts","features/earn/slice.ts","utils/localstorage.ts","utils/chart.ts","constants/market.ts","features/pair/actions.ts","hooks/useFavorites.ts","features/pair/hook.ts","features/market/actions.ts","features/market/api.ts","features/market/query.ts","features/market/hooks.ts","constants/trade/index.ts","features/account/orderHook.ts","features/account/positionHook.ts","constants/polling.ts","features/balance/balanceSlice.ts","features/balance/api.ts","features/balance/query.ts","features/balance/hook.ts","constants/odyssey.ts","types/tgp.ts","utils/odyssey.ts","features/odyssey/actions.ts","features/trade/actions.ts","types/storage.ts","features/trade/slice.ts","features/trade/hooks.ts","features/futures/api.ts","features/futures/query.ts","utils/retry.ts","features/syn/action.ts","features/futures/actions.ts","features/futures/slice.ts","features/futures/hooks.ts","features/pair/pairSlice.ts","features/account/accountHook.ts","features/account/portfolioHook.ts","features/account/rangeHook.ts","features/earn/hook.ts","features/portfolio/api.ts","features/portfolio/query.ts","features/portfolio/slice.ts","features/portfolio/hook.ts","hooks/data/usePollingDataOnWorker.ts","hooks/useRouterNavigate.ts","hooks/web3/useSwitchConnectorNetwork.tsx","pages/components/PairInfo/pairCheckHook.tsx","components/FormItem/index.tsx","components/Input/index.tsx","components/Input/AnimatedInput/index.tsx","components/TokenFormInput/index.tsx","assets/svg/icon_warning_circle.svg","components/Message/index.tsx","components/FormInput/index.tsx","assets/svg/arrow-right.svg","assets/svg/index.tsx","components/ToolTip/UnderlineToolTip/index.tsx","hooks/trade/useTokenExchange.tsx","components/Button/ButtonGroupSelector/assets/icon_btn_check.svg","pages/components/BalanceMax/index.tsx","components/Button/Button/elements.tsx","components/Button/Button/index.tsx","components/Button/ButtonGroupSelector/index.tsx","components/Checkbox/index.tsx","components/Button/NetworkButton/assets/icon_nav_connect_24.svg","components/Button/NetworkButton/assets/icon_nav_switch_g.svg","components/Button/NetworkButton/index.tsx","components/Button/SwitchBtn/index.tsx","pages/trade/TradeCard/TradeForm/WrapETHButton/index.tsx","utils/spot/index.tsx","features/spot/api.ts","features/spot/query.ts","components/ToolTip/AvailableBalanceToolTip/index.tsx","components/CardWrapper/assets/icon_close.svg","components/ToolTip/AvailableBalanceToolTip/hooks/useClickExchange.ts","pages/components/FloatingInput/index.tsx","components/Modal/index.tsx","components/Drawer/assets/icon_close_linear.svg","components/Modal/Modal/index.tsx","components/Drawer/index.tsx","assets/svg/solar_danger-triangle-bold-duotone.svg","components/EmptyDataWrap/index.tsx","components/Link/assets/icon_acct_new.svg","components/Link/index.tsx","components/ToolTip/LeanMoreToolTip/index.tsx","pages/components/LiquidationPrices/index.tsx","components/Modal/HighRiskLiquidityModal/HighRiskLiquidityModalContent/index.tsx","components/Modal/HighRiskLiquidityModal/index.tsx","hooks/useGa.ts","constants/links.ts","pages/components/WalletStatus/ApproveButton/index.tsx","pages/components/WalletStatus/ConnectWalletButton/index.tsx","pages/components/WalletStatus/SwitchNetworkButton/index.tsx","components/WrappedButton/index.tsx","pages/earn/EarnCard/EarnFormFooter/index.tsx","pages/components/AvailableMarginDrawer/index.tsx","components/ButtonSegments/index.tsx","components/SettingSelector/SettingSelectorFormItem.tsx","assets/svg/icon_arrow.svg","components/Alert/assets/icon_error_red.svg","pages/Spot/SpotSwapPools/SpotSwapPoolsItem.tsx","pages/Spot/SpotSwapPools/index.tsx","components/Alert/assets/icon_info_white.svg","components/Alert/assets/icon_warning_yellow.svg","pages/mobile/TradeMobile/TradeFormMobileMessages/SettingsDrawer/assets/icon_setting_linear.svg","components/Alert/index.tsx","pages/components/GlobalFormSettings/TradeSettingAlert/index.tsx","pages/components/GlobalFormSettings/index.tsx","assets/svg/icon_refresh_linear_new.svg","pages/mobile/TradeMobile/TradeFormMobileMessages/SettingsDrawer/index.tsx","components/CardWrapper/assets/icon_setting_linear.svg","components/CardWrapper/Fallback/index.tsx","assets/svg/icon_chevron_right.svg","components/CardWrapper/Card/index.tsx","components/CardWrapper/Modal/index.tsx","pages/components/WalletStatus/SettingSubCard/index.tsx","features/wallet/WalletBrand/index.tsx","features/wallet/WalletModalContent/SocialWallet/index.tsx","features/wallet/WalletModalContent/WalletItem/index.tsx","features/wallet/WalletModalContent/index.tsx","pages/components/WalletStatus/ConnectWalletSubCard/index.tsx","pages/components/WalletStatus/UnconnectSubCard.tsx","pages/components/WalletStatus/WalletCardWrapper/index.tsx","pages/portfolio/Assets/hooks/assetsHook.ts","pages/components/Tabs/TradeEarnTabs/index.tsx","components/I18nTrans/index.tsx","pages/components/PercentageSelector/PercentageSelector.tsx","pages/components/Form/InputSliderForm/index.tsx","components/Tabs/index.tsx","components/TokenLogo/Logo.tsx","components/TokenLogo/assets/icon_crypto_default.svg","components/TokenLogo/assets/icon_crypto_default_d.svg","components/TokenLogo/index.tsx","hooks/assets/icon_acct_new.svg","pages/components/Portfolio/Vault/AccountButtons/Deposit/DepositModal/DepositForm/NativeTokenSelector/index.tsx","pages/components/Portfolio/Vault/AccountButtons/Deposit/DepositModal/DepositForm/index.tsx","pages/components/Portfolio/Vault/AccountButtons/Deposit/DepositModal/DepositFormAlert/index.tsx","hooks/useTxNotification.tsx","pages/components/Portfolio/Vault/AccountButtons/Deposit/DepositModal/DepositModalFooter/index.tsx","pages/components/Portfolio/Vault/AccountButtons/Deposit/DepositModal/DepositNativeCard/index.tsx","pages/mobile/TradeMobile/TradeFormMobileMessages/WrapNativeDrawer/index.tsx","pages/earn/EarnCard/EarnForm/AddLiqFormDetail/index.tsx","pages/earn/EarnCard/EarnForm/EarnFormAlert/index.tsx","components/Mock/index.tsx","components/Skeleton/index.tsx","features/chart/actions.ts","features/chart/slice.ts","features/chart/hooks.ts","pages/earn/EarnChart/IlChart/index.tsx","features/earn/query.ts","pages/earn/EarnChart/EarnLiqChart/index.tsx","pages/earn/EarnCard/EarnForm/AddLiqForm/PriceRangeAndChart/index.tsx","pages/earn/EarnCard/EarnForm/AddLiqForm/index.tsx","entities/WrappedVault.tsx","features/vault/action.ts","features/vault/api.ts","features/vault/query.ts","features/vault/slice.ts","features/vault/hook.ts","hooks/vault/useVaultRouter.tsx","pages/earn/EarnCard/EarnForm/PairNotInWhitelist/assets/remove.svg","assets/svg/icon_warning_yellow.svg","pages/earn/EarnCard/EarnForm/PairNotInWhitelist/index.tsx","pages/trade/CoinPriceChart/ChartLoading/index.tsx","pages/earn/EarnChart/InfoChart/index.tsx","components/TVLWarningIcon/index.tsx","components/TVLWarningToaster/index.tsx","hooks/data/useListenEventOnWorker.ts","pages/mobile/components/MobileBanner/index.tsx","pages/mobile/assets/svg/icon_last_trade_hover.svg","constants/history.ts","components/Empty/assets/icon_link_48.svg","components/Empty/assets/icon_no_link_dark.svg","components/Empty/assets/no_record_d.svg","components/Empty/index.tsx","components/Table/index.tsx","components/SkeletonTable/index.tsx","utils/history.ts","features/graph/api.ts","features/graph/query.ts","features/graph/actions.ts","features/graph/slice.ts","features/graph/hooks.ts","components/TokenLogo/TokenSymbol.tsx","components/TokenFavorite/assets/icon_fav_off.svg","components/Tag/index.tsx","components/TokenFavorite/assets/icon_fav_on.svg","components/TokenFavorite/FavoriteIcon/index.tsx","components/TokenFavorite/index.tsx","components/Expiry/index.tsx","components/TokenPair/TokenPairExpiry.tsx","assets/svg/oracle/DEXV2/default.svg","components/TokenPair/TokenPairLeverage/index.tsx","assets/svg/oracle/DEXV2/uni.svg","assets/svg/oracle/EMG/default.svg","assets/svg/oracle/LINK/default.svg","assets/svg/oracle/PYTH/default.svg","constants/oracle/marketOraclesInfo.tsx","components/TokenPair/TokenPairOracle.tsx","assets/svg/margin_icon.svg","components/TokenPair/TokenPairSymbol.tsx","components/TokenPair/index.tsx","pages/portfolio/AccountHistory/assets/icon_filter_off.svg","components/ToolTip/FeeTooltip/index.tsx","components/ToolTip/LiquidityRemoveTooltip/index.tsx","pages/components/TradeSideSize/index.tsx","pages/portfolio/AccountHistory/HistoryFilterDropDown/index.tsx","pages/portfolio/AccountHistory/assets/icon_label_p.svg","pages/portfolio/AccountHistory/assets/icon_label_r.svg","pages/portfolio/AccountHistory/tableConfigs.tsx","assets/svg/icon_chevron_left.svg","assets/svg/icon_refresh_linear.svg","pages/mobile/components/HistoryDrawerHeader/index.tsx","pages/mobile/EarnMobile/EarnHistoryDrawer/index.tsx","hooks/trade/useSetTradePortfolioTab.tsx","pages/components/TradeSide/index.tsx","pages/earn/EarnCard/EarnForm/RemoveLiqFormDetail/index.tsx","pages/earn/EarnCard/EarnForm/RemoveLiqForm/index.tsx","pages/earn/EarnCard/EarnForm/index.tsx","pages/earn/EarnLiquidities/PriceRange/index.tsx","pages/mobile/EarnMobileSubpage/EarnLiquiditiesMobile/index.tsx","pages/mobile/TradeMobile/TradeHistoryDrawer/FundingHistoryMobile/index.tsx","pages/mobile/TradeMobile/TradeHistoryDrawer/OrderHistoryMobile/index.tsx","pages/mobile/TradeMobile/TradeHistoryDrawer/TradeHistoryDrawerTabs/index.tsx","pages/mobile/TradeMobile/TradeHistoryDrawer/TradeHistoryMobile/index.tsx","pages/mobile/TradeMobile/TradeHistoryDrawer/index.tsx","pages/mobile/TradeMobile/TradeOrdersMobile/index.tsx","components/Alert/SocialLossAlert/index.tsx","utils/common.ts","hooks/trade/useReverseLimitOrderInput.tsx","hooks/usePriceBasisForPnl.tsx","components/SynTab/index.tsx","hooks/trade/MarginAdjust/useMarginAdjustSimulate.tsx","hooks/trade/MarginAdjust/useMarginAdjustByLeverage.tsx","hooks/trade/MarginAdjust/useMarginAdjustMethod.tsx","pages/trade/TradeCard/TradeForm/TradeAdjust/TradeAdjustDetail/assets/icon_arrow.svg","pages/trade/TradeCard/TradeForm/TradeAdjust/TradeAdjustDetail/index.tsx","pages/trade/TradeCard/TradeForm/TradeAdjust/TradeMarginAdjustAmount/index.tsx","hooks/trade/MarginAdjust/useMarginAdjustByAmount.tsx","components/Slider/index.tsx","components/SynSlider/index.tsx","components/TradeLeverage/TradeLeverage.tsx","pages/trade/TradeCard/TradeForm/TradeAdjust/TradeMarginAdjustLeverage/index.tsx","pages/trade/TradeCard/TradeForm/TradeAdjust/index.tsx","assets/svg/icon_share_32.svg","hooks/trade/MarginAdjust/useMarginAdjust.tsx","assets/svg/icon_chevron_down.svg","components/PnlShareNotification/index.tsx","pages/trade/TradeCard/TradeForm/TradeDetail/TradeFormDetails.tsx","pages/trade/TradeCard/TradeForm/TradeFormAlert/index.tsx","pages/trade/TradeCard/TradeForm/TradeClose/index.tsx","pages/mobile/TradeMobile/TradePositionMobile/index.tsx","pages/mobile/components/MobileProfile/index.tsx","pages/components/Change24/index.tsx","pages/mobile/assets/svg/icon_chevron_left_12x24.svg","pages/mobile/assets/svg/icon_earn_nav_chart.svg","pages/mobile/assets/svg/icon_earn_nav_chart_show.svg","pages/mobile/assets/svg/icon_trade_nav_chart.svg","pages/mobile/assets/svg/icon_trade_nav_chart_show.svg","pages/mobile/assets/svg/icon_trade_nav_info.svg","pages/mobile/components/MobileSubpageHeader/MobileInfoDrawer/index.tsx","pages/mobile/components/MobileSubpageHeader/index.tsx","pages/mobile/EarnMobileSubpage/index.tsx","features/pair/EventListener/index.tsx","assets/svg/icon_arrow_fall_16.svg","assets/svg/icon_arrow_rise_16.svg","assets/svg/label_rebate.svg","utils/trade/orderBook/index.ts","pages/trade/CoinPriceChart/OrderBook/OrderBookSkeleton/index.tsx","pages/trade/CoinPriceChart/OrderBook/index.tsx","pages/trade/TradeCard/TradeForm/tradeformFooter/useTradeFooterStatus.ts","pages/trade/TradeCard/TradeForm/tradeformFooter/index.tsx","components/SynInputNumber/assets/icon_percent_add.svg","components/SynInputNumber/assets/icon_percent_minus.svg","assets/svg/icon_rebate.svg","components/SynInputNumber/index.tsx","pages/mobile/TradeMobile/TradeFormMobile/TradeFormbaseMobile/TokenSelectDrawer/index.tsx","pages/mobile/TradeMobile/TradeFormMobile/TradeFormbaseMobile/index.tsx","pages/mobile/TradeMobile/TradeLimitFormMobile/TradeLimitInputMessages/index.tsx","pages/mobile/TradeMobile/TradeLimitFormMobile/index.tsx","pages/mobile/TradeMobile/TradeMarketFormMobile/index.tsx","pages/mobile/TradeMobile/TradeFormMobile/LimitDisabledDrawer/index.tsx","pages/mobile/TradeMobile/TradeFormMobile/TradeFormSideMobile/index.tsx","pages/mobile/TradeMobile/TradeFormMobile/index.tsx","assets/svg/icon_sparkle_16.svg","pages/mobile/TradeMobile/TradeFormMobileMessages/TradeDetailsDrawer/assets/icon_more_whitepaper.svg","pages/trade/TradeCard/TradeForm/TradeLimitForm/LimitFormDetail/index.tsx","pages/mobile/TradeMobile/TradeFormMobileMessages/TradeDetailsDrawer/index.tsx","pages/mobile/TradeMobile/TradeFormMobileMessages/TradeLimitMessages/index.tsx","pages/mobile/TradeMobile/TradeFormMobileMessages/TradeMarginRequiredMobile/index.tsx","pages/mobile/TradeMobile/TradeFormMobileMessages/TradeMarketMessages/index.tsx","pages/mobile/TradeMobile/TradeFormMobileMessages/index.tsx","pages/mobile/TradeMobile/TradeMobileOrdersTrade/index.tsx","pages/trade/CoinPriceChart/TradingView/index.tsx","pages/trade/CoinPriceChart/KLineChart.tsx","pages/mobile/TradeMobile/TradeMobileTradingView/index.tsx","pages/mobile/TradeMobile/index.tsx","pages/components/PairInfo/PairInfoSkeleton.tsx","pages/trade/Fallback/index.tsx","components/Alert/assets/icon_error_tri_white.svg","components/Alert/BlockedAlert/index.tsx","hooks/portfolio/usePortfolioParams.tsx","assets/svg/icon_export_csv.svg","pages/components/WalletStatus/WalletDrawerWrapper/index.tsx","pages/components/WalletStatus/WalletModalWrapper/index.tsx","pages/components/SettleModal/SettleModalFooter/index.tsx","pages/components/SettleModal/index.tsx","utils/csv.tsx","hooks/portfolio/useWrappedVolumes.tsx","components/Button/CsvExportButton/index.tsx","assets/svg/icon_close_24.svg","pages/portfolio/AccountHistory/HistoryRefreshSimple/index.tsx","hooks/useStickyPin.ts","components/Tabs/SynCircleTabs/index.tsx","pages/trade/TradePortfolio/common/index.tsx","pages/portfolio/AccountHistory/HistoryTable/HistoryTableRangeSelector/index.tsx","pages/portfolio/AccountHistory/HistoryTable/index.tsx","pages/portfolio/AccountHistory/index.tsx","assets/svg/icons/openOrder.tsx","constants/table.ts","pages/campaign/CampaignRefTag/assets/icon_list_rewards.svg","pages/campaign/CampaignRefTag/assets/solar_square-top-down-linear.svg","pages/campaign/CampaignRefTag/index.tsx","pages/Market/MarketTag/index.tsx","components/TokenPairWitheToolTip/index.tsx","components/ToolTip/PnlTitleToolTip/index.tsx","components/ToolTip/UnrealizedPnlTooltip/index.tsx","components/TableCard/tableConfigs/WrappedVolume.tsx","components/TableCard/tableConfigs/index.tsx","hooks/common/usePoller.ts","hooks/portfolio/useOpenOrderListWithCreateTime.tsx","pages/portfolio/OpenOrders/index.tsx","assets/svg/icons/liquidity.tsx","pages/portfolio/PortfolioLiquidityTable/index.tsx","assets/svg/icon_arrow_right.svg","pages/portfolio/PortfolioOverview/PortfolioAsset/PortfolioAssetWithdrawLimit/index.tsx","components/Button/TokenBalanceInfoButton/index.tsx","pages/components/Portfolio/Vault/AccountButtons/Deposit/DepositButton/index.tsx","assets/svg/icon_sparkle_16_light.svg","assets/svg/icon_sparkles_20.svg","assets/svg/icon_table_check.svg","assets/svg/icon_view_image.svg","assets/svg/icon_view_image_light.svg","features/odyssey/slice.ts","features/odyssey/hooks.tsx","assets/svg/icon_blast_gold.svg","assets/svg/icon_blast_points.svg","assets/svg/icon_eigenlayer_12.svg","assets/svg/icon_eigenlayer_points.svg","assets/svg/icon_etherfi_12.svg","assets/svg/icon_etherfi_points.svg","assets/svg/icon_ezpoints_12.svg","assets/svg/icon_kelp_miles.svg","assets/svg/icon_o_o_points.svg","assets/svg/icon_renzo_ezpoints.svg","assets/svg/kelp-icon.svg","configs/odysseyReward.tsx","pages/Odyssey/components/OdysseyBoostTag/index.tsx","utils/image.ts","components/Card/OdysseyRewardsCard/useOoPointsRightNode.tsx","components/Card/OdysseyRewardsCard/index.tsx","pages/components/Portfolio/Vault/AccountButtons/Deposit/DepositModal/index.tsx","assets/svg/total-pnl-icon.svg","pages/components/Portfolio/Vault/AccountButtons/Deposit/index.tsx","pages/components/Portfolio/Vault/AccountButtons/Withdraw/WithdrawButton/index.tsx","pages/components/Portfolio/Vault/AccountButtons/Withdraw/WithdrawModal/index.tsx","pages/components/Portfolio/Vault/AccountButtons/Withdraw/index.tsx","pages/portfolio/PortfolioOverview/PortfolioAsset/PortfolioAssetSkeleton/index.tsx","pages/portfolio/PortfolioOverview/PortfolioAsset/index.tsx","pages/portfolio/PortfolioOverview/PortfolioEmpty/index.tsx","components/Card/index.tsx","pages/components/UnconnectedCard/index.tsx","assets/svg/icons/chainTag.tsx","components/ToolTip/TotalOverviewTooltip/index.tsx","pages/portfolio/PortfolioOverview/TotalOveriew/constant.tsx","pages/portfolio/PortfolioOverview/TotalOveriew/ValuesPieChart/index.tsx","pages/portfolio/PortfolioOverview/TotalOveriew/PieChartWithText/index.tsx","pages/portfolio/PortfolioOverview/TotalOveriew/PieChartWithTexts/TotalPnLChart/index.tsx","pages/portfolio/PortfolioOverview/TotalOveriew/PieChartWithTexts/TotalValueChart/index.tsx","pages/portfolio/PortfolioOverview/TotalOveriew/PieChartWithTexts/TotalVolumeChart/index.tsx","pages/portfolio/PortfolioOverview/TotalOveriew/Skeleton/index.tsx","pages/portfolio/PortfolioOverview/TotalOveriew/index.tsx","pages/portfolio/PortfolioOverview/index.tsx","assets/svg/icons/position.tsx","pages/portfolio/PortfolioPositionTable/index.tsx","pages/portfolio/PortfolioSkeleton/index.tsx","pages/portfolio/PortfolioTabs/index.tsx","pages/portfolio/index.tsx","components/HealthCapsule/index.tsx","components/Switch/index.tsx","pages/Odyssey/assets/svg/icon_close_linear.svg","hooks/useMessage.tsx","pages/Odyssey/assets/svg/icon_music_off.svg","pages/Odyssey/assets/svg/icon_music_on.svg","pages/Odyssey/components/OdysseyButton/index.tsx","pages/Odyssey/assets/svg/illus_modal_stars.svg","pages/Odyssey/components/StarBg/star.js","pages/Odyssey/components/PointsEarned/index.tsx","pages/Odyssey/components/StarBg/index.tsx","pages/Odyssey/components/SpinWheel/index.tsx","pages/theme/socket/index.tsx","pages/theme/index.tsx","components/Alert/TradeYourOwnRiskAlert/index.tsx","features/tgp/hooks.ts","pages/TGP/assets/svg/icon_tgp_trophy.svg","constants/tgp.ts","features/tgp/actions.ts","features/tgp/slice.ts","assets/svg/dropdown.svg","pages/TGP/components/TGPTag/index.tsx","utils/feature.ts","components/Dropdown/index.tsx","components/SearchPair/assets/icon_radio_off.svg","components/SearchPair/assets/icon_radio_on.svg","components/SearchPair/assets/icon_sort_ascending.svg","pages/components/PairInfo/assets/icon_arrow_left.svg","components/SearchPair/SearchPairSorter.tsx","components/SearchPair/index.tsx","pages/components/PairInfo/assets/icon_arrow_right.svg","pages/components/PairInfo/PairInfoRight/FundingRate/index.tsx","pages/components/PairInfo/PairInfoRight/PairInfoCollapse/index.tsx","pages/components/WalletStatus/ConnectWalletCard/assets/icon_connect_wallet.svg","pages/components/PairInfo/PairInfoRight/index.tsx","pages/components/PairInfo/index.tsx","pages/components/BuildOnNetworkCard/assets/built_on_base.svg","pages/components/WalletStatus/ConnectWalletCard/index.tsx","pages/components/BuildOnNetworkCard/assets/built_on_blast.svg","pages/components/BuildOnNetworkCard/assets/built_on_blast_light.svg","pages/components/BuildOnNetworkCard/index.tsx","pages/earn/EarnCard/index.tsx","pages/earn/EarnChart/NewPairBanner/index.tsx","pages/earn/EarnChart/index.tsx","pages/trade/CoinPriceChart/ChartInfo/FeeDiscountTag/index.tsx","pages/trade/CoinPriceChart/ChartInfo/index.tsx","pages/trade/CoinPriceChart/TradingView/assets/watemark_base64.ts","pages/trade/CoinPriceChart/FundingChart/FundingLegend/FundingLegend.tsx","pages/trade/CoinPriceChart/FundingChart/FundingTooltip/index.tsx","pages/trade/CoinPriceChart/FundingChart/index.tsx","pages/trade/CoinPriceChart/PriceDepthChart/CustomTooltip.tsx","pages/trade/CoinPriceChart/PriceDepthChart/index.tsx","components/Select/index.tsx","assets/svg/icon_rebate_round.svg","pages/trade/CoinPriceChart/StepRatioSelector/index.tsx","pages/trade/CoinPriceChart/index.tsx","pages/trade/TradeCard/TradeForm/ScaleLimitForm/assets/dist_img_01.svg","pages/trade/TradeCard/TradeForm/TradeFormBase/TradeFormSide/index.tsx","pages/trade/TradeCard/TradeForm/ScaleLimitForm/PriceInputSlider/index.tsx","pages/trade/TradeCard/TradeForm/ScaleLimitForm/ScaleOrderCount.tsx","pages/trade/TradeCard/TradeForm/ScaleLimitForm/PriceInput.tsx","pages/trade/TradeCard/TradeForm/ScaleLimitForm/ScaleFormDetail.tsx","pages/trade/TradeCard/TradeForm/LeverageAdjust/LeverageAdjust.tsx","pages/trade/TradeCard/TradeForm/ScaleLimitForm/ScaleLeverage.tsx","pages/trade/TradeCard/TradeForm/ScaleLimitForm/ScaleLimitEffect.tsx","pages/trade/TradeCard/TradeForm/ScaleLimitForm/ScaleLimitPreview/ScaleLimitPreviewRow.tsx","pages/trade/TradeCard/TradeForm/ScaleLimitForm/ScaleLimitPreview/index.tsx","pages/trade/TradeCard/TradeForm/ScaleLimitForm/assets/dist_img_01_d.svg","pages/trade/TradeCard/TradeForm/ScaleLimitForm/assets/dist_img_02.svg","pages/trade/TradeCard/TradeForm/ScaleLimitForm/assets/dist_img_02_d.svg","pages/trade/TradeCard/TradeForm/ScaleLimitForm/assets/dist_img_03.svg","pages/trade/TradeCard/TradeForm/ScaleLimitForm/assets/dist_img_03_d.svg","pages/trade/TradeCard/TradeForm/ScaleLimitForm/assets/dist_img_04.svg","pages/trade/TradeCard/TradeForm/ScaleLimitForm/assets/dist_img_04_d.svg","pages/trade/TradeCard/TradeForm/ScaleLimitForm/ScaleSizeDistribution.tsx","pages/trade/TradeCard/TradeForm/ScaleLimitForm/ScaleSizeInput.tsx","pages/trade/TradeCard/TradeForm/ScaleLimitForm/index.tsx","pages/trade/TradeCard/TradeForm/TradeFormBase/index.tsx","pages/trade/TradeCard/TradeForm/TradeLimitForm/CrossMarketCheckbox/index.tsx","pages/trade/TradeCard/TradeForm/TradeLimitForm/CrossMarketDetail/index.tsx","pages/trade/TradeCard/TradeForm/TradeLimitForm/index.tsx","pages/trade/TradeCard/TradeForm/TradeMarketForm/index.tsx","pages/trade/TradeCard/TradeForm/index.tsx","pages/trade/TradeCard/index.tsx","pages/earn/EarnLiquidities/index.tsx","pages/earn/EarnLiquidities/tableTitles.tsx","hooks/history/useHistoryPolling.tsx","pages/earn/EarnHistory/index.tsx","pages/trade/TradePortfolio/Fundings/index.tsx","pages/trade/TradePortfolio/OrderHistory/index.tsx","pages/trade/TradePortfolio/TradeHistory/index.tsx","pages/trade/TradePortfolio/Transfers/index.tsx","pages/trade/TradePortfolio/HistoryWrapper/index.tsx","pages/trade/TradePortfolio/TradeOpenOrders/assets/icon_checkbox_off.svg","pages/trade/TradePortfolio/TradeOpenOrders/assets/icon_checkbox_on.svg","pages/trade/TradePortfolio/TradeOpenOrders/index.tsx","pages/trade/TradePortfolio/index.tsx","assets/svg/icons/share.tsx","pages/trade/TradePortfolio/TradePosition/index.tsx","pages/trade/TradePortfolio/TradePosition/TradePositionSkeleton.tsx","pages/trade/index.tsx","pages/components/Overview/index.tsx","pages/Market/MarketTrends/index.tsx","components/TableCard/index.tsx","components/Container/index.tsx","pages/PoolList/LiquidityFormModal/CreativePairSearch/assets/icon_net_all.svg","components/TableSearchBar/MarketCustomPairsSelector/index.tsx","assets/svg/icons/clear.tsx","assets/svg/search_empty.svg","pages/PoolList/LiquidityFormModal/CreativePairSearch/index.tsx","pages/PoolList/LiquidityFormModal/index.tsx","pages/PoolList/CreatePoolBtn/index.tsx","components/TableSearchBar/PairSearch/index.tsx","components/TableSearchBar/index.tsx","pages/Market/MarketStats/index.tsx","pages/Market/TradingPairs/TradingPairsHeader/index.tsx","pages/Market/TradingPairs/index.tsx","pages/Market/TradingPairs/tableTitles.tsx","pages/Market/index.tsx","layout/Header/Logo/assets/logo_dark.svg","layout/Header/Logo/assets/logo_light.svg","layout/Header/Logo/index.tsx","pages/MobileBlocker/index.tsx","pages/Odyssey/assets/svg/index.tsx","pages/Odyssey/OdysseyEnd/components/BenefitCard/index.tsx","pages/Odyssey/OdysseyEnd/index.tsx","pages/Odyssey/index.tsx","hooks/usePageSupported.ts","features/spot/globalEffect.tsx","assets/svg/icon_swap.svg","pages/Spot/SpotInfo/SpotChartInterval/index.tsx","pages/Spot/SpotChart/index.tsx","assets/svg/icons/arrow.tsx","pages/Spot/SpotHistory/SpotHistoryItem/index.tsx","pages/Spot/SpotHistory/SpotHistorySkeleton.tsx","pages/Spot/SpotHistory/index.tsx","assets/svg/icon_link_address.svg","pages/Spot/SpotSwap/SpotSwapDetail/index.tsx","hooks/useCopyClipboard.ts","pages/components/USDPriceWrap/index.tsx","pages/Spot/SpotTokens/SpotTokenItem.tsx","pages/Spot/SpotTokens/SpotTokensSkeleton.tsx","pages/Spot/SpotTokens/SpotTokensModal/SpotTokensModalContent/index.tsx","pages/Spot/SpotTokens/SpotTokensModal/index.tsx","pages/Spot/SpotTokens/SpotSellTokens.tsx","pages/Spot/SpotTokens/SpotsBuyTokens.tsx","pages/Spot/SpotSwap/assets/warning.svg","pages/Spot/SpotSwap/SpotSwapFormContent/index.tsx","features/spot/hooks.ts","spot/useMsg.tsx","pages/Spot/SpotSwap/SpotSwapDetail/SpotSwapAlert/index.tsx","pages/Spot/SpotSwap/SwapFooter/index.tsx","pages/Spot/Mobile/SpotMobileDexTable/index.tsx","pages/Spot/Mobile/SpotMobileRoute/SpotPool/index.tsx","pages/Spot/Mobile/SpotMobileRoute/SpotToken/index.tsx","pages/Spot/Mobile/SpotMobileRoute/assets/icon_empty.svg","pages/Spot/Mobile/SpotMobileRoute/index.tsx","pages/Spot/Mobile/SpotMobileTitle/SpotMobileSettings/index.tsx","pages/Spot/Mobile/SpotMobileTitle/assets/index.tsx","pages/Spot/Mobile/SpotMobileTitle/index.tsx","pages/Spot/Mobile/index.tsx","pages/Spot/SpotRoute/assets/icon_empty.svg","pages/Spot/SpotDexTable/index.tsx","pages/Spot/SpotInfo/SpotPair/index.tsx","pages/Spot/SpotInfo/index.tsx","pages/Spot/SpotOrderbook/index.tsx","hooks/trade/useTrend.tsx","pages/Spot/SpotRoute/assets/icon_empty_dash.svg","pages/TGP/TGPBanner/TGPBannerCorner/assets/icon_click_24.svg","pages/Spot/SpotRoute/index.tsx","pages/Spot/SpotSwap/index.tsx","pages/Spot/index.tsx","pages/TGP/TGPBanner/TGPBannerLeft/assets/icon_calendar_20.svg","pages/TGP/TGPBanner/TGPBannerCorner/index.tsx","pages/TGP/TGPBanner/TGPBannerLeft/assets/icon_trophy_24.svg","pages/TGP/TGPBanner/TGPBannerLeft/index.tsx","utils/tgp.ts","pages/Odyssey/assets/svg/icon_close_32.svg","pages/TGP/components/TGPModal/assets/popup_decor_left.svg","pages/TGP/components/TGPModal/assets/popup_decor_right.svg","pages/TGP/assets/svg/icon_share_16.svg","pages/TGP/components/TGPModal/index.tsx","pages/TGP/components/TGPModal/TGPModalDiscordJoin/index.tsx","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerSteps/ConnectSteps/assets/icon_handshake_32.svg","pages/TGP/components/TGPModal/TGPModalTwitterShare/index.tsx","pages/TGP/components/TGPModal/TGPTwitterDiscord/index.tsx","pages/TGP/components/TGPModal/TGPClaimModal/index.tsx","components/Text/index.tsx","pages/TGP/components/TGPName/index.tsx","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerSteps/ConnectSteps/ConnectStepBtn/assets/btn_small_off.svg","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerSteps/ConnectSteps/ConnectStepBtn/assets/icon_check_32.svg","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerSteps/ConnectSteps/ConnectStepBtn/index.tsx","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerSteps/ConnectSteps/index.tsx","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerSteps/SignUpWithWallet/index.tsx","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerSteps/index.tsx","pages/TGP/TGPBanner/TGPBannerWalletConnect/TGPConnectBtn/index.tsx","pages/TGP/TGPBanner/TGPBannerWalletConnect/index.tsx","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerBtn/assets/btn_claim.svg","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerBtn/assets/btn_disable.svg","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerBtn/assets/btn_trade.svg","pages/TGP/assets/svg/icon_ended_48.svg","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerRank/RankClaimBtn/index.tsx","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerRank/index.tsx","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerRightSeasons/index.tsx","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerRule/index.tsx","pages/TGP/TGPBanner/TGPBannerRight/TGPBannerSkeleton/index.tsx","pages/TGP/TGPBanner/TGPBannerRight/index.tsx","pages/TGP/TGPCommunity/assets/icon_social_discord.svg","pages/TGP/TGPBanner/TGPEnded/index.tsx","pages/TGP/TGPBanner/index.tsx","pages/TGP/TGPCommunity/assets/icon_social_medium.svg","pages/TGP/TGPCommunity/assets/icon_social_telegram.svg","pages/TGP/TGPCommunity/assets/icon_social_twitter.svg","pages/TGP/TGPCommunity/assets/icon_social_youtube.svg","pages/TGP/assets/svg/icon_title_leaderboard.svg","pages/TGP/TGPCommunity/index.tsx","pages/TGP/assets/svg/list_self_left.svg","pages/TGP/TGPLeaderBoard/TGPLeaderBoardHeader/index.tsx","pages/Odyssey/OdysseyLeaderboard/Epoch/EpochRank/index.tsx","pages/TGP/assets/svg/list_self_left_dark.svg","pages/TGP/assets/svg/list_self_right.svg","pages/TGP/assets/svg/list_self_right_dark.svg","pages/TGP/assets/svg/logo_symbol.svg","pages/TGP/assets/svg/triangle_top_left.svg","pages/TGP/assets/svg/triangle_top_right.svg","pages/TGP/assets/svg/icon_chevron_left.svg","pages/TGP/assets/svg/icon_chevron_right.svg","pages/TGP/assets/svg/icon_title_recent.svg","pages/TGP/assets/svg/icon_empty_24.svg","pages/TGP/TGPLeaderBoard/TGPLeaderBoardTable/LeaderTablePagination/index.tsx","pages/TGP/TGPLeaderBoard/TGPLeaderBoardTable/TGPLeaderBoardTableSkeleton.tsx","pages/TGP/TGPLeaderBoard/TGPLeaderBoardTable/index.tsx","pages/TGP/assets/svg/icon_title_lucky.svg","pages/TGP/TGPLeaderBoard/TGPLeaderBoardTable/TGPLeaderTableEmpty.tsx","pages/TGP/components/Ellipsis/index.tsx","pages/TGP/components/RankProfileImg/index.tsx","pages/TGP/TGPLeaderBoard/TGPLeaderBoardTable/TGPMasterTrader.tsx","pages/TGP/TGPLeaderBoard/TGPLeaderBoardTable/TGPMasterWeek.tsx","pages/TGP/TGPLeaderBoard/TGPLeaderBoardTable/TGPOpenWeek.tsx","pages/TGP/TGPLeaderBoard/index.tsx","pages/TGP/assets/svg/title_decor.svg","pages/TGP/TGPLuckyDraw/TGPLuckyDrawPhases/assets/icon_arrow_left.svg","pages/TGP/TGPLuckyDraw/TGPLuckyDrawEmpty/index.tsx","pages/TGP/TGPLuckyDraw/TGPLuckyDrawModal/index.tsx","pages/TGP/TGPLuckyDraw/TGPLuckyDrawPhases/assets/icon_arrow_right.svg","pages/TGP/assets/svg/lucky_draw_triangle.svg","pages/TGP/TGPLuckyDraw/TGPLuckyDrawPhases/index.tsx","pages/TGP/TGPLuckyDraw/TGPLuckyDrawWinners/index.tsx","pages/TGP/TGPLuckyDraw/index.tsx","pages/Odyssey/components/OdysseySquareButton/index.tsx","pages/TGP/components/TGPTicketModal/index.tsx","pages/TGP/index.tsx","constants/campaign/index.tsx","features/campaign/slice.ts","components/Card/CampaignCard/elements/CampaignCardDescription/index.tsx","components/Card/CampaignCard/elements/CampaignCardPeriod/index.tsx","components/Card/CampaignCard/elements/CampaignTitle/index.tsx","assets/svg/icons/leaderboard.tsx","components/Card/CampaignCard/elements/common/index.tsx","components/Card/CampaignCard/CampaignBannerCard/index.tsx","components/Card/CampaignCard/ExpiredCampaignCard/index.tsx","components/Card/CampaignCard/CampaignDetailCard/index.tsx","components/Card/CampaignCard/elements/OngoingUpcomingMobileCampaignCard/index.tsx","components/Card/CampaignCard/OngoingCampaignCard/index.tsx","components/Card/CampaignCard/UpcomingCampaignCard/index.tsx","utils/campaign/index.tsx","features/campaign/api.ts","features/campaign/query.ts","components/Modal/CampaignLeaderboardModal/CampaignLeaderboardModalContent/index.tsx","components/Modal/CampaignLeaderboardModal/index.tsx","components/Text/CampaignTitleText/index.tsx","features/campaign/GlobalEffect/index.tsx","pages/campaign/index.tsx","features/campaign/hook.ts","pages/components/Cosplay/index.tsx","assets/svg/icon_oyster_amm.svg","pages/components/PageHelper/index.tsx","pages/mobile/PortfolioMobile/PortfolioMobileAccounts/PortfolioMobileAccountSkeleton/index.tsx","pages/mobile/PortfolioMobile/PortfolioMobileAccounts/index.tsx","pages/mobile/PortfolioMobile/PortfolioMobileLiquidities/index.tsx","pages/mobile/PortfolioMobile/PortfolioMobilePositions/PortfolioMobilePositionsSkeleton/index.tsx","pages/mobile/PortfolioMobile/PortfolioMobileOrders/index.tsx","pages/mobile/PortfolioMobile/PortfolioMobilePositions/index.tsx","pages/mobile/PortfolioMobile/PortfolioMobileTabs/index.tsx","pages/mobile/PortfolioMobile/PortfolioMobileTotalValues/PortfolioMobileValueSkeleton/index.tsx","pages/mobile/PortfolioMobile/PortfolioMobileTotalValues/index.tsx","pages/mobile/PortfolioMobile/index.tsx","assets/svg/icon_oyster_amm_d.svg","pages/mobile/assets/svg/icon_filter.svg","pages/components/OysterAmm/index.tsx","components/Drawer/DrawerSelector/index.tsx","pages/mobile/assets/svg/icon_filter_bold.svg","pages/vault/assets/svg/GPS.svg","pages/mobile/TradingPairsMobile/MarginTypeSelector.tsx","pages/mobile/TradingPairsMobile/TradingPairSkeleton/index.tsx","pages/mobile/TradingPairsMobile/index.tsx","pages/vault/VaultList/VaultProgress/index.tsx","components/Card/LaunchPadCard/VaultCard/ProgressCard/index.tsx","hooks/vault/useVaultMarginToken.tsx","hooks/vault/useDepositInput.tsx","hooks/vault/useWithdrawInput.tsx","components/Card/LaunchPadCard/VaultCard/VaultInputCard/element.tsx","components/Card/LaunchPadCard/VaultCard/VaultInputCard/index.tsx","components/Card/LaunchPadCard/VaultCard/VaultMetaCard/index.tsx","components/Card/LaunchPadCard/VaultCard/element.tsx","components/Card/LaunchPadCard/VaultCard/index.tsx","pages/vault/VaultProjectName/index.tsx","components/Text/VaultStatusText/index.tsx","components/Card/LaunchPadCard/VaultCard/VaultInfoCard/assets/icon_sc_discord.svg","components/Text/TokenVaultText/index.tsx","components/Card/LaunchPadCard/VaultCard/VaultInfoCard/assets/icon_sc_farcaster.svg","components/Card/LaunchPadCard/VaultCard/VaultInfoCard/assets/icon_sc_instagram.svg","components/Card/LaunchPadCard/VaultCard/VaultInfoCard/assets/icon_sc_telegram.svg","components/Card/LaunchPadCard/VaultCard/VaultInfoCard/assets/icon_sc_twitter.svg","components/Card/LaunchPadCard/VaultCard/VaultInfoCard/assets/icon_sc_website.svg","components/Card/LaunchPadCard/VaultCard/VaultInfoCard/assets/icon_sc_youtube.svg","components/Card/LaunchPadCard/VaultCard/VaultInfoCard/index.tsx","components/Card/LaunchPadCard/VaultCardSkeleton/index.tsx","components/Card/LaunchPadCard/YourDepositsCard/VaultHistoryCard/index.tsx","components/Card/LaunchPadCard/YourDepositsCard/index.tsx","features/vault/GlobalEffect/index.tsx","pages/vault/LegalDisclaimer/assets/icon_warning_yellow.svg","components/Card/LaunchPadCard/InvalidVaultCard/index.tsx","pages/vault/InvalidVaultCards/index.tsx","pages/vault/LegalDisclaimer/index.tsx","pages/vault/VaultBanner/index.tsx","constants/launchpad/index.tsx","utils/vault.ts","pages/vault/AssetPair/index.tsx","pages/vault/common/index.tsx","pages/vault/VaultListOngoing/index.tsx","pages/vault/VaultList/VaultListComing/index.tsx","pages/vault/VaultList/index.tsx","pages/vault/index.tsx","pages/routers.tsx","features/spot/types.ts","assets/svg/icon_chevron.svg","assets/svg/icon_discord.svg","assets/svg/icon_medium.svg","assets/svg/icon_telegram.svg","assets/svg/icon_twitter.svg","assets/svg/icon_youtube.svg","layout/Header/SwitchTheme/assets/icon_theme_moon.svg","features/user/UserAddressModal/ClearCacheBtn/index.tsx","hooks/useTestnet.ts","hooks/web3/useContract.ts","hooks/useTheme.ts","layout/Header/SwitchTheme/assets/icon_theme_sun.svg","pages/mobile/MobileFooter/MobileFooterDrawer/assets/icon_acct_mint_linear.svg","layout/Header/SwitchTheme/index.tsx","pages/mobile/MobileFooter/MobileFooterDrawer/assets/icon_more_academy.svg","pages/mobile/MobileFooter/MobileFooterDrawer/assets/icon_more_docs.svg","pages/mobile/MobileFooter/MobileFooterDrawer/assets/icon_more_faq.svg","pages/mobile/MobileFooter/MobileFooterDrawer/assets/icon_more_github.svg","pages/mobile/MobileFooter/MobileFooterDrawer/assets/icon_more_tutorial.svg","pages/mobile/MobileFooter/MobileFooterDrawer/assets/icon_more_whitepaper.svg","assets/svg/icon_check_linear.svg","pages/mobile/MobileFooter/MobileFooterDrawer/index.tsx","components/LanguageSelector/assets/icon_check_circle.svg","components/LanguageSelector/assets/icon_lang_en.svg","components/LanguageSelector/assets/icon_lang_es.svg","components/LanguageSelector/assets/icon_lang_fr.svg","components/LanguageSelector/assets/icon_lang_jp.svg","components/LanguageSelector/assets/icon_lang_th.svg","components/LanguageSelector/assets/icon_lang_tr.svg","components/LanguageSelector/assets/icon_lang_vn.svg","components/LanguageSelector/index.tsx","pages/mobile/MobileFooter/MobileLanguageSelector/index.tsx","pages/mobile/MobileFooter/index.tsx","features/transaction/transactionSlice.ts","features/transaction/hook.ts","features/transaction/PendingTx/assets/icon_refresh_solid.svg","features/transaction/PendingTx/index.tsx","assets/images/wallets/wallet-connect.svg","assets/svg/icon_impersonator.svg","features/user/UserAddressStatus/StatusIcon/Identicon.tsx","features/user/UserAddressStatus/StatusIcon/index.tsx","features/user/UserAddressStatus/index.tsx","components/AddQuotesButton/assets/icon_acct_metamask.svg","components/AddQuotesButton/index.tsx","pages/components/MintToken/assets/icon_acct_faucet.svg","pages/components/MintToken/index.tsx","features/balance/BalanceList/BalanceItem.tsx","features/balance/BalanceList/BalanceItemMobile/index.tsx","features/balance/BalanceList/index.tsx","features/user/UserAddressModal/DisconnectBtn/index.tsx","features/wallet/SwitchWalletButton/index.tsx","components/Copied/assets/icon_acct_copy.svg","connectors/privy/PrivyAccountDetailModal/PrivyAccountDetailModalContent/assets/icon_export_16.svg","components/Copied/index.tsx","connectors/privy/PrivyAccountDetailBtn/assets/icon_acct_privy_qr.svg","connectors/privy/PrivyAccountDetailModal/PrivyAccountDetailModalContent/index.tsx","connectors/privy/PrivyAccountDetailModal/index.tsx","features/user/UserAddressModal/assets/icon_acct_new.svg","connectors/privy/PrivyAccountDetailBtn/index.tsx","features/user/UserAddressModal/UserAddress.tsx","features/user/UserAddressButton/UserAddressDrawer/index.tsx","features/user/UserAddressButton/index.tsx","assets/svg/icon_wallet_mobile.svg","features/wallet/WalletConnectButton/index.tsx","layout/Header/Web3Status.tsx","components/IpBlocker/assets/icon_ip_blcok.svg","components/IpBlocker/index.tsx","pages/mobile/MobileHeader/NetworkSwitchDrawer/index.tsx","pages/mobile/MobileHeader/index.tsx","constants/routes.tsx","components/List/SocialList/index.tsx","layout/Footer/index.tsx","layout/Header/assets/rocket.svg","assets/svg/icon_more_analytics.svg","assets/svg/icon_more_github.svg","layout/Header/headerMenuDropdown/assets/icon_acct_new.svg","layout/Header/headerMenuDropdown/assets/icon_chevron_d_dark.svg","layout/Header/headerMenuDropdown/assets/icon_more_academy.svg","layout/Header/headerMenuDropdown/assets/icon_more_docs.svg","layout/Header/headerMenuDropdown/assets/icon_more_faq.svg","layout/Header/headerMenuDropdown/assets/icon_more_whitepaper.svg","layout/Header/headerMenuDropdown/HeaderMenuDropdown.tsx","layout/Header/Menu.tsx","layout/Header/TutorialButton/assets/icon_nav_tutorial.svg","layout/Header/TutorialButton/assets/icon_nav_tutorial_d.svg","assets/svg/icon_chevron_d_dark.svg","layout/Header/TutorialButton/index.tsx","layout/Header/Web3Network.tsx","layout/Header/index.tsx","layout/main.tsx","layout/index.tsx","utils/sharepnl.ts","constants/trade/pnlShare.tsx","utils/trade/pnlShare/index.ts","hooks/trade/useTradePositionNode.tsx","hooks/trade/usePnlSharePanel.tsx","components/Card/PnlShareCard/asset/logo_light.svg","components/Card/PnlShareCard/index.tsx","components/Modal/PnlShareModal/asset/copy_icon.svg","components/Modal/PnlShareModal/asset/download_icon.svg","components/Modal/PnlShareModal/asset/tweet_icon.svg","components/Modal/PnlShareModal/PnlShareModalContent/index.tsx","components/Modal/PnlShareModal/index.tsx","components/Modal/TokenExchangeModal/index.tsx","features/user/UserAddressModal/CustomRPC/index.tsx","features/user/UserAddressModal/UserAddressModalContent.tsx","features/user/UserAddressModal/index.tsx","layout/PageLayout/index.tsx","components/Analytics/GoogleAnalyticsReporter.tsx","pages/components/MintToaster/assets/icon_close.svg","components/TermModal/TermModalContent/index.tsx","components/TermModal/index.tsx","pages/components/MintToaster/index.tsx","features/wallet/WalletModal/index.tsx","pages/components/WalletStatus/GlobalWalletModal/index.tsx","pages/mobile/PortfolioMobile/PortfolioPageConnectionCheck/index.tsx","pages/GlobalComponent.tsx","features/account/GlobalEffect/index.tsx","features/balance/GlobalEffect/index.tsx","features/chain/GlobalEffect/index.tsx","features/chart/globalEffect.tsx","features/earn/GlobalEffect/index.tsx","features/futures/GlobalEffect/index.tsx","features/global/GlobalEffect/index.tsx","hooks/contract/useIsBlacklisted.tsx","hooks/useOnChainReferralCodeChecker.ts","features/pair/GlobalEffect/index.tsx","constants/config/index.ts","features/config/slice.ts","features/config/GlobalEffect/index.tsx","features/trade/GlobalEffect/index.tsx","features/transaction/useTxNotify.tsx","hooks/useEventMapping.ts","features/transaction/GlobalEffect/index.tsx","features/user/EventListener/index.tsx","features/user/GlobalEffect/index.tsx","features/wallet/GlobalEffect/index.tsx","features/web3/GlobalEffect/index.tsx","pages/GlobalEffect.tsx","pages/App.tsx","utils/account.ts","features/account/actions.ts","features/account/slice.ts","features/market/slice.ts","features/store.ts","layout/AntDConfigProvider.tsx","ProviderWrapper.tsx","serviceWorker/serviceWorkerRegistration.ts","indexWrap.tsx","index.tsx","utils/chain.tsx","utils/index.ts","utils/numberUtil.ts","utils/storage.ts","utils/token.ts","assets/images/earningRules|sync|/^/.//.*/.png$","assets/svg/chain/shareIcon|sync|/^/.//.*/.svg$","components/Card/PnlShareCard/asset/level/token|sync|/^/.//.*/.png$","components/Card/PnlShareCard/asset/level/token|sync|/^/.//.*//default/.png$","components/Card/PnlShareCard/asset/level|sync|/^/.//.*/.png$","locales|sync|/^/.//.*//campaign/.json$","locales|sync|/^/.//.*//common/.json$","locales|sync|/^/.//.*//contractErrors/.json$","locales|sync|/^/.//.*//errors/.json$","locales|sync|/^/.//.*//header/.json$","locales|sync|/^/.//.*//launchpad/.json$","locales|sync|/^/.//.*//mobile/.json$","locales|sync|/^/.//.*//modal/.json$","locales|sync|/^/.//.*//notification/.json$","locales|sync|/^/.//.*//odyssey/.json$","locales|sync|/^/.//.*//spot/.json$","locales|sync|/^/.//.*//tgp/.json$","locales|sync|/^/.//.*//tooltip/.json$","locales|sync|/^/.//.*//year2024Summary/.json$","../webpack/bootstrap","../webpack/runtime/amd options","../webpack/runtime/chunk loaded","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/runtimeId","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","../webpack/runtime/nonce","../webpack/startup"],"sourcesContent":["import './index.less';\n\nimport { AbstractTooltipProps } from 'antd/lib/tooltip';\nimport BN from 'bignumber.js';\nimport classNames from 'classnames';\nimport { BigNumber, BigNumberish } from 'ethers';\nimport React, { FC, ReactNode, useCallback, useMemo } from 'react';\nimport CountUp, { CountUpProps } from 'react-countup';\n\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { bNToS, formatDisplayNumber, formatEther, formatNumber, toBN, toWad } from '@/utils/numberUtil';\n\nimport { Tooltip } from '../ToolTip';\ninterface IFormatNumberTooltipWrapProps {\n num: BigNumberish | BN;\n formattedNumStr?: string | undefined;\n colorShader?: boolean;\n isBold?: boolean;\n isShowTBMK?: boolean;\n toolTipProps?: AbstractTooltipProps;\n showToolTip?: boolean;\n prefix?: string;\n suffix?: string;\n colorSuffix?: boolean;\n isShowApproximatelyEqualTo?: boolean;\n showZeroIfNegative?: boolean;\n countUpProps?: Omit;\n showPositive?: boolean;\n minDecimalPlaces?: number;\n isUseMockNumber?: boolean;\n isShowSuffixInTooltip?: boolean;\n}\n\ntype DisplayStrWithCountUpTypes = {\n num: BN;\n iProps?: Omit;\n formattedNumStr?: string;\n isShowTBMK?: boolean;\n};\n/**\n * TODO: temp for start\n * @param num\n * @returns\n */\nexport function negativeNumberColor(num: BN): string {\n return toBN(num).gte(0) ? '#14B84B' : '#FF6666';\n}\n\nconst DisplayStrWithCountUp: FC = ({ num, iProps }) => {\n // get number decimals;\n\n const defaultProps = {\n duration: 1,\n useEasing: true,\n useGrouping: true,\n preserveValue: true,\n ...iProps,\n decimals: 9,\n } as CountUpProps;\n const formattingFn = useCallback((value: number | null) => {\n const formatNum = formatDisplayNumber({ num: value || 0, type: 'price' });\n return formatNum;\n }, []);\n\n return (\n \n );\n};\nconst formatNumberTooltipWrap: FC = function ({\n num,\n formattedNumStr,\n colorShader = false,\n isBold = false,\n isShowTBMK = false,\n toolTipProps,\n prefix,\n suffix,\n showToolTip = true,\n countUpProps,\n showPositive,\n colorSuffix = false,\n isShowApproximatelyEqualTo,\n minDecimalPlaces,\n showZeroIfNegative,\n isUseMockNumber = false,\n isShowSuffixInTooltip = false,\n}) {\n let numRes = toBN(isUseMockNumber ? '1234567899876' : num || '');\n if (numRes.lt(0) && showZeroIfNegative) {\n numRes = toBN(0);\n }\n function displayStrWithCountUp(num: BN, disPlayStr: string) {\n return countUpProps && !num.isNaN() && !num.isZero() ? (\n \n ) : (\n disPlayStr\n );\n }\n\n const suffixDom = suffix && {suffix};\n\n function showColorNumber(colorShader: boolean, num: BN, disPlayStr: string, isBold = false): JSX.Element {\n if (isBold) {\n return colorShader && !num.eq(0) ? (\n \n \n {prefix}\n {displayStrWithCountUp(num, disPlayStr)}\n \n {suffixDom}\n \n ) : (\n \n \n {prefix}\n {displayStrWithCountUp(num, disPlayStr)}\n \n {suffixDom}\n \n );\n }\n return colorShader && !num.eq(0) ? (\n \n \n {prefix}\n {displayStrWithCountUp(num, disPlayStr)}\n {colorSuffix && suffixDom}\n \n {!colorSuffix && suffixDom}\n \n ) : (\n \n \n {prefix}\n {displayStrWithCountUp(num, disPlayStr)}\n \n {suffixDom}\n \n );\n }\n\n let displayNumStr = numRes.eq(0) ? '0.00' : numRes.toString();\n if (formattedNumStr) {\n displayNumStr = formattedNumStr;\n } else {\n displayNumStr = formatDisplayNumber({\n num: numRes,\n showPositive,\n isShowTBMK,\n isShowApproximatelyEqualTo,\n minDecimalPlaces,\n });\n }\n\n if (prefix === '$') {\n if (displayNumStr.startsWith('-')) {\n prefix = '-$';\n displayNumStr = displayNumStr.slice(1);\n }\n if (displayNumStr.startsWith('+')) {\n prefix = '+$';\n displayNumStr = displayNumStr.slice(1);\n }\n if (displayNumStr.startsWith('<')) {\n prefix = '<$';\n displayNumStr = displayNumStr.slice(1);\n }\n }\n\n return showToolTip && !numRes.eq(0) ? (\n \n {showColorNumber(colorShader, numRes, displayNumStr, isBold)}\n \n ) : (\n showColorNumber(colorShader, numRes, displayNumStr, isBold)\n );\n};\n\n/**\n * formatNumberWithTooltip\n * @param num orgin number\n * @param showTooltip Whether tooltip is displayed\n * @param colorShader Whether to color negative numbers,\n * @returns\n */\nexport type FormatNumberWithTooltipType = Omit;\nexport const formatNumberWithTooltip = ({\n num,\n colorShader = false,\n isBold = false,\n isShowTBMK = false,\n toolTipProps,\n prefix,\n suffix,\n showPositive,\n colorSuffix,\n countUpProps,\n isShowApproximatelyEqualTo,\n showZeroIfNegative,\n showToolTip,\n minDecimalPlaces,\n isUseMockNumber,\n isShowSuffixInTooltip,\n}: FormatNumberWithTooltipType): React.ReactNode => {\n return formatNumberTooltipWrap({\n num,\n colorShader,\n isBold,\n toolTipProps,\n isShowTBMK,\n prefix,\n suffix,\n colorSuffix,\n countUpProps,\n showPositive,\n isShowApproximatelyEqualTo,\n showToolTip,\n minDecimalPlaces,\n showZeroIfNegative,\n isUseMockNumber,\n isShowSuffixInTooltip,\n });\n};\n\n/**\n * format price num display\n * @param num price\n * @param decimals default decimals\n * @param colorShader is show diff color\n * @param keepMaxOriginalNumber is keep original number\n * @returns\n */\nexport const formatPriceNumberWithTooltip = ({\n num,\n colorShader = false,\n isOperateNum = false,\n isShowTBMK = false,\n prefix,\n isShowApproximatelyEqualTo,\n suffix,\n showPositive,\n significantDigits,\n roundingMode,\n}: {\n num: BigNumberish | BN;\n colorShader?: boolean;\n isBold?: boolean;\n toolTipProps?: AbstractTooltipProps;\n isOperateNum?: boolean;\n isShowTBMK?: boolean;\n prefix?: string;\n isShowApproximatelyEqualTo?: boolean;\n suffix?: string;\n showPositive?: boolean;\n significantDigits?: number;\n roundingMode?: BN.RoundingMode;\n}): React.ReactNode => {\n const formattedNumStr = formatDisplayNumber({\n num,\n type: 'price',\n isOperateNum,\n isShowApproximatelyEqualTo,\n showPositive,\n significantDigits,\n roundingMode,\n });\n return formatNumberTooltipWrap({\n num,\n formattedNumStr,\n colorShader,\n isShowTBMK,\n prefix,\n suffix,\n });\n};\n\n/**\n * format liquidation price num display\n * if price >= 1e6 display as 0\n * @param num price\n * @param decimals default decimals\n * @param colorShader is show diff color\n * @param keepMaxOriginalNumber is keep original number\n * @returns\n */\nexport const formatLiqPriceNumberWithTooltip = ({\n num,\n colorShader = false,\n suffix,\n ...options\n}: FormatNumberWithTooltipType): React.ReactNode => {\n const price = toBN(num);\n let formattedNumStr = '';\n if (!price.eq(0)) {\n if (price.abs().gte(1e6)) {\n num = Infinity;\n } else if (price.lt(0)) {\n num = 0;\n }\n formattedNumStr = formatDisplayNumber({ num, type: 'price' });\n }\n return formatNumberTooltipWrap({ num, formattedNumStr, colorShader, suffix, ...options });\n};\n\nexport const useFormatLiqPriceNumberWithTooltip = ({\n num,\n colorShader = false,\n}: {\n num: BigNumberish;\n colorShader?: boolean;\n}): React.ReactNode => {\n return useMemo(() => {\n return formatLiqPriceNumberWithTooltip({ num, colorShader });\n }, [colorShader, num]);\n};\n\nexport const formatStringWithTooltip = ({\n str,\n title,\n isBold = false,\n toolTipProps,\n}: {\n str: string;\n title: string;\n isBold?: boolean;\n toolTipProps?: AbstractTooltipProps;\n}): React.ReactNode => {\n return (\n \n {isBold ? {str} : {str}}\n \n );\n};\n\nexport function formatLeverageWithTooltip(leverage: BigNumber | undefined): ReactNode {\n const leverageFormatted = formatEther(leverage);\n if (leverage?.lt(0)) return <>-;\n return <>{leverage?.eq(0) ? 0 : leverage?.lt(toWad(0.1)) ? <>< 0.1 : formatNumber(leverageFormatted, 1)}x;\n // return (\n // \n // {leverage?.eq(0) ? 0 : leverage?.lt(toWad(0.1)) ? <>< 0.1 : formatNumber(leverageFormated, 2)}x\n // \n // );\n}\n\nexport function formatPercentage({\n percentage,\n hundredfold = true,\n colorShader = true,\n customTitle,\n decimals = 2,\n withThreshHold,\n prefix = '',\n suffix = '',\n isColorShaderWhiteIfZero = false,\n isHiddenIfZero = false,\n requirePlusSymbol = false,\n className,\n}: {\n percentage: number | string;\n hundredfold?: boolean;\n colorShader?: boolean;\n customTitle?: ReactNode;\n decimals?: number;\n withThreshHold?: boolean;\n prefix?: string;\n suffix?: string;\n isColorShaderWhiteIfZero?: boolean;\n isHiddenIfZero?: boolean;\n requirePlusSymbol?: boolean;\n className?: string;\n}): ReactNode {\n const percentageNumber = WrappedBigNumber.from(percentage).mul(hundredfold ? 100 : 1);\n let displayString = formatNumber(percentageNumber, decimals);\n\n if (withThreshHold) {\n const percentageBN = WrappedBigNumber.from(percentageNumber);\n const threshold = WrappedBigNumber.from(1 / 10 ** decimals);\n if (percentageBN.notEq(0) && percentageBN.abs().lt(threshold)) {\n displayString = '<' + (percentageNumber.gt(0) ? '' : '-') + threshold.stringValue;\n }\n }\n let colorShaderClassname = colorShader ? (percentageNumber.lt(0) ? 'text-danger' : 'text-success') : '';\n if (isColorShaderWhiteIfZero && percentageNumber.eq(0)) {\n colorShaderClassname = '';\n }\n if (percentageNumber.eq(0) && isHiddenIfZero) {\n return null;\n }\n let plusMinusSymbol = '';\n if (requirePlusSymbol) {\n if (percentageNumber.gt(0)) {\n plusMinusSymbol = '+';\n }\n }\n return (\n \n {`${plusMinusSymbol}${prefix}${displayString}%${suffix}`}\n \n );\n}\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { arbitrum, base, blast, blastSepolia, linea } from 'wagmi/chains';\n\nimport { getDappChainConfig } from '@/configs/chain';\nimport { IDappChainConfig, ISynfConfigInfo } from '@/types/chain';\nimport { BackendChainsConfig } from '@/types/config';\nimport { getChainConfigInfo } from '@/utils/chainConfig';\n\n/**\n * available chain id array\n */\nlet SUPPORTED_CHAIN_ID = [CHAIN_ID.BLAST, CHAIN_ID.BASE];\n\nif (process.env.REACT_APP_AVAILABLE_CHAIN_ID) {\n const arr = process.env.REACT_APP_AVAILABLE_CHAIN_ID.split(',');\n if (arr && arr.length > 0) {\n SUPPORTED_CHAIN_ID = arr.map((chainIdStr) => Number(chainIdStr));\n }\n}\n\n/**\n * display chain id array in [Select a Network] modal\n * Usually remove the test network\n */\nlet DISPLAYABLE_CHAIN_ID = [CHAIN_ID.BASE, CHAIN_ID.BLAST];\n\nif (process.env.REACT_APP_DISPLAYABLE_CHAIN_ID) {\n const arr = process.env.REACT_APP_DISPLAYABLE_CHAIN_ID.split(',');\n if (arr && arr.length > 0) {\n DISPLAYABLE_CHAIN_ID = arr.map((chainIdStr) => Number(chainIdStr));\n }\n}\n\n/**\n * default chain id for wrong network\n */\nconst DEFAULT_CHAIN_ID: number = parseInt(process.env.REACT_APP_CHAIN_ID ?? '1');\n\nconst chainConfigs: {\n [chainId: number]: ISynfConfigInfo;\n} = {\n [CHAIN_ID.LINEA]: getChainConfigInfo(CHAIN_ID.LINEA),\n [CHAIN_ID.BLASTSEPOLIA]: getChainConfigInfo(CHAIN_ID.BLASTSEPOLIA),\n [CHAIN_ID.BLAST]: getChainConfigInfo(CHAIN_ID.BLAST),\n [CHAIN_ID.ARBITRUM]: getChainConfigInfo(CHAIN_ID.ARBITRUM),\n [CHAIN_ID.BASE]: getChainConfigInfo(CHAIN_ID.BASE),\n};\n\nconst DAPP_CHAIN_CONFIGS: {\n [chainId: number]: IDappChainConfig;\n} = {\n [CHAIN_ID.LINEA]: getDappChainConfig(CHAIN_ID.LINEA, linea),\n [CHAIN_ID.BLASTSEPOLIA]: getDappChainConfig(CHAIN_ID.BLASTSEPOLIA, blastSepolia),\n [CHAIN_ID.BLAST]: getDappChainConfig(CHAIN_ID.BLAST, blast),\n [CHAIN_ID.ARBITRUM]: getDappChainConfig(CHAIN_ID.ARBITRUM, arbitrum),\n [CHAIN_ID.BASE]: getDappChainConfig(CHAIN_ID.BASE, base),\n};\n\nexport const getAllDisplayableChainMarketCustomPairs = (backendChainsConfig: BackendChainsConfig) =>\n DISPLAYABLE_CHAIN_ID.reduce(\n (prev, curr) => {\n return [\n ...prev,\n ...(backendChainsConfig[curr]?.marketCustomPairs || []).map((pairInfo) => ({ ...pairInfo, chainId: curr })),\n ];\n },\n [] as {\n id: string;\n title: string;\n pairs: string[];\n chainId: CHAIN_ID;\n }[],\n );\nexport const quoteTokenSymbolColors = [\n '#00BFBF',\n '#00CC99',\n '#1B9844',\n '#30E84F',\n '#396A93',\n '#4D88FF',\n '#5555F6',\n '#5C5CD6',\n '#6495ED',\n '#66CCFF',\n '#7C67E4',\n '#88CC00',\n '#8FBC8F',\n '#99BBFF',\n '#BF40BF',\n '#C270C2',\n '#CCAA00',\n '#F98686',\n '#FF69B4',\n '#FF8C00',\n '#FF4500',\n '#FFD700',\n '#ADFF2F',\n '#7FFF00',\n '#32CD32',\n '#00FA9A',\n '#00CED1',\n '#4682B4',\n '#4169E1',\n '#8A2BE2',\n '#9400D3',\n '#9932CC',\n '#8B008B',\n '#FF1493',\n '#FF6347',\n '#FF7F50',\n '#FFDAB9',\n '#EEE8AA',\n '#98FB98',\n '#AFEEEE',\n '#DDA0DD',\n];\n\nconst CHAIN_NAME_ID: { [key: string]: number } = {\n base: CHAIN_ID.BASE,\n blast: CHAIN_ID.BLAST,\n blastsepolia: CHAIN_ID.BLASTSEPOLIA,\n arbitrum: CHAIN_ID.ARBITRUM,\n linea: CHAIN_ID.LINEA,\n goerli: CHAIN_ID.GOERLI,\n};\n\nexport const SHOW_BUILD_CHAIN = [CHAIN_ID.BLAST, CHAIN_ID.BASE];\n\nexport {\n CHAIN_ID,\n CHAIN_NAME_ID,\n chainConfigs,\n DAPP_CHAIN_CONFIGS,\n DEFAULT_CHAIN_ID,\n DISPLAYABLE_CHAIN_ID,\n SUPPORTED_CHAIN_ID,\n};\n","export const DEFAULT_EMPTY_ACCOUNT = '0x0000000000000000000000000000000000000000';\n// leverage\nexport const DynamicLeverage = 'DynamicLeverage';\n\n// liquidity\nexport const CREATE_POOL_KEY = 'CREATING_POOL';\nexport enum LIQUIDITY_FORM_TYPE {\n CREATE = 'CREATE',\n ADD_REMOVE = 'ADD_REMOVE',\n}\nexport enum PAIR_PAGE_TYPE {\n TRADE = 'trade',\n EARN = 'earn',\n}\n\nexport const enum TRADE_LEVERAGE_THRESHOLDS {\n MIN = 0.1,\n MAX = 10,\n ACTUAL_MAX = 9.9,\n DEFAULT = 5,\n STEP = 0.1,\n ACTUAL_MAX_STEP = 0.1,\n}\n\n/**\n * show warning when slippage is higher than threshold\n */\nexport const enum SLIPPAGE_THRESHOLDS {\n LOW = 0.1,\n HIGH = 5, // show warning when bigger than 5%\n MIN = 0.01,\n MAX = 5,\n DEFAULT = 0.1,\n}\n\nexport const enum DEADLINE_THRESHOLDS {\n MIN = 1,\n MAX = 60,\n DEFAULT = 5,\n}\n\nexport enum FLEX_TABLE_TYPE {\n ACCOUNTS = 'ACCOUNTS',\n SEARCH = 'SEARCH',\n}\n\nexport const enum EARN_ALPHA_THRESHOLDS {\n MIN = 1,\n MAX = 5,\n DEFAULT = 4,\n DEFAULT_TICK = 20,\n DEFAULT_IMR = 0.1,\n}\n\nexport enum TABLE_TYPES {\n POSITION = 'Position',\n LIQUIDITY = 'Liquidity',\n LIQUIDITY_HISTORY = 'Liquidity History',\n OPEN_ORDERS = 'Open Orders',\n TRADE_HISTORY = 'Trade History',\n ORDER_HISTORY = 'Order History',\n TRANSFERS = 'Transfers',\n FUNDING = 'Funding',\n TRADING_PAIR = 'Trading Pair',\n ASSETS = 'Assets',\n PORTFOLIO_POSITIONS = 'Portfolio Positions',\n PORTFOLIO_LIQUIDITIES = 'Portfolio Liquidities',\n PORTFOLIO_OPEN_ORDERS = 'Portfolio Open Orders',\n EARN_LIST = 'Earn List',\n VOLUME_DETAIL = 'Volume-Detail',\n HISTORY = 'HISTORY',\n}\n\nexport const DEFAULT_DECIMALS = 18;\nexport const INPUT_NUMBER_STEP = 0.001;\n\nexport enum SEARCH_PAIR_SORTERS {\n FAVORITE = 'favorite',\n EARN_FAVORITE = 'earn.favorite',\n VOLUME_24H = '24HV',\n CHANGE_24H = '24HC',\n BOOSTED_LIQUIDITY = 'effectLiq',\n TVL = 'tvl',\n OI = 'oi',\n APY = 'apy',\n}\nexport const SEARCH_PAIR_SORTERS_TRANSLATION = {\n [SEARCH_PAIR_SORTERS.FAVORITE]: '24HV',\n [SEARCH_PAIR_SORTERS.EARN_FAVORITE]: 'earn.estApy',\n [SEARCH_PAIR_SORTERS.VOLUME_24H]: '24HV',\n [SEARCH_PAIR_SORTERS.CHANGE_24H]: '24HC',\n [SEARCH_PAIR_SORTERS.TVL]: 'tvl',\n [SEARCH_PAIR_SORTERS.OI]: 'oiS',\n [SEARCH_PAIR_SORTERS.APY]: 'table.liqApy',\n [SEARCH_PAIR_SORTERS.BOOSTED_LIQUIDITY]: 'effectLiq',\n};\nexport enum SEARCH_PAIR_DIRECTION {\n ASC = 'asc',\n DSC = 'desc',\n}\n\nexport const BATCH_INSTRUMENT_SIZE = 20;\n\nexport const SIGNIFICANT_DIGITS = 5;\n\nexport const PAIR_RATIO_BASE = 10000;\nexport const MMR_RATIO = 0.2;\nexport const TVL_THRESHHOLD = 0;\nexport const GLOBAL_TVL_THRESHHOLD = 100;\nexport const MARK_FAIR_DEV_THRESHHOLD = 0.005;\nexport const AIP_DOMAIN = 'https://api.synfutures.com';\n","const prefix = 'syn';\n\n/**\n * localStorage start\n */\nexport const LOCAL_THEME = `${prefix}-theme`;\nexport const ALL_USER_INFO = `${prefix}-all-user-info`;\nexport const LAST_POSITIONS_NUMBER = 'LAST_POSITIONS_NUMBER';\nexport const LAST_HISTORY_UNDERLYING_ADDR = 'LAST_HISTORY_UNDERLYING_ADDR';\nexport const MOBILE_ROUTE_BEFORE_SEARCH = 'MOBILE_ROUTE_BEFORE_SEARCH';\nexport const SYN_AGREE_TERM = `syn-agree-term`;\nexport const INITIAL_CHAIN_SELECTED = 'syn-initial-chain-selected';\nexport const GLOBAL_CONFIG = `global-config`;\nexport const GOT_PRICE_ROUNDED = `got-price-rounded`;\nexport const HIDE_HISTORY_TOOLTIP = `hide-history-tooltip`;\nexport const MOBILE_MINT_TOASTER = `mobile-mint-toaster`;\nexport const HIDE_REFRESH_HISTORY_DATA = 'hide_refresh_history_data';\nexport const FIRST_MYSTERY_BOX_POPPED = 'first_mystery_box_popped';\nexport const MOBILE_SHOW_CHART = 'mobile_show_chart';\nexport const MOBILE_SHOW_CHART_EARN = 'mobile_show_chart_earn';\nexport const CLAIM_TOKEN_MODAL_OPENED = 'claim_token_modal_opened';\nexport const TOKEN_ADDRESS_WARNING = 'token_address_warning';\nexport const SIGN_UP_SKIPPED = 'sign_up_skipped';\nexport const LAST_EPOCH_OPENED = 'last_epoch_opened';\nexport const PRICE_BASIS_FOR_PNL = 'price_basis_for_pnl';\nexport const HIDE_TVL_MODAL = 'HIDE_TVL_MODAL';\nexport const NO_SHOW_PNL_NOTIFICATION = 'NO_SHOW_PNL_NOTIFICATION';\nexport const WALLET_TYPE = 'WALLET_TYPE';\nexport const SEARCH_PAIR_SORTER = 'SEARCH_PAIR_SORTER';\nexport const SEARCH_PAIR_SORTER_DIRECTION = 'SEARCH_PAIR_SORTER_DIRECTION';\nexport const SYN_YEAR2024_SUMMARY = 'SYN_YEAR2024_SUMMARY_0';\nexport const GET_SYN_SPOT_SWAP_BUY_TOKEN = (chainId: number) => `SYN_SPOT_SWAP_BUY_TOKEN_${chainId}`;\nexport const GET_SYN_SPOT_SWAP_SELL_TOKEN = (chainId: number) => `SYN_SPOT_SWAP_SELL_TOKEN_${chainId}`;\n/**\n * localStorage end\n */\n\n/**\n * localForage start\n */\n// the localforage sometimes needs to be clean for newer releases\n// to achieve this simply bump up the keys down\n\nexport const S3_PAIRS_KEY = 'S3_PAIRS-3.4.2';\nexport const PAIRS_FAVORITES_KEY = 'PAIRS_FAVORITES-3.4.2';\nexport const LOCAL_SIGNED_UP = 'LOCAL_SIGNED_UP';\nexport const APP_CHAIN_ID = 'APP_CHAIN_ID';\nexport const LEVERAGE_CHOSEN = 'LEVERAGE_CHOSEN_3.4.2';\nexport const PAIR_CHOSEN = 'PAIR_CHOSEN_3.4.2';\nexport const SIGNATURE_FOR_ODYSSEY = 'SIGNATURE_FOR_ODYSSEY_1';\nexport const REFERRAL_CODE_FOR_ODYSSEY = 'REFERRAL_CODE_FOR_ODYSSEY_2';\nexport const JWT_FOR_ODYSSEY = 'JWT_FOR_ODYSSEY';\nexport const TGP_SHARED_JOIN_STATUS = 'tgp_shared_join_status';\nexport const JWT_FOR_TGP = 'JWT_FOR_TGP';\nexport const LOCAL_RPC_URL = 'LOCAL_RPC_URL';\nexport const PAIRS_PARTICIPATED = 'PAIRS_PARTICIPATED';\n\n/**\n * localForage end\n */\n","import i18n from 'i18next';\nimport LanguageDetector from 'i18next-browser-languagedetector';\nimport XHR from 'i18next-xhr-backend';\nimport { initReactI18next } from 'react-i18next';\n\n// import homepageTr from '@/locales/tr/homepage.json';\n// import commonKr from '@/locales/kr/common.json';\n// import homepageKr from '@/locales/kr/homepage.json';\n// import commonVi from '@/locales/vi/common.json';\n// import homepageVi from '@/locales/vi/homepage.json';\nimport { LANGUAGE_KEY } from './constants';\n\nfunction getTranConfigs(lang: string) {\n return {\n translation: {\n launchpad: require(`@/locales/${lang}/launchpad.json`),\n header: require(`@/locales/${lang}/header.json`),\n modal: require(`@/locales/${lang}/modal.json`),\n odyssey: require(`@/locales/${lang}/odyssey.json`),\n tgp: require(`@/locales/${lang}/tgp.json`),\n common: require(`@/locales/${lang}/common.json`),\n notification: require(`@/locales/${lang}/notification.json`),\n mobile: require(`@/locales/${lang}/mobile.json`),\n errors: require(`@/locales/${lang}/errors.json`),\n tooltip: require(`@/locales/${lang}/tooltip.json`),\n campaign: require(`@/locales/${lang}/campaign.json`),\n year2024Summary: require(`@/locales/${lang}/year2024Summary.json`),\n spot: require(`@/locales/${lang}/spot.json`),\n ...require(`@/locales/${lang}/contractErrors.json`),\n },\n };\n}\n\nconst resources = {\n en: getTranConfigs('en'),\n tr: getTranConfigs('tr'),\n // kr: getTranConfigs('kr'),\n vi: getTranConfigs('vi'),\n es: getTranConfigs('es'),\n fr: getTranConfigs('fr'),\n ja: getTranConfigs('ja'),\n th: getTranConfigs('th'),\n};\n\ni18n\n .use(XHR)\n .use(LanguageDetector)\n .use(initReactI18next)\n .init({\n resources,\n lng: localStorage.getItem(LANGUAGE_KEY) || 'en',\n // backend: {\n // loadPath: `@/locales/{{lng}}/*.json`,\n // },\n react: {\n useSuspense: true,\n },\n fallbackLng: 'en',\n preload: [localStorage.getItem(LANGUAGE_KEY) || 'en'],\n interpolation: { escapeValue: false },\n });\n\nexport default i18n;\n","import { isMobile } from 'react-device-detect';\nimport ReactGA, { EventArgs } from 'react-ga';\n\nexport function catchException(error: Error | unknown): void {\n console.log('sending error to sentry', error);\n // Sentry.captureException(error);\n}\n\nexport enum GaCategory {\n SIGN_UP = 'SIGN_UP',\n EMERGENCY = 'EMERGENCY',\n CAMPAIGN = 'Campaign',\n ACKNOWLEDGEMENTS = 'Acknowledgements',\n TOP_NOTICE = 'Top Notice',\n FOOTER = 'Footer',\n HEADER = 'Header',\n WALLET_MODULE = 'WalletModule',\n TRADE_BANNER_1 = 'Trade-Banner1',\n TRADE_BANNER_2 = 'Trade-Banner2',\n TRADE_BANNER_3 = 'Trade-Banner3',\n TRADE_BODY = 'Trade-Body',\n EARN_CARD_WRAPPER = 'Earn-CardWrapper',\n ADD_LIQUIDITY_MODULE = 'AddLiquidityModule',\n REMOVE_LIQUIDITY_MODULE = 'RemoveLiquidityModule',\n EARN_BODY = 'Earn-Body',\n SETTING_MODULE = 'SettingModule',\n ACCOUNTS_BODY = 'Accounts-Body',\n DEP_WITH_MODULE = 'DepWdrlModule',\n HISTORY_BODY = 'History-Body',\n TRADE_PAIR_BANNER = 'TradePair-Banner',\n TRADE_PAIR_PIE_CHART = 'TradePair-PriceChart',\n TRADE_PAIR_CARD_WRAPPER = 'TradePair-CardWrapper',\n EARN_PAIR_CARD_WRAPPER = 'EarnPair-CardWrapper',\n TRADE_PAIR_HEADER = 'TradePair-Header',\n TRADE_PAIR_ACCOUNT_TABLE = 'TradePair-AccountTable',\n CLOSE_MODULE = 'CloseModule',\n TRANSACTION = 'Transaction',\n TELL_A_FRIEND = 'Tell A Friend',\n TELL_A_FRIEND_INVITATION_LINK = 'Tell A Friend-Invitation Link',\n TELL_A_FRIEND_NFT_REWARDS = 'Tell A Friend-NFT Rewards',\n}\n\nexport function gaEvent({ category, action, label, value, nonInteraction }: EventArgs): void {\n ReactGA.event({\n category,\n action,\n value,\n label,\n nonInteraction,\n });\n}\n\nexport function initReactGA(): void {\n const GOOGLE_ANALYTICS_ID: string | undefined = process.env.REACT_APP_GOOGLE_ANALYTICS_ID;\n if (typeof GOOGLE_ANALYTICS_ID === 'string' && GOOGLE_ANALYTICS_ID && GOOGLE_ANALYTICS_ID !== 'test') {\n const testMode = process.env.NODE_ENV === 'test';\n ReactGA.initialize(GOOGLE_ANALYTICS_ID, { testMode: testMode });\n ReactGA.set({\n customBrowserType: !isMobile\n ? 'desktop'\n : 'web3' in window || 'ethereum' in window\n ? 'mobileWeb3'\n : 'mobileRegular',\n });\n } else {\n ReactGA.initialize('test', { testMode: true, debug: true });\n }\n}\n\nexport function setUserId(userId: string): void {\n ReactGA.set({ userId: userId });\n}\n","import '@/utils/log';\n\nimport spindl from '@spindl-xyz/attribution';\nimport { notification } from 'antd';\nimport BigNumber from 'bignumber.js';\nimport dayjs from 'dayjs';\nimport duration from 'dayjs/plugin/duration';\nimport relativeTime from 'dayjs/plugin/relativeTime';\nimport utc from 'dayjs/plugin/utc';\nimport { enableMapSet } from 'immer';\nimport VConsole from 'vconsole';\n\nimport { registerWorkers } from '@/worker/factory';\n\nimport { isMobile } from 'react-device-detect';\nimport { initReactGA } from './utils/analytics';\nimport { initSentry } from './utils/sentry';\nenableMapSet();\n\ninitSentry();\ninitReactGA();\n\nregisterWorkers();\n\nnotification.config({\n duration: 9,\n placement: 'topRight',\n top: 70,\n});\n\n// bigNumber decimal config\nBigNumber.config({ DECIMAL_PLACES: 18 });\n\ndayjs.extend(utc);\ndayjs.extend(duration);\ndayjs.extend(relativeTime);\n\nif (process.env.REACT_APP_APP_ENABLE_VCONSOLE === 'true' && isMobile) {\n new VConsole();\n}\n\ndeclare global {\n interface BigInt {\n toJSON(): string;\n }\n}\n\nBigInt.prototype.toJSON = function () {\n return this.toString();\n};\n\nif (process.env.REACT_APP_SPINDL_KEY) {\n spindl.configure({\n sdkKey: process.env.REACT_APP_SPINDL_KEY || '',\n debugMode: false, // we recommend only to have debugMode=true when testing.\n // you will see console.logs of emitted events in browser\n });\n\n spindl.enableAutoPageViews();\n}\n","import * as Sentry from '@sentry/react';\nimport { deviceType, isMobile } from 'react-device-detect';\n\nexport function initSentry(environment?: string): void {\n if (process.env.NODE_ENV !== 'development' && process.env.REACT_APP_AWS_ENV !== 'dev') {\n Sentry.init({\n dsn: 'https://84530055c61db7706210ac305ab9d9c4@o4508755617382400.ingest.us.sentry.io/4508755622100992',\n // integrations: [Sentry.replayIntegration()],\n // // Session Replay\n // replaysSessionSampleRate: 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production.\n // replaysOnErrorSampleRate: 1.0, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur.\n release: '1.0',\n // We recommend adjusting this value in production, or using tracesSampler\n // for finer control\n tracesSampleRate: 1.0,\n environment,\n defaultIntegrations: false,\n });\n\n Sentry.setContext('env', {\n NODE_ENV: process?.env?.NODE_ENV,\n PUBLIC_URL: process?.env?.PUBLIC_URL,\n PUBLISH_TIME: process?.env?.PUBLISH_TIME,\n REACT_APP_API_ENV: process?.env?.REACT_APP_API_ENV,\n REACT_APP_APP_DOMAIN: process?.env?.REACT_APP_APP_DOMAIN,\n REACT_APP_AWS_ENV: process?.env?.REACT_APP_AWS_ENV,\n REACT_APP_CHAIN_ID: process?.env?.REACT_APP_CHAIN_ID,\n SITE_VERSION: process?.env?.SITE_VERSION,\n });\n\n const deviceInfo = {\n userAgent: navigator?.userAgent,\n platform: navigator?.platform,\n language: navigator?.language,\n screenResolution: `${window?.screen?.width}x${window?.screen?.height}`,\n isMobile,\n deviceType,\n href: window?.location?.href,\n };\n\n Sentry.setContext('device', deviceInfo);\n\n if (window?.ethereum) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const ethereum = window.ethereum as any;\n\n Sentry.setContext('ethereum', {\n isMetaMask: ethereum?.isMetaMask,\n isRabby: ethereum?.isRabby,\n isTrust: ethereum?.isTrust,\n chainId: ethereum?.chainId,\n });\n }\n }\n}\n\nexport {};\n","export function getSynWorker(): Worker {\n return new Worker(new URL('@/worker/SynWorker.ts', import.meta.url));\n}\n\nexport function getUserWorker(): Worker {\n return new Worker(new URL('@/worker/UserWorker.ts', import.meta.url));\n}\n\nexport function registerWorkers(): void {\n try {\n window.userWorker = getUserWorker();\n window.synWorker = getSynWorker();\n } catch (error) {\n console.error('registerWorkers error:', error);\n }\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconClose = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 17,\n viewBox: \"0 0 16 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2.46967 3.34858C2.76256 3.05568 3.23744 3.05568 3.53033 3.34858L8 7.81825L12.4697 3.34858C12.7626 3.05568 13.2374 3.05568 13.5303 3.34858C13.8232 3.64147 13.8232 4.11634 13.5303 4.40924L9.06066 8.87891L13.5303 13.3486C13.8232 13.6415 13.8232 14.1163 13.5303 14.4092C13.2374 14.7021 12.7626 14.7021 12.4697 14.4092L8 9.93957L3.53033 14.4092C3.23744 14.7021 2.76256 14.7021 2.46967 14.4092C2.17678 14.1163 2.17678 13.6415 2.46967 13.3486L6.93934 8.87891L2.46967 4.40924C2.17678 4.11634 2.17678 3.64147 2.46967 3.34858Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconClose);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_close.c833536fefd9580d6dbdfc6b5c475089.svg\";","/**\n * @description Component-BigLoading\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst BigLoading: FC = function ({}) {\n const { deviceType } = useMediaQueryDevice();\n return (\n
\n \n \n \n
\n );\n};\n\nexport default BigLoading;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconNotificationInfo = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 41,\n height: 41,\n viewBox: \"0 0 41 41\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M36.7213 20.9258C36.7213 30.1308 29.2597 37.5925 20.0547 37.5925C10.8497 37.5925 3.388 30.1308 3.388 20.9258C3.388 11.7208 10.8497 4.25912 20.0547 4.25912C29.2597 4.25912 36.7213 11.7208 36.7213 20.9258ZM20.0547 28.8425C20.3862 28.8425 20.7041 28.7108 20.9385 28.4763C21.173 28.2419 21.3047 27.924 21.3047 27.5925V19.2591C21.3047 18.9276 21.173 18.6097 20.9385 18.3752C20.7041 18.1408 20.3862 18.0091 20.0547 18.0091C19.7231 18.0091 19.4052 18.1408 19.1708 18.3752C18.9364 18.6097 18.8047 18.9276 18.8047 19.2591V27.5925C18.8047 28.2825 19.3647 28.8425 20.0547 28.8425ZM20.0547 12.5925C20.4967 12.5925 20.9206 12.7681 21.2332 13.0806C21.5457 13.3932 21.7213 13.8171 21.7213 14.2591C21.7213 14.7012 21.5457 15.1251 21.2332 15.4376C20.9206 15.7502 20.4967 15.9258 20.0547 15.9258C19.6126 15.9258 19.1887 15.7502 18.8762 15.4376C18.5636 15.1251 18.388 14.7012 18.388 14.2591C18.388 13.8171 18.5636 13.3932 18.8762 13.0806C19.1887 12.7681 19.6126 12.5925 20.0547 12.5925Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconNotificationInfo);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_notification_info.0b343047f9346ecabf6ec5a65986c8ea.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconNotificationSuccess = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 41,\n height: 41,\n viewBox: \"0 0 41 41\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M36.7213 20.9258C36.7213 30.1308 29.2597 37.5925 20.0547 37.5925C10.8497 37.5925 3.388 30.1308 3.388 20.9258C3.388 11.7208 10.8497 4.25912 20.0547 4.25912C29.2597 4.25912 36.7213 11.7208 36.7213 20.9258ZM26.7713 15.8758C27.0054 16.1102 27.1369 16.4279 27.1369 16.7591C27.1369 17.0904 27.0054 17.4081 26.7713 17.6425L18.438 25.9758C18.2036 26.2099 17.8859 26.3414 17.5547 26.3414C17.2234 26.3414 16.9057 26.2099 16.6713 25.9758L13.338 22.6425C13.2152 22.528 13.1167 22.39 13.0484 22.2367C12.98 22.0834 12.9433 21.9178 12.9403 21.75C12.9374 21.5822 12.9683 21.4154 13.0311 21.2598C13.094 21.1041 13.1876 20.9628 13.3063 20.8441C13.425 20.7254 13.5664 20.6318 13.722 20.5689C13.8777 20.5061 14.0444 20.4752 14.2122 20.4781C14.38 20.4811 14.5456 20.5178 14.6989 20.5862C14.8522 20.6545 14.9902 20.753 15.1047 20.8758L17.5547 23.3258L21.2797 19.5991L25.0047 15.8758C25.239 15.6417 25.5567 15.5102 25.888 15.5102C26.2193 15.5102 26.537 15.6417 26.7713 15.8758Z\",\n fill: \"#14B84B\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconNotificationSuccess);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_notification_success.b34f3192a89a26e25d21711852c62481.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconNotificationWarning = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 41,\n height: 41,\n viewBox: \"0 0 41 41\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M20.0547 37.5925C29.2594 37.5925 36.7213 30.1305 36.7213 20.9258C36.7213 11.721 29.2594 4.25912 20.0547 4.25912C10.8499 4.25912 3.388 11.721 3.388 20.9258C3.388 30.1305 10.8499 37.5925 20.0547 37.5925ZM20.9385 13.3752C20.7041 13.1408 20.3862 13.0091 20.0547 13.0091C19.7231 13.0091 19.4052 13.1408 19.1708 13.3752C18.9364 13.6097 18.8047 13.9276 18.8047 14.2591V20.9258C18.8047 21.2573 18.9364 21.5753 19.1708 21.8097C19.4052 22.0441 19.7231 22.1758 20.0547 22.1758C20.3862 22.1758 20.7041 22.0441 20.9385 21.8097C21.173 21.5753 21.3047 21.2573 21.3047 20.9258V14.2591C21.3047 13.9276 21.173 13.6097 20.9385 13.3752ZM21.2332 27.1043C20.9206 27.4169 20.4967 27.5925 20.0547 27.5925C19.6126 27.5925 19.1887 27.4169 18.8762 27.1043C18.5636 26.7917 18.388 26.3678 18.388 25.9258C18.388 25.4838 18.5636 25.0598 18.8762 24.7473C19.1887 24.4347 19.6126 24.2591 20.0547 24.2591C20.4967 24.2591 20.9206 24.4347 21.2332 24.7473C21.5457 25.0598 21.7213 25.4838 21.7213 25.9258C21.7213 26.3678 21.5457 26.7917 21.2332 27.1043Z\",\n fill: \"#FF6666\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconNotificationWarning);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_notification_warning.ad3e6d67b930d166912cde4e7035de55.svg\";","import './index.less';\n\nimport { CloseButtonProps } from 'react-toastify';\n\nimport BigLoading from '../Loading/BigLoading';\nimport { ReactComponent as IconClose } from './assets/icon_close.svg';\n// import { ReactComponent as IconNotificationLoading } from './assets/icon_loading.svg';\nimport { ReactComponent as IconNotificationInfo } from './assets/icon_notification_info.svg';\nimport { ReactComponent as IconNotificationSuccess } from './assets/icon_notification_success.svg';\nimport { ReactComponent as IconNotificationError } from './assets/icon_notification_warning.svg';\n\nexport const CloseButton = ({ closeToast }: CloseButtonProps): JSX.Element => {\n return (\n {\n e.stopPropagation();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n closeToast(e as any);\n }}>\n );\n};\n\nexport const IconLoading = (): JSX.Element => {\n return (\n \n \n \n );\n};\n\nexport { IconClose, IconNotificationError, IconNotificationInfo, IconNotificationSuccess };\n","import { Connector } from 'wagmi';\n\nexport enum WalletType {\n METAMASK = 'metaMask',\n BIT_KEEP = 'bitget',\n COIN_98 = 'coin98',\n WALLET_CONNECT = 'walletConnect',\n OKX = 'okx',\n TRUST = 'trust',\n BINANCE = 'binance',\n BURRITO = 'burrito',\n COINBASE = 'coinbase',\n PRIVY = 'privy',\n RABBY = 'rabby',\n PHANTOM = 'phantom', // Add Phantom wallet type\n}\n\nexport interface IWeb3WalletInfo extends IWalletConfigInfo {\n connector?: Connector;\n isSocialWallet?: false;\n hideInstalled?: true;\n}\n\nexport interface ISocialWalletInfo extends IWalletConfigInfo {\n isSocialWallet: true;\n}\n\nexport type IWalletInfo =\n | (IWalletConfigInfo & {\n isSocialWallet: true;\n })\n | (IWeb3WalletInfo & {\n isSocialWallet?: false;\n });\n\nexport interface IWalletConfigInfo {\n id: string;\n idMobile?: string;\n type: WalletType;\n rdns?: string; // for inject wallet\n isSocialWallet?: boolean;\n name: string;\n icon: string;\n iconDark?: string;\n mobile?: true;\n mobileOnly?: true;\n mobileDeepLink?: string;\n downloadLink?: string;\n supportChainIds?: number[]; // adapt for walletConnect and binance wallet\n}\n\nexport interface IWalletConfigSetting {\n walletConfig: {\n [walletType: string]: IWalletConfigInfo;\n };\n\n supportedWallets: string[];\n socialWallets: string[];\n trendingWallets: string[];\n}\nexport enum WALLET_CONNECT_STATUS {\n UN_CONNECT = 'UnConnect',\n WRONG_NETWORK = 'WrongNetwork',\n CONNECTED = 'Connected',\n}\n\nexport interface IOnChainReferralCodeConfig {\n platform: {\n [platform: string]: number;\n };\n wallet: {\n [wallet: string]: number;\n };\n}\n","import { createAction, createAsyncThunk } from '@reduxjs/toolkit';\n\nimport { IWeb3WalletInfo } from '@/types/wallet';\nimport { User } from '@privy-io/react-auth';\n\nexport const connectWallet = createAsyncThunk('wallet/connect', async ({ wallet }: { wallet: IWeb3WalletInfo }) => {\n try {\n await wallet?.connector?.connect();\n } catch (e) {\n console.error('🚀 ~ file: actions.ts:8 ~ connectWal ~ e', e);\n }\n});\n\nexport const setPrivyUserAfterLogin = createAction<{\n user: User;\n isNewUser: boolean;\n wasAlreadyAuthenticated: boolean;\n loginMethod: string | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n linkedAccount: any | null;\n}>('wallet/setPrivyUserAfterLogin');\nexport const setWalletChainId = createAction<{ chainId: number | undefined }>('wallet/setWalletChainId');\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\n\nimport { WALLET_CONNECT_STATUS, WalletType } from '@/types/wallet';\n\nimport { WALLET_TYPE } from '@/constants/storage';\nimport type { User } from '@privy-io/react-auth';\nimport { AppState } from '../store';\nimport { setPrivyUserAfterLogin, setWalletChainId } from './actions';\n\nexport interface IWalletState {\n walletType: WalletType | undefined;\n walletConnectStatus: WALLET_CONNECT_STATUS;\n privyConnectInfo?: {\n user: User;\n isNewUser: boolean;\n wasAlreadyAuthenticated: boolean;\n loginMethod: string | null;\n };\n walletChainId: number | undefined;\n}\n\nexport const initialState: IWalletState = {\n walletType: undefined,\n walletConnectStatus: WALLET_CONNECT_STATUS.UN_CONNECT,\n privyConnectInfo: undefined,\n walletChainId: undefined,\n};\n\nexport const walletSlice = createSlice({\n name: 'wallet',\n initialState,\n reducers: {\n setWalletType: (state, { payload: { type } }: PayloadAction<{ type: WalletType | undefined }>) => {\n state.walletType = type;\n if (type) localStorage.setItem(WALLET_TYPE, type);\n else localStorage.removeItem(WALLET_TYPE);\n },\n setWalletConnectStatus: (state, { payload: { status } }: PayloadAction<{ status: WALLET_CONNECT_STATUS }>) => {\n state.walletConnectStatus = status;\n },\n },\n extraReducers: (builder) => {\n builder.addCase(setPrivyUserAfterLogin, (state, { payload }) => {\n if (payload) {\n state.privyConnectInfo = payload;\n }\n });\n builder.addCase(setWalletChainId, (state, { payload: { chainId } }) => {\n state.walletChainId = chainId;\n });\n },\n});\n\nexport const { setWalletType, setWalletConnectStatus } = walletSlice.actions;\n\nexport const selectWalletState = (state: AppState): IWalletState => state.wallet;\nexport const selectWalletType = (state: AppState): WalletType | undefined => state.wallet.walletType;\nexport const selectWalletConnectStatus = (state: AppState): WALLET_CONNECT_STATUS => state.wallet.walletConnectStatus;\nexport const selectWalletChainId = (state: AppState): number | undefined => state.wallet.walletChainId;\n\nexport default walletSlice.reducer;\n","import { useMemo } from 'react';\nimport { TypedUseSelectorHook, useDispatch, useSelector } from 'react-redux';\nimport { useLocation } from 'react-router-dom';\n\nimport type { AppDispatch, AppState } from '@/features/store';\n\n// Use throughout your app instead of plain `useDispatch` and `useSelector`\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const useAppDispatch = () => useDispatch();\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\n\nexport function useIsDetailPage(): boolean {\n const location = useLocation();\n const params = location.pathname.split('/');\n const isDetailPage = useMemo(() => {\n return params.length > 3;\n }, [params.length]);\n return isDetailPage;\n}\n\nexport function useIsPlainBgPage(): boolean {\n const location = useLocation();\n return useMemo(() => {\n return (\n location?.pathname.startsWith('/campaign') ||\n location?.pathname.startsWith('/portfolio') ||\n location?.pathname.startsWith('/market') ||\n location.pathname.startsWith('/odyssey') ||\n location.pathname.startsWith('/tgp')\n );\n }, [location?.pathname]);\n}\n\nexport function useIsEarnPage(): boolean {\n const location = useLocation();\n return useMemo(() => {\n return location?.pathname === '/earn';\n }, [location?.pathname]);\n}\n\nexport function useQueryParam(key: string): string | null {\n const location = useLocation();\n return useMemo(() => {\n const params = new URLSearchParams(location.search);\n if (params) {\n return params.get(key);\n }\n return null;\n }, [key, location.search]);\n}\n","//coingecko api doc\n// https://www.coingecko.com/zh/api/documentation\n\n// CoinGecko API Token List\n// https://docs.google.com/spreadsheets/d/1wTTuxXt8n9q7C4NDXqQpI3wpKu1_5bGVmP9Xz0XGSyU/edit?usp=sharing\n\n// supported_vs_currencies\n// https://api.coingecko.com/api/v3/simple/supported_vs_currencies\nimport _ from 'lodash';\n\nimport { CoingeckoMapping } from '@/types/coingecko';\nimport { IOdysseyDappConfig } from '@/types/odyssey';\nimport { IOracleInfoMap } from '@/types/pair';\nimport { ITGPDappConfig } from '@/types/tgp';\n\nimport { IOnChainReferralCodeConfig, IWalletConfigSetting } from '@/types/wallet';\nimport * as coingeckoConfig from './coingecko.json';\nimport odysseyConfig from './odyssey.json';\nimport * as onChainReferralConfig from './onChainReferral.json';\nimport * as oracleConfig from './oracle.json';\nimport * as tgpConfig from './tgp.json';\nimport * as walletConfig from './wallets.json';\n\nfunction getCoingeckoMappingConfig(): CoingeckoMapping[] {\n return coingeckoConfig as CoingeckoMapping[];\n}\n\nfunction getCoingeckoMap(): { [symbol: string]: CoingeckoMapping } {\n const coingeckoConfig = getCoingeckoMappingConfig();\n return _.keyBy(coingeckoConfig, 'symbol');\n}\n\nconst coingeckoSymbolMap = getCoingeckoMap();\n\n/**\n * token symbol mapping to coingecko\n * @param coinSymbol symbol\n * @returns\n */\nfunction getCoingeckoMappingBySymbol(coinSymbol: string): CoingeckoMapping | undefined {\n if (coingeckoSymbolMap[coinSymbol]) {\n return coingeckoSymbolMap[coinSymbol];\n }\n return undefined;\n}\n\nexport { coingeckoConfig, coingeckoSymbolMap, getCoingeckoMappingBySymbol };\n\nexport function getOracleConfig(): IOracleInfoMap {\n return oracleConfig as IOracleInfoMap;\n}\n\nexport function getOdysseyConfigWithoutEarnOoPointPairs() {\n return odysseyConfig as IOdysseyDappConfig;\n}\nexport function getOdysseyConfig(chainsEarnOoPointPairs: {\n [chainId in string]?: { pairSymbol: string; boost: number }[];\n}) {\n const odysseyConfigWithChainsEarnOoPointPairs = {\n ..._.cloneDeep(odysseyConfig),\n chainConfig: Object.entries(odysseyConfig.chainConfig).reduce((prev, [strChainId, config]) => {\n return {\n ...prev,\n [strChainId]: { ...config, earnOoPointPairs: chainsEarnOoPointPairs[strChainId] },\n };\n }, {} as IOdysseyDappConfig['chainConfig']),\n };\n return odysseyConfigWithChainsEarnOoPointPairs as IOdysseyDappConfig;\n}\n\nexport function getTGPConfig(): ITGPDappConfig {\n const config = tgpConfig as ITGPDappConfig;\n return {\n ...config,\n isShowComingSoon: process.env.REACT_APP_IS_SHOW_COMING_SOON === 'true' || config.isShowComingSoon,\n };\n}\n\nexport function getWalletConfigSetting(): IWalletConfigSetting {\n return walletConfig as IWalletConfigSetting;\n}\n\nexport function getOnChainReferralConfig(): IOnChainReferralCodeConfig {\n return onChainReferralConfig as IOnChainReferralCodeConfig;\n}\n","import { getWalletConfigSetting } from '@/configs';\nimport { WalletType } from '@/types/wallet';\nimport { injected } from 'wagmi/connectors';\n\nconst configs = getWalletConfigSetting();\nconst walletConfig = configs.walletConfig[WalletType.BIT_KEEP];\n\nexport const bitkeepConnectorFN = injected({\n target() {\n return {\n id: walletConfig.id,\n name: walletConfig.name,\n icon: walletConfig.icon,\n provider: () => {\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isWallet = (ethereum: any) => {\n return !!ethereum?.isBitKeep;\n };\n\n if (isWallet(window?.bitkeep)) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return window?.bitkeep?.ethereum as any;\n }\n\n // if (window.ethereum?.providers) return window.ethereum.providers.find(isWallet) ?? null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return (window?.bitkeep?.ethereum as any) ?? null;\n }\n },\n };\n },\n});\n\nexport function getBitKeepDeepLinkUrl(): string {\n const dappUrl = document.URL;\n const encodedDappUrl = encodeURIComponent(dappUrl);\n\n const encodedUrl = 'https://bkcode.vip?action=dapp&url=' + encodedDappUrl;\n return encodedUrl;\n}\n","import { getWalletConfigSetting } from '@/configs';\nimport { WalletType } from '@/types/wallet';\n\nconst configs = getWalletConfigSetting();\nexport const supportChainIds = configs.walletConfig[WalletType.COINBASE].supportChainIds || [];\n\nexport function getCoinbaseDeepLinkUrl(): string {\n const dappUrl = document.URL;\n const encodedDappUrl = encodeURIComponent(dappUrl);\n\n const encodedUrl = 'https://go.cb-w.com/dapp?cb_url=' + encodedDappUrl;\n return encodedUrl;\n}\n\nimport { coinbaseWallet } from 'wagmi/connectors';\n\nexport const coinbaseWalletConnectorFN = coinbaseWallet({ appName: 'SynFutures', reloadOnDisconnect: false });\n","import { getWalletConfigSetting } from '@/configs';\nimport { WalletType } from '@/types/wallet';\nimport { injected } from 'wagmi/connectors';\n\nconst configs = getWalletConfigSetting();\nconst walletConfig = configs.walletConfig[WalletType.METAMASK];\n\nexport function getMetamaskDeepLinkUrl(): string {\n const dappUrl = document.location.hostname;\n\n const metamaskAppDeepLink = `https://metamask.app.link/dapp/${dappUrl}`;\n\n return metamaskAppDeepLink;\n}\n\nexport const metamaskConnectorFN = injected({\n target() {\n return {\n id: walletConfig.id,\n name: walletConfig.name,\n icon: walletConfig.icon,\n provider: () => {\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isWallet = (ethereum: any) => {\n return !!ethereum?.isMetaMask;\n };\n\n if (isWallet(window.ethereum)) {\n return window.ethereum;\n }\n\n if (window.ethereum?.providers) return window.ethereum.providers.find(isWallet) ?? null;\n return window.ethereum ?? null;\n }\n },\n };\n },\n});\n","import { getWalletConfigSetting } from '@/configs';\nimport { WalletType } from '@/types/wallet';\nimport { injected } from 'wagmi/connectors';\n\nconst configs = getWalletConfigSetting();\nconst okxWalletConfig = configs.walletConfig[WalletType.OKX];\n\nexport function getOKXDeepLinkUrl(): string {\n const dappUrl = document.URL;\n const encodedDappUrl = encodeURIComponent(dappUrl);\n const deepLink = 'okx://wallet/dapp/url?dappUrl=' + encodedDappUrl;\n\n const encodedUrl = 'https://www.okx.com/download?deeplink=' + encodeURIComponent(deepLink);\n return encodedUrl;\n}\n\nexport const okxConnectorFN = injected({\n target() {\n return {\n id: okxWalletConfig.id,\n name: okxWalletConfig.name,\n icon: okxWalletConfig.icon,\n provider: () => {\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isOkxWallet = (ethereum: any) => {\n return !!ethereum?.isOkxWallet;\n };\n\n if (isOkxWallet(window.ethereum)) {\n return window.ethereum;\n }\n\n if (window.ethereum?.providers) return window.ethereum.providers.find(isOkxWallet) ?? null;\n return window['okxwallet'] ?? null;\n }\n },\n };\n },\n});\n","import { getWalletConfigSetting } from '@/configs';\nimport { DEFAULT_CHAIN_ID } from '@/constants/chain';\nimport { WalletType } from '@/types/wallet';\n\nimport { injected } from 'wagmi/connectors';\n\nconst configs = getWalletConfigSetting();\nconst walletConfig = configs.walletConfig[WalletType.TRUST];\n\nexport function getTrustDeepLinkUrl(): string {\n const dappUrl = document.URL;\n const encodedDappUrl = encodeURIComponent(dappUrl);\n const defaultChainId = DEFAULT_CHAIN_ID;\n\n const encodedUrl = `https://link.trustwallet.com/open_url?coin_id=${defaultChainId}&url=${encodedDappUrl}`;\n return encodedUrl;\n}\n\nexport const trustConnectorFN = injected({\n target() {\n return {\n id: walletConfig.id,\n name: walletConfig.name,\n icon: walletConfig.icon,\n provider: () => {\n if (typeof window !== 'undefined') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isTrustWallet = (ethereum: any) => {\n // Identify if Trust Wallet injected provider is present.\n const trustWallet = !!ethereum.isTrust;\n\n return trustWallet;\n };\n\n const injectedProviderExist = typeof window !== 'undefined' && typeof window.ethereum !== 'undefined';\n\n if (!injectedProviderExist) {\n return null;\n }\n\n if (isTrustWallet(window.ethereum)) {\n return window.ethereum;\n }\n\n if (window.ethereum?.providers) {\n return window.ethereum.providers.find(isTrustWallet) ?? null;\n }\n\n return window['trustwallet'] ?? null;\n }\n },\n };\n },\n});\n","import { getWalletConfigSetting } from '@/configs';\nimport { getBitKeepDeepLinkUrl } from '@/connectors/bitKeep';\nimport { getCoinbaseDeepLinkUrl } from '@/connectors/coinbase';\nimport { getMetamaskDeepLinkUrl } from '@/connectors/metaMask';\nimport { getOKXDeepLinkUrl } from '@/connectors/okx';\nimport { getPhantomDeepLinkUrl } from '@/connectors/phantom';\nimport { getTrustDeepLinkUrl } from '@/connectors/trust';\nimport { ISocialWalletInfo, IWeb3WalletInfo, WalletType } from '@/types/wallet';\nimport { isMobile } from 'react-device-detect';\n\nexport const WALLET_CONFIGS = getWalletConfigSetting();\n\nexport const SUPPORTED_WALLETS: { [key: string]: IWeb3WalletInfo } = {\n [WalletType.METAMASK]: {\n ...WALLET_CONFIGS.walletConfig[WalletType.METAMASK],\n id: isMobile\n ? WALLET_CONFIGS.walletConfig[WalletType.METAMASK].idMobile || WALLET_CONFIGS.walletConfig[WalletType.METAMASK].id\n : WALLET_CONFIGS.walletConfig[WalletType.METAMASK].id,\n isSocialWallet: false,\n mobileDeepLink: getMetamaskDeepLinkUrl(),\n },\n [WalletType.WALLET_CONNECT]: {\n ...WALLET_CONFIGS.walletConfig[WalletType.WALLET_CONNECT],\n isSocialWallet: false,\n },\n [WalletType.COINBASE]: {\n ...WALLET_CONFIGS.walletConfig[WalletType.COINBASE],\n mobileDeepLink: getCoinbaseDeepLinkUrl(),\n isSocialWallet: false,\n },\n [WalletType.BINANCE]: {\n ...WALLET_CONFIGS.walletConfig[WalletType.BINANCE],\n isSocialWallet: false,\n },\n [WalletType.OKX]: {\n ...WALLET_CONFIGS.walletConfig[WalletType.OKX],\n mobileDeepLink: getOKXDeepLinkUrl(),\n isSocialWallet: false,\n },\n [WalletType.COIN_98]: {\n ...WALLET_CONFIGS.walletConfig[WalletType.COIN_98],\n isSocialWallet: false,\n },\n [WalletType.BIT_KEEP]: {\n ...WALLET_CONFIGS.walletConfig[WalletType.BIT_KEEP],\n mobileDeepLink: getBitKeepDeepLinkUrl(),\n isSocialWallet: false,\n },\n [WalletType.TRUST]: {\n ...WALLET_CONFIGS.walletConfig[WalletType.TRUST],\n isSocialWallet: false,\n mobileDeepLink: getTrustDeepLinkUrl(),\n },\n [WalletType.BURRITO]: {\n ...WALLET_CONFIGS.walletConfig[WalletType.BURRITO],\n isSocialWallet: false,\n },\n [WalletType.RABBY]: {\n ...WALLET_CONFIGS.walletConfig[WalletType.RABBY],\n isSocialWallet: false,\n },\n [WalletType.PHANTOM]: {\n ...WALLET_CONFIGS.walletConfig[WalletType.PHANTOM],\n isSocialWallet: false,\n mobileDeepLink: getPhantomDeepLinkUrl(),\n },\n};\n\nexport const SOCIAL_WALLETS: { [key: string]: ISocialWalletInfo } = WALLET_CONFIGS.socialWallets.reduce(\n (acc, walletType) => {\n acc[walletType] = {\n ...WALLET_CONFIGS.walletConfig[walletType],\n isSocialWallet: true,\n };\n return acc;\n },\n {} as { [key: string]: ISocialWalletInfo },\n);\n\nexport const TRENDING_WALLET = WalletType.OKX;\nexport const DEFAULT_CONNECT_WALLET = WalletType.METAMASK;\n","export function getPhantomDeepLinkUrl(): string {\n const dappUrl = document.URL;\n const encodedDappUrl = encodeURIComponent(dappUrl);\n const encodedDappRefUrl = encodeURIComponent(window.location.origin);\n\n const encodedUrl = `https://phantom.app/ul/browse/${encodedDappUrl}?ref=${encodedDappRefUrl}`;\n return encodedUrl;\n}\n","import { ERC20, ERC20__factory as ERC20Factory } from '@derivation-tech/contracts';\nimport { FallbackProvider, JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers';\n\nexport async function getERC2O(tokenAddress: string, signer: JsonRpcSigner | JsonRpcProvider): Promise {\n return ERC20Factory.connect(tokenAddress, signer);\n}\n\nexport async function getNonnce(signer: JsonRpcSigner, contractAddress: string): Promise {\n return await signer.provider.getTransactionCount(contractAddress);\n}\n\n// TODO: merge to getSigner\n// account is not optional\nexport function getSignerFromProvider(provider: JsonRpcProvider, account: string): JsonRpcSigner {\n if (provider instanceof FallbackProvider) {\n const config = provider.providerConfigs[0];\n if (config?.provider) {\n const p = config.provider as JsonRpcProvider;\n return p.getSigner(account);\n }\n }\n return provider.getSigner(account);\n}\n\n// account is optional\nexport function getProviderOrSigner(provider: JsonRpcProvider, account?: string): JsonRpcProvider | JsonRpcSigner {\n return account ? getSignerFromProvider(provider, account) : provider;\n}\n","import { getWalletConfigSetting } from '@/configs';\nimport { providers } from 'ethers';\nimport { useMemo } from 'react';\nimport type { Account, Chain, Client, Transport } from 'viem';\n\nimport { Config, useClient, useConnectorClient } from 'wagmi';\n\nexport function clientToProvider(\n client: Client,\n): providers.FallbackProvider | providers.JsonRpcProvider {\n const { chain, transport } = client;\n const network = {\n chainId: chain.id,\n name: chain.name,\n ensAddress: chain.contracts?.ensRegistry?.address,\n };\n if (transport.type === 'fallback')\n return new providers.FallbackProvider(\n (transport.transports as ReturnType[]).map(\n ({ value }) => new providers.JsonRpcProvider(value?.url, network),\n ),\n );\n return new providers.JsonRpcProvider(transport.url, network);\n}\n\n/** Hook to convert a viem Client to an ethers.js Provider. */\nexport function useEthersProvider({ chainId }: { chainId?: number | undefined } = {}):\n | providers.JsonRpcProvider\n | undefined {\n const client = useClient({ chainId });\n return useMemo(() => (client ? (clientToProvider(client) as providers.JsonRpcProvider) : undefined), [client]);\n}\n\nexport function clientToSigner(client: Client): providers.JsonRpcSigner {\n const { account, chain, transport } = client;\n const network = {\n chainId: chain.id,\n name: chain.name,\n ensAddress: chain.contracts?.ensRegistry?.address,\n };\n const provider = new providers.Web3Provider(transport, network);\n const signer = provider.getSigner(account.address);\n return signer;\n}\n\n/** Hook to convert a Viem Client to an ethers.js Signer. */\nexport function useEthersSigner({ chainId }: { chainId?: number } = {}): providers.JsonRpcSigner | undefined {\n const { data: client } = useConnectorClient({ chainId });\n return useMemo(() => (client ? clientToSigner(client) : undefined), [client]);\n}\n\nexport function clearDisconnectFlag() {\n const wallets = getWalletConfigSetting();\n Object.values(wallets.walletConfig).forEach((wallet) => {\n wallet && localStorage.removeItem(`wagmi.${wallet.id}.disconnected`);\n });\n}\n","import { BigNumber } from 'ethers';\n\nimport { OdysseyRewardId } from '@/configs/odysseyReward';\n\nexport enum ODYSSEY_TABS {\n // REWARDS = 'rewards',\n EARN_POINTS = 'earn_points',\n LEADER_BOARD = 'leader_board',\n}\nexport enum USER_STATUS {\n DEFAULT = 0,\n TWITTER_CONNECTED = 1,\n DISCORD_CONNECTED = 2,\n EMAIL_CONNECTED = 3,\n FIRST_BOX_OPENED = 4,\n EXTRA_POINTS_CLAIMED = 5,\n}\nexport interface IUserProfile {\n twitter: {\n id: string;\n username: string;\n profileImgUrl: string;\n };\n isKol: boolean;\n twitterId: string;\n profileImgUrl: string;\n inviterUsername?: string;\n username: string;\n referralCode: string;\n createdTime: number;\n status: USER_STATUS;\n}\n\nexport interface IOdysseySignature {\n nonce: number;\n inviteCode?: string;\n address: string;\n signature?: string;\n jwtToken?: string;\n}\n\nexport interface IOdysseySignatureStorage {\n [userAddr: string]: IOdysseySignature;\n}\n\nexport enum ODYSSEY_STEP {\n INIT,\n CONNECTED_WALLET,\n LINKED_TWITTER,\n FOLLOWED_DISCORD,\n FILLED_EMAIL,\n DONE,\n}\n\nexport interface IOdysseyRenzoPointsQuoteConfig {\n symbol: string;\n ezPoints?: number;\n eigenLayerPoints?: number;\n}\n\nexport interface IOdysseyChainConfig {\n earnOoPointPairs?: { pairSymbol: string; boost: number }[];\n earnBlastPointQuotes: string[];\n defaultPair: string;\n showLiquidityPoints: boolean;\n showTradePoints: boolean;\n showEarnBanner: boolean;\n nonBlastAndOoPointReward?: {\n [id in OdysseyRewardId]?: {\n quotes: {\n symbol: string;\n multiplier: number;\n }[];\n };\n };\n lastEpoch?: number;\n showLastEpochPointsModal?: boolean;\n twitter: {\n // client_ids: string[];\n callbackUrl: string;\n scope: string;\n code_challenge: string;\n kol: string[];\n open: string[];\n code_challenge_method: string;\n claimPointsTwitter: string;\n };\n}\n\nexport interface IOdysseyDappConfig {\n docsLink: string;\n earnPoints: {\n updateInterval: number; // in minutes\n earnLink: string;\n trade: {\n defaultPair: string;\n defaultChainId: number; // no pair will redirect to this chain\n };\n extraPointsRatio: number;\n spinDistributionIntervalType: 0 | 1 | 2; // 0: every hour, 1: every day, 2: every week;\n };\n squadConfig: {\n level1: {\n tvl: number;\n boost: number;\n };\n level2: {\n tvl: number;\n boost: number;\n };\n };\n supportChains: number[];\n chainConfig: {\n [chainId: string]: IOdysseyChainConfig;\n };\n sign: {\n agreement: string;\n };\n showOOTokenComingSoon: boolean;\n}\n\nexport interface ISquadMember {\n username: string;\n profileImgUrl: string;\n contributedPoints: number;\n contributedTVL: number;\n}\nexport interface IOdysseyDashboard {\n epoch: number;\n points: number;\n boost: number;\n spins: number;\n boxes: number;\n luck: number;\n estimatedPointsPerDay: number;\n referralBoost: number;\n referralBoostExpiry: number;\n estimatedSpinsPerWeek: number;\n nextSpinChance: number;\n squadTVL: number;\n squadCount: number;\n squadMembers: ISquadMember[];\n squadVolume: number;\n volumePoints: number;\n volumePointsUpdatedAt: number;\n}\n\nexport interface IRanking {\n rank: number;\n username: string;\n profileImgUrl: string;\n inviterUsername: string;\n points: number;\n tokens?: number;\n tokenHistory: { [epoch: number]: number };\n}\nexport interface ITokenRanking {\n rank: number;\n username: string;\n profileImgUrl: string;\n inviterUsername: string;\n amount: number;\n tokenHistory: { [epoch: number]: number };\n}\n\nexport interface ILeaderBoard {\n tvl: number;\n users: number;\n epoch: number;\n rankings: IRanking[];\n page: number;\n totals: number;\n tokenRankings: IRanking[];\n}\nexport interface ITokenLeaderBoard {\n ranking: ITokenRanking[];\n}\n\nexport interface IUserPoints {\n blastPoints: number;\n blastGold: number;\n odysseyPoints: number;\n ooToken: number;\n}\nexport interface ITokenProof {\n epoch: number;\n index: number;\n amount: string;\n proof: string[];\n}\nexport interface IEpoch {\n epoch: number;\n startTs: number;\n endTs: number;\n}\nexport interface IEpochDetail {\n epoch: number;\n lastRunAt: string;\n points: number;\n rank: number;\n squadVolume: number;\n userId: string;\n volumePoints: string;\n}\nexport interface IRecentJoin {\n username: string;\n inviterUsername: string | null;\n profileImgUrl: string;\n timestamp: number;\n}\n\nexport interface IResponse {\n code: number;\n msg: string;\n data: T;\n}\n\nexport enum CAMPAIGN_TYPE {\n TGP = 'tgp',\n ODYSSEY = 'odyssey',\n}\n\nexport interface ISpinResult {\n points: number;\n superSpins: number;\n}\n\nexport interface IInfoOverview {\n '7dActiveUsers': number;\n totalTradingVolume: number;\n totalTransactions: number;\n totalUsers: number;\n tvl: number;\n updateAt: number;\n}\n\nexport interface InstrumentPointConfigParam {\n isStable: boolean;\n quotePriceWad: BigNumber;\n poolFactorMap: Map;\n}\n","import axios, { AxiosRequestConfig, AxiosResponse } from 'axios';\n\nimport { CAMPAIGN_TYPE } from '@/types/odyssey';\n\nimport { AIP_DOMAIN } from '@/constants/global';\nimport { getEncryptedHeader } from './SymmetricEncryption';\nimport { getOdysseyJWTToken, getTGPJWTToken } from './storage';\nexport async function axiosGet({\n url,\n address,\n config,\n type,\n}: {\n url: string;\n address?: string;\n config?: AxiosRequestConfig;\n type?: CAMPAIGN_TYPE;\n}): Promise {\n const jwtToken = type ? (type === CAMPAIGN_TYPE.TGP && address ? getTGPJWTToken(address) : undefined) : undefined;\n // need move params to url for encrypted\n\n if (config?.params) {\n const pa = new URLSearchParams(config.params);\n pa.sort();\n const params = pa.toString();\n url += (url.includes('?') ? '&' : '?') + params;\n config.params = undefined;\n }\n const encryptedData = getEncrypted({ url, jwtToken });\n if (encryptedData?.url) {\n url = encryptedData.url;\n }\n\n return await axios.get(url, {\n ...config,\n headers: {\n ...config?.headers,\n Authorization: jwtToken,\n ...encryptedData?.encryptedData,\n },\n });\n}\nexport async function axiosPost({\n url,\n address,\n data,\n config,\n type,\n chainId,\n}: {\n url: string;\n address?: string;\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n data?: any;\n config?: AxiosRequestConfig;\n type?: CAMPAIGN_TYPE;\n chainId?: number | undefined;\n}): Promise {\n const jwtToken = address\n ? type === CAMPAIGN_TYPE.TGP\n ? getTGPJWTToken(address)\n : getOdysseyJWTToken(address, chainId)\n : undefined;\n const encryptedData = getEncrypted({ url, jwtToken, body: data });\n if (encryptedData?.url) {\n url = encryptedData.url;\n }\n return await axios.post(url, data, {\n ...config,\n headers: {\n // 'Content-Type': 'application/x-www-form-urlencoded',\n ...config?.headers,\n Authorization: jwtToken,\n ...encryptedData?.encryptedData,\n },\n });\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getEncrypted({\n url,\n jwtToken,\n body,\n}: {\n url: string;\n jwtToken?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n body?: any;\n}) {\n const domain = AIP_DOMAIN;\n if (!url.startsWith('http')) {\n if (!url.startsWith('/')) {\n url = '/' + url;\n }\n url = domain + url;\n }\n\n if (url.startsWith(domain)) {\n const uri = url.replace(domain, '');\n const encryptedHeader = getEncryptedHeader({\n uri,\n authorization: jwtToken,\n body: body,\n });\n\n return { encryptedData: encryptedHeader, url };\n }\n}\n","import { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { DEFAULT_DECIMALS } from '@/constants/global';\nimport { TokenInfo } from '@/types/token';\nimport { axiosGet } from '@/utils/axios';\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\n\nexport const changeCurrentChainId = createAsyncThunk(\n 'chain/changeCurrentChainId',\n\n ({ chainId }: { chainId: CHAIN_ID }, {}): { chainId: number } => {\n return { chainId };\n },\n);\n\nexport const getChainTokenList = createAsyncThunk(\n 'chain/getChainTokenList',\n\n async ({ chainId }: { chainId: CHAIN_ID }, {}): Promise<{ [tokenAddr: string]: TokenInfo } | undefined> => {\n const dappConfig = DAPP_CHAIN_CONFIGS[chainId];\n if (dappConfig.tokenListUrl) {\n const tokens: {\n id: string;\n chainId: number;\n symbol: string;\n address: string;\n name: string;\n icon: string | null;\n decimals: number;\n }[] = (await axiosGet({ url: dappConfig.tokenListUrl }))?.data;\n if (tokens) {\n const tokenInfos = tokens.map((t) => {\n return {\n id: t.address.toLowerCase(),\n chainId: chainId,\n symbol: t.symbol,\n address: t.address.toLowerCase(),\n name: t.name || t.symbol,\n decimals: t.decimals || DEFAULT_DECIMALS,\n logoURI: t.icon || undefined,\n } as TokenInfo;\n });\n return tokenInfos.reduce((acc, token) => {\n acc[token.id] = token;\n return acc;\n }, {} as { [tokenAddr: string]: TokenInfo });\n }\n }\n return undefined;\n },\n);\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { createSlice, PayloadAction, SerializedError } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { FETCHING_STATUS, GAS_PRICE_TYPE } from '@/constants';\nimport { getDefaultChainId } from '@/utils/chain';\n\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { TokenInfo } from '@/types/token';\nimport { AppState } from '../store';\nimport { changeCurrentChainId, getChainTokenList } from './actions';\n\nexport type TBlockStatus = {\n blockNumber: number;\n // blockStatus?: IIndexerBlockStatus;\n fetchingStatus?: FETCHING_STATUS;\n error?: SerializedError;\n timestamp: number;\n};\nexport interface IChainState {\n currentChainId: number;\n prevChainId: number;\n chainGasPriceConfig: {\n // gasPrice: number;\n [chainId: number]: { type: GAS_PRICE_TYPE };\n };\n chainGasPriceList: {\n [chainId: number]: {\n gasPriceList: {\n [key in GAS_PRICE_TYPE]: number;\n };\n gasPriceFetchingStatus: FETCHING_STATUS;\n };\n };\n gasPriceFetchingStatus: FETCHING_STATUS;\n chainBlockStatus: {\n [chainId: number]: TBlockStatus;\n };\n chainTokenInfos: {\n [chainId: number]: {\n tokens?: {\n [tokenId: string]: TokenInfo;\n };\n };\n };\n}\n\nconst defaultChainId = getDefaultChainId();\n\nconst initialState: IChainState = {\n currentChainId: defaultChainId,\n prevChainId: 0,\n chainGasPriceConfig: {\n // gasPrice: 0,\n [CHAIN_ID.POLYGON]: { type: GAS_PRICE_TYPE.Standard },\n },\n chainGasPriceList: {\n [CHAIN_ID.POLYGON as number]: {\n gasPriceList: {\n [GAS_PRICE_TYPE.SLOW]: 0,\n [GAS_PRICE_TYPE.Standard]: 0,\n [GAS_PRICE_TYPE.FAST]: 0,\n [GAS_PRICE_TYPE.INSTANT]: 0,\n },\n gasPriceFetchingStatus: FETCHING_STATUS.INIT,\n },\n },\n gasPriceFetchingStatus: FETCHING_STATUS.INIT,\n chainBlockStatus: {},\n chainTokenInfos: _.reduce(\n DAPP_CHAIN_CONFIGS,\n (acc, config) => {\n acc[config.network.chainId] = {\n tokens: undefined,\n };\n return acc;\n },\n {} as IChainState['chainTokenInfos'],\n ),\n};\n\nexport const chainSlice = createSlice({\n name: 'chain',\n initialState,\n reducers: {\n changePrevChainId: (state, { payload: { chainId } }: PayloadAction<{ chainId: number }>) => {\n state.prevChainId = chainId || state.currentChainId;\n },\n changeGasPriceConfig: (\n state,\n { payload: { type, chainId } }: PayloadAction<{ type: GAS_PRICE_TYPE; chainId: number }>,\n ) => {\n _.set(state.chainGasPriceConfig, [chainId], { type });\n localStorage.setItem('syn_global_gas_price_config', JSON.stringify(state.chainGasPriceConfig));\n },\n updateGasPriceFetchingStatus: (state, { payload: { status } }: PayloadAction<{ status: FETCHING_STATUS }>) => {\n state.gasPriceFetchingStatus = status;\n },\n loadLocalGasPriceFetchingStatus: (state, { payload: {} }) => {\n const localConfigData = localStorage.getItem('syn_global_gas_price_config');\n if (localConfigData) {\n const configs = JSON.parse(localConfigData);\n state.chainGasPriceConfig = {\n ...state.chainGasPriceConfig,\n ...configs,\n };\n }\n },\n updateBlockNumber: (\n state,\n {\n payload: { chainId, blockNumber, timestamp },\n }: PayloadAction<{ chainId: number; blockNumber: number; timestamp: number }>,\n ) => {\n _.set(state.chainBlockStatus, [chainId, 'blockNumber'], blockNumber);\n _.set(state.chainBlockStatus, [chainId, 'timestamp'], timestamp);\n },\n setChainTokenInfos: (\n state,\n { payload: { chainTokenInfos } }: PayloadAction<{ chainTokenInfos: IChainState['chainTokenInfos'] }>,\n ) => {\n state.chainTokenInfos = chainTokenInfos;\n },\n },\n extraReducers: (builder) => {\n builder.addCase(changeCurrentChainId.fulfilled, (state, action) => {\n const { arg } = action.meta;\n // the prevChain ID must be set before the currentChainId\n if (state.prevChainId === 0) {\n state.prevChainId = arg.chainId;\n // when the actions carry the same chainId consecutively\n }\n state.currentChainId = arg.chainId;\n });\n builder.addCase(getChainTokenList.fulfilled, (state, action) => {\n if (action.payload) {\n const { arg } = action.meta;\n const tokenInfosFromState = _.get(state.chainTokenInfos, [arg.chainId, 'tokens'], {});\n _.set(state.chainTokenInfos, [arg.chainId, 'tokens'], _.merge({}, tokenInfosFromState, action.payload));\n }\n });\n },\n});\n\nexport const {\n changePrevChainId,\n changeGasPriceConfig,\n updateGasPriceFetchingStatus,\n loadLocalGasPriceFetchingStatus,\n updateBlockNumber,\n setChainTokenInfos,\n} = chainSlice.actions;\n\nexport const selectChainState = (state: AppState): IChainState => state.chain;\nexport const selectCurrentId = (state: AppState): number => state.chain.currentChainId;\nexport const selectChainBlockStatus = (state: AppState): IChainState['chainBlockStatus'] =>\n state.chain.chainBlockStatus;\n\nexport const selectTokenInfosFromChain =\n (chainId: number | undefined) =>\n (state: AppState): { [tokenId: string]: TokenInfo } => {\n return _.get(state.chain.chainTokenInfos, [chainId || '', 'tokens'], {});\n };\n\nexport const selectTokenInfoFromChain =\n (chainId: number | undefined, tokenAddr: string | undefined) =>\n (state: AppState): TokenInfo | undefined => {\n return _.get(state.chain.chainTokenInfos, [chainId || '', 'tokens', tokenAddr || '']);\n };\n\nexport default chainSlice.reducer;\n","import { createAction, createAsyncThunk } from '@reduxjs/toolkit';\nimport { Signer } from 'ethers';\n\nimport { GlobalModalType, SecondGlobalModalType, TabType, THEME_ENUM, ThirdGlobalModalType } from '@/constants';\nimport { CoingeckoMapping } from '@/types/coingecko';\nimport { AnnouncementRes, IGlobalConfig, ISignature } from '@/types/global';\n\nimport { DEFAULT_REFERRAL_CHANNEL, DEFAULT_REFERRAL_WALLET } from '@/constants/onChainReferral';\nimport { isMobile } from 'react-device-detect';\nimport { AppState } from '../store';\n// import { WHITE_LIST_TYPE } from '@/constants/storage';\n// import { isStableCoin } from '@/configs';\n\nimport { getOnChainReferralConfig } from '@/configs';\nimport { WalletType } from '@/types/wallet';\nimport { axiosGet } from '@/utils/axios';\n\nconst onChainReferralConfig = getOnChainReferralConfig();\n\nexport const setGlobalConfig = createAction('global/setGlobalConfig');\nexport const setUserIsBlacklisted = createAction<{\n userAddress: string;\n isBlacklisted: boolean;\n}>('global/setUserIsBlacklisted');\nexport const setOpenModal = createAction<{ type: GlobalModalType | null }>('global/setOpenModal');\nexport const setOpenSecondModal = createAction<{ type: SecondGlobalModalType | null }>('global/setOpenSecondModal');\nexport const setOpenThirdModal = createAction<{ type: ThirdGlobalModalType | null }>('global/setOpenThirdModal');\nexport const setTabType = createAction<{ type: TabType }>('global/setTabType');\nexport const setTheme = createAction('global/setTheme');\nexport const setSignature = createAction('global/setSignature');\n\n/**\n * @description fetch Announcement Config req\n */\nexport const fetchAnnouncementConfig = createAsyncThunk(\n 'global/fetchAnnouncementConfig',\n async (): Promise => {\n try {\n const response = await axiosGet({\n url: `https://api.synfutures.com/ipfs/v2-config/${\n process.env.REACT_APP_API_ENV === 'dev' ? 'dev/' : ''\n }v3/announcement.json`,\n });\n if (response) {\n return response.data;\n }\n } catch (error) {\n console.error(`fetch global/fetchAnnouncementConfig error: ${error}`);\n return undefined;\n }\n },\n);\n\nexport const fetchCoingeckoSymbolMappingConfig = createAsyncThunk(\n 'global/fetchCoingeckoSymbolMappingConfig',\n async (): Promise => {\n try {\n const response = await axiosGet({ url: `https://api.synfutures.com/ipfs/v2-config/coingecko/symbol.json` });\n const res = await response.data;\n if (res) {\n return res;\n }\n } catch (error) {\n console.error(`fetch global/fetchCoingeckoSymbolMappingConfig error: ${error}`);\n return [];\n }\n return [];\n },\n);\n\nexport const fetchIpIsBlocked = createAsyncThunk('global/fetchIpIsBlocked', async (): Promise => {\n try {\n if (process.env.REACT_APP_ENABLE_BLOCK_IP === 'true') {\n const response = await axiosGet({ url: `https://api.synfutures.com/v3/api/checkIp` });\n if (response) {\n return response.data.data.forbidden;\n }\n return true;\n } else {\n return false;\n }\n } catch (error) {\n return false;\n }\n});\n\nexport const getSignature = createAsyncThunk(\n 'global/getSignature',\n async ({}: { userAddr: string }): Promise => {\n return {\n timestamp: new Date().toISOString(),\n signature: 'test',\n };\n },\n);\nexport const signAgreement = createAsyncThunk(\n 'global/signAgreement',\n async ({ message, signer }: { message: string; signer: Signer }): Promise => {\n const signature = await signer.signMessage(message);\n const address = await signer.getAddress();\n return {\n timestamp: new Date().toISOString(),\n signature,\n address,\n };\n },\n);\n\nexport const setOnChainReferralCode = createAsyncThunk(\n 'global/setOnChainReferralCode',\n async (\n {\n channel,\n platform,\n walletType,\n }: {\n channel?: string;\n platform?: number;\n walletType?: WalletType;\n },\n { getState },\n ): Promise<\n | {\n channel: string;\n referralCode: string;\n }\n | undefined\n > => {\n channel = channel?.toLowerCase()?.trim();\n if (!channel) {\n const {\n global: { onChainReferralCode },\n } = getState() as AppState;\n channel = onChainReferralCode?.channel;\n }\n //\n if (!channel || !/^([a-z]|[0-9]){6}$/g.test(channel)) {\n channel = DEFAULT_REFERRAL_CHANNEL;\n }\n\n if (!platform) {\n isMobile ? (platform = 2) : (platform = 1); // default platform: 1 as desktop, 2 as mobile\n }\n\n let walletNum = DEFAULT_REFERRAL_WALLET;\n if (walletType) {\n walletNum = onChainReferralConfig.wallet[walletType] || DEFAULT_REFERRAL_WALLET;\n }\n const referralCode = String.fromCharCode(platform) + String.fromCharCode(walletNum) + channel;\n // const referralCode = String.fromCharCode(Platform.SDK) + String.fromCharCode(Wallet.OKX_WALLET) + 'BNBNBN';\n return {\n channel,\n referralCode,\n };\n },\n);\n","// see config: https://app.clickup.com/5747967/v/dc/5fd7z-7165/5fd7z-32418\nexport const DEFAULT_REFERRAL_CHANNEL = '\\x00\\x00\\x00\\x00\\x00\\x00'; // default channel\nexport const DEFAULT_REFERRAL_WALLET = 1; // default wallet as Metamask\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { coingeckoSymbolMap } from '@/configs';\nimport {\n FETCHING_STATUS,\n GlobalModalType,\n SecondGlobalModalType,\n SystemPrefersColorScheme,\n TabType,\n ThirdGlobalModalType,\n} from '@/constants';\nimport { CoingeckoSymbolMap } from '@/types/coingecko';\nimport { AnnouncementRes, IGlobalConfig, ISignature } from '@/types/global';\n\nimport { getDefaultTheme } from '@/utils';\nimport { AppState } from '../store';\nimport {\n fetchAnnouncementConfig,\n fetchCoingeckoSymbolMappingConfig,\n fetchIpIsBlocked,\n getSignature,\n setGlobalConfig,\n setOnChainReferralCode,\n setOpenModal,\n setOpenSecondModal,\n setOpenThirdModal,\n setSignature,\n setTabType,\n setTheme,\n setUserIsBlacklisted,\n signAgreement,\n} from './actions';\nexport type WalletModalType = 'Account' | 'Wallet';\n\nconst defaultTheme = getDefaultTheme();\n\nconst localTheme = defaultTheme;\nexport enum MockDevToolProps {\n isMockVaultShowWithdrawlRequest = 'isMockVaultShowWithdrawlRequest',\n isMockSkeleton = 'isMockSkeleton',\n isMockNumber = 'isMockNumber',\n isMockNetworkError = 'isMockNetworkError',\n}\n\nexport interface IGlobalState {\n chainGlobalConfig: {\n [chainId: number]: IGlobalConfig;\n };\n openModal: GlobalModalType | null;\n openSecondModal: SecondGlobalModalType | null;\n openThirdModal: ThirdGlobalModalType | null;\n tabType: TabType;\n mockDevToolProps: {\n [id in MockDevToolProps]: boolean;\n };\n announcementConfig?: AnnouncementRes;\n dataTheme: SystemPrefersColorScheme;\n coingecko: {\n symbolMap: CoingeckoSymbolMap;\n };\n\n userSignature: {\n [userAddr: string]: ISignature;\n };\n userIsBlacklisted: {\n [userAddr: string]: boolean;\n };\n onChainReferralCode?: {\n channel: string;\n referralCode: string;\n };\n ipBlocked: boolean;\n}\nconst initialState: IGlobalState = {\n chainGlobalConfig: {},\n openModal: null,\n openSecondModal: null,\n openThirdModal: null,\n mockDevToolProps: {\n [MockDevToolProps.isMockVaultShowWithdrawlRequest]: false,\n [MockDevToolProps.isMockSkeleton]: false,\n [MockDevToolProps.isMockNumber]: false,\n [MockDevToolProps.isMockNetworkError]: false,\n },\n tabType: TabType.Trade,\n userIsBlacklisted: {},\n announcementConfig: {\n nonce: 0,\n isShow: false,\n desc: '',\n link: '',\n linkName: '',\n isOpenNewWindow: false,\n },\n dataTheme: localTheme,\n coingecko: {\n symbolMap: coingeckoSymbolMap,\n },\n userSignature: {},\n onChainReferralCode: undefined,\n ipBlocked: false,\n};\n\nexport const globalSlice = createSlice({\n name: 'global',\n initialState,\n reducers: {\n toggleMockDevTool: (state, action: PayloadAction) => {\n if (process.env.REACT_APP_API_ENV === 'dev') {\n state.mockDevToolProps[action.payload] = !state.mockDevToolProps[action.payload];\n }\n },\n },\n extraReducers: (builder) => {\n builder\n .addCase(setUserIsBlacklisted, (state, { payload: { userAddress, isBlacklisted } }) => {\n _.set(state.userIsBlacklisted, [userAddress], isBlacklisted);\n })\n .addCase(setTheme, (state, { payload }) => {\n state.dataTheme = payload;\n })\n .addCase(setGlobalConfig, (state, { payload }) => {\n _.set(state.chainGlobalConfig, [payload.chainId], payload);\n })\n .addCase(setOpenModal, (state, { payload: { type } }) => {\n state.openModal = type;\n })\n .addCase(setOpenSecondModal, (state, { payload: { type } }) => {\n state.openSecondModal = type;\n })\n .addCase(setOpenThirdModal, (state, { payload: { type } }) => {\n state.openThirdModal = type;\n })\n .addCase(setTabType, (state, { payload: { type } }) => {\n state.tabType = type;\n })\n .addCase(setSignature, (state, { payload }) => {\n _.set(state, [payload.address || ''], payload);\n })\n .addCase(getSignature.pending, (state, { meta }) => {\n _.set(state, [meta.arg.userAddr, 'status'], FETCHING_STATUS.FETCHING);\n })\n .addCase(getSignature.fulfilled, (state, { meta, payload }) => {\n _.set(state, [meta.arg.userAddr], {\n ...payload,\n status: FETCHING_STATUS.DONE,\n });\n })\n .addCase(getSignature.rejected, (state, { meta }) => {\n _.set(state, [meta.arg.userAddr, 'status'], FETCHING_STATUS.DONE);\n })\n .addCase(signAgreement.fulfilled, (state, { payload }) => {\n _.set(state, [payload.address || ''], {\n ...payload,\n status: FETCHING_STATUS.DONE,\n });\n })\n .addCase(fetchAnnouncementConfig.fulfilled, (state, { payload }) => {\n if (payload) {\n state.announcementConfig = payload;\n }\n })\n .addCase(fetchCoingeckoSymbolMappingConfig.fulfilled, (state, { payload }) => {\n if (payload) {\n const configs = _.keyBy(payload, 'symbol');\n state.coingecko.symbolMap = _.merge({}, state.coingecko.symbolMap, configs);\n }\n })\n .addCase(setOnChainReferralCode.fulfilled, (state, { payload }) => {\n state.onChainReferralCode = payload;\n })\n .addCase(fetchIpIsBlocked.fulfilled, (state, { payload }) => {\n state.ipBlocked = payload;\n });\n },\n});\n\nexport const selectIpIsBlocked = (state: AppState): boolean => state.global.ipBlocked;\n\nexport const selectIsBlacklisted =\n (userAddress?: string) =>\n (state: AppState): boolean | undefined =>\n userAddress ? state.global.userIsBlacklisted[userAddress] : undefined;\nexport const selectGlobalState = (state: AppState): IGlobalState => state.global;\nexport const selectTabType = (state: AppState): TabType => state.global.tabType;\n\nexport const selectGlobalConfig = (\n state: AppState,\n): {\n [chainId: number]: IGlobalConfig;\n} => state.global.chainGlobalConfig;\nexport const selectModalOpen = (state: AppState): GlobalModalType | null => state.global.openModal;\nexport const selectSecondModalOpen = (state: AppState): SecondGlobalModalType | null => state.global.openSecondModal;\nexport const selectThirdModalOpen = (state: AppState): ThirdGlobalModalType | null => state.global.openThirdModal;\n\nexport const selectAnnouncementConfig = (state: AppState): AnnouncementRes | undefined =>\n state.global.announcementConfig;\n\nexport const selectDataTheme = (state: AppState): SystemPrefersColorScheme => state.global.dataTheme;\n\nexport const selectOnChainReferralCode = (\n state: AppState,\n):\n | {\n channel: string;\n referralCode: string;\n }\n | undefined => state.global.onChainReferralCode;\n\nexport default globalSlice.reducer;\nexport const { toggleMockDevTool } = globalSlice.actions;\n","import { getAddress } from '@ethersproject/address';\n\n// returns the checksummed address if the address is valid, otherwise returns false\nexport function isAddress(value: string): string | false {\n try {\n return getAddress(value);\n } catch (error) {\n // catchException(error);\n return false;\n }\n}\n\nconst toShortAddr = (address: string, length = 4): string => {\n if (address) {\n if (address.length > length * 2) {\n return `${address.substring(0, length + 2)}...${address.slice(-length)}`;\n } else {\n return address;\n }\n }\n return '';\n};\n\n// shorten the checksummed version of the input address to have 0x + 4 characters at start and end\nexport function shortenAddress(address: string, isShowChecksum = false, length = 4): string {\n // const parsed = getAddress(address);\n if (isShowChecksum) {\n const addr = isAddress(address);\n if (addr) {\n address = addr;\n }\n }\n return toShortAddr(address, length);\n}\n","import { Interface } from 'ethers/lib/utils';\n\nimport { OPERATION_TX_TYPE, TX_INTERFACE_MAPPING } from './tx';\n\nexport enum EVENT_NAMES {\n Deposit = 'Deposit',\n Withdraw = 'Withdraw',\n Withdrawal = 'Withdrawal',\n Trade = 'Trade',\n Adjust = 'Adjust',\n Place = 'Place',\n Fill = 'Fill',\n Cancel = 'Cancel',\n Add = 'Add',\n Remove = 'Remove',\n Settle = 'Settle',\n NewInstrument = 'NewInstrument',\n Gather = 'Gather',\n // for vault\n VaultDeposit = 'Deposit',\n VaultWithdraw = 'Withdraw',\n UpdatePending = 'UpdatePending',\n\n // for aggregator\n OrderHistory = 'OrderHistory',\n}\n\nexport const DISPLAYED_EVENT: string[] = [\n EVENT_NAMES.Deposit,\n EVENT_NAMES.Withdraw,\n EVENT_NAMES.Trade,\n EVENT_NAMES.Adjust,\n EVENT_NAMES.Place,\n EVENT_NAMES.Fill,\n EVENT_NAMES.Cancel,\n EVENT_NAMES.Add,\n EVENT_NAMES.Remove,\n EVENT_NAMES.Settle,\n EVENT_NAMES.NewInstrument,\n];\n\nexport const OPERATE_EVENT_MAPPING: {\n [type in OPERATION_TX_TYPE]?: {\n interfaces: Interface[];\n events: string[];\n };\n} = {\n [OPERATION_TX_TYPE.DEPOSIT]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.DEPOSIT] || [],\n events: [EVENT_NAMES.Deposit],\n },\n [OPERATION_TX_TYPE.WITHDRAW]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.WITHDRAW] || [],\n events: [EVENT_NAMES.Withdraw],\n },\n [OPERATION_TX_TYPE.TRADE]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.TRADE] || [],\n events: [EVENT_NAMES.Deposit, EVENT_NAMES.Trade],\n },\n [OPERATION_TX_TYPE.ADJUST_MARGIN]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.ADJUST_MARGIN] || [],\n events: [EVENT_NAMES.Deposit, EVENT_NAMES.Withdraw, EVENT_NAMES.Adjust],\n },\n [OPERATION_TX_TYPE.PLACE_ORDER]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.PLACE_ORDER] || [],\n events: [EVENT_NAMES.Deposit, EVENT_NAMES.Place],\n },\n [OPERATION_TX_TYPE.FILL_ORDER]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.FILL_ORDER] || [],\n events: [EVENT_NAMES.Fill],\n },\n [OPERATION_TX_TYPE.CANCEL_ORDER]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.CANCEL_ORDER] || [],\n events: [EVENT_NAMES.Cancel],\n },\n [OPERATION_TX_TYPE.ADD_LIQUIDITY]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.ADD_LIQUIDITY] || [],\n events: [EVENT_NAMES.Deposit, EVENT_NAMES.Add],\n },\n [OPERATION_TX_TYPE.REMOVE_LIQUIDITY]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.REMOVE_LIQUIDITY] || [],\n events: [EVENT_NAMES.Remove],\n },\n [OPERATION_TX_TYPE.SETTLE]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.SETTLE] || [],\n events: [EVENT_NAMES.Settle, EVENT_NAMES.Cancel, EVENT_NAMES.Gather],\n },\n [OPERATION_TX_TYPE.CREATE]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.CREATE] || [],\n events: [EVENT_NAMES.NewInstrument, EVENT_NAMES.Deposit, EVENT_NAMES.Add],\n },\n [OPERATION_TX_TYPE.BATCH_PLACE_SCALED_ORDER]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.PLACE_ORDER] || [],\n events: [EVENT_NAMES.Place],\n },\n [OPERATION_TX_TYPE.PLACE_CROSS_MARKET_ORDER]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.PLACE_ORDER] || [],\n events: [EVENT_NAMES.Deposit, EVENT_NAMES.Trade, EVENT_NAMES.Place],\n },\n [OPERATION_TX_TYPE.VAULT_DEPOSIT]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.VAULT_DEPOSIT] || [],\n events: [EVENT_NAMES.VaultDeposit],\n },\n [OPERATION_TX_TYPE.VAULT_WITHDRAW]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.VAULT_WITHDRAW] || [],\n events: [EVENT_NAMES.VaultWithdraw],\n },\n [OPERATION_TX_TYPE.VAULT_CLAIM]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.VAULT_CLAIM] || [],\n events: [EVENT_NAMES.VaultWithdraw],\n },\n [OPERATION_TX_TYPE.SWAP]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.SWAP] || [],\n events: [EVENT_NAMES.OrderHistory],\n },\n [OPERATION_TX_TYPE.NATIVE_SWAP]: {\n interfaces: TX_INTERFACE_MAPPING[OPERATION_TX_TYPE.NATIVE_SWAP] || [],\n events: [EVENT_NAMES.Withdrawal, EVENT_NAMES.Deposit],\n },\n};\n","import { extractEvents, TransactionEvent } from '@derivation-tech/context';\nimport { getRevertReason } from '@derivation-tech/tx-plugin';\nimport { ErrorDescription } from '@ethersproject/abi/lib.esm/interface';\nimport { TransactionReceipt, TransactionResponse } from '@ethersproject/abstract-provider';\nimport { Provider } from '@ethersproject/providers';\nimport { BigNumber } from 'ethers';\nimport { BytesLike, Interface } from 'ethers/lib/utils';\n\nimport { OPERATION_TX_TYPE, ZERO } from '@/constants';\nimport { OPERATE_EVENT_MAPPING } from '@/constants/event';\nimport { TX_INTERFACE_MAPPING } from '@/constants/tx';\nimport { IEventSource } from '@/types/transaction';\n\nexport function getTxMappingInterface(txType: OPERATION_TX_TYPE):\n | {\n interfaces: Interface[];\n events: string[];\n }\n | undefined {\n return OPERATE_EVENT_MAPPING[txType];\n}\n\nexport async function getEventLogs(\n txType: OPERATION_TX_TYPE,\n receipt: TransactionReceipt,\n): Promise {\n try {\n const interfaceMapping = getTxMappingInterface(txType);\n if (interfaceMapping) {\n const eventLogs = await extractEvents(\n // chainId,\n receipt,\n interfaceMapping.interfaces,\n interfaceMapping.events,\n );\n console.log('🚀 ~ file: hook.ts ~ line 64 ~ res', eventLogs);\n return eventLogs;\n }\n } catch (error) {\n console.log('🚀 ~ file: hook.ts ~ line 66 ~ error', error);\n }\n}\n\n/**\n * is filter event\n * @param param0\n * @returns\n */\nexport function isFilterEvent({ eventSource }: { eventSource: IEventSource }): boolean {\n let isShow = true;\n if (eventSource.eventName === 'ClaimFee' && eventSource.args?.feeAmount) {\n const fee = BigNumber.from(eventSource.args.feeAmount);\n isShow = !fee.eq(ZERO);\n }\n\n return isShow;\n}\n\nexport function replaceRevert(reason: string): string {\n if (reason?.startsWith('execution reverted:')) {\n return reason.replace('execution reverted: ', '');\n }\n return reason;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function getRevertReasonByError(error: any): string {\n if (error.reason) {\n const reason: string = error.reason;\n return replaceRevert(reason);\n }\n return '';\n}\n\n/**\n * get new revert reason by interface parse error\n * @param txType\n * @param data\n * @returns\n */\nexport function getNewRevertReasonsByTxType(\n txType: OPERATION_TX_TYPE,\n data: BytesLike,\n): ErrorDescription[] | undefined {\n if (TX_INTERFACE_MAPPING[txType]) {\n try {\n const res: ErrorDescription[] = [];\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n for (let i = 0; i < TX_INTERFACE_MAPPING[txType]!.length; i++) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const abiInterface = TX_INTERFACE_MAPPING[txType]![i];\n const errorDesc = abiInterface.parseError(data);\n if (errorDesc) {\n res.push(errorDesc);\n }\n }\n return res;\n } catch (error) {\n console.log('🚀 ~ file: tx.tsx ~ line 274 ~ getRevertReasonsByTxType ~ error', error);\n }\n }\n return undefined;\n}\n\n/**\n * get new revert reason by sdk\n * @param param0\n * @returns\n */\nexport async function getSDKRevertReasons({\n txType,\n provider,\n txResponse,\n}: {\n txType: OPERATION_TX_TYPE;\n txResponse: TransactionResponse;\n provider: Provider;\n}): Promise {\n if (TX_INTERFACE_MAPPING[txType]) {\n try {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const errorDesc = await getRevertReason(provider, txResponse, TX_INTERFACE_MAPPING[txType]!);\n return errorDesc;\n } catch (error) {}\n }\n return undefined;\n}\n","import i18n from '@/i18n';\n\nexport function getContractError(errorCode: string): string {\n return i18n.t(errorCode);\n}\n\nexport function getMappedRevertReason(originErr: string): string {\n const error = getContractError(originErr) || originErr;\n return error;\n}\n\nexport function parsedEthersError(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n error: any,\n): { errorMsg: string; errorData: string } | undefined {\n const errorData = error?.error?.data?.originalError?.data || error?.data;\n // if throw error with revert data, parse it and show parsed error in notify\n if (error?.code === 'CALL_EXCEPTION' && errorData) {\n const errorMsg = getMappedRevertReason(errorData);\n return {\n errorData,\n errorMsg: errorData || errorMsg,\n };\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { getContractError } from '@/utils/error';\nimport { Context, SeverityLevel } from '@sentry/core';\nimport { captureException, withScope } from '@sentry/react';\n\nconst excludeErrors = [\n 'user rejected', //user rejected transaction, user rejected request with method\n 'JsonRpcEngine:',\n 'Pop up window failed to open',\n // 'Internal JSON-RPC error'\n];\n\nclass SentryService {\n static captureException(\n error: any,\n context:\n | ({\n name: string;\n } & Context)\n | null,\n level?: SeverityLevel,\n ) {\n // exclude some errors\n if (excludeErrors.some((exclude) => error?.message?.includes(exclude))) {\n return;\n }\n\n // exclude contract errors\n if (error?.message) {\n const contractError = getContractError(error?.message?.trim());\n if (contractError) {\n return;\n }\n }\n\n withScope((scope) => {\n context && scope.setContext(context.name, context);\n scope.setExtra('error message', error?.message);\n scope.setExtra('cause error', (error as any)?.cause?.message);\n scope.setLevel(level || 'error');\n\n captureException(error);\n });\n }\n\n static captureMessage(message: string, context?: Record) {\n captureException(message, {\n extra: context,\n });\n }\n}\n\nexport default SentryService;\n","import { OPERATION_TX_TYPE } from '@/constants';\nimport { TX_INTERFACE_MAPPING } from '@/constants/tx';\nimport { IParsedError } from '@/types/error';\nimport { IParsedTemplate, ISendTxParams, ISerializableTransactionReceipt, ITransactionInfo } from '@/types/transaction';\nimport { shortenAddress } from '@/utils/address';\nimport { getNewRevertReasonsByTxType, replaceRevert } from '@/utils/tx';\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport { decodeRevertData } from '@derivation-tech/tx-plugin';\nimport { ErrorDescription } from '@ethersproject/abi/lib.esm/interface';\nimport { TransactionReceipt, TransactionResponse } from '@ethersproject/abstract-provider';\nimport { JsonRpcSigner } from '@ethersproject/providers';\nimport { createAction, createAsyncThunk } from '@reduxjs/toolkit';\nimport { ContractReceipt, ContractTransaction } from 'ethers';\n\nimport SentryService from '@/entities/SentryService';\nimport { fetchIpIsBlocked } from '../global/actions';\nimport { AppState } from '../store';\n\nexport const addTransaction = createAction<{\n chainId: CHAIN_ID;\n txInfo: Omit;\n traderAddr: string;\n}>('transaction/addTransaction');\nexport const clearAllTransactions = createAction<{ chainId: CHAIN_ID; traderAddr: string }>(\n 'transaction/clearAllTransactions',\n);\n/**\n * fill tx receipt\n */\nexport const finalizeTransaction = createAction<{\n chainId: CHAIN_ID;\n hash: string;\n receipt: ISerializableTransactionReceipt;\n traderAddr: string;\n}>('transaction/finalizeTransaction');\nexport const checkedTransaction = createAction<{\n chainId: CHAIN_ID;\n hash: string;\n blockNumber: number;\n traderAddr: string;\n}>('transaction/checkedTransaction');\n\nexport const deleteTransaction = createAction<{\n chainId: CHAIN_ID;\n hash: string;\n traderAddr: string;\n}>('transaction/deleteTransaction');\nexport const clearLatestTransaction = createAction('transaction/clearLatestTransaction');\n\nexport const replaceTransaction = createAction<{\n chainId: CHAIN_ID;\n oldHash: string;\n newHash: string;\n receipt?: ISerializableTransactionReceipt;\n traderAddr: string;\n transactionResponse: TransactionResponse;\n}>('transaction/replaceTransaction');\n\nexport const sendTransaction = createAsyncThunk(\n 'transaction/sendTransaction',\n async (\n {\n chainId,\n userAddr,\n signer,\n sendFunc,\n txParams,\n needWaitReceipt = true,\n notifyCatchingError = true,\n wssProvider,\n }: {\n signer: JsonRpcSigner;\n sendFunc: () => Promise;\n needWaitReceipt?: boolean;\n notifyCatchingError?: boolean;\n txParams: {\n isDisableNotification?: boolean;\n type: OPERATION_TX_TYPE;\n instrument: {\n baseSymbol: string;\n quoteSymbol: string;\n isInverse: boolean;\n quoteDecimal?: number;\n baseDecimal?: number;\n };\n sendingTemplate?: IParsedTemplate;\n extra?: { [key: string]: unknown };\n };\n } & ISendTxParams,\n { dispatch, getState },\n ): Promise => {\n if (sendFunc) {\n try {\n try {\n const ipBlocked = await dispatch(fetchIpIsBlocked()).unwrap();\n if (ipBlocked) {\n return;\n }\n\n const txResult = (await sendFunc()) as ContractTransaction;\n\n dispatch(\n addTransaction({\n chainId,\n traderAddr: userAddr,\n txInfo: {\n ...txParams,\n chainId,\n from: userAddr,\n // gasLimit: formatEther(txResult?.gasLimit),\n txHash: txResult.hash,\n transactionResponse: txResult,\n instrument: txParams.instrument,\n sendingTemplate: txParams.sendingTemplate,\n },\n }),\n );\n console.record(\n 'tx',\n `[${txParams.type}] operation tx [${shortenAddress(txResult.hash)}] sent, waiting for confirmation...`,\n { txResult },\n { chainId, txParams, userAddr, sendFunc },\n );\n if (needWaitReceipt) {\n let waitProvider = wssProvider;\n if (!waitProvider) {\n const {\n web3: { chainAppProvider },\n } = getState() as AppState;\n waitProvider = chainAppProvider[chainId];\n }\n // use websocket provider\n let receipt: TransactionReceipt | undefined = undefined;\n if (waitProvider) {\n receipt = await waitProvider.waitForTransaction(txResult.hash);\n } else {\n receipt = await txResult.wait();\n }\n // console.log(`------ ${txParams.type} ------:${txParams.type} succeed with receipt`, {\n // chainId,\n // userAddr,\n // txParams,\n // underlying,\n // txResult,\n // receipt,\n // });\n return receipt;\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n const originalError = error?.error?.data?.originalError;\n let errorData = error?.error?.data?.originalError?.data || error?.data;\n if (typeof errorData !== 'string') {\n errorData = null;\n }\n\n const errorMsg = originalError?.message;\n\n // user rejected transaction\n if (\n error?.code === 4001 ||\n error?.code === 'ACTION_REJECTED' ||\n error?.message?.startsWith(`user rejected transaction`) ||\n error?.message?.startsWith(`user rejected the request`)\n ) {\n // throw error;\n return;\n }\n\n console.log('🚀 ~ file: actions.ts:131 ~ error:', { error, errorData });\n // if throw error with revert data, parse it and show parsed error in notify\n if (errorData) {\n // if (NEED_PARSE_NEW_REVERT[txParams.type]) {\n if (TX_INTERFACE_MAPPING[txParams.type] && TX_INTERFACE_MAPPING[txParams.type]?.length) {\n let errorDesc: ErrorDescription | undefined = undefined;\n const parsedErrorDescs = getNewRevertReasonsByTxType(txParams.type, errorData);\n if (parsedErrorDescs && parsedErrorDescs?.length > 0) {\n // TODO: maybe multiple error?\n errorDesc = parsedErrorDescs[0];\n }\n\n if (notifyCatchingError && errorDesc) {\n const err = new Error(errorDesc.name, { cause: error }) as IParsedError;\n err.parsedError = errorDesc;\n console.record('tx', `[${txParams.type}] operation tx failed`, err, {\n chainId,\n txParams,\n userAddr,\n sendFunc,\n wssProvider,\n });\n throw err;\n }\n // try parse old error if is not new error type\n }\n // }\n }\n\n // only call when error no data\n if (!errorData && error.transaction) {\n if (wssProvider) {\n try {\n errorData = await wssProvider.call(error.transaction);\n } catch (ee) {\n console.log('🚀 ~ file: actions.ts:140 ~ ee:', ee);\n }\n }\n }\n\n // if throw error with revert data, parse it and show parsed error in notify\n if (errorData) {\n let msg = (errorData?.substr && decodeRevertData(errorData || '')) || errorData;\n console.log('🚀 ~ file: actions.ts:185 ~ msg:', msg, errorData);\n if (msg) {\n if (msg.startsWith('0x')) {\n msg = msg.slice(0, 10);\n }\n const err = new Error(msg, { cause: error }) as IParsedError;\n console.record('tx', `[${txParams.type}] operation tx failed`, err, {\n chainId,\n txParams,\n userAddr,\n sendFunc,\n wssProvider,\n });\n throw err;\n }\n }\n\n if (error?.reason) {\n const reason: string = error.reason;\n const err = new Error(reason, { cause: error }) as IParsedError;\n console.record('tx', `[${txParams.type}] operation tx failed`, err, {\n chainId,\n txParams,\n userAddr,\n sendFunc,\n wssProvider,\n });\n throw err;\n }\n\n const orginError = replaceRevert(errorMsg);\n if (orginError) {\n let msg = orginError;\n if (msg.startsWith('0x')) {\n msg = msg.slice(0, 10);\n }\n const err = new Error(msg, { cause: error }) as IParsedError;\n console.record('tx', `[${txParams.type}] operation tx failed`, err, {\n chainId,\n txParams,\n userAddr,\n sendFunc,\n wssProvider,\n });\n throw err;\n }\n throw error;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n SentryService.captureException(error, {\n name: 'transaction/sendTransaction',\n chainId,\n userAddr,\n sendFunc: sendFunc?.name,\n txParams: {\n ...txParams,\n instrument: JSON.stringify(txParams.instrument),\n sendingTemplate: txParams.sendingTemplate?.descTemplate,\n },\n needWaitReceipt,\n notifyCatchingError,\n wssRpc: wssProvider?.connection?.url,\n signerRpc: signer?.provider?.connection?.url,\n });\n\n throw error;\n }\n }\n\n return undefined;\n },\n);\n\nexport const clearLatestTxErrorMessage = createAction('transaction/clearLatestTxErrorMessage');\n","import { JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { ZERO } from '@synfutures/sdks-perp';\nimport { BigNumber, ContractReceipt } from 'ethers';\nimport _ from 'lodash';\n\nimport { OPERATION_TX_TYPE, TRADE_FORM_TYPE } from '@/constants';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { TokenInfo } from '@/types/token';\nimport { ITokenAllowanceInfo } from '@/types/user';\nimport { formatEther } from '@/utils/numberUtil';\nimport { getERC2O } from '@/utils/signer';\nimport { adjustBalanceNumberToTokenDecimals, fixBalanceNumberDecimalsTo18, isNativeTokenAddr } from '@/utils/token';\n\nimport { WorkerEventNames } from '@/types/worker';\nimport { Context } from '@derivation-tech/context/dist/context';\nimport { AppState } from '../store';\nimport { addTransaction } from '../transaction/actions';\n\nexport const preflightCheckTokeApprovalStatus = createAsyncThunk(\n 'user/preflightCheckTokeApprovalStatus',\n async (\n {\n chainId,\n account,\n marginToken,\n spenderAddress,\n sdk,\n }: {\n chainId: number;\n account: string;\n provider: JsonRpcProvider;\n marginToken: TokenInfo;\n spenderAddress?: string;\n sdk: Context;\n },\n { getState, dispatch },\n ): Promise => {\n try {\n const {\n user: { chainTokenAllowance, chainTokenAllowanceWithSpender },\n } = getState() as AppState;\n const tokenAllowance = !spenderAddress\n ? _.get(chainTokenAllowance, [chainId, account, marginToken?.address])\n : _.get(chainTokenAllowanceWithSpender, [chainId, account, marginToken?.address, spenderAddress]);\n if (tokenAllowance?.allowance?.gt(0)) {\n return true;\n }\n\n dispatch(\n checkTokenAllowance({\n spenderAddress,\n userAddress: account,\n chainId,\n marginToken,\n sdk,\n }),\n );\n return false;\n } catch (e) {\n console.error('check token status', e);\n return false;\n }\n },\n);\n\nexport const approveToken = createAsyncThunk(\n 'user/approveToken',\n async (\n {\n signer,\n provider,\n marginToken,\n chainId,\n amount,\n userAddr,\n spenderAddress,\n sdk,\n routerAddr,\n }: // formType = TRADE_FORM_TYPE.TradeForm,\n {\n signer: JsonRpcSigner;\n provider?: JsonRpcProvider;\n marginToken: TokenInfo;\n chainId: number;\n userAddr: string;\n formType?: TRADE_FORM_TYPE;\n amount: BigNumber;\n spenderAddress?: string;\n sdk: Context;\n routerAddr?: string;\n },\n { getState, dispatch },\n ): Promise => {\n try {\n const erc20 = await getERC2O(marginToken.address, signer);\n const {\n balance: { chainBalanceMap },\n } = getState() as AppState;\n const routerAddress = routerAddr || sdk.perp.contracts.gate.address;\n const balanceInfo = _.get(chainBalanceMap, [chainId, userAddr, marginToken.address]);\n const balance = WrappedBigNumber.from(balanceInfo?.balance || amount).wadValue;\n // const nonce = await getNonnce(signer, routerAddress);\n const approveResult = await erc20.approve(\n spenderAddress || routerAddress,\n adjustBalanceNumberToTokenDecimals(balance, marginToken.decimals),\n // {\n // nonce: nonce,\n // },\n );\n dispatch(\n addTransaction({\n chainId,\n traderAddr: signer._address.toLowerCase(),\n txInfo: {\n type: OPERATION_TX_TYPE.APPROVE,\n chainId,\n from: signer._address.toLowerCase(),\n gasLimit: formatEther(approveResult?.gasLimit),\n txHash: approveResult.hash,\n transactionResponse: approveResult,\n },\n }),\n );\n // use websocket provider\n let receipt: ContractReceipt | undefined = undefined;\n if (provider) {\n receipt = await provider.waitForTransaction(approveResult.hash);\n } else {\n receipt = await approveResult.wait();\n }\n if (receipt.status === 1) {\n dispatch(\n checkTokenAllowance({\n userAddress: userAddr,\n chainId,\n marginToken,\n block: receipt.blockNumber,\n spenderAddress,\n sdk,\n }),\n );\n }\n return true;\n } catch (e) {\n console.error('approve token e', e);\n return false;\n }\n },\n);\n\nexport const checkTokenAllowance = createAsyncThunk(\n 'user/checkTokenAllowance',\n async (\n {\n marginToken,\n chainId,\n userAddress: userAddr,\n spenderAddress,\n block,\n sdk,\n }: {\n marginToken: TokenInfo;\n chainId: number;\n userAddress: string;\n spenderAddress?: string;\n block?: number;\n sdk: Context;\n },\n { dispatch },\n ): Promise => {\n try {\n if (marginToken?.address && isNativeTokenAddr(marginToken.address)) {\n return {\n block: 0,\n allowance: ZERO,\n };\n }\n if (!marginToken?.address) {\n return;\n }\n\n if (!spenderAddress) {\n spenderAddress = sdk.perp.contracts.gate.address;\n }\n dispatch(\n multiCheckTokenAllowancesAction({\n marginTokens: [marginToken],\n chainId,\n userAddress: userAddr,\n spenderAddress,\n block,\n }),\n );\n return;\n\n // // const exportWorker = Comlink.wrap(window.userWorker);\n // // const UserWorker = getWrappedUserWorker();\n // const userWorker = await UserWorker.getInstance(chainId);\n // const allowanceInfo = await retryWhenTimeout(\n // userWorker.callERC20Allowance({\n // chainId,\n // userAddr,\n // token: marginToken,\n // spender: spenderAddress || sdk.perp.contracts.gate.address,\n // block,\n // }),\n // );\n\n // if (allowanceInfo) {\n // const allowance = BigNumber.from(allowanceInfo?.data || 0);\n // return {\n // block: allowanceInfo.block,\n // allowance: fixBalanceNumberDecimalsTo18(allowance, marginToken.decimals),\n // };\n // }\n } catch (e) {\n console.error('checkTokenAllowance token e', e);\n return {\n block: 0,\n allowance: ZERO,\n };\n }\n },\n);\n\nexport const changeTokenAllowance = createAsyncThunk(\n 'user/changeTokenAllowance',\n async (\n {\n token,\n allowanceInfo,\n block,\n sdk,\n }: {\n token: TokenInfo;\n chainId: number;\n userAddr: string;\n allowanceInfo: {\n spender: string;\n allowance: BigNumber;\n };\n block: number;\n sdk?: Context;\n },\n { getState },\n ): Promise<\n | {\n spender: string | undefined;\n allowanceInfo: ITokenAllowanceInfo;\n }\n | undefined\n > => {\n try {\n // check for right result from worker\n if (!sdk) {\n const {\n web3: { chainSDK },\n } = getState() as AppState;\n sdk = chainSDK[token.chainId];\n }\n\n const allowance = BigNumber.from(allowanceInfo.allowance || 0);\n\n let spenderAddr: string | undefined = allowanceInfo.spender.toLowerCase();\n if (spenderAddr === sdk.perp.contracts.gate.address.toLowerCase()) {\n spenderAddr = undefined;\n }\n return {\n allowanceInfo: {\n block: block,\n allowance: fixBalanceNumberDecimalsTo18(allowance, token.decimals),\n },\n spender: spenderAddr,\n };\n } catch (e) {\n console.error('changeTokenAllowance token e', e);\n }\n },\n);\n\nexport const multiCheckTokenAllowancesAction = createAsyncThunk(\n 'user/multiCheckTokenAllowancesAction',\n async (\n {\n marginTokens,\n chainId,\n userAddress: userAddr,\n spenderAddress,\n block,\n }: {\n marginTokens: TokenInfo[];\n chainId: number;\n userAddress: string;\n spenderAddress: string;\n block?: number;\n },\n { getState },\n ): Promise => {\n try {\n if (!marginTokens?.length) {\n return;\n }\n const {\n web3: { chainSDK },\n } = getState() as AppState;\n\n if (!spenderAddress) {\n spenderAddress = chainSDK[chainId]?.perp?.contracts?.gate?.address;\n }\n\n // remove native token from margin tokens\n if (marginTokens.find((token) => isNativeTokenAddr(token.address))) {\n marginTokens = marginTokens.filter((token) => !isNativeTokenAddr(token.address));\n }\n\n window.userWorker.postMessage({\n eventName: WorkerEventNames.MulticallTokensAllowance,\n data: {\n chainId,\n userAddr,\n tokens: marginTokens,\n spender: spenderAddress,\n block,\n },\n });\n } catch (e) {\n console.error('checkTokenAllowance token e', e);\n return {\n block: 0,\n allowance: ZERO,\n };\n }\n },\n);\n","import { createSlice } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { ISpenderTokenAllowanceMap, ITokenAllowanceMap } from '@/types/user';\n\nimport { AppState } from '../store';\nimport { approveToken, changeTokenAllowance, checkTokenAllowance } from './actions';\nexport interface IUserState {\n currentUserAddr: string;\n prevUserAddr: string;\n impostorAddress: string;\n chainTokenAllowance: ITokenAllowanceMap;\n chainTokenAllowanceWithSpender: ISpenderTokenAllowanceMap;\n}\n\nexport const initialState: IUserState = {\n currentUserAddr: '',\n prevUserAddr: '',\n impostorAddress: '',\n chainTokenAllowance: {},\n chainTokenAllowanceWithSpender: {},\n};\n\nexport const userSlice = createSlice({\n name: 'user',\n initialState,\n reducers: {\n setCurrentUserAddr: (state, { payload: { account } }) => {\n account = account?.toLowerCase();\n if (state.prevUserAddr === '') {\n state.prevUserAddr = account;\n }\n state.currentUserAddr = account;\n },\n setPrevUserAddr: (state, { payload: { account } }) => {\n account = account?.toLowerCase();\n state.prevUserAddr = account || state.currentUserAddr;\n },\n setImpostorAddress: (state, { payload: { account } }) => {\n account = account?.toLowerCase();\n state.impostorAddress = account;\n },\n },\n extraReducers: (builder) => {\n builder\n .addCase(checkTokenAllowance.fulfilled, (state, { meta, payload }) => {\n const { chainId, marginToken, userAddress, spenderAddress, sdk } = meta.arg;\n if (!payload) return;\n\n if (!spenderAddress) {\n const tokenAllowance = _.get(state.chainTokenAllowance, [\n chainId,\n userAddress,\n marginToken.address.toLowerCase(),\n ]);\n // if the block height is lower than the current block height, we don't need to update the state\n if (tokenAllowance?.block > payload.block) {\n return;\n }\n _.set(state.chainTokenAllowance, [chainId, userAddress, marginToken.address.toLowerCase()], payload);\n }\n\n const finalSpenderAddress = spenderAddress || sdk.perp.contracts.gate.address.toLowerCase();\n\n const tokenAllowance = _.get(state.chainTokenAllowanceWithSpender, [\n chainId,\n userAddress,\n marginToken?.address.toLowerCase(),\n finalSpenderAddress,\n ]);\n // if the block height is lower than the current block height, we don't need to update the state\n if (tokenAllowance?.block > payload.block) {\n return;\n }\n _.set(\n state.chainTokenAllowanceWithSpender,\n [chainId, userAddress, marginToken.address.toLowerCase(), finalSpenderAddress],\n payload,\n );\n })\n .addCase(changeTokenAllowance.fulfilled, (state, { meta, payload }) => {\n const { chainId, token, userAddr, allowanceInfo } = meta.arg;\n if (!payload?.allowanceInfo) return;\n\n if (payload.spender) {\n _.set(\n state.chainTokenAllowanceWithSpender,\n [chainId, userAddr, token.address.toLowerCase(), allowanceInfo.spender, 'checking'],\n false,\n );\n _.set(\n state.chainTokenAllowanceWithSpender,\n [chainId, userAddr, token.address.toLowerCase(), allowanceInfo.spender, 'allowance'],\n payload.allowanceInfo.allowance,\n );\n _.set(\n state.chainTokenAllowanceWithSpender,\n [chainId, userAddr, token.address.toLowerCase(), allowanceInfo.spender, 'block'],\n payload.allowanceInfo.block,\n );\n } else {\n _.set(state.chainTokenAllowance, [chainId, userAddr, token.address.toLowerCase(), 'checking'], false);\n _.set(\n state.chainTokenAllowance,\n [chainId, userAddr, token.address.toLowerCase(), 'allowance'],\n payload.allowanceInfo.allowance,\n );\n _.set(\n state.chainTokenAllowance,\n [chainId, userAddr, token.address.toLowerCase(), 'block'],\n payload.allowanceInfo.block,\n );\n }\n })\n\n .addCase(approveToken.pending, (state, { meta }) => {\n const { chainId, userAddr: userAddr, marginToken, spenderAddress } = meta.arg;\n if (spenderAddress) {\n console.log('spenderAddress', spenderAddress, 'approveToken.pending');\n _.set(\n state.chainTokenAllowanceWithSpender,\n [chainId, userAddr, marginToken.address.toLowerCase(), spenderAddress, 'approving'],\n true,\n );\n } else {\n _.set(state.chainTokenAllowance, [chainId, userAddr, marginToken.address.toLowerCase(), 'approving'], true);\n }\n })\n .addCase(approveToken.fulfilled, (state, { meta }) => {\n const { chainId, userAddr: account, marginToken, spenderAddress } = meta.arg;\n if (spenderAddress) {\n _.set(\n state.chainTokenAllowanceWithSpender,\n [chainId, account, marginToken.address.toLowerCase(), spenderAddress, 'approving'],\n false,\n );\n } else {\n _.set(state.chainTokenAllowance, [chainId, account, marginToken.address.toLowerCase(), 'approving'], false);\n }\n })\n .addCase(approveToken.rejected, (state, { meta }) => {\n const { chainId, userAddr: account, marginToken, spenderAddress } = meta.arg;\n if (spenderAddress) {\n _.set(\n state.chainTokenAllowanceWithSpender,\n [chainId, account, marginToken.address.toLowerCase(), spenderAddress, 'approving'],\n false,\n );\n } else {\n _.set(state.chainTokenAllowance, [chainId, account, marginToken.address.toLowerCase(), 'approving'], false);\n }\n });\n },\n});\n\nexport const { setCurrentUserAddr, setPrevUserAddr, setImpostorAddress } = userSlice.actions;\n\nexport const selectUserState = (state: AppState): IUserState => state.user;\nexport const selectCurrentUserAddr = (state: AppState): string => state.user.currentUserAddr;\nexport const selectImpostorAddress = (state: AppState): string => state.user.impostorAddress;\nexport const selectChainTokenAllowanceMap = (state: AppState): ITokenAllowanceMap => state.user.chainTokenAllowance;\nexport const selectSpenderChainTokenAllowanceMap = (state: AppState): ISpenderTokenAllowanceMap =>\n state.user.chainTokenAllowanceWithSpender;\nexport default userSlice.reducer;\n","import { ZERO } from '@synfutures/sdks-perp';\nimport _ from 'lodash';\nimport { useEffect, useMemo } from 'react';\n\nimport { useAppSelector } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { TokenInfo } from '@/types/token';\nimport { ITokenAllowanceInfo } from '@/types/user';\nimport { isNativeTokenAddr } from '@/utils/token';\n\nimport * as Sentry from '@sentry/react';\nimport { selectIsBlacklisted } from '../global/globalSlice';\nimport {\n IUserState,\n selectChainTokenAllowanceMap,\n selectCurrentUserAddr,\n selectImpostorAddress,\n selectSpenderChainTokenAllowanceMap,\n selectUserState,\n} from './userSlice';\n\nexport function useUserState(): IUserState {\n const userState = useAppSelector(selectUserState);\n return userState;\n}\n\nexport function useUserAddrState(): string | undefined {\n // adapt cosplay mode\n const impostorAddress = useAppSelector(selectImpostorAddress) || process.env.REACT_APP_IMPOSTOR?.toLocaleLowerCase();\n const account = useAppSelector(selectCurrentUserAddr);\n return useMemo(() => {\n if (impostorAddress) return impostorAddress;\n return account;\n }, [account, impostorAddress]);\n}\n\nexport function useChainTokenAllowance(\n marginToken: TokenInfo | undefined,\n spenderAddress?: string | undefined,\n): ITokenAllowanceInfo {\n const chainId = useChainId();\n const account = useUserAddr();\n const chainTokenAllowance = useAppSelector(selectChainTokenAllowanceMap);\n const spenderChainTokenAllowance = useAppSelector(selectSpenderChainTokenAllowanceMap);\n\n const approval: ITokenAllowanceInfo = useMemo(() => {\n if (marginToken?.address && isNativeTokenAddr(marginToken.address)) {\n return {\n block: 0,\n allowance: ZERO,\n };\n }\n if (spenderAddress) {\n const approvalObj = _.get(\n spenderChainTokenAllowance,\n [chainId || '', account || '', marginToken?.address || '', spenderAddress],\n {\n block: 0,\n allowance: ZERO,\n checking: !isNativeTokenAddr(marginToken?.address || ''),\n },\n );\n return approvalObj;\n } else {\n const approvalObj = _.get(chainTokenAllowance, [chainId || '', account || '', marginToken?.address || ''], {\n block: 0,\n allowance: ZERO,\n checking: !isNativeTokenAddr(marginToken?.address || ''),\n });\n return approvalObj;\n }\n }, [marginToken?.address, spenderAddress, spenderChainTokenAllowance, chainId, account, chainTokenAllowance]);\n if (!account) {\n return {\n block: 0,\n allowance: ZERO,\n checking: false,\n };\n }\n return approval;\n}\nexport function useChainTokenAllowanceApproved(\n marginToken: TokenInfo | undefined,\n spenderAddress?: string | undefined,\n amount = ZERO,\n): boolean {\n const tokenAllowance = useChainTokenAllowance(marginToken, spenderAddress);\n const allowanceTooLow = useMemo(() => {\n if (marginToken?.address && isNativeTokenAddr(marginToken.address)) {\n return false;\n }\n return tokenAllowance.allowance && tokenAllowance.allowance.lt(amount);\n }, [marginToken?.address, tokenAllowance, amount]);\n return allowanceTooLow;\n}\n\nexport const useIsBlacklistedFromStore = (): boolean | undefined => {\n const userAddress = useUserAddr();\n const isBlacklisted = useAppSelector(selectIsBlacklisted(userAddress));\n return isBlacklisted;\n};\n\nexport const useSetSentryUser = (): void => {\n const userAddress = useUserAddr();\n const chainId = useChainId();\n useEffect(() => {\n if (process.env.NODE_ENV !== 'development' && process.env.REACT_APP_AWS_ENV !== 'dev') {\n Sentry.setUser({ userAddress, chainId });\n }\n }, [userAddress, chainId]);\n};\n","import { JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers';\nimport { useCallback, useMemo } from 'react';\n\nimport { WEB3_NETWORK_TYPE } from '@/constants';\nimport { CHAIN_ID, DAPP_CHAIN_CONFIGS, SUPPORTED_CHAIN_ID } from '@/constants/chain';\nimport { selectCurrentId } from '@/features/chain/chainSlice';\nimport { useCurrentId } from '@/features/chain/hook';\nimport { useUserAddrState } from '@/features/user/hooks';\nimport { useWalletProvider, useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { IDappChainConfig } from '@/types/chain';\nimport { getChainName, getChainShortName } from '@/utils/chain';\nimport { getProviderOrSigner, getSignerFromProvider } from '@/utils/signer';\n\nimport { useAppProvider } from '@/features/web3/hook';\nimport { useAppSelector } from '..';\n\nexport function useChainId(): CHAIN_ID | undefined {\n const chainId = useAppSelector(selectCurrentId);\n return chainId;\n}\n\nexport function useChainName(chainId?: CHAIN_ID): string | undefined {\n const defaultChainId = useChainId();\n\n if (!chainId) chainId = defaultChainId;\n\n return useMemo(() => {\n return !!chainId ? getChainName(chainId) : undefined;\n }, [chainId]);\n}\n\nexport function useChainShortName(chainId?: CHAIN_ID): string | undefined {\n const defaultChainId = useChainId();\n\n if (!chainId) chainId = defaultChainId;\n\n return useMemo(() => {\n return !!chainId ? getChainShortName(chainId) : undefined;\n }, [chainId]);\n}\n\nexport const useIsSupportedChain = (): boolean => {\n const chainId = useCurrentId();\n\n const getIsChainAvailable = useCallback((chainId: number) => {\n return SUPPORTED_CHAIN_ID.includes(chainId);\n }, []);\n\n const isChainAvailable = useMemo(() => {\n if (!chainId) return false;\n return getIsChainAvailable(chainId);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chainId]);\n\n return isChainAvailable;\n};\n\nexport const useAllDappChainConfig = (chainId?: CHAIN_ID): IDappChainConfig | null => {\n const isChainAvailable = useIsSupportedChain();\n\n const defaultChainId = useChainId();\n const rChainId = chainId || defaultChainId;\n /**\n * return new chain config info\n */\n const chainConfigInfo = useMemo(() => {\n if (rChainId && isChainAvailable) {\n return DAPP_CHAIN_CONFIGS[rChainId];\n }\n return null;\n }, [rChainId, isChainAvailable]);\n\n return chainConfigInfo;\n};\n\nexport const useDappChainConfig = (chainId?: CHAIN_ID): IDappChainConfig | null => {\n const isChainAvailable = useIsSupportedChain();\n\n const defaultChainId = useChainId();\n const rChainId = chainId || defaultChainId;\n /**\n * return new chain config info\n */\n const chainConfigInfo = useMemo(() => {\n if (rChainId && isChainAvailable) {\n return DAPP_CHAIN_CONFIGS[rChainId];\n }\n return null;\n }, [rChainId, isChainAvailable]);\n\n return chainConfigInfo;\n};\n\nexport const useEtherscanLink = (): ((data: string, type: 'transaction' | 'token' | 'address' | 'block') => string) => {\n const chainConfigInfo = useDappChainConfig();\n\n const getEtherscanLink = useCallback(\n (data: string, type: 'transaction' | 'token' | 'address' | 'block'): string => {\n if (!chainConfigInfo) return '';\n const prefix = chainConfigInfo.network.blockExplorer.url;\n\n switch (type) {\n case 'transaction': {\n return `${prefix}/tx/${data}`;\n }\n case 'token': {\n return `${prefix}/token/${data}`;\n }\n case 'block': {\n return `${prefix}/block/${data}`;\n }\n case 'address':\n default: {\n return `${prefix}/address/${data}`;\n }\n }\n },\n [chainConfigInfo],\n );\n\n return getEtherscanLink;\n};\n\n/**\n * get app or wallet connector's provider\n * @param web3NetworkType\n * @returns\n */\nexport function useProvider(web3NetworkType?: WEB3_NETWORK_TYPE): JsonRpcProvider | undefined {\n const walletProvider = useWalletProvider();\n const appProvider = useAppProvider();\n return useMemo(() => {\n return web3NetworkType === WEB3_NETWORK_TYPE.Wallet ? walletProvider : appProvider;\n }, [walletProvider, appProvider, web3NetworkType]);\n}\nexport function useUserAddr(): string | undefined {\n return useUserAddrState();\n}\n\nexport const useSigner = (web3NetworkType?: WEB3_NETWORK_TYPE): JsonRpcSigner | undefined => {\n const provider = useProvider(web3NetworkType);\n const account = useUserAddr();\n const walletSigner = useWalletSigner();\n return useMemo(() => {\n if (web3NetworkType === WEB3_NETWORK_TYPE.Wallet && walletSigner) return walletSigner;\n if (provider && account) {\n return getSignerFromProvider(provider, account);\n }\n return undefined;\n }, [account, provider, walletSigner, web3NetworkType]);\n};\n\nexport const useProviderOrSigner = (\n provider: JsonRpcProvider | undefined,\n account: string | null | undefined,\n): JsonRpcProvider | JsonRpcSigner | undefined => {\n return useMemo(() => {\n if (provider) {\n return getProviderOrSigner(provider, account ?? undefined);\n }\n return undefined;\n }, [account, provider]);\n};\n","import { CHAIN_ID } from '@/constants/chain';\nimport { useAppSelector } from '@/hooks';\n\nexport function useConfigData() {\n return useAppSelector((state) => {\n return state.config;\n });\n}\nexport const useBackendChainConfig = (chainId: CHAIN_ID | undefined) => {\n const { backendChainsConfig } = useConfigData();\n return chainId && backendChainsConfig[chainId];\n};\n\nexport const useTokensInfoConfig = (chainId: CHAIN_ID | undefined) => {\n const { chainTokensInfoConfig } = useConfigData();\n return chainId && chainTokensInfoConfig[chainId];\n};\n","import {\n getAccountBalanceHistory,\n getFundingHistory,\n getLiquidityHistory,\n getOrdersHistory,\n getTransferHistory,\n getVirtualTradeHistory,\n} from '@/features/graph/api';\nimport { KlineInterval } from '@synfutures/sdks-perp-datasource';\nimport { SPOT_KLINE_INTERVAL } from './spot';\n\nexport const QUERY_KEYS = {\n GRAPH: {\n ALL_INSTRUMENTS_BASIC_INFO: (chainId?: number) => ['sdk.dataSource.statistics.getInstrumentsInfo', { chainId }],\n VIRTUAL_TRADE_HISTORY: (args: Omit[0], 'sdk'>) => [\n 'sdk.dataSource.history.getVirtualTradeHistory',\n args,\n ],\n ORDERS_HISTORY: (args: Omit[0], 'sdk'>) => [\n 'sdk.dataSource.history.getOrdersHistory',\n args,\n ],\n FUNDING_HISTORY: (args: Omit[0], 'sdk'>) => [\n 'sdk.dataSource.history.getFundingHistory',\n args,\n ],\n TRANSFER_HISTORY: (args: Omit[0], 'sdk'>) => [\n 'sdk.dataSource.history.getTransferHistory',\n args,\n ],\n LIQUIDITY_HISTORY: (args: Omit[0], 'sdk'>) => [\n 'sdk.dataSource.history.getLiquidityHistory',\n args,\n ],\n ACCOUNT_BALANCE_HISTORY: (args: Omit[0], 'sdk'>) => [\n 'sdk.dataSource.history.getAccountBalanceHistory',\n args,\n ],\n },\n CAMPAIGN: {\n CAMPAIGNS: () => ['/v3/public/campaign', 'campaigns'],\n LEADERBOARD: (campaignId?: number, userAddress?: string) => [\n '/v3/public/campaign/?address=',\n { campaignId, userAddress },\n ],\n },\n YEAR_2024_SUMMARY: (userAddress: string | undefined) => ['/v3/public/yearSummary/2024', { userAddress }],\n SPOT: {\n POOLS: (chainId?: number, token0?: string, token1?: string) => [\n '/v3/public/aggregator/pools',\n { chainId, token0, token1 },\n ],\n TOKEN_LIST: (chainId?: number, selectedToken?: string) => [\n '/v3/public/aggregator/token-list',\n { chainId, selectedToken },\n ],\n KLINE: (chainId?: number, token0?: string, token1?: string, interval?: SPOT_KLINE_INTERVAL) => [\n '/v3/public/aggregator/kline',\n { chainId, token0, token1, interval },\n ],\n DEPTH: (chainId?: number, token0?: string, token1?: string, stepRatio?: number) => [\n '/v3/public/aggregator/depth',\n { chainId, token0, token1, stepRatio },\n ],\n PRICE: (chainId?: number, token0?: string, token1?: string) => [\n '/v3/public/aggregator/price',\n { chainId, token0, token1 },\n ],\n HISTORY: (user?: string, chainId?: number) => ['sdk.aggregatorDataSource.getOrderHistory', { user, chainId }],\n BALANCE: (user?: string, chainId?: number, tokenAddr?: string) => [\n 'signer.balanceOf',\n { user, chainId, tokenAddr },\n ],\n SIMULATE_SWAP: (chainId?: number, userAddr?: string, amount?: string, token0?: string, token1?: string) => [\n 'sdk.aggregator.simulateMultiSwap',\n { chainId, userAddr, amount, token0, token1 },\n ],\n SIMULATE_BEST_ROUTE: (chainId?: number, userAddr?: string, amount?: string, token0?: string, token1?: string) => [\n 'sdk.aggregator.querySplitRoute',\n { chainId, userAddr, amount, token0, token1 },\n ],\n },\n GLOBAL: {\n TOKEN_PRICE: (chainId?: number) => [`/v3/public/token/allPrice`, { chainId }],\n },\n FUTURES: {\n INSTRUMENT: (chainId?: number, instrumentAddr?: string) => [\n '/v3/public/perp/market/instrument',\n { chainId, instrumentAddr },\n ],\n PAIR_INFO: (chainId?: number, instrumentAddr?: string, expiry?: number) => [\n '/v3/public/perp/market/pairInfo',\n { chainId, instrumentAddr, expiry },\n ],\n ORDER_BOOK: (chainId?: number, instrumentAddr?: string, expiry?: number, stepRatio?: number) => [\n '/v3/public/perp/market/orderBook',\n { chainId, instrumentAddr, expiry, stepRatio },\n ],\n DEPTH_CHARTS: (chainId?: number, instrumentAddr?: string, expiry?: number) => [\n '/v3/public/perp/market/depth',\n { chainId, instrumentAddr, expiry },\n ],\n FUNDING_CHARTS: (chainId?: number, instrumentAddr?: string, expiry?: number, chartDuration?: string) => [\n '/v3/public/perp/market/funding',\n { chainId, instrumentAddr, expiry, chartDuration },\n ],\n KLINE_CHARTS: ({\n chainId,\n instrumentAddr,\n expiry,\n chartDuration,\n timeEnd,\n }: {\n chainId?: number;\n instrumentAddr?: string;\n expiry?: number;\n chartDuration?: KlineInterval;\n timeEnd?: number;\n }) => [\n '/v3/public/perp/market/kline',\n {\n chainId,\n instrumentAddr,\n expiry,\n chartDuration,\n timeEnd,\n },\n ],\n },\n MARKET: {\n PAIR_LIST: () => ['/v3/public/perp/market/list'],\n CREATIVE_PAIR_LIST: () => ['/v3/public/perp/market/feature/pairs'],\n TREND_LIST: () => ['/v3/public/market/trend-info'],\n },\n VAULT: {\n INFOS: (chainId?: number, userAddr?: string) => ['/v3/public/vault', { chainId, userAddr }],\n SUMMARY: (chainId?: number) => ['/v3/public/vault/summary', { chainId }],\n },\n PORTFOLIO: {\n PORTFOLIO: (chainId?: number, userAddr?: string, instrumentAddr?: string, expiry?: number) => [\n '/v3/public/perp/market/user/portfolio',\n { chainId, userAddr, instrumentAddr, expiry },\n ],\n },\n EARN: {\n IL: (chainId?: number, symbol?: string, alphaLower?: string, alphaUpper?: string) => [\n 'ildata',\n chainId,\n symbol,\n alphaLower,\n alphaUpper,\n ],\n },\n BALANCE: {\n GATE: (chainId?: number, userAddr?: string) => ['/v3/public/perp/market/user/gateValue', { chainId, userAddr }],\n },\n} as const;\n","import { axiosGet } from '@/utils/axios';\nimport { ITokenPrice, ITokenPriceMap } from './type';\n\nexport const getTokenPriceMap = async ({ chainId }: { chainId?: number }): Promise => {\n const response = await axiosGet({\n url: `https://api.synfutures.com/v3/public/token/allPrice?chainId=${chainId}`,\n });\n\n const tokenPrices = response?.data?.data as ITokenPrice[];\n const tokenPriceMap: ITokenPriceMap = {};\n\n for (const price of tokenPrices) {\n if (price.address) {\n tokenPriceMap[price.address] = price;\n }\n }\n\n return tokenPriceMap;\n};\n","import { QUERY_KEYS } from '@/constants/query';\nimport { useQuery } from '@tanstack/react-query';\nimport { useMemo } from 'react';\nimport { getTokenPriceMap } from './api';\n\nexport const useTokenPrices = ({ chainId }: { chainId?: number }) => {\n const queryReturn = useQuery({\n queryKey: QUERY_KEYS.GLOBAL.TOKEN_PRICE(chainId),\n queryFn: () => getTokenPriceMap({ chainId }),\n //refetchInterval: 60 * 1000 *5, // Refresh every minute\n enabled: !!chainId,\n });\n\n return useMemo(() => {\n return queryReturn;\n }, [queryReturn]);\n};\nexport const useTokenPrice = ({ tokenAddress, chainId }: { tokenAddress?: string; chainId?: number }) => {\n const { data: tokenPrices } = useTokenPrices({ chainId });\n\n return useMemo(() => {\n if (!tokenAddress || !tokenPrices) return undefined;\n return tokenPrices[tokenAddress];\n }, [tokenAddress, tokenPrices]);\n};\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { WrappedQuote } from '@/entities/WrappedQuote';\nimport { useAppSelector } from '@/hooks';\nimport { useDappChainConfig } from '@/hooks/web3/useChain';\nimport { TokenInfo, TokenInfoMap } from '@/types/token';\n\nimport { useTokensInfoConfig } from '../config/hook';\nimport { useTokenPrices } from '../global/query';\nimport {\n TBlockStatus,\n selectChainBlockStatus,\n selectCurrentId,\n selectTokenInfoFromChain,\n selectTokenInfosFromChain,\n} from './chainSlice';\nexport function useBlockStatus(): TBlockStatus | undefined {\n const chainBlockStatus = useAppSelector(selectChainBlockStatus),\n currentChainId = useCurrentId();\n return useMemo(() => chainBlockStatus[currentChainId], [chainBlockStatus, currentChainId]);\n}\n\nexport function useBlockNumber(): number | undefined {\n const chainBlockStatus = useAppSelector(selectChainBlockStatus),\n currentChainId = useCurrentId();\n return useMemo(() => chainBlockStatus[currentChainId]?.blockNumber, [chainBlockStatus, currentChainId]);\n}\n\nexport function useCurrentId(): number {\n const currentId = useAppSelector(selectCurrentId);\n return useMemo(() => currentId, [currentId]);\n}\n\nexport function useNativeToken(chainId: CHAIN_ID | undefined): TokenInfo | undefined {\n const dappConfig = useDappChainConfig(chainId);\n return useMemo(\n () => (chainId && dappConfig?.nativeToken ? { ...dappConfig?.nativeToken, chainId } : undefined),\n [chainId, dappConfig],\n );\n}\n\nexport function useWrappedNativeToken(chainId: CHAIN_ID | undefined): TokenInfo | undefined {\n const dappConfig = useDappChainConfig(chainId);\n return useMemo(() => dappConfig?.wrappedNativeToken, [dappConfig]);\n}\n\nexport function useNativeTokenMinGasPriceLimit(chainId: CHAIN_ID | undefined): number {\n const dappConfig = useDappChainConfig(chainId);\n return useMemo(() => {\n return dappConfig?.minNativeTokenKeep || 0;\n }, [dappConfig?.minNativeTokenKeep]);\n}\n\nexport function useQuoteTokens(chainId: CHAIN_ID | undefined) {\n const tokensInfoConfig = useTokensInfoConfig(chainId);\n return useMemo(() => {\n if (!chainId) return undefined;\n return tokensInfoConfig?.quoteTokens;\n }, [chainId, tokensInfoConfig]);\n}\n\nexport function useMarginTokenInfoMap(chainId: CHAIN_ID | undefined): TokenInfoMap | undefined {\n const tokensInfoConfig = useTokensInfoConfig(chainId);\n return useMemo(() => {\n if (!chainId) return undefined;\n return tokensInfoConfig?.marginTokenMap;\n }, [chainId, tokensInfoConfig]);\n}\n\nexport function useWrappedQuoteMap(chainId: CHAIN_ID | undefined): {\n [tokenAddress: string]: WrappedQuote;\n} {\n const marginTokenMap = useMarginTokenInfoMap(chainId);\n const { data: priceInfoMap } = useTokenPrices({ chainId });\n\n return useMemo(() => {\n if (!marginTokenMap || !chainId) {\n return {};\n }\n return _.mapValues(marginTokenMap, (origin) => {\n const quote = WrappedQuote.getInstance(origin.id, chainId);\n if (!quote) {\n return WrappedQuote.wrapInstance({ metaToken: origin, chainId });\n }\n if (priceInfoMap) {\n const quotePriceInfo = priceInfoMap[quote.address];\n if (quotePriceInfo) {\n quote.setTokenPrice(quotePriceInfo);\n }\n }\n return quote;\n });\n }, [chainId, marginTokenMap, priceInfoMap]);\n}\n\nexport function useIsNativeToken(chainId: CHAIN_ID | undefined, token: TokenInfo | undefined): boolean | undefined {\n const nativeToken = useNativeToken(chainId);\n return useMemo(() => {\n if (nativeToken && token) {\n return nativeToken?.symbol === token?.symbol && nativeToken?.address === token?.address;\n }\n return undefined;\n }, [nativeToken, token]);\n}\n\n/**\n * get token info from chain (will fetch it from server if not exist, also return the token logo uri)\n * @param chainId\n * @param tokenAddr\n * @returns\n */\nexport function useTokenInfo(chainId: CHAIN_ID | undefined, tokenAddr: string | undefined): TokenInfo | undefined {\n const tokenInfo = useAppSelector(selectTokenInfoFromChain(chainId, tokenAddr));\n return useMemo(() => tokenInfo, [tokenInfo]);\n}\n\nexport function useTokenInfos(chainId: CHAIN_ID | undefined) {\n const tokenInfos = useAppSelector(selectTokenInfosFromChain(chainId));\n return useMemo(() => tokenInfos, [tokenInfos]);\n}\n","import { IVaultChainConfig, IVaultConfig } from '@/types/vault';\nimport { getChainName } from '@/utils/chain';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport _ from 'lodash';\nimport * as vaultConfig from '../../configs/vault.json';\nimport { CHAIN_ID } from '../chain';\n\nexport const colWidths = [150, 100, 110, 120, 120];\ntype TVaultStageInfo = {\n color: string;\n bgColor: string;\n i18nId: string;\n};\n\nexport const vaultStageInfos: {\n [id in Stage]: TVaultStageInfo;\n} = {\n [Stage.INVALID]: {\n color: '#3D4F5C',\n bgColor: 'rgba(61, 79, 92, 0.20)',\n i18nId: 'launchpad.invalid',\n },\n [Stage.LIVE]: {\n color: '#14B84B',\n bgColor: 'rgba(20, 184, 75, 0.20)',\n i18nId: 'launchpad.live',\n },\n [Stage.SUSPENDED]: {\n color: '#FFAA00',\n bgColor: '#FFAA0033',\n i18nId: 'launchpad.suspend',\n },\n [Stage.UPCOMING]: {\n color: '#00BFBF',\n bgColor: 'rgba(0, 191, 191, 0.20)',\n i18nId: 'launchpad.upcoming',\n },\n};\n\nexport enum VaultActionId {\n 'deposit' = 'DEPOSIT',\n 'withdrawal' = 'WITHDRAW',\n 'depositFor' = 'DEPOSITFOR',\n}\n\ntype TVaultActionInfo = {\n i18nId: string;\n};\n\nexport const vaultActionInfos: {\n [id in VaultActionId]: TVaultActionInfo;\n} = {\n [VaultActionId['deposit']]: {\n i18nId: 'launchpad.vaultDeposit',\n },\n [VaultActionId['withdrawal']]: {\n i18nId: 'launchpad.vaultWithdrawal',\n },\n [VaultActionId['depositFor']]: {\n i18nId: 'launchpad.vaultDeposit',\n },\n};\n\nlet vaultConfigSingle = {} as IVaultConfig;\n\nexport function getVaultConfig(): IVaultConfig {\n if (vaultConfigSingle.chainConfig) {\n return vaultConfigSingle;\n }\n const config = vaultConfig;\n\n const chainConfig = _.reduce(\n config.chainConfig,\n (res, curr) => {\n const chainId = curr.chainId;\n\n res[chainId] = {\n ...curr,\n chainId,\n graphAddr: curr.graphAddr,\n };\n return res;\n },\n {} as {\n [chainId: number]: IVaultChainConfig;\n },\n );\n vaultConfigSingle = {\n ...config,\n chainConfig,\n } as IVaultConfig;\n return vaultConfigSingle;\n}\nexport const getVaultApiPrefix = (chainId: CHAIN_ID) =>\n `https://api.synfutures.com/v3/vault/${getChainName(chainId).toLowerCase()}`;\nexport const LEGAL_DISCLAIMER = 'https://docs.synfutures.com/oyster-amm/perp-launchpad/legal-disclaimer';\nexport { vaultConfig };\n","import { PoolType as SynPoolType } from '@synfutures/sdks-aggregator';\nimport _ from 'lodash';\nimport Aero from './assets/icon_aerodrome.png';\nimport ALB from './assets/icon_crypto_alb.png';\nimport Uni from './assets/icon_oracle_dexv2_uni.svg';\nimport Pancake from './assets/icon_pancakeswap.svg';\nimport Sushi from './assets/icon_sushiswap.svg';\n\nexport enum SPOT_KLINE_INTERVAL {\n H_1 = '1h',\n D_1 = '1d',\n W_1 = '1w',\n}\nexport const SPOT_KLINE_INTERVAL_TICK_GAP = {\n // 5 min\n [SPOT_KLINE_INTERVAL.H_1]: 1000 * 60 * 5,\n // 2 hours\n [SPOT_KLINE_INTERVAL.D_1]: 1000 * 60 * 60 * 2,\n // 1 Day\n [SPOT_KLINE_INTERVAL.W_1]: 1000 * 60 * 60 * 24,\n};\n\nexport const getSpotApiUrl = (url: string) =>\n `/v3/public/${process.env.REACT_APP_API_ENV === 'dev' ? 'dev/' : ''}aggregator/${url}`;\n\nconst CustomPoolType = {\n OTHER: 100,\n} as const;\n\nexport const SpotDexType = { ...SynPoolType, ...CustomPoolType } as const;\n\nexport const spotDexInfos: { [id in number]?: { name: string; imageSrc: string; version: string; color: string } } = {\n [SpotDexType.PANCAKE_V3]: { name: 'Pancake V3', imageSrc: Pancake, version: 'V3', color: '#fa0' },\n [SpotDexType.UNISWAP_V3]: { name: 'Uniswap V3', imageSrc: Uni, version: 'V3', color: '#fc74fe' },\n [SpotDexType.UNISWAP_V2]: { name: 'Uniswap V2', imageSrc: Uni, version: 'V2', color: '#fc74fe' },\n [SpotDexType.AERODROME_V3]: { name: 'Aerodrome V3', imageSrc: Aero, version: 'V3', color: '#00bfbf' },\n [SpotDexType.AERODROME_V2]: { name: 'Aerodrome V2', imageSrc: Aero, version: 'V2', color: '#00bfbf' },\n [SpotDexType.SUSHISWAP_V3]: { name: 'Sushiswap V3', imageSrc: Sushi, version: 'V3', color: '#b54848' },\n [SpotDexType.ALB_V3]: { name: 'ALB V3', imageSrc: ALB, version: 'V3', color: '#4d88ff' },\n [SpotDexType.OTHER]: { name: 'Others', imageSrc: '', version: '', color: '#000000' },\n};\n\nexport const spotStepRatio = [5, 10, 20];\nexport const defaultStepRatioOverride = 10;\n// base block time\nexport const SPOT_DETAIL_POLLING_INTERVAL = 1000 * 8;\nexport const SPOT_SIMULATION_TIME_OUT = 1000 * 4;\nexport const SPOT_HISTORY_GRAPH = 'https://api.synfutures.com/thegraph/base-aggregator';\nexport const SPOT_BALANCE_BATCH_SIZE = 500;\nexport const PoolTypePools = _.orderBy(\n Object.values(SynPoolType).filter((value) => typeof value === 'number'),\n [(pool) => _.get(spotDexInfos, [pool])?.name.toLowerCase()],\n ['asc'],\n);\n","import { CHAIN_ID, Context } from '@derivation-tech/context';\nimport { DefaultEthGasEstimator, txPlugin } from '@derivation-tech/tx-plugin';\nimport { JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers';\nimport { createAction, createAsyncThunk } from '@reduxjs/toolkit';\nimport { aggregatorPlugin as aggregatorPlugin3 } from '@synfutures/sdks-aggregator';\nimport { aggregatorDataSourcePlugin as aggregatorDataSourcePlugin3 } from '@synfutures/sdks-aggregator-datasource';\nimport { perpPlugin } from '@synfutures/sdks-perp';\nimport { perpDataSourcePlugin } from '@synfutures/sdks-perp-datasource';\nimport { perpLaunchpadPlugin } from '@synfutures/sdks-perp-launchpad';\nimport { perpLaunchpadDataSourcePlugin } from '@synfutures/sdks-perp-launchpad-datasource';\n\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\n\nimport { AppState } from '../store';\n\nimport { getVaultConfig } from '@/constants/launchpad/vault';\nimport { SPOT_HISTORY_GRAPH } from '@/constants/spot';\n\nexport const initSDKContext = createAsyncThunk(\n 'web3/initSDKContext',\n\n async (\n { chainId, provider }: { chainId: number; provider: JsonRpcProvider },\n { getState },\n ): Promise => {\n const {\n web3: { chainSDK },\n } = getState() as AppState;\n try {\n // dispatch(setAppProvider({ chainId, provider }));\n if (chainSDK[chainId]) {\n return;\n }\n const chainConfig = DAPP_CHAIN_CONFIGS[chainId];\n\n const vaultConfig = getVaultConfig();\n const chainVaultConfig = vaultConfig?.chainConfig[chainId];\n\n const ctx = new Context(chainId)\n .use(perpPlugin({ inverse: true }))\n .use(txPlugin({ gasLimitMultiple: 1.7, gasEstimator: new DefaultEthGasEstimator() }))\n .use(\n perpDataSourcePlugin({ endpoint: chainConfig.subgraph, inverse: true }), // dataSourcePlugin\n )\n .use(perpLaunchpadPlugin()) // vaultPlugin\n .use(perpLaunchpadDataSourcePlugin(chainVaultConfig?.graphAddr || '')) // vaultDataSourcePlugin\n .use(aggregatorPlugin3())\n .use(\n aggregatorDataSourcePlugin3(SPOT_HISTORY_GRAPH), // aggregatorDataSourcePlugin\n );\n ctx.setProvider(provider);\n await ctx.init();\n return ctx;\n\n return undefined;\n } catch (e) {\n console.error('init sdk error', e);\n }\n },\n);\n\nexport const setAppProvider = createAsyncThunk(\n 'web3/setAppProvider',\n\n (\n { chainId, provider }: { chainId: CHAIN_ID; provider: JsonRpcProvider },\n { getState },\n ): JsonRpcProvider | undefined => {\n const {\n web3: { chainAppProvider },\n } = getState() as AppState;\n\n if (chainAppProvider[chainId]) {\n return;\n }\n return provider;\n },\n);\n\nexport const setAppSigner = createAction<{ chainId: number; signer: JsonRpcSigner | undefined }>('web3/setAppSigner');\n","import { JsonRpcProvider, JsonRpcSigner, WebSocketProvider } from '@ethersproject/providers';\nimport { createSlice } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { Context } from '@derivation-tech/context';\nimport { AppState } from '../store';\nimport { initSDKContext, setAppProvider, setAppSigner } from './actions';\n\nexport interface IWeb3State {\n chainSDK: {\n [chainId: number]: Context;\n };\n chainAppProvider: {\n [chainId: number]: WebSocketProvider | JsonRpcProvider;\n };\n chainSigner: {\n [chainId: number]: JsonRpcSigner | undefined;\n };\n}\nexport const initialState: IWeb3State = {\n chainSDK: {},\n chainAppProvider: {},\n chainSigner: {},\n};\n\nexport const web3Slice = createSlice({\n name: 'web3',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder.addCase(initSDKContext.fulfilled, (state, action) => {\n const { arg } = action.meta;\n if (action.payload) {\n _.set(state.chainSDK, [arg.chainId], action.payload);\n }\n });\n\n builder.addCase(setAppProvider.fulfilled, (state, action) => {\n const { arg } = action.meta;\n if (action.payload) {\n _.set(state.chainAppProvider, [arg.chainId], action.payload);\n }\n });\n builder.addCase(setAppSigner, (state, { payload }) => {\n _.set(state.chainSigner, [payload.chainId], payload.signer);\n });\n },\n});\n\nexport const selectWeb3State = (state: AppState): IWeb3State => state.web3;\n\nexport const selectAppProvider =\n (chainId: number | undefined): ((state: AppState) => WebSocketProvider | JsonRpcProvider | undefined) =>\n (state: AppState): WebSocketProvider | JsonRpcProvider | undefined =>\n chainId ? state.web3.chainAppProvider[chainId] : undefined;\n\nexport const selectSigner =\n (chainId: number | undefined): ((state: AppState) => JsonRpcSigner | undefined) =>\n (state: AppState): JsonRpcSigner | undefined =>\n chainId ? state.web3.chainSigner[chainId] : undefined;\n\nexport const selectSDK =\n (chainId: number | undefined): ((state: AppState) => Context | undefined) =>\n (state: AppState): Context | undefined =>\n chainId ? state.web3.chainSDK[chainId] : undefined;\n\nexport default web3Slice.reducer;\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { JsonRpcProvider, WebSocketProvider } from '@ethersproject/providers';\n\nimport { useAppSelector } from '@/hooks';\n\nimport { Context } from '@derivation-tech/context';\nimport { useCurrentId } from '../chain/hook';\nimport { selectAppProvider, selectSDK } from './web3Slice';\n\nexport function useAppProvider(chainId?: CHAIN_ID): WebSocketProvider | JsonRpcProvider | undefined {\n const defaultChainId = useCurrentId();\n\n const appProvider = useAppSelector(selectAppProvider(chainId || defaultChainId));\n return appProvider;\n}\n\nexport function useAppChainId(): number {\n const chainId = useCurrentId();\n return chainId;\n}\n\nexport const useAppIsActive = (): boolean => {\n const provider = useAppProvider();\n return !!provider;\n};\n\nexport function useSDK(chainId: CHAIN_ID | undefined): Context | undefined {\n const sdkContext = useAppSelector(selectSDK(chainId));\n return sdkContext;\n}\n","import { CHAIN_ID } from '@/constants/chain';\nimport { useAppChainId } from '@/features/web3/hook';\nimport { getDefaultChainId } from '@/utils/chain';\nimport type { Web3Provider } from '@ethersproject/providers';\nimport { ConnectedWallet, User, useLogin, useLogout, useModalStatus, usePrivy, useWallets } from '@privy-io/react-auth';\nimport { useAsyncEffect } from 'ahooks';\nimport { useCallback, useMemo, useState } from 'react';\n\nexport function usePrivyIsReady(): boolean {\n const { ready } = usePrivy();\n return ready;\n}\n\nexport function usePrivyWallet(): ConnectedWallet | undefined {\n const { wallets } = useWallets();\n const privyWallet = useMemo(() => {\n return wallets.find((wallet) => wallet.walletClientType === 'privy');\n }, [wallets]);\n\n return privyWallet;\n}\n\nexport function usePrivyProvider(): Web3Provider | undefined {\n const [privyProvider, setPrivyProvider] = useState();\n const privyWallet = usePrivyWallet();\n useAsyncEffect(async () => {\n if (!privyWallet) return;\n const provider = await privyWallet.getEthersProvider();\n provider && setPrivyProvider(provider);\n }, [privyWallet]);\n\n return privyProvider;\n}\n\nexport const usePrivyChainId = (): CHAIN_ID | undefined => {\n const wallet = usePrivyWallet();\n\n return useMemo(() => {\n if (!wallet?.chainId) return;\n return Number(wallet?.chainId.split(':')[1]) as CHAIN_ID;\n }, [wallet?.chainId]);\n};\nexport const usePrivyWalletAddress = (): string | undefined => {\n const wallet = usePrivyWallet();\n return useMemo(() => {\n return wallet?.address?.toLowerCase();\n }, [wallet?.address]);\n};\nexport const usePrivyIsActive = (): boolean => {\n const { ready, authenticated } = usePrivy();\n\n return useMemo(() => ready && authenticated, [authenticated, ready]);\n};\n\nexport function usePrivyIsWrongNetwork(): boolean {\n const chainId = usePrivyChainId();\n const appChainId = useAppChainId();\n\n const isWrongNetwork = useMemo(() => {\n if (chainId && appChainId) {\n return appChainId !== chainId;\n }\n return chainId !== getDefaultChainId();\n }, [appChainId, chainId]);\n return isWrongNetwork;\n}\n\nexport function usePrivySwitchNetwork(): (desiredChainId: number) => Promise {\n const wallet = usePrivyWallet();\n return useCallback(\n async (desiredChainId: number) => {\n if (!wallet) return false;\n try {\n await wallet?.switchChain(desiredChainId);\n\n return true;\n } catch (error) {\n console.error('🚀 ~ usePrivySwitchNetwork ~ error', error);\n }\n return false;\n },\n [wallet],\n );\n}\n\nexport function useLoginInOrOutPrivyWallet(\n callbackAfterLogin?: (\n isLogin: boolean,\n successLogin?: {\n user: User;\n isNewUser: boolean;\n wasAlreadyAuthenticated: boolean;\n loginMethod: string | null;\n linkedAccount: unknown | null;\n },\n ) => void,\n errorAfterLogin?: (error: string) => void,\n) {\n const { login } = useLogin({\n onComplete: (user, isNewUser, wasAlreadyAuthenticated, loginMethod, linkedAccount) => {\n console.log('privy login onComplete', { user, isNewUser, wasAlreadyAuthenticated, loginMethod, linkedAccount });\n callbackAfterLogin &&\n callbackAfterLogin(true, { user, isNewUser, wasAlreadyAuthenticated, loginMethod, linkedAccount });\n // Any logic you'd like to execute if the user is/becomes authenticated while this\n // component is mounted\n },\n onError: (error) => {\n console.log('privy login onError', error);\n errorAfterLogin && errorAfterLogin(error);\n // Any logic you'd like to execute after a user exits the login flow or there is an error\n },\n });\n\n const { logout } = useLogout({\n onSuccess: () => {\n console.log('privy User logged out');\n callbackAfterLogin && callbackAfterLogin(false);\n // Any logic you'd like to execute after a user successfully logs out\n },\n });\n\n return { login, logout };\n}\n\nexport function useIsOpenPrivyModal() {\n const { isOpen } = useModalStatus();\n return isOpen;\n}\n\nexport function usePrivyUserInfo() {\n const { user } = usePrivy();\n return user;\n}\n","import { clearDisconnectFlag } from '@/utils/wagmi';\nimport { useCallback } from 'react';\nimport { useAccount, useConnectorClient, useDisconnect } from 'wagmi';\n\nexport function useWagmiAccount(): ReturnType {\n const account = useAccount();\n return account;\n}\n\nexport function useWagmiConnectorClient(): ReturnType {\n const connectorClient = useConnectorClient();\n return connectorClient;\n}\n\nexport function useWagmiDisconnect() {\n const { disconnect, connectors } = useDisconnect();\n return useCallback(() => {\n connectors.map((connector) => disconnect({ connector }));\n clearDisconnectFlag();\n }, [connectors, disconnect]);\n}\n","import type { JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers';\nimport { useMemo } from 'react';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { useWalletType } from '@/features/wallet/hook';\nimport { WalletType } from '@/types/wallet';\n\nimport { getSignerFromProvider } from '@/utils/signer';\nimport { useEthersProvider, useEthersSigner } from '@/utils/wagmi';\nimport { Connector } from 'wagmi';\nimport {\n usePrivyChainId,\n usePrivyIsActive,\n usePrivyProvider,\n usePrivyWalletAddress,\n} from '../../connectors/privy/usePrivyWallet';\nimport { useWagmiAccount } from './useWagami';\n\nexport function useWalletConnector(): Connector | undefined {\n const { connector } = useWagmiAccount();\n return useMemo(() => {\n return connector;\n }, [connector]);\n}\n\nexport function useWalletProvider(): JsonRpcProvider | undefined {\n const walletType = useWalletType();\n const walletProvider = useEthersProvider();\n\n const privyProvider = usePrivyProvider();\n\n return useMemo(() => {\n return walletType === WalletType.PRIVY ? privyProvider : walletProvider;\n }, [walletType, privyProvider, walletProvider]);\n}\nexport const useWalletSigner = (): JsonRpcSigner | undefined => {\n const provider = useWalletProvider();\n const account = useWalletAccount();\n const signer = useEthersSigner();\n const walletType = useWalletType();\n return useMemo(() => {\n if (walletType === WalletType.PRIVY && provider && account) {\n return getSignerFromProvider(provider, account);\n } else if (signer) {\n return signer;\n }\n return undefined;\n }, [account, provider, signer, walletType]);\n};\n\nexport const useWalletConnectorChainId = (): CHAIN_ID | undefined => {\n const { chainId } = useWagmiAccount();\n const privyChainId = usePrivyChainId();\n const walletType = useWalletType();\n\n return useMemo(() => {\n return walletType === WalletType.PRIVY ? privyChainId : chainId;\n }, [privyChainId, chainId, walletType]);\n};\nexport const useWalletAccount = (): string | undefined => {\n const walletType = useWalletType();\n const { address } = useWagmiAccount();\n const addr = address;\n const privyAddr = usePrivyWalletAddress();\n\n return useMemo(() => {\n return walletType === WalletType.PRIVY ? privyAddr : addr?.toLowerCase();\n }, [addr, privyAddr, walletType]);\n};\nexport const useWalletIsActive = (): boolean => {\n const walletType = useWalletType();\n const { isConnected } = useWagmiAccount();\n const isPrivyActive = usePrivyIsActive();\n return useMemo(() => {\n return walletType === WalletType.PRIVY ? isPrivyActive : isConnected;\n }, [isConnected, isPrivyActive, walletType]);\n};\n","import { useMemo } from 'react';\n\nimport { SOCIAL_WALLETS, SUPPORTED_WALLETS, WALLET_CONFIGS } from '@/constants/wallets';\nimport { useAppSelector } from '@/hooks';\nimport {\n ISocialWalletInfo,\n IWalletConfigInfo,\n IWeb3WalletInfo,\n WALLET_CONNECT_STATUS,\n WalletType,\n} from '@/types/wallet';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { useWalletIsActive } from '@/hooks/web3/useWalletNetwork';\nimport { getDefaultChainId } from '@/utils/chain';\nimport { isMobile } from 'react-device-detect';\nimport { useConnect } from 'wagmi';\nimport { useAppChainId } from '../web3/hook';\nimport { selectWalletChainId, selectWalletConnectStatus, selectWalletType } from './walletSlice';\n\nexport function useWeb3WalletConfigList(): IWeb3WalletInfo[] {\n const { connectors } = useConnect();\n return useMemo(() => {\n console.log('🚀 ~ useWeb3WalletConfigList ~ connectors:', connectors);\n\n return WALLET_CONFIGS.supportedWallets\n .map((walletType) => SUPPORTED_WALLETS[walletType])\n .map((wallet) => {\n const connector = connectors.find((conn) => conn.id === wallet.id);\n if (connector) {\n return {\n ...wallet,\n connector: connector,\n };\n } else if (wallet.type === WalletType.BURRITO) {\n return {\n ...wallet,\n connector: connectors.find((conn) => conn.id === WalletType.WALLET_CONNECT),\n };\n } else if (wallet.type !== WalletType.WALLET_CONNECT) {\n // fallback to injected connector\n return {\n ...wallet,\n connector: connectors.find((conn) => conn.id === 'injected'),\n };\n }\n return wallet;\n });\n }, [connectors]);\n}\n\nexport function useSocialWalletConfigList(): ISocialWalletInfo[] {\n return useMemo(() => {\n return Object.values(SOCIAL_WALLETS);\n }, []);\n}\n\n/**\n * get wallet config\n * @param walletType\n * @returns\n */\nexport function useWalletConfig(walletType: WalletType): IWalletConfigInfo {\n return useMemo(() => {\n return WALLET_CONFIGS.walletConfig[walletType];\n }, [walletType]);\n}\n\nexport function useWalletConnectStatus(): WALLET_CONNECT_STATUS {\n const connectStatus = useAppSelector(selectWalletConnectStatus);\n return connectStatus;\n}\n\nexport function useWalletType(): WalletType | undefined {\n const walletType = useAppSelector(selectWalletType);\n return walletType;\n}\n\nexport function useWalletChainId(): CHAIN_ID | undefined {\n const walletChainId = useAppSelector(selectWalletChainId);\n return walletChainId;\n}\n\nexport function useWalletIsWrongNetwork(): boolean {\n const chainId = useWalletChainId();\n const appChainId = useAppChainId();\n const isActive = useWalletIsActive();\n\n const isWrongNetwork = useMemo(() => {\n if (!isActive) return true;\n if (chainId && appChainId) {\n return appChainId !== chainId;\n }\n return chainId !== getDefaultChainId();\n }, [appChainId, chainId, isActive]);\n return isWrongNetwork;\n}\n\n/**\n * Check if a specific type of wallet exists\n * @param walletType\n * @returns boolean\n */\nexport function useWalletExists(walletType: WalletType): boolean {\n const { connectors } = useConnect();\n\n return useMemo(() => {\n if (isMobile) {\n return false;\n }\n const wallet = SUPPORTED_WALLETS[walletType];\n if (!wallet) {\n return false;\n } else if (wallet?.hideInstalled) {\n return false;\n }\n const connector = connectors.find((conn) => conn.id === wallet.id);\n return !!connector;\n }, [connectors, walletType]);\n}\n","import { useEffect } from 'react';\n\nimport { setWalletType } from '@/features/wallet/walletSlice';\nimport { useAppDispatch } from '@/hooks';\nimport { WalletType } from '@/types/wallet';\n\nimport { WALLET_TYPE } from '@/constants/storage';\nimport { setPrivyUserAfterLogin } from '@/features/wallet/actions';\nimport { useWalletType } from '@/features/wallet/hook';\nimport { useWagmiDisconnect } from '@/hooks/web3/useWagami';\nimport { useLogin, usePrivy } from '@privy-io/react-auth';\n\nfunction useActivePrivyConnect() {\n const walletType = useWalletType();\n const dispatch = useAppDispatch();\n const { ready, authenticated, isModalOpen } = usePrivy();\n const disconnect = useWagmiDisconnect();\n useEffect(() => {\n // set storage wallet type to privy if user is not authenticated and modal is open\n if (ready && !authenticated) {\n if (isModalOpen) {\n if (walletType !== WalletType.PRIVY) {\n localStorage.setItem(WALLET_TYPE, WalletType.PRIVY);\n }\n } else if (walletType) {\n localStorage.setItem(WALLET_TYPE, walletType);\n }\n }\n }, [isModalOpen, ready, authenticated, walletType]);\n\n useLogin({\n onComplete: (user, isNewUser, wasAlreadyAuthenticated, loginMethod, linkedAccount) => {\n // Any logic you'd like to execute if the user is/becomes authenticated while this\n // component is mounted\n dispatch(setPrivyUserAfterLogin({ user, isNewUser, wasAlreadyAuthenticated, loginMethod, linkedAccount }));\n const storageWalletType = localStorage.getItem(WALLET_TYPE);\n if (storageWalletType && storageWalletType === WalletType.PRIVY) {\n dispatch(setWalletType({ type: WalletType.PRIVY }));\n disconnect();\n }\n },\n onError: (error) => {\n console.log('privy login onError', error);\n // Any logic you'd like to execute after a user exits the login flow or there is an error\n },\n });\n}\n\nexport default function ActiveConnectorManager({ children }: { children: JSX.Element }): JSX.Element {\n useActivePrivyConnect();\n\n return children;\n}\n","import { getDefaultChainId } from '@/utils/chain';\nimport { PrivyClientConfig } from '@privy-io/react-auth';\nimport { arbitrum, base, blast, blastSepolia, linea } from 'viem/chains';\n\nconst defaultChainId = getDefaultChainId();\n\nexport const privyConfig: PrivyClientConfig = {\n // Display email and wallet as login methods\n loginMethods: ['email', 'sms', 'google', 'twitter', 'discord', 'farcaster', 'github'],\n // Customize Privy's appearance in your app\n appearance: {\n theme: 'light',\n accentColor: '#00bfbf',\n logo: 'https://api.synfutures.com/ipfs/logo/logo-svg/logo_light.svg',\n },\n // Create embedded wallets for users who don't have a wallet\n embeddedWallets: {\n createOnLogin: 'users-without-wallets',\n },\n supportedChains: [blast, base, blastSepolia, linea, arbitrum],\n defaultChain: defaultChainId === base.id ? base : blast,\n};\n\nexport const privyAppId = process.env.REACT_APP_PRIVY_APP_ID || 'clz2gl5r702phkqjy3zhlalh9';\n","import { getWalletConfigSetting } from '@/configs';\nimport { WalletType } from '@/types/wallet';\nimport { getWagmiConnectorV2 } from '@binance/w3w-wagmi-connector-v2';\n\nconst configs = getWalletConfigSetting();\nexport const binanceSupportChainIds = configs.walletConfig[WalletType.BINANCE].supportChainIds || [];\n\nexport const binanceConnectorFN = getWagmiConnectorV2();\n","import { getWalletConfigSetting } from '@/configs';\nimport { WalletType } from '@/types/wallet';\nimport { walletConnect } from '@wagmi/connectors';\n\nconst configs = getWalletConfigSetting();\n\nexport const walletConnectSupportChains = configs.walletConfig[WalletType.WALLET_CONNECT].supportChainIds || [];\n\nconst projectId = process.env.REACT_APP_WALLET_CONNECT_PROJECT_ID || '';\n\nexport const walletConnectConnectorFN = walletConnect({\n projectId,\n showQrModal: true,\n qrModalOptions: {\n themeVariables: {\n '--wcm-z-index': '9999',\n },\n },\n});\n","import { createConfig, fallback, http } from 'wagmi';\nimport { Chain, arbitrum, base, blast, blastSepolia, linea } from 'wagmi/chains';\n\nimport { QueryClient } from '@tanstack/react-query';\n\nimport { injected } from 'wagmi/connectors';\nimport { binanceConnectorFN } from '../binance';\nimport { coinbaseWalletConnectorFN } from '../coinbase';\nimport { walletConnectConnectorFN } from '../walletConnectV2';\n\nexport const wagmiChains: Chain[] = [base, blast, blastSepolia, linea, arbitrum];\n\nexport const wagmiConfig = createConfig({\n chains: [wagmiChains[0], ...wagmiChains.slice(1)],\n transports: {\n [blast.id]: fallback([http(), http(`https://blast.drpc.org/`)]),\n [blastSepolia.id]: fallback([http(), http(`https://blast-sepolia.blockpi.network/v1/rpc/public`)]),\n [linea.id]: fallback([http(), http(`https://linea.blockpi.network/v1/rpc/public`)]),\n [arbitrum.id]: fallback([http(), http(`https://arbitrum.llamarpc.com`)]),\n [base.id]: fallback([http(), http(`https://base.llamarpc.com`)]),\n },\n connectors: [\n injected(),\n binanceConnectorFN(),\n walletConnectConnectorFN,\n // // burrito,\n // okxConnectorFN,\n coinbaseWalletConnectorFN,\n // bitkeepConnectorFN,\n // trustConnectorFN,\n // coin98ConnectorFN,\n ],\n // cacheTime: 0,\n // multiInjectedProviderDiscovery: false,\n});\n\n// declare module 'wagmi' {\n// interface Register {\n// config: typeof wagmiConfig;\n// }\n// }\n\n// 2. Create a new Query Client with a default `gcTime`.\nconst queryClient = new QueryClient({\n // defaultOptions: {\n // queries: {\n // gcTime: 1_000 * 60 * 60 * 24, // 24 hours\n // },\n // },\n});\n\n// const queryClient = new QueryClient();\n// queryClient.removeQueries();\n// 3. Set up the persister.\n// const persister = createSyncStoragePersister({\n// serialize,\n// storage: window.localStorage,\n// deserialize,\n// });\n\nexport { queryClient };\n","import { SerializedError } from '@reduxjs/toolkit';\n\nimport { FETCHING_STATUS } from '@/constants';\n\nexport type ListStatus = {\n list: Record;\n status: FETCHING_STATUS;\n error?: SerializedError;\n};\nexport type ListArrayStatus = {\n list: T[];\n status: FETCHING_STATUS;\n error?: SerializedError;\n};\n\nexport type ItemStatus = {\n item: T;\n status: FETCHING_STATUS;\n error?: SerializedError;\n timestamp?: number;\n};\n\nexport const getDefaultListStatus = (status = FETCHING_STATUS.INIT): ListStatus => {\n return {\n list: {},\n status: status,\n };\n};\nexport const getDefaultItemStatus = (status = FETCHING_STATUS.INIT): ItemStatus => {\n return {\n item: undefined,\n status: status,\n };\n};\nexport const getDefaultListArrayStatus = (status = FETCHING_STATUS.INIT): ListArrayStatus => {\n return {\n list: [],\n status: status,\n };\n};\n\nexport const setFulfilledListStatus = (list: Record): ListStatus => {\n return {\n list,\n status: FETCHING_STATUS.DONE,\n };\n};\nexport const setFulfilledListArrayStatus = (list: T[]): ListArrayStatus => {\n return {\n list,\n status: FETCHING_STATUS.DONE,\n };\n};\nexport const setFulfilledItemStatus = (item: T): ItemStatus => {\n return {\n item,\n status: FETCHING_STATUS.DONE,\n };\n};\n","import { BlockInfo } from '@derivation-tech/context';\n\nimport { IMetaAccount, IMetaOrder, IMetaPortfolio, IMetaPosition, IMetaRange } from '@/types/account';\n\nimport { Order, Portfolio, Position, Range } from '@synfutures/sdks-perp';\nimport { getAccountId, getOrderId, getPairId, getPortfolioId, getRangeId } from './transformId';\n\nexport function transformMetaAccount(portfolios: Portfolio[], blockInfo?: BlockInfo): Record {\n return portfolios.reduce((res, portfolio) => {\n const instrumentAddr = portfolio.instrumentAddr.toLowerCase();\n const accountId = getAccountId(portfolio.traderAddr, instrumentAddr);\n if (!res[accountId]) {\n res[accountId] = {\n id: accountId,\n userAddr: portfolio.traderAddr,\n instrumentId: instrumentAddr,\n portfolioIds: [],\n blockInfo: portfolio.blockInfo || blockInfo,\n };\n }\n res[accountId].portfolioIds.push(getPortfolioId(accountId, portfolio.expiry));\n return res;\n }, {} as Record);\n}\n\nexport function transformMetaPortfolio(\n userAddr: string,\n instrumentAddr: string,\n portfolio: Portfolio,\n blockInfo?: BlockInfo,\n): IMetaPortfolio {\n const accountId = getAccountId(userAddr, instrumentAddr);\n const id = getPortfolioId(accountId, portfolio.expiry);\n const pairId = getPairId(instrumentAddr, portfolio.expiry);\n\n return {\n id: id,\n instrumentId: instrumentAddr.toLowerCase(),\n pairId: pairId,\n accountId: accountId,\n blockInfo: blockInfo,\n ...portfolio,\n };\n}\n\nexport function transformToMetaPosition({\n portfolio,\n position,\n userAddr,\n instrumentAddr,\n blockInfo,\n}: {\n userAddr: string;\n instrumentAddr: string;\n portfolio: Portfolio;\n position: Position;\n blockInfo?: BlockInfo;\n}): IMetaPosition {\n const accountId = getAccountId(userAddr, instrumentAddr);\n const portfolioId = getPortfolioId(accountId, portfolio.expiry);\n const positionId = portfolioId;\n const pairId = getPairId(instrumentAddr, portfolio.expiry);\n\n return {\n id: positionId,\n instrumentId: instrumentAddr.toLowerCase(),\n accountId: accountId,\n portfolioId: portfolioId,\n pairId,\n blockInfo: position.blockInfo || blockInfo,\n ...position,\n };\n}\n\nexport function transformToMetaOrder({\n userAddr,\n instrumentAddr,\n portfolio,\n order,\n blockInfo,\n}: {\n userAddr: string;\n instrumentAddr: string;\n portfolio: Portfolio;\n order: Order;\n blockInfo?: BlockInfo;\n}): IMetaOrder {\n const accountId = getAccountId(userAddr, instrumentAddr);\n const portfolioId = getPortfolioId(accountId, portfolio.expiry);\n const orderId = getOrderId(portfolioId, order.oid);\n const pairId = getPairId(instrumentAddr, portfolio.expiry);\n\n return {\n id: orderId,\n instrumentId: instrumentAddr.toLowerCase(),\n accountId: accountId,\n portfolioId: portfolioId,\n pairId,\n blockInfo: order.blockInfo || blockInfo,\n ...order,\n };\n}\n\nexport function transformToMetaRange({\n userAddr,\n instrumentAddr,\n portfolio,\n range,\n blockInfo,\n}: {\n userAddr: string;\n instrumentAddr: string;\n portfolio: Portfolio;\n range: Range;\n blockInfo?: BlockInfo;\n}): IMetaRange {\n const accountId = getAccountId(userAddr, instrumentAddr);\n const portfolioId = getPortfolioId(accountId, portfolio.expiry);\n const rangeId = getRangeId(portfolioId, range.rid);\n const pairId = getPairId(instrumentAddr, portfolio.expiry);\n\n return {\n id: rangeId,\n instrumentId: instrumentAddr.toLowerCase(),\n accountId: accountId,\n portfolioId: portfolioId,\n pairId,\n blockInfo: range.blockInfo || blockInfo,\n ...range,\n };\n}\n\nfunction asUint24(x: number): number {\n const MAX_UINT_24 = (1 << 24) - 1;\n if (x < 0) {\n x += MAX_UINT_24;\n }\n return x;\n}\n\nexport function rangeKey(tickLower: number, tickUpper: number): number {\n return shiftLeft(asUint24(tickLower), 24) + asUint24(tickUpper);\n}\n\nexport function orderKey(tick: number, nonce: number): number {\n return shiftLeft(asUint24(tick), 24) + nonce;\n}\n\nfunction shiftLeft(x: number, n: number): number {\n return x * Math.pow(2, n);\n}\n","import { IAccountRecords } from '@/types/account';\n\nimport { TWrappedVolume } from '@/components/TableCard/tableConfigs/WrappedVolume';\nimport { ZERO } from '@/constants';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { Portfolio, Position, Side } from '@synfutures/sdks-perp';\nimport {\n transformMetaPortfolio,\n transformToMetaOrder,\n transformToMetaPosition,\n transformToMetaRange,\n} from './transform/account';\nexport function reducePortfolio(\n chainId: number,\n userAddr: string,\n instrumentAddr: string,\n portfolio: Portfolio,\n accountRecords?: IAccountRecords,\n): IAccountRecords {\n instrumentAddr = instrumentAddr.toLowerCase();\n if (!accountRecords) {\n accountRecords = {} as IAccountRecords;\n }\n if (!accountRecords.accountMap) accountRecords.accountMap = {};\n if (!accountRecords.positionMap) accountRecords.positionMap = {};\n if (!accountRecords.portfolioMap) accountRecords.portfolioMap = {};\n if (!accountRecords.orderMap) accountRecords.orderMap = {};\n if (!accountRecords.rangeMap) accountRecords.rangeMap = {};\n if (portfolio) {\n const blockInfo = portfolio.blockInfo || {\n height: 0,\n timestamp: 0,\n };\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n accountRecords!.blockInfo = blockInfo;\n const metaPortfolio = transformMetaPortfolio(userAddr, instrumentAddr, portfolio, blockInfo);\n accountRecords.portfolioMap[metaPortfolio.id] = metaPortfolio;\n const position = portfolio.position;\n const metaPosition = transformToMetaPosition({ userAddr, instrumentAddr, portfolio, position, blockInfo });\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n accountRecords!.positionMap[metaPosition.id] = metaPosition;\n if (portfolio.orders)\n portfolio.orders.forEach((order) => {\n const metaOrder = transformToMetaOrder({ userAddr, instrumentAddr, portfolio, order, blockInfo });\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n accountRecords!.orderMap[metaOrder.id] = metaOrder;\n });\n if (portfolio.ranges)\n portfolio.ranges.forEach((range) => {\n const metaRange = transformToMetaRange({ userAddr, instrumentAddr, portfolio, range, blockInfo });\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n accountRecords!.rangeMap[metaRange.id] = metaRange;\n });\n }\n accountRecords.chainId = chainId;\n return accountRecords;\n}\nexport const transformVolumeDataToCsvData = (volumeData: TWrappedVolume[]): object[] => {\n return volumeData.map((item) => {\n return {\n Date: item.timestamp ? new Date(item.timestamp * 1000).toLocaleString('en-GB') : item.timestamp,\n Pair: item.wrappedPair?.symbol,\n Margin: item.wrappedPair?.rootInstrument?.marginToken.symbol,\n 'Taker Volume': item.takerVolume,\n 'Taler Volume USD': item.takerVolumeInUsd,\n 'Maker Volume': item.makerVolume,\n 'Maker Volume USD': item.makerVolumeInUsd,\n 'Maker Rebate': item.makerRebate,\n 'Maker Rebate USD': item.takerVolumeInUsd,\n 'Take Fee': item.takerFee,\n 'Take Fee USD': item.takerFeeInUsd,\n };\n });\n\n return [];\n};\n\nexport function getEmptySDKPosition(pair: WrappedPair, traderAddr: string): Position {\n return {\n balance: ZERO,\n size: ZERO,\n entryNotional: ZERO,\n entrySocialLossIndex: ZERO,\n entryFundingIndex: ZERO,\n instrumentAddr: pair.instrumentAddr,\n expiry: pair.expiry,\n traderAddr: traderAddr,\n\n side: Side.LONG,\n entryPrice: ZERO,\n\n isInverse: pair.isInverse,\n\n blockInfo: pair.blockInfo,\n };\n}\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { ReactNode } from 'react';\n\nimport { FETCHING_STATUS } from '@/constants';\n\nexport interface IGlobalConfig {\n chainId: number;\n slippage: string;\n deadline: string;\n gasPrice: string;\n}\nexport interface IGlobalConfigStorage {\n [chainId: number]: IGlobalConfig;\n}\nexport interface AnnouncementRes {\n nonce: number;\n isShow: boolean;\n desc: string;\n link: string;\n linkName: string;\n isOpenNewWindow: boolean;\n}\n\nexport type SettingSelectorData = {\n key: string;\n value: ReactNode;\n desc?: string;\n};\n\nexport type SettingSelectorProps = {\n className?: string;\n extra?: React.ReactNode;\n datas: SettingSelectorData[];\n defaultKey?: string;\n isMobile?: boolean;\n};\n\nexport interface IWarningMsg {\n msg: string;\n status: string;\n}\nexport type JoinTimesTypes = {\n [propsName: string]: Omit & {\n txHash?: string;\n };\n};\n\nexport type JoinTimeTypes = Required<{\n chainId: CHAIN_ID;\n userAddr: string;\n timestamp: number;\n txHash?: string;\n}>;\n\nexport enum MARGIN_TYPE {\n COIN = 'COIN',\n USD = 'USD',\n}\n\nexport enum ALL_SELECTOR {\n ALL = 'ALL',\n}\n\nexport enum FAV_SELECTOR {\n FAVORITE = 'FAVORITE',\n}\n// CUSTOM_SELECTOR means marketCustomPairs.id\nexport enum CUSTOM_SELECTOR {\n CUSTOM = 'CUSTOM',\n}\n\nexport type MARGIN_SELECTORS = FAV_SELECTOR | MARGIN_TYPE | ALL_SELECTOR | CUSTOM_SELECTOR;\n// undefined mean ALL_SELECTOR.ALL\nexport type TPairTypeForMobile = PAIR_DATE_TYPE | undefined;\nexport enum PAIR_DATE_TYPE {\n PERPETUAL = 'PERPETUAL',\n DATED = 'DATED',\n}\n\nexport interface ISignature {\n timestamp: string;\n signature: string;\n status?: FETCHING_STATUS;\n address?: string;\n}\n\nexport interface ISignatureStorage {\n [userAddr: string]: ISignature;\n}\n","import { PERP_EXPIRY } from '@synfutures/sdks-perp';\nimport moment from 'moment';\n\nimport { PERP } from '@/constants';\nimport { KlineInterval } from '@synfutures/sdks-perp-datasource';\n\nexport function currentUTCTime(): number {\n return moment.utc().valueOf();\n}\n\nexport function currentUnixTime(): number {\n return moment.utc().unix();\n}\n\nexport function currentUTCExpiryTime(): number {\n const utcNow = moment.utc();\n let expiryTime = utcNow.hour(8).minute(0).second(0).millisecond(0);\n if (utcNow.hour() >= 8) {\n expiryTime = expiryTime.day(utcNow.day() + 1);\n }\n\n return expiryTime.valueOf();\n}\n\nexport function formatDate(timestamps: number, formatter = 'MM-DD HH:mm:ss'): string {\n return moment(timestamps).format(formatter);\n}\n\nexport function showProperDateString({\n expiry,\n format,\n showShortPerp,\n}: {\n expiry: number;\n format: string;\n showShortPerp?: boolean;\n}): string {\n if (expiry === PERP_EXPIRY) {\n return showShortPerp ? 'PERP' : PERP;\n }\n return formatDate(expiry * 1000, format);\n}\n\nexport function getKlineTimeDuration(chartDuration: KlineInterval): number {\n switch (chartDuration) {\n case KlineInterval.DAY:\n return 24 * 60 * 60;\n break;\n case KlineInterval.WEEK:\n return 7 * 24 * 60 * 60;\n break;\n case KlineInterval.HOUR:\n return 60 * 60;\n break;\n case KlineInterval.THIRTY_MINUTE:\n return 30 * 60;\n break;\n case KlineInterval.FIFTEEN_MINUTE:\n return 15 * 60;\n break;\n case KlineInterval.FIVE_MINUTE:\n return 5 * 60;\n break;\n case KlineInterval.MINUTE:\n return 60;\n\n default:\n break;\n }\n return 0;\n}\n","import { FeederType, PERP_EXPIRY, Side, Status } from '@synfutures/sdks-perp';\nimport { BigNumber } from 'ethers';\nimport moment from 'moment';\n\nimport { PERP } from '@/constants';\nimport { WrappedBigNumber, WrappedBigNumberLike } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { MARGIN_TYPE } from '@/types/global';\n\nimport { VirtualTradeType } from '@synfutures/sdks-perp-datasource';\nimport { showProperDateString } from './timeUtils';\n\nexport function pairExpiring(expiry: number): boolean {\n const expiryDate = moment(expiry * 1000).utc();\n const today = moment(new Date()).utc();\n return expiry !== 0 && expiryDate < today;\n}\nexport function isPairExpiredToday(expiry: number): boolean {\n const expiryDate = moment(expiry * 1000).utc();\n const today = moment(new Date()).utc();\n return expiry !== 0 && expiryDate.format('YYYY-MM-DD') === today.format('YYYY-MM-DD');\n}\n\nexport function getDisplayExpiry(expiry: number, format = 'MMDD'): string {\n return expiry === PERP_EXPIRY ? PERP : showProperDateString({ expiry, format });\n}\nexport function getExpiryNumberFromString(expiry: string): number {\n return expiry === 'PERP' ? PERP_EXPIRY : moment.utc(expiry).hour(8).unix();\n}\n\n/**\n * disable pair if pair expired or\n * in pool check today's liquidity\n * @param pair\n * @param tabType\n * @param disableExpiringPair\n * @returns\n */\nexport function isDisableExpiredPair(pair: WrappedPair, disableExpiringPair = true): boolean {\n if (disableExpiringPair) {\n if (pair.status === Status.SETTLED) {\n return true;\n }\n if (pairExpiring(pair.expiry)) {\n return true;\n }\n return false;\n }\n return false;\n}\n\nexport function isInverseType(feederType: FeederType | undefined): boolean {\n return !!feederType && [FeederType.BASE_STABLE].includes(feederType);\n}\n\nexport function getMarginTypeByFeeder(feederType: FeederType): MARGIN_TYPE {\n if ([FeederType.BOTH_STABLE, FeederType.QUOTE_STABLE].includes(feederType)) return MARGIN_TYPE.USD;\n return MARGIN_TYPE.COIN;\n}\n\n/**\n * to Reciprocal Number: 1/x\n * @param num\n * @returns\n */\nexport function toReciprocalNumber(num: WrappedBigNumberLike): WrappedBigNumber {\n const bn = WrappedBigNumber.from(num);\n if (bn.eq(0)) {\n return bn;\n }\n return WrappedBigNumber.from(1).div(bn);\n}\n\nexport function getAdjustTradeSide(\n tradeSide: Side,\n isInverse: boolean,\n considerSweepInTradeHistoryProps?: {\n type: VirtualTradeType;\n fee: BigNumber;\n },\n): Side {\n if (tradeSide === Side.FLAT) {\n return tradeSide;\n }\n const side = isInverse ? (tradeSide === Side.LONG ? Side.SHORT : Side.LONG) : tradeSide;\n if (considerSweepInTradeHistoryProps) {\n const { type, fee } = considerSweepInTradeHistoryProps;\n if (type === VirtualTradeType.LIQUIDATION && fee.isZero()) {\n return side === Side.LONG ? Side.SHORT : Side.LONG;\n }\n }\n return side;\n}\n\nexport function getAdjustTradePrice(price: WrappedBigNumberLike, isInverse: boolean): WrappedBigNumber {\n const bn = WrappedBigNumber.from(price);\n if (bn.isZero()) return bn;\n return isInverse ? WrappedBigNumber.from(1).div(bn) : bn;\n}\n\nexport function getAdjustTradeSize(size: WrappedBigNumberLike, isInverse: boolean): WrappedBigNumber {\n const bn = WrappedBigNumber.from(size);\n return isInverse ? bn.mul(-1) : bn;\n}\n","import { BlockInfo, CHAIN_ID } from '@derivation-tech/context';\nimport { BigNumber } from 'ethers';\nimport _ from 'lodash';\n\nimport { MARGIN_TYPE } from '@/types/global';\nimport { IMetaInstrument } from '@/types/pair';\nimport { TokenInfo } from '@/types/token';\nimport { bigNumberObjectCheck } from '@/utils';\nimport { toBN } from '@/utils/numberUtil';\nimport { getMarginTypeByFeeder, isInverseType } from '@/utils/pairs';\nimport { isNativeTokenInfo } from '@/utils/token';\n\nimport {\n Amm,\n BaseInfo,\n DexV2Feeder,\n FeederType,\n InstrumentCondition,\n Instrument as InstrumentInterface,\n InstrumentMarket,\n InstrumentSetting,\n MarketType,\n Status,\n TokenInfo as Token,\n} from '@synfutures/sdks-perp';\nimport { WrappedBigNumber } from './WrappedBigNumber';\nimport { WrappedPair } from './WrappedPair';\nimport { WrappedQuote } from './WrappedQuote';\n\nconst UNSETTLED_PAIR_STATUS = [Status.TRADING, Status.SETTLING, Status.DORMANT];\n\nexport class WrappedInstrument implements InstrumentInterface {\n static instances: { [chainId: number]: { [instrumentId: string]: WrappedInstrument } } = {}; // chainId -> instrumentId -> WrappedFutures\n\n // redundant fields\n instrumentAddr: string;\n\n // basic fields\n symbol: string;\n market: InstrumentMarket;\n condition: InstrumentCondition;\n setting: InstrumentSetting;\n spotPrice: BigNumber;\n // expiry => amm\n amms: Map;\n base: BaseInfo;\n quote: Token;\n displayBase: BaseInfo;\n displayQuote: Token;\n\n // additional fields\n instrumentType: FeederType;\n marketType: MarketType;\n minTradeValue: BigNumber;\n minOrderValue: BigNumber;\n minRangeValue: BigNumber;\n placePaused: boolean;\n fundingHour: number;\n minTickDelta: number;\n\n blockInfo?: BlockInfo;\n\n pairMap: Record = {};\n baseToken: TokenInfo;\n quoteToken: WrappedQuote;\n chainId: number;\n metaFutures: IMetaInstrument;\n\n customStableInstruments: string[] = [];\n constructor(metaFutures: IMetaInstrument, chainId: CHAIN_ID) {\n this.instrumentAddr = metaFutures.instrumentAddr;\n this.symbol = metaFutures.symbol;\n this.market = metaFutures.market;\n this.condition = metaFutures.condition;\n this.setting = metaFutures.setting;\n this.spotPrice = metaFutures.spotPrice;\n this.amms = new Map();\n\n metaFutures.amms.forEach((amm, expiry) => {\n this.amms.set(expiry, bigNumberObjectCheck(amm));\n });\n\n this.base = metaFutures.base;\n this.quote = metaFutures.quote;\n this.displayBase = metaFutures.displayBase;\n this.displayQuote = metaFutures.displayQuote;\n this.instrumentType = metaFutures.instrumentType;\n this.marketType = metaFutures.marketType;\n this.minTradeValue = metaFutures.minTradeValue;\n this.minOrderValue = metaFutures.minOrderValue;\n this.minRangeValue = metaFutures.minRangeValue;\n this.placePaused = metaFutures.placePaused;\n this.fundingHour = metaFutures.fundingHour;\n this.blockInfo = metaFutures.blockInfo;\n this.minTickDelta = metaFutures.minTickDelta;\n // super(\n // metaFutures.info,\n // metaFutures.market,\n // { ...metaFutures.state, pairStates: new Map(), accounts: new Map() },\n // metaFutures.spotPrice,\n // );\n this.chainId = chainId;\n this.metaFutures = metaFutures;\n this.baseToken = metaFutures.baseToken;\n this.quoteToken = WrappedQuote.wrapInstance({ metaToken: metaFutures.quoteToken, chainId });\n }\n\n static getInstance(instrumentId: string | undefined, chainId: CHAIN_ID | undefined): WrappedInstrument | undefined {\n return instrumentId && chainId ? _.get(WrappedInstrument.instances, [chainId, instrumentId]) : undefined;\n }\n\n static wrapInstance({\n metaFutures,\n chainId,\n }: {\n metaFutures: IMetaInstrument;\n chainId: CHAIN_ID;\n }): WrappedInstrument {\n let futures = WrappedInstrument.getInstance(metaFutures.id, chainId);\n if (futures) {\n futures.fillField(bigNumberObjectCheck(metaFutures));\n } else {\n futures = new WrappedInstrument(bigNumberObjectCheck(metaFutures), chainId);\n _.set(WrappedInstrument.instances, [chainId, metaFutures.id], futures);\n }\n return futures;\n }\n\n static getInstanceMap(chainId: CHAIN_ID | undefined): { [instrumentId: string]: WrappedInstrument } | undefined {\n return chainId ? _.get(WrappedInstrument.instances, [chainId], undefined) : undefined;\n }\n\n setMetaData(metaFutures: IMetaInstrument): void {\n this.instrumentAddr = metaFutures.instrumentAddr;\n this.symbol = metaFutures.symbol;\n this.market = metaFutures.market;\n this.condition = metaFutures.condition;\n this.setting = metaFutures.setting;\n this.spotPrice = metaFutures.spotPrice;\n\n if (!this.amms) this.amms = new Map();\n metaFutures.amms.forEach((amm, expiry) => {\n this.amms.set(expiry, bigNumberObjectCheck(amm));\n });\n\n this.base = metaFutures.base;\n this.quote = metaFutures.quote;\n this.instrumentType = metaFutures.instrumentType;\n this.marketType = metaFutures.marketType;\n this.minTradeValue = metaFutures.minTradeValue;\n this.minOrderValue = metaFutures.minOrderValue;\n this.minRangeValue = metaFutures.minRangeValue;\n this.blockInfo = metaFutures.blockInfo;\n }\n\n fillField(partialFutures: Partial): void {\n const futures = _.merge(\n {},\n this.metaFutures,\n {\n quoteToken: this.quoteToken,\n },\n partialFutures,\n );\n try {\n this.metaFutures = bigNumberObjectCheck(futures);\n this.setMetaData(futures);\n } catch (error) {\n console.error('🚀 ~ WrappedInstrument ~ fillField ~ error:', error, { partialFutures, futures });\n }\n }\n\n connectPair(expiry: number, pair: WrappedPair): void {\n if (pair.id) {\n this.pairMap[pair.id] = pair;\n }\n }\n\n setQuotePrice(priceInfo: { current: number; priceChangePercentage24h: number }): void {\n if (priceInfo) {\n this.quoteToken.setTokenPrice(priceInfo);\n }\n }\n\n /**\n * @returns {string} futures id (futures address)\n */\n get id(): string {\n return this.instrumentAddr.toLowerCase();\n }\n\n get isInverse(): boolean {\n if (this.metaFutures.isInverse) {\n return true;\n }\n\n return isInverseType(this.instrumentType);\n }\n\n get marginType(): MARGIN_TYPE {\n return getMarginTypeByFeeder(this.instrumentType);\n }\n\n get status(): InstrumentCondition {\n return this.condition;\n }\n\n get isNormalInstrument(): boolean {\n return this.status === InstrumentCondition.NORMAL || this.status === InstrumentCondition.RESOLVED;\n }\n\n /**\n * margin token\n *\n * @readonly\n * @type {TokenInfo}\n */\n get marginToken(): WrappedQuote {\n const token = this.quoteToken;\n\n return token;\n // return {\n // ...this.marginTokenBalance,\n // ...token,\n // };\n }\n\n get priceToken(): TokenInfo {\n return this.isInverse ? this.baseToken : this.quoteToken;\n }\n\n get unSettledPairs(): Map {\n return _.reduce(\n _.keys(this.pairMap),\n (acc, curr) => {\n const pair = this.pairMap[curr];\n if (pair && pair.isNormalPair) {\n acc.set(curr, pair);\n }\n return acc;\n },\n new Map(),\n );\n }\n\n get displayBaseToken(): TokenInfo {\n return this.isInverse ? this.quoteToken : this.baseToken;\n }\n\n get displayQuoteToken(): TokenInfo {\n return this.isInverse ? this.baseToken : this.quoteToken;\n }\n\n get initialMarginRatio(): number {\n return this.setting.initialMarginRatio;\n }\n\n get maintenanceMarginRatio(): number {\n return this.setting.maintenanceMarginRatio;\n }\n\n getWrappedPair(expiry: number): WrappedPair | undefined {\n return this.pairMap[`${this.id}-${expiry}`];\n }\n\n get displaySymbol(): string {\n if (this.isInverse) {\n return `${this.quoteToken.symbol}-${this.baseToken.symbol}-${this.market.info.type}`;\n }\n return `${this.baseToken.symbol}-${this.quoteToken.symbol}-${this.market.info.type}`;\n }\n\n get isStablePair(): boolean {\n if (this.customStableInstruments && this.customStableInstruments.includes(this.symbol)) {\n return true;\n }\n return this.instrumentType === FeederType.BOTH_STABLE;\n }\n\n set customStableInstrumentsList(list: string[]) {\n this.customStableInstruments = list;\n }\n get isQuoteStable(): boolean {\n return this.instrumentType === FeederType.BOTH_STABLE || this.instrumentType === FeederType.QUOTE_STABLE;\n }\n\n get dexV2PairAddr(): string | undefined {\n if ([MarketType.DEXV2].includes(this.marketType)) {\n const pairAddr = (this.market.feeder as DexV2Feeder).pair;\n return pairAddr;\n }\n }\n\n getPairByExpiry(expiry: number): WrappedPair | undefined {\n return this.pairMap[`${this.id}-${expiry}`];\n }\n\n getAllPairList(sort: 'asc' | 'desc' = 'asc'): WrappedPair[] {\n return _.orderBy(Object.values(this.pairMap), ['expiry'], [sort]);\n }\n\n getPair(pairId: string): WrappedPair | undefined {\n return this.pairMap[pairId];\n }\n\n /**\n * get unsettled pair list (TRADING/SETTLING/UNINITIALIZED)\n * @param sort\n * @returns\n */\n getUnsettledPairList(sort: 'asc' | 'desc' = 'asc'): WrappedPair[] {\n const allPairs = this.getAllPairList(sort);\n return allPairs.filter((pair) => UNSETTLED_PAIR_STATUS.includes(pair.status));\n }\n\n /**\n * get unsettled pair list (TRADING/SETTLING/UNINITIALIZED)\n * @param sort\n * @returns\n */\n getPairList(sort: 'asc' | 'desc' = 'asc'): WrappedPair[] {\n return this.getUnsettledPairList(sort);\n }\n\n wrapAttribute(prop: keyof WrappedInstrument): WrappedBigNumber {\n if (BigNumber.isBigNumber(this[prop])) {\n let bn = WrappedBigNumber.from(this[prop] as BigNumber);\n if (this.isInverse) {\n if (['spotPrice'].includes(prop)) {\n bn = WrappedBigNumber.from(toBN(1).dividedBy(bn));\n }\n }\n return bn;\n } else if (typeof this[prop] === 'string' || typeof this[prop] === 'number') {\n return WrappedBigNumber.from(this[prop] as unknown as string | number);\n }\n return WrappedBigNumber.ZERO;\n }\n\n isQuoteWrappedNative(): boolean {\n return isNativeTokenInfo(this.quoteToken);\n }\n\n /**\n * to JSON\n * @returns IFuturesCore\n */\n toJSON(): IMetaInstrument & {\n // pairs: Record;\n } {\n return {\n ...this.metaFutures,\n // pairs: _.reduce(\n // this.pairs,\n // function (result, value, key) {\n // result[key] = value.toWrappedJSON();\n // return result;\n // },\n // {} as Record,\n // ),\n };\n }\n\n toString(): string {\n return JSON.stringify(this.toJSON());\n }\n}\n","import { BlockInfo, CHAIN_ID } from '@derivation-tech/context';\nimport { BigNumber } from 'ethers';\nimport _ from 'lodash';\n\nimport { ZERO } from '@/constants';\nimport { DEFAULT_DECIMALS, PAIR_RATIO_BASE, TRADE_LEVERAGE_THRESHOLDS } from '@/constants/global';\nimport { IMarketPair, IMetaPair } from '@/types/pair';\nimport { bigNumberObjectCheck } from '@/utils';\nimport { getAdjustTradePrice } from '@/utils/pairs';\nimport { showProperDateString } from '@/utils/timeUtils';\nimport { getPairId } from '@/utils/transform/transformId';\n\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { Amm as AmmInterface, PERP_EXPIRY, Q96, Status, utils, wdiv, wmul } from '@synfutures/sdks-perp';\nimport { WrappedBigNumber } from './WrappedBigNumber';\nimport { WrappedInstrument } from './WrappedInstrument';\n\nexport class WrappedPair implements AmmInterface {\n // basic fields\n // timestamp of the specified expiry\n expiry: number;\n // for futures, it's the timestamp of moment switched to SETTLING\n // for perpetual, it's the timestamp of last funding fee update\n timestamp: number;\n status: Status;\n tick: number; // current tick. tick = floor(log_{1.0001}(sqrtPX96))\n sqrtPX96: BigNumber; // current price\n liquidity: BigNumber;\n totalLiquidity: BigNumber;\n involvedFund: BigNumber;\n openInterests: BigNumber;\n feeIndex: BigNumber;\n protocolFee: BigNumber;\n totalLong: BigNumber;\n totalShort: BigNumber;\n longSocialLossIndex: BigNumber;\n shortSocialLossIndex: BigNumber;\n longFundingIndex: BigNumber;\n shortFundingIndex: BigNumber;\n insuranceFund: BigNumber;\n settlementPrice: BigNumber;\n // the last updated block number of timestamp\n timestampUpdatedAt?: number;\n // mark price\n markPrice: BigNumber;\n // redundant fields\n instrumentAddr: string;\n\n // additional fields\n fairPrice: BigNumber;\n\n blockInfo?: BlockInfo;\n static instances: { [chainId: number]: { [pairId: string]: WrappedPair } } = {}; // chainId -> pairId -> WrappedPair\n public readonly rootInstrument: WrappedInstrument;\n metaPair: IMetaPair;\n stats?: IMarketPair;\n constructor(metaPair: IMetaPair, rootInstrument: WrappedInstrument) {\n this.expiry = metaPair.expiry;\n this.timestamp = metaPair.timestamp;\n this.status = metaPair.status;\n this.tick = metaPair.tick;\n this.sqrtPX96 = metaPair.sqrtPX96;\n this.liquidity = metaPair.liquidity;\n this.totalLiquidity = metaPair.totalLiquidity;\n this.involvedFund = metaPair.involvedFund;\n this.openInterests = metaPair.openInterests;\n this.feeIndex = metaPair.feeIndex;\n this.protocolFee = metaPair.protocolFee;\n this.totalLong = metaPair.totalLong;\n this.totalShort = metaPair.totalShort;\n this.longSocialLossIndex = metaPair.longSocialLossIndex;\n this.shortSocialLossIndex = metaPair.shortSocialLossIndex;\n this.longFundingIndex = metaPair.longFundingIndex;\n this.shortFundingIndex = metaPair.shortFundingIndex;\n this.insuranceFund = metaPair.insuranceFund;\n this.settlementPrice = metaPair.settlementPrice;\n this.timestampUpdatedAt = metaPair.timestampUpdatedAt;\n this.markPrice = metaPair.markPrice;\n this.instrumentAddr = metaPair.instrumentAddr;\n this.fairPrice = metaPair.fairPrice;\n this.blockInfo = metaPair.blockInfo;\n\n this.metaPair = metaPair;\n this.rootInstrument = rootInstrument;\n }\n\n setPairStats(stats: IMarketPair): void {\n this.stats = stats;\n }\n\n static getInstance(pairId: string | undefined, chainId: CHAIN_ID | undefined): WrappedPair | undefined {\n return pairId && chainId ? _.get(WrappedPair.instances, [chainId, pairId]) : undefined;\n }\n\n static wrapInstance({\n metaPair,\n rootInstrument,\n }: {\n metaPair: IMetaPair;\n rootInstrument: WrappedInstrument;\n }): WrappedPair {\n let pair = WrappedPair.getInstance(metaPair.id, rootInstrument.chainId);\n if (pair) {\n pair.fillField(bigNumberObjectCheck(metaPair));\n } else {\n pair = new WrappedPair(bigNumberObjectCheck(metaPair), rootInstrument);\n _.set(WrappedPair.instances, [rootInstrument.chainId, metaPair.id], pair);\n }\n return pair;\n }\n\n static getInstanceMap(chainId: CHAIN_ID | undefined): { [pairId: string]: WrappedPair } | undefined {\n return chainId ? _.get(WrappedPair.instances, [chainId], undefined) : undefined;\n }\n\n setMetaData(metaPair: IMetaPair): void {\n this.expiry = metaPair.expiry;\n this.timestamp = metaPair.timestamp;\n this.status = metaPair.status;\n this.tick = metaPair.tick;\n this.sqrtPX96 = metaPair.sqrtPX96;\n this.liquidity = metaPair.liquidity;\n this.totalLiquidity = metaPair.totalLiquidity;\n this.involvedFund = metaPair.involvedFund;\n this.openInterests = metaPair.openInterests;\n this.feeIndex = metaPair.feeIndex;\n this.protocolFee = metaPair.protocolFee;\n this.totalLong = metaPair.totalLong;\n this.totalShort = metaPair.totalShort;\n this.longSocialLossIndex = metaPair.longSocialLossIndex;\n this.shortSocialLossIndex = metaPair.shortSocialLossIndex;\n this.longFundingIndex = metaPair.longFundingIndex;\n this.shortFundingIndex = metaPair.shortFundingIndex;\n this.insuranceFund = metaPair.insuranceFund;\n this.settlementPrice = metaPair.settlementPrice;\n this.timestampUpdatedAt = metaPair.timestampUpdatedAt;\n this.markPrice = metaPair.markPrice;\n this.instrumentAddr = metaPair.instrumentAddr;\n this.fairPrice = metaPair.fairPrice;\n this.blockInfo = metaPair.blockInfo;\n }\n\n fillField(partialPair: Partial): void {\n const pair = _.merge({}, this.metaPair, partialPair);\n this.metaPair = pair;\n this.setMetaData(pair);\n }\n wrapAttribute(\n prop:\n | keyof WrappedPair\n | 'openInterestsUSD'\n | 'liquidityUSD'\n | 'openInterests'\n | 'tvlUSD'\n | 'tvl'\n | 'liquidity'\n | 'expectedFundingRate'\n | 'fundingRatePerHour'\n | 'liquidityInQuote',\n ): WrappedBigNumber {\n if (BigNumber.isBigNumber(this[prop])) {\n const bn = WrappedBigNumber.from(this[prop] as BigNumber);\n return bn;\n } else if (typeof this[prop] === 'string' || typeof this[prop] === 'number') {\n return WrappedBigNumber.from(this[prop] as unknown as string | number);\n }\n return WrappedBigNumber.ZERO;\n }\n\n get displayExpiry(): string {\n return showProperDateString({ expiry: this.expiry, format: 'MMDD' });\n }\n\n get id(): string {\n return `${this.rootInstrument.id}-${this.expiry}`.toLowerCase();\n }\n\n get chainId(): CHAIN_ID {\n return this.rootInstrument.chainId;\n }\n\n get symbol(): string {\n return `${this.rootInstrument.symbol}-${showProperDateString({ expiry: this.expiry, format: 'MMDD' })}`;\n }\n\n get shortSymbol(): string {\n return `${this.rootInstrument.symbol}-${showProperDateString({\n expiry: this.expiry,\n format: 'MMDD',\n showShortPerp: true,\n })}`;\n }\n\n get isPerpetual(): boolean {\n return this.expiry === PERP_EXPIRY;\n }\n\n get isInverse(): boolean {\n return this.rootInstrument.isInverse;\n }\n\n get priceDecimal(): number {\n const chainConfig = DAPP_CHAIN_CONFIGS[this.chainId];\n return (\n _.get(chainConfig.pairPriceDecimals, [this.symbol]) || this.rootInstrument.priceToken.decimals || DEFAULT_DECIMALS\n );\n }\n\n /**\n * instrument is normal status and pair is normal status\n */\n get isNormalPair(): boolean {\n return this.rootInstrument.isNormalInstrument && this.status !== Status.SETTLED;\n }\n\n get openInterestsUSD(): WrappedBigNumber {\n if (this.rootInstrument?.marginToken?.price) {\n return WrappedBigNumber.from(this.getOpenInterestsValueUSD(this.rootInstrument?.marginToken?.price.wadValue));\n }\n\n return WrappedBigNumber.ZERO;\n }\n\n get expectedFundingRate(): BigNumber {\n return this.getFundingRate();\n }\n\n get effectLiqTvl(): WrappedBigNumber | undefined {\n return this.rootInstrument.quoteToken.price\n ?.mul(this.sqrtPX96)\n .mul(this.liquidity)\n .div(WrappedBigNumber.from(Q96))\n .mul(2);\n }\n\n get volume24h(): WrappedBigNumber | undefined {\n return this.stats?.volume24h ? WrappedBigNumber.from(this.stats?.volume24h) : undefined;\n }\n\n get volume24hUSD(): WrappedBigNumber | undefined {\n return this.stats?.volume24hUsd;\n }\n\n get liquidityUSD(): WrappedBigNumber {\n return this.getUSDValue(this.liquidity);\n }\n\n get tvl(): BigNumber {\n return this.involvedFund;\n }\n\n get tvlUSD(): WrappedBigNumber {\n return this.getUSDValue(this.involvedFund);\n }\n\n get liquidityInQuote(): BigNumber {\n const price =\n this.fairPrice?.eq(0) || !this.fairPrice\n ? this.rootInstrument.spotPrice?.eq(0)\n ? BigNumber.from(1)\n : this.rootInstrument.spotPrice\n : this.fairPrice;\n if (price.eq(0)) return ZERO;\n return wdiv(this.liquidity, price);\n }\n\n get maxLeverage(): number {\n if (this?.rootInstrument?.setting?.initialMarginRatio) {\n return Math.floor(PAIR_RATIO_BASE / this?.rootInstrument?.setting?.initialMarginRatio);\n }\n return TRADE_LEVERAGE_THRESHOLDS.MAX;\n }\n\n get mmr(): WrappedBigNumber {\n return WrappedBigNumber.from(this.rootInstrument.setting.maintenanceMarginRatio / PAIR_RATIO_BASE);\n }\n\n get imr(): WrappedBigNumber {\n return WrappedBigNumber.from(this.rootInstrument.setting.initialMarginRatio / PAIR_RATIO_BASE);\n }\n\n get longOpenInterest(): WrappedBigNumber {\n const totalLong = WrappedBigNumber.from(this.totalLong);\n if (this.isInverse) {\n // return WrappedBigNumber.from(this.totalShort);\n }\n return totalLong;\n }\n\n get shortOpenInterest(): WrappedBigNumber {\n const totalShort = WrappedBigNumber.from(this.totalShort);\n if (this.isInverse) {\n // return WrappedBigNumber.from(this.totalLong);\n }\n return totalShort;\n }\n\n get withinDeviationLimit(): boolean {\n return utils.ammWithinDeviationLimit(this, this.rootInstrument.initialMarginRatio);\n }\n\n get placeOrderLimit(): {\n upperTick: number;\n lowerTick: number;\n } {\n return utils.ammPlaceOrderLimit(this, this.rootInstrument.initialMarginRatio);\n }\n\n // calc pair funding rate: fairPrice / spotIndex - 1\n getFundingRate(): BigNumber {\n const funding = utils.getFundingRate(this.rootInstrument, this.expiry);\n return funding;\n }\n\n get fundingRatePerHour(): BigNumber {\n return this.expectedFundingRate.div(24);\n }\n\n getUSDValue(value: BigNumber | undefined): WrappedBigNumber {\n if (this.rootInstrument?.marginToken?.price && value) {\n return WrappedBigNumber.from(value).mul(this.rootInstrument?.marginToken?.price);\n }\n\n return WrappedBigNumber.ZERO;\n }\n\n // priceInUSD: in wad\n getOpenInterestsValueUSD(price: BigNumber): BigNumber {\n return wmul(wmul(this.openInterests, this.fairPrice), price);\n }\n\n get fundingFeeRateForLongAndShort(): {\n long: WrappedBigNumber;\n short: WrappedBigNumber;\n } {\n const fundingRatePerHour = this.wrapAttribute('fundingRatePerHour');\n const totalLongPositionOI = this.longOpenInterest;\n const totalShortPositionOI = this.shortOpenInterest;\n let long = fundingRatePerHour.mul(-1).mul(totalShortPositionOI).div(totalLongPositionOI);\n let short = fundingRatePerHour;\n if (fundingRatePerHour.gte(0)) {\n long = fundingRatePerHour.mul(-1);\n short = fundingRatePerHour.mul(totalLongPositionOI).div(totalShortPositionOI);\n }\n\n return {\n short: short,\n long: long,\n };\n }\n\n get wrappedFairPrice(): WrappedBigNumber {\n return WrappedBigNumber.from(this.fairPrice);\n }\n\n toJSON() {\n return {\n ...this.metaPair,\n\n sqrtPX96: this.sqrtPX96._hex,\n liquidity: this.liquidity._hex,\n totalLiquidity: this.totalLiquidity._hex,\n involvedFund: this.involvedFund._hex,\n openInterests: this.openInterests._hex,\n feeIndex: this.feeIndex._hex,\n protocolFee: this.protocolFee._hex,\n totalLong: this.totalLong._hex,\n totalShort: this.totalShort._hex,\n longSocialLossIndex: this.longSocialLossIndex._hex,\n shortSocialLossIndex: this.shortSocialLossIndex._hex,\n longFundingIndex: this.longFundingIndex._hex,\n shortFundingIndex: this.shortFundingIndex._hex,\n insuranceFund: this.insuranceFund._hex,\n settlementPrice: this.settlementPrice._hex,\n markPrice: this.markPrice._hex,\n fairPrice: this.fairPrice._hex,\n };\n }\n\n toString(): string {\n return JSON.stringify(this.toJSON());\n }\n}\n\nexport interface PairData {\n id: string;\n instrumentAddr: string;\n expiry: number;\n APY24h: BigNumber;\n poolFee24h: BigNumber;\n volume24h: BigNumber;\n volume24hUTC0: BigNumber;\n volume7d: BigNumber;\n priceChange24h: BigNumber;\n high24h: BigNumber;\n low24h: BigNumber;\n}\n\nexport class WrappedPairData implements PairData {\n pair?: WrappedPair;\n id: string;\n instrumentAddr: string;\n expiry: number;\n APY24h: BigNumber;\n volume24h: BigNumber;\n volume24hUTC0: BigNumber;\n volume7d: BigNumber;\n priceChange24h: BigNumber;\n high24h: BigNumber;\n low24h: BigNumber;\n poolFee24h: BigNumber;\n constructor(value: PairData) {\n this.id = value.id;\n this.instrumentAddr = value.instrumentAddr;\n this.expiry = value.expiry;\n this.APY24h = BigNumber.from(value.APY24h);\n this.volume24h = BigNumber.from(value.volume24h);\n this.volume24hUTC0 = BigNumber.from(value.volume24hUTC0);\n this.volume7d = BigNumber.from(value.volume7d);\n this.priceChange24h = BigNumber.from(value.priceChange24h);\n this.high24h = BigNumber.from(value.high24h);\n this.low24h = BigNumber.from(value.low24h);\n this.poolFee24h = BigNumber.from(value.poolFee24h);\n }\n\n wrapAttribute(prop: keyof PairData): WrappedBigNumber {\n if (this[prop]) {\n return WrappedBigNumber.from(this[prop]);\n }\n return WrappedBigNumber.ZERO;\n }\n setPair(pair: WrappedPair): this {\n this.pair = pair;\n return this;\n }\n\n get adjustedHigh24(): WrappedBigNumber {\n let high24h = getAdjustTradePrice(this.high24h, this.pair?.rootInstrument.isInverse || false);\n if (this.pair?.fairPrice) {\n // set to current price if it is bigger then high24\n if (this.pair?.fairPrice.lt(high24h.wadValue)) {\n high24h = WrappedBigNumber.from(this.pair?.fairPrice);\n } else if (high24h.eq(0)) {\n high24h = WrappedBigNumber.from(this.pair?.fairPrice);\n }\n }\n return high24h;\n }\n\n get adjustedLow24(): WrappedBigNumber {\n let low24h = getAdjustTradePrice(this.low24h, this.pair?.rootInstrument.isInverse || false);\n if (this.pair?.fairPrice) {\n // set to current price if it is small then low24h\n if (this.pair?.fairPrice.gt(low24h.wadValue)) {\n low24h = WrappedBigNumber.from(this.pair?.fairPrice);\n } else if (low24h.eq(0)) {\n low24h = WrappedBigNumber.from(this.pair?.fairPrice);\n }\n }\n return low24h;\n }\n\n get displayChange24(): WrappedBigNumber {\n let change = this.wrapAttribute('priceChange24h');\n if (this.pair?.rootInstrument?.isInverse && change) {\n change = WrappedBigNumber.from(change).mul(-1);\n }\n return change;\n }\n\n get displayHigh24h(): WrappedBigNumber {\n const high24h = this.adjustedHigh24;\n\n if (this.pair?.rootInstrument?.isInverse) {\n return this.adjustedLow24;\n }\n return WrappedBigNumber.from(high24h);\n }\n\n get displayLow24h(): WrappedBigNumber {\n const low24h = this.adjustedLow24;\n\n if (this.pair?.rootInstrument?.isInverse) {\n return this.adjustedHigh24;\n }\n return WrappedBigNumber.from(low24h);\n }\n\n get displayAPY(): WrappedBigNumber {\n const apy = this.APY24h;\n return WrappedBigNumber.from(apy);\n }\n\n toJSON(): PairData {\n return {\n id: this.id,\n instrumentAddr: this.instrumentAddr,\n expiry: this.expiry,\n APY24h: this.APY24h,\n volume24h: this.volume24h,\n volume24hUTC0: this.volume24hUTC0,\n volume7d: this.volume7d,\n priceChange24h: this.priceChange24h,\n high24h: this.high24h,\n low24h: this.low24h,\n poolFee24h: this.poolFee24h,\n };\n }\n\n toString(): string {\n return JSON.stringify(this.toJSON());\n }\n}\n\nexport function getEmptyPairFromInstrument(instrument: WrappedInstrument, expiry: number): WrappedPair {\n const pairId = getPairId(instrument.instrumentAddr, expiry);\n const chainId = instrument.chainId;\n let pair = WrappedPair.getInstance(pairId, chainId);\n if (!pair) {\n pair = WrappedPair.wrapInstance({\n rootInstrument: instrument,\n metaPair: {\n expiry: expiry,\n status: Status.DORMANT,\n markPrice: ZERO,\n instrumentId: instrument.id,\n id: pairId,\n instrumentAddr: instrument.instrumentAddr,\n totalLiquidity: ZERO,\n liquidity: ZERO,\n involvedFund: ZERO,\n openInterests: ZERO,\n feeIndex: ZERO,\n protocolFee: ZERO,\n totalLong: ZERO,\n totalShort: ZERO,\n longSocialLossIndex: ZERO,\n shortSocialLossIndex: ZERO,\n longFundingIndex: ZERO,\n shortFundingIndex: ZERO,\n insuranceFund: ZERO,\n sqrtPX96: ZERO,\n timestamp: 0,\n settlementPrice: ZERO,\n fairPrice: ZERO,\n tick: 0,\n\n blockInfo: instrument.blockInfo || { height: 0, timestamp: 0 },\n },\n });\n }\n\n return pair;\n}\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport _ from 'lodash';\n\nimport { IMetaAccount } from '@/types/account';\nimport { bigNumberObjectCheck } from '@/utils';\nimport { getAccountId } from '@/utils/transform/transformId';\n\nimport { WrappedInstrument } from './WrappedInstrument';\nimport { WrappedPortfolio } from './WrappedPortfolio';\n\nexport class WrappedAccount {\n static instances: { [chainId: number]: { [accountId: string]: WrappedAccount } } = {}; // chainId -> accountId -> WrappedAccount\n rootInstrument: WrappedInstrument;\n metaAccount: IMetaAccount;\n portfolioMap: Record = {};\n userAddr: string;\n\n constructor(rootInstrument: WrappedInstrument, metaAccount: IMetaAccount) {\n this.rootInstrument = rootInstrument;\n this.metaAccount = metaAccount;\n this.userAddr = metaAccount.userAddr;\n }\n\n static getInstance(accountId: string | undefined, chainId: CHAIN_ID | undefined): WrappedAccount | undefined {\n return accountId && chainId ? _.get(WrappedAccount.instances, [chainId, accountId]) : undefined;\n }\n\n static getInstanceMap(chainId: CHAIN_ID | undefined): { [accountId: string]: WrappedAccount } | undefined {\n return chainId ? _.get(WrappedAccount.instances, [chainId], undefined) : undefined;\n }\n\n static hasAnyInstance(chainId: CHAIN_ID | undefined): boolean {\n return chainId ? _.has(WrappedAccount.instances, [chainId]) : false;\n }\n\n static wrapInstance({\n metaAccount,\n rootInstrument,\n chainId,\n }: {\n metaAccount: IMetaAccount;\n rootInstrument: WrappedInstrument;\n chainId: CHAIN_ID;\n }): WrappedAccount {\n let account = WrappedAccount.getInstance(metaAccount.id, rootInstrument.chainId);\n if (account) {\n account.fillField(metaAccount);\n } else {\n account = new WrappedAccount(rootInstrument, bigNumberObjectCheck(metaAccount));\n _.set(WrappedAccount.instances, [chainId, metaAccount.id], account);\n }\n return account;\n }\n\n static fromEmptyAccount(rootInstrument: WrappedInstrument, userAddr: string): WrappedAccount {\n const accountId = getAccountId(userAddr, rootInstrument.instrumentAddr);\n if (WrappedAccount.getInstance(accountId, rootInstrument.chainId)) {\n return WrappedAccount.getInstance(accountId, rootInstrument.chainId) as WrappedAccount;\n }\n return new WrappedAccount(rootInstrument, {\n id: accountId,\n userAddr: userAddr,\n instrumentId: rootInstrument.id,\n portfolioIds: [],\n blockInfo: { timestamp: 0, height: 0 },\n });\n }\n\n fillField(partialAccount: Partial): void {\n const futures = _.merge({}, this.metaAccount, partialAccount);\n this.metaAccount = bigNumberObjectCheck(futures);\n }\n\n connectPortfolio(portfolio: WrappedPortfolio): void {\n if (portfolio) {\n this.portfolioMap[portfolio.id] = portfolio;\n }\n }\n\n /**\n * @returns {string} account id in the format of `${userAddr}-${instrumentAddr}`\n */\n get id(): string {\n return `${this.userAddr}-${this.rootInstrument.id}`.toLowerCase();\n }\n}\n","import _ from 'lodash';\n\nimport { DynamicLeverage, TRADE_LEVERAGE_THRESHOLDS } from '@/constants/global';\nimport { WrappedBigNumber, WrappedBigNumberLike } from '@/entities/WrappedBigNumber';\nimport BN from 'bignumber.js';\nimport { toBN } from './numberUtil';\n\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { Context } from '@derivation-tech/context';\nimport { Side, sqrt, sqrtX96ToWad, utils, wdiv, wmul } from '@synfutures/sdks-perp';\nimport { BigNumber } from 'ethers';\nimport { formatEther } from 'ethers/lib/utils';\nimport { getAdjustTradePrice } from './pairs';\n\nexport function perToTenThousands(value: number): number {\n return Math.round(value * 100);\n}\n\nexport function addedDeadline(deadline: number): number {\n return Math.round(\n Number(\n WrappedBigNumber.from(_.now())\n .div(1000)\n .add(deadline * 60).stringValue,\n ),\n );\n}\n\nexport function getLimitedLeverage(tradeSide: Side, leverage?: string, size?: WrappedBigNumber): string | undefined {\n if (!leverage) {\n return leverage;\n }\n\n return size &&\n ((size.gte(0) && tradeSide === Side.LONG) || (size.lte(0) && tradeSide === Side.SHORT)) &&\n Number(leverage) > TRADE_LEVERAGE_THRESHOLDS.ACTUAL_MAX\n ? TRADE_LEVERAGE_THRESHOLDS.ACTUAL_MAX.toString()\n : leverage;\n}\n\nexport function isLeverageOk(leverage: string | undefined): boolean {\n if (leverage === DynamicLeverage) {\n return true;\n }\n const leverageBN = toBN(leverage || '');\n return leverageBN.gte(TRADE_LEVERAGE_THRESHOLDS.MIN) && leverageBN.lte(TRADE_LEVERAGE_THRESHOLDS.MAX);\n}\n\nexport function isUsePlaceCrossMarketOrder(\n fairPrice: WrappedBigNumber,\n limitPrice: WrappedBigNumber,\n size: Side,\n isTurnOnCrossMarket: boolean,\n): boolean {\n if (!isTurnOnCrossMarket) {\n return false;\n }\n if (size === Side.LONG) {\n return limitPrice.gt(fairPrice);\n }\n return limitPrice.lt(fairPrice);\n}\n\nexport function getPnl(\n tradePrice: WrappedBigNumber,\n averagePrice: WrappedBigNumber,\n tradeSize: number | string,\n): WrappedBigNumber {\n return tradePrice.min(averagePrice).mul(tradeSize);\n}\n\nexport const getMinMaxLeverageInAdjustMargin = ({\n sdkContext,\n portfolio,\n availableBalance,\n position,\n}: {\n chainId: number;\n portfolio: WrappedPortfolio | undefined;\n sdkContext: Context | undefined;\n availableBalance: BigNumber | undefined;\n position: WrappedPosition | undefined;\n}) => {\n const ans: {\n minLeverage?: number;\n maxLeverage?: number;\n } = {\n minLeverage: undefined,\n maxLeverage: undefined,\n };\n if (portfolio && position && availableBalance && sdkContext) {\n const maxWithdrawableMargin = utils.positionMaxWithdrawableMargin(\n position,\n position.rootPair,\n position.rootInstrument.setting.initialMarginRatio,\n );\n const minLeverage = getAdjustMarginLeverageByMargin(availableBalance, position);\n const maxLeverage = getAdjustMarginLeverageByMargin(maxWithdrawableMargin, position);\n console.log('🚀 ~ maxLeverage:', {\n maxLeverage: WrappedBigNumber.from(maxLeverage),\n minLeverage: WrappedBigNumber.from(minLeverage),\n maxWithdrawableMargin: WrappedBigNumber.from(maxWithdrawableMargin),\n });\n const minBN = new BN(formatEther(minLeverage));\n const maxBN = new BN(formatEther(maxLeverage));\n ans.minLeverage = minBN.dp(1, BN.ROUND_UP).toNumber();\n ans.maxLeverage = maxBN.dp(1, BN.ROUND_DOWN).toNumber();\n }\n return ans;\n};\n\nexport function getAdjustMarginLeverageByMargin(amount: BigNumber, position: WrappedPosition) {\n const value = wmul(\n getAdjustTradePrice(position.rootPair.markPrice, position.isInverse).wadValue,\n position.size.abs(),\n );\n const equity = position.equity.min(amount);\n const leverage = wdiv(value, equity.wadValue);\n return leverage;\n}\n\n/**\n * Calculates the quote size based on the base size and price.\n *\n * @param baseSize - The size of the base asset, wrapped in a `WrappedBigNumberLike`.\n * @param price - The price of the asset, wrapped in a `WrappedBigNumberLike`.\n * @param isInverse - A boolean indicating if the price is inverse.\n * @returns The calculated quote size as a `WrappedBigNumber`.\n */\nexport function calcQuoteSizeByBase(\n baseSize: WrappedBigNumberLike,\n price: WrappedBigNumberLike,\n isInverse: boolean,\n): WrappedBigNumber {\n // now price is same as display, so we need inverse it to calc\n return WrappedBigNumber.from(baseSize).mul(getAdjustTradePrice(price, isInverse));\n}\n\n/**\n * Calculates the base size given a quote size and price.\n *\n * @param quoteSize - The size of the quote in a wrapped big number format.\n * @param price - The price in a wrapped big number format.\n * @param isInverse - A boolean indicating if the price is inverse.\n * @returns The calculated base size as a wrapped big number.\n */\nexport function calcBaseSizeByQuote(\n quoteSize: WrappedBigNumberLike,\n price: WrappedBigNumberLike,\n isInverse: boolean,\n): WrappedBigNumber {\n // now price is same as display, so we need inverse it to calc\n return WrappedBigNumber.from(quoteSize).div(getAdjustTradePrice(price, isInverse));\n}\n\nexport function calcTradeValue(\n baseSize: WrappedBigNumberLike,\n price: WrappedBigNumberLike,\n isInverse: boolean,\n): WrappedBigNumber {\n return WrappedBigNumber.from(baseSize).mul(getAdjustTradePrice(price, isInverse));\n}\n\nexport function calcRemovedPositionEntryPrice(\n ammSqrtPX96: BigNumber,\n rangeSqrtEntryPX96: BigNumber,\n isInverse: boolean,\n): WrappedBigNumber {\n const originPrice = sqrt(sqrtX96ToWad(ammSqrtPX96).mul(sqrtX96ToWad(rangeSqrtEntryPX96)));\n return getAdjustTradePrice(WrappedBigNumber.from(originPrice), isInverse);\n}\n","import { BlockInfo, CHAIN_ID } from '@derivation-tech/context';\nimport { BigNumber } from 'ethers';\nimport _ from 'lodash';\n\nimport { PAIR_RATIO_BASE } from '@/constants/global';\nimport { IMetaOrder } from '@/types/account';\nimport { bigNumberObjectCheck } from '@/utils';\n\nimport { calcQuoteSizeByBase, calcTradeValue } from '@/utils/trade';\nimport { Order as OrderInterface, Side, utils } from '@synfutures/sdks-perp';\nimport { WrappedBigNumber } from './WrappedBigNumber';\nimport { WrappedInstrument } from './WrappedInstrument';\nimport { WrappedPair } from './WrappedPair';\nimport { WrappedPortfolio } from './WrappedPortfolio';\n\nexport class WrappedOrder implements OrderInterface {\n // basic fields\n balance: BigNumber;\n size: BigNumber;\n taken: BigNumber;\n tick: number;\n nonce: number;\n // redundant fields\n instrumentAddr: string;\n expiry: number;\n traderAddr: string;\n\n // additional fields\n oid: number;\n side: Side;\n limitPrice: BigNumber;\n\n blockInfo?: BlockInfo;\n static instances: { [chainId: number]: { [orderId: string]: WrappedOrder } } = {}; // chainId -> orderId -> WrappedOrder\n createTimestamp: number | undefined;\n rootPortfolio: WrappedPortfolio;\n metaOrder: IMetaOrder;\n rootPair: WrappedPair;\n constructor(metaOrder: IMetaOrder, rootPortfolio: WrappedPortfolio) {\n this.balance = metaOrder.balance;\n this.size = metaOrder.size;\n this.taken = metaOrder.taken;\n this.tick = metaOrder.tick;\n this.nonce = metaOrder.nonce;\n this.instrumentAddr = metaOrder.instrumentAddr;\n this.expiry = metaOrder.expiry;\n this.traderAddr = metaOrder.traderAddr;\n this.oid = metaOrder.oid;\n this.side = metaOrder.side;\n this.limitPrice = metaOrder.limitPrice;\n this.blockInfo = metaOrder.blockInfo;\n\n this.metaOrder = metaOrder;\n this.rootPortfolio = rootPortfolio;\n this.rootPair = rootPortfolio.rootPair;\n }\n\n static getInstance(orderId: string, chainId: CHAIN_ID | undefined): WrappedOrder | undefined {\n return orderId && chainId ? _.get(WrappedOrder.instances, [chainId, orderId]) : undefined;\n }\n\n static wrapInstance({\n metaOrder,\n rootPortfolio,\n }: {\n metaOrder: IMetaOrder;\n rootPortfolio: WrappedPortfolio;\n }): WrappedOrder {\n let instance = WrappedOrder.getInstance(metaOrder.id, rootPortfolio.rootPair.chainId);\n if (instance) {\n instance.fillField(bigNumberObjectCheck(metaOrder));\n } else {\n instance = new WrappedOrder(bigNumberObjectCheck(metaOrder), rootPortfolio);\n _.set(WrappedOrder.instances, [rootPortfolio.rootPair.chainId, metaOrder.id], instance);\n }\n return instance;\n }\n\n static getInstanceMap(chainId: CHAIN_ID | undefined): { [orderId: string]: WrappedOrder } | undefined {\n return chainId ? _.get(WrappedOrder.instances, [chainId], undefined) : undefined;\n }\n\n setMetaData(metaOrder: IMetaOrder): void {\n this.balance = metaOrder.balance;\n this.size = metaOrder.size;\n this.taken = metaOrder.taken;\n this.tick = metaOrder.tick;\n this.nonce = metaOrder.nonce;\n this.instrumentAddr = metaOrder.instrumentAddr;\n this.expiry = metaOrder.expiry;\n this.traderAddr = metaOrder.traderAddr;\n this.oid = metaOrder.oid;\n this.side = metaOrder.side;\n this.limitPrice = metaOrder.limitPrice;\n }\n setCreateTimestamp(createTimestamp: number): void {\n this.createTimestamp = createTimestamp;\n }\n\n fillField(partialOrder: Partial): void {\n const order = _.merge({}, this.metaOrder, bigNumberObjectCheck(partialOrder));\n this.metaOrder = order;\n this.setMetaData(order);\n }\n wrapAttribute(prop: keyof WrappedOrder): WrappedBigNumber {\n if (BigNumber.isBigNumber(this[prop])) {\n let bn = WrappedBigNumber.from(this[prop] as BigNumber);\n if (this.rootInstrument.isInverse) {\n if (['size'].includes(prop)) {\n // bn = bn.mul(-1);\n }\n if (['limitPrice'].includes(prop)) {\n // bn = getAdjustTradePrice(bn, this.rootPair.isInverse);\n }\n }\n if (['taken'].includes(prop)) {\n // taken should not be larger than size\n if (bn.abs().gt(this.wrapAttribute('size').abs())) {\n bn = this.wrapAttribute('size');\n }\n }\n return bn;\n } else if (typeof this[prop] === 'string' || typeof this[prop] === 'number') {\n return WrappedBigNumber.from(this[prop] as unknown as string | number);\n }\n return WrappedBigNumber.ZERO;\n }\n\n /**\n * @returns {string} order id in the format of `${userAddr}-${instrumentAddr}-${expiry}-${tick}-${nonce}`\n */\n get id(): string {\n return this.metaOrder.id.toLowerCase();\n }\n getInstrumentAddrTickSizeId(): string {\n return `${this.rootInstrument.id}_${this.tick}_${this.size.abs().toString()}`.toLowerCase();\n }\n\n get rootInstrument(): WrappedInstrument {\n return this.rootPair.rootInstrument;\n }\n\n get wrappedSide(): Side {\n return this.side;\n }\n get tradeValue(): WrappedBigNumber {\n return calcTradeValue(this.size, this.limitPrice, this.isInverse);\n }\n get rebateFee(): WrappedBigNumber {\n return this.tradeValue.mul(this.rootInstrument.setting.quoteParam.tradingFeeRatio).div(PAIR_RATIO_BASE);\n }\n\n get leverageWad(): BigNumber {\n return utils.orderLeverage(this, this.rootPair);\n }\n\n get wrappedQuoteSize(): WrappedBigNumber {\n return calcQuoteSizeByBase(this.size, this.limitPrice, this.isInverse);\n }\n\n get wrappedFilledSize(): WrappedBigNumber {\n return calcQuoteSizeByBase(this.taken, this.limitPrice, this.isInverse);\n }\n\n get isInverse(): boolean {\n return this.rootInstrument.isInverse;\n }\n\n toJSON(): IMetaOrder {\n return this.metaOrder;\n }\n\n toString(): string {\n return JSON.stringify(this.toJSON());\n }\n}\n","import { BlockInfo, CHAIN_ID } from '@derivation-tech/context';\nimport _ from 'lodash';\n\nimport { IMetaPortfolio } from '@/types/account';\nimport { bigNumberObjectCheck } from '@/utils';\nimport { getAccountId, getPortfolioId } from '@/utils/transform/transformId';\n\nimport { WrappedAccount } from './WrappedAccount';\nimport { WrappedInstrument } from './WrappedInstrument';\nimport { WrappedOrder } from './WrappedOrder';\nimport { WrappedPair } from './WrappedPair';\nimport { WrappedPosition } from './WrappedPosition';\nimport { WrappedRange } from './WrappedRange';\n\nimport { getEmptySDKPosition } from '@/utils/portfolio';\nimport {\n Order as OrderInterface,\n Portfolio as PortfolioInterface,\n Position as PositionInterface,\n Range as RangeInterface,\n} from '@synfutures/sdks-perp';\n\nexport class WrappedPortfolio implements PortfolioInterface {\n instrumentAddr: string;\n expiry: number;\n traderAddr: string;\n isEmpty: boolean;\n\n // oid->order\n orders: Map;\n // rid->range\n ranges: Map;\n position: PositionInterface;\n\n blockInfo?: BlockInfo;\n\n static instances: { [chainId: number]: { [portfolioId: string]: WrappedPortfolio } } = {}; // chainId -> portfolioId -> WrappedPortfolio\n rootPair: WrappedPair;\n rootAccount: WrappedAccount;\n positionMap: Record = {};\n orderMap: Record = {};\n rangeMap: Record = {};\n metaPortfolio: IMetaPortfolio;\n constructor(metaPortfolio: IMetaPortfolio, rootPair: WrappedPair, rootAccount: WrappedAccount) {\n this.instrumentAddr = metaPortfolio.instrumentAddr;\n this.expiry = metaPortfolio.expiry;\n this.traderAddr = metaPortfolio.traderAddr;\n this.orders = new Map();\n metaPortfolio.orders.forEach((order, key) => {\n this.orders.set(key, bigNumberObjectCheck(order));\n });\n this.ranges = new Map();\n metaPortfolio.ranges.forEach((range, key) => {\n this.ranges.set(key, bigNumberObjectCheck(range));\n });\n\n this.position = metaPortfolio.position;\n this.isEmpty = metaPortfolio.isEmpty;\n this.blockInfo = metaPortfolio.blockInfo;\n\n this.metaPortfolio = metaPortfolio;\n this.rootPair = rootPair;\n this.rootAccount = rootAccount;\n }\n\n static getInstance(portfolioId: string, chainId: CHAIN_ID | undefined): WrappedPortfolio | undefined {\n return portfolioId && chainId ? _.get(WrappedPortfolio.instances, [chainId, portfolioId]) : undefined;\n }\n\n static wrapInstance({\n metaPortfolio,\n rootPair,\n rootAccount,\n }: {\n metaPortfolio: IMetaPortfolio;\n rootPair: WrappedPair;\n rootAccount: WrappedAccount;\n }): WrappedPortfolio {\n let instance = WrappedPortfolio.getInstance(metaPortfolio.id, rootPair.chainId);\n if (instance) {\n instance.fillField(metaPortfolio);\n } else {\n instance = new WrappedPortfolio(bigNumberObjectCheck(metaPortfolio), rootPair, rootAccount);\n _.set(WrappedPortfolio.instances, [rootPair.chainId, metaPortfolio.id], instance);\n }\n return instance;\n }\n\n static getInstanceMap(chainId: CHAIN_ID | undefined): { [portfolioId: string]: WrappedPortfolio } | undefined {\n return chainId ? _.get(WrappedPortfolio.instances, [chainId], undefined) : undefined;\n }\n\n static hasAnyInstance(chainId: CHAIN_ID | undefined): boolean {\n return chainId ? _.has(WrappedPortfolio.instances, [chainId]) : false;\n }\n\n static fromEmptyPortfolio(rootPair: WrappedPair, userAddr: string): WrappedPortfolio {\n const accountId = getAccountId(userAddr, rootPair.rootInstrument.instrumentAddr);\n const portfolioId = getPortfolioId(accountId, rootPair.expiry);\n if (WrappedPortfolio.getInstance(portfolioId, rootPair.chainId)) {\n return WrappedPortfolio.getInstance(portfolioId, rootPair.chainId) as WrappedPortfolio;\n }\n const account = WrappedAccount.fromEmptyAccount(rootPair.rootInstrument, userAddr);\n const metaPortfolio: IMetaPortfolio = {\n id: portfolioId,\n instrumentId: rootPair.rootInstrument.id,\n pairId: rootPair.id,\n accountId: accountId,\n blockInfo: {\n timestamp: 0,\n height: 0,\n },\n instrumentAddr: rootPair.rootInstrument.instrumentAddr,\n expiry: rootPair.expiry,\n traderAddr: userAddr,\n orders: new Map(),\n ranges: new Map(),\n position: getEmptySDKPosition(rootPair, userAddr),\n isEmpty: true,\n };\n return new WrappedPortfolio(metaPortfolio, rootPair, account);\n }\n\n // setMetaData(metaPortfolio: IPortfolioCore): void {\n\n // }\n\n removePosition(positionId: string): void {\n // remove settled position\n _.unset(this.positionMap, [positionId]);\n }\n\n removeOrder(orderId: string): void {\n // remove order\n const order = this.orderMap[orderId];\n\n if (order && this.orders.get(order.oid)) {\n this.orders.delete(order.oid);\n }\n _.unset(this.orderMap, [orderId]);\n }\n\n removeRange(rangeId: string): void {\n // remove range\n const range = this.rangeMap[rangeId];\n if (range && this.ranges.get(range.rid)) {\n this.ranges.delete(range.rid);\n }\n _.unset(this.rangeMap, [rangeId]);\n }\n\n fillField(partialPortfolio: Partial): void {\n const portfolio = _.merge({}, this.metaPortfolio, partialPortfolio);\n\n this.metaPortfolio = portfolio;\n // this.setMetaData(portfolio);\n }\n\n connectPosition(position: WrappedPosition): void {\n if (position) {\n this.positionMap[position.id] = position;\n this.position = position;\n }\n }\n\n connectOrder(order: WrappedOrder): void {\n if (order) {\n this.orderMap[order.id] = order;\n if (!this.orders.get(order.oid)) {\n this.orders.set(order.oid, order);\n // this.oids = [...this.oids, order.oid];\n }\n }\n }\n\n connectRange(range: WrappedRange): void {\n if (range) {\n this.rangeMap[range.id] = range;\n if (!this.ranges.get(range.rid)) {\n this.ranges.set(range.rid, range);\n // this.rids = [...this.rids, range.rid];\n }\n }\n }\n\n /**\n * @returns {string} portfolio id in the format of `${userAddr}-${instrumentAddr}-${expiry}`\n */\n get id(): string {\n return `${this.rootAccount.id}-${this.rootPair.expiry}`.toLowerCase();\n }\n\n get rootInstrument(): WrappedInstrument {\n return this.rootPair.rootInstrument;\n }\n\n toJSON(): IMetaPortfolio {\n return this.metaPortfolio;\n }\n\n toString(): string {\n return JSON.stringify(this.toJSON());\n }\n}\n","import { PRICE_BASIS_FOR_PNL } from '../storage';\n\nexport enum PriceBasisForPnl {\n MARK_PRICE = 'MARK_PRICE',\n FAIR_PRICE = 'FAIR_PRICE',\n}\nexport const priceBasisForPnlInfos = {\n [PriceBasisForPnl.FAIR_PRICE]: {\n i18nId: 'common.fairP',\n },\n [PriceBasisForPnl.MARK_PRICE]: {\n i18nId: 'common.markP',\n },\n};\n\nexport const priceBasisForPnlInLS = localStorage.getItem(PRICE_BASIS_FOR_PNL);\n// need to check priceBasisForPnlInLS is vaild or not\nexport const isPriceBasisForPnlInLSVaild = Object.values(PriceBasisForPnl).includes(\n (priceBasisForPnlInLS as PriceBasisForPnl) || '',\n);\nexport const initPriceBasisForPnl = isPriceBasisForPnlInLSVaild\n ? (priceBasisForPnlInLS as PriceBasisForPnl)\n : PriceBasisForPnl.MARK_PRICE;\n","import { WrappedBigNumber, WrappedBigNumberLike } from '@/entities/WrappedBigNumber';\nimport { RawAmm, RawPosition, ZERO, utils } from '@synfutures/sdks-perp';\n\nexport function calcPositionLiquidationPrice(amm: RawAmm, position: RawPosition, maintenanceMarginRatio?: number) {\n if (position.size.isZero() || position.balance.isZero()) return ZERO;\n return utils.positionLiquidationPrice(position, amm, maintenanceMarginRatio);\n}\n\nexport function calcEquity(position: RawPosition, amm: RawAmm) {\n const equity = utils.positionEquity(position, amm);\n return WrappedBigNumber.from(equity);\n}\n\nexport function calcMarginToDeposit(margin: WrappedBigNumberLike, gateBalance: WrappedBigNumberLike) {\n const marginW = WrappedBigNumber.from(margin);\n const gateBalanceW = WrappedBigNumber.from(gateBalance);\n if (marginW.lte(0) || gateBalanceW.gte(marginW)) {\n return WrappedBigNumber.ZERO;\n }\n return marginW.min(gateBalanceW);\n}\n","import { PriceBasisForPnl } from '@/constants/trade/priceBasisForPnl';\nimport { IMetaPosition } from '@/types/account';\nimport { bigNumberObjectCheck } from '@/utils';\nimport { getAccountId, getPortfolioId } from '@/utils/transform/transformId';\nimport { BlockInfo, CHAIN_ID, ZERO } from '@derivation-tech/context';\nimport { BigNumber } from 'ethers';\nimport _ from 'lodash';\n\nimport { calcPositionLiquidationPrice } from '@/utils/position';\nimport { calcQuoteSizeByBase } from '@/utils/trade';\nimport { Position as PositionInterface, Side, utils } from '@synfutures/sdks-perp';\nimport { WrappedBigNumber } from './WrappedBigNumber';\nimport { WrappedInstrument } from './WrappedInstrument';\nimport { WrappedPair } from './WrappedPair';\nimport { WrappedPortfolio } from './WrappedPortfolio';\n\nexport class WrappedPosition implements PositionInterface {\n // basic fields\n balance: BigNumber;\n size: BigNumber;\n entryNotional: BigNumber;\n entrySocialLossIndex: BigNumber;\n entryFundingIndex: BigNumber;\n // redundant fields\n instrumentAddr: string;\n expiry: number;\n traderAddr: string;\n\n // additional fields\n side: Side;\n entryPrice: BigNumber;\n blockInfo?: BlockInfo;\n static instances: { [chainId: number]: { [positionId: string]: WrappedPosition } } = {}; // chainId -> positionId -> WrappedPosition\n rootPortfolio: WrappedPortfolio;\n metaPosition: IMetaPosition;\n rootPair: WrappedPair;\n constructor(metaPosition: IMetaPosition, rootPortfolio: WrappedPortfolio) {\n this.balance = metaPosition.balance;\n this.size = metaPosition.size;\n this.entryNotional = metaPosition.entryNotional;\n this.entrySocialLossIndex = metaPosition.entrySocialLossIndex;\n this.entryFundingIndex = metaPosition.entryFundingIndex;\n this.instrumentAddr = metaPosition.instrumentAddr;\n this.expiry = metaPosition.expiry;\n this.traderAddr = metaPosition.traderAddr;\n this.side = metaPosition.side;\n this.entryPrice = metaPosition.entryPrice;\n this.blockInfo = metaPosition.blockInfo;\n\n this.metaPosition = metaPosition;\n this.rootPortfolio = rootPortfolio;\n this.rootPair = rootPortfolio.rootPair;\n }\n\n static getInstance(positionId: string, chainId: CHAIN_ID | undefined): WrappedPosition | undefined {\n return positionId && chainId ? _.get(WrappedPosition.instances, [chainId, positionId]) : undefined;\n }\n\n static wrapInstance({\n metaPosition,\n rootPortfolio,\n chainId,\n }: {\n metaPosition: IMetaPosition;\n rootPortfolio: WrappedPortfolio;\n chainId: CHAIN_ID;\n }): WrappedPosition {\n let instance = WrappedPosition.getInstance(metaPosition.id, chainId);\n if (instance) {\n instance.fillField(bigNumberObjectCheck(metaPosition));\n } else {\n instance = new WrappedPosition(bigNumberObjectCheck(metaPosition), rootPortfolio);\n _.set(WrappedPosition.instances, [chainId, metaPosition.id], instance);\n }\n return instance;\n }\n\n static getInstanceMap(chainId: CHAIN_ID | undefined): { [positionId: string]: WrappedPosition } | undefined {\n return chainId ? _.get(WrappedPosition.instances, [chainId], undefined) : undefined;\n }\n\n static hasAnyInstance(chainId: CHAIN_ID | undefined): boolean {\n return chainId ? _.has(WrappedPosition.instances, [chainId]) : false;\n }\n\n public static fromEmptyWrappedPosition(\n rootPair: WrappedPair,\n useAddr: string,\n rootPortfolio?: WrappedPortfolio,\n ): WrappedPosition {\n const accountId = getAccountId(useAddr, rootPair.rootInstrument.instrumentAddr);\n const portfolioId = getPortfolioId(accountId, rootPair.expiry);\n const positionId = portfolioId;\n if (WrappedPosition.getInstance(positionId, rootPair.chainId)) {\n return WrappedPosition.getInstance(positionId, rootPair.chainId) as WrappedPosition;\n }\n\n const metaPosition: IMetaPosition = {\n id: positionId,\n instrumentId: rootPair.rootInstrument.id,\n pairId: rootPair.id,\n accountId: accountId,\n portfolioId: portfolioId,\n balance: ZERO,\n size: ZERO,\n entryNotional: ZERO,\n entrySocialLossIndex: ZERO,\n entryFundingIndex: ZERO,\n instrumentAddr: rootPair.rootInstrument.instrumentAddr,\n expiry: rootPair.expiry,\n traderAddr: useAddr,\n side: Side.FLAT,\n entryPrice: ZERO,\n blockInfo: {\n timestamp: 0,\n height: 0,\n },\n };\n const wrappedPortfolio = rootPortfolio ?? WrappedPortfolio.fromEmptyPortfolio(rootPair, useAddr);\n return new WrappedPosition(metaPosition, wrappedPortfolio);\n }\n\n setMetaData(metaPosition: IMetaPosition): void {\n this.balance = metaPosition.balance;\n this.size = metaPosition.size;\n this.entryNotional = metaPosition.entryNotional;\n this.entrySocialLossIndex = metaPosition.entrySocialLossIndex;\n this.entryFundingIndex = metaPosition.entryFundingIndex;\n this.instrumentAddr = metaPosition.instrumentAddr;\n this.expiry = metaPosition.expiry;\n this.traderAddr = metaPosition.traderAddr;\n this.side = metaPosition.side;\n this.entryPrice = metaPosition.entryPrice;\n }\n\n fillField(partialPosition: Partial): void {\n const position = _.merge({}, this.metaPosition, bigNumberObjectCheck(partialPosition));\n this.metaPosition = position;\n this.setMetaData(position);\n }\n wrapAttribute(prop: keyof WrappedPosition): WrappedBigNumber {\n if (BigNumber.isBigNumber(this[prop])) {\n const bn = WrappedBigNumber.from(this[prop] as BigNumber);\n if (this.rootPair.isInverse) {\n if (['entryPrice', 'liquidationPrice'].includes(prop)) {\n // bn = toReciprocalNumber(bn);\n }\n if (['size'].includes(prop)) {\n // bn = bn.mul(-1);\n }\n }\n return bn;\n } else if (typeof this[prop] === 'string' || typeof this[prop] === 'number') {\n return WrappedBigNumber.from(this[prop] as unknown as string | number);\n }\n return WrappedBigNumber.ZERO;\n }\n\n /**\n * @returns {string} position id in the format of `${userAddr}-${instrumentAddr}-${expiry}`\n */\n get id(): string {\n return this.metaPosition.id.toLowerCase();\n }\n\n get rootInstrument(): WrappedInstrument {\n return this.rootPair.rootInstrument;\n }\n get wrappedSize(): WrappedBigNumber {\n return this.wrapAttribute('size');\n }\n get sizeInQuoteToken(): WrappedBigNumber {\n return calcQuoteSizeByBase(this.size, this.rootPair.fairPrice, this.isInverse);\n }\n get wrappedSide(): Side {\n return this.side;\n }\n\n get hasPosition(): boolean {\n return this?.size && !this?.size?.eq(0) && !this?.balance?.eq(0);\n }\n\n get equity(): WrappedBigNumber {\n const equity = utils.positionEquity(this, this.rootPair);\n return WrappedBigNumber.from(equity);\n }\n\n get unrealizedPnlByFairPrice(): WrappedBigNumber {\n const pnl = utils.positionUnrealizedPnlByFairPrice(this, this.rootPair);\n return WrappedBigNumber.from(pnl);\n }\n\n get unrealizedPnl(): WrappedBigNumber {\n const pnl = utils.positionUnrealizedPnl(this, this.rootPair);\n return WrappedBigNumber.from(pnl);\n }\n\n get unrealizedFundingFee(): WrappedBigNumber {\n return WrappedBigNumber.from(utils.positionUnrealizedFundingFee(this, this.rootPair));\n }\n\n // calculate the desired mark price\n get liquidationPrice(): WrappedBigNumber {\n const liqPrice = calcPositionLiquidationPrice(this.rootPair, this, this.rootInstrument.maintenanceMarginRatio);\n // return getAdjustTradePrice(liqPrice, this.rootPair.isInverse);\n return WrappedBigNumber.from(liqPrice);\n }\n\n get leverageWad(): BigNumber {\n const leverage = utils.positionLeverage(this, this.rootPair);\n return leverage;\n }\n\n get leverage(): WrappedBigNumber {\n return WrappedBigNumber.from(this.leverageWad);\n }\n\n getUnrealizedPositionPnlWithoutFunding(priceBasisForPnl: PriceBasisForPnl): WrappedBigNumber {\n const pnl =\n priceBasisForPnl === PriceBasisForPnl.MARK_PRICE\n ? // default is MARK_PRICE from sdk\n WrappedBigNumber.from(this.unrealizedPnl)\n : this.unrealizedPnlByFairPrice;\n return pnl.min(this.unrealizedFundingFee);\n }\n\n getUnrealizedPnlWithoutFunding(priceBasisForPnl: PriceBasisForPnl): WrappedBigNumber {\n return this.getUnrealizedPositionPnlWithoutFunding(priceBasisForPnl).add(this.unrealizedSocialLoss);\n }\n getUnrealizedPnlPercentage(priceBasisForPnl: PriceBasisForPnl): WrappedBigNumber {\n // if marign(equity) <=0, which means it is waiting for bot liquidation we set unrealizedPnl to -100\n if (this.equity.lte(0)) {\n return new WrappedBigNumber(-100);\n }\n const unrealizedPnl = this.getUnrealizedPositionPnlWithoutFunding(priceBasisForPnl);\n // unrealizedPnlRatio = unrealizedPnl / (margin - unrealizedPnl)\n const ratio = unrealizedPnl.div(this.equity.min(unrealizedPnl));\n return ratio;\n }\n // If social loss is 10, sdk will return 10 instead of -10\n get unrealizedSocialLoss(): WrappedBigNumber {\n const socialLoss = utils.positionUnrealizedSocialLoss(this, this.rootPortfolio.rootPair);\n return new WrappedBigNumber(socialLoss);\n }\n\n get isInverse(): boolean {\n return this.rootInstrument.isInverse;\n }\n\n toJSON() {\n return {\n ...this.metaPosition,\n balance: this.balance._hex,\n size: this.size._hex,\n entryNotional: this.entryNotional._hex,\n entrySocialLossIndex: this.entrySocialLossIndex._hex,\n entryFundingIndex: this.entryFundingIndex._hex,\n entryPrice: this.entryPrice._hex,\n };\n }\n\n toString(): string {\n return JSON.stringify(this.toJSON());\n }\n}\n","import { BlockInfo, CHAIN_ID } from '@derivation-tech/context';\nimport { BigNumber } from 'ethers';\nimport _ from 'lodash';\n\nimport { IMetaRange } from '@/types/account';\nimport { bigNumberObjectCheck } from '@/utils';\n\nimport { WrappedBigNumber } from './WrappedBigNumber';\nimport { WrappedInstrument } from './WrappedInstrument';\nimport { WrappedPair } from './WrappedPair';\nimport { WrappedPortfolio } from './WrappedPortfolio';\n\nimport { Range as RangeInterface, utils } from '@synfutures/sdks-perp';\n\nexport class WrappedRange implements RangeInterface {\n // basic fields\n liquidity: BigNumber;\n balance: BigNumber;\n sqrtEntryPX96: BigNumber;\n entryFeeIndex: BigNumber;\n tickLower: number;\n tickUpper: number;\n // redundant fields\n instrumentAddr: string;\n expiry: number;\n traderAddr: string;\n\n // additional fields\n rid: number;\n lowerPrice: BigNumber;\n upperPrice: BigNumber;\n entryPrice: BigNumber;\n\n blockInfo?: BlockInfo;\n\n static instances: { [chainId: number]: { [rangeId: string]: WrappedRange } } = {}; // chainId -> rangeId -> WrappedRange\n rootPortfolio: WrappedPortfolio;\n metaRange: IMetaRange;\n rootPair: WrappedPair;\n constructor(metaRange: IMetaRange, rootPortfolio: WrappedPortfolio) {\n this.balance = metaRange.balance;\n this.liquidity = metaRange.liquidity;\n this.sqrtEntryPX96 = metaRange.sqrtEntryPX96;\n this.entryFeeIndex = metaRange.entryFeeIndex;\n this.tickLower = metaRange.tickLower;\n this.tickUpper = metaRange.tickUpper;\n this.instrumentAddr = metaRange.instrumentAddr;\n this.expiry = metaRange.expiry;\n this.traderAddr = metaRange.traderAddr;\n this.rid = metaRange.rid;\n this.blockInfo = metaRange.blockInfo;\n this.lowerPrice = metaRange.lowerPrice;\n this.upperPrice = metaRange.upperPrice;\n this.entryPrice = metaRange.entryPrice;\n\n this.metaRange = metaRange;\n this.rootPortfolio = rootPortfolio;\n this.rootPair = rootPortfolio.rootPair;\n }\n\n static getInstance(positionId: string, chainId: CHAIN_ID | undefined): WrappedRange | undefined {\n return positionId && chainId ? _.get(WrappedRange.instances, [chainId, positionId]) : undefined;\n }\n\n static wrapInstance({\n metaRange,\n rootPortfolio,\n }: {\n metaRange: IMetaRange;\n rootPortfolio: WrappedPortfolio;\n }): WrappedRange {\n let instance = WrappedRange.getInstance(metaRange.id, rootPortfolio.rootPair.chainId);\n if (instance) {\n instance.fillField(bigNumberObjectCheck(metaRange));\n } else {\n instance = new WrappedRange(bigNumberObjectCheck(metaRange), rootPortfolio);\n _.set(WrappedRange.instances, [rootPortfolio.rootPair.chainId, metaRange.id], instance);\n }\n return instance;\n }\n\n static getInstanceMap(chainId: CHAIN_ID | undefined): { [positionId: string]: WrappedRange } | undefined {\n return chainId ? _.get(WrappedRange.instances, [chainId], undefined) : undefined;\n }\n\n setMetaData(metaRange: IMetaRange): void {\n this.balance = metaRange.balance;\n this.liquidity = metaRange.liquidity;\n this.sqrtEntryPX96 = metaRange.sqrtEntryPX96;\n this.entryFeeIndex = metaRange.entryFeeIndex;\n this.tickLower = metaRange.tickLower;\n this.tickUpper = metaRange.tickUpper;\n this.instrumentAddr = metaRange.instrumentAddr;\n this.expiry = metaRange.expiry;\n this.traderAddr = metaRange.traderAddr;\n this.rid = metaRange.rid;\n this.blockInfo = metaRange.blockInfo;\n this.lowerPrice = metaRange.lowerPrice;\n this.upperPrice = metaRange.upperPrice;\n this.entryPrice = metaRange.entryPrice;\n this.metaRange = metaRange;\n }\n\n fillField(partialPosition: Partial): void {\n const metaRange = _.merge({}, this.metaRange, bigNumberObjectCheck(partialPosition));\n this.metaRange = metaRange;\n this.setMetaData(metaRange);\n }\n wrapAttribute(prop: keyof WrappedRange): WrappedBigNumber {\n if (BigNumber.isBigNumber(this[prop])) {\n const bn = WrappedBigNumber.from(this[prop] as BigNumber);\n if (this.rootInstrument.isInverse) {\n // if (['size'].includes(prop)) {\n // bn = bn.mul(-1);\n // }\n if (['lowerPrice', 'upperPrice'].includes(prop)) {\n // const price =\n // prop === 'lowerPrice' ? WrappedBigNumber.from(this.upperPrice) : WrappedBigNumber.from(this.lowerPrice);\n // bn = getAdjustTradePrice(price, this.rootPair.isInverse);\n }\n }\n return bn;\n } else if (typeof this[prop] === 'string' || typeof this[prop] === 'number') {\n return WrappedBigNumber.from(this[prop] as unknown as string | number);\n }\n return WrappedBigNumber.ZERO;\n }\n\n /**\n * @returns {string} position id in the format of `${userAddr}-${instrumentAddr}-${expiry}-${rid}`\n */\n get id(): string {\n return this.metaRange.id.toLowerCase();\n }\n\n get rootInstrument(): WrappedInstrument {\n return this.rootPair.rootInstrument;\n }\n\n get valueLocked(): WrappedBigNumber {\n const value = utils.rangeValueLocked(this, this.rootPair);\n return WrappedBigNumber.from(value);\n }\n\n get upperPositionModelIfRemove() {\n const rawPosition = utils.rangeUpperPositionIfRemove(this, this.rootPair);\n const position = utils.factory.createPosition({\n ...rawPosition,\n instrumentAddr: this.instrumentAddr,\n expiry: this.expiry,\n traderAddr: this.traderAddr,\n });\n return position;\n }\n\n get lowerPositionModelIfRemove() {\n const rawPosition = utils.rangeLowerPositionIfRemove(this, this.rootPair);\n const position = utils.factory.createPosition({\n ...rawPosition,\n instrumentAddr: this.instrumentAddr,\n expiry: this.expiry,\n traderAddr: this.traderAddr,\n });\n return position;\n }\n\n get upperPositionLiquidationPrice() {\n return utils.positionLiquidationPrice(\n this.upperPositionModelIfRemove,\n this.rootPair,\n this.rootPair.rootInstrument.setting.maintenanceMarginRatio,\n );\n }\n\n get lowerPositionLiquidationPrice() {\n return utils.positionLiquidationPrice(\n this.lowerPositionModelIfRemove,\n this.rootPair,\n this.rootPair.rootInstrument.setting.maintenanceMarginRatio,\n );\n }\n\n get wrappedLowerLiqPrice(): WrappedBigNumber {\n return this.rootPair.isInverse\n ? // ? getAdjustTradePrice(this.upperPositionLiquidationPrice, this.rootPair.isInverse)\n WrappedBigNumber.from(this.upperPositionLiquidationPrice)\n : WrappedBigNumber.from(this.lowerPositionLiquidationPrice);\n }\n\n get wrappedUpperLiqPrice(): WrappedBigNumber {\n return this.rootPair.isInverse\n ? // ? getAdjustTradePrice(this.lowerPositionLiquidationPrice, this.rootPair.isInverse)\n WrappedBigNumber.from(this.lowerPositionLiquidationPrice)\n : WrappedBigNumber.from(this.upperPositionLiquidationPrice);\n }\n\n get wrappedLowerPosition() {\n return this.rootPair.isInverse ? this.upperPositionModelIfRemove : this.lowerPositionModelIfRemove;\n }\n\n get wrappedUpperPosition() {\n return this.rootPair.isInverse ? this.lowerPositionModelIfRemove : this.upperPositionModelIfRemove;\n }\n\n get feeEarned() {\n return utils.rangeFeeEarned(this, this.rootPair);\n }\n\n get isInverse(): boolean {\n return this.rootInstrument.isInverse;\n }\n\n toJSON(): IMetaRange {\n return this.metaRange;\n }\n\n toString(): string {\n return JSON.stringify(this.toJSON());\n }\n}\n","export const NetworkErrorSvg = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import { NetworkErrorSvg } from '@/assets/svg/icons/error';\nimport SentryService from '@/entities/SentryService';\nimport { Flex } from 'antd';\nimport React, { ErrorInfo, PropsWithChildren } from 'react';\nimport ReactGA from 'react-ga';\nimport './index.less';\ntype ErrorBoundaryState = {\n error: Error | null;\n};\n\nasync function updateServiceWorker(): Promise {\n const ready = await navigator.serviceWorker.ready;\n // the return type of update is incorrectly typed as Promise. See\n // https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerRegistration/update\n return ready.update() as unknown as Promise;\n}\n\nexport default class ErrorBoundary extends React.Component, ErrorBoundaryState> {\n constructor(props: PropsWithChildren) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n updateServiceWorker()\n .then(async (registration) => {\n // We want to refresh only if we detect a new service worker is waiting to be activated.\n // See details about it: https://developers.google.com/web/fundamentals/primers/service-workers/lifecycle\n if (registration?.waiting) {\n await registration.unregister();\n\n // Makes Workbox call skipWaiting(). For more info on skipWaiting see: https://developer.chrome.com/docs/workbox/handling-service-worker-updates/\n registration.waiting.postMessage({ type: 'SKIP_WAITING' });\n\n // Once the service worker is unregistered, we can reload the page to let\n // the browser download a fresh copy of our app (invalidating the cache)\n window.location.reload();\n }\n })\n .catch((error) => {\n console.error('Failed to update service worker', error);\n SentryService.captureException(error, { name: 'ErrorBoundary:getDerivedStateFromError' });\n });\n return { error };\n }\n\n componentDidCatch(error: Error, errorInfo: ErrorInfo): void {\n console.error('ErrorBoundary:componentDidCatch', error, errorInfo);\n ReactGA.exception({\n description: error.toString() + errorInfo.toString(),\n fatal: true,\n });\n SentryService.captureException(error, { name: 'ErrorBoundary:componentDidCatch', errorInfo });\n }\n\n render(): string | number | boolean | JSX.Element | React.ReactFragment | null | undefined {\n const { error } = this.state;\n if (error !== null) {\n return (\n \n \n \n \n Network Anomaly\n Something went wrong, please refresh the page.\n {error && Error Detail: {error?.message}}\n \n \n \n );\n }\n return this.props.children;\n }\n}\n","import './index.less';\n\nimport { SpinProps } from 'antd';\nimport React from 'react';\n\nconst Loading: React.FC = (props) => {\n if (!props?.spinning) {\n return <>{props.children};\n }\n return (\n
\n
\n
\n \n \n
\n
\n\n
\n
\n \n \n
\n
\n\n
\n
\n \n \n
\n
\n
\n );\n};\n\nexport default Loading;\n","export enum SUMMARY_STAGE {\n START = 'start',\n SLIDES = 'slides',\n}\nexport enum CUSTOMER_TYPE {\n INTERN = 'intern',\n COMMANDER = 'commander',\n LEGEND = 'legend',\n GOD = 'god',\n}\nexport enum SUMMARY_SLIDES {\n TTV = 'ttv',\n FP = 'fp',\n TPNL = 'tPnl',\n TPL = 'tpl',\n TLPFE = 'tLPFE',\n}\nexport const CUSTOMER_GOD_THRESHHOLD = 50000;\nexport const CUSTOMER_LEGEND_THRESHHOLD = 10000;\nexport const CUSTOMER_COMMANDER_THRESHHOLD = 5000;\n","import { SUMMARY_STAGE } from '@/constants/yearSummary';\nimport { create } from 'zustand';\nexport const useYear2024SummaryStore = create<{\n stage: SUMMARY_STAGE;\n setStage: (stage: SUMMARY_STAGE) => void;\n modalOpen: boolean;\n setModalOpen: (modalOpen: boolean) => void;\n showYYSSBtn: boolean;\n setShowYYSSBtn: (showYYSSBtn: boolean) => void;\n}>((set) => ({\n stage: SUMMARY_STAGE.START,\n modalOpen: false,\n setModalOpen: (modalOpen: boolean) =>\n set(() => ({\n modalOpen,\n })),\n setStage: (stage: SUMMARY_STAGE) => set(() => ({ stage })),\n showYYSSBtn: false,\n setShowYYSSBtn: (showYYSSBtn: boolean) => set(() => ({ showYYSSBtn })),\n}));\n","import { SPOT_KLINE_INTERVAL } from '@/constants/spot';\nimport { create } from 'zustand';\nimport { persist } from 'zustand/middleware';\n// 0 sell 1 buy\ninterface SpotState {\n token0: TokenInfoInSpot;\n setToken0: (token: TokenInfoInSpot | undefined) => void;\n token1: TokenInfoInSpot;\n setToken1: (token: TokenInfoInSpot | undefined) => void;\n sellAmount: string;\n setSellAmount: (amount: string) => void;\n stepRatio: number;\n setStepRatio: (ratio: number) => void;\n swapping: boolean;\n setSwapping: (swapping: boolean) => void;\n simulationModalOpen: boolean;\n setSimulationModalOpen: (open: boolean) => void;\n poolsToExclude: PoolType[];\n setPoolsToExclude: (setPoolsToExclude: PoolType[]) => void;\n poolsToExcludeTemp: PoolType[];\n setPoolsToExcludeTemp: (setPoolsToExcludeTemp: PoolType[]) => void;\n spotKlineInterval: SPOT_KLINE_INTERVAL;\n setSpotKlineInterval: (interval: SPOT_KLINE_INTERVAL) => void;\n newTxHashForFetchingHistory: string | null;\n setNewTxHashForFetchingHistory: (hash: string | null) => void;\n mobileGraphOpen: boolean;\n setMobileGraphOpen: (open: boolean) => void;\n settingsOpen: boolean;\n setSettingsOpen: (open: boolean) => void;\n}\n\nimport { PoolType } from '@synfutures/sdks-aggregator';\nimport { devtools } from 'zustand/middleware';\nimport { TokenInfoInSpot } from './types';\n\nexport const useSpotState = create()(\n devtools(\n persist(\n (set) => ({\n mobileGraphOpen: false,\n setMobileGraphOpen: (mobileGraphOpen) => set(() => ({ mobileGraphOpen })),\n settingsOpen: false,\n setSettingsOpen: (settingsOpen) => set(() => ({ settingsOpen })),\n token0: {\n name: 'USD Coin',\n address: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',\n symbol: 'USDC',\n decimals: 6,\n chainId: 8453,\n id: '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913',\n isSymbolDuplicated: false,\n },\n setToken0: (sellToken) => set(() => ({ token0: sellToken }), undefined, 'setToken0'),\n token1: {\n name: 'Wrapped Ether',\n address: '0x4200000000000000000000000000000000000006',\n symbol: 'WETH',\n decimals: 18,\n chainId: 8453,\n id: '0x4200000000000000000000000000000000000006',\n isSymbolDuplicated: false,\n },\n setToken1: (buyToken) => set(() => ({ token1: buyToken }), undefined, 'setToken1'),\n poolsToExclude: [], // Initialize with an empty array\n setPoolsToExclude: (poolsToExclude) => set(() => ({ poolsToExclude }), undefined, 'setPoolsToExclude'),\n poolsToExcludeTemp: [], // Initialize with an empty array\n setPoolsToExcludeTemp: (poolsToExcludeTemp) =>\n set(() => ({ poolsToExcludeTemp }), undefined, 'setPoolsToExcludeTemp'),\n sellAmount: '',\n setSellAmount: (amount) => set(() => ({ sellAmount: amount }), undefined, 'setAmount'),\n\n stepRatio: 10,\n setStepRatio: (stepRatio) => set(() => ({ stepRatio }), undefined, 'setStepRatio'),\n\n simulationModalOpen: false,\n setSimulationModalOpen: (simulationModalOpen) =>\n set(() => ({ simulationModalOpen }), undefined, 'setSimulationModalOpen'),\n\n spotKlineInterval: SPOT_KLINE_INTERVAL.D_1,\n setSpotKlineInterval: (interval) =>\n set(() => ({ spotKlineInterval: interval }), undefined, 'setSpotKlineInterval'),\n\n swapping: false,\n setSwapping: (swapping) => set(() => ({ swapping }), false, 'setSwapping'),\n\n newTxHashForFetchingHistory: null,\n setNewTxHashForFetchingHistory: (hash) =>\n set(() => ({ newTxHashForFetchingHistory: hash }), undefined, 'setNewTransactionHashForFetchingHistory'),\n }),\n {\n name: 'spot-storage',\n partialize: (state) => ({\n token0: state.token0,\n token1: state.token1,\n poolsToExclude: state.poolsToExclude,\n poolsToExcludeTemp: state.poolsToExclude,\n }),\n version: 0,\n },\n ),\n { name: 'spot-store' },\n ),\n);\n","import { IGlobalConfig, IGlobalConfigStorage } from '@/types/global';\nimport { useMemo } from 'react';\nimport { create } from 'zustand';\n\ninterface ConfigState {\n configTemp: IGlobalConfigStorage; // Replace 'any' with the appropriate type if known\n setConfigTemp: (config: IGlobalConfigStorage) => void; // Replace 'any' with the appropriate type if known\n}\n\nexport const useConfigStore = create((set) => ({\n configTemp: {},\n setConfigTemp: (config) => set(() => ({ configTemp: config })),\n}));\n\nexport const useConfigStoreWithChainId = (\n chainId: number | undefined,\n): {\n configTemByChain: IGlobalConfig;\n setConfigTempByChainId: (config: IGlobalConfig) => void;\n} => {\n const { configTemp, setConfigTemp } = useConfigStore();\n\n const configTemByChain = useMemo(() => {\n return (chainId ? configTemp[chainId] || {} : {}) as IGlobalConfig;\n }, [chainId, configTemp]);\n\n const setConfigTempByChainId = (config: IGlobalConfig) => {\n chainId &&\n setConfigTemp({\n ...configTemp,\n [chainId]: config,\n });\n };\n\n return {\n configTemByChain,\n setConfigTempByChainId,\n };\n};\n","import _ from 'lodash';\nimport { create } from 'zustand';\nimport { devtools } from 'zustand/middleware';\nimport { PollingHistoryId } from './type';\n\ninterface GlobalState {\n pollingHistoryTx: {\n [chainId: number]: {\n [userAddr: string]: {\n [key in PollingHistoryId]?: string;\n };\n };\n };\n setPollingHistoryTx: (params: {\n userAddress: string;\n chainId: number;\n pollingHistoryId: PollingHistoryId;\n tx?: string;\n }) => void;\n}\n\nexport const useGlobalStore = create()(\n devtools(\n (set) => ({\n pollingHistoryTx: {},\n setPollingHistoryTx: ({ userAddress, chainId, pollingHistoryId, tx }) =>\n set((state) => {\n // Create a new state object to ensure re-render\n const newPollingHistoryTx = _.cloneDeep(state.pollingHistoryTx);\n _.set(newPollingHistoryTx, [chainId, userAddress, pollingHistoryId], tx);\n return { pollingHistoryTx: newPollingHistoryTx };\n }),\n }),\n {\n name: 'global-store',\n },\n ),\n);\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { useLocalStorageState } from 'ahooks';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { useLocation, useParams } from 'react-router-dom';\n\nimport {\n DEFAULT_THEME,\n GlobalModalType,\n PERP,\n SecondGlobalModalType,\n TabType,\n THEME_ENUM,\n ThirdGlobalModalType,\n} from '@/constants';\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { SYN_AGREE_TERM } from '@/constants/storage';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport { useSystemPrefersColor } from '@/hooks/useSystemPrefersColor';\nimport { AnnouncementRes, IGlobalConfig } from '@/types/global';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { useWalletAccount } from '@/hooks/web3/useWalletNetwork';\nimport { useYear2024SummaryStore } from '@/pages/Year2024Summary/store';\nimport { SetState } from 'ahooks/lib/createUseStorageState';\nimport { useSpotState } from '../spot/store';\nimport { useUserState } from '../user/hooks';\nimport { setOpenModal, setOpenSecondModal, setOpenThirdModal, setTheme } from './actions';\nimport {\n selectAnnouncementConfig,\n selectDataTheme,\n selectGlobalConfig,\n selectIpIsBlocked,\n selectModalOpen,\n selectOnChainReferralCode,\n selectSecondModalOpen,\n selectTabType,\n selectThirdModalOpen,\n} from './globalSlice';\nimport { useConfigStoreWithChainId } from './store';\nimport { useGlobalStore } from './stores';\nimport { PollingHistoryId } from './type';\ninterface IUseThemeReturnTypes {\n dataTheme: THEME_ENUM;\n setDataTheme: (theme: THEME_ENUM) => void;\n}\nexport const useTheme = (): IUseThemeReturnTypes => {\n const dataTheme = useAppSelector(selectDataTheme);\n const systemColor = useSystemPrefersColor();\n const dispatch = useAppDispatch();\n const setDataTheme = useCallback(\n (theme: THEME_ENUM) => {\n dispatch(setTheme(theme));\n },\n [dispatch],\n );\n\n const theme = useMemo(() => {\n if (dataTheme === 'auto') {\n return DEFAULT_THEME;\n return systemColor;\n } else {\n //document?.documentElement?.setAttribute('data-theme', dataTheme);\n document?.documentElement?.setAttribute('data-theme', dataTheme);\n }\n return dataTheme;\n }, [dataTheme, systemColor]);\n\n return {\n dataTheme: theme,\n setDataTheme,\n };\n};\n\n// export function useGlobalState(): GlobalState {\n// const globalState = useAppSelector(selectGlobalState);\n// return globalState;\n// }\n\nexport function useGlobalConfig(chainId: CHAIN_ID | undefined): IGlobalConfig {\n const chainGlobalConfig = useAppSelector(selectGlobalConfig);\n return useMemo(\n () => _.get(chainGlobalConfig, [chainId as number], {} as IGlobalConfig),\n [chainId, chainGlobalConfig],\n );\n}\nexport function useResetTempGlobalConfig(chainId: CHAIN_ID | undefined) {\n const globalConfig = useGlobalConfig(chainId);\n const { setConfigTempByChainId } = useConfigStoreWithChainId(chainId);\n const { poolsToExclude, setPoolsToExcludeTemp } = useSpotState();\n const resetConfig = useCallback(() => {\n setConfigTempByChainId(globalConfig);\n setPoolsToExcludeTemp(poolsToExclude);\n }, [setConfigTempByChainId, globalConfig, setPoolsToExcludeTemp, poolsToExclude]);\n return resetConfig;\n}\n\nexport function useGlobalModalType(): GlobalModalType | null {\n const openModal = useAppSelector(selectModalOpen);\n return openModal;\n}\n\nexport function useModalOpen(modal: GlobalModalType): boolean {\n const openModal = useAppSelector(selectModalOpen);\n return openModal === modal;\n}\n\nexport function useToggleModal(modal: GlobalModalType): (isOpen?: boolean) => void {\n const open = useModalOpen(modal);\n const dispatch = useAppDispatch();\n return useCallback(\n (isOpen?: boolean) => {\n let type = open ? null : modal;\n if (isOpen !== undefined) {\n type = isOpen ? modal : null;\n }\n dispatch(setOpenModal({ type: type }));\n },\n [dispatch, modal, open],\n );\n}\n\nexport function useSecondGlobalModalType(): SecondGlobalModalType | null {\n const openModal = useAppSelector(selectSecondModalOpen);\n return openModal;\n}\n\nexport function useSecondModalOpen(modal: SecondGlobalModalType): boolean {\n const openModal = useAppSelector(selectSecondModalOpen);\n return openModal === modal;\n}\n\nexport function useThirdGlobalModalType(): ThirdGlobalModalType | null {\n const openModal = useAppSelector(selectThirdModalOpen);\n return openModal;\n}\n\nexport function useThirdModalOpen(modal: ThirdGlobalModalType): boolean {\n const openModal = useAppSelector(selectThirdModalOpen);\n return openModal === modal;\n}\n\nexport function useToggleSecondModal(modal: SecondGlobalModalType): (isOpen?: boolean) => void {\n const open = useSecondModalOpen(modal);\n const dispatch = useAppDispatch();\n return useCallback(\n (isOpen?: boolean) => {\n let type = open ? null : modal;\n if (isOpen !== undefined) {\n type = isOpen ? modal : null;\n }\n dispatch(setOpenSecondModal({ type }));\n },\n [dispatch, modal, open],\n );\n}\n\nexport function useToggleThirdModal(modal: ThirdGlobalModalType): (isOpen?: boolean) => void {\n const open = useThirdModalOpen(modal);\n const dispatch = useAppDispatch();\n return useCallback(\n (isOpen?: boolean) => {\n let type = open ? null : modal;\n if (isOpen !== undefined) {\n type = isOpen ? modal : null;\n }\n dispatch(setOpenThirdModal({ type }));\n },\n [dispatch, modal, open],\n );\n}\n\nexport function useTabType(): TabType {\n const tabType = useAppSelector(selectTabType);\n return tabType;\n}\n\nexport function useAnnouncementConfig(): AnnouncementRes | undefined {\n const announcementConfig = useAppSelector(selectAnnouncementConfig);\n return useMemo(() => {\n return announcementConfig;\n }, [announcementConfig]);\n}\n\nexport function useAccountWrap(): string | undefined | null {\n const account = useWalletAccount();\n const { impostorAddress } = useUserState();\n return useMemo(() => {\n if (impostorAddress) {\n return impostorAddress;\n }\n return account;\n }, [account, impostorAddress]);\n}\n\nexport function useTitle(title: string | undefined): void {\n useEffect(() => {\n if (!title) {\n return;\n }\n const prevTitle = document.title;\n document.title = title;\n return () => {\n document.title = prevTitle;\n };\n });\n}\n\nexport function usePage(): string {\n const location = useLocation();\n return useMemo(() => {\n return _.get(location.pathname?.split('/'), [1]);\n }, [location.pathname]);\n}\n\nexport function useShowTermModal(): [boolean, boolean | undefined, (value?: SetState | undefined) => void] {\n const [agree, setAgree] = useLocalStorageState(SYN_AGREE_TERM, {\n defaultValue: false,\n });\n const isOpenModal = useModalOpen(GlobalModalType.Term);\n\n return [isOpenModal, agree, setAgree];\n}\n\nexport function useInitialChainSwitchModal(): {\n isOpenModal: boolean;\n} {\n const isOpenModal = useModalOpen(GlobalModalType.INITIAL_CHAIN_SWITCH);\n\n return {\n isOpenModal,\n };\n}\nexport function useInitialSynScore2024Modal() {\n const { modalOpen, setModalOpen } = useYear2024SummaryStore();\n const { pathname } = useLocation();\n const userAddr = useWalletAccount();\n const onClose = useCallback(() => {\n setModalOpen(false);\n const storeKey = `initial-syn-score2024-modal-${userAddr}`;\n localStorage.setItem(storeKey, 'closed');\n }, [setModalOpen, userAddr]);\n\n useEffect(() => {\n if (userAddr) {\n const storeKey = `initial-syn-score2024-modal-${userAddr}`;\n if (localStorage.getItem(storeKey) !== 'closed') setModalOpen(true);\n }\n }, [setModalOpen, userAddr]);\n return {\n isOpenModal: pathname.includes('market') && modalOpen,\n onClose,\n };\n}\n\nexport function usePnlShareModal(type = SecondGlobalModalType.PNL_SHARE) {\n const userAddr = useUserAddr();\n const isOpenModal = useSecondModalOpen(type);\n const togglePnlShareModal = useToggleSecondModal(type);\n const { isNotMobile } = useMediaQueryDevice();\n useEffect(() => {\n // close modal when change media size\n togglePnlShareModal(false);\n }, [isNotMobile, userAddr]);\n return {\n isOpenModal,\n togglePnlShareModal,\n };\n}\n\nexport function useSecondModal(type: SecondGlobalModalType) {\n const isOpenModal = useSecondModalOpen(type);\n const toggleModal = useToggleSecondModal(type);\n\n return {\n isOpenModal,\n toggleModal,\n };\n}\n\nexport function useExpiryFromParams(): number | undefined {\n const { expiry } = useParams();\n if (expiry === PERP.toLowerCase()) {\n return 0;\n }\n if (expiry) {\n return moment.utc(expiry).hour(8).unix();\n }\n return undefined;\n}\n\nexport function useCurrentMarketType(): PAIR_PAGE_TYPE | null {\n const location = useLocation();\n const currentLocation = _.get(location.pathname.split('/'), [1]);\n if (currentLocation === PAIR_PAGE_TYPE.TRADE) {\n return PAIR_PAGE_TYPE.TRADE;\n }\n if (currentLocation === PAIR_PAGE_TYPE.EARN) {\n return PAIR_PAGE_TYPE.EARN;\n }\n return null;\n}\n\nexport function useOnChainReferralCode():\n | {\n channel: string;\n referralCode: string;\n }\n | undefined {\n const onChainReferralCode = useAppSelector(selectOnChainReferralCode);\n return onChainReferralCode;\n}\n\nexport function useIsIpBlocked(): boolean {\n return useAppSelector(selectIpIsBlocked);\n}\n\nexport function usePollingHistoryTx(pollingHistoryId: PollingHistoryId, chainId?: number, userAddr?: string) {\n const { pollingHistoryTx } = useGlobalStore();\n return useMemo(() => {\n return userAddr && chainId && _.get(pollingHistoryTx, [chainId, userAddr, pollingHistoryId], undefined);\n }, [pollingHistoryTx, userAddr, chainId, pollingHistoryId]);\n}\n","import { useEffect, useMemo, useState } from 'react';\n\nimport { SystemPrefersColorScheme, THEME_ENUM } from '@/constants';\n\nexport function useSystemPrefersColor(): THEME_ENUM {\n const [colorScheme, setPrefersColorScheme] = useState('auto');\n\n const theme = useMemo(() => {\n if (colorScheme === 'auto') {\n if (window.matchMedia && window.matchMedia('(prefers-color-scheme: light)').matches) {\n return THEME_ENUM.LIGHT;\n }\n return THEME_ENUM.DARK;\n }\n return colorScheme;\n }, [colorScheme]);\n\n useEffect(() => {\n if (window.matchMedia) {\n if (window.matchMedia('(prefers-color-scheme: light)').matches) {\n // dark mode\n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', (event) => {\n const newColorScheme = event.matches ? THEME_ENUM.DARK : THEME_ENUM.LIGHT;\n setPrefersColorScheme(newColorScheme);\n });\n } else {\n window.matchMedia('(prefers-color-scheme: light)').addEventListener('change', (event) => {\n const newColorScheme = event.matches ? THEME_ENUM.LIGHT : THEME_ENUM.DARK;\n setPrefersColorScheme(newColorScheme);\n });\n }\n }\n }, []);\n\n return theme;\n}\n","import { SOCKET_URL } from '@/constants/api';\nimport SocketService from '@/entities/SocketService';\nimport { useCallback, useEffect, useState } from 'react';\n\nconst useSocket = (url: string = SOCKET_URL) => {\n const [isConnected, setIsConnected] = useState(false);\n const [socketInstance, setSocketInstance] = useState(null);\n\n useEffect(() => {\n if (!socketInstance) {\n const socketS = SocketService.getInstance();\n const socketInstance = socketS.connect();\n setSocketInstance(socketInstance);\n socketInstance.on('connect', () => {\n setIsConnected(true);\n });\n\n socketInstance.on('disconnect', () => {\n setIsConnected(false);\n });\n }\n\n return () => {\n if (socketInstance) {\n console.log('🚀 ~ return ~ socketInstance:', socketInstance);\n // socketInstance.disconnect();\n // socketInstance = null;\n }\n };\n }, [url]);\n\n const emitEvent = useCallback((eventName: string, ...args: unknown[]) => {\n if (socketInstance)\n socketInstance.emit(eventName, ...args, (err: Error, response: unknown) => {\n if (err) {\n // the other side did not acknowledge the event in the given delay\n console.error(err);\n } else {\n console.record('socket', `emitEvent callback`, response);\n }\n });\n }, []);\n\n return { socket: socketInstance, isConnected, emitEvent };\n};\n\nexport default useSocket;\n","export enum SUBSCRIBE_TYPE {\n MARKET = 'sub_market',\n VAULT = 'sub_vault',\n EVENT = 'sub_event',\n PAIR_INFO = 'sub_pair_info',\n}\n\nexport enum UNSUBSCRIBE_TYPE {\n MARKET = 'un_sub_market',\n VAULT = 'un_sub_vault',\n EVENT = 'un_sub_event',\n PAIR_INFO = 'un_sub_pair_info',\n}\n\nexport enum MESSAGE_TYPE {\n //default\n sdkConfigChanged = 'sdkConfigChanged',\n dappConfigChanged = 'dappConfigChanged',\n blockNumberChanged = 'blockNumberChanged',\n //MARKET\n marketListChanged = 'marketListChanged',\n vaultChanged = 'vaultChanged',\n marketFeaturePairsUpdated = 'marketFeaturePairsUpdated',\n //EVENT with chainId\n perpEvent = 'perpEvent',\n //pair info with chainId+address\n pairInfo = 'pairInfo',\n}\n\nexport interface ISocketBlockInfo {\n chainId: number;\n blockNum: number;\n blockTime: number;\n}\n\nexport type ISocketPerpEventResult = {\n chainId: number;\n event: ISocketPerpEvent[];\n};\n\nexport interface ISocketPerpEvent {\n chainId: number;\n txHash: string;\n txIndex: number;\n logIndex: number;\n contractAddress: string;\n contractType: 'instrument' | 'gate';\n eventName: string;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any\n eventArgs: any;\n blockNum?: number;\n}\n","import { ISocketBlockInfo } from '@/types/socket';\nimport { create } from 'zustand';\nimport { devtools } from 'zustand/middleware';\n\ninterface BlockInfoState {\n blockInfo: Record;\n setBlockInfo: (chainId: number, block: ISocketBlockInfo) => void;\n}\n\nexport const useBlockInfoStore = create()(\n devtools(\n (set) => ({\n blockInfo: {},\n setBlockInfo: (chainId, block) =>\n set((state) => ({\n blockInfo: {\n ...state.blockInfo,\n [chainId]: block,\n },\n })),\n }),\n {\n name: 'block-info-store',\n },\n ),\n);\n","import { useBlockInfo } from '@/features/socket/hooks';\nimport { useChainId, useDappChainConfig } from '@/hooks/web3/useChain';\nimport { formatDate } from '@/utils/timeUtils';\nimport { Skeleton } from 'antd';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\nexport default function BlockNumberText(): JSX.Element {\n const { t } = useTranslation();\n const config = useDappChainConfig();\n const chainId = useChainId();\n const blockStatus = useBlockInfo(chainId);\n\n return (\n
\n \n
\n {blockStatus ? (\n <>\n {t('common.blockFooter', {\n blockNumber: blockStatus.blockNum,\n timestamp: ` (${formatDate(blockStatus.blockTime * 1000, 'MMM-DD-YYYY LTS')})`,\n })}\n \n ) : (\n <>\n {t('common.blockFooter', {\n blockNumber: '',\n timestamp: '',\n })}\n {}\n \n )}\n
\n );\n}\n","import useSocket from '@/hooks/useSocket';\nimport { ISocketBlockInfo, MESSAGE_TYPE } from '@/types/socket';\nimport _ from 'lodash';\nimport { useEffect } from 'react';\nimport { useBlockInfoStore } from './store';\n\nexport function useBlockInfo(chainId: number | undefined): ISocketBlockInfo | undefined {\n const { blockInfo, setBlockInfo } = useBlockInfoStore();\n const { socket } = useSocket();\n useEffect(() => {\n if (!socket) return;\n\n socket.on(MESSAGE_TYPE.blockNumberChanged, (data: ISocketBlockInfo) => {\n // console.record('socket', MESSAGE_TYPE.blockNumberChanged, data);\n setBlockInfo(data.chainId, data);\n });\n\n return () => {\n socket.off(MESSAGE_TYPE.blockNumberChanged);\n };\n }, [socket, setBlockInfo]);\n\n return _.get(blockInfo, chainId || 0);\n}\n","import BlockNumberText from '..';\nimport './index.less';\nexport default function BlockNumberTextMobile(): JSX.Element {\n return (\n
\n \n
\n );\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconTopbarBack = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.1385 2.79015C16.5305 3.17915 16.533 3.81231 16.144 4.20435L8.40874 12L16.144 19.7956C16.533 20.1877 16.5305 20.8209 16.1385 21.2099C15.7464 21.5989 15.1133 21.5964 14.7243 21.2044L6.29015 12.7044C5.90328 12.3145 5.90328 11.6855 6.29015 11.2956L14.7243 2.79565C15.1133 2.40361 15.7464 2.40115 16.1385 2.79015Z\",\n fill: \"#A1A7B2\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconTopbarBack);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_topbar_back.e6fc89d2510210bfc1727fb351fb0206.svg\";","import { WrappedBigNumber } from '@/entities/WrappedBigNumber';\n\nexport const WRAPPED_ZERO = WrappedBigNumber.from(0);\n","/**\n * @description Component-SubPage\n */\nimport { useSize } from 'ahooks';\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { useTheme } from '@/features/global/hooks';\n\nimport { ReactComponent as IconTopbarBack } from './assets/icon_topbar_back.svg';\nimport './index.less';\ninterface IPropTypes {\n isShowSubPage: boolean;\n onClose: () => void;\n headerTitle?: React.ReactNode;\n headerInfo?: React.ReactNode;\n footer?: React.ReactNode;\n header?: React.ReactNode; // override header\n children?: React.ReactNode;\n isTrade?: boolean;\n destroyOnClose?: boolean;\n className?: string;\n noFooterPadding?: boolean;\n isOverflowAuto?: boolean;\n}\n\nconst SubPage: FC = function ({\n isShowSubPage,\n onClose,\n children,\n headerTitle,\n headerInfo,\n header,\n footer,\n isTrade,\n className,\n noFooterPadding,\n isOverflowAuto,\n}) {\n const [sideBarAnimate, setSideBarAnimate] = useState(false);\n const footerRef = useRef(null);\n const size = useSize(footerRef);\n const { dataTheme } = useTheme();\n useEffect(() => {\n setSideBarAnimate(isShowSubPage);\n }, [isShowSubPage]);\n const onCloseSubPage = useCallback(() => {\n setSideBarAnimate(false);\n setTimeout(() => {\n onClose();\n }, 1000);\n }, [onClose]);\n return (\n
\n
\n {header ? (\n header\n ) : (\n <>\n \n \n \n {headerTitle}\n
{headerInfo}
\n \n )}\n
\n \n {children}\n \n {footer && (\n
\n {footer}\n
\n )}\n
\n );\n};\n\nconst SubPageWrap: FC = function ({ isShowSubPage, destroyOnClose, ...props }) {\n if (!isShowSubPage && destroyOnClose) return null;\n return ;\n};\n\nexport default SubPageWrap;\n","import classNames from 'classnames';\nimport { CSSProperties, ReactNode } from 'react';\nimport './index.less';\ninterface IPropTypes {\n className?: string;\n onClick?: (key: string) => void;\n items: { key: string; label: ReactNode }[];\n activeKey?: string;\n varient?: 'default' | 'solid';\n wrapStyle?: CSSProperties | undefined;\n tabsStyle?: CSSProperties | undefined;\n}\nexport default function SynTitleTabs({\n varient = 'default',\n className,\n onClick,\n items,\n activeKey,\n wrapStyle,\n tabsStyle,\n}: IPropTypes) {\n return (\n <>\n {' '}\n
\n
\n {items.map((item, i) => (\n {\n onClick?.(item.key);\n }}\n className={classNames('syn-title-tabs-item', activeKey === item.key && 'active')}>\n {item.label}\n
\n ))}\n
\n
\n \n );\n}\n","export interface IChainLiquidityState {\n isOperating?: boolean;\n inputAmountStr: string;\n shareRatio: number;\n chainId: number;\n pairId?: string;\n}\n\nexport interface ILiquidityFilters {\n // TODO: use BigNumber to save number\n searchString?: string;\n filterMargins?: string;\n sorter?: LIQUIDITY_SORTER;\n chainId: number;\n searchStr?: string;\n}\n\nexport enum LIQUIDITY_DIRECTION {\n ADD = 'ADD',\n REMOVE = 'REMOVE',\n}\nexport enum LIQUIDITY_SORTER {\n APY = 'APY',\n VOLUME = 'VOLUME',\n TVL = 'TVL',\n}\n\nexport const getDefaultLiquiditySate = (chainId: number): IChainLiquidityState => ({\n isOperating: false,\n inputAmountStr: '',\n shareRatio: 0,\n chainId,\n});\n","import { LIQUIDITY_SORTER } from '@/types/liquidity';\n\nexport enum EARN_TYPE {\n ADD_LIQ = '0',\n REMOVE_LIQ = '1',\n DEPOSIT_NATIVE = '3',\n}\nexport enum EARN_ADD_LIQ_SIMULATION_TYPE {\n BASE = '0',\n CHAIN = '1',\n}\n\nexport const DEFAULT_ALPHA = 4;\nexport const DEFAULT_MIN_TICK_DELTA = 1000;\nexport const POOL_LIST_SCROLL_KEY = 'poolListScrollTop';\nexport const EARN_FILTER_ALL = 'all';\nexport const DEFUALT_SORTER = LIQUIDITY_SORTER.TVL;\nexport const IL_LOSS_BASE = 0.1;\nexport const IL_LOSS_VOLUME_THRESHOLD = 5000;\n","import { getMappedRevertReason } from '@/utils/error';\n\nexport const ERROR_MSG_AMOUNT_EXCEEDS_ALLOWANCE = {\n errorMsg: getMappedRevertReason('ERC20: transfer amount exceeds allowance'),\n errorData: 'ERC20: transfer amount exceeds allowance',\n};\nexport const ERROR_MSG_EXCEED_WALLET_BALANCE = {\n errorMsg: getMappedRevertReason('ERC20: transfer amount exceeds balance'),\n errorData: 'ERC20: transfer amount exceeds balance',\n};\nexport const ERROR_MSG_RANGE_OCCUPIED = {\n errorMsg: getMappedRevertReason('0x99f3c9b0'),\n errorData: '0x99f3c9b0',\n};\nexport const ERROR_MSG_ORDER_OCCUPIED = {\n errorMsg: getMappedRevertReason('OrderOccupied'),\n errorData: 'OrderOccupied',\n};\nexport const ERROR_MSG_INSUFFICIENT_MARGIN = 'insufficient margin to transfer out';\nexport const ERROR_MSG_LIMIT_PRICE_FAR_FROM_MARK = 'Limit order price is too far away from mark price';\nexport const ERROR_MSG_IMR = '0xde4607ee'; //'Insufficient margin to open position';\nexport const ERROR_MSG_MMR = '0x2f61ef0b'; // 'Insufficient margin for this trade';\nexport const ERROR_MSG_FAIR_FAR_FROM_MARK = 'fair price is too far away from mark price';\nexport const ERROR_MSG_SIZE_TO_TICK_IS_TRIVIAL = 'Size to tick is trivial';\n","import { Side, TickMath, wdiv } from '@synfutures/sdks-perp';\nimport { BigNumber } from 'ethers';\n\nimport { EVENT_NAMES } from '@/constants/event';\nimport { OPERATION_TX_TYPE, TX_TRANSFORM_TARGET } from '@/constants/tx';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { IEventSource, IParsedEventLog, IParsedTemplate } from '@/types/transaction';\n\nimport SentryService from '@/entities/SentryService';\nimport _ from 'lodash';\nimport { getAdjustTradePrice, getAdjustTradeSize } from './pairs';\nimport { fixBalanceNumberDecimalsTo18 } from './token';\n\nexport function parseTxEventLog({\n eventSource,\n instrument,\n}: {\n eventSource: IEventSource;\n instrument: {\n quoteSymbol: string;\n baseSymbol: string;\n isInverse: boolean;\n quoteDecimal?: number;\n baseDecimal?: number;\n };\n transformTarget?: TX_TRANSFORM_TARGET;\n}): IParsedEventLog {\n const args = eventSource.args;\n // const expiry = BigNumber.from(args?.expiry || 0);\n const result: IParsedEventLog = { eventSource: eventSource, descTemplate: '', templateArgs: {} };\n const baseSymbol = instrument.baseSymbol;\n const quoteSymbol = instrument.quoteSymbol;\n const isInverse = instrument.isInverse;\n try {\n if (eventSource.txType === OPERATION_TX_TYPE.SWAP) {\n if (eventSource.eventName === EVENT_NAMES.OrderHistory) {\n // fromToken: string;\n // toToken: string;\n // sender: string;\n // fromAmount: BigNumber;\n // returnAmount: BigNumber;\n const amount = WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(BigNumber.from(args?.fromAmount || 0), instrument.quoteDecimal || 18),\n );\n const toSize = WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(BigNumber.from(args?.returnAmount || 0), instrument.baseDecimal || 18),\n );\n result.descTemplate = 'notification.swap.successDesc';\n result.templateArgs = {\n fromSize: amount.abs().formatDisplayNumber(),\n fromSymbol: instrument.quoteSymbol,\n returnSymbol: instrument.baseSymbol,\n toSize: toSize.abs().formatDisplayNumber(),\n };\n }\n } else if (eventSource.txType === OPERATION_TX_TYPE.NATIVE_SWAP) {\n if (eventSource.eventName === EVENT_NAMES.Withdrawal || eventSource.eventName === EVENT_NAMES.Deposit) {\n const amount = WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(BigNumber.from(args?.wad), instrument.quoteDecimal || 18),\n );\n result.descTemplate = 'notification.swap.successDesc';\n result.templateArgs = {\n fromSize: amount.formatDisplayNumber(),\n toSize: amount.formatDisplayNumber(),\n fromSymbol: instrument.quoteSymbol,\n returnSymbol: instrument.baseSymbol,\n };\n }\n } else {\n if (eventSource.eventName === EVENT_NAMES.Deposit || eventSource.eventName === EVENT_NAMES.Withdraw) {\n const amount = WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(BigNumber.from(args?.quantity || args?.amount), instrument.quoteDecimal || 18),\n );\n result.descTemplate =\n eventSource.eventName === EVENT_NAMES.Deposit\n ? 'notification.deposit.successDesc'\n : 'notification.withdraw.successDesc';\n result.templateArgs = {\n quantity: amount.formatDisplayNumber(),\n quote: quoteSymbol,\n };\n }\n if (eventSource.eventName === EVENT_NAMES.Trade) {\n const takeSize = getAdjustTradeSize(BigNumber.from(args?.size), isInverse);\n const tradePriceB = wdiv(BigNumber.from(args?.entryNotional), BigNumber.from(args?.size).abs());\n const price = getAdjustTradePrice(WrappedBigNumber.from(tradePriceB), isInverse);\n\n const tradeType = takeSize.gt(0) ? 'common.bought' : 'common.sold';\n result.descTemplate = `notification.trade.successDesc`;\n result.templateArgs = {\n base: baseSymbol || '',\n size: takeSize.abs().formatDisplayNumber(),\n tradeType: tradeType,\n limitPrice: price.abs().formatDisplayNumber({ type: 'price' }),\n };\n }\n if (eventSource.eventName === EVENT_NAMES.Adjust) {\n const amount = WrappedBigNumber.from(BigNumber.from(args?.net));\n console.log('🚀 ~ file: notification.ts:56 ~ amount:', amount);\n const type = amount.gt(0) ? 'common.toppedUp' : 'common.reduced';\n result.descTemplate = 'notification.adjustMargin.successDesc';\n result.templateArgs = {\n type: type,\n amount: amount.abs().formatDisplayNumber(),\n quote: quoteSymbol,\n };\n }\n if (eventSource.eventName === EVENT_NAMES.Place) {\n const tickPrice = getAdjustTradePrice(TickMath.getWadAtTick(Number(args?.tick)), isInverse);\n const size = getAdjustTradeSize(BigNumber.from(args?.order?.size), isInverse);\n result.descTemplate = 'notification.placeOrder.successDesc';\n const tradeType = size.gt(0) ? 'common.buy' : 'common.sell';\n result.templateArgs = {\n tickPrice: tickPrice.formatDisplayNumber({ type: 'price' }),\n size: size.abs().formatDisplayNumber(),\n base: baseSymbol,\n tradeType: tradeType,\n };\n }\n if (eventSource.eventName === EVENT_NAMES.Cancel) {\n const tickPrice = getAdjustTradePrice(TickMath.getWadAtTick(Number(args?.tick)), isInverse);\n result.descTemplate = 'notification.cancelOrder.successDesc';\n result.templateArgs = {\n tickPrice: tickPrice.formatDisplayNumber({ type: 'price' }),\n };\n }\n if (eventSource.eventName === EVENT_NAMES.Fill) {\n // expiry: number;\n // trader: string;\n // tick: number;\n // nonce: number;\n // fee: BigNumber;\n // pic: PositionCacheStructOutput;\n // operator: string;\n // tip: BigNumber;\n console.log('notification event [Fill] args:', args);\n const tickPrice = getAdjustTradePrice(TickMath.getWadAtTick(Number(args?.tick)), isInverse);\n const size = getAdjustTradeSize(BigNumber.from(args?.pic?.size), isInverse);\n const tradeType = size.gt(0) ? 'common.bought' : 'common.sold';\n result.descTemplate = 'notification.fillOrder.successDesc';\n result.templateArgs = {\n tickPrice: tickPrice.formatDisplayNumber({ type: 'price' }),\n size: size.abs().formatDisplayNumber(),\n tradeType,\n base: baseSymbol,\n };\n }\n if (eventSource.eventName === EVENT_NAMES.Settle) {\n const balance = WrappedBigNumber.from(BigNumber.from(args?.balance));\n result.descTemplate = 'notification.settle.successDesc';\n result.templateArgs = {\n balance: balance.formatDisplayNumber(),\n quote: quoteSymbol,\n };\n }\n if (eventSource.eventName === EVENT_NAMES.Add) {\n const rangeBalance = WrappedBigNumber.from(BigNumber.from(args?.range?.balance));\n const upperPrice = getAdjustTradePrice(\n TickMath.getWadAtTick(Number(args?.tickUpper)),\n isInverse,\n ).formatDisplayNumber({ type: 'price' });\n const lowerPrice = getAdjustTradePrice(\n TickMath.getWadAtTick(Number(args?.tickLower)),\n isInverse,\n ).formatDisplayNumber({ type: 'price' });\n result.descTemplate = 'notification.addLiquidity.successDesc';\n result.templateArgs = {\n rangeBalance: rangeBalance.formatDisplayNumber(),\n quote: quoteSymbol,\n tickLowerPrice: isInverse ? upperPrice : lowerPrice,\n tickUpperPrice: isInverse ? lowerPrice : upperPrice,\n };\n }\n if (eventSource.eventName === EVENT_NAMES.Remove) {\n const picBalance = WrappedBigNumber.from(BigNumber.from(args?.pic?.balance));\n const upperPrice = getAdjustTradePrice(\n TickMath.getWadAtTick(Number(args?.tickUpper)),\n isInverse,\n ).formatDisplayNumber({ type: 'price' });\n const lowerPrice = getAdjustTradePrice(\n TickMath.getWadAtTick(Number(args?.tickLower)),\n isInverse,\n ).formatDisplayNumber({ type: 'price' });\n result.descTemplate = 'notification.removeLiquidity.successDesc';\n result.templateArgs = {\n picBalance: picBalance.formatDisplayNumber(),\n quote: quoteSymbol,\n tickLowerPrice: isInverse ? upperPrice : lowerPrice,\n tickUpperPrice: isInverse ? lowerPrice : upperPrice,\n };\n }\n // vault deposit\n if (eventSource.eventName === EVENT_NAMES.VaultDeposit) {\n // user: string;native: boolean;quantity: BigNumber;\n const amount = WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(\n BigNumber.from(args?.quantity || args?.amount || 0),\n instrument.quoteDecimal || 18,\n ),\n );\n result.descTemplate = 'notification.vaultDeposit.successDesc';\n result.templateArgs = {\n quantity: amount.abs().formatDisplayNumber(),\n quote: quoteSymbol,\n };\n }\n // vault withdraw\n if (eventSource.eventName === EVENT_NAMES.VaultWithdraw) {\n //// user: string;native: boolean;quantity: BigNumber;\n const amount = WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(\n BigNumber.from(args?.quantity || args?.amount || 0),\n instrument.quoteDecimal || 18,\n ),\n );\n result.descTemplate = 'notification.vaultWithdraw.successDesc';\n result.templateArgs = {\n quantity: amount.abs().formatDisplayNumber(),\n quote: quoteSymbol,\n };\n }\n\n // aggregator swap\n }\n } catch (error) {\n SentryService.captureException(error, {\n name: `function:parseTxEventLog`,\n instrument,\n eventSource: _.omit(eventSource, ['args']),\n args: JSON.stringify(args),\n });\n console.error(error);\n }\n return result;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const parseSendingTxMessageMapping: { [type in OPERATION_TX_TYPE]?: (...args: any) => IParsedTemplate } = {\n [OPERATION_TX_TYPE.SWAP]: (\n amount: WrappedBigNumber,\n buySymbol: string,\n sellSymbol: string,\n toSize: WrappedBigNumber,\n ): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n result.descTemplate = 'notification.swap.infoDesc';\n result.templateArgs = {\n fromSize: amount?.formatDisplayNumber() || '',\n fromSymbol: sellSymbol,\n returnSymbol: buySymbol,\n toSize: toSize?.formatDisplayNumber() || '',\n };\n return result;\n },\n [OPERATION_TX_TYPE.DEPOSIT]: (amount: WrappedBigNumber, quoteSymbol: string): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n result.descTemplate = 'notification.deposit.infoDesc';\n result.templateArgs = {\n quantity: amount?.formatDisplayNumber() || '',\n quote: quoteSymbol,\n };\n return result;\n },\n [OPERATION_TX_TYPE.WITHDRAW]: (amount: WrappedBigNumber, quoteSymbol: string): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n result.descTemplate = 'notification.withdraw.infoDesc';\n result.templateArgs = {\n quantity: amount?.formatDisplayNumber() || '',\n quote: quoteSymbol,\n };\n return result;\n },\n [OPERATION_TX_TYPE.TRADE]: (\n baseAmount: BigNumber,\n side: Side,\n tradePrice: WrappedBigNumber,\n baseSymbol: string,\n isInverse: boolean,\n ): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n const takeSize = getAdjustTradeSize(baseAmount, isInverse);\n // const tradePrice = getAdjustTradePrice(sqrtX96ToWad(BigNumber.from(args?.sqrtPX96)), isInverse);\n const tradeType = side === Side.LONG ? 'common.buying' : 'common.selling';\n result.descTemplate = `notification.trade.infoDesc`;\n result.templateArgs = {\n base: baseSymbol || '',\n size: takeSize.abs().formatDisplayNumber(),\n tradeType: tradeType,\n limitPrice: tradePrice.formatDisplayNumber({ type: 'price' }),\n };\n return result;\n },\n [OPERATION_TX_TYPE.ADJUST_MARGIN]: (amount: BigNumber, transferIn: boolean, quoteSymbol: string): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n const type = transferIn ? 'common.toppingUp' : 'common.reducing';\n result.descTemplate = 'notification.adjustMargin.infoDesc';\n result.templateArgs = {\n type: type,\n amount: WrappedBigNumber.from(amount).abs().formatDisplayNumber(),\n quote: quoteSymbol,\n };\n return result;\n },\n [OPERATION_TX_TYPE.PLACE_ORDER]: (\n baseSymbol: string,\n tickNumber: number,\n baseSize: BigNumber,\n isInverse: boolean,\n side: Side,\n ): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n const tickPrice = getAdjustTradePrice(TickMath.getWadAtTick(tickNumber), isInverse);\n const size = getAdjustTradeSize(baseSize, isInverse);\n const tradeType = side === Side.LONG ? 'common.buy' : 'common.sell';\n result.descTemplate = 'notification.placeOrder.infoDesc';\n result.templateArgs = {\n tickPrice: tickPrice.formatDisplayNumber({ type: 'price' }),\n size: size.abs().formatDisplayNumber(),\n base: baseSymbol,\n tradeType: tradeType,\n };\n return result;\n },\n [OPERATION_TX_TYPE.CANCEL_ORDER]: (tickNumber: number, isInverse: boolean): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n const tickPrice = getAdjustTradePrice(TickMath.getWadAtTick(tickNumber), isInverse);\n result.descTemplate = 'notification.cancelOrder.infoDesc';\n result.templateArgs = {\n tickPrice: tickPrice.formatDisplayNumber({ type: 'price' }),\n };\n return result;\n },\n [OPERATION_TX_TYPE.FILL_ORDER]: (tickNumber: number, isInverse: boolean): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n const tickPrice = getAdjustTradePrice(TickMath.getWadAtTick(tickNumber), isInverse);\n result.descTemplate = 'notification.fillOrder.infoDesc';\n result.templateArgs = {\n tickPrice: tickPrice.formatDisplayNumber({ type: 'price' }),\n };\n return result;\n },\n [OPERATION_TX_TYPE.SETTLE]: (): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n result.descTemplate = 'notification.settle.infoDesc';\n result.templateArgs = {};\n return result;\n },\n [OPERATION_TX_TYPE.ADD_LIQUIDITY]: (\n quoteSymbol: string,\n balance: string,\n upperPrice: WrappedBigNumber,\n lowerPrice: WrappedBigNumber,\n ): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n const rangeBalance = WrappedBigNumber.from(balance);\n const adjustUpperPrice = upperPrice.formatDisplayNumber({\n type: 'price',\n });\n const adjustLowerPrice = lowerPrice.formatDisplayNumber({\n type: 'price',\n });\n result.descTemplate = 'notification.addLiquidity.infoDesc';\n result.templateArgs = {\n rangeBalance: rangeBalance.formatDisplayNumber(),\n quote: quoteSymbol,\n tickLowerPrice: adjustLowerPrice,\n tickUpperPrice: adjustUpperPrice,\n };\n return result;\n },\n [OPERATION_TX_TYPE.REMOVE_LIQUIDITY]: (\n quoteSymbol: string,\n balance: BigNumber,\n upperPrice: WrappedBigNumber,\n lowerPrice: WrappedBigNumber,\n ): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n const picBalance = WrappedBigNumber.from(balance);\n const adjustUpperPrice = upperPrice.formatDisplayNumber({\n type: 'price',\n });\n const adjustLowerPrice = lowerPrice.formatDisplayNumber({\n type: 'price',\n });\n result.descTemplate = 'notification.removeLiquidity.infoDesc';\n result.templateArgs = {\n picBalance: picBalance.formatDisplayNumber(),\n quote: quoteSymbol,\n tickLowerPrice: adjustLowerPrice,\n tickUpperPrice: adjustUpperPrice,\n };\n return result;\n },\n [OPERATION_TX_TYPE.CLAIM_WITHDRAW]: (amount: WrappedBigNumber, quoteSymbol: string): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n result.descTemplate = 'notification.claimWithdraw.infoDesc';\n result.templateArgs = {\n quantity: amount?.formatDisplayNumber() || '',\n quote: quoteSymbol,\n };\n return result;\n },\n [OPERATION_TX_TYPE.CLAIM_OO_TOKEN]: (amount: WrappedBigNumber): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n result.descTemplate = 'notification.claimOOToken.infoDesc';\n result.templateArgs = {\n amount: amount.formatNormalNumberString(2),\n };\n return result;\n },\n [OPERATION_TX_TYPE.BATCH_PLACE_SCALED_ORDER]: (\n baseSymbol: string,\n upperPriceO: string,\n lowerPriceO: string,\n baseSize: BigNumber,\n isInverse: boolean,\n side: Side,\n orderCount: number,\n ): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n let upperPrice = WrappedBigNumber.from(upperPriceO);\n let lowerPrice = WrappedBigNumber.from(lowerPriceO);\n if (upperPrice.lt(lowerPrice)) {\n [upperPrice, lowerPrice] = [lowerPrice, upperPrice];\n }\n const size = WrappedBigNumber.from(baseSize);\n const tradeType = side === Side.LONG ? 'common.buy' : 'common.sell';\n result.descTemplate = 'notification.placeScaledOrder.infoDesc';\n result.templateArgs = {\n tickPrice: upperPrice.formatDisplayNumber({ type: 'price' }),\n size: size.abs().formatDisplayNumber(),\n base: baseSymbol,\n tradeType: tradeType,\n lowerPrice: lowerPrice.formatPriceString(),\n upperPrice: upperPrice.formatPriceString(),\n orderCount: orderCount.toString(),\n };\n return result;\n },\n [OPERATION_TX_TYPE.PLACE_CROSS_MARKET_ORDER]: (\n baseSymbol: string,\n tradePrice: WrappedBigNumber,\n baseSize: WrappedBigNumber,\n isInverse: boolean,\n side: Side,\n ): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n const tickPrice = tradePrice;\n const size = WrappedBigNumber.from(baseSize);\n const tradeType = side === Side.LONG ? 'common.buy' : 'common.sell';\n result.descTemplate = 'notification.placeCrossMarketOrder.infoDesc';\n result.templateArgs = {\n tickPrice: tickPrice.formatDisplayNumber({ type: 'price' }),\n size: size.abs().formatDisplayNumber(),\n base: baseSymbol,\n tradeType: tradeType,\n };\n return result;\n },\n [OPERATION_TX_TYPE.VAULT_DEPOSIT]: (amount: WrappedBigNumber, quoteSymbol: string): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n result.descTemplate = 'notification.vaultDeposit.infoDesc';\n result.templateArgs = {\n quantity: amount?.formatDisplayNumber() || '',\n quote: quoteSymbol,\n };\n return result;\n },\n [OPERATION_TX_TYPE.VAULT_WITHDRAW]: (amount: WrappedBigNumber, quoteSymbol: string): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n result.descTemplate = 'notification.vaultWithdraw.infoDesc';\n result.templateArgs = {\n quantity: amount?.formatDisplayNumber() || '',\n quote: quoteSymbol,\n };\n return result;\n },\n [OPERATION_TX_TYPE.VAULT_CLAIM]: (amount: WrappedBigNumber, quoteSymbol: string): IParsedTemplate => {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n result.descTemplate = 'notification.claimVaultWithdraw.infoDesc';\n result.templateArgs = {\n quantity: amount?.formatDisplayNumber() || '',\n quote: quoteSymbol,\n };\n return result;\n },\n};\n\nexport function mapObjectValue(\n obj: { [key: string]: string },\n objValueType: string,\n mappingFn: (val: string) => string,\n): { [key: string]: string } {\n const result: { [key: string]: string } = {};\n Object.keys(obj).forEach((key) => {\n const val = obj[key];\n if (typeof val === objValueType) {\n result[key] = mappingFn(val);\n }\n });\n return result;\n}\n","import { CHAIN_ID } from '@/constants/chain';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { TokenInfo } from '@/types/token';\n// import { CoingeckoMapping } from './coingecko';\nexport interface ITokenBalanceInfo extends TokenInfo, IBalanceInBlock {\n // coingeckoMapping?: CoingeckoMapping; // coingecko token symbol\n isLoading?: boolean;\n}\n\n/**\n * token balance map\n *\n * @export\n * @interface ITokenBalanceInfoMap\n */\nexport interface ITokenBalanceInfoMap {\n [tokenAddress: string]: ITokenBalanceInfo;\n}\n\nexport function getDefaultTokenBalanceInfo(chainId: CHAIN_ID): ITokenBalanceInfo {\n return {\n id: '',\n address: '',\n chainId,\n decimals: 0,\n symbol: '',\n balance: WrappedBigNumber.ZERO,\n block: 0,\n };\n}\n\nexport interface IBalanceInBlock {\n balance: WrappedBigNumber;\n block: number;\n}\n\nexport interface IGateAccountState {\n isOperating?: boolean | undefined;\n depositAmountStr: string;\n chainId: number;\n amountRatio: number;\n}\n\nexport const getDefaultITradeAccountState = (): Omit => ({\n isOperating: false,\n depositAmountStr: '',\n amountRatio: 0,\n});\n\nexport interface IGateBalanceInfo extends TokenInfo {\n balance: WrappedBigNumber;\n symbol: string;\n decimals: number;\n address: string;\n name?: string;\n}\n","export enum PORTFOLIO_TAB_ITEMS {\n POSITION = 'Position',\n ORDER = 'Order',\n HISTORY = 'History',\n ACCOUNT = 'Account',\n PORTFOLIO = 'Portfolio',\n LIQUIDITY = 'Liquidity',\n}\nexport const defaultPortfolioTabItem = {\n mobile: PORTFOLIO_TAB_ITEMS.POSITION,\n desktop: PORTFOLIO_TAB_ITEMS.PORTFOLIO,\n};\nexport const portfolioTabItemInfos: {\n [id in PORTFOLIO_TAB_ITEMS]: {\n mobileOrDesktop: 'all' | 'mobile' | 'desktop';\n };\n} = {\n [PORTFOLIO_TAB_ITEMS.LIQUIDITY]: {\n mobileOrDesktop: 'mobile',\n },\n [PORTFOLIO_TAB_ITEMS.POSITION]: {\n mobileOrDesktop: 'mobile',\n },\n [PORTFOLIO_TAB_ITEMS.ORDER]: {\n mobileOrDesktop: 'mobile',\n },\n [PORTFOLIO_TAB_ITEMS.HISTORY]: {\n mobileOrDesktop: 'desktop',\n },\n [PORTFOLIO_TAB_ITEMS.ACCOUNT]: {\n mobileOrDesktop: 'mobile',\n },\n [PORTFOLIO_TAB_ITEMS.PORTFOLIO]: {\n mobileOrDesktop: 'desktop',\n },\n};\nexport const EMERGENCY_CLOSE_TIME = 5;\n\nexport const USER_VOLUME_API_PREFIX = `/v3/public/perp/market/user/volume`;\nexport const QUOTE_HISTORY_PRICE_LIST_API = '/v3/coin/price-history';\n","import { BlockInfo, CHAIN_ID } from '@derivation-tech/context';\nimport { JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers';\nimport { createAction, createAsyncThunk } from '@reduxjs/toolkit';\nimport { Pending } from '@synfutures/sdks-perp';\nimport { BigNumber, ContractReceipt } from 'ethers';\n\nimport { GlobalModalType, OPERATION_TX_TYPE } from '@/constants';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { WrappedQuote } from '@/entities/WrappedQuote';\nimport { TokenInfo } from '@/types/token';\nimport { parseSendingTxMessageMapping } from '@/utils/notification';\n// import { toWad } from '@/utils/numberUtil';\nimport { fixBalanceNumberDecimalsTo18, isNativeTokenAddr } from '@/utils/token';\n\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { QUOTE_HISTORY_PRICE_LIST_API, USER_VOLUME_API_PREFIX } from '@/constants/portfolio';\nimport SentryService from '@/entities/SentryService';\nimport { IAssetsBalance } from '@/types/assets';\nimport { IFundFlowMap, ITotalVolume, TQuoteHistoryPrices } from '@/types/portfolio';\nimport { axiosGet } from '@/utils/axios';\nimport { Context } from '@derivation-tech/context';\nimport { captureException } from '@sentry/react';\nimport _ from 'lodash';\nimport { getAllAccountsFromChain, getPortfolioFromChain } from '../account/actions';\nimport { fetchGateBalanceAction, fetchTokenBalanceAction } from '../balance/actions';\nimport { setOpenModal } from '../global/actions';\nimport { sendTransaction } from '../transaction/actions';\nimport { checkTokenAllowance } from '../user/actions';\n\nexport const setPortfolioAssetSelect = createAction<{ assetSelected: IAssetsBalance | null }>(\n 'portfolio/setPortfolioAssetSelect',\n);\nexport const clickOpenSettledPairModal = createAsyncThunk(\n 'portfolio/clickOpenSettledPairModal',\n async (\n {\n portfolio,\n }: {\n chainId: CHAIN_ID;\n userAddr: string;\n portfolio: WrappedPortfolio;\n },\n { dispatch },\n ): Promise => {\n dispatch(setOpenModal({ type: GlobalModalType.SETTLE }));\n return portfolio;\n },\n);\n\nexport const settle = createAsyncThunk(\n 'portfolio/settle',\n async (\n {\n chainId,\n portfolio,\n userAddr,\n signer,\n sdkContext,\n provider,\n }: {\n chainId: CHAIN_ID;\n userAddr: string;\n portfolio: WrappedPortfolio;\n sdkContext: Context;\n signer: JsonRpcSigner;\n provider: JsonRpcProvider;\n },\n { dispatch },\n ): Promise => {\n try {\n const pair = portfolio.rootPair;\n const result = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record(\n 'tx',\n `Try to send [${OPERATION_TX_TYPE.SETTLE}] operation tx for pair [${pair.symbol}]`,\n undefined,\n {\n signer,\n expiry: pair.expiry,\n pair: pair,\n instrument: pair.rootInstrument,\n },\n );\n // return await provider.getTransaction(`0xf3fe7c3513f12b731de791b2adc1cc24841a26a512d354612370e818dd742aa7`);\n const populatedTx = await sdkContext.perp.instrument.settle(\n {\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n target: userAddr,\n },\n { from: userAddr },\n );\n return signer.sendTransaction(populatedTx);\n },\n\n chainId,\n userAddr,\n txParams: {\n type: OPERATION_TX_TYPE.SETTLE,\n instrument: {\n baseSymbol: pair.rootInstrument.baseToken.symbol,\n quoteSymbol: pair.rootInstrument.quoteToken.symbol,\n isInverse: pair.rootInstrument.isInverse,\n quoteDecimal: pair.rootInstrument.quoteToken.decimals,\n },\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (result?.status) {\n dispatch(\n getPortfolioFromChain({\n chainId,\n userAddr,\n blockNumber: result.blockNumber,\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n }),\n );\n dispatch(\n checkTokenAllowance({\n userAddress: userAddr,\n chainId,\n marginToken: pair.rootInstrument.quoteToken,\n sdk: sdkContext,\n }),\n );\n dispatch(\n fetchTokenBalanceAction({\n chainId,\n userAddr,\n token: pair.rootInstrument.quoteToken,\n block: result.blockNumber,\n }),\n );\n dispatch(\n fetchGateBalanceAction({\n chainId,\n userAddr,\n tokens: [pair.rootInstrument.quoteToken],\n block: result.blockNumber,\n }),\n );\n }\n\n return result;\n } catch (error) {\n SentryService.captureException(error, {\n name: 'portfolio/settle',\n chainId,\n userAddr,\n });\n console.log('🚀 ~ portfolio settle error:', error);\n throw error;\n }\n },\n);\n\nexport const setPortfolioDepositOrWithdrawOperateToken = createAction<{\n chainId: number;\n userAddr: string;\n tokenInfo: TokenInfo;\n}>('portfolio/setPortfolioDepositOrWithdrawOperateToken');\n\nexport const claimWithdraw = createAsyncThunk(\n 'portfolio/claimWithdraw',\n async (\n {\n chainId,\n userAddr,\n signer,\n sdkContext,\n provider,\n quote,\n amount,\n marginTokens,\n }: {\n chainId: CHAIN_ID;\n userAddr: string;\n sdkContext: Context;\n signer: JsonRpcSigner;\n provider: JsonRpcProvider;\n quote: WrappedQuote;\n amount: BigNumber;\n marginTokens: TokenInfo[] | undefined;\n },\n { dispatch },\n ): Promise => {\n try {\n const txType = OPERATION_TX_TYPE.CLAIM_WITHDRAW;\n const receipt = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record('tx', `Try to send [${txType}] operation tx for quote [${quote.symbol}]`, undefined, {\n chainId,\n userAddr,\n signer,\n quote,\n amount: amount,\n quoteSymbol: quote.symbol,\n to: userAddr,\n });\n const populatedTx = await sdkContext.perp.gate.claimPendingWithdraw(quote.address, userAddr, {\n from: userAddr,\n });\n return signer.sendTransaction(populatedTx);\n },\n chainId,\n userAddr,\n txParams: {\n isDisableNotification: true,\n type: txType,\n instrument: {\n quoteSymbol: quote.symbol,\n baseSymbol: '',\n isInverse: false,\n quoteDecimal: quote.decimals,\n },\n sendingTemplate: parseSendingTxMessageMapping[txType]!(WrappedBigNumber.from(amount), quote.symbol),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n console.log('🚀 ~ sdk release result:', receipt);\n if (receipt?.status === 1) {\n const block = receipt.blockNumber;\n dispatch(\n getAllAccountsFromChain({\n chainId,\n userAddr,\n blockNumber: block,\n sdkContext,\n instruments: [],\n needFetchInstruments: true,\n }),\n );\n dispatch(fetchTokenBalanceAction({ chainId, userAddr: userAddr, token: quote, block }));\n dispatch(\n fetchGateBalanceAction({\n chainId,\n userAddr,\n tokens: [quote],\n block: block,\n }),\n );\n dispatch(getUserPendings({ chainId, sdkContext, userAddr, blockNumber: block, marginTokens }));\n }\n return receipt;\n } catch (e) {\n console.error('portfolio/claimWithdraw error', e);\n throw e;\n }\n },\n);\n\nexport const getTokenPendingParams = createAsyncThunk(\n 'portfolio/getTokenPendingParams',\n async ({\n sdkContext,\n blockNumber,\n marginTokens,\n }: {\n chainId: CHAIN_ID;\n sdkContext: Context;\n blockNumber?: number;\n marginTokens: TokenInfo[] | undefined;\n }): Promise<\n { pendingDuration: number; tokenWithThresholds: (TokenInfo & { threshold: BigNumber })[] } | undefined\n > => {\n try {\n if (!marginTokens || !marginTokens.length) return;\n\n const pendingParams: { pendingDuration: BigNumber; thresholds: BigNumber[] } =\n await sdkContext.perp.gate.getPendingParams(\n marginTokens.map((token) => token.address),\n { blockTag: blockNumber },\n );\n\n const tokenWithThresholds = marginTokens.map((token, index) => {\n return { ...token, threshold: fixBalanceNumberDecimalsTo18(pendingParams.thresholds[index], token.decimals) };\n });\n\n return { pendingDuration: pendingParams.pendingDuration.toNumber(), tokenWithThresholds };\n } catch (error) {\n SentryService.captureException(error, {\n name: 'portfolio/getTokenPendingParams',\n marginTokens: marginTokens?.map((token) => token?.address),\n });\n console.log('🚀 ~ portfolio settle error:', error);\n throw error;\n }\n },\n);\n\nexport const getUserPendings = createAsyncThunk(\n 'portfolio/getUserPendings',\n async ({\n userAddr,\n sdkContext,\n blockNumber,\n marginTokens,\n }: {\n chainId: CHAIN_ID;\n userAddr: string;\n sdkContext: Context;\n blockNumber?: number;\n marginTokens: TokenInfo[] | undefined;\n }): Promise<\n | { tokenWithPendings: (TokenInfo & { maxWithdrawable: BigNumber; pending: Pending })[]; blockInfo: BlockInfo }\n | undefined\n > => {\n try {\n if (!marginTokens || !marginTokens.length) return;\n\n const pendingParams: { pendings: { maxWithdrawable: BigNumber; pending: Pending }[]; blockInfo: BlockInfo } =\n await sdkContext?.perp?.observer.getUserPendings(\n marginTokens.map((token) => token.address),\n userAddr,\n { blockTag: blockNumber },\n );\n\n const tokenWithPendings = marginTokens.map((token, index) => {\n return {\n ...token,\n maxWithdrawable: fixBalanceNumberDecimalsTo18(pendingParams.pendings[index].maxWithdrawable, token.decimals),\n pending: {\n ...pendingParams.pendings[index].pending,\n amount: fixBalanceNumberDecimalsTo18(pendingParams.pendings[index].pending.amount, token.decimals),\n // timestamp: 1708497009,\n // amount: toWad(1000),\n },\n };\n });\n\n return { tokenWithPendings, blockInfo: pendingParams.blockInfo };\n } catch (error) {\n SentryService.captureException(error, {\n name: 'portfolio/getUserPendings',\n userAddr,\n marginTokens: marginTokens?.map((token) => token?.address),\n });\n console.log('🚀 ~ portfolio settle error:', error);\n throw error;\n }\n },\n);\nexport const getFundFlows = createAsyncThunk(\n 'portfolio/getFundFlows',\n async ({\n chainId,\n userAddr,\n sdkContext,\n quoteTokens,\n blockNumber,\n }: {\n chainId: CHAIN_ID;\n userAddr: string;\n sdkContext: Context;\n quoteTokens: TokenInfo[];\n blockNumber?: number;\n }): Promise => {\n try {\n const addresses = quoteTokens.map((q) => {\n const dappConfig = DAPP_CHAIN_CONFIGS[chainId];\n // get fund flows with weth\n const tokenCheck = isNativeTokenAddr(q.address) ? dappConfig.wrappedNativeToken : q;\n return tokenCheck?.address || q.address;\n });\n const flows = await sdkContext?.perp?.observer.getFundFlows(addresses, userAddr, { blockTag: blockNumber });\n if (flows) {\n const results = flows.fundFlows.map((f, i) => ({\n token: quoteTokens[i],\n totalIn: WrappedBigNumber.from(fixBalanceNumberDecimalsTo18(f.totalIn, quoteTokens[i].decimals)),\n totalOut: WrappedBigNumber.from(fixBalanceNumberDecimalsTo18(f.totalOut, quoteTokens[i].decimals)),\n }));\n return _.keyBy(results, 'token.address');\n }\n return undefined;\n } catch (error) {\n captureException(error);\n console.log('🚀 ~ total withdraw error:', error);\n throw error;\n }\n },\n);\nexport const getTotalVolume = createAsyncThunk(\n 'portfolio/getTotalVolume',\n async ({ userAddr, chainId }: { chainId: CHAIN_ID; userAddr: string }): Promise => {\n try {\n const result = await axiosGet({\n url: USER_VOLUME_API_PREFIX,\n config: {\n params: { userAddress: userAddr, chainId },\n },\n });\n return result.data.data;\n } catch (error) {\n SentryService.captureException(error, {\n name: 'portfolio/getTotalVolume',\n userAddr,\n chainId,\n });\n console.log('🚀 ~ total volume error:', error);\n return undefined;\n }\n },\n);\n\nexport const getQuoteHistoryPrices = createAsyncThunk(\n 'portfolio/getQuoteHistoryPrices',\n async (): Promise => {\n try {\n const result = await axiosGet({\n url: QUOTE_HISTORY_PRICE_LIST_API,\n });\n console.log('getQuoteHistoryPrices', result);\n return result.data;\n } catch (error) {\n SentryService.captureException(error, {\n name: 'portfolio/getQuoteHistoryPrices',\n });\n console.log('🚀 ~ getQuoteHistoryPrices error:', error);\n return undefined;\n }\n },\n);\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers';\nimport { createAction, createAsyncThunk } from '@reduxjs/toolkit';\nimport { NATIVE_TOKEN_ADDRESS } from '@synfutures/sdks-perp';\nimport { BigNumber } from 'ethers';\nimport _ from 'lodash';\n\nimport { BALANCE_TYPE, OPERATION_TX_TYPE, ZERO } from '@/constants';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport {\n IGateAccountState,\n ITokenBalanceInfo,\n ITokenBalanceInfoMap,\n getDefaultTokenBalanceInfo,\n} from '@/types/balance';\nimport { TokenInfo, TokenInfoMap } from '@/types/token';\nimport { BlockyResult, WorkerBalanceEventResult, WorkerEventNames, WorkerGateBalanceResult } from '@/types/worker';\nimport { parseSendingTxMessageMapping } from '@/utils/notification';\nimport { toWad } from '@/utils/numberUtil';\nimport { getERC2O, getSignerFromProvider } from '@/utils/signer';\nimport { fixBalanceNumberDecimalsTo18, isNativeTokenAddr } from '@/utils/token';\n\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { QUERY_KEYS } from '@/constants/query';\nimport { queryClient } from '@/pages/App';\nimport { Context } from '@derivation-tech/context';\nimport { getUserPendings } from '../portfolio/actions';\nimport { AppState } from '../store';\nimport { sendTransaction } from '../transaction/actions';\nimport { checkTokenAllowance } from '../user/actions';\n\n// import { setTradingRelatedPairsAndMap } from '@/state/pairs/actions';\n\nexport const resetChainDefaultBalanceMapAction = createAsyncThunk(\n 'balance/resetChainDefaultBalanceMap',\n async (\n {\n chainId,\n traderAddress,\n quoteTokenInfoMap,\n }: {\n chainId: CHAIN_ID;\n traderAddress: string;\n quoteTokenInfoMap: TokenInfoMap;\n },\n { getState },\n ): Promise<{ balanceList: ITokenBalanceInfoMap }> => {\n const {\n balance: { chainBalanceMap },\n } = getState() as AppState;\n let balanceList: ITokenBalanceInfoMap = {};\n balanceList = _.reduce(\n quoteTokenInfoMap,\n (result, curr, key) => {\n result[key] = {\n ...getDefaultTokenBalanceInfo(chainId),\n ...curr,\n isLoading: true,\n };\n return result;\n },\n balanceList,\n );\n\n const balanceMapInState = _.get(chainBalanceMap, [chainId, traderAddress]);\n if (balanceMapInState) {\n balanceList = _.merge({}, balanceList, balanceMapInState);\n }\n\n // dispatch(\n // fetchAllTokenBalance({\n // chainId,\n // traderAddress,\n // currentWeb3,\n // chainNativeToken,\n // }),\n // );\n return { balanceList };\n },\n);\n\nexport const fetchTokenBalanceAction = createAsyncThunk(\n 'balance/fetchTokenBalance',\n async (\n {\n chainId,\n userAddr,\n token: token,\n block,\n }: {\n chainId: CHAIN_ID;\n userAddr: string;\n token: TokenInfo;\n block?: number;\n },\n { getState },\n ): Promise<\n | {\n block: number;\n balance: WrappedBigNumber;\n }\n | undefined\n > => {\n if (!token || token.chainId !== chainId || !token.address) {\n return;\n }\n\n const {\n balance: { chainBalanceMap },\n web3: { chainAppProvider },\n } = getState() as AppState;\n\n const signer = getSignerFromProvider(chainAppProvider[chainId], userAddr);\n\n const chainConfig = DAPP_CHAIN_CONFIGS[chainId];\n if (!chainConfig) {\n return;\n }\n\n const blockNumber = block || 0;\n\n const chainNativeToken = chainConfig.nativeToken;\n let walletBalance: BigNumber = ZERO;\n\n if (token.address === chainNativeToken?.address) {\n const balanceInState = _.get(chainBalanceMap, [chainId, userAddr, token.address]);\n\n walletBalance = await signer.getBalance(blockNumber || undefined);\n if (balanceInState.balance.eq(WrappedBigNumber.from(walletBalance))) {\n throw 'no change';\n }\n } else {\n // [walletBalance, err] = await currentWeb3.account.getMarginTokenBalance(balanceInfo.address, traderAddress);\n const erc20 = await getERC2O(token.address, signer);\n walletBalance = await erc20.balanceOf(userAddr);\n }\n\n if (walletBalance) {\n walletBalance = fixBalanceNumberDecimalsTo18(walletBalance, token.decimals);\n return {\n block: blockNumber,\n balance: WrappedBigNumber.from(walletBalance),\n };\n }\n return undefined;\n },\n);\n\nexport const fetchAllTokenBalanceAction = createAsyncThunk(\n 'balance/fetchAllTokenBalance',\n async ({\n chainId,\n userAddr,\n marginTokenMap,\n }: {\n chainId: CHAIN_ID;\n userAddr: string;\n marginTokenMap: TokenInfoMap;\n }): Promise<\n | {\n token: ITokenBalanceInfo;\n balance: WrappedBigNumber;\n block: number;\n }[]\n | undefined\n > => {\n const tokens = Object.values(marginTokenMap);\n const chainConfig = DAPP_CHAIN_CONFIGS[chainId];\n const nativeToken = chainConfig?.nativeToken;\n if (nativeToken && tokens.findIndex((token) => token.address === nativeToken.address) === -1) {\n tokens.push(nativeToken);\n }\n\n window.userWorker.postMessage({\n eventName: WorkerEventNames.MulticallBalance,\n data: {\n chainId,\n userAddr,\n tokens,\n },\n });\n return;\n\n // const userWorker = await UserWorker.getInstance(chainId);\n // const result = await retryWhenTimeout(userWorker.multicallBalance({ chainId, userAddr, tokens }));\n\n // if (result) {\n // const balances = result.data;\n // const callResult = balances.map((balanceInfo) => {\n // return {\n // token: balanceInfo.token as unknown as ITokenBalanceInfo,\n // balance: WrappedBigNumber.from(\n // fixBalanceNumberDecimalsTo18(BigNumber.from(balanceInfo.balance), balanceInfo.token.decimals),\n // ),\n // block: result.block,\n // };\n // });\n // return callResult;\n // }\n },\n);\n\nexport const changeTokenBalanceAction = createAsyncThunk(\n 'balance/changeTokenBalanceAction',\n async ({\n token: token,\n block,\n balanceInfo,\n }: WorkerBalanceEventResult): Promise<\n | {\n block: number;\n balance: WrappedBigNumber;\n }\n | undefined\n > => {\n if (!token || !token.address) {\n return;\n }\n\n let walletBalance: BigNumber = BigNumber.from(balanceInfo.balance) || ZERO;\n\n if (walletBalance) {\n walletBalance = fixBalanceNumberDecimalsTo18(walletBalance, token.decimals);\n return {\n block: block,\n balance: WrappedBigNumber.from(walletBalance),\n };\n }\n return undefined;\n },\n);\n\nexport const fetchGateBalanceAction = createAsyncThunk(\n 'balance/fetchGateBalanceAction',\n async ({\n chainId,\n userAddr,\n }: {\n chainId: CHAIN_ID;\n userAddr: string;\n tokens: TokenInfo[];\n block?: number;\n }): Promise<\n | BlockyResult<\n {\n token: TokenInfo;\n balance: BigNumber;\n block: number;\n }[]\n >\n | undefined\n > => {\n try {\n // only call worker when in browser\n // window.synWorker.postMessage({\n // eventName: WorkerEventNames.FetchGateBalance,\n // data: {\n // chainId,\n // userAddr,\n // tokens,\n // blockNumber: block,\n // },\n // });\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.BALANCE.GATE(chainId, userAddr),\n });\n return undefined;\n } catch (e) {\n console.log('🚀 ~ file: actions.ts:284 ~ e:', e);\n return undefined;\n }\n },\n);\n\nexport const changeTokenGateBalanceAction = createAsyncThunk(\n 'balance/changeTokenGateBalanceAction',\n async ({\n token: token,\n block,\n gateBalance,\n }: WorkerGateBalanceResult): Promise<\n | {\n block: number;\n balance: WrappedBigNumber;\n }\n | undefined\n > => {\n if (!token || !token.address) {\n return;\n }\n\n let balance: BigNumber = BigNumber.from(gateBalance) || ZERO;\n if (balance) {\n balance = fixBalanceNumberDecimalsTo18(balance, token.decimals);\n return {\n block: block,\n balance: WrappedBigNumber.from(balance),\n };\n }\n return undefined;\n },\n);\n\nexport const depositOrWithdrawBalance = createAsyncThunk(\n 'balance/depositOrWithdrawBalance',\n async (\n {\n signer,\n provider,\n quote,\n amount,\n chainId,\n account: userAddr,\n sdkContext,\n balanceType,\n isDisableNotification,\n marginTokens,\n }: {\n signer: JsonRpcSigner;\n provider?: JsonRpcProvider;\n quote: TokenInfo;\n account: string;\n amount: string | number | BigNumber;\n chainId: CHAIN_ID;\n sdkContext: Context;\n balanceType: BALANCE_TYPE;\n isDisableNotification?: boolean;\n marginTokens: TokenInfo[] | undefined;\n },\n { dispatch },\n ) => {\n try {\n const chainConfig = DAPP_CHAIN_CONFIGS[chainId];\n const txType = balanceType === BALANCE_TYPE.DEPOSIT ? OPERATION_TX_TYPE.DEPOSIT : OPERATION_TX_TYPE.WITHDRAW;\n const isNativeToken = isNativeTokenAddr(quote.address);\n const receipt = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record('tx', `Try to send [${txType}] operation tx for quote [${quote.symbol}]`, undefined, {\n chainId,\n userAddr,\n signer,\n quote,\n amount: toWad(amount),\n quoteSymbol: quote.symbol,\n to: userAddr,\n balanceType,\n isNative: isNativeToken,\n nativeTokenAddr: NATIVE_TOKEN_ADDRESS,\n });\n console.log(`Try to send [${txType}] operation tx for quote [${quote.symbol}]`, {\n balanceType,\n userAddr,\n chainId,\n quote,\n quoteAddr: isNativeToken ? NATIVE_TOKEN_ADDRESS : quote.address,\n amount: toWad(amount),\n });\n\n const populatedTx = await (balanceType === BALANCE_TYPE.DEPOSIT\n ? sdkContext.perp.gate.depositWad(isNativeToken ? NATIVE_TOKEN_ADDRESS : quote.address, toWad(amount), {\n from: userAddr,\n })\n : sdkContext.perp.gate.withdrawWad(isNativeToken ? NATIVE_TOKEN_ADDRESS : quote.address, toWad(amount), {\n from: userAddr,\n }));\n\n return signer.sendTransaction(populatedTx);\n },\n chainId,\n userAddr,\n txParams: {\n isDisableNotification,\n type: txType,\n instrument: {\n quoteSymbol: quote.symbol,\n baseSymbol: '',\n isInverse: false,\n quoteDecimal: quote.decimals,\n },\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n sendingTemplate: parseSendingTxMessageMapping[txType]!(WrappedBigNumber.from(amount), quote.symbol),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (receipt?.status === 1) {\n const block = receipt.blockNumber;\n if (balanceType === BALANCE_TYPE.DEPOSIT) {\n dispatch(\n checkTokenAllowance({\n userAddress: userAddr,\n chainId,\n marginToken: quote,\n sdk: sdkContext,\n }),\n );\n }\n\n dispatch(fetchTokenBalanceAction({ chainId, userAddr: userAddr, token: quote, block }));\n chainConfig.wrappedNativeToken &&\n dispatch(\n fetchGateBalanceAction({\n chainId,\n userAddr,\n tokens: isNativeToken ? [chainConfig.wrappedNativeToken] : [quote],\n block: block,\n }),\n );\n dispatch(\n getUserPendings({\n chainId,\n userAddr,\n blockNumber: block,\n sdkContext,\n marginTokens,\n }),\n );\n }\n return receipt;\n } catch (e) {\n console.error('balance depositOrWithdrawBalance error', e);\n throw e;\n }\n },\n);\n\nexport const setGateAccountState = createAction & { chainId: number }>(\n 'balance/setGateAccountState',\n);\n","export interface ITokenPrice {\n high24h: number;\n low24h: number;\n current: number;\n priceChangePercentage24h: number;\n chainId: number;\n address: string;\n symbol: string;\n lastUpdated: number;\n decimals: number;\n}\n\nexport type ITokenPriceMap = {\n [tokenAddress in string]: ITokenPrice;\n};\nexport enum PollingHistoryId {\n trade = 'trade',\n order = 'order',\n liquidity = 'liquidity',\n transfer = 'transfer',\n}\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers';\nimport { createAction, createAsyncThunk } from '@reduxjs/toolkit';\nimport { TickMath } from '@synfutures/sdks-perp';\nimport { BigNumber, ContractReceipt } from 'ethers';\nimport { parseEther } from 'ethers/lib/utils';\nimport _ from 'lodash';\n\nimport { OPERATION_TX_TYPE } from '@/constants';\nimport { DEFAULT_ALPHA, EARN_TYPE } from '@/constants/earn';\nimport { EVENT_NAMES } from '@/constants/event';\nimport { TABLE_TYPES } from '@/constants/global';\nimport { ERROR_MSG_EXCEED_WALLET_BALANCE, ERROR_MSG_RANGE_OCCUPIED } from '@/constants/simulation';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { WrappedRange } from '@/entities/WrappedRange';\nimport {\n IAddLiquidityFormState,\n IAddLiquiditySimulation,\n IRemoveLiquiditySimulation,\n IRemoveLiquiditySimulationData,\n} from '@/types/earn';\nimport { ILiquidityFilters } from '@/types/liquidity';\nimport { CreativePair } from '@/types/pair';\nimport { parsedEthersError } from '@/utils/error';\nimport { parseSendingTxMessageMapping } from '@/utils/notification';\nimport { addedDeadline } from '@/utils/trade';\nimport { getEventLogs } from '@/utils/tx';\n\nimport { QUERY_KEYS } from '@/constants/query';\nimport SentryService from '@/entities/SentryService';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { queryClient } from '@/pages/App';\nimport { IMetaRange } from '@/types/account';\nimport { IGateBalanceInfo } from '@/types/balance';\nimport { TokenInfo } from '@/types/token';\nimport { toWad } from '@/utils/numberUtil';\nimport { calcMarginToDeposit } from '@/utils/position';\nimport { Context } from '@derivation-tech/context';\nimport { utils } from '@synfutures/sdks-perp';\nimport { getPortfolioFromChain } from '../account/actions';\nimport { fetchGateBalanceAction, fetchTokenBalanceAction } from '../balance/actions';\nimport { useGlobalStore } from '../global/stores';\nimport { PollingHistoryId } from '../global/type';\nimport { AppState } from '../store';\nimport { sendTransaction } from '../transaction/actions';\nimport { checkTokenAllowance } from '../user/actions';\n\nexport const resetLiquidityFormByChainId = createAction<{ chainId: number }>('earn/resetLiquidityFormByChainId');\nexport const setEarnFormType = createAction<{ chainId: number; formType: EARN_TYPE }>('earn/setEarnFormType');\nexport const setAddLiqFormState = createAction('earn/setAddLiqFormState');\nexport const setEarnPortfolioTab = createAction('earn/setEarnPortfolioTab');\nexport const setIsAddLiquidityInputRisky = createAction('earn/setIsAddLiquidityInputRisky');\nexport const setCurrentRange = createAction<{\n chainId: number;\n rangeId: string;\n}>('earn/setCurrentRange');\nexport const setPoolFilters = createAction('earn/setLiquidityFilters');\n\nexport const addLiquiditySimulate = createAsyncThunk(\n 'earn/addLiquiditySimulate',\n async (\n {\n chainId,\n sdkContext,\n pair,\n margin,\n slippage,\n alpha,\n userAddr,\n }: // customStableInstruments,\n {\n chainId: number;\n pair: WrappedPair | CreativePair;\n sdkContext: Context | undefined;\n margin?: WrappedBigNumber;\n alpha?: BigNumber;\n slippage: number;\n userAddr?: string;\n customStableInstruments: string[] | undefined;\n },\n { getState },\n ): Promise => {\n try {\n if (sdkContext && pair && margin) {\n // expiry: number;\n // instrument: Instrument | InstrumentIdentifier;\n // alphaWad: BigNumber;\n // margin: BigNumber;\n // slippage: number;\n // currentSqrtPX96?: BigNumber;\n const isLivePair = pair instanceof WrappedPair;\n console.record('syn', `addLiquiditySimulate params:`, {\n instrument: isLivePair\n ? pair.rootInstrument\n : {\n marketType: pair.rootInstrument.marketType,\n baseSymbol: utils.isCexMarket(pair.rootInstrument.marketType)\n ? pair.rootInstrument.baseToken.symbol\n : pair.rootInstrument.baseToken,\n quoteSymbol: pair.rootInstrument.quoteToken,\n },\n expiry: pair.expiry,\n alphaWad: alpha,\n margin: margin.wadValue,\n slippage,\n });\n\n const simulation = await sdkContext.perp.simulate.simulateAddLiquidity({\n instrument: isLivePair\n ? pair.rootInstrument\n : {\n marketType: pair.rootInstrument.marketType,\n baseSymbol: utils.isCexMarket(pair.rootInstrument.marketType)\n ? pair.rootInstrument.baseToken.symbol\n : pair.rootInstrument.baseToken,\n quoteSymbol: pair.rootInstrument.quoteToken,\n },\n expiry: pair.expiry,\n alphaWad: alpha || toWad(DEFAULT_ALPHA),\n margin: margin.wadValue,\n slippage,\n });\n const {\n account: { chainMetaRange },\n } = getState() as AppState;\n const rangeList: IMetaRange[] = _.values(\n _.pickBy(\n _.get(chainMetaRange, [chainId || '', userAddr || '', 'list']),\n (metaOrder) => metaOrder.pairId === pair.id,\n ),\n );\n if (rangeList?.length && simulation) {\n const upperTick = TickMath.getTickAtPWad(simulation.upperPrice);\n const lowerTick = TickMath.getTickAtPWad(simulation.lowerPrice);\n const placedRange = rangeList.find((range) => {\n range.tickUpper === upperTick && range.tickLower === lowerTick;\n });\n\n if (placedRange) {\n return {\n chainId,\n message: ERROR_MSG_RANGE_OCCUPIED.errorMsg,\n errorData: ERROR_MSG_RANGE_OCCUPIED.errorData,\n };\n }\n }\n\n // const lowerLiqPrice = calcPositionLiquidationPrice(\n // pair,\n // simulation.lowerPosition,\n // isLivePair ? pair.rootInstrument.maintenanceMarginRatio : undefined,\n // );\n\n const gateBalanceList = queryClient.getQueryData(\n QUERY_KEYS.BALANCE.GATE(chainId, userAddr),\n );\n const gateBalanceInfo = (gateBalanceList || [])?.find(\n (balance) => balance.address === pair.rootInstrument.quoteToken.address,\n );\n\n const marginToDeposit = calcMarginToDeposit(margin, gateBalanceInfo?.balance || 0);\n\n const lowerLiqPrice = isLivePair\n ? WrappedBigNumber.from(\n utils.positionLiquidationPrice(\n simulation.lowerPosition,\n pair,\n pair.rootInstrument.maintenanceMarginRatio,\n ),\n )\n : WrappedBigNumber.from(utils.positionLiquidationPrice(simulation.lowerPosition));\n\n const upperLiqPrice = isLivePair\n ? WrappedBigNumber.from(\n utils.positionLiquidationPrice(\n simulation.upperPosition,\n pair,\n pair.rootInstrument.maintenanceMarginRatio,\n ),\n )\n : WrappedBigNumber.from(utils.positionLiquidationPrice(simulation.upperPosition));\n\n const simulateResult: IAddLiquiditySimulation = {\n chainId,\n data: {\n ...simulation,\n // upperPrice: WrappedBigNumber.from(simulation.upperPrice),\n // lowerPrice: WrappedBigNumber.from(simulation.lowerPrice),\n // lowerLeverage: WrappedBigNumber.from(simulation.lowerLeverage),\n // upperLeverage: WrappedBigNumber.from(simulation.upperLeverage),\n // sqrtStrikeLowerPX96: WrappedBigNumber.from(simulation.sqrtStrikeLowerPX96),\n // sqrtStrikeUpperPX96: WrappedBigNumber.from(simulation.sqrtStrikeUpperPX96),\n // minMargin: WrappedBigNumber.from(simulation.minMargin),\n margin: margin,\n marginToDeposit: marginToDeposit,\n lowerLiqPrice: lowerLiqPrice,\n upperLiqPrice: upperLiqPrice,\n equivalentAlphaLower: WrappedBigNumber.from(simulation.equivalentAlpha).toNumber(),\n equivalentAlphaUpper: WrappedBigNumber.from(simulation.equivalentAlpha).toNumber(),\n tickDeltaLower: simulation.tickDelta,\n tickDeltaUpper: simulation.tickDelta,\n // liquidity: WrappedBigNumber.from(simulation.liquidity),\n // minEffectiveQuoteAmount: WrappedBigNumber.from(simulation.minEffectiveQuoteAmount),\n },\n };\n if (pair.rootInstrument.isInverse && simulateResult?.data) {\n // simulateResult.data.upperPrice = toReciprocalNumber(simulation.lowerPrice);\n // simulateResult.data.lowerPrice = toReciprocalNumber(simulation.upperPrice);\n // simulateResult.data.lowerLiqPrice = toReciprocalNumber(upperLiqPrice);\n // simulateResult.data.upperLiqPrice = toReciprocalNumber(lowerLiqPrice);\n // const upperPosition = simulation.lowerPosition;\n // simulateResult.data.lowerPosition = simulation.upperPosition;\n // simulateResult.data.upperPosition = upperPosition;\n // const upperLeverage = simulateResult.data.lowerLeverage;\n // simulateResult.data.lowerLeverage = simulateResult.data.upperLeverage;\n // simulateResult.data.upperLeverage = upperLeverage;\n }\n\n // check if the margin is not enough\n if (userAddr && simulateResult.data?.marginToDeposit?.gt(0)) {\n const {\n balance: { chainBalanceMap },\n } = getState() as AppState;\n const rootInstrument = pair.rootInstrument;\n const balance = _.get(chainBalanceMap, [chainId, userAddr, rootInstrument.quoteToken.address]);\n if (balance) {\n if (simulateResult.data.marginToDeposit.gt(balance.balance)) {\n simulateResult.message = ERROR_MSG_EXCEED_WALLET_BALANCE.errorMsg;\n simulateResult.errorData = ERROR_MSG_EXCEED_WALLET_BALANCE.errorData;\n }\n }\n }\n\n // dispatch(\n // simulatePointsByAddLiquidity({\n // userAddr,\n // chainId,\n // quote: pair.rootInstrument.quoteToken,\n // pair,\n // alphaWad: simulation.equivalentAlpha,\n // liquidity: WrappedBigNumber.from(simulateResult.data?.liquidity || 0),\n // margin,\n // sdk: sdkContext,\n // customStableInstruments,\n // }),\n // );\n\n return simulateResult;\n }\n return { chainId };\n } catch (error) {\n SentryService.captureException(\n error,\n {\n name: 'earn/addLiquiditySimulate',\n chainId,\n pair: pair?.symbol,\n margin: margin?.stringValue,\n slippage,\n alpha: alpha?._hex,\n userAddr,\n },\n 'info',\n );\n console.log('addLiquiditySimulate error', error);\n const parsedError = parsedEthersError(error);\n const errorMsg = parsedError?.errorMsg || _.get(error, ['message']);\n return { chainId, message: errorMsg };\n }\n },\n);\nexport const addLiquidityAsymmetricSimulate = createAsyncThunk(\n 'earn/addLiquidityAsymmetricSimulate',\n async (\n {\n chainId,\n sdkContext,\n pair,\n margin,\n slippage,\n alphaWadLower,\n alphaWadUpper,\n userAddr,\n }: // customStableInstruments,\n {\n chainId: number;\n pair: WrappedPair | CreativePair;\n sdkContext: Context | undefined;\n margin?: WrappedBigNumber;\n alphaWadLower: BigNumber;\n alphaWadUpper: BigNumber;\n slippage: number;\n userAddr?: string;\n customStableInstruments: string[] | undefined;\n },\n { getState },\n ): Promise => {\n try {\n if (sdkContext && pair && margin) {\n const isLivePair = pair instanceof WrappedPair;\n const simulation = await sdkContext.perp.simulate.simulateAddLiquidityWithAsymmetricRange({\n instrument: isLivePair\n ? pair.rootInstrument\n : {\n marketType: pair.rootInstrument.marketType,\n baseSymbol: utils.isCexMarket(pair.rootInstrument.marketType)\n ? pair.rootInstrument.baseToken.symbol\n : pair.rootInstrument.baseToken,\n quoteSymbol: pair.rootInstrument.quoteToken,\n },\n expiry: pair.expiry,\n alphaWadLower,\n alphaWadUpper,\n margin: margin.wadValue,\n slippage,\n });\n const {\n account: { chainMetaRange },\n } = getState() as AppState;\n const rangeList: IMetaRange[] = _.values(\n _.pickBy(\n _.get(chainMetaRange, [chainId || '', userAddr || '', 'list']),\n (metaOrder) => metaOrder.pairId === pair.id,\n ),\n );\n if (rangeList?.length && simulation) {\n const upperTick = TickMath.getTickAtPWad(simulation.upperPrice);\n const lowerTick = TickMath.getTickAtPWad(simulation.lowerPrice);\n const placedRange = rangeList.find((range) => {\n range.tickUpper === upperTick && range.tickLower === lowerTick;\n });\n\n if (placedRange) {\n return {\n chainId,\n message: ERROR_MSG_RANGE_OCCUPIED.errorMsg,\n errorData: ERROR_MSG_RANGE_OCCUPIED.errorData,\n };\n }\n }\n\n const gateBalanceList = queryClient.getQueryData(\n QUERY_KEYS.BALANCE.GATE(chainId, userAddr),\n );\n const gateBalanceInfo = (gateBalanceList || [])?.find(\n (balance) => balance.address === pair.rootInstrument.quoteToken.address,\n );\n\n const marginToDeposit = calcMarginToDeposit(margin, gateBalanceInfo?.balance || 0);\n\n const lowerLiqPrice = WrappedBigNumber.from(\n utils.positionLiquidationPrice(\n simulation.lowerPosition,\n isLivePair ? pair : undefined,\n isLivePair ? pair.rootInstrument.maintenanceMarginRatio : undefined,\n ),\n );\n const upperLiqPrice = WrappedBigNumber.from(\n utils.positionLiquidationPrice(\n simulation.upperPosition,\n isLivePair ? pair : undefined,\n isLivePair ? pair.rootInstrument.maintenanceMarginRatio : undefined,\n ),\n );\n\n const simulateResult: IAddLiquiditySimulation = {\n chainId,\n data: {\n ...simulation,\n margin: margin,\n marginToDeposit: marginToDeposit,\n lowerLiqPrice: lowerLiqPrice,\n upperLiqPrice: upperLiqPrice,\n equivalentAlphaLower: WrappedBigNumber.from(simulation.equivalentAlphaLower).toNumber(),\n equivalentAlphaUpper: WrappedBigNumber.from(simulation.equivalentAlphaUpper).toNumber(),\n equivalentAlpha: simulation.equivalentAlphaLower.gt(simulation.equivalentAlphaUpper)\n ? simulation.equivalentAlphaUpper\n : simulation.equivalentAlphaLower,\n tickDelta: simulation.tickDeltaLower,\n },\n };\n if (pair.rootInstrument.isInverse && simulateResult?.data) {\n }\n\n // check if the margin is not enough\n if (userAddr && simulateResult.data?.marginToDeposit?.gt(0)) {\n const {\n balance: { chainBalanceMap },\n } = getState() as AppState;\n const rootInstrument = pair.rootInstrument;\n const balance = _.get(chainBalanceMap, [chainId, userAddr, rootInstrument.quoteToken.address]);\n if (balance) {\n if (simulateResult.data.marginToDeposit.gt(balance.balance)) {\n simulateResult.message = ERROR_MSG_EXCEED_WALLET_BALANCE.errorMsg;\n simulateResult.errorData = ERROR_MSG_EXCEED_WALLET_BALANCE.errorData;\n }\n }\n }\n\n // simulateResult.data &&\n // dispatch(\n // simulatePointsByAddLiquidity({\n // userAddr,\n // chainId,\n // quote: pair.rootInstrument.quoteToken,\n // pair,\n // alphaWad: simulateResult.data?.equivalentAlpha,\n // liquidity: WrappedBigNumber.from(simulateResult.data?.liquidity || 0),\n // margin,\n // sdk: sdkContext,\n // customStableInstruments,\n // }),\n // );\n\n return simulateResult;\n }\n return { chainId };\n } catch (error) {\n SentryService.captureException(\n error,\n {\n name: 'earn/addLiquidityAsymmetricSimulate',\n chainId,\n pair: pair?.symbol,\n margin: margin?.stringValue,\n slippage,\n alphaWadLower: alphaWadLower?._hex,\n alphaWadUpper: alphaWadUpper?._hex,\n userAddr,\n },\n 'info',\n );\n console.log('addLiquiditySimulate error', error);\n const parsedError = parsedEthersError(error);\n const errorMsg = parsedError?.errorMsg || _.get(error, ['message']);\n return { chainId, message: errorMsg };\n }\n },\n);\n\nexport const removeLiquiditySimulate = createAsyncThunk(\n 'earn/removeLiquiditySimulate',\n async (\n {\n chainId,\n sdkContext,\n range,\n slippage,\n portfolio,\n }: {\n chainId: number;\n sdkContext: Context | undefined;\n range: WrappedRange;\n slippage: number;\n portfolio: WrappedPortfolio;\n },\n {},\n ): Promise => {\n try {\n if (sdkContext && portfolio && range) {\n const res = await sdkContext.perp.simulate.simulateRemoveLiquidity({\n tradeInfo: portfolio,\n tickUpper: range.tickUpper,\n tickLower: range.tickLower,\n slippage: slippage,\n instrument: range.rootInstrument,\n });\n const simulation: IRemoveLiquiditySimulationData = {\n ...res,\n simulatePositionRemoved: res.removedPosition,\n simulationMainPosition: new WrappedPosition(\n {\n ...res.postPosition,\n id: portfolio.id,\n instrumentId: portfolio.rootInstrument.id,\n pairId: portfolio.rootPair.id,\n accountId: portfolio.rootAccount.id,\n portfolioId: portfolio.id,\n blockInfo: portfolio.blockInfo,\n expiry: portfolio.expiry,\n traderAddr: portfolio.traderAddr,\n instrumentAddr: portfolio.rootInstrument.instrumentAddr,\n },\n portfolio,\n ),\n };\n // if no position, return margin to account balance\n if (simulation.simulationMainPosition.size.eq(0) && simulation.simulationMainPosition.balance.gt(0)) {\n simulation.margin = WrappedBigNumber.from(simulation.simulationMainPosition.balance).mul(-1);\n }\n return {\n chainId,\n data: simulation,\n };\n }\n return { chainId };\n } catch (error) {\n SentryService.captureException(error, {\n name: 'earn/removeLiquiditySimulate',\n chainId,\n range: range?.id,\n slippage,\n });\n console.log('🚀 removeLiquiditySimulate error', error);\n const parsedError = parsedEthersError(error);\n const errorMsg = parsedError?.errorMsg || _.get(error, ['message']);\n return { chainId, message: errorMsg, errorData: parsedError?.errorData };\n }\n },\n);\n\nexport const addLiquidity = createAsyncThunk(\n 'earn/addLiquidity',\n async (\n {\n signer,\n chainId,\n userAddr,\n sdk: sdk,\n margin,\n deadline,\n pair,\n provider,\n }: {\n chainId: number;\n userAddr: string;\n signer: JsonRpcSigner;\n sdk: Context;\n deadline: number;\n pair: WrappedPair | CreativePair;\n provider: JsonRpcProvider;\n margin: string;\n },\n { dispatch, getState },\n ): Promise => {\n try {\n const {\n earn: { chainAddLiquiditySimulation },\n } = getState() as AppState;\n const simulation = _.get(chainAddLiquiditySimulation, [chainId]);\n\n const isLivePair = pair instanceof WrappedPair;\n const simulationData = simulation.data;\n // if no simulation, return\n if (!simulationData) {\n return;\n }\n const result = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record(\n 'tx',\n `Try to send [${OPERATION_TX_TYPE.ADD_LIQUIDITY}] operation tx for pair [${pair.symbol}]`,\n undefined,\n {\n signer,\n expiry: pair.expiry,\n pair,\n margin: parseEther(margin),\n deadline: addedDeadline(deadline),\n simulation,\n },\n );\n // return await provider.getTransaction(`0x2f4e1c10e6f80dd57ec9f51a34c32963041ba7d9ba9e596db8347cb6fd160c33`);\n const {\n global: { onChainReferralCode },\n } = getState() as AppState;\n const referralCode = onChainReferralCode?.referralCode || '';\n console.record(\n 'syn',\n `addLiquidity params:`,\n {\n instrumentAddr: isLivePair\n ? pair.rootInstrument.instrumentAddr\n : {\n marketType: pair.rootInstrument.marketType,\n baseSymbol: utils.isCexMarket(pair.rootInstrument.marketType)\n ? pair.rootInstrument.baseToken.symbol\n : pair.rootInstrument.baseToken,\n quoteSymbol: pair.rootInstrument.quoteToken,\n },\n expiry: pair.expiry,\n limitTicks: simulationData?.limitTicks,\n margin: toWad(margin),\n tickDeltaLower: simulationData?.tickDelta,\n tickDeltaUpper: simulationData?.tickDelta,\n deadline: addedDeadline(deadline),\n referralCode,\n },\n { from: userAddr },\n );\n const populatedTx = await sdk.perp.instrument.addLiquidity(\n {\n instrumentAddr: isLivePair\n ? pair.rootInstrument.instrumentAddr\n : {\n marketType: pair.rootInstrument.marketType,\n baseSymbol: utils.isCexMarket(pair.rootInstrument.marketType)\n ? pair.rootInstrument.baseToken.symbol\n : pair.rootInstrument.baseToken,\n quoteSymbol: pair.rootInstrument.quoteToken,\n },\n expiry: pair.expiry,\n limitTicks: simulationData?.limitTicks,\n margin: toWad(margin),\n tickDeltaLower: simulationData?.tickDeltaLower,\n tickDeltaUpper: simulationData?.tickDeltaUpper,\n deadline: addedDeadline(deadline),\n referralCode,\n },\n { from: userAddr },\n );\n return signer.sendTransaction(populatedTx);\n },\n\n chainId,\n userAddr,\n txParams: {\n type: OPERATION_TX_TYPE.ADD_LIQUIDITY,\n instrument: {\n baseSymbol: pair.rootInstrument.baseToken.symbol,\n quoteSymbol: pair.rootInstrument.quoteToken.symbol,\n isInverse: pair.rootInstrument.isInverse || false,\n },\n sendingTemplate: parseSendingTxMessageMapping[OPERATION_TX_TYPE.ADD_LIQUIDITY]!(\n pair.rootInstrument.quoteToken.symbol,\n margin,\n WrappedBigNumber.from(simulationData.upperPrice),\n WrappedBigNumber.from(simulationData.lowerPrice),\n pair.rootInstrument.isInverse,\n ),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (result?.status) {\n if (pair instanceof WrappedPair) {\n dispatch(\n getPortfolioFromChain({\n chainId,\n userAddr,\n blockNumber: result.blockNumber,\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n }),\n );\n } else {\n try {\n let instrumentAddr = '';\n // get instrument addr from event\n const eventLogs = await getEventLogs(OPERATION_TX_TYPE.CREATE, result);\n if (eventLogs && eventLogs.length) {\n const NewInstrumentLog = eventLogs.find((log) => log.name === EVENT_NAMES.NewInstrument);\n if (NewInstrumentLog && NewInstrumentLog.args?.instrument) {\n instrumentAddr = NewInstrumentLog.args?.instrument.toLowerCase();\n }\n }\n if (instrumentAddr) {\n dispatch(\n getPortfolioFromChain({\n chainId,\n userAddr,\n blockNumber: result.blockNumber,\n instrumentAddr: instrumentAddr,\n expiry: pair.expiry,\n }),\n );\n }\n } catch (error) {\n console.log('🚀 ~ file: action.ts:302 ~ error:', error);\n }\n }\n // need update balance\n if (simulation?.data?.margin?.gt(0)) {\n if (simulation.data.marginToDeposit.gt(0)) {\n dispatch(\n checkTokenAllowance({\n userAddress: userAddr,\n chainId,\n marginToken: pair.rootInstrument.quoteToken,\n sdk: sdk,\n }),\n );\n dispatch(\n fetchTokenBalanceAction({\n chainId,\n userAddr,\n token: pair.rootInstrument.quoteToken,\n block: result.blockNumber,\n }),\n );\n }\n if (!simulation?.data.margin.eq(simulation.data?.marginToDeposit)) {\n dispatch(\n fetchGateBalanceAction({\n chainId,\n userAddr,\n tokens: [pair.rootInstrument.quoteToken],\n block: result.blockNumber,\n }),\n );\n }\n }\n }\n return result;\n } catch (error) {\n SentryService.captureException(\n error,\n {\n name: 'earn/addLiquidity',\n chainId,\n userAddr,\n margin,\n deadline,\n pair: pair?.symbol,\n },\n 'info',\n );\n console.log('🚀 ~ file: action.ts:130 ~ e:', error);\n throw error;\n }\n },\n);\n\nexport const removeLiquidity = createAsyncThunk(\n 'earn/removeLiquidity',\n async (\n {\n signer,\n chainId,\n userAddr,\n sdkContext,\n deadline,\n pair,\n provider,\n range,\n }: {\n chainId: number;\n userAddr: string;\n signer: JsonRpcSigner;\n range: WrappedRange;\n sdkContext: Context;\n deadline: number;\n pair: WrappedPair;\n provider: JsonRpcProvider;\n isMobile?: boolean;\n },\n { dispatch, getState },\n ): Promise => {\n try {\n const {\n earn: { chainRemoveLiquiditySimulation },\n } = getState() as AppState;\n const simulation = _.get(chainRemoveLiquiditySimulation, [chainId]);\n // if no simulation, return\n if (!simulation?.data) {\n return;\n }\n const simulationData = simulation.data;\n\n const result = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record(\n 'tx',\n `Try to send [${OPERATION_TX_TYPE.REMOVE_LIQUIDITY}] operation tx for pair [${pair.symbol}]`,\n undefined,\n {\n signer,\n expiry: pair.expiry,\n pair,\n range,\n deadline: addedDeadline(deadline),\n simulation,\n },\n );\n\n const populatedTx = await sdkContext.perp.instrument.removeLiquidity(\n {\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n tickLower: range.tickLower,\n tickUpper: range.tickUpper,\n deadline: addedDeadline(deadline),\n limitTicks: simulationData.limitTicks,\n traderAddr: userAddr,\n },\n { from: userAddr },\n );\n return signer.sendTransaction(populatedTx);\n },\n\n chainId,\n userAddr,\n txParams: {\n type: OPERATION_TX_TYPE.REMOVE_LIQUIDITY,\n instrument: {\n baseSymbol: pair.rootInstrument.baseToken.symbol,\n quoteSymbol: pair.rootInstrument.quoteToken.symbol,\n isInverse: pair.rootInstrument.isInverse,\n },\n sendingTemplate: parseSendingTxMessageMapping[OPERATION_TX_TYPE.REMOVE_LIQUIDITY]!(\n pair.rootInstrument.quoteToken.symbol,\n utils.positionEquity(simulationData.simulationMainPosition, pair),\n WrappedBigNumber.from(range.upperPrice),\n WrappedBigNumber.from(range.lowerPrice),\n pair.rootInstrument.isInverse,\n ),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (result?.status) {\n dispatch(\n getPortfolioFromChain({\n chainId,\n userAddr,\n blockNumber: result.blockNumber,\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n }),\n );\n // need update balance\n if (simulation?.data?.margin?.notEq(0)) {\n dispatch(\n fetchGateBalanceAction({\n chainId,\n userAddr,\n tokens: [pair.rootInstrument.quoteToken],\n block: result.blockNumber,\n }),\n );\n }\n if (range && range.rootPortfolio) {\n _.unset(range.rootPortfolio.rangeMap, [range.id]);\n }\n }\n if (result?.transactionHash) {\n const { setPollingHistoryTx } = useGlobalStore.getState();\n setPollingHistoryTx({\n userAddress: userAddr,\n chainId,\n pollingHistoryId: PollingHistoryId.liquidity,\n tx: result?.transactionHash,\n });\n }\n return result;\n } catch (error) {\n SentryService.captureException(error, {\n name: 'earn/removeLiquidity',\n chainId,\n userAddr,\n deadline,\n pair: pair?.toJSON(),\n range: range?.id,\n });\n console.log('🚀 ~ file: action.ts:130 ~ e:', error);\n throw error;\n }\n },\n);\n\nexport const fetchEarnWhitelistConfig = createAsyncThunk(\n 'earn/fetchWhitelistConfig',\n async (\n {\n userAddr,\n sdkContext,\n chainId,\n quote,\n }: { chainId: CHAIN_ID; userAddr: string; sdkContext: Context; quote: TokenInfo },\n { getState },\n ): Promise<{ allowUnauthorizedLPs: boolean | undefined; isInWhiteList: boolean }> => {\n try {\n const {\n earn: { chainAllowUnauthorizedLPs },\n } = getState() as AppState;\n const allowUnauthorizedLPsInState = _.get(chainAllowUnauthorizedLPs, [chainId, quote.address]);\n const res: { allowUnauthorizedLPs: boolean | undefined; isInWhiteList: boolean } = {\n allowUnauthorizedLPs: undefined,\n isInWhiteList: false,\n };\n if (allowUnauthorizedLPsInState === undefined) {\n const allowUnauthorizedLPs = await sdkContext.perp.config.openLp(quote.address);\n res.allowUnauthorizedLPs = allowUnauthorizedLPs;\n } else {\n res.allowUnauthorizedLPs = allowUnauthorizedLPsInState;\n }\n const isInWhiteList = await sdkContext.perp.config.inWhiteListLps(quote.address, [userAddr]);\n if (isInWhiteList.length > 0) {\n res.isInWhiteList = isInWhiteList[0];\n }\n console.record('other', 'Query user [isInLpWhitelist]', res, {\n userAddr,\n sdkContext,\n });\n return res;\n } catch (e) {\n console.error('🚀 ~ file: actions.ts:89 ~ e', e);\n throw e;\n }\n },\n);\n","import _ from 'lodash';\n\nimport { IInstrumentRecord } from '@/types/pair';\n\nimport { WrappedInstrument } from '@/entities/WrappedInstrument';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { Instrument } from '@synfutures/sdks-perp';\nimport { bigNumberObjectCheck } from '.';\nimport { transformToMetaFutures, transformToMetaPair } from './transform/pair';\nimport { transformToWrappedInstrument } from './transform/transformWrappedEntities';\n\nexport function reduceFutures(chainId: number, futures: Record): IInstrumentRecord {\n const allFutures = _.reduce(\n futures,\n (res, futuresObj) => {\n if (!res.futuresMap) {\n res.futuresMap = {};\n }\n if (!res?.blockInfo?.height) {\n res.blockInfo = futuresObj.blockInfo || {\n height: 0,\n timestamp: 0,\n };\n }\n if (!res.pairMap) {\n res.pairMap = {};\n }\n\n transformToWrappedInstrument(futuresObj, chainId);\n\n const futuresCore = transformToMetaFutures(futuresObj, chainId);\n res.futuresMap[futuresCore.id] = futuresCore;\n const amms = futuresObj?.amms;\n if (amms) {\n amms.forEach((amm) => {\n const pairId = `${futuresObj.instrumentAddr}-${amm.expiry}`.toLowerCase();\n const pairCore = transformToMetaPair({\n amm: amm,\n futures: futuresObj,\n blockInfo: amm.blockInfo,\n });\n res.pairMap[pairId] = pairCore;\n });\n }\n return bigNumberObjectCheck(res);\n },\n {} as IInstrumentRecord,\n );\n allFutures.chainId = chainId;\n return allFutures;\n}\n\n// export const getLeftRatio = (minPrice: number, currentPrice: number): number =>\n// minPrice < currentPrice ? currentPrice / minPrice : -minPrice / currentPrice;\n// export const getRightRatio = (maxPrice: number, currentPrice: number): number =>\n// maxPrice > currentPrice ? maxPrice / currentPrice : -currentPrice / maxPrice;\nexport const getLeftRatio = (minPrice: number, currentPrice: number): number =>\n minPrice < currentPrice ? currentPrice / minPrice - 1 : -(1 - minPrice / currentPrice);\nexport const getRightRatio = (maxPrice: number, currentPrice: number): number =>\n maxPrice > currentPrice ? maxPrice / currentPrice - 1 : -(1 - currentPrice / maxPrice);\n\n/**\n * Checks if the given pair is an instance of WrappedPair.\n *\n * @param pair - The pair to check.\n * @returns A boolean indicating whether the pair is an instance of WrappedPair.\n */\nexport function isWrappedPairType(pair: unknown): pair is WrappedPair {\n return !!pair && pair instanceof WrappedPair;\n}\n\n/**\n * Checks if the given instrument is of type `WrappedInstrument`.\n *\n * @param instrument - The instrument to check.\n * @returns A boolean indicating whether the instrument is a `WrappedInstrument`.\n */\nexport function isWrappedInstrumentType(instrument: unknown): instrument is WrappedInstrument {\n return !!instrument && instrument instanceof WrappedInstrument;\n}\n","import { CHAIN_ID } from '@derivation-tech/context';\n\nimport { WrappedInstrument } from '@/entities/WrappedInstrument';\nimport { WrappedPair } from '@/entities/WrappedPair';\n\nimport { QUERY_KEYS } from '@/constants/query';\nimport { WrappedAccount } from '@/entities/WrappedAccount';\nimport { WrappedOrder } from '@/entities/WrappedOrder';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { WrappedRange } from '@/entities/WrappedRange';\nimport { ITokenPriceMap } from '@/features/global/type';\nimport { queryClient } from '@/pages/App';\nimport { IMetaAccount } from '@/types/account';\nimport { Amm, Instrument, Portfolio } from '@synfutures/sdks-perp';\nimport { transformMetaPortfolio, transformToMetaOrder, transformToMetaPosition, transformToMetaRange } from './account';\nimport { transformToMetaFutures, transformToMetaPair } from './pair';\n\n/**\n * transform to WrappedInstrument\n * @param futures\n * @param chainId\n * @returns {WrappedInstrument}\n */\nexport function transformToWrappedInstrument(futures: Instrument, chainId: CHAIN_ID): WrappedInstrument {\n const metaFutures = transformToMetaFutures(futures, chainId);\n const wrappedInstrument = WrappedInstrument.wrapInstance({ metaFutures: metaFutures, chainId });\n const tokenPriceMap = queryClient.getQueryData(QUERY_KEYS.GLOBAL.TOKEN_PRICE(chainId));\n if (tokenPriceMap && tokenPriceMap[wrappedInstrument?.quoteToken?.address]) {\n wrappedInstrument.setQuotePrice(tokenPriceMap[wrappedInstrument.quoteToken.address]);\n }\n\n const amms = futures.amms;\n if (amms && amms.size > 0) {\n amms.forEach((amm) => {\n transformToWrappedPair(amm, wrappedInstrument);\n });\n }\n\n return wrappedInstrument;\n}\n\nexport function transformToWrappedPair(amm: Amm, wrappedInstrument: WrappedInstrument): WrappedPair | undefined {\n const metaPair = transformToMetaPair({\n amm: amm,\n futures: wrappedInstrument,\n blockInfo: amm.blockInfo || wrappedInstrument.blockInfo,\n });\n const wrappedPair = WrappedPair.wrapInstance({ metaPair: metaPair, rootInstrument: wrappedInstrument });\n if (wrappedPair) {\n // set relate\n wrappedInstrument.connectPair(wrappedPair.expiry, wrappedPair);\n }\n\n return wrappedPair;\n}\n\nexport function transferToWrappedPortfolio(portfolio: Portfolio, chainId: CHAIN_ID, metaAccount: IMetaAccount) {\n const instrumentAddr = portfolio.instrumentAddr.toLowerCase();\n const userAddr = portfolio.traderAddr;\n const blockInfo = portfolio.blockInfo;\n const metaPortfolio = transformMetaPortfolio(userAddr, instrumentAddr, portfolio, blockInfo);\n const wrappedPair = WrappedPair.getInstance(metaPortfolio.pairId, chainId);\n const wrappedInstrument = WrappedInstrument.getInstance(instrumentAddr, chainId);\n if (!wrappedInstrument || !wrappedPair) return;\n const wrappedAccount = WrappedAccount.wrapInstance({\n metaAccount: metaAccount,\n chainId,\n rootInstrument: wrappedInstrument,\n });\n const wrappedPortfolio = WrappedPortfolio.wrapInstance({\n metaPortfolio: metaPortfolio,\n rootAccount: wrappedAccount,\n rootPair: wrappedPair,\n });\n if (wrappedPortfolio) {\n wrappedAccount.connectPortfolio(wrappedPortfolio);\n // connect position\n const position = portfolio.position;\n if (position) {\n const metaPosition = transformToMetaPosition({\n userAddr,\n instrumentAddr,\n portfolio: portfolio,\n position,\n blockInfo,\n });\n const wrappedPosition = WrappedPosition.wrapInstance({\n metaPosition,\n rootPortfolio: wrappedPortfolio,\n chainId,\n });\n if (wrappedPortfolio) {\n wrappedPortfolio.connectPosition(wrappedPosition);\n }\n }\n // connect order\n const orderList = portfolio.orders;\n if (orderList && orderList.size > 0) {\n orderList.forEach((order) => {\n const metaOrder = transformToMetaOrder({\n userAddr,\n instrumentAddr,\n portfolio: portfolio,\n order,\n blockInfo,\n });\n const wrappedOrder = WrappedOrder.wrapInstance({ metaOrder, rootPortfolio: wrappedPortfolio });\n if (wrappedPortfolio) {\n wrappedPortfolio.connectOrder(wrappedOrder);\n }\n });\n }\n // connect range\n const rangeList = portfolio.ranges;\n if (rangeList && rangeList.size > 0) {\n rangeList.forEach((range) => {\n const metaRange = transformToMetaRange({\n userAddr,\n instrumentAddr,\n portfolio: portfolio,\n range,\n blockInfo,\n });\n const wrappedRange = WrappedRange.wrapInstance({ metaRange, rootPortfolio: wrappedPortfolio });\n if (wrappedPortfolio) {\n wrappedPortfolio.connectRange(wrappedRange);\n }\n });\n }\n }\n}\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { BigNumber } from 'ethers';\n\nimport { DEFAULT_ALPHA } from '@/constants/earn';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport {\n Position,\n SimulateAddLiquidityResult,\n SimulateImpermenantLossParams,\n SimulateRemoveLiquidityResult,\n} from '@synfutures/sdks-perp';\n\nexport interface IAddLiquiditySimulation {\n chainId: CHAIN_ID;\n data?: IAddLiquiditySimulationData;\n message?: string;\n errorData?: string;\n}\nexport interface IAddLiquiditySimulationData extends SimulateAddLiquidityResult {\n equivalentAlpha: BigNumber;\n equivalentAlphaUpper: number;\n equivalentAlphaLower: number;\n tickDelta: number;\n tickDeltaUpper: number;\n tickDeltaLower: number;\n // upperPrice: WrappedBigNumber;\n // lowerPrice: WrappedBigNumber;\n lowerPosition: Position;\n // lowerLeverage: WrappedBigNumber;\n upperPosition: Position;\n // upperLeverage: WrappedBigNumber;\n // sqrtStrikeLowerPX96: BigNumber;\n // sqrtStrikeUpperPX96: BigNumber;\n marginToDeposit: WrappedBigNumber;\n margin: WrappedBigNumber;\n // minMargin: WrappedBigNumber;\n\n lowerLiqPrice: WrappedBigNumber;\n upperLiqPrice: WrappedBigNumber;\n // minEffectiveQuoteAmount: WrappedBigNumber;\n}\nexport interface IRemoveLiquiditySimulation {\n chainId: CHAIN_ID;\n data?: IRemoveLiquiditySimulationData;\n message?: string;\n errorData?: string;\n}\nexport interface IRemoveLiquiditySimulationData extends SimulateRemoveLiquidityResult {\n simulationMainPosition: WrappedPosition;\n simulatePositionRemoved: Position;\n // sqrtStrikeLowerPX96: BigNumber;\n // sqrtStrikeUpperPX96: BigNumber;\n margin?: WrappedBigNumber; // only size = 0 & balance >0 has margin\n}\n\nexport interface IAddLiquidityFormState {\n chainId: CHAIN_ID;\n amount: string;\n alpha: number;\n asymmetric: boolean;\n lowerUpperTicks?: number[];\n}\nexport interface IRemoveLiquidityFormState {\n chainId: CHAIN_ID;\n id: string;\n}\n\nexport const getDefaultAddLiquidityFormState = (chainId: CHAIN_ID): IAddLiquidityFormState => ({\n chainId,\n amount: '',\n alpha: DEFAULT_ALPHA,\n asymmetric: false,\n});\nexport type ILDataParams = SimulateImpermenantLossParams & { symbol: string; isInverse: boolean };\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { BatchOrderSizeDistribution, Side } from '@synfutures/sdks-perp';\nimport { BigNumber } from 'ethers';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { TRADE_LEVERAGE_THRESHOLDS } from '@/constants/global';\nimport { LEVERAGE_ADJUST_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { ByBase, ByQuote, SimulateLimitOrderResult, SimulateTradeResult } from '@synfutures/sdks-perp';\nexport enum MarginAdjustMethod {\n Leverage = 'MarginAdjustMethod_Leverage',\n Amount = 'MarginAdjustMethod_Amount',\n}\n\nexport type AdjustMarginByLeverageState = {\n leverageInput: string | null;\n isLeverageInputChanged: boolean;\n errMsg: JSX.Element | null;\n};\ninterface IFormStateBase {\n chainId: CHAIN_ID;\n}\n\nexport interface IOrderCancelStatus {\n [orderId: string]: FETCHING_STATUS;\n}\nexport interface ISimulation {\n chainId?: number;\n data?: ISimulationData;\n positionData?: IPositionSimulationData;\n message?: string;\n errorData?: string;\n}\nexport interface ISimulationData {\n origin: SimulateTradeResult;\n limitTick: number;\n tradePrice: WrappedBigNumber;\n estimatedTradeValue: WrappedBigNumber;\n tradingFee: WrappedBigNumber;\n margin: WrappedBigNumber;\n realized: WrappedBigNumber;\n leverage: WrappedBigNumber;\n minTradeValue: WrappedBigNumber;\n simulationMainPosition: WrappedPosition;\n limitPrice: WrappedBigNumber;\n priceChangeRate: WrappedBigNumber;\n marginToDeposit: WrappedBigNumber;\n additionalFee: WrappedBigNumber;\n exceedMaxLeverage: boolean;\n}\nexport interface IPositionSimulationData {\n feeWad: BigNumber;\n marginWad: BigNumber;\n marginToDepositWad: BigNumber;\n leverageWad: BigNumber;\n liqPriceWad: BigNumber;\n pnlWad: BigNumber;\n avgPriceWad: BigNumber;\n}\nexport interface IOrderSimulation {\n data?: IOrderSimulationData;\n message?: string;\n errorData?: string;\n}\nexport interface IOrderSimulationData {\n origin: SimulateLimitOrderResult;\n size: ByBase & ByQuote;\n baseSize: BigNumber;\n // balance: BigNumber;\n tickNumber: number;\n leverage: BigNumber;\n minOrderValue: BigNumber;\n limitPrice: WrappedBigNumber;\n margin: WrappedBigNumber;\n marginToDeposit: WrappedBigNumber;\n minFeeRebate: WrappedBigNumber;\n estimatedTradeValue: WrappedBigNumber;\n}\n\nexport interface IMarketFormState extends IFormStateBase {\n tradeSide: Side;\n baseAmount: string;\n quoteAmount?: string;\n marginAmount?: string;\n leverageAdjustType?: LEVERAGE_ADJUST_TYPE;\n // tradePrice?: string;\n // positionRatio?: number; // TODO: remove this?\n // marginAmount?: string;\n leverage?: string;\n}\n\nexport interface ILimitFormState extends IFormStateBase {\n tradeSide: Side;\n baseAmount: string;\n quoteAmount?: string;\n limitPrice?: string;\n leverage?: string;\n alignedPrice?: string;\n isTurnOnCrossMarket?: boolean;\n // marginAmount?: string;\n}\n\nexport interface IAdjustMarginFormState extends IFormStateBase {\n transferIn?: boolean;\n amount: string;\n leverage?: string;\n marginToDeposit?: string;\n}\n\nexport interface IAdjustMarginSimulation {\n chainId: number;\n data?: IAdjustMarginSimulationData;\n message?: string;\n}\n\nexport interface IAdjustMarginSimulationData {\n transferAmount: BigNumber;\n simulationMainPosition: WrappedPosition;\n marginToDepositWad: BigNumber;\n leverageWad: BigNumber;\n}\n\nexport interface IClosePositionFormState extends IFormStateBase {\n amount: string;\n}\nexport interface IPnlParams {\n averagePrice: WrappedBigNumber;\n pnl: WrappedBigNumber;\n pnlRatio: WrappedBigNumber;\n tradePrice: WrappedBigNumber;\n pair: WrappedPair;\n leverage: WrappedBigNumber;\n chainId: number;\n side: string;\n tx: string;\n size: WrappedBigNumber;\n}\n\nexport interface ICancelFormState extends IFormStateBase {\n chainId: number;\n userAddr: string;\n ids: string[];\n}\n\nexport const getDefaultMarketFormState = (chainId: CHAIN_ID, tradeSide?: Side): IMarketFormState => ({\n chainId,\n baseAmount: '',\n leverage: TRADE_LEVERAGE_THRESHOLDS.DEFAULT.toString(),\n tradeSide: tradeSide || Side.LONG,\n});\n\nexport const getDefaultLimitFormState = (chainId: CHAIN_ID, tradeSide?: Side): ILimitFormState => ({\n chainId,\n baseAmount: '',\n tradeSide: tradeSide || Side.LONG,\n isTurnOnCrossMarket: false,\n});\nexport const getDefaultScaleLimitFormState = (chainId: CHAIN_ID, tradeSide?: Side): ILimitFormState => ({\n chainId,\n baseAmount: '',\n tradeSide: tradeSide || Side.LONG,\n});\nexport const getDefaultCloseFormState = (chainId: CHAIN_ID): IClosePositionFormState => ({\n chainId,\n amount: '',\n});\nexport const getDefaultSimulation = (chainId: number): ISimulation => ({\n chainId,\n});\n\nexport interface IScaleFormState extends IFormStateBase {\n tradeSide: Side;\n leverage?: string;\n lowerPrice: string;\n alignedLowerPrice: string;\n lowerTick: number;\n upperPrice: string;\n alignedUpperPrice: string;\n upperTick: number;\n baseAmount: string;\n quoteAmount?: string;\n stepRatio: number;\n orderCount: number;\n sizeDistribution: BatchOrderSizeDistribution;\n}\nexport interface IScaledOrderSimulation {\n data?: IScaledOrderSimulationData;\n message?: string;\n errorData?: string;\n}\nexport type ISimulationOrder = SimulateLimitOrderResult & {\n ratio: number;\n minOrderSize: BigNumber;\n};\nexport interface IScaledOrderSimulationData {\n baseSize: BigNumber;\n // balance: BigNumber;\n lowerTick: number;\n upperTick: number;\n lowerPrice: string;\n upperPrice: string;\n leverageWad: BigNumber;\n orders: ISimulationOrder[];\n margin: WrappedBigNumber;\n sizeDistribution: BatchOrderSizeDistribution; // enum from sdk\n minOrderValue: WrappedBigNumber;\n marginToDeposit: WrappedBigNumber;\n minFeeRebate: BigNumber;\n totalMinSize: BigNumber;\n estimatedTradeValue: WrappedBigNumber;\n}\n\nexport interface ICrossMarketOrderData {\n canPlaceOrder: boolean; // if user can place order, user size = trade size + order size\n tradeSize: WrappedBigNumber; // trade size. if user size < trade size + order size, user can't place order, return min trade size\n orderSize: WrappedBigNumber; // order size. if user size < trade size + order size, user can't place order, return min order size\n tradeSimulation: ISimulationData;\n orderSimulation: IOrderSimulationData;\n tickNumber: number;\n marginToDeposit: WrappedBigNumber;\n margin: WrappedBigNumber;\n totalMinSize: WrappedBigNumber;\n}\n\nexport interface ICrossMarketOrderSimulation {\n data?: ICrossMarketOrderData;\n message?: string;\n errorData?: string;\n}\n","import { createSlice } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { TABLE_TYPES } from '@/constants/global';\nimport {\n getDefaultAddLiquidityFormState,\n IAddLiquidityFormState,\n IAddLiquiditySimulation,\n IRemoveLiquidityFormState,\n IRemoveLiquiditySimulation,\n} from '@/types/earn';\nimport { ILiquidityFilters } from '@/types/liquidity';\nimport { getDefaultListArrayStatus, ListArrayStatus, setFulfilledListArrayStatus } from '@/types/redux';\nimport { getDefaultSimulation } from '@/types/trade';\n\nimport { AppState } from '../store';\nimport {\n addLiquidity,\n addLiquidityAsymmetricSimulate,\n addLiquiditySimulate,\n fetchEarnWhitelistConfig,\n removeLiquidity,\n removeLiquiditySimulate,\n resetLiquidityFormByChainId,\n setAddLiqFormState,\n setCurrentRange,\n setEarnFormType,\n setEarnPortfolioTab,\n setIsAddLiquidityInputRisky,\n setPoolFilters,\n} from './action';\n\nexport interface IEarnState {\n chainFormType: {\n [chainId: number]: EARN_TYPE;\n };\n chainAddLiquidityFormState: {\n [chainId: number]: IAddLiquidityFormState;\n };\n chainPoolListFilters: {\n [chainId: number]: ILiquidityFilters;\n };\n chainRemoveLiquidityFormState: {\n [chainId: number]: IRemoveLiquidityFormState;\n };\n\n chainCurrentRangeId: {\n [chainId: number]: string;\n };\n\n chainAddLiquidityFormStatus: {\n [chainId: number]: FETCHING_STATUS;\n };\n\n chainRemoveLiquidityFormStatus: {\n [chainId: number]: FETCHING_STATUS;\n };\n\n chainAddLiquiditySimulation: {\n [chainId: number]: IAddLiquiditySimulation;\n };\n chainRemoveLiquiditySimulation: {\n [chainId: number]: IRemoveLiquiditySimulation;\n };\n chainRemoveLiquiditySuccess: {\n [chainId: number]: boolean;\n };\n chainAllowUnauthorizedLPs: {\n [chainId: number]: {\n [quoteAddr: string]: boolean;\n };\n };\n chainWhitelist: {\n [chainId: number]: {\n [quoteAddr: string]: ListArrayStatus;\n };\n };\n earnPortfolioTab: TABLE_TYPES;\n isAddLiquidityInputRisky: boolean;\n}\n\nconst initialState: IEarnState = {\n chainAddLiquidityFormState: {},\n chainAddLiquidityFormStatus: {},\n chainRemoveLiquidityFormState: {},\n chainRemoveLiquidityFormStatus: {},\n chainAddLiquiditySimulation: {},\n chainRemoveLiquiditySimulation: {},\n chainRemoveLiquiditySuccess: {},\n chainCurrentRangeId: {},\n chainFormType: {},\n chainAllowUnauthorizedLPs: {},\n chainWhitelist: {},\n chainPoolListFilters: {},\n earnPortfolioTab: TABLE_TYPES.LIQUIDITY,\n isAddLiquidityInputRisky: false,\n};\n\nexport const earnSlice = createSlice({\n name: 'earn',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(setIsAddLiquidityInputRisky, (state, { payload }) => {\n state.isAddLiquidityInputRisky = payload;\n })\n .addCase(resetLiquidityFormByChainId, (state, { payload }) => {\n _.set(state.chainAddLiquidityFormState, [payload.chainId], getDefaultAddLiquidityFormState(payload.chainId));\n _.set(state.chainAddLiquiditySimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n _.set(state.chainRemoveLiquiditySimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n _.set(state.chainFormType, [payload.chainId], EARN_TYPE.ADD_LIQ);\n _.set(state.chainCurrentRangeId, [payload.chainId], '');\n })\n .addCase(setAddLiqFormState, (state, { payload }) => {\n _.set(state.chainAddLiquidityFormState, [payload.chainId], payload);\n })\n .addCase(setEarnFormType, (state, { payload }) => {\n _.set(state.chainFormType, [payload.chainId], payload.formType);\n _.set(state.chainRemoveLiquiditySuccess, [payload.chainId], false);\n })\n .addCase(setEarnPortfolioTab, (state, { payload }) => {\n state.earnPortfolioTab = payload;\n })\n .addCase(setCurrentRange, (state, { payload }) => {\n _.set(state.chainCurrentRangeId, [payload.chainId], payload.rangeId);\n _.set(state.chainRemoveLiquiditySimulation, [payload.chainId], undefined);\n })\n .addCase(addLiquiditySimulate.fulfilled, (state, { meta, payload }) => {\n const { chainId } = meta.arg;\n if (payload) {\n _.set(state.chainAddLiquiditySimulation, [chainId], payload);\n }\n })\n .addCase(addLiquidityAsymmetricSimulate.fulfilled, (state, { meta, payload }) => {\n const { chainId } = meta.arg;\n if (payload) {\n _.set(state.chainAddLiquiditySimulation, [chainId], payload);\n }\n })\n .addCase(removeLiquiditySimulate.fulfilled, (state, { meta, payload }) => {\n const { chainId } = meta.arg;\n if (payload) {\n _.set(state.chainRemoveLiquiditySimulation, [chainId], payload);\n }\n _.set(state.chainRemoveLiquiditySuccess, [chainId], false);\n })\n .addCase(addLiquidity.pending, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainAddLiquidityFormStatus, [chainId], FETCHING_STATUS.FETCHING);\n })\n .addCase(addLiquidity.fulfilled, (state, { meta, payload }) => {\n const { chainId } = meta.arg;\n if (payload) {\n const oldState = _.get(state.chainAddLiquidityFormState, [chainId]);\n _.set(state.chainAddLiquidityFormState, [chainId], {\n ...getDefaultAddLiquidityFormState(chainId),\n alpha: oldState?.alpha,\n });\n _.set(state.chainCurrentRangeId, [chainId], '');\n }\n _.set(state.chainAddLiquidityFormStatus, [chainId], FETCHING_STATUS.DONE);\n })\n .addCase(addLiquidity.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainAddLiquidityFormStatus, [chainId], FETCHING_STATUS.DONE);\n })\n .addCase(removeLiquidity.pending, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainRemoveLiquidityFormStatus, [chainId], FETCHING_STATUS.FETCHING);\n })\n .addCase(removeLiquidity.fulfilled, (state, { meta, payload }) => {\n const { chainId, isMobile } = meta.arg;\n if (payload?.status === 1) {\n const simulate = _.get(state.chainRemoveLiquiditySimulation, [chainId]);\n _.set(state.chainRemoveLiquidityFormState, [chainId], getDefaultAddLiquidityFormState(chainId));\n _.set(state.chainRemoveLiquiditySuccess, [chainId], true);\n _.set(state.chainRemoveLiquiditySimulation, [chainId], undefined);\n if (simulate.data?.simulationMainPosition?.size?.eq(0) && !isMobile) {\n _.set(state.chainFormType, [chainId], EARN_TYPE.ADD_LIQ);\n }\n _.set(state.chainCurrentRangeId, [chainId], '');\n }\n _.set(state.chainRemoveLiquidityFormStatus, [chainId], FETCHING_STATUS.DONE);\n })\n .addCase(removeLiquidity.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainRemoveLiquidityFormStatus, [chainId], FETCHING_STATUS.DONE);\n })\n .addCase(fetchEarnWhitelistConfig.pending, (state, { meta }) => {\n const { chainId, quote } = meta.arg;\n const whilte = _.get(state.chainWhitelist, [chainId, quote.address]);\n if (!whilte) {\n _.set(state.chainWhitelist, [chainId, quote.address], getDefaultListArrayStatus(FETCHING_STATUS.FETCHING));\n }\n })\n .addCase(fetchEarnWhitelistConfig.fulfilled, (state, { meta, payload }) => {\n const { chainId, userAddr, quote } = meta.arg;\n if (payload) {\n _.set(state.chainAllowUnauthorizedLPs, [chainId, quote.address], payload.allowUnauthorizedLPs);\n const whiteList: string[] = _.get(state.chainWhitelist, [chainId, quote.address, 'list'], []);\n if (payload.isInWhiteList) {\n whiteList.push(userAddr);\n }\n _.set(state.chainWhitelist, [chainId, quote.address], setFulfilledListArrayStatus(whiteList));\n }\n })\n .addCase(setPoolFilters, (state, { payload }) => {\n if (payload) {\n _.set(state.chainPoolListFilters, [payload.chainId], payload);\n }\n });\n },\n});\nexport default earnSlice.reducer;\n\nexport const selectEarnFormType =\n (chainId: number | undefined) =>\n (state: AppState): EARN_TYPE =>\n _.get(state.earn.chainFormType, [chainId || ''], EARN_TYPE.ADD_LIQ);\n\nexport const selectAddLiquiditySimulation =\n (chainId: number | undefined) =>\n (state: AppState): IAddLiquiditySimulation | undefined =>\n _.get(state.earn.chainAddLiquiditySimulation, [chainId || '']);\nexport const selectAddLiquidityFormStateByChainId =\n (chainId: number | undefined) =>\n (state: AppState): IAddLiquidityFormState =>\n _.get(state.earn.chainAddLiquidityFormState, [chainId || ''], { chainId });\nexport const selectAddLiquidityFormStatusByChainId =\n (chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.earn.chainAddLiquidityFormStatus, [chainId || ''], FETCHING_STATUS.DONE);\n\nexport const selectRemoveLiquiditySimulation =\n (chainId: number | undefined) =>\n (state: AppState): IRemoveLiquiditySimulation | undefined =>\n _.get(state.earn.chainRemoveLiquiditySimulation, [chainId || '']);\nexport const selectRemoveLiquidityFormStateByChainId =\n (chainId: number | undefined) =>\n (state: AppState): IRemoveLiquidityFormState =>\n _.get(state.earn.chainRemoveLiquidityFormState, [chainId || ''], { chainId });\nexport const selectRemoveLiquidityFormStatusByChainId =\n (chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.earn.chainRemoveLiquidityFormStatus, [chainId || ''], FETCHING_STATUS.DONE);\nexport const selectRemoveLiquiditySuccess =\n (chainId: number | undefined) =>\n (state: AppState): boolean =>\n _.get(state.earn.chainRemoveLiquiditySuccess, [chainId || '']);\n\nexport const selectCurrentRangeId =\n (chainId: number | undefined) =>\n (state: AppState): string =>\n _.get(state.earn.chainCurrentRangeId, [chainId || '']);\n\nexport const selectAllowUnauthorizedLPs =\n (chainId: number | undefined, quoteAddr: string | undefined) =>\n (state: AppState): boolean =>\n _.get(state.earn.chainAllowUnauthorizedLPs, [chainId || '', quoteAddr || '']);\n\nexport const selectWhiteList =\n (chainId: number | undefined, quoteAddr: string | undefined) =>\n (state: AppState): string[] =>\n _.get(state.earn.chainWhitelist, [chainId || '', quoteAddr || '', 'list'], []);\n\nexport const selectWhiteListFetchingStatus =\n (chainId: number | undefined, quoteAddr: string | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.earn.chainWhitelist, [chainId || '', quoteAddr || '', 'status']);\n\nexport const selectChainPoolFilters =\n (chainId: number | undefined) =>\n (state: AppState): ILiquidityFilters | undefined =>\n _.get(state.earn.chainPoolListFilters, [chainId || '']);\n\nexport const selectEarnPortfolioTab = (state: AppState): TABLE_TYPES => state.earn.earnPortfolioTab;\n","import _ from 'lodash';\n\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { LEVERAGE_CHOSEN, MOBILE_MINT_TOASTER, PAIR_CHOSEN } from '@/constants/storage';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { ILeverageStorage, IMobileMintStorage, IPairStorage, LEVERAGE_KEY_TYPE } from '@/types/storage';\n\nexport function getLeverageChosen(): ILeverageStorage {\n const storageStr = localStorage.getItem(LEVERAGE_CHOSEN);\n return storageStr ? JSON.parse(storageStr) : {};\n}\n\nexport function getSavedPairLeverage(\n userAddr: string | undefined,\n chainId: number | undefined,\n pairId: string | undefined,\n key: LEVERAGE_KEY_TYPE,\n): string | undefined {\n const storage = getLeverageChosen();\n\n const leverage = _.get(storage, [chainId || '', userAddr || '', pairId || '', key]);\n if (WrappedBigNumber.from(leverage).eq(0)) {\n return;\n }\n return leverage;\n}\n\nexport function savePairLeverage(\n userAddr: string,\n chainId: number,\n pairId: string,\n key: LEVERAGE_KEY_TYPE,\n leverage: string,\n): void {\n const storage = getLeverageChosen();\n if (WrappedBigNumber.from(leverage).eq(0)) {\n return;\n }\n _.set(storage, [chainId, userAddr, pairId, key], leverage);\n localStorage.setItem(LEVERAGE_CHOSEN, JSON.stringify(storage));\n}\nexport function getPairChosen(): IPairStorage {\n const storageStr = localStorage.getItem(PAIR_CHOSEN);\n return storageStr ? JSON.parse(storageStr) : {};\n}\n\nexport function getSavedPairChosen(\n userAddr: string | undefined,\n chainId: number | undefined,\n key: PAIR_PAGE_TYPE,\n): string | undefined {\n const storage = getPairChosen();\n return _.get(storage, [chainId || '', userAddr || '', key]);\n}\n\nexport function savePairChosen(userAddr: string, chainId: number, pairSymbol: string, key: PAIR_PAGE_TYPE): void {\n const storage = getPairChosen();\n _.set(storage, [chainId, userAddr, key], pairSymbol);\n localStorage.setItem(PAIR_CHOSEN, JSON.stringify(storage));\n}\n\nexport function getMobileMintStorage(): IMobileMintStorage {\n const storageStr = localStorage.getItem(MOBILE_MINT_TOASTER);\n return storageStr ? JSON.parse(storageStr) : {};\n}\n\nexport function getMobileMint(chainId: number): boolean {\n const storage = getMobileMintStorage();\n return storage[chainId] || false;\n}\n\nexport function saveMobileMint(chainId: number, hasMint: boolean): void {\n const storage = getMobileMintStorage();\n _.set(storage, [chainId], hasMint);\n localStorage.setItem(MOBILE_MINT_TOASTER, JSON.stringify(storage));\n}\n","import { DepthChartData } from '@synfutures/sdks-perp-datasource';\nimport _ from 'lodash';\n\nexport function transformData(data: DepthChartData[] | undefined): DepthChartData[] {\n data = _.cloneDeep(data);\n if (data) {\n let baseAcc = 0;\n const dataRaw = [{ ..._.first(data), base: 0 }, ...data];\n const result = dataRaw.map((d) => {\n baseAcc = baseAcc + d.base;\n d.base = baseAcc;\n return d;\n });\n return result as DepthChartData[];\n }\n return [];\n}\n","export enum MARKET_TABS {\n OVERVIEW = 'Overview',\n TRADING = 'Trading',\n EARNING = 'Earning',\n}\n\nexport enum MARKET_SORTERS {\n APY = 'APY',\n TVL = 'TVL',\n VOLUME_24 = 'VOLUME_24',\n}\nexport enum MARKET_FILTERS {\n ALL = 'ALL',\n PERPETUAL = 'PERPETUAL',\n DATED = 'DATED',\n}\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { createAction, createAsyncThunk } from '@reduxjs/toolkit';\nimport localforage from 'localforage';\nimport _ from 'lodash';\n\nimport { PAIRS_FAVORITES_KEY } from '@/constants/storage';\nimport { IChainPairsFavorites, IMetaPair } from '@/types/pair';\n\nimport { AppState } from '../store';\n\nexport const setMetaPair = createAction<{ chainId: CHAIN_ID; pairId: string; pair: Partial }>(\n 'pair/setMetaPair',\n);\n\nexport const setChainPairFavorites = createAction('pair/setChainPairFavorites');\n\nexport const saveChainPairFavorite = createAsyncThunk(\n 'pair/setChainPairFavorite',\n async ({ chainId, key, value }: { chainId: CHAIN_ID; key: string; value: boolean }, { getState, dispatch }) => {\n const {\n pair: { chainPairFavorites },\n } = getState() as AppState;\n const favorites = _.cloneDeep(chainPairFavorites);\n if (!value) {\n // just remove storage\n _.unset(favorites, [chainId, key]);\n } else {\n _.set(favorites, [chainId, key], value);\n }\n\n await localforage.setItem(PAIRS_FAVORITES_KEY, favorites);\n dispatch(setChainPairFavorites(favorites));\n },\n);\n","import _ from 'lodash';\nimport { useCallback, useMemo } from 'react';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { saveChainPairFavorite } from '@/features/pair/actions';\nimport { useChainPairFavorites, useDisplayPairList } from '@/features/pair/hook';\nimport { IFavorites, IMarketPair } from '@/types/pair';\n\nimport { useMarketList } from '@/features/market/hooks';\nimport { useAppDispatch } from '.';\n\nexport function useFavorites(chainId: number | undefined): IFavorites {\n const chainPairFavorites = useChainPairFavorites();\n return useMemo(\n () =>\n !!chainId\n ? _.get(chainPairFavorites, [chainId || ''], {} as IFavorites)\n : _.merge({}, ..._.values(chainPairFavorites)),\n [chainId, chainPairFavorites],\n );\n}\n\nexport function useFavorite(\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: string | undefined,\n): boolean {\n const favorites = useFavorites(chainId);\n return useMemo(\n () => _.get(favorites, [`${instrumentAddr}-${expiry}-${chainId}`]),\n [favorites, instrumentAddr, expiry, chainId],\n );\n}\n\nexport function useSaveFavorite(\n chainId: number | undefined,\n): (instrumentAddr: string, expiry: string, value: boolean) => void {\n const dispatch = useAppDispatch();\n return useCallback(\n (instrumentAddr: string, expiry: string, value: boolean) => {\n chainId &&\n dispatch(\n saveChainPairFavorite({\n chainId,\n key: `${instrumentAddr}-${expiry}-${chainId}`,\n value,\n }),\n );\n },\n [chainId, dispatch],\n );\n}\n\nexport function useFavPairs(chainId: CHAIN_ID | undefined): WrappedPair[] {\n const pairs = useDisplayPairList(chainId);\n const favorites = useFavorites(chainId);\n return useMemo(() => {\n return pairs.filter((p) => _.get(favorites, [`${p?.rootInstrument.instrumentAddr}-${p.expiry}-${p.chainId}`]));\n }, [favorites, pairs]);\n}\nexport function useFavMarketPairs(chainIds: CHAIN_ID[] | undefined): IMarketPair[] | undefined {\n const { marketPairList } = useMarketList(chainIds);\n const favorites = useFavorites(undefined);\n return useMemo(() => {\n return marketPairList?.filter((p) => _.get(favorites, [`${p?.instrumentAddress}-${p.expiry}-${p.chainId}`]));\n }, [favorites, marketPairList]);\n}\n","import { InstrumentCondition, MarketType, PEARL_SPACING, Side, Status } from '@synfutures/sdks-perp';\n// import BN from 'bignumber.js';\nimport _ from 'lodash';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { getOracleConfig } from '@/configs';\nimport { CHAIN_ID } from '@/constants/chain';\nimport { MMR_RATIO, PAIR_RATIO_BASE } from '@/constants/global';\nimport { WrappedBigNumber, WrappedBigNumberLike } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { Context } from '@derivation-tech/context';\n\nimport { CreativePair, IChainPairsFavorites, IMetaPair, IOracleInfo } from '@/types/pair';\nimport { TokenInfo } from '@/types/token';\nimport { getChainIdByChainShortName } from '@/utils/chain';\nimport { getSavedPairChosen } from '@/utils/localstorage';\nimport { formatNumber, inputNumChecker } from '@/utils/numberUtil';\nimport { getAdjustTradeSide, getDisplayExpiry, isDisableExpiredPair, isPairExpiredToday } from '@/utils/pairs';\n\nimport { getPairId } from '@/utils/transform/transformId';\nimport { useAsyncEffect } from 'ahooks';\nimport { useBackendChainConfig } from '../config/hook';\nimport {\n useMarketPairInfo,\n useMarketWrappedInstrument,\n useWrappedInstrument,\n useWrappedInstrumentMap,\n} from '../futures/hooks';\nimport { useCurrentMarketType } from '../global/hooks';\nimport { useTokenPrices } from '../global/query';\nimport {\n useCreativePairList,\n useCurrentMarketPairFromUrl,\n useDefaultPairSymbolFromUrlOrFallbackLocalOrApi,\n} from '../market/hooks';\nimport { getLimitAlignPriceWad } from '../trade/actions';\nimport { useSDK } from '../web3/hook';\nimport { selectChainMetaPair, selectChainPairFavorites, selectMetaPair } from './pairSlice';\n// import { useTokenPriceInfoMap } from '../global/hooks';\n\nexport function useMetaPairMap(chainId: number | undefined): Record {\n const pairs = useAppSelector(selectChainMetaPair(chainId));\n return useMemo(() => pairs || {}, [pairs]);\n}\n\nexport function useMetaPair(chainId: CHAIN_ID | undefined, pairId: string | undefined): IMetaPair | undefined {\n const pair = useAppSelector(selectMetaPair(chainId, pairId));\n return pair;\n}\n\nexport function useWrappedPairMap(chainId: CHAIN_ID | undefined): { [pairId: string]: WrappedPair } {\n const originPairMap = useMetaPairMap(chainId);\n\n const futuresCoreMap = useWrappedInstrumentMap(chainId);\n const { data: priceMap } = useTokenPrices({ chainId });\n\n return useMemo(() => {\n if (!chainId || !futuresCoreMap) return {};\n return _.mapValues(originPairMap, (originPair) => {\n let pair = WrappedPair.getInstance(originPair.id, chainId);\n if (futuresCoreMap[originPair.instrumentId]) {\n if (!pair) {\n pair = WrappedPair.wrapInstance({\n metaPair: originPair,\n rootInstrument: futuresCoreMap[originPair.instrumentId],\n });\n // TODO uncomment this later\n // pair && futuresCoreMap[originPair.instrumentId].setPair(pair.expiry, pair);\n } else {\n pair.fillField(originPair);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return pair!;\n });\n // must include pricemap\n }, [chainId, originPairMap, futuresCoreMap, priceMap]);\n}\n\nexport function useWrappedPairList(chainId: CHAIN_ID | undefined): WrappedPair[] {\n const pairMap = useWrappedPairMap(chainId);\n return useMemo(() => {\n return Object.values(pairMap || {});\n }, [pairMap]);\n}\n\nexport function useDisplayPairList(chainId: CHAIN_ID | undefined, isFilterAbnormalPair = true): WrappedPair[] {\n const pairList = useWrappedPairList(chainId);\n // const tokenPriceMap = useTokenPriceInfoMap(chainId);\n\n const displayList = useMemo(() => {\n return pairList.filter((pair) => {\n return isFilterAbnormalPair\n ? pair?.rootInstrument?.condition === InstrumentCondition.NORMAL && pair?.status !== Status.SETTLED\n : true;\n });\n }, [isFilterAbnormalPair, pairList]);\n\n return useMemo(() => displayList.filter((p) => !!p), [displayList]);\n}\nexport function useDisplayPairMargins(chainId: CHAIN_ID | undefined): string[] {\n const pairs = useDisplayPairList(chainId);\n return useMemo(() => {\n const symbols = pairs.map((p) => p.rootInstrument?.marginToken.symbol);\n return _.uniq(symbols) as string[];\n }, [pairs]);\n}\n\n// export function useChainPairStats(chainId: CHAIN_ID | undefined): ListStatus {\n// const chainPairStats = useAppSelector(selectChainPairStats);\n\n// return useMemo(() => {\n// if (chainId) {\n// const pairStats = _.get(chainPairStats, [chainId]);\n// if (pairStats) return pairStats;\n// }\n\n// return {} as ListStatus;\n// }, [chainId, chainPairStats]);\n// }\n// export function usePairStatsMap(chainId: CHAIN_ID | undefined): { [pairId: string]: WrappedPairData } {\n// const chainPairStats = useChainPairStats(chainId);\n// return useMemo(() => _.get(chainPairStats, ['list']), [chainPairStats]);\n// }\n// export function usePairStats(pairId: string | undefined, chainId: CHAIN_ID | undefined): WrappedPairData | undefined {\n// // const chainPairStats = useChainPairStats();\n// const singlePairStats = useAppSelector(selectSinglePairStats(chainId, pairId));\n\n// const pair = useWrappedPair(chainId, pairId);\n// // const singlePairStats = useMemo(() => _.get(chainPairStats, ['list', pairId || '']), [chainPairStats, pairId]);\n// useEffect(() => {\n// pair && singlePairStats && pair.setPairStats(new WrappedPairData(singlePairStats));\n// }, [pair, singlePairStats]);\n\n// return singlePairStats;\n// }\n\nexport function useWrappedPair(chainId: CHAIN_ID | undefined, pairId: string | undefined): WrappedPair | undefined {\n const metaPair = useMetaPair(chainId, pairId);\n const wrappedFutures = useWrappedInstrument(chainId, metaPair?.instrumentId);\n const { data: priceMap } = useTokenPrices({ chainId });\n const pair = useMemo(() => {\n if (metaPair && wrappedFutures) {\n let pair = WrappedPair.getInstance(metaPair.id, chainId);\n if (!pair) pair = WrappedPair.wrapInstance({ metaPair, rootInstrument: wrappedFutures });\n else {\n pair.fillField(metaPair);\n }\n return pair;\n }\n return undefined;\n // must include priceMap\n }, [chainId, metaPair, wrappedFutures, priceMap]);\n return pair;\n}\n\nexport function useCurrentPairFromUrl(\n chainId: number | undefined,\n isFilterAbnormalPair = true,\n): WrappedPair | undefined {\n const { pairSymbol, chainShortName } = useParams();\n const chainIdFromUrl = useMemo(() => {\n return chainShortName ? getChainIdByChainShortName(chainShortName) : undefined;\n }, [chainShortName]);\n const symbolInStorage = useDefaultPairSymbolFromUrlOrFallbackLocalOrApi(chainId);\n const pairList = useDisplayPairList(chainId, isFilterAbnormalPair);\n const dormantPairList = useDormantPair(chainId);\n const pair = useMemo(() => {\n if (chainIdFromUrl !== chainId) return undefined;\n\n const symbol = pairSymbol || symbolInStorage;\n return [...pairList, ...dormantPairList].find((wp) => wp.symbol === symbol);\n }, [chainId, chainIdFromUrl, dormantPairList, pairList, pairSymbol, symbolInStorage]);\n // useEffect(() => {\n // pair && console.log('🚩useCurrentPairFromUrl----> current pair', pairSymbol, pair);\n // }, [pairSymbol]);\n\n const currentPairFromApi = useCurrentWrappedPairFromApi(chainId);\n\n const currPairInfo = useMarketPairInfo(chainId, pair?.instrumentAddr, pair?.expiry);\n\n return useMemo(() => {\n const current = currentPairFromApi || pair;\n\n currPairInfo && current?.setPairStats(currPairInfo);\n return current;\n }, [currPairInfo, currentPairFromApi, pair]);\n}\n\nexport function useCurrentWrappedPairFromApi(chainId: number | undefined): WrappedPair | undefined {\n const { pairSymbol, chainShortName } = useParams();\n const pairFromApi = useCurrentMarketPairFromUrl(chainId);\n const chainIdFromUrl = useMemo(() => {\n return chainShortName ? getChainIdByChainShortName(chainShortName) : undefined;\n }, [chainShortName]);\n const symbolInStorage = useDefaultPairSymbolFromUrlOrFallbackLocalOrApi(chainId);\n\n const dormantPairList = useDormantPair(chainId);\n\n const marketWrappedInstrument = useMarketWrappedInstrument(\n chainIdFromUrl || undefined,\n pairFromApi?.instrumentAddress,\n );\n\n const currentPair = useMemo(() => {\n if (marketWrappedInstrument?.pairMap) {\n const pairs = Object.values(marketWrappedInstrument?.pairMap);\n const symbol = pairSymbol || symbolInStorage;\n return [...pairs, ...dormantPairList].find((pair) => pair.symbol === symbol);\n }\n }, [dormantPairList, marketWrappedInstrument?.pairMap, pairSymbol, symbolInStorage]);\n\n return currentPair;\n}\n\nexport function useCurrentPairByDevice(chainId: number | undefined): WrappedPair | undefined {\n const { isMobile } = useMediaQueryDevice();\n const currentPairFromChain = useCurrentPairFromUrl(chainId);\n const currentPairFromUrl = useCurrentPairFromUrl(chainId);\n const pair = useMemo(\n () => (isMobile ? currentPairFromChain : currentPairFromUrl),\n [currentPairFromChain, currentPairFromUrl, isMobile],\n );\n return pair;\n}\nexport function useCurrentNewPairFromUrl(chainId: number | undefined): CreativePair | undefined {\n const { pairSymbol } = useParams();\n const userAddr = useUserAddr();\n const marketType = useCurrentMarketType();\n const symbolInStorage = marketType ? getSavedPairChosen(userAddr, chainId, marketType) : undefined;\n const newPairs = useCreativePairList(chainId);\n const pair = useMemo(\n () =>\n pairSymbol\n ? newPairs.find((wp) => wp.symbol === pairSymbol)\n : newPairs.find((wp) => wp.symbol === symbolInStorage),\n [newPairs, pairSymbol, symbolInStorage],\n );\n\n return pair;\n}\nexport function useCombinedPairFromUrl(\n chainId: number | undefined,\n isFilterAbnormalPair = true,\n tradableOnly = false,\n): WrappedPair | CreativePair | undefined {\n const pair = usePairFromUrl(chainId, isFilterAbnormalPair);\n const newPair = useCurrentNewPairFromUrl(chainId);\n return useMemo(() => {\n return tradableOnly ? pair : pair || newPair;\n }, [pair, tradableOnly, newPair]);\n}\nexport function usePairFromUrl(chainId: number | undefined, isFilterAbnormalPair = true): WrappedPair | undefined {\n const { isMobile } = useMediaQueryDevice();\n const pair = useCurrentPairFromUrl(chainId, isFilterAbnormalPair);\n return useMemo(() => {\n if (pair && !pair.isNormalPair) {\n return undefined;\n }\n return pair;\n }, [isMobile, pair]);\n}\n\nexport function useChainPairFavorites(): IChainPairsFavorites {\n return useAppSelector(selectChainPairFavorites);\n}\n\nexport function useDormantPair(chainId: CHAIN_ID | undefined): WrappedPair[] {\n const wrappedPairList = useWrappedPairList(chainId);\n\n return useMemo(() => {\n const unInitiatedPairs = wrappedPairList.filter(\n (p) =>\n p.rootInstrument.condition === InstrumentCondition.NORMAL &&\n p.liquidity.eq(0) &&\n p?.status === Status.DORMANT &&\n // filter expired pair\n !isDisableExpiredPair(p) &&\n !isPairExpiredToday(p.expiry),\n );\n return unInitiatedPairs;\n }, [wrappedPairList]);\n}\n\nexport function usePairInfo(pair: WrappedPair | undefined):\n | {\n displayBaseToken: TokenInfo;\n displayQuoteToken: TokenInfo;\n marginToken: TokenInfo;\n expiry: string;\n minQuoteTradeSize: WrappedBigNumber;\n imrRate: WrappedBigNumber;\n mmrRate: WrappedBigNumber;\n tip: WrappedBigNumber;\n tradingFeeRatio: WrappedBigNumber;\n protocolFeeRatio: WrappedBigNumber;\n oracleInfo: IOracleInfo;\n }\n | undefined {\n const oracleConfigConfig = useMemo(() => {\n return getOracleConfig();\n }, []);\n const pairInfo = useMemo(() => {\n if (pair) {\n const displayBaseToken = pair.rootInstrument.displayBaseToken;\n const displayQuoteToken = pair.rootInstrument.displayQuoteToken;\n const marginToken = pair.rootInstrument.marginToken;\n const expiry = getDisplayExpiry(pair.expiry);\n const imrRate = WrappedBigNumber.from(pair.rootInstrument.setting.initialMarginRatio).div(PAIR_RATIO_BASE);\n const minQuoteTradeSize = WrappedBigNumber.from(pair.rootInstrument.setting.quoteParam.minMarginAmount).div(\n imrRate,\n );\n const mmrRate = WrappedBigNumber.from(pair.rootInstrument.setting.maintenanceMarginRatio).div(PAIR_RATIO_BASE);\n const tip = WrappedBigNumber.from(pair.rootInstrument.setting.quoteParam.tip);\n const tradingFeeRatio = WrappedBigNumber.from(pair.rootInstrument.setting.quoteParam.tradingFeeRatio).div(\n PAIR_RATIO_BASE,\n );\n const protocolFeeRatio = WrappedBigNumber.from(pair.rootInstrument.setting.quoteParam.protocolFeeRatio).div(\n PAIR_RATIO_BASE,\n );\n const oracleInfo = oracleConfigConfig[pair.rootInstrument.marketType];\n return {\n displayBaseToken,\n displayQuoteToken,\n marginToken,\n expiry,\n minQuoteTradeSize,\n imrRate,\n mmrRate,\n tip,\n tradingFeeRatio,\n protocolFeeRatio,\n oracleInfo,\n };\n }\n }, [oracleConfigConfig, pair]);\n return pairInfo;\n}\nexport function useGetAlignedPrice(\n sdkContext: Context | undefined,\n pair: WrappedPair | undefined,\n): (\n price: WrappedBigNumberLike,\n side: Side,\n) => Promise<\n | {\n tick: number;\n originPrice: WrappedBigNumber;\n adjustPrice: WrappedBigNumber;\n }\n | undefined\n> {\n const dispatch = useAppDispatch();\n const getAlignPriceWad = useCallback(\n async (\n price: WrappedBigNumberLike,\n side: Side,\n ): Promise<\n | {\n tick: number;\n originPrice: WrappedBigNumber;\n adjustPrice: WrappedBigNumber;\n }\n | undefined\n > => {\n if (sdkContext) {\n try {\n if (pair) {\n const originPrice = WrappedBigNumber.from(price || 0);\n const adjustedSide = getAdjustTradeSide(side, pair.isInverse);\n const result = await dispatch(\n getLimitAlignPriceWad({\n sdkContext,\n isInverse: pair?.isInverse || false,\n limitPrice: originPrice,\n instrumentAddr: pair.instrumentAddr,\n }),\n ).unwrap();\n if (result) {\n if (\n inputNumChecker(WrappedBigNumber.from(price).stringValue, pair.priceDecimal) !==\n inputNumChecker(result.adjustPrice.stringValue, pair.priceDecimal)\n ) {\n let tick = result?.tick;\n let adjustPrice = result?.adjustPrice;\n // can not place order on current amm tick\n if (adjustedSide === Side.LONG && result?.tick >= pair.tick) {\n tick = tick - PEARL_SPACING;\n const tickPrice = await sdkContext?.perp?.calc?.getWadAtTick(pair.instrumentAddr, tick);\n adjustPrice = WrappedBigNumber.from(tickPrice);\n }\n if (adjustedSide === Side.SHORT && result?.tick <= pair.tick) {\n tick = tick + PEARL_SPACING;\n const tickPrice = await sdkContext?.perp?.calc?.getWadAtTick(pair.instrumentAddr, tick);\n adjustPrice = WrappedBigNumber.from(tickPrice);\n }\n return { ...result, tick, adjustPrice };\n }\n return { ...result, adjustPrice: originPrice };\n }\n }\n return undefined;\n } catch (e) {\n console.log('🚀 ~ file: index.tsx:76 ~ e:', e);\n return undefined;\n }\n }\n },\n [dispatch, pair, sdkContext],\n );\n\n return getAlignPriceWad;\n}\nexport function usePairAdjustedRange(\n pair: WrappedPair | undefined,\n tradeSide: Side,\n sdkContext: Context | undefined,\n isTurnOnCrossMarket?: boolean,\n): (WrappedBigNumber | undefined)[] {\n const [upperPrice, setUpperPrice] = useState(undefined);\n const [lowerPrice, setLowerPrice] = useState(undefined);\n const getUpperLowerPrice = useCallback(async () => {\n if (pair && sdkContext) {\n try {\n const { lowerTick, upperTick } = pair.placeOrderLimit;\n const markPrice = pair.wrapAttribute('markPrice');\n const { lowerPrice: lowerLimit, upperPrice: upperLimit } = await sdkContext?.perp?.calc?.getWadAtTicks(\n pair.instrumentAddr,\n lowerTick,\n upperTick,\n );\n\n // mmr limit for cross market\n const mmrRatio = pair?.rootInstrument.setting.maintenanceMarginRatio / PAIR_RATIO_BASE;\n\n let upperMaxLimit = WrappedBigNumber.from(pair.isInverse ? lowerLimit : upperLimit);\n if (isTurnOnCrossMarket && tradeSide === Side.LONG) {\n upperMaxLimit = markPrice.mul(1 + mmrRatio);\n }\n\n if (upperMaxLimit) {\n setUpperPrice(\n WrappedBigNumber.from(\n formatNumber(\n upperMaxLimit.stringValue,\n pair.priceDecimal,\n false,\n // pair.isInverse ? BN.ROUND_CEIL : BN.ROUND_DOWN,\n ),\n ),\n );\n }\n\n let lowerMaxLimit = WrappedBigNumber.from(pair.isInverse ? upperLimit : lowerLimit);\n if (isTurnOnCrossMarket && tradeSide === Side.SHORT) {\n lowerMaxLimit = markPrice.mul(1 - mmrRatio);\n }\n\n if (lowerMaxLimit) {\n setLowerPrice(\n WrappedBigNumber.from(\n formatNumber(\n lowerMaxLimit.stringValue,\n pair.priceDecimal,\n false,\n // pair.isInverse ? BN.ROUND_DOWN : BN.ROUND_CEIL,\n // BN.ROUND_CEIL,\n ),\n ),\n );\n }\n } catch (e) {}\n }\n }, [isTurnOnCrossMarket, pair, sdkContext, tradeSide]);\n\n useAsyncEffect(async () => {\n await getUpperLowerPrice();\n }, [pair?.fairPrice._hex, pair?.priceDecimal, pair?.markPrice._hex, isTurnOnCrossMarket, tradeSide]);\n return useMemo(() => {\n if (pair) {\n return [lowerPrice, upperPrice];\n }\n\n return [];\n }, [pair, lowerPrice, upperPrice]);\n}\nexport function useGetAlignedFairPrice(\n pair: WrappedPair | undefined,\n): (side: Side) => Promise {\n const sdk = useSDK(pair?.chainId);\n const getAlignedFairPrice = useCallback(\n async (side: Side) => {\n if (pair?.fairPrice && sdk) {\n let newTick = Math.floor(pair?.tick / PEARL_SPACING) * PEARL_SPACING;\n if (pair?.isInverse) {\n if (side == Side.LONG) {\n newTick = newTick + PEARL_SPACING;\n }\n if (side === Side.SHORT) {\n if (newTick === pair?.tick) {\n newTick = newTick - PEARL_SPACING;\n }\n }\n } else {\n if (side == Side.LONG) {\n if (newTick === pair?.tick) {\n newTick = newTick - PEARL_SPACING;\n }\n }\n if (side === Side.SHORT) {\n newTick = newTick + PEARL_SPACING;\n }\n }\n const priceWad = await sdk?.perp?.calc?.getWadAtTick(pair?.instrumentAddr, newTick);\n const adjustPrice = WrappedBigNumber.from(priceWad);\n if (adjustPrice) {\n return WrappedBigNumber.from(\n formatNumber(\n adjustPrice.stringValue,\n pair.priceDecimal,\n false,\n // side === Side.LONG ? BN.ROUND_DOWN : BN.ROUND_CEIL,\n ),\n );\n }\n }\n },\n [pair?.fairPrice, pair?.instrumentAddr, pair?.isInverse, pair?.priceDecimal, pair?.tick, sdk],\n );\n\n return getAlignedFairPrice;\n}\nexport function usePairLimitPriceRange(\n pair: WrappedPair | undefined,\n side: Side,\n sdkContext: Context | undefined,\n isTurnOnCrossMarket?: boolean,\n): [WrappedBigNumber | undefined, WrappedBigNumber | undefined] {\n const [alignedFairPrice, setAlignedFairPrice] = useState();\n const getAlignedFairPrice = useGetAlignedFairPrice(pair);\n const [adjustedLowerPrice, adjustedUpperPrice] = usePairAdjustedRange(pair, side, sdkContext, isTurnOnCrossMarket);\n const alignFairPrice = useCallback(async () => {\n if (pair?.fairPrice) {\n const alignedFairPrice = await getAlignedFairPrice(side);\n alignedFairPrice && setAlignedFairPrice(alignedFairPrice);\n }\n }, [getAlignedFairPrice, pair?.fairPrice, side]);\n useEffect(() => {\n alignFairPrice();\n // only depend on this\n // update aligned fairPrice on fairPrice change\n }, [pair?.fairPrice._hex, pair?.markPrice._hex, side]);\n return useMemo(() => {\n const adjustSide = side;\n if (adjustedLowerPrice && adjustedUpperPrice && alignedFairPrice) {\n if (adjustSide === Side.LONG) {\n return [adjustedLowerPrice, isTurnOnCrossMarket ? adjustedUpperPrice : alignedFairPrice];\n }\n return [isTurnOnCrossMarket ? adjustedLowerPrice : alignedFairPrice, adjustedUpperPrice];\n }\n return [undefined, undefined];\n }, [adjustedLowerPrice, adjustedUpperPrice, alignedFairPrice, isTurnOnCrossMarket, side]);\n}\nexport function usePairLimitPriceRangeTicks(\n pair: WrappedPair | undefined,\n side: Side,\n sdkContext: Context | undefined,\n isTurnOnCrossMarket?: boolean,\n): number[] {\n const getAlignPriceWad = useGetAlignedPrice(sdkContext, pair);\n const [lowerUpperTicks, setLowerUpperTicks] = useState([]);\n const [lowerPrice, upperPrice] = usePairLimitPriceRange(pair, side, sdkContext, isTurnOnCrossMarket);\n const getUpperLowerTicks = useCallback(async () => {\n if (upperPrice && lowerPrice) {\n const alignedUpper = await getAlignPriceWad(upperPrice?.stringValue, side);\n const alignedLower = await getAlignPriceWad(lowerPrice?.stringValue, side);\n if (alignedLower && alignedUpper) {\n setLowerUpperTicks([\n alignedLower?.tick * (pair?.isInverse ? -1 : 1),\n alignedUpper?.tick * (pair?.isInverse ? -1 : 1),\n ]);\n }\n }\n }, [upperPrice, lowerPrice, getAlignPriceWad, side, pair?.isInverse]);\n useEffect(() => {\n getUpperLowerTicks();\n }, [getUpperLowerTicks]);\n return lowerUpperTicks;\n}\n\nexport function useGetDefaultLimitPrice(\n currentPair: WrappedPair | undefined,\n side: Side,\n sdkContext: Context | undefined,\n): (tradeSide?: Side) => Promise<{ tick: number; adjustPrice: WrappedBigNumber } | undefined> {\n const getAlignPriceWad = useGetAlignedPrice(sdkContext, currentPair);\n const getDefaultLimitPrice = useCallback(\n async (tradeSide?: Side): Promise<{ tick: number; adjustPrice: WrappedBigNumber } | undefined> => {\n if (currentPair?.fairPrice) {\n const adjustSide = tradeSide || side;\n const alignedPrice = await getAlignPriceWad(\n currentPair\n ?.wrapAttribute('fairPrice')\n .mul(\n 1 +\n ((MMR_RATIO * currentPair.rootInstrument.metaFutures.setting.maintenanceMarginRatio) /\n PAIR_RATIO_BASE) *\n (adjustSide === Side.SHORT ? 1 : -1),\n ),\n tradeSide || side,\n );\n if (alignedPrice) {\n return alignedPrice;\n }\n }\n },\n [currentPair, side, getAlignPriceWad],\n );\n\n return getDefaultLimitPrice;\n}\n\nexport function usePairDisabledForLimit(pair: WrappedPair | undefined): {\n inDisabledPairs: boolean | undefined;\n pairDisabledInLimit: boolean | undefined;\n} {\n const chainId = useChainId();\n const dappConfig = useBackendChainConfig(chainId);\n const inDisabledPairs = useMemo(\n // read from contract to check if pair is disabled\n () => !!pair?.symbol && (!pair?.withinDeviationLimit || pair?.rootInstrument?.placePaused),\n [pair?.symbol, pair?.withinDeviationLimit, pair?.rootInstrument?.placePaused],\n );\n const pairDisabledInLimit = useMemo(\n () => dappConfig?.trade.isDisableLimitOrder || inDisabledPairs,\n [dappConfig?.trade.isDisableLimitOrder, inDisabledPairs],\n );\n\n return { inDisabledPairs, pairDisabledInLimit };\n}\n\nexport function useCurrentPairBaseInfoFromUrl(\n chainId: number | undefined,\n isFilterAbnormalPair = true,\n):\n | {\n id: string;\n chainId: CHAIN_ID;\n instrumentAddr: string;\n expiry: number;\n symbol: string;\n maxLeverage: number;\n rootInstrument: {\n marketType: MarketType;\n instrumentAddr: string;\n id: string;\n baseToken: TokenInfo;\n quoteToken: TokenInfo;\n isInverse: boolean;\n };\n }\n | undefined {\n const pairFromChain = useCurrentPairFromUrl(chainId, isFilterAbnormalPair);\n const pairFromApi = useCurrentMarketPairFromUrl(chainId);\n return useMemo(() => {\n if (!chainId) return;\n if (pairFromChain) {\n return pairFromChain;\n }\n if (pairFromApi)\n return {\n chainId: chainId,\n id: getPairId(pairFromApi?.instrumentAddress, pairFromApi?.expiry),\n instrumentAddr: pairFromApi?.instrumentAddress,\n expiry: pairFromApi?.expiry,\n symbol: pairFromApi?.pairSymbol,\n maxLeverage: pairFromApi?.maxLeverage,\n rootInstrument: {\n marketType: pairFromApi?.marketType,\n instrumentAddr: pairFromApi?.instrumentAddress,\n id: pairFromApi?.instrumentAddress,\n baseToken: pairFromApi?.baseToken,\n quoteToken: pairFromApi?.quoteToken,\n isInverse: pairFromApi?.isInverse,\n },\n };\n }, [chainId, pairFromApi, pairFromChain]);\n}\n","import { createAction } from '@reduxjs/toolkit';\n\nimport { IMarginSearchProps } from '@/types/search';\n\nexport const setPartialMarginSearchProps = createAction>(\n 'market/setPartialMarginSearchProps',\n);\n","import { S3_PAIRS_KEY } from '@/constants/storage';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { BackendChainsConfig } from '@/types/config';\nimport { IMarketTrendInfo } from '@/types/market';\nimport { CreativePair, IMarketChainPairList, IMarketPair, INewPair } from '@/types/pair';\nimport { axiosGet } from '@/utils/axios';\nimport { getExpiryNumberFromString, getMarginTypeByFeeder } from '@/utils/pairs';\nimport { showProperDateString } from '@/utils/timeUtils';\nimport { mappingToken } from '@/utils/token';\nimport { getPairId } from '@/utils/transform/transformId';\nimport { FeederType, SETTLING_DURATION } from '@synfutures/sdks-perp';\nimport localforage from 'localforage';\nimport _ from 'lodash';\nimport moment from 'moment';\n\nexport const fetchMarketPairList = async (): Promise => {\n const res = await axiosGet({ url: 'https://api.synfutures.com/v3/public/perp/market/list' });\n if (res?.data?.data) {\n const keys = _.keys(res?.data?.data);\n return _.map(keys, (key) => {\n const value = res?.data?.data[key];\n return {\n pairs: value.pairs.map((p: IMarketPair) => {\n const isInverse = p.isInverse;\n return {\n ...p,\n chainId: key,\n id: getPairId(p.instrumentAddress, p.expiry),\n fairPrice: WrappedBigNumber.from(p.fairPrice),\n markPrice: WrappedBigNumber.from(p.markPrice),\n fairPriceChange24h: WrappedBigNumber.from(p.fairPriceChange24h),\n markPriceChange24h: WrappedBigNumber.from(p.fairPriceChange24h),\n liquidityApy: WrappedBigNumber.from(p.liquidityApy),\n volume24h: WrappedBigNumber.from(p.volume24h),\n openInterests: WrappedBigNumber.from(p.openInterests),\n tvl: WrappedBigNumber.from(p.tvl),\n volume24hUsd: WrappedBigNumber.from(p.volume24hUsd),\n tvlUsd: WrappedBigNumber.from(p.tvlUsd),\n effectLiqTvl: WrappedBigNumber.from(p.effectLiqTvl),\n openInterestsUsd: WrappedBigNumber.from(p.openInterestsUsd),\n isInverse,\n longOi: WrappedBigNumber.from(p.longOi),\n shortOi: WrappedBigNumber.from(p.shortOi),\n poolFee24h: WrappedBigNumber.from(p.poolFee24h),\n };\n }),\n chainId: Number(key),\n totalEffectLiqTvlUsd: WrappedBigNumber.from(value.totalEffectLiqTvlUsd),\n totalTvlUsd: WrappedBigNumber.from(value.totalTvlUsd),\n totalVolume24Usd: WrappedBigNumber.from(value.totalVolume24Usd),\n totalOpenInterestsUsd: WrappedBigNumber.from(value.totalOpenInterestsUsd),\n };\n });\n }\n};\n\nexport const fetchMarketCreativePairs = async (\n backendChainsConfig: BackendChainsConfig,\n): Promise | undefined> => {\n // const pairs = (await localforage.getItem(S3_PAIRS_KEY)) || ({} as Record);\n try {\n const res = await axiosGet({ url: 'https://api.synfutures.com/v3/public/perp/market/feature/pairs' });\n if (res?.data?.data) {\n const keys = _.keys(res?.data?.data);\n const values = _.map(keys, (key) =>\n res?.data?.data[key].map((p: INewPair) => ({ ...p, chainId: key })),\n ) as INewPair[][];\n const mappedPairs = values.map((newPairs: INewPair[]) => {\n const mappedNewPairs = _.flatMap(\n newPairs.map((p) => {\n const baseToken = mappingToken({\n token: p.instrument.baseToken,\n chainId: p.chainId,\n marketType: p.instrument.marketType,\n });\n const quoteToken = mappingToken({ token: p.instrument.quoteToken, chainId: p.chainId });\n const pairs = p.expiry.map((exp: string) => {\n const expiry = getExpiryNumberFromString(exp);\n let isInverse = FeederType.BASE_STABLE === p.instrument.feederType;\n // TODO: v3/public/common/inversePairs\n const inverseInstruments = backendChainsConfig[p.chainId]?.['customInverseInstruments'];\n const instrumentSymbol = `${baseToken.symbol}-${quoteToken.symbol}-${p.instrument.marketType}`;\n if (inverseInstruments && inverseInstruments.includes(instrumentSymbol)) {\n isInverse = true;\n }\n return {\n id: `${baseToken.id}-${quoteToken.id}-${expiry}`,\n chainId: p.chainId,\n symbol: `${instrumentSymbol}-${showProperDateString({\n expiry,\n format: 'MMDD',\n })}`,\n rootInstrument: {\n ...p.instrument,\n baseToken,\n quoteToken,\n displaySymbol: isInverse\n ? `${quoteToken.symbol}-${baseToken.symbol}-${p.instrument.marketType}`\n : instrumentSymbol,\n isInverse,\n },\n expiry,\n marginType: getMarginTypeByFeeder(p.instrument.feederType),\n };\n });\n return pairs;\n }),\n );\n return mappedNewPairs;\n });\n const newPairs: CreativePair[] = _.flatMap(mappedPairs);\n\n // if pair expiry, filter it\n const utcAdjustedToday = moment.utc().add(SETTLING_DURATION, 'seconds'); // 30 mins\n const newPairsFiltered = newPairs.filter((pair) => {\n return pair.expiry > utcAdjustedToday.unix();\n });\n\n const s3Pairs = _.keyBy(newPairsFiltered, 'id');\n localforage.setItem(S3_PAIRS_KEY, newPairsFiltered);\n return s3Pairs;\n }\n } catch (e) {\n console.error('🚀 ~ fetchMarketCreativePairs e', e);\n // return pairs as Record;\n throw e;\n }\n};\n\nexport const fetchMarketTrendInfo = async (): Promise => {\n try {\n const response = await axiosGet({\n url: 'https://api.synfutures.com/v3/public/perp/market/cards',\n });\n\n // Validate and transform the response data\n if (response?.data?.data) {\n return response.data.data.map((item: IMarketTrendInfo) => ({\n lightBg: item.lightBg || '',\n darkBg: item.darkBg || '',\n link: item.link || '',\n openNewTab: item.openNewTab || false,\n sort: item.sort || 0,\n }));\n }\n return [];\n } catch (error) {\n console.error('Failed to fetch market trend info:', error);\n throw error;\n }\n};\n","import { QUERY_KEYS } from '@/constants/query';\nimport { useQuery } from '@tanstack/react-query';\nimport { useConfigData } from '../config/hook';\nimport { fetchMarketCreativePairs, fetchMarketPairList, fetchMarketTrendInfo } from './api';\n\nexport const useFetchMarketPairList = () => {\n return useQuery({\n queryKey: QUERY_KEYS.MARKET.PAIR_LIST(),\n queryFn: async () => fetchMarketPairList(),\n });\n};\n\nexport const useFetchMarketCreativePairList = () => {\n const { backendChainsConfig } = useConfigData();\n return useQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.MARKET.CREATIVE_PAIR_LIST(),\n queryFn: async () => fetchMarketCreativePairs(backendChainsConfig),\n // meta: { isPersist: true },\n enabled: !!backendChainsConfig,\n });\n};\n\nexport const useFetchMarketTrendList = () => {\n return useQuery({\n queryKey: QUERY_KEYS.MARKET.TREND_LIST(),\n queryFn: async () => fetchMarketTrendInfo(),\n });\n};\n","import { useCallback, useEffect, useMemo } from 'react';\n\nimport { MARKET_FILTERS } from '@/constants/market';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport {\n ALL_SELECTOR,\n CUSTOM_SELECTOR,\n FAV_SELECTOR,\n // ALL_SELECTOR,\n MARGIN_SELECTORS,\n // MARGIN_TYPE,\n PAIR_DATE_TYPE,\n TPairTypeForMobile,\n} from '@/types/global';\nimport { IMarginSearchProps } from '@/types/search';\n\nimport {\n CHAIN_ID,\n DISPLAYABLE_CHAIN_ID,\n getAllDisplayableChainMarketCustomPairs,\n SUPPORTED_CHAIN_ID,\n} from '@/constants/chain';\nimport { TVL_THRESHHOLD } from '@/constants/global';\nimport { QUERY_KEYS } from '@/constants/query';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useFavMarketPairs } from '@/hooks/useFavorites';\nimport useSocket from '@/hooks/useSocket';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { queryClient } from '@/pages/App';\nimport { CreativePair, IMarketPair, IMarketSummary } from '@/types/pair';\nimport { MESSAGE_TYPE, SUBSCRIBE_TYPE, UNSUBSCRIBE_TYPE } from '@/types/socket';\nimport { getChainIdByChainShortName } from '@/utils/chain';\nimport { getSavedPairChosen } from '@/utils/localstorage';\nimport { getMarginTypeByFeeder } from '@/utils/pairs';\nimport { PERP_EXPIRY } from '@synfutures/sdks-perp';\nimport _ from 'lodash';\nimport { useParams } from 'react-router-dom';\nimport { useConfigData } from '../config/hook';\nimport { useCurrentMarketType } from '../global/hooks';\nimport { setPartialMarginSearchProps } from './actions';\nimport { useFetchMarketCreativePairList, useFetchMarketPairList } from './query';\n\nexport function useMarginSearch(): {\n marginSearchProps: IMarginSearchProps;\n goToSelectorWithFilter: (\n marginSelector: MARGIN_SELECTORS,\n marginCustomSelectorId?: string,\n filter?: MARKET_FILTERS,\n search?: string,\n selectedChainIds?: number[],\n ) => void;\n resetMarginSearch: (filter?: MARKET_FILTERS) => void;\n pairTypeForMobile: TPairTypeForMobile;\n} {\n const dispatch = useAppDispatch();\n const marginSearchProps = useAppSelector((state) => state.market.marginSearchProps);\n const goToSelectorWithFilter = useCallback(\n (\n marginSelector: MARGIN_SELECTORS,\n marginCustomSelectorId?: string,\n filter = MARKET_FILTERS.PERPETUAL,\n search?: string,\n selectedChainIds?: number[],\n ) => {\n dispatch(\n setPartialMarginSearchProps({\n marginSelector: marginSelector || marginSearchProps.marginSelector,\n filter: filter || marginSearchProps.filter || MARKET_FILTERS.ALL,\n marginCustomSelectorId: marginCustomSelectorId || marginSearchProps.marginCustomSelectorId || null,\n search,\n selectedChainIds: selectedChainIds !== undefined ? selectedChainIds : marginSearchProps.selectedChainIds,\n }),\n );\n },\n [dispatch, marginSearchProps],\n );\n const resetMarginSearch = useCallback(\n (filter = MARKET_FILTERS.PERPETUAL) => {\n dispatch(\n setPartialMarginSearchProps({\n // marginSelector: undefined,\n filter,\n marginSelector: ALL_SELECTOR.ALL,\n marginCustomSelectorId: null,\n }),\n );\n },\n [dispatch],\n );\n const pairTypeForMobile: TPairTypeForMobile = useMemo(() => {\n const { filter } = marginSearchProps;\n if (filter == MARKET_FILTERS.DATED) {\n return PAIR_DATE_TYPE.DATED;\n }\n if (filter == MARKET_FILTERS.PERPETUAL) {\n return PAIR_DATE_TYPE.PERPETUAL;\n }\n // if (marginSelector === ALL_SELECTOR.ALL) return undefined;\n // if (marginSelector === MARGIN_TYPE.COIN || marginSelector === MARGIN_TYPE.USD) {\n // return marginSelector as TPairTypeForMobile;\n // }\n return undefined;\n }, [marginSearchProps]);\n\n return {\n goToSelectorWithFilter,\n marginSearchProps,\n resetMarginSearch,\n pairTypeForMobile,\n };\n}\n\nexport function useMarketList(chainIds?: (CHAIN_ID | undefined)[], exclude?: boolean) {\n const { data: marketChainPairList, isFetched } = useFetchMarketPairList();\n const { backendChainsConfig } = useConfigData();\n const pairsToBeExcluded: string[] = useMemo(\n () =>\n _.flatMap(\n chainIds?.map((chainId) => _.get(backendChainsConfig, [chainId || ''])?.pairsToBeFilteredInMarketAndEarn),\n ),\n [backendChainsConfig, chainIds],\n );\n const marketPairList = useMemo(() => {\n return _.flatMap(\n marketChainPairList\n ?.filter((item) => SUPPORTED_CHAIN_ID.includes(Number(item.chainId)))\n ?.filter((item) => (!!chainIds?.length ? chainIds.includes(item.chainId) : true))\n .map((v) => v.pairs),\n )?.filter((item) => (exclude ? !pairsToBeExcluded?.includes(item.pairSymbol) : true));\n }, [chainIds, marketChainPairList, pairsToBeExcluded, exclude]);\n return { marketPairList, marketChainPairList, isFetched };\n}\n\nexport function useFilteredTradingPairs(): IMarketPair[] | undefined {\n const {\n marginSearchProps: { marginSelector, filter, marginCustomSelectorId, search, selectedChainIds },\n } = useMarginSearch();\n const { backendChainsConfig } = useConfigData();\n const { marketPairList } = useMarketList(selectedChainIds);\n const favPairs = useFavMarketPairs(selectedChainIds);\n const marginPairs = useMemo(() => {\n if (marginSelector === CUSTOM_SELECTOR.CUSTOM) {\n return marketPairList?.filter((pair) =>\n getAllDisplayableChainMarketCustomPairs(backendChainsConfig)\n .find((item) => item.id === marginCustomSelectorId && Number(item.chainId) === Number(pair.chainId))\n ?.pairs.includes(pair.pairSymbol),\n );\n }\n\n return marketPairList?.filter((pair) => {\n {\n if (!marginSelector) return true;\n return getMarginTypeByFeeder(pair.feederType) === marginSelector;\n }\n });\n }, [marginSelector, marketPairList, backendChainsConfig, marginCustomSelectorId]);\n const pairsToBeFiltered = useMemo(\n () =>\n _.flatMap(\n (selectedChainIds || DISPLAYABLE_CHAIN_ID)?.map(\n (id) => backendChainsConfig[id]?.pairsToBeFilteredInMarketAndEarn || [],\n ),\n ),\n [backendChainsConfig, selectedChainIds],\n );\n const filteredPairs = useMemo(() => {\n if (marginSelector === FAV_SELECTOR.FAVORITE) return favPairs;\n const requiredPairs = marginSelector === ALL_SELECTOR.ALL ? marketPairList : marginPairs;\n return requiredPairs\n ?.filter(\n (p) =>\n !search ||\n p.baseToken?.symbol.toLowerCase().includes(search.toLowerCase()) ||\n p.quoteToken?.symbol.toLowerCase().includes(search.toLowerCase()),\n )\n .filter((p) => !pairsToBeFiltered?.includes(p.pairSymbol))\n .filter((pair) => {\n switch (filter) {\n case MARKET_FILTERS.PERPETUAL:\n return pair.expiry === PERP_EXPIRY;\n case MARKET_FILTERS.DATED:\n return pair.expiry !== PERP_EXPIRY;\n default:\n return true;\n }\n })\n .filter((p) => WrappedBigNumber.from(p.tvlUsd).gte(TVL_THRESHHOLD));\n }, [marginSelector, favPairs, marketPairList, marginPairs, search, pairsToBeFiltered, filter]);\n\n return filteredPairs;\n}\n\nexport function useCurrentMarketPairFromUrl(chainId: number | undefined): IMarketPair | undefined {\n const { pairSymbol, chainShortName } = useParams();\n const chainIdFromUrl = useMemo(() => {\n return chainShortName ? getChainIdByChainShortName(chainShortName) : undefined;\n }, [chainShortName]);\n const symbolInStorage = useDefaultPairSymbolFromUrlOrFallbackLocalOrApi(chainId);\n const { marketPairList } = useMarketList(chainId ? [chainId] : undefined);\n const pair = useMemo(() => {\n if (chainIdFromUrl !== chainId) return undefined;\n const symbol = pairSymbol || symbolInStorage;\n return [...(marketPairList || [])].find((wp) => wp.pairSymbol === symbol);\n }, [chainId, chainIdFromUrl, marketPairList, pairSymbol, symbolInStorage]);\n return pair;\n}\n\nexport function useDefaultPairSymbolFromUrlOrFallbackLocalOrApi(chainId: number | undefined): string | undefined {\n const userAddr = useUserAddr();\n const marketType = useCurrentMarketType();\n const { marketPairList } = useMarketList(chainId ? [chainId] : undefined);\n const symbolInStorage = marketType ? getSavedPairChosen(userAddr, chainId, marketType) : undefined;\n return useMemo(() => {\n const symbol = symbolInStorage || (marketPairList?.length ? marketPairList[0].pairSymbol : undefined);\n return symbol;\n }, [marketPairList, symbolInStorage]);\n}\n\nexport function useMarketSummary(chainIds: number[] | undefined): IMarketSummary | undefined {\n const { marketChainPairList } = useMarketList(chainIds);\n\n return useMemo(() => {\n return _.reduce(\n _.values(marketChainPairList).filter((list) => (!!chainIds?.length ? chainIds.includes(list.chainId) : true)),\n (acc, curr) => {\n return {\n totalTvlUsd: acc.totalTvlUsd.add(curr.totalTvlUsd),\n totalVolume24Usd: acc.totalVolume24Usd.add(curr.totalVolume24Usd),\n totalOpenInterestsUsd: acc.totalOpenInterestsUsd.add(curr.totalOpenInterestsUsd),\n totalEffectLiqTvlUsd: acc.totalEffectLiqTvlUsd.add(curr.totalEffectLiqTvlUsd),\n };\n },\n {\n totalTvlUsd: WrappedBigNumber.ZERO,\n totalVolume24Usd: WrappedBigNumber.ZERO,\n totalOpenInterestsUsd: WrappedBigNumber.ZERO,\n totalEffectLiqTvlUsd: WrappedBigNumber.ZERO,\n },\n );\n }, [chainIds, marketChainPairList]);\n}\n\nexport function useCreativePairList(chainId: CHAIN_ID | undefined): CreativePair[] {\n // const pairList = useDisplayPairList(CHAIN_ID.BLAST, false);\n const { data: marketCreativePairs } = useFetchMarketCreativePairList();\n const creativePairs = useMemo(() => {\n const values = _.values(marketCreativePairs).filter((v) => {\n return SUPPORTED_CHAIN_ID.includes(Number(v.chainId));\n });\n return !!chainId ? values.filter((v) => v.chainId.toString() === chainId.toString()) : values;\n }, [chainId, marketCreativePairs]);\n return useMemo(() => creativePairs, [creativePairs]);\n}\n\nexport function useWatchMarketListChange(chainId: number | undefined): void {\n const { socket } = useSocket();\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n if (!socket || !chainId) return;\n socket.emit(SUBSCRIBE_TYPE.MARKET, { chainId: chainId });\n\n socket.on(MESSAGE_TYPE.marketListChanged, (data) => {\n console.record('event', MESSAGE_TYPE.marketListChanged, data);\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.MARKET.PAIR_LIST() });\n });\n\n socket.on(MESSAGE_TYPE.marketFeaturePairsUpdated, (data) => {\n console.record('event', MESSAGE_TYPE.marketFeaturePairsUpdated, data);\n // setMarketFeaturePairsChanged(data);\n });\n\n return () => {\n socket.off(MESSAGE_TYPE.marketListChanged);\n socket.off(MESSAGE_TYPE.marketFeaturePairsUpdated);\n socket.emit(UNSUBSCRIBE_TYPE.MARKET, { chainId: chainId });\n };\n }, [chainId, dispatch, socket]);\n}\n","import _ from 'lodash';\n\nexport enum CHART_TYPE {\n PRICE = 'Price',\n DEPTH = 'Depth',\n DETAIL = 'Detail',\n ADD_LIQ = 'AddLq',\n FUNDING = 'Funding',\n INFO = 'Info',\n VOLUME = 'Volume',\n}\nexport enum CHART_DURATION {\n H = 'H',\n D = 'D',\n W = 'W',\n M = 'M',\n}\nexport enum TRADE_TYPE {\n MARKET = 'market',\n LIMIT = 'limit',\n SCALE_LIMIT = 'scale_limit',\n ADJUST_MARGIN = 'adjust_margin',\n CLOSE_POSITION = 'close_position',\n DEPOSIT_NATIVE = 'deposit_native',\n}\n\nexport const IMR_ERROR = '0xde4607ee'; //'Insufficient margin to open position';\nexport const MMR_ERROR = '0x2f61ef0b'; // 'Insufficient margin for this trade';\nexport const OPEN_ORDER_QUERY_KEY = 'openOrder';\n\nexport enum MANAGE_SIDE {\n IN = 'IN',\n OUT = 'OUT',\n}\nexport enum LEVERAGE_ADJUST_TYPE {\n BY_AMOUNT = 'by_amount',\n BY_LEVERAGE = 'by_leverage',\n}\n\nexport const getImrStepRatio = (imr = DEFAULT_IMR) => {\n if (imr <= 100) {\n return [10, 20, 40];\n }\n if (imr >= 1000) {\n return [10, 100, 200];\n }\n return [10, imr * 0.1, imr * 0.2];\n};\nexport const getScaleLimitStepRatio = (imr = DEFAULT_IMR) => {\n if (imr <= 100) {\n return [5, 10, 20, 40];\n }\n if (imr >= 1000) {\n return [5, 10, 20, 100, 200];\n }\n return _.sortedUniq([5, 10, 20, imr * 0.1, imr * 0.2]);\n};\nexport const DEFAULT_IMR = 100;\nexport const DEFAULT_STEP_RATIO = 10;\nexport const DEFAULT_MAX_COUNT = 9;\nexport const DEFAULT_ORDER_COUNT = 5;\nexport const MIN_ORDER_COUNT = 2;\nexport const DEFAULT_ORDER_GAP = 4;\n\nexport const INVALID_PRICE = 'Invalid price';\n","import { PERP_EXPIRY } from '@synfutures/sdks-perp';\nimport _ from 'lodash';\nimport { useEffect, useMemo } from 'react';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { WrappedOrder } from '@/entities/WrappedOrder';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { useAppSelector } from '@/hooks';\nimport { IMetaOrder } from '@/types/account';\n\nimport { useWrappedPortfolio, useWrappedPortfolioByPairId, useWrappedPortfolioMap } from './portfolioHook';\nimport { selectMetaOrder, selectMetaOrderByPairId, selectOrderMap } from './slice';\n\n//#region redux meta order selector\n\nexport function useMetaOrderMap(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): { [orderId: string]: IMetaOrder } {\n const metaOrderMap = useAppSelector(selectOrderMap(chainId, userAddr));\n\n return metaOrderMap;\n}\n\nexport function useMetaOrder(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n orderId: string | undefined,\n): IMetaOrder | undefined {\n const metaOrder = useAppSelector(selectMetaOrder(chainId, userAddr, orderId));\n\n return metaOrder;\n}\n\nexport function useMetaOrderByPairId(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n): { [orderId: string]: IMetaOrder } | undefined {\n const metaOrderMap = useAppSelector(selectMetaOrderByPairId(chainId, userAddr, pairId));\n return metaOrderMap;\n}\n\nexport function useIsWrappingOrder(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId?: string,\n): boolean {\n const metaOrderMap = useMetaOrderMap(chainId, userAddr);\n const metaOrderPairMap = useMetaOrderByPairId(chainId, userAddr, pairId);\n const metaOrders = useMemo(() => {\n return pairId ? metaOrderPairMap : metaOrderMap;\n }, [metaOrderMap, metaOrderPairMap, pairId]);\n const instances = WrappedOrder.getInstanceMap(chainId);\n return useMemo(() => {\n if (!chainId || !userAddr) return false;\n\n return Object.keys(metaOrders || {}).length > 0 && Object.keys(instances || {}).length === 0;\n }, [chainId, userAddr, metaOrders, instances]);\n}\n\n//#endregion ------------------ redux meta order selector\n\nfunction useBlendWrappedOrder({\n metaOrder,\n chainId,\n rootPortfolio,\n}: {\n metaOrder: IMetaOrder | undefined;\n chainId: CHAIN_ID | undefined;\n rootPortfolio: WrappedPortfolio | undefined;\n}): WrappedOrder | undefined {\n return useMemo(() => {\n if (!chainId || !rootPortfolio) return undefined;\n const origin = metaOrder;\n if (origin) {\n const wrappedOrder = WrappedOrder.getInstance(origin.id, chainId);\n if (!wrappedOrder) {\n const instance = WrappedOrder.wrapInstance({ metaOrder: origin, rootPortfolio });\n rootPortfolio.connectOrder(instance);\n return instance;\n } else {\n wrappedOrder.fillField(origin);\n }\n return wrappedOrder;\n }\n return undefined;\n }, [chainId, metaOrder, rootPortfolio]);\n}\n\n/**\n * get wrapped order by order id\n * @param chainId\n * @param userAddr\n * @param orderId\n * @returns\n */\nexport function useWrappedOrder(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n orderId: string | undefined,\n): WrappedOrder | undefined {\n const metaOrder = useMetaOrder(chainId, userAddr, orderId);\n const rootPortfolio = useWrappedPortfolio(chainId, userAddr, metaOrder?.portfolioId);\n useEffect(() => {\n // remove order from portfolio if metaOrder is undefined\n if (!metaOrder && rootPortfolio && userAddr && orderId) {\n rootPortfolio.removeOrder(orderId);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [metaOrder, orderId, userAddr, rootPortfolio]);\n return useBlendWrappedOrder({ metaOrder, chainId, rootPortfolio });\n}\n\n/***\n * get wrapped order list by pair id\n */\nexport function useWrappedOrderList(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n): WrappedOrder[] | undefined {\n const metaOrderMap = useMetaOrderByPairId(chainId, userAddr, pairId);\n const rootPortfolio = useWrappedPortfolioByPairId(chainId, userAddr, pairId);\n return useMemo(() => {\n if (!chainId || !rootPortfolio || !metaOrderMap) return undefined;\n\n return _.orderBy(\n _.reduce(\n metaOrderMap,\n (acc: WrappedOrder[], metaOrder: IMetaOrder) => {\n const wrappedOrder = WrappedOrder.getInstance(metaOrder.id, chainId);\n if (!wrappedOrder) {\n const newWrappedOrder = WrappedOrder.wrapInstance({ metaOrder, rootPortfolio });\n rootPortfolio.connectOrder(newWrappedOrder);\n acc.push(newWrappedOrder);\n } else {\n wrappedOrder.fillField(metaOrder);\n acc.push(wrappedOrder);\n }\n return acc;\n },\n [],\n ),\n [(o) => o.oid],\n ['desc'],\n );\n }, [chainId, metaOrderMap, rootPortfolio]);\n}\n\nexport function useWrappedOrderListByUser(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n isShowNormalPair = true,\n): WrappedOrder[] | undefined {\n const metaOrderMap = useMetaOrderMap(chainId, userAddr);\n const rootPortfolioMap = useWrappedPortfolioMap(chainId, userAddr);\n return useMemo(() => {\n if (!chainId || !rootPortfolioMap || !metaOrderMap) return undefined;\n\n return _.orderBy(\n _.reduce(\n metaOrderMap,\n (acc: WrappedOrder[], metaOrder: IMetaOrder) => {\n const wrappedOrder = WrappedOrder.getInstance(metaOrder.id, chainId);\n const rootPortfolio = rootPortfolioMap[metaOrder.portfolioId];\n\n function pushOrder(order: WrappedOrder) {\n if (!isShowNormalPair || order.rootPair.isNormalPair) {\n acc.push(order);\n }\n }\n\n if (rootPortfolio) {\n if (!wrappedOrder) {\n const newWrappedOrder = WrappedOrder.wrapInstance({ metaOrder, rootPortfolio: rootPortfolio });\n rootPortfolio.connectOrder(newWrappedOrder);\n pushOrder(newWrappedOrder);\n } else {\n wrappedOrder.fillField(metaOrder);\n pushOrder(wrappedOrder);\n }\n }\n\n return acc;\n },\n [],\n ),\n [\n (o) => {\n return o.rootInstrument.displayBaseToken.symbol;\n },\n (o) => {\n return o.rootPair.expiry === PERP_EXPIRY ? 0 : o.rootPair.expiry;\n },\n (o) => o.oid,\n ],\n ['asc', 'asc', 'desc'],\n );\n }, [chainId, isShowNormalPair, metaOrderMap, rootPortfolioMap]);\n}\n","import _ from 'lodash';\nimport { useEffect, useMemo } from 'react';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { CHAIN_ID } from '@/constants/chain';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { useAppSelector } from '@/hooks';\nimport { IMetaPosition } from '@/types/account';\n\nimport { useWrappedPair } from '../pair/hook';\nimport { useMarketFormStateStatus } from '../trade/hooks';\nimport { useWrappedPortfolio, useWrappedPortfolioMap } from './portfolioHook';\nimport { selectMetaPosition, selectMetaPositionByPairId, selectPositionMap } from './slice';\n\n//#region redux meta position selector\n\nexport function useMetaPosition(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n positionId: string | undefined,\n): IMetaPosition | undefined {\n const metaPosition = useAppSelector(selectMetaPosition(chainId, userAddr, positionId));\n return metaPosition;\n}\n\nexport function useIsWrappingPosition(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId?: string,\n): boolean {\n const metaPositionMap = useMetaPositionMap(chainId, userAddr);\n const metaPositionPairMap = useMetaPositionByPairId(chainId, userAddr, pairId);\n const metaPositons = useMemo(() => {\n return pairId ? metaPositionPairMap : metaPositionMap;\n }, [metaPositionMap, metaPositionPairMap, pairId]);\n const instances = WrappedPosition.getInstanceMap(chainId);\n return useMemo(() => {\n if (!chainId || !userAddr) return false;\n\n return Object.keys(metaPositons || {}).length > 0 && Object.keys(instances || {}).length === 0;\n }, [chainId, userAddr, metaPositons, instances]);\n}\n\nexport function useMetaPositionByPairId(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n): IMetaPosition | undefined {\n const metaPosition = useAppSelector(selectMetaPositionByPairId(chainId, userAddr, pairId));\n return metaPosition;\n}\n\nexport function useMetaPositionMap(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): { [positionId: string]: IMetaPosition } {\n const chainMetaPosition = useAppSelector(selectPositionMap(chainId, userAddr));\n return chainMetaPosition;\n}\n\n//#endregion ------------------ redux meta position selector\n\nfunction useBlendWrappedPosition({\n metaPosition,\n wrappedPortfolio,\n chainId,\n userAddr,\n}: {\n metaPosition: IMetaPosition | undefined;\n wrappedPortfolio: WrappedPortfolio | undefined;\n chainId: CHAIN_ID | undefined;\n userAddr: string | undefined;\n}): WrappedPosition | undefined {\n const marketFormStatus = useMarketFormStateStatus(chainId);\n return useMemo(() => {\n if (!chainId || !userAddr || !wrappedPortfolio) return undefined;\n const origin = metaPosition;\n if (origin) {\n const wrappedPosition = WrappedPosition.getInstance(origin.id, chainId);\n if (marketFormStatus !== FETCHING_STATUS.FETCHING) {\n if (!wrappedPosition) {\n const instance = WrappedPosition.wrapInstance({\n metaPosition: origin,\n rootPortfolio: wrappedPortfolio,\n chainId,\n });\n wrappedPortfolio.connectPosition(instance);\n return instance;\n } else {\n wrappedPosition.fillField(origin);\n }\n }\n return wrappedPosition;\n }\n return undefined;\n }, [chainId, metaPosition, userAddr, wrappedPortfolio, marketFormStatus]);\n}\n\n/**\n * get wrapped position by positionId\n * @param chainId\n * @param userAddr\n * @param portfolioId\n * @param positionId\n * @returns\n */\nexport function useWrappedPositionById(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n portfolioId: string | undefined,\n positionId: string | undefined,\n): WrappedPosition | undefined {\n const metaPosition = useMetaPosition(chainId, userAddr, positionId);\n const wrappedPortfolio = useWrappedPortfolio(chainId, userAddr, portfolioId);\n\n return useBlendWrappedPosition({ metaPosition, wrappedPortfolio, chainId, userAddr });\n}\n\n/**\n * get wrapped position by pairId\n * @param chainId\n * @param userAddr\n * @param pairId\n * @returns\n */\nexport function useWrappedPosition(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n): WrappedPosition | undefined {\n const metaPosition = useMetaPositionByPairId(chainId, userAddr, pairId);\n const wrappedPortfolio = useWrappedPortfolio(chainId, userAddr, userAddr && pairId ? `${userAddr}-${pairId}` : '');\n const wrappedPosition = useBlendWrappedPosition({ metaPosition, wrappedPortfolio, chainId, userAddr });\n useEffect(() => {\n // remove position from portfolio if metaPosition is undefined\n if (!metaPosition && wrappedPortfolio && userAddr && pairId) {\n wrappedPortfolio.removePosition(`${userAddr}-${pairId}`);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [metaPosition, pairId, userAddr, wrappedPortfolio]);\n\n return wrappedPosition;\n}\n\n/**\n * get wrapped main position by pairId\n * @param chainId\n * @param userAddr\n * @param pairId\n * @returns\n */\nexport function useMainPosition(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n): WrappedPosition | undefined {\n const mainPosition = useWrappedPosition(chainId, userAddr, pairId);\n const wrappedPair = useWrappedPair(chainId, pairId);\n return useMemo(() => {\n const hasWrappedPosition = WrappedPosition.hasAnyInstance(chainId);\n if (!mainPosition && userAddr && wrappedPair && hasWrappedPosition) {\n return WrappedPosition.fromEmptyWrappedPosition(wrappedPair, userAddr);\n }\n\n return mainPosition;\n }, [chainId, mainPosition, userAddr, wrappedPair]);\n}\n\n/**\n * get wrapped position list\n * @param chainId\n * @param userAddr\n * @returns\n */\nexport function usePositionListByUser(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n isShowNormalPair = true,\n): WrappedPosition[] | undefined {\n const metaPositionMap = useMetaPositionMap(chainId, userAddr);\n\n const wrappedPortfolioMap = useWrappedPortfolioMap(chainId, userAddr);\n const wrappedPositionList = useMemo(() => {\n if (!chainId || !userAddr || !wrappedPortfolioMap || !metaPositionMap) return undefined;\n return _.reduce(\n metaPositionMap,\n (res: WrappedPosition[], metaPosition) => {\n let wrappedPosition = WrappedPosition.getInstance(metaPosition.id, chainId);\n const rootPortfolio = wrappedPortfolioMap[metaPosition.portfolioId];\n if (rootPortfolio?.rootPair) {\n if (!wrappedPosition) {\n wrappedPosition = WrappedPosition.wrapInstance({\n metaPosition: metaPosition,\n rootPortfolio: rootPortfolio,\n chainId,\n });\n rootPortfolio.connectPosition(wrappedPosition);\n } else {\n wrappedPosition.fillField(metaPosition);\n }\n }\n\n if (wrappedPosition && wrappedPosition.hasPosition) {\n if (!isShowNormalPair || wrappedPosition.rootPair.isNormalPair) {\n res.push(wrappedPosition);\n }\n }\n\n return res;\n },\n [],\n );\n }, [chainId, isShowNormalPair, metaPositionMap, userAddr, wrappedPortfolioMap]);\n return wrappedPositionList;\n}\n","export const MARKET_PAGE_POLLING_INTERVAL = 5000;\nexport const TRADE_PAGE_POLLING_INTERVAL = 5000;\nexport const IP_POLLING_INTERVAL = 5000;\nexport const PORTFOLIO_PAGE_POLLING_INTERVAL = 5000;\nexport const POLLING_ORDER_BOOK = 15000;\nexport const POLLING_INSTRUMENT_SPOT_RAW_PRICE = 5000;\nexport const POLLING_USER_PENDING_WITHDRAWABLE = 15000;\nexport const POLLING_USER_BALANCE = 5000;\nexport const POLLING_GRAPH = 15000;\nexport const POLLING_OPEN_ORDER_CREATE_TIME = 10000;\nexport const POLLING_HISTORY_POLLING = 10 * 1000;\nexport const POLLING_HISTORY_POLLING_DELAY = 5 * 1000;\nexport const POLLING_BLOCK_NUMBER = 3000;\n","import { createSlice } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { ZERO } from '@/constants';\nimport { IGateAccountState, ITokenBalanceInfo, ITokenBalanceInfoMap } from '@/types/balance';\n\nimport { AppState } from '../store';\nimport {\n changeTokenBalanceAction,\n depositOrWithdrawBalance,\n fetchAllTokenBalanceAction,\n fetchTokenBalanceAction,\n resetChainDefaultBalanceMapAction,\n setGateAccountState,\n} from './actions';\n\nexport interface IBalanceState {\n chainBalanceMap: {\n [chainId: number]: {\n [userAddr: string]: ITokenBalanceInfoMap;\n };\n };\n chainGateAccountState: {\n [chainId: number]: IGateAccountState;\n };\n}\n\nconst initialState: IBalanceState = {\n chainBalanceMap: {},\n chainGateAccountState: {},\n};\n\nexport const balanceSlice = createSlice({\n name: 'balance',\n initialState,\n reducers: {\n resetState: () => initialState,\n },\n extraReducers: (builder) => {\n builder\n .addCase(resetChainDefaultBalanceMapAction.pending, (state, action) => {\n const { arg } = action.meta;\n if (!state.chainBalanceMap[arg.chainId]) {\n state.chainBalanceMap[arg.chainId] = {};\n }\n const balanceMapInState = _.get(state.chainBalanceMap, [arg.chainId, arg.traderAddress]);\n if (balanceMapInState) {\n const balanceList = _.cloneDeep(_.values(balanceMapInState));\n if (balanceList.length > 0) {\n const list = balanceList\n .map((b) => ({ ...b, isLoadingMarginBalance: true, isLoading: true }))\n .filter((b) => !!b.address);\n _.set(state.chainBalanceMap, [arg.chainId, arg.traderAddress], _.keyBy(list, 'address'));\n }\n }\n // if(!state.chainBalanceMap[arg.chainId][arg.traderAddress]){\n // state.chainBalanceMap[arg.chainId][arg.traderAddress]={};\n // }\n })\n .addCase(resetChainDefaultBalanceMapAction.fulfilled, (state, action) => {\n const { arg } = action.meta;\n if (action.payload) {\n _.set(state.chainBalanceMap, [arg.chainId, arg.traderAddress], action.payload.balanceList);\n }\n })\n .addCase(resetChainDefaultBalanceMapAction.rejected, (state, action) => {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { arg } = action.meta;\n })\n .addCase(fetchAllTokenBalanceAction.fulfilled, (state, action) => {\n const { arg } = action.meta;\n if (action.payload) {\n const chainId = arg.chainId;\n action.payload.forEach(({ token, balance, block }) => {\n _.set(\n state.chainBalanceMap,\n [chainId, arg.userAddr, token.address],\n _.merge({}, _.get(state.chainBalanceMap, [chainId, arg.userAddr, token.address]), {\n balance: balance || ZERO,\n block: block || 0,\n isLoading: false,\n }),\n );\n });\n }\n })\n\n .addCase(fetchTokenBalanceAction.pending, (state, action) => {\n const { arg } = action.meta;\n\n if (arg.token && arg.token.address) {\n const chainId = arg.token.chainId || arg.chainId;\n const balanceInState = _.get(state.chainBalanceMap, [chainId, arg.userAddr, arg.token.address]);\n if (balanceInState) {\n // _.set(\n // state.chainBalanceMap,\n // [chainId, arg.traderAddress, arg.token.address, 'isLoading'],\n // true,\n // );\n }\n }\n })\n .addCase(fetchTokenBalanceAction.fulfilled, (state, action) => {\n const { arg } = action.meta;\n if (arg.token && arg.token.address) {\n const chainId = arg.token.chainId || arg.chainId;\n const balanceInState = _.get(state.chainBalanceMap, [chainId, arg.userAddr, arg.token.address]);\n if (balanceInState) {\n // if the block height is lower than the current block height, we don't need to update the state\n if ((balanceInState?.block || 0) > (action.payload?.block || 0)) {\n return;\n }\n _.set(\n state.chainBalanceMap,\n [chainId, arg.userAddr, arg.token.address],\n _.merge({}, balanceInState, {\n balance: ZERO,\n block: 0,\n ...action.payload,\n isLoading: false,\n }),\n );\n }\n }\n })\n .addCase(fetchTokenBalanceAction.rejected, (state, action) => {\n const { arg } = action.meta;\n if (action.error.message === 'no change') {\n return;\n }\n if (arg.token && arg.token.address) {\n const chainId = arg.token.chainId || arg.chainId;\n const balanceInState = _.get(state.chainBalanceMap, [chainId, arg.userAddr, arg.token.address]);\n if (balanceInState) {\n _.set(state.chainBalanceMap, [chainId, arg.userAddr, arg.token?.address, 'isLoading'], true);\n }\n }\n })\n\n .addCase(changeTokenBalanceAction.fulfilled, (state, action) => {\n const { arg } = action.meta;\n if (arg.token && arg.token.address) {\n const chainId = arg.chainId;\n const balanceInState = _.get(state.chainBalanceMap, [chainId, arg.userAddr, arg.token.address]);\n if (balanceInState) {\n // if the block height is lower than the current block height, we don't need to update the state\n if ((balanceInState?.block || 0) > (action.payload?.block || 0)) {\n return;\n }\n }\n _.set(\n state.chainBalanceMap,\n [chainId, arg.userAddr, arg.token.address],\n _.merge({}, balanceInState, {\n balance: ZERO,\n block: 0,\n ...action.payload,\n isLoading: false,\n }),\n );\n }\n })\n // .addCase(changeTokenGateBalanceAction.fulfilled, (state, action) => {\n // const { arg } = action.meta;\n // if (arg.token && arg.token.address) {\n // const chainId = arg.chainId;\n // const balanceInState = _.get(state.chainGateBalanceMap, [chainId, arg.userAddr, arg.token.address]);\n // if (balanceInState) {\n // // if the block height is lower than the current block height, we don't need to update the state\n // if ((balanceInState?.block || 0) > (action.payload?.block || 0)) {\n // return;\n // }\n // }\n // _.set(\n // state.chainGateBalanceMap,\n // [chainId, arg.userAddr, arg.token.address],\n // _.merge({}, balanceInState, {\n // balance: ZERO,\n // block: 0,\n // ...action.payload,\n // isLoading: false,\n // }),\n // );\n // }\n // })\n\n .addCase(depositOrWithdrawBalance.pending, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainGateAccountState, [chainId, 'isOperating'], true);\n })\n .addCase(depositOrWithdrawBalance.fulfilled, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainGateAccountState, [chainId], {\n isOperating: false,\n depositAmountStr: '',\n });\n })\n .addCase(depositOrWithdrawBalance.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainGateAccountState, [chainId, 'isOperating'], false);\n })\n .addCase(setGateAccountState, (state, { payload }) => {\n const currentState = _.get(state.chainGateAccountState, [payload.chainId]);\n _.set(state.chainGateAccountState, [payload.chainId], { ...currentState, ...payload });\n });\n },\n});\n\nexport const { resetState } = balanceSlice.actions;\nexport { fetchTokenBalanceAction, resetChainDefaultBalanceMapAction };\n\nexport const selectBalanceState = (state: AppState): IBalanceState => state.balance;\nexport const selectBalanceMapState = (\n state: AppState,\n): {\n [chainId: number]: {\n [traderAddr: string]: ITokenBalanceInfoMap;\n };\n} => state.balance.chainBalanceMap;\nexport const selectTokenBalanceByChainIdAndAddress =\n (\n chainId: number | undefined,\n traderAddress: string | undefined,\n tokenAddress: string | undefined,\n ): ((state: AppState) => ITokenBalanceInfo) =>\n (state: AppState): ITokenBalanceInfo =>\n _.get(state.balance.chainBalanceMap, [chainId || '', traderAddress || '', tokenAddress || '']);\n\nexport const selectGateAccountState = (\n state: AppState,\n): {\n [chainId: number]: IGateAccountState;\n} => state.balance.chainGateAccountState;\n\nexport default balanceSlice.reducer;\n","import { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { IGateBalanceInfo } from '@/types/balance';\nimport { BlockyResult } from '@/types/worker';\nimport { bigNumberObjectCheck, debounceRequest } from '@/utils';\nimport { axiosGet } from '@/utils/axios';\nimport { fixBalanceNumberDecimalsTo18, getTokenInfo } from '@/utils/token';\nimport { Context, TokenInfo as Token } from '@derivation-tech/context';\nimport { NATIVE_TOKEN_ADDRESS } from '@synfutures/sdks-perp';\nimport { BigNumber } from 'ethers';\n\nexport async function getGateBalanceFromChain(\n sdk: Context,\n userAddr: string,\n tokens: Token[],\n block?: number,\n): Promise<\n | BlockyResult<\n {\n token: Token;\n balance: BigNumber;\n block: number;\n }[]\n >\n | undefined\n> {\n if (!sdk) return;\n if (tokens.length === 0) {\n return;\n }\n\n tokens = tokens.map((token) =>\n token.address.toLowerCase() === NATIVE_TOKEN_ADDRESS.toLowerCase() ? sdk.wrappedNativeToken : token,\n );\n\n const quotes = tokens.map((t) => t.address);\n\n const [balances, blockInfo] = await sdk.perp.contracts.observer.getVaultBalances(userAddr, quotes, {\n blockTag: block,\n });\n if (blockInfo) {\n block = blockInfo[1];\n }\n\n return {\n block: block || 0,\n data: tokens.map((token, index) => {\n return {\n token: { ...token, address: token.address.toLowerCase() },\n balance: balances[index],\n block: block || 0,\n };\n }),\n };\n}\n\nexport const fetchUserGateBalance = debounceRequest(\n async (chainId: number, userAddress: string): Promise => {\n const res = await axiosGet({\n url: 'https://api.synfutures.com/v3/public/perp/market/user/gateValue',\n config: { params: { chainId, userAddress: userAddress } },\n });\n if (res?.data?.data) {\n const data = bigNumberObjectCheck(res.data.data);\n if (data?.length) {\n return data.map((d: IGateBalanceInfo) => {\n const info = {\n ...d,\n balance: WrappedBigNumber.from(fixBalanceNumberDecimalsTo18(BigNumber.from(d.balance), d.decimals)),\n decimals: Number(d.decimals),\n address: d.address.toLowerCase(),\n };\n return getTokenInfo(info, chainId);\n });\n }\n }\n return null;\n },\n 500,\n);\n","import { QUERY_KEYS } from '@/constants/query';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { IGateBalanceInfo } from '@/types/balance';\nimport { fixBalanceNumberDecimalsTo18, getTokenInfo } from '@/utils/token';\nimport { useQuery } from '@tanstack/react-query';\nimport { BigNumber } from 'ethers';\nimport { useMarginTokenInfoMap } from '../chain/hook';\nimport { useSDK } from '../web3/hook';\nimport { fetchUserGateBalance, getGateBalanceFromChain } from './api';\n\nexport const useFetchUserGateBalanceList = (chainId: number | undefined, userAddr: string | undefined) => {\n const sdk = useSDK(chainId);\n const marginTokenMap = useMarginTokenInfoMap(chainId);\n return useQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.BALANCE.GATE(chainId, userAddr),\n queryFn: async () => {\n // const apiResult = chainId && instrumentAddr && (await fetchFuturesInstrument(chainId, instrumentAddr));\n // if (!apiResult && sdk && instrumentAddr) {\n // return fetchInstrumentFromChain(sdk, instrumentAddr);\n // }\n // return apiResult;\n\n if (chainId && userAddr)\n try {\n // First try to get from API\n const apiResult = await fetchUserGateBalance(chainId, userAddr);\n if (apiResult) {\n return apiResult;\n }\n throw new Error('API returned no data');\n } catch (apiError) {\n console.warn('API request failed, falling back to chain:', apiError);\n try {\n if (sdk && marginTokenMap) {\n const tokens = Object.values(marginTokenMap || {});\n // If API fails, fall back to chain request\n const chainResult = await getGateBalanceFromChain(sdk, userAddr, tokens);\n if (chainResult) {\n const result: IGateBalanceInfo[] = [];\n chainResult.data.forEach((item) => {\n const token = getTokenInfo(item.token, chainId);\n if (token) {\n result.push({\n ...token,\n balance: WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(BigNumber.from(item.balance), item.token.decimals),\n ),\n });\n }\n });\n return result;\n }\n }\n } catch (chainError) {\n console.error('Both API and chain requests failed:', chainError);\n throw new Error('Failed to fetch instrument from both API and chain');\n }\n }\n return null;\n },\n enabled: !!chainId && !!userAddr,\n });\n};\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { useDebounceEffect } from 'ahooks';\nimport _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { POLLING_USER_BALANCE } from '@/constants/polling';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport { useDappChainConfig, useUserAddr } from '@/hooks/web3/useChain';\nimport { IGateAccountState, IGateBalanceInfo, ITokenBalanceInfo, ITokenBalanceInfoMap } from '@/types/balance';\nimport { bigNumberObjectCheck, pollingFunc } from '@/utils';\nimport { isNativeTokenAddr } from '@/utils/token';\n\nimport { QUERY_KEYS } from '@/constants/query';\nimport { queryClient } from '@/pages/App';\nimport { utils } from '@synfutures/sdks-perp';\nimport { useMarginTokenInfoMap, useNativeToken, useQuoteTokens } from '../chain/hook';\nimport { fetchAllTokenBalanceAction, resetChainDefaultBalanceMapAction } from './actions';\nimport { selectBalanceMapState, selectGateAccountState, selectTokenBalanceByChainIdAndAddress } from './balanceSlice';\nimport { useFetchUserGateBalanceList } from './query';\n\nexport function useTokenBalanceMapState(chainId: CHAIN_ID | undefined): ITokenBalanceInfoMap {\n const chainBalanceMap = useAppSelector(selectBalanceMapState);\n const account = useUserAddr();\n\n const allTokenBalanceInfoMapState = useMemo(() => {\n let res: ITokenBalanceInfoMap = {};\n if (chainId && account) {\n if (chainBalanceMap[chainId] && chainBalanceMap[chainId][account]) {\n res = chainBalanceMap[chainId][account];\n }\n }\n return res;\n }, [chainId, account, chainBalanceMap]);\n\n return allTokenBalanceInfoMapState;\n}\n\nexport function useTokenBalanceList(chainId: CHAIN_ID | undefined): ITokenBalanceInfo[] {\n const allTokenBalanceInfoMapState = useTokenBalanceMapState(chainId);\n const nativeToken = useNativeToken(chainId);\n const balancesArr = useMemo(() => {\n const list = Object.values(allTokenBalanceInfoMapState);\n return list.map((balance) => {\n return {\n ...balance,\n } as ITokenBalanceInfo;\n });\n }, [allTokenBalanceInfoMapState]);\n\n const tokenBalanceList = useMemo(() => {\n if (!nativeToken) return [];\n const coinBalanceList = _.orderBy(\n [...balancesArr],\n [\n (coin): number => {\n if (coin.address === nativeToken.address) {\n return -1;\n }\n return coin.symbol?.toLowerCase().charCodeAt(0);\n },\n ],\n ['asc'],\n ).map((coin) => {\n return coin;\n });\n\n return coinBalanceList;\n }, [balancesArr, nativeToken]);\n return tokenBalanceList;\n}\n\nlet polling_balance: NodeJS.Timeout | null = null;\n\nexport function useDefaultChainBalanceState(chainId: CHAIN_ID | undefined): void {\n const userAddr = useUserAddr();\n const marginTokenMap = useMarginTokenInfoMap(chainId);\n const dispatch = useAppDispatch();\n const nativeToken = useNativeToken(chainId);\n useDebounceEffect(\n () => {\n if (!chainId || !userAddr) return;\n if (!marginTokenMap || !nativeToken) return;\n\n async function resetBalanceAndFetchBalance(chainId: CHAIN_ID, account: string): Promise {\n if (!marginTokenMap || !nativeToken) return;\n await dispatch(\n resetChainDefaultBalanceMapAction({\n chainId,\n traderAddress: account,\n quoteTokenInfoMap: { ...marginTokenMap, [nativeToken?.address]: nativeToken },\n }),\n );\n // await onFetchAllWalletBalance(chainId, account);\n }\n resetBalanceAndFetchBalance(chainId, userAddr);\n // setResult(chainId);\n },\n [chainId, userAddr, dispatch, marginTokenMap],\n { wait: 300 },\n );\n\n useDebounceEffect(\n () => {\n if (chainId && userAddr && marginTokenMap && nativeToken) {\n // const tokens = Object.values(marginTokenMap);\n if (polling_balance) clearInterval(polling_balance);\n polling_balance = pollingFunc(() => {\n // dispatch(\n // fetchGateBalanceAction({\n // chainId,\n // userAddr: userAddr,\n // tokens,\n // }),\n // );\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.BALANCE.GATE(chainId, userAddr),\n });\n dispatch(\n fetchAllTokenBalanceAction({\n chainId: chainId,\n userAddr,\n marginTokenMap,\n }),\n );\n }, POLLING_USER_BALANCE);\n }\n\n return () => {\n if (polling_balance) {\n clearInterval(polling_balance);\n }\n };\n },\n [marginTokenMap, chainId, dispatch, userAddr],\n { wait: 400 },\n );\n}\n\n/**\n * get token balance(return limit balance of native token)\n * @param tokenAddress token address\n * @param chainId\n * @param needLimitNativeTokenBalance limit the balance of native token for send tx gas,default true\n * @returns balance of token\n */\nexport function useTokenBalance(\n tokenAddress: string | undefined,\n chainId: CHAIN_ID | undefined,\n needLimitNativeTokenBalance = false,\n): WrappedBigNumber {\n const tokenBalance = useTokenBalanceByChainIdAndAddress(tokenAddress, chainId);\n const dappConfig = useDappChainConfig(chainId);\n return useMemo(() => {\n // limit the balance of native token\n if (\n dappConfig?.minNativeTokenKeep &&\n needLimitNativeTokenBalance &&\n tokenBalance?.balance &&\n isNativeTokenAddr(tokenBalance?.address)\n ) {\n const nativeTokenMinGasPriceLimit = dappConfig?.minNativeTokenKeep;\n if (nativeTokenMinGasPriceLimit) {\n return tokenBalance?.balance.min(nativeTokenMinGasPriceLimit).keepPositive();\n }\n }\n return tokenBalance?.balance || WrappedBigNumber.ZERO;\n }, [\n dappConfig?.minNativeTokenKeep,\n needLimitNativeTokenBalance,\n tokenBalance?.address,\n tokenBalance?.balance?.stringValue,\n ]);\n}\nexport function useTokenBalanceByChainIdAndAddress(\n tokenAddress: string | undefined,\n chainId: CHAIN_ID | undefined,\n): ITokenBalanceInfo {\n const account = useUserAddr();\n const tokenBalance = useAppSelector(selectTokenBalanceByChainIdAndAddress(chainId, account, tokenAddress));\n return useMemo(() => bigNumberObjectCheck(tokenBalance), [tokenBalance]);\n}\nexport function useTokenGateBalanceByChainIdAndAddress(\n chainId: CHAIN_ID | undefined,\n tokenAddress: string | undefined,\n): IGateBalanceInfo | undefined {\n const account = useUserAddr();\n // const tokenBalance = useAppSelector(selectTokenGateBalanceByChainIdAndAddress(chainId, account, tokenAddress));\n // return useMemo(() => bigNumberObjectCheck(tokenBalance), [tokenBalance]);\n const gateBalances = useUserGateBalanceList(chainId, account);\n\n return useMemo(() => {\n return gateBalances.find((b) => b.address === tokenAddress);\n }, [gateBalances, tokenAddress]);\n}\n\n// export function useTokenGateBalanceMap(\n// chainId: CHAIN_ID | undefined,\n// userAddr: string | undefined,\n// ): ITokenBalanceInfoMap {\n// const tokenBalanceMap = useAppSelector(selectTokenGateBalanceByChainId(chainId, userAddr));\n// return useMemo(() => bigNumberObjectCheck(tokenBalanceMap), [tokenBalanceMap]);\n// }\n\nexport function useGateAccountState(chainId: CHAIN_ID | undefined): IGateAccountState {\n const chainTradeAccountState = useAppSelector(selectGateAccountState);\n\n return useMemo(() => {\n if (chainId && chainTradeAccountState[chainId]) return chainTradeAccountState[chainId];\n return {} as IGateAccountState;\n }, [chainId, chainTradeAccountState]);\n}\n\n/**\n * get all balance of token and vault balance\n * @param tokenAddress\n * @param chainId\n * @param plusGateBalance\n * @param needLimitNativeTokenBalance\n * @returns\n */\nexport function useAvailableTokenBalance(\n tokenAddress: string | undefined,\n chainId: CHAIN_ID | undefined,\n plusGateBalance = true,\n needLimitNativeTokenBalance = true,\n): WrappedBigNumber {\n const tokenBalance = useTokenBalance(tokenAddress, chainId, needLimitNativeTokenBalance);\n const gateBalance = useTokenGateBalanceByChainIdAndAddress(chainId, tokenAddress);\n return useMemo(() => {\n let balance = tokenBalance;\n if (plusGateBalance && tokenBalance) {\n balance = tokenBalance.add(gateBalance?.balance || WrappedBigNumber.ZERO);\n }\n return balance || WrappedBigNumber.ZERO;\n }, [plusGateBalance, tokenBalance, gateBalance?.balance?.wadValue?._hex]);\n}\n\nexport function useDisplayBalance(\n position: WrappedPosition | undefined,\n transferIn: boolean,\n chainId: CHAIN_ID | undefined,\n tokenAddress: string | undefined,\n): WrappedBigNumber {\n const tokenBalance = useAvailableTokenBalance(tokenAddress || '', chainId);\n const availablePositionMargin = useMemo(() => {\n if (!transferIn && position?.size) {\n const margin = utils.positionMaxWithdrawableMargin(\n position,\n position.rootPair,\n position.rootInstrument.initialMarginRatio,\n );\n if (margin) {\n return WrappedBigNumber.from(margin);\n }\n }\n return WrappedBigNumber.ZERO;\n }, [transferIn, position?.size, position?.unrealizedPnl, position?.balance]);\n const displayBalance = useMemo(() => {\n if (!transferIn) {\n return availablePositionMargin;\n }\n return tokenBalance;\n }, [tokenBalance?.wadValue?._hex, availablePositionMargin, transferIn]);\n return displayBalance;\n}\n\nexport function useUserGateBalanceList(chainId: number | undefined, userAddr: string | undefined): IGateBalanceInfo[] {\n const { data: balances } = useFetchUserGateBalanceList(chainId, userAddr);\n const tokens = useQuoteTokens(chainId);\n const userGateBalanceList = useMemo(() => {\n if (balances && tokens) {\n return tokens.map((token) => {\n const balance = balances.find((b) => b.address === token.address);\n const info: IGateBalanceInfo = {\n ...token,\n balance: WrappedBigNumber.from(balance?.balance || '0'),\n decimals: Number(token.decimals),\n address: token.address,\n };\n return info;\n });\n }\n return [];\n }, [balances, tokens]);\n return userGateBalanceList;\n}\n\nexport function useUserIsFetchedGateBalanceList(chainId: number | undefined, userAddr: string | undefined): boolean {\n const { isFetched } = useFetchUserGateBalanceList(chainId, userAddr);\n return isFetched;\n}\n","import { CHAIN_ID } from './chain';\n\nexport enum MYSTERY_STAGES {\n INIT = 'init',\n OPEN = 'open',\n CLAIM = 'claim',\n}\nexport enum EARN_POINTS_TYPE {\n BOX = 1,\n SPIN = 2,\n}\nexport enum ODYSSEY_LEADERBOARD_TYPES {\n POINTS = 'points',\n TOKENS = 'tokens',\n}\n\nexport const TWITTER_SHARE_LINK = 'https://twitter.com/intent/tweet?text=';\nexport const ODYSSEY_SHARED_ON_TWITTER = 'odyssey_shared_on_twitter';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const getOdysseyApiPrefix = (chainId: CHAIN_ID, url: string) =>\n `/v3/${CHAIN_ID.BASE === chainId ? 'base/' : ''}odyssey/${\n // process.env.REACT_APP_ODYSSEY_ENV?.trim() ?? 'prod'\n 'prod'\n }${url}`;\nexport const ODYSSEY_POLLING_INTERVAL = 5 * 1000 * 60;\nexport const ODYSSEY_POINTS_INTERVAL = 10 * 1000;\n\nexport const LAST_EPOCH_LINK = 'https://synfutures.medium.com/oyster-odyssey-o-o-official-rules-2e591eacfde0';\n","export enum TGP_WEEKS {\n WEEK1 = 'week1',\n WEEK2 = 'week2',\n WEEK3 = 'week3',\n WEEK4 = 'week4',\n WEEK5 = 'week5',\n WEEK6 = 'week6',\n WEEK7 = 'week7',\n WEEK8 = 'week8',\n}\nexport interface ITradingWeek {\n week: number;\n startTs: string;\n endTs: string;\n}\nexport interface ITGPTrader {\n username: string;\n profileImgUrl: string;\n userId?: string;\n ticket: string;\n}\nexport interface ITGPLuckyDrawWinners {\n week: number;\n winners: ITGPTrader[];\n}\n\nexport interface IMasterWeek {\n scores: number;\n PnL: number;\n}\nexport interface ITGPDashboardMasterRanking extends ITGPMaster {\n totalScores: number;\n prize: number;\n week1: IMasterWeek | undefined;\n week2: IMasterWeek | undefined;\n week3: IMasterWeek | undefined;\n week4: IMasterWeek | undefined;\n week5: IMasterWeek | undefined;\n week6: IMasterWeek | undefined;\n week7: IMasterWeek | undefined;\n week8: IMasterWeek | undefined;\n}\n\nexport interface ITGPDashboardBase {\n page: number;\n totals: number;\n totalParticipants: number;\n totalUsers: number;\n updateAt: string;\n}\nexport interface ITGPMaster {\n userId: string;\n username: string;\n twitterUsername: string;\n profileImgUrl: string;\n}\nexport interface ITGPMasterLeaderBoard extends ITGPDashboardBase {\n list: ITGPDashboardMasterRanking[];\n}\nexport interface IOpenWeek {\n userId: string;\n profileImgUrl: string;\n PnL?: number;\n volume?: number;\n}\nexport interface ITGPDashboardOpenRanking {\n prize: number;\n week1: IOpenWeek | undefined;\n week2: IOpenWeek | undefined;\n week3: IOpenWeek | undefined;\n week4: IOpenWeek | undefined;\n week5: IOpenWeek | undefined;\n week6: IOpenWeek | undefined;\n week7: IOpenWeek | undefined;\n week8: IOpenWeek | undefined;\n}\nexport interface ITGPOpenLeaderBoard extends ITGPDashboardBase {\n list: ITGPDashboardOpenRanking[];\n}\n\nexport interface ITGPWeekConfig {\n rank: {\n claimMaster: string;\n claimOpen: string;\n };\n luckyDraw: {\n claim: string;\n shareToGetTicket: string;\n };\n}\n\nexport interface ITGPDappConfig {\n isShowComingSoon: boolean;\n isShowSeasonTwoComingSoon: boolean;\n isShowSeasonOneComingSoon: boolean;\n tnc: string;\n currentSeason: number;\n openDocsLink: string;\n masterDocsLink: string;\n twitter: {\n // client_ids: string[];\n callbackUrl: string;\n scope: string;\n code_challenge: string;\n code_challenge_method: string;\n };\n trade: {\n defaultPair: string;\n supportPairs: string[];\n defaultChainId: number;\n isShowTrade: boolean;\n };\n updateInterval: number;\n prize: string;\n telegramGroup: string;\n weeks: ITradingWeek[];\n defaultWeek: number;\n masterToken: string;\n prizeCurrency: string;\n sign: {\n agreement: {\n open: string;\n master: string;\n };\n };\n twitterShare: {\n currentWeek: {\n luckyDraw: {\n shareToGetTicket: string;\n };\n };\n\n [TGP_WEEKS.WEEK1]: ITGPWeekConfig;\n [TGP_WEEKS.WEEK2]: ITGPWeekConfig;\n [TGP_WEEKS.WEEK3]: ITGPWeekConfig;\n [TGP_WEEKS.WEEK4]: ITGPWeekConfig;\n };\n}\n\nexport interface ITGPBannerScore {\n week: number;\n rank?: number;\n score?: number;\n pnl?: number;\n volume?: undefined;\n prize?: number;\n claimed?: boolean;\n}\n\nexport interface ITGPSignature {\n nonce: number;\n address: string;\n signature?: string;\n // jwtToken?: string;\n}\n\nexport enum TGP_USER_STATUS {\n DEFAULT = 0,\n TWITTER_CONNECTED = 1,\n DISCORD_CONNECTED = 2,\n EMAIL_CONNECTED = 3,\n}\n\nexport enum TGP_LUCK_DRAW_USER_STATUS {\n NOT_OPEN = 0,\n OPEN_LOSER = 1,\n OPEN_WINNER = 2,\n CLAIMED = 3,\n NOT_JOINED = 4,\n}\n\nexport interface IUserLuckyDrawUserState {\n week: number;\n ticket: string;\n prize: number;\n status: TGP_LUCK_DRAW_USER_STATUS;\n}\n\nexport type WeekWithLuckyDrawState = ITradingWeek & IUserLuckyDrawUserState;\n\nexport interface ITGPUserOpenRank {\n claimed: boolean;\n rank: number;\n PnL: number;\n volume?: number;\n prize: number;\n}\n\nexport interface ITGPUserMasterRank {\n rank: number;\n PnL: number;\n scores: number;\n}\n\nexport interface ITGPUser {\n userId: string;\n status: TGP_USER_STATUS;\n luckyDraws: IUserLuckyDrawUserState[];\n rankings: {\n open: { [week in TGP_WEEKS]?: ITGPUserOpenRank };\n master: {\n claimed: boolean;\n rank: number;\n totalScores: number;\n prize: number;\n [TGP_WEEKS.WEEK1]?: ITGPUserMasterRank;\n [TGP_WEEKS.WEEK2]?: ITGPUserMasterRank;\n [TGP_WEEKS.WEEK3]?: ITGPUserMasterRank;\n [TGP_WEEKS.WEEK4]?: ITGPUserMasterRank;\n };\n };\n}\nexport interface ITGPStat {\n totalUsers: string;\n tvl: string;\n last24hVolume: string;\n totalBlastGoldDistributed: string;\n totalBlastPointsDistributed: string;\n}\n\nexport interface IUserCheck {\n isMaster: boolean;\n isRegistered: boolean;\n}\n","import moment from 'moment';\n\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { InstrumentPointConfigParam, ODYSSEY_STEP, USER_STATUS } from '@/types/odyssey';\nimport { TGP_USER_STATUS } from '@/types/tgp';\nimport { Context } from '@derivation-tech/context';\nimport {\n INITIAL_MARGIN_RATIO,\n InstrumentIdentifier,\n Q96,\n TickMath,\n WAD,\n ZERO,\n r2w,\n wadToSqrtX96,\n wmul,\n} from '@synfutures/sdks-perp';\nimport { BigNumber } from 'ethers';\nimport { toWad } from './numberUtil';\nimport { isWrappedPairType } from './pair';\n\nexport function getStepByUserStatus(status: USER_STATUS): ODYSSEY_STEP {\n switch (status) {\n case USER_STATUS.DEFAULT:\n return ODYSSEY_STEP.CONNECTED_WALLET;\n break;\n case USER_STATUS.TWITTER_CONNECTED:\n return ODYSSEY_STEP.LINKED_TWITTER;\n break;\n case USER_STATUS.DISCORD_CONNECTED:\n return ODYSSEY_STEP.FOLLOWED_DISCORD;\n break;\n case USER_STATUS.EMAIL_CONNECTED:\n return ODYSSEY_STEP.FILLED_EMAIL;\n break;\n case USER_STATUS.FIRST_BOX_OPENED:\n return ODYSSEY_STEP.DONE;\n break;\n default:\n return ODYSSEY_STEP.INIT;\n break;\n }\n}\n\nexport function getStepByTGPUserStatus(status: TGP_USER_STATUS): ODYSSEY_STEP {\n switch (status) {\n case TGP_USER_STATUS.DEFAULT:\n return ODYSSEY_STEP.CONNECTED_WALLET;\n break;\n case TGP_USER_STATUS.TWITTER_CONNECTED:\n return ODYSSEY_STEP.LINKED_TWITTER;\n break;\n case TGP_USER_STATUS.DISCORD_CONNECTED:\n return ODYSSEY_STEP.FOLLOWED_DISCORD;\n break;\n case TGP_USER_STATUS.EMAIL_CONNECTED:\n return ODYSSEY_STEP.FILLED_EMAIL;\n break;\n default:\n return ODYSSEY_STEP.INIT;\n break;\n }\n}\n/**\n * get next distribution timestamp\n * @param spinDistributionIntervalType // 0: every hour, 1: every day, 2: every week;\n * @returns timestamp of milliseconds\n */\nexport function getSpinNextDistributionTimestamp(spinDistributionIntervalType: 0 | 1 | 2): number {\n let nowDate = moment().utc();\n switch (spinDistributionIntervalType) {\n case 0:\n nowDate = nowDate.add(1, 'hours').set('minutes', 0).set('seconds', 0);\n break;\n case 1:\n nowDate = nowDate.add(1, 'days').set('hours', 0).set('minutes', 0).set('seconds', 0);\n break;\n default:\n const day = nowDate.weekday();\n if (day === 0) {\n nowDate = nowDate.day(1).set('hours', 0).set('minutes', 0).set('seconds', 0);\n } else {\n nowDate = nowDate.day(8).set('hours', 0).set('minutes', 0).set('seconds', 0);\n }\n\n break;\n }\n return nowDate.valueOf();\n}\n\n// @param alphaWad: decimal 18 units 1.3e18 means 1.3\n// @param liquidity: can get from simulateAddLiquidity\n// @param accountBoost : 10000 means 1\n// @param poolFactor : 10000 means 1\n// @param quotePriceWad : 1e18 means price 1 usd\nexport async function simulateRangePointPerDay({\n instrument,\n expiry,\n alphaWad,\n liquidity,\n balance,\n accountBoost,\n poolFactor,\n quotePriceWad,\n isStable = false,\n sdk,\n pair,\n}: {\n instrument: InstrumentIdentifier;\n expiry: number;\n alphaWad: BigNumber;\n liquidity: BigNumber;\n balance: BigNumber;\n accountBoost: number;\n poolFactor: number;\n quotePriceWad: BigNumber;\n isStable: boolean;\n sdk: Context;\n pair?: WrappedPair;\n}): Promise {\n let initialMarginRatio: number;\n let currentSqrtPX96: BigNumber;\n const isLivePair = isWrappedPairType(pair);\n if (isLivePair && pair) {\n initialMarginRatio = pair.rootInstrument.initialMarginRatio;\n currentSqrtPX96 = pair.sqrtPX96;\n } else {\n initialMarginRatio = INITIAL_MARGIN_RATIO;\n const benchmarkPrice = await sdk.perp.simulate.simulateBenchmarkPrice(instrument, expiry);\n currentSqrtPX96 = wadToSqrtX96(benchmarkPrice);\n }\n\n return calculateRangePointPerDay(\n liquidity,\n currentSqrtPX96,\n balance,\n alphaWad,\n initialMarginRatio,\n accountBoost,\n poolFactor,\n quotePriceWad,\n isStable,\n );\n}\n\nexport function calculateRangePointPerDay(\n liquidity: BigNumber,\n entrySqrtX96: BigNumber,\n balance: BigNumber,\n alphaWad: BigNumber,\n initialMarginRatio: number,\n accountBoost: number,\n poolFactor: number,\n quotePriceWad: BigNumber,\n isStable: boolean,\n): BigNumber {\n // liquidity = sqrt(vx * vy) = sqrt(vx * vy) = sqrt(vy*vy/ entryPrice)\n // liquidity = vy/ sqrt(entryPrice)\n // vy = liquidity * sqrt(entryPrice) = liquidity * sqrtPriceX96 / 2^96\n const vy = liquidity.mul(entrySqrtX96).div(Q96);\n // we can directly use wad here, because mul then div will not change the value\n let pointPower = BigNumber.from(0);\n if (initialMarginRatio === 100 || isStable) {\n // 100x leverage pair use simple formula\n pointPower = balance.div(86400).div(365);\n } else {\n pointPower = vy.mul(2).mul(r2w(initialMarginRatio)).div(capAlphaWad(alphaWad).sub(WAD)).div(86400).div(365);\n }\n\n let pointPerDay = pointPower.mul(86400);\n pointPerDay = wmul(pointPerDay, r2w(accountBoost));\n pointPerDay = wmul(pointPerDay, r2w(poolFactor));\n pointPerDay = wmul(pointPerDay, quotePriceWad);\n return pointPerDay;\n}\n\nexport function capAlphaWad(alphaWad: BigNumber): BigNumber {\n const TWO_WAD: BigNumber = toWad('2');\n return alphaWad.gt(TWO_WAD) ? TWO_WAD : alphaWad;\n}\n\n// @param accountBoost : 10000 means 1\n// @param poolFactor : 10000 means 1\n// @param quotePriceWad : 1e18 means price 1 usd\nexport async function simulateOrderPointPerDay(\n targetTick: number,\n baseSize: BigNumber,\n accountBoost: number,\n poolFactor: number,\n quotePriceWad: BigNumber,\n): Promise {\n const pointPower = wmul(TickMath.getWadAtTick(targetTick), baseSize.abs()).div(86400).div(365);\n\n let pointPerDay = pointPower.mul(86400); // 1 day\n pointPerDay = wmul(pointPerDay, r2w(accountBoost));\n pointPerDay = wmul(pointPerDay, r2w(poolFactor));\n pointPerDay = wmul(pointPerDay, quotePriceWad);\n return pointPerDay;\n}\n\nexport async function simulatePortfolioPointPerDay(\n portfolios: WrappedPortfolio[],\n accountBoost: number,\n pointConfigMetaMap: Map,\n): Promise {\n let totalPointPerDay = ZERO;\n const lowerCaseConfigMap = new Map();\n pointConfigMetaMap.forEach((value, key) => {\n lowerCaseConfigMap.set(key.toLowerCase(), value);\n });\n\n for (let i = 0; i < portfolios.length; i++) {\n const portfolio = portfolios[i];\n let pointConf = lowerCaseConfigMap.get(portfolio.rootInstrument.instrumentAddr.toLowerCase());\n if (!pointConf) {\n pointConf = { isStable: false, quotePriceWad: ZERO, poolFactorMap: new Map() };\n }\n if (portfolio) {\n const expiry = portfolio.expiry;\n // get all ranges\n const poolFactor = pointConf!.poolFactorMap.get(expiry) ? pointConf!.poolFactorMap.get(expiry) : 0;\n const quotePriceWad = pointConf!.quotePriceWad;\n const isStable = pointConf!.isStable;\n\n if (poolFactor === 0 || quotePriceWad === ZERO) continue;\n for (const range of Object.values(portfolio.rangeMap)) {\n // must use abs range difference\n const equivalentAlpha = TickMath.getWadAtTick(Math.abs(~~(range.tickUpper - range.tickLower) / 2));\n const pointPerDay = await calculateRangePointPerDay(\n range.liquidity,\n range.sqrtEntryPX96,\n range.balance,\n equivalentAlpha,\n portfolio.rootInstrument.setting.initialMarginRatio,\n accountBoost,\n poolFactor!,\n quotePriceWad,\n isStable,\n );\n totalPointPerDay = totalPointPerDay.add(pointPerDay);\n }\n for (const order of Object.values(portfolio.orderMap)) {\n const pointPerDay = await simulateOrderPointPerDay(\n order.tick,\n order.size,\n accountBoost,\n poolFactor!,\n quotePriceWad,\n );\n totalPointPerDay = totalPointPerDay.add(pointPerDay);\n }\n }\n }\n return totalPointPerDay;\n}\n","import { JsonRpcSigner } from '@ethersproject/providers';\nimport { createAction, createAsyncThunk } from '@reduxjs/toolkit';\nimport axios from 'axios';\nimport { BigNumber } from 'ethers';\nimport _ from 'lodash';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { PAIR_RATIO_BASE } from '@/constants/global';\nimport { getOdysseyApiPrefix } from '@/constants/odyssey';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport {\n CAMPAIGN_TYPE,\n IEpoch,\n IEpochDetail,\n IInfoOverview,\n ILeaderBoard,\n IOdysseyDashboard,\n IOdysseySignature,\n IRanking,\n IRecentJoin,\n ISpinResult,\n ITokenProof,\n ITokenRanking,\n IUserPoints,\n IUserProfile,\n InstrumentPointConfigParam,\n ODYSSEY_STEP,\n ODYSSEY_TABS,\n} from '@/types/odyssey';\nimport { CreativePair } from '@/types/pair';\nimport { TokenInfo } from '@/types/token';\nimport { axiosGet, axiosPost } from '@/utils/axios';\nimport { saveOdysseyJWTToken } from '@/utils/storage';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { QUERY_KEYS } from '@/constants/query';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { queryClient } from '@/pages/App';\nimport { simulateOrderPointPerDay, simulatePortfolioPointPerDay, simulateRangePointPerDay } from '@/utils/odyssey';\nimport { isWrappedPairType } from '@/utils/pair';\nimport { Context } from '@derivation-tech/context';\nimport { ITokenPriceMap } from '../global/type';\nimport { AppState } from '../store';\n\nexport const setCurrentStep = createAction<{ userAddr: string; step: ODYSSEY_STEP; chainId: number }>(\n 'odyssey/setCurrentStep',\n);\nexport const setSignUpSkipped = createAction<{ userAddr: string; chainId: number }>('odyssey/setSignUpSkipped');\nexport const setOdysseyTab = createAction<{ tab: ODYSSEY_TABS }>('odyssey/setOdysseyTab');\nexport const saveReferralCode = createAction<{ userAddr?: string; referralCode: string; chainId: number }>(\n 'odyssey/saveReferralCode',\n);\nexport const resetState = createAction<{ userAddr: string; chainId: number }>('odyssey/resetState');\nexport const setCurrentEpoch = createAction<{ chainId: number; epoch: IEpoch }>('odyssey/setCurrentEpoch');\nexport const setOdysseyRegistered = createAction<{\n userAddr: string;\n registered: boolean;\n chainId: number;\n}>('odyssey/setOdysseyRegistered');\nexport const setOdysseyUserJWT = createAction<{\n userAddr: string;\n token: string;\n chainId: number;\n}>('odyssey/setOdysseyUserJWT');\n\nexport const postJWTToken = createAsyncThunk(\n 'odyssey/postJWTToken',\n async ({\n // message,\n inviteCode,\n userAddr,\n signature,\n nonce,\n source,\n chainId,\n }: {\n inviteCode?: string;\n userAddr: string;\n signature: string;\n nonce: number;\n source: number;\n chainId: number;\n }): Promise => {\n const response = await axiosGet({\n url: getOdysseyApiPrefix(chainId, '/auth/sign'),\n type: CAMPAIGN_TYPE.ODYSSEY,\n address: userAddr,\n config: {\n params: {\n source: source, // 0: odyssey 1: TGP Master 2: TGP Open\n referralCode: inviteCode,\n wallet: userAddr,\n signature,\n nonce,\n },\n },\n });\n if (response?.data?.data) {\n return response?.data?.data.accessToken;\n }\n },\n);\n\nexport const signOdysseyMsg = createAsyncThunk(\n 'odyssey/signOdysseyMsg',\n async (\n {\n // message,\n signer,\n inviteCode,\n userAddr,\n chainId,\n }: {\n message: string;\n signer: JsonRpcSigner;\n inviteCode?: string;\n userAddr: string;\n chainId: number;\n },\n { dispatch, getState },\n ): Promise<{ data: IOdysseySignature } & { jwtToken?: string }> => {\n const {\n odyssey: { odysseyDappConfig, chainUserProfile: userProfile },\n } = getState() as AppState;\n const profile = _.get(userProfile, [chainId, userAddr]);\n const nonce = new Date().getTime();\n const signMsg = `Wallet Address:${userAddr}\nNonce:${nonce}\nAgreement:${odysseyDappConfig?.sign?.agreement}`;\n const signature = await signer.signMessage(signMsg);\n const jwtToken = await dispatch(\n postJWTToken({\n chainId,\n inviteCode:\n inviteCode && _.isEqual(inviteCode?.toLowerCase(), profile?.item?.referralCode.toLowerCase())\n ? undefined\n : inviteCode,\n userAddr,\n signature,\n nonce,\n source: 0,\n }),\n ).unwrap();\n console.log('🚀 ~ jwtToken:', jwtToken);\n if (jwtToken) {\n saveOdysseyJWTToken(userAddr, jwtToken, chainId);\n dispatch(getUserDashboard({ userAddr, chainId }));\n chainId && dispatch(getUserProfile({ userAddr, chainId }));\n }\n return {\n data: {\n nonce,\n signature,\n address: userAddr,\n inviteCode,\n },\n jwtToken,\n };\n },\n);\n\nexport const postUpdateProfile = createAsyncThunk(\n 'odyssey/postUpdateProfile',\n async (\n {\n discordId,\n email,\n username,\n userAddr,\n chainId,\n type = CAMPAIGN_TYPE.ODYSSEY,\n }: {\n discordId?: string;\n email?: string;\n username?: string;\n userAddr: string;\n chainId: number;\n type?: CAMPAIGN_TYPE;\n },\n { dispatch },\n ): Promise => {\n try {\n const url = username ? '/user/updateUserName' : '/user/update';\n const result = await axiosPost({\n type: type,\n chainId,\n url: getOdysseyApiPrefix(chainId, url),\n address: userAddr,\n data: {\n discordId,\n email,\n username,\n },\n });\n if (result.status === 200) {\n dispatch(getUserProfile({ userAddr, chainId }));\n if (username) {\n dispatch(getLeaderBoard({ chainId }));\n }\n\n // TODO: temp comment out for api not ready\n // dispatch(getUserDashboard({ userAddr }));\n return true;\n }\n return false;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (error: any) {\n console.log('🚀 ~ error:', error);\n if (error?.response?.data?.msg || error?.response?.data?.message) {\n throw new Error(error?.response?.data?.msg || error?.response?.data?.message);\n }\n throw new Error('');\n return false;\n }\n return false;\n },\n);\n\nexport const getUserDashboard = createAsyncThunk(\n 'odyssey/getUserDashboard',\n async (\n { userAddr, epoch, chainId }: { userAddr: string; epoch?: number; chainId: number },\n { getState },\n ): Promise => {\n if (!epoch) {\n const {\n odyssey: { chainActiveEpoch },\n } = getState() as AppState;\n const activeEpoch = chainActiveEpoch[chainId];\n if (activeEpoch) {\n epoch = activeEpoch.epoch;\n }\n }\n if (!epoch) {\n return;\n }\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.ODYSSEY,\n url: getOdysseyApiPrefix(chainId, '/dashboard'),\n address: userAddr,\n config: {\n params: {\n wallet: userAddr,\n epoch,\n },\n },\n });\n if (result?.data?.data) {\n return result.data.data;\n }\n },\n);\nexport const getLeaderBoard = createAsyncThunk(\n 'odyssey/getLeaderBoard',\n async (\n {\n epoch,\n page = 1,\n pageSize = 500,\n chainId,\n }: {\n epoch?: number;\n page?: number;\n pageSize?: number;\n chainId: number;\n },\n { getState, dispatch },\n ): Promise => {\n const {\n odyssey: { chainCurrentEpoch, chainEpochs },\n } = getState() as AppState;\n const currentEpoch = chainCurrentEpoch[chainId];\n if (!epoch) {\n epoch = currentEpoch?.epoch || 1;\n }\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.ODYSSEY,\n url: getOdysseyApiPrefix(chainId, '/leaderboard'),\n // address: userAddr,\n config: {\n params: {\n epoch,\n page,\n pageSize,\n },\n },\n });\n if (result?.data?.data) {\n const rankings = result?.data?.data?.rankings;\n if (result?.data?.data?.rankings) {\n const epochs = chainEpochs[chainId];\n if (!rankings.length && epochs.list && epochs.status === FETCHING_STATUS.DONE) {\n let epochNumber = (currentEpoch?.epoch || 2) - 1;\n if (epochNumber < 1) {\n epochNumber = 1;\n }\n const newEpoch = epochs.list.find((e) => e.epoch === epochNumber);\n newEpoch &&\n dispatch(\n setCurrentEpoch({\n chainId,\n epoch: newEpoch,\n }),\n );\n } else {\n result.data.data.rankings = _.orderBy(result?.data?.data.rankings.slice(0, 100), ['rank'], ['asc']);\n }\n }\n return result.data.data;\n }\n },\n);\nexport const getEpochs = createAsyncThunk(\n 'odyssey/getEpochs',\n async ({ chainId }: { chainId: number }): Promise => {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.ODYSSEY,\n url: getOdysseyApiPrefix(chainId, '/epochs'),\n });\n if (result?.data?.data) {\n return result.data.data?.epochs;\n }\n },\n);\nexport const getRecentJoins = createAsyncThunk(\n 'odyssey/recentJoins',\n async ({ chainId }: { chainId: number }): Promise => {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.ODYSSEY,\n url: getOdysseyApiPrefix(chainId, '/recentJoins'),\n // address: userAddr,\n });\n if (result?.data?.data) {\n return result.data.data?.users;\n }\n\n // return [\n // {\n // name: 'leo1',\n // inviter: 'jx',\n // timestamp: 1704941814,\n // },\n // {\n // name: 'leo2',\n // inviter: 'jx',\n // timestamp: 1704941814,\n // },\n // ];\n },\n);\nexport const getUserProfile = createAsyncThunk(\n 'odyssey/getUserProfile',\n async ({ userAddr, chainId }: { userAddr: string; chainId: number }): Promise => {\n try {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.ODYSSEY,\n url: getOdysseyApiPrefix(chainId, '/user'),\n config: {\n params: { wallet: userAddr },\n },\n });\n if (result?.data?.data) {\n return result.data.data;\n }\n } catch (e) {\n console.log('🚀 ~ e:', e);\n return undefined;\n }\n },\n);\nexport const getUserBlastOOPoints = createAsyncThunk(\n 'odyssey/getUserBlastOOPoints',\n async ({ userAddr, chainId }: { userAddr: string; chainId: number }): Promise => {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.ODYSSEY,\n url: getOdysseyApiPrefix(chainId, '/user/points'),\n // address: userAddr,\n config: {\n params: {\n wallet: userAddr,\n },\n },\n });\n if (result?.data?.data) {\n return result.data.data;\n }\n },\n);\nexport const getUserTokenProof = createAsyncThunk(\n 'odyssey/getUserTokenProof',\n async ({ userAddr, chainId }: { userAddr: string; chainId: number }): Promise => {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.ODYSSEY,\n url: getOdysseyApiPrefix(chainId, '/token/user/proof'),\n // address: userAddr,\n config: {\n params: {\n wallet: userAddr,\n },\n },\n });\n if (result?.data?.data) {\n return result.data.data.proofs;\n }\n },\n);\nexport const spinAction = createAsyncThunk(\n 'odyssey/spin',\n async (\n { userAddr, count = 1, chainId }: { userAddr: string; count?: number; chainId: number },\n { dispatch },\n ): Promise => {\n const result = await axiosPost({\n type: CAMPAIGN_TYPE.ODYSSEY,\n chainId,\n url: getOdysseyApiPrefix(chainId, '/spin'),\n address: userAddr,\n data: { count },\n });\n if (result?.data?.data) {\n dispatch(getUserDashboard({ userAddr, chainId }));\n return result.data.data;\n }\n },\n);\nexport const openBoxAction = createAsyncThunk(\n 'odyssey/openBox',\n async (\n { userAddr, count = 1, chainId }: { userAddr: string; count?: number; chainId: number },\n { dispatch },\n ): Promise<{ points: number; extraPoints: number } | undefined> => {\n const result = await axiosPost({\n type: CAMPAIGN_TYPE.ODYSSEY,\n chainId,\n url: getOdysseyApiPrefix(chainId, '/openBox'),\n address: userAddr,\n data: { count },\n });\n if (result?.data?.data) {\n dispatch(getUserDashboard({ userAddr, chainId }));\n dispatch(getUserProfile({ userAddr, chainId }));\n return result.data.data;\n }\n },\n);\nexport const claimExtraPointsAction = createAsyncThunk(\n 'odyssey/claimExtraPoints',\n async ({ userAddr, chainId }: { userAddr: string; chainId: number }, { dispatch }): Promise => {\n try {\n const result = await axiosPost({\n type: CAMPAIGN_TYPE.ODYSSEY,\n url: getOdysseyApiPrefix(chainId, '/claimExtraPoints'),\n chainId,\n address: userAddr,\n });\n if (result?.data?.data) {\n dispatch(getUserDashboard({ userAddr, chainId }));\n return result.data.data.points;\n }\n } catch (e) {\n console.log('🚀 ~ e:', e);\n }\n },\n);\n\nexport const getUserRanking = createAsyncThunk(\n 'odyssey/getUserRanking',\n async (\n { userAddr, epoch, chainId }: { userAddr: string; epoch?: number; chainId: number },\n { getState },\n ): Promise => {\n if (!epoch) {\n const {\n odyssey: { chainCurrentEpoch },\n } = getState() as AppState;\n const currentEpoch = chainCurrentEpoch[chainId];\n epoch = currentEpoch?.epoch || 1;\n }\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.ODYSSEY,\n url: getOdysseyApiPrefix(chainId, '/user/ranking'),\n config: {\n params: {\n epoch,\n wallet: userAddr,\n },\n },\n });\n if (result?.data?.data) {\n return result.data.data;\n }\n },\n);\nexport const getUserEpochDetails = createAsyncThunk(\n 'odyssey/getUserEpochDetails',\n async ({ userAddr, chainId }: { userAddr: string; chainId: number }): Promise => {\n try {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.ODYSSEY,\n url: getOdysseyApiPrefix(chainId, '/user/points/detail'),\n config: {\n params: {\n wallet: userAddr,\n },\n },\n });\n\n return result.data?.data;\n } catch (e) {\n console.log('🚀 ~ e:', e);\n return undefined;\n }\n },\n);\nexport const getUserTokenRanking = createAsyncThunk(\n 'odyssey/getUserTokenRanking',\n async (\n { userAddr, epoch, chainId }: { userAddr: string; epoch?: number; chainId: number },\n { getState },\n ): Promise => {\n if (!epoch) {\n const {\n odyssey: { chainCurrentEpoch },\n } = getState() as AppState;\n const currentEpoch = chainCurrentEpoch[chainId];\n epoch = currentEpoch?.epoch || 1;\n }\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.ODYSSEY,\n url: getOdysseyApiPrefix(chainId, '/token/user/ranking'),\n config: {\n params: {\n epoch,\n wallet: userAddr,\n },\n },\n });\n if (result?.data?.data) {\n return result.data.data;\n }\n },\n);\n\nexport const simulatePointsByLimitTrade = createAsyncThunk(\n 'odyssey/simulatePointsByLimitTrade',\n async (\n {\n chainId,\n userAddr,\n tick,\n accountBoost,\n base,\n quote,\n poolFactor,\n pair,\n }: {\n userAddr: string;\n chainId: number;\n tick: number;\n base: BigNumber;\n accountBoost?: number;\n poolFactor?: number;\n quote: TokenInfo;\n pair: WrappedPair;\n },\n { getState },\n ): Promise => {\n try {\n const {\n odyssey: { odysseyDappConfig, chainUserDashboard: userDashboard },\n } = getState() as AppState;\n const chainTokenPriceInfo = queryClient.getQueryData(QUERY_KEYS.GLOBAL.TOKEN_PRICE(chainId));\n const tokenPrice = chainTokenPriceInfo?.[quote.address]?.current;\n if (!tokenPrice) return;\n if (!odysseyDappConfig.supportChains.includes(chainId)) {\n return;\n }\n const config = odysseyDappConfig.chainConfig[chainId];\n const pairConfig = config.earnOoPointPairs?.find((p) => p.pairSymbol === pair.symbol);\n if (!pairConfig) {\n return;\n }\n const baseWad = base;\n const priceWad = WrappedBigNumber.from(tokenPrice).wadValue;\n if (!poolFactor) {\n poolFactor = pairConfig.boost;\n }\n if (!accountBoost) {\n const config = _.get(userDashboard, [chainId, userAddr, 'item']);\n if (config) {\n accountBoost = WrappedBigNumber.from(config.boost).plus(1).toNumber();\n } else {\n accountBoost = 1;\n }\n }\n console.log(`simulatePointsByLimitTrade params`, {\n tick,\n baseWad,\n accountBoost: WrappedBigNumber.from(accountBoost).mul(PAIR_RATIO_BASE).toNumber(),\n poolFactor: WrappedBigNumber.from(poolFactor).mul(PAIR_RATIO_BASE).toNumber(),\n priceWad,\n });\n const points = await simulateOrderPointPerDay(\n tick,\n baseWad,\n WrappedBigNumber.from(accountBoost).mul(PAIR_RATIO_BASE).toNumber(),\n WrappedBigNumber.from(poolFactor).mul(PAIR_RATIO_BASE).toNumber(),\n priceWad,\n );\n console.log('🚀 ~ points:', points);\n return WrappedBigNumber.from(points);\n } catch (error) {\n console.log('🚀 ~ error:', error);\n }\n },\n);\nexport const simulateEarningPoints = createAsyncThunk(\n 'odyssey/simulateEarningPoints',\n async (\n {\n chainId,\n accountBoost,\n userAddr,\n portfolios,\n }: {\n portfolios: WrappedPortfolio[];\n chainId: number;\n accountBoost?: number;\n userAddr: string;\n customStableInstruments: undefined | string[];\n },\n { getState },\n ): Promise => {\n try {\n const {\n odyssey: { odysseyDappConfig, chainUserDashboard: userDashboard },\n } = getState() as AppState;\n const tokenPriceMap = queryClient.getQueryData(QUERY_KEYS.GLOBAL.TOKEN_PRICE(chainId));\n if (!odysseyDappConfig.supportChains.includes(chainId)) {\n return;\n }\n const earnOoPointPairs = odysseyDappConfig.chainConfig[chainId]?.earnOoPointPairs;\n if (!earnOoPointPairs || !tokenPriceMap) {\n return;\n }\n if (!accountBoost) {\n const config = _.get(userDashboard, [chainId, userAddr, 'item']);\n if (config) {\n accountBoost = WrappedBigNumber.from(config.boost).plus(1).toNumber();\n } else {\n accountBoost = 1;\n }\n }\n const configMap = new Map();\n portfolios.forEach((p) => {\n const pair = p.rootPair;\n const config = earnOoPointPairs.find((e) => e.pairSymbol.toLowerCase() === pair.symbol.toLowerCase());\n let configForInstrument = configMap.get(p.rootInstrument.instrumentAddr);\n if (configForInstrument) {\n configForInstrument.poolFactorMap.set(p.expiry, (config?.boost || 0) * PAIR_RATIO_BASE);\n } else {\n configForInstrument = {\n isStable: p.rootInstrument.isStablePair,\n quotePriceWad: WrappedBigNumber.from(tokenPriceMap[p.rootInstrument.quoteToken.address].current).wadValue,\n poolFactorMap: new Map().set(p.expiry, (config?.boost || 0) * PAIR_RATIO_BASE),\n };\n }\n configMap.set(p.rootInstrument.instrumentAddr, configForInstrument);\n });\n\n const points = await simulatePortfolioPointPerDay(portfolios, accountBoost * PAIR_RATIO_BASE, configMap);\n\n return WrappedBigNumber.from(points);\n } catch (error) {\n console.log('🚀 ~ error:', error);\n }\n },\n);\n\nexport const simulatePointsByAddLiquidity = createAsyncThunk(\n 'odyssey/simulatePointsByAddLiquidity',\n async (\n {\n chainId,\n userAddr,\n accountBoost,\n quote,\n poolFactor,\n pair,\n alphaWad,\n liquidity: liquidity,\n margin,\n sdk,\n customStableInstruments,\n }: {\n userAddr: string;\n chainId: number;\n accountBoost?: number;\n poolFactor?: number;\n quote: TokenInfo;\n pair: WrappedPair | CreativePair;\n alphaWad: BigNumber;\n liquidity: WrappedBigNumber;\n margin: WrappedBigNumber;\n sdk: Context;\n customStableInstruments: undefined | string[];\n },\n { getState },\n ): Promise => {\n try {\n const {\n odyssey: { odysseyDappConfig, chainUserDashboard: userDashboard },\n } = getState() as AppState;\n const chainTokenPriceInfo = queryClient.getQueryData(QUERY_KEYS.GLOBAL.TOKEN_PRICE(chainId));\n\n const tokenPrice = chainTokenPriceInfo?.[quote.address]?.current;\n if (!tokenPrice) return;\n if (!odysseyDappConfig.supportChains.includes(chainId)) {\n return;\n }\n const config = odysseyDappConfig.chainConfig[chainId];\n const pairConfig = config.earnOoPointPairs?.find((p) => p.pairSymbol === pair.symbol);\n if (!pairConfig) {\n return;\n }\n\n const priceWad = WrappedBigNumber.from(tokenPrice).wadValue;\n if (!poolFactor) {\n poolFactor = pairConfig.boost;\n }\n if (!accountBoost) {\n const config = _.get(userDashboard, [chainId, userAddr, 'item']);\n if (config) {\n accountBoost = WrappedBigNumber.from(config.boost).plus(1).toNumber();\n } else {\n accountBoost = 1;\n }\n }\n\n console.record('syn', `simulateRangePointPerDay params`, {\n pairInfo: {\n marketType: pair.rootInstrument.marketType,\n baseSymbol: pair.rootInstrument.baseToken.symbol,\n quoteSymbol: pair.rootInstrument.quoteToken.symbol,\n },\n expiry: pair.expiry,\n alphaWad,\n liquidity: liquidity.wadValue,\n accountBoost: WrappedBigNumber.from(accountBoost).mul(PAIR_RATIO_BASE).toNumber(),\n poolFactor: WrappedBigNumber.from(poolFactor).mul(PAIR_RATIO_BASE).toNumber(),\n priceWad,\n });\n const instrumentSymbol = `${pair.rootInstrument.baseToken.symbol}-${pair.rootInstrument.quoteToken.symbol}-${pair.rootInstrument.marketType}`;\n let isStablePair = false;\n if (customStableInstruments && customStableInstruments.includes(instrumentSymbol)) {\n isStablePair = true;\n } else if (pair instanceof WrappedPair) {\n isStablePair = pair.rootInstrument.isStablePair;\n }\n\n const isLivePair = isWrappedPairType(pair);\n\n const points = await simulateRangePointPerDay({\n instrument: {\n marketType: pair.rootInstrument.marketType,\n baseSymbol: pair.rootInstrument.baseToken.symbol,\n quoteSymbol: pair.rootInstrument.quoteToken.symbol,\n },\n expiry: pair.expiry,\n alphaWad,\n liquidity: liquidity.wadValue,\n balance: margin.wadValue,\n accountBoost: WrappedBigNumber.from(accountBoost).mul(PAIR_RATIO_BASE).toNumber(),\n poolFactor: WrappedBigNumber.from(poolFactor).mul(PAIR_RATIO_BASE).toNumber(),\n quotePriceWad: priceWad,\n isStable: isStablePair,\n sdk,\n pair: isLivePair ? pair : undefined,\n });\n return WrappedBigNumber.from(points);\n } catch (error) {\n console.log('🚀 ~ error:', error);\n }\n },\n);\n\nexport const getUserPrePoints = createAsyncThunk(\n 'odyssey/getUserPrePoints',\n async ({\n userAddr,\n epoch = 1,\n chainId,\n }: {\n userAddr: string;\n epoch?: number;\n chainId: number;\n }): Promise => {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.ODYSSEY,\n url: getOdysseyApiPrefix(chainId, '/user/prePoints'),\n // address: userAddr,\n config: {\n params: {\n epoch,\n wallet: userAddr,\n },\n },\n });\n if (result?.data?.data) {\n return result.data.data.points;\n }\n },\n);\n\nexport const getInfoOverview = createAsyncThunk(\n 'odyssey/getInfoOverview',\n async ({ chainId }: { chainId: CHAIN_ID }): Promise => {\n const url = `https://api.synfutures.com/s3/config/info-page/${chainId}/overview.json`;\n const result = await axios.get(url);\n return result.data;\n },\n);\n","import { toBN } from '@derivation-tech/context';\nimport { ContractReceipt } from '@ethersproject/contracts';\nimport { JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers';\nimport { createAction, createAsyncThunk } from '@reduxjs/toolkit';\nimport { BigNumber } from 'ethers';\nimport _ from 'lodash';\n\nimport { FETCHING_STATUS, OPERATION_TX_TYPE } from '@/constants';\nimport { TRADE_LEVERAGE_THRESHOLDS } from '@/constants/global';\nimport {\n ERROR_MSG_EXCEED_WALLET_BALANCE,\n ERROR_MSG_FAIR_FAR_FROM_MARK,\n ERROR_MSG_LIMIT_PRICE_FAR_FROM_MARK,\n ERROR_MSG_ORDER_OCCUPIED,\n ERROR_MSG_SIZE_TO_TICK_IS_TRIVIAL,\n} from '@/constants/simulation';\nimport { INVALID_PRICE, LEVERAGE_ADJUST_TYPE, MANAGE_SIDE, TRADE_TYPE } from '@/constants/trade';\nimport { PriceBasisForPnl } from '@/constants/trade/priceBasisForPnl';\nimport { WrappedBigNumber, WrappedBigNumberLike } from '@/entities/WrappedBigNumber';\nimport { WrappedOrder } from '@/entities/WrappedOrder';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport {\n AdjustMarginByLeverageState,\n IAdjustMarginSimulation,\n ICrossMarketOrderData,\n ICrossMarketOrderSimulation,\n IMarketFormState,\n IOrderSimulation,\n IOrderSimulationData,\n IPnlParams,\n IScaleFormState,\n IScaledOrderSimulation,\n IScaledOrderSimulationData,\n ISimulation,\n ISimulationData,\n ISimulationOrder,\n MarginAdjustMethod,\n} from '@/types/trade';\nimport { IParsedTemplate } from '@/types/transaction';\nimport { getMappedRevertReason, parsedEthersError } from '@/utils/error';\nimport { parseSendingTxMessageMapping } from '@/utils/notification';\nimport { formatEther, toWad } from '@/utils/numberUtil';\nimport { showProperDateString } from '@/utils/timeUtils';\nimport { addedDeadline, perToTenThousands } from '@/utils/trade';\n\nimport { QUERY_KEYS } from '@/constants/query';\nimport SentryService from '@/entities/SentryService';\nimport { queryClient } from '@/pages/App';\nimport { IMetaOrder } from '@/types/account';\nimport { IGateBalanceInfo } from '@/types/balance';\nimport { calcMarginToDeposit } from '@/utils/position';\nimport { Context } from '@derivation-tech/context';\nimport {\n BatchOrderSizeDistribution,\n InstrumentInfo,\n Quotation,\n Side,\n SimulateTradeResult,\n TickMath,\n ZERO,\n} from '@synfutures/sdks-perp';\nimport { FundingChartInterval, KlineInterval } from '@synfutures/sdks-perp-datasource';\nimport { getPortfolioFromChain } from '../account/actions';\nimport { fetchGateBalanceAction, fetchTokenBalanceAction } from '../balance/actions';\nimport { useGlobalStore } from '../global/stores';\nimport { PollingHistoryId } from '../global/type';\nimport { simulatePointsByLimitTrade } from '../odyssey/actions';\nimport { AppState } from '../store';\nimport { sendTransaction } from '../transaction/actions';\nimport { checkTokenAllowance } from '../user/actions';\n\nexport const resetFormByChainId = createAction<{ chainId: number }>('trade/resetFormByChainId');\nexport const setMarketFormState = createAction('trade/setMarketFormState');\nexport const setCurrentFutures = createAction<{ chainId: number; futures: InstrumentInfo }>('trade/setCurrentFuture');\nexport const setCurrentPair = createAction<{ chainId: number; pair: WrappedPair }>('trade/setCurrentPair');\nexport const clearMarketTradeSimulation = createAction<{ chainId: number }>('trade/clearMarketTradeSimulation');\n\nexport const resetAdjustMarginForm = createAction<{ chainId: number }>('trade/resetAdjustMarginForm');\nexport const resetClosePositionForm = createAction<{ chainId: number }>('trade/resetClosePositionForm');\nexport const setPairChartDuration = createAction<{ chainId: number; chartDuration: KlineInterval }>(\n 'trade/setPairChartDuration',\n);\nexport const setFundingChartDuration = createAction<{ chainId: number; chartDuration: FundingChartInterval }>(\n 'trade/setFundingChartDuration',\n);\nexport const setPairStepRatio = createAction<{ chainId: number; stepRatio: number }>('trade/setPairStepRatio');\nexport const setIsTurnOnCrossMarket = createAction<{ chainId: number; isTurnOnCrossMarket: boolean }>(\n 'trade/setIsTurnOnCrossMarket',\n);\nexport const setPairLeverageSwitchChecked = createAction<{\n chainId: number;\n checked: boolean;\n userAddr: string;\n pairId: string;\n}>('trade/setPairLeverageSwitchChecked');\n\nexport const switchToMarketTab = createAction<{ chainId: number }>('trade/switchToMarketTab');\n\n// market and adjust leverage form\nexport const setTradeFormLeverage = createAction<{\n chainId: number;\n leverage: string | undefined;\n}>('trade/setTradeFormLeverage');\nexport const setTradeFormLeverageAndMargin = createAction<{\n chainId: number;\n leverage: string | undefined;\n marginAmount: string | undefined;\n}>('trade/setTradeFormLeverageAndMargin');\n\nexport const setTradeFormType = createAction<{\n chainId: number;\n tradeType: TRADE_TYPE;\n}>('tradeForm/setTradeFormType');\n\nexport const setPriceBasisForPnl = createAction<{\n priceBasisForPnl: PriceBasisForPnl;\n}>('tradeForm/setPriceBasisForPnl');\n\nexport const setTradeDrawerType = createAction<{\n chainId: number;\n tradeType: TRADE_TYPE | undefined;\n}>('tradeForm/setTradeDrawerType');\n\n// market and limit order form\nexport const setTradeFormSide = createAction<{\n chainId: number;\n tradeSide: Side;\n}>('tradeForm/setTradeFormSide');\n\n// market and limit order form\nexport const setTradeFormAmount = createAction<{\n chainId: number;\n baseAmount?: string;\n quoteAmount?: string;\n marginAmount?: string;\n leverageAdjustType?: LEVERAGE_ADJUST_TYPE;\n}>('tradeForm/setTradeFormAmount');\nexport const setScaleFormAmount = createAction<{\n chainId: number;\n baseAmount?: string;\n quoteAmount?: string;\n orderCount?: number;\n stepRatio?: number;\n sizeDistribution?: BatchOrderSizeDistribution;\n}>('tradeForm/setScaleFormAmount');\n\n// close position form\nexport const setClosePositionFormAmount = createAction<{\n chainId: number;\n amount: string;\n}>('tradeForm/setClosePositionFormAmount');\n\n// adjust margin form\nexport const setAdjustMarginMethod = createAction('tradeForm/setAdjustMarginMethod');\nexport const setAdjustMarginSide = createAction<{ method: MarginAdjustMethod; side: MANAGE_SIDE }>(\n 'tradeForm/setAdjustMarginSide',\n);\n\n// adjust margin form\nexport const setAdjustMarginByLeverageState = createAction<\n {\n chainId: number;\n } & Partial\n>('tradeForm/setAdjustMarginByLeverageState');\n\nexport const setAdjustMarginFormAmount = createAction<{\n chainId: number;\n amount: string;\n transferIn?: boolean;\n marginToDeposit?: string;\n}>('tradeForm/setAdjustMarginFormAmount');\n// adjust margin simulation\nexport const setAdjustMarginSimulation = createAction<{\n chainId: number;\n transferAmount: BigNumber;\n marginToDepositWad: BigNumber;\n leverageWad: BigNumber;\n}>('tradeForm/setAdjustMarginSimulation');\n\n// market and limit order form\nexport const setTradeFormMargin = createAction<{\n chainId: number;\n marginAmount: string;\n}>('tradeForm/setTradeFormMargin');\n\n// limit order form only\nexport const setLimitPrice = createAction<{\n chainId: number;\n limitPrice: string;\n alignedPrice?: string;\n fromOrderBook?: boolean;\n}>('tradeForm/setLimitPrice');\nexport const setScaleLimitPrice = createAction<{\n chainId: number;\n lowerPrice?: string;\n alignedLowerPrice?: string;\n lowerTick?: number;\n upperPrice?: string;\n alignedUpperPrice?: string;\n upperTick?: number;\n stepRatio?: number;\n}>('tradeForm/setScaleLimitPrice');\n\n// update limitState from orderbook\nexport const updateLimitPriceFromOrderBook = createAction<{\n limitState: {\n chainId: number;\n limitPrice: string;\n alignedPrice: string;\n tradeSide: Side;\n };\n formType: TRADE_TYPE;\n}>('tradeForm/updateLimitPriceFromOrderBook');\n\n// adjust margin form only\nexport const setTransferAmount = createAction<{\n chainId: number;\n transferIn?: string;\n transferOut?: string;\n}>('tradeForm/setTransferAmount');\n\n// cancel order and cancel TPSL form\nexport const selectOrderToCancel = createAction<{\n chainId: number;\n userAddr: string;\n ids: string[];\n}>('tradeForm/selectOrderOrTpslToCancel');\n\n// trade\n\nexport const updateSimulateError = createAction<{\n type: TRADE_TYPE;\n chainId: number;\n errMessage: string;\n}>('tradeForm/updateSimulateError');\n\nexport const setIsChosenOrder = createAction<{ chainId: number; isChosenOrder: boolean }>('trade/setIsChosenOrder');\nexport const setPnlShare = createAction('trade/setPnlShare');\n\nexport const simulateMarketTrade = createAsyncThunk(\n 'tradeForm/simulate',\n async (\n {\n chainId,\n sdkContext,\n base,\n tradeSide,\n position,\n leverage,\n slippage,\n margin,\n maxLeverage = TRADE_LEVERAGE_THRESHOLDS.MAX,\n userAddr,\n }: {\n chainId: number;\n position: WrappedPosition | undefined;\n sdkContext: Context | undefined;\n base?: string | undefined;\n margin?: string;\n leverage?: string;\n tradeSide: Side;\n slippage: number;\n userAddr: string;\n maxLeverage: number;\n onlyCallFuncMode?: boolean;\n },\n { getState, dispatch },\n ): Promise => {\n try {\n let leverageWad = leverage ? toWad(leverage) : undefined;\n if (leverageWad?.gte(toWad(maxLeverage))) {\n leverageWad = toWad(maxLeverage - TRADE_LEVERAGE_THRESHOLDS.ACTUAL_MAX_STEP);\n }\n const {\n balance: { chainBalanceMap },\n trade: { chainMarketFormState },\n } = getState() as AppState;\n base = base || _.get(chainMarketFormState, [chainId, 'baseAmount']);\n if (sdkContext && position && base) {\n if (toBN(base || 0).eq(0) || (leverageWad && leverageWad.eq(0))) {\n return;\n }\n if (position && base) {\n const baseWrap = WrappedBigNumber.from(base);\n if (\n tradeSide !== position.side &&\n baseWrap.notEq(0) &&\n baseWrap.eq(WrappedBigNumber.from(position.size).abs())\n ) {\n dispatch(\n simulateMarketClosePosition({\n chainId,\n position,\n sdkContext,\n base,\n tradeSide,\n slippage,\n userAddr,\n maxLeverage,\n }),\n );\n return;\n }\n }\n const marginWad = margin ? toWad(margin) : undefined;\n\n // const adjustTradeSide = getAdjustTradeSide(tradeSide, position.rootPair.isInverse);\n const adjustTradeSide = tradeSide;\n\n // recheck the base after async inquire\n const {\n trade: { chainMarketFormState },\n } = getState() as AppState;\n base = base || _.get(chainMarketFormState, [chainId, 'baseAmount']);\n if (toBN(base || 0).eq(0) || (leverageWad && leverageWad.eq(0))) {\n return;\n }\n\n let simulation: SimulateTradeResult;\n if (marginWad) {\n simulation = await sdkContext.perp.simulate.simulateMarketOrderByMargin({\n // instrument: position.rootInstrument,\n side: adjustTradeSide,\n\n size: { base: toWad(base) },\n slippage: perToTenThousands(slippage),\n tradeInfo: position,\n margin: marginWad,\n });\n } else {\n simulation = await sdkContext.perp.simulate.simulateMarketOrderByLeverage({\n // instrument: position.rootInstrument,\n leverage: leverageWad || toWad(0),\n side: tradeSide,\n\n size: { base: toWad(base) },\n slippage: perToTenThousands(slippage),\n tradeInfo: position,\n });\n }\n\n console.log(\n `😀simulation result: [${position.rootPair.symbol}],[exceedMaxLeverage:${simulation.exceedMaxLeverage}]`,\n simulation,\n {\n position,\n leverage,\n margin,\n base,\n tradeSide,\n slippage,\n },\n );\n\n const gateBalanceList = queryClient.getQueryData(\n QUERY_KEYS.BALANCE.GATE(chainId, userAddr),\n );\n const gateBalanceInfo = (gateBalanceList || [])?.find(\n (balance) => balance.address === position.rootInstrument.quoteToken.address,\n );\n\n const simulationResult: ISimulation = {\n chainId,\n data: {\n origin: simulation,\n ...simulation,\n simulationMainPosition: new WrappedPosition(\n {\n ...simulation.postPosition,\n id: position.rootPortfolio.id,\n instrumentId: position.rootInstrument.id,\n pairId: position.rootPair.id,\n accountId: position.rootPortfolio.rootAccount.id,\n portfolioId: position.rootPortfolio.id,\n blockInfo: position.rootPortfolio.blockInfo,\n expiry: position.rootPortfolio.expiry,\n traderAddr: position.rootPortfolio.traderAddr,\n instrumentAddr: position.rootInstrument.instrumentAddr,\n },\n position.rootPortfolio,\n ),\n tradePrice: WrappedBigNumber.from(simulation.tradePrice),\n limitTick: simulation.limitTick,\n limitPrice: WrappedBigNumber.from(TickMath.getWadAtTick(simulation.limitTick)),\n priceChangeRate: WrappedBigNumber.from(simulation.priceImpact),\n marginToDeposit: calcMarginToDeposit(simulation.margin, gateBalanceInfo?.balance || 0),\n additionalFee: WrappedBigNumber.from(simulation.stabilityFee),\n estimatedTradeValue: WrappedBigNumber.from(simulation.tradeValue),\n tradingFee: WrappedBigNumber.from(simulation.tradingFee),\n // margin may be input\n margin: WrappedBigNumber.from(simulation.marginChanged),\n realized: WrappedBigNumber.from(simulation.realized),\n minTradeValue: WrappedBigNumber.from(position.rootInstrument.minTradeValue),\n leverage: WrappedBigNumber.from(simulation.leverage),\n exceedMaxLeverage:\n simulation.exceedMaxLeverage && WrappedBigNumber.from(simulation.leverage).lt(leverage || 0),\n },\n };\n if (position.rootPair.isInverse && simulationResult?.data) {\n // simulationResult.data.tradePrice = toReciprocalNumber(simulationResult.data.tradePrice);\n // simulationResult.data.limitPrice = toReciprocalNumber(simulationResult.data.limitPrice);\n // simulationResult.data.priceChangeRate = simulationResult.data.priceChangeRate.mul(-1);\n // simulationResult.data.limitTradeValue = toReciprocalNumber(simulationResult.data.limitTradeValue);\n }\n // clear simulation display and show error\n if (simulationResult.data?.additionalFee.gt(0)) {\n simulationResult.message = 'errors.trade.additionalFeeError';\n simulationResult.data = undefined;\n return simulationResult;\n }\n // check if the margin is not enough\n if (userAddr && simulationResult.data?.marginToDeposit?.gt(0)) {\n const rootInstrument = position.rootInstrument;\n const balance = _.get(chainBalanceMap, [chainId, userAddr, rootInstrument.quoteToken.address]);\n if (balance) {\n if (simulationResult.data.marginToDeposit.gt(balance.balance)) {\n simulationResult.message = ERROR_MSG_EXCEED_WALLET_BALANCE.errorMsg;\n simulationResult.errorData = ERROR_MSG_EXCEED_WALLET_BALANCE.errorData;\n }\n }\n }\n\n return simulationResult;\n }\n return;\n } catch (e) {\n SentryService.captureException(\n e,\n {\n name: 'action:tradeForm/simulate',\n chainId,\n base,\n tradeSide,\n position: position?.toJSON(),\n leverage,\n slippage,\n margin,\n maxLeverage,\n userAddr,\n },\n 'info',\n );\n console.error('🚀 simulate error', e);\n const parsedError = parsedEthersError(e);\n const errorMsg = parsedError?.errorMsg || _.get(e, ['reason']) || _.get(e, ['message']);\n return { chainId, message: parsedError?.errorData || errorMsg, errorData: parsedError?.errorData };\n }\n },\n);\n\nexport const simulateMarketClosePosition = createAsyncThunk(\n 'tradeForm/simulateMarketClosePosition',\n async (\n {\n chainId,\n sdkContext,\n base,\n tradeSide,\n position,\n slippage,\n userAddr,\n }: {\n chainId: number;\n position: WrappedPosition | undefined;\n sdkContext: Context | undefined;\n base?: string | undefined;\n tradeSide: Side;\n slippage: number;\n userAddr: string;\n maxLeverage: number;\n onlyCallFuncMode?: boolean;\n },\n { getState },\n ): Promise => {\n try {\n const {\n balance: { chainBalanceMap },\n trade: { chainMarketFormState },\n } = getState() as AppState;\n base = base || _.get(chainMarketFormState, [chainId, 'baseAmount']);\n if (sdkContext && position && base) {\n // recheck the base after async inquire\n const {\n trade: { chainMarketFormState },\n } = getState() as AppState;\n base = base || _.get(chainMarketFormState, [chainId, 'baseAmount']);\n\n const simulation: SimulateTradeResult = await sdkContext.perp.simulate.simulateClose({\n instrument: position.rootInstrument,\n\n size: { base: toWad(base) },\n slippage: perToTenThousands(slippage),\n tradeInfo: position,\n });\n\n console.log(\n `😀simulation result: [${position.rootPair.symbol}],[exceedMaxLeverage:${simulation.exceedMaxLeverage}]`,\n simulation,\n {\n position,\n base,\n tradeSide,\n slippage,\n },\n );\n\n const gateBalanceList = queryClient.getQueryData(\n QUERY_KEYS.BALANCE.GATE(chainId, userAddr),\n );\n const gateBalanceInfo = (gateBalanceList || [])?.find(\n (balance) => balance.address === position.rootInstrument.quoteToken.address,\n );\n\n const simulationResult: ISimulation = {\n chainId,\n data: {\n origin: simulation,\n ...simulation,\n simulationMainPosition: new WrappedPosition(\n {\n ...simulation.postPosition,\n id: position.rootPortfolio.id,\n instrumentId: position.rootInstrument.id,\n pairId: position.rootPair.id,\n accountId: position.rootPortfolio.rootAccount.id,\n portfolioId: position.rootPortfolio.id,\n blockInfo: position.rootPortfolio.blockInfo,\n expiry: position.rootPortfolio.expiry,\n traderAddr: position.rootPortfolio.traderAddr,\n instrumentAddr: position.rootInstrument.instrumentAddr,\n },\n position.rootPortfolio,\n ),\n tradePrice: WrappedBigNumber.from(simulation.tradePrice),\n limitTick: simulation.limitTick,\n limitPrice: WrappedBigNumber.from(TickMath.getWadAtTick(simulation.limitTick)),\n priceChangeRate: WrappedBigNumber.from(simulation.priceImpact),\n marginToDeposit: calcMarginToDeposit(simulation.margin, gateBalanceInfo?.balance || 0),\n additionalFee: WrappedBigNumber.from(simulation.stabilityFee),\n estimatedTradeValue: WrappedBigNumber.from(simulation.tradeValue),\n tradingFee: WrappedBigNumber.from(simulation.tradingFee),\n // margin may be input\n margin: WrappedBigNumber.from(simulation.marginChanged),\n realized: WrappedBigNumber.from(simulation.realized),\n minTradeValue: WrappedBigNumber.from(position.rootInstrument.minTradeValue),\n leverage: WrappedBigNumber.from(simulation.leverage),\n exceedMaxLeverage: false,\n },\n };\n if (position.rootPair.isInverse && simulationResult?.data) {\n // simulationResult.data.tradePrice = toReciprocalNumber(simulationResult.data.tradePrice);\n // simulationResult.data.limitPrice = toReciprocalNumber(simulationResult.data.limitPrice);\n // simulationResult.data.priceChangeRate = simulationResult.data.priceChangeRate.mul(-1);\n // simulationResult.data.limitTradeValue = toReciprocalNumber(simulationResult.data.limitTradeValue);\n }\n\n // check if the margin is not enough\n if (userAddr && simulationResult.data?.marginToDeposit?.gt(0)) {\n const rootInstrument = position.rootInstrument;\n const balance = _.get(chainBalanceMap, [chainId, userAddr, rootInstrument.quoteToken.address]);\n if (balance) {\n if (simulationResult.data.marginToDeposit.gt(balance.balance)) {\n simulationResult.message = ERROR_MSG_EXCEED_WALLET_BALANCE.errorMsg;\n simulationResult.errorData = ERROR_MSG_EXCEED_WALLET_BALANCE.errorData;\n }\n }\n }\n\n return simulationResult;\n }\n return;\n } catch (e) {\n SentryService.captureException(\n e,\n {\n name: 'action:tradeForm/simulateMarketClosePosition',\n chainId,\n base,\n tradeSide,\n position: position?.toJSON(),\n slippage,\n userAddr,\n },\n 'info',\n );\n\n console.error('🚀 simulate error', e);\n const parsedError = parsedEthersError(e);\n const errorMsg = parsedError?.errorMsg || _.get(e, ['reason']) || _.get(e, ['message']);\n return { chainId, message: parsedError?.errorData || errorMsg, errorData: parsedError?.errorData };\n }\n },\n);\n\nexport const trade = createAsyncThunk(\n 'tradeForm/trade',\n async (\n {\n signer,\n chainId,\n userAddr,\n sdk: sdk,\n pair,\n baseAmount,\n side,\n slippage,\n deadline,\n provider,\n tradePrice,\n simulation,\n }: {\n chainId: number;\n userAddr: string;\n signer: JsonRpcSigner;\n sdk: Context;\n pair: WrappedPair;\n side: Side;\n baseAmount: BigNumber;\n slippage: number;\n deadline: number;\n simulation?: ISimulation;\n provider?: JsonRpcProvider;\n tradePrice: WrappedBigNumber;\n },\n { dispatch, getState },\n ): Promise => {\n try {\n if (!simulation || !simulation?.data) return;\n // const adjustTradeSide = getAdjustTradeSide(side, pair.isInverse);\n const adjustTradeSide = side;\n const result = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record(\n 'tx',\n `Try to send [${OPERATION_TX_TYPE.TRADE}] operation tx for pair [${pair.symbol}]`,\n undefined,\n {\n signer,\n expiry: pair.expiry,\n pair: pair,\n futures: pair.rootInstrument,\n amount: formatEther(baseAmount),\n margin: formatEther(simulation?.data?.margin?.wadValue),\n slippage: perToTenThousands(slippage),\n deadline: addedDeadline(deadline),\n side: side,\n tradePrice,\n simulation,\n },\n );\n const {\n global: { onChainReferralCode },\n } = getState() as AppState;\n const referralCode = onChainReferralCode?.referralCode || '';\n\n const populatedTx = await sdk.perp.instrument.placeMarketOrder(\n {\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n side: adjustTradeSide,\n baseSize: baseAmount,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain\n margin: simulation?.data?.origin.margin!,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain\n limitTick: simulation?.data?.origin.limitTick!,\n deadline: addedDeadline(deadline),\n referralCode,\n },\n { from: userAddr },\n );\n return signer.sendTransaction(populatedTx);\n },\n\n chainId,\n userAddr,\n txParams: {\n type: OPERATION_TX_TYPE.TRADE,\n instrument: {\n baseSymbol: pair.rootInstrument.baseToken.symbol,\n quoteSymbol: pair.rootInstrument.quoteToken.symbol,\n isInverse: pair.rootInstrument.isInverse,\n },\n sendingTemplate: parseSendingTxMessageMapping[OPERATION_TX_TYPE.TRADE]!(\n baseAmount,\n side,\n simulation?.data?.limitPrice || WrappedBigNumber.ZERO,\n pair.rootInstrument.baseToken.symbol,\n pair.rootInstrument.isInverse,\n ),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (result?.status) {\n dispatch(\n getPortfolioFromChain({\n chainId,\n userAddr,\n blockNumber: result.blockNumber,\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n }),\n );\n // need update balance\n if (simulation?.data?.margin?.notEq(0)) {\n if (simulation.data.marginToDeposit.gt(0)) {\n dispatch(\n checkTokenAllowance({\n userAddress: userAddr,\n chainId,\n marginToken: pair.rootInstrument.quoteToken,\n block: result.blockNumber,\n sdk: sdk,\n }),\n );\n dispatch(\n fetchTokenBalanceAction({\n chainId,\n userAddr,\n token: pair.rootInstrument.quoteToken,\n block: result.blockNumber,\n }),\n );\n }\n dispatch(\n fetchGateBalanceAction({\n chainId,\n userAddr,\n tokens: [pair.rootInstrument.quoteToken],\n block: result.blockNumber,\n }),\n );\n }\n }\n if (result?.transactionHash) {\n const { setPollingHistoryTx } = useGlobalStore.getState();\n setPollingHistoryTx({\n userAddress: userAddr,\n chainId,\n pollingHistoryId: PollingHistoryId.trade,\n tx: result.transactionHash,\n });\n }\n return result;\n } catch (e) {\n SentryService.captureException(e, {\n name: 'action:tradeForm/trade',\n chainId,\n userAddr,\n pair: pair?.toJSON(),\n baseAmount: baseAmount?.toJSON(),\n side,\n slippage,\n deadline,\n tradePrice: tradePrice?.stringValue,\n });\n console.error('trade error', e);\n throw e;\n }\n },\n);\n\nexport const placeLimitOrder = createAsyncThunk(\n 'tradeForm/limitOrder',\n async (\n {\n signer,\n chainId,\n userAddr,\n sdkContext,\n pair,\n deadline,\n simulation,\n provider,\n side,\n }: {\n chainId: number;\n userAddr: string;\n signer: JsonRpcSigner;\n pair: WrappedPair;\n sdkContext: Context;\n deadline: number;\n simulation: IOrderSimulationData;\n provider?: JsonRpcProvider;\n side: Side;\n },\n { dispatch, getState },\n ): Promise => {\n try {\n const adjustTradeSide = side; // getAdjustTradeSide(side, pair.isInverse);\n const result = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record(\n 'tx',\n `Try to send [${OPERATION_TX_TYPE.PLACE_ORDER}] operation tx for pair [${\n pair.rootInstrument.symbol\n }-${showProperDateString({ expiry: pair.expiry, format: 'MMDD' })}]`,\n undefined,\n {\n signer,\n expiry: pair.expiry,\n pair: pair,\n futures: pair.rootInstrument,\n size: simulation.size,\n balance: formatEther(simulation.margin.wadValue),\n leverage: formatEther(simulation.leverage),\n deadline: addedDeadline(deadline),\n },\n );\n const {\n global: { onChainReferralCode },\n } = getState() as AppState;\n const referralCode = onChainReferralCode?.referralCode || '';\n const populatedTx = await sdkContext.perp.instrument.placeLimitOrder(\n {\n instrumentAddr: pair.instrumentAddr,\n expiry: pair.expiry,\n tick: simulation.tickNumber,\n baseSize: simulation.size.base,\n margin: simulation.margin.wadValue,\n side: adjustTradeSide,\n deadline: addedDeadline(deadline),\n referralCode,\n },\n { from: userAddr },\n );\n\n return signer.sendTransaction(populatedTx);\n },\n\n chainId,\n userAddr,\n txParams: {\n type: OPERATION_TX_TYPE.PLACE_ORDER,\n instrument: {\n baseSymbol: pair.rootInstrument.baseToken.symbol,\n quoteSymbol: pair.rootInstrument.quoteToken.symbol,\n isInverse: pair.rootInstrument.isInverse,\n },\n sendingTemplate: parseSendingTxMessageMapping[OPERATION_TX_TYPE.PLACE_ORDER]!(\n pair.rootInstrument.baseToken.symbol,\n simulation.tickNumber,\n simulation.size.base,\n pair.rootInstrument.isInverse,\n side,\n ),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (result?.status) {\n dispatch(\n getPortfolioFromChain({\n chainId,\n userAddr,\n blockNumber: result.blockNumber,\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n }),\n );\n // need update balance\n if (simulation?.margin?.gt(0)) {\n if (simulation.marginToDeposit.gt(0)) {\n dispatch(\n checkTokenAllowance({\n userAddress: userAddr,\n chainId,\n marginToken: pair.rootInstrument.quoteToken,\n block: result.blockNumber,\n sdk: sdkContext,\n }),\n );\n dispatch(\n fetchTokenBalanceAction({\n chainId,\n userAddr,\n token: pair.rootInstrument.quoteToken,\n block: result.blockNumber,\n }),\n );\n }\n if (!simulation?.margin.eq(simulation?.marginToDeposit)) {\n dispatch(\n fetchGateBalanceAction({\n chainId,\n userAddr,\n tokens: [pair.rootInstrument.quoteToken],\n block: result.blockNumber,\n }),\n );\n }\n }\n }\n return result;\n } catch (e) {\n SentryService.captureException(e, {\n name: 'action:tradeForm/limitOrder',\n chainId,\n userAddr,\n pair: pair?.toJSON(),\n deadline,\n side,\n });\n console.log('🚀 ~ file: actions.ts:125 ~ e:', e);\n throw e;\n }\n },\n);\n\nexport const getLimitAlignPriceWad = createAsyncThunk(\n 'tradeForm/getLimitAlignPriceWad',\n async ({\n sdkContext,\n limitPrice,\n instrumentAddr,\n }: {\n limitPrice: WrappedBigNumberLike;\n instrumentAddr: string;\n sdkContext: Context;\n isInverse: boolean;\n }): Promise<\n | {\n tick: number;\n originPrice: WrappedBigNumber;\n adjustPrice: WrappedBigNumber;\n }\n | undefined\n > => {\n const originPrice = WrappedBigNumber.from(limitPrice);\n if (originPrice.lte(0)) {\n return;\n }\n const result = await sdkContext?.perp?.calc.alignPriceToTick(\n instrumentAddr,\n originPrice.wadValue, //getAdjustTradePrice(originPrice, isInverse).wadValue,\n );\n return {\n ...result,\n originPrice: WrappedBigNumber.from(result.price),\n // adjustPrice: getAdjustTradePrice(result.price, isInverse),\n adjustPrice: WrappedBigNumber.from(result.price),\n };\n },\n);\n\nexport const orderSimulate = createAsyncThunk(\n 'tradeForm/orderSimulate',\n async (\n {\n sdkContext,\n portfolio,\n base,\n limitPrice,\n tradeSide,\n leverage,\n chainId,\n }: {\n chainId: number;\n limitPrice: string | undefined;\n portfolio: WrappedPortfolio | undefined;\n sdkContext: Context;\n base: BigNumber;\n leverage?: BigNumber;\n tradeSide: Side;\n onlyCallFuncMode?: boolean;\n },\n { getState, dispatch },\n ): Promise => {\n try {\n const {\n account: { chainMetaOrder },\n balance: { chainBalanceMap },\n trade: { chainLimitFormStatus },\n } = getState() as AppState;\n const limitFormStatus = _.get(chainLimitFormStatus, [chainId]);\n if (\n limitPrice &&\n !portfolio?.rootPair.wrapAttribute('fairPrice').eq(limitPrice) &&\n !base.eq(0) &&\n !(leverage && leverage.eq(0)) &&\n // when a placing order happens the portfolio may update before the placeLimitOrder fullfil,\n // this is to prevent resimulation in such situation\n limitFormStatus !== FETCHING_STATUS.FETCHING\n ) {\n if (portfolio) {\n const rootInstrument = portfolio.rootInstrument;\n const limitRes = await dispatch(\n getLimitAlignPriceWad({\n sdkContext,\n isInverse: rootInstrument.isInverse,\n limitPrice,\n instrumentAddr: portfolio.rootInstrument.instrumentAddr,\n }),\n ).unwrap();\n if (!limitRes) return;\n const { tick: tickNumber } = limitRes;\n const userAddr = portfolio.traderAddr;\n // use chainMetaOrder for best accuracy\n const orderList = _.values(\n _.pickBy(\n _.get(chainMetaOrder, [chainId || '', userAddr || '', 'list']),\n (metaOrder) => metaOrder.pairId === portfolio.rootPair.id,\n ),\n );\n if (orderList.length) {\n // orderList\n const placedOrder = orderList.find((order: IMetaOrder) => order.tick === tickNumber);\n\n if (placedOrder) {\n return { message: ERROR_MSG_ORDER_OCCUPIED.errorMsg, errorData: ERROR_MSG_ORDER_OCCUPIED.errorData };\n }\n }\n\n if (!leverage) return;\n\n const result = await sdkContext.perp.simulate.simulateLimitOrder({\n instrument: rootInstrument,\n leverage: leverage,\n side: tradeSide,\n size: { base: base },\n tradeInfo: portfolio,\n priceInfo: toWad(limitPrice),\n });\n const estimatedTradeValue = WrappedBigNumber.from(TickMath.getWadAtTick(tickNumber)).mul(base);\n\n const gateBalanceList = queryClient.getQueryData(\n QUERY_KEYS.BALANCE.GATE(chainId, userAddr),\n );\n const gateBalanceInfo = (gateBalanceList || [])?.find(\n (balance) => balance.address === rootInstrument.quoteToken.address,\n );\n\n const simulateResult: IOrderSimulation = {\n data: {\n origin: result,\n ...result,\n tickNumber,\n limitPrice: WrappedBigNumber.from(\n await sdkContext.perp.calc.getWadAtTick(portfolio.instrumentAddr, tickNumber),\n ),\n marginToDeposit: calcMarginToDeposit(result.margin, gateBalanceInfo?.balance || 0),\n margin: WrappedBigNumber.from(result.margin),\n minFeeRebate: WrappedBigNumber.from(result.minFeeRebate),\n estimatedTradeValue: estimatedTradeValue,\n leverage: result.leverage,\n minOrderValue: rootInstrument.minOrderValue,\n baseSize: result.size.base,\n },\n };\n\n // check if the margin is not enough\n if (userAddr && simulateResult.data?.marginToDeposit?.gt(0)) {\n const balance = _.get(chainBalanceMap, [chainId, userAddr, rootInstrument.quoteToken.address]);\n if (balance) {\n if (simulateResult.data.marginToDeposit.gt(balance.balance)) {\n simulateResult.message = ERROR_MSG_EXCEED_WALLET_BALANCE.errorMsg;\n simulateResult.errorData = ERROR_MSG_EXCEED_WALLET_BALANCE.errorData;\n }\n }\n }\n console.log('🚀 ~ simulate points:', {\n chainId,\n tick: tickNumber,\n base,\n quote: rootInstrument.quoteToken,\n pair: portfolio.rootPair,\n userAddr: portfolio.traderAddr.toLowerCase(),\n });\n // simulate points for odyssey\n dispatch(\n simulatePointsByLimitTrade({\n chainId,\n tick: tickNumber,\n base,\n quote: rootInstrument.quoteToken,\n pair: portfolio.rootPair,\n userAddr: portfolio.traderAddr.toLowerCase(),\n }),\n );\n\n return simulateResult;\n }\n }\n return undefined;\n } catch (e) {\n SentryService.captureException(\n e,\n {\n name: 'action:tradeForm/orderSimulate',\n base: JSON.stringify(base),\n limitPrice,\n tradeSide,\n leverage,\n chainId,\n },\n 'info',\n );\n console.log('🚀 orderSimulate error', e);\n const parsedError = parsedEthersError(e);\n const errorMsg = parsedError?.errorMsg || _.get(e, ['reason']) || _.get(e, ['message']);\n console.log('🚀 ~ file: actions.ts:546 ~ errorMsg:', errorMsg, parsedError);\n if (errorMsg.startsWith(ERROR_MSG_FAIR_FAR_FROM_MARK)) {\n return { message: getMappedRevertReason('0xe732e534'), errorData: parsedError?.errorData };\n }\n if (errorMsg.startsWith(ERROR_MSG_LIMIT_PRICE_FAR_FROM_MARK) || errorMsg.includes(INVALID_PRICE)) {\n return;\n }\n return { message: errorMsg, errorData: parsedError?.errorData };\n }\n },\n);\n\nexport const adjustMargin = createAsyncThunk(\n 'tradeForm/adjustPositionMargin',\n async (\n {\n sdkContext,\n chainId,\n userAddr,\n signer,\n pair,\n transferIn,\n deadline,\n margin,\n provider,\n }: {\n chainId: number;\n userAddr: string;\n sdkContext: Context;\n signer: JsonRpcSigner;\n transferIn: boolean;\n pair: WrappedPair;\n deadline: number;\n margin: BigNumber;\n provider: JsonRpcProvider;\n },\n { dispatch, getState },\n ): Promise => {\n try {\n const {\n trade: { chainAdjustMarginSimulation },\n } = getState() as AppState;\n const simulation = _.get(chainAdjustMarginSimulation, [chainId]);\n const result = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record(\n 'tx',\n `Try to send [${OPERATION_TX_TYPE.ADJUST_MARGIN}] operation tx for pair [${\n pair.rootInstrument.symbol\n }-${showProperDateString({ expiry: pair.expiry, format: 'MMDD' })}]`,\n undefined,\n {\n signer,\n expiry: pair.expiry,\n pair: pair,\n futures: pair.rootInstrument,\n transferIn,\n margin: formatEther(margin),\n deadline: addedDeadline(deadline),\n },\n );\n const {\n global: { onChainReferralCode },\n } = getState() as AppState;\n const referralCode = onChainReferralCode?.referralCode || '';\n const populatedTx = await sdkContext.perp.instrument.adjustMargin(\n {\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n margin: margin,\n transferIn: transferIn,\n deadline: addedDeadline(deadline),\n referralCode,\n },\n { from: userAddr },\n );\n\n return signer.sendTransaction(populatedTx);\n },\n\n chainId,\n userAddr,\n txParams: {\n type: OPERATION_TX_TYPE.ADJUST_MARGIN,\n instrument: {\n baseSymbol: pair.rootInstrument.baseToken.symbol,\n quoteSymbol: pair.rootInstrument.quoteToken.symbol,\n isInverse: pair.rootInstrument.isInverse,\n },\n sendingTemplate: parseSendingTxMessageMapping[OPERATION_TX_TYPE.ADJUST_MARGIN]!(\n margin,\n transferIn,\n pair.rootInstrument.quoteToken.symbol,\n ),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (result?.status) {\n dispatch(\n getPortfolioFromChain({\n chainId,\n userAddr,\n blockNumber: result.blockNumber,\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n }),\n );\n // need update balance\n if (margin.gt(0)) {\n if (\n simulation?.data?.marginToDepositWad &&\n WrappedBigNumber.from(simulation?.data?.marginToDepositWad).gt(0)\n ) {\n dispatch(\n checkTokenAllowance({\n userAddress: userAddr,\n chainId,\n marginToken: pair.rootInstrument.quoteToken,\n block: result.blockNumber,\n sdk: sdkContext,\n }),\n );\n dispatch(\n fetchTokenBalanceAction({\n chainId,\n userAddr,\n token: pair.rootInstrument.quoteToken,\n block: result.blockNumber,\n }),\n );\n }\n if (simulation?.data?.marginToDepositWad && !margin.eq(simulation?.data?.marginToDepositWad || 0)) {\n dispatch(\n fetchGateBalanceAction({\n chainId,\n userAddr,\n tokens: [pair.rootInstrument.quoteToken],\n block: result.blockNumber,\n }),\n );\n }\n }\n // reset form after success\n dispatch(resetAdjustMarginForm({ chainId }));\n dispatch(switchToMarketTab({ chainId }));\n }\n if (result?.transactionHash) {\n const { setPollingHistoryTx } = useGlobalStore.getState();\n setPollingHistoryTx({\n chainId,\n userAddress: userAddr,\n pollingHistoryId: PollingHistoryId.transfer,\n tx: result?.transactionHash,\n });\n }\n return result;\n } catch (e) {\n SentryService.captureException(e, {\n name: 'tradeForm/adjustPositionMargin',\n chainId,\n userAddr,\n pair: pair?.toJSON(),\n transferIn,\n deadline,\n margin: JSON.stringify(margin),\n });\n\n console.log('🚀 ~ file: actions.ts:125 ~ e:', e);\n throw e;\n }\n },\n);\n\nexport const cancelTradeOrders = createAsyncThunk(\n 'tradeForm/cancelTradeOrders',\n async (\n {\n sdkContext,\n chainId,\n signer,\n orders,\n userAddr,\n portfolio,\n deadline,\n provider,\n }: {\n chainId: number;\n sdkContext: Context;\n signer: JsonRpcSigner;\n userAddr: string;\n orders: WrappedOrder[];\n portfolio: WrappedPortfolio;\n deadline: number;\n provider: JsonRpcProvider;\n bulkCancel?: boolean;\n },\n { dispatch },\n ): Promise => {\n try {\n const pair = portfolio.rootPair;\n let sendingTemplate: IParsedTemplate | undefined = undefined;\n if (orders.length === 1) {\n sendingTemplate = parseSendingTxMessageMapping[OPERATION_TX_TYPE.CANCEL_ORDER]!(orders[0].tick, pair.isInverse);\n } else if (orders.length > 1) {\n const result: IParsedTemplate = { descTemplate: '', templateArgs: {} };\n result.descTemplate = 'notification.cancelOrder.multiInfo';\n result.templateArgs = {\n orderNumber: orders.length.toString(),\n };\n sendingTemplate = result;\n }\n const result = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record(\n 'tx',\n `Try to send [${OPERATION_TX_TYPE.CANCEL_ORDER}] operation tx for pair [${portfolio.rootInstrument.symbol}`,\n undefined,\n {\n signer,\n portfolio,\n orders,\n deadline: addedDeadline(deadline),\n },\n );\n\n const populatedTx = await sdkContext.perp.instrument.batchCancelLimitOrder(\n {\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n orderTicks: orders.map((order) => order.tick),\n deadline: addedDeadline(deadline),\n },\n { from: userAddr },\n );\n return signer.sendTransaction(populatedTx);\n },\n\n chainId,\n userAddr,\n txParams: {\n type: OPERATION_TX_TYPE.CANCEL_ORDER,\n instrument: {\n baseSymbol: pair.rootInstrument.baseToken.symbol,\n quoteSymbol: pair.rootInstrument.quoteToken.symbol,\n isInverse: pair.rootInstrument.isInverse,\n },\n sendingTemplate: sendingTemplate,\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (result?.status) {\n dispatch(\n getPortfolioFromChain({\n chainId,\n userAddr,\n blockNumber: result.blockNumber,\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n }),\n );\n dispatch(\n fetchGateBalanceAction({\n chainId,\n userAddr,\n tokens: [pair.rootInstrument.quoteToken],\n block: result.blockNumber,\n }),\n );\n if (orders.length) {\n orders.forEach((order) => {\n _.unset(portfolio.orderMap, [order.id]);\n });\n }\n }\n if (result?.transactionHash) {\n const { setPollingHistoryTx } = useGlobalStore.getState();\n setPollingHistoryTx({\n chainId,\n userAddress: userAddr,\n pollingHistoryId: PollingHistoryId.order,\n tx: result?.transactionHash,\n });\n }\n return result;\n } catch (e) {\n SentryService.captureException(e, {\n name: 'tradeForm/cancelTradeOrders',\n chainId,\n orders: orders?.map((order) => order.id),\n userAddr,\n deadline,\n });\n console.log('🚀 ~ file: actions.ts:125 ~ e:', e);\n throw e;\n }\n },\n);\n\nexport const simulateAdjustMargin = createAsyncThunk(\n 'trade/simulateAdjustMargin',\n async ({\n chainId,\n sdkContext,\n pair,\n portfolio,\n leverage,\n transferAmount,\n transferIn,\n slippage,\n }: {\n chainId: number;\n pair: WrappedPair | undefined;\n portfolio: WrappedPortfolio | undefined;\n sdkContext: Context | undefined;\n transferAmount: BigNumber | undefined;\n leverage: BigNumber | undefined;\n transferIn: boolean;\n slippage: number;\n }): Promise => {\n try {\n if (sdkContext && portfolio && pair) {\n if (portfolio.position.balance.eq(0) || transferAmount?.eq(0)) {\n return;\n }\n\n const gateBalanceList = queryClient.getQueryData(\n QUERY_KEYS.BALANCE.GATE(chainId, portfolio.traderAddr),\n );\n const gateBalanceInfo = (gateBalanceList || [])?.find(\n (balance) => balance.address === pair.rootInstrument.quoteToken.address,\n );\n\n if (transferAmount) {\n const simulationRes = await sdkContext?.perp.simulate.simulateAdjustMarginByMargin({\n transferIn,\n tradeInfo: portfolio.position,\n margin: transferAmount,\n slippage: perToTenThousands(slippage),\n });\n\n const res = {\n chainId,\n data: {\n ...simulationRes,\n simulationMainPosition: new WrappedPosition(\n {\n ...simulationRes.postPosition,\n id: portfolio.id,\n instrumentId: pair.rootInstrument.id,\n pairId: pair.id,\n accountId: portfolio.rootAccount.id,\n portfolioId: portfolio.id,\n blockInfo: portfolio.blockInfo!,\n },\n portfolio,\n ),\n transferAmount: transferAmount.mul(transferIn ? 1 : -1),\n leverageWad: simulationRes.leverage,\n marginToDepositWad: calcMarginToDeposit(\n transferAmount.mul(transferIn ? 1 : -1),\n gateBalanceInfo?.balance || 0,\n ).wadValue,\n },\n };\n return res;\n } else {\n const simulationRes = await sdkContext?.perp.simulate.simulateAdjustMarginByLeverage({\n leverage: leverage!,\n tradeInfo: portfolio.position,\n slippage: perToTenThousands(slippage),\n });\n\n const res = {\n chainId,\n data: {\n ...simulationRes,\n simulationMainPosition: new WrappedPosition(\n {\n ...simulationRes.postPosition,\n id: portfolio.id,\n instrumentId: pair.rootInstrument.id,\n pairId: pair.id,\n accountId: portfolio.rootAccount.id,\n portfolioId: portfolio.id,\n blockInfo: portfolio.blockInfo!,\n },\n portfolio,\n ),\n transferAmount: simulationRes.margin.mul(simulationRes.transferIn ? 1 : -1),\n leverageWad: leverage!,\n marginToDepositWad: calcMarginToDeposit(simulationRes.margin, gateBalanceInfo?.balance || 0).wadValue,\n },\n };\n\n return res;\n }\n }\n return { chainId };\n } catch (e) {\n SentryService.captureException(\n e,\n {\n name: 'tradeForm/simulateAdjustMargin',\n chainId,\n pair: pair?.toJSON(),\n leverage: JSON.stringify(leverage),\n transferAmount: JSON.stringify(transferAmount),\n transferIn,\n slippage,\n },\n 'info',\n );\n console.log('🚀 ~ file: actions.ts:565 ~ e:', e);\n return { chainId, message: _.get(e, ['message']) };\n }\n },\n);\n\nexport const getBaseOrQuoteAmount = createAsyncThunk(\n 'tradeForm/getBaseOrQuoteAmount',\n async (\n {\n sdkContext,\n chainId,\n pair,\n baseAmount,\n quoteAmount,\n tradeSide,\n tradeType,\n }: {\n chainId: number;\n sdkContext: Context | undefined;\n pair: WrappedPair | undefined;\n baseAmount: BigNumber | undefined;\n quoteAmount: BigNumber | undefined;\n tradeSide: Side;\n tradeType: TRADE_TYPE;\n },\n { dispatch, getState },\n ): Promise<{ amount: BigNumber; quotation: Quotation } | undefined> => {\n try {\n if (sdkContext && pair) {\n if (baseAmount?.eq(0) && quoteAmount?.eq(0)) {\n return;\n }\n if (quoteAmount) {\n const res = await sdkContext?.perp?.observer.inquireByQuote(\n pair.instrumentAddr,\n pair.expiry,\n tradeSide,\n quoteAmount || ZERO,\n );\n return {\n amount: res.baseAmount,\n quotation: res.quotation,\n };\n } else if (baseAmount) {\n const res = await sdkContext?.perp?.observer.inquireByBase(\n pair.instrumentAddr,\n pair.expiry,\n tradeSide,\n baseAmount || ZERO,\n );\n return {\n amount: res.quoteAmount,\n quotation: res.quotation,\n };\n }\n\n const {\n trade: { chainMarketFormState: chainMarketFormState2 },\n } = getState() as AppState;\n const state2 = _.get(chainMarketFormState2, [chainId]);\n console.log('🚀 ~ file: actions.ts:829 ~ state2:', state2);\n }\n } catch (e) {\n const parsedError = parsedEthersError(e);\n if (parsedError) {\n dispatch(\n updateSimulateError({\n type: tradeType,\n errMessage: parsedError?.errorData || parsedError?.errorMsg,\n chainId,\n }),\n );\n }\n }\n },\n);\n\nexport const simulateBatchPlaceScaledLimitOrder = createAsyncThunk(\n 'tradeForm/simulateBatchPlaceScaledLimitOrder',\n async (\n {\n sdkContext,\n portfolio,\n tradeSide,\n chainId,\n }: {\n chainId: number;\n\n portfolio: WrappedPortfolio | undefined;\n sdkContext: Context;\n tradeSide: Side;\n },\n { getState },\n ): Promise => {\n const {\n trade: { chainScaleFormState },\n } = getState() as AppState;\n const scaleLimitFormState = _.get(chainScaleFormState, [chainId]) as IScaleFormState;\n if (!scaleLimitFormState || !scaleLimitFormState.stepRatio || !scaleLimitFormState.lowerTick) {\n return undefined;\n }\n const base = toWad(scaleLimitFormState.baseAmount || 0);\n const sizeDistribution = scaleLimitFormState.sizeDistribution;\n const leverage = scaleLimitFormState.leverage ? toWad(scaleLimitFormState.leverage) : undefined;\n const priceInfo = [];\n let tick = scaleLimitFormState.lowerTick;\n let upperTick = scaleLimitFormState.upperTick;\n if (portfolio?.rootPair.isInverse) {\n const tickFromLower = tick * -1;\n const tickFromUpper = upperTick * -1;\n tick = Math.min(tickFromLower, tickFromUpper);\n upperTick = Math.max(tickFromLower, tickFromLower);\n }\n while (tick <= upperTick) {\n priceInfo.push(tick);\n tick = tick + scaleLimitFormState.stepRatio;\n }\n try {\n if (\n !!priceInfo.length &&\n !portfolio?.rootPair.wrapAttribute('fairPrice').eq(scaleLimitFormState.lowerPrice) &&\n !base.eq(0) &&\n !(leverage && leverage.eq(0))\n ) {\n if (portfolio) {\n const rootInstrument = portfolio.rootInstrument;\n const userAddr = portfolio.traderAddr;\n const {\n balance: { chainBalanceMap },\n } = getState() as AppState;\n const adjustTradeSide = tradeSide; // getAdjustTradeSide(tradeSide, rootInstrument.isInverse);\n if (!leverage) return;\n\n const gateBalanceList = queryClient.getQueryData(\n QUERY_KEYS.BALANCE.GATE(chainId, portfolio.traderAddr),\n );\n const gateBalanceInfo = (gateBalanceList || [])?.find(\n (balance) => balance.address === portfolio.rootInstrument.quoteToken.address,\n );\n\n const result = await sdkContext.perp.simulate.simulateScaledLimitOrder({\n instrument: rootInstrument,\n leverage: leverage,\n side: adjustTradeSide,\n sizeDistribution: sizeDistribution,\n size: {\n base: base,\n },\n priceInfo,\n tradeInfo: portfolio,\n });\n const orders: ISimulationOrder[] = result.orders.filter((o) => !!o) as ISimulationOrder[];\n const totalMargin = orders.reduce((acc, cur) => acc.add(cur?.margin || 0), WrappedBigNumber.ZERO);\n const marginToDeposit = calcMarginToDeposit(totalMargin, gateBalanceInfo?.balance || 0);\n const simulateResult: IScaledOrderSimulation = {\n data: {\n ...result,\n sizeDistribution,\n leverageWad: leverage,\n lowerTick: scaleLimitFormState.lowerTick,\n upperTick: scaleLimitFormState.upperTick,\n upperPrice: scaleLimitFormState.upperPrice,\n lowerPrice: scaleLimitFormState.lowerPrice,\n baseSize: base,\n orders,\n margin: totalMargin,\n marginToDeposit: marginToDeposit,\n minOrderValue: WrappedBigNumber.from(portfolio.rootInstrument.minOrderValue),\n minFeeRebate: orders.reduce((acc, cur) => acc.add(cur.minFeeRebate), ZERO),\n estimatedTradeValue: orders.reduce((acc, cur) => acc.add(cur.tradeValue), WrappedBigNumber.ZERO),\n },\n };\n\n // check if the margin is not enough\n if (userAddr && simulateResult.data?.marginToDeposit?.gt(0)) {\n const balance = _.get(chainBalanceMap, [chainId, userAddr, rootInstrument.quoteToken.address]);\n if (balance) {\n if (simulateResult.data.marginToDeposit.gt(balance.balance)) {\n simulateResult.message = ERROR_MSG_EXCEED_WALLET_BALANCE.errorMsg;\n simulateResult.errorData = ERROR_MSG_EXCEED_WALLET_BALANCE.errorData;\n }\n }\n }\n return simulateResult;\n }\n }\n return undefined;\n } catch (e) {\n SentryService.captureException(\n e,\n {\n name: 'tradeForm/simulateBatchPlaceScaledLimitOrder',\n tradeSide,\n chainId,\n },\n 'info',\n );\n console.log('🚀 scaleOrderSimulate error', e);\n const parsedError = parsedEthersError(e);\n const errorMsg = parsedError?.errorMsg || _.get(e, ['reason']) || _.get(e, ['message']);\n console.log('🚀 ~ file: actions.ts:546 ~ errorMsg:', errorMsg, parsedError);\n if (errorMsg.startsWith(ERROR_MSG_LIMIT_PRICE_FAR_FROM_MARK) || errorMsg.includes(INVALID_PRICE)) {\n return;\n }\n return { message: errorMsg, errorData: parsedError?.errorData };\n }\n },\n);\n\nexport const batchPlaceScaledLimitOrder = createAsyncThunk(\n 'trade/batchPlaceScaledLimitOrder',\n async (\n {\n signer,\n chainId,\n userAddr,\n sdkContext,\n pair,\n deadline,\n simulation,\n provider,\n side,\n leverageWad,\n baseSizeWad,\n }: {\n chainId: number;\n userAddr: string;\n signer: JsonRpcSigner;\n pair: WrappedPair;\n sdkContext: Context;\n deadline: number;\n simulation: IScaledOrderSimulationData;\n provider: JsonRpcProvider;\n side: Side;\n leverageWad: BigNumber;\n baseSizeWad: BigNumber;\n },\n { dispatch, getState },\n ): Promise => {\n try {\n const adjustTradeSide = side; // getAdjustTradeSide(side, pair.isInverse);\n const ticks: number[] = simulation.orders.map((o) => o.tick);\n const ratios: number[] = simulation.orders.map((o) => o.ratio);\n const orderCount = simulation.orders.length;\n\n const result = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record(\n 'tx',\n `Try to send [${OPERATION_TX_TYPE.PLACE_ORDER}] operation tx for pair [${\n pair.rootInstrument.symbol\n }-${showProperDateString({ expiry: pair.expiry, format: 'MMDD' })}]`,\n undefined,\n {\n signer,\n expiry: pair.expiry,\n pair: pair,\n futures: pair.rootInstrument,\n base: formatEther(baseSizeWad),\n leverage: formatEther(leverageWad),\n deadline: addedDeadline(deadline),\n adjustTradeSide,\n },\n );\n // return await provider.getTransaction(`0x2f3c82087c8ec0b355e9f669e615ce6666b01ff1b1ced3ad792489e74a42085f`);\n const {\n global: { onChainReferralCode },\n } = getState() as AppState;\n const referralCode = onChainReferralCode?.referralCode || '';\n const populatedTx = await sdkContext.perp.instrument.batchPlaceLimitOrder(\n {\n instrumentAddr: pair.instrumentAddr,\n expiry: pair.expiry,\n leverage: leverageWad,\n side: adjustTradeSide,\n baseSize: baseSizeWad,\n ticks: ticks,\n ratios,\n deadline: addedDeadline(deadline),\n referralCode,\n },\n { from: userAddr },\n );\n return signer.sendTransaction(populatedTx);\n },\n\n chainId,\n userAddr,\n txParams: {\n type: OPERATION_TX_TYPE.BATCH_PLACE_SCALED_ORDER,\n instrument: {\n baseSymbol: pair.rootInstrument.baseToken.symbol,\n quoteSymbol: pair.rootInstrument.quoteToken.symbol,\n isInverse: pair.rootInstrument.isInverse,\n },\n extra: {\n upperPrice: simulation.upperPrice,\n lowerPrice: simulation.lowerPrice,\n side,\n orderCount,\n baseSize: simulation.baseSize,\n },\n sendingTemplate: parseSendingTxMessageMapping[OPERATION_TX_TYPE.BATCH_PLACE_SCALED_ORDER]!(\n pair.rootInstrument.baseToken.symbol,\n simulation.upperPrice,\n simulation.lowerPrice,\n simulation.baseSize,\n pair.rootInstrument.isInverse,\n side,\n orderCount,\n ),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n console.log(`batchPlaceScaledLimitOrder result`, { result, pair, leverageWad, baseSizeWad, ticks, ratios });\n\n if (result?.status) {\n dispatch(\n getPortfolioFromChain({\n chainId,\n userAddr,\n blockNumber: result.blockNumber,\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n }),\n );\n // need update balance\n if (simulation?.margin?.gt(0)) {\n if (simulation.marginToDeposit.gt(0)) {\n dispatch(\n checkTokenAllowance({\n userAddress: userAddr,\n chainId,\n marginToken: pair.rootInstrument.quoteToken,\n block: result.blockNumber,\n sdk: sdkContext,\n }),\n );\n dispatch(\n fetchTokenBalanceAction({\n chainId,\n userAddr,\n token: pair.rootInstrument.quoteToken,\n block: result.blockNumber,\n }),\n );\n }\n if (!simulation?.margin.eq(simulation?.marginToDeposit)) {\n dispatch(\n fetchGateBalanceAction({\n chainId,\n userAddr,\n tokens: [pair.rootInstrument.quoteToken],\n block: result.blockNumber,\n }),\n );\n }\n }\n }\n\n return result;\n } catch (e) {\n SentryService.captureException(e, {\n name: 'trade/batchPlaceScaledLimitOrder',\n chainId,\n userAddr,\n pair: pair?.toJSON(),\n deadline,\n side,\n leverageWad: JSON.stringify(leverageWad),\n baseSizeWad: JSON.stringify(baseSizeWad),\n });\n console.error('🚀 ~ file: actions.ts:125 ~ e:', e);\n throw e;\n }\n },\n);\n\nexport const simulateCrossMarketOrder = createAsyncThunk(\n 'trade/simulateCrossMarketOrder',\n async (\n {\n sdkContext,\n position,\n base,\n limitPrice,\n tradeSide,\n leverage,\n chainId,\n slippage,\n onlyCallFuncMode,\n }: {\n chainId: number;\n limitPrice: string | undefined;\n position: WrappedPosition | undefined;\n sdkContext: Context;\n base: WrappedBigNumber;\n leverage?: WrappedBigNumber;\n tradeSide: Side;\n slippage: number;\n onlyCallFuncMode?: boolean;\n },\n { dispatch },\n ): Promise => {\n try {\n if (\n limitPrice &&\n // !portfolio?.rootPair.wrapAttribute('fairPrice').eq(limitPrice) &&\n !base.eq(0) &&\n !(leverage && leverage.eq(0))\n ) {\n if (position) {\n const userAddr = position.traderAddr;\n const portfolio = position.rootPortfolio;\n const rootInstrument = portfolio.rootInstrument;\n const limitRes = await dispatch(\n getLimitAlignPriceWad({\n sdkContext,\n isInverse: rootInstrument.isInverse,\n limitPrice,\n instrumentAddr: rootInstrument.instrumentAddr,\n }),\n ).unwrap();\n if (!limitRes) return;\n const { tick: tickNumber } = limitRes;\n const adjustTradeSide = tradeSide; // getAdjustTradeSide(tradeSide, rootInstrument.isInverse);\n\n if (!leverage) return;\n // pairAccountModel: PairLevelAccountModel, targetTick: number, side: Side, baseSize: BigNumber, leverageWad: BigNumber, slippage: number\n\n const result = await sdkContext.perp.simulate.simulateCrossMarketOrder({\n instrument: rootInstrument,\n leverage: leverage.wadValue,\n tradeInfo: portfolio,\n slippage: perToTenThousands(slippage),\n side: adjustTradeSide,\n size: {\n base: base.wadValue,\n },\n priceInfo: tickNumber,\n });\n\n const gateBalanceList = queryClient.getQueryData(\n QUERY_KEYS.BALANCE.GATE(chainId, userAddr),\n );\n const gateBalanceInfo = (gateBalanceList || [])?.find(\n (balance) => balance.address === position.rootInstrument.quoteToken.address,\n );\n\n const marketSimulationData: ISimulationData = {\n origin: result.tradeSimulation,\n ...result.tradeSimulation,\n simulationMainPosition: new WrappedPosition(\n {\n ...result.tradeSimulation.postPosition,\n id: position.rootPortfolio.id,\n instrumentId: position.rootInstrument.id,\n pairId: position.rootPair.id,\n accountId: position.rootPortfolio.rootAccount.id,\n portfolioId: position.rootPortfolio.id,\n blockInfo: position.rootPortfolio.blockInfo!,\n },\n position.rootPortfolio,\n ),\n\n tradePrice: WrappedBigNumber.from(result.tradeSimulation.tradePrice),\n limitTick: result.tradeSimulation.limitTick,\n limitPrice: WrappedBigNumber.from(TickMath.getWadAtTick(result.tradeSimulation.limitTick)),\n priceChangeRate: WrappedBigNumber.from(result.tradeSimulation.priceImpact),\n marginToDeposit: calcMarginToDeposit(result.tradeSimulation.margin, gateBalanceInfo?.balance || 0),\n additionalFee: WrappedBigNumber.from(result.tradeSimulation.stabilityFee),\n estimatedTradeValue: WrappedBigNumber.from(result.tradeSimulation.tradeValue),\n tradingFee: WrappedBigNumber.from(result.tradeSimulation.tradingFee),\n // margin may be input\n margin: WrappedBigNumber.from(result.tradeSimulation.marginChanged),\n realized: WrappedBigNumber.from(result.tradeSimulation.realized),\n minTradeValue: WrappedBigNumber.from(position.rootInstrument.minTradeValue),\n leverage: WrappedBigNumber.from(result.tradeSimulation.leverage),\n exceedMaxLeverage:\n result.tradeSimulation.exceedMaxLeverage &&\n WrappedBigNumber.from(result.tradeSimulation.leverage).lt(leverage || 0),\n };\n const estimatedTradeValue = WrappedBigNumber.from(TickMath.getWadAtTick(tickNumber)).mul(\n result.orderSimulation.size.base,\n );\n const orderSimulationData: IOrderSimulationData = {\n origin: result.orderSimulation,\n ...result.orderSimulation,\n tickNumber,\n // limitPrice: WrappedBigNumber.from(TickMath.getWadAtTick(tickNumber)),\n limitPrice: WrappedBigNumber.from(\n await sdkContext.perp.calc.getWadAtTick(portfolio.instrumentAddr, tickNumber),\n ),\n marginToDeposit: calcMarginToDeposit(result.orderSimulation.margin, gateBalanceInfo?.balance || 0),\n margin: WrappedBigNumber.from(result.orderSimulation.margin),\n minFeeRebate: WrappedBigNumber.from(result.orderSimulation.minFeeRebate),\n estimatedTradeValue: estimatedTradeValue,\n leverage: result.orderSimulation.leverage,\n minOrderValue: rootInstrument.minOrderValue,\n baseSize: result.orderSimulation.size.base,\n };\n\n const tradeSize = WrappedBigNumber.from(result.tradeSimulation.size.base);\n const orderSize = WrappedBigNumber.from(result.orderSimulation.size.base);\n\n const simulateResult: ICrossMarketOrderSimulation = {\n data: {\n ...result,\n tickNumber,\n tradeSize: tradeSize,\n orderSize: orderSize,\n totalMinSize: WrappedBigNumber.from(tradeSize).add(result.minOrderSize),\n tradeSimulation: marketSimulationData,\n orderSimulation: orderSimulationData,\n marginToDeposit: WrappedBigNumber.from(marketSimulationData.marginToDeposit).add(\n orderSimulationData.marginToDeposit,\n ),\n margin: WrappedBigNumber.from(marketSimulationData.margin).add(orderSimulationData.margin),\n },\n };\n\n if (!onlyCallFuncMode && orderSize.gt(0) && base.gte(simulateResult.data?.totalMinSize || 0)) {\n // simulate points for odyssey\n dispatch(\n simulatePointsByLimitTrade({\n chainId,\n tick: tickNumber,\n base: orderSize.wadValue,\n quote: rootInstrument.quoteToken,\n pair: portfolio.rootPair,\n userAddr: portfolio.traderAddr.toLowerCase(),\n }),\n );\n }\n\n return simulateResult;\n }\n }\n return undefined;\n } catch (e) {\n SentryService.captureException(\n e,\n {\n name: 'trade/simulateCrossMarketOrder',\n position: position?.toJSON(),\n base: base?.stringValue,\n limitPrice,\n tradeSide,\n leverage: leverage?.stringValue,\n chainId,\n slippage,\n onlyCallFuncMode,\n },\n 'info',\n );\n console.log('🚀 simulateCrossMarketOrder error', e);\n const parsedError = parsedEthersError(e);\n const errorMsg = parsedError?.errorMsg || _.get(e, ['reason']) || _.get(e, ['message']);\n console.log('🚀 ~ errorMsg:', errorMsg);\n console.log('🚀 ~ file: actions.ts:546 ~ errorMsg:', errorMsg, parsedError);\n if (errorMsg.startsWith(ERROR_MSG_LIMIT_PRICE_FAR_FROM_MARK) || errorMsg.includes(INVALID_PRICE)) {\n return;\n } else if (errorMsg && errorMsg.includes(ERROR_MSG_SIZE_TO_TICK_IS_TRIVIAL)) {\n return { message: getMappedRevertReason(ERROR_MSG_SIZE_TO_TICK_IS_TRIVIAL) };\n }\n return { message: errorMsg, errorData: parsedError?.errorData };\n }\n },\n);\n\nexport const placeCrossMarketOrder = createAsyncThunk(\n 'tradeForm/placeCrossMarketOrder',\n async (\n {\n signer,\n chainId,\n userAddr,\n sdkContext,\n pair,\n deadline,\n simulation,\n provider,\n side,\n }: {\n chainId: number;\n userAddr: string;\n signer: JsonRpcSigner;\n pair: WrappedPair;\n sdkContext: Context;\n slippage: number;\n deadline: number;\n simulation: ICrossMarketOrderData;\n provider?: JsonRpcProvider;\n side: Side;\n },\n { dispatch, getState },\n ): Promise => {\n try {\n const adjustTradeSide = side; // getAdjustTradeSide(side, pair.isInverse);\n const result = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record(\n 'tx',\n `Try to send [${OPERATION_TX_TYPE.PLACE_CROSS_MARKET_ORDER}] operation tx for pair [${\n pair.rootInstrument.symbol\n }-${showProperDateString({ expiry: pair.expiry, format: 'MMDD' })}]`,\n undefined,\n {\n signer,\n expiry: pair.expiry,\n pair: pair,\n futures: pair.rootInstrument,\n simulation,\n },\n );\n const {\n global: { onChainReferralCode },\n } = getState() as AppState;\n const referralCode = onChainReferralCode?.referralCode || '';\n // signer: Signer, pair: PairModel, side: Side, swapSize: BigNumber, swapMargin: BigNumber, swapTradePrice: BigNumber, orderTickNumber: number, orderBaseWad: BigNumber, orderMargin: BigNumber, slippage: number, deadline: number, referralCode?: string, overrides?: PayableOverrides\n const populatedTx = await sdkContext.perp.instrument.placeCrossMarketOrder(\n {\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n orderSize: simulation.orderSize.wadValue,\n tradeSize: simulation.tradeSize.wadValue,\n side: adjustTradeSide,\n tradeLimitTick: simulation.tradeSimulation.limitTick,\n orderTick: simulation.orderSimulation.tickNumber,\n tradeMargin: simulation.tradeSimulation.margin.wadValue,\n // swapTradePrice: simulation.tradeSimulation.tradePrice.wadValue,\n orderMargin: simulation.orderSimulation.margin.wadValue,\n deadline: addedDeadline(deadline),\n referralCode,\n },\n { from: userAddr },\n );\n return signer.sendTransaction(populatedTx);\n },\n\n chainId,\n userAddr,\n txParams: {\n type: OPERATION_TX_TYPE.PLACE_CROSS_MARKET_ORDER,\n instrument: {\n baseSymbol: pair.rootInstrument.baseToken.symbol,\n quoteSymbol: pair.rootInstrument.quoteToken.symbol,\n isInverse: pair.rootInstrument.isInverse,\n },\n sendingTemplate: parseSendingTxMessageMapping[OPERATION_TX_TYPE.PLACE_CROSS_MARKET_ORDER]!(\n pair.rootInstrument.baseToken.symbol,\n simulation.tradeSimulation.tradePrice,\n simulation.orderSize.add(simulation.tradeSize),\n pair.rootInstrument.isInverse,\n side,\n ),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (result?.status) {\n dispatch(\n getPortfolioFromChain({\n chainId,\n userAddr,\n blockNumber: result.blockNumber,\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n }),\n );\n // need update balance\n if (simulation?.margin?.gt(0)) {\n if (simulation.marginToDeposit.gt(0)) {\n dispatch(\n checkTokenAllowance({\n userAddress: userAddr,\n chainId,\n marginToken: pair.rootInstrument.quoteToken,\n block: result.blockNumber,\n sdk: sdkContext,\n }),\n );\n dispatch(\n fetchTokenBalanceAction({\n chainId,\n userAddr,\n token: pair.rootInstrument.quoteToken,\n block: result.blockNumber,\n }),\n );\n }\n if (!simulation?.margin.eq(simulation?.marginToDeposit)) {\n dispatch(\n fetchGateBalanceAction({\n chainId,\n userAddr,\n tokens: [pair.rootInstrument.quoteToken],\n block: result.blockNumber,\n }),\n );\n }\n }\n }\n return result;\n } catch (e) {\n SentryService.captureException(e, {\n name: 'tradeForm/placeCrossMarketOrder',\n chainId,\n userAddr,\n pair: pair?.toJSON(),\n deadline,\n side,\n });\n console.log('🚀 ~ file: actions.ts:125 ~ e:', e);\n throw e;\n }\n },\n);\n\nexport const fillLimitOrder = createAsyncThunk(\n 'trade/fillLimitOrder',\n async (\n {\n sdkContext,\n chainId,\n signer,\n order,\n userAddr,\n portfolio,\n deadline,\n provider,\n }: {\n chainId: number;\n sdkContext: Context;\n signer: JsonRpcSigner;\n userAddr: string;\n order: WrappedOrder;\n portfolio: WrappedPortfolio;\n deadline: number;\n provider: JsonRpcProvider;\n },\n { dispatch },\n ): Promise => {\n try {\n const pair = portfolio.rootPair;\n const result = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record(\n 'tx',\n `Try to send [${OPERATION_TX_TYPE.FILL_ORDER}] operation tx for pair [${portfolio.rootInstrument.symbol}`,\n undefined,\n {\n signer,\n portfolio,\n order,\n deadline: addedDeadline(deadline),\n },\n );\n\n const populatedTx = await sdkContext.perp.instrument.fillLimitOrder(\n {\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n nonce: order.nonce,\n tick: order.tick,\n target: userAddr,\n },\n { from: userAddr },\n );\n return signer.sendTransaction(populatedTx);\n },\n\n chainId,\n userAddr,\n txParams: {\n type: OPERATION_TX_TYPE.FILL_ORDER,\n instrument: {\n baseSymbol: pair.rootInstrument.baseToken.symbol,\n quoteSymbol: pair.rootInstrument.quoteToken.symbol,\n isInverse: pair.rootInstrument.isInverse,\n },\n sendingTemplate: parseSendingTxMessageMapping[OPERATION_TX_TYPE.FILL_ORDER]!(order.tick, pair.isInverse),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (result?.status) {\n dispatch(\n getPortfolioFromChain({\n chainId,\n userAddr,\n blockNumber: result.blockNumber,\n instrumentAddr: pair.rootInstrument.instrumentAddr,\n expiry: pair.expiry,\n }),\n );\n dispatch(\n fetchGateBalanceAction({\n chainId,\n userAddr,\n tokens: [pair.rootInstrument.quoteToken],\n block: result.blockNumber,\n }),\n );\n _.unset(portfolio.orderMap, [order.id]);\n }\n if (result?.transactionHash) {\n const { setPollingHistoryTx } = useGlobalStore.getState();\n setPollingHistoryTx({\n chainId,\n userAddress: userAddr,\n pollingHistoryId: PollingHistoryId.order,\n tx: result?.transactionHash,\n });\n }\n return result;\n } catch (e) {\n SentryService.captureException(e, {\n name: 'trade/fillLimitOrder',\n chainId,\n order: order.id,\n userAddr,\n deadline,\n });\n console.log('🚀 ~ file: actions.ts:125 ~ e:', e);\n throw e;\n }\n },\n);\n","import { TRADE_TYPE } from '@/constants/trade';\n\nexport interface ILeverageStorage {\n [chainId: number]: {\n [userAddr: string]: {\n [pairId: string]: string;\n };\n };\n}\nexport interface IPairStorage {\n [chainId: number]: {\n [userAddr: string]: {\n [marketType: string]: string;\n };\n };\n}\n\nexport const DYNAMIC = 'Dynamic';\nexport const LEVERAGE_ADJUST = 'leverage_adjust';\nexport type LEVERAGE_KEY_TYPE = TRADE_TYPE | typeof DYNAMIC | typeof LEVERAGE_ADJUST;\nexport interface IMobileMintStorage {\n [chainId: number]: boolean;\n}\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport { BatchOrderSizeDistribution, InstrumentInfo, Side } from '@synfutures/sdks-perp';\nimport _ from 'lodash';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { TABLE_TYPES, TRADE_LEVERAGE_THRESHOLDS } from '@/constants/global';\nimport { ERROR_MSG_IMR } from '@/constants/simulation';\nimport { PRICE_BASIS_FOR_PNL } from '@/constants/storage';\nimport { DEFAULT_STEP_RATIO, MANAGE_SIDE, TRADE_TYPE } from '@/constants/trade';\nimport { initPriceBasisForPnl, PriceBasisForPnl } from '@/constants/trade/priceBasisForPnl';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { DYNAMIC } from '@/types/storage';\nimport {\n AdjustMarginByLeverageState,\n getDefaultCloseFormState,\n getDefaultLimitFormState,\n getDefaultMarketFormState,\n getDefaultScaleLimitFormState,\n getDefaultSimulation,\n IAdjustMarginFormState,\n IAdjustMarginSimulation,\n ICancelFormState,\n IClosePositionFormState,\n ICrossMarketOrderSimulation,\n ILimitFormState,\n IMarketFormState,\n IOrderCancelStatus,\n IOrderSimulation,\n IPnlParams,\n IScaledOrderSimulation,\n IScaleFormState,\n ISimulation,\n MarginAdjustMethod,\n} from '@/types/trade';\nimport { getSavedPairLeverage } from '@/utils/localstorage';\nimport { inputNumChecker } from '@/utils/numberUtil';\n\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { FundingChartInterval, KlineInterval } from '@synfutures/sdks-perp-datasource';\nimport { isMobile } from 'react-device-detect';\nimport { AppState } from '../store';\nimport {\n adjustMargin,\n batchPlaceScaledLimitOrder,\n cancelTradeOrders,\n clearMarketTradeSimulation,\n fillLimitOrder,\n orderSimulate,\n placeCrossMarketOrder,\n placeLimitOrder,\n resetAdjustMarginForm,\n resetClosePositionForm,\n resetFormByChainId,\n selectOrderToCancel,\n setAdjustMarginByLeverageState,\n setAdjustMarginFormAmount,\n setAdjustMarginMethod,\n setAdjustMarginSide,\n setAdjustMarginSimulation,\n setClosePositionFormAmount,\n setCurrentFutures,\n setCurrentPair,\n setFundingChartDuration,\n setIsChosenOrder,\n setIsTurnOnCrossMarket,\n setLimitPrice,\n setMarketFormState,\n setPairChartDuration,\n setPairLeverageSwitchChecked,\n setPairStepRatio,\n setPnlShare,\n setPriceBasisForPnl,\n setScaleFormAmount,\n setScaleLimitPrice,\n setTradeDrawerType,\n setTradeFormAmount,\n setTradeFormLeverage,\n setTradeFormLeverageAndMargin,\n setTradeFormMargin,\n setTradeFormSide,\n setTradeFormType,\n setTransferAmount,\n simulateAdjustMargin,\n simulateBatchPlaceScaledLimitOrder,\n simulateCrossMarketOrder,\n simulateMarketClosePosition,\n simulateMarketTrade,\n switchToMarketTab,\n trade,\n updateLimitPriceFromOrderBook,\n updateSimulateError,\n} from './actions';\n\nexport interface ITradeState {\n priceBasisForPnl: PriceBasisForPnl;\n isHistoryPortfolioTab: boolean;\n chainFormType: {\n [chainId: number]: TRADE_TYPE;\n };\n chainDrawerType: {\n [chainId: number]: TRADE_TYPE;\n };\n chainLeverageSwitchChecked: {\n [chainId: number]: {\n [userAddr: string]: {\n [pairId: string]: boolean;\n };\n };\n };\n chainMarketFormState: {\n [chainId: number]: IMarketFormState;\n };\n chainMarketSimulation: {\n [chainId: number]: ISimulation;\n };\n chainMarketFormStatus: {\n [chainId: number]: FETCHING_STATUS;\n };\n chainScaleFormState: {\n [chainId: number]: IScaleFormState;\n };\n chainScaleSimulation: {\n [chainId: number]: IScaledOrderSimulation;\n };\n chainScaleFormStatus: {\n [chainId: number]: FETCHING_STATUS;\n };\n chainCurrentFutures: {\n [chainId: number]: InstrumentInfo;\n };\n chainCurrentPair: {\n [chainId: number]: WrappedPair;\n };\n\n chainLimitFormState: {\n [chainId: number]: ILimitFormState;\n };\n chainLimitSimulation: {\n [chainId: number]: IOrderSimulation;\n };\n chainLimitFormStatus: {\n [chainId: number]: FETCHING_STATUS;\n };\n chainAdjustMarginFormState: {\n [chainId: number]: IAdjustMarginFormState;\n };\n chainAdjustMarginSimulation: {\n [chainId: number]: IAdjustMarginSimulation;\n };\n chainAdjustMarginFormStatus: {\n [chainId: number]: FETCHING_STATUS;\n };\n chainClosePositionFormState: {\n [chainId: number]: IClosePositionFormState;\n };\n chainClosePositionFormStatus: {\n [chainId: number]: FETCHING_STATUS;\n };\n chainCloseSimulation: {\n [chainId: number]: ISimulation;\n };\n chainPnlShare: {\n [chainId: number]: IPnlParams;\n };\n chainCloseSimulationStatus: {\n [chainId: number]: FETCHING_STATUS;\n };\n chainCancelFormState: {\n [chainId: number]: ICancelFormState;\n };\n chainCancelOrderFormStatus: {\n [chainId: number]: { [orderId: string]: FETCHING_STATUS };\n };\n chainCancelOrderBulkStatus: {\n [chainId: number]: boolean;\n };\n tradePortfolioTab: TABLE_TYPES;\n isChosenOrder: boolean;\n chainChartDuration: {\n [chainId: number]: KlineInterval;\n };\n fundingChartDuration: {\n [chainId: number]: FundingChartInterval;\n };\n chainStepRatio: {\n [chainId: number]: number;\n };\n chainCrossMarketSimulation: {\n [chainId: number]: ICrossMarketOrderSimulation;\n };\n adjustMarginControlState: {\n marginAdjustMethod: MarginAdjustMethod;\n manageSides: { [id in MarginAdjustMethod]: MANAGE_SIDE };\n };\n chainAdjustMarginByLeverageState: {\n [chainId: number]: AdjustMarginByLeverageState;\n };\n}\n\nconst initialState: ITradeState = {\n adjustMarginControlState: {\n marginAdjustMethod: MarginAdjustMethod.Leverage,\n manageSides: { [MarginAdjustMethod.Amount]: MANAGE_SIDE.IN, [MarginAdjustMethod.Leverage]: MANAGE_SIDE.IN },\n },\n chainFormType: {},\n chainLeverageSwitchChecked: {},\n chainMarketFormState: {},\n chainMarketSimulation: {},\n chainMarketFormStatus: {},\n chainScaleFormState: {},\n chainScaleSimulation: {},\n chainScaleFormStatus: {},\n chainLimitFormState: {},\n chainLimitSimulation: {},\n\n chainLimitFormStatus: {},\n chainCloseSimulationStatus: {},\n chainPnlShare: {},\n chainAdjustMarginFormState: {},\n chainAdjustMarginFormStatus: {},\n chainAdjustMarginSimulation: {},\n chainClosePositionFormState: {},\n chainClosePositionFormStatus: {},\n chainCloseSimulation: {},\n chainCancelFormState: {},\n chainCancelOrderFormStatus: {},\n chainCurrentFutures: {},\n chainDrawerType: {},\n chainCurrentPair: {},\n tradePortfolioTab: TABLE_TYPES.TRADE_HISTORY,\n isHistoryPortfolioTab: false,\n isChosenOrder: false,\n chainCancelOrderBulkStatus: {},\n chainChartDuration: {},\n chainStepRatio: {},\n fundingChartDuration: {},\n priceBasisForPnl: initPriceBasisForPnl,\n chainCrossMarketSimulation: {},\n chainAdjustMarginByLeverageState: {},\n};\n\nexport const tradeSlice = createSlice({\n name: 'trade',\n initialState,\n reducers: {\n setIsHistoryPortfolioTab: (state, { payload }: PayloadAction) => {\n state.isHistoryPortfolioTab = payload;\n },\n setTradePortfolioTab: (state, { payload: { tab } }: PayloadAction<{ chainId: number; tab: TABLE_TYPES }>) => {\n state.tradePortfolioTab = tab;\n },\n },\n extraReducers: (builder) => {\n builder\n .addCase(setAdjustMarginByLeverageState, (state, { payload }) => {\n const oldProps = state.chainAdjustMarginByLeverageState[payload.chainId];\n _.set(state.chainAdjustMarginByLeverageState, [payload.chainId], {\n leverageInput: payload.leverageInput === undefined ? oldProps?.leverageInput : payload.leverageInput,\n isLeverageInputChanged:\n payload.isLeverageInputChanged === undefined\n ? oldProps?.isLeverageInputChanged\n : payload.isLeverageInputChanged,\n errMsg: payload.errMsg === undefined ? oldProps?.errMsg : payload.errMsg,\n });\n })\n .addCase(setAdjustMarginMethod, (state, { payload }) => {\n state.adjustMarginControlState.marginAdjustMethod = payload;\n })\n .addCase(setAdjustMarginSide, (state, { payload }) => {\n state.adjustMarginControlState.manageSides[payload.method] = payload.side;\n })\n .addCase(setPriceBasisForPnl, (state, { payload }) => {\n state.priceBasisForPnl = payload.priceBasisForPnl;\n localStorage.setItem(PRICE_BASIS_FOR_PNL, payload.priceBasisForPnl);\n })\n .addCase(resetFormByChainId, (state, { payload }) => {\n _.set(state.chainFormType, [payload.chainId], TRADE_TYPE.MARKET);\n state.tradePortfolioTab = TABLE_TYPES.TRADE_HISTORY;\n state.isHistoryPortfolioTab = false;\n _.set(state.chainMarketFormState, [payload.chainId], getDefaultMarketFormState(payload.chainId));\n _.set(state.chainLimitFormState, [payload.chainId], getDefaultLimitFormState(payload.chainId));\n _.set(state.chainScaleFormState, [payload.chainId], getDefaultScaleLimitFormState(payload.chainId));\n _.set(state.chainAdjustMarginFormState, [payload.chainId], { chainId: payload.chainId });\n _.set(state.chainCancelFormState, [payload.chainId], { chainId: payload.chainId });\n _.set(state.chainMarketSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n _.set(state.chainLimitSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n _.set(state.chainCrossMarketSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n _.set(state.chainScaleSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n _.set(state.chainCloseSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n _.set(state.chainAdjustMarginSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n })\n .addCase(setTradeFormType, (state, { payload }) => {\n _.set(state.chainFormType, [payload.chainId], payload.tradeType);\n let tradeSide: Side | undefined = undefined;\n if (payload.tradeType === TRADE_TYPE.LIMIT) {\n const marketFormState = _.get(state.chainMarketFormState, [payload.chainId]);\n tradeSide = marketFormState.tradeSide;\n } else if (payload.tradeType === TRADE_TYPE.MARKET) {\n const limitFormState = _.get(state.chainLimitFormState, [payload.chainId]);\n tradeSide = limitFormState.tradeSide;\n } else {\n const scaleLimitFormState = _.get(state.chainScaleFormState, [payload.chainId]);\n tradeSide = scaleLimitFormState.tradeSide;\n }\n _.set(state.chainMarketFormState, [payload.chainId], getDefaultMarketFormState(payload.chainId, tradeSide));\n _.set(state.chainLimitFormState, [payload.chainId], getDefaultLimitFormState(payload.chainId, tradeSide));\n _.set(state.chainScaleFormState, [payload.chainId], getDefaultLimitFormState(payload.chainId, tradeSide));\n _.set(state.chainClosePositionFormState, [payload.chainId], getDefaultCloseFormState(payload.chainId));\n _.set(state.chainAdjustMarginFormState, [payload.chainId], { chainId: payload.chainId });\n _.set(state.chainCancelFormState, [payload.chainId], { chainId: payload.chainId });\n _.set(state.chainMarketSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n _.set(state.chainLimitSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n _.set(state.chainCrossMarketSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n _.set(state.chainCloseSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n _.set(state.chainAdjustMarginSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n })\n .addCase(setTradeDrawerType, (state, { payload }) => {\n _.set(state.chainDrawerType, [payload.chainId], payload.tradeType);\n _.set(state.chainClosePositionFormState, [payload.chainId], getDefaultCloseFormState(payload.chainId));\n _.set(state.chainAdjustMarginFormState, [payload.chainId], { chainId: payload.chainId });\n _.set(state.chainCancelFormState, [payload.chainId], { chainId: payload.chainId });\n _.set(state.chainCloseSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n _.set(state.chainAdjustMarginSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n })\n .addCase(setPnlShare, (state, { payload }) => {\n _.set(state.chainPnlShare, [payload.chainId], payload);\n })\n .addCase(resetAdjustMarginForm, (state, { payload }) => {\n // _.set(state.chainFormType, [payload.chainId], TRADE_TYPE.MARKET);\n // state.tradePortfolioTab = TABLE_TYPES.TRADE_HISTORY;\n _.set(state.chainAdjustMarginFormState, [payload.chainId], { chainId: payload.chainId });\n _.set(state.chainAdjustMarginSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n })\n .addCase(resetClosePositionForm, (state, { payload }) => {\n // _.set(state.chainFormType, [payload.chainId], TRADE_TYPE.MARKET);\n // state.tradePortfolioTab = TABLE_TYPES.TRADE_HISTORY;\n _.set(state.chainClosePositionFormState, [payload.chainId], getDefaultCloseFormState(payload.chainId));\n _.set(state.chainCloseSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n })\n .addCase(switchToMarketTab, (state, { payload }) => {\n _.set(state.chainFormType, [payload.chainId], TRADE_TYPE.MARKET);\n state.tradePortfolioTab = TABLE_TYPES.TRADE_HISTORY;\n state.isHistoryPortfolioTab = false;\n })\n .addCase(setPairLeverageSwitchChecked, (state, { payload }) => {\n _.set(state.chainLeverageSwitchChecked, [payload.chainId, payload.userAddr, payload.pairId], payload.checked);\n })\n\n .addCase(clearMarketTradeSimulation, (state, { payload }) => {\n _.set(state.chainMarketSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n })\n .addCase(updateSimulateError, (state, { payload }) => {\n if (payload) {\n if (payload.type === TRADE_TYPE.MARKET)\n _.set(state.chainMarketSimulation, [payload.chainId], {\n chainId: payload.chainId,\n message: payload.errMessage,\n });\n else if (payload.type === TRADE_TYPE.LIMIT)\n _.set(state.chainLimitSimulation, [payload.chainId], {\n chainId: payload.chainId,\n message: payload.errMessage,\n });\n else if (payload.type === TRADE_TYPE.SCALE_LIMIT)\n _.set(state.chainScaleSimulation, [payload.chainId], {\n chainId: payload.chainId,\n message: payload.errMessage,\n });\n }\n })\n .addCase(setPairChartDuration, (state, { payload }) => {\n _.set(state.chainChartDuration, [payload.chainId], payload.chartDuration);\n })\n .addCase(setFundingChartDuration, (state, { payload }) => {\n _.set(state.fundingChartDuration, [payload.chainId], payload.chartDuration);\n })\n .addCase(setPairStepRatio, (state, { payload }) => {\n _.set(state.chainStepRatio, [payload.chainId], payload.stepRatio);\n })\n .addCase(setIsChosenOrder, (state, { payload }) => {\n state.isChosenOrder = payload.isChosenOrder;\n })\n .addCase(setTradeFormSide, (state, { payload }) => {\n const marketFormState = _.get(state.chainMarketFormState, [payload.chainId]);\n const limitFormState = _.get(state.chainLimitFormState, [payload.chainId]);\n const scaleLimitFormState = _.get(state.chainScaleFormState, [payload.chainId]);\n // const formType = _.get(state.chainFormType, [payload.chainId]);\n // if (formType === TRADE_TYPE.LIMIT) {\n // _.set(state.chainLimitFormState, [payload.chainId], _.merge({}, limitFormState, payload));\n // } else {\n // _.set(state.chainMarketFormState, [payload.chainId], _.merge({}, marketFormState, payload));\n // }\n _.set(state.chainLimitFormState, [payload.chainId], _.merge({}, limitFormState, payload));\n _.set(state.chainMarketFormState, [payload.chainId], _.merge({}, marketFormState, payload));\n _.set(state.chainScaleFormState, [payload.chainId], _.merge({}, scaleLimitFormState, payload));\n })\n .addCase(setTradeFormAmount, (state, { payload }) => {\n const marketFormState = _.get(state.chainMarketFormState, [payload.chainId]);\n const limitFormState = _.get(state.chainLimitFormState, [payload.chainId]);\n const formType = _.get(state.chainFormType, [payload.chainId]);\n if (formType === TRADE_TYPE.LIMIT) {\n _.set(state.chainLimitFormState, [payload.chainId], _.merge({}, limitFormState, payload));\n _.set(state.chainCrossMarketSimulation, [payload.chainId], getDefaultSimulation(payload.chainId));\n } else {\n _.set(state.chainMarketFormState, [payload.chainId], _.merge({}, marketFormState, payload));\n }\n })\n .addCase(setScaleFormAmount, (state, { payload }) => {\n const limitFormState = _.get(state.chainScaleFormState, [payload.chainId]);\n _.set(state.chainScaleFormState, [payload.chainId], _.merge({}, limitFormState, payload));\n })\n .addCase(setTradeFormLeverage, (state, { payload }) => {\n const marketFormState = _.get(state.chainMarketFormState, [payload.chainId]);\n const limitFormState = _.get(state.chainLimitFormState, [payload.chainId]);\n const scaleLimitFormState = _.get(state.chainScaleFormState, [payload.chainId]);\n const adjustMarginFormState = _.get(state.chainAdjustMarginFormState, [payload.chainId]);\n const formType = _.get(state.chainFormType, [payload.chainId]);\n if (formType === TRADE_TYPE.ADJUST_MARGIN) {\n _.set(state.chainAdjustMarginFormState, [payload.chainId], _.merge({}, adjustMarginFormState, payload));\n }\n if (formType === TRADE_TYPE.MARKET) {\n _.set(state.chainMarketFormState, [payload.chainId], _.merge({}, marketFormState, payload));\n }\n if (formType === TRADE_TYPE.LIMIT) {\n _.set(state.chainLimitFormState, [payload.chainId], _.merge({}, limitFormState, payload));\n }\n if (formType === TRADE_TYPE.SCALE_LIMIT) {\n _.set(state.chainScaleFormState, [payload.chainId], _.merge({}, scaleLimitFormState, payload));\n }\n })\n .addCase(setTradeFormLeverageAndMargin, (state, { payload }) => {\n const marketFormState = _.get(state.chainMarketFormState, [payload.chainId]);\n const adjustMarginFormState = _.get(state.chainAdjustMarginFormState, [payload.chainId]);\n const formType = _.get(state.chainFormType, [payload.chainId]);\n if (formType === TRADE_TYPE.ADJUST_MARGIN) {\n _.set(state.chainAdjustMarginFormState, [payload.chainId], _.merge({}, adjustMarginFormState, payload));\n } else {\n _.set(state.chainMarketFormState, [payload.chainId], _.merge({}, marketFormState, payload));\n }\n })\n .addCase(simulateMarketTrade.pending, (state, { meta }) => {\n if (meta.arg.onlyCallFuncMode) {\n return;\n }\n const { chainId } = meta.arg;\n const formType = _.get(state.chainFormType, [chainId]);\n const drawerType = _.get(state.chainDrawerType, [chainId]);\n\n if (formType === TRADE_TYPE.CLOSE_POSITION || drawerType === TRADE_TYPE.CLOSE_POSITION) {\n _.set(state.chainCloseSimulationStatus, [chainId], FETCHING_STATUS.FETCHING);\n }\n })\n .addCase(simulateMarketTrade.fulfilled, (state, { meta, payload }) => {\n const { chainId, position, leverage, userAddr } = meta.arg;\n const formType = _.get(state.chainFormType, [chainId]);\n const drawerType = _.get(state.chainDrawerType, [chainId]);\n const marketFormState = _.get(state.chainMarketFormState, [chainId]);\n if (meta.arg.onlyCallFuncMode) {\n return;\n }\n if (formType === TRADE_TYPE.CLOSE_POSITION || drawerType === TRADE_TYPE.CLOSE_POSITION) {\n _.set(state.chainCloseSimulation, [chainId], payload);\n _.set(state.chainCloseSimulationStatus, [chainId], FETCHING_STATUS.DONE);\n } else {\n _.set(state.chainMarketSimulation, [chainId], payload);\n if (payload) {\n //TODO may need to use payload.data?.simulationMainPosition.leverageWad in the future\n const simulatedLeverage = WrappedBigNumber.from(\n payload.data?.leverage ||\n (position?.hasPosition ? position?.leverageWad : TRADE_LEVERAGE_THRESHOLDS.DEFAULT),\n ).stringValue;\n const dynamic = getSavedPairLeverage(userAddr, chainId, position?.rootPair.id, DYNAMIC);\n let leverageAfterSimulation = inputNumChecker(\n !!dynamic && position?.hasPosition\n ? marketFormState?.leverage || TRADE_LEVERAGE_THRESHOLDS.DEFAULT.toString()\n : leverage\n ? leverage\n : simulatedLeverage,\n 1,\n );\n //TODO check this after simulation leverageWad updates\n if (payload.message === ERROR_MSG_IMR) {\n leverageAfterSimulation =\n getSavedPairLeverage(userAddr, chainId, position?.rootPair.id, formType) ||\n TRADE_LEVERAGE_THRESHOLDS.MAX.toString();\n }\n _.set(\n state.chainMarketFormState,\n [chainId],\n _.merge({}, marketFormState, {\n leverage: leverageAfterSimulation,\n }),\n );\n if (!isMobile) {\n state.tradePortfolioTab = TABLE_TYPES.TRADE_HISTORY;\n }\n state.isHistoryPortfolioTab = false;\n }\n }\n })\n .addCase(simulateMarketTrade.rejected, (state, { meta }) => {\n if (meta.arg.onlyCallFuncMode) {\n return;\n }\n const { chainId } = meta.arg;\n const formType = _.get(state.chainFormType, [chainId]);\n const drawerType = _.get(state.chainDrawerType, [chainId]);\n\n if (formType === TRADE_TYPE.CLOSE_POSITION || drawerType === TRADE_TYPE.CLOSE_POSITION) {\n _.set(state.chainCloseSimulationStatus, [chainId], FETCHING_STATUS.DONE);\n } else {\n }\n });\n // simulate close\n builder\n .addCase(simulateMarketClosePosition.pending, (state, { meta }) => {\n if (meta.arg.onlyCallFuncMode) {\n return;\n }\n const { chainId } = meta.arg;\n const formType = _.get(state.chainFormType, [chainId]);\n const drawerType = _.get(state.chainDrawerType, [chainId]);\n\n if (formType === TRADE_TYPE.CLOSE_POSITION || drawerType === TRADE_TYPE.CLOSE_POSITION) {\n _.set(state.chainCloseSimulationStatus, [chainId], FETCHING_STATUS.FETCHING);\n }\n })\n .addCase(simulateMarketClosePosition.fulfilled, (state, { meta, payload }) => {\n const { chainId, position, userAddr } = meta.arg;\n const formType = _.get(state.chainFormType, [chainId]);\n const drawerType = _.get(state.chainDrawerType, [chainId]);\n const marketFormState = _.get(state.chainMarketFormState, [chainId]);\n if (meta.arg.onlyCallFuncMode) {\n return;\n }\n if (formType === TRADE_TYPE.CLOSE_POSITION || drawerType === TRADE_TYPE.CLOSE_POSITION) {\n _.set(state.chainCloseSimulation, [chainId], payload);\n _.set(state.chainCloseSimulationStatus, [chainId], FETCHING_STATUS.DONE);\n } else {\n _.set(state.chainMarketSimulation, [chainId], payload);\n if (payload) {\n //TODO may need to use payload.data?.simulationMainPosition.leverageWad in the future\n const simulatedLeverage = WrappedBigNumber.from(\n payload.data?.leverage ||\n (position?.hasPosition ? position?.leverageWad : TRADE_LEVERAGE_THRESHOLDS.DEFAULT),\n ).stringValue;\n const dynamic = getSavedPairLeverage(userAddr, chainId, position?.rootPair.id, DYNAMIC);\n let leverageAfterSimulation = inputNumChecker(\n !!dynamic && position?.hasPosition\n ? marketFormState?.leverage || TRADE_LEVERAGE_THRESHOLDS.DEFAULT.toString()\n : simulatedLeverage,\n 1,\n );\n //TODO check this after simulation leverageWad updates\n if (payload.message === ERROR_MSG_IMR) {\n leverageAfterSimulation =\n getSavedPairLeverage(userAddr, chainId, position?.rootPair.id, formType) ||\n TRADE_LEVERAGE_THRESHOLDS.MAX.toString();\n }\n _.set(\n state.chainMarketFormState,\n [chainId],\n _.merge({}, marketFormState, {\n leverage: leverageAfterSimulation,\n }),\n );\n if (!isMobile) state.tradePortfolioTab = TABLE_TYPES.TRADE_HISTORY;\n state.isHistoryPortfolioTab = false;\n }\n }\n })\n .addCase(simulateMarketClosePosition.rejected, (state, { meta }) => {\n if (meta.arg.onlyCallFuncMode) {\n return;\n }\n const { chainId } = meta.arg;\n const formType = _.get(state.chainFormType, [chainId]);\n const drawerType = _.get(state.chainDrawerType, [chainId]);\n\n if (formType === TRADE_TYPE.CLOSE_POSITION || drawerType === TRADE_TYPE.CLOSE_POSITION) {\n _.set(state.chainCloseSimulationStatus, [chainId], FETCHING_STATUS.DONE);\n } else {\n }\n });\n\n builder\n .addCase(setCurrentFutures, (state, { payload }) => {\n _.set(state.chainCurrentFutures, [payload.chainId], payload.futures);\n })\n .addCase(setCurrentPair, (state, { payload }) => {\n _.set(state.chainCurrentPair, [payload.chainId], payload.pair);\n })\n .addCase(setTradeFormMargin, (state, { payload }) => {\n const marketFormState = _.get(state.chainMarketFormState, [payload.chainId]);\n const limitFormState = _.get(state.chainLimitFormState, [payload.chainId]);\n const formType = _.get(state.chainFormType, [payload.chainId]);\n if (formType === TRADE_TYPE.LIMIT) {\n _.set(state.chainLimitFormState, [payload.chainId], _.merge({}, limitFormState, payload));\n } else {\n _.set(state.chainMarketFormState, [payload.chainId], _.merge({}, marketFormState, payload));\n }\n })\n .addCase(setTransferAmount, (state, { payload }) => {\n const marketFormState = _.get(state.chainMarketFormState, [payload.chainId]);\n _.set(state.chainMarketFormState, [payload.chainId], _.merge({}, marketFormState, payload));\n })\n .addCase(selectOrderToCancel, (state, { payload }) => {\n _.set(state.chainCancelFormState, [payload.chainId], payload);\n })\n .addCase(setLimitPrice, (state, { payload }) => {\n const limitFormState = _.get(state.chainLimitFormState, [payload.chainId]);\n _.set(state.chainLimitFormState, [payload.chainId], _.merge({}, limitFormState, payload));\n })\n .addCase(setScaleLimitPrice, (state, { payload }) => {\n const limitFormState = _.get(state.chainScaleFormState, [payload.chainId]);\n _.set(state.chainScaleFormState, [payload.chainId], _.merge({}, limitFormState, payload));\n })\n .addCase(updateLimitPriceFromOrderBook, (state, { payload }) => {\n const limitFormState = _.get(state.chainLimitFormState, [payload.limitState.chainId]);\n _.set(state.chainLimitFormState, [payload.limitState.chainId], _.merge({}, limitFormState, payload.limitState));\n _.set(state.chainFormType, [payload.limitState.chainId], payload.formType);\n })\n .addCase(setClosePositionFormAmount, (state, { payload }) => {\n const closePositionFormState = _.get(state.chainClosePositionFormState, [payload.chainId]);\n _.set(state.chainClosePositionFormState, [payload.chainId], _.merge({}, closePositionFormState, payload));\n })\n .addCase(setAdjustMarginFormAmount, (state, { payload }) => {\n const adjustMarginFormState = _.get(state.chainAdjustMarginFormState, [payload.chainId]);\n _.set(state.chainAdjustMarginFormState, [payload.chainId], _.merge({}, adjustMarginFormState, payload));\n })\n .addCase(setAdjustMarginSimulation, (state, { payload }) => {\n _.set(state.chainAdjustMarginSimulation, [payload.chainId], payload);\n })\n .addCase(setMarketFormState, (state, { payload }) => {\n _.set(state.chainMarketFormState, [payload.chainId], payload);\n })\n .addCase(trade.pending, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainMarketFormStatus, [chainId], FETCHING_STATUS.FETCHING);\n })\n .addCase(trade.fulfilled, (state, { meta, payload }) => {\n const { chainId } = meta.arg;\n if (payload) {\n const oldState = _.get(state.chainMarketFormState, [chainId]);\n _.set(state.chainMarketFormState, [chainId], {\n ...oldState,\n baseAmount: '',\n quoteAmount: '',\n marginAmount: '',\n });\n }\n _.set(state.chainMarketFormStatus, [chainId], FETCHING_STATUS.DONE);\n _.set(state.chainMarketSimulation, [chainId], getDefaultSimulation(chainId));\n _.set(state.chainCloseSimulation, [chainId], getDefaultSimulation(chainId));\n })\n .addCase(trade.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainMarketFormStatus, [chainId], FETCHING_STATUS.DONE);\n })\n .addCase(placeLimitOrder.pending, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainLimitFormStatus, [chainId], FETCHING_STATUS.FETCHING);\n })\n .addCase(placeLimitOrder.fulfilled, (state, { meta, payload }) => {\n const { chainId } = meta.arg;\n if (payload) {\n const oldState = _.get(state.chainLimitFormState, [chainId]);\n _.set(state.chainLimitFormState, [chainId], { ...oldState, baseAmount: '', quoteAmount: '' });\n }\n _.set(state.chainLimitFormStatus, [chainId], FETCHING_STATUS.DONE);\n _.set(state.chainLimitSimulation, [chainId], getDefaultSimulation(chainId));\n })\n .addCase(placeLimitOrder.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainLimitFormStatus, [chainId], FETCHING_STATUS.DONE);\n })\n .addCase(simulateBatchPlaceScaledLimitOrder.fulfilled, (state, { meta, payload }) => {\n const { chainId } = meta.arg;\n _.set(state.chainScaleSimulation, [chainId], payload);\n })\n // batchPlaceScaledLimitOrder\n .addCase(batchPlaceScaledLimitOrder.pending, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainScaleFormStatus, [chainId], FETCHING_STATUS.FETCHING);\n })\n .addCase(batchPlaceScaledLimitOrder.fulfilled, (state, { meta, payload }) => {\n const { chainId } = meta.arg;\n if (payload) {\n const oldState = _.get(state.chainScaleFormState, [chainId]);\n _.set(state.chainScaleFormState, [chainId], {\n ...oldState,\n baseAmount: '',\n quoteAmount: '',\n sizeDistribution: BatchOrderSizeDistribution.FLAT,\n });\n }\n _.set(state.chainScaleFormStatus, [chainId], FETCHING_STATUS.DONE);\n _.set(state.chainScaleSimulation, [chainId], getDefaultSimulation(chainId));\n })\n .addCase(batchPlaceScaledLimitOrder.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainScaleFormStatus, [chainId], FETCHING_STATUS.DONE);\n })\n // adjustMargin\n .addCase(adjustMargin.pending, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainAdjustMarginFormStatus, [chainId], FETCHING_STATUS.FETCHING);\n })\n .addCase(adjustMargin.fulfilled, (state, { meta, payload }) => {\n const { chainId } = meta.arg;\n if (payload) {\n _.set(state.chainAdjustMarginFormState, [chainId], {});\n }\n _.set(state.chainAdjustMarginFormStatus, [chainId], FETCHING_STATUS.DONE);\n _.set(state.chainAdjustMarginSimulation, [chainId], getDefaultSimulation(chainId));\n })\n .addCase(adjustMargin.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainAdjustMarginFormStatus, [chainId], FETCHING_STATUS.DONE);\n })\n .addCase(cancelTradeOrders.pending, (state, { meta }) => {\n const { chainId, orders, bulkCancel } = meta.arg;\n orders.forEach((o) => {\n _.set(state.chainCancelOrderFormStatus, [chainId, o.id], FETCHING_STATUS.FETCHING);\n });\n if (bulkCancel) {\n _.set(state.chainCancelOrderBulkStatus, [chainId], true);\n }\n })\n .addCase(cancelTradeOrders.fulfilled, (state, { meta }) => {\n const { chainId, orders, bulkCancel } = meta.arg;\n _.set(state.chainCancelFormState, [chainId], {});\n orders.forEach((o) => {\n _.set(state.chainCancelOrderFormStatus, [chainId, o.id], FETCHING_STATUS.DONE);\n });\n if (bulkCancel) {\n _.set(state.chainCancelOrderBulkStatus, [chainId], false);\n state.isChosenOrder = false;\n }\n })\n .addCase(cancelTradeOrders.rejected, (state, { meta }) => {\n const { chainId, orders, bulkCancel } = meta.arg;\n orders.forEach((o) => {\n _.set(state.chainCancelOrderFormStatus, [chainId, o.id], FETCHING_STATUS.DONE);\n });\n if (bulkCancel) {\n _.set(state.chainCancelOrderBulkStatus, [chainId], false);\n }\n })\n .addCase(fillLimitOrder.pending, (state, { meta }) => {\n const { chainId, order } = meta.arg;\n _.set(state.chainCancelOrderFormStatus, [chainId, order.id], FETCHING_STATUS.FETCHING);\n })\n .addCase(fillLimitOrder.fulfilled, (state, { meta }) => {\n const { chainId, order } = meta.arg;\n _.set(state.chainCancelFormState, [chainId], {});\n _.set(state.chainCancelOrderFormStatus, [chainId, order.id], FETCHING_STATUS.DONE);\n })\n .addCase(fillLimitOrder.rejected, (state, { meta }) => {\n const { chainId, order } = meta.arg;\n _.set(state.chainCancelOrderFormStatus, [chainId, order.id], FETCHING_STATUS.DONE);\n })\n .addCase(orderSimulate.fulfilled, (state, { meta, payload }) => {\n if (meta.arg.onlyCallFuncMode) {\n return;\n }\n const { chainId } = meta.arg;\n\n _.set(state.chainLimitSimulation, [chainId], payload);\n // if (margin && payload?.data?.leverage) {\n // _.set(\n // state.chainLimitFormState,\n // [chainId, 'leverage'],\n // WrappedBigNumber.from(payload.data.leverage).stringValue,\n // );\n // }\n })\n .addCase(simulateAdjustMargin.fulfilled, (state, { meta, payload }) => {\n const { chainId } = meta.arg;\n _.set(state.chainAdjustMarginSimulation, [chainId], payload);\n })\n .addCase(setIsTurnOnCrossMarket, (state, { payload }) => {\n _.set(state.chainLimitFormState, [payload.chainId, 'isTurnOnCrossMarket'], payload.isTurnOnCrossMarket);\n })\n // cross market order\n .addCase(simulateCrossMarketOrder.fulfilled, (state, { meta, payload }) => {\n if (meta.arg.onlyCallFuncMode) {\n return;\n }\n const { chainId } = meta.arg;\n\n _.set(state.chainCrossMarketSimulation, [chainId], payload);\n })\n .addCase(placeCrossMarketOrder.pending, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainLimitFormStatus, [chainId], FETCHING_STATUS.FETCHING);\n })\n .addCase(placeCrossMarketOrder.fulfilled, (state, { meta, payload }) => {\n const { chainId } = meta.arg;\n if (payload) {\n const oldState = _.get(state.chainLimitFormState, [chainId]);\n _.set(state.chainLimitFormState, [chainId], { ...oldState, baseAmount: '', quoteAmount: '' });\n }\n _.set(state.chainLimitFormStatus, [chainId], FETCHING_STATUS.DONE);\n _.set(state.chainCrossMarketSimulation, [chainId], getDefaultSimulation(chainId));\n })\n .addCase(placeCrossMarketOrder.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainLimitFormStatus, [chainId], FETCHING_STATUS.DONE);\n });\n },\n});\nexport const { setIsHistoryPortfolioTab, setTradePortfolioTab } = tradeSlice.actions;\n\nexport const selectScaleFormStateByChainId =\n (chainId: number | undefined) =>\n (state: AppState): IScaleFormState =>\n _.get(state.trade.chainScaleFormState, [chainId || '']);\n\nexport const selectScaleFormStatusByChainId =\n (chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.trade.chainScaleFormStatus, [chainId || ''], FETCHING_STATUS.DONE);\n\nexport const selectScaleSimulationByChainId =\n (chainId: number | undefined) =>\n (state: AppState): IScaledOrderSimulation | undefined =>\n _.get(state.trade.chainScaleSimulation, [chainId || '']);\n\nexport const selectMarketFormStateByChainId =\n (chainId: number | undefined) =>\n (state: AppState): IMarketFormState =>\n _.get(state.trade.chainMarketFormState, [chainId || '']);\n\nexport const selectMarketFormStatusByChainId =\n (chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.trade.chainMarketFormStatus, [chainId || ''], FETCHING_STATUS.DONE);\n\nexport const selectAdjustMarginFormState =\n (chainId: number | undefined) =>\n (state: AppState): IAdjustMarginFormState =>\n _.get(state.trade.chainAdjustMarginFormState, [chainId || '']);\n\nexport const selectAdjustMarginSimulation =\n (chainId: number | undefined) =>\n (state: AppState): IAdjustMarginSimulation | undefined =>\n _.get(state.trade.chainAdjustMarginSimulation, [chainId || '']);\n\nexport const selectAdjustMarginFormStatus =\n (chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.trade.chainAdjustMarginFormStatus, [chainId || ''], FETCHING_STATUS.DONE);\n\nexport const selectClosePositionFormState =\n (chainId: number | undefined) =>\n (state: AppState): IClosePositionFormState =>\n _.get(state.trade.chainClosePositionFormState, [chainId || '']);\n\nexport const selectCloseFormStatus =\n (chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.trade.chainClosePositionFormStatus, [chainId || ''], FETCHING_STATUS.DONE);\n\nexport const selectCloseSimulation =\n (chainId: number | undefined) =>\n (state: AppState): ISimulation =>\n _.get(state.trade.chainCloseSimulation, [chainId || '']);\nexport const selectCloseSimulationStatus =\n (chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.trade.chainCloseSimulationStatus, [chainId || ''], FETCHING_STATUS.INIT);\n\nexport const selectLimitFormState =\n (chainId: number | undefined) =>\n (state: AppState): ILimitFormState =>\n _.get(state.trade.chainLimitFormState, [chainId || '']);\nexport const selectLimitFormStatus =\n (chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.trade.chainLimitFormStatus, [chainId || ''], FETCHING_STATUS.DONE);\nexport const selectLimitSimulation =\n (chainId: number | undefined) =>\n (state: AppState): IOrderSimulation | undefined =>\n _.get(state.trade.chainLimitSimulation, [chainId || '']);\nexport const selectMarketSimulation =\n (chainId: number | undefined) =>\n (state: AppState): ISimulation | undefined =>\n _.get(state.trade.chainMarketSimulation, [chainId || '']);\n\nexport const selectCancelFormState =\n (chainId: number | undefined) =>\n (state: AppState): ICancelFormState =>\n _.get(state.trade.chainCancelFormState, [chainId || '']);\n\nexport const selectPnlShare =\n (chainId: number | undefined) =>\n (state: AppState): IPnlParams | undefined =>\n _.get(state.trade.chainPnlShare, [chainId || '']);\n\nexport const selectCancelFormStatus =\n (chainId: number | undefined) =>\n (state: AppState): IOrderCancelStatus | undefined =>\n _.get(state.trade.chainCancelOrderFormStatus, [chainId || '']);\nexport const selectBulkCancelStatus =\n (chainId: number | undefined) =>\n (state: AppState): boolean | undefined =>\n _.get(state.trade.chainCancelOrderBulkStatus, [chainId || '']);\n\nexport const selectTradeTypeByChainId =\n (chainId: number | undefined) =>\n (state: AppState): TRADE_TYPE =>\n _.get(state.trade.chainFormType, [chainId || '']);\nexport const selectTradeDrawerTypeByChainId =\n (chainId: number | undefined) =>\n (state: AppState): TRADE_TYPE =>\n _.get(state.trade.chainDrawerType, [chainId || '']);\nexport const selectCurrentFutures =\n (chainId: number | undefined) =>\n (state: AppState): InstrumentInfo =>\n _.get(state.trade.chainCurrentFutures, [chainId || '']);\nexport const selectCurrentPair =\n (chainId: number | undefined) =>\n (state: AppState): WrappedPair =>\n _.get(state.trade.chainCurrentPair, [chainId || '']);\n\nexport const selectTradeFormLeverageByChainIdAndFormType =\n (chainId: number | undefined, formType: TRADE_TYPE) =>\n (state: AppState): string =>\n _.get(\n formType === TRADE_TYPE.MARKET\n ? state.trade.chainMarketFormState\n : formType === TRADE_TYPE.ADJUST_MARGIN\n ? state.trade.chainAdjustMarginFormState\n : state.trade.chainLimitFormState,\n [chainId || '', 'leverage'],\n TRADE_LEVERAGE_THRESHOLDS.DEFAULT.toString(),\n );\n\nexport const selectTradePortfolioTab = (state: AppState): TABLE_TYPES => state.trade.tradePortfolioTab;\n\nexport const selectIsChosenOrder = (state: AppState): boolean => state.trade.isChosenOrder;\n\nexport const selectChartDurationByChainId =\n (chainId: number | undefined) =>\n (state: AppState): KlineInterval | undefined =>\n _.get(state.trade.chainChartDuration, [chainId || '']);\n\nexport const selectFundingChartDurationByChainId =\n (chainId: number | undefined) =>\n (state: AppState): FundingChartInterval | undefined =>\n _.get(state.trade.fundingChartDuration, [chainId || '']);\n\nexport const selectStepRatioByChainId =\n (chainId: number | undefined) =>\n (state: AppState): number =>\n _.get(state.trade.chainStepRatio, [chainId || ''], DEFAULT_STEP_RATIO);\nexport const selectPairLeverageSwitchChecked =\n (chainId: number | undefined, userAddr: string | undefined, pairId: string | undefined) =>\n (state: AppState): boolean =>\n _.get(state.trade.chainLeverageSwitchChecked, [chainId || '', userAddr || '', pairId || ''], false);\n\nexport const selectCrossMarketSimulation =\n (chainId: number | undefined) =>\n (state: AppState): ICrossMarketOrderSimulation | undefined =>\n _.get(state.trade.chainCrossMarketSimulation, [chainId || '']);\n\nexport default tradeSlice.reducer;\n","import { InstrumentInfo, Side, TickMath, alignPriceToTick, wdiv } from '@synfutures/sdks-perp';\nimport { FundingChartInterval, KlineInterval } from '@synfutures/sdks-perp-datasource';\nimport BN from 'bignumber.js';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useLocation } from 'react-router-dom';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { CHAIN_ID } from '@/constants/chain';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { TABLE_TYPES, TRADE_LEVERAGE_THRESHOLDS } from '@/constants/global';\nimport {\n DEFAULT_IMR,\n LEVERAGE_ADJUST_TYPE,\n TRADE_TYPE,\n getImrStepRatio,\n getScaleLimitStepRatio,\n} from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedOrder } from '@/entities/WrappedOrder';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { TokenInfo } from '@/types/token';\nimport {\n IAdjustMarginFormState,\n IAdjustMarginSimulation,\n ICancelFormState,\n IClosePositionFormState,\n ICrossMarketOrderSimulation,\n ILimitFormState,\n IMarketFormState,\n IOrderCancelStatus,\n IOrderSimulation,\n IPnlParams,\n IScaleFormState,\n IScaledOrderSimulation,\n ISimulation,\n ISimulationData,\n getDefaultSimulation,\n} from '@/types/trade';\nimport { inputNumChecker, toWad } from '@/utils/numberUtil';\n\nimport { ERROR_MSG_EXCEED_WALLET_BALANCE } from '@/constants/simulation';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { getAdjustTradePrice } from '@/utils/pairs';\nimport { calcBaseSizeByQuote, calcTradeValue, isUsePlaceCrossMarketOrder } from '@/utils/trade';\nimport { useAsyncEffect, useDebounceEffect } from 'ahooks';\nimport { BigNumber } from 'ethers';\nimport { useWrappedOrderList } from '../account/orderHook';\nimport { useMainPosition } from '../account/positionHook';\nimport { useAvailableTokenBalance, useTokenBalance, useTokenGateBalanceByChainIdAndAddress } from '../balance/hook';\nimport { useBackendChainConfig } from '../config/hook';\nimport { useAddLiquidationSimulationData, useEarnFormType, useRemoveLiquidationSimulation } from '../earn/hook';\nimport { useGlobalConfig } from '../global/hooks';\nimport { useCurrentPairByDevice, usePairLimitPriceRange } from '../pair/hook';\nimport { useSDK } from '../web3/hook';\nimport {\n setLimitPrice,\n setScaleLimitPrice,\n setTradeFormSide,\n simulateCrossMarketOrder,\n simulateMarketTrade,\n} from './actions';\nimport {\n selectAdjustMarginFormState,\n selectAdjustMarginFormStatus,\n selectAdjustMarginSimulation,\n selectBulkCancelStatus,\n selectCancelFormState,\n selectCancelFormStatus,\n selectChartDurationByChainId,\n selectCloseFormStatus,\n selectClosePositionFormState,\n selectCloseSimulation,\n selectCloseSimulationStatus,\n selectCrossMarketSimulation,\n selectCurrentFutures,\n selectFundingChartDurationByChainId,\n selectIsChosenOrder,\n selectLimitFormState,\n selectLimitFormStatus,\n selectLimitSimulation,\n selectMarketFormStateByChainId,\n selectMarketFormStatusByChainId,\n selectMarketSimulation,\n selectPairLeverageSwitchChecked,\n selectPnlShare,\n selectScaleFormStateByChainId,\n selectScaleFormStatusByChainId,\n selectScaleSimulationByChainId,\n selectStepRatioByChainId,\n selectTradeDrawerTypeByChainId,\n selectTradeFormLeverageByChainIdAndFormType,\n selectTradePortfolioTab,\n selectTradeTypeByChainId,\n} from './slice';\n\nexport function useScaleFormState(chainId: CHAIN_ID | undefined): IScaleFormState {\n const scaleFormState = useAppSelector(selectScaleFormStateByChainId(chainId));\n\n return useMemo(() => scaleFormState || {}, [scaleFormState]);\n}\nexport function useScaleFormStateStatus(chainId: CHAIN_ID | undefined): FETCHING_STATUS {\n const scaleFormStatus = useAppSelector(selectScaleFormStatusByChainId(chainId));\n\n return useMemo(() => scaleFormStatus, [scaleFormStatus]);\n}\nexport function useScaleSimulation(chainId: CHAIN_ID | undefined): IScaledOrderSimulation | undefined {\n const simulation = useAppSelector(selectScaleSimulationByChainId(chainId));\n const { baseAmount } = useScaleFormState(chainId);\n const { t } = useTranslation();\n const currentPair = useCurrentPairByDevice(chainId);\n\n return useMemo(() => {\n const baseAmountWad = baseAmount ? WrappedBigNumber.from(baseAmount) : undefined;\n if (baseAmountWad && baseAmountWad.eq(0)) {\n return;\n }\n const minAmount = WrappedBigNumber.from(simulation?.data?.totalMinSize || 0);\n return {\n ...simulation,\n message:\n baseAmountWad && baseAmountWad.lt(minAmount)\n ? t('common.tradePage.lessThanMinOrder', {\n orderValue: WrappedBigNumber.from(minAmount || 0).formatDisplayNumber({\n roundingMode: BN.ROUND_UP,\n }),\n base: currentPair?.rootInstrument.baseToken.symbol,\n })\n : t(simulation?.message || ''),\n };\n }, [baseAmount, currentPair?.rootInstrument.baseToken.symbol, simulation, t]);\n}\nexport function useMarketFormState(chainId: CHAIN_ID | undefined): IMarketFormState {\n const tradeFormState = useAppSelector(selectMarketFormStateByChainId(chainId));\n\n return useMemo(() => tradeFormState || {}, [tradeFormState]);\n}\nexport function useMarketFormStateStatus(chainId: CHAIN_ID | undefined): FETCHING_STATUS {\n const tradeFormStatus = useAppSelector(selectMarketFormStatusByChainId(chainId));\n\n return useMemo(() => tradeFormStatus, [tradeFormStatus]);\n}\n\nexport function useTradeFormLeverage(\n chainId: CHAIN_ID | undefined,\n formType: TRADE_TYPE,\n maxLeverage?: number,\n): string {\n const leverage = useAppSelector(selectTradeFormLeverageByChainIdAndFormType(chainId, formType));\n return useMemo(() => {\n if (leverage) {\n if (WrappedBigNumber.from(leverage).lt(TRADE_LEVERAGE_THRESHOLDS.MIN)) {\n return TRADE_LEVERAGE_THRESHOLDS.MIN.toString();\n } else if (maxLeverage && WrappedBigNumber.from(leverage).gt(maxLeverage)) {\n return maxLeverage.toString();\n }\n }\n return leverage;\n }, [leverage, maxLeverage]);\n}\n\nexport function useTradeType(chainId: CHAIN_ID | undefined): TRADE_TYPE {\n return useAppSelector(selectTradeTypeByChainId(chainId));\n}\nexport function useTradeDrawerType(chainId: CHAIN_ID | undefined): TRADE_TYPE {\n return useAppSelector(selectTradeDrawerTypeByChainId(chainId));\n}\n\nexport function useTradeSide(chainId: CHAIN_ID | undefined): Side {\n const tradeType = useTradeType(chainId);\n const marketFormState = useMarketFormState(chainId);\n const limitFormState = useLimitFormState(chainId);\n const scaleLimitFormState = useScaleFormState(chainId);\n return useMemo(() => {\n let side = Side.LONG;\n if (tradeType === TRADE_TYPE.MARKET) {\n side = marketFormState.tradeSide;\n } else if (tradeType === TRADE_TYPE.SCALE_LIMIT) {\n side = scaleLimitFormState.tradeSide;\n } else {\n side = limitFormState.tradeSide;\n }\n return side || Side.LONG;\n }, [limitFormState.tradeSide, marketFormState.tradeSide, scaleLimitFormState.tradeSide, tradeType]);\n}\n\nexport function useAdjustMarginFormState(chainId: CHAIN_ID | undefined): IAdjustMarginFormState {\n const tradeFormState = useAppSelector(selectAdjustMarginFormState(chainId));\n\n return useMemo(() => tradeFormState || {}, [tradeFormState]);\n}\nexport function useAdjustMarginSimulation(chainId: CHAIN_ID | undefined): IAdjustMarginSimulation | undefined {\n const simulation = useAppSelector(selectAdjustMarginSimulation(chainId));\n\n return useMemo(() => simulation, [simulation]);\n}\nexport function useAdjustMarginFormStatus(chainId: CHAIN_ID | undefined): FETCHING_STATUS {\n const fetchingStatus = useAppSelector(selectAdjustMarginFormStatus(chainId));\n\n return useMemo(() => fetchingStatus || FETCHING_STATUS.DONE, [fetchingStatus]);\n}\n\nexport function useClosePositionFormState(chainId: CHAIN_ID | undefined): IClosePositionFormState {\n const tradeFormState = useAppSelector(selectClosePositionFormState(chainId));\n\n return useMemo(() => tradeFormState || {}, [tradeFormState]);\n}\nexport function useCloseFormStatus(chainId: CHAIN_ID | undefined): FETCHING_STATUS {\n const fetchingStatus = useAppSelector(selectCloseFormStatus(chainId));\n\n return useMemo(() => fetchingStatus || FETCHING_STATUS.DONE, [fetchingStatus]);\n}\n\nexport function useLimitFormState(chainId: CHAIN_ID | undefined): ILimitFormState {\n const limitFormState = useAppSelector(selectLimitFormState(chainId));\n\n return useMemo(() => limitFormState || {}, [limitFormState]);\n}\nexport function useLimitFormStatus(chainId: CHAIN_ID | undefined): FETCHING_STATUS {\n const limitFormStatus = useAppSelector(selectLimitFormStatus(chainId));\n\n return useMemo(() => limitFormStatus, [limitFormStatus]);\n}\nexport function useLimitSimulationRaw(chainId: CHAIN_ID | undefined): IOrderSimulation | undefined {\n const limitSimulation = useAppSelector(selectLimitSimulation(chainId));\n return useMemo(() => limitSimulation, [limitSimulation]);\n}\n\nexport function useLimitSimulation(chainId: CHAIN_ID | undefined): IOrderSimulation | undefined {\n const { baseAmount, limitPrice } = useLimitFormState(chainId);\n const { t } = useTranslation();\n\n const currentPair = useCurrentPairByDevice(chainId);\n const limitSimulation = useAppSelector(selectLimitSimulation(chainId));\n const sdkContext = useSDK(chainId);\n const [minAmount, setMinAmount] = useState(undefined);\n\n useAsyncEffect(async () => {\n if (currentPair) {\n if (WrappedBigNumber.from(limitPrice || 0).lte(0)) return;\n const price = getAdjustTradePrice(WrappedBigNumber.from(limitPrice || 0), !!currentPair?.isInverse);\n const result = alignPriceToTick(\n // currentPair.instrumentAddr,\n price.wadValue,\n // WrappedBigNumber.from(limitPrice || currentPair?.fairPrice || 0).wadValue,\n );\n if (result) {\n const price = TickMath.getWadAtTick(result.tick);\n if (price.gt(0)) {\n const min = wdiv(currentPair.rootInstrument.minOrderValue, price);\n setMinAmount(min);\n }\n }\n }\n }, [currentPair?.isInverse, limitPrice, sdkContext]);\n\n return useMemo(() => {\n try {\n const baseAmountWad = baseAmount ? toWad(baseAmount) : undefined;\n if (baseAmountWad && baseAmountWad.eq(0)) {\n return;\n }\n return {\n ...limitSimulation,\n message:\n baseAmountWad && baseAmountWad.lt(minAmount || 0)\n ? t('common.tradePage.lessThanMinOrder', {\n orderValue: WrappedBigNumber.from(minAmount || 0).formatDisplayNumber({\n roundingMode: BN.ROUND_UP,\n }),\n base: currentPair?.rootInstrument.baseToken.symbol,\n })\n : t(limitSimulation?.message || ''),\n };\n } catch (error) {\n return undefined;\n }\n }, [baseAmount, currentPair?.rootInstrument.baseToken.symbol, limitSimulation, minAmount, t]);\n}\nexport function useMarketSimulationRaw(chainId: CHAIN_ID | undefined): ISimulation | undefined {\n const markSimulation = useAppSelector(selectMarketSimulation(chainId));\n return useMemo(() => markSimulation, [markSimulation]);\n}\nexport function useMarketSimulation(chainId: CHAIN_ID | undefined): ISimulation | undefined {\n const dispatch = useAppDispatch();\n const { baseAmount, tradeSide, leverage, marginAmount } = useMarketFormState(chainId);\n\n const { t } = useTranslation();\n const currentPair = useCurrentPairByDevice(chainId);\n const userAddr = useUserAddr();\n const markSimulation = useAppSelector(selectMarketSimulation(chainId));\n const sdkContext = useSDK(chainId);\n const position = useMainPosition(chainId, userAddr, currentPair?.id);\n const [minAmount, setMinAmount] = useState(toWad(0));\n const [minSimulate, setMinSimulate] = useState(undefined);\n const { slippage } = useGlobalConfig(chainId);\n const maxLeverage = useTradeMaxLeverage(currentPair?.maxLeverage);\n const leverageType = useLeverageAdjustType(chainId);\n\n const isTradeByLeverage = useMemo(() => {\n return leverageType === LEVERAGE_ADJUST_TYPE.BY_LEVERAGE;\n }, [leverageType]);\n\n const getMinAmount = useCallback(async () => {\n if (position?.hasPosition) {\n setMinAmount(toWad(0));\n } else if (sdkContext && currentPair) {\n // try {\n // // const adjustTradeSide = getAdjustTradeSide(tradeSide, currentPair.isInverse);\n // const adjustTradeSide = tradeSide;\n // const { baseAmount } = await sdkContext?.perp?.observer.inquireByQuote(\n // currentPair.instrumentAddr,\n // currentPair.expiry,\n // adjustTradeSide,\n // currentPair?.rootInstrument.minTradeValue,\n // );\n\n // setMinAmount(baseAmount);\n // } catch (error) {\n // const baseAmount = await calcBaseSizeByQuote(\n // currentPair?.rootInstrument.minTradeValue,\n // currentPair.fairPrice,\n // currentPair.isInverse,\n // );\n // baseAmount && setMinAmount(baseAmount.wadValue);\n // }\n const baseAmount = await calcBaseSizeByQuote(\n currentPair?.rootInstrument.minTradeValue,\n currentPair.fairPrice,\n currentPair.isInverse,\n );\n baseAmount && setMinAmount(baseAmount.wadValue);\n }\n }, [currentPair, position?.hasPosition, sdkContext, tradeSide]);\n useAsyncEffect(async () => {\n await getMinAmount();\n }, [getMinAmount, position?.hasPosition]);\n\n useDebounceEffect(\n () => {\n if (position && !position?.hasPosition && isTradeByLeverage) {\n const amountBN = WrappedBigNumber.from(baseAmount || 0);\n if (chainId && minAmount.gt(0) && amountBN.gt(0) && amountBN.wadValue.lte(minAmount)) {\n userAddr &&\n dispatch(\n simulateMarketTrade({\n chainId,\n sdkContext,\n position: position,\n base: WrappedBigNumber.from(minAmount || 0).stringValue,\n margin: undefined,\n leverage: leverage,\n tradeSide,\n slippage: Number(slippage),\n userAddr,\n maxLeverage,\n onlyCallFuncMode: true,\n }),\n )\n .unwrap()\n .then((res) => {\n res && setMinSimulate(res);\n });\n }\n }\n // return () => {\n // setMinSimulate(undefined);\n // };\n },\n [currentPair?.id, dispatch, leverage, minAmount, position, sdkContext, slippage, tradeSide, userAddr, baseAmount],\n { wait: 500 },\n );\n\n return useMemo(() => {\n let message = markSimulation?.message;\n const baseWad = baseAmount ? toWad(baseAmount || 0) : undefined;\n if (baseWad && baseWad.eq(0)) {\n return;\n }\n\n if (baseWad && baseWad.lt(minAmount || 0)) {\n message = t(\n isTradeByLeverage && minSimulate?.data?.margin\n ? 'common.tradePage.lessThanMinTradeWithLeverage'\n : 'common.tradePage.lessThanMinTrade',\n {\n tradeValue: WrappedBigNumber.from(minAmount || 0).formatDisplayNumber({\n roundingMode: BN.ROUND_UP,\n }),\n base: currentPair?.rootInstrument.baseToken.symbol,\n minMargin: minSimulate?.data?.margin?.formatDisplayNumber(),\n baseValue: calcTradeValue(minAmount, currentPair?.fairPrice || 1, currentPair?.isInverse || false)\n .mul(currentPair?.rootInstrument?.quoteToken?.price || 0)\n .formatDisplayNumber(),\n quote: currentPair?.rootInstrument.quoteToken.symbol,\n leverage: WrappedBigNumber.from(minSimulate?.data?.leverage || 0).formatLeverageString(),\n },\n );\n return {\n ...markSimulation,\n message,\n };\n }\n // const dynamic = getSavedPairLeverage(userAddr, chainId, currentPair?.id, DYNAMIC);\n\n if (baseAmount) {\n if (\n marginAmount &&\n markSimulation?.data?.margin &&\n markSimulation.data.margin.gt(0) &&\n markSimulation.data.margin.gt(marginAmount)\n ) {\n return {\n chainId,\n message: t('common.tradePage.lessThanMinMargin', {\n margin: markSimulation.data.margin.formatDisplayNumber({\n roundingMode: BN.ROUND_UP,\n }),\n quote: currentPair?.rootInstrument.quoteToken.symbol,\n }),\n };\n }\n return {\n ...markSimulation,\n message,\n };\n } else {\n return chainId ? getDefaultSimulation(chainId) : undefined;\n }\n\n // must depend on minAmount._hex\n }, [\n markSimulation,\n baseAmount,\n minAmount?._hex,\n t,\n isTradeByLeverage,\n minSimulate?.data?.margin,\n minSimulate?.data?.leverage,\n currentPair?.rootInstrument.baseToken.symbol,\n currentPair?.rootInstrument.quoteToken?.price,\n currentPair?.rootInstrument.quoteToken.symbol,\n marginAmount,\n chainId,\n ]);\n}\n\nexport function useCloseSimulation(chainId: CHAIN_ID | undefined): ISimulation | undefined {\n const closeSimulation = useAppSelector(selectCloseSimulation(chainId));\n\n return useMemo(() => closeSimulation, [closeSimulation]);\n}\nexport function useCloseSimulationStatus(chainId: CHAIN_ID | undefined): FETCHING_STATUS {\n const closeSimulationStatus = useAppSelector(selectCloseSimulationStatus(chainId));\n\n return useMemo(() => closeSimulationStatus, [closeSimulationStatus]);\n}\n\nexport function usePnsShareParams(chainId: CHAIN_ID | undefined): IPnlParams | undefined {\n const params = useAppSelector(selectPnlShare(chainId));\n return useMemo(() => params, [params]);\n}\nexport function useCancelFormState(chainId: CHAIN_ID | undefined): ICancelFormState {\n const cancelFormState = useAppSelector(selectCancelFormState(chainId));\n return useMemo(() => cancelFormState || {}, [cancelFormState]);\n}\n\nexport function useCancelFormStatus(chainId: CHAIN_ID | undefined): IOrderCancelStatus | undefined {\n const cancelFormStatus = useAppSelector(selectCancelFormStatus(chainId));\n\n return useMemo(() => cancelFormStatus, [cancelFormStatus]);\n}\nexport function useBulkCancelStatus(chainId: CHAIN_ID | undefined): boolean | undefined {\n const status = useAppSelector(selectBulkCancelStatus(chainId));\n\n return useMemo(() => status, [status]);\n}\nexport function useCancelItems(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n): WrappedOrder[] | undefined {\n const orders = useWrappedOrderList(chainId, userAddr, pairId);\n const { ids } = useCancelFormState(chainId);\n return useMemo(() => {\n return orders?.filter((p) => ids?.includes(p.id));\n }, [ids, orders]);\n}\nexport function useCurrentFutures(chainId: CHAIN_ID | undefined): InstrumentInfo {\n const currentFuture = useAppSelector(selectCurrentFutures(chainId));\n\n return useMemo(() => currentFuture || {}, [currentFuture]);\n}\n// History related tab use useTradePortfolioTab, Non History related tab use useSetTradePortfolioTab\nexport function useTradePortfolioTab(): TABLE_TYPES {\n return useAppSelector(selectTradePortfolioTab);\n}\n\nexport function useIsChosenOrder(): boolean {\n return useAppSelector(selectIsChosenOrder);\n}\n\nexport function useChartDuration(chainId: CHAIN_ID | undefined): KlineInterval {\n const chartDuration = useAppSelector(selectChartDurationByChainId(chainId));\n const dappConfig = useBackendChainConfig(chainId);\n return useMemo(() => {\n if (!chartDuration) {\n return (dappConfig?.trade?.klineInterval?.default as KlineInterval) || KlineInterval.HOUR;\n }\n return chartDuration;\n }, [chartDuration, dappConfig?.trade?.klineInterval?.default]);\n}\n\nexport function useFundingChartDuration(chainId: CHAIN_ID | undefined): FundingChartInterval {\n const chartDuration = useAppSelector(selectFundingChartDurationByChainId(chainId));\n const dappConfig = useBackendChainConfig(chainId);\n return useMemo(() => {\n const defaultInterval =\n (dappConfig?.trade.fundingChartInterval.default as FundingChartInterval) || FundingChartInterval.HOUR;\n if (!chartDuration) {\n return defaultInterval;\n }\n return chartDuration;\n }, [chartDuration, dappConfig?.trade.fundingChartInterval.default]);\n}\n\nexport function useStepRatio(chainId: CHAIN_ID | undefined): number {\n const stepRatio = useAppSelector(selectStepRatioByChainId(chainId));\n return stepRatio;\n}\n\nexport function useSimulationBalanceChange(\n chainId: CHAIN_ID | undefined,\n marginToken: TokenInfo | undefined,\n): {\n isShowVaultChange: boolean;\n isShowBalanceChange: boolean;\n gateBalanceBefore: WrappedBigNumber | undefined;\n gateBalanceAfter: WrappedBigNumber | undefined;\n walletBalanceBefore: WrappedBigNumber | undefined;\n walletBalanceAfter: WrappedBigNumber | undefined;\n isShowTotalBalanceChange: boolean;\n totalBalanceBefore: WrappedBigNumber | undefined;\n totalBalanceAfter: WrappedBigNumber | undefined;\n} {\n const { pathname } = useLocation();\n const tradeTypeOrigin = useTradeType(chainId);\n const tradeDrawerType = useTradeDrawerType(chainId);\n // adapt for mobile trade drawer\n const tradeType = useMemo(() => {\n if (tradeDrawerType) {\n return tradeDrawerType;\n }\n return tradeTypeOrigin;\n }, [tradeDrawerType, tradeTypeOrigin]);\n const earnType = useEarnFormType(chainId);\n const gateBalance = useTokenGateBalanceByChainIdAndAddress(chainId, marginToken?.address);\n const walletBalance = useTokenBalance(marginToken?.address, chainId);\n const adjustMarginSimulation = useAdjustMarginSimulation(chainId);\n const marketSimulation = useMarketSimulation(chainId);\n const limitSimulation = useLimitSimulationRaw(chainId);\n const scaleLimitSimulation = useScaleSimulation(chainId);\n const addLiquiditySimulation = useAddLiquidationSimulationData(chainId);\n const removeLiquiditySimulation = useRemoveLiquidationSimulation(chainId);\n const closeSimulation = useCloseSimulation(chainId);\n const crossMarginSimulation = useCrossMarketSimulation(chainId);\n const canPlaceCrossMarketOrder = useCanPlaceCrossMarketOrder(chainId);\n\n // const simulation = useMemo(() => {\n // if (tradeType === TRADE_TYPE.MARKET) {\n // return marketSimulation;\n // }\n // else if (tradeType === TRADE_TYPE.LIMIT) {\n // return limitSimulation;\n // }else if (tradeType === TRADE_TYPE.ADJUST_MARGIN) {\n // return adjustMarginSimulation;\n\n // }\n // }, [adjustMarginSimulation, limitSimulation, marketSimulation, tradeType]);\n\n const transferAmountWad = useMemo(() => {\n if (pathname.includes('/earn')) {\n if (earnType === EARN_TYPE.ADD_LIQ) return addLiquiditySimulation?.data?.margin?.wadValue;\n if (earnType === EARN_TYPE.REMOVE_LIQ) return removeLiquiditySimulation?.data?.margin?.wadValue;\n } else if (tradeType === TRADE_TYPE.MARKET) {\n return marketSimulation?.data?.margin.wadValue;\n } else if (tradeType === TRADE_TYPE.LIMIT) {\n return canPlaceCrossMarketOrder\n ? crossMarginSimulation?.data?.margin.wadValue\n : limitSimulation?.data?.margin?.wadValue;\n } else if (tradeType === TRADE_TYPE.SCALE_LIMIT) {\n return scaleLimitSimulation?.data?.margin?.wadValue;\n } else if (tradeType === TRADE_TYPE.ADJUST_MARGIN) {\n return adjustMarginSimulation?.data?.transferAmount;\n } else if (tradeType === TRADE_TYPE.CLOSE_POSITION) {\n return closeSimulation?.data?.margin.wadValue;\n }\n }, [\n pathname,\n tradeType,\n earnType,\n addLiquiditySimulation?.data?.margin?.wadValue,\n removeLiquiditySimulation?.data?.margin?.wadValue,\n marketSimulation?.data?.margin.wadValue,\n canPlaceCrossMarketOrder,\n crossMarginSimulation?.data?.margin.wadValue,\n limitSimulation?.data?.margin?.wadValue,\n scaleLimitSimulation?.data?.margin?.wadValue,\n adjustMarginSimulation?.data?.transferAmount,\n closeSimulation?.data?.margin.wadValue,\n ]);\n\n const marginToDepositWad = useMemo(() => {\n if (pathname.includes('/earn') && earnType === EARN_TYPE.ADD_LIQ) {\n return addLiquiditySimulation?.data?.marginToDeposit?.wadValue;\n } else if (tradeType === TRADE_TYPE.MARKET) {\n return marketSimulation?.data?.marginToDeposit?.wadValue;\n } else if (tradeType === TRADE_TYPE.LIMIT) {\n return canPlaceCrossMarketOrder\n ? crossMarginSimulation?.data?.marginToDeposit.wadValue\n : limitSimulation?.data?.marginToDeposit.wadValue;\n } else if (tradeType === TRADE_TYPE.SCALE_LIMIT) {\n return scaleLimitSimulation?.data?.marginToDeposit.wadValue;\n } else if (tradeType === TRADE_TYPE.ADJUST_MARGIN) {\n return adjustMarginSimulation?.data?.marginToDepositWad;\n } else if (tradeType === TRADE_TYPE.CLOSE_POSITION) {\n return closeSimulation?.data?.marginToDeposit?.wadValue;\n }\n }, [\n addLiquiditySimulation?.data?.marginToDeposit?.wadValue,\n adjustMarginSimulation?.data?.marginToDepositWad,\n canPlaceCrossMarketOrder,\n closeSimulation?.data?.marginToDeposit?.wadValue,\n crossMarginSimulation?.data?.marginToDeposit.wadValue,\n earnType,\n limitSimulation?.data?.marginToDeposit,\n marketSimulation?.data?.marginToDeposit?.wadValue,\n pathname,\n scaleLimitSimulation?.data?.marginToDeposit,\n tradeType,\n ]);\n\n const gateBalanceBefore = useMemo(() => {\n return gateBalance?.balance;\n }, [gateBalance?.balance]);\n\n const tokenBalanceBefore = useMemo(() => {\n return walletBalance;\n }, [walletBalance]);\n\n const totalBalanceBefore = useMemo(() => {\n return gateBalanceBefore?.add(tokenBalanceBefore || 0);\n }, [tokenBalanceBefore, gateBalanceBefore]);\n\n const totalBalanceAfter = useMemo(() => {\n const after = gateBalanceBefore?.add(tokenBalanceBefore || 0)?.min(transferAmountWad || 0);\n\n if (after?.lt(WrappedBigNumber.ZERO)) {\n return WrappedBigNumber.ZERO;\n }\n return after;\n }, [tokenBalanceBefore, transferAmountWad, gateBalanceBefore]);\n\n const gateBalanceAfter = useMemo(() => {\n if (totalBalanceAfter?.eq(0)) {\n return WrappedBigNumber.ZERO;\n }\n if (gateBalanceBefore) {\n const gateChange = transferAmountWad?.sub(marginToDepositWad || 0);\n\n if (gateBalanceBefore.lt(WrappedBigNumber.from(gateChange || 0))) {\n return WrappedBigNumber.ZERO;\n }\n return gateBalanceBefore.min(WrappedBigNumber.from(gateChange || 0));\n }\n }, [marginToDepositWad, totalBalanceAfter, transferAmountWad, gateBalanceBefore]);\n\n const isShowVaultChange = useMemo(() => {\n return (\n (gateBalanceAfter?.notEq(gateBalanceBefore || 0) && (gateBalanceBefore?.gt(0) || gateBalanceAfter?.gt(0))) ||\n false\n );\n }, [gateBalanceBefore, gateBalanceAfter]);\n\n const tokenBalanceAfter = useMemo(() => {\n if (totalBalanceAfter?.eq(0)) {\n return WrappedBigNumber.ZERO;\n }\n const after = tokenBalanceBefore?.min(WrappedBigNumber.from(marginToDepositWad || 0));\n if (after?.lt(WrappedBigNumber.ZERO)) {\n return WrappedBigNumber.ZERO;\n }\n return after;\n }, [marginToDepositWad, tokenBalanceBefore, totalBalanceAfter]);\n\n const isShowBalanceChange = useMemo(() => {\n return (tokenBalanceBefore?.notEq(tokenBalanceAfter) && tokenBalanceBefore?.gt(0)) || false;\n }, [tokenBalanceBefore, tokenBalanceAfter]);\n\n const isShowTotalBalanceChange = useMemo(() => {\n return isShowVaultChange || isShowBalanceChange;\n }, [isShowBalanceChange, isShowVaultChange]);\n\n return {\n isShowVaultChange,\n isShowBalanceChange,\n gateBalanceBefore,\n gateBalanceAfter,\n walletBalanceBefore: tokenBalanceBefore,\n walletBalanceAfter: tokenBalanceAfter,\n isShowTotalBalanceChange,\n totalBalanceBefore,\n totalBalanceAfter,\n };\n}\n\nexport function useLimitPriceChangeWhenOutOfRange(\n chainId: CHAIN_ID | undefined,\n priceInputFocused: boolean,\n isTurnOnCrossMarket?: boolean,\n) {\n const { limitPrice: LimitPriceInput, tradeSide } = useLimitFormState(chainId);\n const currentPair = useCurrentPairByDevice(chainId);\n const dispatch = useAppDispatch();\n const sdkContext = useSDK(chainId);\n const [lowerPrice, upperPrice] = usePairLimitPriceRange(currentPair, tradeSide, sdkContext, isTurnOnCrossMarket);\n // When lowerPrice, upperPrice change and user didn't focus price input, change range\n useEffect(() => {\n if (!priceInputFocused) {\n changelimitPriceWhenOutOfRange();\n }\n }, [lowerPrice, upperPrice, priceInputFocused]);\n const lowerPriceChecked = useMemo(\n () => WrappedBigNumber.from(inputNumChecker(lowerPrice?.stringValue || '', currentPair?.priceDecimal) || ''),\n [currentPair?.priceDecimal, lowerPrice?.stringValue],\n );\n const upperPriceChecked = useMemo(\n () => WrappedBigNumber.from(inputNumChecker(upperPrice?.stringValue || '', currentPair?.priceDecimal) || ''),\n [currentPair?.priceDecimal, upperPrice?.stringValue],\n );\n const changelimitPriceWhenOutOfRange = useCallback(() => {\n let updatedLimitPrice: WrappedBigNumber | undefined = undefined;\n if (LimitPriceInput && currentPair && sdkContext) {\n const adjustTradeSide = tradeSide;\n if (adjustTradeSide === Side.LONG) {\n if (lowerPriceChecked?.gt(LimitPriceInput)) {\n updatedLimitPrice = lowerPrice;\n }\n if (upperPriceChecked?.lt(LimitPriceInput)) {\n updatedLimitPrice = upperPrice;\n }\n }\n if (adjustTradeSide === Side.SHORT) {\n if (lowerPriceChecked?.gt(LimitPriceInput)) {\n updatedLimitPrice = lowerPrice;\n }\n if (upperPriceChecked?.lt(LimitPriceInput)) {\n updatedLimitPrice = upperPrice;\n }\n }\n }\n if (updatedLimitPrice && chainId) {\n dispatch(\n setLimitPrice({\n chainId,\n limitPrice: updatedLimitPrice?.stringValue,\n alignedPrice: updatedLimitPrice?.stringValue,\n }),\n );\n }\n }, [\n chainId,\n currentPair,\n LimitPriceInput,\n dispatch,\n lowerPrice,\n lowerPriceChecked,\n sdkContext,\n tradeSide,\n upperPrice,\n upperPriceChecked,\n ]);\n\n return changelimitPriceWhenOutOfRange;\n}\nexport function useScaleLimitPriceChangeWhenOutOfRange(chainId: CHAIN_ID | undefined, priceInputFocused: boolean) {\n const { lowerPrice: lowerInput, upperPrice: upperInput, tradeSide } = useScaleFormState(chainId);\n const currentPair = useCurrentPairByDevice(chainId);\n const dispatch = useAppDispatch();\n const sdkContext = useSDK(chainId);\n const [lowerPrice, upperPrice] = usePairLimitPriceRange(currentPair, tradeSide, sdkContext);\n // When lowerPrice, upperPrice change and user didn't focus price input, change range\n useEffect(() => {\n if (!priceInputFocused) {\n changeLimitPriceWhenOutOfRange();\n }\n }, [lowerPrice, upperPrice, priceInputFocused]);\n const lowerPriceChecked = useMemo(\n () => WrappedBigNumber.from(inputNumChecker(lowerPrice?.stringValue || '', currentPair?.priceDecimal) || ''),\n [currentPair?.priceDecimal, lowerPrice?.stringValue],\n );\n const upperPriceChecked = useMemo(\n () => WrappedBigNumber.from(inputNumChecker(upperPrice?.stringValue || '', currentPair?.priceDecimal) || ''),\n [currentPair?.priceDecimal, upperPrice?.stringValue],\n );\n const changeLimitPriceWhenOutOfRange = useCallback(() => {\n let updatedLowerPrice: WrappedBigNumber | undefined = lowerInput ? WrappedBigNumber.from(lowerInput) : undefined;\n let updatedUpperPrice: WrappedBigNumber | undefined = upperInput ? WrappedBigNumber.from(upperInput) : undefined;\n if (lowerInput && currentPair && sdkContext) {\n if (lowerPriceChecked?.gt(lowerInput)) {\n updatedLowerPrice = lowerPrice;\n }\n if (upperPriceChecked?.lt(upperInput)) {\n updatedUpperPrice = upperPrice;\n }\n }\n if (updatedLowerPrice && chainId && updatedUpperPrice) {\n dispatch(\n setScaleLimitPrice({\n chainId,\n lowerPrice: updatedLowerPrice?.stringValue,\n alignedLowerPrice: updatedLowerPrice?.stringValue,\n upperPrice: updatedUpperPrice.stringValue,\n alignedUpperPrice: updatedUpperPrice.stringValue,\n }),\n );\n }\n }, [\n lowerInput,\n upperInput,\n currentPair,\n sdkContext,\n chainId,\n lowerPriceChecked,\n upperPriceChecked,\n lowerPrice,\n upperPrice,\n dispatch,\n ]);\n\n return changeLimitPriceWhenOutOfRange;\n}\n\nexport function useLimitPriceWarning(\n chainId: CHAIN_ID | undefined,\n): { msg: string; price: WrappedBigNumber | undefined } | undefined {\n const { limitPrice, tradeSide } = useLimitFormState(chainId);\n const currentPair = useCurrentPairByDevice(chainId);\n const { t } = useTranslation();\n const sdkContext = useSDK(chainId);\n const [lowerPrice, upperPrice] = usePairLimitPriceRange(currentPair, tradeSide, sdkContext);\n const lowerPriceChecked = useMemo(\n () => WrappedBigNumber.from(inputNumChecker(lowerPrice?.stringValue || '', currentPair?.priceDecimal) || ''),\n [currentPair?.priceDecimal, lowerPrice?.stringValue],\n );\n const upperPriceChecked = useMemo(\n () => WrappedBigNumber.from(inputNumChecker(upperPrice?.stringValue || '', currentPair?.priceDecimal) || ''),\n [currentPair?.priceDecimal, upperPrice?.stringValue],\n );\n const limitPriceMsg = useMemo(() => {\n if (limitPrice && currentPair && sdkContext) {\n const adjustTradeSide = tradeSide;\n if (adjustTradeSide === Side.LONG) {\n if (lowerPriceChecked?.gt(limitPrice)) {\n return { msg: t('errors.trade.useMin'), price: lowerPrice };\n }\n if (upperPriceChecked?.lt(limitPrice)) {\n return { msg: t('errors.trade.useBest'), price: upperPrice };\n }\n }\n if (adjustTradeSide === Side.SHORT) {\n if (lowerPriceChecked?.gt(limitPrice)) {\n return { msg: t('errors.trade.useBestAsk'), price: lowerPrice };\n }\n if (upperPriceChecked?.lt(limitPrice)) {\n return { msg: t('errors.trade.useMaxAsk'), price: upperPrice };\n }\n }\n }\n return undefined;\n }, [limitPrice, currentPair, sdkContext, tradeSide, lowerPriceChecked, upperPriceChecked, t, lowerPrice, upperPrice]);\n return limitPriceMsg;\n}\nexport function useLeverageInputWarningMessage(simulation: ISimulation): string | undefined {\n const { t } = useTranslation();\n if (\n WrappedBigNumber.from(simulation.data?.simulationMainPosition.leverageWad || 0).gt(TRADE_LEVERAGE_THRESHOLDS.MAX)\n ) {\n return t('common.tradePage.leverageMoreThan');\n }\n return undefined;\n}\n\nexport function useSimulationAdditionalFeeUSD(\n simulation: ISimulationData | undefined,\n coinPrice: WrappedBigNumber | undefined,\n): WrappedBigNumber {\n const tradeFeeUSD = useMemo(() => {\n if (coinPrice && simulation?.additionalFee) {\n return simulation?.additionalFee.mul(coinPrice);\n }\n return WrappedBigNumber.ZERO;\n }, [coinPrice, simulation?.additionalFee]);\n\n return tradeFeeUSD;\n}\n\nexport function useTradeDefaultLeverage(maxLeverage: number | undefined): number {\n return useMemo(() => {\n if (maxLeverage) {\n return Math.floor(maxLeverage / 2);\n }\n return TRADE_LEVERAGE_THRESHOLDS.DEFAULT;\n }, [maxLeverage]);\n}\n\nexport function useTradeMaxLeverage(maxLeverage: number | undefined): number {\n return useMemo(() => maxLeverage ?? TRADE_LEVERAGE_THRESHOLDS.DEFAULT, [maxLeverage]);\n}\nexport function usePairStepRatios(imr = DEFAULT_IMR, withBaseBPs = false): number[] {\n return useMemo(() => (withBaseBPs ? getScaleLimitStepRatio(imr) : getImrStepRatio(imr)), [imr, withBaseBPs]);\n}\nexport function usePairLeverageSwitchChecked(\n chainId: number | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n): boolean {\n return useAppSelector(selectPairLeverageSwitchChecked(chainId, userAddr, pairId));\n}\nexport function useLeverageAdjustType(chainId: CHAIN_ID | undefined): LEVERAGE_ADJUST_TYPE {\n const tradeType = useTradeType(chainId);\n const marketFormState = useMarketFormState(chainId);\n return useMemo(\n () =>\n tradeType === TRADE_TYPE.MARKET\n ? marketFormState.leverageAdjustType || LEVERAGE_ADJUST_TYPE.BY_LEVERAGE\n : LEVERAGE_ADJUST_TYPE.BY_LEVERAGE,\n [marketFormState.leverageAdjustType, tradeType],\n );\n}\n\n/**\n * Checks if a cross-market order can be placed.\n * @param isTurnOnCrossMarket - A boolean indicating whether cross-market trading is turned on.\n * @param pair - The wrapped pair object representing the trading pair.\n * @param targetPrice - The target price for the order.\n * @param side - The side of the order (buy or sell).\n * @returns A boolean indicating whether a cross-market order can be placed.\n */\nexport function useCanPlaceCrossMarketOrder(chainId: CHAIN_ID | undefined): boolean {\n const { limitPrice, isTurnOnCrossMarket } = useLimitFormState(chainId);\n const currentPair = useCurrentPairByDevice(chainId);\n const tradeSide = useTradeSide(chainId);\n return useMemo(() => {\n if (!currentPair?.fairPrice || !limitPrice) return false;\n return isUsePlaceCrossMarketOrder(\n currentPair?.wrapAttribute('fairPrice'),\n WrappedBigNumber.from(limitPrice),\n tradeSide,\n isTurnOnCrossMarket || false,\n );\n }, [isTurnOnCrossMarket, currentPair?.fairPrice?._hex, tradeSide, limitPrice]);\n}\n\nexport function useCallSimulateCrossMarketOrder({\n chainId,\n userAddr,\n tradeSide,\n currentPair,\n baseAmount,\n limitPrice,\n onlyCallFuncMode,\n}: {\n chainId: CHAIN_ID | undefined;\n userAddr: string | undefined;\n tradeSide: Side;\n currentPair: WrappedPair | undefined;\n baseAmount: WrappedBigNumber | undefined;\n limitPrice: string | undefined;\n onlyCallFuncMode?: boolean;\n}) {\n const dispatch = useAppDispatch();\n const sdkContext = useSDK(chainId);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const { slippage } = useGlobalConfig(chainId);\n\n return useCallback(\n (leverage: string) => {\n if (sdkContext && chainId && limitPrice)\n return dispatch(\n simulateCrossMarketOrder({\n chainId,\n sdkContext,\n base: WrappedBigNumber.from(baseAmount || 0),\n tradeSide,\n limitPrice: limitPrice,\n position: currentPosition,\n leverage: leverage ? WrappedBigNumber.from(leverage) : undefined,\n slippage: Number(slippage),\n onlyCallFuncMode,\n }),\n ).unwrap();\n },\n [baseAmount, chainId, currentPosition, dispatch, limitPrice, onlyCallFuncMode, sdkContext, slippage, tradeSide],\n );\n}\n\nexport function useCrossMarketSimulation(chainId: CHAIN_ID | undefined): ICrossMarketOrderSimulation | undefined {\n const { baseAmount } = useLimitFormState(chainId);\n const { t } = useTranslation();\n\n const currentPair = useCurrentPairByDevice(chainId);\n const crossMarginSimulation = useAppSelector(selectCrossMarketSimulation(chainId));\n const canPlaceCrossMarketOrder = useCanPlaceCrossMarketOrder(chainId);\n const availableTokenBalance = useAvailableTokenBalance(currentPair?.rootInstrument.quoteToken.address, chainId, true);\n\n const minAmount = useMemo(() => {\n return crossMarginSimulation?.data?.totalMinSize;\n }, [crossMarginSimulation?.data?.totalMinSize]);\n\n return useMemo(() => {\n try {\n const baseAmountWad = baseAmount ? toWad(baseAmount) : undefined;\n if (baseAmountWad && baseAmountWad.eq(0)) {\n return;\n }\n if (!canPlaceCrossMarketOrder) return;\n if (baseAmountWad && WrappedBigNumber.from(baseAmountWad).lt(minAmount || 0)) {\n return {\n ...crossMarginSimulation,\n errorData: undefined,\n data: undefined,\n message: t('common.tradePage.lessThanMinOrder', {\n orderValue: WrappedBigNumber.from(minAmount || 0).formatDisplayNumber({\n roundingMode: BN.ROUND_UP,\n }),\n base: currentPair?.rootInstrument.baseToken.symbol,\n }),\n };\n }\n if (crossMarginSimulation?.data?.margin?.gt(0)) {\n const balance = availableTokenBalance;\n if (balance) {\n if (crossMarginSimulation?.data?.margin.gt(balance)) {\n return {\n ...crossMarginSimulation,\n errorData: ERROR_MSG_EXCEED_WALLET_BALANCE.errorData,\n message: ERROR_MSG_EXCEED_WALLET_BALANCE.errorMsg,\n };\n }\n }\n }\n return crossMarginSimulation;\n } catch (error) {\n return undefined;\n }\n }, [\n baseAmount,\n canPlaceCrossMarketOrder,\n minAmount,\n crossMarginSimulation,\n t,\n currentPair?.rootInstrument.baseToken.symbol,\n // must use string value\n availableTokenBalance?.stringValue,\n ]);\n}\n\nexport function useSimulateCrossMarketMinMarginAndAmount(\n chainId: CHAIN_ID | undefined,\n): ICrossMarketOrderSimulation | undefined {\n const limitFormState = useLimitFormState(chainId);\n const userAddr = useUserAddr();\n\n const currentPair = useCurrentPairByDevice(chainId);\n const canPlaceCrossMarketOrder = useCanPlaceCrossMarketOrder(chainId);\n const [minSimulate, setMinSimulate] = useState(undefined);\n const callSimulateCrossMarketOrder = useCallSimulateCrossMarketOrder({\n chainId,\n userAddr,\n currentPair,\n\n baseAmount: WrappedBigNumber.from(1 / 1e18),\n limitPrice: limitFormState.limitPrice,\n tradeSide: limitFormState.tradeSide,\n onlyCallFuncMode: true,\n });\n\n useDebounceEffect(\n () => {\n if (!canPlaceCrossMarketOrder) {\n setMinSimulate(undefined);\n }\n\n if (currentPair && canPlaceCrossMarketOrder && chainId && userAddr && limitFormState.limitPrice) {\n const proms = callSimulateCrossMarketOrder(limitFormState?.leverage || '0');\n if (proms)\n proms.then((res) => {\n res && setMinSimulate(res);\n });\n }\n // return () => {\n // setMinSimulate(undefined);\n // };\n },\n [currentPair?.id, limitFormState?.leverage, limitFormState?.tradeSide, userAddr, limitFormState?.limitPrice],\n { wait: 500 },\n );\n return minSimulate;\n}\nexport function useTradeDefaultSide(currentPair: WrappedPair | undefined) {\n const dispatch = useAppDispatch();\n useEffect(() => {\n currentPair &&\n dispatch(\n setTradeFormSide({\n chainId: currentPair.chainId,\n tradeSide: currentPair?.fairPrice.gt(currentPair?.markPrice) ? Side.SHORT : Side.LONG,\n }),\n );\n // only the id\n }, [currentPair?.id]);\n}\n\nexport function useUpdatePriceByTicks(): (lowerTick: number, upperTick: number, pair: WrappedPair) => void {\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const updatePricesByTicks = useCallback(\n (lowerTick: number, upperTick: number, pair: WrappedPair) => {\n if (!chainId) return;\n const newLowerPrice = WrappedBigNumber.from(TickMath.getWadAtTick(lowerTick));\n const checkedLowerValue = inputNumChecker(newLowerPrice.stringValue, pair?.priceDecimal);\n const newUpperPrice = WrappedBigNumber.from(TickMath.getWadAtTick(upperTick));\n const checkedUpperValue = inputNumChecker(newUpperPrice.stringValue, pair?.priceDecimal);\n dispatch(\n setScaleLimitPrice({\n chainId,\n lowerTick,\n lowerPrice: checkedLowerValue,\n alignedLowerPrice: checkedLowerValue,\n upperTick,\n upperPrice: checkedUpperValue,\n alignedUpperPrice: checkedUpperValue,\n }),\n );\n },\n [chainId, dispatch],\n );\n return updatePricesByTicks;\n}\n","import { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { IDepthChartData } from '@/types/chart';\nimport { IFundingChart, IFuturesFundingRateData, IFuturesInstrument, IFuturesOrderBookAllSteps } from '@/types/futures';\nimport { IMarketPair } from '@/types/pair';\nimport { bigNumberObjectCheck, debounceRequest } from '@/utils';\nimport { axiosGet } from '@/utils/axios';\nimport { getAdjustTradePrice } from '@/utils/pairs';\nimport { getPairId } from '@/utils/transform/transformId';\nimport { Context } from '@derivation-tech/context';\nimport { Amm, MinimalPearl } from '@synfutures/sdks-perp';\nimport { DepthChartData, FundingChartInterval, KlineData, KlineInterval } from '@synfutures/sdks-perp-datasource';\nimport _ from 'lodash';\nimport moment from 'moment';\n\nexport async function fetchInstrumentFromChain(\n sdk: Context,\n instrumentAddr: string,\n expiry?: number,\n block?: number,\n): Promise {\n if (sdk) {\n const instrumentList = await sdk.perp.observer.getInstrument(\n [\n {\n instrument: instrumentAddr,\n expiries: expiry ? [expiry] : [],\n },\n ],\n { blockTag: block },\n );\n if (instrumentList.length > 0) {\n const futuresItem = instrumentList[0];\n\n block = futuresItem.blockInfo?.height || 0;\n\n return futuresItem;\n }\n }\n return null;\n}\n\nexport const fetchFuturesInstrument = debounceRequest(\n async (chainId: number, instrumentAddr: string): Promise => {\n const res = await axiosGet({\n url: 'https://api.synfutures.com/v3/public/perp/market/instrument',\n config: { params: { chainId, address: instrumentAddr } },\n });\n if (res?.data?.data) {\n const data = bigNumberObjectCheck(res.data.data);\n const amms = data.amms;\n return {\n ...data,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n amms: amms.reduce((map: any, amm: any) => {\n map.set(amm.expiry, amm);\n return map;\n }, new Map()),\n };\n }\n return null;\n },\n 0,\n);\n\nexport const fetchFuturesPairInfo = async ({\n chainId,\n address,\n expiry,\n}: {\n chainId: number;\n address: string;\n expiry: number;\n}): Promise => {\n const res = await axiosGet({\n url: 'https://api.synfutures.com/v3/public/perp/market/pairInfo',\n config: { params: { chainId, address, expiry } },\n });\n if (res?.data?.data) {\n const p = res?.data?.data;\n const isInverse = p.isInverse;\n return {\n ...p,\n chainId: chainId,\n id: getPairId(p.instrumentAddress, p.expiry),\n fairPrice: WrappedBigNumber.from(p.fairPrice),\n markPrice: WrappedBigNumber.from(p.markPrice),\n fairPriceChange24h: WrappedBigNumber.from(p.fairPriceChange24h),\n markPriceChange24h: WrappedBigNumber.from(p.fairPriceChange24h),\n liquidityApy: WrappedBigNumber.from(p.liquidityApy),\n volume24h: WrappedBigNumber.from(p.volume24h),\n openInterests: WrappedBigNumber.from(p.openInterests),\n tvl: WrappedBigNumber.from(p.tvl),\n volume24hUsd: WrappedBigNumber.from(p.volume24hUsd),\n tvlUsd: WrappedBigNumber.from(p.tvlUsd),\n effectLiqTvl: WrappedBigNumber.from(p.effectLiqTvl),\n openInterestsUsd: WrappedBigNumber.from(p.openInterestsUsd),\n isInverse,\n longOi: WrappedBigNumber.from(p.longOi),\n shortOi: WrappedBigNumber.from(p.shortOi),\n _1hPeriodsFunding: {\n long: WrappedBigNumber.from(p._1hPeriodsFunding.long),\n short: WrappedBigNumber.from(p._1hPeriodsFunding.short),\n },\n _1hLastFunding: {\n long: WrappedBigNumber.from(p._1hLastFunding.long),\n short: WrappedBigNumber.from(p._1hLastFunding.short),\n },\n poolFee24h: WrappedBigNumber.from(p.poolFee24h),\n };\n }\n return null;\n};\n\nexport const fetchFuturesPairOrderBook = debounceRequest(\n async ({\n chainId,\n address,\n expiry,\n sdk,\n }: {\n chainId: number;\n address: string;\n expiry: number;\n sdk: Context;\n }): Promise => {\n const res = await axiosGet({\n url: 'https://api.synfutures.com/v3/public/perp/market/orderBook',\n config: { params: { chainId, address, expiry } },\n });\n\n if (res?.data?.data) {\n const data = bigNumberObjectCheck(res.data.data);\n const newData = _.reduce(\n data,\n (acc, depth, key) => {\n depth.tick2Pearl = _.reduce(\n depth.tick2Pearl,\n (acc, value, key) => {\n acc.set(Number(key), { liquidityNet: value[0], left: value[1] });\n return acc;\n },\n new Map() as Map,\n );\n\n const depthData = sdk.perpDataSource.depth.getDepthDataByLiquidityDetails(\n depth,\n depth.size,\n depth.tickDelta,\n // depth?.isInverse,\n );\n if (depth.isInverse) {\n const temp = depthData.left;\n depthData.left = depthData.right.map((d) => {\n return { ...d, price: getAdjustTradePrice(d.price, depth.isInverse).toNumber() };\n });\n depthData.right = temp.map((d) => {\n return { ...d, price: getAdjustTradePrice(d.price, depth.isInverse).toNumber() };\n });\n }\n\n acc[key] = depthData;\n return acc;\n },\n {} as Record,\n );\n\n return newData;\n }\n return null;\n },\n 0,\n);\n\nexport const fetchFuturesPairDepthChart = debounceRequest(\n async ({\n chainId,\n address,\n expiry,\n sdk,\n }: {\n chainId: number;\n address: string;\n expiry: number;\n sdk: Context;\n }): Promise => {\n const res = await axiosGet({\n url: 'https://api.synfutures.com/v3/public/perp/market/depth',\n config: { params: { chainId, address, expiry } },\n });\n if (res?.data?.data) {\n const data = bigNumberObjectCheck(res.data.data);\n data.tick2Pearl = _.reduce(\n data.tick2Pearl,\n (acc, value, key) => {\n acc.set(Number(key), { liquidityNet: value[0], left: value[1] });\n return acc;\n },\n new Map() as Map,\n );\n\n const newData = sdk.perpDataSource.depth.getDepthRangeDataByLiquidityDetails(\n data,\n data.size,\n data.stepRatio,\n data?.isInverse,\n );\n if (data.isInverse) {\n const temp = newData.left;\n newData.left = newData.right.map((d) => {\n return { ...d, price: getAdjustTradePrice(d.price, data.isInverse).toNumber() };\n });\n newData.right = temp.map((d) => {\n return { ...d, price: getAdjustTradePrice(d.price, data.isInverse).toNumber() };\n });\n }\n\n return newData;\n }\n return null;\n },\n 0,\n);\n\nexport const fetchFuturesPairFundingChart = debounceRequest(\n async ({\n chainId,\n address,\n expiry,\n chartDuration,\n }: {\n chainId: number;\n address: string;\n expiry: number;\n chartDuration: FundingChartInterval;\n }): Promise => {\n const res = await axiosGet({\n url: 'https://api.synfutures.com/v3/public/perp/market/funding',\n config: { params: { chainId, address, expiry, type: chartDuration } },\n });\n\n if (res?.data?.data) {\n const dataSource: IFundingChart[] = res?.data?.data.map((d: IFuturesFundingRateData) => {\n return {\n ...d,\n };\n });\n // if (pair.isInverse) {\n // dataSource = dataSource.map((d) => {\n // return { ...d, longFundingRate: d.shortFundingRate, shortFundingRate: d.longFundingRate };\n // });\n // }\n return dataSource.map((d) => {\n const isLongPay = d.longFundingRate < 0;\n return {\n ...d,\n payRate: WrappedBigNumber.from(isLongPay ? d.longFundingRate : d.shortFundingRate),\n receiveRate: WrappedBigNumber.from(isLongPay ? d.shortFundingRate : d.longFundingRate),\n isLongPay: isLongPay,\n };\n });\n }\n return null;\n },\n 0,\n);\n\nexport const fetchFuturesPairKlineChart = debounceRequest(\n async ({\n chainId,\n instrumentAddr,\n expiry,\n chartDuration,\n timeEnd,\n }: {\n chainId: number;\n instrumentAddr: string;\n expiry: number;\n chartDuration: KlineInterval;\n timeEnd?: number;\n }): Promise => {\n timeEnd = timeEnd || Math.floor(Date.now() / 1000);\n // fetch 1 more minute data to avoid the last candle tick error\n let utcEnd = moment(timeEnd * 1000).second(0);\n const utcNow = moment(timeEnd * 1000);\n let startTs = utcNow.unix();\n const TIME_NUMBERS = 120;\n if (chartDuration === KlineInterval.DAY) {\n startTs = utcNow.add(-TIME_NUMBERS, 'day').unix();\n utcEnd = utcEnd.add(1, 'day');\n } else if (chartDuration === KlineInterval.WEEK) {\n startTs = utcNow.add(-TIME_NUMBERS * 7, 'day').unix();\n utcEnd = utcEnd.add(7, 'day');\n } else if (chartDuration === KlineInterval.MINUTE) {\n startTs = utcNow.add(-TIME_NUMBERS, 'minutes').unix();\n utcEnd = utcEnd.add(1, 'minutes');\n } else if (chartDuration === KlineInterval.FIVE_MINUTE) {\n startTs = utcNow.add(-TIME_NUMBERS * 5, 'minutes').unix();\n utcEnd = utcEnd.add(5, 'minutes');\n } else if (chartDuration === KlineInterval.FIFTEEN_MINUTE) {\n startTs = utcNow.add(-TIME_NUMBERS * 15, 'minutes').unix();\n utcEnd = utcEnd.add(15, 'minutes');\n } else if (chartDuration === KlineInterval.THIRTY_MINUTE) {\n startTs = utcNow.add(-TIME_NUMBERS * 30, 'minutes').unix();\n utcEnd = utcEnd.add(30, 'minutes');\n } else if (chartDuration === KlineInterval.HOUR) {\n startTs = utcNow.add(-TIME_NUMBERS, 'hours').unix();\n utcEnd = utcEnd.add(1, 'hours');\n } else if (chartDuration === KlineInterval.FOUR_HOUR) {\n startTs = utcNow.add(-TIME_NUMBERS * 4, 'hours').unix();\n utcEnd = utcEnd.add(4, 'hours');\n }\n\n const endTs = utcEnd.unix();\n\n const res = await axiosGet({\n url: `https://api.synfutures.com/v3/public/perp/market/kline`,\n config: {\n params: {\n chainId,\n instrument: instrumentAddr,\n expiry,\n interval: chartDuration,\n startTs,\n endTs,\n },\n },\n });\n let data = res?.data?.data;\n\n // remove the last tick with 0 volume\n if (data.length && data.length >= 2) {\n const last = data[data.length - 1];\n if (last.baseVolume === 0) {\n data = data.slice(0, data.length - 1);\n }\n }\n return data;\n },\n 0,\n);\n","import { QUERY_KEYS } from '@/constants/query';\nimport { IFuturesOrderBookAllSteps } from '@/types/futures';\nimport { FundingChartInterval, KlineInterval } from '@synfutures/sdks-perp-datasource';\nimport { useQuery } from '@tanstack/react-query';\nimport { useSDK } from '../web3/hook';\nimport {\n fetchFuturesInstrument,\n fetchFuturesPairDepthChart,\n fetchFuturesPairFundingChart,\n fetchFuturesPairInfo,\n fetchFuturesPairKlineChart,\n fetchFuturesPairOrderBook,\n fetchInstrumentFromChain,\n} from './api';\n\nexport const useFetchFuturesInstrument = (chainId: number | undefined, instrumentAddr: string | undefined) => {\n const sdk = useSDK(chainId);\n return useQuery({\n queryKey: QUERY_KEYS.FUTURES.INSTRUMENT(chainId, instrumentAddr),\n queryFn: async () => {\n // const apiResult = chainId && instrumentAddr && (await fetchFuturesInstrument(chainId, instrumentAddr));\n // if (!apiResult && sdk && instrumentAddr) {\n // return fetchInstrumentFromChain(sdk, instrumentAddr);\n // }\n // return apiResult;\n\n if (chainId && instrumentAddr)\n try {\n // First try to get from API\n const apiResult = await fetchFuturesInstrument(chainId, instrumentAddr);\n return apiResult;\n } catch (apiError) {\n console.warn('API request failed, falling back to chain:', apiError);\n try {\n if (sdk) {\n // If API fails, fall back to chain request\n const chainResult = await fetchInstrumentFromChain(sdk, instrumentAddr);\n return chainResult;\n }\n } catch (chainError) {\n console.error('Both API and chain requests failed:', chainError);\n throw new Error('Failed to fetch instrument from both API and chain');\n }\n }\n },\n enabled: !!chainId && !!instrumentAddr,\n });\n};\n\nexport const useFetchFuturesPairInfo = (\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n enabled = true,\n) => {\n // const { setMarketPairInfo } = useMarketPairInfoStore();\n const pairInfoRes = useQuery({\n queryKey: QUERY_KEYS.FUTURES.PAIR_INFO(chainId, instrumentAddr, expiry),\n queryFn: async () =>\n chainId && instrumentAddr && expiry && fetchFuturesPairInfo({ chainId, address: instrumentAddr, expiry }),\n enabled: !!chainId && !!instrumentAddr && !!expiry && enabled,\n });\n\n // useEffect(() => {\n // if (pairInfoRes?.data) {\n // setMarketPairInfo(pairInfoRes.data.chainId, pairInfoRes.data);\n // }\n // }, [pairInfoRes.data, setMarketPairInfo]);\n\n return pairInfoRes;\n};\n\nexport const useFetchFuturesOrderbook = (\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n stepRatio?: number,\n) => {\n const sdk = useSDK(chainId);\n return useQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.FUTURES.ORDER_BOOK(chainId, instrumentAddr, expiry, stepRatio),\n queryFn: async () => {\n if (chainId && instrumentAddr && expiry && sdk)\n try {\n // First try to get from API\n const apiResult = await fetchFuturesPairOrderBook({ chainId, address: instrumentAddr, expiry, sdk });\n return apiResult;\n } catch (apiError) {\n console.warn('API request failed, falling back to chain:', apiError);\n try {\n if (sdk && stepRatio) {\n // If API fails, fall back to chain request\n const chainResult = await sdk.perpDataSource.depth.getDepthData(instrumentAddr, expiry, stepRatio);\n const result: IFuturesOrderBookAllSteps = {};\n result[stepRatio] = chainResult;\n return result;\n }\n } catch (chainError) {\n console.error('Both API and chain requests failed:', chainError);\n throw new Error('Failed to fetch instrument from both API and chain');\n }\n }\n },\n enabled: !!chainId && !!instrumentAddr && !!expiry && !!stepRatio && !!sdk,\n });\n};\n\nexport const useFetchFuturesDepthChart = (\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n) => {\n const sdk = useSDK(chainId);\n return useQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.FUTURES.DEPTH_CHARTS(chainId, instrumentAddr, expiry),\n queryFn: async () =>\n chainId &&\n instrumentAddr &&\n expiry &&\n sdk &&\n fetchFuturesPairDepthChart({ chainId, address: instrumentAddr, expiry, sdk }),\n enabled: !!chainId && !!instrumentAddr && !!expiry && !!sdk,\n });\n};\n\nexport const useFetchFuturesFundingChart = (\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n chartDuration: FundingChartInterval | undefined,\n) => {\n return useQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.FUTURES.FUNDING_CHARTS(chainId, instrumentAddr, expiry, chartDuration),\n queryFn: async () =>\n chainId &&\n instrumentAddr &&\n expiry &&\n chartDuration &&\n fetchFuturesPairFundingChart({ chainId, address: instrumentAddr, expiry, chartDuration }),\n enabled: !!chainId && !!instrumentAddr && !!expiry && !!chartDuration,\n });\n};\n\nexport const useFetchFuturesKlineChart = ({\n chainId,\n instrumentAddr,\n expiry,\n chartDuration,\n timeEnd,\n}: {\n chainId?: number;\n instrumentAddr?: string;\n expiry?: number;\n chartDuration?: KlineInterval;\n timeEnd?: number;\n}) => {\n return useQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.FUTURES.KLINE_CHARTS({\n chainId,\n instrumentAddr,\n expiry,\n chartDuration,\n timeEnd,\n }),\n queryFn: async () =>\n chainId &&\n instrumentAddr &&\n expiry &&\n chartDuration &&\n fetchFuturesPairKlineChart({\n chainId,\n instrumentAddr,\n expiry,\n chartDuration,\n timeEnd,\n }),\n enabled: !!chainId && !!instrumentAddr && !!expiry && !!chartDuration,\n });\n};\n","export interface IRetryOptions {\n n: number;\n minWait: number;\n maxWait: number;\n}\n\nfunction wait(ms: number): Promise {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nfunction waitRandom(min: number, max: number): Promise {\n return wait(min + Math.round(Math.random() * Math.max(0, max - min)));\n}\n\nexport type RetryError = {\n code: number;\n message: string;\n};\nexport type ShouldTryFn = (error: RetryError) => boolean;\n/**\n * This error is thrown if the function is cancelled before completing\n */\nexport class CancelledError extends Error {\n public isCancelledError: true = true as const;\n constructor() {\n super('Cancelled');\n }\n}\n\n/**\n * Throw this error if the function should retry\n */\nexport class RetryableError extends Error {\n code!: number;\n public isRetryableError: true = true as const;\n}\n\nexport const shouldRetryFunction = (err: RetryError): boolean => {\n return [-32015].includes(err?.code) || err.message.indexOf('-32005') > -1 || err.message.includes('header not found');\n};\n\n/**\n * Retries the function that returns the promise until the promise successfully resolves up to n retries\n * @param fn function to retry\n * @param n how many times to retry\n * @param minWait min wait between retries in ms\n * @param maxWait max wait between retries in ms\n * @param shouldRetryFn, if presents, determines whether fn should be retried\n */\nexport function retry(\n fn: Promise,\n { n, minWait, maxWait }: IRetryOptions,\n shouldRetryFn?: ShouldTryFn,\n): { promise: Promise; cancel: () => void } {\n let completed = false;\n let rejectCancelled: (error: Error) => void;\n const promise = new Promise(async (resolve, reject) => {\n rejectCancelled = reject;\n while (true) {\n let result: T;\n try {\n result = await fn;\n if (!completed) {\n resolve(result);\n completed = true;\n }\n break;\n } catch (error) {\n const err = error as RetryableError;\n\n if (completed) {\n break;\n }\n n--;\n // Stop trying if one of the conditions meets\n // 1: Tried 3 times already\n // 2: When there is shouldTryFun and the shouldTryFun returns false\n if (n <= 0 || !err.isRetryableError || (shouldRetryFn && !shouldRetryFn(err))) {\n reject(error);\n completed = true;\n break;\n }\n }\n await waitRandom(minWait, maxWait);\n }\n });\n return {\n promise,\n cancel: () => {\n if (completed) return;\n completed = true;\n rejectCancelled(new CancelledError());\n },\n };\n}\n\nexport function retryWeb3(\n fn: Promise,\n shouldTryFn: ShouldTryFn = shouldRetryFunction,\n): { promise: Promise; cancel: () => void } {\n return retry(\n fn,\n {\n n: 3,\n minWait: 100,\n maxWait: 500,\n },\n shouldTryFn,\n );\n}\n\nexport function retryWeb3Promise(fn: Promise, shouldTryFn?: ShouldTryFn): Promise {\n return retryWeb3(fn, shouldTryFn).promise;\n}\n\nexport function retryGeneralPromise(fn: Promise, times = 3): Promise {\n return retry(fn, {\n n: times,\n minWait: 300,\n maxWait: 1000,\n }).promise;\n}\n\nexport function retryWhenTimeout(fn: Promise, timeout = 5000, retry = 3): Promise {\n const timer = new Promise((_, reject) => {\n setTimeout(() => {\n reject(new RetryableError('Time out'));\n }, timeout);\n });\n\n return retryGeneralPromise(Promise.race([fn, timer]) as Promise, retry);\n}\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\n\nimport { retryWhenTimeout } from '@/utils/retry';\n\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { checkAccountIsInPair } from '@/utils/account';\nimport { saveParticipatedPairsToLocalForage } from '@/utils/storage';\nimport { Context } from '@derivation-tech/context';\nimport { FetchInstrumentParam, FetchPortfolioParam, Instrument, Portfolio } from '@synfutures/sdks-perp';\n\nexport const syn_getAllFutures = createAsyncThunk(\n 'syn/syn_getAllFutures',\n async ({\n chainId,\n blockNumber,\n sdkContext,\n }: {\n chainId: CHAIN_ID;\n blockNumber?: number;\n sdkContext: Context;\n }): Promise => {\n const chainConfig = DAPP_CHAIN_CONFIGS[chainId];\n\n try {\n if (sdkContext && chainConfig) {\n const instrumentList = await retryWhenTimeout(sdkContext.perp.observer.getAllInstruments(), 30000);\n console.record(\n 'syn',\n `Query [syn_getAllFutures] ${!blockNumber ? '' : `with blockNumber ${blockNumber}`}`,\n instrumentList,\n {\n chainId,\n },\n );\n return instrumentList;\n }\n } catch (error) {\n console.error('🚀 ~ error syn_getAllFutures:', error);\n }\n return undefined;\n },\n);\n\nexport const syn_getFuturesByAddress = createAsyncThunk(\n 'syn/syn_getFuturesByAddress',\n async ({\n chainId,\n blockNumber,\n sdkContext,\n params,\n }: {\n chainId: CHAIN_ID;\n blockNumber?: number;\n sdkContext: Context;\n params: FetchInstrumentParam[];\n }): Promise => {\n const chainConfig = DAPP_CHAIN_CONFIGS[chainId];\n\n try {\n if (sdkContext && chainConfig) {\n const instrumentList = await retryWhenTimeout(sdkContext.perp.observer.getInstrument(params), 15000);\n console.record(\n 'syn',\n `Query [syn_getFuturesByAddress] ${!blockNumber ? '' : `with blockNumber ${blockNumber}`}`,\n instrumentList,\n {\n chainId,\n },\n );\n return instrumentList;\n }\n } catch (error) {\n console.error('🚀 ~ error syn_getFuturesByAddress:', error);\n }\n return undefined;\n },\n);\n\nexport const syn_getPortfolioList = createAsyncThunk(\n 'syn/getPortfolioList',\n async ({\n chainId,\n userAddr,\n blockNumber,\n sdkContext,\n instruments,\n portfolioParams,\n }: {\n chainId: CHAIN_ID;\n userAddr: string;\n blockNumber?: number;\n sdkContext: Context;\n instruments?: Instrument[];\n portfolioParams?: FetchPortfolioParam[];\n }): Promise => {\n if (sdkContext) {\n if (instruments) {\n portfolioParams = instruments.reduce((acc, instrument) => {\n instrument.amms.forEach((amm) => {\n acc.push({\n traderAddr: userAddr,\n instrumentAddr: instrument.instrumentAddr,\n expiry: amm.expiry,\n });\n });\n\n return acc;\n }, [] as FetchPortfolioParam[]);\n }\n if (!portfolioParams) return;\n const accountList = await retryWhenTimeout(sdkContext.perp.observer.getPortfolio(portfolioParams));\n if (accountList && accountList?.length) {\n const participatedPairs = accountList\n ?.filter(\n (p) =>\n checkAccountIsInPair({ position: p.position }) ||\n checkAccountIsInPair({ orders: Array.from(p.orders.values()) }) ||\n checkAccountIsInPair({ ranges: Array.from(p.ranges.values()) }),\n )\n .map((account) => ({\n instrumentAddr: account.instrumentAddr,\n expiry: account.expiry,\n }));\n await saveParticipatedPairsToLocalForage(participatedPairs, userAddr, chainId);\n } else if (accountList && (accountList as unknown as Portfolio)?.instrumentAddr) {\n return [accountList as unknown as Portfolio];\n }\n\n console.record(\n 'syn',\n `Query [getPortfolioList] ${!blockNumber ? '' : `with blockNumber ${blockNumber}`}`,\n accountList,\n {\n chainId,\n userAddr,\n },\n );\n\n return accountList;\n }\n return undefined;\n },\n);\n","import { createAction, createAsyncThunk } from '@reduxjs/toolkit';\nimport { FetchInstrumentParam, MarketType } from '@synfutures/sdks-perp';\nimport { BigNumber } from 'ethers';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { IInstrumentRecord, IMetaInstrument } from '@/types/pair';\nimport { ISpotState } from '@/types/spot';\nimport { BlockyResult, WorkerEventNames } from '@/types/worker';\nimport { bigNumberObjectCheck } from '@/utils';\nimport { reduceFutures } from '@/utils/pair';\n// import { MySDK } from '@/types/sdk';\n\n// import { getWrappedSynWorker } from '@/worker/factory';\n// import { ChainSynWorker } from '@/worker/SynWorker';\n// import { fillEmptyAccount } from '../account/actions';\nimport { Context } from '@derivation-tech/context';\nimport { Instrument } from '@synfutures/sdks-perp';\nimport { syn_getAllFutures } from '../syn/action';\n\nexport const setFuturesCore = createAction<{\n chainId: CHAIN_ID;\n underlyingId: string;\n underlying: Partial;\n}>('futures/setFuturesCore');\n\nexport const getAllFuturesFromChain = createAsyncThunk(\n 'futures/getAllFuturesFromChain',\n async (\n {\n chainId,\n sdkContext,\n }: // marginType,\n {\n chainId: CHAIN_ID;\n userAddr: string;\n // marginType: MARGIN_TYPE;\n sdkContext: Context;\n },\n { dispatch },\n ): Promise => {\n try {\n const instrumentList = await dispatch(syn_getAllFutures({ chainId, sdkContext })).unwrap();\n instrumentList && dispatch(parseInstrumentToMeta({ chainId, instrumentList }));\n return instrumentList;\n } catch (error) {\n console.error('🚀 ~ error:', error);\n }\n },\n);\n\nexport const parseInstrumentToMeta = createAsyncThunk(\n 'futures/parseInstrumentToMeta',\n async ({\n chainId,\n instrumentList,\n }: {\n chainId: CHAIN_ID;\n instrumentList: Instrument[];\n }): Promise => {\n if (instrumentList) {\n const instrumentMap = instrumentList.reduce((acc, futures) => {\n acc[futures.instrumentAddr.toLowerCase()] = futures;\n return acc;\n }, {} as Record);\n\n if (instrumentMap) {\n const futuresRecords = reduceFutures(chainId, bigNumberObjectCheck(instrumentMap));\n // dispatch(fillEmptyAccount({ chainId, futuresRecords, userAddr }));\n return futuresRecords;\n }\n }\n },\n);\n\nexport const updateFuturesFromChain = createAsyncThunk(\n 'futures/updateFuturesFromChain',\n async ({\n futuresRecord,\n }: {\n chainId: CHAIN_ID;\n block: number;\n futuresRecord: IInstrumentRecord;\n }): Promise => {\n if (futuresRecord) {\n // const {\n // global: { chainTokenPriceInfo },\n // } = getState() as AppState;\n // let tokenPriceMap: TokenPriceInfoMap | undefined = undefined;\n // if (chainId) {\n // if (_.get(chainTokenPriceInfo, [chainId])) {\n // tokenPriceMap = _.get(chainTokenPriceInfo, [chainId]);\n // console.log('🚀 ~ tokenPriceMap:', tokenPriceMap);\n // }\n // }\n // const futuresRecord = reduceFutures(chainId, { [futures.info.addr.toLowerCase()]: futures }, tokenPriceMap);\n return futuresRecord;\n }\n },\n);\n\nexport const getInstrumentSpotTime = createAsyncThunk(\n 'futures/getInstrumentSpotTime',\n async ({\n chainId,\n instrumentAddr,\n blockNumber,\n marketType,\n }: {\n chainId: CHAIN_ID;\n instrumentAddr: string;\n marketType: MarketType;\n blockNumber?: number;\n }): Promise => {\n // just post message to worker\n window.synWorker.postMessage({\n eventName: WorkerEventNames.FetchInstrumentSpotState,\n data: {\n chainId,\n instrumentAddr,\n blockNumber,\n marketType,\n },\n });\n },\n);\n\nexport const updateInstrumentSpotStateMapFromChain = createAsyncThunk(\n 'futures/updateInstrumentSpotStateMapFromChain',\n async ({\n instrumentSpotStateMap,\n }: {\n chainId: CHAIN_ID;\n block: number;\n instrumentSpotStateMap: { [instrumentAddr: string]: BlockyResult }; // instrument address => spot state\n }): Promise<{ [instrumentAddr: string]: BlockyResult } | undefined> => {\n if (instrumentSpotStateMap) {\n return instrumentSpotStateMap;\n }\n },\n);\n\nexport const updateInstrumentSpotRawPriceMapFromChain = createAsyncThunk(\n 'futures/updateInstrumentSpotRawPriceMapFromChain',\n async ({\n instrumentSpotRawPriceMap,\n }: {\n chainId: CHAIN_ID;\n block: number;\n instrumentSpotRawPriceMap: { [instrumentAddr: string]: BlockyResult }; // instrument address => spot state\n }): Promise<{ [instrumentAddr: string]: BlockyResult } | undefined> => {\n if (instrumentSpotRawPriceMap) {\n return instrumentSpotRawPriceMap;\n }\n },\n);\n\nexport const batchPairsFromChain = createAsyncThunk(\n 'futures/batchPairsFromChain',\n async ({\n chainId,\n params,\n blockNumber,\n }: {\n chainId: CHAIN_ID;\n params: FetchInstrumentParam[];\n blockNumber?: number;\n }) => {\n // just post message to worker\n window.synWorker.postMessage({\n eventName: WorkerEventNames.BatchPairs,\n data: {\n chainId,\n params,\n blockNumber,\n },\n });\n },\n);\n","import { createSlice } from '@reduxjs/toolkit';\nimport { BigNumber } from 'ethers';\nimport _ from 'lodash';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { IMetaInstrument } from '@/types/pair';\nimport { getDefaultListStatus, ListStatus, setFulfilledListStatus } from '@/types/redux';\nimport { ISpotState } from '@/types/spot';\nimport {} from '@/types/trade';\nimport { BlockyResult } from '@/types/worker';\n\nimport { AppState } from '../store';\nimport {\n parseInstrumentToMeta,\n setFuturesCore,\n updateFuturesFromChain,\n updateInstrumentSpotRawPriceMapFromChain,\n updateInstrumentSpotStateMapFromChain,\n} from './actions';\n\nexport interface IFuturesState {\n chainMetaFutures: {\n [chainID: number]: ListStatus;\n };\n chainInstrumentSpotStateMap: {\n [chainID: number]: { [instrumentAddr: string]: BlockyResult };\n };\n chainInstrumentSpotRawPriceMap: {\n [chainID: number]: { [instrumentAddr: string]: BlockyResult };\n };\n}\n\nconst initialState: IFuturesState = {\n chainMetaFutures: {},\n chainInstrumentSpotStateMap: {},\n chainInstrumentSpotRawPriceMap: {},\n};\n\nexport const futuresSlice = createSlice({\n name: 'trade',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(setFuturesCore, (state, { payload }) => {\n const underlying = _.get(state.chainMetaFutures, [payload.chainId, 'list', payload.underlyingId]);\n _.set(\n state.chainMetaFutures,\n [payload.chainId, 'list', payload.underlyingId],\n _.merge({}, underlying, payload.underlying),\n );\n })\n .addCase(parseInstrumentToMeta.pending, (state, action) => {\n const { arg } = action.meta;\n if (!state.chainMetaFutures[arg.chainId]) {\n state.chainMetaFutures[arg.chainId] = getDefaultListStatus(FETCHING_STATUS.FETCHING);\n }\n })\n .addCase(parseInstrumentToMeta.fulfilled, (state, action) => {\n const { arg } = action.meta;\n let futuresRes = {} as Record;\n if (action.payload) {\n const { futuresMap, blockInfo } = action.payload;\n\n const futuresStates = _.get(state.chainMetaFutures, [arg.chainId, 'list']);\n if (futuresStates?.length) {\n const topFutures = Object.values(futuresStates)[0];\n // if the block height is lower than the current block height, we don't need to update the state\n if ((topFutures?.blockInfo?.height || 0) > (blockInfo?.height || 0)) {\n return;\n }\n }\n\n futuresRes = _.merge({}, futuresStates, futuresMap);\n }\n _.set(state.chainMetaFutures, [arg.chainId], setFulfilledListStatus(futuresRes));\n })\n .addCase(parseInstrumentToMeta.rejected, (state, action) => {\n const { arg } = action.meta;\n _.set(state.chainMetaFutures, [arg.chainId, 'status'], FETCHING_STATUS.DONE);\n })\n .addCase(updateFuturesFromChain.fulfilled, (state, action) => {\n const { arg } = action.meta;\n let futuresRes = {} as Record;\n if (action.payload) {\n const { futuresMap, blockInfo } = action.payload;\n\n const futuresStates = _.get(state.chainMetaFutures, [arg.chainId, 'list']);\n if (futuresStates?.length) {\n const topFutures = Object.values(futuresStates)[0];\n // if the block height is lower than the current block height, we don't need to update the state\n if ((topFutures?.blockInfo?.height || 0) > (blockInfo?.height || 0)) {\n return;\n }\n }\n\n futuresRes = _.merge({}, futuresStates, futuresMap);\n }\n _.set(state.chainMetaFutures, [arg.chainId], setFulfilledListStatus(futuresRes));\n })\n .addCase(updateInstrumentSpotStateMapFromChain.fulfilled, (state, action) => {\n const { arg } = action.meta;\n if (action.payload) {\n const instrumentSpotStateMap = action.payload;\n const spotStateMap = _.get(state.chainInstrumentSpotStateMap, [arg.chainId], {});\n _.set(state.chainInstrumentSpotStateMap, [arg.chainId], _.merge({}, spotStateMap, instrumentSpotStateMap));\n }\n })\n .addCase(updateInstrumentSpotRawPriceMapFromChain.fulfilled, (state, action) => {\n const { arg } = action.meta;\n if (action.payload) {\n const instrumentSpotRawPriceMap = action.payload;\n const spotRawPriceMap = _.get(state.chainInstrumentSpotRawPriceMap, [arg.chainId], {});\n _.set(\n state.chainInstrumentSpotRawPriceMap,\n [arg.chainId],\n _.merge({}, spotRawPriceMap, instrumentSpotRawPriceMap),\n );\n }\n });\n },\n});\n\nexport const selectChainMetaFutures =\n (chainId: number | undefined) =>\n (state: AppState): Record =>\n _.get(state.futures.chainMetaFutures, [chainId || '', 'list'], {});\n\nexport const selectChainMetaFuturesStatus =\n (chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS | undefined =>\n _.get(state.futures.chainMetaFutures, [chainId || '', 'status']);\n\nexport const selectInstrumentSpotState =\n (chainId: number | undefined, instrumentAddr: string | undefined) =>\n (state: AppState): BlockyResult =>\n _.get(state.futures.chainInstrumentSpotStateMap, [chainId || '', instrumentAddr || '']);\n\nexport const selectInstrumentSpotRawPrice =\n (chainId: number | undefined, instrumentAddr: string | undefined) =>\n (state: AppState): BlockyResult =>\n _.get(state.futures.chainInstrumentSpotRawPriceMap, [chainId || '', instrumentAddr || '']);\n\nexport default futuresSlice.reducer;\n","import _ from 'lodash';\nimport { useEffect, useMemo } from 'react';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedInstrument } from '@/entities/WrappedInstrument';\nimport { useAppSelector } from '@/hooks';\nimport { IMetaInstrument } from '@/types/pair';\nimport { ISpotState } from '@/types/spot';\n\nimport { QUERY_KEYS } from '@/constants/query';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport useSocket from '@/hooks/useSocket';\nimport { queryClient } from '@/pages/App';\nimport { IFuturesOrderBook } from '@/types/futures';\nimport { MESSAGE_TYPE, SUBSCRIBE_TYPE, UNSUBSCRIBE_TYPE } from '@/types/socket';\nimport { transformData } from '@/utils/chart';\nimport { transformToMetaFutures, transformToMetaPair } from '@/utils/transform/pair';\nimport { getPairId } from '@/utils/transform/transformId';\nimport { FundingChartInterval, KlineInterval } from '@synfutures/sdks-perp-datasource';\nimport { useTokenPrices } from '../global/query';\nimport { useMarketList } from '../market/hooks';\nimport { useCurrentNewPairFromUrl } from '../pair/hook';\nimport { useStepRatio } from '../trade/hooks';\nimport {\n useFetchFuturesDepthChart,\n useFetchFuturesFundingChart,\n useFetchFuturesInstrument,\n useFetchFuturesKlineChart,\n useFetchFuturesOrderbook,\n useFetchFuturesPairInfo,\n} from './query';\nimport { selectChainMetaFutures, selectInstrumentSpotRawPrice, selectInstrumentSpotState } from './slice';\n\nexport function useMetaFuturesMap(chainId: CHAIN_ID | undefined): { [instrumentId: string]: IMetaInstrument } {\n const chainMetaInstruments = useAppSelector(selectChainMetaFutures(chainId));\n\n return useMemo(() => {\n return chainMetaInstruments || {};\n }, [chainMetaInstruments]);\n}\n\nexport function useWrappedInstrument(\n chainId: CHAIN_ID | undefined,\n instrumentId: string | undefined,\n): WrappedInstrument | undefined {\n const instrumentMap = useMetaFuturesMap(chainId);\n return useMemo(() => {\n if (!chainId || !instrumentId) return undefined;\n const origin = instrumentMap[instrumentId];\n if (origin) {\n const futures = WrappedInstrument.getInstance(origin.id, chainId);\n if (!futures) {\n return WrappedInstrument.wrapInstance({ metaFutures: origin, chainId });\n } else {\n futures.fillField(origin);\n }\n return futures;\n }\n return undefined;\n }, [chainId, instrumentMap, instrumentId]);\n}\n\nexport function useWrappedInstrumentMap(chainId: CHAIN_ID | undefined): { [instrumentId: string]: WrappedInstrument } {\n const instrumentsMap = useMetaFuturesMap(chainId);\n const { data: tokenPriceMap } = useTokenPrices({ chainId });\n\n return useMemo(() => {\n if (!chainId) return {};\n return _.mapValues(instrumentsMap, (origin) => {\n const futures = WrappedInstrument.getInstance(origin.id, chainId);\n if (!futures) {\n return WrappedInstrument.wrapInstance({ metaFutures: origin, chainId });\n } else {\n futures.fillField(origin);\n }\n if (tokenPriceMap) {\n const quote = futures.quoteToken;\n const quotePriceInfo = tokenPriceMap[quote.address];\n if (quotePriceInfo) {\n futures.setQuotePrice(quotePriceInfo);\n }\n }\n return futures;\n });\n }, [chainId, instrumentsMap, tokenPriceMap]);\n}\n\nexport function useInstrumentSpotState(\n chainId: CHAIN_ID | undefined,\n instrumentAddr: string | undefined,\n): ISpotState | undefined {\n const instrumentSpotState = useAppSelector(selectInstrumentSpotState(chainId, instrumentAddr));\n\n return useMemo(() => {\n if (instrumentSpotState) return instrumentSpotState.data;\n }, [instrumentSpotState]);\n}\n\nexport function useInstrumentSpotRawPrice(\n chainId: CHAIN_ID | undefined,\n instrumentAddr: string | undefined,\n): WrappedBigNumber | undefined {\n const instrumentSpotPriceInfo = useAppSelector(selectInstrumentSpotRawPrice(chainId, instrumentAddr));\n\n return useMemo(() => {\n if (instrumentSpotPriceInfo) return WrappedBigNumber.from(instrumentSpotPriceInfo.data);\n }, [instrumentSpotPriceInfo]);\n}\n\nexport const useMarketPairInfo = (\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n enabled = true,\n) => {\n const { marketPairList } = useMarketList(chainId ? [chainId] : undefined);\n const { data: pairInfo } = useFetchFuturesPairInfo(chainId, instrumentAddr, expiry, enabled);\n\n return useMemo(() => {\n if (pairInfo) {\n return pairInfo;\n }\n if (marketPairList && instrumentAddr && expiry) {\n const pair = marketPairList.find((p) => p.instrumentAddress === instrumentAddr && p.expiry === expiry);\n return pair;\n }\n return undefined;\n }, [expiry, instrumentAddr, marketPairList, pairInfo]);\n};\n\nexport const useIsFetchedPairInfo = (\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n includeNewPair = false,\n) => {\n const { isFetched } = useFetchFuturesPairInfo(chainId, instrumentAddr, expiry);\n\n const creativeNewPair = useCurrentNewPairFromUrl(chainId);\n return useMemo(() => {\n if (isFetched) {\n return isFetched;\n }\n\n if (includeNewPair && creativeNewPair?.id) return true;\n return false;\n }, [creativeNewPair?.id, includeNewPair, isFetched]);\n};\n\nexport function useMarketWrappedInstrument(chainId: number | undefined, instrumentAddr: string | undefined) {\n const { data: marketInstrument } = useFetchFuturesInstrument(chainId, instrumentAddr);\n return useMemo(() => {\n if (marketInstrument && chainId) {\n const metaFutures = transformToMetaFutures(marketInstrument, chainId);\n let wrappedInstrument = WrappedInstrument.getInstance(metaFutures.id, chainId);\n if (wrappedInstrument) wrappedInstrument.fillField(metaFutures);\n else wrappedInstrument = WrappedInstrument.wrapInstance({ metaFutures: metaFutures, chainId: chainId });\n if (wrappedInstrument && marketInstrument?.amms) {\n marketInstrument.amms.forEach((amm) => {\n const pairId = getPairId(amm.instrumentAddr, amm.expiry);\n let pair = WrappedPair.getInstance(pairId, chainId);\n const metaPair = transformToMetaPair({ amm, futures: marketInstrument });\n if (!pair) {\n if (wrappedInstrument) {\n pair = WrappedPair.wrapInstance({\n metaPair: metaPair,\n rootInstrument: wrappedInstrument,\n });\n pair && wrappedInstrument?.connectPair(pair.expiry, pair);\n }\n } else {\n pair.fillField(metaPair);\n }\n });\n }\n return wrappedInstrument;\n }\n }, [chainId, marketInstrument]);\n}\n\nexport const useIsFetchedInstrument = (chainId: number | undefined, instrumentAddr: string | undefined) => {\n const { isFetched } = useFetchFuturesInstrument(chainId, instrumentAddr);\n\n return isFetched;\n};\n\n/**\n * A hook that subscribes to market pair info changes via websocket\n * Listens for orderBook, depth, and instrument updates and invalidates corresponding queries\n *\n * @param chainId - The blockchain network ID\n * @param instrumentAddr - The address of the futures instrument\n */\nexport function useWatchMarketPairInfoChange(\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n): void {\n const { socket } = useSocket();\n const stepRatio = useStepRatio(chainId);\n\n useEffect(() => {\n if (!socket || !chainId || !instrumentAddr || !expiry) return;\n socket.emit(SUBSCRIBE_TYPE.PAIR_INFO, { chainId: chainId, address: instrumentAddr });\n\n socket.on(MESSAGE_TYPE.pairInfo, (data) => {\n console.record('event', MESSAGE_TYPE.pairInfo, data.type, data);\n if (data.type === 'orderBook') {\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.FUTURES.ORDER_BOOK(chainId, instrumentAddr, expiry, stepRatio),\n });\n } else if (data.type === 'depth') {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.FUTURES.DEPTH_CHARTS(chainId, instrumentAddr, expiry) });\n } else if (data.type === 'instrument') {\n setTimeout(() => {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.FUTURES.INSTRUMENT(chainId, instrumentAddr) });\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.FUTURES.PAIR_INFO(chainId, instrumentAddr, expiry),\n });\n }, 3000);\n } else if (data.type === 'info') {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.FUTURES.INSTRUMENT(chainId, instrumentAddr) });\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.FUTURES.PAIR_INFO(chainId, instrumentAddr, expiry),\n });\n }\n });\n\n return () => {\n socket.off(MESSAGE_TYPE.pairInfo);\n socket.emit(UNSUBSCRIBE_TYPE.PAIR_INFO, { chainId: chainId, address: instrumentAddr });\n };\n }, [chainId, expiry, instrumentAddr, socket]);\n}\n\nexport function useFuturesOrderBookWithStepRatio(\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n stepRatio: number | undefined,\n) {\n const { data: orderBook } = useFetchFuturesOrderbook(chainId, instrumentAddr, expiry, stepRatio);\n return useMemo(() => {\n if (orderBook && stepRatio) {\n return orderBook[stepRatio] ?? { left: [], right: [] };\n }\n return { left: [], right: [] } as IFuturesOrderBook;\n }, [orderBook, stepRatio]);\n}\n\nexport function useIsFetchedFuturesOrderBook(\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n stepRatio: number | undefined,\n) {\n const { isFetched } = useFetchFuturesOrderbook(chainId, instrumentAddr, expiry, stepRatio);\n\n return isFetched;\n}\n\nexport function useFuturesDepthChartsData(\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n) {\n const { data: depth } = useFetchFuturesDepthChart(chainId, instrumentAddr, expiry);\n\n return useMemo(() => {\n if (depth) {\n // const [left, right] = pair.isInverse ? [depth.right, depth.left] : [depth.left, depth.right];\n const [left, right] = [depth.left, depth.right];\n const leftReduced = transformData(left);\n const rightReduced = transformData(right);\n return {\n ...depth,\n left: leftReduced,\n right: rightReduced,\n };\n }\n }, [depth]);\n}\n\nexport function useIsFetchedFuturesDepthCharts(\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n) {\n const { isFetched } = useFetchFuturesDepthChart(chainId, instrumentAddr, expiry);\n\n return isFetched;\n}\n\nexport function useFuturesFundingChartsData(\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n chartDuration: FundingChartInterval | undefined,\n) {\n const { data: funding } = useFetchFuturesFundingChart(chainId, instrumentAddr, expiry, chartDuration);\n\n return useMemo(() => {\n if (funding) {\n return funding;\n }\n }, [funding]);\n}\n\nexport function useIsFetchedFuturesFundingCharts(\n chainId: number | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n chartDuration: FundingChartInterval | undefined,\n) {\n const { isFetched } = useFetchFuturesFundingChart(chainId, instrumentAddr, expiry, chartDuration);\n\n return isFetched;\n}\n\nexport function useFuturesKlineChartsData({\n chainId,\n instrumentAddr,\n expiry,\n chartDuration,\n timeEnd,\n}: {\n chainId?: number;\n instrumentAddr?: string;\n expiry?: number;\n chartDuration?: KlineInterval;\n timeEnd?: number;\n}) {\n const { data: funding } = useFetchFuturesKlineChart({\n chainId,\n instrumentAddr,\n expiry,\n chartDuration,\n timeEnd,\n });\n console.log('🚀 ~ funding:', funding);\n\n return useMemo(() => {\n if (funding) {\n return funding;\n }\n }, [funding]);\n}\n\nexport function useIsFetchedFuturesKlineCharts({\n chainId,\n instrumentAddr,\n expiry,\n chartDuration,\n timeEnd,\n}: {\n chainId?: number;\n instrumentAddr?: string;\n expiry?: number;\n chartDuration?: KlineInterval;\n timeEnd?: number;\n}) {\n const { isFetched } = useFetchFuturesKlineChart({\n chainId,\n instrumentAddr,\n expiry,\n chartDuration,\n timeEnd,\n });\n\n return isFetched;\n}\n","import { createSlice } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { IChainPairsFavorites, IMetaPair } from '@/types/pair';\nimport { ListStatus, getDefaultListStatus, setFulfilledListStatus } from '@/types/redux';\n\nimport { parseInstrumentToMeta, updateFuturesFromChain } from '../futures/actions';\nimport { AppState } from '../store';\nimport { setChainPairFavorites, setMetaPair } from './actions';\nexport interface IPairState {\n chainMetaPair: {\n [chainID: number]: ListStatus;\n };\n chainPairFavorites: IChainPairsFavorites;\n}\n\nconst initialState: IPairState = {\n chainMetaPair: {},\n chainPairFavorites: {},\n};\n\nexport const pairSlice = createSlice({\n name: 'pair',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(setChainPairFavorites, (state, { payload }) => {\n state.chainPairFavorites = payload;\n })\n .addCase(setMetaPair, (state, { payload }) => {\n const pair = _.get(state.chainMetaPair, [payload.chainId, 'list', payload.pairId]);\n _.set(state.chainMetaPair, [payload.chainId, 'list', payload.pairId], _.merge({}, pair, payload.pair));\n })\n .addCase(parseInstrumentToMeta.pending, (state, action) => {\n const { arg } = action.meta;\n if (!state.chainMetaPair[arg.chainId]) {\n state.chainMetaPair[arg.chainId] = getDefaultListStatus(FETCHING_STATUS.FETCHING);\n }\n })\n .addCase(parseInstrumentToMeta.fulfilled, (state, action) => {\n const { arg } = action.meta;\n let pairsRes = {};\n if (action.payload) {\n const { pairMap } = action.payload;\n pairsRes = _.merge({}, _.get(state.chainMetaPair, [arg.chainId, 'list']), pairMap);\n }\n\n _.set(state.chainMetaPair, [arg.chainId], setFulfilledListStatus(pairsRes));\n })\n .addCase(parseInstrumentToMeta.rejected, (state, action) => {\n const { arg } = action.meta;\n _.set(state.chainMetaPair, [arg.chainId, 'status'], FETCHING_STATUS.DONE);\n })\n .addCase(updateFuturesFromChain.fulfilled, (state, action) => {\n const { arg } = action.meta;\n let pairsRes = {} as Record;\n if (action.payload) {\n const { pairMap, blockInfo } = action.payload;\n\n const pairsStates = _.get(state.chainMetaPair, [arg.chainId, 'list']);\n if (pairsStates?.length) {\n const topPair = Object.values(pairsStates)[0];\n // if the block height is lower than the current block height, we don't need to update the state\n if ((topPair?.blockInfo?.height || 0) > (blockInfo?.height || 0)) {\n return;\n }\n }\n\n pairsRes = _.merge({}, pairsStates, pairMap);\n }\n _.set(state.chainMetaPair, [arg.chainId, 'list'], pairsRes);\n _.set(state.chainMetaPair, [arg.chainId, 'status'], FETCHING_STATUS.DONE);\n });\n },\n});\n\nexport const selectChainMetaPair =\n (chainId: number | undefined) =>\n (state: AppState): Record | undefined =>\n _.get(state.pair.chainMetaPair, [chainId || '', 'list'], {});\n\nexport const selectChainMetaPairStatus =\n (chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.pair.chainMetaPair, [chainId || '', 'status'], FETCHING_STATUS.INIT);\n\nexport const selectMetaPair =\n (chainId: number | undefined, pairId: string | undefined) =>\n (state: AppState): IMetaPair =>\n _.get(state.pair.chainMetaPair, [chainId || '', 'list', pairId || '']);\n\nexport const selectChainPairFavorites = (state: AppState): IChainPairsFavorites => state.pair.chainPairFavorites;\n\nexport default pairSlice.reducer;\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { WrappedAccount } from '@/entities/WrappedAccount';\nimport { useAppSelector } from '@/hooks';\nimport { IMetaAccount } from '@/types/account';\nimport { getAccountId } from '@/utils/transform/transformId';\n\nimport { useWrappedInstrument, useWrappedInstrumentMap } from '../futures/hooks';\nimport { useTokenPrices } from '../global/query';\nimport { useWrappedOrderListByUser } from './orderHook';\nimport { usePositionListByUser } from './positionHook';\nimport { useWrappedRangeListByUser } from './rangeHook';\nimport { selectAccountMap, selectAccountStatus, selectMetaAccount } from './slice';\n\nexport function useMetaAccountMap(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): {\n [accountId: string]: IMetaAccount;\n} {\n const chainMetaAccount = useAppSelector(selectAccountMap(chainId, userAddr));\n\n return useMemo(() => {\n if (chainMetaAccount) return chainMetaAccount;\n return {};\n }, [chainMetaAccount]);\n}\n\nexport function useAccountStatus(chainId: CHAIN_ID | undefined, userAddr: string | undefined): FETCHING_STATUS {\n const fetchingStatus = useAppSelector(selectAccountStatus(chainId, userAddr));\n\n return fetchingStatus;\n}\n\nexport function useMetaAccount(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n accountId: string | undefined,\n): IMetaAccount | undefined {\n const metaAccount = useAppSelector(selectMetaAccount(chainId, userAddr, accountId));\n return metaAccount;\n}\n\nexport function useWrappedAccount(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n accountId: string | undefined,\n): WrappedAccount | undefined {\n const metaAccount = useMetaAccount(chainId, userAddr, accountId);\n const wrappedInstrument = useWrappedInstrument(chainId, metaAccount?.instrumentId);\n return useMemo(() => {\n if (!chainId || !userAddr || !wrappedInstrument) return undefined;\n const origin = metaAccount;\n if (origin) {\n const account = WrappedAccount.getInstance(origin.id, chainId);\n if (!account) {\n return WrappedAccount.wrapInstance({ metaAccount: origin, rootInstrument: wrappedInstrument, chainId });\n } else {\n account.fillField(origin);\n }\n return account;\n }\n return undefined;\n }, [chainId, metaAccount, userAddr, wrappedInstrument]);\n}\n\nexport function useWrappedAccountByinstrumentId(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n instrumentId: string | undefined,\n): WrappedAccount | undefined {\n const metaAccount = useMetaAccount(\n chainId,\n userAddr,\n instrumentId && userAddr ? getAccountId(userAddr, instrumentId) : undefined,\n );\n return useWrappedAccount(chainId, userAddr, metaAccount?.id);\n}\n\nexport function useWrappedAccountMap(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): {\n [accountId: string]: WrappedAccount;\n} {\n const metaAccountMap = useMetaAccountMap(chainId, userAddr);\n\n const wrappedInstrumentMap = useWrappedInstrumentMap(chainId);\n\n return useMemo(() => {\n if (!chainId || !userAddr) return {};\n return _.reduce(\n metaAccountMap,\n (res, origin) => {\n const wrappedInstrument = wrappedInstrumentMap[origin.instrumentId];\n if (wrappedInstrument) {\n const account = WrappedAccount.wrapInstance({\n metaAccount: origin,\n chainId,\n rootInstrument: wrappedInstrument,\n });\n res[origin.id] = account;\n }\n return res;\n },\n {} as { [accountId: string]: WrappedAccount },\n );\n }, [chainId, userAddr, metaAccountMap, wrappedInstrumentMap]);\n}\n\nexport function useWrappedAccountList(chainId: CHAIN_ID | undefined, userAddr: string | undefined): WrappedAccount[] {\n const accountMap = useWrappedAccountMap(chainId, userAddr);\n const { data: tokenPrices } = useTokenPrices({ chainId });\n useWrappedRangeListByUser(chainId, userAddr);\n usePositionListByUser(chainId, userAddr);\n useWrappedOrderListByUser(chainId, userAddr);\n return useMemo(() => {\n const list = Object.values(accountMap || {}).filter((a) => !!a) as WrappedAccount[];\n if (!accountMap || !tokenPrices) return list;\n _.forIn(accountMap, (account) => {\n const priceInfo = tokenPrices?.[account.rootInstrument?.marginToken?.address];\n if (priceInfo) {\n account.rootInstrument.setQuotePrice(priceInfo);\n }\n });\n return list;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [accountMap, tokenPrices]);\n}\n\nexport function useIsWrappingAccount(chainId: CHAIN_ID | undefined, userAddr: string | undefined): boolean {\n const metaAccountMap = useMetaAccountMap(chainId, userAddr);\n return useMemo(() => {\n if (!chainId || !userAddr) return false;\n const instances = WrappedAccount.getInstanceMap(chainId);\n\n return Object.keys(metaAccountMap).length > 0 && Object.keys(instances || {}).length === 0;\n }, [chainId, userAddr, metaAccountMap]);\n}\n","import _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { WrappedAccount } from '@/entities/WrappedAccount';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { useAppSelector } from '@/hooks';\nimport { IMetaPortfolio } from '@/types/account';\n\nimport { useWrappedPair, useWrappedPairMap } from '../pair/hook';\nimport { useWrappedAccount, useWrappedAccountMap } from './accountHook';\nimport { selectMetaPortfolio, selectMetaPortfolioByPairId, selectPortfolioMap } from './slice';\n\nexport function useMetaPortfolioMap(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): { [portfolioId: string]: IMetaPortfolio } {\n const metaPortfolioMap = useAppSelector(selectPortfolioMap(chainId, userAddr));\n\n return metaPortfolioMap;\n}\n\nexport function useMetaPortfolio(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n portfolioId: string | undefined,\n): IMetaPortfolio | undefined {\n const metaPortfolio = useAppSelector(selectMetaPortfolio(chainId, userAddr, portfolioId));\n return metaPortfolio;\n}\n\nfunction useBlendWrappedPortfolio({\n metaPortfolio,\n wrappedPair,\n wrappedAccount,\n chainId,\n userAddr,\n portfolioId,\n}: {\n metaPortfolio: IMetaPortfolio | undefined;\n wrappedPair: WrappedPair | undefined;\n wrappedAccount: WrappedAccount | undefined;\n chainId: CHAIN_ID | undefined;\n userAddr: string | undefined;\n portfolioId: string | undefined;\n}): WrappedPortfolio | undefined {\n return useMemo(() => {\n if (!chainId || !portfolioId || !userAddr || !wrappedPair || !wrappedAccount) return undefined;\n const origin = metaPortfolio;\n if (origin) {\n const portfolio = WrappedPortfolio.getInstance(origin.id, chainId);\n if (!portfolio) {\n return WrappedPortfolio.wrapInstance({\n metaPortfolio: origin,\n rootPair: wrappedPair,\n rootAccount: wrappedAccount,\n });\n } else {\n portfolio.fillField(origin);\n }\n return portfolio;\n }\n return undefined;\n }, [chainId, metaPortfolio, portfolioId, userAddr, wrappedAccount, wrappedPair]);\n}\n\n/**\n * get wrapped portfolio by portfolioId\n * @param chainId\n * @param userAddr\n * @param portfolioId\n * @returns {WrappedPortfolio | undefined}\n */\nexport function useWrappedPortfolio(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n portfolioId: string | undefined,\n): WrappedPortfolio | undefined {\n const metaPortfolio = useMetaPortfolio(chainId, userAddr, portfolioId);\n const wrappedPair = useWrappedPair(chainId, metaPortfolio?.pairId);\n const wrappedAccount = useWrappedAccount(chainId, userAddr, metaPortfolio?.accountId);\n return useBlendWrappedPortfolio({ chainId, userAddr, metaPortfolio, wrappedPair, wrappedAccount, portfolioId });\n}\n\n/**\n * get all wrapped portfolio map\n * @param chainId\n * @param userAddr\n * @returns\n */\nexport function useWrappedPortfolioMap(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): { [portfolioId: string]: WrappedPortfolio } {\n const portfolioMap = useMetaPortfolioMap(chainId, userAddr);\n const wrappedPairMap = useWrappedPairMap(chainId);\n const wrappedAccountMap = useWrappedAccountMap(chainId, userAddr);\n const res = useMemo(() => {\n if (!chainId || !portfolioMap || !wrappedPairMap || !wrappedAccountMap) return {};\n return _.reduce(\n portfolioMap,\n (res, origin) => {\n const wrappedPortfolio = WrappedPortfolio.getInstance(origin.id, chainId);\n if (!wrappedPortfolio) {\n if (wrappedPairMap[origin.pairId] && wrappedAccountMap[origin.accountId]) {\n res[origin.id] = WrappedPortfolio.wrapInstance({\n metaPortfolio: origin,\n rootPair: wrappedPairMap[origin.pairId],\n rootAccount: wrappedAccountMap[origin.accountId],\n });\n }\n } else {\n res[origin.id] = wrappedPortfolio;\n }\n return res;\n },\n {} as { [portfolioId: string]: WrappedPortfolio },\n );\n }, [chainId, portfolioMap, wrappedAccountMap, wrappedPairMap]);\n\n return res;\n}\n\n/**\n * get wrapped portfolio by pairId\n * @param chainId\n * @param userAddr\n * @param pairId\n * @returns {WrappedPortfolio | undefined}\n */\nexport function useWrappedPortfolioByPairId(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n): WrappedPortfolio | undefined {\n const metaPortfolio = useAppSelector(selectMetaPortfolioByPairId(chainId, userAddr, pairId));\n const wrappedPair = useWrappedPair(chainId, pairId);\n const wrappedAccount = useWrappedAccount(chainId, userAddr, metaPortfolio?.accountId);\n const portfolio = useBlendWrappedPortfolio({\n chainId,\n userAddr,\n metaPortfolio,\n wrappedPair,\n wrappedAccount,\n portfolioId: metaPortfolio?.id,\n });\n\n return useMemo(() => {\n const hasWrappedInstance = WrappedPortfolio.hasAnyInstance(chainId);\n if (!portfolio && metaPortfolio && userAddr && wrappedPair && hasWrappedInstance) {\n return WrappedPortfolio.fromEmptyPortfolio(wrappedPair, userAddr);\n }\n\n return portfolio;\n }, [chainId, metaPortfolio, portfolio, userAddr, wrappedPair]);\n}\n\nexport function useWrappedPortfolioList(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): WrappedPortfolio[] {\n const portfolioMap = useWrappedPortfolioMap(chainId, userAddr);\n return useMemo(() => {\n return _.values(portfolioMap);\n }, [portfolioMap]);\n}\n","import { PERP_EXPIRY } from '@synfutures/sdks-perp';\nimport _ from 'lodash';\nimport { useEffect, useMemo } from 'react';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { WrappedRange } from '@/entities/WrappedRange';\nimport { useAppSelector } from '@/hooks';\nimport { IMetaRange } from '@/types/account';\n\nimport { selectCurrentRangeId } from '../earn/slice';\nimport { useWrappedPortfolio, useWrappedPortfolioByPairId, useWrappedPortfolioMap } from './portfolioHook';\nimport { selectMetaRange, selectMetaRangeByPairId, selectRangeMap } from './slice';\n\n//#region redux meta range selector\n\nexport function useMetaRangeMap(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): { [rangeId: string]: IMetaRange } {\n const metaRangeMap = useAppSelector(selectRangeMap(chainId, userAddr));\n\n return metaRangeMap;\n}\n\nexport function useMetaRange(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n rangeId: string | undefined,\n): IMetaRange | undefined {\n const metaRange = useAppSelector(selectMetaRange(chainId, userAddr, rangeId));\n\n return metaRange;\n}\n\nexport function useMetaRangeByPairId(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n): { [rangeId: string]: IMetaRange } | undefined {\n const metaRangeMap = useAppSelector(selectMetaRangeByPairId(chainId, userAddr, pairId));\n return useMemo(() => metaRangeMap, [metaRangeMap]);\n}\n\nexport function useIsWrappingRange(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId?: string,\n): boolean {\n const metaRangeMap = useMetaRangeMap(chainId, userAddr);\n const metaRangePairMap = useMetaRangeByPairId(chainId, userAddr, pairId);\n const metaRanges = useMemo(() => {\n if (pairId) return metaRangePairMap;\n return metaRangeMap;\n }, [metaRangeMap, metaRangePairMap, pairId]);\n const instances = WrappedRange.getInstanceMap(chainId);\n return useMemo(() => {\n if (!chainId || !userAddr) return false;\n\n return Object.keys(metaRanges || {}).length > 0 && Object.keys(instances || {}).length === 0;\n }, [chainId, userAddr, metaRanges, instances]);\n}\n\n//#endregion ------------------ redux meta range selector\n\nfunction useBlendWrappedRange({\n metaRange,\n chainId,\n rootPortfolio,\n}: {\n metaRange: IMetaRange | undefined;\n chainId: CHAIN_ID | undefined;\n rootPortfolio: WrappedPortfolio | undefined;\n}): WrappedRange | undefined {\n return useMemo(() => {\n if (!chainId || !rootPortfolio) return undefined;\n const origin = metaRange;\n if (origin) {\n const wrappedRange = WrappedRange.getInstance(origin.id, chainId);\n if (!wrappedRange) {\n const instance = WrappedRange.wrapInstance({ metaRange: origin, rootPortfolio });\n rootPortfolio.connectRange(instance);\n return instance;\n } else {\n wrappedRange.fillField(origin);\n }\n return wrappedRange;\n }\n return undefined;\n }, [chainId, metaRange, rootPortfolio]);\n}\n\n/**\n * get wrapped range by range id\n * @param chainId\n * @param userAddr\n * @param rangeId\n * @returns\n */\nexport function useWrappedRange(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n rangeId: string | undefined,\n): WrappedRange | undefined {\n const metaRange = useMetaRange(chainId, userAddr, rangeId);\n const rootPortfolio = useWrappedPortfolio(chainId, userAddr, metaRange?.portfolioId);\n useEffect(() => {\n // remove range from portfolio if metaRange is undefined\n if (!metaRange && rootPortfolio && userAddr && rangeId) {\n rootPortfolio.removeRange(rangeId);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [metaRange, rangeId, userAddr, rootPortfolio]);\n return useBlendWrappedRange({ metaRange, chainId, rootPortfolio });\n}\n\nexport function useCurrentRange(chainId: number | undefined, userAddr: string | undefined): WrappedRange | undefined {\n const currentRangeId = useAppSelector(selectCurrentRangeId(chainId));\n return useWrappedRange(chainId, userAddr, currentRangeId);\n}\n\n/***\n * get wrapped order list by pair id\n */\nexport function useWrappedRangeList(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n): WrappedRange[] | undefined {\n const metaRangeMap = useMetaRangeByPairId(chainId, userAddr, pairId);\n const rootPortfolio = useWrappedPortfolioByPairId(chainId, userAddr, pairId);\n return useMemo(() => {\n if (!chainId || !rootPortfolio || !metaRangeMap) return undefined;\n\n return _.orderBy(\n _.reduce(\n metaRangeMap,\n (acc: WrappedRange[], metaRange: IMetaRange) => {\n const wrappedRange = WrappedRange.getInstance(metaRange.id, chainId);\n if (!wrappedRange) {\n const newWrappedRange = WrappedRange.wrapInstance({ metaRange, rootPortfolio });\n rootPortfolio.connectRange(newWrappedRange);\n acc.push(newWrappedRange);\n } else {\n acc.push(wrappedRange);\n }\n return acc;\n },\n [],\n ),\n [(o) => o.wrapAttribute('valueLocked').toNumber()],\n ['desc'],\n );\n }, [chainId, metaRangeMap, rootPortfolio]);\n}\n\nexport function useWrappedRangeListByUser(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n isShowNormalPair = true,\n): WrappedRange[] | undefined {\n const metaRangeMap = useMetaRangeMap(chainId, userAddr);\n const rootPortfolioMap = useWrappedPortfolioMap(chainId, userAddr);\n return useMemo(() => {\n if (!chainId || !rootPortfolioMap || !metaRangeMap) return undefined;\n\n return _.orderBy(\n _.reduce(\n metaRangeMap,\n (acc: WrappedRange[], metaRange: IMetaRange) => {\n const wrappedRange = WrappedRange.getInstance(metaRange.id, chainId);\n const rootPortfolio = rootPortfolioMap[metaRange.portfolioId];\n\n function pushRange(range: WrappedRange) {\n if (!isShowNormalPair || range.rootPair.isNormalPair) {\n acc.push(range);\n }\n }\n\n if (rootPortfolio) {\n if (!wrappedRange) {\n const newWrappedRange = WrappedRange.wrapInstance({ metaRange, rootPortfolio: rootPortfolio });\n rootPortfolio.connectRange(newWrappedRange);\n pushRange(newWrappedRange);\n } else {\n pushRange(wrappedRange);\n }\n }\n return acc;\n },\n [],\n ),\n [\n (o) => {\n return o.rootInstrument.displayBaseToken.symbol;\n },\n (o) => {\n return o.rootPair.expiry === PERP_EXPIRY ? 0 : o.rootPair.expiry;\n },\n (o) => o.wrapAttribute('valueLocked').toNumber(),\n ],\n ['asc', 'asc', 'desc'],\n );\n }, [chainId, isShowNormalPair, metaRangeMap, rootPortfolioMap]);\n}\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { TickMath } from '@synfutures/sdks-perp';\nimport { BigNumber } from 'ethers';\nimport _ from 'lodash';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { TABLE_TYPES } from '@/constants/global';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport {\n IAddLiquidityFormState,\n IAddLiquiditySimulation,\n IRemoveLiquidityFormState,\n IRemoveLiquiditySimulation,\n} from '@/types/earn';\nimport { ILiquidityFilters } from '@/types/liquidity';\nimport { getLeftRatio, getRightRatio } from '@/utils/pair';\nimport { getAdjustTradePrice } from '@/utils/pairs';\n\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { TokenInfo } from '@/types/token';\nimport { useWrappedRangeList } from '../account/rangeHook';\nimport { useMarketList } from '../market/hooks';\nimport { useCombinedPairFromUrl } from '../pair/hook';\nimport { useSDK } from '../web3/hook';\nimport { fetchEarnWhitelistConfig, setIsAddLiquidityInputRisky } from './action';\nimport {\n selectAddLiquidityFormStateByChainId,\n selectAddLiquidityFormStatusByChainId,\n selectAddLiquiditySimulation,\n selectAllowUnauthorizedLPs,\n selectChainPoolFilters,\n selectEarnFormType,\n selectEarnPortfolioTab,\n selectRemoveLiquidityFormStateByChainId,\n selectRemoveLiquidityFormStatusByChainId,\n selectRemoveLiquiditySimulation,\n selectRemoveLiquiditySuccess,\n selectWhiteList,\n selectWhiteListFetchingStatus,\n} from './slice';\n\nexport function useAddLiquidationSimulation(chainId: CHAIN_ID | undefined): IAddLiquiditySimulation | undefined {\n const simulation = useAppSelector(selectAddLiquiditySimulation(chainId));\n const { t } = useTranslation();\n const currentPair = useCombinedPairFromUrl(chainId);\n const addLiqState = useAddLiquidityFormState(chainId);\n const minMargin = WrappedBigNumber.from(simulation?.data?.minMargin || 0);\n const { marketPairList } = useMarketList(chainId ? [chainId] : undefined);\n\n const isNewPair = useMemo(() => {\n return !(currentPair instanceof WrappedPair);\n }, [currentPair]);\n\n const isNewInstrument = useMemo(() => {\n if (!isNewPair) return false;\n if (marketPairList.length) {\n const pair = marketPairList.find(\n (pair) =>\n pair.baseToken.symbol === currentPair?.rootInstrument.baseToken.symbol &&\n pair.quoteToken.symbol === currentPair?.rootInstrument.quoteToken.symbol &&\n pair.marketType === currentPair.rootInstrument.marketType,\n );\n return !pair;\n }\n return true;\n }, [currentPair?.rootInstrument, marketPairList, isNewPair]);\n\n const newInstrumentLimitMsg = useMemo(() => {\n if (\n isNewInstrument &&\n simulation?.data?.minEffectiveQuoteAmount &&\n WrappedBigNumber.from(addLiqState?.amount || 0).gt(0) &&\n WrappedBigNumber.from(addLiqState?.amount || 0).lt(\n WrappedBigNumber.from(simulation?.data?.minEffectiveQuoteAmount),\n )\n ) {\n return t('common.earn.newInstrumentNotEnoughMargin', {\n amount: WrappedBigNumber.from(simulation?.data?.minEffectiveQuoteAmount)?.formatDisplayNumber() || '',\n quote: currentPair?.rootInstrument.quoteToken.symbol,\n });\n }\n return '';\n }, [\n addLiqState?.amount,\n currentPair?.rootInstrument.quoteToken.symbol,\n isNewInstrument,\n simulation?.data?.minEffectiveQuoteAmount,\n t,\n ]);\n\n return useMemo(() => {\n if (simulation) {\n return {\n ...simulation,\n message:\n newInstrumentLimitMsg ||\n simulation.message ||\n (minMargin.gt(addLiqState?.amount || '')\n ? t('common.earn.notEnoughMargin', {\n minAmount: minMargin.formatDisplayNumber(),\n // TODO get this from sdk\n minEffectiveLiquidity:\n WrappedBigNumber.from(simulation?.data?.minEffectiveQuoteAmount || 0)?.formatDisplayNumber() || '',\n quote: currentPair?.rootInstrument.quoteToken.symbol,\n })\n : undefined),\n };\n }\n return simulation;\n }, [\n simulation,\n newInstrumentLimitMsg,\n minMargin,\n addLiqState?.amount,\n t,\n currentPair?.rootInstrument.quoteToken.symbol,\n ]);\n}\nexport function useAddLiquidationSimulationData(chainId: CHAIN_ID | undefined): IAddLiquiditySimulation | undefined {\n const simulation = useAppSelector(selectAddLiquiditySimulation(chainId));\n return useMemo(() => simulation, [simulation]);\n}\n\nexport function useAddLiquidityFormState(chainId: CHAIN_ID | undefined): IAddLiquidityFormState | undefined {\n return useAppSelector(selectAddLiquidityFormStateByChainId(chainId));\n}\nexport function useAddLiquidityFormStateStatus(chainId: CHAIN_ID | undefined): FETCHING_STATUS {\n return useAppSelector(selectAddLiquidityFormStatusByChainId(chainId));\n}\n\nexport function useIsAddLiquidityInputRisky() {\n const isAddLiquidityInputRisky = useAppSelector((state) => {\n return state.earn.isAddLiquidityInputRisky;\n });\n const dispatch = useAppDispatch();\n const setIsAddLiquidityInputRiskyCb = useCallback(\n (isAddLiquidityInputRisky: boolean) => dispatch(setIsAddLiquidityInputRisky(isAddLiquidityInputRisky)),\n [dispatch],\n );\n return {\n isAddLiquidityInputRisky,\n setIsAddLiquidityInputRisky: setIsAddLiquidityInputRiskyCb,\n };\n}\n\nexport function usePairPriceRange(\n alpha: BigNumber,\n curTick: number,\n isInverse: boolean | undefined,\n): { prices: number[]; ticks: number[] } {\n return useMemo(() => {\n if (alpha) {\n const [min, max] = TickMath.getTickRangeByAlpha(alpha, curTick);\n const minPrice = getAdjustTradePrice(WrappedBigNumber.from(TickMath.getWadAtTick(min)), !!isInverse).toNumber();\n const maxPrice = getAdjustTradePrice(WrappedBigNumber.from(TickMath.getWadAtTick(max)), !!isInverse).toNumber();\n return {\n prices: isInverse ? [maxPrice, minPrice] : [minPrice, maxPrice],\n ticks: [min, max],\n };\n }\n return { prices: [], ticks: [] };\n }, [alpha, curTick, isInverse]);\n}\nexport function useRemoveLiquidationSimulation(chainId: CHAIN_ID | undefined): IRemoveLiquiditySimulation | undefined {\n return useAppSelector(selectRemoveLiquiditySimulation(chainId));\n}\nexport function useRemoveLiquidationSuccess(chainId: CHAIN_ID | undefined, earnType: EARN_TYPE): boolean {\n const isSuccess = useAppSelector(selectRemoveLiquiditySuccess(chainId));\n return useMemo(() => {\n return isSuccess && earnType === EARN_TYPE.REMOVE_LIQ;\n }, [earnType, isSuccess]);\n}\nexport function useRemoveLiquidityFormState(chainId: CHAIN_ID | undefined): IRemoveLiquidityFormState | undefined {\n return useAppSelector(selectRemoveLiquidityFormStateByChainId(chainId));\n}\nexport function useRemoveLiquidityFormStateStatus(chainId: CHAIN_ID | undefined): FETCHING_STATUS {\n return useAppSelector(selectRemoveLiquidityFormStatusByChainId(chainId));\n}\n\nexport function useEarnFormType(chainId: CHAIN_ID | undefined): EARN_TYPE {\n return useAppSelector(selectEarnFormType(chainId));\n}\nexport function useEarnPortFolioTab(): TABLE_TYPES {\n return useAppSelector(selectEarnPortfolioTab);\n}\n\nexport function useAllowUnauthorizedLPs(chainId: CHAIN_ID | undefined, quoteAddr: string | undefined): boolean {\n return useAppSelector(selectAllowUnauthorizedLPs(chainId, quoteAddr));\n}\n\nexport function useWhiteListConfig(chainId: CHAIN_ID | undefined, quoteAddr: string | undefined): string[] {\n return useAppSelector(selectWhiteList(chainId, quoteAddr));\n}\n\nexport function useWhiteListFetchingStatus(\n chainId: CHAIN_ID | undefined,\n quoteAddr: string | undefined,\n): FETCHING_STATUS {\n const userAddr = useUserAddr();\n const status = useAppSelector(selectWhiteListFetchingStatus(chainId, quoteAddr));\n return useMemo(() => {\n if (!userAddr) return FETCHING_STATUS.DONE;\n return status;\n }, [status, userAddr]);\n}\n\nexport function useIsInWhiteList(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n quote: TokenInfo | undefined,\n): boolean {\n const allowUnauthorizedLPs = useAllowUnauthorizedLPs(chainId, quote?.address);\n const whiteList = useWhiteListConfig(chainId, quote?.address);\n const fetchStatus = useWhiteListFetchingStatus(chainId, quote?.address);\n useFetchInWhiteList(chainId, userAddr, quote);\n return useMemo(() => {\n if (fetchStatus !== FETCHING_STATUS.DONE) {\n return true;\n }\n if (allowUnauthorizedLPs) {\n return true;\n }\n if (userAddr && whiteList) {\n return !!whiteList.find((addr) => addr.toLowerCase() === userAddr.toLowerCase());\n }\n return true;\n }, [allowUnauthorizedLPs, fetchStatus, userAddr, whiteList]);\n}\nexport function usePairRangesMaxMin(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n currentPrice: number,\n): number {\n const rangeList = useWrappedRangeList(chainId, userAddr, pairId);\n return useMemo(() => {\n if (rangeList?.length) {\n return _.reduce(\n rangeList,\n (ratio, cur) => {\n const leftRatio = getLeftRatio(cur.wrapAttribute('lowerPrice').toNumber(), currentPrice);\n const rightRatio = getRightRatio(cur.wrapAttribute('upperPrice').toNumber(), currentPrice);\n return Math.max(leftRatio, rightRatio, ratio);\n },\n Math.max(\n getLeftRatio(rangeList[0].wrapAttribute('lowerPrice').toNumber(), currentPrice),\n getRightRatio(rangeList[0].wrapAttribute('upperPrice').toNumber(), currentPrice),\n ),\n );\n }\n return 1;\n }, [currentPrice, rangeList]);\n}\nexport function useChainPoolListFilters(chainId: number | undefined): ILiquidityFilters | undefined {\n const filters = useAppSelector(selectChainPoolFilters(chainId));\n return useMemo(() => filters, [filters]);\n}\n\nexport function useFetchInWhiteList(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n quote: TokenInfo | undefined,\n): void {\n const dispatch = useAppDispatch();\n const sdkContext = useSDK(chainId);\n const fetchWhiteListConfig = useCallback(async () => {\n if (chainId && userAddr && sdkContext && quote) {\n await dispatch(fetchEarnWhitelistConfig({ chainId: chainId, userAddr: userAddr, sdkContext, quote }));\n }\n // must check sdkContext\n }, [chainId, userAddr, dispatch, sdkContext, quote]);\n\n useEffect(() => {\n fetchWhiteListConfig();\n }, [fetchWhiteListConfig]);\n}\n","import { CHAIN_ID } from '@/constants/chain';\nimport { bigNumberObjectCheck, debounceRequest } from '@/utils';\nimport { checkAccountIsInPair } from '@/utils/account';\nimport { axiosGet } from '@/utils/axios';\nimport { retryWhenTimeout } from '@/utils/retry';\nimport { saveParticipatedPairsToLocalForage } from '@/utils/storage';\nimport { Context } from '@derivation-tech/context';\nimport { Amm, FetchPortfolioParam, Instrument, Order, Portfolio, Range } from '@synfutures/sdks-perp';\nimport _ from 'lodash';\nimport { fetchMarketPairList } from '../market/api';\nexport const getAllParticipatedFuturesFromChain = async ({\n chainId,\n sdkContext,\n userAddr,\n}: {\n chainId: CHAIN_ID;\n userAddr: string;\n // marginType: MARGIN_TYPE;\n sdkContext: Context;\n}): Promise => {\n const startAt = Date.now();\n // 1. fetch from graph\n try {\n const pairParamsFromGraph = await sdkContext.perpDataSource.user.getUserAmms(userAddr);\n if (pairParamsFromGraph?.length) {\n await saveParticipatedPairsToLocalForage(\n pairParamsFromGraph.map((p) => {\n return { instrumentAddr: p.instrument, expiry: p.expiry };\n }),\n userAddr,\n chainId,\n );\n // const chainConfig = DAPP_CHAIN_CONFIGS[chainId];\n\n const instrumentList = await retryWhenTimeout(\n sdkContext?.perp?.observer.getInstrument(\n pairParamsFromGraph.map((pair) => ({ instrument: pair.instrument, expiries: [pair.expiry] })),\n ),\n 15000,\n );\n\n console.record(\n 'syn',\n 'getAllParticipatedFuturesFromChain pairParamsFromGraph instruments:',\n {\n instrumentList,\n pairParamsFromGraph,\n userAddr,\n },\n instrumentList?.length,\n 'usage:',\n Date.now() - startAt,\n );\n return instrumentList;\n } else if (pairParamsFromGraph) {\n return [];\n }\n } catch (error) {\n console.log('🚀 ~ error:', error);\n }\n\n // 2. fetch from market api\n try {\n const marketDatas = await fetchMarketPairList();\n if (marketDatas?.length) {\n const chainPairs = marketDatas.find((m) => m.chainId === chainId)?.pairs;\n if (chainPairs) {\n const instrumentList = await retryWhenTimeout(\n sdkContext?.perp?.observer.getInstrument(\n chainPairs.map((pair) => ({ instrument: pair.instrumentAddress, expiries: [pair.expiry] })),\n ),\n 15000,\n );\n\n return instrumentList;\n }\n }\n } catch (error) {}\n return null;\n};\n\nexport const fetchPortfolioListFromChain = async ({\n chainId,\n userAddr,\n blockNumber,\n sdk: sdkContext,\n portfolioParams,\n}: {\n chainId: CHAIN_ID;\n userAddr: string;\n blockNumber?: number;\n sdk: Context;\n // instruments?: Instrument[];\n portfolioParams?: FetchPortfolioParam[];\n}): Promise => {\n if (sdkContext) {\n if (!portfolioParams) return null;\n const accountList = await retryWhenTimeout(sdkContext?.perp?.observer.getPortfolio(portfolioParams));\n if (accountList && accountList?.length) {\n const participatedPairs = accountList\n ?.filter(\n (p) =>\n checkAccountIsInPair({ position: p.position }) ||\n checkAccountIsInPair({ orders: Array.from(p.orders.values()) }) ||\n checkAccountIsInPair({ ranges: Array.from(p.ranges.values()) }),\n )\n .map((account) => ({\n instrumentAddr: account.instrumentAddr,\n expiry: account.expiry,\n }));\n await saveParticipatedPairsToLocalForage(participatedPairs, userAddr, chainId);\n } else if (accountList && (accountList as unknown as Portfolio)?.instrumentAddr) {\n return [accountList as unknown as Portfolio];\n }\n\n console.record(\n 'syn',\n `Query [getPortfolioList] ${!blockNumber ? '' : `with blockNumber ${blockNumber}`}`,\n accountList,\n {\n chainId,\n userAddr,\n },\n );\n\n return accountList;\n }\n return null;\n};\n\nexport const fetchPortfolioListFromApi = debounceRequest(\n async (\n chainId: number,\n userAddress: string,\n instrumentAddress?: string,\n expiry?: number,\n ): Promise<{ instruments: Instrument[]; portfolios: Portfolio[] } | null> => {\n const res = await axiosGet({\n url: 'https://api.synfutures.com/v3/public/perp/market/user/portfolio',\n config: {\n params: {\n chainId,\n userAddress: userAddress,\n ...(instrumentAddress && { instrumentAddress }),\n ...(expiry && { expiry }),\n },\n },\n });\n if (res?.data?.data) {\n const data = bigNumberObjectCheck(res.data.data);\n let { instruments, portfolios } = data;\n if (portfolios?.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n portfolios = portfolios.map((d: any) => {\n return {\n ...d,\n orders: _.reduce(\n d.orders,\n (acc, value, key) => {\n acc.set(Number(key), value);\n return acc;\n },\n new Map(),\n ),\n ranges: _.reduce(\n d.ranges,\n (acc, value, key) => {\n acc.set(Number(key), value);\n return acc;\n },\n new Map(),\n ),\n };\n });\n }\n\n if (instruments?.length) {\n instruments = instruments.map((instrument: Instrument) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const amms = instrument.amms as any;\n return {\n ...instrument,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n amms: amms.reduce((map: any, amm: any) => {\n map.set(amm.expiry, amm);\n return map;\n }, new Map()),\n };\n });\n }\n\n return { instruments: instruments || [], portfolios: portfolios || [] };\n }\n return null;\n },\n 200,\n);\n","import { PORTFOLIO_PAGE_POLLING_INTERVAL } from '@/constants/polling';\nimport { QUERY_KEYS } from '@/constants/query';\nimport { queryClient } from '@/pages/App';\nimport { IFuturesInstrument } from '@/types/futures';\nimport { FetchPortfolioParam, Instrument } from '@synfutures/sdks-perp';\nimport { useQuery } from '@tanstack/react-query';\nimport { useSDK } from '../web3/hook';\nimport { fetchPortfolioListFromApi, fetchPortfolioListFromChain, getAllParticipatedFuturesFromChain } from './api';\nexport const useFetchSinglePortfolioFromApi = (\n chainId: number | undefined,\n userAddr: string | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n) => {\n const sdk = useSDK(chainId);\n return useQuery({\n queryKey: QUERY_KEYS.PORTFOLIO.PORTFOLIO(chainId, userAddr, instrumentAddr, expiry),\n queryFn: async () => {\n if (chainId && userAddr)\n try {\n // First try to get from API\n const apiResult = await fetchPortfolioListFromApi(chainId, userAddr, instrumentAddr, expiry);\n return apiResult;\n // throw new Error('API returned no data');\n } catch (apiError) {\n console.warn('API request failed, falling back to chain:', apiError);\n try {\n if (sdk) {\n let portfolioParams: FetchPortfolioParam[] | undefined = undefined;\n if (instrumentAddr && expiry) {\n portfolioParams = [{ instrumentAddr, expiry, traderAddr: userAddr }];\n }\n const instrument = queryClient.getQueryData(\n QUERY_KEYS.FUTURES.INSTRUMENT(chainId, instrumentAddr),\n );\n // If API fails, fall back to chain request\n const chainResult = await fetchPortfolioListFromChain({\n sdk,\n userAddr,\n chainId,\n portfolioParams: portfolioParams,\n });\n return {\n instruments: instrument ? [instrument] : [],\n portfolios: chainResult || [],\n };\n }\n } catch (chainError) {\n console.error('Both API and chain requests failed:', chainError);\n throw new Error('Failed to fetch instrument from both API and chain');\n }\n }\n return undefined;\n },\n refetchInterval: PORTFOLIO_PAGE_POLLING_INTERVAL,\n enabled: !!chainId && !!userAddr && !!instrumentAddr && !!expiry,\n });\n};\n\nexport const useFetchPortfolioListFromApi = (chainId: number | undefined, userAddr: string | undefined) => {\n const sdk = useSDK(chainId);\n return useQuery({\n queryKey: QUERY_KEYS.PORTFOLIO.PORTFOLIO(chainId, userAddr),\n queryFn: async () => {\n if (chainId && userAddr)\n try {\n // First try to get from API\n\n const apiResult = await fetchPortfolioListFromApi(chainId, userAddr);\n return apiResult;\n // throw new Error('API returned no data');\n } catch (apiError) {\n console.warn('API request failed, falling back to chain:', apiError);\n try {\n if (sdk) {\n let portfolioParams: FetchPortfolioParam[] | undefined = undefined;\n let instruments: Instrument[] = [];\n const allPaticipatedFutures = await getAllParticipatedFuturesFromChain({\n chainId,\n sdkContext: sdk,\n userAddr,\n });\n\n if (allPaticipatedFutures) {\n instruments = allPaticipatedFutures;\n portfolioParams = allPaticipatedFutures.reduce((acc, instrument) => {\n instrument.amms.forEach((amm) => {\n acc.push({\n traderAddr: userAddr,\n instrumentAddr: instrument.instrumentAddr,\n expiry: amm.expiry,\n });\n });\n\n return acc;\n }, [] as FetchPortfolioParam[]);\n }\n\n // If API fails, fall back to chain request\n const chainResult = await fetchPortfolioListFromChain({\n sdk,\n userAddr,\n chainId,\n portfolioParams: portfolioParams,\n });\n return {\n instruments: instruments || [],\n portfolios: chainResult || [],\n };\n }\n } catch (chainError) {\n console.error('Both API and chain requests failed:', chainError);\n throw new Error('Failed to fetch instrument from both API and chain');\n }\n }\n return null;\n },\n enabled: !!chainId && !!userAddr,\n });\n};\n","import { BlockInfo } from '@derivation-tech/context';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { Pending } from '@synfutures/sdks-perp';\nimport { BigNumber } from 'ethers';\nimport _ from 'lodash';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { ItemStatus, getDefaultItemStatus, setFulfilledItemStatus } from '@/types/redux';\nimport { TokenInfo } from '@/types/token';\n\nimport { IAssetsBalance } from '@/types/assets';\nimport { IFundFlow, IFundFlowMap, ITotalVolume, TQuoteHistoryPrices } from '@/types/portfolio';\nimport { AppState } from '../store';\nimport {\n clickOpenSettledPairModal,\n getFundFlows,\n getQuoteHistoryPrices,\n getTokenPendingParams,\n getTotalVolume,\n getUserPendings,\n setPortfolioAssetSelect,\n setPortfolioDepositOrWithdrawOperateToken,\n settle,\n} from './actions';\n\nexport interface IPortfolioState {\n portfolioAssetSelected: IAssetsBalance | null;\n chainSettlingPortfolioModalState: {\n [chainID: number]: {\n [userAddr: string]: ItemStatus;\n };\n };\n chainFundFlows: {\n [chainId: number]: { [userAddr: string]: ItemStatus };\n };\n chainUserTotalVolume: {\n [chainId: number]: { [userAddr: string]: ItemStatus };\n };\n quoteHistoryPrices: ItemStatus;\n chainBalanceOperateToken: {\n [chainID: number]: {\n [userAddr: string]: TokenInfo;\n };\n };\n chainClaimWithdrawOperateToken: {\n [chainID: number]: {\n [userAddr: string]: ItemStatus;\n };\n };\n chainWithdrawPendingConfig: {\n [chainID: number]: {\n pendingDuration: number;\n };\n };\n chainTokenWithdrawPendingParams: {\n [chainID: number]: {\n [tokenAddress: string]: TokenInfo & { threshold: BigNumber };\n };\n };\n chainUserTokenWithdrawPendings: {\n [chainID: number]: {\n [userAddr: string]: {\n [tokenAddress: string]: TokenInfo & { maxWithdrawable: BigNumber; pending: Pending; blockInfo?: BlockInfo };\n };\n };\n };\n}\n\nconst initialState: IPortfolioState = {\n portfolioAssetSelected: null,\n chainSettlingPortfolioModalState: {},\n chainBalanceOperateToken: {},\n quoteHistoryPrices: getDefaultItemStatus(),\n chainUserTotalVolume: {},\n chainClaimWithdrawOperateToken: {},\n chainWithdrawPendingConfig: {},\n chainFundFlows: {},\n chainTokenWithdrawPendingParams: {},\n chainUserTokenWithdrawPendings: {},\n};\n\nexport const portfolioSlice = createSlice({\n name: 'portfolio',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder.addCase(setPortfolioAssetSelect, (state, action) => {\n state.portfolioAssetSelected = action.payload.assetSelected;\n });\n builder.addCase(clickOpenSettledPairModal.fulfilled, (state, action) => {\n const { arg } = action.meta;\n _.set(state.chainSettlingPortfolioModalState, [arg.chainId, arg.userAddr, 'item'], action.payload);\n });\n builder.addCase(settle.pending, (state, action) => {\n const { arg } = action.meta;\n _.set(state.chainSettlingPortfolioModalState, [arg.chainId, arg.userAddr, 'status'], FETCHING_STATUS.FETCHING);\n });\n builder.addCase(settle.fulfilled, (state, action) => {\n const { arg } = action.meta;\n _.set(state.chainSettlingPortfolioModalState, [arg.chainId, arg.userAddr, 'status'], FETCHING_STATUS.DONE);\n _.set(state.chainSettlingPortfolioModalState, [arg.chainId, arg.userAddr, 'item'], undefined);\n });\n builder.addCase(settle.rejected, (state, action) => {\n const { arg } = action.meta;\n _.set(state.chainSettlingPortfolioModalState, [arg.chainId, arg.userAddr, 'status'], FETCHING_STATUS.DONE);\n });\n builder.addCase(setPortfolioDepositOrWithdrawOperateToken, (state, action) => {\n _.set(\n state.chainBalanceOperateToken,\n [action.payload.chainId, action.payload.userAddr],\n action.payload.tokenInfo,\n );\n });\n builder.addCase(getTokenPendingParams.fulfilled, (state, action) => {\n const { arg } = action.meta;\n if (action.payload) {\n if (action.payload.tokenWithThresholds) {\n action.payload.tokenWithThresholds.forEach((token) => {\n _.set(state.chainTokenWithdrawPendingParams, [arg.chainId, token.address], token);\n });\n }\n _.set(state.chainWithdrawPendingConfig, [arg.chainId, 'pendingDuration'], action.payload.pendingDuration);\n }\n });\n builder.addCase(getUserPendings.fulfilled, (state, action) => {\n const { arg } = action.meta;\n if (action.payload) {\n if (action.payload.tokenWithPendings) {\n action.payload.tokenWithPendings.forEach((token) => {\n const stateTokenInfo = _.get(state.chainUserTokenWithdrawPendings, [\n arg.chainId,\n arg.userAddr,\n token.address,\n ]);\n if (stateTokenInfo && (stateTokenInfo.blockInfo?.height || 0) > (action?.payload?.blockInfo?.height || 0))\n return;\n _.set(state.chainUserTokenWithdrawPendings, [arg.chainId, arg.userAddr, token.address], {\n ...token,\n blockInfo: action?.payload?.blockInfo,\n });\n });\n }\n }\n });\n builder.addCase(getFundFlows.pending, (state, { meta }) => {\n _.set(state.chainFundFlows, [meta.arg.chainId, meta.arg.userAddr, 'status'], FETCHING_STATUS.FETCHING);\n });\n builder.addCase(getFundFlows.fulfilled, (state, { meta, payload }) => {\n if (payload) {\n const current = _.get(state.chainFundFlows, [meta.arg.chainId, meta.arg.userAddr, 'item'], {});\n _.set(\n state.chainFundFlows,\n [meta.arg.chainId, meta.arg.userAddr],\n setFulfilledItemStatus(_.merge({}, current, payload)),\n );\n }\n });\n builder.addCase(getFundFlows.rejected, (state, { meta }) => {\n _.set(state.chainFundFlows, [meta.arg.chainId, meta.arg.userAddr, 'status'], FETCHING_STATUS.DONE);\n });\n builder.addCase(getTotalVolume.pending, (state, { meta }) => {\n _.set(state.chainUserTotalVolume, [meta.arg.chainId, meta.arg.userAddr, 'status'], FETCHING_STATUS.FETCHING);\n });\n builder.addCase(getTotalVolume.fulfilled, (state, { meta, payload }) => {\n if (payload) {\n _.set(state.chainUserTotalVolume, [meta.arg.chainId, meta.arg.userAddr], setFulfilledItemStatus(payload));\n }\n });\n builder.addCase(getTotalVolume.rejected, (state, { meta }) => {\n _.set(state.chainUserTotalVolume, [meta.arg.chainId, meta.arg.userAddr, 'status'], FETCHING_STATUS.DONE);\n });\n builder.addCase(getQuoteHistoryPrices.pending, (state, {}) => {\n _.set(state.quoteHistoryPrices, ['status'], FETCHING_STATUS.FETCHING);\n });\n builder.addCase(getQuoteHistoryPrices.fulfilled, (state, { payload }) => {\n if (payload) {\n state.quoteHistoryPrices = setFulfilledItemStatus(payload);\n }\n });\n builder.addCase(getQuoteHistoryPrices.rejected, (state, {}) => {\n _.set(state.quoteHistoryPrices, ['status'], FETCHING_STATUS.DONE);\n });\n },\n});\n\nexport const selectFundFlows =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): IFundFlow[] | undefined =>\n _.values(_.get(state.portfolio.chainFundFlows, [chainId || '', userAddr || '', 'item']));\nexport const selectFundFlowsStatus =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.portfolio.chainFundFlows, [chainId || '', userAddr || '', 'status']);\nexport const selectTotalVolume =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): ITotalVolume | undefined =>\n _.get(state.portfolio.chainUserTotalVolume, [chainId || '', userAddr || '', 'item']);\nexport const selectTotalVolumeStatus =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.portfolio.chainUserTotalVolume, [chainId || '', userAddr || '', 'status']);\n\nexport const selectQuoteHistoryPriceList =\n () =>\n (state: AppState): TQuoteHistoryPrices | undefined =>\n state.portfolio.quoteHistoryPrices.item;\nexport const selectQuoteHistoryPriceListStatus =\n () =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.portfolio.quoteHistoryPrices, ['status']);\n\nexport const selectSettlePortfolioState =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): WrappedPortfolio | undefined =>\n _.get(state.portfolio.chainSettlingPortfolioModalState, [chainId || '', userAddr || '', 'item']);\n\nexport const selectSettleFetchingStatus =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(\n state.portfolio.chainSettlingPortfolioModalState,\n [chainId || '', userAddr || '', 'status'],\n FETCHING_STATUS.INIT,\n );\n\nexport const selectOperateToken =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): TokenInfo | undefined =>\n _.get(state.portfolio.chainBalanceOperateToken, [chainId || '', userAddr || '']);\n\nexport const selectWithdrawPendingConfig =\n (chainId: number | undefined) =>\n (\n state: AppState,\n ):\n | {\n pendingDuration: number;\n }\n | undefined =>\n _.get(state.portfolio.chainWithdrawPendingConfig, [chainId || '']);\n\nexport const selectTokenWithdrawPendingParams =\n (chainId: number | undefined, tokenAddr: string | undefined) =>\n (state: AppState): (TokenInfo & { threshold: BigNumber }) | undefined =>\n _.get(state.portfolio.chainTokenWithdrawPendingParams, [chainId || '', tokenAddr || '']);\n\nexport const selectUserTokenWithdrawPendings =\n (chainId: number | undefined, userAddr: string | undefined, tokenAddr: string | undefined) =>\n (state: AppState): (TokenInfo & { maxWithdrawable: BigNumber; pending: Pending }) | undefined =>\n _.get(state.portfolio.chainUserTokenWithdrawPendings, [chainId || '', userAddr || '', tokenAddr || '']);\n\nexport const selectUserAllTokenWithdrawPendings =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (\n state: AppState,\n ):\n | {\n [tokenAddress: string]: TokenInfo & { maxWithdrawable: BigNumber; pending: Pending; blockInfo?: BlockInfo };\n }\n | undefined =>\n _.get(state.portfolio.chainUserTokenWithdrawPendings, [chainId || '', userAddr || '']);\n\nexport default portfolioSlice.reducer;\n","// eslint-disable-next-line simple-import-sort/imports\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport { BigNumber } from 'ethers';\nimport { useEffect, useMemo } from 'react';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport { useDappChainConfig } from '@/hooks/web3/useChain';\nimport { TokenInfo } from '@/types/token';\n\nimport { POLLING_USER_PENDING_WITHDRAWABLE } from '@/constants/polling';\nimport { IFundFlow, ITotalVolume, TQuoteHistoryPrices } from '@/types/portfolio';\nimport { pollingFunc } from '@/utils';\nimport { reduceAccounts } from '@/utils/account';\nimport { currentUnixTime } from '@/utils/timeUtils';\nimport { isNativeTokenAddr } from '@/utils/token';\nimport { getAccountId, getPortfolioId } from '@/utils/transform/transformId';\nimport { Pending } from '@synfutures/sdks-perp';\nimport { updatePortfolio, updatePortfolioList } from '../account/actions';\nimport { useQuoteTokens } from '../chain/hook';\nimport { parseInstrumentToMeta } from '../futures/actions';\nimport { useSDK } from '../web3/hook';\nimport { getFundFlows, getTokenPendingParams, getUserPendings } from './actions';\nimport { useFetchPortfolioListFromApi, useFetchSinglePortfolioFromApi } from './query';\nimport {\n selectFundFlows,\n selectFundFlowsStatus,\n selectOperateToken,\n selectQuoteHistoryPriceList,\n selectQuoteHistoryPriceListStatus,\n selectSettleFetchingStatus,\n selectSettlePortfolioState,\n selectTokenWithdrawPendingParams,\n selectTotalVolume,\n selectTotalVolumeStatus,\n selectUserAllTokenWithdrawPendings,\n selectUserTokenWithdrawPendings,\n selectWithdrawPendingConfig,\n} from './slice';\n\nexport function useSettlingPortfolio(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): WrappedPortfolio | undefined {\n const settlePortfolio = useAppSelector(selectSettlePortfolioState(chainId, userAddr));\n return settlePortfolio;\n}\n\nexport function useSettlingStatus(chainId: CHAIN_ID | undefined, userAddr: string | undefined): FETCHING_STATUS {\n return useAppSelector(selectSettleFetchingStatus(chainId, userAddr));\n}\n\nexport function usePortfolioOperateToken(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): TokenInfo | undefined {\n const operateToken = useAppSelector(selectOperateToken(chainId, userAddr));\n const chainConfig = useDappChainConfig(chainId);\n return useMemo(() => {\n if (operateToken) return operateToken;\n if (chainConfig) return chainConfig.wrappedNativeToken;\n }, [chainConfig, operateToken]);\n}\n\nexport function useWithdrawPendingConfig(chainId: CHAIN_ID | undefined):\n | {\n pendingDuration: number;\n }\n | undefined {\n return useAppSelector(selectWithdrawPendingConfig(chainId));\n}\n\nexport function useTokenWithdrawPendingParams(\n chainId: CHAIN_ID | undefined,\n tokenAddr: string | undefined,\n): (TokenInfo & { threshold: BigNumber }) | undefined {\n return useAppSelector(selectTokenWithdrawPendingParams(chainId, tokenAddr));\n}\n\nexport function useUserWithdrawPendingToken(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n tokenAddr: string | undefined,\n): {\n pendingToken?: TokenInfo & { maxWithdrawable: BigNumber; pending: Pending };\n isShowClaim: boolean;\n isShowProgress: boolean;\n} {\n const dappConfig = useDappChainConfig(chainId);\n tokenAddr = tokenAddr && isNativeTokenAddr(tokenAddr) ? dappConfig?.wrappedNativeToken?.address : tokenAddr;\n const withdrawPendingConfig = useWithdrawPendingConfig(chainId);\n const pendingToken = useAppSelector(selectUserTokenWithdrawPendings(chainId, userAddr, tokenAddr)) as TokenInfo & {\n maxWithdrawable: BigNumber;\n pending: Pending;\n };\n const isShowClaim = useMemo(() => {\n if (\n pendingToken?.pending?.amount?.gt(0) &&\n pendingToken?.pending?.timestamp &&\n withdrawPendingConfig?.pendingDuration\n ) {\n const currentTime = currentUnixTime();\n if (currentTime > pendingToken?.pending?.timestamp + withdrawPendingConfig?.pendingDuration) {\n return true;\n }\n }\n return false;\n }, [pendingToken?.pending?.amount, pendingToken?.pending?.timestamp, withdrawPendingConfig?.pendingDuration]);\n\n const isShowProgress = useMemo(() => {\n return pendingToken?.pending?.amount?.gt(0) || false;\n }, [pendingToken?.pending?.amount]);\n\n return {\n isShowClaim,\n isShowProgress,\n pendingToken,\n };\n}\n\nexport function useUserAllPendingTokens(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): (TokenInfo & { maxWithdrawable: BigNumber; pending: Pending })[] | undefined {\n const tokenMap = useAppSelector(selectUserAllTokenWithdrawPendings(chainId, userAddr));\n\n return useMemo(() => {\n if (tokenMap) return Object.values(tokenMap);\n }, [tokenMap]);\n}\n\nlet polling: NodeJS.Timeout | undefined = undefined;\n\nexport function useFetchWithdrawPendings(chainId: CHAIN_ID | undefined, userAddr: string | undefined): void {\n const dispatch = useAppDispatch();\n const marginTokens = useQuoteTokens(chainId);\n const sdkContext = useSDK(chainId);\n useEffect(() => {\n chainId &&\n sdkContext &&\n dispatch(\n getTokenPendingParams({\n chainId,\n sdkContext,\n marginTokens,\n }),\n );\n }, [chainId, dispatch, marginTokens, sdkContext]);\n useEffect(() => {\n if (polling) {\n clearTimeout(polling);\n }\n polling = pollingFunc(() => {\n chainId &&\n sdkContext &&\n userAddr &&\n dispatch(\n getUserPendings({\n chainId,\n sdkContext,\n userAddr,\n marginTokens,\n }),\n );\n }, POLLING_USER_PENDING_WITHDRAWABLE);\n\n return () => {\n if (polling) {\n clearTimeout(polling);\n }\n };\n }, [chainId, dispatch, marginTokens, sdkContext, userAddr]);\n}\n\nexport function useWithdrawPendingDurationHourly(chainId: CHAIN_ID | undefined): number | undefined {\n const withdrawPendingConfig = useWithdrawPendingConfig(chainId);\n return useMemo(() => {\n if (withdrawPendingConfig?.pendingDuration) return withdrawPendingConfig?.pendingDuration / 3600;\n }, [withdrawPendingConfig?.pendingDuration]);\n}\n\nexport function useFundFlows(userAddr: string | undefined, chainId: CHAIN_ID | undefined): IFundFlow[] | undefined {\n const flows = useAppSelector(selectFundFlows(chainId, userAddr));\n return useMemo(() => flows, [flows]);\n}\nexport function useFundFlowsStatus(userAddr: string | undefined, chainId: CHAIN_ID | undefined): FETCHING_STATUS {\n const status = useAppSelector(selectFundFlowsStatus(chainId, userAddr));\n return useMemo(() => status, [status]);\n}\nexport function useTotalVolume(userAddr: string | undefined, chainId: CHAIN_ID | undefined): ITotalVolume | undefined {\n const volume = useAppSelector(selectTotalVolume(chainId, userAddr));\n return useMemo(() => volume, [volume]);\n}\nexport function useTotalVolumeStatus(userAddr: string | undefined, chainId: CHAIN_ID | undefined): FETCHING_STATUS {\n const status = useAppSelector(selectTotalVolumeStatus(chainId, userAddr));\n return useMemo(() => status, [status]);\n}\nexport function useQuoteHistoryPriceList(): TQuoteHistoryPrices | undefined {\n const data = useAppSelector(selectQuoteHistoryPriceList());\n return useMemo(() => data, [data]);\n}\nexport function useQuoteHistoryPriceListStatus(): FETCHING_STATUS {\n const status = useAppSelector(selectQuoteHistoryPriceListStatus());\n return useMemo(() => status, [status]);\n}\nlet totalWithdrawPolling: NodeJS.Timeout | undefined = undefined;\nexport function useFetchFundFlows(chainId: CHAIN_ID | undefined, userAddr: string | undefined): void {\n const dispatch = useAppDispatch();\n const sdkContext = useSDK(chainId);\n const dappConfig = useDappChainConfig(chainId);\n const quoteTokens = useQuoteTokens(chainId);\n useEffect(() => {\n if (totalWithdrawPolling) {\n clearTimeout(totalWithdrawPolling);\n }\n totalWithdrawPolling = pollingFunc(() => {\n chainId &&\n sdkContext &&\n userAddr &&\n dappConfig &&\n quoteTokens &&\n dispatch(getFundFlows({ chainId, sdkContext, userAddr, quoteTokens }));\n }, POLLING_USER_PENDING_WITHDRAWABLE);\n\n return () => {\n if (totalWithdrawPolling) {\n clearTimeout(totalWithdrawPolling);\n }\n };\n }, [chainId, dappConfig, dispatch, quoteTokens, sdkContext, userAddr]);\n}\n\nexport function useFetchPortfolioList(chainId: number | undefined, userAddr: string | undefined) {\n const { data: portfolioWithInstrumentList } = useFetchPortfolioListFromApi(chainId, userAddr);\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n if (portfolioWithInstrumentList && chainId && userAddr) {\n if (portfolioWithInstrumentList?.instruments?.length) {\n dispatch(parseInstrumentToMeta({ chainId, instrumentList: portfolioWithInstrumentList?.instruments }));\n }\n const portfolios = portfolioWithInstrumentList?.portfolios;\n if (portfolios?.length) {\n const accountRecord = reduceAccounts(chainId, userAddr, portfolios);\n if (portfolios.length === 1) {\n const portfolio = portfolios[0];\n\n dispatch(\n updatePortfolio({\n chainId,\n userAddr,\n reducedPortfolio: accountRecord,\n instrumentAddr: portfolio.instrumentAddr,\n expiry: portfolio.expiry,\n block: portfolio?.blockInfo?.height || 0,\n }),\n );\n } else dispatch(updatePortfolioList({ chainId, userAddr, accountRecords: accountRecord }));\n }\n }\n }, [chainId, dispatch, portfolioWithInstrumentList, userAddr]);\n}\n\nexport function useSinglePortfolio(\n chainId: number | undefined,\n userAddr: string | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n) {\n const { data: portfolioWithInstrumentList } = useFetchSinglePortfolioFromApi(\n chainId,\n userAddr,\n instrumentAddr,\n expiry,\n );\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n if (portfolioWithInstrumentList && chainId && userAddr) {\n if (portfolioWithInstrumentList?.instruments?.length) {\n dispatch(parseInstrumentToMeta({ chainId, instrumentList: portfolioWithInstrumentList?.instruments }));\n }\n const portfolios = portfolioWithInstrumentList?.portfolios;\n if (portfolios?.length) {\n const accountRecord = reduceAccounts(chainId, userAddr, portfolios);\n if (portfolios.length === 1) {\n const portfolio = portfolios[0];\n\n dispatch(\n updatePortfolio({\n chainId,\n userAddr,\n reducedPortfolio: accountRecord,\n instrumentAddr: portfolio.instrumentAddr,\n expiry: portfolio.expiry,\n block: portfolio?.blockInfo?.height || 0,\n }),\n );\n } else dispatch(updatePortfolioList({ chainId, userAddr, accountRecords: accountRecord }));\n }\n }\n }, [chainId, dispatch, portfolioWithInstrumentList, userAddr]);\n\n const wrappedPortfolio = useMemo(() => {\n if (!chainId || !userAddr || !instrumentAddr || !expiry) return undefined;\n const portfolioId = getPortfolioId(getAccountId(userAddr, instrumentAddr), expiry);\n return WrappedPortfolio.getInstance(portfolioId, chainId);\n }, [chainId, expiry, instrumentAddr, userAddr]);\n\n return wrappedPortfolio;\n}\n\nexport function useIsFetchedSinglePortfolio(\n chainId: number | undefined,\n userAddr: string | undefined,\n instrumentAddr: string | undefined,\n expiry: number | undefined,\n) {\n const { isFetched } = useFetchSinglePortfolioFromApi(chainId, userAddr, instrumentAddr, expiry);\n return isFetched;\n}\n\nexport function useIsFetchedPortfolioList(chainId: number | undefined, userAddr: string | undefined) {\n useEffect(() => {\n //\n }, [chainId, userAddr]);\n\n const { isFetched } = useFetchSinglePortfolioFromApi(chainId, userAddr, undefined, undefined);\n return isFetched;\n}\n","import { useDebounceEffect, useDebounceFn, useDocumentVisibility } from 'ahooks';\nimport { useLocation } from 'react-router-dom';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { MARKET_PAGE_POLLING_INTERVAL, POLLING_GRAPH } from '@/constants/polling';\nimport { getAllAccountsFromChain, getAllParticipatedFuturesFromChain } from '@/features/account/actions';\nimport { useSDK } from '@/features/web3/hook';\n\nimport { QUERY_KEYS } from '@/constants/query';\nimport { useFetchPortfolioList, useSinglePortfolio } from '@/features/portfolio/hook';\nimport { queryClient } from '@/pages/App';\nimport { useEffect } from 'react';\nimport { useAppDispatch } from '..';\n\n// let pollingPairsTimer: NodeJS.Timer | null = null;\nlet pollingPairsDataTimer: NodeJS.Timer | null = null;\nlet pollingAccountsTimer: NodeJS.Timer | null = null;\n\nconst request_api_first = true;\n\n/**\n * polling pairs on markets\n * @param chainId\n * @param userAddr\n */\nexport function usePollingPairStatsData(chainId: CHAIN_ID | undefined): void {\n // const dispatch = useAppDispatch();\n const { pathname } = useLocation();\n const documentVisibility = useDocumentVisibility();\n\n const { run: fetchAllPairStats } = useDebounceFn(\n async () => {\n if (chainId) {\n // dispatch(fetchAllPairsDataFromGraph({ chainId: chainId }));\n }\n // must check sdkContext\n },\n {\n wait: 500,\n },\n );\n\n useDebounceEffect(\n () => {\n if (documentVisibility !== 'visible') {\n pollingPairsDataTimer && clearInterval(pollingPairsDataTimer);\n }\n if (\n documentVisibility === 'visible' &&\n (pathname === '/market' || pathname === '/earn' || pathname.startsWith('/trade/'))\n ) {\n if (pollingPairsDataTimer) {\n clearInterval(pollingPairsDataTimer);\n }\n pollingPairsDataTimer = setInterval(() => {\n fetchAllPairStats();\n }, POLLING_GRAPH);\n }\n\n return () => {\n if (pollingPairsDataTimer) {\n clearInterval(pollingPairsDataTimer);\n }\n };\n },\n [pathname, documentVisibility, fetchAllPairStats],\n { wait: 500 },\n );\n}\n\n/**\n * polling accounts on portfolio page\n * @param chainId\n * @param userAddr\n */\nexport function usePollingAccountsData(chainId: CHAIN_ID | undefined, userAddr: string | undefined): void {\n const dispatch = useAppDispatch();\n // const provider = useAppProvider();\n const sdkContext = useSDK(chainId);\n const { pathname } = useLocation();\n const documentVisibility = useDocumentVisibility();\n useFetchPortfolioList(chainId, userAddr);\n\n const { run: fetchAllAccounts } = useDebounceFn(\n async () => {\n if (request_api_first) {\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.PORTFOLIO.PORTFOLIO(chainId, userAddr),\n });\n } else {\n if (chainId && userAddr && sdkContext) {\n const instruments = await dispatch(\n getAllParticipatedFuturesFromChain({ chainId: chainId, userAddr: userAddr, sdkContext }),\n ).unwrap();\n if (instruments !== undefined) {\n await dispatch(getAllAccountsFromChain({ chainId: chainId, userAddr: userAddr, sdkContext, instruments }));\n }\n }\n }\n // must check sdkContext\n },\n {\n wait: 500,\n },\n );\n\n useDebounceEffect(\n () => {\n // fetch all accounts when user switch to portfolio page\n if (pathname.startsWith('/portfolio') && pathname !== '/portfolio/history') {\n fetchAllAccounts();\n }\n },\n [pathname],\n { wait: 500 },\n );\n\n useDebounceEffect(\n () => {\n if (documentVisibility !== 'visible') {\n pollingAccountsTimer && clearInterval(pollingAccountsTimer);\n }\n if (documentVisibility === 'visible' && pathname.startsWith('/portfolio') && pathname !== '/portfolio/history') {\n if (pollingAccountsTimer) {\n clearInterval(pollingAccountsTimer);\n }\n pollingAccountsTimer = setInterval(() => {\n fetchAllAccounts();\n }, MARKET_PAGE_POLLING_INTERVAL);\n }\n\n return () => {\n if (pollingAccountsTimer) {\n clearInterval(pollingAccountsTimer);\n }\n };\n },\n [pathname, documentVisibility, fetchAllAccounts],\n { wait: 500 },\n );\n}\n\nfunction useFetchSinglePortfolio(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n instrumentAddr: string | undefined,\n expiry?: number,\n): typeof fetchSinglePortfolio {\n // const dispatch = useAppDispatch();\n // const sdkContext = useSDK(chainId);\n\n // const { run: fetchAllAccounts } = useDebounceFn(\n // async () => {\n // if (chainId && userAddr && sdkContext) {\n // const instruments = await dispatch(\n // getAllFuturesFromChain({ chainId: chainId, userAddr: userAddr, sdkContext }),\n // ).unwrap();\n // if (instruments)\n // await dispatch(getAllAccountsFromChain({ chainId: chainId, userAddr: userAddr, sdkContext, instruments }));\n // }\n // // must check sdkContext\n // },\n // {\n // wait: 500,\n // },\n // );\n useSinglePortfolio(chainId, userAddr, instrumentAddr, expiry);\n const documentVisibility = useDocumentVisibility();\n\n useEffect(() => {\n if (chainId && userAddr && instrumentAddr && expiry && documentVisibility === 'visible') {\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.PORTFOLIO.PORTFOLIO(chainId, userAddr, instrumentAddr, expiry),\n });\n }\n }, [chainId, expiry, instrumentAddr, userAddr, documentVisibility]);\n\n const { run: fetchSinglePortfolio } = useDebounceFn(\n async () => {\n // if (chainId && userAddr && sdkContext) {\n // if (!instrumentAddr) {\n // // fetchAllAccounts();\n // } else {\n // // dispatch(getInstrumentFromChain({ chainId: chainId, instrumentAddr, expiry }));\n // expiry && dispatch(getPortfolioFromChain({ chainId: chainId, userAddr, instrumentAddr, expiry }));\n // }\n // }\n },\n {\n wait: 500,\n },\n );\n return fetchSinglePortfolio;\n}\n\n/**\n * polling single insturment pair/account data on trade page\n * @param chainId\n * @param userAddr\n * @param instrumentAddr\n * @param expiry\n */\nexport function usePollingSingleInstrumentDataOnTradeOrEarn(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n instrumentAddr: string | undefined,\n expiry?: number,\n): void {\n const { pathname } = useLocation();\n const documentVisibility = useDocumentVisibility();\n\n // const fetchSinglePortfolio = useFetchSinglePortfolio(chainId, userAddr, instrumentAddr, expiry);\n useFetchSinglePortfolio(chainId, userAddr, instrumentAddr, expiry);\n useDebounceEffect(\n () => {\n if (documentVisibility === 'visible' && (pathname.startsWith('/trade/') || pathname.startsWith('/earn/'))) {\n chainId &&\n instrumentAddr &&\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.FUTURES.INSTRUMENT(chainId, instrumentAddr) });\n chainId &&\n instrumentAddr &&\n expiry &&\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.FUTURES.PAIR_INFO(chainId, instrumentAddr, expiry),\n });\n }\n },\n [pathname, documentVisibility, instrumentAddr, userAddr],\n { wait: 500 },\n );\n\n // useDebounceEffect(\n // () => {\n // if (documentVisibility !== 'visible') {\n // pollingPairsTimer && clearInterval(pollingPairsTimer);\n // }\n\n // if (\n // documentVisibility === 'visible' &&\n // (pathname.startsWith('/trade/') ||\n // pathname.startsWith('/earn/'))\n // ) {\n // if (pollingPairsTimer) {\n // clearInterval(pollingPairsTimer);\n // }\n // let needPolling = false;\n // if (pathname.startsWith('/trade/') || pathname === '/trade') {\n // needPolling = true;\n // } else if (pathname.startsWith('/earn/') || pathname === '/earn') {\n // needPolling = true;\n // }\n // if ( needPolling) {\n // pollingPairsTimer = setInterval(() => {\n // // fetchSinglePortfolio();\n // }, TRADE_PAGE_POLLING_INTERVAL);\n // }\n // }\n\n // return () => {\n // if (pollingPairsTimer) {\n // clearInterval(pollingPairsTimer);\n // }\n // };\n // },\n // [pathname, documentVisibility, fetchSinglePortfolio, instrumentAddr, userAddr],\n // { wait: 500 },\n // );\n}\n\n/**\n * fetch pair info on switch to trade page\n * @param chainId\n * @param userAddr\n * @param instrumentAddr\n * @param expiry\n */\nexport function useFetchSingleInstrumentDataWhenChangePage(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n instrumentAddr: string | undefined,\n expiry?: number,\n): void {\n const { pathname } = useLocation();\n\n const fetchSinglePortfolio = useFetchSinglePortfolio(chainId, userAddr, instrumentAddr, expiry);\n\n useDebounceEffect(\n () => {\n // fetch instrument when change page\n if (pathname.startsWith('/trade/') || pathname.startsWith('/earn/')) {\n fetchSinglePortfolio();\n }\n },\n [pathname],\n { wait: 500 },\n );\n}\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { useMemo } from 'react';\nimport { NavigateOptions, useNavigate } from 'react-router-dom';\n\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { getChainShortName } from '@/utils/chain';\n\nimport { useDebounceFn } from 'ahooks';\nimport { useChainId } from './web3/useChain';\n\nexport function useSideNavigate(chainId?: CHAIN_ID): {\n pairPageNavigate: (\n pairSymbol: string,\n pairPageType: PAIR_PAGE_TYPE,\n destinationChainId?: number,\n options?: NavigateOptions | undefined,\n ) => void;\n} {\n const navigate = useNavigate();\n const currChainId = useChainId();\n const chainIdNav = useMemo(() => {\n if (chainId) {\n return chainId;\n }\n return currChainId;\n }, [chainId, currChainId]);\n const { run: pairPageNavigate } = useDebounceFn(\n (\n pairSymbol: string,\n pairPageType: PAIR_PAGE_TYPE,\n destinationChainId?: number,\n options?: NavigateOptions | undefined,\n ) => {\n if (chainIdNav) {\n const chainName = getChainShortName(destinationChainId || chainIdNav);\n navigate(`/${pairPageType}/${chainName}/${pairSymbol}`, options);\n }\n },\n { wait: 500 },\n );\n\n return { pairPageNavigate };\n}\n","import { useCallback } from 'react';\n\n// import { useTranslation } from 'react-i18next';\n// import localforage from 'localforage';\nimport { APP_CHAIN_ID } from '@/constants/storage';\nimport { changeCurrentChainId } from '@/features/chain/actions';\n// import { useGa } from '@/hooks/useGa';\n// import { useTxNotification } from '@/hooks/useTxNotification';\n// import { GaCategory } from '@/utils/analytics';\n\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { useWalletType } from '@/features/wallet/hook';\nimport { WalletType } from '@/types/wallet';\nimport { useNavigate } from 'react-router-dom';\nimport { useSwitchChain } from 'wagmi';\nimport { useAppDispatch } from '..';\nimport { usePrivySwitchNetwork } from '../../connectors/privy/usePrivyWallet';\nimport { useChainId } from './useChain';\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useSwitchNetwork(): {\n switchAppNetwork: (desiredChainId: number) => Promise;\n switchWalletNetwork: (desiredChainId: number) => Promise;\n} {\n const dispatch = useAppDispatch();\n const { switchChainAsync } = useSwitchChain();\n const walletType = useWalletType();\n const privySwitchNetwork = usePrivySwitchNetwork();\n const navigate = useNavigate();\n const chainId = useChainId();\n\n const switchAppNetwork = useCallback(\n async (desiredChainId: number) => {\n const currChainidShortName = chainId && DAPP_CHAIN_CONFIGS[chainId].network.shortName;\n const desiredChainidShortName = chainId && DAPP_CHAIN_CONFIGS[desiredChainId].network.shortName;\n if (currChainidShortName && desiredChainidShortName) {\n localStorage.setItem(APP_CHAIN_ID, desiredChainId.toString());\n navigate(`${document.location.hash.replace(currChainidShortName, desiredChainidShortName).replace('#', '')}`);\n dispatch(changeCurrentChainId({ chainId: desiredChainId }));\n }\n },\n [chainId, dispatch, navigate],\n );\n\n const switchWalletNetwork = useCallback(\n async (desiredChainId: number) => {\n if (walletType === WalletType.PRIVY) return privySwitchNetwork(desiredChainId);\n try {\n // localStorage.removeItem('wagmi.store');\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await switchChainAsync({ chainId: desiredChainId });\n\n return true;\n } catch (error) {\n console.error('🚀 ~ file: useNetwork.ts ~ line 117 ~ async ~ error', error);\n }\n return false;\n },\n [privySwitchNetwork, switchChainAsync, walletType],\n );\n\n return { switchAppNetwork, switchWalletNetwork };\n}\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { Dispatch, SetStateAction, useEffect, useMemo, useState } from 'react';\nimport { useNavigate, useParams } from 'react-router-dom';\n\nimport { DAPP_CHAIN_CONFIGS, DEFAULT_CHAIN_ID, SUPPORTED_CHAIN_ID } from '@/constants/chain';\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useIsFetchedPairInfo } from '@/features/futures/hooks';\nimport { useCombinedPairFromUrl, useCurrentPairBaseInfoFromUrl } from '@/features/pair/hook';\nimport { useSideNavigate } from '@/hooks/useRouterNavigate';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { useSwitchNetwork } from '@/hooks/web3/useSwitchConnectorNetwork';\nimport { getChainIdByChainShortName } from '@/utils/chain';\nimport { savePairChosen } from '@/utils/localstorage';\n\nexport function usePairCheck(\n chainId: CHAIN_ID | undefined,\n currentPairSymbol: string | undefined,\n filteredSearchPair: string[],\n pageType: PAIR_PAGE_TYPE,\n createOnly: boolean | undefined,\n): void {\n const userAddr = useUserAddr();\n const { chainShortName, pairSymbol } = useParams();\n const { switchAppNetwork, switchWalletNetwork } = useSwitchNetwork();\n const chainIdFromUrl = useMemo(() => {\n return chainShortName ? getChainIdByChainShortName(chainShortName) : undefined;\n }, [chainShortName]);\n const { pairPageNavigate } = useSideNavigate();\n const navigate = useNavigate();\n const dappChainConfig = useBackendChainConfig(chainId);\n //check the chain\n useEffect(() => {\n if (chainIdFromUrl && chainId && chainId !== chainIdFromUrl) {\n if (SUPPORTED_CHAIN_ID.includes(chainIdFromUrl)) {\n switchAppNetwork(chainIdFromUrl);\n }\n }\n }, [chainId, chainIdFromUrl, switchAppNetwork]);\n\n //check the chain\n useEffect(() => {\n if (chainIdFromUrl !== undefined) {\n let isToDefaultChain = false;\n if (chainIdFromUrl === null) {\n isToDefaultChain = true;\n } else if (chainIdFromUrl && chainId && chainId !== chainIdFromUrl) {\n if (SUPPORTED_CHAIN_ID.includes(chainIdFromUrl)) {\n switchAppNetwork(chainIdFromUrl);\n switchWalletNetwork(chainIdFromUrl);\n } else {\n isToDefaultChain = true;\n }\n }\n\n if (isToDefaultChain) {\n const dappConfig = DAPP_CHAIN_CONFIGS[DEFAULT_CHAIN_ID];\n navigate(`/${pageType}/${dappConfig?.network.shortName}`);\n }\n } else {\n const dappConfig = DAPP_CHAIN_CONFIGS[chainId || DEFAULT_CHAIN_ID];\n navigate(`/${pageType}/${dappConfig?.network.shortName}`);\n }\n }, [chainId, chainIdFromUrl, switchAppNetwork]);\n\n useEffect(() => {\n // if (!pairSymbol && !createOnly) {\n // navigate(`/${currentLocation}/${searchPairs[0]?.symbol}`, { replace: true });\n // }\n // if (!createOnly && pairSymbol && pairSymbol !== currentPair?.symbol) {\n // navigate(`/${currentLocation}/${searchPairs[0]?.symbol}`, { replace: true });\n // }s\n\n if (chainIdFromUrl != chainId) {\n return;\n }\n // if (!createOnly) {\n // if pair not found in searchPairs, then navigate to first pair\n if ((!pairSymbol && !currentPairSymbol) || (pairSymbol && !currentPairSymbol)) {\n if (filteredSearchPair.length) {\n let pairSymbolD = filteredSearchPair[0] || dappChainConfig?.trade.defaultPairSymbol || '';\n if (pairSymbol && filteredSearchPair.find((p) => p === pairSymbol)) {\n pairSymbolD = pairSymbol;\n }\n pairPageNavigate(pairSymbolD || '', pageType, undefined, { replace: true });\n chainId && userAddr && savePairChosen(userAddr, chainId, pairSymbolD, pageType as PAIR_PAGE_TYPE);\n } else {\n // pairPageNavigate(dappChainConfig?.trade.defaultPairSymbol || '', pageType, { replace: true });\n }\n }\n if (!pairSymbol && currentPairSymbol) {\n let symbol = dappChainConfig?.trade.defaultPairSymbol;\n if (filteredSearchPair.length) {\n symbol = filteredSearchPair[0];\n }\n pairPageNavigate(currentPairSymbol || symbol || '', pageType, undefined, {\n replace: true,\n });\n }\n // }\n }, [\n currentPairSymbol,\n chainIdFromUrl,\n chainId,\n filteredSearchPair,\n pageType,\n pairSymbol,\n createOnly,\n userAddr,\n pairPageNavigate,\n dappChainConfig?.trade.defaultPairSymbol,\n ]);\n\n useEffect(() => {\n if (pairSymbol && !createOnly) {\n chainId && userAddr && savePairChosen(userAddr, chainId, pairSymbol, pageType as PAIR_PAGE_TYPE);\n }\n }, [chainId, pairSymbol, createOnly, userAddr, pageType]);\n}\n\nexport function usePairNotFoundCheck(\n type: PAIR_PAGE_TYPE,\n createOnly: boolean,\n): {\n pairNotFoundModalVisible: boolean;\n setPairNotFoundModalVisible: Dispatch>;\n} {\n const [pairNotFoundModalVisible, setPairNotFoundModalVisible] = useState(false);\n const chainId = useChainId();\n const currentBaseInfo = useCurrentPairBaseInfoFromUrl(chainId);\n const isFetchedPair = useIsFetchedPairInfo(\n chainId,\n currentBaseInfo?.instrumentAddr,\n currentBaseInfo?.expiry,\n type === PAIR_PAGE_TYPE.EARN,\n );\n const { pairSymbol, chainShortName } = useParams();\n const chainIdFromUrl = useMemo(() => {\n return chainShortName ? getChainIdByChainShortName(chainShortName) : undefined;\n }, [chainShortName]);\n\n const currentPair = useCombinedPairFromUrl(chainId, false, type === PAIR_PAGE_TYPE.TRADE);\n useEffect(() => {\n if (chainIdFromUrl !== chainId) {\n return;\n }\n if (!createOnly) {\n // if pair not found in searchPairs, show the modal\n if (pairSymbol && !currentPair && isFetchedPair) {\n setPairNotFoundModalVisible(true);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [createOnly, chainId, chainIdFromUrl, currentPair, pairSymbol, isFetchedPair]);\n\n return {\n pairNotFoundModalVisible,\n setPairNotFoundModalVisible,\n };\n}\n","import { Form, FormItemProps } from 'antd';\nimport classNames from 'classnames';\n// import './index.less';\n\nexport default function FormItem(props: FormItemProps): JSX.Element {\n return ;\n}\n","import './index.less';\n\nimport { SearchOutlined } from '@ant-design/icons';\nimport { Input as AntDInput, InputProps, InputRef } from 'antd';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { useEffect, useRef, useState } from 'react';\nimport { isMobile } from 'react-device-detect';\n\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\n\n// import { ReactComponent as IconClear } from './assets/icon_clear_field.svg';\ninterface Iprops extends Omit {\n value?: string | number | undefined;\n}\nexport default function Input(props: Iprops): JSX.Element {\n const inputRef = useRef(null);\n const [position, setPosition] = useState(0);\n useEffect(() => {\n if (inputRef.current?.input && !isMobile) {\n // fix cursor position issue\n const input = inputRef.current.input;\n if (props.value === '0.') {\n input.selectionStart = 2;\n input.selectionEnd = 2;\n } else {\n input.selectionStart = position;\n input.selectionEnd = position;\n }\n }\n }, [position, props.value]);\n return (\n {\n const currentPosition = e.currentTarget?.selectionStart || 0;\n setPosition(currentPosition);\n\n props?.onChange && props?.onChange(e);\n }}\n onBlur={(e) => {\n if (props.max && WrappedBigNumber.from(props.max).notEq(0)) {\n if (WrappedBigNumber.from(props.value || 0).gt(props.max)) {\n e.target.value = props.max.toString();\n props?.onChange && props?.onChange(e);\n }\n }\n props.onBlur && props.onBlur(e);\n }}\n className={classNames('syn-input', props.className)}>\n );\n}\n\nexport function Search(props: Iprops): JSX.Element {\n return (\n }\n {...props}\n className={classNames('syn-search', props.className)}>\n );\n}\n","/**\n * @description Component-AnimatedInput\n */\nimport './index.less';\n\nimport { InputProps } from 'antd';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport React, { FC, useEffect, useRef, useState } from 'react';\nimport { animated, useSpring } from 'react-spring';\n\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n showInput: boolean;\n inputProps?: Omit & {\n value: string | number | undefined;\n };\n suffix?: React.ReactNode;\n onWrapperClick?: () => void;\n}\nconst AnimatedInput: FC = function ({ showInput, inputProps, className, suffix, onWrapperClick }) {\n const [isFocus, setIsFocus] = useState(false);\n const springStyles = useSpring({ width: showInput ? 97.95 : 0 });\n const inputRef = useRef(null);\n const [position, setPosition] = useState(0);\n useEffect(() => {\n inputRef?.current?.focus();\n\n return () => {\n inputRef?.current?.blur();\n };\n }, [showInput]);\n\n useEffect(() => {\n if (inputRef.current) {\n // fix cursor position issue\n const input = inputRef.current;\n if (inputProps?.value === '0.') {\n input.selectionStart = 2;\n input.selectionEnd = 2;\n } else {\n input.selectionStart = position;\n input.selectionEnd = position;\n }\n }\n }, [position, inputProps?.value]);\n return (\n
\n {\n showInput && inputRef?.current?.focus();\n !showInput && onWrapperClick && onWrapperClick();\n }}>\n \n {\n const currentPosition = e.currentTarget?.selectionStart || 0;\n setPosition(currentPosition);\n\n inputProps?.onChange && inputProps?.onChange(e);\n }}\n onFocus={(e) => {\n setIsFocus(true);\n inputProps?.onFocus && inputProps?.onFocus(e);\n }}\n onBlur={(e) => {\n if (inputProps?.max && WrappedBigNumber.from(inputProps.max).notEq(0)) {\n if (WrappedBigNumber.from(inputProps?.value || 0).gt(inputProps.max)) {\n e.target.value = inputProps.max.toString();\n inputProps?.onChange && inputProps?.onChange(e);\n }\n }\n setIsFocus(false);\n }}\n onWheel={(e) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e.target as any).blur();\n }}\n />\n \n {suffix}\n \n
\n );\n};\n\nexport default AnimatedInput;\n","import './index.less';\n\nimport { InputProps } from 'antd';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { TokenInfo } from '@/types/token';\n\nimport FormItem from '../FormItem';\nimport Input from '../Input';\nimport AnimatedInput from '../Input/AnimatedInput';\n\nexport function TokenFormInputComponent(\n props: Omit & {\n formLabel?: React.ReactNode;\n formClassName?: string;\n tokenInfo?: TokenInfo;\n msg?: string;\n status?: string;\n showMsg?: boolean;\n flexible?: string;\n value: string | number | undefined;\n },\n): JSX.Element {\n const [showInput, setShowInput] = useState(false);\n\n const suffixClicked = useCallback(() => {\n if (props.flexible) {\n setShowInput(!showInput);\n }\n }, [props.flexible, showInput]);\n useEffect(() => {\n if (!props.flexible) {\n setShowInput(true);\n }\n }, [props.flexible]);\n return (\n \n {props.flexible ? (\n \n {props.suffix || props.tokenInfo?.symbol}\n \n }\n />\n ) : (\n {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (e.target as any).blur();\n }}\n size={props.size}\n suffix={\n \n {props.suffix || props.tokenInfo?.symbol}\n \n }\n />\n )}\n {props.msg &&
{props.msg}
}\n \n );\n}\n\nexport const TokenFormInput = React.memo(TokenFormInputComponent);\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconWarningCircle = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15 8C15 11.9 11.9 15 8 15C4.1 15 1 11.9 1 8C1 4.1 4.1 1 8 1C11.9 1 15 4.1 15 8ZM9 11C9 11.6 8.6 12 8 12C7.4 12 7 11.6 7 11C7 10.4 7.4 10 8 10C8.6 10 9 10.4 9 11ZM8.5 9L9 4H7L7.5 9H8.5Z\",\n fill: \"#FF4D6A\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconWarningCircle);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_warning_circle.603d331de64f6317d00cbaa5cdc55a00.svg\";","import './index.less';\n\nimport { SyncOutlined } from '@ant-design/icons';\nimport React, { ReactNode } from 'react';\n\nimport { ReactComponent as IconWarning } from '@/assets/svg/icon_warning_circle.svg';\n\nexport function MessageComponent({\n loading,\n msg,\n status,\n hide,\n}: {\n msg: ReactNode;\n status: string | undefined;\n loading?: boolean | undefined;\n hide?: boolean;\n}): JSX.Element {\n const loadingNode: ReactNode = (\n \n Simulating Transaction ...\n \n );\n if (hide) {\n return <>;\n }\n return (\n
\n \n  \n {loading ? loadingNode : msg}   \n
\n );\n}\nexport const Message = React.memo(MessageComponent);\n","import './index.less';\n\nimport { InputProps } from 'antd';\nimport React, { memo, ReactNode } from 'react';\n\nimport { TokenFormInput } from '@/components/TokenFormInput';\nimport { TokenInfo } from '@/types/token';\nimport { inputNumChecker } from '@/utils/numberUtil';\n\nimport { Message } from '../Message';\n\nexport default function FormInputComponent({\n inputAmountStr,\n inputAmountStrChanged,\n loading,\n status,\n msg,\n suffix,\n max,\n tokenInfo,\n placeHolder,\n showMsg,\n disabled,\n className = '',\n onFocus,\n onBlur,\n formLabel,\n flexible,\n name,\n min,\n inputProps,\n maxCheckZero,\n}: {\n inputAmountStr: string;\n inputAmountStrChanged?: (inputAmountStr: string) => void;\n loading?: boolean | undefined;\n status?: string | undefined;\n msg?: string | undefined;\n suffix?: ReactNode;\n max?: number | string;\n min?: number | string;\n tokenInfo?: TokenInfo;\n placeHolder?: string;\n showMsg?: boolean;\n disabled?: boolean;\n className?: string;\n flexible?: string;\n formLabel?: React.ReactNode;\n name?: string;\n maxCheckZero?: boolean;\n onFocus?: React.FocusEventHandler | undefined;\n onBlur?: React.FocusEventHandler | undefined;\n inputProps?: InputProps;\n}): JSX.Element | null {\n return (\n
\n {\n const value = inputNumChecker(e.target.value || '', tokenInfo?.decimals || 4);\n if (min && Number(min) > Number(value)) {\n inputAmountStrChanged && inputAmountStrChanged(min.toString());\n }\n onBlur && onBlur(e);\n }}\n onWheel={(e) => {\n e.preventDefault();\n }}\n formLabel={formLabel}\n disabled={disabled}\n max={maxCheckZero ? max : max || Infinity}\n suffix={suffix}\n onChange={(ipt) => {\n const value = inputNumChecker(ipt.target.value || '', tokenInfo?.decimals || 4);\n if (maxCheckZero) {\n if (Number(value) > Number(max)) {\n max !== undefined && inputAmountStrChanged && inputAmountStrChanged(max.toString());\n } else {\n inputAmountStrChanged && inputAmountStrChanged(value);\n }\n } else {\n if (max && Number(value) > Number(max)) {\n max && inputAmountStrChanged && inputAmountStrChanged(max.toString());\n } else {\n inputAmountStrChanged && inputAmountStrChanged(value);\n }\n }\n }}\n value={inputAmountStr}\n />\n {showMsg && }\n
\n );\n}\n\nexport const FormInput = memo(FormInputComponent);\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgArrowRight = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 11,\n height: 8,\n viewBox: \"0 0 11 8\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.46 4.8012V3.77219H8.811L6.655 1.61619L7.292 0.979195L10.603 4.29019L7.292 7.6012L6.655 6.9642L8.818 4.8012H0.46Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgArrowRight);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/arrow-right.2600eddc365c1e85aabf5bed0169fb65.svg\";","import { ComponentProps } from 'react';\nexport const RightArrow = ({ color = 'white' }: { color?: string }) => {\n return (\n \n \n \n );\n};\nexport const CalenderIcon = ({ color = 'var(--icon-grey1)', width = 12 }: { color?: string; width?: number }) => {\n return (\n \n \n \n \n );\n};\nexport const TimeIcon = ({ color = 'black' }: { color?: string }) => {\n return (\n \n \n \n \n );\n};\nexport const ExplorerIcon = ({ color = '#1F292E', ...others }: ComponentProps<'svg'> & { color?: string }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n );\n};\nexport const HistoryIcon = ({ color = 'white' }: { color?: string }) => (\n \n \n \n);\n\nexport const ArrowRightIcon = () => {\n return (\n \n \n \n \n \n );\n};\n\nexport const NoRecordIcon = ({ color1 = '#94B8BF', color2 = '#C3E7E7' }: { color1?: string; color2?: string }) => {\n return (\n \n \n \n \n \n );\n};\n\nexport const CloseIcon = ({ color = 'var(--theme-text)' }: { color?: string }) => (\n \n \n \n);\n\nexport const FarcasterIcon = ({ color = '#7C65C1', ...others }: { color?: string } & ComponentProps<'svg'>) => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\nexport const ChangeIcon = ({ color = 'var(--theme-text)' }: { color?: string }) => {\n return (\n \n \n \n \n );\n};\n\nexport const ExchangeIcon = ({ color = 'var(--theme-text)' }: { color?: string }) => {\n return (\n \n \n \n \n \n );\n};\n\nexport const CrossIcon = ({ color = 'var(--theme-text)' }: { color?: string }) => {\n return (\n \n \n \n );\n};\n\nexport const EarnIcon = ({ color = 'var(--theme-text)' }: { color?: string }) => {\n return (\n \n \n \n \n );\n};\n\nexport const CampaignIcon = ({ color = 'var(--theme-text)' }: { color?: string }) => {\n return (\n \n \n \n );\n};\n\nexport const TGPIcon = ({ color = 'var(--theme-text)' }: { color?: string }) => {\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n","/**\n * @description Component-UnderlineToolTip\n */\nimport './index.less';\n\nimport { Tooltip, TooltipProps } from 'antd';\nimport BN from 'bignumber.js';\nimport classNames from 'classnames';\nimport { FC } from 'react';\nimport { useMediaQuery } from 'react-responsive';\n\nimport { negativeNumberColor } from '@/components/NumberFormat';\n\nexport type LearnMoreTooltip = Omit & {\n link?: string;\n linkText?: string;\n};\n\nconst UnderlineToolTip: FC<\n TooltipProps & {\n textOverflowEllipsisProps?: {\n viewportMinWidth: number;\n viewportMaxWidth: number;\n underlineWidth: string;\n textMaxWidth: string;\n };\n colorShaderProps?: { num: BN };\n }\n> = function (props) {\n const isTextOverflowEllipsis =\n useMediaQuery({\n minWidth: props.textOverflowEllipsisProps?.viewportMinWidth || 1280,\n maxWidth: props.textOverflowEllipsisProps?.viewportMaxWidth || 1440,\n }) && !!props.textOverflowEllipsisProps;\n return (\n \n
{props.children}
\n {props.title as JSX.Element}\n \n ) : (\n props.title\n )\n }>\n \n {props.children}\n \n {/* // Since text-overflow hidden will hide the bottom border (after:) so adding extra bottom border for isTextOverflowEllipsis = true */}\n {isTextOverflowEllipsis && (\n \n )}\n \n );\n};\n\nexport default UnderlineToolTip;\n","import { ThirdGlobalModalType } from '@/constants';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useThirdModalOpen, useToggleThirdModal } from '@/features/global/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nexport const useIsTokenExchangeHidden = (qouteTokenSymbol?: string) => {\n const chainId = useChainId();\n const backendChainConfig = useBackendChainConfig(chainId);\n const hiddenBtns = backendChainConfig?.exchange?.hiddenBtns;\n\n return hiddenBtns?.includes(qouteTokenSymbol?.toUpperCase() || 'USDB');\n};\nexport function useTokenExchangeModal() {\n const isOpenModal = useThirdModalOpen(ThirdGlobalModalType.TOKEN_EXCHANGE);\n const toggleModal = useToggleThirdModal(ThirdGlobalModalType.TOKEN_EXCHANGE);\n return {\n isOpenModal,\n toggleModal,\n };\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconBtnCheck = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13.3508 4.15938C13.7537 4.53711 13.7741 5.16995 13.3964 5.57286L7.56304 11.7951C7.19237 12.1905 6.57421 12.2186 6.16914 11.8586L2.66914 8.74744C2.25636 8.38052 2.21918 7.74845 2.5861 7.33567C2.95302 6.92288 3.58509 6.8857 3.99787 7.25262L6.77002 9.71675L11.9373 4.20498C12.315 3.80207 12.9479 3.78165 13.3508 4.15938Z\",\n fill: \"#29B5BC\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconBtnCheck);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_btn_check.ef4279baba2c1a62d1434d75784de3dc.svg\";","/**\n * @description Component-BalanceMax\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { FC, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { IconToolTip } from '@/components/ToolTip';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { TokenInfo } from '@/types/token';\ninterface IPropTypes {\n className?: string;\n isShowTitle?: boolean;\n title?: string;\n isShowBalance?: boolean;\n max: WrappedBigNumber | undefined;\n marginToken?: TokenInfo;\n onClickMax?: (maxBalance: WrappedBigNumber) => void;\n showMax?: boolean;\n tooltip?: string;\n}\nconst BalanceMax: FC = function ({\n title,\n isShowTitle,\n isShowBalance = true,\n className,\n onClickMax,\n max,\n showMax = true,\n tooltip,\n}) {\n const { t } = useTranslation();\n const onClickMaxLink = useCallback(\n (balance: WrappedBigNumber) => {\n onClickMax && onClickMax(balance);\n },\n [onClickMax],\n );\n\n return (\n
\n {isShowTitle && {title}}\n {isShowBalance && max?.formatDisplayNumber()}\n {showMax && (\n {\n max && onClickMaxLink(max);\n }}>\n {t('common.max')}\n \n )}\n {tooltip && }\n
\n );\n};\n\nexport default BalanceMax;\n","export const LoadingIcon = (): JSX.Element => (\n \n \n \n);\n","/**\n * @description Component-Button\n */\nimport './index.less';\n\nimport classnames from 'classnames';\nimport { FC, useMemo } from 'react';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { IButtonProps, IButtonType } from '@/types/button';\n\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport _ from 'lodash';\nimport { useTranslation } from 'react-i18next';\nimport { LoadingIcon } from './elements';\n\ntype PropMapTypes = {\n [propName in IButtonType]: string;\n};\n\nconst Button: FC = function ({\n className,\n size,\n children,\n icon,\n ghost,\n style,\n chainIconProps,\n disabled,\n isBlocked,\n suffixNode,\n ingoreMobile = false,\n ...props\n}) {\n const { deviceType } = useMediaQueryDevice();\n const { t } = useTranslation();\n const btnClassName = useMemo(() => {\n if (props.type === undefined) return 'syn-btn-default';\n const typeMap: PropMapTypes = {\n primary: 'primary',\n link: 'link',\n dashed: 'radio',\n text: 'text',\n default: 'default',\n outline: 'outline',\n };\n return `syn-btn-${typeMap[props.type] || props.type}`;\n }, [props.type]);\n\n const iconNode = useMemo(() => {\n if (props.loading) {\n return (\n \n \n \n );\n }\n if (chainIconProps) {\n return (\n \n \n \n );\n }\n if (!icon) {\n return null;\n }\n return {icon};\n }, [chainIconProps, icon, props.loading]);\n\n const suffix = useMemo(() => {\n if (props.loading || !suffixNode) {\n return null;\n }\n return {suffixNode};\n }, [suffixNode, props.loading]);\n return (\n {\n props.href && window.open(props.href, props.target);\n if (props.loading) return;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props.onClick && props.onClick(e as any);\n }}\n type={'button'}>\n {isBlocked ? (\n t('common.blocked')\n ) : (\n <>\n {iconNode}\n {children}\n {suffix}\n \n )}\n \n );\n};\n\nexport default Button;\n","/**\n * @description Component-ButtonGroupSelector\n */\nimport './index.less';\n\nimport cls from 'classnames';\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport { IButtonGroupSelectorItemProps, IButtonGroupSelectorProps } from '@/types/button';\n\nimport Button from '../Button';\nimport { ReactComponent as CheckIcon } from './assets/icon_btn_check.svg';\ninterface ICurrItemProps extends Omit {\n value: Set;\n}\ntype IItemClickParams = (\n value: IButtonGroupSelectorItemProps['value'],\n group: IButtonGroupSelectorItemProps['group'],\n) => void;\n\nconst ButtonGroupSelector: FC = function ({\n value,\n items = [],\n onClick,\n valueSelected,\n ...props\n}) {\n const [currItem, setCurrItem] = useState({\n group: undefined,\n value: new Set(),\n });\n useEffect(() => {\n if (value !== undefined) {\n setCurrItem({\n group: value.group,\n value: new Set(value.value),\n });\n }\n // onInnerClick(value.value, value.group)\n }, [value]);\n const onInnerClick: IItemClickParams = useCallback(\n (value, group) => {\n let curr = currItem;\n if (curr === undefined) return curr;\n if (curr.group !== group) {\n // * change group, reset value\n curr.value.clear();\n curr.value.add(value);\n curr = {\n group,\n value: curr.value,\n };\n valueSelected && valueSelected(value);\n } else if (curr.value.has(value)) {\n curr.value.delete(value);\n } else {\n curr.value.add(value);\n valueSelected && valueSelected(value);\n }\n onClick && onClick(Array.from(curr.value), curr.value.size === 0 ? undefined : curr.group);\n },\n\n [currItem, onClick, valueSelected],\n );\n const renderButtons = useMemo(() => {\n return items.map((item, idx) => {\n return (\n onInnerClick(item.value, item.group)}\n ghost\n shape=\"round\"\n className={cls('syn-button_group_selector-item', {\n ['active']: item.group === currItem.group && currItem.value.has(item.value),\n })}>\n \n {item.label}\n \n );\n });\n }, [items, currItem, onInnerClick]);\n return
{renderButtons}
;\n};\n\nexport default ButtonGroupSelector;\n","import './Checkbox.less';\n\nimport { Checkbox as AntDCheckbox, CheckboxProps } from 'antd';\nimport classNames from 'classnames';\n\nexport default function Checkbox(props: CheckboxProps): JSX.Element {\n return ;\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconNavConnect24 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.27863 4.82422C4.41667 4.82422 3.59002 5.16663 2.98053 5.77612C2.37104 6.38562 2.02863 7.21227 2.02863 8.07422C2.02863 8.93617 2.37104 9.76282 2.98053 10.3723C3.59002 10.9818 4.41667 11.3242 5.27863 11.3242H5.94529C6.35951 11.3242 6.69529 11.66 6.69529 12.0742C6.69529 12.4884 6.35951 12.8242 5.94529 12.8242H5.27863C4.01885 12.8242 2.81067 12.3238 1.91987 11.433C1.02907 10.5422 0.528625 9.334 0.528625 8.07422C0.528625 6.81444 1.02907 5.60626 1.91987 4.71546C2.81067 3.82466 4.01885 3.32422 5.27863 3.32422H5.94529C6.35951 3.32422 6.69529 3.66001 6.69529 4.07422C6.69529 4.48843 6.35951 4.82422 5.94529 4.82422H5.27863ZM9.19529 4.07422C9.19529 3.66001 9.53108 3.32422 9.94529 3.32422H10.612C11.8717 3.32422 13.0799 3.82466 13.9707 4.71546C14.8615 5.60626 15.362 6.81444 15.362 8.07422C15.362 9.334 14.8615 10.5422 13.9707 11.433C13.0799 12.3238 11.8717 12.8242 10.612 12.8242H9.94529C9.53108 12.8242 9.19529 12.4884 9.19529 12.0742C9.19529 11.66 9.53108 11.3242 9.94529 11.3242H10.612C11.4739 11.3242 12.3006 10.9818 12.9101 10.3723C13.5195 9.76282 13.862 8.93617 13.862 8.07422C13.862 7.21227 13.5195 6.38561 12.9101 5.77612C12.3006 5.16663 11.4739 4.82422 10.612 4.82422H9.94529C9.53108 4.82422 9.19529 4.48843 9.19529 4.07422ZM5.19529 8.07422C5.19529 7.66001 5.53108 7.32422 5.94529 7.32422H9.94529C10.3595 7.32422 10.6953 7.66001 10.6953 8.07422C10.6953 8.48843 10.3595 8.82422 9.94529 8.82422H5.94529C5.53108 8.82422 5.19529 8.48843 5.19529 8.07422Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconNavConnect24);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_nav_connect_24.2b72bc075cb61a282d7938fbc4bd569f.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconNavSwitchG = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.303 2.80301C11.5959 2.51012 12.0708 2.51012 12.3637 2.80301L13.697 4.13635C13.8377 4.277 13.9167 4.46776 13.9167 4.66668C13.9167 4.86559 13.8377 5.05635 13.697 5.19701L12.3637 6.53034C12.0708 6.82323 11.5959 6.82323 11.303 6.53034C11.0102 6.23745 11.0102 5.76257 11.303 5.46968L11.3554 5.41733C11.0071 5.419 10.7488 5.42489 10.5356 5.44561C10.2625 5.47215 10.1227 5.51881 10.0165 5.57893C9.91037 5.63905 9.79846 5.73488 9.63518 5.95541C9.46224 6.189 9.2699 6.50798 8.97795 6.99457L7.29073 9.80661C7.02121 10.2558 6.79187 10.6381 6.57044 10.9372C6.33453 11.2558 6.0749 11.5269 5.72258 11.7264C5.37026 11.9259 5.00422 12.009 4.6096 12.0474C4.23922 12.0834 3.79345 12.0834 3.26959 12.0833H2.83337C2.41916 12.0833 2.08337 11.7476 2.08337 11.3333C2.08337 10.9191 2.41916 10.5833 2.83337 10.5833H3.23528C3.80273 10.5833 4.17522 10.5825 4.46449 10.5544C4.7376 10.5279 4.87735 10.4812 4.98353 10.4211C5.08972 10.361 5.20162 10.2651 5.3649 10.0446C5.53784 9.81102 5.73018 9.49204 6.02213 9.00545L7.70936 6.19341C7.97887 5.74419 8.20821 5.36193 8.42964 5.06285C8.66555 4.74421 8.92518 4.47311 9.2775 4.27363C9.62982 4.07415 9.99587 3.991 10.3905 3.95264C10.6694 3.92554 10.991 3.91885 11.3566 3.91721L11.303 3.86367C11.0102 3.57078 11.0102 3.09591 11.303 2.80301Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.60648 5.43969C4.50501 5.41994 4.3857 5.41666 3.94512 5.41666H2.83337C2.41916 5.41666 2.08337 5.08088 2.08337 4.66666C2.08337 4.25245 2.41916 3.91666 2.83337 3.91666H3.94512C3.96595 3.91666 3.98651 3.91665 4.00682 3.91664C4.3569 3.91648 4.63117 3.91635 4.89307 3.96732C5.47934 4.08144 6.01252 4.38332 6.41201 4.82733C6.59047 5.02568 6.73146 5.26093 6.91144 5.56121C6.92187 5.57863 6.93244 5.59627 6.94316 5.61413C7.15627 5.96931 7.0411 6.43001 6.68591 6.64312C6.33073 6.85623 5.87003 6.74105 5.65692 6.38587C5.43025 6.00808 5.36605 5.90745 5.29691 5.8306C5.11532 5.62878 4.87297 5.49156 4.60648 5.43969ZM8.31417 9.35688C8.66935 9.14377 9.13005 9.25894 9.34316 9.61413C9.56983 9.99191 9.63403 10.0925 9.70317 10.1694C9.88476 10.3712 10.1271 10.5084 10.3936 10.5603C10.4951 10.5801 10.6144 10.5833 11.055 10.5833H11.356L11.303 10.5303C11.0102 10.2374 11.0102 9.76256 11.303 9.46967C11.5959 9.17677 12.0708 9.17677 12.3637 9.46967L13.697 10.803C13.8377 10.9437 13.9167 11.1344 13.9167 11.3333C13.9167 11.5322 13.8377 11.723 13.697 11.8637L12.3637 13.197C12.0708 13.4899 11.5959 13.4899 11.303 13.197C11.0102 12.9041 11.0102 12.4292 11.303 12.1363L11.356 12.0833H11.055C11.0341 12.0833 11.0136 12.0833 10.9933 12.0834C10.6432 12.0835 10.3689 12.0836 10.107 12.0327C9.52074 11.9186 8.98756 11.6167 8.58808 11.1727C8.40962 10.9743 8.26861 10.739 8.08864 10.4388C8.0782 10.4214 8.06763 10.4037 8.05692 10.3859C7.84381 10.0307 7.95898 9.56999 8.31417 9.35688Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconNavSwitchG);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_nav_switch_g.0b3c9c0aa65670fa034ce0d9b9458dde.svg\";","/**\n * @description Component-NetworkButton\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { FC, useMemo } from 'react';\n\nimport { Button } from '@/components/Button';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { NetworkButtonProps } from '@/types/button';\n\nimport { ReactComponent as LinkIcon } from './assets/icon_nav_connect_24.svg';\nimport { ReactComponent as NetWorkIcon } from './assets/icon_nav_switch_g.svg';\n\nconst NetworkButton: FC = function ({ children, iconType, ghost = false, ...props }) {\n const { isMobile } = useMediaQueryDevice();\n const icon = useMemo(() => {\n return iconType === 'network' ? (\n \n ) : isMobile ? (\n <>\n ) : (\n \n );\n }, [iconType, isMobile]);\n return (\n \n {children}\n \n );\n};\n\nexport default NetworkButton;\n\nexport const NetworkButtonBorder: FC = function ({ children, iconType, ghost = false, ...props }) {\n const icon = useMemo(() => {\n return iconType === 'network' ? : ;\n }, [iconType]);\n return (\n \n {children}\n \n );\n};\n","/**\n * @description Component-SwitchBtn\n */\nimport './index.less';\n\nimport { Switch } from 'antd';\nimport classNames from 'classnames';\nimport React, { FC, memo } from 'react';\n\nimport { IButtonProps } from '@/types/button';\ninterface IPropTypes extends IButtonProps {\n isChecked: boolean;\n labelLeft?: string;\n twoSided?: boolean;\n onSwitch: (checked: boolean) => void;\n}\nconst SwitchBtn: FC = function ({\n children,\n disabled,\n isChecked,\n onSwitch,\n labelLeft,\n twoSided,\n ...props\n}) {\n return (\n ) => {\n e.stopPropagation();\n }}>\n
\n {labelLeft}\n {\n e.stopPropagation();\n onSwitch && onSwitch(checked);\n }}\n />\n {children}\n
\n \n );\n};\n\nexport default memo(SwitchBtn);\n","/**\n * @description Component-WrapETHButton\n */\nimport { Button } from '@/components/Button';\nimport './index.less';\n\nimport { TabType } from '@/constants';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { setGateAccountState } from '@/features/balance/actions';\nimport { useWrappedNativeToken } from '@/features/chain/hook';\nimport { setEarnFormType } from '@/features/earn/action';\nimport { useTabType } from '@/features/global/hooks';\nimport { setTradeFormType } from '@/features/trade/actions';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { getDefaultITradeAccountState } from '@/types/balance';\nimport { TokenInfo } from '@/types/token';\nimport { FC, useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n quote: TokenInfo | undefined;\n}\nconst WrapETHButton: FC = function ({ quote }) {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const wrappedNative = useWrappedNativeToken(chainId);\n const tabType = useTabType();\n const isWrappedNative = useMemo(() => {\n return wrappedNative?.address === quote?.address;\n }, [quote?.address, wrappedNative?.address]);\n\n const openDepositNativeCard = useCallback(() => {\n if (tabType === TabType.Trade) {\n chainId &&\n dispatch(\n setTradeFormType({\n chainId,\n tradeType: TRADE_TYPE.DEPOSIT_NATIVE,\n }),\n );\n } else {\n chainId &&\n dispatch(\n setEarnFormType({\n chainId,\n formType: EARN_TYPE.DEPOSIT_NATIVE,\n }),\n );\n }\n }, [chainId, dispatch, tabType]);\n\n if (!isWrappedNative) return null;\n return (\n {\n chainId &&\n dispatch(\n setGateAccountState({\n chainId,\n ...getDefaultITradeAccountState(),\n }),\n );\n openDepositNativeCard();\n }}>\n {t('common.tradePage.wrapETH')}\n \n );\n};\n\nexport default WrapETHButton;\n","import { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { QUERY_KEYS } from '@/constants/query';\nimport { SPOT_KLINE_INTERVAL, SPOT_KLINE_INTERVAL_TICK_GAP } from '@/constants/spot';\nimport { queryClient } from '@/pages/App';\nimport { ISpotOrderbookDex } from '@/types/spot';\nimport { TokenInfo } from '@/types/token';\nimport _ from 'lodash';\n\ninterface ISpotOrderbookPoolWithPercent extends ISpotOrderbookDex {\n percent: number;\n}\n\nexport function getPoolsWithPercent(dexes: ISpotOrderbookDex[]): ISpotOrderbookPoolWithPercent[] {\n if (!dexes.length) return [];\n\n const totalToken0Size = dexes.reduce((sum, pool) => sum + pool.token0Size, 0);\n\n return dexes.map((dex) => ({\n ...dex,\n percent: totalToken0Size ? dex.token0Size / totalToken0Size : 0,\n }));\n}\n\nexport const getSpotXAxisTickFormatter = (timestamp: number, index: number, interval: SPOT_KLINE_INTERVAL): string => {\n const date = new Date(timestamp);\n\n switch (interval) {\n case SPOT_KLINE_INTERVAL.H_1:\n // Format: HH:MM\n return date.toLocaleTimeString('default', {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n\n case SPOT_KLINE_INTERVAL.D_1:\n // For index 3, show MM-DD, otherwise show HH:MM\n if (index === 3) {\n return date\n .toLocaleDateString('default', {\n month: '2-digit',\n day: '2-digit',\n })\n .replace('/', '-');\n }\n return date.toLocaleTimeString('default', {\n hour: '2-digit',\n minute: '2-digit',\n hour12: false,\n });\n\n case SPOT_KLINE_INTERVAL.W_1:\n // For index 2, show MM-DD, otherwise show DD\n if (index === 2) {\n return date\n .toLocaleDateString('default', {\n month: '2-digit',\n day: '2-digit',\n })\n .replace('/', '-');\n }\n return date.toLocaleDateString('default', { day: '2-digit' });\n\n default:\n return '';\n }\n};\nexport const getSpotXAxisTicks = (startTime: number, endTime: number, interval: SPOT_KLINE_INTERVAL): number[] => {\n const ticks = [];\n let currentTick = startTime;\n const incr = SPOT_KLINE_INTERVAL_TICK_GAP[interval];\n while (currentTick < endTime) {\n currentTick = currentTick + incr;\n if (currentTick > endTime) {\n currentTick = endTime;\n }\n ticks.push(currentTick);\n }\n return ticks;\n};\n\nexport const getSpotTokenList = (chainId: number) => {\n const tokenList = queryClient.getQueryData(QUERY_KEYS.SPOT.TOKEN_LIST(chainId));\n if (!tokenList) return [];\n return tokenList;\n};\n\nexport const getSearchRanking = (search: string, symbol: string): number => {\n const symbolIndex = symbol.toLowerCase().indexOf(search.trim().toLowerCase());\n return symbolIndex;\n};\nexport const bothNative = (token1: TokenInfo, token2: TokenInfo): boolean => {\n const native = _.get(DAPP_CHAIN_CONFIGS, [token1.chainId]).nativeToken;\n const wrappedNative = _.get(DAPP_CHAIN_CONFIGS, [token1.chainId]).wrappedNativeToken;\n return (\n (token1.address === native.address && token2.address === wrappedNative.address) ||\n (token1.address === wrappedNative.address && token2.address === native.address)\n );\n};\n","import { getSpotApiUrl } from '@/constants/spot';\nimport { ISpotKlinePoint, ISpotOrderbook, ISpotOrderbookData, ISpotPairPrice, ISpotPoolsData } from '@/types/spot';\nimport { TokenInfo } from '@/types/token';\nimport { axiosGet } from '@/utils/axios';\nimport { getPoolsWithPercent } from '@/utils/spot';\nimport { Context } from '@derivation-tech/context';\nimport { OrderHistory } from '@synfutures/sdks-aggregator-datasource';\nimport { TokenInfoInSpot } from './types';\nexport const getSpotPools = async (chainId: number, token0: string | undefined, token1: string | undefined) => {\n const res = await axiosGet({\n url: getSpotApiUrl('pools'),\n config: {\n params: { chainId, token0, token1 },\n },\n });\n const data = res?.data?.data as ISpotPoolsData | undefined;\n if (data) {\n return data.pools;\n }\n\n return null;\n};\n\nexport const getSpotPairsKlineData = async (\n chainId: number | undefined,\n token0: string | undefined,\n token1: string | undefined,\n interval: string,\n): Promise => {\n const res = await axiosGet({\n url: getSpotApiUrl('kline'),\n config: {\n params: { chainId, token0, token1, interval },\n },\n });\n return res?.data?.data || null;\n};\n\nexport const getSpotOrderBookDepth = async (\n chainId: number | undefined,\n token0: string | undefined,\n token1: string | undefined,\n stepRatio: number,\n): Promise => {\n const res = await axiosGet({\n url: getSpotApiUrl('depth'),\n config: {\n params: { chainId, token0, token1, stepRatio },\n },\n });\n if (res?.data?.data === null) {\n return { isMultiple: true, midPrice: 0, left: [], right: [] };\n }\n return {\n isMultiple: false,\n ...res?.data?.data,\n left: res?.data?.data.left.map((item: ISpotOrderbookData) => ({\n ...item,\n dexes: getPoolsWithPercent(item.dexes),\n })),\n right: res?.data?.data.right.map((item: ISpotOrderbookData) => ({\n ...item,\n dexes: getPoolsWithPercent(item.dexes),\n })),\n };\n};\n\nexport const getSpotPairPrice = async (\n chainId: number | undefined,\n token0: string | undefined,\n token1: string | undefined,\n): Promise => {\n const res = await axiosGet({\n url: getSpotApiUrl('price'),\n config: { params: { token0, token1, chainId } },\n });\n\n return res?.data?.data || null;\n};\nexport const getSpotTokens = async (\n chainId: number | undefined,\n selectedToken?: string | undefined,\n): Promise => {\n const res = await axiosGet({\n url: getSpotApiUrl('token-list'),\n config: selectedToken ? { params: { chainId, selectedToken } } : { params: { chainId } },\n });\n\n const tokenList: TokenInfo[] | undefined = res?.data?.data.tokenList.map((token: TokenInfo) => ({\n ...token,\n chainId,\n address: token.address.toLowerCase(),\n }));\n\n const tokenSymbols = tokenList?.map((token) => token.symbol);\n const duplicateSymbols = tokenSymbols?.filter((symbol, index) => tokenSymbols.indexOf(symbol) !== index);\n\n return tokenList?.map((token) => ({\n ...token,\n isSymbolDuplicated: duplicateSymbols?.includes(token.symbol) || false,\n }));\n};\nexport const getSpotHistory = async (user: string, sdk: Context): Promise => {\n const res = await sdk.aggregatorDataSource.getOrderHistory({ user });\n return res.orderHistory;\n};\n","import { QUERY_KEYS } from '@/constants/query';\nimport { SPOT_DETAIL_POLLING_INTERVAL, SPOT_KLINE_INTERVAL, SPOT_SIMULATION_TIME_OUT } from '@/constants/spot';\nimport SentryService from '@/entities/SentryService';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { ISimulationResult } from '@/types/spot';\nimport { bothNative } from '@/utils/spot';\nimport { wrapNativeAddress } from '@/utils/token';\nimport { perToTenThousands } from '@/utils/trade';\nimport { Context } from '@derivation-tech/context';\nimport { SimulateMultiSwapResult } from '@synfutures/sdks-aggregator';\nimport { UseQueryResult, useQuery } from '@tanstack/react-query';\nimport { parseUnits } from 'ethers/lib/utils';\nimport { useMemo } from 'react';\nimport { useChainId } from 'wagmi';\nimport { useNativeToken } from '../chain/hook';\nimport { useGlobalConfig } from '../global/hooks';\nimport { useSDK } from '../web3/hook';\nimport {\n getSpotHistory,\n getSpotOrderBookDepth,\n getSpotPairPrice,\n getSpotPairsKlineData,\n getSpotPools,\n getSpotTokens,\n} from './api';\nimport { useSpotState } from './store';\n\nexport const useSpotPools = (chainId: number | undefined, token0: string | undefined, token1: string | undefined) => {\n token0 = wrapNativeAddress(token0, chainId);\n token1 = wrapNativeAddress(token1, chainId);\n const userAddr = useUserAddr();\n const queryReturn = useQuery({\n queryKey: QUERY_KEYS.SPOT.POOLS(chainId, token0, token1),\n queryFn: async () => (chainId ? getSpotPools(chainId, token0, token1) : null),\n enabled: chainId !== undefined && token0 !== undefined && token1 !== undefined && !!userAddr,\n staleTime: 10 * 1000,\n refetchInterval: 10 * 1000,\n gcTime: 10 * 1000 + 60 * 1000,\n //initialData: getSpotPoolsWithAnchorTokenPairData(mockSpotPoolsResponseData),\n });\n return useMemo(() => {\n return queryReturn;\n }, [queryReturn]);\n};\n\nexport const useSpotTokens = ({\n chainId,\n includeNativeToken = false,\n}: {\n chainId: number | undefined;\n includeNativeToken?: boolean;\n}) => {\n const nativeToken = useNativeToken(chainId);\n const queryReturn = useQuery({\n queryKey: QUERY_KEYS.SPOT.TOKEN_LIST(chainId),\n queryFn: async () => (chainId ? getSpotTokens(chainId) : null),\n enabled: chainId !== undefined,\n staleTime: 60 * 1000,\n refetchInterval: 60 * 1000,\n gcTime: 60 * 1000 + 60 * 1000,\n });\n const isNativeTokenSymbolDuplicated =\n queryReturn.data?.some((token) => token.symbol === nativeToken?.symbol) || false;\n\n return useMemo(() => {\n return {\n ...queryReturn,\n data:\n includeNativeToken && nativeToken\n ? queryReturn.data?.concat({ ...nativeToken, isSymbolDuplicated: isNativeTokenSymbolDuplicated })\n : queryReturn.data,\n };\n }, [includeNativeToken, isNativeTokenSymbolDuplicated, nativeToken, queryReturn]);\n};\n\nexport const useSpotKlinePoints = (\n chainId: number | undefined,\n token0: string | undefined,\n token1: string | undefined,\n interval: SPOT_KLINE_INTERVAL,\n) => {\n token0 = wrapNativeAddress(token0, chainId);\n token1 = wrapNativeAddress(token1, chainId);\n const queryReturn = useQuery({\n queryKey: QUERY_KEYS.SPOT.KLINE(chainId, token0, token1, interval),\n queryFn: async () => getSpotPairsKlineData(chainId, token0, token1, interval),\n enabled: chainId !== undefined && token0 !== undefined && token1 !== undefined,\n refetchInterval: 1 * 60 * 1000,\n staleTime: 1 * 60 * 1000,\n gcTime: 1 * 60 * 1000 + 60 * 1000,\n });\n return useMemo(() => {\n return queryReturn;\n }, [queryReturn]);\n};\n\nexport const useSpotOrderBookDepth = (\n chainId: number | undefined,\n token0: string | undefined,\n token1: string | undefined,\n stepRatio: number,\n) => {\n token0 = wrapNativeAddress(token0, chainId);\n token1 = wrapNativeAddress(token1, chainId);\n const queryReturn = useQuery({\n queryKey: QUERY_KEYS.SPOT.DEPTH(chainId, token0, token1, stepRatio),\n queryFn: async () => (chainId ? getSpotOrderBookDepth(chainId, token0, token1, stepRatio) : null),\n enabled: chainId !== undefined && token0 !== undefined && token1 !== undefined,\n refetchInterval: 10 * 1000,\n staleTime: 10 * 1000,\n gcTime: 10 * 1000 + 60 * 1000,\n //initialData: mockData2,\n });\n return useMemo(() => {\n return queryReturn;\n }, [queryReturn]);\n};\n\nexport const useSpotPairPrice = (\n chainId: number | undefined,\n token0: string | undefined,\n token1: string | undefined,\n) => {\n token0 = wrapNativeAddress(token0, chainId);\n token1 = wrapNativeAddress(token1, chainId);\n const queryReturn = useQuery({\n queryKey: QUERY_KEYS.SPOT.PRICE(chainId, token0, token1),\n queryFn: async () => (chainId ? getSpotPairPrice(chainId, token0, token1) : null),\n enabled: chainId !== undefined && token0 !== undefined && token1 !== undefined,\n refetchInterval: 1 * 60 * 1000,\n staleTime: 1 * 60 * 1000,\n gcTime: 1 * 60 * 1000 + 60 * 1000,\n });\n return useMemo(() => {\n const { data, ...others } = queryReturn;\n return {\n ...others,\n data: data\n ? {\n price: WrappedBigNumber.from(data.price),\n _24hChanged: WrappedBigNumber.from(data._24hChanged),\n _24hHigh: WrappedBigNumber.from(data._24hHigh),\n _24hLow: WrappedBigNumber.from(data._24hLow),\n _24hVolumeToken0: WrappedBigNumber.from(data._24hVolumeToken0),\n _24hVolumeToken1: WrappedBigNumber.from(data._24hVolumeToken1),\n }\n : data,\n };\n }, [queryReturn]);\n};\n\nexport const useSpotHistory = (user: string | undefined, sdk: Context | undefined, chainId: number | undefined) => {\n const { newTxHashForFetchingHistory: newTransactionHashForFetchingHistory } = useSpotState();\n const queryReturn = useQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.SPOT.HISTORY(user, chainId),\n queryFn: async () => (user && sdk ? getSpotHistory(user, sdk) : []),\n enabled: !!user && sdk !== undefined,\n refetchInterval: ({ state }) => {\n if (newTransactionHashForFetchingHistory === null) {\n return false;\n }\n const newTxInHistory = !!state.data?.find(\n (item) => item.transactionHash === newTransactionHashForFetchingHistory,\n );\n return newTxInHistory ? false : 3 * 1000;\n },\n });\n return useMemo(() => {\n return queryReturn;\n }, [queryReturn]);\n};\n\nexport const useSimulateSwap = (): UseQueryResult => {\n const { sellAmount: amount, token1: buyToken, token0: sellToken, swapping } = useSpotState();\n const chainId = useChainId();\n const sdk = useSDK(chainId);\n const userAddr = useUserAddr();\n const { slippage } = useGlobalConfig(chainId);\n const { poolsToExclude } = useSpotState();\n const queryReturn = useQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.SPOT.SIMULATE_SWAP(chainId, userAddr, amount, sellToken?.address, buyToken?.address),\n queryFn: async () => {\n if (WrappedBigNumber.from(amount || 0).eq(0)) {\n return null;\n }\n if (bothNative(sellToken, buyToken)) {\n return {\n nativeSwap: {\n priceImpact: 0,\n minReceivedAmount: parseUnits(amount, buyToken.decimals),\n },\n };\n }\n\n if (amount && buyToken && sellToken && sdk && userAddr) {\n let timeoutId: NodeJS.Timeout | undefined;\n // ETH-USDC pair ,the gas fee is too high, so we use direct swap\n const isETHToUSDC =\n (['ETH', 'WETH'].includes(sellToken?.symbol) && buyToken?.symbol === 'USDC') ||\n (sellToken?.symbol === 'USDC' && ['ETH', 'WETH'].includes(buyToken?.symbol));\n\n try {\n const simulatePromise = sdk.aggregator.simulateMultiSwap({\n fromTokenAddress: sellToken.address,\n toTokenAddress: buyToken.address,\n fromTokenDecimals: sellToken.decimals,\n toTokenDecimals: buyToken.decimals,\n fromAmount: parseUnits(amount, sellToken.decimals),\n excludePoolTypes: poolsToExclude,\n isDirect: isETHToUSDC,\n slippageInBps: perToTenThousands(Number(slippage)),\n });\n\n const timeoutPromise = new Promise((resolve) => {\n timeoutId = setTimeout(() => {\n resolve(false);\n }, SPOT_SIMULATION_TIME_OUT);\n });\n\n const result = await Promise.race([simulatePromise, timeoutPromise]);\n if (timeoutId) clearTimeout(timeoutId);\n return result ? { data: result as SimulateMultiSwapResult } : { timeout: true };\n } catch (e) {\n console.error('useSimulateSwap:sdk.aggregator.simulateMultiSwap', e);\n SentryService.captureException(e, {\n name: 'useSimulateSwap:sdk.aggregator.simulateMultiSwap',\n userAddr,\n amount,\n sellToken,\n buyToken,\n chainId,\n poolsToExclude,\n slippage,\n });\n if (timeoutId) clearTimeout(timeoutId);\n await new Promise((resolve) => setTimeout(resolve, 2000));\n return { timeout: true };\n }\n } else {\n return null;\n }\n },\n refetchInterval: SPOT_DETAIL_POLLING_INTERVAL,\n enabled: !!userAddr && sdk !== undefined && Number(amount) > 0 && !swapping,\n });\n return useMemo(() => {\n return queryReturn;\n }, [queryReturn]);\n};\n\nexport const useSimulateBestRoute = () => {\n const { sellAmount: amount, token1: buyToken, token0: sellToken, swapping } = useSpotState();\n\n const chainId = useChainId();\n const sdk = useSDK(chainId);\n const userAddr = useUserAddr();\n const { poolsToExclude } = useSpotState();\n const queryReturn = useQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.SPOT.SIMULATE_BEST_ROUTE(chainId, userAddr, amount, sellToken?.address, buyToken?.address),\n queryFn: async () => {\n if (WrappedBigNumber.from(amount || 0).eq(0)) {\n return null;\n }\n if (bothNative(sellToken, buyToken)) {\n return null;\n }\n if (sellToken && buyToken && sdk && amount) {\n // ETH-USDC pair ,the gas fee is too high, so we use direct swap\n const isETHToUSDC =\n (['ETH', 'WETH'].includes(sellToken?.symbol) && buyToken?.symbol === 'USDC') ||\n (sellToken?.symbol === 'USDC' && ['ETH', 'WETH'].includes(buyToken?.symbol));\n\n const route = await sdk.aggregator.querySplitRoute({\n fromTokenAddress: sellToken.address,\n toTokenAddress: buyToken.address,\n fromAmount: parseUnits(amount, sellToken?.decimals),\n excludePoolTypes: poolsToExclude,\n isDirect: isETHToUSDC,\n });\n return route;\n } else {\n return null;\n }\n },\n refetchInterval: SPOT_DETAIL_POLLING_INTERVAL,\n enabled: !!userAddr && sdk !== undefined && Number(amount) > 0 && !swapping,\n });\n return useMemo(() => {\n return queryReturn;\n }, [queryReturn]);\n};\n","import './index.less';\n\nimport { ComponentProps, ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ExchangeIcon } from '@/assets/svg';\nimport { ReactComponent as ArrowRight } from '@/assets/svg/arrow-right.svg';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { useCombinedPairFromUrl } from '@/features/pair/hook';\nimport { useSimulationBalanceChange } from '@/features/trade/hooks';\nimport { useIsTokenExchangeHidden } from '@/hooks/trade/useTokenExchange';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport BalanceMax from '@/pages/components/BalanceMax';\nimport WrapETHButton from '@/pages/trade/TradeCard/TradeForm/WrapETHButton';\nimport useClickExchange from './hooks/useClickExchange';\ntype AvailableBalanceToolTipProps = {\n gateBalanceBeforeNode?: ReactNode;\n gateBalanceAfterNode: ReactNode;\n walletBalanceBeforeNode?: ReactNode;\n walletBalanceAfterNode: ReactNode;\n};\nconst AvailableBalanceToolTip = ({\n gateBalanceBeforeNode,\n gateBalanceAfterNode,\n walletBalanceBeforeNode,\n walletBalanceAfterNode,\n}: AvailableBalanceToolTipProps): JSX.Element => {\n const { t } = useTranslation();\n\n return (\n
\n
\n {t('common.tradePage.accountB')}\n \n {gateBalanceBeforeNode && (\n <>\n {gateBalanceBeforeNode}\n \n \n )}\n\n {gateBalanceAfterNode}\n \n
\n
\n {t('common.wb')}\n \n {walletBalanceBeforeNode && (\n <>\n {walletBalanceBeforeNode}\n \n \n )}\n\n {walletBalanceAfterNode}\n \n
\n
\n );\n};\ntype AvailableBalanceProp = {\n balanceMaxProps?: ComponentProps;\n hideBalanceMax?: boolean;\n};\nexport const AvailableBalance = ({ balanceMaxProps, hideBalanceMax }: AvailableBalanceProp): JSX.Element => {\n const { t } = useTranslation();\n const chainId = useChainId();\n // const userAddr = useUserAddr();\n const currentPair = useCombinedPairFromUrl(chainId);\n // useListenGateEvent(chainId, userAddr);\n const {\n gateBalanceBefore,\n gateBalanceAfter,\n walletBalanceBefore,\n walletBalanceAfter,\n totalBalanceBefore,\n totalBalanceAfter,\n isShowTotalBalanceChange,\n } = useSimulationBalanceChange(chainId, currentPair?.rootInstrument?.quoteToken);\n const isTokenExchangeHidden = useIsTokenExchangeHidden(currentPair?.rootInstrument?.quoteToken.symbol);\n const { handleClickExchange } = useClickExchange();\n return (\n
\n
\n {t('common.availableBalanceTile.shortTitle')}\n {balanceMaxProps && }\n
\n
\n {isShowTotalBalanceChange ? (\n
\n \n }>\n {totalBalanceBefore?.formatDisplayNumber()}\n \n \n \n {totalBalanceAfter?.formatDisplayNumber()}\n  \n {currentPair?.rootInstrument.quoteToken.symbol}\n \n
\n ) : (\n \n \n }>\n {totalBalanceAfter?.formatDisplayNumber()}\n \n  \n {currentPair?.rootInstrument.quoteToken.symbol}\n \n )}\n {!isTokenExchangeHidden && (\n \n )}\n {!hideBalanceMax && }\n
\n
\n );\n};\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconClose = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 17,\n viewBox: \"0 0 16 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2.46967 3.34858C2.76256 3.05568 3.23744 3.05568 3.53033 3.34858L8 7.81825L12.4697 3.34858C12.7626 3.05568 13.2374 3.05568 13.5303 3.34858C13.8232 3.64147 13.8232 4.11634 13.5303 4.40924L9.06066 8.87891L13.5303 13.3486C13.8232 13.6415 13.8232 14.1163 13.5303 14.4092C13.2374 14.7021 12.7626 14.7021 12.4697 14.4092L8 9.93957L3.53033 14.4092C3.23744 14.7021 2.76256 14.7021 2.46967 14.4092C2.17678 14.1163 2.17678 13.6415 2.46967 13.3486L6.93934 8.87891L2.46967 4.40924C2.17678 4.11634 2.17678 3.64147 2.46967 3.34858Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconClose);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_close.c833536fefd9580d6dbdfc6b5c475089.svg\";","import { useBackendChainConfig } from '@/features/config/hook';\nimport { useCombinedPairFromUrl } from '@/features/pair/hook';\nimport useSpotRouter, { useFilteredSellSpotTokens } from '@/features/spot/hooks';\nimport { useSpotTokens } from '@/features/spot/query';\nimport { useSpotState } from '@/features/spot/store';\nimport { useTokenExchangeModal } from '@/hooks/trade/useTokenExchange';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { useCallback } from 'react';\n\nexport default function useClickExchange() {\n const { toggleModal } = useTokenExchangeModal();\n const { setToken0, setToken1 } = useSpotState();\n const { goToSpot } = useSpotRouter();\n\n const chainId = useChainId();\n const currentPair = useCombinedPairFromUrl(chainId);\n const backendChainConfig = useBackendChainConfig(chainId);\n const tokenSymbolsGoToSpot = backendChainConfig?.exchange?.tokenSymbolsNotGoToSpot;\n const { filteredTokens, isFetched } = useFilteredSellSpotTokens({ search: '' });\n const { data: tokens } = useSpotTokens({ chainId });\n const handleClickExchange = useCallback(() => {\n if (\n currentPair?.rootInstrument?.quoteToken &&\n !tokenSymbolsGoToSpot?.includes(currentPair?.rootInstrument?.quoteToken.symbol || '')\n ) {\n const token1 = tokens?.find(\n (t) => t.address.toLowerCase() === currentPair?.rootInstrument?.quoteToken.address.toLowerCase(),\n );\n setToken1(token1);\n isFetched && setToken0(filteredTokens?.[0]); //setSellTokenFn(currentPair?.rootInstrument?.baseToken);\n goToSpot({\n buyTokenAddr: currentPair?.rootInstrument?.quoteToken.address,\n sellTokenAddr: filteredTokens?.[0].address,\n });\n } else {\n toggleModal(true);\n }\n }, [\n currentPair?.rootInstrument?.quoteToken,\n filteredTokens,\n goToSpot,\n isFetched,\n setToken0,\n setToken1,\n toggleModal,\n tokenSymbolsGoToSpot,\n tokens,\n ]);\n return { handleClickExchange };\n}\n","/**\n * @description Component-FloatingInput\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC, useRef } from 'react';\n\nimport { inputNumChecker } from '@/utils/numberUtil';\nimport { useDebounceEffect } from 'ahooks';\ninterface IPropTypes {\n className?: string;\n suffix: React.ReactNode;\n label: string;\n disabled?: boolean;\n max?: number;\n value: string;\n onFocus?: () => void;\n onBlur?: () => void;\n onChange: (value: string) => void;\n decimals?: number;\n autoFocus?: boolean;\n}\nconst FloatingInput: FC = function ({\n suffix,\n label,\n disabled,\n value,\n onBlur,\n autoFocus,\n onFocus,\n onChange,\n max,\n decimals,\n}) {\n const ref = useRef(null);\n useDebounceEffect(() => {\n if (autoFocus && ref.current) {\n ref.current.querySelector('input')?.focus();\n ref.current.classList.add('focus');\n }\n }, []);\n return (\n
\n \n e.stopPropagation()}\n onTouchMove={(e) => e.stopPropagation()}\n onClick={(e) => e.stopPropagation()}\n className=\"syn-floating-input-container-suffix\">\n {suffix}\n
\n \n );\n};\n\nexport default FloatingInput;\n","import Modal from './Modal';\n\nexport * from './Modal';\n\nexport default Modal;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconCloseLinear = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2.46967 2.46967C2.76256 2.17678 3.23744 2.17678 3.53033 2.46967L8 6.93934L12.4697 2.46967C12.7626 2.17678 13.2374 2.17678 13.5303 2.46967C13.8232 2.76256 13.8232 3.23744 13.5303 3.53033L9.06066 8L13.5303 12.4697C13.8232 12.7626 13.8232 13.2374 13.5303 13.5303C13.2374 13.8232 12.7626 13.8232 12.4697 13.5303L8 9.06066L3.53033 13.5303C3.23744 13.8232 2.76256 13.8232 2.46967 13.5303C2.17678 13.2374 2.17678 12.7626 2.46967 12.4697L6.93934 8L2.46967 3.53033C2.17678 3.23744 2.17678 2.76256 2.46967 2.46967Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconCloseLinear);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_close_linear.6f2f6a19d0c369e6b21c9a06d5bba8f2.svg\";","import './index.less';\n\nimport { Modal as AntDModal } from 'antd';\nimport classnames from 'classnames';\nimport { useEffect, useState } from 'react';\n\nimport { ReactComponent as IconClose } from '@/components/CardWrapper/assets/icon_close.svg';\nimport { IModalProps } from '@/types/modal';\n\n/**\n * antd modal wrap\n * @param param0 antd modal props\n * @returns\n */\nexport default function Modal({ className, title, closable = true, ...props }: IModalProps): JSX.Element {\n const [isOpen, setIsOpen] = useState(props.open);\n useEffect(() => setIsOpen(props.open), [props.open]);\n function onClickCancelHandler(): void {\n setIsOpen(false);\n }\n if (!props.open) {\n return <>;\n }\n return (\n {\n props.onOk && props.onOk();\n onClickCancelHandler();\n }}\n onCancel={onClickCancelHandler}\n afterClose={(): void => {\n props.onCancel && props.onCancel();\n }}>\n {title && (\n
\n
\n {title}\n {closable && (\n
\n \n
\n )}\n
\n {props.extraHeader}\n
\n )}\n {props.children}\n \n );\n}\n","/**\n * @description Component-Drawer\n */\nimport './index.less';\n\nimport { Drawer as AdDrawer, DrawerProps } from 'antd';\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\n\nimport { ReactComponent as IconCloseLinear } from './assets/icon_close_linear.svg';\ninterface IPropTypes extends DrawerProps {\n children?: React.ReactNode;\n className?: string;\n}\nconst Drawer: FC = function (props) {\n return (\n }\n // style={{ top: isShowUserModal ? 64 : 0, contentVisibility: isShowUserModal ? 'auto' : 'hidden' }}\n rootClassName={classNames('syn-drawer', props.className)}>\n {props.children}\n \n );\n};\n\nexport default Drawer;\n","var _g;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgSolarDangerTriangleBoldDuotone = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"solar:danger-triangle-bold-duotone\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Subtract\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.54019 7.174C5.48552 3.72467 6.45886 2 7.99886 2C9.53952 2 10.5122 3.72467 12.4575 7.174L12.7002 7.604L12.7014 7.60616C14.3173 10.4714 15.1253 11.9043 14.3949 12.952C13.6642 14 11.8562 14 8.24152 14H7.75619C4.14152 14 2.33352 14 1.60286 12.952C0.872376 11.9043 1.68045 10.4714 3.2963 7.60617L3.29752 7.604L3.54019 7.174ZM8.52918 4.71967C8.38853 4.57902 8.19776 4.5 7.99885 4.5C7.79993 4.5 7.60917 4.57902 7.46851 4.71967C7.32786 4.86032 7.24884 5.05109 7.24884 5.25V9C7.24884 9.19891 7.32786 9.38968 7.46851 9.53033C7.60917 9.67098 7.79993 9.75 7.99885 9.75C8.19776 9.75 8.38853 9.67098 8.52918 9.53033C8.66984 9.38968 8.74885 9.19891 8.74885 9V5.25C8.74885 5.05109 8.66984 4.86032 8.52918 4.71967ZM8.70596 12.2071C8.51842 12.3946 8.26407 12.5 7.99885 12.5C7.73363 12.5 7.47927 12.3946 7.29174 12.2071C7.1042 12.0196 6.99884 11.7652 6.99884 11.5C6.99884 11.2348 7.1042 10.9804 7.29174 10.7929C7.47927 10.6054 7.73363 10.5 7.99885 10.5C8.26407 10.5 8.51842 10.6054 8.70596 10.7929C8.8935 10.9804 8.99886 11.2348 8.99886 11.5C8.99886 11.7652 8.8935 12.0196 8.70596 12.2071Z\",\n fill: \"#FFAA00\"\n }))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgSolarDangerTriangleBoldDuotone);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/solar_danger-triangle-bold-duotone.e71151f969a44f6d73e8bf5608512c37.svg\";","import React, { memo } from 'react';\n\nexport function EmptyDataWrapComponent({\n isLoading,\n children,\n loadingWrap = '-',\n marginRight = 9,\n}: {\n isLoading: boolean;\n loadingWrap?: React.ReactNode;\n children: React.ReactNode;\n marginRight?: number;\n}): JSX.Element {\n if (isLoading) return {loadingWrap};\n return <>{children};\n}\nexport const EmptyDataWrap = memo(EmptyDataWrapComponent);\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconAcctNew = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5312_60880)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.354 1.33331C10.354 0.919099 10.6897 0.583313 11.104 0.583313H14.6666C15.0808 0.583313 15.4166 0.919099 15.4166 1.33331V4.89598C15.4166 5.31019 15.0808 5.64598 14.6666 5.64598C14.2524 5.64598 13.9166 5.31019 13.9166 4.89598V3.14397L9.19696 7.86364C8.90406 8.15654 8.42919 8.15654 8.1363 7.86364C7.8434 7.57075 7.8434 7.09588 8.1363 6.80298L12.856 2.08331H11.104C10.6897 2.08331 10.354 1.74753 10.354 1.33331Z\",\n fill: \"#1F292E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.4425 2.19863C3.61827 2.30941 3.16568 2.51413 2.83949 2.83973C2.5141 3.16549 2.30937 3.61791 2.19857 4.4423C2.08484 5.28848 2.08325 6.40745 2.08325 7.99998C2.08325 9.59251 2.08484 10.7116 2.19857 11.5578C2.30941 12.3825 2.51422 12.8345 2.8394 13.1595L2.83958 13.1596C3.16538 13.4854 3.61778 13.6904 4.4423 13.8013C5.28844 13.9151 6.40738 13.9166 7.99992 13.9166C9.59246 13.9166 10.7116 13.9151 11.5577 13.8013C12.3823 13.6904 12.8342 13.4854 13.1592 13.16L13.1598 13.1595C13.4854 12.8341 13.6903 12.382 13.8012 11.5575C13.915 10.7115 13.9166 9.59253 13.9166 7.99998C13.9166 7.58577 14.2524 7.24998 14.6666 7.24998C15.0808 7.24998 15.4166 7.58577 15.4166 7.99998V8.0555C15.4166 9.5797 15.4166 10.7998 15.2878 11.7575C15.1545 12.7483 14.8711 13.5699 14.2201 14.2205C13.5698 14.8713 12.7482 15.1546 11.7576 15.2879C10.7999 15.4167 9.57964 15.4167 8.05544 15.4166H7.9444C6.4202 15.4167 5.20013 15.4167 4.24237 15.2879C3.25148 15.1546 2.42994 14.8712 1.7791 14.2205C1.12829 13.5701 0.845097 12.7484 0.711936 11.7576C0.583219 10.7999 0.583234 9.57969 0.583252 8.05544V7.94452C0.583234 6.42028 0.583219 5.20023 0.711936 4.2425C0.845109 3.25161 1.1283 2.43005 1.77874 1.77916L1.77928 1.77862C2.43041 1.12838 3.2518 0.845182 4.24268 0.711998C5.20033 0.58328 6.42022 0.583295 7.94445 0.583313L7.99992 0.583314C8.41413 0.583314 8.74992 0.9191 8.74992 1.33331C8.74992 1.74753 8.41413 2.08331 7.99992 2.08331C6.40739 2.08331 5.28859 2.08491 4.4425 2.19863Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5312_60880\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconAcctNew);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_acct_new.e6419135ddef66f1d0418e54c5e5509f.svg\";","import './index.less';\n\nimport classNames from 'classnames';\nimport { HTMLProps, ReactNode, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Tooltip } from '@/components/ToolTip';\n\nimport { ExplorerIcon } from '@/assets/svg';\nimport { checkLinkIsBlockExplorer } from '@/utils/chain';\nimport { ReactComponent as IconAddrLink } from './assets/icon_acct_new.svg';\n\nexport type SynLinkProps = Omit, 'as' | 'ref'> & {\n href: string;\n type?: 'primary' | 'secondary';\n children?: ReactNode;\n icon?: ReactNode;\n};\n\nexport default function SynLink({ type = 'primary', ...props }: SynLinkProps): JSX.Element {\n const linkTarget = useMemo(() => {\n if (props.target === '_blank') {\n return { target: '_blank', rel: 'noreferrer noopener' };\n }\n return { target: props.target };\n }, [props.target]);\n return (\n \n );\n}\n\nexport function ExternalLink({\n target = '_blank',\n href,\n rel = 'noopener noreferrer',\n ...rest\n}: SynLinkProps): JSX.Element {\n return ;\n}\n\nexport function ExternalLinkIcon({\n target = '_blank',\n href,\n children,\n rel = 'noopener noreferrer',\n icon,\n ...rest\n}: SynLinkProps): JSX.Element {\n const isBlockExplorer = checkLinkIsBlockExplorer(href);\n return (\n \n {children}{' '}\n {icon || isBlockExplorer ? (\n \n ) : (\n \n )}\n \n );\n}\nexport function ExternalLinkIconWithTooltip(props: SynLinkProps): JSX.Element {\n const { t } = useTranslation();\n return (\n \n \n \n );\n}\n","/**\n * @description Component-LeanMoreToolTip\n */\nimport { TooltipProps } from 'antd';\nimport React, { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ExternalLink } from '@/components/Link';\n\nimport IconToolTip from '../IconToolTip';\nimport UnderlineToolTip from '../UnderlineToolTip';\nexport type LearnMoreTooltip = Omit & {\n link?: string;\n linkText?: string;\n icon?: React.ReactNode;\n};\n\nconst LeanMoreToolTip: FC = function ({ linkText, link, ...props }) {\n const { t } = useTranslation();\n const SynTooltip = useMemo(() => {\n return props.children ? UnderlineToolTip : IconToolTip;\n }, [props.children]);\n return (\n {\n e.stopPropagation();\n }}>\n <>\n {props.title} {link && {linkText || t('common.learnMore')}}\n \n \n )\n }\n />\n );\n};\n\nexport default LeanMoreToolTip;\n","/**\n * @description Component-LiquidationPrices\n */\nimport './index.less';\n\nimport { FC } from 'react';\nimport { Trans } from 'react-i18next';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport LeanMoreToolTip from '@/components/ToolTip/LeanMoreToolTip';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\ninterface IPropTypes {\n className?: string;\n lowerLiqPrice: WrappedBigNumber;\n upperLiqPrice: WrappedBigNumber;\n}\nconst LiquidationPrices: FC = function ({ lowerLiqPrice, upperLiqPrice }) {\n const { isNotMobile } = useMediaQueryDevice();\n return (\n \n
\n {lowerLiqPrice.gt(0) && (\n <>\n }}\n />\n )\n }>\n
\n {lowerLiqPrice.formatLiqPriceString({\n showToolTip: false,\n })}\n
\n \n \n )}\n {lowerLiqPrice.gt(0) && upperLiqPrice.notEq(Infinity) && upperLiqPrice.gt(0) && (\n /\n )}\n {upperLiqPrice.notEq(Infinity) && upperLiqPrice.gt(0) && (\n }}\n />\n )\n }>\n
\n {upperLiqPrice.formatLiqPriceString({\n showToolTip: false,\n })}\n
\n \n )}\n
\n
\n );\n};\n\nexport default LiquidationPrices;\n","/**\n * @description Component-TermModalContent\n */\nimport warningIcon from '@/assets/svg/solar_danger-triangle-bold-duotone.svg';\nimport { Button } from '@/components/Button';\nimport { SecondGlobalModalType } from '@/constants';\nimport { useAddLiquidationSimulation } from '@/features/earn/hook';\nimport { useToggleSecondModal } from '@/features/global/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport LiquidationPrices from '@/pages/components/LiquidationPrices';\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport classNames from 'classnames';\nimport { ComponentProps, FC, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\ntype THighRiskLiquidityModalContent = ComponentProps<'div'> & {\n isMobile?: boolean;\n onCancel?: () => void;\n onOk: (chainId: CHAIN_ID) => void;\n onClickLiqButton: () => Promise;\n};\nconst HighRiskLiquidityModalContent: FC = function ({\n isMobile = false,\n children,\n onClickLiqButton,\n ...others\n}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const simulation = useAddLiquidationSimulation(chainId);\n const toggleHighRiskLiquidityModal = useToggleSecondModal(SecondGlobalModalType.HIGH_RISK_LIQUIDITY);\n const [loading, setLoading] = useState(false);\n const lowerLiqPrice = simulation?.data?.lowerLiqPrice;\n const lowerLiqPriceStr = useMemo(\n () => simulation?.data?.lowerLiqPrice.formatLiqPriceString(),\n [simulation?.data?.lowerLiqPrice],\n );\n const upperLiqPrice = simulation?.data?.upperLiqPrice;\n const upperLiqPriceStr = useMemo(\n () => simulation?.data?.upperLiqPrice.formatLiqPriceString(),\n [simulation?.data?.upperLiqPrice],\n );\n useEffect(() => {\n if (!lowerLiqPriceStr || !upperLiqPriceStr) {\n toggleHighRiskLiquidityModal(false);\n }\n }, [lowerLiqPriceStr, toggleHighRiskLiquidityModal, upperLiqPriceStr]);\n return (\n
\n {children}\n
\n {t('common.highRiskEarnModal.content', { lowerLiqPrice: lowerLiqPriceStr, upperLiqPrice: upperLiqPriceStr })}\n
\n
\n
\n \n {t('common.highRiskEarnModal.liquidationPriceRange')}\n
\n {lowerLiqPrice && upperLiqPrice && (\n \n )}\n
\n
\n {\n setLoading(true);\n await onClickLiqButton();\n setLoading(false);\n toggleHighRiskLiquidityModal(false);\n }}>\n {t('common.add')}\n \n {\n toggleHighRiskLiquidityModal(false);\n }}>\n {t('common.cancel')}\n \n
\n
\n );\n};\n\nexport default HighRiskLiquidityModalContent;\n","import { ComponentProps, useCallback } from 'react';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\n// import { Modal, Button } from 'antd';\nimport Modal from '@/components/Modal';\n// import { ReactComponent as IconAgreement } from '@/assets/svg/icon_agreement.svg';\nimport { useSecondModalOpen, useToggleSecondModal } from '@/features/global/hooks';\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport Drawer from '@/components/Drawer';\nimport { SecondGlobalModalType } from '@/constants';\nimport { useSwitchNetwork } from '@/hooks/web3/useSwitchConnectorNetwork';\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport HighRiskLiquidityModalContent from './HighRiskLiquidityModalContent';\ntype THighRiskLiquidityModal = ComponentProps<'div'> & { onClickLiqButton: () => Promise };\nconst HighRiskLiquidityModal = function ({ children, onClickLiqButton }: THighRiskLiquidityModal) {\n const { deviceType, isMobile } = useMediaQueryDevice();\n const isOpenModal = useSecondModalOpen(SecondGlobalModalType.HIGH_RISK_LIQUIDITY);\n const toggleInitialChainSwitchModal = useToggleSecondModal(SecondGlobalModalType.HIGH_RISK_LIQUIDITY);\n const { switchAppNetwork, switchWalletNetwork } = useSwitchNetwork();\n const { t } = useTranslation();\n const onOk = useCallback(\n (chainId: CHAIN_ID) => {\n switchAppNetwork(chainId);\n switchWalletNetwork(chainId);\n toggleInitialChainSwitchModal(false);\n },\n [switchAppNetwork, switchWalletNetwork, toggleInitialChainSwitchModal],\n );\n\n return isMobile ? (\n \n \n {children}\n \n \n ) : (\n {\n toggleInitialChainSwitchModal(false);\n }}\n title={t('common.highRiskEarnModal.title')}>\n \n {children}\n \n \n );\n};\n\nexport default HighRiskLiquidityModal;\n","// import { useTabType } from '@/features/global/hooks';\nimport { useCallback } from 'react';\n\nimport { GaCategory } from '@/utils/analytics';\n// import { useChainId, useUserAddr } from './web3/useChain';\n\nexport function useGa(): ({\n category,\n action,\n label,\n value,\n}: {\n category: GaCategory;\n action: string;\n label?: string | Record;\n value?: number;\n}) => void {\n // const chainId = useChainId();\n // const account = useUserAddr();\n return useCallback(\n ({\n category,\n action,\n label,\n value,\n }: {\n category: GaCategory;\n action: string;\n label?: string | Record;\n value?: number;\n }) => {\n let labelFinal: Record = {\n // account,\n // chainId,\n };\n if (label) {\n if (typeof label === 'string') {\n labelFinal = { ...labelFinal, info: label };\n } else {\n labelFinal = { ...labelFinal, ...label };\n }\n }\n let params: {\n category: GaCategory;\n action: string;\n label?: string;\n value?: number;\n } = {\n category,\n action,\n label: JSON.stringify(labelFinal),\n };\n if (value !== undefined) {\n params = { ...params, value };\n }\n params;\n // gaEvent(params);\n },\n [\n // chainId, account\n ],\n );\n}\n","export const TRADE_TUTORIAL_LINK = 'https://www.youtube.com/playlist?list=PL6OBDgmGm90AFHxCcAyJvn-aB3oOBafOD';\nexport const FAQ_LINKS = {\n PREDICTED_FUNDING_RATE: 'https://docs.synfutures.com/oyster-amm/funding-for-perpetual-futures#advanced',\n LIQUIDATION_PRICE: 'https://docs.synfutures.com/oyster-amm/liquidations',\n APPROVE_FAQ: 'https://docs.synfutures.com/faq/others',\n PNL_FAQ: '',\n POOL_LIST_FAQ: 'https://www.synfutures.com/v3-whitepaper.pdf',\n TUTORIAL_FAQ: 'https://docs.synfutures.com/tutorials/video-tutorial',\n FAQ: 'https://docs.synfutures.com/faq/synfutures-v3-features',\n WITHDRAW_LIMIT: 'https://docs.synfutures.com/oyster-amm/position-and-margin#margin-deposit-and-withdraw',\n COMMUNITY_DOC: 'https://docs.synfutures.com/oyster-amm/pair-specifications/blast-network#community-listing',\n COMMUNITY_BASE_DOC: 'https://docs.synfutures.com/oyster-amm/pair-specifications/base-network#community-listing',\n};\nexport const LEVERAGE_LINK = '';\n\nexport const SOCIAL_LINKS = {\n TWITTER: 'https://twitter.com/SynFuturesDefi',\n TELEGRAM: 'https://t.me/synfutures_Defi',\n DISCORD: 'https://discord.com/invite/synfutures',\n REDDIT: 'https://www.reddit.com/r/SynFutures',\n};\n\nexport const AUDIT_LINK = 'https://www.synfutures.com/Quantstamp-Audit-Report-SynFuturesV3.pdf';\n\nexport const INFO_LINK = 'https://info.synfutures.com';\n\nexport const LEARN_MORE_LINK = {\n socialLoss: 'https://docs.synfutures.com/oyster-amm/liquidations',\n oi: 'https://docs.synfutures.com/oyster-amm/position-and-margin#open-interests',\n};\nexport const ADDITIONAL_FEE_LINK = 'https://docs.synfutures.com/oyster-amm/security#dynamic-penalty-fees';\n\nexport const SHARE_POST_UPLOAD = 'https://api.synfutures.com/v3/public/share/twitter';\nexport const SHARE_GET = 'https://api.synfutures.com/v3/public/share/twitter/link?id=';\nexport const TVL_JOIN_LINK =\n 'https://docs.google.com/forms/d/e/1FAIpQLSdth8V4lXstrlGCRuTWJIWY1QNJ_slpwSfgdlHaN8KYipmQrw/viewform?usp=sharing';\n\nexport const FARCASTER_LINK = `https://api.synfutures.com/v3/farcaster`;\n\nexport const FARCASTER_SHARE_LINK = 'https://warpcast.com/~/compose?text=';\n\nexport const LAUNCHPAD_LINK = 'https://launchpad.synfutures.com/';\n","// import { useTranslation } from 'react-i18next';\n// import LeanMoreToolTip from '@/components/ToolTip/LeanMoreToolTip';\n// import { APPROVE_BTN_LINK } from '@/constants/links';\n// import classNames from 'classnames';\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport LeanMoreToolTip from '@/components/ToolTip/LeanMoreToolTip';\nimport { FAQ_LINKS } from '@/constants/links';\nimport { useTokenBalance } from '@/features/balance/hook';\nimport { approveToken, checkTokenAllowance } from '@/features/user/actions';\nimport { useChainTokenAllowance, useChainTokenAllowanceApproved } from '@/features/user/hooks';\n// import { Button } from '@/components/Button';\nimport { useAppDispatch } from '@/hooks';\nimport { useGa } from '@/hooks/useGa';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { IApproveButtonProps } from '@/types/button';\n// import { useChainTokenAllowanceApproved, useChainTokenAllowance } from '@/features/user/hooks';\nimport { Tooltip } from '@/components/ToolTip';\nimport { useIsIpBlocked } from '@/features/global/hooks';\nimport { useAppProvider, useSDK } from '@/features/web3/hook';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { GaCategory } from '@/utils/analytics';\nimport { parseEther } from 'ethers/lib/utils';\nimport _ from 'lodash';\n\nexport function ApproveButtonComponent({\n spenderAddress,\n className,\n loading,\n afterApproved,\n disabled,\n marginToken,\n children,\n titleNotApproved,\n amount,\n checkMinApprove = false,\n noNeedApprove = false,\n maxAmount,\n showChainIcon = true,\n disabledOvervided = false,\n ...props\n}: IApproveButtonProps): JSX.Element {\n const { t } = useTranslation();\n const { isMobile } = useMediaQueryDevice();\n const ipBlocked = useIsIpBlocked();\n const titleNotApprovedAdjusted = useMemo(\n () =>\n titleNotApproved ||\n t('common.approveBtn.approveLine', { symbol: marginToken?.symbol }) +\n (isMobile ? '' : t('common.approveBtn.continue')),\n [isMobile, marginToken?.symbol, t, titleNotApproved],\n );\n const dispatch = useAppDispatch();\n const { approving, checking } = useChainTokenAllowance(marginToken, spenderAddress);\n const checkApproveAmount = useMemo(\n () => (checkMinApprove && amount?.eq(0) ? parseEther('0.00000001') : amount),\n [amount, checkMinApprove],\n );\n const allowanceTooLow = useChainTokenAllowanceApproved(marginToken, spenderAddress, checkApproveAmount);\n const chainId = useChainId();\n const account = useUserAddr();\n const tokenBalance = useTokenBalance(marginToken?.address, chainId);\n const balanceInsuf = useMemo(() => {\n if (maxAmount) {\n return maxAmount && amount && maxAmount.lt(amount);\n }\n return amount && tokenBalance.wadValue.lt(amount);\n }, [amount, maxAmount, tokenBalance.wadValue]);\n const signer = useWalletSigner();\n const provider = useAppProvider();\n const sdk = useSDK(chainId);\n //const isBlacklisted = useIsBlacklistedFromStore();\n const gaEvent = useGa();\n const disableBtn = useMemo(() => {\n if (allowanceTooLow) {\n return !allowanceTooLow && disabled;\n }\n return disabled;\n }, [disabled, allowanceTooLow]);\n const onClickButton = useCallback(async () => {\n if (disableBtn || approving) {\n return;\n }\n if (!allowanceTooLow || noNeedApprove) {\n afterApproved();\n } else {\n marginToken &&\n chainId &&\n account &&\n signer &&\n provider &&\n amount &&\n sdk &&\n dispatch(\n approveToken({\n chainId,\n signer,\n provider,\n userAddr: account,\n marginToken,\n amount,\n spenderAddress,\n sdk,\n routerAddr: spenderAddress,\n }),\n );\n gaEvent({\n category: GaCategory.TRADE_PAIR_CARD_WRAPPER,\n action: 'Trade-Click on Approve Token',\n });\n }\n }, [\n disableBtn,\n approving,\n allowanceTooLow,\n noNeedApprove,\n afterApproved,\n marginToken,\n chainId,\n account,\n signer,\n provider,\n amount,\n dispatch,\n spenderAddress,\n sdk,\n gaEvent,\n ]);\n // always check the approval status of the underlying\n useEffect(() => {\n if (account && chainId && marginToken?.address && sdk) {\n console.log('🚀 ~ useEffect ~ account:', account, chainId, marginToken, sdk);\n dispatch(\n checkTokenAllowance({\n userAddress: account,\n chainId,\n marginToken: marginToken,\n spenderAddress,\n sdk,\n }),\n );\n }\n // must use margintoken.address otherwise it will trigger infinite loop\n }, [dispatch, account, chainId, provider, marginToken?.address, spenderAddress, sdk]);\n\n return (\n \n \n {!allowanceTooLow || balanceInsuf || noNeedApprove ? (\n children\n ) : (\n <>\n {titleNotApprovedAdjusted}\n \n \n )}\n \n \n );\n}\nexport const ApproveWrapButton = React.memo(ApproveButtonComponent);\n","/**\n * @description Component-ConnectWalletButton\n */\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { NetworkButton } from '@/components/Button';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { Tooltip } from '@/components/ToolTip';\nimport { fetchIpIsBlocked } from '@/features/global/actions';\nimport { useIsIpBlocked } from '@/features/global/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { NetworkButtonProps } from '@/types/button';\n\nconst ConnectWalletButton: FC = function ({ children, onClick, ...props }) {\n const { t } = useTranslation();\n const { isMobile } = useMediaQueryDevice();\n const dispatch = useAppDispatch();\n const isIpBlocked = useIsIpBlocked();\n return (\n \n {\n const ipBlocked = await dispatch(fetchIpIsBlocked()).unwrap();\n if (!ipBlocked) {\n onClick && onClick(e);\n }\n }}>\n {children || (isMobile ? t('common.connectWalMobile') : t('common.connectWal'))}\n \n \n );\n};\n\nexport default ConnectWalletButton;\n","/**\n * @description Component-SwitchNetworkButton\n */\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { NetworkButton } from '@/components/Button';\nimport { Tooltip } from '@/components/ToolTip';\nimport { fetchIpIsBlocked } from '@/features/global/actions';\nimport { useIsIpBlocked } from '@/features/global/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useDappChainConfig } from '@/hooks/web3/useChain';\nimport { useSwitchNetwork } from '@/hooks/web3/useSwitchConnectorNetwork';\nimport { NetworkButtonProps } from '@/types/button';\n\nconst SwitchNetworkButton: FC = function ({\n chainId,\n children,\n ...props\n}) {\n const defaultChainId = useChainId();\n const isIpBlocked = useIsIpBlocked();\n const dappConfig = useDappChainConfig(chainId || defaultChainId);\n const chainName = useMemo(() => {\n return dappConfig?.network?.name || undefined;\n }, [dappConfig?.network?.name]);\n\n if (!chainId) {\n chainId = defaultChainId;\n }\n const { switchWalletNetwork } = useSwitchNetwork();\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n return (\n \n {\n // switch local and wallet network\n const ipBlocked = await dispatch(fetchIpIsBlocked()).unwrap();\n if (ipBlocked) {\n return;\n }\n chainId && switchWalletNetwork && switchWalletNetwork(chainId);\n }}\n {...props}>\n {children || t('common.switchToChain', { chainName: chainName })}\n \n \n );\n};\n\nexport default SwitchNetworkButton;\n","/**\n * @description Component-WrappedButton\n */\nimport { FC } from 'react';\n\nimport { GlobalModalType } from '@/constants';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useGa } from '@/hooks/useGa';\nimport { ApproveButtonComponent } from '@/pages/components/WalletStatus/ApproveButton';\nimport ConnectWalletButton from '@/pages/components/WalletStatus/ConnectWalletButton';\nimport SwitchNetworkButton from '@/pages/components/WalletStatus/SwitchNetworkButton';\nimport { IApproveButtonProps } from '@/types/button';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\nimport { GaCategory } from '@/utils/analytics';\n\nconst WrappedButton: FC = function (props) {\n const walletConnectStatus = useWalletConnectStatus();\n const gaEvent = useGa();\n const toggleWalletModal = useToggleModal(GlobalModalType.Wallet);\n return (\n
\n {walletConnectStatus === WALLET_CONNECT_STATUS.UN_CONNECT && (\n {\n toggleWalletModal();\n gaEvent({\n category: GaCategory.TRADE_PAIR_CARD_WRAPPER,\n action: 'Wallet-Click on Connect Wallet',\n });\n }}>\n {props.unConnectedText}\n \n )}\n {walletConnectStatus === WALLET_CONNECT_STATUS.WRONG_NETWORK && }\n {walletConnectStatus === WALLET_CONNECT_STATUS.CONNECTED && }\n
\n );\n};\n\nexport default WrappedButton;\n","/**\n * @description Component-TradeFormFooter\n */\nimport './index.less';\n\nimport { ZERO } from '@synfutures/sdks-perp';\nimport { FC, memo, useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { FETCHING_STATUS, GlobalModalType, SecondGlobalModalType } from '@/constants';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useCurrentRange } from '@/features/account/rangeHook';\nimport { useTokenBalance } from '@/features/balance/hook';\nimport { addLiquidity, removeLiquidity } from '@/features/earn/action';\nimport {\n useAddLiquidationSimulation,\n useAddLiquidityFormState,\n useAddLiquidityFormStateStatus,\n useIsAddLiquidityInputRisky,\n useRemoveLiquidationSimulation,\n useRemoveLiquidationSuccess,\n useRemoveLiquidityFormStateStatus,\n} from '@/features/earn/hook';\nimport { useGlobalConfig, useToggleModal, useToggleSecondModal } from '@/features/global/hooks';\nimport { useCombinedPairFromUrl } from '@/features/pair/hook';\nimport { useAppProvider, useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\n// import { useGa } from '@/hooks/useGa';\nimport { useSideNavigate } from '@/hooks/useRouterNavigate';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n// import { GaCategory } from '@/utils/analytics';\n// import { getDisplayExpiry } from '@/utils/feature';\nimport HighRiskLiquidityModal from '@/components/Modal/HighRiskLiquidityModal';\nimport WrappedButton from '@/components/WrappedButton';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { toBN } from '@/utils/numberUtil';\nimport { ContractReceipt } from 'ethers';\nimport { useNavigate } from 'react-router-dom';\ninterface IPropTypes {\n inputAmountStr: string | undefined;\n disableBtn?: boolean;\n isMobile?: boolean;\n earnType: EARN_TYPE;\n clickClose?: () => void;\n}\nconst EarnFormFooter: FC = function ({ disableBtn, inputAmountStr, earnType, isMobile, clickClose }) {\n const chainId = useChainId();\n const { pairPageNavigate } = useSideNavigate();\n const currentPair = useCombinedPairFromUrl(chainId);\n const userAddr = useUserAddr();\n const provider = useAppProvider();\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const toggleTradeSub = useToggleModal(GlobalModalType.MOBILE_TRADE);\n const addLiqFormStatus = useAddLiquidityFormStateStatus(chainId);\n const removeLiqFormStatus = useRemoveLiquidityFormStateStatus(chainId);\n const addLiqFormState = useAddLiquidityFormState(chainId);\n const { isAddLiquidityInputRisky } = useIsAddLiquidityInputRisky();\n const { t } = useTranslation();\n const fetchingStatus = useMemo(\n () => (earnType === EARN_TYPE.ADD_LIQ ? addLiqFormStatus : removeLiqFormStatus),\n [earnType, addLiqFormStatus, removeLiqFormStatus],\n );\n const removeSuccess = useRemoveLiquidationSuccess(chainId, earnType);\n const btnText = useMemo(() => (removeSuccess ? t('common.earn.manageP') : t('common.confirm')), [removeSuccess, t]);\n const sdk = useSDK(chainId);\n const { deadline } = useGlobalConfig(chainId);\n // const gaEvent = useGa();\n const signer = useWalletSigner();\n const range = useCurrentRange(chainId, userAddr);\n const addLiqSimulation = useAddLiquidationSimulation(chainId);\n const removeLiqSimulation = useRemoveLiquidationSimulation(chainId);\n const simulation = useMemo(\n () => (earnType === EARN_TYPE.ADD_LIQ ? addLiqSimulation : removeLiqSimulation),\n [addLiqSimulation, earnType, removeLiqSimulation],\n );\n const toggleHighRiskLiquidityModal = useToggleSecondModal(SecondGlobalModalType.HIGH_RISK_LIQUIDITY);\n const walletBalance = useTokenBalance(currentPair?.rootInstrument?.quoteToken?.address, chainId);\n\n const walletNoBalance = useMemo(() => {\n if (earnType === EARN_TYPE.ADD_LIQ) {\n return walletBalance.lt(WrappedBigNumber.from(addLiqSimulation?.data?.marginToDeposit || 0));\n }\n return false;\n }, [addLiqSimulation?.data?.marginToDeposit, earnType, walletBalance]);\n\n const isDisable = useMemo(() => {\n if (walletNoBalance) return true;\n return !!simulation?.message;\n }, [simulation?.message, walletNoBalance]);\n\n const onClickLiqButton = useCallback(async () => {\n if (removeSuccess) {\n if (isMobile) {\n await navigate('trade');\n toggleTradeSub(true);\n } else {\n pairPageNavigate(currentPair?.symbol || '', PAIR_PAGE_TYPE.TRADE, currentPair?.chainId);\n }\n } else if (chainId && userAddr && signer && sdk && currentPair && deadline && provider) {\n try {\n let result: ContractReceipt | undefined;\n if (!simulation?.data) {\n return;\n }\n if (\n earnType === EARN_TYPE.ADD_LIQ &&\n addLiqFormState?.amount &&\n inputAmountStr &&\n !toBN(inputAmountStr).eq(0)\n ) {\n result = await dispatch(\n addLiquidity({\n chainId,\n userAddr,\n signer,\n sdk: sdk,\n deadline: Number(deadline),\n pair: currentPair,\n provider,\n margin: addLiqFormState?.amount,\n }),\n ).unwrap();\n } else if (range && currentPair instanceof WrappedPair) {\n result = await dispatch(\n removeLiquidity({\n chainId,\n userAddr,\n signer,\n sdkContext: sdk,\n isMobile,\n deadline: Number(deadline),\n pair: currentPair,\n provider,\n range,\n }),\n ).unwrap();\n if (result && result.status === 1) {\n // if remove with no position, close sub page\n if (removeLiqSimulation?.data?.simulationMainPosition?.size?.eq(0)) {\n clickClose && clickClose();\n }\n }\n }\n\n if (result) {\n // gaEvent({\n // category: GaCategory.EARN_PAIR_CARD_WRAPPER,\n // action: `Trade-Click on ${earnType === EARN_TYPE.ADD_LIQ ? 'Add' : 'Remove'}`,\n // label: {\n // amount: (earnType === EARN_TYPE.ADD_LIQ ? '' : '-') + inputAmountStr,\n // pairName: `${currentPair?.rootInstrument.displaySymbol}-${getDisplayExpiry(currentPair?.expiry || 0)}`,\n // earnType,\n // },\n // });\n if (earnType === EARN_TYPE.ADD_LIQ) {\n gtag('event', 'add_liquidity_result', {\n add_liquidity_result: result.status === 1 ? 'success' : 'fail', //success, fail\n });\n }\n }\n } catch (e) {\n if (earnType === EARN_TYPE.ADD_LIQ) {\n gtag('event', 'add_liquidity_result', {\n add_liquidity_result: 'fail', //success, fail\n });\n }\n console.log('🚀 ~ file: index.tsx ~ line 106 ~ onClickTradeButton ~ e', e);\n }\n }\n }, [\n removeSuccess,\n chainId,\n userAddr,\n signer,\n sdk,\n currentPair,\n deadline,\n provider,\n isMobile,\n navigate,\n toggleTradeSub,\n pairPageNavigate,\n simulation?.data,\n earnType,\n addLiqFormState?.amount,\n inputAmountStr,\n range,\n dispatch,\n removeLiqSimulation?.data?.simulationMainPosition?.size,\n clickClose,\n ]);\n\n return (\n
\n {\n const isVaildSubmit =\n earnType === EARN_TYPE.ADD_LIQ && addLiqFormState?.amount && inputAmountStr && !toBN(inputAmountStr).eq(0);\n\n if (isAddLiquidityInputRisky && isVaildSubmit) {\n toggleHighRiskLiquidityModal(true);\n return;\n }\n onClickLiqButton();\n }}>\n {btnText}\n \n \n
\n );\n};\n\nexport default memo(EarnFormFooter);\n","/**\n * @description Component-AvailableMarginDrawer\n */\nimport './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport React, { FC, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ExchangeIcon } from '@/assets/svg';\nimport { ReactComponent as ArrowRight } from '@/assets/svg/arrow-right.svg';\nimport Drawer from '@/components/Drawer';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useSimulationBalanceChange } from '@/features/trade/hooks';\nimport { useIsTokenExchangeHidden, useTokenExchangeModal } from '@/hooks/trade/useTokenExchange';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n chainId: CHAIN_ID | undefined;\n type?: PAIR_PAGE_TYPE;\n}\nconst AvailableMarginDrawer: FC = function ({ chainId, type = PAIR_PAGE_TYPE.TRADE }) {\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n const currentPair = useCurrentPairFromUrl(chainId);\n\n const {\n isShowVaultChange,\n isShowBalanceChange,\n gateBalanceBefore,\n gateBalanceAfter,\n walletBalanceBefore: tokenBalanceBefore,\n walletBalanceAfter: tokenBalanceAfter,\n totalBalanceBefore,\n totalBalanceAfter,\n isShowTotalBalanceChange,\n } = useSimulationBalanceChange(chainId, currentPair?.rootInstrument?.quoteToken);\n const { toggleModal } = useTokenExchangeModal();\n const isTokenExchangeHidden = useIsTokenExchangeHidden(currentPair?.rootInstrument?.quoteToken.symbol);\n return (\n <>\n {\n setOpen(true);\n }}>\n
\n {t(type === PAIR_PAGE_TYPE.TRADE ? 'common.availableBalanceTile.avM' : 'common.availableBalanceTile.title')}\n {currentPair?.rootInstrument.quoteToken?.symbol && `(${currentPair?.rootInstrument.quoteToken?.symbol})`}\n
\n
\n
\n {totalBalanceBefore?.formatNumberWithTooltip({ isShowTBMK: true })}\n {isShowTotalBalanceChange && (\n <>\n \n {totalBalanceAfter?.formatNumberWithTooltip({ isShowTBMK: true })}\n \n )}\n {!isTokenExchangeHidden && }\n
\n \n \n
\n {t('common.availableBalanceTile.av')}\n \n = {t('common.wb')} + {t('common.tradePage.accountB')}\n \n
\n {!isTokenExchangeHidden && (\n {\n toggleModal();\n }}\n className=\"syn-available-margin-drawer-title-btn\">\n {t('common.exchange')}\n \n )}\n \n }\n open={open}\n destroyOnClose\n onClose={() => setOpen(false)}\n className=\"syn-available-margin-drawer reverse-header\">\n
\n
\n
\n {t('common.tradePage.accountB')} ({currentPair?.rootInstrument?.quoteToken?.symbol})\n
\n
\n \n {gateBalanceBefore?.formatNumberWithTooltip({})}\n {isShowVaultChange && (\n \n \n {gateBalanceAfter?.formatNumberWithTooltip({})}\n \n )}\n \n
\n
\n
\n
\n {t('common.wb')} ({currentPair?.rootInstrument?.quoteToken?.symbol})\n
\n
\n \n {tokenBalanceBefore?.formatNumberWithTooltip({})}\n {isShowBalanceChange && (\n \n \n {tokenBalanceAfter?.formatNumberWithTooltip({})}\n \n )}\n \n
\n
\n
\n \n \n );\n};\n\nexport default AvailableMarginDrawer;\n","/**\n * @description Component-ButtonSegments\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n value?: string | number;\n options: { label: React.ReactNode; value: string | number }[];\n onChange: (val: string | number) => void;\n disabled?: boolean;\n}\nconst ButtonSegments: FC = function ({ value, options, onChange, disabled }) {\n return (\n
\n {options.map((op) => (\n {\n !disabled && onChange(op.value);\n }}\n key={op.value}\n className={classNames('syn-button-segments-item', { selected: value === op.value })}>\n {op.label}\n
\n ))}\n \n );\n};\n\nexport default ButtonSegments;\n","import classNames from 'classnames';\nimport { memo, ReactNode, useMemo } from 'react';\n\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { SettingSelectorProps } from '@/types/global';\nimport { inputNumChecker, toBN } from '@/utils/numberUtil';\n\nimport ButtonSegments from '../ButtonSegments';\nimport Input from '../Input';\nimport { useMediaQueryDevice } from '../MediaQuery';\nimport './settingSelectorFormItem.less';\n\ninterface ISettingSelectorFormItemProps extends SettingSelectorProps {\n label: ReactNode;\n formClassName?: string;\n value: string;\n customInputLabel?: string;\n keyChanged: (value: string) => void;\n checkThreshold?: boolean;\n threshold?: {\n max: string;\n min: string;\n default: string;\n low?: number;\n high?: number;\n };\n}\nfunction SettingSelectorFormItem({\n label,\n formClassName,\n className,\n value,\n customInputLabel,\n datas,\n keyChanged,\n checkThreshold,\n threshold,\n}: ISettingSelectorFormItemProps): JSX.Element {\n const { deviceType } = useMediaQueryDevice();\n const transformSegmentedOptions = useMemo(() => {\n if (!Array.isArray(datas)) return [];\n return datas.map((d) => ({ label: d.value, value: d.key }));\n }, [datas]);\n return (\n
\n
{label}
\n
\n {\n keyChanged(value as string);\n }}\n value={value}\n />\n {customInputLabel ? (\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n step: 1e18,\n }}\n value={value}\n onChange={(e) => {\n keyChanged(inputNumChecker(e.target.value));\n }}\n onBlur={(e) => {\n const val = inputNumChecker(e.target.value);\n if (checkThreshold && threshold) {\n if (val) {\n if (toBN(val).gt(threshold.max)) {\n keyChanged(inputNumChecker(threshold.max));\n } else if (toBN(val).lt(threshold.min)) {\n keyChanged(inputNumChecker(threshold.min));\n }\n } else {\n keyChanged(inputNumChecker(threshold.default));\n }\n }\n }}\n className={classNames(\n 'syn-form-input',\n className,\n WrappedBigNumber.from(value).lte(threshold?.low || 0) && 'settings_form-selector_wrap-warning',\n WrappedBigNumber.from(value).gte(threshold?.high || Infinity) && 'settings_form-selector_wrap-warning',\n )}\n suffix={customInputLabel}\n />\n ) : (\n ''\n )}\n
\n
\n );\n}\nexport default memo(SettingSelectorFormItem);\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconArrow = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17.0303 15.5303C16.7374 15.8232 16.2626 15.8232 15.9697 15.5303L12 11.5607L8.03033 15.5303C7.73744 15.8232 7.26256 15.8232 6.96967 15.5303C6.67678 15.2374 6.67678 14.7626 6.96967 14.4697L11.4697 9.96967C11.7626 9.67678 12.2374 9.67678 12.5303 9.96967L17.0303 14.4697C17.3232 14.7626 17.3232 15.2374 17.0303 15.5303Z\",\n fill: \"black\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconArrow);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_arrow.5409f963a0fa00f424f8d218c96a81a9.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconErrorRed = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.2834 3.73112L10.826 3.46046C9.47335 2.65912 8.79735 2.25912 8.05469 2.25912C7.31292 2.25912 6.63765 2.65883 5.28824 3.45756L5.28335 3.46046L4.82602 3.73112L4.8217 3.73368C3.47191 4.53331 2.79696 4.93316 2.42602 5.59246C2.05469 6.25179 2.05469 7.05246 2.05469 8.65512V9.19646C2.05469 10.7991 2.05469 11.5991 2.42602 12.2591C2.79735 12.9185 3.47335 13.3198 4.82602 14.1198L5.28335 14.3911C6.63602 15.1925 7.31202 15.5925 8.05469 15.5925C8.79646 15.5925 9.47172 15.1928 10.8211 14.394L10.826 14.3911L11.2834 14.1198L11.2846 14.119C12.6364 13.3189 13.3121 12.9189 13.6834 12.2591C14.0547 11.5998 14.0547 10.7985 14.0547 9.19647V9.19646V8.65512V8.65511C14.0547 7.05245 14.0547 6.25246 13.6834 5.59246C13.312 4.93312 12.636 4.53246 11.2834 3.73112ZM5.55195 5.69515C5.35375 5.69515 5.16366 5.77404 5.02342 5.91449C4.88336 6.05512 4.80469 6.24574 4.80469 6.44449C4.80469 6.64324 4.88336 6.83387 5.02342 6.97449L6.98796 8.9445L5.02342 10.9145C4.89131 11.0567 4.81938 11.2447 4.8228 11.439C4.82622 11.6333 4.90472 11.8187 5.04175 11.9561C5.17878 12.0935 5.36365 12.1723 5.55742 12.1757C5.75118 12.1791 5.9387 12.107 6.08048 11.9745L8.04503 10.0045L10.0096 11.9745C10.1514 12.107 10.3389 12.1791 10.5326 12.1757C10.7264 12.1723 10.9113 12.0935 11.0483 11.9561C11.1853 11.8187 11.2638 11.6333 11.2673 11.439C11.2707 11.2447 11.1988 11.0567 11.0666 10.9145L9.1021 8.9445L11.0666 6.97449C11.1401 6.90583 11.1991 6.82303 11.2399 6.73103C11.2808 6.63903 11.3028 6.53972 11.3046 6.43901C11.3063 6.33831 11.2879 6.23828 11.2503 6.14489C11.2126 6.0515 11.1566 5.96667 11.0856 5.89545C11.0146 5.82423 10.93 5.76809 10.8369 5.73037C10.7437 5.69265 10.644 5.67412 10.5436 5.6759C10.4431 5.67767 10.3441 5.69972 10.2524 5.74071C10.1606 5.7817 10.078 5.8408 10.0096 5.91449L8.04503 7.88449L6.08048 5.91449C5.94025 5.77404 5.75015 5.69515 5.55195 5.69515Z\",\n fill: \"#FF6666\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconErrorRed);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_error_red.9414296fd9ea6344712f7f98aaced6a5.svg\";","/**\n * @description Component-SpotSwapPoolsItem\n */\nimport './index.less';\n\nimport { SwitchBtn } from '@/components/Button';\nimport { PoolTypePools, spotDexInfos } from '@/constants/spot';\nimport { useSpotState } from '@/features/spot/store';\nimport { PoolType } from '@synfutures/sdks-aggregator';\nimport _ from 'lodash';\nimport { FC, useMemo } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n pool: PoolType;\n}\nconst SpotSwapPoolsItem: FC = function ({ pool }) {\n const { poolsToExcludeTemp, setPoolsToExcludeTemp } = useSpotState();\n const isChecked = useMemo(() => !poolsToExcludeTemp.includes(pool), [pool, poolsToExcludeTemp]);\n return (\n
\n
\n {' '}\n {_.get(spotDexInfos, [pool])?.name}\n
\n {\n if (!checked && poolsToExcludeTemp.length < PoolTypePools.length - 1) {\n setPoolsToExcludeTemp(_.uniq([...poolsToExcludeTemp, pool]));\n } else {\n setPoolsToExcludeTemp(_.without(poolsToExcludeTemp, pool));\n }\n }}\n />\n
\n );\n};\n\nexport default SpotSwapPoolsItem;\n","/**\n * @description Component-SpotSwapPools\n */\nimport './index.less';\n\nimport { ReactComponent as ArrowIcon } from '@/assets/svg/icon_arrow.svg';\nimport { PoolTypePools } from '@/constants/spot';\nimport { PoolType } from '@synfutures/sdks-aggregator';\nimport classNames from 'classnames';\nimport { FC, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport SpotSwapPoolsItem from './SpotSwapPoolsItem';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SpotSwapPools: FC = function ({}) {\n const [open, setOpen] = useState(true);\n const { t } = useTranslation();\n return (\n
\n
setOpen(!open)} className=\"syn-spot-swap-pools-header\">\n {t('spot.lqSource')}\n \n
\n {open && (\n
\n {PoolTypePools.map((pool) => (\n \n ))}\n
\n )}\n
\n );\n};\n\nexport default SpotSwapPools;\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconInfoWhite = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1049_27617)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.0547 15.5925C11.7367 15.5925 14.7214 12.6078 14.7214 8.92579C14.7214 5.24379 11.7367 2.25912 8.0547 2.25912C4.3727 2.25912 1.38803 5.24379 1.38803 8.92579C1.38803 12.6078 4.3727 15.5925 8.0547 15.5925ZM7.42924 4.93369C7.57302 4.78991 7.76802 4.70914 7.97135 4.70914H8.35469C8.55802 4.70914 8.75302 4.78991 8.8968 4.93369C9.04058 5.07747 9.12135 5.27247 9.12135 5.4758C9.12135 5.67914 9.04058 5.87414 8.8968 6.01792C8.75302 6.1617 8.55802 6.24247 8.35469 6.24247H7.97135C7.76802 6.24247 7.57302 6.1617 7.42924 6.01792C7.28546 5.87414 7.20469 5.67914 7.20469 5.4758C7.20469 5.27247 7.28546 5.07747 7.42924 4.93369ZM6.27924 8.00036C6.42302 7.85658 6.61802 7.77581 6.82135 7.77581H8.35469C8.55802 7.77581 8.75302 7.85658 8.8968 8.00036C9.04058 8.14414 9.12135 8.33914 9.12135 8.54248V11.6091H9.88802C10.0914 11.6091 10.2864 11.6899 10.4301 11.8337C10.5739 11.9775 10.6547 12.1725 10.6547 12.3758C10.6547 12.5791 10.5739 12.7742 10.4301 12.9179C10.2864 13.0617 10.0914 13.1425 9.88802 13.1425H6.82135C6.61802 13.1425 6.42302 13.0617 6.27924 12.9179C6.13546 12.7742 6.05469 12.5791 6.05469 12.3758C6.05469 12.1725 6.13546 11.9775 6.27924 11.8337C6.42302 11.6899 6.61802 11.6091 6.82135 11.6091H7.58802V9.30914H6.82135C6.61802 9.30914 6.42302 9.22837 6.27924 9.08459C6.13546 8.94081 6.05469 8.74581 6.05469 8.54248C6.05469 8.33914 6.13546 8.14414 6.27924 8.00036Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1049_27617\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\",\n transform: \"translate(0.0546875 0.925781)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconInfoWhite);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_info_white.5d8514581eb294d5f406cb6102e086a1.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconWarningYellow = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1049_27106)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.59601 8.09978C5.54134 4.65045 6.51467 2.92578 8.05467 2.92578C9.59534 2.92578 10.568 4.65045 12.5133 8.09978L12.756 8.52978L12.7572 8.53195C14.3731 11.3972 15.1812 12.83 14.4507 13.8778C13.72 14.9258 11.912 14.9258 8.29734 14.9258H7.81201C4.19734 14.9258 2.38934 14.9258 1.65867 13.8778C0.928192 12.83 1.73627 11.3972 3.35212 8.53195L3.35334 8.52978L3.59601 8.09978ZM8.585 5.64545C8.44434 5.5048 8.25358 5.42578 8.05466 5.42578C7.85575 5.42578 7.66498 5.5048 7.52433 5.64545C7.38368 5.7861 7.30466 5.97687 7.30466 6.17578V9.92578C7.30466 10.1247 7.38368 10.3155 7.52433 10.4561C7.66498 10.5968 7.85575 10.6758 8.05466 10.6758C8.25358 10.6758 8.44434 10.5968 8.585 10.4561C8.72565 10.3155 8.80467 10.1247 8.80467 9.92578V6.17578C8.80467 5.97687 8.72565 5.7861 8.585 5.64545ZM8.76178 13.1329C8.57424 13.3204 8.31988 13.4258 8.05466 13.4258C7.78945 13.4258 7.53509 13.3204 7.34755 13.1329C7.16001 12.9454 7.05466 12.691 7.05466 12.4258C7.05466 12.1606 7.16001 11.9062 7.34755 11.7187C7.53509 11.5311 7.78945 11.4258 8.05466 11.4258C8.31988 11.4258 8.57424 11.5311 8.76178 11.7187C8.94931 11.9062 9.05467 12.1606 9.05467 12.4258C9.05467 12.691 8.94931 12.9454 8.76178 13.1329Z\",\n fill: \"#FFAA00\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1049_27106\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\",\n transform: \"translate(0.0546875 0.925781)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconWarningYellow);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_warning_yellow.507ca38b067fd928540733981bee891f.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconSettingLinear = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 12,\n viewBox: \"0 0 13 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.75 0.4375C6.36071 0.4375 6.01106 0.545213 5.64526 0.715202C5.29725 0.876925 4.89747 1.11357 4.41218 1.40084L4.38501 1.41693L4.38498 1.41694L4.01519 1.63581C3.52951 1.92352 3.12975 2.16033 2.81932 2.38854C2.49287 2.62854 2.2301 2.88331 2.03838 3.22397L2.03831 3.22411L2.03827 3.22418C1.84699 3.56389 1.76401 3.92245 1.72489 4.32937C1.68748 4.71858 1.68749 5.19193 1.6875 5.76994V6.23007C1.68749 6.80807 1.68748 7.2813 1.72489 7.67045C1.76402 8.07746 1.84704 8.43594 2.03827 8.77582L2.03833 8.77592L2.03838 8.77603C2.23003 9.11632 2.4927 9.3712 2.81926 9.61135C3.13236 9.84159 3.53608 10.0804 4.02737 10.3709L4.04149 10.3793L4.38449 10.5828L4.3848 10.583L4.40617 10.5956L4.40618 10.5956C4.89423 10.8848 5.29582 11.1227 5.64534 11.285C6.01126 11.455 6.36085 11.5625 6.75 11.5625C7.13929 11.5625 7.48894 11.4548 7.85474 11.2848C8.20275 11.1231 8.60252 10.8864 9.08781 10.5992L9.11502 10.5831L9.11527 10.5829L9.11551 10.5828L9.48268 10.365C9.96928 10.0769 10.3697 9.83993 10.6806 9.61144C11.0071 9.37148 11.2699 9.11669 11.4616 8.77603L11.4616 8.77599L11.4617 8.77582C11.653 8.43607 11.736 8.07737 11.7751 7.67043C11.8125 7.28116 11.8125 6.80781 11.8125 6.23001V5.76994C11.8125 5.19193 11.8125 4.7187 11.7751 4.32955C11.736 3.92254 11.653 3.56406 11.4617 3.22418L11.4616 3.22397C11.2699 2.8836 11.0072 2.62884 10.6807 2.38878C10.3695 2.15987 9.96843 1.9223 9.48087 1.63348L9.48085 1.63347L9.09386 1.4044C8.60579 1.11526 8.20419 0.877339 7.85466 0.714977C7.48874 0.545001 7.13915 0.4375 6.75 0.4375ZM6.11936 1.73542C5.82748 1.87106 5.47493 2.07909 4.95802 2.38506L4.95799 2.38507L4.6152 2.58795L4.61519 2.58796L4.61499 2.58807C4.09831 2.89416 3.74632 3.10335 3.48568 3.29496C3.23545 3.47891 3.10551 3.62158 3.01874 3.77582L3.01862 3.77603C2.93147 3.93076 2.87524 4.11964 2.84473 4.437C2.8131 4.76612 2.8125 5.18532 2.8125 5.797V6.203C2.8125 6.81468 2.8131 7.23375 2.84473 7.5628C2.87522 7.87989 2.93141 8.06888 3.01862 8.22397C3.10547 8.37818 3.23556 8.52104 3.48574 8.70502C3.74626 8.8966 4.09833 9.10586 4.61485 9.41134L4.61518 9.41154L4.61552 9.41173L4.9582 9.61505C5.02935 9.65703 5.10039 9.69947 5.17151 9.74196C5.48129 9.92702 5.79243 10.1129 6.11928 10.2647C6.39974 10.395 6.58215 10.4375 6.75 10.4375C6.91771 10.4375 7.10006 10.395 7.38064 10.2646C7.67249 10.1289 8.02501 9.92095 8.54185 9.61502L8.88449 9.41173L8.88473 9.41159L8.88498 9.41144C9.40174 9.10556 9.75377 8.89647 10.0144 8.70493C10.2646 8.52107 10.3945 8.37841 10.4813 8.22418L10.4813 8.22407L10.4814 8.22397C10.5685 8.06928 10.6248 7.8803 10.6553 7.56282C10.6869 7.23364 10.6875 6.81442 10.6875 6.203V5.797C10.6875 5.18532 10.6869 4.76624 10.6553 4.4372C10.6248 4.12011 10.5686 3.93111 10.4814 3.77603C10.3946 3.6219 10.2646 3.47916 10.0143 3.2951C9.75363 3.10344 9.40158 2.8941 8.88501 2.58807L8.8848 2.58795L8.5418 2.38495C8.02502 2.07881 7.67248 1.8708 7.38072 1.73527C7.10026 1.605 6.91785 1.5625 6.75 1.5625C6.58229 1.5625 6.39994 1.60504 6.11936 1.73542Z\",\n fill: \"#1F292E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.75 5.0625C6.23223 5.0625 5.8125 5.48223 5.8125 6C5.8125 6.51777 6.23223 6.9375 6.75 6.9375C7.26777 6.9375 7.6875 6.51777 7.6875 6C7.6875 5.48223 7.26777 5.0625 6.75 5.0625ZM4.6875 6C4.6875 4.86091 5.61091 3.9375 6.75 3.9375C7.88909 3.9375 8.8125 4.86091 8.8125 6C8.8125 7.13909 7.88909 8.0625 6.75 8.0625C5.61091 8.0625 4.6875 7.13909 4.6875 6Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconSettingLinear);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_setting_linear.48e6cf20b27944c4a31a7ff093a4124b.svg\";","/**\n * @description Component-tag\n */\nimport './index.less';\n\nimport { AlertProps, Alert as AntAlert } from 'antd';\nimport cls from 'classnames';\nimport { FC, useEffect, useMemo, useState } from 'react';\n\nimport { ReactComponent as IconErrorRed } from './assets/icon_error_red.svg';\nimport { ReactComponent as IconInfo } from './assets/icon_info_white.svg';\nimport { ReactComponent as IconWarningYellow } from './assets/icon_warning_yellow.svg';\ninterface IAlertProps extends AlertProps {\n // type?: 'primary';\n duration?: number;\n}\nconst Alert: FC = function ({ className, duration, type, ...props }) {\n const [show, setShow] = useState(true);\n const icon = useMemo(() => {\n if (type === 'error') return ;\n if (type === 'warning') return ;\n if (type === 'info') return ;\n return undefined;\n }, [type]);\n useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let timeout: any;\n if (duration) {\n timeout = setTimeout(() => {\n setShow(false);\n }, duration * 1000);\n }\n return () => timeout && clearTimeout(timeout);\n }, [duration]);\n if (!show) {\n return <>;\n }\n return ;\n};\n\nexport default Alert;\n","/**\n * @description Component-TradeSettingAlert\n */\nimport './index.less';\n\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/Alert';\nimport { SLIPPAGE_THRESHOLDS } from '@/constants/global';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\ninterface IPropTypes {\n slippage: string;\n deadline: string;\n gasPrice: string;\n}\nconst TradeSettingAlert: FC = function ({ slippage }) {\n const { t } = useTranslation();\n\n const isShowSlippageLowAlert = useMemo(() => {\n return WrappedBigNumber.from(slippage).lt(SLIPPAGE_THRESHOLDS.LOW);\n }, [slippage]);\n\n const isShowSlippageHighAlert = useMemo(() => {\n return WrappedBigNumber.from(slippage).gte(SLIPPAGE_THRESHOLDS.HIGH);\n }, [slippage]);\n\n const isShowSlippageAlert = useMemo(() => {\n return isShowSlippageLowAlert || isShowSlippageHighAlert;\n }, [isShowSlippageLowAlert, isShowSlippageHighAlert]);\n\n if (!isShowSlippageAlert) return null;\n\n return (\n
\n {isShowSlippageLowAlert && (\n \n )}\n {isShowSlippageHighAlert && (\n \n )}\n
\n );\n};\n\nexport default TradeSettingAlert;\n","// import { CHAIN_ID } from '@derivation-tech/context';\nimport classNames from 'classnames';\nimport { FC, memo, useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport SettingSelectorFormItem from '@/components/SettingSelector/SettingSelectorFormItem';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\n// import { CHAIN_ID } from '@derivation-tech/context';\nimport { DEADLINE_THRESHOLDS, SLIPPAGE_THRESHOLDS } from '@/constants/global';\nimport { setGlobalConfig } from '@/features/global/actions';\nimport { useGlobalConfig, useResetTempGlobalConfig } from '@/features/global/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useGa } from '@/hooks/useGa';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { SettingSelectorData } from '@/types/global';\nimport { GaCategory } from '@/utils/analytics';\nimport { saveGlobalConfigToLocalForage } from '@/utils/storage';\n\nimport { QUERY_KEYS } from '@/constants/query';\nimport { useConfigStoreWithChainId } from '@/features/global/store';\nimport { useSpotState } from '@/features/spot/store';\nimport { queryClient } from '@/pages/App';\nimport SpotSwapPools from '@/pages/Spot/SpotSwapPools';\nimport { Button } from '../../../components/Button';\nimport TradeSettingAlert from './TradeSettingAlert';\nimport './index.less';\ninterface IGlobalSettingsProps {\n onSave: () => void;\n isMobile?: boolean;\n isSpot?: boolean;\n}\nexport const GlobalFormSetting: FC = ({ onSave, isMobile, isSpot }) => {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n const globalConfig = useGlobalConfig(chainId);\n const resetConfigByChain = useResetTempGlobalConfig(chainId);\n const { configTemByChain, setConfigTempByChainId } = useConfigStoreWithChainId(chainId);\n const { sellAmount, token0: sellToken, token1: buyToken, setPoolsToExclude, poolsToExcludeTemp } = useSpotState();\n const gaEvent = useGa();\n const { t } = useTranslation();\n useEffect(() => {\n setConfigTempByChainId(globalConfig);\n }, [globalConfig]);\n\n const updateSpotQueries = useCallback(() => {\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.SPOT.SIMULATE_SWAP(chainId, userAddr, sellAmount, sellToken?.address, buyToken?.address),\n });\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.SPOT.SIMULATE_BEST_ROUTE(\n chainId,\n userAddr,\n sellAmount,\n sellToken?.address,\n buyToken?.address,\n ),\n });\n }, [buyToken?.address, chainId, sellAmount, sellToken?.address, userAddr]);\n const deadlineDatas = useMemo(() => {\n return [\n {\n key: '5',\n value: (\n \n 5\n {' Min'}\n \n ),\n desc: 'Min',\n },\n {\n key: '10',\n value: (\n \n 10\n {' Min'}\n \n ),\n desc: 'Min',\n },\n {\n key: '15',\n value: (\n \n 15\n {' Min'}\n \n ),\n desc: 'Min',\n },\n ] as SettingSelectorData[];\n }, []);\n const slippageDatas = useMemo(() => {\n return [\n { key: '0.1', value: {'0.1%'} },\n { key: '0.5', value: {'0.5%'} },\n { key: '1', value: {'1%'} },\n ] as SettingSelectorData[];\n }, []);\n\n const updateSlippage = useCallback(\n (value: string) => {\n setConfigTempByChainId({ ...configTemByChain, slippage: value });\n gaEvent({\n category: GaCategory.SETTING_MODULE,\n action: 'Setting-Click on Setting',\n });\n },\n [setConfigTempByChainId, configTemByChain, gaEvent],\n );\n const updateDeadline = useCallback(\n (value: string) => {\n setConfigTempByChainId({ ...configTemByChain, deadline: value });\n gaEvent({\n category: GaCategory.SETTING_MODULE,\n action: 'Setting-Click on Setting',\n });\n },\n [setConfigTempByChainId, configTemByChain, gaEvent],\n );\n const saveConfig = useCallback(() => {\n if (chainId) {\n const newConfig = { ...configTemByChain };\n saveGlobalConfigToLocalForage(newConfig);\n dispatch(setGlobalConfig(newConfig));\n setPoolsToExclude(poolsToExcludeTemp);\n onSave();\n updateSpotQueries();\n gaEvent({\n category: GaCategory.SETTING_MODULE,\n action: 'Setting-Click on Save',\n label: JSON.stringify(newConfig),\n });\n }\n }, [chainId, configTemByChain, dispatch, setPoolsToExclude, poolsToExcludeTemp, onSave, updateSpotQueries, gaEvent]);\n\n const resetConfig = useCallback(() => {\n resetConfigByChain();\n gaEvent({\n category: GaCategory.SETTING_MODULE,\n action: 'Setting-Click on Reset',\n });\n }, [resetConfigByChain, gaEvent]);\n\n return (\n
\n \n {t('common.walletCardWrapper.formSettings.slippageLabel')}\n \n }\n keyChanged={updateSlippage}\n value={configTemByChain.slippage}\n isMobile={isMobile}\n customInputLabel=\"%\"\n datas={slippageDatas}\n checkThreshold={true}\n threshold={{\n max: SLIPPAGE_THRESHOLDS.MAX.toString(),\n min: SLIPPAGE_THRESHOLDS.MIN.toString(),\n default: SLIPPAGE_THRESHOLDS.DEFAULT.toString(),\n low: SLIPPAGE_THRESHOLDS.LOW,\n high: SLIPPAGE_THRESHOLDS.HIGH,\n }}\n />\n \n {t('common.walletCardWrapper.formSettings.deadline')}\n \n }\n keyChanged={updateDeadline}\n value={configTemByChain.deadline}\n isMobile={isMobile}\n customInputLabel=\"Min\"\n datas={deadlineDatas}\n checkThreshold={true}\n threshold={{\n max: DEADLINE_THRESHOLDS.MAX.toString(),\n min: DEADLINE_THRESHOLDS.MIN.toString(),\n default: DEADLINE_THRESHOLDS.DEFAULT.toString(),\n }}\n />\n \n {isSpot && }\n
\n \n \n
\n
\n );\n};\nexport default memo(GlobalFormSetting);\n","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconRefreshLinearNew = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 16,\n viewBox: \"0 0 17 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.8863 4.85739C16.2415 5.07056 16.3566 5.53128 16.1434 5.88643L14.6431 8.38588C14.43 8.74095 13.9694 8.85608 13.6143 8.64307L11.1141 7.1434C10.7589 6.93034 10.6436 6.46966 10.8567 6.11445C11.0697 5.75923 11.5304 5.644 11.8856 5.85706L13.7429 6.97106L14.8573 5.11445C15.0705 4.75931 15.5312 4.64421 15.8863 4.85739Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8 2.75C5.10051 2.75 2.75 5.10051 2.75 8C2.75 10.8995 5.10051 13.25 8 13.25C9.3451 13.25 10.5705 12.7451 11.4998 11.9134C11.8085 11.6371 12.2826 11.6634 12.5589 11.972C12.8351 12.2807 12.8088 12.7548 12.5002 13.0311C11.3065 14.0995 9.72832 14.75 8 14.75C4.27208 14.75 1.25 11.7279 1.25 8C1.25 4.27208 4.27208 1.25 8 1.25C11.7279 1.25 14.75 4.27208 14.75 8C14.75 8.41421 14.4142 8.75 14 8.75C13.5858 8.75 13.25 8.41421 13.25 8C13.25 5.10051 10.8995 2.75 8 2.75Z\",\n fill: \"black\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconRefreshLinearNew);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_refresh_linear_new.1d36ccc449c11d3efa3c2e0272ec19bb.svg\";","/**\n * @description Component-SettingsDrawer\n */\nimport './index.less';\n\nimport { FC, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\nimport Drawer from '@/components/Drawer';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { GlobalFormSetting } from '@/pages/components/GlobalFormSettings';\n\nimport { ReactComponent as SettingsIcon } from './assets/icon_setting_linear.svg';\ninterface IPropTypes {\n className?: string;\n}\nconst SettingsDrawer: FC = function () {\n const { t } = useTranslation();\n const [open, setOpen] = useState(false);\n const { isMobile } = useMediaQueryDevice();\n\n return (\n <>\n }\n className=\"syn-trade-details-drawer-btn\"\n onClick={() => setOpen(true)}\n type=\"text\">\n {t('mobile.settings')}\n \n setOpen(false)}\n destroyOnClose\n height={'auto'}>\n {\n setOpen(false);\n }}\n />\n \n \n );\n};\n\nexport default SettingsDrawer;\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconSettingLinear = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_869_9953)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.05469 1.50912C7.53563 1.50912 7.06943 1.65274 6.5817 1.87939C6.11769 2.09503 5.58465 2.41055 4.93759 2.79358L4.90136 2.81503L4.90133 2.81505L4.40827 3.10688C3.7607 3.49048 3.22768 3.80623 2.81378 4.11051C2.37851 4.43051 2.02815 4.77021 1.77253 5.22442L1.77243 5.2246L1.77238 5.2247C1.51734 5.67765 1.4067 6.15572 1.35455 6.69828C1.30467 7.21723 1.30468 7.84836 1.30469 8.61905V9.23255C1.30468 10.0032 1.30467 10.6342 1.35455 11.1531C1.40672 11.6957 1.51741 12.1737 1.77238 12.6269L1.77245 12.627L1.77253 12.6272C2.02807 13.0809 2.37828 13.4207 2.8137 13.7409C3.23116 14.0479 3.76946 14.3663 4.42452 14.7537L4.44333 14.7648L4.90067 15.0361L4.90109 15.0364L4.92958 15.0533L4.92959 15.0533C5.58033 15.4388 6.11578 15.756 6.58181 15.9725C7.06971 16.1991 7.53582 16.3425 8.05469 16.3425C8.57374 16.3425 9.03994 16.1988 9.52767 15.9722C9.99168 15.7566 10.5247 15.441 11.1718 15.058L11.208 15.0365L11.2084 15.0363L11.2087 15.0361L11.6983 14.7457C12.3471 14.3617 12.881 14.0457 13.2955 13.741C13.7308 13.4211 14.0812 13.0814 14.3368 12.6272L14.3369 12.6271L14.337 12.6269C14.5921 12.1739 14.7027 11.6956 14.7548 11.153C14.8047 10.634 14.8047 10.0029 14.8047 9.23247V8.61905C14.8047 7.84837 14.8047 7.21739 14.7548 6.69852C14.7027 6.15584 14.592 5.67787 14.337 5.2247L14.3368 5.22442C14.0813 4.77059 13.731 4.43091 13.2957 4.11083C12.8806 3.80562 12.3459 3.48886 11.6958 3.10376L11.6958 3.10374L11.1798 2.79833C10.5291 2.4128 9.99361 2.09558 9.52757 1.87909C9.03967 1.65246 8.57355 1.50912 8.05469 1.50912ZM7.21384 3.23969C6.82466 3.42054 6.3546 3.69791 5.66538 4.10587L5.66535 4.10589L5.20829 4.3764L5.20827 4.3764L5.20801 4.37656C4.5191 4.78468 4.04978 5.06359 3.70226 5.31907C3.36862 5.56434 3.19537 5.75456 3.07967 5.96022L3.07951 5.9605C2.96332 6.1668 2.88834 6.41864 2.84766 6.8418C2.80549 7.28061 2.80469 7.83955 2.80469 8.65512V9.19646C2.80469 10.012 2.80549 10.5708 2.84766 11.0095C2.88831 11.4323 2.96323 11.6843 3.07951 11.8911C3.19531 12.0967 3.36876 12.2872 3.70234 12.5325C4.0497 12.7879 4.51913 13.0669 5.20781 13.4742L5.20826 13.4745L5.20871 13.4748L5.66562 13.7459C5.76048 13.8018 5.85521 13.8584 5.95003 13.9151C6.36307 14.1618 6.77792 14.4097 7.21373 14.6121C7.58767 14.7858 7.83089 14.8425 8.05469 14.8425C8.2783 14.8425 8.52143 14.7857 8.89553 14.6119C9.28468 14.4311 9.7547 14.1537 10.4438 13.7458L10.9007 13.4748L10.901 13.4746L10.9013 13.4744C11.5903 13.0665 12.0597 12.7878 12.4072 12.5324C12.7408 12.2872 12.914 12.097 13.0297 11.8914L13.0298 11.8912L13.0299 11.8911C13.146 11.6848 13.221 11.4329 13.2617 11.0095C13.3039 10.5706 13.3047 10.0117 13.3047 9.19646V8.65512C13.3047 7.83955 13.3039 7.28078 13.2617 6.84206C13.2211 6.41926 13.1461 6.16728 13.0299 5.9605C12.9141 5.75499 12.7408 5.56467 12.407 5.31926C12.0595 5.06371 11.5901 4.78459 10.9014 4.37656L10.9011 4.3764L10.4438 4.10573C9.75472 3.69754 9.28466 3.42019 8.89564 3.23949C8.52171 3.06579 8.27849 3.00912 8.05469 3.00912C7.83108 3.00912 7.58794 3.06584 7.21384 3.23969Z\",\n fill: \"#1F292E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.05469 7.67578C7.36433 7.67578 6.80469 8.23543 6.80469 8.92578C6.80469 9.61614 7.36433 10.1758 8.05469 10.1758C8.74504 10.1758 9.30469 9.61614 9.30469 8.92578C9.30469 8.23543 8.74504 7.67578 8.05469 7.67578ZM5.30469 8.92578C5.30469 7.407 6.5359 6.17578 8.05469 6.17578C9.57347 6.17578 10.8047 7.407 10.8047 8.92578C10.8047 10.4446 9.57347 11.6758 8.05469 11.6758C6.5359 11.6758 5.30469 10.4446 5.30469 8.92578Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_869_9953\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\",\n transform: \"translate(0.0546875 0.925781)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconSettingLinear);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_setting_linear.53c6b3ceabdea8f8e0feabe50cb932b2.svg\";","/**\n * @description Component-Fallback\n * https://www.npmjs.com/package/framer-motion\n * https://zhuanlan.zhihu.com/p/337546795\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { animated, useSpring } from 'react-spring';\ninterface Props {\n children?: React.ReactNode;\n show: boolean;\n isMobile: boolean | undefined;\n}\nconst Fallback: FC = function ({ children, show }) {\n const styles = useSpring(\n show\n ? {\n opacity: 1,\n x: 0,\n contentVisibility: 'auto',\n display: 'block',\n }\n : { opacity: 0, x: 200, duration: 600, contentVisibility: 'hidden', display: 'none' },\n );\n\n return (\n \n {children}\n \n );\n};\n\nexport default Fallback;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconChevronRight = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 17,\n viewBox: \"0 0 16 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.51192 3.64346C5.82641 3.3739 6.29989 3.41032 6.56946 3.72481L10.5695 8.39148C10.8102 8.67234 10.8102 9.0868 10.5695 9.36766L6.56946 14.0343C6.29989 14.3488 5.82641 14.3852 5.51192 14.1157C5.19743 13.8461 5.161 13.3726 5.43057 13.0581L9.01221 8.87957L5.43057 4.701C5.161 4.3865 5.19743 3.91303 5.51192 3.64346Z\",\n fill: \"#ABB5BA\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconChevronRight);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_chevron_right.3ed57fed0f792d268a8381d1c9b27ffc.svg\";","/**\n * @description Component-CardWrapper\n */\nimport './index.less';\n\nimport { Card } from 'antd';\nimport cls from 'classnames';\nimport { FC, useCallback, useMemo } from 'react';\n\nimport { Button } from '@/components/Button';\n// import WrapNativeTokenBtn from '@/components/WrapNativeTokenBtn';\nimport { ICardWrapperProps } from '@/types/card';\n\nimport { ReactComponent as RefreshIcon } from '@/assets/svg/icon_refresh_linear_new.svg';\nimport { useResetTempGlobalConfig } from '@/features/global/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport _ from 'lodash';\nimport Fallback from '../Fallback';\nimport { ReactComponent as CloseIcon } from '../assets/icon_close.svg';\nimport { ReactComponent as SettingsIcon } from '../assets/icon_setting_linear.svg';\n\nconst CardWrapper: FC = function ({\n className,\n children,\n showSubCard = false,\n subCardSlot,\n tabList,\n footerClassName,\n alert,\n footer,\n tabKey,\n subCardTitle,\n mode,\n clickClose,\n showSettingsIcon = true,\n showCloseIcon = true,\n mobileMode,\n title,\n // slotHeight = 217,\n onFallbackClick,\n onRefreshIonClick,\n showFooter = true,\n titleRight,\n //isWrappedNative,\n extraHeader,\n ...props\n}) {\n const chainId = useChainId();\n const resetTempConfig = useResetTempGlobalConfig(chainId);\n const onfallbackClick = useCallback(\n (fallback: boolean) => {\n onFallbackClick && onFallbackClick(fallback);\n resetTempConfig();\n },\n [onFallbackClick, resetTempConfig],\n );\n const onRefreshClick = useCallback(() => {\n onRefreshIonClick && onRefreshIonClick();\n }, [onRefreshIonClick]);\n const onCloseSettings = useCallback(() => {\n clickClose && clickClose();\n }, [clickClose]);\n\n const renderFooter = useMemo(() => {\n if (!footer) return undefined;\n return (\n
\n {alert &&
{alert}
}\n
\n {mobileMode && showSettingsIcon && (\n {\n onfallbackClick(true);\n }}>\n \n \n )}\n {footer}\n
\n
\n );\n }, [alert, footer, footerClassName, mobileMode, onfallbackClick, showSettingsIcon]);\n\n const handleFallbackProps = useMemo(() => {\n const modeProps =\n mode === 'modal'\n ? {\n // tabList,\n title: (\n <>\n
{title}
\n
\n {titleRight ? (\n {\n onfallbackClick(true);\n }}>\n {titleRight.node}\n \n ) : (\n <>\n {showSettingsIcon && (\n <>\n {props.showRefreshIcon && (\n {\n onRefreshClick();\n }}>\n \n \n )}\n {\n onfallbackClick(true);\n }}>\n \n \n \n )}\n {showCloseIcon && (\n \n \n \n )}\n \n )}\n
\n \n ),\n }\n : { tabList, activeTabKey: tabKey };\n const defaultProps = {\n ...modeProps,\n tabBarExtraContent: (\n <>\n {/* {isWrappedNative && } */}\n {showSettingsIcon && (\n {\n onfallbackClick(true);\n }}>\n \n \n )}\n {mode === 'modal' && (\n \n \n \n )}\n \n ),\n };\n const fallbackProps = {\n title: (\n <>\n {subCardTitle}\n onfallbackClick(false)}>\n \n \n {/* {mode === 'modal' ? clickClose && clickClose()} /> :
} */}\n \n ),\n };\n return !showSubCard ? defaultProps : fallbackProps;\n }, [\n mode,\n title,\n titleRight,\n showSettingsIcon,\n props.showRefreshIcon,\n showCloseIcon,\n onCloseSettings,\n tabList,\n tabKey,\n subCardTitle,\n showSubCard,\n onfallbackClick,\n onRefreshClick,\n ]);\n\n return (\n \n {extraHeader &&
{extraHeader}
}\n \n {!showSubCard && (\n <>\n
{children}
\n {showFooter && renderFooter && (\n
{renderFooter}
\n )}\n \n )}\n \n {subCardSlot}\n \n \n \n );\n};\n\nexport default CardWrapper;\n","/**\n * @description Component-CardModalWrapper\n */\nimport './index.less';\n\nimport { Modal } from 'antd';\nimport { FC, useMemo } from 'react';\n\nimport { ICardWrapperProps } from '@/types/card';\nimport { ICardWrapperModalPropTypes } from '@/types/modal';\n\nimport CardWrapper from '../Card';\n\nconst CardModalWrapper: FC = function ({ cardProps, onClose, children, ...props }) {\n const cardDefaultProps: ICardWrapperProps = useMemo(() => {\n return {\n mode: 'modal',\n tabList: [],\n ...cardProps,\n };\n }, [cardProps]);\n return (\n \n onClose && onClose()}>\n {children}\n \n \n );\n};\n\nexport default CardModalWrapper;\n","/**\n * @description Component-SettingSubCard\n */\nimport { FC } from 'react';\n\nimport GlobalFormSetting from '@/pages/components/GlobalFormSettings';\n// import './index.less';\ninterface IPropTypes {\n onSave: () => void;\n isMobile?: boolean;\n isSpot?: boolean;\n}\nconst SettingSubCard: FC = function (props) {\n return (\n
\n \n
\n );\n};\n\nexport default SettingSubCard;\n","import './index.less';\n\nimport classnames from 'classnames';\n\nimport { THEME_ENUM } from '@/constants';\nimport { useTheme } from '@/features/global/hooks';\nimport { WalletType } from '@/types/wallet';\n\nimport React from 'react';\nimport { useWalletConfig } from '../hook';\n\nexport default function WalletBrand({\n type,\n hideName,\n extraDesc,\n}: {\n type: WalletType;\n hideName?: boolean;\n extraDesc?: React.ReactNode;\n}): JSX.Element | null {\n const walletConfig = useWalletConfig(type);\n const { dataTheme } = useTheme();\n if (!walletConfig) return null;\n return (\n
\n \n {!hideName && (\n \n {walletConfig.name}\n {extraDesc && {extraDesc}}\n \n )}\n
\n );\n}\n","/**\n * @description Component-SocialWallet\n */\nimport { ISocialWalletInfo, IWalletConfigInfo, WalletType } from '@/types/wallet';\n\nimport { ReactComponent as ChrevronRight } from '@/assets/svg/icon_chevron_right.svg';\nimport BigLoading from '@/components/Loading/BigLoading';\nimport './index.less';\n\nimport { useLoginInOrOutPrivyWallet, usePrivyWalletAddress } from '@/connectors/privy/usePrivyWallet';\nimport { GlobalModalType } from '@/constants';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport classNames from 'classnames';\nimport { FC, useCallback, useMemo } from 'react';\nimport WalletBrand from '../../WalletBrand';\nimport { setWalletType } from '../../walletSlice';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n wallet: ISocialWalletInfo;\n pendingWallet?: WalletType;\n onChangePendingWallet?: (wallet?: IWalletConfigInfo) => void;\n}\nconst SocialWallet: FC = function ({ wallet, pendingWallet, onChangePendingWallet }) {\n const dispatch = useAppDispatch();\n const privyAddr = usePrivyWalletAddress();\n const toggleModal = useToggleModal(GlobalModalType.Wallet);\n\n const { login } = useLoginInOrOutPrivyWallet((isLogin, successLogin) => {\n console.log('🚀 ~ login:', { isLogin, successLogin });\n onChangePendingWallet && onChangePendingWallet(undefined);\n });\n\n const handleChangeWallet = useCallback(\n (wallet: ISocialWalletInfo) => {\n onChangePendingWallet && onChangePendingWallet(wallet);\n if (wallet.type === WalletType.PRIVY) {\n if (privyAddr) {\n dispatch(setWalletType({ type: WalletType.PRIVY }));\n onChangePendingWallet && onChangePendingWallet(undefined);\n toggleModal(false);\n } else login();\n }\n },\n [dispatch, login, onChangePendingWallet, privyAddr, toggleModal],\n );\n\n const content = useMemo(() => {\n return (\n {\n handleChangeWallet(wallet);\n }}>\n \n
\n {/* {wallet.type === TRENDING_WALLET && (\n \n 🔥{' '}\n \n <> {t('modal.walletModal.walletItem.Trending')}\n \n \n )} */}\n {pendingWallet === wallet.type ? : }\n
\n \n );\n }, [handleChangeWallet, pendingWallet, wallet]);\n\n return (\n
\n {content}\n {/* {pendingError === wallet.connector && (\n
\n \n {walletError}\n {\n handleChangeWallet(wallet, chainId);\n }}>\n {t('modal.walletModal.walletItem.TryAgain')}\n \n
\n )} */}\n
\n );\n};\n\nexport default SocialWallet;\n","/**\n * @description Component-WalletItem\n */\nimport { InfoCircleFilled } from '@ant-design/icons';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { FC, useCallback, useMemo, useState } from 'react';\nimport { isMobile } from 'react-device-detect';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as ChrevronRight } from '@/assets/svg/icon_chevron_right.svg';\nimport { Button } from '@/components/Button';\nimport BigLoading from '@/components/Loading/BigLoading';\nimport { GlobalModalType } from '@/constants';\nimport { SUPPORTED_WALLETS } from '@/constants/wallets';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useGa } from '@/hooks/useGa';\nimport { IWalletConfigInfo, IWeb3WalletInfo, WalletType } from '@/types/wallet';\nimport { GaCategory } from '@/utils/analytics';\n\nimport { useLoginInOrOutPrivyWallet } from '@/connectors/privy/usePrivyWallet';\nimport { WALLET_TYPE } from '@/constants/storage';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { useWagmiAccount, useWagmiDisconnect } from '@/hooks/web3/useWagami';\nimport { clearDisconnectFlag } from '@/utils/wagmi';\nimport { ProviderNotFoundError, useConnect } from 'wagmi';\nimport WalletBrand from '../../WalletBrand';\nimport { useWalletExists } from '../../hook';\nimport { setWalletType } from '../../walletSlice';\n\nfunction openDeeplinkUrl(url: string): void {\n const a = document.createElement('a');\n a.href = url;\n a.target = '_self';\n document.body.appendChild(a);\n a.click();\n a.remove();\n}\n\ninterface IPropTypes {\n wallet: IWeb3WalletInfo;\n pendingWallet?: WalletType;\n pendingWalletId?: string;\n onChangePendingWallet?: (wallet?: IWalletConfigInfo) => void;\n}\nconst DEFAULT_ERROR = 'Connection failed';\nconst WalletItem: FC = function ({ wallet, pendingWallet, pendingWalletId, onChangePendingWallet }) {\n const dispatch = useAppDispatch();\n const toggleWalletModal = useToggleModal(GlobalModalType.Wallet);\n const [pendingError, setPendingError] = useState();\n const [walletError, setWalletError] = useState(DEFAULT_ERROR);\n const { connector: lastConnector } = useWagmiAccount();\n const { connectAsync } = useConnect();\n const disconnect = useWagmiDisconnect();\n const { logout } = useLoginInOrOutPrivyWallet();\n const isWalletExists = useWalletExists(wallet.type);\n\n const { t } = useTranslation();\n const gaEvent = useGa();\n const chainId = useChainId();\n\n const tryActivation = useCallback(\n async (wallet: IWeb3WalletInfo, chainId: number | undefined) => {\n console.log('🚀 ~ chainId:', { chainId, wallet });\n // support coin98 override\n\n if (wallet.type === WalletType.METAMASK && _.get(window.ethereum, ['isCoin98'])) {\n wallet = SUPPORTED_WALLETS[WalletType.COIN_98];\n }\n const connector = wallet.connector;\n const lastConnector1 = lastConnector;\n if (!connector) return;\n if (connector?.id === lastConnector1?.id) {\n toggleWalletModal(false);\n dispatch(setWalletType({ type: wallet.type }));\n }\n\n try {\n onChangePendingWallet && onChangePendingWallet(wallet); // set wallet for pending view\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await connectAsync({ connector });\n clearDisconnectFlag();\n\n if (lastConnector1 && lastConnector1?.id !== connector.id) {\n disconnect();\n }\n localStorage.setItem(WALLET_TYPE, wallet.type);\n dispatch(setWalletType({ type: wallet.type }));\n toggleWalletModal(false);\n gtag('event', 'connect_wallet_result', {\n connect_wallet_result: 'success',\n });\n logout();\n } catch (error) {\n console.log('🚀 ~ tryActivation error:', error);\n if (error instanceof ProviderNotFoundError) {\n setWalletError(t('errors.wallet.notInstalled', { wallet: wallet.name }));\n }\n\n setPendingError(wallet);\n } finally {\n // onChangePendingWallet && onChangePendingWallet(undefined);\n }\n },\n [lastConnector, toggleWalletModal, dispatch, onChangePendingWallet, connectAsync, logout, disconnect, t],\n );\n\n const handleChangeWallet = useCallback(\n (wallet: IWeb3WalletInfo, chainId: number | undefined) => {\n if (isMobile && wallet.mobile) {\n // no bit keep wallet\n\n if (wallet.type === WalletType.COIN_98 && !window.coin98?.provider) {\n if (wallet.downloadLink) {\n window.open(wallet.downloadLink, '_blank');\n return;\n }\n }\n\n // open in mobile browser, open deep link\n if (!window.web3 && !window.ethereum) {\n if (wallet.mobileDeepLink && document.URL) {\n // navigate(wallet.mobileDeepLink + document.URL);\n openDeeplinkUrl(wallet.mobileDeepLink);\n return;\n }\n }\n }\n gaEvent({\n category: GaCategory.WALLET_MODULE,\n action: 'Wallet-Click on Wallet Type',\n label: wallet.name,\n });\n setPendingError(undefined);\n tryActivation(wallet, chainId);\n },\n [tryActivation, gaEvent],\n );\n\n const content = useMemo(() => {\n return (\n {\n handleChangeWallet(wallet, chainId);\n }}>\n {t('modal.walletModal.installed')} : undefined\n }\n />\n
\n {/* {wallet.type === TRENDING_WALLET && (\n \n 🔥{' '}\n \n <> {t('modal.walletModal.walletItem.Trending')}\n \n \n )} */}\n {pendingWallet === wallet.type ? : }\n
\n \n );\n }, [chainId, handleChangeWallet, isWalletExists, pendingError, pendingWallet, pendingWalletId, t, wallet]);\n\n return (\n
\n {content}\n {pendingError === wallet && pendingWalletId === wallet.id && (\n
\n \n {walletError}\n {\n handleChangeWallet(wallet, chainId);\n }}>\n {t('modal.walletModal.walletItem.TryAgain')}\n \n
\n )}\n
\n );\n};\n\nexport default WalletItem;\n\nexport const EmptyWalletItem = function () {\n return (\n
\n
\n
\n );\n};\n","import './index.less';\n\nimport classnames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport { ExternalLink } from '@/components/Link';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { useGa } from '@/hooks/useGa';\nimport { GaCategory } from '@/utils/analytics';\n\nimport { WalletType } from '@/types/wallet';\nimport { useState } from 'react';\nimport { useSocialWalletConfigList, useWeb3WalletConfigList } from '../hook';\nimport SocialWallet from './SocialWallet';\nimport WalletItem, { EmptyWalletItem } from './WalletItem';\n\nexport function WalletModalContent(): JSX.Element {\n const walletList = useWeb3WalletConfigList();\n const { isNotMobile, isMobile } = useMediaQueryDevice();\n const socialWalletList = useSocialWalletConfigList();\n const [pendingWallet, setPendingWallet] = useState();\n const [pendingWalletId, setPendingWalletId] = useState();\n\n return (\n
\n \n
\n
\n {walletList.map((wallet) => {\n if (isNotMobile && wallet.mobileOnly) return null;\n if (isMobile && !wallet.mobile) return null;\n return (\n {\n setPendingWallet(wallet?.type);\n setPendingWalletId(wallet?.id);\n }}\n />\n );\n })}\n {isNotMobile && walletList.length && walletList.length % 2 === 1 ? : null}\n
\n\n
\n {socialWalletList.length && (\n
\n {socialWalletList.map((wallet) => {\n return (\n {\n setPendingWallet(wallet?.type);\n setPendingWalletId(wallet?.id);\n }}\n />\n );\n })}\n {isNotMobile && socialWalletList.length && socialWalletList.length % 2 === 1 ? : null}\n
\n )}\n
\n
\n );\n}\n\nexport function WalletModalHeader(): JSX.Element {\n const gaEvent = useGa();\n const { t } = useTranslation();\n return (\n

\n {t('modal.walletModal.header.title')}{' '}\n {\n gaEvent({\n category: GaCategory.WALLET_MODULE,\n action: 'Wallet-Click on Terms of Use',\n });\n }}\n href=\"https://www.synfutures.com/terms\">\n {t('modal.walletModal.header.ToS')}\n {' '}\n {t('modal.walletModal.header.and')}{' '}\n {\n gaEvent({\n category: GaCategory.WALLET_MODULE,\n action: 'Wallet-Click on Privacy Policy',\n });\n }}\n href=\"https://www.synfutures.com/policy\">\n {t('modal.walletModal.header.PP')}\n {' '}\n {t('modal.walletModal.header.title2')}\n

\n );\n}\n","/**\n * @description Component-ConnectWalletSubCard\n */\nimport React, { FC } from 'react';\n\nimport { WalletModalContent } from '@/features/wallet/WalletModalContent';\n\nimport './index.less';\n\nconst ConnectWalletSubCard: FC = function () {\n return (\n
\n {/* */}\n \n
\n );\n};\n\nexport default React.memo(ConnectWalletSubCard);\n","import React, { useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { GlobalModalType } from '@/constants';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useGa } from '@/hooks/useGa';\nimport { ISubCardProps } from '@/types/cardwrapper';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\nimport { GaCategory } from '@/utils/analytics';\n\nimport ConnectWalletButton from './ConnectWalletButton';\nimport ConnectWalletSubCard from './ConnectWalletSubCard';\nimport SwitchNetworkButton from './SwitchNetworkButton';\nexport function useUnConnectSubCard(\n showSubCard: string | undefined,\n setShowSubCard: React.Dispatch>,\n showFooter = true,\n connectWalletButtonChildren?: React.ReactNode,\n): ISubCardProps | undefined {\n const { isMobile } = useMediaQueryDevice();\n const walletConnectStatus = useWalletConnectStatus();\n const gaEvent = useGa();\n const { t } = useTranslation();\n const toggleWalletModal = useToggleModal(GlobalModalType.Wallet);\n\n const res = useMemo(() => {\n let res: ISubCardProps | undefined;\n if (showFooter) {\n if (walletConnectStatus === WALLET_CONNECT_STATUS.UN_CONNECT) {\n res = {\n footer: (\n {\n toggleWalletModal();\n gaEvent({\n category: GaCategory.TRADE_PAIR_CARD_WRAPPER,\n action: 'Wallet-Click on Connect Wallet',\n });\n }}>\n {connectWalletButtonChildren}\n \n ),\n };\n } else if (walletConnectStatus === WALLET_CONNECT_STATUS.WRONG_NETWORK) {\n res = {\n footer: ,\n };\n }\n }\n if (showSubCard !== 'setting' && res && !isMobile) {\n res = {\n ...res,\n subCardSlot: ,\n subCardTitle: t('common.connectWal'),\n };\n }\n return res;\n }, [gaEvent, isMobile, showFooter, showSubCard, t, toggleWalletModal, walletConnectStatus]);\n\n useEffect(() => {\n setShowSubCard(undefined);\n }, [setShowSubCard, walletConnectStatus]);\n\n return res;\n}\n","/**\n * @description Component-WalletCardWrapper\n */\nimport classNames from 'classnames';\nimport { FC, memo, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport { CardWrapper } from '@/components/CardWrapper';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { ICardWrapperProps } from '@/types/card';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\n\nimport SettingSubCard from '../SettingSubCard';\nimport { useUnConnectSubCard } from '../UnconnectSubCard';\ninterface IWalletCardWrapperProps extends ICardWrapperProps {\n showSliderBar?: boolean;\n isSpot?: boolean;\n onTabChange?: (key: string) => void;\n}\n\nconst WalletCardWrapper: FC = function ({ className, ...props }) {\n const [showSubCard, setShowSubCard] = useState<'wallet' | 'setting' | undefined>(undefined);\n const unConnectSubCardProps = useUnConnectSubCard(showSubCard, setShowSubCard, true);\n const { t } = useTranslation();\n const subCardProps = useMemo(() => {\n return {\n subCardSlot: (\n {\n props.onFallbackClick && props.onFallbackClick(false);\n setShowSubCard(undefined);\n }}>\n ),\n subCardTitle: t('common.walletCardWrapper.subCardTitle'),\n ...unConnectSubCardProps,\n };\n }, [props, t, unConnectSubCardProps]);\n\n const walletConnectStatus = useWalletConnectStatus();\n\n useEffect(() => {\n // close\n if (showSubCard === 'wallet' && walletConnectStatus !== WALLET_CONNECT_STATUS.UN_CONNECT) {\n setShowSubCard(undefined);\n }\n }, [walletConnectStatus, showSubCard]);\n\n return (\n {\n setShowSubCard(fallback ? 'setting' : undefined);\n props.onFallbackClick && props.onFallbackClick(fallback);\n }}\n {...subCardProps}\n />\n );\n};\n\nexport default memo(WalletCardWrapper);\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { BALANCE_TYPE } from '@/constants';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { WrappedQuote } from '@/entities/WrappedQuote';\nimport { useWrappedOrderListByUser } from '@/features/account/orderHook';\nimport { usePositionListByUser } from '@/features/account/positionHook';\nimport { useWrappedRangeListByUser } from '@/features/account/rangeHook';\nimport { useGateAccountState, useUserGateBalanceList } from '@/features/balance/hook';\nimport { useWrappedQuoteMap } from '@/features/chain/hook';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useTokenPrices } from '@/features/global/query';\nimport { useFundFlows, useUserAllPendingTokens } from '@/features/portfolio/hook';\nimport { IAssetsBalance, IAssetsPnl, IAssetsTotals, IPairAssetsBalance } from '@/types/assets';\nimport { ISimulation } from '@/types/trade';\nimport _ from 'lodash';\n\nexport function useAssetsBalanceMap(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n filterOptions?: { isFilterLiq?: boolean },\n): {\n [tokenAddr: string]: IAssetsBalance;\n} {\n const gateBalanceList = useUserGateBalanceList(chainId, userAddr);\n\n const marginTokenMap = useWrappedQuoteMap(chainId);\n const positionList = usePositionListByUser(chainId, userAddr, false);\n const orderList = useWrappedOrderListByUser(chainId, userAddr, false);\n const rangeList = useWrappedRangeListByUser(chainId, userAddr, false);\n return useMemo(() => {\n const balanceList: {\n [tokenAddr: string]: IAssetsBalance;\n } = {};\n\n Object.values(marginTokenMap).forEach((marginToken) => {\n const balanceItem = balanceList[marginToken.address];\n if (!balanceItem) {\n balanceList[marginToken.address] = {\n quote: marginToken,\n balanceInOrder: WrappedBigNumber.ZERO,\n balanceInRange: WrappedBigNumber.ZERO,\n balanceInPosition: WrappedBigNumber.ZERO,\n gateBalance: WrappedBigNumber.ZERO,\n totalBalance: WrappedBigNumber.ZERO,\n };\n }\n });\n if (positionList) {\n positionList.forEach((position) => {\n const marginToken = position.rootInstrument.marginToken;\n const balanceItem = balanceList[marginToken.address];\n balanceItem.balanceInPosition = WrappedBigNumber.from(balanceItem?.balanceInPosition || 0).add(position.equity);\n });\n }\n if (orderList) {\n orderList.forEach((order) => {\n const marginToken = order.rootInstrument.marginToken;\n const balanceItem = balanceList[marginToken.address];\n balanceItem.balanceInOrder = WrappedBigNumber.from(balanceItem?.balanceInOrder || 0).add(order.balance);\n });\n }\n if (rangeList) {\n rangeList.forEach((range) => {\n const marginToken = range.rootInstrument.marginToken;\n const balanceItem = balanceList[marginToken.address];\n balanceItem.balanceInRange = WrappedBigNumber.from(balanceItem?.balanceInRange || 0).add(range.valueLocked);\n });\n }\n if (gateBalanceList) {\n gateBalanceList.forEach((gateBalance) => {\n const balanceItem = balanceList[gateBalance.address];\n balanceItem && (balanceItem.gateBalance = gateBalance.balance);\n });\n }\n\n Object.values(balanceList).forEach((balanceItem) => {\n balanceItem.totalBalance = WrappedBigNumber.from(0)\n .add(balanceItem?.balanceInPosition || 0)\n .add(balanceItem?.balanceInOrder || 0)\n .add(filterOptions?.isFilterLiq ? 0 : balanceItem?.balanceInRange || 0)\n .add(balanceItem?.gateBalance || 0);\n });\n return balanceList;\n }, [\n filterOptions?.isFilterLiq,\n JSON.stringify(marginTokenMap),\n JSON.stringify(orderList),\n JSON.stringify(positionList),\n JSON.stringify(rangeList),\n JSON.stringify(gateBalanceList),\n ]);\n}\n\nexport function useAssetsBalanceList(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n filterOptions?: { isFilterLiq?: boolean },\n requiredIncludedInQuoteDisplayList?: boolean,\n): IAssetsBalance[] {\n const balanceMap = useAssetsBalanceMap(chainId, userAddr, filterOptions);\n const assetBalanceList = useMemo(() => Object.values(balanceMap), [balanceMap]);\n const backendChainConfig = useBackendChainConfig(chainId);\n const filteredAssets = useMemo(() => {\n return (_.uniq(backendChainConfig?.quoteDisplayList) || []).reduce((acc, symbol) => {\n const asset = assetBalanceList.find((asset) => asset.quote.symbol === symbol);\n if (asset) {\n acc.push(asset);\n }\n return acc;\n }, [] as IAssetsBalance[]);\n }, [assetBalanceList, backendChainConfig?.quoteDisplayList]);\n if (!requiredIncludedInQuoteDisplayList) {\n return assetBalanceList;\n } else {\n return filteredAssets;\n }\n}\nexport function useAssetsTotalsInUsd(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n filterOptions?: { isFilterLiq?: boolean },\n): IAssetsTotals {\n const assetList = useAssetsBalanceList(chainId, userAddr, filterOptions);\n const { isLoading: isLoadingTokenPrices } = useTokenPrices({ chainId });\n\n const pendingLock = useTotalWithdrawPendingLocked(chainId, userAddr);\n return useMemo(() => {\n const totals = assetList.reduce(\n (acc, v) => {\n acc.inAccount = acc?.inAccount?.add(WrappedBigNumber.from(v.gateBalance || 0).times(v.quote.price || 0));\n acc.inPosition = acc.inPosition?.add(WrappedBigNumber.from(v.balanceInPosition || 0).times(v.quote.price || 0));\n acc.inOrder = acc.inOrder?.add(WrappedBigNumber.from(v.balanceInOrder || 0).times(v.quote.price || 0));\n acc.inLiq = acc.inLiq?.add(WrappedBigNumber.from(v.balanceInRange || 0).times(v.quote.price || 0));\n\n acc.totalValue = acc.totalValue?.add(WrappedBigNumber.from(v.totalBalance || 0).times(v.quote.price || 0));\n return acc;\n },\n {\n totalValue: WrappedBigNumber.ZERO,\n inPosition: WrappedBigNumber.ZERO,\n inOrder: WrappedBigNumber.ZERO,\n inAccount: WrappedBigNumber.ZERO,\n inLiq: WrappedBigNumber.ZERO,\n inWithdrawPendingLock: WrappedBigNumber.ZERO,\n } as IAssetsTotals,\n );\n if (pendingLock) {\n totals.inWithdrawPendingLock = pendingLock;\n //totals.totalValue = totals.totalValue?.add(pendingLock);\n }\n // show 0 if negative\n if (totals.totalValue?.lt(0)) {\n totals.totalValue = WrappedBigNumber.ZERO;\n }\n return totals;\n // should depend on this\n }, [assetList, pendingLock, isLoadingTokenPrices]);\n}\ntype TAssetPriceAndBalanceMap = {\n [qouteAddress in string]: {\n quote: WrappedQuote;\n balance?: WrappedBigNumber;\n };\n};\nexport function useAssetPnl(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): {\n total: WrappedBigNumber;\n list?: IAssetsPnl[];\n} {\n const fundFlows = useFundFlows(userAddr, chainId);\n const assetList = useAssetsBalanceList(chainId, userAddr, undefined, true);\n const assetPriceAndBalanceMap: TAssetPriceAndBalanceMap = useMemo(() => {\n return assetList.reduce((prev, curr) => {\n return {\n ...prev,\n [curr.quote.address]: {\n quote: curr.quote,\n balance: curr.totalBalance,\n },\n };\n }, {} as TAssetPriceAndBalanceMap);\n }, [assetList]);\n const pnlDataListAndTotalPnl = useMemo(() => {\n let totalPnlUsd = WrappedBigNumber.ZERO;\n const pnlDataList = fundFlows?.map((flow) => {\n const { quote, balance } = assetPriceAndBalanceMap[flow.token.address];\n if (balance && quote.price) {\n // PnLInQuote(quote) = TotalWithdrawal[totalOut](quote) + totalBalanceValue(quote) - TotalDeposit[totalIn](quote)\n const pnlInToken = WrappedBigNumber.from(flow.totalOut.add(balance).minus(flow.totalIn));\n const pnlInUsd = pnlInToken.mul(quote.price);\n totalPnlUsd = totalPnlUsd.add(pnlInUsd);\n return {\n quote,\n pnlInUsd,\n pnlInToken,\n };\n }\n return {\n quote,\n pnlInUsd: undefined,\n pnlInToken: undefined,\n };\n });\n return {\n total: totalPnlUsd,\n list: pnlDataList,\n };\n }, [assetPriceAndBalanceMap, fundFlows]);\n return pnlDataListAndTotalPnl;\n}\n\nexport function useAccountDepositWithdrawCheck(\n inputAmount: WrappedBigNumber,\n availableMargin: WrappedBigNumber | undefined,\n walletBalance: WrappedBigNumber,\n type: BALANCE_TYPE,\n chainId: CHAIN_ID | undefined,\n): ISimulation | undefined {\n const { t } = useTranslation();\n const { isOperating } = useGateAccountState(chainId);\n return useMemo(() => {\n if (inputAmount.eq(0) || isOperating) {\n return undefined;\n }\n if (type === BALANCE_TYPE.WITHDRAW) {\n if (!availableMargin || inputAmount.gt(availableMargin)) {\n return {\n chainId: chainId || 0,\n message: t('errors.account.insuffMar'),\n };\n return undefined;\n }\n } else {\n if (inputAmount.gt(walletBalance)) {\n return {\n chainId: chainId || 0,\n message: t('errors.account.insuffBal'),\n };\n }\n }\n }, [inputAmount, isOperating, type, availableMargin, chainId, t, walletBalance]);\n}\n\nexport function usePairAssetBalanceList(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): IPairAssetsBalance[] {\n const positionList = usePositionListByUser(chainId, userAddr);\n const orderList = useWrappedOrderListByUser(chainId, userAddr);\n const rangeList = useWrappedRangeListByUser(chainId, userAddr);\n function initEmptyAssetInfo(pair: WrappedPair, assetInfoMap: { [pairId: string]: IPairAssetsBalance } = {}): void {\n if (!assetInfoMap[pair.id]) {\n const quoteToken = pair.rootInstrument.quoteToken;\n assetInfoMap[pair.id] = {\n quote: quoteToken,\n pair: pair,\n balanceInOrder: WrappedBigNumber.ZERO,\n balanceInRange: WrappedBigNumber.ZERO,\n balanceInPosition: WrappedBigNumber.ZERO,\n totalBalance: WrappedBigNumber.ZERO,\n };\n }\n }\n const data = useMemo(() => {\n if (positionList?.length || orderList?.length || rangeList?.length) {\n const assetInfoMap: { [pairId: string]: IPairAssetsBalance } = {};\n\n if (positionList?.length) {\n positionList.forEach((position) => {\n if (position.rootPair && position.balance.gt(0)) {\n initEmptyAssetInfo(position.rootPair, assetInfoMap);\n assetInfoMap[position.rootPair.id].balanceInPosition = assetInfoMap[\n position.rootPair.id\n ].balanceInPosition.add(position.equity);\n }\n });\n }\n\n if (orderList?.length) {\n orderList.forEach((order) => {\n if (order.rootPair && order.balance.gt(0)) {\n initEmptyAssetInfo(order.rootPair, assetInfoMap);\n assetInfoMap[order.rootPair.id].balanceInOrder = assetInfoMap[order.rootPair.id].balanceInOrder.add(\n order.balance,\n );\n }\n });\n }\n\n if (rangeList?.length) {\n rangeList.forEach((range) => {\n if (range.rootPair && range.balance.gt(0)) {\n initEmptyAssetInfo(range.rootPair, assetInfoMap);\n assetInfoMap[range.rootPair.id].balanceInRange = assetInfoMap[range.rootPair.id].balanceInRange.add(\n range.valueLocked,\n );\n }\n });\n }\n\n return Object.values(assetInfoMap).map((balanceItem) => {\n balanceItem.totalBalance = WrappedBigNumber.from(0)\n .add(balanceItem.balanceInPosition || 0)\n .add(balanceItem.balanceInOrder || 0)\n .add(balanceItem.balanceInRange || 0);\n return balanceItem;\n });\n }\n return [];\n }, [orderList, positionList, rangeList]);\n return data;\n}\n\nexport function useTotalWithdrawPendingLocked(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): WrappedBigNumber | undefined {\n const pendingTokens = useUserAllPendingTokens(chainId, userAddr);\n const { data: priceInfoMap } = useTokenPrices({ chainId });\n return useMemo(() => {\n if (pendingTokens && priceInfoMap) {\n return pendingTokens.reduce((acc, token) => {\n const price = priceInfoMap[token.address]?.current || 0;\n return acc.add(WrappedBigNumber.from(token.pending.amount).times(price));\n }, WrappedBigNumber.ZERO);\n }\n }, [pendingTokens, priceInfoMap]);\n}\n","import './index.less';\n\nimport { Link } from 'react-router-dom';\n\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { resetLiquidityFormByChainId, setEarnFormType } from '@/features/earn/action';\nimport { resetFormByChainId, setTradeFormType } from '@/features/trade/actions';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { useTranslation } from 'react-i18next';\ntype TradeEarnTabsProps = ComponentProps<'div'> & {\n isTrade: boolean;\n pairSymbol?: string;\n disableTrade?: boolean;\n};\nexport default function TradeEarnTabs({ isTrade, pairSymbol, disableTrade = false }: TradeEarnTabsProps) {\n const chainId = useChainId();\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n return (\n
\n {\n chainId && dispatch(resetLiquidityFormByChainId({ chainId }));\n chainId && dispatch(setTradeFormType({ chainId, tradeType: TRADE_TYPE.MARKET }));\n }}\n className={classNames('syn-trade-earn-tab', 'syn-trade-earn-tabs-trade', isTrade ? 'active' : 'inactive')}\n to={(chainId && pairSymbol && `/trade/${DAPP_CHAIN_CONFIGS[chainId]?.network?.shortName}/${pairSymbol}`) || ''}>\n {t('common.trade')}\n \n {\n chainId && dispatch(resetFormByChainId({ chainId }));\n chainId && dispatch(setEarnFormType({ chainId, formType: EARN_TYPE.ADD_LIQ }));\n }}\n className={classNames('syn-trade-earn-tab', 'syn-trade-earn-tabs-earn', !isTrade ? 'active' : 'inactive')}\n to={(chainId && pairSymbol && `/earn/${DAPP_CHAIN_CONFIGS[chainId]?.network?.shortName}/${pairSymbol}`) || ''}>\n {t('common.liquidity')}\n \n
\n );\n}\n","/**\n * @description Component-I18nTrans\n */\nimport { FC, useMemo } from 'react';\n\ninterface IPropTypes {\n msg?: string | JSX.Element;\n className?: string;\n}\nconst I18nTrans: FC = function ({ msg }) {\n const isNormalString = useMemo(() => {\n return typeof msg === 'string';\n }, [msg]);\n if (isNormalString) {\n return
;\n }\n return
{msg}
;\n};\n\nexport default I18nTrans;\n","/**\n * @description Component-DepositLeverageSelector\n */\nimport './index.less';\n\nimport { FC, useMemo } from 'react';\n\nimport ButtonSegments from '@/components/ButtonSegments';\ninterface IPropTypes {\n value: number | undefined;\n onChange: (value: number) => void;\n disabled?: boolean;\n}\nconst PercentageSelector: FC = function ({ value, onChange, disabled }) {\n const percentageData = useMemo(() => {\n return [\n { value: 25, label: {'25%'} },\n { value: 50, label: {'50%'} },\n { value: 75, label: {'75%'} },\n { value: 100, label: {'100%'} },\n ];\n }, []);\n return (\n
\n {\n onChange(Number(value));\n }}\n value={value}\n />\n
\n );\n};\n\nexport default PercentageSelector;\n","/**\n * @description Component-InputSliderForm\n */\nimport './index.less';\n\nimport { Form, InputProps } from 'antd';\nimport classNames from 'classnames';\nimport React, { FC, ReactNode, useCallback, useMemo } from 'react';\n\nimport FormInput from '@/components/FormInput';\nimport { formatNumberWithTooltip, FormatNumberWithTooltipType } from '@/components/NumberFormat';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useGa } from '@/hooks/useGa';\nimport { TokenInfo } from '@/types/token';\nimport { GaCategory } from '@/utils/analytics';\nimport { bNToS, inputNumChecker, toBN } from '@/utils/numberUtil';\n\nimport PercentageSelector from '../../PercentageSelector/PercentageSelector';\ninterface InputSliderFormProps {\n inputAmountStr: string;\n tokenInfo?: TokenInfo;\n disabled?: boolean;\n className?: string;\n balanceTitle?: React.ReactNode;\n balanceNumberProps: Omit & { num: string };\n balanceSuffix?: React.ReactNode;\n hideBalanceIcon?: true;\n sliderValue?: number | undefined;\n onInputSliderChange: (inputAmountStr: string, sliderRatio: number) => void;\n clickInput?: string;\n isMobile?: boolean;\n gaCategory?: GaCategory;\n gaAction?: string;\n onFocus?: () => void;\n suffix?: ReactNode;\n balanceSuffix2?: ReactNode;\n inputProps: InputProps;\n children?: ReactNode;\n isDeposit?: boolean;\n}\nconst InputSliderForm: FC = function ({\n inputAmountStr,\n tokenInfo,\n disabled,\n className,\n balanceTitle,\n balanceNumberProps,\n balanceSuffix,\n hideBalanceIcon,\n sliderValue,\n onInputSliderChange,\n clickInput,\n gaCategory,\n gaAction,\n onFocus,\n suffix,\n inputProps,\n children,\n balanceSuffix2,\n}) {\n const gaEvent = useGa();\n const balanceAbsNumber = useMemo(() => {\n return toBN(balanceNumberProps.num).abs();\n }, [balanceNumberProps.num]);\n\n const onInputAmountStrChanged = useCallback(\n (inputAmountStr: string) => {\n const shareRatio = Number(\n bNToS(\n toBN(inputAmountStr || 0)\n .dividedBy(balanceAbsNumber)\n .multipliedBy(100),\n ),\n );\n onInputSliderChange(inputAmountStr, shareRatio);\n },\n [balanceAbsNumber, onInputSliderChange],\n );\n const onRatioChanged = useCallback(\n (shareRatio: number) => {\n const inputAmount = bNToS(toBN(shareRatio).multipliedBy(balanceAbsNumber).dividedBy(100));\n onInputSliderChange(inputNumChecker(inputAmount, tokenInfo?.decimals), shareRatio);\n gaCategory &&\n gaAction &&\n gaEvent({\n category: gaCategory,\n action: gaAction,\n value: shareRatio,\n label: shareRatio + '%',\n });\n },\n\n [balanceAbsNumber, onInputSliderChange, gaEvent, gaCategory, gaAction, tokenInfo],\n );\n\n return (\n
\n
\n
\n
\n
{balanceTitle}
\n {\n onInputAmountStrChanged(clickInput || inputNumChecker(balanceNumberProps.num, tokenInfo?.decimals));\n }}>\n {/* {balanceNumberProps && formatNumberWithTooltip(balanceNumberProps)}{' '} */}\n {balanceSuffix && formatNumberWithTooltip({ num: Number(balanceSuffix) })}\n {!hideBalanceIcon && tokenInfo?.symbol}\n {balanceSuffix2}\n
\n
\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n step: 1e18,\n ...inputProps,\n }}\n max={WrappedBigNumber.from(balanceAbsNumber).stringValue}\n onFocus={onFocus}\n inputAmountStr={inputAmountStr}\n tokenInfo={tokenInfo}\n disabled={disabled}\n inputAmountStrChanged={onInputAmountStrChanged}\n suffix={suffix}\n />\n\n \n {children}\n
\n
\n \n );\n};\n\nexport default React.memo(InputSliderForm);\n","/**\n * @description Component-Tabs\n */\nimport './index.less';\n\nimport cls from 'classnames';\nimport React, { CSSProperties, FC, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nexport interface ITabPaneTypes {\n label: React.ReactNode;\n key: string;\n tabClass?: string;\n width?: number;\n}\ninterface IPropTypes {\n className?: string;\n value: string;\n tabList: ITabPaneTypes[];\n showTabBar?: boolean;\n showSegment?: boolean;\n disabled?: boolean;\n onClick: (key: ITabPaneTypes['key'], tabPane: ITabPaneTypes, idx: number) => void;\n}\nconst Tabs: FC = function ({ tabList, onClick, value, showTabBar, className, showSegment, disabled }) {\n const tabsRef = useRef(null);\n const [tabItems, setTabItems] = useState([]);\n const [barStyle, setBarStyle] = useState({});\n const [changeState, setChangeState] = useState(false);\n const showSegmentAnimate = useMemo(() => {\n return showSegment && changeState;\n }, [changeState, showSegment]);\n const onInnerClick = useCallback(\n (key: ITabPaneTypes['key'], tabPane: ITabPaneTypes, idx: number) => {\n if (disabled) {\n return;\n }\n let extraLeft = 0;\n if (idx === 0) {\n extraLeft = 1;\n }\n if (idx + 1 === tabItems.length) {\n extraLeft = -1;\n }\n setBarStyle({\n left: tabItems[idx].offsetLeft + extraLeft,\n width: tabItems[idx].offsetWidth,\n });\n onClick(key, tabPane, idx);\n },\n [tabItems, onClick, disabled],\n );\n const TabPanels = useMemo(() => {\n return (tabList || []).map((panel, i) => {\n return (\n onInnerClick(panel.key, panel, i)}>\n {panel.label}\n \n );\n });\n }, [tabList, value, showSegmentAnimate, onInnerClick]);\n\n const currentTab = useMemo(() => {\n return tabList.findIndex((tab) => tab.key === value);\n }, [tabList, value]);\n\n useEffect(() => {\n const items: HTMLDivElement[] = [];\n tabsRef.current?.childNodes.forEach((item) => {\n if (item.nodeName === 'DIV') {\n items.push(item as HTMLDivElement);\n }\n });\n let extraLeft = 0;\n if (currentTab === 0) {\n extraLeft = 1;\n }\n if (currentTab + 1 === tabItems.length) {\n extraLeft = -1;\n }\n setTabItems(items);\n if (items.length) {\n const firstItem = items[currentTab || 0];\n setBarStyle({\n left: (firstItem?.offsetLeft || 0) + extraLeft,\n width: firstItem?.offsetWidth || 0,\n });\n setChangeState(true);\n }\n // update for https://app.clickup.com/t/866b16v5c\n }, [value]);\n\n return (\n
\n {TabPanels}\n {showTabBar &&
}\n {showSegmentAnimate &&
}\n
\n );\n};\n\nexport default memo(Tabs);\n","import React, { useState } from 'react';\nimport { HelpCircle } from 'react-feather';\nimport { ImageProps } from 'rebass';\n\nconst BAD_SRCS: { [tokenAddress: string]: true } = {};\ninterface ILogoProps extends Pick {\n srcs: string[];\n width: string | number;\n height: string | number;\n}\n\n/**\n * Renders an image by sequentially trying a list of URIs, and then eventually a fallback triangle alert\n */\nconst Logo = function ({ srcs, alt, ...rest }: ILogoProps): JSX.Element {\n const [, refresh] = useState(0);\n\n const src: string | undefined = srcs.find((src) => !BAD_SRCS[src]);\n\n if (src) {\n return (\n {\n if (src) BAD_SRCS[src] = true;\n refresh((i) => i + 1);\n }}\n />\n );\n }\n\n return ;\n};\n\nexport default React.memo(Logo, (prevProps, nextProps) => {\n return prevProps.srcs.join() === nextProps.srcs.join();\n});\n","var _rect, _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconCryptoDefault = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n rx: 12,\n fill: \"#C3E7E7\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M10.8115 17.8486C9.81421 17.7763 9.00137 17.6437 8.37295 17.4508C7.7582 17.246 7.30055 17.0772 7 16.9446L7.88115 14.8655C8.35929 15.0704 8.92623 15.2573 9.58197 15.426C10.2514 15.5947 10.9549 15.6791 11.6926 15.6791C12.526 15.6791 13.0929 15.5827 13.3934 15.3898C13.7077 15.1849 13.8648 14.9017 13.8648 14.5401C13.8648 14.3111 13.8033 14.1183 13.6803 13.9616C13.5574 13.7928 13.3798 13.6422 13.1475 13.5096C12.9153 13.377 12.6216 13.2505 12.2664 13.1299C11.9112 12.9974 11.5014 12.8588 11.0369 12.7141C10.5861 12.5695 10.1421 12.4128 9.70492 12.2441C9.28142 12.0633 8.89208 11.8463 8.53689 11.5932C8.19536 11.3401 7.9153 11.0328 7.69672 10.6712C7.4918 10.2976 7.38934 9.8516 7.38934 9.33333C7.38934 8.93559 7.45082 8.55593 7.57377 8.19435C7.71038 7.82072 7.9153 7.48324 8.18852 7.18192C8.46175 6.8806 8.81694 6.6275 9.2541 6.4226C9.69126 6.20565 10.2104 6.04896 10.8115 5.95254V4H13.3934V5.88023C14.1038 5.94049 14.7117 6.03088 15.2172 6.15141C15.7363 6.27194 16.1462 6.39247 16.4467 6.51299L15.8115 8.68249C15.3607 8.51375 14.8347 8.36911 14.2336 8.24859C13.6462 8.12806 13.0246 8.0678 12.3689 8.0678C11.7131 8.0678 11.2418 8.16422 10.9549 8.35706C10.668 8.54991 10.5246 8.80301 10.5246 9.11638C10.5246 9.30923 10.5656 9.47797 10.6475 9.6226C10.7432 9.75518 10.8866 9.87571 11.0779 9.98418C11.2691 10.0927 11.5014 10.2011 11.7746 10.3096C12.0615 10.406 12.403 10.5145 12.7992 10.635C13.4003 10.8279 13.9536 11.0388 14.459 11.2678C14.9781 11.4968 15.4221 11.762 15.791 12.0633C16.1735 12.3525 16.4672 12.696 16.6721 13.0938C16.8907 13.4915 17 13.9556 17 14.4859C17 14.8475 16.9385 15.209 16.8156 15.5706C16.6926 15.9202 16.4877 16.2456 16.2008 16.5469C15.9139 16.8482 15.5383 17.1073 15.0738 17.3243C14.623 17.5412 14.0628 17.6979 13.3934 17.7943V20H10.8115V17.8486Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconCryptoDefault);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_crypto_default.061103d183bfa0a716cd983e25670a99.svg\";","var _rect, _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconCryptoDefaultD = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40,\n height: 40,\n viewBox: \"0 0 40 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 40,\n height: 40,\n rx: 20,\n fill: \"#04606E\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.5,\n d: \"M18.0185 29.7475C16.3564 29.627 15.0016 29.406 13.9543 29.0846C12.9297 28.7431 12.1669 28.4619 11.666 28.2409L13.1346 24.7757C13.9315 25.1172 14.8764 25.4286 15.9693 25.7098C17.085 25.991 18.2575 26.1317 19.4871 26.1317C20.8759 26.1317 21.8208 25.971 22.3218 25.6496C22.8454 25.3081 23.1073 24.836 23.1073 24.2334C23.1073 23.8517 23.0048 23.5303 22.7999 23.2691C22.595 22.9879 22.299 22.7368 21.9119 22.5158C21.5249 22.2949 21.0353 22.084 20.4433 21.8831C19.8514 21.6621 19.1683 21.4311 18.3942 21.19C17.6428 20.949 16.9028 20.6878 16.1742 20.4066C15.4684 20.1053 14.8195 19.7437 14.2275 19.3219C13.6583 18.9 13.1915 18.3878 12.8272 17.7851C12.4857 17.1624 12.3149 16.4192 12.3149 15.5554C12.3149 14.8925 12.4174 14.2597 12.6223 13.6571C12.85 13.0344 13.1915 12.4719 13.6469 11.9697C14.1023 11.4675 14.6942 11.0457 15.4228 10.7042C16.1514 10.3426 17.0167 10.0814 18.0185 9.92074V6.6665H22.3218V9.80021C23.5057 9.90065 24.5189 10.0513 25.3614 10.2522C26.2266 10.4531 26.9096 10.6539 27.4106 10.8548L26.3518 14.4706C25.6004 14.1894 24.7238 13.9484 23.722 13.7475C22.743 13.5466 21.707 13.4462 20.6141 13.4462C19.5212 13.4462 18.7357 13.6069 18.2575 13.9283C17.7794 14.2497 17.5403 14.6715 17.5403 15.1938C17.5403 15.5152 17.6086 15.7964 17.7453 16.0375C17.9046 16.2585 18.1437 16.4593 18.4625 16.6401C18.7812 16.8209 19.1683 17.0017 19.6237 17.1825C20.1018 17.3432 20.671 17.524 21.3313 17.7249C22.3331 18.0463 23.2553 18.3978 24.0977 18.7795C24.9629 19.1612 25.7029 19.6031 26.3177 20.1053C26.9552 20.5874 27.4447 21.1599 27.7862 21.8228C28.1505 22.4857 28.3327 23.2591 28.3327 24.143C28.3327 24.7456 28.2302 25.3482 28.0253 25.9509C27.8204 26.5334 27.4789 27.0758 27.0007 27.578C26.5226 28.0802 25.8964 28.5121 25.1223 28.8737C24.3709 29.2352 23.4374 29.4964 22.3218 29.6571V33.3332H18.0185V29.7475Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconCryptoDefaultD);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_crypto_default_d.d63b0d91c4b5ea5b6a2c09935129b207.svg\";","import './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport React, { FunctionComponent, useMemo } from 'react';\nimport { ImageProps } from 'rebass';\n\nimport { THEME_ENUM } from '@/constants';\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\n// import { useIsNativeToken } from '@/features/chain/hook';\nimport { useTheme } from '@/features/global/hooks';\n// import { useDappChainConfig } from '@/hooks/web3/useChain';\nimport { TokenInfo } from '@/types/token';\n\nimport { useTokenInfo } from '@/features/chain/hook';\nimport { getChainShortName } from '@/utils/chain';\nimport Logo from './Logo';\nimport unknown from './assets/icon_crypto_default.svg';\nimport unknownD from './assets/icon_crypto_default_d.svg';\n\nconst BLOCKCHAIN: { [chainId: number]: string } = {\n [CHAIN_ID.ETHEREUM]: 'ethereum',\n [CHAIN_ID.GOERLI]: 'ethereum',\n [CHAIN_ID.BSC]: 'binanace',\n [CHAIN_ID.POLYGON]: 'polygon',\n};\n\nfunction getTokenSymbol(token: TokenInfo): string {\n // show mapping token icon\n const mockConfig = _.get(DAPP_CHAIN_CONFIGS, [token.chainId, 'network', 'mockTokenConfig']);\n if (mockConfig?.mockTokenSymbol === token.symbol) {\n return mockConfig.mappingTokenSymbol.toLowerCase();\n }\n return token.symbol.toLowerCase();\n}\n\nexport function getTokenLogoUrls(token: TokenInfo, isSpot = false): string[] {\n const urls = [];\n\n //1. get logo from icons by symbol\n urls.push(\n isSpot\n ? `https://api.synfutures.com/s3/config/coins/large_${getChainShortName(\n token.chainId,\n )}_${token.address.toLowerCase()}.png`\n : `https://api.synfutures.com/ipfs/icons/token/${getTokenSymbol(token)}.png`,\n );\n // 2. get logo from trustwallet by chainId and address\n if (token.chainId in BLOCKCHAIN) {\n urls.push(\n `https://raw.githubusercontent.com/sushiswap/assets/master/blockchains/${BLOCKCHAIN[token.chainId]}/assets/${\n token.address\n }/logo.png`,\n );\n urls.push(\n `https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/${BLOCKCHAIN[token.chainId]}/assets/${\n token.address\n }/logo.png`,\n );\n }\n\n return urls;\n}\n\ninterface ITokenLogoProps extends Pick {\n src?: string;\n token?: TokenInfo;\n size?: string | number;\n isHideBackground?: boolean;\n chainId?: CHAIN_ID;\n showChainIcon?: boolean;\n showBg?: boolean;\n isSpot?: boolean;\n}\n\nconst TokenLogo: FunctionComponent = ({\n src,\n token,\n size = 16,\n isHideBackground = false,\n className,\n chainId,\n showChainIcon,\n showBg = true,\n isSpot,\n ...rest\n}) => {\n // const isNativeToken = useIsNativeToken(token?.chainId, token);\n // const dappConfig = useDappChainConfig(token?.chainId);\n const tokenInfoFromServer = useTokenInfo(token?.chainId, token?.address);\n const { dataTheme } = useTheme();\n const unknownSrc = useMemo(() => (dataTheme === THEME_ENUM.DARK ? unknownD : unknown), [dataTheme]);\n const srcs = useMemo(() => {\n if (src) {\n return [src, unknownSrc];\n }\n if (!token) {\n return [unknownSrc];\n }\n\n // if (isNativeToken) {\n // if (dappConfig?.network?.wrapperNativeLogo) {\n // return [dappConfig?.network?.wrapperNativeLogo, unknownSrc];\n // }\n // }\n\n if (token.address && token.symbol) {\n const defaultUrls = [...getTokenLogoUrls(token, isSpot)];\n if (tokenInfoFromServer?.logoURI) {\n // use our server logo first\n return [...defaultUrls, tokenInfoFromServer?.logoURI, unknownSrc];\n }\n return [...defaultUrls, unknownSrc];\n }\n return [];\n }, [src, token, isSpot, tokenInfoFromServer?.logoURI, unknownSrc]);\n\n return (\n
\n \n {chainId && showChainIcon && (\n
\n
\n \n
\n
\n
\n )}\n {showBg && (\n \n )}\n
\n );\n};\n\nexport default React.memo(TokenLogo, (prevProps, nextProps) => {\n return (\n prevProps.token?.id === nextProps.token?.id &&\n prevProps.token?.symbol === nextProps.token?.symbol &&\n nextProps.token?.address === prevProps.token?.address\n );\n});\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconAcctNew = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5312_60880)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.354 1.33331C10.354 0.919099 10.6897 0.583313 11.104 0.583313H14.6666C15.0808 0.583313 15.4166 0.919099 15.4166 1.33331V4.89598C15.4166 5.31019 15.0808 5.64598 14.6666 5.64598C14.2524 5.64598 13.9166 5.31019 13.9166 4.89598V3.14397L9.19696 7.86364C8.90406 8.15654 8.42919 8.15654 8.1363 7.86364C7.8434 7.57075 7.8434 7.09588 8.1363 6.80298L12.856 2.08331H11.104C10.6897 2.08331 10.354 1.74753 10.354 1.33331Z\",\n fill: \"#1F292E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.4425 2.19863C3.61827 2.30941 3.16568 2.51413 2.83949 2.83973C2.5141 3.16549 2.30937 3.61791 2.19857 4.4423C2.08484 5.28848 2.08325 6.40745 2.08325 7.99998C2.08325 9.59251 2.08484 10.7116 2.19857 11.5578C2.30941 12.3825 2.51422 12.8345 2.8394 13.1595L2.83958 13.1596C3.16538 13.4854 3.61778 13.6904 4.4423 13.8013C5.28844 13.9151 6.40738 13.9166 7.99992 13.9166C9.59246 13.9166 10.7116 13.9151 11.5577 13.8013C12.3823 13.6904 12.8342 13.4854 13.1592 13.16L13.1598 13.1595C13.4854 12.8341 13.6903 12.382 13.8012 11.5575C13.915 10.7115 13.9166 9.59253 13.9166 7.99998C13.9166 7.58577 14.2524 7.24998 14.6666 7.24998C15.0808 7.24998 15.4166 7.58577 15.4166 7.99998V8.0555C15.4166 9.5797 15.4166 10.7998 15.2878 11.7575C15.1545 12.7483 14.8711 13.5699 14.2201 14.2205C13.5698 14.8713 12.7482 15.1546 11.7576 15.2879C10.7999 15.4167 9.57964 15.4167 8.05544 15.4166H7.9444C6.4202 15.4167 5.20013 15.4167 4.24237 15.2879C3.25148 15.1546 2.42994 14.8712 1.7791 14.2205C1.12829 13.5701 0.845097 12.7484 0.711936 11.7576C0.583219 10.7999 0.583234 9.57969 0.583252 8.05544V7.94452C0.583234 6.42028 0.583219 5.20023 0.711936 4.2425C0.845109 3.25161 1.1283 2.43005 1.77874 1.77916L1.77928 1.77862C2.43041 1.12838 3.2518 0.845182 4.24268 0.711998C5.20033 0.58328 6.42022 0.583295 7.94445 0.583313L7.99992 0.583314C8.41413 0.583314 8.74992 0.9191 8.74992 1.33331C8.74992 1.74753 8.41413 2.08331 7.99992 2.08331C6.40739 2.08331 5.28859 2.08491 4.4425 2.19863Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5312_60880\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconAcctNew);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_acct_new.e6419135ddef66f1d0418e54c5e5509f.svg\";","/**\n * @description Component-NativeTokenSelector\n */\nimport './index.less';\n\nimport { FC, useEffect, useMemo, useState } from 'react';\n\nimport Tabs from '@/components/Tabs';\nimport TokenLogo from '@/components/TokenLogo';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useNativeToken, useWrappedNativeToken } from '@/features/chain/hook';\nimport { useChainId } from '@/hooks/web3/useChain';\ninterface IPropTypes {\n className?: string;\n onSideChange: (addr: string) => void;\n tokenBalance: WrappedBigNumber;\n}\nconst NativeTokenSelector: FC = function ({ onSideChange, tokenBalance }) {\n const chainId = useChainId();\n const nativeToken = useNativeToken(chainId);\n const wrappedNativeToken = useWrappedNativeToken(chainId);\n const [tokenAddr, setTokenAddr] = useState(\n nativeToken && tokenBalance.eq(0) ? nativeToken.address : wrappedNativeToken?.address,\n );\n\n const tabList = useMemo(() => {\n return nativeToken && wrappedNativeToken\n ? [\n {\n key: nativeToken.address.toLowerCase(),\n value: nativeToken.address.toLowerCase(),\n label: (\n <>\n \n {nativeToken?.symbol}{' '}\n \n ),\n },\n {\n key: wrappedNativeToken.address.toLowerCase(),\n value: wrappedNativeToken.address.toLowerCase(),\n label: (\n <>\n \n {wrappedNativeToken?.symbol}{' '}\n \n ),\n },\n ]\n : [];\n }, [nativeToken, wrappedNativeToken]);\n useEffect(() => {\n if (nativeToken && tokenBalance.eq(0)) {\n setTokenAddr(nativeToken?.address.toLowerCase());\n onSideChange(nativeToken?.address.toLowerCase());\n }\n // no dep\n }, []);\n\n if (!nativeToken || !wrappedNativeToken) {\n return <>;\n }\n return (\n
\n {\n setTokenAddr(key);\n onSideChange(key);\n }}\n value={tokenAddr || ''}\n tabList={tabList}\n />\n
\n );\n};\n\nexport default NativeTokenSelector;\n","/**\n * @description Component-DepositForm\n */\nimport './index.less';\n\nimport { ExchangeIcon } from '@/assets/svg';\nimport { FC, useCallback, useEffect, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/Alert';\nimport { SwitchBtn } from '@/components/Button';\nimport I18nTrans from '@/components/I18nTrans';\nimport { BALANCE_TYPE } from '@/constants';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { setGateAccountState } from '@/features/balance/actions';\nimport { useGateAccountState, useTokenBalance, useTokenGateBalanceByChainIdAndAddress } from '@/features/balance/hook';\nimport { useNativeToken, useNativeTokenMinGasPriceLimit, useWrappedNativeToken } from '@/features/chain/hook';\nimport { setPortfolioDepositOrWithdrawOperateToken } from '@/features/portfolio/actions';\nimport { usePortfolioOperateToken } from '@/features/portfolio/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useDappChainConfig, useUserAddr } from '@/hooks/web3/useChain';\nimport InputSliderForm from '@/pages/components/Form/InputSliderForm';\nimport { TokenInfo } from '@/types/token';\nimport { ISimulation } from '@/types/trade';\nimport { isNativeTokenAddr, isWrappedNativeToken } from '@/utils/token';\n\nimport { useIsTokenExchangeHidden, useTokenExchangeModal } from '@/hooks/trade/useTokenExchange';\nimport NativeTokenSelector from './NativeTokenSelector';\n\ninterface IPropTypes {\n quote: TokenInfo | undefined;\n type: BALANCE_TYPE;\n isMobile?: boolean;\n simulation?: ISimulation;\n}\nconst DepositForm: FC = function ({ quote, type, isMobile, simulation }) {\n const chainId = quote?.chainId;\n const dispatch = useAppDispatch();\n const tradeAccountState = useGateAccountState(chainId);\n const gateBalance = useTokenGateBalanceByChainIdAndAddress(chainId, quote?.address || '');\n const { t } = useTranslation();\n const nativeTokenMinGasPriceLimit = useNativeTokenMinGasPriceLimit(chainId);\n const nativeToken = useNativeToken(chainId);\n const wrappedNativeToken = useWrappedNativeToken(chainId);\n const wrappedBalance = useTokenBalance(wrappedNativeToken?.address || '', chainId);\n const dappConfig = useDappChainConfig(chainId);\n const userAddr = useUserAddr();\n const tokenInfo = usePortfolioOperateToken(chainId, userAddr);\n const { toggleModal } = useTokenExchangeModal();\n const isTokenExchangeHidden = useIsTokenExchangeHidden(quote?.symbol);\n\n const adjustQuote = useMemo(() => {\n if (chainId && quote && type === BALANCE_TYPE.DEPOSIT && isWrappedNativeToken(chainId, quote.address)) {\n return tokenInfo;\n }\n return quote;\n }, [chainId, quote, tokenInfo, type]);\n const tokenBalanceF = useTokenBalance(adjustQuote?.address || '', chainId);\n\n const tokenBalance = useMemo(() => {\n if (adjustQuote && isNativeTokenAddr(adjustQuote.address)) {\n return tokenBalanceF;\n }\n return tokenBalanceF;\n }, [adjustQuote, tokenBalanceF]);\n\n const isWrappedNativeTokenInfo = useMemo(() => {\n return chainId && quote && isWrappedNativeToken(chainId, quote.address);\n }, [chainId, quote]);\n const isNativeTokenInfo = useMemo(() => {\n return type === BALANCE_TYPE.WITHDRAW\n ? tokenInfo?.address && isNativeTokenAddr(tokenInfo.address)\n : adjustQuote?.address && isNativeTokenAddr(adjustQuote.address);\n }, [adjustQuote?.address, tokenInfo?.address, type]);\n\n const onInputSliderChange = useCallback(\n (inputAmountStr: string, sliderRatio: number) => {\n if (type === BALANCE_TYPE.DEPOSIT && isNativeTokenInfo) {\n if (tokenBalance.min(nativeTokenMinGasPriceLimit).lt(inputAmountStr)) {\n inputAmountStr = tokenBalance.min(nativeTokenMinGasPriceLimit).stringValue;\n sliderRatio = 100;\n }\n if (tokenBalance.lte(nativeTokenMinGasPriceLimit)) {\n inputAmountStr = '0';\n sliderRatio = 0;\n }\n }\n chainId &&\n dispatch(\n setGateAccountState({\n ...tradeAccountState,\n depositAmountStr: inputAmountStr,\n amountRatio: sliderRatio,\n chainId,\n }),\n );\n },\n [chainId, dispatch, isNativeTokenInfo, nativeTokenMinGasPriceLimit, tokenBalance, tradeAccountState, type],\n );\n\n const onSelectChange = useCallback(\n (value: string) => {\n if (dappConfig && chainId && userAddr) {\n let token = dappConfig.wrappedNativeToken;\n if (isNativeTokenAddr(value)) {\n token = dappConfig.nativeToken;\n }\n token && dispatch(setPortfolioDepositOrWithdrawOperateToken({ chainId, userAddr, tokenInfo: token }));\n chainId &&\n type === BALANCE_TYPE.DEPOSIT &&\n dispatch(\n setGateAccountState({\n ...tradeAccountState,\n amountRatio: 0,\n depositAmountStr: '',\n chainId,\n }),\n );\n }\n },\n [chainId, dappConfig, dispatch, tradeAccountState, type, userAddr],\n );\n // default Unwrap nativeToken for withdraw wrapped nativeToken\n useEffect(() => {\n if (type === BALANCE_TYPE.WITHDRAW && isWrappedNativeTokenInfo) {\n dappConfig?.nativeToken &&\n chainId &&\n userAddr &&\n dispatch(setPortfolioDepositOrWithdrawOperateToken({ chainId, userAddr, tokenInfo: dappConfig.nativeToken }));\n }\n }, [chainId, dappConfig, dispatch, isWrappedNativeTokenInfo, type, userAddr]);\n return (\n <>\n {isWrappedNativeTokenInfo && type === BALANCE_TYPE.DEPOSIT && wrappedBalance && (\n \n )}\n {\n toggleModal(true);\n }}>\n \n \n )\n }\n balanceTitle={\n type === BALANCE_TYPE.DEPOSIT\n ? t('common.depositForm.balanceTitleDeposit')\n : t('common.depositForm.balanceTitleWithDraw')\n }\n balanceNumberProps={\n type === BALANCE_TYPE.DEPOSIT\n ? { num: tokenBalance.min(isNativeTokenInfo ? nativeTokenMinGasPriceLimit : 0)?.stringValue }\n : {\n num: gateBalance?.balance?.stringValue || '',\n }\n }\n balanceSuffix={type === BALANCE_TYPE.DEPOSIT ? tokenBalance.stringValue : gateBalance?.balance?.stringValue}\n isDeposit={type === BALANCE_TYPE.DEPOSIT}\n hideBalanceIcon={true}\n sliderValue={tradeAccountState.amountRatio}\n onInputSliderChange={onInputSliderChange}\n suffix={adjustQuote?.symbol}\n inputProps={{}}>\n {isWrappedNativeTokenInfo && type === BALANCE_TYPE.WITHDRAW && (\n
\n \n {t('common.depositForm.withdrawNativeToken', {\n wrappedToken: quote?.symbol,\n nativeToken: nativeToken?.symbol,\n })}\n \n {\n nativeToken && quote && onSelectChange(checked ? nativeToken?.address : quote?.address);\n }}>\n
\n )}\n {isNativeTokenInfo &&\n !simulation?.message &&\n type === BALANCE_TYPE.DEPOSIT &&\n (isNativeTokenInfo &&\n tokenBalance.min(nativeTokenMinGasPriceLimit).lte(tradeAccountState?.depositAmountStr || 0) ? (\n }}\n />\n }\n type=\"info\"\n showIcon\n />\n ) : (\n \n }\n type=\"info\"\n showIcon>\n ))}\n \n \n );\n};\n\nexport default DepositForm;\n","/**\n * @description Component-DepositFormAlert\n */\nimport './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport React, { FC, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\n// import { Trans } from 'react-i18next';\nimport Alert from '@/components/Alert';\nimport I18nTrans from '@/components/I18nTrans';\nimport { ExternalLink } from '@/components/Link';\nimport { BALANCE_TYPE } from '@/constants';\nimport { SLIPPAGE_THRESHOLDS } from '@/constants/global';\nimport { FAQ_LINKS } from '@/constants/links';\nimport { ERROR_MSG_AMOUNT_EXCEEDS_ALLOWANCE, ERROR_MSG_EXCEED_WALLET_BALANCE } from '@/constants/simulation';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useGateAccountState } from '@/features/balance/hook';\nimport { useGlobalConfig } from '@/features/global/hooks';\nimport {\n useTokenWithdrawPendingParams,\n useUserWithdrawPendingToken,\n useWithdrawPendingDurationHourly,\n} from '@/features/portfolio/hook';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { TokenInfo } from '@/types/token';\nimport { ISimulation } from '@/types/trade';\ninterface IPropTypes {\n simulation?: ISimulation;\n quote: TokenInfo | undefined;\n chainId: CHAIN_ID | undefined;\n type: BALANCE_TYPE;\n originQuote: TokenInfo | undefined;\n}\nconst DepositFormAlert: FC = function ({ simulation, chainId, type, originQuote }) {\n const { slippage } = useGlobalConfig(chainId);\n const tradeAccountState = useGateAccountState(chainId);\n const userAddr = useUserAddr();\n const { pendingToken } = useUserWithdrawPendingToken(chainId, userAddr, originQuote?.address);\n const quotePendingParam = useTokenWithdrawPendingParams(chainId, originQuote?.address);\n const { t } = useTranslation();\n const errMsg = useMemo(() => {\n return t(simulation?.errorData || simulation?.message || '');\n }, [simulation?.errorData, simulation?.message, t]);\n\n const needHide = useMemo(\n () =>\n [ERROR_MSG_AMOUNT_EXCEEDS_ALLOWANCE.errorData, ERROR_MSG_EXCEED_WALLET_BALANCE.errorData].includes(\n simulation?.message || '',\n ),\n [simulation?.message],\n );\n\n const isShowError = useMemo(() => {\n return errMsg && !needHide;\n }, [errMsg, needHide]);\n\n const isShowSlippageHighAlert = useMemo(() => {\n return WrappedBigNumber.from(slippage).gt(SLIPPAGE_THRESHOLDS.HIGH);\n }, [slippage]);\n\n const maxWithdrawableBN = useMemo(() => {\n return WrappedBigNumber.from(pendingToken?.maxWithdrawable || 0);\n }, [pendingToken?.maxWithdrawable]);\n\n const withdrawPendingDuration = useWithdrawPendingDurationHourly(chainId);\n\n const isShowPendingWarning = useMemo(() => {\n if (type === BALANCE_TYPE.WITHDRAW) {\n return pendingToken?.pending?.amount?.gt(0);\n }\n return false;\n }, [pendingToken?.pending?.amount, type]);\n\n const isShowWithDrawLimitWarning = useMemo(() => {\n if (type === BALANCE_TYPE.WITHDRAW) {\n if (isShowPendingWarning) return false;\n const amount = WrappedBigNumber.from(tradeAccountState?.depositAmountStr || 0);\n return amount.gt(0) && amount.gt(maxWithdrawableBN);\n }\n return false;\n }, [type, isShowPendingWarning, tradeAccountState?.depositAmountStr, maxWithdrawableBN]);\n\n const isShowWarning = useMemo(() => {\n if (isShowError) return false;\n if (isShowPendingWarning) return true;\n if (isShowWithDrawLimitWarning) return true;\n return isShowSlippageHighAlert;\n }, [isShowError, isShowPendingWarning, isShowSlippageHighAlert, isShowWithDrawLimitWarning]);\n\n if (!isShowError && !isShowWarning) return null;\n return (\n
\n {isShowError && } type=\"error\" showIcon>}\n {isShowPendingWarning && (\n \n }}\n />{' '}\n {t('common.learnMore')}\n \n }\n type=\"info\"\n showIcon\n />\n )}\n {isShowWithDrawLimitWarning && (\n \n ,\n a: ,\n }}\n />{' '}\n {t('common.learnMore')}\n \n }\n type=\"info\"\n showIcon\n />\n )}\n
\n );\n};\n\nexport default React.memo(DepositFormAlert);\n","import { ArgsProps, IconType } from 'antd/es/notification/interface';\nimport classNames from 'classnames';\nimport { useCallback, useMemo } from 'react';\nimport { toast } from 'react-toastify';\nimport { ToastOptions, TypeOptions } from 'react-toastify/dist/types/index';\n\nimport { ExplorerIcon } from '@/assets/svg';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { CloseButton } from '@/components/Notification';\nimport { mockNotiDontClose } from '@/constants/mock';\nimport { useTheme } from '@/features/global/hooks';\nimport { useEtherscanLink } from '@/hooks/web3/useChain';\nimport { checkLinkIsBlockExplorer } from '@/utils/chain';\nimport { ReactComponent as IconAddrLink } from './assets/icon_acct_new.svg';\ninterface INotificationArgs extends ArgsProps {\n type?: IconType;\n tx?: string;\n link?: string;\n}\n\nconst cachedNotify: { [tx: string]: string } = {};\n\nexport const useTxNotification = (): {\n open: (args: INotificationArgs) => void;\n success: (args: INotificationArgs) => void;\n info: (args: INotificationArgs) => void;\n warning: (args: INotificationArgs) => void;\n error: (args: INotificationArgs) => void;\n} => {\n const { isMobile, deviceType } = useMediaQueryDevice();\n const { dataTheme } = useTheme();\n const getEtherscanLink = useEtherscanLink();\n /**\n * Notification wrapper, add tx open func\n * @param args Notification args\n */\n const openNotification = useCallback(\n (args: INotificationArgs): void => {\n let type = 'info';\n if (args.type) {\n type = args.type;\n }\n let finalLink = args.tx && getEtherscanLink(args.tx, 'transaction');\n if (args.link) {\n finalLink = args.link;\n }\n const isBlockExplorer = checkLinkIsBlockExplorer(finalLink || '');\n let icon = finalLink ? : null;\n if (isBlockExplorer) {\n icon = ;\n }\n const toastDom = (\n
\n
\n {args.message}\n {icon}\n
\n {args.description &&
{args.description}
}\n
\n );\n const toastConfig: ToastOptions = {\n onClick: () => {\n if (type === 'error') {\n return;\n }\n window.open(finalLink);\n },\n className: classNames(deviceType, dataTheme, 'syn-notification-toaster'),\n closeButton: CloseButton,\n type: type as TypeOptions,\n position: isMobile ? 'top-right' : 'bottom-right',\n autoClose: mockNotiDontClose ? false : args.type === 'error' ? 30000 : 5000,\n onClose: () => {\n if (args.tx && cachedNotify[args.tx]) {\n delete cachedNotify[args.tx];\n }\n },\n };\n\n if (type === 'info') {\n const id = toast.loading(toastDom, toastConfig);\n args.tx && (cachedNotify[args.tx] = id.toString());\n } else if (args.tx && cachedNotify[args.tx]) {\n toast.update(cachedNotify[args.tx], {\n ...toastConfig,\n render: toastDom,\n isLoading: false,\n closeButton: true,\n closeOnClick: true,\n });\n } else {\n toast(toastDom, toastConfig);\n }\n\n // notification.open({\n // message: args.message,\n // description: args.description,\n // icon: iconNode,\n // duration: args.type === 'error' ? 30000 : args.type === 'info' ? 50000 : 50000,\n // placement: isMobile ? 'topRight' : 'bottomRight',\n // className: classNames(\n // 'syn-notification',\n // `syn-notification_${args.type}`,\n // (args.tx || args.link) && 'tx-notification',\n // ),\n // onClick: () => {\n // if (args.link) {\n // window.open(args.link);\n // } else if (args.tx) {\n // window.open(getEtherscanLink(args.tx, 'transaction'));\n // }\n // },\n // });\n },\n [deviceType, getEtherscanLink, isMobile, dataTheme],\n );\n\n /**\n * add click\n */\n const txNotification = useMemo(() => {\n const res = {\n open: openNotification,\n success: openNotification,\n info: openNotification,\n warning: openNotification,\n error: openNotification,\n };\n\n const types: IconType[] = ['success', 'info', 'warning', 'error'];\n types.forEach((type: IconType) => {\n res[type] = (args: INotificationArgs): void =>\n res.open({\n ...args,\n type,\n });\n });\n return res;\n }, [openNotification]);\n\n return txNotification;\n};\n","/**\n * @description Component-DepositModalFooter\n */\nimport './index.less';\n\nimport React, { FC, useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { BALANCE_TYPE, ZERO } from '@/constants';\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { depositOrWithdrawBalance } from '@/features/balance/actions';\nimport { useGateAccountState } from '@/features/balance/hook';\nimport { useQuoteTokens } from '@/features/chain/hook';\nimport { getFundFlows } from '@/features/portfolio/actions';\nimport { usePortfolioOperateToken, useUserWithdrawPendingToken } from '@/features/portfolio/hook';\nimport { useAppProvider, useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useTxNotification } from '@/hooks/useTxNotification';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { ApproveWrapButton } from '@/pages/components/WalletStatus/ApproveButton';\nimport { TokenInfo } from '@/types/token';\nimport { ISimulation } from '@/types/trade';\nimport { toBN, toWad } from '@/utils/numberUtil';\nimport { isNativeTokenAddr, isWrappedNativeToken } from '@/utils/token';\ninterface IPropTypes {\n type: BALANCE_TYPE;\n quote?: TokenInfo;\n onCloseModal?: () => void;\n simulation?: ISimulation;\n}\nconst DepositModalFooter: FC = function ({ type, quote, onCloseModal, simulation }) {\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const tradeAccountState = useGateAccountState(chainId);\n const userAddr = useUserAddr();\n const signer = useWalletSigner();\n const provider = useAppProvider();\n const { t } = useTranslation();\n const sdkContext = useSDK(chainId);\n const notification = useTxNotification();\n const marginTokens = useQuoteTokens(chainId);\n const tokenInfo = usePortfolioOperateToken(chainId, userAddr);\n const { pendingToken } = useUserWithdrawPendingToken(chainId, userAddr, quote?.address);\n const isWrappedNativeTokenInfo = useMemo(() => {\n return chainId && quote && isWrappedNativeToken(chainId, quote.address);\n }, [chainId, quote]);\n\n const adjustQuote = useMemo(() => {\n if (isWrappedNativeTokenInfo) {\n return tokenInfo;\n }\n return quote;\n }, [isWrappedNativeTokenInfo, quote, tokenInfo]);\n\n const maxWithdrawableBN = useMemo(() => {\n return WrappedBigNumber.from(pendingToken?.maxWithdrawable || 0);\n }, [pendingToken?.maxWithdrawable]);\n\n const isShowPendingWarning = useMemo(() => {\n if (type === BALANCE_TYPE.WITHDRAW) {\n return pendingToken?.pending?.amount?.gt(0);\n }\n return false;\n }, [pendingToken?.pending?.amount, type]);\n\n const isShowWithDrawLimitWarning = useMemo(() => {\n if (type === BALANCE_TYPE.WITHDRAW) {\n if (isShowPendingWarning) return false;\n const amount = WrappedBigNumber.from(tradeAccountState?.depositAmountStr || 0);\n return amount.gt(0) && amount.gt(maxWithdrawableBN);\n }\n return false;\n }, [type, isShowPendingWarning, tradeAccountState?.depositAmountStr, maxWithdrawableBN]);\n\n const onAfterClickDeposit = useCallback(async () => {\n try {\n if (\n chainId &&\n userAddr &&\n adjustQuote &&\n signer &&\n tradeAccountState?.depositAmountStr &&\n !toBN(tradeAccountState?.depositAmountStr).eq(0) &&\n sdkContext\n ) {\n const isDisableNotification = isShowPendingWarning || isShowWithDrawLimitWarning;\n\n const receipt = await dispatch(\n depositOrWithdrawBalance({\n signer,\n provider,\n sdkContext,\n quote: adjustQuote,\n amount: tradeAccountState?.depositAmountStr,\n chainId,\n account: userAddr,\n\n balanceType: type,\n isDisableNotification,\n marginTokens,\n }),\n ).unwrap();\n if (receipt) {\n if (type === BALANCE_TYPE.WITHDRAW) {\n if (receipt?.status === 1 && isDisableNotification)\n notification.success({\n tx: receipt.transactionHash,\n message: t('notification.withdraw.success'),\n description: t('notification.withdraw.successWithLimit', {\n quantity: WrappedBigNumber.from(tradeAccountState?.depositAmountStr).formatDisplayNumber(),\n quote: adjustQuote.symbol,\n }),\n });\n }\n if (receipt.status === 1) {\n const dappConfig = DAPP_CHAIN_CONFIGS[chainId];\n // get fund flows with weth\n const tokenCheck = isNativeTokenAddr(adjustQuote.address) ? dappConfig.wrappedNativeToken : adjustQuote;\n if (tokenCheck) {\n dispatch(\n getFundFlows({\n chainId,\n sdkContext,\n userAddr,\n quoteTokens: [tokenCheck],\n blockNumber: receipt.blockNumber,\n }),\n );\n }\n }\n onCloseModal && onCloseModal();\n }\n }\n } catch (e) {\n console.error('🚀 ~ file: index.tsx ~ line 91 ~ onAfterClickDeposit ~ e', e);\n }\n }, [\n chainId,\n userAddr,\n adjustQuote,\n signer,\n tradeAccountState?.depositAmountStr,\n sdkContext,\n isShowPendingWarning,\n isShowWithDrawLimitWarning,\n dispatch,\n provider,\n type,\n marginTokens,\n onCloseModal,\n notification,\n t,\n ]);\n\n return (\n
\n \n {t('common.confirm')}\n \n
\n );\n};\n\nexport default React.memo(DepositModalFooter);\n","/**\n * @description Component-DepositCard\n */\nimport './index.less';\n\nimport { FC, memo, useCallback, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { BALANCE_TYPE, TabType } from '@/constants';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { setGateAccountState } from '@/features/balance/actions';\nimport { useGateAccountState, useTokenBalance, useTokenGateBalanceByChainIdAndAddress } from '@/features/balance/hook';\nimport { useNativeToken } from '@/features/chain/hook';\nimport { resetLiquidityFormByChainId } from '@/features/earn/action';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport WalletCardWrapper from '@/pages/components/WalletStatus/WalletCardWrapper';\nimport { useAccountDepositWithdrawCheck } from '@/pages/portfolio/Assets/hooks/assetsHook';\n\nimport { useCurrentPairByDevice } from '@/features/pair/hook';\nimport TradeEarnTabs from '@/pages/components/Tabs/TradeEarnTabs';\nimport DepositForm from '../DepositForm';\nimport DepositFormAlert from '../DepositFormAlert';\nimport DepositModalFooter from '../DepositModalFooter';\ninterface IPropTypes {\n className?: string;\n location?: TabType;\n closeDepositNativeInTrade?: () => void;\n onDepositSuccess?: () => void;\n}\nconst DepositNativeCard: FC = function ({\n location = TabType.Trade,\n closeDepositNativeInTrade,\n onDepositSuccess,\n}) {\n const { t } = useTranslation();\n const { isMobile } = useMediaQueryDevice();\n const chainId = useChainId();\n const nativeToken = useNativeToken(chainId);\n const tradeAccountState = useGateAccountState(chainId);\n const tokenBalance = useTokenBalance(nativeToken?.address || '', chainId);\n const dispatch = useAppDispatch();\n const gateBalance = useTokenGateBalanceByChainIdAndAddress(chainId, nativeToken?.address || '');\n const currentPair = useCurrentPairByDevice(chainId);\n\n const simulation = useAccountDepositWithdrawCheck(\n WrappedBigNumber.from(tradeAccountState?.depositAmountStr || 0),\n gateBalance?.balance,\n tokenBalance,\n BALANCE_TYPE.DEPOSIT,\n chainId,\n );\n const closeSection = useCallback(() => {\n if (isMobile) {\n onDepositSuccess && onDepositSuccess();\n } else {\n if (chainId && location === TabType.Trade) {\n closeDepositNativeInTrade && closeDepositNativeInTrade();\n }\n chainId &&\n location === TabType.Earn &&\n dispatch(\n resetLiquidityFormByChainId({\n chainId,\n }),\n );\n }\n }, [chainId, closeDepositNativeInTrade, dispatch, isMobile, location, onDepositSuccess]);\n useEffect(() => {\n chainId &&\n dispatch(\n setGateAccountState({\n amountRatio: 0,\n depositAmountStr: '',\n chainId,\n }),\n );\n }, [chainId, dispatch]);\n return (\n
\n \n \n
\n )\n }\n alert={\n \n }\n footer={\n \n }>\n \n \n
\n );\n};\n\nexport default memo(DepositNativeCard);\n","/**\n * @description Component-WrapNativeDrawer\n */\nimport './index.less';\n\nimport React, { FC, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\nimport Drawer from '@/components/Drawer';\nimport { useNativeToken } from '@/features/chain/hook';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport DepositNativeCard from '@/pages/components/Portfolio/Vault/AccountButtons/Deposit/DepositModal/DepositNativeCard';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst WrapNativeDrawer: FC = function () {\n const chainId = useChainId();\n const nativeToken = useNativeToken(chainId);\n const { t } = useTranslation();\n const [open, setOpen] = useState(false);\n return (\n <>\n \n setOpen(false)}\n title={t('common.deposit')}\n open={open}\n className=\"syn-wrap-native-drawer reverse-header\">\n setOpen(false)} />\n \n \n );\n};\n\nexport default WrapNativeDrawer;\n","/**\n * @description Component-AddLiqFormDetail\n */\nimport './index.less';\n\nimport { FC, useEffect, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { Mobile, useMediaQueryDevice } from '@/components/MediaQuery';\nimport LeanMoreToolTip from '@/components/ToolTip/LeanMoreToolTip';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useAddLiquidationSimulation } from '@/features/earn/hook';\nimport { usePairFromUrl } from '@/features/pair/hook';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport AvailableMarginDrawer from '@/pages/components/AvailableMarginDrawer';\nimport LiquidationPrices from '@/pages/components/LiquidationPrices';\nimport SettingsDrawer from '@/pages/mobile/TradeMobile/TradeFormMobileMessages/SettingsDrawer';\nimport WrapNativeDrawer from '@/pages/mobile/TradeMobile/TradeFormMobileMessages/WrapNativeDrawer';\nimport { inputNumChecker } from '@/utils/numberUtil';\nimport { isWrappedNativeToken } from '@/utils/token';\nimport { calcAsymmetricBoost } from '@synfutures/sdks-perp';\nimport classNames from 'classnames';\ninterface IPropTypes {\n className?: string;\n imr: number;\n}\nconst AddLiqFormDetail: FC = function ({ imr }) {\n const chainId = useChainId();\n const { t } = useTranslation();\n const { deviceType, isMobile } = useMediaQueryDevice();\n const currentPair = usePairFromUrl(chainId);\n const simulation = useAddLiquidationSimulation(chainId);\n const isWrappedNative = useMemo(\n () => chainId && isWrappedNativeToken(chainId, currentPair?.rootInstrument.marginToken?.address || ''),\n [chainId, currentPair?.rootInstrument.marginToken?.address],\n );\n const upperPrice = useMemo(() => {\n const upper = WrappedBigNumber.from(simulation?.data?.upperLiqPrice || 0);\n // if (currentPair?.rootInstrument.isInverse) {\n // return WrappedBigNumber.from(simulation?.data?.lowerLiqPrice || 0);\n // }\n return upper;\n }, [simulation?.data?.upperLiqPrice]);\n const boost = useMemo(() => {\n if (simulation?.data && imr) {\n return calcAsymmetricBoost(simulation.data.equivalentAlphaLower, simulation.data.equivalentAlphaUpper, imr);\n }\n return 10;\n }, [imr, simulation?.data]);\n const lowerPrice = useMemo(() => {\n const lower = WrappedBigNumber.from(simulation?.data?.lowerLiqPrice || 0);\n // if (currentPair?.rootInstrument.isInverse) {\n // return WrappedBigNumber.from(simulation?.data?.upperLiqPrice || 0);\n // }\n return lower;\n }, [simulation?.data?.lowerLiqPrice]);\n\n useEffect(() => {\n if (simulation?.message) {\n gtag('event', 'add_liquidity_simulate_result', {\n add_liquidity_simulate_result: simulation.message,\n });\n }\n }, [simulation?.message]);\n const isHidden = ((!simulation?.data || !!simulation.message) && !isMobile) || simulation?.data?.margin.eq(0);\n if (isHidden && !isMobile) {\n return null;\n }\n return (\n
\n
\n \n \n \n\n {!isHidden && simulation?.data && !simulation.message && (\n <>\n
\n
{t('common.earn.detail.cb')}
\n
\n
\n }}\n />\n }>\n {WrappedBigNumber.from(boost).formatLeverageWithTooltip()}\n \n
\n
\n
\n
{t('common.earn.removalP')}
\n
\n
\n }}\n />\n }>\n {WrappedBigNumber.from(simulation?.data?.lowerPrice || 0).formatPriceString()}\n {' '}\n /\n }}\n />\n }>\n {' '}\n {WrappedBigNumber.from(simulation?.data?.upperPrice || 0).formatPriceString()}\n \n
\n
\n
\n
{t('common.liqP')}
\n
\n
\n \n
\n
\n \n )}\n
\n {!isHidden && (\n <>\n \n <>\n {(isWrappedNative || (simulation?.data && !simulation.message)) && (\n
\n {simulation?.data && !simulation.message && }\n {isWrappedNative && }\n
\n )}\n \n
\n \n )}\n
\n );\n};\n\nexport default AddLiqFormDetail;\n","/**\n * @description Component-TradeFormAlert\n */\nimport './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport React, { FC, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/Alert';\nimport I18nTrans from '@/components/I18nTrans';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { SLIPPAGE_THRESHOLDS } from '@/constants/global';\nimport { ERROR_MSG_EXCEED_WALLET_BALANCE } from '@/constants/simulation';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useAvailableTokenBalance, useTokenBalance } from '@/features/balance/hook';\nimport { useNativeToken } from '@/features/chain/hook';\nimport { useGlobalConfig } from '@/features/global/hooks';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useDappChainConfig } from '@/hooks/web3/useChain';\nimport { IAddLiquiditySimulation, IRemoveLiquiditySimulation } from '@/types/earn';\nimport { TokenInfo } from '@/types/token';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\nimport { isNativeTokenAddr, isWrappedNativeToken } from '@/utils/token';\ninterface IPropTypes {\n simulation?: IAddLiquiditySimulation | IRemoveLiquiditySimulation;\n chainId: CHAIN_ID | undefined;\n marginToken: TokenInfo | undefined;\n earnType: EARN_TYPE;\n onMaxBalanceClick?: (balance: WrappedBigNumber) => void;\n onNativeTokenDepositClick?: (balance: WrappedBigNumber) => void;\n}\nconst EarnFormAlert: FC = function ({\n simulation,\n chainId,\n marginToken,\n earnType,\n onMaxBalanceClick,\n onNativeTokenDepositClick,\n}) {\n const { t } = useTranslation();\n const { slippage } = useGlobalConfig(chainId);\n const nativeToken = useNativeToken(chainId);\n const dappConfig = useDappChainConfig(chainId);\n const nativeTokenBalance = useTokenBalance(dappConfig?.nativeToken?.address, dappConfig?.network.chainId, true);\n const availableBalance = useAvailableTokenBalance(marginToken?.address, chainId, true);\n // const { isShowVaultChange } = useSimulationBalanceChange(chainId, marginToken);\n const errMsg = useMemo(() => {\n if (simulation?.message === ERROR_MSG_EXCEED_WALLET_BALANCE.errorData) {\n let maxBalanceTip;\n const simulationD = earnType === EARN_TYPE.ADD_LIQ ? (simulation as IAddLiquiditySimulation) : undefined;\n if (simulationD) {\n if (onMaxBalanceClick && availableBalance.lt(simulationD?.data?.margin || 0)) {\n maxBalanceTip = (\n {\n onMaxBalanceClick && onMaxBalanceClick(availableBalance);\n }}>\n {t('common.useMax')} {availableBalance.formatNumberWithTooltip({ suffix: marginToken?.symbol })}\n
\n );\n }\n if (chainId && isWrappedNativeToken(chainId!, marginToken?.address || '')) {\n maxBalanceTip = (\n
\n {\n onNativeTokenDepositClick && onNativeTokenDepositClick(availableBalance);\n }}>\n {t('common.depositForm.wantSwap', {\n nativeSymbol: nativeToken?.symbol,\n wrapSymbol: marginToken?.symbol,\n })}\n \n
\n );\n }\n }\n\n return (\n <>\n {t(simulation?.errorData || simulation?.message || '')}. \n {maxBalanceTip}\n \n );\n }\n\n return t(simulation?.errorData || simulation?.message || '');\n }, [\n availableBalance,\n chainId,\n earnType,\n marginToken?.address,\n marginToken?.symbol,\n nativeToken?.symbol,\n onMaxBalanceClick,\n onNativeTokenDepositClick,\n simulation,\n t,\n ]);\n\n const addLpSimulation = useMemo(\n () => (earnType === EARN_TYPE.ADD_LIQ ? (simulation as IAddLiquiditySimulation) : undefined),\n [earnType, simulation],\n );\n\n const walletConnectStatus = useWalletConnectStatus();\n\n const needHide = useMemo(() => false, []);\n\n const isShowSimulateError = useMemo(() => {\n return errMsg && !needHide;\n }, [errMsg, needHide]);\n\n const isShowNativeTokenBalanceWarning = useMemo(() => {\n if (\n walletConnectStatus !== WALLET_CONNECT_STATUS.UN_CONNECT &&\n dappConfig?.network.chainId &&\n nativeTokenBalance &&\n isNativeTokenAddr(marginToken?.address || '')\n ) {\n if (nativeTokenBalance.lte(dappConfig?.minNativeTokenKeep || 0)) {\n return true;\n }\n\n return false;\n }\n }, [\n walletConnectStatus,\n dappConfig?.network.chainId,\n nativeTokenBalance,\n marginToken?.address,\n dappConfig?.minNativeTokenKeep,\n ]);\n\n const isShowSlippageHighAlert = useMemo(() => {\n return WrappedBigNumber.from(slippage).gte(SLIPPAGE_THRESHOLDS.HIGH);\n }, [slippage]);\n\n const isShowWarning = useMemo(() => {\n if (isShowSimulateError) return false;\n\n return isShowNativeTokenBalanceWarning || isShowSlippageHighAlert;\n }, [isShowSimulateError, isShowNativeTokenBalanceWarning, isShowSlippageHighAlert]);\n\n const isShowDepositInfo = useMemo(() => {\n return addLpSimulation?.data?.marginToDeposit?.gt(0);\n }, [addLpSimulation?.data?.marginToDeposit]);\n\n const depositInfo = useMemo(() => {\n if (isShowDepositInfo && !simulation?.message) {\n return (\n }}\n />\n }\n type=\"info\"\n showIcon>\n );\n }\n }, [isShowDepositInfo, marginToken?.symbol, addLpSimulation?.data?.marginToDeposit, simulation?.message]);\n\n // const vaultChangeInfo = useMemo(() => {\n // const margin = WrappedBigNumber.from(addLpSimulation?.data?.margin || 0).min(\n // addLpSimulation?.data?.marginToDeposit || 0,\n // );\n // let i18Key = 'errors.trade.depositInfoVault';\n // if (vaultBalanceAfter && vaultBalanceBefore?.gt(vaultBalanceAfter)) {\n // i18Key = 'errors.trade.depositInfoVaultOut';\n // }\n // if (isShowVaultChange && margin && !margin.eq(0)) {\n // return (\n // }}\n // />\n // }\n // type=\"info\"\n // showIcon\n // />\n // );\n // }\n // }, [\n // addLpSimulation?.data?.margin,\n // addLpSimulation?.data?.marginToDeposit,\n // isShowVaultChange,\n // marginToken?.symbol,\n // vaultBalanceAfter,\n // vaultBalanceBefore,\n // ]);\n\n const isShowInfo = useMemo(() => {\n return isShowDepositInfo;\n }, [isShowDepositInfo]);\n\n if ((!isShowSimulateError && !isShowWarning && !isShowInfo) || addLpSimulation?.data?.margin.eq(0)) return null;\n return (\n
\n {isShowSimulateError ? (\n } type=\"error\" showIcon>\n ) : (\n <>\n {isShowNativeTokenBalanceWarning && (\n }}\n />\n }\n type=\"info\"\n showIcon>\n )}\n\n {isShowSlippageHighAlert && (\n \n )}\n\n {isShowDepositInfo && depositInfo}\n {/* {!isShowDepositInfo && isShowVaultChange && vaultChangeInfo} */}\n \n )}\n
\n );\n};\n\nexport default React.memo(EarnFormAlert);\n","import { MockDevToolProps, toggleMockDevTool } from '@/features/global/globalSlice';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport { Flex } from 'antd';\nimport { useEffect, useState } from 'react';\nexport const useMockDevTool = () => {\n const state = useAppSelector((state) => state.global.mockDevToolProps);\n return state;\n};\nexport default function DevTool() {\n const { isMockSkeleton, isMockVaultShowWithdrawlRequest, isMockNumber, isMockNetworkError } = useMockDevTool();\n const [isOpen, setIsOpen] = useState(false);\n const dispatch = useAppDispatch();\n useEffect(() => {\n if (isMockNetworkError) {\n throw 'Please close this window to see the network error.';\n }\n }, [isMockNetworkError]);\n return process.env.REACT_APP_API_ENV === 'dev' ? (\n \n {isOpen ? (\n \n ) : (\n \n )}\n {isOpen && (\n \n Dev tools(Only exist in REACT_APP_API_ENV=dev)\n {\n dispatch(toggleMockDevTool(MockDevToolProps.isMockSkeleton));\n }}>\n {isMockSkeleton ? 'Hide Skeleton' : 'Show Skeleton'}\n \n
Vault:
\n \n {\n dispatch(toggleMockDevTool(MockDevToolProps.isMockVaultShowWithdrawlRequest));\n }}>\n {isMockVaultShowWithdrawlRequest ? 'Hide WithdrawlRequest' : 'Show WithdrawlRequest'}\n \n \n
Number:
\n \n {\n dispatch(toggleMockDevTool(MockDevToolProps.isMockNumber));\n }}>\n {isMockNumber ? 'Use Real Number' : 'Use Mock Number'}\n \n \n
Network Error:
\n \n {\n dispatch(toggleMockDevTool(MockDevToolProps.isMockNetworkError));\n }}>\n {isMockNetworkError ? 'Please refresh' : 'Show Network Error'}\n \n \n \n )}\n \n ) : null;\n}\n","import './index.less';\n\nimport { Skeleton as AntSkeleton, Skeleton as AntSkeletonButton, SkeletonProps } from 'antd';\nimport classNames from 'classnames';\n\nexport function Skeleton({ className, ...props }: SkeletonProps): JSX.Element {\n return ;\n}\n\nexport function SkeletonButton({\n className,\n style,\n width = 56,\n height = 16,\n ...props\n}: SkeletonProps & { width?: number; height?: number }): JSX.Element {\n return (\n \n );\n}\n","import { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { IDepthChartData, ILiqChartConvertedData } from '@/types/chart';\nimport { currentUnixTime } from '@/utils/timeUtils';\nimport { CHAIN_ID, Context } from '@derivation-tech/context';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport { KlineData, KlineInterval, VolumeChartData } from '@synfutures/sdks-perp-datasource';\nimport { BigNumber } from 'ethers';\nimport moment from 'moment';\nimport { fetchFuturesPairKlineChart } from '../futures/api';\nimport { AppState } from '../store';\n\nexport const getPairVolumeChartData = createAsyncThunk(\n 'chart/getPairVolumeChartData',\n\n async ({\n pair,\n sdk,\n startTime,\n endTime,\n }: {\n chainId: CHAIN_ID;\n pair: WrappedPair;\n sdk: Context;\n startTime: number;\n endTime: number;\n }): Promise => {\n try {\n const data = await sdk.perpDataSource.volume.getVolumeData(\n pair.rootInstrument.instrumentAddr,\n pair.expiry,\n startTime,\n endTime,\n );\n return data;\n } catch (e) {\n console.log('🚀 ~ file: actions.ts:69 ~ e:', e);\n return undefined;\n }\n },\n);\n\nexport const getTVLAndVolumeChartData = createAsyncThunk(\n 'chart/getTVLAndVolumeChartData',\n async (\n {\n chainId,\n pair,\n sdk,\n }: {\n chainId: CHAIN_ID;\n pair: WrappedPair;\n sdk: Context;\n },\n { dispatch },\n ): Promise => {\n try {\n const utcNow = moment.utc();\n const startTs = utcNow.add(-30, 'day').unix();\n\n const endTs = currentUnixTime();\n await dispatch(getPairVolumeChartData({ chainId, pair, sdk, startTime: startTs, endTime: endTs }));\n } catch (e) {\n console.log('🚀 ~ file: actions.ts:95 ~ e:', e);\n throw e;\n }\n },\n);\n\nexport const getPairLiqChartData = createAsyncThunk(\n 'chart/getPairLiqChartData',\n async ({\n instrumentAddr,\n expiry,\n sdk,\n }: {\n chainId: CHAIN_ID;\n instrumentAddr: string;\n expiry: number;\n sdk: Context;\n }): Promise => {\n try {\n const data = await sdk.perpDataSource.liquidity.getLiquidityData(instrumentAddr, expiry);\n return data.map((d) => ({\n ...d,\n liqNumber: WrappedBigNumber.from(d.liquidity).toNumber(),\n }));\n } catch (e) {\n console.log('🚀 ~ file: actions.ts:69 ~ e:', e);\n return undefined;\n }\n },\n);\n\nexport const getPairOrderBookData = createAsyncThunk(\n 'chart/getPairOrderBookData',\n async (\n {\n instrumentAddr,\n expiry,\n sdkContext,\n stepRatio,\n chainId,\n length,\n }: {\n chainId: CHAIN_ID;\n instrumentAddr: string;\n expiry: number;\n stepRatio?: number;\n length?: number;\n sdkContext: Context;\n },\n { getState },\n ): Promise => {\n try {\n const {\n trade: { chainStepRatio },\n } = getState() as AppState;\n if (!stepRatio) {\n stepRatio = chainStepRatio[chainId];\n }\n if (!stepRatio || !instrumentAddr || !expiry) return;\n\n //used to be getDepthDataFromObserver\n const data = await sdkContext.perpDataSource.depth.getDepthData(instrumentAddr, expiry, stepRatio, length);\n // data.left = data.left.map((item) => {\n // return {\n // ...item,\n // base: !item.base ? 0.0000000000000000001 : item.base,\n // };\n // });\n return data;\n } catch (e) {\n console.error('🚀 ~ getPairOrderBookData e:', e);\n return undefined;\n }\n },\n);\n\nexport const getPairKlineData = createAsyncThunk(\n 'chart/getPairKlineData',\n async ({\n instrumentAddr,\n expiry,\n chartDuration,\n timeEnd,\n chainId,\n }: {\n chainId: CHAIN_ID;\n instrumentAddr: string;\n expiry: number;\n chartDuration: KlineInterval;\n timeEnd?: number;\n minTradeValue: BigNumber;\n }): Promise => {\n return fetchFuturesPairKlineChart({\n chainId,\n instrumentAddr,\n expiry,\n chartDuration,\n timeEnd,\n });\n },\n);\n","import { createSlice } from '@reduxjs/toolkit';\nimport { KlineData, KlineInterval, VolumeChartData } from '@synfutures/sdks-perp-datasource';\nimport _ from 'lodash';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { IDepthChartData, ILiqChartConvertedData } from '@/types/chart';\nimport { ListArrayStatus, getDefaultListArrayStatus, setFulfilledListArrayStatus } from '@/types/redux';\nimport { getPairId } from '@/utils/transform/transformId';\n\nimport { AppState } from '../store';\nimport { getPairKlineData, getPairLiqChartData, getPairOrderBookData, getPairVolumeChartData } from './actions';\n\nexport interface IAccountState {\n chainVolumeData: {\n [chainID: number]: {\n [pairId: string]: VolumeChartData[];\n };\n };\n chainVolumeDataFetchingStatus: {\n [chainID: number]: {\n [pairId: string]: FETCHING_STATUS;\n };\n };\n\n chainOrderBookData: {\n [chainID: number]: {\n [pairId: string]: { [stepRatio: string]: IDepthChartData };\n };\n };\n chainOrderBookDataFetchingStatus: {\n [chainID: number]: {\n [pairId: string]: { [stepRatio: string]: FETCHING_STATUS };\n };\n };\n chainLiqData: {\n [chainID: number]: {\n [pairId: string]: ILiqChartConvertedData[];\n };\n };\n chainLiqDataFetchingStatus: {\n [chainID: number]: {\n [pairId: string]: FETCHING_STATUS;\n };\n };\n chainKlineData: {\n [chainID: number]: {\n [pairId: string]: { [chartDuration in KlineInterval]: ListArrayStatus };\n };\n };\n chainKlineDataIsFirstTimeLoad: {\n [chainID: number]: {\n [pairId: string]: { [chartDuration in KlineInterval]: boolean };\n };\n };\n}\n\nconst initialState: IAccountState = {\n chainVolumeData: {},\n chainVolumeDataFetchingStatus: {},\n chainLiqData: {},\n chainLiqDataFetchingStatus: {},\n chainOrderBookData: {},\n chainKlineData: {},\n chainKlineDataIsFirstTimeLoad: {},\n chainOrderBookDataFetchingStatus: {},\n};\n\nexport const chartSlice = createSlice({\n name: 'account',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n .addCase(getPairVolumeChartData.pending, (state, action) => {\n const { chainId, pair } = action.meta.arg;\n _.set(state.chainVolumeDataFetchingStatus, [chainId, pair.id], FETCHING_STATUS.FETCHING);\n })\n .addCase(getPairVolumeChartData.fulfilled, (state, action) => {\n const { chainId, pair } = action.meta.arg;\n if (action.payload) {\n _.set(state.chainVolumeData, [chainId, pair.id], action.payload);\n }\n _.set(state.chainVolumeDataFetchingStatus, [chainId, pair.id], FETCHING_STATUS.DONE);\n })\n .addCase(getPairLiqChartData.pending, (state, action) => {\n const { chainId, instrumentAddr, expiry } = action.meta.arg;\n _.set(state.chainLiqDataFetchingStatus, [chainId, getPairId(instrumentAddr, expiry)], FETCHING_STATUS.FETCHING);\n })\n .addCase(getPairLiqChartData.fulfilled, (state, action) => {\n const { chainId, instrumentAddr, expiry } = action.meta.arg;\n if (action.payload) {\n _.set(state.chainLiqData, [chainId, getPairId(instrumentAddr, expiry)], action.payload);\n }\n _.set(state.chainLiqDataFetchingStatus, [chainId, getPairId(instrumentAddr, expiry)], FETCHING_STATUS.DONE);\n })\n .addCase(getPairLiqChartData.rejected, (state, action) => {\n const { chainId, instrumentAddr, expiry } = action.meta.arg;\n _.set(state.chainLiqDataFetchingStatus, [chainId, getPairId(instrumentAddr, expiry)], FETCHING_STATUS.DONE);\n })\n .addCase(getPairOrderBookData.pending, (state, action) => {\n const { chainId, instrumentAddr, expiry, stepRatio } = action.meta.arg;\n const pairId = getPairId(instrumentAddr, expiry);\n if (!_.get(state.chainOrderBookDataFetchingStatus, [chainId, pairId, `${stepRatio}_step` || ''])) {\n _.set(\n state.chainOrderBookDataFetchingStatus,\n [chainId, pairId, `${stepRatio}_step` || ''],\n FETCHING_STATUS.FETCHING,\n );\n }\n })\n .addCase(getPairOrderBookData.fulfilled, (state, action) => {\n const { chainId, instrumentAddr, expiry, stepRatio } = action.meta.arg;\n if (action.payload) {\n const pairId = getPairId(instrumentAddr, expiry);\n _.set(state.chainOrderBookData, [chainId, pairId, `${stepRatio}_step` || ''], action.payload);\n _.set(\n state.chainOrderBookDataFetchingStatus,\n [chainId, pairId, `${stepRatio}_step` || ''],\n FETCHING_STATUS.DONE,\n );\n }\n })\n .addCase(getPairOrderBookData.rejected, (state, action) => {\n const { chainId, instrumentAddr, expiry, stepRatio } = action.meta.arg;\n const pairId = getPairId(instrumentAddr, expiry);\n _.set(\n state.chainOrderBookDataFetchingStatus,\n [chainId, pairId, `${stepRatio}_step` || ''],\n FETCHING_STATUS.DONE,\n );\n })\n .addCase(getPairKlineData.pending, (state, action) => {\n const { chainId, instrumentAddr, expiry, chartDuration } = action.meta.arg;\n const pairId = getPairId(instrumentAddr, expiry);\n if (!_.get(state.chainKlineData, [chainId, pairId, chartDuration])) {\n _.set(\n state.chainKlineData,\n [chainId, pairId, chartDuration],\n getDefaultListArrayStatus(FETCHING_STATUS.FETCHING),\n );\n _.set(state.chainKlineDataIsFirstTimeLoad, [chainId, pairId, chartDuration], true);\n } else {\n _.set(state.chainKlineData, [chainId, pairId, 'status'], FETCHING_STATUS.FETCHING);\n _.set(state.chainKlineDataIsFirstTimeLoad, [chainId, pairId, chartDuration], false);\n }\n })\n .addCase(getPairKlineData.fulfilled, (state, action) => {\n const { chainId, instrumentAddr, expiry, chartDuration } = action.meta.arg;\n if (action.payload) {\n const pairId = getPairId(instrumentAddr, expiry);\n const klineData = _.get(state.chainKlineData, [chainId, pairId, chartDuration, 'list'], []);\n const list = _.chain([...klineData, ...action.payload])\n .groupBy('timestamp')\n .map((group) => _.merge({}, ...group))\n .orderBy(['timestamp'], ['asc'])\n .value();\n\n _.set(state.chainKlineData, [chainId, pairId, chartDuration], setFulfilledListArrayStatus(list));\n }\n })\n .addCase(getPairKlineData.rejected, (state, action) => {\n const { chainId, instrumentAddr, expiry, chartDuration } = action.meta.arg;\n if (action) {\n const pairId = getPairId(instrumentAddr, expiry);\n _.set(state.chainKlineData, [chainId, pairId, chartDuration, 'status'], FETCHING_STATUS.DONE);\n }\n });\n },\n});\nexport const selectLiqChartData =\n (chainId: number | undefined, pairId: string | undefined) =>\n (state: AppState): ILiqChartConvertedData[] =>\n _.get(state.chart.chainLiqData, [chainId || '', pairId || '']);\nexport const selectLiqChartDataStatus =\n (chainId: number | undefined, pairId: string | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.chart.chainLiqDataFetchingStatus, [chainId || '', pairId || ''], FETCHING_STATUS.INIT);\nexport const selectOrderBookData =\n (chainId: number | undefined, pairId: string | undefined, stepRatio: number | undefined) =>\n (state: AppState): IDepthChartData =>\n _.get(state.chart.chainOrderBookData, [chainId || '', pairId || '', `${stepRatio}_step` || '']);\nexport const selectOrderBookDataStatus =\n (chainId: number | undefined, pairId: string | undefined, stepRatio: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(\n state.chart.chainOrderBookDataFetchingStatus,\n [chainId || '', pairId || '', `${stepRatio}_step` || ''],\n FETCHING_STATUS.INIT,\n );\nexport const selectVolumeChartData =\n (chainId: number | undefined, pairId: string | undefined) =>\n (state: AppState): VolumeChartData[] =>\n _.get(state.chart.chainVolumeData, [chainId || '', pairId || '']);\nexport const selectVolumeChartDataFetchingStatus =\n (chainId: number | undefined, pairId: string | undefined) =>\n (state: AppState): FETCHING_STATUS | undefined =>\n _.get(state.chart.chainVolumeDataFetchingStatus, [chainId || '', pairId || '']);\n\nexport const selectKlineChartData =\n (chainId: number | undefined, pairId: string | undefined, chartDuration: KlineInterval) =>\n (state: AppState): KlineData[] =>\n _.get(state.chart.chainKlineData, [chainId || '', pairId || '', chartDuration, 'list']);\n\nexport const selectKlineChartFetchingStatus =\n (chainId: number | undefined, pairId: string | undefined, chartDuration: KlineInterval) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.chart.chainKlineData, [chainId || '', pairId || '', chartDuration, 'status'], FETCHING_STATUS.INIT);\n\nexport const selectKlineChartFetchingFirstTime =\n (chainId: number | undefined, pairId: string | undefined, chartDuration: KlineInterval) =>\n (state: AppState): boolean =>\n _.get(state.chart.chainKlineDataIsFirstTimeLoad, [chainId || '', pairId || '', chartDuration], true);\n\nexport default chartSlice.reducer;\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { KlineData, KlineInterval, VolumeChartData } from '@synfutures/sdks-perp-datasource';\nimport _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useAppSelector } from '@/hooks';\nimport { IDepthChartData, ILiqChartConvertedData } from '@/types/chart';\nimport { getAdjustTradePrice } from '@/utils/pairs';\nimport { currentUTCExpiryTime } from '@/utils/timeUtils';\n\nimport {\n selectKlineChartData,\n selectKlineChartFetchingFirstTime,\n selectKlineChartFetchingStatus,\n selectLiqChartData,\n selectLiqChartDataStatus,\n selectOrderBookData,\n selectOrderBookDataStatus,\n selectVolumeChartData,\n selectVolumeChartDataFetchingStatus,\n} from './slice';\n\nexport function useOrderBookData(\n chainId: CHAIN_ID | undefined,\n pair: WrappedPair | undefined,\n stepRatio: number | undefined,\n): IDepthChartData | undefined {\n const data = useAppSelector(selectOrderBookData(chainId, pair?.id, stepRatio));\n\n return useMemo(() => {\n if (data && pair) {\n const [left, right] = [data.left, data.right];\n return {\n ...data,\n left: [\n // currentPoint,\n ...left.map((item) => {\n return {\n ...item,\n // price: getAdjustTradePrice(item.price, pair.isInverse).toNumber(),\n pair: pair,\n };\n }),\n ],\n right: [\n // currentPoint,\n ...right.map((item) => {\n return {\n ...item,\n // price: getAdjustTradePrice(item.price, pair.isInverse).toNumber(),\n pair: pair,\n };\n }),\n ],\n };\n }\n }, [data, pair]);\n}\nexport function useOrderBookDataStatus(\n chainId: CHAIN_ID | undefined,\n pairId: string | undefined,\n stepRatio: number | undefined,\n): FETCHING_STATUS {\n const status = useAppSelector(selectOrderBookDataStatus(chainId, pairId, stepRatio));\n return status;\n}\nexport function useLiqChartData(\n chainId: CHAIN_ID | undefined,\n pair: WrappedPair | undefined,\n): ILiqChartConvertedData[] | undefined {\n const data = useAppSelector(selectLiqChartData(chainId, pair?.id));\n return useMemo(() => {\n if (data && pair) {\n return _.orderBy(\n data.map((item) => {\n return {\n ...item,\n price: item.price,\n pair: pair,\n };\n }),\n ['price'],\n );\n }\n return [];\n }, [data, pair]);\n}\n\nexport function useLiqChartDataStatus(chainId: CHAIN_ID | undefined, pairId: string | undefined): FETCHING_STATUS {\n const status = useAppSelector(selectLiqChartDataStatus(chainId, pairId));\n return status;\n}\n\nexport function useVolumeDataStatus(\n chainId: CHAIN_ID | undefined,\n pairId: string | undefined,\n): FETCHING_STATUS | undefined {\n const status = useAppSelector(selectVolumeChartDataFetchingStatus(chainId, pairId));\n return status;\n}\nexport function useVolumeChartData(\n chainId: CHAIN_ID | undefined,\n pair: WrappedPair | undefined,\n): VolumeChartData[] | undefined {\n const data = useAppSelector(selectVolumeChartData(chainId, pair?.id));\n\n return useMemo(() => {\n const list = _.clone(data) || [];\n // fill the missing data when the data is not enough\n if (list?.length > 0 && list.length < 30) {\n for (let i = 0; i < 30 - list.length; i++) {\n i > 0 &&\n list.unshift({\n timestamp: list[0].timestamp - 60 * 60 * 24 * i,\n baseVolume: 0,\n quoteVolume: 0,\n });\n }\n } else if (!list || list?.length === 0) {\n const timestamp = currentUTCExpiryTime();\n for (let i = 0; i < 30; i++) {\n list.unshift({\n timestamp: Math.floor(timestamp / 1000) - 60 * 60 * 24 * i,\n baseVolume: 0,\n quoteVolume: 0,\n });\n }\n }\n return list;\n }, [data]);\n}\n\nexport function useKlineChartData(\n chainId: CHAIN_ID | undefined,\n pair: WrappedPair | undefined,\n chartDuration: KlineInterval,\n): KlineData[] | undefined {\n const data = useAppSelector(selectKlineChartData(chainId, pair?.id, chartDuration));\n return useMemo(() => {\n if (data && pair) {\n return data.map((item) => {\n return {\n ...item,\n open: getAdjustTradePrice(item.open, pair.isInverse).toNumber(),\n close: getAdjustTradePrice(item.close, pair.isInverse).toNumber(),\n high: getAdjustTradePrice(item.high, pair.isInverse).toNumber(),\n low: getAdjustTradePrice(item.low, pair.isInverse).toNumber(),\n pair: pair,\n };\n });\n }\n }, [data, pair]);\n}\n\nexport function useKlineChartFetchingStatus(\n chainId: CHAIN_ID | undefined,\n pairId: string | undefined,\n chartDuration: KlineInterval,\n): FETCHING_STATUS {\n return useAppSelector(selectKlineChartFetchingStatus(chainId, pairId, chartDuration));\n}\n\nexport function useKlineChartNotFirstTimeLoad(\n chainId: CHAIN_ID | undefined,\n pairId: string | undefined,\n chartDuration: KlineInterval,\n): boolean {\n return useAppSelector(selectKlineChartFetchingFirstTime(chainId, pairId, chartDuration));\n}\n","/**\n * @description Component-IlChart\n */\nimport { useILData } from '@/features/earn/query';\nimport './index.less';\n\n// import { ReactComponent as PointD } from '@/assets/svg/point_dark.svg';\n// import { ReactComponent as PointL } from '@/assets/svg/point_light.svg';\nimport Loading from '@/components/Loading';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { THEME_ENUM } from '@/constants';\nimport { IL_LOSS_BASE } from '@/constants/earn';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useTheme } from '@/features/global/hooks';\nimport { CreativePair } from '@/types/pair';\nimport { PEARL_SPACING, SimulateImpermenantLossResult, TickMath } from '@synfutures/sdks-perp';\nimport { alignTick } from '@synfutures/sdks-perp/dist/utils';\nimport { useDebounceEffect } from 'ahooks';\nimport classNames from 'classnames';\nimport { BigNumber } from 'ethers';\nimport _ from 'lodash';\nimport { FC, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Area, AreaChart, ReferenceDot, ResponsiveContainer, Tooltip, TooltipProps, XAxis, YAxis } from 'recharts';\nimport { NameType, ValueType } from 'recharts/types/component/DefaultTooltipContent';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n ticksMinMax: number[];\n pair: WrappedPair | CreativePair | undefined;\n alphaWadLower?: BigNumber;\n alphaWadUpper?: BigNumber;\n lowerUpperTicks?: number[];\n currentTick: number;\n}\nconst IlChart: FC = function ({\n ticksMinMax,\n pair,\n alphaWadLower,\n alphaWadUpper,\n lowerUpperTicks,\n currentTick,\n}) {\n const chartHeight = 66;\n const [activeData, setActiveData] = useState();\n const { deviceType } = useMediaQueryDevice();\n const { dataTheme } = useTheme();\n const [dotPosition, setDotPosition] = useState<{ cx: number; cy: number } | undefined>();\n const currentTickInverse = useMemo(\n () => currentTick * (pair?.rootInstrument.isInverse ? -1 : 1),\n [currentTick, pair?.rootInstrument.isInverse],\n );\n const ticksMinMaxInverse = useMemo(\n () =>\n _.orderBy(\n ticksMinMax.map((t) => t * (pair?.rootInstrument.isInverse ? -1 : 1)),\n [(t) => t],\n ['asc'],\n ),\n [pair?.rootInstrument.isInverse, ticksMinMax],\n );\n const { data, isLoading } = useILData(\n pair && alphaWadLower && alphaWadUpper\n ? {\n expiry: pair?.expiry,\n instrument: {\n marketType: pair.rootInstrument.marketType,\n baseSymbol: pair.rootInstrument.baseToken,\n quoteSymbol: pair.rootInstrument.quoteToken,\n },\n symbol: pair.symbol,\n alphaWadLower,\n alphaWadUpper,\n isInverse: pair.rootInstrument.isInverse || false,\n }\n : undefined,\n );\n const activeDataTransformed = useMemo(() => {\n if (!activeData) {\n return undefined;\n }\n const price = WrappedBigNumber.from(TickMath.getWadAtTick(activeData.tick));\n return {\n price,\n loss: WrappedBigNumber.from(activeData.impermanentLoss - IL_LOSS_BASE).mul(-1),\n };\n }, [activeData]);\n const yMax = useMemo(() => {\n if (!data) return 0.33;\n const loss = data.map((d) => d.impermanentLoss);\n return _.max(loss) || 0.3;\n }, [data]);\n const { t } = useTranslation();\n const ToolTipContent = ({ payload }: TooltipProps) => {\n if (payload?.length) {\n const data = payload[0]?.payload;\n setActiveData(data);\n return null;\n }\n return null;\n };\n const currentTickData = useMemo(\n () => data?.find((d) => d.tick === alignTick(currentTickInverse, PEARL_SPACING)),\n [currentTickInverse, data],\n );\n\n useDebounceEffect(() => {\n if (!activeData) {\n setActiveData(currentTickData);\n }\n }, [currentTickData]);\n useEffect(() => {\n setActiveData(undefined);\n setDotPosition(undefined);\n }, [lowerUpperTicks]);\n return (\n
\n {isLoading && }\n {!!data?.length && (\n
\n {activeData && !!dotPosition && (\n
\n )}\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n {activeData && (\n {\n const cx = _.get(props, ['cx']);\n const cy = _.get(props, ['cy']);\n if (cx !== dotPosition?.cx) {\n setDotPosition({ cx, cy });\n }\n return ;\n }}\n stroke={dataTheme === THEME_ENUM.DARK ? '#007580' : '#fff'}\n // shape={dataTheme === THEME_ENUM.DARK ? : }\n fill=\"#00BFBF\"\n r={6}\n />\n )}\n } />\n \n \n \n
\n )}\n {activeData && (\n
\n
\n
{t('common.earn.removeP')}
\n
\n
{activeDataTransformed?.price.formatPriceNumberWithTooltip()}
\n
\n
\n
{t('common.earn.estIl')}
\n
\n
\n \n {activeDataTransformed?.loss.formatPercentage()}\n \n
\n
\n
\n )}\n
\n );\n};\n\nexport default IlChart;\n","import { IL_LOSS_BASE } from '@/constants/earn';\nimport { QUERY_KEYS } from '@/constants/query';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { ILDataParams } from '@/types/earn';\nimport { SimulateImpermenantLossResult } from '@synfutures/sdks-perp';\nimport { useQuery, UseQueryResult } from '@tanstack/react-query';\nimport { useSDK } from '../web3/hook';\n\nexport function useILData(params: ILDataParams | undefined): UseQueryResult {\n const chainId = useChainId();\n const sdk = useSDK(chainId);\n return useQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.EARN.IL(\n chainId,\n params?.symbol,\n params?.alphaWadLower.toString(),\n params?.alphaWadUpper.toString(),\n ),\n queryFn: async () => {\n try {\n if (params) {\n const data = await sdk?.perp.simulate.simulateImpermanentLoss(params);\n return (\n data?.map((d) => ({\n tick: d.tick,\n impermanentLoss: d.impermanentLoss * -1 + IL_LOSS_BASE,\n })) || []\n );\n }\n return [];\n } catch (e) {\n console.log('🚀 ~ queryFn: ~ e:', e);\n return [];\n }\n },\n enabled: !!sdk && !!params,\n });\n}\n","/**\n * @description Component-EarnLiqChart\n */\nimport './index.less';\n\nimport { ORDER_SPACING, TickMath, utils } from '@synfutures/sdks-perp';\nimport { useDebounceEffect, useDebounceFn } from 'ahooks';\nimport classNames from 'classnames';\nimport * as d3Scale from 'd3-scale';\nimport _ from 'lodash';\nimport { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Area, AreaChart, ResponsiveContainer, XAxis, YAxis } from 'recharts';\n\nimport Loading from '@/components/Loading';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { useMockDevTool } from '@/components/Mock';\nimport { FETCHING_STATUS, THEME_ENUM } from '@/constants';\nimport { DEFAULT_MIN_TICK_DELTA } from '@/constants/earn';\nimport { EARN_ALPHA_THRESHOLDS } from '@/constants/global';\nimport { POLLING_GRAPH } from '@/constants/polling';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useMetaRangeByPairId } from '@/features/account/rangeHook';\nimport { useAvailableTokenBalance } from '@/features/balance/hook';\nimport { getPairLiqChartData } from '@/features/chart/actions';\nimport { useLiqChartData, useLiqChartDataStatus } from '@/features/chart/hooks';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { addLiquidityAsymmetricSimulate, setAddLiqFormState } from '@/features/earn/action';\nimport { useAddLiquidationSimulationData, useAddLiquidityFormState, usePairPriceRange } from '@/features/earn/hook';\nimport { useGlobalConfig, useTheme } from '@/features/global/hooks';\nimport { useCurrentNewPairFromUrl, usePairFromUrl } from '@/features/pair/hook';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { pollingFunc } from '@/utils';\nimport { toWad } from '@/utils/numberUtil';\nimport { perToTenThousands } from '@/utils/trade';\nimport { alignTick } from '@synfutures/sdks-perp/dist/utils';\nimport { Slider } from 'antd';\nimport IlChart from '../IlChart';\n\nlet polling_chart: NodeJS.Timer | null = null;\ninterface IPropTypes {\n className?: string;\n asymmetric?: boolean;\n loading?: boolean;\n}\nconst EarnLiqChart: FC = function ({ asymmetric, loading }) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const { dataTheme } = useTheme();\n const chartContainerRef = useRef(null);\n const userAddr = useUserAddr();\n const { deviceType } = useMediaQueryDevice();\n const dispatch = useAppDispatch();\n const currentPair = usePairFromUrl(chainId);\n const newPair = useCurrentNewPairFromUrl(chainId);\n const combinedPair = useMemo(() => currentPair || newPair, [currentPair, newPair]);\n const sdkContext = useSDK(chainId);\n const data = useLiqChartData(chainId, currentPair);\n const addLiqState = useAddLiquidityFormState(chainId);\n const backendChainConfig = useBackendChainConfig(chainId);\n const chartHeight = 100;\n const { slippage } = useGlobalConfig(chainId);\n const { isMockSkeleton } = useMockDevTool();\n const metaRangeList = useMetaRangeByPairId(chainId, userAddr, currentPair?.id);\n const rangeLength = useMemo(() => {\n return metaRangeList ? Object.keys(metaRangeList).length : 0;\n }, [metaRangeList]);\n const fetchingStatus = useLiqChartDataStatus(chainId, currentPair?.id);\n const liqSimulation = useAddLiquidationSimulationData(chainId);\n const [rawPrice, setRawPrice] = useState(currentPair?.wrapAttribute('fairPrice'));\n const availableBalance = useAvailableTokenBalance(currentPair?.rootInstrument?.quoteToken?.address, chainId, true);\n const currentPrice = useMemo(\n () => (currentPair ? currentPair.wrapAttribute('fairPrice') : rawPrice),\n [currentPair, rawPrice],\n );\n const currentTick = useMemo(() => {\n if (currentPair) {\n return currentPair.tick;\n }\n if (currentPrice?.wadValue && currentPrice.notEq(0)) {\n try {\n return TickMath.getTickAtPWad(currentPrice.wadValue);\n } catch (error) {}\n }\n return 0;\n }, [currentPair, currentPrice]);\n const alphaWadLowerUpper = useMemo(() => {\n if (addLiqState?.lowerUpperTicks?.length) {\n const [lowerTick, upperTick] = addLiqState.lowerUpperTicks;\n const lowerWad = utils.tickDeltaToAlphaWad(Math.abs(currentTick - lowerTick));\n const upperWad = utils.tickDeltaToAlphaWad(Math.abs(upperTick - currentTick));\n\n return combinedPair?.rootInstrument.isInverse ? [upperWad, lowerWad] : [lowerWad, upperWad];\n }\n }, [addLiqState?.lowerUpperTicks, combinedPair?.rootInstrument.isInverse, currentTick]);\n const range = usePairPriceRange(toWad(EARN_ALPHA_THRESHOLDS.MAX), currentTick, currentPair?.rootInstrument.isInverse);\n const yMinMax = useMemo(() => {\n const liqs = data?.map((d) => d.liqNumber);\n return [(_.min(liqs) || 0) * 0.9, (_.max(liqs) || 100) * 1.05];\n }, [data]);\n const tickMinMax = useMemo(() => {\n const { ticks } = range;\n return ticks;\n }, [range]);\n const dataFiltered = useMemo(\n () =>\n _.filter(data, (d) => {\n const [min, max] = tickMinMax;\n return d.tick <= max && d.tick >= min;\n }),\n [data, tickMinMax],\n );\n /*\n pre-fetch ilchart data\n */\n // useILData(\n // combinedPair && tickMinMax?.length > 1 && !!alphaWadLowerUpper?.length\n // ? {\n // expiry: combinedPair.expiry,\n // instrument: {\n // marketType: combinedPair.rootInstrument.marketType,\n // baseSymbol: combinedPair.rootInstrument.baseToken,\n // quoteSymbol: combinedPair.rootInstrument.quoteToken,\n // },\n // symbol: combinedPair.symbol,\n // alphaWadLower: alphaWadLowerUpper[0],\n // alphaWadUpper: alphaWadLowerUpper[1],\n // isInverse: combinedPair.rootInstrument.isInverse || false,\n // }\n // : undefined,\n // );\n /*\n pre-fetch ilchart data\n */\n const xAxisScale = useMemo(() => d3Scale.scaleLinear().domain(tickMinMax).range([0, 100]).clamp(true), [tickMinMax]);\n const leftRightRatios = useMemo(() => {\n let priceRatio = 50;\n let leftRatio = 50;\n let rightRatio = 50;\n let middleWidth = 0;\n let leftWidth = 0;\n let rightWidth = 0;\n if (currentPrice) {\n priceRatio = xAxisScale(currentTick);\n }\n if (!!addLiqState?.lowerUpperTicks?.length) {\n leftRatio = xAxisScale(addLiqState?.lowerUpperTicks[0]);\n rightRatio = xAxisScale(addLiqState?.lowerUpperTicks[1]);\n middleWidth = WrappedBigNumber.from(rightRatio).min(leftRatio).toNumber();\n leftWidth = WrappedBigNumber.from(priceRatio).min(leftRatio).toNumber();\n rightWidth = WrappedBigNumber.from(rightRatio).min(priceRatio).toNumber();\n }\n return { priceRatio, leftRatio, rightRatio, middleWidth, leftWidth, rightWidth };\n }, [currentPrice, addLiqState?.lowerUpperTicks, xAxisScale, currentTick]);\n\n const priceStyles = useMemo(\n () => ({\n left: leftRightRatios.priceRatio + '%',\n display: fetchingStatus === FETCHING_STATUS.DONE ? 'flex' : 'flex',\n }),\n [fetchingStatus, leftRightRatios.priceRatio],\n );\n const coverStylesLeft = useMemo(\n () => ({\n left: leftRightRatios.leftRatio + '%',\n width: leftRightRatios.leftWidth + '%',\n display: fetchingStatus === FETCHING_STATUS.DONE ? 'flex' : 'flex',\n }),\n [fetchingStatus, leftRightRatios.leftRatio, leftRightRatios.leftWidth],\n );\n const coverStylesRight = useMemo(\n () => ({\n left: leftRightRatios.priceRatio + '%',\n width: leftRightRatios.rightWidth + '%',\n display: fetchingStatus === FETCHING_STATUS.DONE ? 'flex' : 'flex',\n }),\n [fetchingStatus, leftRightRatios.priceRatio, leftRightRatios.rightWidth],\n );\n const updateLowerUpperTick = useCallback(\n (lowerUpperTicks: number[] | undefined) => {\n addLiqState &&\n dispatch(\n setAddLiqFormState({\n ...addLiqState,\n lowerUpperTicks,\n }),\n );\n },\n [addLiqState, dispatch],\n );\n const getRawPrice = useCallback(async () => {\n if (newPair) {\n const rawPrice = await sdkContext?.perp?.observer.getRawSpotPrice({\n baseSymbol: newPair.rootInstrument.baseToken,\n quoteSymbol: newPair.rootInstrument.quoteToken,\n marketType: newPair.rootInstrument.marketType,\n });\n rawPrice && setRawPrice(WrappedBigNumber.from(rawPrice || 0));\n }\n }, [newPair, sdkContext]);\n const checkLowerUpperTicks = useCallback(\n (ticks: number[]) => {\n const minTickDelta =\n currentPair?.rootInstrument.minTickDelta || newPair?.rootInstrument?.minTickDelta || DEFAULT_MIN_TICK_DELTA;\n let [lowerTick, upperTick] = ticks;\n if (lowerTick > currentTick - minTickDelta) {\n lowerTick = currentTick - minTickDelta;\n }\n if (upperTick < currentTick + minTickDelta) {\n upperTick = currentTick + minTickDelta;\n }\n return [lowerTick, upperTick];\n },\n [currentPair?.rootInstrument, currentTick, newPair],\n );\n const { run: simulateAddLiq } = useDebounceFn(\n (ticks: number[]) => {\n const [lowerTick, upperTick] = ticks;\n const alphaWadLower = utils.tickDeltaToAlphaWad(Math.abs(currentTick - lowerTick));\n const alphaWadUpper = utils.tickDeltaToAlphaWad(Math.abs(upperTick - currentTick));\n chainId &&\n combinedPair &&\n dispatch(\n addLiquidityAsymmetricSimulate({\n chainId,\n sdkContext,\n pair: combinedPair,\n alphaWadLower,\n alphaWadUpper,\n margin: WrappedBigNumber.from(addLiqState?.amount || 0),\n slippage: perToTenThousands(Number(slippage)),\n userAddr,\n customStableInstruments: backendChainConfig?.customStableInstruments,\n }),\n );\n },\n { wait: 200 },\n );\n\n useDebounceEffect(\n () => {\n if (polling_chart) clearInterval(polling_chart);\n if (chainId && currentPair && sdkContext) {\n polling_chart = pollingFunc(() => {\n dispatch(\n getPairLiqChartData({\n chainId,\n instrumentAddr: currentPair.rootInstrument.instrumentAddr,\n expiry: currentPair.expiry,\n sdk: sdkContext,\n }),\n );\n }, POLLING_GRAPH);\n }\n\n return () => {\n if (polling_chart) clearInterval(polling_chart);\n };\n },\n // must include rangeLength to renew after addLiq\n [chainId, currentPair?.id, rangeLength],\n { wait: 500 },\n );\n useEffect(() => {\n if (!currentPair) {\n getRawPrice();\n }\n }, [currentPair, getRawPrice, newPair, sdkContext]);\n useEffect(() => {\n if (liqSimulation?.data && !addLiqState?.lowerUpperTicks?.length && currentPrice) {\n updateLowerUpperTick([\n currentTick - liqSimulation.data.tickDeltaLower,\n currentTick + liqSimulation.data.tickDeltaUpper,\n ]);\n }\n // only these three\n }, [liqSimulation?.data, addLiqState?.lowerUpperTicks?.length, currentPrice]);\n useEffect(() => {\n // reset lowerUpperTicks when switch pair\n updateLowerUpperTick([]);\n }, [currentPair?.id, newPair?.id]);\n\n useEffect(() => {\n if (currentPrice && !!addLiqState?.lowerUpperTicks?.length) {\n const ticks = checkLowerUpperTicks(addLiqState.lowerUpperTicks);\n if (ticks) {\n updateLowerUpperTick(ticks);\n simulateAddLiq(ticks);\n }\n }\n //resimulate when currentPrice or balance changes\n }, [currentPrice, availableBalance?.stringValue]);\n\n useEffect(() => {\n if (!addLiqState?.asymmetric && liqSimulation?.data?.tickDeltaLower) {\n const tickDelta = Math.min(liqSimulation?.data?.tickDeltaLower, liqSimulation?.data?.tickDeltaUpper);\n const newTicks = [currentTick - tickDelta, currentTick + tickDelta];\n updateLowerUpperTick(newTicks);\n simulateAddLiq(newTicks);\n }\n // resimulate when uncheck asymmetric\n }, [addLiqState?.asymmetric]);\n\n useDebounceEffect(() => {\n if (!!addLiqState?.lowerUpperTicks?.length) {\n const ticks = checkLowerUpperTicks(addLiqState.lowerUpperTicks);\n if (ticks && WrappedBigNumber.from(addLiqState?.amount || 0).notEq(0)) {\n updateLowerUpperTick(ticks);\n simulateAddLiq(ticks);\n }\n }\n //resimulate when amount changes\n }, [addLiqState?.amount]);\n\n const setElsListener = useCallback(\n (add: boolean, left?: boolean) => {\n if (!asymmetric) {\n const els = document.querySelectorAll('.syn-earn-liq-chart-sliders .ant-slider-handle');\n els.forEach((el) => {\n el.setAttribute('data-active', add ? 'true' : 'false');\n });\n } else {\n const el = left\n ? document.querySelector('.syn-earn-liq-chart-sliders .ant-slider:first-of-type .ant-slider-handle')\n : document.querySelector('.syn-earn-liq-chart-sliders .ant-slider:last-of-type .ant-slider-handle');\n el?.setAttribute('data-active', add ? 'true' : 'false');\n }\n },\n [asymmetric],\n );\n\n if (!liqSimulation?.data || loading || isMockSkeleton) {\n return (\n
\n \n \n
\n );\n }\n return (\n <>\n
\n \n
\n
\n <>{t('common.earn.currentP')}\n \n {newPair && !currentPair\n ? rawPrice?.formatPriceNumberWithTooltip()\n : currentPair?.wrapAttribute('fairPrice').formatPriceNumberWithTooltip()}\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n {' '}\n \n \n
\n {!!addLiqState?.lowerUpperTicks?.length && (\n
\n {\n setElsListener(true, true);\n }}\n onBlur={() => {\n setElsListener(false, true);\n }}\n style={{ width: `${leftRightRatios.priceRatio}%` }}\n onChange={(value) => {\n const [min, max] = tickMinMax;\n let tick1 = xAxisScale.invert(value);\n let tick2 = _.get(addLiqState.lowerUpperTicks, [1]);\n if (!asymmetric) {\n tick2 = currentTick + currentTick - tick1;\n }\n tick1 = Math.max(alignTick(tick1, ORDER_SPACING), min);\n if (tick2) {\n tick2 = Math.min(alignTick(tick2, ORDER_SPACING), max);\n const ticks = checkLowerUpperTicks([tick1, tick2]);\n if (ticks) {\n updateLowerUpperTick(ticks);\n simulateAddLiq(ticks);\n }\n }\n }}\n value={leftRightRatios.leftRatio}\n min={0}\n max={leftRightRatios.priceRatio}\n />\n {\n setElsListener(true);\n }}\n onBlur={() => {\n setElsListener(false);\n }}\n onChange={(value) => {\n const [min, max] = tickMinMax;\n let tick1 = _.get(addLiqState.lowerUpperTicks, [0]);\n let tick2 = xAxisScale.invert(value);\n if (!asymmetric) {\n tick1 = currentTick - (tick2 - currentTick);\n }\n tick2 = Math.min(alignTick(tick2, ORDER_SPACING), max);\n if (tick1) {\n tick1 = Math.max(alignTick(tick1, ORDER_SPACING), min);\n const ticks = checkLowerUpperTicks([tick1, tick2]);\n if (ticks) {\n updateLowerUpperTick(ticks);\n simulateAddLiq(ticks);\n }\n }\n }}\n value={leftRightRatios.rightRatio}\n min={leftRightRatios.priceRatio}\n max={100}\n />\n
\n )}\n\n \n
\n
\n \n );\n};\n\nexport default EarnLiqChart;\n","/**\n * @description Component-PriceRange\n */\nimport Checkbox from '@/components/Checkbox';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { useMockDevTool } from '@/components/Mock';\nimport { Skeleton } from '@/components/Skeleton';\nimport { FETCHING_STATUS } from '@/constants';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { addLiquiditySimulate, setAddLiqFormState } from '@/features/earn/action';\nimport {\n useAddLiquidationSimulation,\n useAddLiquidityFormState,\n useWhiteListFetchingStatus,\n} from '@/features/earn/hook';\nimport { useGlobalConfig } from '@/features/global/hooks';\nimport { useCombinedPairFromUrl, usePairFromUrl } from '@/features/pair/hook';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport EarnLiqChart from '@/pages/earn/EarnChart/EarnLiqChart';\nimport { perToTenThousands } from '@/utils/trade';\nimport { utils } from '@synfutures/sdks-perp';\nimport { useDebounceFn } from 'ahooks';\n\nimport { inputNumChecker } from '@/utils/numberUtil';\nimport { BigNumber } from 'ethers';\nimport { FC, useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PriceRangeAndChart: FC = function ({}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const sdkContext = useSDK(chainId);\n const liqSimulation = useAddLiquidationSimulation(chainId);\n const currentPair = useCombinedPairFromUrl(chainId);\n const currentWrappedPair = usePairFromUrl(chainId);\n const addLiqState = useAddLiquidityFormState(chainId);\n const { isMockSkeleton } = useMockDevTool();\n const { slippage } = useGlobalConfig(chainId);\n const backendChainConfig = useBackendChainConfig(chainId);\n const whitelistFetchStatus = useWhiteListFetchingStatus(chainId, currentPair?.rootInstrument.quoteToken?.address);\n const dispatch = useAppDispatch();\n const currentCreatedPair = useMemo(() => {\n return currentPair instanceof WrappedPair ? currentPair : undefined;\n }, [currentPair]);\n\n const estApy = useMemo(() => {\n if (sdkContext && currentCreatedPair instanceof WrappedPair) {\n try {\n if (liqSimulation?.data?.equivalentAlpha === undefined) {\n return 0;\n }\n const apy =\n utils.estimateAPY(\n currentCreatedPair.rootInstrument,\n currentCreatedPair.expiry,\n WrappedBigNumber.from(currentCreatedPair.stats?.poolFee24h || 0).wadValue,\n liqSimulation?.data?.equivalentAlpha,\n ) ?? 0;\n return inputNumChecker((apy * 100)?.toString() || 0, 1);\n } catch (error) {\n console.log('🚀 ~ file: index.tsx:66 ~ estApy ~ error:', error);\n }\n }\n return 0;\n }, [currentCreatedPair?.stats?.poolFee24h?.stringValue, liqSimulation?.data?.equivalentAlpha?._hex, sdkContext]);\n const priceChanges = useMemo(() => {\n const currentPrice = currentWrappedPair?.wrapAttribute('fairPrice');\n if (liqSimulation?.data && currentPrice) {\n const lowerPriceChange = WrappedBigNumber.from(liqSimulation.data?.lowerPrice)\n .min(currentPrice)\n .div(currentPrice);\n const upperPriceChange = WrappedBigNumber.from(liqSimulation.data?.upperPrice)\n .min(currentPrice)\n .div(currentPrice);\n return {\n lowerPriceChange: lowerPriceChange.gt(-0.01) ? '-1%' : lowerPriceChange.formatPercentageString(true, 0),\n upperPriceChange: upperPriceChange.lt(0.01) ? '1%' : upperPriceChange.formatPercentageString(true, 0),\n };\n }\n return undefined;\n }, [currentWrappedPair, liqSimulation?.data]);\n const updateAsymmetricInState = useCallback(\n (asymmetric: boolean) => {\n addLiqState &&\n dispatch(\n setAddLiqFormState({\n ...addLiqState,\n asymmetric,\n }),\n );\n },\n [addLiqState, dispatch],\n );\n const fetchSimulation = useCallback(\n (alpha?: BigNumber) => {\n if (chainId && currentPair && sdkContext) {\n dispatch(\n addLiquiditySimulate({\n chainId,\n sdkContext,\n pair: currentPair,\n alpha,\n margin: WrappedBigNumber.from(0),\n slippage: perToTenThousands(Number(slippage)),\n userAddr,\n customStableInstruments: backendChainConfig?.customStableInstruments,\n }),\n );\n }\n },\n [backendChainConfig, chainId, currentPair, sdkContext, userAddr, dispatch, slippage],\n );\n const { run: simulateTradeDebounced } = useDebounceFn(\n () => {\n fetchSimulation();\n },\n { wait: 400 },\n );\n useEffect(() => {\n currentPair?.id && chainId && !addLiqState?.lowerUpperTicks?.length && simulateTradeDebounced();\n //must depend on these deps\n }, [currentPair?.id, userAddr]);\n return (\n
\n
\n {t('common.priceR')}\n {\n updateAsymmetricInState(e.target.checked);\n }}>\n {t('common.earn.asymmetric')}\n \n
\n {!liqSimulation?.data || whitelistFetchStatus !== FETCHING_STATUS.DONE || isMockSkeleton ? (\n
\n
\n \n
\n \n
\n
\n \n
\n ) : (\n
\n
\n
\n
\n {' '}\n \n {WrappedBigNumber.from(liqSimulation?.data?.lowerPrice || 0).formatPriceNumberWithTooltip()}\n \n
\n
\n {priceChanges?.lowerPriceChange}\n
\n
\n -\n
\n
\n \n {WrappedBigNumber.from(liqSimulation?.data?.upperPrice || 0).formatPriceNumberWithTooltip()}\n \n
\n
\n {priceChanges?.upperPriceChange}\n
\n
\n
\n
\n
\n
\n {' '}\n {`${estApy}%`}\n
\n
{t('common.earn.estApy')}
\n
\n
\n )}\n
\n \n
\n
\n );\n};\n\nexport default PriceRangeAndChart;\n","/**\n * @description Component-AddLiqForm\n */\nimport './index.less';\n\nimport { useDebounceEffect } from 'ahooks';\nimport classNames from 'classnames';\nimport { FC, useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport FormInput from '@/components/FormInput';\nimport { AvailableBalance } from '@/components/ToolTip/AvailableBalanceToolTip';\nimport { DEFAULT_DECIMAL_PLACES, FETCHING_STATUS } from '@/constants';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { EARN_ALPHA_THRESHOLDS } from '@/constants/global';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useDisplayBalance } from '@/features/balance/hook';\nimport { setAddLiqFormState, setEarnFormType } from '@/features/earn/action';\nimport {\n useAddLiquidationSimulation,\n useAddLiquidityFormState,\n useAddLiquidityFormStateStatus,\n} from '@/features/earn/hook';\nimport { useCombinedPairFromUrl } from '@/features/pair/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n\nimport { Mobile, useMediaQueryDevice } from '@/components/MediaQuery';\nimport FloatingInput from '@/pages/components/FloatingInput';\nimport EarnFormFooter from '../../EarnFormFooter';\nimport AddLiqFormDetail from '../AddLiqFormDetail';\nimport EarnFormAlert from '../EarnFormAlert';\nimport PriceRangeAndChart from './PriceRangeAndChart';\ninterface IPropTypes {\n className?: string;\n}\nconst AddLiqForm: FC = function ({}) {\n const chainId = useChainId();\n const currentPair = useCombinedPairFromUrl(chainId);\n const userAddr = useUserAddr();\n const { t } = useTranslation();\n const { isMobile, deviceType } = useMediaQueryDevice();\n const addLiqState = useAddLiquidityFormState(chainId);\n const addLiqStatus = useAddLiquidityFormStateStatus(chainId);\n const dispatch = useAppDispatch();\n const simulation = useAddLiquidationSimulation(chainId);\n const currentImr = useMemo(() => {\n if (currentPair instanceof WrappedPair) {\n return currentPair.rootInstrument.setting.initialMarginRatio;\n }\n return EARN_ALPHA_THRESHOLDS.DEFAULT_IMR;\n }, [currentPair]);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const displaceBalance = useDisplayBalance(\n currentPosition,\n true,\n chainId,\n currentPair?.rootInstrument.quoteToken.address,\n );\n const inputAmountStrChanged = useCallback(\n (inputAmountStr: string) => {\n inputAmountStr &&\n gtag('event', 'enter_liquidity_size', {\n enter_action: 'enter',\n });\n addLiqState &&\n dispatch(\n setAddLiqFormState({\n ...addLiqState,\n amount: inputAmountStr,\n }),\n );\n },\n [dispatch, addLiqState],\n );\n\n const onClickMax = useCallback(\n (balance: WrappedBigNumber) => {\n inputAmountStrChanged(balance.stringValue);\n },\n [inputAmountStrChanged],\n );\n\n const onNativeTokenDepositClick = useCallback(() => {\n chainId &&\n dispatch(\n setEarnFormType({\n chainId,\n formType: EARN_TYPE.DEPOSIT_NATIVE,\n }),\n );\n }, [chainId, dispatch]);\n useDebounceEffect(() => {\n document.getElementById('earnAmount')?.focus();\n }, []);\n\n return (\n
\n \n
\n {!isMobile &&
{t('common.formInput.placeHolder')}
}\n {isMobile ? (\n {\n if (displaceBalance.lte(val)) {\n inputAmountStrChanged(displaceBalance.stringValue);\n } else {\n inputAmountStrChanged(val);\n }\n }}\n decimals={\n currentPair instanceof WrappedPair\n ? currentPair?.rootInstrument.marginToken.decimals\n : DEFAULT_DECIMAL_PLACES\n }\n suffix={currentPair?.rootInstrument.quoteToken?.symbol}\n value={addLiqState?.amount || ''}\n disabled={addLiqStatus === FETCHING_STATUS.FETCHING}\n />\n ) : (\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n step: 1e18,\n }}\n max={displaceBalance.stringValue}\n disabled={addLiqStatus === FETCHING_STATUS.FETCHING}\n className=\"syn-add-liq-form-content-input\"\n inputAmountStr={addLiqState?.amount || ''}\n inputAmountStrChanged={inputAmountStrChanged}\n suffix={currentPair?.rootInstrument.quoteToken?.symbol}\n />\n )}\n {!isMobile && (\n <>\n \n \n )}\n
\n\n \n \n \n {isMobile && (\n <>\n {\n onClickMax(balance);\n }}\n onNativeTokenDepositClick={onNativeTokenDepositClick}\n />\n \n \n )}\n {WrappedBigNumber.from(addLiqState?.amount || 0).notEq(0) && !isMobile && (\n <>\n {\n <>\n \n {\n onClickMax(balance);\n }}\n onNativeTokenDepositClick={onNativeTokenDepositClick}\n />\n \n }\n \n )}\n
\n );\n};\n\nexport default AddLiqForm;\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport _ from 'lodash';\n\nimport { TokenInfo } from '@/types/token';\nimport { bigNumberObjectCheck } from '@/utils';\n\nimport { IVaultInfo, IVaultTag } from '@/types/vault';\nimport { fixBalanceNumberDecimalsTo18 } from '@/utils/token';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport { DepositInfo } from '@synfutures/sdks-perp-launchpad-datasource';\nimport { constants } from 'ethers';\nimport { WrappedBigNumber } from './WrappedBigNumber';\nimport { WrappedToken } from './WrappedToken';\n\nexport class WrappedVault implements IVaultInfo {\n static instances: { [chainId: number]: { [vaultAddr: string]: WrappedVault } } = {}; // chainId -> vaultAddr -> WrappedVault\n quoteToken: WrappedToken;\n //metaVault: WrappedVaultInfo;\n vaultAddress: string;\n name: string;\n status: Stage;\n minQuoteAmount: WrappedBigNumber;\n liveThreshold: WrappedBigNumber;\n tokenInfo: TokenInfo;\n assetPair: string;\n assetPairLink: string;\n tokenTvl: WrappedBigNumber;\n tokenUsdTvl: WrappedBigNumber;\n ooPoints: WrappedBigNumber;\n ooPointsEpoch: number;\n stageForUi: Stage;\n\n tags: IVaultTag[];\n\n depositInfo: { [userAddr: string]: DepositInfo | undefined };\n\n _userAddr?: string;\n constructor(chainId: CHAIN_ID, vaultInfo: IVaultInfo) {\n this.quoteToken = new WrappedToken(vaultInfo.tokenInfo);\n this.vaultAddress = vaultInfo.vaultAddress;\n this.name = vaultInfo.name;\n this.status = vaultInfo.status;\n this.liveThreshold = vaultInfo.liveThreshold;\n this.minQuoteAmount = vaultInfo.minQuoteAmount;\n this.stageForUi = vaultInfo.stageForUi;\n this.tokenInfo = vaultInfo.tokenInfo;\n this.assetPair = vaultInfo.assetPair;\n this.assetPairLink = vaultInfo.assetPairLink;\n this.tokenTvl = WrappedBigNumber.from(vaultInfo.tokenTvl);\n this.tokenUsdTvl = WrappedBigNumber.from(vaultInfo.tokenUsdTvl);\n this.ooPoints = WrappedBigNumber.from(vaultInfo.ooPoints);\n this.ooPointsEpoch = vaultInfo.ooPointsEpoch;\n this.tags = vaultInfo.tags;\n\n this.depositInfo = {};\n }\n\n setMetaVault(props: IVaultInfo) {\n this.vaultAddress = props.vaultAddress;\n this.name = props.name;\n this.status = props.status;\n this.stageForUi = props.stageForUi;\n\n this.tokenInfo = props.tokenInfo;\n this.assetPair = props.assetPair;\n this.assetPairLink = props.assetPairLink;\n this.tokenTvl = props.tokenTvl;\n this.tokenUsdTvl = props.tokenUsdTvl;\n this.ooPoints = props.ooPoints;\n this.ooPointsEpoch = props.ooPointsEpoch;\n\n this.liveThreshold = props.liveThreshold;\n this.minQuoteAmount = props.minQuoteAmount;\n this.stageForUi = props.stageForUi;\n }\n static getInstance(vaultAddr: string | undefined, chainId: CHAIN_ID | undefined): WrappedVault | undefined {\n return vaultAddr && chainId ? _.get(WrappedVault.instances, [chainId, vaultAddr]) : undefined;\n }\n\n static wrapInstance({\n metaVault,\n chainId,\n depositInfo,\n }: {\n metaVault: IVaultInfo;\n chainId: CHAIN_ID;\n depositInfo?: DepositInfo;\n }): WrappedVault {\n let vault = WrappedVault.getInstance(metaVault.vaultAddress, chainId);\n if (vault) {\n // quote.fillField(bigNumberObjectCheck(metaToken));\n vault.setDepositInfo(depositInfo);\n } else {\n vault = new WrappedVault(chainId, bigNumberObjectCheck(metaVault));\n vault.setDepositInfo(depositInfo);\n _.set(WrappedVault.instances, [chainId, metaVault.vaultAddress], vault);\n }\n // vault.ooPoints = ooPointsInfo?.distributedVaultPoints || 0;\n // vault.epoch = ooPointsInfo?.epoch;\n\n return vault;\n }\n static getInstanceMap(chainId: CHAIN_ID | undefined): { [quoteId: string]: WrappedVault } | undefined {\n return chainId ? _.get(WrappedVault.instances, [chainId], undefined) : undefined;\n }\n setDepositInfo(info: DepositInfo | undefined) {\n info && _.set(this.depositInfo, [info?.user], info);\n }\n // if current tvl > target tvl stage will be live no matter smart contract is incoming or live.\n\n get tvlUSD(): WrappedBigNumber {\n return this.tokenUsdTvl;\n }\n\n get tvl(): WrappedBigNumber {\n return this.tokenTvl;\n }\n get targetTvl(): WrappedBigNumber {\n return this.liveThreshold;\n }\n get targetTvlUSD(): WrappedBigNumber {\n return this.liveThreshold.mul(this.quoteToken.price || '');\n }\n\n getUserDepositUSD(userAddr: string | undefined): WrappedBigNumber {\n return userAddr\n ? WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(\n this.depositInfo[userAddr]?.holdingValue || constants.Zero,\n this.quoteToken.decimals,\n ),\n ).mul(this.quoteToken.price || '')\n : WrappedBigNumber.ZERO;\n }\n\n getUserDeposit(userAddr?: string | undefined): WrappedBigNumber {\n userAddr = this._userAddr;\n return userAddr\n ? WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(\n this.depositInfo[userAddr]?.holdingValue || constants.Zero,\n this.quoteToken.decimals,\n ),\n )\n : WrappedBigNumber.ZERO;\n }\n\n get userDeposit(): WrappedBigNumber {\n return this._userAddr\n ? WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(\n this.depositInfo[this._userAddr]?.holdingValue || constants.Zero,\n this.quoteToken.decimals,\n ),\n )\n : WrappedBigNumber.ZERO;\n }\n\n get userDepositUSD(): WrappedBigNumber {\n return this._userAddr ? this.userDeposit.mul(this.quoteToken.price || '') : WrappedBigNumber.ZERO;\n }\n\n getUserAllTimeEarned(userAddr?: string | undefined): WrappedBigNumber {\n return userAddr\n ? WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(\n this.depositInfo[userAddr]?.allTimeEarned || constants.Zero,\n this.quoteToken.decimals,\n ),\n )\n : WrappedBigNumber.ZERO;\n }\n\n getUserAllTimeEarnedUSD(userAddr?: string | undefined): WrappedBigNumber {\n return this.getUserAllTimeEarned(userAddr).mul(this.quoteToken.price || 0);\n }\n\n getLaunchProgressPercentage(): WrappedBigNumber {\n return WrappedBigNumber.from(this.tokenTvl).div(WrappedBigNumber.from(this.liveThreshold));\n }\n\n setUserAddr(userAddr: string) {\n this._userAddr = userAddr;\n }\n\n toJSON(): {\n quoteToken: TokenInfo & {\n price?: WrappedBigNumber;\n };\n vaultAddress: string;\n } & IVaultInfo {\n return {\n quoteToken: this.quoteToken.toJSON(),\n vaultAddress: this.vaultAddress,\n name: this.name,\n status: this.status,\n minQuoteAmount: this.minQuoteAmount,\n liveThreshold: this.liveThreshold,\n tokenInfo: this.tokenInfo,\n assetPair: this.assetPair,\n assetPairLink: this.assetPairLink,\n tokenTvl: this.tokenTvl,\n tokenUsdTvl: this.tokenUsdTvl,\n ooPoints: this.ooPoints,\n ooPointsEpoch: this.ooPointsEpoch,\n stageForUi: this.stageForUi,\n tags: this.tags,\n };\n }\n\n toString(): string {\n return JSON.stringify(this.toJSON());\n }\n}\n","import { JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers';\n\nimport { OPERATION_TX_TYPE, ZERO } from '@/constants';\nimport { CHAIN_ID } from '@/constants/chain';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { TokenInfo } from '@/types/token';\nimport { parseSendingTxMessageMapping } from '@/utils/notification';\nimport { fixBalanceNumberDecimalsTo18, isNativeTokenAddr } from '@/utils/token';\nimport { BlockInfo, Context, TokenInfo as Token } from '@derivation-tech/context';\nimport { createAsyncThunk } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { NATIVE_TOKEN_ADDRESS } from '@synfutures/sdks-perp';\nimport { ContractReceipt } from 'ethers';\n\nimport { IVaultTokenHoldingValue, WrappedArrear } from '@/types/vault';\nimport { utils as vaultUtils } from '@synfutures/sdks-perp-launchpad';\nimport { DepositInfo, DepositWithdraw } from '@synfutures/sdks-perp-launchpad-datasource';\nimport { fetchTokenBalanceAction } from '../balance/actions';\nimport { sendTransaction } from '../transaction/actions';\nimport { checkTokenAllowance } from '../user/actions';\n\nexport const fetchUserDepositInfo = createAsyncThunk(\n 'vault/fetchUserDepositInfo',\n async ({\n userAddr,\n sdk,\n }: {\n chainId: number;\n userAddr: string;\n sdk: Context;\n }): Promise<{ userDepositInfo: Record; blockInfo: BlockInfo } | undefined> => {\n try {\n if (sdk) {\n const { depositInfos, blockInfo } = await sdk.perpLaunchpadDataSource.getUserDepositInfo(userAddr);\n depositInfos.forEach((info) => {\n info.holdingValue = ZERO;\n info.entryValue = ZERO;\n info.share = ZERO;\n });\n return {\n userDepositInfo: _.keyBy(depositInfos, 'vault'),\n blockInfo,\n };\n }\n return undefined;\n } catch (e) {\n console.log('🚀 ~fetchUserDepositInfo e:', e);\n return undefined;\n }\n },\n);\n\nexport const depositToVault = createAsyncThunk(\n 'vault/depositToVault',\n async (\n {\n signer,\n provider,\n quote,\n amount,\n chainId,\n userAddr,\n isDisableNotification,\n vaultAddr,\n sdk,\n }: {\n signer: JsonRpcSigner;\n provider?: JsonRpcProvider;\n quote: TokenInfo;\n userAddr: string;\n amount: WrappedBigNumber;\n chainId: CHAIN_ID;\n isDisableNotification?: boolean;\n vaultAddr: string;\n sdk: Context;\n },\n { dispatch },\n ): Promise => {\n try {\n const txType = OPERATION_TX_TYPE.VAULT_DEPOSIT;\n const isNativeToken = isNativeTokenAddr(quote.address);\n const receipt = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record('tx', `Try to send [${txType}] operation tx for quote [${quote.symbol}]`, undefined, {\n chainId,\n userAddr,\n signer,\n quote,\n amount: amount,\n quoteSymbol: quote.symbol,\n to: userAddr,\n isNative: isNativeToken,\n nativeTokenAddr: NATIVE_TOKEN_ADDRESS,\n });\n const populatedTx = await sdk.perpLaunchpad.deposit(vaultAddr, isNativeToken, amount.wadValue, {\n from: userAddr,\n });\n return signer.sendTransaction(populatedTx);\n },\n chainId,\n userAddr,\n txParams: {\n isDisableNotification,\n type: txType,\n instrument: {\n quoteSymbol: quote.symbol,\n baseSymbol: '',\n isInverse: false,\n quoteDecimal: quote.decimals,\n },\n sendingTemplate: parseSendingTxMessageMapping[txType]!(WrappedBigNumber.from(amount), quote.symbol),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (receipt?.status === 1) {\n const block = receipt.blockNumber;\n // fetch token allowance\n dispatch(\n checkTokenAllowance({\n userAddress: userAddr,\n chainId,\n marginToken: quote,\n spenderAddress: vaultAddr.toLowerCase(),\n sdk,\n }),\n );\n // fetch token balance\n\n dispatch(fetchTokenBalanceAction({ chainId, userAddr: userAddr, token: quote, block }));\n dispatch(\n fetchVaultTokenHoldingValue({\n chainId,\n userAddr,\n vaultAddrs: [vaultAddr],\n blockNumber: receipt.blockNumber,\n sdk,\n }),\n );\n }\n return receipt;\n } catch (error) {\n console.error('🚀 ~ depositToVault error:', error);\n }\n },\n);\n\nexport const withdrawFromVault = createAsyncThunk(\n 'vault/withdrawFromVault',\n async (\n {\n signer,\n provider,\n quote,\n amount,\n chainId,\n userAddr,\n arrearRequired,\n blockInfo,\n vaultAddr,\n sdk,\n }: {\n signer: JsonRpcSigner;\n provider?: JsonRpcProvider;\n quote: TokenInfo;\n userAddr: string;\n amount: WrappedBigNumber;\n chainId: CHAIN_ID;\n arrearRequired?: boolean;\n vaultAddr: string;\n blockInfo?: BlockInfo;\n sdk: Context;\n },\n { dispatch },\n ): Promise => {\n const txType = OPERATION_TX_TYPE.VAULT_WITHDRAW;\n const isNativeToken = isNativeTokenAddr(quote.address);\n const receipt = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n console.record('tx', `Try to send [${txType}] operation tx for quote [${quote.symbol}]`, undefined, {\n chainId,\n userAddr,\n signer,\n quote,\n amount: amount,\n quoteSymbol: quote.symbol,\n to: userAddr,\n isNative: isNativeToken,\n nativeTokenAddr: NATIVE_TOKEN_ADDRESS,\n });\n\n const populatedTx = await sdk.perpLaunchpad.withdrawQuote(vaultAddr, isNativeToken, amount.wadValue, {\n blockTag: blockInfo?.height,\n from: userAddr,\n });\n return signer.sendTransaction(populatedTx);\n },\n chainId,\n userAddr,\n txParams: {\n isDisableNotification: arrearRequired,\n type: txType,\n instrument: {\n quoteSymbol: quote.symbol,\n baseSymbol: '',\n isInverse: false,\n quoteDecimal: quote.decimals,\n },\n sendingTemplate: parseSendingTxMessageMapping[txType]!(WrappedBigNumber.from(amount), quote.symbol),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (receipt?.status === 1) {\n const block = receipt.blockNumber;\n\n // fetch token balance\n dispatch(fetchTokenBalanceAction({ chainId, userAddr: userAddr, token: quote, block }));\n dispatch(\n fetchVaultTokenHoldingValue({\n chainId,\n userAddr,\n vaultAddrs: [vaultAddr],\n blockNumber: receipt.blockNumber,\n sdk,\n }),\n );\n if (arrearRequired) {\n dispatch(\n getUserPendingWithdraw({\n chainId,\n userAddr,\n vaultAddr: vaultAddr,\n sdk,\n quoteToken: quote,\n }),\n );\n }\n }\n return receipt;\n },\n);\n\n// export const claimWithdrawFromVault = createAsyncThunk(\n// 'vault/claimWithdrawFromVault',\n// async (\n// {\n// chainId,\n// userAddr,\n// signer,\n// vaultClient,\n// provider,\n// quote,\n// amount,\n// vaultAddr,\n// }: {\n// chainId: CHAIN_ID;\n// userAddr: string;\n// vaultClient: VaultClient;\n// signer: JsonRpcSigner;\n// provider: JsonRpcProvider;\n// quote: TokenInfo;\n// amount: WrappedBigNumber;\n// vaultAddr: string;\n// },\n// { dispatch },\n// ): Promise => {\n// const txType = OPERATION_TX_TYPE.CLAIM_WITHDRAW;\n// const receipt = await dispatch(\n// sendTransaction({\n// sendFunc: async () => {\n// console.record('tx', `Try to send [${txType}] operation tx for quote [${quote.symbol}]`, undefined, {\n// chainId,\n// userAddr,\n// signer,\n// quote,\n// amount: amount,\n// quoteSymbol: quote.symbol,\n// to: userAddr,\n// });\n// //return await vaultClient.claimArrear(signer);\n// },\n// chainId,\n// userAddr,\n// txParams: {\n// isDisableNotification: true,\n// type: txType,\n// instrument: {\n// quoteSymbol: quote.symbol,\n// baseSymbol: '',\n// isInverse: false,\n// quoteDecimal: quote.decimals,\n// },\n// sendingTemplate: parseSendingTxMessageMapping[txType]!(WrappedBigNumber.from(amount), quote.symbol),\n// },\n// wssProvider: provider,\n// }),\n// ).unwrap();\n// console.log('claimWithdrawFromVault result:', receipt);\n// if (receipt?.status === 1) {\n// const block = receipt.blockNumber;\n// await sleep(3000);\n// dispatch(fetchTokenBalanceAction({ chainId, userAddr: userAddr, token: quote, block }));\n// dispatch(\n// fetchVaults({\n// chainId,\n// }),\n// );\n// dispatch(\n// fetchUserDepositInfo({\n// chainId,\n// userAddr,\n// }),\n// );\n// if (chainId && userAddr && vaultAddr) {\n// dispatch(\n// getUserPendingWithdraw({\n// chainId,\n// userAddr,\n// vaultAddr,\n// vaultClient,\n// }),\n// );\n// }\n// }\n// return receipt;\n// },\n// );\n\nexport const getUserPendingWithdraw = createAsyncThunk(\n 'vault/getUserPendingWithdraw',\n async ({\n userAddr,\n vaultAddr,\n sdk,\n quoteToken,\n }: {\n chainId: number;\n userAddr: string;\n vaultAddr: string;\n sdk: Context;\n quoteToken: Token;\n }): Promise => {\n try {\n if (sdk) {\n const arrear = await sdk.perpLaunchpadDataSource.getArrear(userAddr, vaultAddr);\n const { netValue, commissionFee } = await sdk.perpLaunchpad.getOwedQuote(vaultAddr, userAddr);\n return { ...arrear, quantity: fixBalanceNumberDecimalsTo18(netValue, quoteToken.decimals), commissionFee };\n }\n } catch (error) {\n console.error('🚀 ~getUserPendingWithdraw error:', error, { params: { vaultAddr, userAddr } });\n }\n },\n);\n\nexport const fetchVaultHistory = createAsyncThunk(\n 'vault/fetchVaultHistory',\n async ({ userAddr, sdk }: { chainId: number; userAddr: string; sdk: Context }): Promise => {\n try {\n if (sdk) {\n const history = await sdk.perpLaunchpadDataSource.getUserDepositWithdrawHistory(userAddr);\n return history;\n }\n return [];\n } catch (e) {\n console.log('🚀 ~fetchVaultHistory e:', e);\n return [];\n }\n },\n);\n\nexport const fetchVaultTokenHoldingValue = createAsyncThunk(\n 'vault/fetchVaultTokenHoldingValue',\n async ({\n userAddr,\n vaultAddrs,\n blockNumber,\n sdk,\n }: {\n chainId: number;\n userAddr: string;\n vaultAddrs: string[];\n blockNumber?: number;\n sdk: Context;\n }): Promise<\n | {\n deposits: Record;\n blockHeight: number;\n }\n | undefined\n > => {\n try {\n if (sdk && vaultAddrs) {\n const res = await vaultUtils.getUserDepositInfo(userAddr, vaultAddrs, sdk, { blockTag: blockNumber });\n if (res.depositInfos) {\n const deposits = _.reduce(\n res.depositInfos,\n (acc, depositInfo) => {\n acc[depositInfo.vault] = {\n user: userAddr,\n vault: depositInfo.vault,\n share: depositInfo.share,\n entryValue: depositInfo.entryValue,\n holdingValue: depositInfo.holdingValue,\n };\n return acc;\n },\n {} as Record,\n );\n return { deposits, blockHeight: res.blockHeight };\n }\n }\n } catch (e) {\n console.log('🚀 ~fetchVaultTokenHoldingValue e:', e);\n }\n },\n);\n","import { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { IVaultInfo, IVaultStats } from '@/types/vault';\nimport { axiosGet } from '@/utils/axios';\nimport { getTokenInfo } from '@/utils/token';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport _ from 'lodash';\n\nexport const fetchVaultInfos = async ({\n chainId,\n userAddr,\n}: {\n chainId: number;\n userAddr: string | undefined;\n}): Promise | undefined> => {\n const res = await axiosGet({\n url: `https://api.synfutures.com/v3/public/vault`,\n config: {\n params: userAddr\n ? {\n chainId,\n address: userAddr,\n }\n : {\n chainId,\n },\n },\n });\n\n const data = res?.data?.data?.map((v: IVaultInfo) => ({\n ...v,\n vaultAddr: v.vaultAddress,\n tokenInfo: getTokenInfo(v.tokenInfo, chainId),\n minQuoteAmount: WrappedBigNumber.from(v.minQuoteAmount),\n liveThreshold: WrappedBigNumber.from(v.liveThreshold),\n tokenTvl: WrappedBigNumber.from(v.tokenTvl),\n tokenUsdTvl: WrappedBigNumber.from(v.tokenUsdTvl),\n ooPoints: WrappedBigNumber.from(v.ooPoints),\n stageForUi:\n WrappedBigNumber.from(v.tokenTvl).gte(v.liveThreshold) && v.status === Stage.UPCOMING ? Stage.LIVE : v.status,\n }));\n // ?.filter((v: IVaultInfo) => v.status !== Stage.INVALID && v.status !== Stage.SUSPENDED)\n return _.keyBy(data, 'vaultAddress');\n};\n\nexport const fetchVaultSummary = async ({ chainId }: { chainId: number }): Promise => {\n const res = await axiosGet({\n url: `https://api.synfutures.com/v3/public/vault/summary`,\n config: {\n params: {\n chainid: chainId,\n },\n },\n });\n\n if (res?.data?.data) {\n return {\n ...res.data.data,\n totalTvlUsd: WrappedBigNumber.from(res.data.data.totalTvlUsd),\n totalVolumeUsd: WrappedBigNumber.from(res.data.data.totalVolumeUsd),\n allTimeEarnedUsd: WrappedBigNumber.from(res.data.data.allTimeEarnedUsd),\n count: WrappedBigNumber.from(res.data.data.count),\n };\n }\n};\n","import { QUERY_KEYS } from '@/constants/query';\nimport { useQuery } from '@tanstack/react-query';\nimport { fetchVaultInfos, fetchVaultSummary } from './api';\n\nexport const useFetchVaultInfos = (chainId: number | undefined, userAddr: string | undefined) => {\n return useQuery({\n queryKey: QUERY_KEYS.VAULT.INFOS(chainId, userAddr),\n queryFn: async () => {\n if (chainId) return fetchVaultInfos({ chainId, userAddr });\n },\n enabled: !!chainId,\n });\n};\n\nexport const useFetchVaultSummary = (chainId: number | undefined) => {\n return useQuery({\n queryKey: QUERY_KEYS.VAULT.SUMMARY(chainId),\n queryFn: async () => {\n if (chainId) return fetchVaultSummary({ chainId });\n },\n enabled: !!chainId,\n });\n};\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { ITokenBalanceInfoMap } from '@/types/balance';\nimport {\n getDefaultItemStatus,\n getDefaultListArrayStatus,\n getDefaultListStatus,\n ItemStatus,\n ListStatus as ListArrayStatus,\n ListStatus,\n setFulfilledListArrayStatus,\n setFulfilledListStatus,\n} from '@/types/redux';\nimport { IVaultPointsDistribution, IVaultTokenHoldingValue, WrappedArrear } from '@/types/vault';\nimport { BlockInfo } from '@derivation-tech/context';\nimport { DepositInfo, DepositWithdraw } from '@synfutures/sdks-perp-launchpad-datasource';\nimport { AppState } from '../store';\nimport {\n depositToVault,\n fetchUserDepositInfo,\n fetchVaultHistory,\n fetchVaultTokenHoldingValue,\n getUserPendingWithdraw,\n withdrawFromVault,\n} from './action';\nexport interface IVaultState {\n chainUserDepositInfoBlockInfo: {\n [chainId: number]: { [userAddr: string]: BlockInfo | undefined };\n };\n chainUserDepositInfo: {\n [chainId: number]: { [userAddr: string]: ListStatus };\n };\n chainUserVaultPoints: {\n [chainId: number]: { [userAddr: string]: ListStatus };\n };\n chainVaultPoints: {\n [chainId: number]: ItemStatus;\n };\n\n selectedVaultAddress: string | null;\n chainBalanceMap: {\n [chainId: number]: {\n [userAddr: string]: ITokenBalanceInfoMap;\n };\n };\n chainClaimStatus: {\n [chainId: number]: {\n [userAddr: string]: {\n [vaultAddr: string]: FETCHING_STATUS;\n };\n };\n };\n input: {\n depositAmount: string;\n withdrawAmount: string;\n };\n chainPendingWithdraw: {\n [chainId: number]: {\n [userAddr: string]: {\n [vaultAddr: string]: ItemStatus;\n };\n };\n };\n chainUserVaultHistory: {\n [chainId: number]: {\n [userAddr: string]: {\n [vaultAddr: string]: ListArrayStatus;\n };\n };\n };\n chainUserVaultTokenHoldingValue: {\n [chainId: number]: {\n [userAddr: string]: {\n deposits: ListStatus;\n blockHeight: number;\n };\n };\n };\n}\n\nconst initialState: IVaultState = {\n chainUserDepositInfoBlockInfo: {},\n\n chainUserDepositInfo: {},\n chainUserVaultPoints: {},\n chainVaultPoints: {},\n selectedVaultAddress: null,\n chainBalanceMap: {},\n chainClaimStatus: {},\n input: {\n depositAmount: '',\n withdrawAmount: '',\n },\n chainPendingWithdraw: {},\n chainUserVaultHistory: {},\n chainUserVaultTokenHoldingValue: {},\n};\n\nexport const vaultSlice = createSlice({\n name: 'earn',\n initialState,\n reducers: {\n setDepositAmount: (state, action: PayloadAction) => {\n state.input.depositAmount = action.payload;\n },\n setWithdrawAmount: (state, action: PayloadAction) => {\n state.input.withdrawAmount = action.payload;\n },\n setSelectedVaultAddress: (state, action: PayloadAction) => {\n state.selectedVaultAddress = action.payload;\n },\n },\n extraReducers: (builder) => {\n builder\n .addCase(fetchUserDepositInfo.pending, (state, { meta }) => {\n const curData = _.get(\n state.chainUserDepositInfo,\n [meta.arg.chainId, meta.arg.userAddr],\n getDefaultListArrayStatus(),\n );\n _.set(state.chainUserDepositInfo, [meta.arg.chainId, meta.arg.userAddr], curData);\n })\n .addCase(fetchUserDepositInfo.fulfilled, (state, { meta, payload }) => {\n _.set(\n state.chainUserDepositInfo,\n [meta.arg.chainId, meta.arg.userAddr],\n setFulfilledListStatus(payload?.userDepositInfo || {}),\n );\n // _.set(state.chainUserDepositInfoBlockInfo, [meta.arg.chainId, meta.arg.userAddr], payload?.blockInfo);\n });\n builder\n .addCase(depositToVault.pending, (state, { meta }) => {\n const { chainId } = meta.arg;\n console.log('🚀 ~ .addCase ~ chainId:', chainId);\n // TODO: update form status\n // _.set(state.chainGateAccountState, [chainId, 'isOperating'], true);\n })\n .addCase(depositToVault.fulfilled, (state, { meta }) => {\n const { chainId } = meta.arg;\n console.log('🚀 ~ .addCase ~ chainId:', chainId);\n // TODO: update form status\n // _.set(state.chainGateAccountState, [chainId], {\n // isOperating: false,\n // depositAmountStr: '',\n // });\n })\n .addCase(depositToVault.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n console.log('🚀 ~ .addCase ~ chainId:', chainId);\n // TODO: update form status\n // _.set(state.chainGateAccountState, [chainId, 'isOperating'], false);\n });\n builder\n .addCase(withdrawFromVault.pending, (state, { meta }) => {\n const { chainId } = meta.arg;\n console.log('🚀 ~ .addCase ~ chainId:', chainId);\n // TODO: update form status\n // _.set(state.chainGateAccountState, [chainId, 'isOperating'], true);\n })\n .addCase(withdrawFromVault.fulfilled, (state, { meta }) => {\n const { chainId } = meta.arg;\n console.log('🚀 ~ .addCase ~ chainId:', chainId);\n // TODO: update form status\n // _.set(state.chainGateAccountState, [chainId], {\n // isOperating: false,\n // depositAmountStr: '',\n // });\n })\n .addCase(withdrawFromVault.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n console.log('🚀 ~ .addCase ~ chainId:', chainId);\n // TODO: update form status\n // _.set(state.chainGateAccountState, [chainId, 'isOperating'], false);\n });\n // builder\n // .addCase(claimWithdrawFromVault.pending, (state, { meta }) => {\n // const { chainId, vaultAddr } = meta.arg;\n // _.set(state.chainClaimStatus, [chainId, meta.arg.userAddr, vaultAddr], FETCHING_STATUS.FETCHING);\n // })\n // .addCase(claimWithdrawFromVault.fulfilled, (state, { meta }) => {\n // const { chainId, vaultAddr } = meta.arg;\n // _.set(state.chainClaimStatus, [chainId, meta.arg.userAddr, vaultAddr], FETCHING_STATUS.DONE);\n // })\n // .addCase(claimWithdrawFromVault.rejected, (state, { meta }) => {\n // const { chainId, vaultAddr } = meta.arg;\n // _.set(state.chainClaimStatus, [chainId, meta.arg.userAddr, vaultAddr], FETCHING_STATUS.INIT);\n // });\n // pending withdraw\n builder\n .addCase(getUserPendingWithdraw.pending, (state, { meta }) => {\n const { chainId, userAddr, vaultAddr } = meta.arg;\n const pendingWithdraw = _.get(state.chainPendingWithdraw, [chainId, userAddr, vaultAddr]);\n if (!pendingWithdraw)\n _.set(\n state.chainPendingWithdraw,\n [chainId, userAddr, vaultAddr],\n getDefaultItemStatus(FETCHING_STATUS.FETCHING),\n );\n else _.set(state.chainPendingWithdraw, [chainId, userAddr, vaultAddr, 'status'], FETCHING_STATUS.FETCHING);\n })\n .addCase(getUserPendingWithdraw.fulfilled, (state, { meta, payload }) => {\n const { chainId, userAddr, vaultAddr } = meta.arg;\n if (payload) {\n _.set(state.chainPendingWithdraw, [chainId, userAddr, vaultAddr, 'item'], payload);\n }\n _.set(state.chainPendingWithdraw, [chainId, userAddr, vaultAddr, 'status'], FETCHING_STATUS.DONE);\n })\n .addCase(getUserPendingWithdraw.rejected, (state, { meta }) => {\n const { chainId, userAddr, vaultAddr } = meta.arg;\n _.set(state.chainPendingWithdraw, [chainId, userAddr, vaultAddr, 'status'], FETCHING_STATUS.DONE);\n });\n builder\n .addCase(fetchVaultHistory.pending, (state, { meta }) => {\n const { chainId, userAddr } = meta.arg;\n _.set(state.chainUserVaultHistory, [chainId, userAddr, 'status'], FETCHING_STATUS.FETCHING);\n })\n .addCase(fetchVaultHistory.fulfilled, (state, { meta, payload }) => {\n const { chainId, userAddr } = meta.arg;\n _.set(state.chainUserVaultHistory, [chainId, userAddr], setFulfilledListArrayStatus(payload));\n });\n builder\n .addCase(fetchVaultTokenHoldingValue.pending, (state, { meta }) => {\n const { chainId, userAddr } = meta.arg;\n const list = _.get(state.chainUserVaultTokenHoldingValue, [chainId, userAddr]);\n if (!list)\n _.set(\n state.chainUserVaultTokenHoldingValue,\n [chainId, userAddr, 'deposits'],\n getDefaultListStatus(FETCHING_STATUS.FETCHING),\n );\n })\n .addCase(fetchVaultTokenHoldingValue.fulfilled, (state, { meta, payload }) => {\n const { chainId, userAddr } = meta.arg;\n const depositInState = _.get(state.chainUserVaultTokenHoldingValue, [chainId, userAddr]);\n if ((depositInState?.blockHeight || 0) > (payload?.blockHeight || 0)) {\n return;\n }\n const newList = _.merge({}, depositInState?.deposits?.list, payload?.deposits);\n _.set(state.chainUserVaultTokenHoldingValue, [chainId, userAddr, 'deposits'], setFulfilledListStatus(newList));\n _.set(state.chainUserVaultTokenHoldingValue, [chainId, userAddr, 'blockHeight'], payload?.blockHeight);\n _.set(state.chainUserDepositInfoBlockInfo, [meta.arg.chainId, meta.arg.userAddr], {\n timestamp: 0,\n height: payload?.blockHeight,\n });\n // if the block height is lower than the current block height, we don't need to update the state\n });\n },\n});\n\nexport const selectUserDepositInfo =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): Record | undefined =>\n _.get(state.vault.chainUserDepositInfo, [chainId || '', userAddr || '', 'list']);\n\nexport const selectUserDepositInfoStatus =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): FETCHING_STATUS | undefined =>\n _.get(state.vault.chainUserDepositInfo, [chainId || '', userAddr || '', 'status']);\n\nexport const selectVaultClaimStatus =\n (chainId: number | undefined, userAddr: string | undefined, vaultAddr: string | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.vault.chainClaimStatus, [chainId || '', userAddr || '', vaultAddr || ''], FETCHING_STATUS.INIT);\n\nexport const selectVaultUserPendingWithdraw =\n (chainId: number | undefined, userAddr: string | undefined, vaultAddr: string | undefined) =>\n (state: AppState): WrappedArrear | undefined =>\n _.get(state.vault.chainPendingWithdraw, [chainId || '', userAddr || '', vaultAddr || '', 'item']);\n\nexport const selectVaultUserPendingWithdrawFetchingStatus =\n (chainId: number | undefined, userAddr: string | undefined, vaultAddr: string | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(\n state.vault.chainPendingWithdraw,\n [chainId || '', userAddr || '', vaultAddr || '', 'status'],\n FETCHING_STATUS.INIT,\n );\n\nexport const selectUserVaultHistory =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): DepositWithdraw[] =>\n _.get(state.vault.chainUserVaultHistory, [chainId || '', userAddr || '', 'list'], []);\n\nexport const selectUserVaultHistoryStatus =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): FETCHING_STATUS | undefined =>\n _.get(state.vault.chainUserVaultHistory, [chainId || '', userAddr || '', 'status'], FETCHING_STATUS.INIT);\n\nexport const selectChainUserDepositInfoBlockInfo =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): BlockInfo | undefined =>\n _.get(state.vault.chainUserDepositInfoBlockInfo, [chainId || '', userAddr || '']);\n\nexport const selectUserVaultTokenHoldingValue =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): Record | undefined =>\n _.get(state.vault.chainUserVaultTokenHoldingValue, [chainId || '', userAddr || '', 'deposits', 'list']);\n\nexport const selectUserVaultTokenHoldingValueStatus =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): FETCHING_STATUS | undefined =>\n _.get(\n state.vault.chainUserVaultTokenHoldingValue,\n [chainId || '', userAddr || '', 'deposits', 'status'],\n FETCHING_STATUS.INIT,\n );\n\nexport const selectVaultTokenHoldingValue =\n (chainId: number | undefined, userAddr: string | undefined, vaultAddr: string | undefined) =>\n (state: AppState): IVaultTokenHoldingValue | undefined =>\n _.get(state.vault.chainUserVaultTokenHoldingValue, [\n chainId || '',\n userAddr || '',\n 'deposits',\n 'list',\n vaultAddr || '',\n ]);\n\nexport default vaultSlice.reducer;\n\nexport const { setSelectedVaultAddress, setDepositAmount, setWithdrawAmount } = vaultSlice.actions;\n","import { FETCHING_STATUS } from '@/constants';\nimport { CHAIN_ID } from '@/constants/chain';\nimport { getVaultConfig } from '@/constants/launchpad/vault';\nimport { QUERY_KEYS } from '@/constants/query';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedVault } from '@/entities/WrappedVault';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport useSocket from '@/hooks/useSocket';\nimport { useTxNotification } from '@/hooks/useTxNotification';\nimport { useChainId, useProvider, useUserAddr } from '@/hooks/web3/useChain';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { queryClient } from '@/pages/App';\nimport { MESSAGE_TYPE, SUBSCRIBE_TYPE, UNSUBSCRIBE_TYPE } from '@/types/socket';\nimport { TokenInfo } from '@/types/token';\nimport {\n IVaultChainConfig,\n IVaultConfig,\n IVaultHistory,\n IVaultInfo,\n IVaultTokenHoldingValue,\n VaultEpochDetail,\n WrappedArrear,\n} from '@/types/vault';\nimport { DepositInfo } from '@synfutures/sdks-perp-launchpad-datasource';\nimport { ContractReceipt } from 'ethers';\nimport _ from 'lodash';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useTokensInfoConfig } from '../config/hook';\nimport { useTokenPrices } from '../global/query';\nimport { useSDK } from '../web3/hook';\nimport { depositToVault, getUserPendingWithdraw, withdrawFromVault } from './action';\nimport { useFetchVaultInfos } from './query';\nimport {\n selectChainUserDepositInfoBlockInfo,\n selectUserDepositInfo,\n selectUserDepositInfoStatus,\n selectUserVaultHistory,\n selectUserVaultHistoryStatus,\n selectUserVaultTokenHoldingValue,\n selectVaultClaimStatus,\n selectVaultTokenHoldingValue,\n selectVaultUserPendingWithdraw,\n selectVaultUserPendingWithdrawFetchingStatus,\n setSelectedVaultAddress,\n} from './slice';\nexport const useDepositInputAmount = () => {\n return useAppSelector((state) => state.vault.input.depositAmount);\n};\nexport const useWithdrawInputAmount = () => {\n return useAppSelector((state) => state.vault.input.withdrawAmount);\n};\nexport function useUserDepositInfoStatus(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): FETCHING_STATUS | undefined {\n return useAppSelector(selectUserDepositInfoStatus(chainId, userAddr));\n}\nexport function useUserDepositInfo(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n): Record | undefined {\n const userVaultHoldingValue = useUserAllVaultTokenHoldingValueMap(chainId, userAddr);\n const deposits = useAppSelector(selectUserDepositInfo(chainId, userAddr));\n\n return useMemo(() => {\n if (!deposits || !userVaultHoldingValue) {\n return undefined;\n }\n const res = _.mapValues(deposits, (deposit) => {\n const depositRes = { ...deposit };\n if (userVaultHoldingValue) {\n const holdingValue = userVaultHoldingValue[depositRes.vault];\n if (holdingValue) {\n _.set(depositRes, 'holdingValue', holdingValue.holdingValue);\n _.set(depositRes, 'entryValue', holdingValue.entryValue);\n _.set(depositRes, 'share', holdingValue.share);\n }\n }\n return depositRes;\n });\n return res;\n }, [deposits, userVaultHoldingValue]);\n}\n\nexport function useVaultListIsFetched(chainId: CHAIN_ID | undefined, userAddr: string | undefined): boolean {\n const { isFetched } = useVaultInfos(chainId, userAddr);\n return isFetched;\n}\nexport function useVaultInfos(chainId: CHAIN_ID | undefined, userAddr: string | undefined) {\n const { data: vaultInfosFromVault, isFetched } = useFetchVaultInfos(chainId, userAddr);\n const tokenInfoConfig = useTokensInfoConfig(chainId);\n const vaultInfos = useMemo(() => {\n return _.mapValues(vaultInfosFromVault, (v) => {\n const tokenInfo = tokenInfoConfig?.marginTokenMap?.[v.tokenInfo.address];\n // fix api token decimals error\n if (tokenInfo) return { ...v, tokenInfo: { ...v.tokenInfo, ...tokenInfo } };\n return v;\n });\n }, [tokenInfoConfig, vaultInfosFromVault]);\n\n return { vaultInfos, isFetched };\n}\n\nexport const useSelectedVaultAddressSetter = () => {\n const dispatch = useAppDispatch();\n const setter = useCallback(\n (vaultAddress: string | null) => {\n dispatch(setSelectedVaultAddress(vaultAddress));\n },\n [dispatch],\n );\n return setter;\n};\nexport function useSelectedVault() {\n const chainId = useChainId();\n const userAddress = useUserAddr();\n const vaults = useWrappedVaults(chainId, userAddress);\n const selectedVaultAddress = useAppSelector((state) => state.vault.selectedVaultAddress);\n const selectedVault = useMemo(() => {\n return vaults.find((vault) => vault.vaultAddress === selectedVaultAddress) || null;\n }, [selectedVaultAddress, vaults]);\n return {\n selectedVault,\n };\n}\n\nexport function useWrappedVaults(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n onlyDepositedVaults?: boolean,\n): WrappedVault[] {\n const { data: priceInfoMap } = useTokenPrices({ chainId });\n const { vaultInfos } = useVaultInfos(chainId, userAddr);\n const userDepositInfo = useUserDepositInfo(chainId, userAddr);\n // const vaultOOPoints = useVaultPoints(chainId);\n return useMemo(() => {\n if (!vaultInfos || !chainId) {\n return [];\n }\n\n return _.flatMap(vaultInfos, (vaultInfo) => {\n const wrappedVault = WrappedVault.getInstance(vaultInfo.vaultAddress, chainId);\n const depositInfo = _.get(userDepositInfo, [vaultInfo.vaultAddress]);\n // const ooPointsInfo = _.get(vaultOOPoints, [vaultInfo.vaultAddr]);\n if (onlyDepositedVaults && (depositInfo?.share.lte(0) || !depositInfo?.share)) {\n return [];\n }\n //const userDepositInfo = _.get(userDepositInfo, [origin.vaultAddr, userAddr]);\n if (!wrappedVault) {\n return WrappedVault.wrapInstance({ metaVault: vaultInfo, chainId, depositInfo });\n }\n userAddr && wrappedVault.setUserAddr(userAddr);\n wrappedVault.setMetaVault(vaultInfo);\n wrappedVault.setDepositInfo(depositInfo);\n // wrappedVault._epoch = ooPointsInfo?.epoch;\n // wrappedVault._ooPoints = ooPointsInfo?.distributedVaultPoints || 0;\n if (priceInfoMap) {\n const quotePriceInfo = priceInfoMap[wrappedVault.quoteToken.address];\n if (quotePriceInfo) {\n wrappedVault.quoteToken.setTokenPrice(quotePriceInfo);\n }\n }\n return [wrappedVault];\n });\n }, [vaultInfos, chainId, userDepositInfo, onlyDepositedVaults, userAddr, priceInfoMap]);\n}\n\nexport function useVaultConfig(): IVaultConfig {\n return useMemo(() => {\n return getVaultConfig();\n }, []);\n}\n\nexport function useVaultChainConfig(chainId: CHAIN_ID | undefined): IVaultChainConfig | undefined {\n const vaultConfig = useVaultConfig();\n return useMemo(() => {\n return chainId ? vaultConfig.chainConfig[chainId] : undefined;\n }, [chainId, vaultConfig.chainConfig]);\n}\n\nexport function useVaultClaimStatus(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n vaultAddr: string | undefined,\n): FETCHING_STATUS {\n return useAppSelector(selectVaultClaimStatus(chainId, userAddr, vaultAddr));\n}\n\nexport function useVaultUserPendingWithdrawInfo(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n vaultAddr: string | undefined,\n): WrappedArrear | undefined {\n return useAppSelector(selectVaultUserPendingWithdraw(chainId, userAddr, vaultAddr));\n}\n\nexport function useVaultUserPendingWithdrawFetchingStatus(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n vaultAddr: string | undefined,\n): FETCHING_STATUS {\n return useAppSelector(selectVaultUserPendingWithdrawFetchingStatus(chainId, userAddr, vaultAddr));\n}\n\n/**\n * Custom React hook for handling vault operations. Deposit Withdraw and Claim Withdraw.\n *\n * @param chainId - The chain ID.\n * @param vaultAddr - The address of the vault.\n * @param quoteToken - The quote token information.\n * @returns An object containing functions for depositing, withdrawing, and claiming withdrawals from the vault.\n */\nexport function useVaultOperations(\n chainId: CHAIN_ID | undefined,\n vaultAddr: string | undefined,\n quoteToken: TokenInfo | undefined,\n) {\n const dispatch = useAppDispatch();\n const userAddr = useUserAddr();\n const signer = useWalletSigner();\n const provider = useProvider();\n const blockInfo = useAppSelector(selectChainUserDepositInfoBlockInfo(chainId, userAddr));\n const notification = useTxNotification();\n const sdk = useSDK(chainId);\n const { t } = useTranslation();\n const adjustQuote = useMemo(() => {\n // if (isWrappedNativeTokenInfo) {\n // return tokenInfo;\n // }\n return quoteToken;\n }, [quoteToken]);\n\n const onDepositToVault = useCallback(\n async (amount: WrappedBigNumber, onAfterDeposit?: (receipt: ContractReceipt | undefined) => void) => {\n try {\n if (chainId && userAddr && vaultAddr && adjustQuote && signer && amount && !amount.eq(0) && sdk) {\n const receipt = await dispatch(\n depositToVault({\n signer,\n provider,\n quote: adjustQuote,\n amount: amount,\n chainId,\n userAddr,\n vaultAddr,\n sdk,\n }),\n ).unwrap();\n if (receipt) {\n if (receipt.status === 1) {\n // const dappConfig = DAPP_CHAIN_CONFIGS[chainId];\n // // get fund flows with weth\n // const tokenCheck = isNativeTokenAddr(adjustQuote.address) ? dappConfig.wrappedNativeToken : adjustQuote;\n // if (tokenCheck) {\n // dispatch(\n // getFundFlows({\n // chainId,\n // sdkContext,\n // userAddr,\n // quoteTokens: [tokenCheck],\n // blockNumber: receipt.blockNumber,\n // }),\n // );\n // }\n }\n // dispatch(fetchVaultInfos({ chainId, userAddr }));\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.VAULT.INFOS(chainId, userAddr) });\n onAfterDeposit && onAfterDeposit(receipt);\n }\n }\n } catch (e) {\n console.error('🚀 ~ file: index.tsx ~ line 91 ~ onAfterClickDeposit ~ e', e);\n }\n },\n [chainId, userAddr, vaultAddr, adjustQuote, signer, sdk, dispatch, provider],\n );\n\n const onWithdrawFromVault = useCallback(\n async (\n amount: WrappedBigNumber,\n arrearRequired: boolean, // when show Request Withdraw btn\n onAfterWithdraw?: (receipt: ContractReceipt | undefined) => void,\n ) => {\n try {\n if (chainId && userAddr && vaultAddr && adjustQuote && signer && amount && !amount.eq(0) && sdk) {\n const receipt = await dispatch(\n withdrawFromVault({\n signer,\n provider,\n quote: adjustQuote,\n amount: amount,\n chainId,\n userAddr,\n arrearRequired,\n vaultAddr,\n blockInfo,\n sdk,\n }),\n ).unwrap();\n if (receipt) {\n if (receipt.status === 1) {\n if (arrearRequired) {\n notification.success({\n tx: receipt.transactionHash,\n message: t('notification.vaultWithdraw.success'),\n description: t('notification.vaultWithdraw.successWithLimit', {\n quantity: WrappedBigNumber.from(amount).formatDisplayNumber(),\n quote: adjustQuote.symbol,\n }),\n });\n }\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.VAULT.INFOS(chainId, userAddr) });\n }\n onAfterWithdraw && onAfterWithdraw(receipt);\n }\n }\n } catch (e) {\n console.error('🚀 ~ file: index.tsx ~ line 91 ~ onAfterClickDeposit ~ e', e);\n }\n },\n [chainId, userAddr, vaultAddr, adjustQuote, signer, sdk, dispatch, provider, blockInfo, notification, t],\n );\n\n // const onClaimWithdrawFromVault = useCallback(\n // async (amount: WrappedBigNumber, onAfterWithdraw?: (receipt: ContractReceipt | undefined) => void) => {\n // if (chainId && userAddr && vaultAddr && adjustQuote && vaultClient && signer && provider) {\n // if (amount.gt(0)) {\n // const receipt = await dispatch(\n // claimWithdrawFromVault({\n // chainId,\n // userAddr,\n // quote: adjustQuote,\n // vaultClient,\n // signer,\n // amount: amount,\n // provider,\n // vaultAddr,\n // }),\n // ).unwrap();\n // if (receipt && receipt?.status === 1) {\n // notification.success({\n // tx: receipt.transactionHash,\n // message: t('notification.claimVaultWithdraw.success'),\n // description: t('notification.claimVaultWithdraw.successDesc', {\n // quantity: WrappedBigNumber.from(amount).formatDisplayNumber(),\n // quote: adjustQuote.symbol,\n // }),\n // });\n // }\n // onAfterWithdraw && onAfterWithdraw(receipt);\n // }\n // }\n // },\n // [adjustQuote, chainId, dispatch, notification, provider, signer, t, userAddr, vaultAddr, vaultClient],\n // );\n return { onDepositToVault, onWithdrawFromVault };\n}\nexport const useShouldRequestWithdraw = (chainId: CHAIN_ID | undefined, vaultAddr: string | undefined) => {\n const sdk = useSDK(chainId);\n const userAddress = useUserAddr();\n const checkShouldRequestWithdraw = useCallback(\n async (amount: WrappedBigNumber) => {\n if (vaultAddr && userAddress && sdk) {\n try {\n const { availableNow } = await sdk?.perpLaunchpad?.inquireWithdrawal(vaultAddr, userAddress, amount.wadValue);\n return !availableNow;\n } catch (error) {\n console.log('🚀 ~ checkShouldRequestWithdraw ~ error:', error);\n return false;\n }\n }\n return false;\n },\n [sdk, userAddress, vaultAddr],\n );\n return { checkShouldRequestWithdraw };\n};\n\nexport function useVaultUserPendingWithdraw(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n vaultAddr: string | undefined,\n) {\n const dispatch = useAppDispatch();\n const userPendingWithdrawInfo = useVaultUserPendingWithdrawInfo(chainId, userAddr, vaultAddr);\n const pendingWithdrawFetchingStatus = useVaultUserPendingWithdrawFetchingStatus(chainId, userAddr, vaultAddr);\n const userPendingWithdrawFetchingStatus = useVaultUserPendingWithdrawFetchingStatus(chainId, userAddr, vaultAddr);\n const sdk = useSDK(chainId);\n const { vaultInfos } = useVaultInfos(chainId, userAddr);\n const fetchUserPendingWithdraw = useCallback(() => {\n if (chainId && userAddr && vaultAddr && sdk) {\n const vaultInfo = vaultInfos?.[vaultAddr];\n vaultInfo?.tokenInfo &&\n dispatch(\n getUserPendingWithdraw({\n chainId,\n userAddr,\n vaultAddr,\n sdk,\n quoteToken: vaultInfo?.tokenInfo,\n }),\n );\n }\n }, [chainId, userAddr, vaultAddr, sdk, vaultInfos, dispatch]);\n\n const isDisableRequestButton = useMemo(() => {\n if (userPendingWithdrawInfo?.quantity.gte(0)) {\n return true;\n }\n return false;\n }, [userPendingWithdrawInfo?.quantity]);\n\n return {\n fetchUserPendingWithdraw,\n userPendingWithdrawInfo,\n userPendingWithdrawFetchingStatus,\n isDisableRequestButton,\n pendingWithdrawFetchingStatus,\n };\n}\n\nexport function useUserVaultHistory(chainId: number | undefined, userAddr: string | undefined): IVaultHistory[] {\n const { vaultInfos } = useVaultInfos(chainId, userAddr);\n const history = useAppSelector(selectUserVaultHistory(chainId, userAddr));\n return useMemo(() => {\n if (!vaultInfos) return [];\n const vaultMap = vaultInfos;\n return history\n .map((h) => ({ ...h, vault: vaultMap[h.vaultAddr] }))\n .sort((prev, cur) => cur.timestamp - prev.timestamp) as IVaultHistory[];\n }, [history, vaultInfos]);\n}\nexport function useUserVaultHistoryStatus(\n chainId: number | undefined,\n userAddr: string | undefined,\n): FETCHING_STATUS | undefined {\n return useAppSelector(selectUserVaultHistoryStatus(chainId, userAddr));\n}\n\nexport function useUserAllVaultTokenHoldingValueMap(\n chainId: number | undefined,\n userAddr: string | undefined,\n): Record | undefined {\n const rec = useAppSelector(selectUserVaultTokenHoldingValue(chainId, userAddr));\n\n return rec;\n}\n\nexport function useVaultTokenHoldingValue(\n chainId: number | undefined,\n userAddr: string | undefined,\n vaultAddr: string | undefined,\n): IVaultTokenHoldingValue | undefined {\n return useAppSelector(selectVaultTokenHoldingValue(chainId, userAddr, vaultAddr));\n}\n\nexport function useUserVaultPointsDetail(\n chainId: number | undefined,\n userAddr: string | undefined,\n vaultAddr: string | undefined,\n): VaultEpochDetail[] {\n return useMemo(\n () =>\n // _.orderBy(\n // _.map(details, (d) => {\n // const epoch = epochs.find((e) => e.epoch === d.epoch) as IEpoch;\n // return {\n // ...d,\n // ...epoch,\n // };\n // }),\n // ['epoch'],\n // ['desc'],\n // ),\n [],\n [chainId, userAddr, vaultAddr],\n );\n}\n\nexport function useWatchVaultListChange(chainId: number | undefined, userAddr: string | undefined): void {\n const { socket } = useSocket();\n const dispatch = useAppDispatch();\n\n useEffect(() => {\n if (!socket || !chainId || !userAddr) return;\n socket.emit(SUBSCRIBE_TYPE.VAULT, { chainId: chainId });\n\n socket.on(MESSAGE_TYPE.vaultChanged, (data) => {\n console.log(MESSAGE_TYPE.vaultChanged, data);\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.VAULT.INFOS(chainId, userAddr) });\n });\n\n return () => {\n socket.off(MESSAGE_TYPE.vaultChanged);\n socket.emit(UNSUBSCRIBE_TYPE.VAULT, { chainId: chainId });\n };\n }, [chainId, dispatch, socket]);\n}\n\nexport function useVaultInfo(chainId: number | undefined, vaultAddr: string | undefined): IVaultInfo | undefined {\n const userAddress = useUserAddr();\n const { vaultInfos } = useVaultInfos(chainId, userAddress);\n return useMemo(() => {\n if (vaultInfos && vaultAddr) {\n return vaultInfos[vaultAddr];\n }\n }, [vaultAddr, vaultInfos]);\n}\n","import { CHAIN_ID, DEFAULT_CHAIN_ID, SUPPORTED_CHAIN_ID } from '@/constants/chain';\nimport { useVaultInfos } from '@/features/vault/hook';\nimport { setSelectedVaultAddress } from '@/features/vault/slice';\nimport { RouteBasePath } from '@/pages/routers';\nimport { getChainShortName } from '@/utils/chain';\nimport { useCallback, useEffect } from 'react';\nimport { NavigateOptions, useLocation, useNavigate, useParams } from 'react-router-dom';\nimport { useAppDispatch } from '..';\nimport { useChainId, useUserAddr } from '../web3/useChain';\nexport const getVaultLink = ({ chainId, vaultAddress }: { chainId?: CHAIN_ID; vaultAddress?: string }) => {\n const theChainId = chainId || DEFAULT_CHAIN_ID;\n const finalChainId = SUPPORTED_CHAIN_ID.includes(theChainId) ? theChainId : DEFAULT_CHAIN_ID;\n const chainShortName = getChainShortName(finalChainId);\n return `/${RouteBasePath.launchpad}/${chainShortName}/${vaultAddress || ''}`;\n};\nexport default function useVaultRouter() {\n const navigate = useNavigate();\n const chainId = useChainId();\n const goToVault = useCallback(\n ({ vaultAddress }: { vaultAddress?: string }, options?: NavigateOptions) => {\n navigate(getVaultLink({ vaultAddress, chainId }), options);\n },\n [chainId, navigate],\n );\n\n return { goToVault, getVaultLink };\n}\n\nexport function useVaultRouteSelectVault() {\n const disppatch = useAppDispatch();\n const { vaultAddress } = useParams();\n const location = useLocation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { vaultInfos } = useVaultInfos(chainId, userAddr);\n useEffect(() => {\n if (location.pathname.includes(RouteBasePath.launchpad)) {\n const vaultList = Object.values(vaultInfos || {});\n const vaultAddrFromSymbol = vaultList?.find(\n (info) => info.tokenInfo.symbol.toLowerCase() === vaultAddress?.toLowerCase(),\n )?.vaultAddress;\n const vaultAddrFromAddress = vaultAddress ? vaultInfos?.[vaultAddress.toLowerCase()]?.vaultAddress : undefined;\n const vaultAddr = vaultAddrFromAddress || vaultAddrFromSymbol;\n if (vaultAddr) {\n disppatch(setSelectedVaultAddress(vaultAddr));\n } else {\n disppatch(setSelectedVaultAddress(null));\n }\n }\n }, [disppatch, location.pathname, vaultAddress, vaultInfos]);\n}\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgRemove = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 128,\n height: 128,\n viewBox: \"0 0 128 128\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.311 89.9969V41.9265C11.3113 39.898 11.8471 37.9054 12.8646 36.1491C13.882 34.3927 15.3452 32.9346 17.107 31.9213L58.8689 7.88603C60.631 6.87204 62.6296 6.33826 64.6639 6.33826C66.6983 6.33826 68.6968 6.87204 70.4589 7.88603L112.223 31.9213C113.984 32.9347 115.447 34.393 116.464 36.1493C117.481 37.9057 118.017 39.8982 118.017 41.9265V89.9969C118.017 92.0252 117.481 94.0177 116.464 95.7741C115.447 97.5304 113.984 98.9887 112.223 100.002L70.4589 124.037C68.6968 125.051 66.6983 125.585 64.6639 125.585C62.6296 125.585 60.631 125.051 58.8689 124.037L17.107 100.002C15.3451 98.9889 13.8819 97.5308 12.8644 95.7744C11.847 94.018 11.3112 92.0254 11.311 89.9969Z\",\n fill: \"#B8DEDE\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.867 98.3204C20.9233 99.4983 22.1532 100.509 23.5145 101.318L51.8961 117.654C52.8989 118.259 54.0138 118.656 55.174 118.822L60.1757 115.946C60.6066 114.873 60.8164 113.725 60.7928 112.57V80.0395C60.7724 78.5042 60.5207 76.9806 60.0462 75.52L55.4864 67.6495C54.4439 66.4972 53.2336 65.5078 51.8961 64.7144L23.5145 48.3783C22.0783 47.5507 20.7222 47.1634 19.5204 47.166L15.5548 49.4457C14.9567 50.4731 14.6196 51.8246 14.6196 53.4622V85.9933C14.6403 87.5568 14.9004 89.108 15.391 90.5931L19.867 98.3204Z\",\n fill: \"#7DB1B1\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M57.8555 86.3705L60.6687 84.6292V107.418L57.8555 102.438V86.3705Z\",\n fill: \"#044953\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M112.213 39.556C101.882 45.6899 85.9497 55.0904 76.0035 60.6713C70.6323 63.6849 66.8782 66.7923 58.7395 61.8013C47.4714 54.8911 27.478 43.615 16.888 37.6889C14.3605 36.2749 14.9147 34.2369 15.7966 32.8007C16.2128 32.478 16.6506 32.1842 17.107 31.9213L58.869 7.88603C60.6311 6.87204 62.6297 6.33826 64.664 6.33826C66.6983 6.33826 68.6969 6.87204 70.459 7.88603L112.223 31.9213C113.009 32.3757 113.738 32.9206 114.396 33.545C115.278 35.234 115.541 37.5804 112.213 39.556Z\",\n fill: \"#E1F3F3\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M110.311 91.5174L75.0988 111.838C74.2531 112.326 73.5693 111.924 73.5693 110.941L73.5712 69.9776C73.5712 68.9939 74.2569 67.8011 75.1026 67.3131L110.314 46.9924C111.16 46.5044 111.846 46.9061 111.846 47.8898L111.842 88.8528C111.842 89.8363 111.156 91.0293 110.311 91.5174Z\",\n fill: \"#739E9E\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M108.694 90.4432C109.539 89.9554 110.225 88.7623 110.225 87.7786L110.227 47.0424L75.1026 67.3127C74.2569 67.8007 73.5712 68.9936 73.5712 69.9773L73.5693 110.714L108.694 90.4432Z\",\n fill: \"#044953\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M92.187 63.1281C84.755 67.4081 78.7305 78.1306 78.7305 87.0779C78.7305 96.0251 84.755 99.8088 92.187 95.5291C99.6191 91.2493 105.644 80.5264 105.644 71.5792C105.644 62.6319 99.6191 58.8484 92.187 63.1281Z\",\n fill: \"#FCD300\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M96.2045 72.0994C95.4273 72.5466 94.7988 74.0276 94.7988 75.4076C94.7988 76.7876 95.4273 77.5437 96.2045 77.0966C96.9816 76.6496 97.6101 75.1682 97.6101 73.7884C97.6101 72.4086 96.9816 71.6523 96.2045 72.0994Z\",\n fill: \"black\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M88.037 76.8029C87.2598 77.2501 86.6294 78.7313 86.6294 80.1111C86.6294 81.4909 87.2598 82.2471 88.037 81.8001C88.8141 81.3531 89.4426 79.8717 89.4426 78.4919C89.4426 77.1121 88.8122 76.3558 88.037 76.8029Z\",\n fill: \"black\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.297 74.3936L100.699 74.3354C100.699 80.2233 96.7375 87.2775 91.852 90.091C86.9665 92.9045 83.0048 90.4123 83.0048 84.5247L81.542 86.1846\",\n stroke: \"black\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M63.0022 21.5973C50.3265 21.5973 40.0508 27.5657 40.0508 34.9282C40.0508 42.2907 50.3265 48.2591 63.0022 48.2591C75.6778 48.2591 85.9535 42.2907 85.9535 34.9282C85.9535 27.5657 75.6778 21.5973 63.0022 21.5973Z\",\n fill: \"#A0A8B0\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M63.0022 48.2588C73.6398 48.2588 82.5823 44.0556 85.186 38.3533C82.5823 32.6512 73.6398 28.448 63.0022 28.448C52.3646 28.448 43.424 32.6512 40.8203 38.3533C43.424 44.0556 52.3665 48.2588 63.0022 48.2588Z\",\n fill: \"#153E23\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M24.2285 2.78406L40.0792 36.0931C41.1363 42.8739 50.974 48.188 62.9582 48.188C75.1368 48.188 85.0963 42.7004 85.8792 35.7637L101.751 2.78406H24.2285Z\",\n fill: \"url(#paint0_linear_42961_100864)\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M36.9898 60.0162C27.3635 54.4805 19.5601 59.7231 19.5601 71.7259C19.5601 83.7287 27.3635 97.9464 36.9898 103.482C46.616 109.018 54.4176 103.775 54.4176 91.7726C54.4176 79.7698 46.6141 65.5521 36.9898 60.0162Z\",\n fill: \"#7DB1B1\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M36.8567 63.9991C28.9199 59.4441 22.4878 63.7579 22.4878 73.6345C22.4878 83.5111 28.9199 95.2103 36.8567 99.7655C44.7935 104.321 51.2256 100.007 51.2256 90.1302C51.2256 80.2536 44.7916 68.5543 36.8567 63.9991Z\",\n fill: \"#303D4A\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M35.7937 63.757C28.8854 58.0538 23.2856 61.9315 23.2856 72.4185C23.2856 82.9055 28.8854 96.0299 35.7937 101.733C42.7019 107.436 48.2998 103.559 48.2998 93.0718C48.2998 82.585 42.7 69.4602 35.7937 63.757Z\",\n fill: \"#5B8888\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M40.7002 108.058L37.2566 109.407L36.6795 107.815C35.3138 107.345 33.8605 106.501 32.352 105.253C24.4629 98.725 18.0688 83.7031 18.0688 71.7003C18.0688 67.5838 18.8212 64.3576 20.1278 62.1577L19.5602 60.5925L23.1753 59.2669L23.1772 59.2748C25.659 58.1599 28.8588 58.896 32.352 61.7869C40.2412 68.3146 46.6371 83.3365 46.6371 95.3393C46.6371 102.6 44.2944 107.086 40.7002 108.058Z\",\n fill: \"#E1F3F3\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M28.3593 63.2283C20.4701 56.7006 14.0742 61.1386 14.0742 73.1418C14.0742 85.1449 20.4701 100.166 28.3593 106.694C36.2485 113.222 42.6425 108.784 42.6425 96.7807C42.6425 84.7775 36.2485 69.756 28.3593 63.2283Z\",\n fill: \"#AEDEDE\"\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M27.9408 68.4894C21.842 63.4505 16.8975 66.8765 16.8975 76.1418C16.8975 85.4071 21.842 97.0027 27.9408 102.042C34.0396 107.081 38.9841 103.655 38.9841 94.3893C38.9841 85.124 34.0415 73.5283 27.9408 68.4894Z\",\n fill: \"#9ECBCB\"\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M30.0223 97.6263L27.1252 98.572L18.3999 74.4006L21.4931 73.4621C22.7254 72.8846 24.3235 73.2402 26.0681 74.6859C29.9689 77.9155 33.1307 85.3494 33.1307 91.2887C33.1307 94.9972 31.8984 97.2464 30.0223 97.6263Z\",\n fill: \"#7DB1B1\"\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M24.4684 65.4313H21.2896V74.3882C21.2896 74.3882 22.3485 75.2646 23.4894 75.0016C24.678 74.7284 24.4684 74.02 24.4684 74.02V65.4313Z\",\n fill: \"#CEEFEF\"\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M22.88 64.5729C22.0019 64.5729 21.2896 64.9849 21.2896 65.4931C21.2896 66.0013 22.0019 66.4132 22.88 66.4132C23.758 66.4132 24.4684 66.0013 24.4684 65.4931C24.4684 64.9849 23.7561 64.5729 22.88 64.5729Z\",\n fill: \"#E1F3F3\"\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M38.3897 95.6619L39.9782 92.918L32.1976 88.4396C32.1976 88.4396 30.9081 88.9145 30.5653 90.0323C30.2091 91.194 30.9291 91.3675 30.9291 91.3675L38.3897 95.6619Z\",\n fill: \"#CEEFEF\"\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M39.9305 94.7194C40.3686 93.9618 40.3667 93.1415 39.9248 92.8873C39.4829 92.6331 38.7706 93.0415 38.3325 93.7992C37.8944 94.5568 37.8944 95.3771 38.3363 95.6313C38.7782 95.8855 39.4924 95.477 39.9305 94.7194Z\",\n fill: \"#7DB1B1\"\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.2632 78.9083L10.2613 78.9128L10.3146 78.9436L18.0838 83.4091C18.0838 83.4091 19.3809 82.9321 19.7256 81.8099C20.0837 80.6437 19.3599 80.4697 19.3599 80.4697L11.8593 76.1572L11.8555 76.162C11.4098 75.9686 10.7337 76.3738 10.3089 77.1035C9.88417 77.8332 9.87274 78.6201 10.2632 78.9083Z\",\n fill: \"#CEEFEF\"\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M22.5826 96.9134V105.503H22.5883C22.6417 105.982 23.3293 106.362 24.1711 106.362C25.013 106.362 25.7006 105.982 25.7558 105.503H25.7596V96.5453C25.7596 96.5453 24.7025 95.6691 23.5597 95.9318C22.3731 96.205 22.5826 96.9134 22.5826 96.9134Z\",\n fill: \"#CEEFEF\"\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M22.3652 75.9299C18.4644 72.7003 15.3008 74.8961 15.3008 80.8353C15.3008 86.7744 18.4644 94.208 22.3652 97.4381C26.266 100.668 29.4278 98.4719 29.4278 92.5326C29.4278 86.5932 26.2641 79.1599 22.3652 75.9299Z\",\n fill: \"#CEEFEF\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M21.6795 81.4109C19.7642 79.942 18.2114 80.9408 18.2114 83.6415C18.2114 86.3423 19.7642 89.7225 21.6795 91.1915C23.5948 92.6606 25.1491 91.6617 25.1491 88.9608C25.1491 86.2599 23.5964 82.8798 21.6795 81.4109Z\",\n fill: \"#7DB1B1\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M75.7493 28.3168L72.9648 32.7368L72.9549 32.7302C69.9215 37.5175 62.0124 38.1017 55.0308 33.9762C48.0491 29.8507 44.591 22.5391 47.1201 17.4534L47.1081 17.4463L50.3016 12.1708L75.7493 28.3168Z\",\n fill: \"url(#paint1_linear_42961_100864)\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M50.1192 12.3925C52.9904 7.29794 61.1076 6.58745 68.2466 10.8096C75.3857 15.0317 78.8491 22.5851 75.9772 27.6794C73.1053 32.7738 64.9894 33.4809 57.849 29.2623C50.7087 25.0437 47.248 17.4871 50.1192 12.3925Z\",\n fill: \"url(#paint2_linear_42961_100864)\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M54.4259 14.9389C56.3405 11.5416 61.7533 11.0678 66.5139 13.8833C71.2744 16.6988 73.584 21.7356 71.6689 25.1327C69.7538 28.5299 64.3419 29.0013 59.5804 26.1882C54.8189 23.3751 52.5113 18.3361 54.4259 14.9389Z\",\n fill: \"url(#paint3_linear_42961_100864)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_42961_100864\",\n x1: 62.9906,\n y1: 48.188,\n x2: 62.9906,\n y2: 2.78406,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#22DCDE\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.94,\n stopColor: \"#22DCDE\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_42961_100864\",\n x1: 45.8442,\n y1: 21.6351,\n x2: 75.4237,\n y2: 29.5357,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FEE552\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFF19F\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_42961_100864\",\n x1: 48.8471,\n y1: 16.2179,\n x2: 77.262,\n y2: 23.8074,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#ED9F00\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFC03F\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_42961_100864\",\n x1: 53.5776,\n y1: 17.4898,\n x2: 72.5256,\n y2: 22.5507,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFD174\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFC03F\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgRemove);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/remove.657f5e4f7daa60c51f2f39411e8affc8.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconWarningYellow = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_47450_119459)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.54117 7.174C5.4865 3.72467 6.45983 2 7.99983 2C9.5405 2 10.5132 3.72467 12.4585 7.174L12.7012 7.604L12.7024 7.60616C14.3182 10.4714 15.1263 11.9043 14.3958 12.952C13.6652 14 11.8572 14 8.2425 14H7.75717C4.1425 14 2.3345 14 1.60383 12.952C0.873352 11.9043 1.68143 10.4714 3.29728 7.60617L3.2985 7.604L3.54117 7.174ZM8.53016 4.71967C8.3895 4.57902 8.19874 4.5 7.99982 4.5C7.80091 4.5 7.61014 4.57902 7.46949 4.71967C7.32884 4.86032 7.24982 5.05109 7.24982 5.25V9C7.24982 9.19891 7.32884 9.38968 7.46949 9.53033C7.61014 9.67098 7.80091 9.75 7.99982 9.75C8.19874 9.75 8.3895 9.67098 8.53016 9.53033C8.67081 9.38968 8.74983 9.19891 8.74983 9V5.25C8.74983 5.05109 8.67081 4.86032 8.53016 4.71967ZM8.70694 12.2071C8.5194 12.3946 8.26504 12.5 7.99982 12.5C7.73461 12.5 7.48025 12.3946 7.29271 12.2071C7.10517 12.0196 6.99982 11.7652 6.99982 11.5C6.99982 11.2348 7.10517 10.9804 7.29271 10.7929C7.48025 10.6054 7.73461 10.5 7.99982 10.5C8.26504 10.5 8.5194 10.6054 8.70694 10.7929C8.89447 10.9804 8.99983 11.2348 8.99983 11.5C8.99983 11.7652 8.89447 12.0196 8.70694 12.2071Z\",\n fill: \"#FFAA00\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_47450_119459\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconWarningYellow);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_warning_yellow.49503918690454165d00ea55320859bc.svg\";","/**\n * @description Component-PairNotInWhitelist\n */\nimport { CardWrapper } from '@/components/CardWrapper';\nimport { THEME_ENUM } from '@/constants';\nimport TradeEarnTabs from '@/pages/components/Tabs/TradeEarnTabs';\nimport './index.less';\n\nimport { Button } from '@/components/Button';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useTheme } from '@/features/global/hooks';\nimport { useVaultInfos } from '@/features/vault/hook';\nimport { getVaultLink } from '@/hooks/vault/useVaultRouter';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { CreativePair } from '@/types/pair';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router-dom';\nimport MailIcon from './assets/icon_mj_mail.png';\nimport Remove from './assets/remove.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n isNewPair: boolean;\n currentPair: WrappedPair | CreativePair | undefined;\n}\nconst PairNotInWhitelist: FC = function ({ isNewPair, currentPair }) {\n const theme = useTheme();\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { vaultInfos: vaults } = useVaultInfos(chainId, userAddr);\n const { isMobile } = useMediaQueryDevice();\n const navigate = useNavigate();\n\n const vault = useMemo(() => {\n if (!vaults) return undefined;\n return Object.values(vaults)?.find(\n (v) =>\n v?.status !== Stage.INVALID &&\n v.tokenInfo.address.toLowerCase() === currentPair?.rootInstrument.quoteToken.address.toLocaleLowerCase(),\n );\n }, [currentPair?.rootInstrument.quoteToken.address, vaults]);\n const vaultLink = useMemo(\n () => getVaultLink({ chainId, vaultAddress: vault?.vaultAddress }),\n [chainId, vault?.vaultAddress],\n );\n return (\n \n \n
\n )\n }\n className=\"syn-earn-area syn-pair-not-in-whitelist\"\n footer={\n vault ? (\n \n ) : (\n \n )\n }>\n
\n
\n {vault && (\n <>\n {t('common.earn.whiteListTitleDot')} {t('common.contactUs')}\n \n )}\n
\n {vault ? : }\n
\n {vault ? (\n
\n {t('common.earn.whiteListVaultTitle', { symbol: vault.tokenInfo.symbol })}\n
\n ) : (\n <>\n
{t('common.earn.whiteListTitle')}
\n
{t('common.earn.whiteListSubTitle')}
\n \n )}\n
\n
\n \n );\n};\n\nexport default PairNotInWhitelist;\n","/**\n * @description Component-ChartLoading\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport tradeChartBg from './assets/trade_chart_bg.png';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n isLoading: boolean;\n}\nconst ChartLoading: FC = function ({ children, isLoading }) {\n if (!isLoading) return <>{children};\n return (\n
\n \"bg\"\n
\n );\n};\n\nexport default ChartLoading;\n","/**\n * @description Component-InfoChart\n */\nimport './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport _ from 'lodash';\n// import _ from 'lodash';\nimport moment from 'moment';\nimport { FC, useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Area, AreaChart, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts';\n\nimport Loading from '@/components/Loading';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { FETCHING_STATUS } from '@/constants';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { getTVLAndVolumeChartData } from '@/features/chart/actions';\nimport { useVolumeChartData, useVolumeDataStatus } from '@/features/chart/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport ChartLoading from '@/pages/trade/CoinPriceChart/ChartLoading';\nimport { ITooltipProps } from '@/types/pair';\nimport { formatDisplayNumber } from '@/utils/numberUtil';\nimport { VolumeChartData } from '@synfutures/sdks-perp-datasource';\nimport classNames from 'classnames';\n\ninterface IPropTypes {\n className?: string;\n pair?: WrappedPair;\n chainId?: CHAIN_ID;\n}\nconst InfoChart: FC = function ({ pair, chainId }) {\n // const tvlList = useTVLChartData(chainId, pair);\n const volumeListOriginal = useVolumeChartData(chainId, pair);\n const sdk = useSDK(chainId);\n const volumeList = useMemo(\n () =>\n _.filter(volumeListOriginal, (v: VolumeChartData) => {\n const now = Date.now();\n return v?.timestamp && now - v.timestamp * 1000 > 1000 * 60 * 60 * 24;\n }),\n [volumeListOriginal],\n );\n const { t } = useTranslation();\n const { isMobile, deviceType } = useMediaQueryDevice();\n const fetchingStatus = useVolumeDataStatus(chainId, pair?.id);\n const dispatch = useAppDispatch();\n // const xTicks = useMemo(() => {\n // const timestamps = _.map(volumeList, (v) => v.timestamp);\n // const max = _.max(timestamps) || 0;\n // const min = _.min(timestamps) || 0;\n // const daySeconds = 60 * 60 * 24 * 1000;\n // const tickMax =\n // moment(max * 1000)\n // .hour(0)\n // .minute(0)\n // .valueOf() / 1000;\n // const tickMin =\n // moment(min * 1000 + daySeconds)\n // .hour(0)\n // .minute(0)\n // .valueOf() / 1000;\n // let cursor = tickMin;\n // const xTicks = [];\n\n // while (cursor < tickMax) {\n // xTicks.push(cursor);\n // cursor = cursor + daySeconds / 1000;\n // }\n // console.log('🚀 ~ file: index.tsx:44 ~ xTicks ~ xTicks:', min, max, xTicks);\n // return {\n // xMinMax: [min, max],\n // xTicks,\n // };\n // }, [volumeList]);\n // console.log('🚀 ~ file: index.tsx:62 ~ xTicks ~ xTicks:', xTicks);\n const CustomTooltip = useCallback(\n ({ active, payload }: ITooltipProps) => {\n if (active && payload && payload.length) {\n const timestamp = _.get(payload, [0, 'payload', 'timestamp']);\n const volume = _.get(payload, [0, 'payload', 'quoteVolume']);\n return (\n
\n
\n {moment(Number(timestamp) * 1000).format('YYYY-MM-DD')}\n
\n
\n {t('common.volume')}\n \n {WrappedBigNumber.from(volume).formatNumberWithTooltip({\n suffix: pair?.rootInstrument.marginToken.symbol,\n isShowTBMK: true,\n })}\n \n
\n
\n );\n }\n\n return null;\n },\n [pair?.rootInstrument.marginToken.symbol, t],\n );\n useEffect(() => {\n if (!chainId) return;\n if (pair && sdk) {\n dispatch(\n getTVLAndVolumeChartData({\n chainId,\n pair,\n sdk,\n }),\n );\n }\n }, [chainId, pair, pair?.id, dispatch, sdk]);\n\n return (\n \n
\n {fetchingStatus === FETCHING_STATUS.FETCHING && }\n {fetchingStatus === FETCHING_STATUS.DONE && (\n <>\n {/* \n \n \n \n \n \n \n \n \n {\n return formatDisplayNumber({ num: v });\n }}\n />\n \n \n */}\n \n \n \n \n \n \n \n \n {\n const date = moment(v * 1000);\n if (date.date() === 1) {\n return t(`common.months.${date.month() + 1}`);\n }\n return date.format('D');\n }}\n padding={{ left: 0, right: 0 }}\n />\n } />\n {\n return formatDisplayNumber({ num: v, isShowTBMK: true });\n }}\n />\n \n \n \n \n )}\n
\n
\n );\n};\n\nexport default InfoChart;\n","/**\n * @description Component-TVLWarningIcon\n */\nimport { useChainId } from '@/hooks/web3/useChain';\nimport './index.less';\n\nimport { ReactComponent as WarningIcon } from '@/assets/svg/icon_warning_yellow.svg';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Tooltip } from '../ToolTip';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n tvl?: WrappedBigNumber;\n}\nconst TVLWarningIcon: FC = function ({ tvl }) {\n const chainId = useChainId();\n const backendChainConfig = useBackendChainConfig(chainId);\n const { t } = useTranslation();\n const showWarning = useMemo(\n () => tvl?.lt(backendChainConfig?.tvlWarningAmount || 0),\n [backendChainConfig?.tvlWarningAmount, tvl],\n );\n if (!showWarning) {\n return null;\n }\n return (\n \n \n \n );\n};\n\nexport default TVLWarningIcon;\n","/**\n * @description Component-TVLWarningToaster\n */\nimport './index.less';\n\nimport { ReactComponent as WarningIcon } from '@/assets/svg/icon_warning_yellow.svg';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TVLWarningToaster: FC = function ({}) {\n const { t } = useTranslation();\n\n return (\n <>\n
\n \n
{t('common.market.tvlWarning')}
\n
\n \n );\n};\n\nexport default TVLWarningToaster;\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { useDebounceEffect, useDeepCompareEffect, useDocumentVisibility } from 'ahooks';\nimport { useEffect, useMemo } from 'react';\n\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { QUERY_KEYS } from '@/constants/query';\nimport { useMetaAccountMap } from '@/features/account/accountHook';\nimport { updatePortfolio } from '@/features/account/actions';\nimport { changeTokenBalanceAction } from '@/features/balance/actions';\nimport { updateFuturesFromChain } from '@/features/futures/actions';\nimport { changeTokenAllowance } from '@/features/user/actions';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useDappChainConfig, useUserAddr } from '@/hooks/web3/useChain';\nimport { queryClient } from '@/pages/App';\nimport { TokenInfo } from '@/types/token';\nimport {\n WorkerAllowanceResult,\n WorkerBalanceEventResult,\n WorkerDispatchGateEventResult,\n WorkerDispatchInstrumentEventResult,\n WorkerDispatchPortfolioEventResult,\n WorkerEventNames,\n WorkerFuturesResult,\n WorkerPortfolioResult,\n} from '@/types/worker';\nimport { watchWorkerEvent } from '@/worker/helper';\n\n// listener for user worker event\nexport function useUserWorkerEventListener(chainId: CHAIN_ID | undefined): void {\n const dispatch = useAppDispatch();\n const userAddr = useUserAddr();\n const sdk = useSDK(chainId);\n // worker balance event listener\n useEffect(() => {\n if (window.userWorker && chainId && userAddr) {\n watchWorkerEvent(\n window.userWorker,\n WorkerEventNames.BalanceEvent,\n (data) => {\n const result = data;\n dispatch(changeTokenBalanceAction(result));\n },\n {\n chainId,\n userAddr,\n },\n );\n\n watchWorkerEvent(\n window.userWorker,\n WorkerEventNames.UpdateTokenAllowanceEvent,\n (data) => {\n const result = data;\n dispatch(\n changeTokenAllowance({\n token: result.token as TokenInfo,\n allowanceInfo: result.allowanceInfo,\n block: result.block,\n chainId: result.chainId,\n userAddr: result.userAddr,\n sdk: sdk,\n }),\n );\n },\n {\n chainId,\n userAddr,\n },\n );\n\n watchWorkerEvent(\n window.userWorker,\n WorkerEventNames.ApprovalEvent,\n (data) => {\n const result = data;\n sdk &&\n dispatch(\n changeTokenAllowance({\n ...result,\n token: result.token as TokenInfo,\n sdk: sdk,\n }),\n );\n },\n {\n chainId,\n userAddr,\n },\n );\n }\n }, [chainId, dispatch, sdk, userAddr]);\n\n // // worker vault balance event listener\n // useEffect(() => {\n // if (window.synWorker && chainId && userAddr) {\n // watchWorkerEvent(\n // window.synWorker,\n // WorkerEventNames.UpdateGateBalanceEvent,\n // (data) => {\n // const result = data;\n // dispatch(changeTokenGateBalanceAction(result));\n // },\n // {\n // chainId,\n // userAddr,\n // },\n // );\n // }\n // }, [chainId, dispatch, userAddr]);\n}\n\nexport function useListenSingleInstrumentEvent(\n chainId: CHAIN_ID | undefined,\n userAddr: string | undefined,\n instrumentAddr: string | undefined,\n pageType = PAIR_PAGE_TYPE.TRADE,\n): void {\n const dispatch = useAppDispatch();\n const documentVisibility = useDocumentVisibility();\n const dappConfig = useDappChainConfig(chainId);\n\n const isDocVisibility = useMemo(() => {\n return documentVisibility === 'visible';\n }, [documentVisibility]);\n\n // trigger single instrument event listener, change pair will remove other instrument listener\n // trigger watch account event\n useDebounceEffect(\n () => {\n if (chainId && userAddr && instrumentAddr && isDocVisibility) {\n let needListener = true;\n if (dappConfig?.wssEventListener?.trade === false && pageType === PAIR_PAGE_TYPE.TRADE) {\n needListener = false;\n } else if (dappConfig?.wssEventListener?.earn === false && pageType === PAIR_PAGE_TYPE.EARN) {\n needListener = false;\n }\n if (needListener) {\n window.synWorker.postMessage({\n eventName: WorkerEventNames.InstrumentUpdateEvent,\n data: {\n chainId,\n userAddr,\n instrumentAddr,\n },\n });\n }\n }\n\n return () => {\n chainId &&\n window.synWorker?.postMessage({\n eventName: WorkerEventNames.RemoveAllInstrumentEventListener,\n data: {\n chainId,\n },\n });\n };\n },\n [chainId, dispatch, userAddr, instrumentAddr, isDocVisibility],\n { wait: 500 },\n );\n\n useEffect(() => {\n if (window.synWorker && userAddr && chainId && isDocVisibility) {\n watchWorkerEvent(\n window.synWorker,\n WorkerEventNames.InstrumentUpdateEvent,\n (data) => {\n dispatch(updatePortfolio(data));\n },\n {\n chainId,\n userAddr,\n },\n );\n }\n }, [chainId, dispatch, userAddr, isDocVisibility]);\n\n useEffect(() => {\n return () => {\n chainId &&\n window.synWorker?.postMessage({\n eventName: WorkerEventNames.RemoveAllSocketEventListener,\n data: {\n chainId,\n },\n });\n };\n }, [chainId]);\n\n useEffect(() => {\n if (!isDocVisibility) {\n chainId &&\n window.synWorker?.postMessage({\n eventName: WorkerEventNames.RemoveAllSocketEventListener,\n data: {\n chainId,\n },\n });\n }\n }, [isDocVisibility]);\n\n // watch futures event listener\n useEffect(() => {\n if (window.synWorker && chainId) {\n watchWorkerEvent(\n window.synWorker,\n WorkerEventNames.UpdateFuturesEvent,\n (data) => {\n const result = data;\n dispatch(\n updateFuturesFromChain({\n chainId,\n block: result.block,\n futuresRecord: result.futuresRecord,\n }),\n );\n },\n {\n chainId,\n },\n );\n }\n }, [chainId, dispatch]);\n\n // watch futures event listener\n useEffect(() => {\n if (window.synWorker && chainId) {\n watchWorkerEvent(\n window.synWorker,\n WorkerEventNames.DispatchInstrumentUpdateEvent,\n (data) => {\n const result = data;\n console.record('event', 'DispatchInstrumentEvent:', result.eventName, result);\n\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.FUTURES.INSTRUMENT(chainId, instrumentAddr) });\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.FUTURES.PAIR_INFO(chainId, instrumentAddr, result.expiry),\n });\n },\n {\n chainId,\n },\n );\n }\n }, [chainId, dispatch]);\n\n // watch portfolio event listener\n useEffect(() => {\n if (window.synWorker && chainId) {\n watchWorkerEvent(\n window.synWorker,\n WorkerEventNames.DispatchPortfolioUpdateEvent,\n (data) => {\n const result = data;\n console.record('event', 'DispatchPortfolioUpdateEvent:', result.eventName, result);\n\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.PORTFOLIO.PORTFOLIO(chainId, userAddr, result.instrumentAddr, result.expiry),\n });\n },\n {\n chainId,\n },\n );\n }\n }, [chainId, dispatch]);\n\n // watch account event listener\n useEffect(() => {\n if (window.synWorker && userAddr && chainId) {\n watchWorkerEvent(\n window.synWorker,\n WorkerEventNames.UpdatePortfolioEvent,\n (data) => {\n dispatch(updatePortfolio(data));\n },\n {\n chainId,\n userAddr,\n },\n );\n }\n }, [chainId, dispatch, userAddr]);\n}\n\n// listen all user's account event\nexport function useListenUserAccountsEvent(chainId: CHAIN_ID | undefined, userAddr: string | undefined): void {\n const dappConfig = useDappChainConfig(chainId);\n const documentVisibility = useDocumentVisibility();\n const accountMap = useMetaAccountMap(chainId, userAddr);\n const involvedInstrumentAddrList = useMemo(() => {\n return Object.values(accountMap || {}).map((account) => account.instrumentId);\n }, [accountMap]);\n\n const isDocVisibility = useMemo(() => {\n return documentVisibility === 'visible';\n }, [documentVisibility]);\n\n // only listen account change on instrument address change\n // also remove all event when doc is not visible\n useDeepCompareEffect(() => {\n if (chainId && userAddr && involvedInstrumentAddrList?.length && isDocVisibility) {\n let needListener = false;\n if (dappConfig?.wssEventListener?.portfolio === true) {\n needListener = true;\n }\n if (needListener) {\n involvedInstrumentAddrList.forEach((instrumentAddr) => {\n window.synWorker.postMessage({\n eventName: WorkerEventNames.InstrumentUpdateEvent,\n data: {\n chainId,\n userAddr,\n instrumentAddr,\n },\n });\n });\n }\n }\n\n return () => {\n chainId &&\n window.synWorker?.postMessage({\n eventName: WorkerEventNames.RemoveAllInstrumentEventListener,\n data: {\n chainId,\n },\n });\n };\n }, [chainId, userAddr, involvedInstrumentAddrList, isDocVisibility]);\n}\n\nexport function useListenGateEvent(chainId: CHAIN_ID | undefined, userAddr: string | undefined): void {\n const dispatch = useAppDispatch();\n const documentVisibility = useDocumentVisibility();\n\n const isDocVisibility = useMemo(() => {\n return documentVisibility === 'visible';\n }, [documentVisibility]);\n\n useDebounceEffect(\n () => {\n if (chainId && userAddr) {\n window.synWorker.postMessage({\n eventName: WorkerEventNames.WatchGateEvent,\n data: {\n chainId,\n userAddr,\n },\n });\n }\n return () => {\n chainId &&\n window.synWorker?.postMessage({\n eventName: WorkerEventNames.RemoveAllGateEventListener,\n data: {\n chainId,\n },\n });\n };\n },\n [userAddr, chainId, dispatch],\n { wait: 500 },\n );\n\n useEffect(() => {\n if (window.synWorker && userAddr && chainId && isDocVisibility) {\n watchWorkerEvent(\n window.synWorker,\n WorkerEventNames.DispatchGateUpdateEvent,\n (data) => {\n const result = data;\n console.record('event', 'DispatchGateUpdateEvent:', result.eventName, result);\n result.chainId &&\n result.userAddr &&\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.BALANCE.GATE(result.chainId, result.userAddr),\n });\n },\n {\n chainId,\n userAddr,\n },\n );\n }\n }, [chainId, dispatch, userAddr, isDocVisibility]);\n}\n","/**\n * @description Component-TradeMobileBanner\n */\nimport './index.less';\n\nimport React, { FC, useEffect, useMemo } from 'react';\nimport Marquee from 'react-fast-marquee';\nimport { useTranslation } from 'react-i18next';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { Skeleton } from '@/components/Skeleton';\nimport TVLWarningIcon from '@/components/TVLWarningIcon';\nimport TVLWarningToaster from '@/components/TVLWarningToaster';\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { QUERY_KEYS } from '@/constants/query';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useIsFetchedPairInfo, useMarketPairInfo } from '@/features/futures/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useListenSingleInstrumentEvent } from '@/hooks/data/useListenEventOnWorker';\nimport { usePollingSingleInstrumentDataOnTradeOrEarn } from '@/hooks/data/usePollingDataOnWorker';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { queryClient } from '@/pages/App';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n pageType?: PAIR_PAGE_TYPE;\n}\nconst MobileBanner: FC = function ({ pageType = PAIR_PAGE_TYPE.TRADE }) {\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { t } = useTranslation();\n const currentPair = useCurrentPairFromUrl(chainId);\n const isFetchedPairInfo = useIsFetchedPairInfo(chainId, currentPair?.instrumentAddr, currentPair?.expiry);\n const currPairInfo = useMarketPairInfo(chainId, currentPair?.instrumentAddr, currentPair?.expiry);\n const backendChainConfig = useBackendChainConfig(chainId);\n const showWarning = useMemo(\n () => currPairInfo?.tvlUsd?.lt(backendChainConfig?.tvlWarningAmount || 0),\n [backendChainConfig?.tvlWarningAmount, currPairInfo?.tvlUsd.stringValue],\n );\n useListenSingleInstrumentEvent(chainId, userAddr, currentPair?.rootInstrument?.id);\n usePollingSingleInstrumentDataOnTradeOrEarn(chainId, userAddr, currentPair?.rootInstrument?.id, currentPair?.expiry);\n // useFetchSingleInstrumentDataWhenChangePage(chainId, userAddr, currentPair?.rootInstrument?.id, currentPair?.expiry);\n useEffect(() => {\n if (chainId && currentPair?.rootInstrument?.instrumentAddr) {\n const instrumentAddr = currentPair.rootInstrument.instrumentAddr;\n const expiry = currentPair.expiry;\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.FUTURES.INSTRUMENT(chainId, instrumentAddr) });\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.FUTURES.PAIR_INFO(chainId, instrumentAddr, expiry),\n });\n }\n }, [chainId, currentPair?.expiry, currentPair?.rootInstrument?.instrumentAddr, dispatch]);\n if (!isFetchedPairInfo) {\n return (\n
\n \n \n \n
\n );\n }\n\n return (\n // the autofill will cause infinite loop\n <>\n
\n \n
\n {pageType === PAIR_PAGE_TYPE.TRADE ? (\n <>\n
\n
{t('common.markP')}
\n
\n \n {currentPair?.wrapAttribute('markPrice').formatPriceNumberWithTooltip()}\n \n
\n
\n /\n {currentPair?.isPerpetual && (\n <>\n
\n
{t('common.fundingEst')}
\n
\n \n {currentPair?.wrapAttribute('fundingRatePerHour').formatPercentage({\n hundredfold: true,\n colorShader: false,\n decimals: 4,\n })}\n \n
\n
\n /\n \n )}\n
\n
{t('common.24HV')}
\n
\n \n {currPairInfo?.volume24hUsd.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n isShowApproximatelyEqualTo: false,\n })}\n \n
\n
\n /\n
\n
{t('common.tvl')}
\n
\n \n {currPairInfo?.tvlUsd.formatNumberWithTooltip({ isShowTBMK: true, prefix: '$' })}\n \n \n
\n
\n /\n {!currentPair?.isPerpetual && (\n <>\n
\n
{t('common.oiS')}
\n
\n \n {currentPair?.wrapAttribute('openInterests').formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: currentPair.rootInstrument.baseToken.symbol,\n isShowApproximatelyEqualTo: false,\n })}\n \n
\n
\n /\n \n )}\n \n ) : (\n <>\n
\n
{t('common.earn.estPoolApy')}
\n
\n \n {currPairInfo?.liquidityApy?.formatPercentage({ colorShader: false })}\n \n
\n
\n /\n
\n
{t('common.tvl')}
\n
\n \n {currPairInfo?.tvlUsd.formatNumberWithTooltip({ isShowTBMK: true, prefix: '$' })}\n \n \n
\n
\n /\n
\n
{t('common.fairP')}
\n
\n \n {currentPair?.wrapAttribute('fairPrice').formatDisplayNumber({ isShowTBMK: true, type: 'price' })}\n \n
\n
\n /\n
\n
{t('common.24HV')}
\n
\n \n {currPairInfo?.volume24hUsd?.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n isShowApproximatelyEqualTo: false,\n })}\n \n
\n
\n /\n \n )}\n
\n
\n {showWarning && }\n
\n
\n \n );\n};\n\nexport default MobileBanner;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconLastTradeHover = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.25 7C1.25 6.80109 1.32902 6.61032 1.46967 6.46967C1.61032 6.32902 1.80109 6.25 2 6.25H10C10.1989 6.25 10.3897 6.32902 10.5303 6.46967C10.671 6.61032 10.75 6.80109 10.75 7C10.75 7.19891 10.671 7.38968 10.5303 7.53033C10.3897 7.67098 10.1989 7.75 10 7.75H2C1.80109 7.75 1.61032 7.67098 1.46967 7.53033C1.32902 7.38968 1.25 7.19891 1.25 7ZM1.25 12C1.25 11.8011 1.32902 11.6103 1.46967 11.4697C1.61032 11.329 1.80109 11.25 2 11.25H8C8.19891 11.25 8.38968 11.329 8.53033 11.4697C8.67098 11.6103 8.75 11.8011 8.75 12C8.75 12.1989 8.67098 12.3897 8.53033 12.5303C8.38968 12.671 8.19891 12.75 8 12.75H2C1.80109 12.75 1.61032 12.671 1.46967 12.5303C1.32902 12.3897 1.25 12.1989 1.25 12ZM1.25 17C1.25 16.8011 1.32902 16.6103 1.46967 16.4697C1.61032 16.329 1.80109 16.25 2 16.25H10C10.1989 16.25 10.3897 16.329 10.5303 16.4697C10.671 16.6103 10.75 16.8011 10.75 17C10.75 17.1989 10.671 17.3897 10.5303 17.5303C10.3897 17.671 10.1989 17.75 10 17.75H2C1.80109 17.75 1.61032 17.671 1.46967 17.5303C1.32902 17.3897 1.25 17.1989 1.25 17ZM17 17C18.3261 17 19.5979 16.4732 20.5355 15.5355C21.4732 14.5979 22 13.3261 22 12C22 10.6739 21.4732 9.40215 20.5355 8.46447C19.5979 7.52678 18.3261 7 17 7C15.6739 7 14.4021 7.52678 13.4645 8.46447C12.5268 9.40215 12 10.6739 12 12C12 13.3261 12.5268 14.5979 13.4645 15.5355C14.4021 16.4732 15.6739 17 17 17ZM17.75 10C17.75 9.80109 17.671 9.61032 17.5303 9.46967C17.3897 9.32902 17.1989 9.25 17 9.25C16.8011 9.25 16.6103 9.32902 16.4697 9.46967C16.329 9.61032 16.25 9.80109 16.25 10V11.846C16.25 12.026 16.315 12.201 16.433 12.337L17.433 13.491C17.4975 13.5655 17.576 13.6265 17.6641 13.6706C17.7521 13.7147 17.848 13.7411 17.9463 13.7481C18.0445 13.7552 18.1432 13.7428 18.2366 13.7117C18.3301 13.6807 18.4165 13.6315 18.491 13.567C18.5655 13.5025 18.6265 13.424 18.6706 13.3359C18.7147 13.2479 18.7411 13.152 18.7481 13.0537C18.7552 12.9555 18.7428 12.8568 18.7117 12.7634C18.6807 12.6699 18.6315 12.5835 18.567 12.509L17.75 11.566V10Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconLastTradeHover);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_last_trade_hover.31d8d38208a8d5cf71d79e1f322d0511.svg\";","export enum HISTORY_TYPE {\n TRADE = 'TRADE',\n ORDERS = 'ORDERS',\n LIQUIDITY = 'LIQUIDITY',\n LIQUIDITY_MOBILE = 'LIQUIDITY_MOBILE',\n TRANSFERS = 'TRANSFERS',\n FUNDING = 'FUNDING',\n ACCOUNT = 'ACCOUNT',\n}\nexport enum HISTORY_RANGE {\n ALL = 'ALL',\n D_1 = '1D',\n D_7 = '7D',\n M_1 = '1M',\n M_3 = '3M',\n}\nexport const DEFAULT_HISTORY_PAGE_SIZE = 60;\nexport const MAX_HISTORY_PAGE_SIZE = 1000;\nexport const DEFAULT_HISTORY_PAGE_SIZE_LOCAL = 30;\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconLink48 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 48,\n height: 48,\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1600_47431)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25 32C22.6 32 20.4 31 18.6 29.4C17.8 28.6 17.8 27.4 18.6 26.6C19.4 25.8 20.6 25.8 21.4 26.6C23.4 28.6 26.6 28.6 28.4 26.6L36.4 18.6C37.6 17.6 38 16.4 38 15C38 13.6 37.4 12.4 36.6 11.4C34.6 9.40002 31.4 9.40002 29.4 11.4L28.4 12.4C27.6 13.2 26.4 13.2 25.6 12.4C24.8 11.6 24.8 10.4 25.6 9.60003L26.6 8.60002C30.2 5.00002 35.8 5.00002 39.4 8.60002C43 12.2 43 17.8 39.4 21.4L31.4 29.4L31.2 29.6C29.6 31.2 27.2 32 25 32Z\",\n fill: \"#ABB5BA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 42C12.6 42 10.4 41.2 8.60002 39.4C5.00002 35.8 5.00002 30.2 8.60002 26.6L16.6 18.6C20.2 15 26 15 29.4 18.6C30.2 19.4 30.2 20.6 29.4 21.4C28.6 22.2 27.4 22.2 26.6 21.4C25.6 20.4 24.4 20 23 19.8C21.6 19.8 20.4 20.4 19.6 21.2L11.6 29.2C10.4 30.4 10 31.6 10 33C10 34.4 10.6 35.6 11.4 36.6C13.4 38.6 16.6 38.6 18.6 36.6L19.6 35.6C20.4 34.8 21.6 34.8 22.4 35.6C23.2 36.4 23.2 37.6 22.4 38.4L21.4 39.4C19.6 41.2 17.4 42 15 42Z\",\n fill: \"#ABB5BA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30 42C30 43.2 30.8 44 32 44C33.2 44 34 43.2 34 42V38C34 36.8 33.2 36 32 36C30.8 36 30 36.8 30 38V42Z\",\n fill: \"#E2E7E9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 34H42C43.2 34 44 33.2 44 32C44 30.8 43.2 30 42 30H38C36.8 30 36 30.8 36 32C36 33.2 36.8 34 38 34Z\",\n fill: \"#E2E7E9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 18H10C11.2 18 12 17.2 12 16C12 14.8 11.2 14 10 14H6C4.8 14 4 14.8 4 16C4 17.2 4.8 18 6 18Z\",\n fill: \"#E2E7E9\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 10C14 11.2 14.8 12 16 12C17.2 12 18 11.2 18 10V6C18 4.8 17.2 4 16 4C14.8 4 14 4.8 14 6V10Z\",\n fill: \"#E2E7E9\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1600_47431\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconLink48);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_link_48.9064953dbdd6e4fd9fedf416dcca418d.svg\";","var _g;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconNoLinkDark = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 48,\n height: 48,\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Frame\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M25 31.9999C22.6 31.9999 20.4 30.9999 18.6 29.3999C17.8 28.5999 17.8 27.3999 18.6 26.5999C19.4 25.7999 20.6 25.7999 21.4 26.5999C23.4 28.5999 26.6 28.5999 28.4 26.5999L36.4 18.5999C37.6 17.5999 38 16.3999 38 14.9999C38 13.5999 37.4 12.3999 36.6 11.3999C34.6 9.3999 31.4 9.3999 29.4 11.3999L28.4 12.3999C27.6 13.1999 26.4 13.1999 25.6 12.3999C24.8 11.5999 24.8 10.3999 25.6 9.5999L26.6 8.5999C30.2 4.9999 35.8 4.9999 39.4 8.5999C43 12.1999 43 17.7999 39.4 21.3999L31.4 29.3999L31.2 29.5999C29.6 31.1999 27.2 31.9999 25 31.9999Z\",\n fill: \"#00A2A7\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M15 41.9999C12.6 41.9999 10.4 41.1999 8.6 39.3999C5 35.7999 5 30.1999 8.6 26.5999L16.6 18.5999C20.2 14.9999 26 14.9999 29.4 18.5999C30.2 19.3999 30.2 20.5999 29.4 21.3999C28.6 22.1999 27.4 22.1999 26.6 21.3999C25.6 20.3999 24.4 19.9999 23 19.7999C21.6 19.7999 20.4 20.3999 19.6 21.1999L11.6 29.1999C10.4 30.3999 10 31.5999 10 32.9999C10 34.3999 10.6 35.5999 11.4 36.5999C13.4 38.5999 16.6 38.5999 18.6 36.5999L19.6 35.5999C20.4 34.7999 21.6 34.7999 22.4 35.5999C23.2 36.3999 23.2 37.5999 22.4 38.3999L21.4 39.3999C19.6 41.1999 17.4 41.9999 15 41.9999Z\",\n fill: \"#00A2A7\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Vector_3\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30 42C30 43.2 30.8 44 32 44C33.2 44 34 43.2 34 42V38C34 36.8 33.2 36 32 36C30.8 36 30 36.8 30 38V42Z\",\n fill: \"#04606E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M38 34H42C43.2 34 44 33.2 44 32C44 30.8 43.2 30 42 30H38C36.8 30 36 30.8 36 32C36 33.2 36.8 34 38 34Z\",\n fill: \"#04606E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 18H10C11.2 18 12 17.2 12 16C12 14.8 11.2 14 10 14H6C4.8 14 4 14.8 4 16C4 17.2 4.8 18 6 18Z\",\n fill: \"#04606E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14 10C14 11.2 14.8 12 16 12C17.2 12 18 11.2 18 10V6C18 4.8 17.2 4 16 4C14.8 4 14 4.8 14 6V10Z\",\n fill: \"#04606E\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconNoLinkDark);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_no_link_dark.1ddf3b93643d9399ec8d4e3bc958172d.svg\";","var _path, _path2, _path3;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgNoRecordD = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 48,\n height: 48,\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.8772 14.7211C23.1117 14.7211 22.4828 14.0953 22.4828 13.3334V5.38776C22.4828 4.62585 23.1117 4 23.8772 4C24.6428 4 25.2716 4.62585 25.2716 5.38776V13.3606C25.2716 14.1225 24.6428 14.7211 23.8772 14.7211ZM33.2005 14.6667C32.435 14.6667 31.8061 14.0408 31.8061 13.2789C31.8061 12.9524 31.9155 12.6531 32.1069 12.4082L35.2784 8.51702C35.5519 8.19049 35.9346 8.00001 36.3721 8.00001C36.7002 8.00001 37.0009 8.10886 37.247 8.29933C37.5478 8.51702 37.7118 8.87076 37.7665 9.2245C37.7938 9.57825 37.6845 9.9592 37.4657 10.2313L34.2942 14.1225C34.0208 14.5034 33.638 14.6939 33.2005 14.6667ZM14.718 14.5851C14.3078 14.5851 13.8977 14.3946 13.6243 14.0681L10.5074 10.1497C10.0426 9.55104 10.1247 8.68028 10.7262 8.19049C10.9722 8.00001 11.273 7.89117 11.6011 7.89117C12.0385 7.89117 12.4213 8.08164 12.6947 8.40818L15.8116 12.3266C16.2764 12.9252 16.1944 13.7959 15.5929 14.2857C15.3468 14.4762 15.0187 14.5851 14.718 14.5851Z\",\n fill: \"#04606E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.37891 27.374H18.5997C19.1465 27.374 19.6113 27.8366 19.6113 28.3809C19.6113 30.7754 21.5251 32.653 23.9585 32.653C26.3919 32.653 28.3057 30.7754 28.3057 28.3809C28.3057 27.8366 28.7705 27.374 29.3174 27.374L43.5732 27.3741C43.5732 27.3741 43.1642 26.4461 43.1246 26.3672C43.1246 26.34 43.0973 26.34 43.0973 26.34L38.75 19.4829C38.75 19.4557 38.7227 19.4557 38.7227 19.4284C38.6407 19.3468 37.9845 18.5033 37.2189 18.0679C36.426 17.6053 35.3324 17.5237 35.1957 17.5237H11.9558C11.7644 17.5237 10.8348 17.5509 10.0966 17.9863C9.35836 18.4489 8.81154 19.238 8.75686 19.3196C8.75686 19.3196 8.72952 19.3468 8.72952 19.374L5.06581 25.8502C4.96586 25.9995 4.37891 27.374 4.37891 27.374Z\",\n fill: \"#00A2A7\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.0834 29.9319L30.2201 29.4149H43.9723C43.9723 29.4149 44 29.7362 44 29.7687L43.9453 37.1156C43.9453 37.4149 43.8906 38.449 43.0431 39.2109C42.1955 39.9728 40.9651 40 40.7191 40H7.11688H7.08954H7.0622C6.9255 40 5.66781 39.9456 4.87491 39.2109C4.08202 38.4762 4 37.3605 4 37.2245V29.8775C4 29.7857 4.00972 29.4149 4.00972 29.4149H17.6159L17.7526 29.9319C18.4634 32.7074 21.0062 34.6666 23.9316 34.6666C26.8298 34.6666 29.3725 32.7347 30.0834 29.9319Z\",\n fill: \"#04606E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgNoRecordD);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/no_record_d.5c7c29eabfde569cab1ee05eb8f6061a.svg\";","import './empty.less';\n\nimport cls from 'classnames';\nimport React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { GlobalModalType, THEME_ENUM } from '@/constants';\nimport { useIsIpBlocked, useTheme, useToggleModal } from '@/features/global/hooks';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\n\nimport { NoRecordIcon } from '@/assets/svg';\nimport { Tooltip } from '../ToolTip';\nimport { ReactComponent as NoConnectIcon } from './assets/icon_link_48.svg';\nimport { ReactComponent as NoConnectIconD } from './assets/icon_no_link_dark.svg';\nimport { ReactComponent as NoRecordIconD } from './assets/no_record_d.svg';\n\nexport default function Empty({\n className = '',\n title,\n desc,\n icon,\n type = 'horizontal',\n extra,\n isOpenLinkInNewTab = false,\n link,\n showUnconnected = true,\n onLinkClick,\n showTitle = true,\n noRecordIconColor,\n}: {\n className?: string;\n title?: React.ReactNode;\n desc?: React.ReactNode;\n icon?: React.ReactNode | 'no-record' | 'no-connect';\n type?: 'horizontal' | 'vertical';\n extra?: React.ReactNode;\n link?: string;\n showTitle?: boolean;\n showUnconnected?: boolean;\n onLinkClick?: () => void;\n isOpenLinkInNewTab?: boolean;\n noRecordIconColor?: { color1: string; color2: string };\n}): JSX.Element {\n const connectionStatus = useWalletConnectStatus();\n const toggleWalletModal = useToggleModal(GlobalModalType.Wallet);\n const { dataTheme } = useTheme();\n const isIpBlocked = useIsIpBlocked();\n const isUnConnect = useMemo(() => {\n return connectionStatus === WALLET_CONNECT_STATUS.UN_CONNECT;\n }, [connectionStatus]);\n\n const { t } = useTranslation();\n title = title || t('common.empty.defaultTile');\n const linkTarget = useMemo(() => {\n if (isOpenLinkInNewTab) {\n return { target: '_blank', rel: 'noreferrer noopener' };\n }\n return {};\n }, [isOpenLinkInNewTab]);\n\n const iconDom = useMemo(() => {\n if (isUnConnect && showUnconnected) return dataTheme === THEME_ENUM.DARK ? : ;\n if (icon) {\n if (typeof icon === 'string') {\n switch (icon) {\n case 'no-record':\n return dataTheme === THEME_ENUM.DARK ? : ;\n break;\n case 'no-connect':\n return dataTheme === THEME_ENUM.DARK ? (\n \n ) : (\n \n );\n break;\n default:\n break;\n }\n } else {\n return icon;\n }\n }\n return dataTheme === THEME_ENUM.DARK ? : ;\n }, [isUnConnect, showUnconnected, dataTheme, icon, noRecordIconColor]);\n\n if (isUnConnect && showUnconnected) {\n desc = t('common.empty.ConnectWallet');\n }\n\n const descDom = useMemo(() => {\n if (isUnConnect && showUnconnected) {\n return (\n
\n \n {\n !isIpBlocked && toggleWalletModal(true);\n }}>\n {t('common.empty.ConnectWallet')}\n \n \n
\n );\n }\n if (!isUnConnect) {\n return (\n desc && (\n
\n {link ? (\n onLinkClick && onLinkClick()} href={link} {...linkTarget}>\n {desc}\n \n ) : (\n desc\n )}\n
\n )\n );\n }\n return <>;\n }, [desc, isUnConnect, isIpBlocked, link, linkTarget, onLinkClick, showUnconnected, t, toggleWalletModal]);\n\n return (\n \n
{iconDom}
\n
\n {showTitle &&

{title}

}\n {descDom}\n {extra}\n
\n
\n );\n}\n","import './index.less';\n\nimport { useDebounceEffect } from 'ahooks';\nimport { Table as AntDTable, ConfigProvider, TableProps } from 'antd';\nimport classnames from 'classnames';\nimport type { TableSticky } from 'rc-table/lib/interface';\nimport { useCallback, useMemo, useState } from 'react';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\n\nimport Empty from '../Empty';\nimport SkeletonTable, { SkeletonTableColumnsType } from '../SkeletonTable';\n\nexport default function Table({\n showUnconnected = true,\n sticky = true,\n showEmptyTitle = true,\n rowCount = 3,\n requiredSkeleton = false,\n ...props\n}: // eslint-disable-next-line @typescript-eslint/no-explicit-any\nTableProps & {\n isFullLoading?: boolean;\n emptyDesc?: string;\n emptyDescLink?: string;\n emptyType?: 'horizontal' | 'vertical';\n emptyTitle?: string;\n emptyDescLinkClick?: () => void;\n scrolledToEnd?: () => void;\n emptyIcon?: React.ReactNode;\n showEmptyTitle?: boolean;\n showUnconnected?: boolean;\n rowCount?: number;\n requiredSkeleton?: boolean;\n}): JSX.Element {\n const { deviceType } = useMediaQueryDevice();\n const isFullLoading = useMemo(() => {\n return props.isFullLoading || true;\n }, [props.isFullLoading]);\n const [isEmptyDelayed, setIsEmtpyDelayed] = useState(false);\n useDebounceEffect(\n () => {\n setIsEmtpyDelayed(!props.dataSource || !props.dataSource.length);\n },\n [props.dataSource],\n { wait: 300 },\n );\n const renderEmpty = useCallback(() => {\n return (\n !props.loading && (\n \n )\n );\n }, [\n props.emptyDesc,\n props.emptyDescLink,\n props.emptyDescLinkClick,\n props.emptyIcon,\n props.emptyTitle,\n showEmptyTitle,\n props.emptyType,\n props.loading,\n showUnconnected,\n ]);\n // require sticky for table header and body gap\n return (\n \n <>}>\n \n \n \n );\n}\n\nexport type { TableSticky };\n","import './index.less';\n\nimport { SkeletonProps } from 'antd';\nimport { ColumnsType } from 'antd/lib/table';\nimport classNames from 'classnames';\n\nimport { Skeleton } from '../Skeleton';\nimport Table from '../Table';\nexport type SkeletonTableColumnsType = {\n key: string;\n};\n\ntype SkeletonTableProps = SkeletonProps & {\n columns: ColumnsType;\n rowCount?: number;\n};\n\nexport default function SkeletonTable({\n loading = false,\n rowCount = 5,\n columns,\n children,\n className,\n}: SkeletonTableProps): JSX.Element {\n return loading ? (\n ({\n key: `key${index}`,\n }))}\n columns={columns.map((column, i) => {\n return {\n ...column,\n render: () => (\n \n ),\n };\n })}\n />\n ) : (\n <>{children}\n );\n}\n","import { BigNumber } from 'ethers';\nimport _ from 'lodash';\nimport moment from 'moment';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { DEFAULT_HISTORY_PAGE_SIZE, HISTORY_RANGE, HISTORY_TYPE } from '@/constants/history';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { IFundingHistory, IGraphPairBasicInfo, ILiquidityHistory, ITransferHistory } from '@/types/graph';\n\nimport { DEFAULT_DECIMALS } from '@/constants/global';\nimport { TokenInfoMap } from '@/types/token';\nimport { Context } from '@derivation-tech/context';\nimport { Side } from '@synfutures/sdks-perp';\nimport {\n AccountBalanceHistory,\n OrderHistory,\n OrderStatus,\n VirtualTradeHistory,\n} from '@synfutures/sdks-perp-datasource';\nimport { formatEther } from './numberUtil';\nimport { retryGeneralPromise } from './retry';\nimport { fixBalanceNumberDecimalsTo18 } from './token';\nimport { getPairId } from './transform/transformId';\n\nexport function getStartEndTimeByRangeType(rangeType: HISTORY_RANGE): { startTime: number; endTime: number } {\n const utcNow = moment.utc();\n const endTime = utcNow.unix();\n if (rangeType === HISTORY_RANGE.D_1) {\n const startTime = utcNow.add(-1, 'd').unix();\n return { startTime, endTime };\n } else if (rangeType === HISTORY_RANGE.D_7) {\n const startTime = utcNow.add(-7, 'd').unix();\n return { startTime, endTime };\n } else if (rangeType === HISTORY_RANGE.M_1) {\n const startTime = utcNow.add(-1, 'month').unix();\n return { startTime, endTime };\n } else if (rangeType === HISTORY_RANGE.M_3) {\n const startTime = utcNow.add(-3, 'month').unix();\n return { startTime, endTime };\n }\n\n const startTime = 0;\n return { startTime, endTime };\n}\n\nexport const getOrdersHistoryFromSDK = async ({\n chainId,\n userAddr,\n instrumentAddr,\n expiry,\n timeRange,\n page,\n pageSize = DEFAULT_HISTORY_PAGE_SIZE,\n requiredAllData = false,\n requiredOpenDataOnly = false,\n sdk,\n}: {\n isPolling?: boolean;\n chainId: CHAIN_ID;\n userAddr: string;\n instrumentAddr?: string;\n expiry?: number;\n timeRange: HISTORY_RANGE;\n page?: number;\n pageSize?: number;\n requiredAllData?: boolean;\n requiredOpenDataOnly?: boolean;\n sdk: Context;\n}): Promise => {\n const { startTime, endTime } = getStartEndTimeByRangeType(timeRange);\n let orderHistoryList = await retryGeneralPromise(\n sdk.perpDataSource.history.getOrderHistory({\n instrumentAddr: instrumentAddr,\n expiry,\n traders: [userAddr],\n startTs: startTime,\n endTs: endTime,\n page,\n size: requiredAllData ? undefined : pageSize,\n }),\n );\n if (orderHistoryList) {\n if (requiredOpenDataOnly) {\n orderHistoryList = orderHistoryList.filter((o) => o.status == OrderStatus.OPEN);\n } else {\n orderHistoryList = orderHistoryList.filter((o) => o.status !== OrderStatus.OPEN);\n }\n }\n console.record('graph', `Query [getOrderHistory]`, orderHistoryList, {\n chainId,\n userAddr,\n });\n return _.orderBy(\n orderHistoryList.map((o) => ({ ...o, logIndex: o.fillTxLogIndex || o.cancelTxLogIndex || o.placeTxLogIndex })),\n ['createdTimestamp'],\n ['desc'],\n );\n};\n\ntype TtransformHistoryDataToCsvData = { pairBasicInfos: { [pairId: string]: IGraphPairBasicInfo } | undefined } & (\n | {\n type: HISTORY_TYPE.TRADE;\n data: VirtualTradeHistory[];\n }\n | {\n type: HISTORY_TYPE.ORDERS;\n data: OrderHistory[];\n }\n | {\n type: HISTORY_TYPE.LIQUIDITY;\n data: ILiquidityHistory[];\n }\n | {\n type: HISTORY_TYPE.FUNDING;\n data: IFundingHistory[];\n }\n | {\n type: HISTORY_TYPE.TRANSFERS;\n data: ITransferHistory[];\n }\n | {\n type: HISTORY_TYPE.ACCOUNT;\n data: AccountBalanceHistory[];\n marginTokenMap: TokenInfoMap | undefined;\n }\n);\n\nexport const getSymbolAndTimeAndPair = (\n item: { instrumentAddr: string; expiry: number; timestamp: number },\n pairBasicInfos:\n | {\n [pairId: string]: IGraphPairBasicInfo;\n }\n | undefined,\n) => {\n const pair = _.get(pairBasicInfos, [getPairId(item.instrumentAddr, item.expiry)]);\n\n return {\n pair,\n symbolAndTime: {\n time: new Date(item.timestamp * 1000).toLocaleString('en-GB'),\n 'pair symbol': pair?.symbol,\n 'base symbol': pair?.rootInstrument.baseToken.symbol,\n 'quote symbol': pair?.rootInstrument.quoteToken.symbol,\n },\n };\n};\nexport const transformHistoryDataToCsvData = (props: TtransformHistoryDataToCsvData): object[] => {\n if (props.type === HISTORY_TYPE.TRADE) {\n const { data, pairBasicInfos } = props;\n return data.map((item) => {\n const { symbolAndTime } = getSymbolAndTimeAndPair(item, pairBasicInfos);\n // const side = getAdjustTradeSide(item.size.gte(0) ? Side.LONG : Side.SHORT, pair?.isInverse || false, {\n // fee: item.fee,\n // type: item.type,\n // });\n const side = item.side;\n return {\n ...symbolAndTime,\n 'tx hash': item.txHash,\n side: {\n [Side.LONG]: 'LONG',\n [Side.SHORT]: 'SHORT',\n [Side.FLAT]: 'FLAT',\n }[side],\n size: formatEther(item.size.abs()),\n price: formatEther(item.price),\n 'trade value': formatEther(item.tradeValue.abs()),\n fee: formatEther(item.fee),\n type: item.type,\n };\n });\n }\n if (props.type === HISTORY_TYPE.ORDERS) {\n const { data, pairBasicInfos } = props;\n return data.map((item) => {\n const { symbolAndTime } = getSymbolAndTimeAndPair(item, pairBasicInfos);\n // const side = getAdjustTradeSide(item.size.gte(0) ? Side.LONG : Side.SHORT, pair?.isInverse || false);\n const side = item.side;\n // const oPrice = item.status === OrderStatus.CANCELLED ? TickMath.getWadAtTick(item.tick) : item.price;\n const oPrice = item.price;\n return {\n 'tx hash': item.placeTxHash,\n ...symbolAndTime,\n side: {\n [Side.LONG]: 'LONG',\n [Side.SHORT]: 'SHORT',\n [Side.FLAT]: 'FLAT',\n }[side],\n size: formatEther(item.size.abs()),\n 'filled size': formatEther(item.filledSize.abs()),\n 'order price': formatEther(oPrice),\n 'fee rebate': formatEther(item.fee),\n 'trade value': WrappedBigNumber.from(item.tradeValue)?.stringValue,\n status: item.status,\n };\n });\n }\n if (props.type === HISTORY_TYPE.LIQUIDITY) {\n const { data, pairBasicInfos } = props;\n return data.flatMap((item) => {\n if (item.instrumentAddr && item.expiry !== undefined) {\n const { symbolAndTime } = getSymbolAndTimeAndPair(\n item as { instrumentAddr: string; expiry: number; timestamp: number },\n pairBasicInfos,\n );\n return [\n {\n 'tx hash': item.txHash,\n ...symbolAndTime,\n type: item.type,\n 'fair price': WrappedBigNumber.from(item.fairPrice).formatPriceString(),\n 'upper price': formatEther(item.upperPrice.abs()),\n 'lower price': formatEther(item.lowerPrice.abs()),\n amount: formatEther(item.amount.abs()),\n 'fees earned': formatEther((item.feeEarned || BigNumber.from(0)).abs()),\n },\n ];\n }\n return [];\n });\n }\n if (props.type === HISTORY_TYPE.FUNDING) {\n const { data, pairBasicInfos } = props;\n return data.flatMap((item) => {\n if (item.instrumentAddr && item.expiry !== undefined) {\n const { symbolAndTime } = getSymbolAndTimeAndPair(\n item as { instrumentAddr: string; expiry: number; timestamp: number },\n pairBasicInfos,\n );\n return [\n {\n 'tx hash': item.txHash,\n ...symbolAndTime,\n action: item.type,\n amount: formatEther(item.funding.abs()),\n },\n ];\n }\n return [];\n });\n }\n if (props.type === HISTORY_TYPE.TRANSFERS) {\n const { data, pairBasicInfos } = props;\n const result = data.flatMap((item) => {\n if (item.instrumentAddr && item.expiry !== undefined) {\n const { symbolAndTime, pair } = getSymbolAndTimeAndPair(\n item as { instrumentAddr: string; expiry: number; timestamp: number },\n pairBasicInfos,\n );\n return [\n {\n 'tx hash': item.txHash,\n ...symbolAndTime,\n direction: item.isTransferIn ? 'Transfer In' : 'Transfer Out',\n amount: WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(item.amount, pair?.rootInstrument?.quoteToken.decimals || DEFAULT_DECIMALS),\n ).abs().stringValue,\n },\n ];\n }\n\n return [];\n });\n\n return result;\n }\n if (props.type === HISTORY_TYPE.ACCOUNT) {\n const { data } = props;\n console.log(`account history data`, data);\n\n return data.map((item) => {\n return {\n time: item.timestamp ? new Date(item.timestamp * 1000).toLocaleString('en-GB') : item.timestamp,\n 'tx hash': item.txHash,\n account: props.marginTokenMap?.[item.quoteAddr]?.symbol,\n type: item.type,\n amount: WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(\n item.amount,\n props.marginTokenMap?.[item.quoteAddr]?.decimals || DEFAULT_DECIMALS,\n ),\n )?.stringValue,\n };\n });\n }\n return [];\n};\n","import { CHAIN_ID } from '@/constants/chain';\nimport { DEFAULT_HISTORY_PAGE_SIZE, HISTORY_RANGE } from '@/constants/history';\nimport { IGraphInstrumentBasicInfo, IGraphPairBasicInfo } from '@/types/graph';\nimport { getStartEndTimeByRangeType } from '@/utils/history';\nimport { showProperDateString } from '@/utils/timeUtils';\nimport { getTokenInfo } from '@/utils/token';\nimport { getPairId } from '@/utils/transform/transformId';\nimport { Context } from '@derivation-tech/context';\nimport { OrderStatus } from '@synfutures/sdks-perp-datasource';\nimport _ from 'lodash';\n\nexport const getAllPairBasicInfoByGraph = async (chainId: number | undefined, sdk: Context | undefined) => {\n if (chainId && sdk) {\n const infos = await sdk.perpDataSource.statistics.getInstrumentsInfo();\n const basicInstruments: IGraphInstrumentBasicInfo[] = infos.map((info) => ({\n ...info,\n id: info.address,\n instrumentAddr: info.address,\n baseToken: getTokenInfo(info.base, chainId),\n quoteToken: getTokenInfo(info.quote, chainId),\n chainId,\n }));\n\n const basicPairs = basicInstruments.reduce((acc, info) => {\n const { expiries } = info;\n expiries?.forEach((expiry) => {\n if (expiry) {\n const pairId = getPairId(info.instrumentAddr, expiry);\n if (pairId) {\n acc[pairId] = {\n id: pairId,\n expiry,\n isInverse: info.isInverse,\n rootInstrument: info,\n chainId,\n symbol: `${info.symbol}-${showProperDateString({\n expiry,\n format: 'MMDD',\n showShortPerp: true,\n })}`,\n };\n }\n }\n });\n\n return acc;\n }, {} as { [pairId: string]: IGraphPairBasicInfo });\n\n return basicPairs;\n }\n};\n\nexport const getVirtualTradeHistory = async ({\n chainId,\n userAddr,\n instrumentAddr,\n expiry,\n page,\n pageSize = DEFAULT_HISTORY_PAGE_SIZE,\n timeRange,\n requiredAllData = false,\n sdk,\n}: {\n chainId: CHAIN_ID | undefined;\n userAddr: string | undefined;\n instrumentAddr: string | undefined;\n expiry: number | undefined;\n page?: number;\n pageSize?: number;\n timeRange: HISTORY_RANGE;\n requiredAllData?: boolean;\n sdk: Context;\n}) => {\n if (!userAddr) {\n return [];\n }\n const { startTime, endTime } = getStartEndTimeByRangeType(timeRange);\n const tradeHistoryList = await sdk.perpDataSource.history.getVirtualTradeHistory({\n instrumentAddr: instrumentAddr,\n expiry,\n traders: [userAddr],\n startTs: startTime,\n endTs: endTime,\n page,\n size: requiredAllData ? undefined : pageSize,\n });\n console.record('graph', `Query [getTradeHistory]`, tradeHistoryList, {\n chainId,\n userAddr,\n });\n return _.orderBy(tradeHistoryList, ['timestamp'], ['desc']);\n};\n\nexport const getOrdersHistory = async ({\n chainId,\n userAddr,\n instrumentAddr,\n expiry,\n timeRange,\n page,\n pageSize = DEFAULT_HISTORY_PAGE_SIZE,\n requiredAllData = false,\n requiredOpenDataOnly = false,\n sdk,\n}: {\n isPolling?: boolean;\n chainId: CHAIN_ID | undefined;\n userAddr: string | undefined;\n instrumentAddr?: string;\n expiry?: number;\n timeRange: HISTORY_RANGE;\n page?: number;\n pageSize?: number;\n requiredAllData?: boolean;\n requiredOpenDataOnly?: boolean;\n sdk: Context;\n}) => {\n if (!userAddr) {\n return [];\n }\n const { startTime, endTime } = getStartEndTimeByRangeType(timeRange);\n let orderHistoryList = await sdk.perpDataSource.history.getOrderHistory({\n instrumentAddr: instrumentAddr,\n expiry,\n traders: [userAddr],\n startTs: startTime,\n endTs: endTime,\n page,\n size: requiredAllData ? undefined : pageSize,\n });\n if (orderHistoryList) {\n if (requiredOpenDataOnly) {\n orderHistoryList = orderHistoryList.filter((o) => o.status == OrderStatus.OPEN);\n } else {\n orderHistoryList = orderHistoryList.filter((o) => o.status !== OrderStatus.OPEN);\n }\n }\n console.record('graph', `Query [getOrderHistory]`, orderHistoryList, {\n chainId,\n userAddr,\n });\n return _.orderBy(\n orderHistoryList.map((o) => ({ ...o, logIndex: o.fillTxLogIndex || o.cancelTxLogIndex || o.placeTxLogIndex })),\n ['createdTimestamp'],\n ['desc'],\n );\n};\n\nexport const getFundingHistory = async ({\n chainId,\n userAddr,\n instrumentAddr,\n expiry,\n timeRange,\n page,\n pageSize = DEFAULT_HISTORY_PAGE_SIZE,\n requiredAllData = false,\n sdk,\n}: {\n chainId: CHAIN_ID | undefined;\n userAddr: string | undefined;\n instrumentAddr?: string;\n expiry?: number;\n timeRange: HISTORY_RANGE;\n page?: number;\n pageSize?: number;\n requiredAllData?: boolean;\n sdk: Context;\n}) => {\n if (!userAddr) return [];\n\n const { startTime, endTime } = getStartEndTimeByRangeType(timeRange);\n const historyList = await sdk.perpDataSource.history.getFundingHistory({\n instrumentAddr,\n expiry,\n traders: [userAddr],\n startTs: startTime,\n endTs: endTime,\n page,\n size: requiredAllData ? undefined : pageSize,\n });\n\n console.record('graph', `Query [getFundingHistory]`, historyList, { chainId, userAddr });\n\n return (\n historyList?.map((history) => ({\n ...history,\n instrumentAddr: history.instrumentAddr.toLowerCase(),\n })) || []\n );\n};\n\nexport const getTransferHistory = async ({\n chainId,\n userAddr,\n instrumentAddr,\n expiry,\n timeRange,\n page,\n pageSize = DEFAULT_HISTORY_PAGE_SIZE,\n requiredAllData = false,\n sdk,\n}: {\n chainId: CHAIN_ID | undefined;\n userAddr: string | undefined;\n instrumentAddr?: string;\n expiry?: number;\n timeRange: HISTORY_RANGE;\n page?: number;\n pageSize?: number;\n requiredAllData?: boolean;\n sdk: Context;\n}) => {\n if (!userAddr) return [];\n\n const { startTime, endTime } = getStartEndTimeByRangeType(timeRange);\n const historyList = await sdk.perpDataSource.history.getTransferHistory({\n instrumentAddr,\n expiry,\n traders: [userAddr],\n startTs: startTime,\n endTs: endTime,\n page,\n size: requiredAllData ? undefined : pageSize,\n });\n\n console.record('graph', `Query [getTransferHistory]`, historyList, { chainId, userAddr });\n\n return (\n historyList?.map((history) => ({\n ...history,\n timestamp: history.timestamp,\n instrumentAddr: history.instrumentAddr.toLowerCase(),\n expiry: Number(history.expiry),\n isTransferIn: history.type === 'Scatter',\n txHash: history.txHash,\n logIndex: history.logIndex,\n })) || []\n );\n};\n\nexport const getLiquidityHistory = async ({\n chainId,\n userAddr,\n instrumentAddr,\n expiry,\n timeRange,\n page,\n pageSize = DEFAULT_HISTORY_PAGE_SIZE,\n requiredAllData = false,\n sdk,\n}: {\n chainId: CHAIN_ID | undefined;\n userAddr: string | undefined;\n instrumentAddr?: string;\n expiry?: number;\n timeRange: HISTORY_RANGE;\n page?: number;\n pageSize?: number;\n requiredAllData?: boolean;\n sdk: Context;\n}) => {\n if (!userAddr) return [];\n\n const { startTime, endTime } = getStartEndTimeByRangeType(timeRange);\n const eventList = await sdk.perpDataSource.history.getLiquidityHistory({\n instrumentAddr,\n expiry,\n traders: [userAddr],\n startTs: startTime,\n endTs: endTime,\n page,\n size: requiredAllData ? undefined : pageSize,\n });\n\n console.record('graph', `Query [getLiquidityHistory]`, eventList, { chainId, userAddr });\n\n return (\n eventList?.map((event) => ({\n ...event,\n instrumentAddr: event.instrumentAddr.toLowerCase(),\n })) || []\n );\n};\n\nexport const getAccountBalanceHistory = async ({\n chainId,\n userAddr,\n timeRange,\n page,\n pageSize = DEFAULT_HISTORY_PAGE_SIZE,\n requiredAllData = false,\n sdk,\n}: {\n chainId: CHAIN_ID | undefined;\n userAddr: string | undefined;\n timeRange: HISTORY_RANGE;\n page?: number;\n pageSize?: number;\n requiredAllData?: boolean;\n sdk: Context;\n}) => {\n if (!userAddr) return [];\n\n const { startTime, endTime } = getStartEndTimeByRangeType(timeRange);\n const historyList = await sdk.perpDataSource.history.getAccountBalanceHistory({\n traders: [userAddr],\n startTs: startTime,\n endTs: endTime,\n page,\n size: requiredAllData ? undefined : pageSize,\n });\n\n console.record('graph', `Query [getAccountBalanceHistory]`, historyList, { chainId, userAddr });\n\n return historyList || [];\n};\n","import { QUERY_KEYS } from '@/constants/query';\nimport { useInfiniteQuery, useQuery } from '@tanstack/react-query';\nimport { useSDK } from '../web3/hook';\nimport {\n getAccountBalanceHistory,\n getAllPairBasicInfoByGraph,\n getFundingHistory,\n getLiquidityHistory,\n getOrdersHistory,\n getTransferHistory,\n getVirtualTradeHistory,\n} from './api';\n\nexport const useAllPairBasicInfoByGraph = (chainId: number | undefined) => {\n const sdk = useSDK(chainId);\n return useQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.GRAPH.ALL_INSTRUMENTS_BASIC_INFO(chainId),\n queryFn: async () => getAllPairBasicInfoByGraph(chainId, sdk),\n enabled: chainId !== undefined && sdk !== undefined,\n });\n};\n\nexport const useInfiniteVirtualTradeHistoryQuery = (\n args: Omit[0], 'sdk' | 'page'>,\n) => {\n const sdk = useSDK(args.chainId);\n return useInfiniteQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.GRAPH.VIRTUAL_TRADE_HISTORY(args),\n queryFn: async ({ pageParam = 0 }) => {\n if (!sdk) throw new Error('SDK not initialized');\n return getVirtualTradeHistory({\n ...args,\n page: pageParam,\n sdk,\n });\n },\n getNextPageParam: (lastPage, allPages) => {\n return lastPage?.length > 0 ? allPages?.length : undefined;\n },\n enabled: !!args.chainId && !!sdk && !!args.userAddr,\n initialPageParam: 0,\n });\n};\n\nexport const useInfiniteOrdersHistoryQuery = (args: Omit[0], 'sdk' | 'page'>) => {\n const sdk = useSDK(args.chainId);\n return useInfiniteQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.GRAPH.ORDERS_HISTORY(args),\n queryFn: async ({ pageParam = 0 }) => {\n if (!sdk) throw new Error('SDK not initialized');\n return getOrdersHistory({\n ...args,\n page: pageParam,\n sdk,\n });\n },\n getNextPageParam: (lastPage, allPages) => {\n return lastPage?.length > 0 ? allPages?.length : undefined;\n },\n enabled: !!args.chainId && !!sdk && !!args.userAddr,\n initialPageParam: 0,\n });\n};\n\nexport const useInfiniteFundingHistoryQuery = (args: Omit[0], 'sdk' | 'page'>) => {\n const sdk = useSDK(args.chainId);\n return useInfiniteQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.GRAPH.FUNDING_HISTORY(args),\n queryFn: async ({ pageParam = 0 }) => {\n if (!sdk) throw new Error('SDK not initialized');\n return getFundingHistory({\n ...args,\n page: pageParam,\n sdk,\n });\n },\n getNextPageParam: (lastPage, allPages) => (lastPage?.length ? allPages.length : undefined),\n enabled: !!args.chainId && !!sdk && !!args.userAddr,\n initialPageParam: 0,\n });\n};\n\nexport const useInfiniteTransferHistoryQuery = (\n args: Omit[0], 'sdk' | 'page'>,\n) => {\n const sdk = useSDK(args.chainId);\n return useInfiniteQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.GRAPH.TRANSFER_HISTORY(args),\n queryFn: async ({ pageParam = 0 }) => {\n if (!sdk) throw new Error('SDK not initialized');\n return getTransferHistory({\n ...args,\n page: pageParam,\n sdk,\n });\n },\n getNextPageParam: (lastPage, allPages) => (lastPage?.length ? allPages.length : undefined),\n enabled: !!args.chainId && !!sdk && !!args.userAddr,\n initialPageParam: 0,\n });\n};\n\nexport const useInfiniteLiquidityHistoryQuery = (\n args: Omit[0], 'sdk' | 'page'>,\n) => {\n const sdk = useSDK(args.chainId);\n return useInfiniteQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.GRAPH.LIQUIDITY_HISTORY(args),\n queryFn: async ({ pageParam = 0 }) => {\n if (!sdk) throw new Error('SDK not initialized');\n return getLiquidityHistory({\n ...args,\n page: pageParam,\n sdk,\n });\n },\n getNextPageParam: (lastPage, allPages) => (lastPage?.length ? allPages.length : undefined),\n enabled: !!args.chainId && !!sdk && !!args.userAddr,\n initialPageParam: 0,\n });\n};\n\nexport const useInfiniteAccountBalanceHistoryQuery = (\n args: Omit[0], 'sdk' | 'page'>,\n) => {\n const sdk = useSDK(args.chainId);\n return useInfiniteQuery({\n // eslint-disable-next-line @tanstack/query/exhaustive-deps\n queryKey: QUERY_KEYS.GRAPH.ACCOUNT_BALANCE_HISTORY(args),\n queryFn: async ({ pageParam = 0 }) => {\n if (!sdk) throw new Error('SDK not initialized');\n return getAccountBalanceHistory({\n ...args,\n page: pageParam,\n sdk,\n });\n },\n getNextPageParam: (lastPage, allPages) => (lastPage?.length ? allPages.length : undefined),\n enabled: !!args.chainId && !!sdk && !!args.userAddr,\n initialPageParam: 0,\n });\n};\n","import { HISTORY_RANGE } from '@/constants/history';\nimport { getOrdersHistoryFromSDK } from '@/utils/history';\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport { createAction, createAsyncThunk } from '@reduxjs/toolkit';\n\nimport { DailyVolumeDetail } from '@/types/portfolio';\nimport { Context } from '@derivation-tech/context';\nimport { OrderHistory } from '@synfutures/sdks-perp-datasource';\n\nexport const setHistoryRange = createAction('graph/setHistoryRange');\nexport const resetHistory = createAction<{ chainId: CHAIN_ID }>('graph/resetHistory');\n\nexport const getOpenOrderCreateTime = createAsyncThunk(\n 'graph/getOpenOrderCreateTime',\n async (args: Parameters[0]): Promise => {\n return await getOrdersHistoryFromSDK(args);\n },\n);\n\nexport const getDailyVolumeDetails = createAsyncThunk(\n 'graph/getDailyVolumeDetails',\n async ({ sdk }: { userAddr: string; chainId: CHAIN_ID; sdk: Context }): Promise => {\n if (sdk) {\n // const details = await retryGeneralPromise(\n // /* // @TODO uncomment after build large scale details solution */\n // // (\n // // graphClient as unknown as {\n // // getDailyVolumeDetails: ({\n // // trader,\n // // startTs,\n // // endTs,\n // // }: {\n // // trader: string;\n // // startTs: number;\n // // endTs: number;\n // // }) => Promise;\n // // }\n // // )\n // sdk.dataSource. .getDailyVolumeDetails({\n // trader: userAddr,\n // startTs: Math.floor((now() - 3 * 30 * SECS_PER_DAY * 1000) / 1000),\n // endTs: Math.floor(now() / 1000),\n // }),\n // );\n return [];\n }\n },\n);\n","import { createSlice } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { HISTORY_RANGE } from '@/constants/history';\nimport { IAccountBalanceHistory, IFundingHistory, ILiquidityHistory, ITransferHistory } from '@/types/graph';\nimport { ItemStatus, ListArrayStatus, getDefaultItemStatus, setFulfilledItemStatus } from '@/types/redux';\n\nimport { DailyVolumeDetail } from '@/types/portfolio';\nimport { AppState } from '../store';\nimport { getOpenOrderCreateTime, resetHistory, setHistoryRange } from './actions';\n\nexport type TOpenOrderCreateTimeMap = {\n [instrumentAddrTickSizeId in string]: number;\n};\nexport interface IGraphState {\n historyRange: HISTORY_RANGE;\n chainOpenOrderCreateTime: {\n [chainID: number]: {\n [userAddr: string]: ItemStatus;\n };\n };\n chainFundingHistory: {\n [chainID: number]: {\n [userAddr: string]: ListArrayStatus;\n };\n };\n chainTransferHistory: {\n [chainID: number]: {\n [userAddr: string]: ListArrayStatus;\n };\n };\n chainLiquidityHistory: {\n [chainID: number]: {\n [userAddr: string]: ListArrayStatus;\n };\n };\n chainAccountBalanceHistory: {\n [chainID: number]: {\n [userAddr: string]: ListArrayStatus;\n };\n };\n chainDailyVolumeDetails: {\n [chainID: number]: {\n [userAddr: string]: ListArrayStatus;\n };\n };\n}\nconst initialState: IGraphState = {\n historyRange: HISTORY_RANGE.D_7,\n chainOpenOrderCreateTime: {},\n chainFundingHistory: {},\n chainTransferHistory: {},\n chainLiquidityHistory: {},\n chainAccountBalanceHistory: {},\n chainDailyVolumeDetails: {},\n};\n\nexport const graphSlice = createSlice({\n name: 'graph',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder.addCase(resetHistory, (state, {}) => {\n state.historyRange = HISTORY_RANGE.D_7;\n });\n builder.addCase(setHistoryRange, (state, { payload }) => {\n state.historyRange = payload;\n });\n builder.addCase(getOpenOrderCreateTime.pending, (state, { meta }) => {\n const { chainId, userAddr } = meta.arg;\n if (!_.get(state.chainOpenOrderCreateTime, [chainId, userAddr])) {\n _.set(state.chainOpenOrderCreateTime, [chainId, userAddr], getDefaultItemStatus(FETCHING_STATUS.FETCHING));\n }\n });\n builder\n .addCase(getOpenOrderCreateTime.fulfilled, (state, { meta, payload }) => {\n const { chainId, userAddr } = meta.arg;\n if (payload) {\n const prevState = _.get(state.chainOpenOrderCreateTime, [chainId, userAddr]);\n _.set(\n state.chainOpenOrderCreateTime,\n [chainId, userAddr],\n setFulfilledItemStatus(\n payload.reduce(\n (prev, curr) => {\n return {\n ...prev,\n [`${curr.instrumentAddr}_${curr.tick}_${curr.size.toString()}`.toLowerCase()]:\n curr.createdTimestamp,\n };\n },\n { ...prevState },\n ),\n ),\n );\n }\n })\n .addCase(getOpenOrderCreateTime.rejected, (state, { meta }) => {\n const { chainId, userAddr } = meta.arg;\n _.set(state.chainOpenOrderCreateTime, [chainId, userAddr, 'status'], FETCHING_STATUS.DONE);\n });\n },\n});\n\nexport const selectGraphState = (state: AppState): IGraphState => state.graph;\n\nexport const selectOpenOrderCreateTime =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): TOpenOrderCreateTimeMap | undefined =>\n (\n _.get(\n state.graph.chainOpenOrderCreateTime,\n [chainId || '', userAddr || ''],\n [],\n ) as ItemStatus\n ).item;\n\nexport const selectHistoryRange = (state: AppState): HISTORY_RANGE => state.graph.historyRange;\n\nexport const selectChainDailyVolumeDetailsStatus =\n (chainId: number | undefined, userAddr: string | undefined): ((state: AppState) => FETCHING_STATUS) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.graph.chainDailyVolumeDetails, [chainId || '', userAddr || '', 'status'], FETCHING_STATUS.INIT);\n\nexport const selectChainDailyVolumeDetails =\n (chainId: number | undefined, userAddr: string | undefined) =>\n (state: AppState): DailyVolumeDetail[] =>\n _.get(state.graph.chainDailyVolumeDetails, [chainId || '', userAddr || '', 'list'], []);\n\nexport default graphSlice.reducer;\n","import { OrderStatus } from '@synfutures/sdks-perp-datasource';\nimport _ from 'lodash';\nimport { useCallback, useMemo } from 'react';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { HISTORY_RANGE } from '@/constants/history';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useAppSelector } from '@/hooks';\nimport { IFundingHistory, ILiquidityHistory, IOrderHistory, ITradeHistory, ITransferHistory } from '@/types/graph';\nimport { getPairId } from '@/utils/transform/transformId';\n\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { QUERY_KEYS } from '@/constants/query';\nimport { queryClient } from '@/pages/App';\nimport { DailyVolumeDetail } from '@/types/portfolio';\nimport { isNativeTokenAddr } from '@/utils/token';\nimport { NATIVE_TOKEN_ADDRESS } from '@synfutures/sdks-perp';\nimport { useMarginTokenInfoMap } from '../chain/hook';\nimport {\n useAllPairBasicInfoByGraph,\n useInfiniteAccountBalanceHistoryQuery,\n useInfiniteFundingHistoryQuery,\n useInfiniteLiquidityHistoryQuery,\n useInfiniteOrdersHistoryQuery,\n useInfiniteTransferHistoryQuery,\n useInfiniteVirtualTradeHistoryQuery,\n} from './query';\nimport { selectChainDailyVolumeDetails, selectChainDailyVolumeDetailsStatus, selectHistoryRange } from './slice';\n\nexport function useInfiniteVirtualTradeHistory({\n chainId,\n userAddr,\n pair = 'all',\n timeRange = HISTORY_RANGE.ALL,\n}: {\n chainId: number | undefined;\n userAddr: string | undefined;\n pair?: WrappedPair | 'all';\n timeRange?: HISTORY_RANGE;\n}) {\n const args = useMemo(\n () => ({\n chainId,\n userAddr,\n timeRange,\n instrumentAddr: pair === 'all' ? undefined : pair.metaPair.instrumentId,\n expiry: pair === 'all' ? undefined : pair.expiry,\n }),\n [chainId, pair, userAddr, timeRange],\n );\n const queryState = useInfiniteVirtualTradeHistoryQuery(args);\n const { data: pairBasicInfos } = useAllPairBasicInfoByGraph(chainId);\n const refreshData = useCallback(() => {\n queryClient.resetQueries({\n queryKey: QUERY_KEYS.GRAPH.VIRTUAL_TRADE_HISTORY(args),\n });\n }, [args]);\n\n const histories: ITradeHistory[] = useMemo(() => {\n const { data } = queryState;\n const tradeHistoryListOrigin = data?.pages.flat();\n if (tradeHistoryListOrigin?.length && pairBasicInfos) {\n return _.orderBy(\n tradeHistoryListOrigin.map((trade) => {\n const thisPair = pair === 'all' ? pairBasicInfos[getPairId(trade.instrumentAddr, trade.expiry)] : pair;\n if (!thisPair) console.log(`pair is undefined for trade history ${trade.instrumentAddr} `, trade);\n\n return { ..._.cloneDeep(trade), pair: thisPair };\n }),\n ['timestamp'],\n ['desc'],\n );\n }\n return tradeHistoryListOrigin || [];\n }, [pair, pairBasicInfos, queryState]);\n\n return {\n queryState,\n histories,\n refreshData,\n };\n}\n\nexport function useInfiniteOrdersHistory({\n chainId,\n userAddr,\n pair = 'all',\n timeRange = HISTORY_RANGE.ALL,\n}: {\n chainId: number | undefined;\n userAddr: string | undefined;\n pair?: WrappedPair | 'all';\n timeRange?: HISTORY_RANGE;\n}) {\n const args = useMemo(\n () => ({\n chainId,\n userAddr,\n timeRange,\n instrumentAddr: pair === 'all' ? undefined : pair.metaPair.instrumentId,\n expiry: pair === 'all' ? undefined : pair.expiry,\n }),\n [chainId, pair, userAddr, timeRange],\n );\n\n const queryState = useInfiniteOrdersHistoryQuery(args);\n const { data: pairBasicInfos } = useAllPairBasicInfoByGraph(chainId);\n\n const refreshData = useCallback(() => {\n queryClient.resetQueries({\n queryKey: QUERY_KEYS.GRAPH.ORDERS_HISTORY(args),\n });\n }, [args]);\n\n const histories: IOrderHistory[] = useMemo(() => {\n const { data } = queryState;\n const orderHistoryListOrigin = data?.pages.flat();\n if (orderHistoryListOrigin?.length && pairBasicInfos) {\n return orderHistoryListOrigin.map((order) => {\n const thisPair = pair === 'all' ? pairBasicInfos[getPairId(order.instrumentAddr, order.expiry)] : pair;\n if (!thisPair) console.log(`pair is undefined for order history ${order.instrumentAddr} `, order);\n\n let txHash = order.placeTxHash;\n if (order.status === OrderStatus.FILLED) {\n txHash = order.fillTxHash || '';\n } else if (order.status === OrderStatus.CANCELLED) {\n txHash = order.cancelTxHash || '';\n }\n\n return { ...order, pair: thisPair, txHash };\n });\n }\n return [];\n }, [pair, pairBasicInfos, queryState]);\n\n return {\n queryState,\n histories: _.orderBy(histories, ['createdTimestamp', 'timestamp'], ['desc', 'desc']),\n refreshData,\n };\n}\n\nexport function useInfiniteFundingHistory({\n chainId,\n userAddr,\n pair = 'all',\n timeRange = HISTORY_RANGE.ALL,\n}: {\n chainId: number | undefined;\n userAddr: string | undefined;\n pair?: WrappedPair | 'all';\n timeRange?: HISTORY_RANGE;\n}) {\n const args = useMemo(\n () => ({\n chainId,\n userAddr,\n timeRange,\n instrumentAddr: pair === 'all' ? undefined : pair.metaPair.instrumentId,\n expiry: pair === 'all' ? undefined : pair.expiry,\n }),\n [chainId, pair, userAddr, timeRange],\n );\n\n const queryState = useInfiniteFundingHistoryQuery(args);\n const { data: pairBasicInfos } = useAllPairBasicInfoByGraph(chainId);\n\n const refreshData = useCallback(() => {\n queryClient.resetQueries({\n queryKey: QUERY_KEYS.GRAPH.FUNDING_HISTORY(args),\n });\n }, [args]);\n\n const histories: IFundingHistory[] = useMemo(() => {\n const fundingHistoryListOrigin = queryState.data?.pages.flat() || [];\n return fundingHistoryListOrigin.map((history) => ({\n ...history,\n pair: pair === 'all' ? pairBasicInfos?.[getPairId(history.instrumentAddr, history.expiry)] : pair,\n }));\n }, [pair, pairBasicInfos, queryState.data]);\n\n return {\n queryState,\n histories: _.orderBy(histories, ['timestamp'], ['desc']),\n refreshData,\n };\n}\n\nexport function useInfiniteTransferHistory({\n chainId,\n userAddr,\n pair = 'all',\n timeRange = HISTORY_RANGE.ALL,\n}: {\n chainId: number | undefined;\n userAddr: string | undefined;\n pair?: WrappedPair | 'all';\n timeRange?: HISTORY_RANGE;\n}) {\n const args = useMemo(\n () => ({\n chainId,\n userAddr,\n timeRange,\n instrumentAddr: pair === 'all' ? undefined : pair.metaPair.instrumentId,\n expiry: pair === 'all' ? undefined : pair.expiry,\n }),\n [chainId, pair, userAddr, timeRange],\n );\n\n const queryState = useInfiniteTransferHistoryQuery(args);\n const { data: pairBasicInfos } = useAllPairBasicInfoByGraph(chainId);\n\n const refreshData = useCallback(() => {\n queryClient.resetQueries({\n queryKey: QUERY_KEYS.GRAPH.TRANSFER_HISTORY(args),\n });\n }, [args]);\n\n const histories: ITransferHistory[] = useMemo(() => {\n const transferHistoryListOrigin = queryState.data?.pages.flat() || [];\n return transferHistoryListOrigin.map((history) => ({\n ...history,\n pair: pair === 'all' ? pairBasicInfos?.[getPairId(history.instrumentAddr, history.expiry)] : pair,\n }));\n }, [pair, pairBasicInfos, queryState.data]);\n\n return {\n queryState,\n histories: _.orderBy(histories, ['timestamp'], ['desc']),\n refreshData,\n };\n}\n\nexport function useInfiniteLiquidityHistory({\n chainId,\n userAddr,\n pair = 'all',\n timeRange = HISTORY_RANGE.ALL,\n}: {\n chainId: number | undefined;\n userAddr: string | undefined;\n pair?: WrappedPair | 'all';\n timeRange?: HISTORY_RANGE;\n}) {\n const args = useMemo(\n () => ({\n chainId,\n userAddr,\n timeRange,\n instrumentAddr: pair === 'all' ? undefined : pair.metaPair.instrumentId,\n expiry: pair === 'all' ? undefined : pair.expiry,\n }),\n [chainId, pair, userAddr, timeRange],\n );\n\n const queryState = useInfiniteLiquidityHistoryQuery(args);\n const { data: pairBasicInfos } = useAllPairBasicInfoByGraph(chainId);\n\n const refreshData = useCallback(() => {\n queryClient.resetQueries({\n queryKey: QUERY_KEYS.GRAPH.LIQUIDITY_HISTORY(args),\n });\n }, [args]);\n\n const histories: ILiquidityHistory[] = useMemo(() => {\n const liquidityHistoryListOrigin = queryState.data?.pages.flat() || [];\n return liquidityHistoryListOrigin.map((history) => ({\n ...history,\n pair: pair === 'all' ? pairBasicInfos?.[getPairId(history.instrumentAddr, history.expiry)] : pair,\n }));\n }, [pair, pairBasicInfos, queryState.data]);\n\n return {\n queryState,\n histories: _.orderBy(histories, ['timestamp'], ['desc']),\n refreshData,\n };\n}\n\nexport function useInfiniteAccountBalanceHistory({\n chainId,\n userAddr,\n timeRange = HISTORY_RANGE.ALL,\n}: {\n chainId: number | undefined;\n userAddr: string | undefined;\n timeRange?: HISTORY_RANGE;\n}) {\n const args = useMemo(\n () => ({\n chainId,\n userAddr,\n timeRange,\n }),\n [chainId, userAddr, timeRange],\n );\n const marginTokenMap = useMarginTokenInfoMap(chainId);\n const queryState = useInfiniteAccountBalanceHistoryQuery(args);\n\n const histories = useMemo(() => {\n const chainConfig = chainId && DAPP_CHAIN_CONFIGS[chainId];\n\n return (\n (chainConfig &&\n marginTokenMap &&\n _.orderBy(queryState.data?.pages.flat() || [], ['timestamp'], ['desc']).map((history) => {\n const quoteAddr = history.quoteAddr.toLowerCase();\n let quote = marginTokenMap[quoteAddr];\n if (\n (quoteAddr === NATIVE_TOKEN_ADDRESS.toLowerCase() || isNativeTokenAddr(quoteAddr)) &&\n chainConfig.wrappedNativeToken\n ) {\n quote = chainConfig.wrappedNativeToken;\n }\n return {\n ...history,\n timestamp: history.timestamp,\n // trader: event.args.trader,\n quoteAddr: quoteAddr,\n quote: quote,\n logIndex: history.logIndex,\n // amount: BigNumber.from(event.args.quantity),\n type: history.type,\n txHash: history.txHash,\n chainId,\n };\n })) ||\n []\n );\n }, [chainId, marginTokenMap, queryState.data]);\n const refreshData = useCallback(() => {\n queryClient.resetQueries({\n queryKey: QUERY_KEYS.GRAPH.ACCOUNT_BALANCE_HISTORY(args),\n });\n }, [args]);\n return {\n queryState,\n histories,\n refreshData,\n };\n}\n\nexport function useHistoryRange(): HISTORY_RANGE {\n return useAppSelector(selectHistoryRange);\n}\n\nexport function useDailyVolumeDetails(chainId: number | undefined, userAddr: string | undefined): DailyVolumeDetail[] {\n const dailyVolumeDetails = useAppSelector(selectChainDailyVolumeDetails(chainId, userAddr));\n return dailyVolumeDetails;\n}\n\nexport function useDailyVolumeDetailsStatus(\n chainId: number | undefined,\n userAddr: string | undefined,\n): FETCHING_STATUS {\n return useAppSelector(selectChainDailyVolumeDetailsStatus(chainId, userAddr));\n}\n","import './TokenSymbol.less';\n\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport { TokenInfo } from '@/types/token';\n\nimport TokenLogo from '../TokenLogo';\n\nfunction TokenSymbol(props: { classNames?: string; tokenInfo: TokenInfo; logoSize?: number }): JSX.Element {\n return (\n
\n \n {props.tokenInfo?.symbol}\n
\n );\n}\n\nexport default React.memo(TokenSymbol, (prevProps, nextProps) => {\n return prevProps.tokenInfo?.id === nextProps.tokenInfo?.id;\n});\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconFavOff = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_797_7309)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.45469 16.3258C4.15469 16.3258 3.85469 16.2258 3.55469 16.0258C2.75469 15.4258 2.85469 14.3258 2.95469 12.3258V11.8258C2.95469 11.5258 3.05469 11.2258 2.95469 11.1258C2.95469 11.0258 2.75469 10.8258 2.55469 10.6258L2.35469 10.3258C1.05469 8.92578 0.354687 8.12578 0.754687 7.02578C1.05469 6.02578 2.05469 5.82578 3.95469 5.42578L4.35469 5.32578C4.65469 5.22578 4.85469 5.22578 4.95469 5.12578C5.05469 5.12578 5.15469 4.82578 5.25469 4.52578L5.45469 4.12578C6.45469 2.42578 6.95469 1.42578 8.05469 1.42578C9.15469 1.42578 9.65469 2.32578 10.6547 4.12578L10.8547 4.52578C11.0547 4.82578 11.1547 5.02578 11.1547 5.12578C11.2547 5.12578 11.4547 5.22578 11.7547 5.32578L12.1547 5.42578C14.0547 5.82578 15.0547 6.02578 15.3547 7.02578C15.6547 8.02578 14.9547 8.82578 13.7547 10.3258L13.4547 10.6258C13.2547 10.8258 13.0547 11.0258 13.0547 11.1258C13.0547 11.2258 13.0547 11.4258 13.0547 11.8258V12.3258C13.2547 14.3258 13.3547 15.3258 12.5547 16.0258C11.6547 16.7258 10.7547 16.2258 8.95469 15.4258L8.55469 15.2258C8.35469 15.1258 8.05469 15.0258 7.95469 15.0258C7.85469 15.0258 7.65469 15.1258 7.35469 15.2258L7.05469 15.4258C5.95469 15.9258 5.15469 16.3258 4.45469 16.3258ZM8.05469 13.5258C8.45469 13.5258 8.75469 13.6258 9.25469 13.9258L9.65469 14.1258C10.5547 14.5258 11.4547 14.9258 11.6547 14.9258C11.8547 14.8258 11.7547 13.5258 11.6547 12.6258V12.1258C11.5547 11.5258 11.5547 11.2258 11.6547 10.8258C11.7547 10.4258 11.9547 10.2258 12.3547 9.82578L12.6547 9.52578C13.3547 8.72578 14.0547 7.92578 13.9547 7.62578C13.8547 7.42578 12.8547 7.12578 11.8547 6.92578L11.4547 6.82578C10.9547 6.72578 10.5547 6.62578 10.2547 6.42578C9.95469 6.22578 9.75469 5.92578 9.55469 5.42578L9.25469 4.92578C8.85469 4.02578 8.25469 3.12578 8.05469 3.02578C7.85469 3.12578 7.25469 4.02578 6.85469 4.92578L6.55469 5.32578C6.25469 5.82578 6.15469 6.12578 5.85469 6.32578C5.55469 6.52578 5.15469 6.62578 4.65469 6.72578L4.25469 6.82578C3.25469 7.02578 2.25469 7.32578 2.15469 7.52578C2.05469 7.72578 2.75469 8.62578 3.45469 9.42578L3.75469 9.72578C4.15469 10.1258 4.35469 10.4258 4.45469 10.7258C4.55469 11.1258 4.55469 11.4258 4.45469 12.0258V12.5258C4.35469 13.5258 4.25469 14.7258 4.45469 14.8258C4.65469 14.9258 5.65469 14.4258 6.45469 14.0258L6.85469 13.9258C7.35469 13.6258 7.65469 13.5258 8.05469 13.5258Z\",\n fill: \"#ABB5BA\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_797_7309\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\",\n transform: \"translate(0.0546875 0.925781)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconFavOff);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_fav_off.5ca30b47bd770475c47b0078f95c3447.svg\";","/**\n * @description Component-tag\n */\nimport './index.less';\n\nimport { Tag as AntTag, TagProps } from 'antd';\nimport cls from 'classnames';\nimport { FC, useMemo } from 'react';\ninterface ITagProps extends TagProps {\n type?: 'primary';\n}\nconst Tag: FC = function ({ children, type, ...props }) {\n const typeClass = useMemo(() => {\n if (!type) return '';\n const map = {\n primary: 'syn-tag-primary',\n };\n return map[type];\n }, [type]);\n return (\n \n {children}\n \n );\n};\n\nexport default Tag;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconFavOn = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.15669 4.53112C7.00135 3.01646 7.42335 2.25912 8.05469 2.25912C8.68602 2.25912 9.10802 3.01646 9.95269 4.53112L10.1714 4.92312C10.4114 5.35379 10.5314 5.56912 10.718 5.71112C10.9047 5.85312 11.138 5.90579 11.6047 6.01112L12.0287 6.10712C13.6687 6.47846 14.488 6.66379 14.6834 7.29113C14.878 7.91779 14.3194 8.57179 13.2014 9.87913L12.912 10.2171C12.5947 10.5885 12.4354 10.7745 12.364 11.0038C12.2927 11.2338 12.3167 11.4818 12.3647 11.9771L12.4087 12.4285C12.5774 14.1731 12.662 15.0451 12.1514 15.4325C11.6407 15.8205 10.8727 15.4665 9.33802 14.7598L8.94002 14.5771C8.50402 14.3758 8.28602 14.2758 8.05469 14.2758C7.82335 14.2758 7.60535 14.3758 7.16869 14.5771L6.77202 14.7598C5.23669 15.4665 4.46869 15.8198 3.95869 15.4331C3.44735 15.0451 3.53202 14.1731 3.70069 12.4285L3.74469 11.9778C3.79269 11.4818 3.81669 11.2338 3.74469 11.0045C3.67402 10.7745 3.51469 10.5885 3.19735 10.2178L2.90802 9.87913C1.79002 8.57246 1.23135 7.91846 1.42602 7.29113C1.62135 6.66379 2.44135 6.47779 4.08135 6.10712L4.50535 6.01112C4.97135 5.90579 5.20402 5.85312 5.39135 5.71112C5.57802 5.56912 5.69802 5.35379 5.93802 4.92312L6.15669 4.53112Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconFavOn);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_fav_on.40119bce7deafe1bbdefe8771913b31d.svg\";","/**\n * @description Component-FavoriteIcon\n */\nimport './index.less';\n\nimport cls from 'classnames';\nimport { FC } from 'react';\n\nimport { ReactComponent as StarWhite } from '../assets/icon_fav_off.svg';\nimport { ReactComponent as Star } from '../assets/icon_fav_on.svg';\ninterface IPropTypes {\n className?: string;\n favorite: boolean;\n onClick?: () => void;\n}\nconst FavoriteIcon: FC = function ({ className, favorite, onClick }) {\n const props: Omit = {\n onClick,\n };\n return (\n <>\n {favorite ? (\n \n ) : (\n \n )}\n \n );\n};\n\nexport default FavoriteIcon;\n","/**\n * @description Component-TokenFavorite\n */\nimport './index.less';\n\nimport cls from 'classnames';\nimport { FC, useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Tooltip } from '@/components/ToolTip';\nimport { useFavorite, useSaveFavorite } from '@/hooks/useFavorites';\n\nimport FavoriteIcon from './FavoriteIcon';\ninterface IPropTypes {\n instrumentAddr?: string;\n expiry: number | undefined;\n className?: string;\n favoriteClicked?: (fav: boolean) => void;\n chainId: number | undefined;\n}\nconst TokenFavorite: FC = function ({ className, instrumentAddr, expiry, favoriteClicked, chainId }) {\n const [favorite, setFavorite] = useState(false);\n const valueInLocalStorage = useFavorite(chainId, instrumentAddr, expiry !== undefined ? expiry.toString() : '');\n const saveFavoriteToLocalStorage = useSaveFavorite(chainId);\n const { t } = useTranslation();\n useEffect(() => {\n setFavorite(valueInLocalStorage);\n }, [chainId, valueInLocalStorage]);\n\n const toggleFavorite = useCallback(() => {\n setFavorite(!favorite);\n favoriteClicked && favoriteClicked(!favorite);\n instrumentAddr &&\n saveFavoriteToLocalStorage(instrumentAddr, expiry !== undefined ? expiry.toString() : '', !favorite);\n }, [favorite, instrumentAddr, saveFavoriteToLocalStorage, expiry, favoriteClicked]);\n\n return (\n \n {\n e.stopPropagation();\n toggleFavorite();\n }}>\n \n
\n \n );\n};\n\nexport default TokenFavorite;\n","/**\n * @description Component-Expiry\n */\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\n\nimport { showProperDateString } from '@/utils/timeUtils';\ninterface IPropTypes {\n expiry: number | undefined;\n className?: string;\n showShortPerp?: boolean;\n}\nconst Expiry: FC = function ({ expiry, className, showShortPerp = false }) {\n return (\n \n {!!expiry && showProperDateString({ expiry, format: 'MMDD', showShortPerp })}\n \n );\n};\n\nexport default React.memo(Expiry);\n","import './TokenPairExpiry.less';\n\nimport { Tag } from 'antd';\nimport cls from 'classnames';\nimport React, { useMemo } from 'react';\n\nimport Expiry from '../Expiry';\n\ninterface ITokenPairExpiryTypes {\n expiry: number | undefined;\n highlight?: boolean;\n showShortPerp?: boolean;\n tag?: boolean;\n}\nfunction TokenPairExpiry({ expiry, highlight, showShortPerp, tag }: ITokenPairExpiryTypes): JSX.Element {\n const dom = useMemo(\n () => (\n \n \n \n ),\n [expiry, highlight, showShortPerp],\n );\n return tag ? (\n \n {dom}\n \n ) : (\n <>{dom}\n );\n}\n\nexport default React.memo(TokenPairExpiry, (prevProps, nextProps) => {\n return prevProps.expiry === nextProps.expiry && prevProps.highlight === nextProps.highlight;\n});\n","var _path, _path2, _path3, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDefault = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.322 1.32441C9.19771 1.39922 8.30102 1.45889 8.23488 1.46797C8.23295 1.46797 8.02404 1.46956 7.9376 1.47887C7.39197 1.53718 6.91038 1.56257 6.47186 1.58569C6.03306 1.60883 5.63737 1.62969 5.2638 1.67899C5.25005 1.68004 5.23204 1.67978 5.21104 1.67949C5.15798 1.67874 5.08586 1.67773 5.01536 1.69674C5.01146 1.69778 5.0006 1.69745 4.98512 1.69697C4.94349 1.69569 4.8684 1.69338 4.80488 1.71413C4.6847 1.71272 3.59009 1.76965 3.00062 1.82517C2.87214 1.83729 2.7432 1.84424 2.61428 1.85119C2.40117 1.86268 2.18815 1.87417 1.97752 1.90898C1.42477 2.0007 1.08075 2.36527 1.01592 2.92013C0.979197 3.23411 0.999754 3.5479 1.07302 3.8538C1.38085 5.13746 2.055 6.22732 2.8084 7.34266C2.85252 7.4079 2.87015 7.38984 3.02023 7.23616C3.09487 7.15972 3.20229 7.04972 3.36203 6.89972C3.42177 6.84367 3.42142 6.80168 3.3782 6.73544C3.3377 6.67339 3.29698 6.61148 3.25625 6.54957C3.07363 6.27194 2.89088 5.99412 2.72899 5.70339C2.717 5.68188 2.70533 5.66016 2.69364 5.63843C2.65445 5.56553 2.61517 5.49248 2.56401 5.42683C2.52032 5.33793 2.47781 5.25343 2.43652 5.17137C2.19148 4.68439 1.98959 4.28316 1.84329 3.55405C1.80393 3.35832 1.79567 3.15873 1.82607 2.96001C1.84346 2.84528 1.9097 2.76745 2.02197 2.736C2.15849 2.69787 2.29782 2.68557 2.43908 2.7049C3.35588 2.82964 4.09083 3.23077 4.82965 3.6347C4.83085 3.63607 4.83196 3.6376 4.83307 3.63912C4.83536 3.64227 4.83764 3.6454 4.84072 3.64717C5.45424 4.00143 5.81762 4.26028 6.34427 4.63542C6.41468 4.68558 6.48814 4.73791 6.56538 4.79273L7.53015 5.56739C7.53191 5.56915 7.89947 5.90632 8.06445 6.04354C8.20385 6.15947 8.33292 6.28612 8.46195 6.41272C8.54451 6.49373 8.62704 6.57471 8.71226 6.65286C8.71364 6.65563 8.71496 6.65818 8.71619 6.66055C8.72085 6.66953 8.72421 6.67601 8.72459 6.68267C8.72559 6.69989 8.70662 6.71827 8.63855 6.78426C8.6082 6.81367 8.5681 6.85255 8.51565 6.90499L2.49197 12.9292C2.39577 13.025 2.39248 13.1 2.38617 13.2439C2.38184 13.3427 2.37608 13.4741 2.3377 13.6671C2.31682 13.7721 2.30828 13.8782 2.29956 13.9866C2.2917 14.0843 2.28369 14.1838 2.26637 14.2859C2.32412 14.2521 2.3612 14.214 2.39669 14.1775C2.40374 14.1702 2.41075 14.163 2.41782 14.1559L9.1515 7.42559C9.16817 7.40898 9.18374 7.38819 9.19928 7.36745C9.23336 7.32194 9.26731 7.27662 9.31244 7.27589C9.36005 7.27526 9.39803 7.32306 9.43525 7.36991C9.44954 7.3879 9.46373 7.40576 9.47831 7.42067C9.87521 7.82636 10.721 8.77391 11.5231 9.87853C11.6094 9.99739 11.6938 10.1176 11.7782 10.2378C11.8153 10.2906 11.8524 10.3434 11.8896 10.3961C12.3508 11.1095 12.7693 11.845 13.0645 12.6449C13.1348 12.8371 13.1907 13.0337 13.2342 13.2335L13.2378 13.25C13.2873 13.4755 13.3367 13.7008 13.2732 13.934C13.2349 14.0746 13.1518 14.154 13.0067 14.1733C12.7927 14.2018 12.5808 14.1916 12.3719 14.1408C11.8712 14.0191 11.6784 13.9567 11.2443 13.7646C10.8472 13.5891 10.4647 13.3855 10.0943 13.1602C9.76989 12.963 9.56606 12.8227 9.43205 12.7304C9.2079 12.576 9.17907 12.5561 9.10793 12.6298C8.95403 12.7892 8.84296 12.8974 8.76571 12.9727C8.64862 13.0868 8.60923 13.1252 8.61615 13.1513C8.61966 13.1645 8.63508 13.1746 8.65831 13.1898C8.66536 13.1944 8.67313 13.1994 8.68151 13.2052C9.37464 13.6833 10.2653 14.248 11.0478 14.5588C11.1967 14.6351 11.3546 14.6883 11.5124 14.7415C11.5402 14.7509 11.5682 14.7603 11.596 14.7698C12.0395 14.9213 12.4917 15.0237 12.9647 14.9952C13.4243 14.9675 13.7875 14.7846 13.9913 14.3487C14.0553 14.2116 14.0925 14.067 14.1052 13.9179C14.1987 12.8224 14.2301 12.3087 14.2635 11.7619C14.2907 11.3171 14.3193 10.8503 14.3837 10.0307C14.4029 9.78532 14.4146 9.53938 14.4264 9.29343C14.4318 9.17995 14.4372 9.06637 14.4434 8.95294C14.5232 8.06118 14.5527 7.55405 14.581 7.06667C14.6054 6.6471 14.629 6.24216 14.683 5.61905C14.7139 5.26321 14.7324 4.90629 14.7509 4.54932C14.7592 4.38921 14.7675 4.22888 14.7769 4.06885C14.8125 3.84748 14.8335 3.47424 14.8604 2.99578C14.8904 2.4626 14.9277 1.79876 15.0009 1.06879C15.0074 1.0043 14.9823 0.996046 14.9262 1.00132C14.3075 1.05939 12.0468 1.20964 10.322 1.32441ZM14.0421 2.60967C14.0203 2.6859 14.018 2.76123 14.0157 2.83603C14.015 2.86001 14.0143 2.88394 14.0129 2.90783C14.0078 2.99762 13.9998 3.08719 13.9919 3.17674C13.9797 3.31393 13.9675 3.45106 13.9655 3.58884C13.9836 3.67578 13.9768 3.75712 13.9656 3.88845C13.9568 3.99228 13.9454 4.12738 13.9416 4.32116C13.9401 4.39543 13.9353 4.4643 13.9303 4.53361C13.9246 4.6148 13.9188 4.69659 13.9184 4.78834C13.9099 4.90223 13.9055 4.97961 13.9022 5.03641C13.8949 5.1644 13.8936 5.18789 13.8653 5.28926C13.8641 5.29945 13.8639 5.30964 13.8653 5.31983C13.8765 5.36734 13.8669 5.41378 13.8588 5.45324C13.8537 5.47769 13.8492 5.49946 13.8506 5.51714C13.8311 5.53 13.8283 5.55433 13.8256 5.57809L13.8248 5.58567C13.7938 5.8366 13.7907 5.95139 13.7889 6.01532C13.7874 6.07072 13.7869 6.08792 13.7703 6.12243C13.7564 6.0655 13.3221 5.4444 13.2882 5.39661C13.0308 5.03379 12.7386 4.69821 12.4434 4.36579L12.4416 4.36377C12.3571 4.2686 12.3553 4.26658 12.4462 4.17568C12.6387 3.98345 12.831 3.79114 13.0233 3.59884C13.3359 3.28618 13.6485 2.97355 13.9616 2.66133C13.9654 2.65757 13.9689 2.65349 13.9726 2.6493C13.9877 2.63193 14.0044 2.61307 14.0421 2.60967ZM10.1154 2.20661C10.1748 2.20057 10.2343 2.19432 10.2937 2.18808C10.5762 2.15838 10.8587 2.12868 11.1431 2.1207L11.1441 2.12067C11.1843 2.11945 11.2259 2.11819 11.2423 2.0701C11.2648 2.10351 11.2996 2.10346 11.3336 2.10341L11.3479 2.10348C11.471 2.1057 11.5936 2.09641 11.7161 2.08713C11.7973 2.08098 11.8784 2.07483 11.9597 2.07203C12.1848 2.06416 12.4088 2.04409 12.6328 2.02402C12.8039 2.00869 12.9749 1.99337 13.1464 1.98348L13.2128 1.97996C13.2681 1.97715 13.3237 1.97431 13.3801 1.96942C13.3778 1.99928 13.3611 2.01409 13.3455 2.02791C13.3417 2.03124 13.338 2.03452 13.3346 2.03794C13.0894 2.28381 12.8439 2.5294 12.5984 2.77497L12.5977 2.77571C12.3347 3.0388 12.0717 3.30189 11.8091 3.5653C11.7626 3.61186 11.723 3.63224 11.6691 3.57935C11.6524 3.56301 11.6275 3.55862 11.603 3.56214C11.6008 3.5634 11.5986 3.56439 11.5964 3.56537L11.5939 3.56653C11.5928 3.52785 11.567 3.50348 11.5418 3.47962L11.5292 3.46761C11.3872 3.32692 11.233 3.20008 11.0788 3.07331C11.0189 3.02403 10.959 2.97476 10.8999 2.9247C10.6586 2.72043 10.3556 2.52153 10.1473 2.38478C10.0142 2.29746 9.91979 2.23549 9.90473 2.21364C9.94422 2.20955 9.98135 2.20965 10.0172 2.20974C10.0507 2.20983 10.0832 2.20992 10.1154 2.20661ZM9.37868 5.99715C9.33404 6.04682 9.30397 6.02193 9.26375 5.98864C9.2351 5.96493 9.20131 5.93696 9.15344 5.92863H9.1515C9.14558 5.89512 9.12071 5.87239 9.09677 5.85051L9.08773 5.84219C9.00329 5.76347 8.92 5.6835 8.8367 5.60353C8.62552 5.40078 8.41433 5.19802 8.18463 5.0157C8.15875 4.99519 8.12885 4.9681 8.09694 4.93919C8.01617 4.86601 7.92246 4.7811 7.84817 4.76146C7.82287 4.69153 7.05805 4.11717 6.99602 4.07114C6.99163 4.06787 6.98723 4.06437 6.9828 4.06084C6.95745 4.04066 6.9307 4.01935 6.89377 4.03266C6.88753 3.98942 6.85515 3.96705 6.82406 3.94555C6.81838 3.94162 6.81275 3.93773 6.80732 3.93374C6.49071 3.70094 6.1669 3.47815 5.83746 3.26415C5.81473 3.2494 5.79232 3.23385 5.76985 3.21827C5.68747 3.16113 5.60438 3.1035 5.50223 3.08265C5.49221 3.08581 5.48272 3.08757 5.47341 3.0881C5.27189 2.95 5.057 2.83544 4.83914 2.72581C4.83808 2.72107 4.83703 2.71631 4.83633 2.71122C4.81826 2.67368 4.78495 2.65612 4.75154 2.63852C4.73946 2.63216 4.72736 2.62578 4.71597 2.61845C4.70709 2.61275 4.69681 2.60886 4.68647 2.60495C4.66307 2.59609 4.6394 2.58713 4.63111 2.55678C4.67521 2.52525 4.72146 2.53327 4.76782 2.5413C4.78759 2.54473 4.80737 2.54816 4.82701 2.54853C5.08143 2.54923 5.33496 2.53008 5.58814 2.50794C5.66309 2.50141 5.73827 2.49757 5.81341 2.49374C5.92217 2.48819 6.03085 2.48265 6.13861 2.46893C6.46044 2.42821 6.78384 2.41468 7.10727 2.40115C7.2039 2.3971 7.30055 2.39306 7.39715 2.38829C7.4811 2.38414 7.56294 2.3768 7.64322 2.36961C7.96734 2.34055 8.26601 2.31378 8.57539 2.50812C8.59998 2.52358 8.62739 2.53482 8.65463 2.54589C8.68168 2.55696 8.70892 2.56504 8.7351 2.54976C8.75311 2.59496 8.82815 2.63513 8.97233 2.7123C9.25289 2.86247 9.79523 3.15276 10.6885 3.89298C10.6925 3.89629 10.6965 3.89982 10.7005 3.90337C10.7207 3.9213 10.7416 3.93981 10.7707 3.93409C10.7833 3.98049 10.864 4.0492 10.9364 4.11098C10.9683 4.1381 10.9985 4.16389 11.0208 4.18587L11.0249 4.18996C11.1055 4.26967 11.1058 4.27 11.0238 4.35208L9.37868 5.99715ZM13.4794 10.5951C13.4668 10.7508 13.4542 10.9066 13.4539 11.0631C13.4538 11.1026 13.4492 11.1417 13.4444 11.1829C13.439 11.2288 13.4334 11.2772 13.4333 11.3314C13.4038 11.2889 13.3802 11.241 13.3575 11.195C13.3191 11.117 13.2834 11.0447 13.2265 11.0142C13.2223 11.0139 13.2184 11.0135 13.2144 11.013C13.2217 10.9697 13.1993 10.9322 13.1539 10.8562C13.1276 10.8122 13.0936 10.7553 13.0533 10.6769C12.9081 10.3948 12.7312 10.1327 12.5543 9.8706C12.513 9.80943 12.4716 9.74809 12.4308 9.68667L12.4265 9.6801C12.4125 9.65852 12.3963 9.63364 12.3657 9.63905C12.3536 9.52485 11.337 8.17952 10.3559 7.1204L10.3541 7.11839C10.2361 6.99098 10.1173 6.86264 10.0054 6.72877C9.96763 6.68361 9.96798 6.65234 10.01 6.61035C10.5631 6.0583 11.116 5.50625 11.6673 4.95245C11.7151 4.9043 11.7478 4.90922 11.7884 4.95754C11.8255 5.00172 11.8678 5.05107 11.9145 5.10561C12.2465 5.49336 12.8031 6.14343 13.3337 7.06137L13.3375 7.06801C13.3552 7.09902 13.3737 7.13145 13.4129 7.13604C13.3978 7.16655 13.4117 7.19441 13.4253 7.22167L13.4277 7.22652C13.473 7.31782 13.5125 7.38988 13.5456 7.45015C13.626 7.59657 13.6683 7.67345 13.6615 7.78771C13.6582 7.84504 13.6567 7.90251 13.6553 7.95996C13.6532 8.04579 13.651 8.13163 13.6424 8.21676C13.6121 8.51452 13.5986 8.81314 13.5851 9.11158L13.5809 9.20472C13.5734 9.36745 13.559 9.5294 13.5446 9.6913C13.5324 9.82884 13.5202 9.96639 13.5122 10.1043C13.5112 10.1217 13.509 10.1394 13.5068 10.1573C13.4986 10.2253 13.4901 10.295 13.5433 10.3557V10.3568C13.4969 10.3614 13.4942 10.3984 13.4917 10.433L13.4915 10.4369C13.4877 10.4896 13.4836 10.5424 13.4794 10.5951Z\",\n fill: \"url(#paint0_linear_9821_71094)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.24943 9.73576C9.17346 9.60237 9.14759 9.55695 9.12296 9.55761C9.11024 9.55795 9.09785 9.57058 9.07906 9.58973L9.07842 9.59039C8.12107 10.5652 7.29468 11.3856 6.68261 11.9932C5.98538 12.6854 5.56622 13.1015 5.54844 13.1552C5.64693 13.1461 5.74441 13.1361 5.8412 13.1262C6.06695 13.1029 6.28906 13.0801 6.51163 13.0713C6.70226 13.064 6.8393 12.994 6.9709 12.8614C7.806 12.0198 8.6462 11.1835 9.48692 10.3475C9.54648 10.2883 9.55 10.2415 9.50748 10.1723C9.38395 9.97148 9.30378 9.8312 9.24943 9.73576Z\",\n fill: \"url(#paint1_linear_9821_71094)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.41233 6.90737C6.40927 6.91031 6.40614 6.91333 6.40304 6.91643L2.92665 10.3933C2.92198 10.398 2.91759 10.4032 2.9131 10.4085C2.89717 10.4273 2.87991 10.4477 2.84372 10.4527C2.84963 10.3793 2.85535 10.3063 2.86106 10.2334C2.8755 10.0488 2.88984 9.86562 2.90697 9.68282C2.91015 9.64897 2.91452 9.61517 2.9189 9.58138C2.92806 9.51061 2.93722 9.43983 2.93543 9.36849C2.93297 9.26957 2.97532 9.19578 3.04243 9.12866L5.62961 6.53815C5.6859 6.48146 5.71278 6.4963 5.84339 6.56838C5.94474 6.62433 6.10856 6.71474 6.39706 6.83297C6.46199 6.85958 6.44028 6.88047 6.41233 6.90737Z\",\n fill: \"url(#paint2_linear_9821_71094)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_9821_71094\",\n x1: 0.998108,\n y1: 1,\n x2: 15.0019,\n y2: 15,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFA7A2\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FC453B\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_9821_71094\",\n x1: 0.998108,\n y1: 1,\n x2: 15.0019,\n y2: 15,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFA7A2\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FC453B\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_9821_71094\",\n x1: 0.998108,\n y1: 1,\n x2: 15.0019,\n y2: 15,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFA7A2\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FC453B\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDefault);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/default.15c602e8f02d1ad6833ed41bcdc73185.svg\";","/**\n * @description Component-TokenPairLeverage\n */\nimport './index.less';\n\nimport { Tag } from 'antd';\nimport cls from 'classnames';\nimport { FC, useMemo } from 'react';\n\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { formatNumber } from '@/utils/numberUtil';\ninterface IPropTypes {\n leverage: WrappedBigNumber | number | undefined;\n highlight?: boolean;\n tag?: boolean;\n}\nconst TokenPairLeverage: FC = function ({ leverage, highlight, tag }) {\n const dom = useMemo(\n () => (\n \n {formatNumber(leverage || 0, 0)}x\n \n ),\n [highlight, leverage],\n );\n return tag ? (\n \n {dom}\n \n ) : (\n <>{dom}\n );\n};\n\nexport default TokenPairLeverage;\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgUni = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.941583 0.425771C2.67324 2.51469 4.00292 3.68845 4.64074 4.25147C4.85812 4.44336 4.99514 4.56431 5.04031 4.62636C5.18704 4.82796 5.13182 5.0092 4.88045 5.15124C4.74066 5.23021 4.45326 5.31022 4.30937 5.31022C4.14663 5.31022 4.09074 5.24783 4.09074 5.24783C4.0793 5.23704 4.06846 5.22778 4.05738 5.21832C3.97714 5.14983 3.88445 5.07071 3.45864 4.31949C2.78587 3.28191 2.22284 2.4212 2.20748 2.40678C2.17197 2.37346 2.17258 2.37458 3.39004 4.53968C3.54648 4.89854 3.47884 5.07678 3.44459 5.16705C3.43577 5.19028 3.42916 5.20769 3.42916 5.22085C3.42916 5.35159 3.39328 5.42032 3.231 5.60022C2.96048 5.90017 2.83956 6.2372 2.75226 6.93471C2.6544 7.71661 2.37922 8.26892 1.61661 9.21422C1.1702 9.76757 1.09715 9.86899 0.984513 10.092C0.842632 10.3729 0.803621 10.5302 0.787809 10.8848C0.771096 11.2598 0.803645 11.5021 0.918908 11.8606C1.01982 12.1745 1.12515 12.3817 1.39442 12.7962C1.6268 13.1539 1.7606 13.4198 1.7606 13.5238C1.7606 13.6065 1.7765 13.6066 2.13659 13.5258C2.99834 13.3324 3.69808 12.9922 4.09161 12.5753C4.33517 12.3173 4.39236 12.1748 4.39421 11.8213C4.39543 11.59 4.38724 11.5415 4.32434 11.4085C4.22195 11.1919 4.03555 11.0119 3.6247 10.7328C3.0864 10.367 2.85648 10.0725 2.79297 9.66761C2.74087 9.33535 2.80131 9.10092 3.09911 8.48058C3.40734 7.83847 3.48373 7.56484 3.5354 6.91762C3.56878 6.49947 3.61499 6.33457 3.73586 6.20219C3.86194 6.06417 3.97543 6.01742 4.28742 5.97505C4.79607 5.90599 5.11996 5.7752 5.38618 5.53137C5.61713 5.31983 5.71378 5.11602 5.7286 4.8092L5.73987 4.57664L5.6108 4.42709C5.14342 3.88545 0.628581 0 0.599818 0C0.593673 0 0.747474 0.19161 0.941583 0.425771ZM2.02297 11.3091C2.12864 11.1231 2.07249 10.884 1.89573 10.7671C1.72872 10.6568 1.46927 10.7088 1.46927 10.8526C1.46927 10.8965 1.49369 10.9285 1.54872 10.9566C1.6414 11.004 1.64812 11.0573 1.57521 11.1662C1.50137 11.2765 1.50733 11.3736 1.59203 11.4394C1.72854 11.5456 1.92177 11.4872 2.02297 11.3091Z\",\n fill: \"#FC74FE\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.20339 1.16586C4.99488 1.13371 4.98609 1.12994 5.08421 1.11495C5.27225 1.08621 5.71628 1.12539 6.02226 1.19769C6.73659 1.36646 7.38658 1.79878 8.08042 2.56658L8.26475 2.77056L8.52844 2.72843C9.63933 2.55099 10.7694 2.69201 11.7147 3.12601C11.9747 3.2454 12.3847 3.48308 12.436 3.54416C12.4523 3.56362 12.4822 3.68891 12.5025 3.82261C12.5727 4.28517 12.5375 4.63973 12.3953 4.90455C12.3178 5.04865 12.3134 5.09433 12.3656 5.21765C12.4071 5.31607 12.523 5.38891 12.6378 5.38875C12.8726 5.38843 13.1255 5.01103 13.2426 4.4859L13.2892 4.27732L13.3813 4.3811C13.887 4.95048 14.2842 5.72698 14.3523 6.27969L14.3701 6.42381L14.2852 6.2928C14.1389 6.06737 13.9919 5.9139 13.8037 5.79013C13.4644 5.56702 13.1057 5.4911 12.1558 5.44133C11.2977 5.3964 10.8121 5.32356 10.3306 5.16751C9.51142 4.90203 9.09843 4.54847 8.12528 3.27949C7.69305 2.71585 7.42589 2.40401 7.16014 2.15287C6.55628 1.58222 5.96293 1.28295 5.20339 1.16586Z\",\n fill: \"#FC74FE\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.6301 2.42405C12.6517 2.04637 12.7031 1.79725 12.8068 1.56974C12.8478 1.47969 12.8862 1.40599 12.8922 1.40599C12.8981 1.40599 12.8802 1.47245 12.8525 1.55368C12.7772 1.77447 12.7648 2.07647 12.8167 2.42783C12.8825 2.87365 12.92 2.93797 13.3941 3.41955C13.6165 3.64544 13.8752 3.93031 13.9688 4.05263L14.1394 4.27503L13.9688 4.11609C13.7604 3.92172 13.2809 3.54267 13.175 3.48848C13.104 3.45215 13.0934 3.45278 13.0496 3.49611C13.0093 3.53604 13.0007 3.59604 12.9952 3.8797C12.9864 4.3218 12.9258 4.60556 12.7795 4.88928C12.7004 5.04274 12.6878 5.00999 12.7595 4.83678C12.8129 4.70745 12.8183 4.6506 12.818 4.22262C12.8171 3.36272 12.7144 3.15599 12.1121 2.80185C11.9595 2.71214 11.7081 2.58276 11.5534 2.51432C11.3987 2.44589 11.2758 2.38628 11.2803 2.38182C11.2973 2.36495 11.8847 2.53536 12.1212 2.62576C12.4729 2.76022 12.5309 2.77765 12.5736 2.76142C12.6023 2.75055 12.6162 2.66767 12.6301 2.42405Z\",\n fill: \"#FC74FE\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.98064 1.76368C4.92394 2.42757 5.18585 3.31566 5.60916 3.89489C5.93731 4.34391 6.44599 4.69283 6.82151 4.72652C7.06741 4.74859 7.1413 4.67208 7.03006 4.51062C6.87562 4.28645 6.68567 3.94127 6.63541 3.7935C6.60418 3.70169 6.53632 3.4305 6.4846 3.19086C6.30803 2.37273 6.13446 2.05412 5.73356 1.81213C5.58747 1.72393 5.27548 1.60851 5.09453 1.57572L4.99817 1.55824L4.98064 1.76368Z\",\n fill: \"#FC74FE\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.1166 8.20593C10.1384 7.41428 9.44167 6.72712 9.44167 5.56769C9.44167 5.39706 9.44758 5.25746 9.45478 5.25746C9.46198 5.25746 9.53852 5.31377 9.62486 5.38261C10.026 5.70239 10.4752 5.83898 11.7188 6.01929C12.4506 6.12541 12.8624 6.21112 13.2423 6.33633C14.4497 6.73433 15.1967 7.54201 15.3749 8.64212C15.4267 8.96178 15.3963 9.56124 15.3124 9.87717C15.2462 10.1267 15.0439 10.5765 14.9902 10.5938C14.9754 10.5986 14.9609 10.5419 14.957 10.4648C14.9367 10.0517 14.7267 9.64959 14.374 9.34833C13.9729 9.00583 13.4341 8.73312 12.1166 8.20593Z\",\n fill: \"#FC74FE\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.6315 8.11947C10.6593 8.20169 10.7023 8.38891 10.7271 8.5355C10.8855 9.47277 10.3905 10.23 9.42761 10.5234C9.32564 10.5545 8.9241 10.6325 8.53528 10.697C7.74817 10.8272 7.39686 10.9194 7.04396 11.0884C6.79367 11.2082 6.49065 11.3878 6.50866 11.4056C6.51446 11.4114 6.5716 11.3977 6.63558 11.3754C7.08064 11.2201 7.57594 11.1397 8.32849 11.1008C8.6271 11.0854 8.96677 11.0608 9.08331 11.0462C9.75375 10.9623 10.2183 10.7599 10.5797 10.3944C10.7808 10.191 10.9007 10.0015 10.9972 9.73425C11.0585 9.56479 11.0667 9.50182 11.0673 9.20145C11.0678 8.89551 11.0603 8.83951 10.994 8.65123C10.9071 8.40454 10.8045 8.21932 10.6748 8.07459L10.581 7.97L10.6315 8.11947Z\",\n fill: \"#FC74FE\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.634 10.1355C11.3711 9.57395 11.3108 9.03174 11.4548 8.52609C11.4702 8.47205 11.495 8.42783 11.5099 8.42783C11.5247 8.42783 11.5868 8.46115 11.6477 8.50187C11.7688 8.58291 12.0118 8.7194 12.6589 9.0701C13.4664 9.50772 13.9269 9.84657 14.2401 10.2337C14.5143 10.5727 14.6839 10.9589 14.7656 11.4299C14.8119 11.6965 14.7847 12.3383 14.7158 12.6069C14.4987 13.4538 13.9941 14.119 13.2744 14.5072C13.1689 14.5641 13.0742 14.6108 13.064 14.611C13.0537 14.6112 13.0922 14.5141 13.1494 14.3952C13.3915 13.8921 13.4191 13.4028 13.236 12.8581C13.1239 12.5246 12.8954 12.1177 12.434 11.4299C11.8974 10.6303 11.7659 10.4175 11.634 10.1355Z\",\n fill: \"#FC74FE\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.68332 11.9774C5.85129 12.1118 4.93788 12.5494 4.20377 13.1655L3.98521 13.3489L4.17728 13.3787C5.17961 13.5342 5.44952 13.6721 6.14478 14.384C6.54489 14.7936 6.68002 14.8847 7.01188 14.969C7.49931 15.0926 7.97981 14.8654 8.14459 14.4332C8.21823 14.2402 8.20843 13.9204 8.12397 13.7598C7.92294 13.3775 7.33754 13.254 7.05444 13.534C6.81865 13.7673 6.88735 14.1187 7.18061 14.1791C7.24775 14.1929 7.24584 14.1901 7.1635 14.153C7.03515 14.0953 6.9794 14.0154 6.97869 13.8881C6.97705 13.5896 7.32061 13.4221 7.64024 13.5655C7.87426 13.6705 7.96722 13.8076 7.96722 14.048C7.96722 14.4183 7.65016 14.6972 7.28122 14.6516C7.08402 14.6272 6.84285 14.5019 6.71352 14.3565C6.38812 13.9908 6.51488 13.4138 6.96921 13.1923C7.31508 13.0238 7.77483 13.0654 8.13133 13.2973C8.54097 13.564 8.71518 13.8076 9.068 14.6074C9.18288 14.8679 9.33068 15.1609 9.39644 15.2589C9.7306 15.7562 10.1311 16 10.6134 16C10.8794 16 11.0796 15.9517 11.3313 15.8267C11.5184 15.7338 11.7836 15.5574 11.7645 15.5385C11.759 15.5331 11.6814 15.557 11.5921 15.5917C11.0654 15.7959 10.53 15.7819 10.2191 15.5557C10.0234 15.4132 9.86541 15.1297 9.78423 14.7749C9.77019 14.7134 9.72382 14.4423 9.68118 14.1722C9.57309 13.4876 9.46927 13.1799 9.22728 12.8269C8.97967 12.4656 8.50355 12.1624 7.9713 12.027C7.63925 11.9425 7.04191 11.9195 6.68332 11.9774Z\",\n fill: \"#FC74FE\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.51771 6.68506C5.58956 6.42132 5.82168 6.16978 6.06047 6.09689C6.21231 6.05057 6.52616 6.08014 6.67373 6.15469C6.95972 6.29921 7.16734 6.62841 7.12229 6.86596C7.06733 7.15574 6.59459 7.38754 6.0508 7.39131C5.77305 7.39325 5.67047 7.35616 5.5644 7.21537C5.49875 7.12821 5.47388 6.84596 5.51771 6.68506ZM6.60071 6.25795C6.74333 6.34452 6.78002 6.47251 6.69616 6.59095C6.6384 6.67253 6.45957 6.74998 6.3289 6.74998C6.13257 6.74998 5.91837 6.61148 5.91837 6.48454C5.91837 6.22952 6.32911 6.09312 6.60071 6.25795Z\",\n fill: \"#FC74FE\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgUni);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/uni.33a17799a57f81752c8ed32bfb256fed.svg\";","var _path, _path2, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDefault = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.4467 5.09141C4.37546 5.8514 4.32546 7.19638 4.7742 7.76887C4.7742 7.76887 4.56295 6.29139 6.45667 4.43767C7.21916 3.69143 7.39541 2.67645 7.12916 1.91521C6.97792 1.48397 6.70167 1.12772 6.46167 0.878976C6.32168 0.732728 6.42917 0.491482 6.63292 0.500232C7.8654 0.555231 9.86287 0.897725 10.7116 3.02769C11.0841 3.96268 11.1116 4.92891 10.9341 5.9114C10.8216 6.53889 10.4216 7.93387 11.3341 8.10512C11.9853 8.22761 12.3003 7.71012 12.4416 7.33763C12.5003 7.18263 12.7041 7.14388 12.8141 7.26763C13.9141 8.51886 14.0078 9.99259 13.7803 11.2613C13.3403 13.7138 10.8566 15.4988 8.38914 15.4988C5.30669 15.4988 2.85298 13.735 2.21674 10.5426C1.96049 9.25385 2.09049 6.70389 4.07796 4.90391C4.22546 4.76892 4.4667 4.88891 4.4467 5.09141Z\",\n fill: \"url(#paint0_radial_9821_71115)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.51537 9.67761C8.37914 8.21513 8.88788 6.5464 9.16663 5.88141C9.20413 5.79392 9.10413 5.71142 9.02538 5.76517C8.53664 6.09766 7.5354 6.88015 7.06916 7.98138C6.43792 9.47011 6.48292 10.1988 6.85666 11.0888C7.08166 11.6251 6.82041 11.7388 6.68916 11.7588C6.56167 11.7788 6.44417 11.6938 6.35042 11.6051C6.08072 11.3462 5.88853 11.0172 5.79543 10.6551C5.77543 10.5776 5.67418 10.5563 5.62793 10.6201C5.27793 11.1038 5.09669 11.8801 5.08794 12.4288C5.06044 14.125 6.46167 15.5 8.15664 15.5C10.2929 15.5 11.8491 13.1376 10.6216 11.1626C10.2654 10.5876 9.93036 10.2113 9.51537 9.67761Z\",\n fill: \"url(#paint1_radial_9821_71115)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint0_radial_9821_71115\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(7.77862 15.5376) rotate(-179.751) scale(8.82332 14.4773)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.314,\n stopColor: \"#FF9800\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.662,\n stopColor: \"#FF6D00\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.972,\n stopColor: \"#F44336\"\n })), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint1_radial_9821_71115\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(8.27413 6.75745) rotate(90.5787) scale(9.23191 6.9477)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.214,\n stopColor: \"#FFF176\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.328,\n stopColor: \"#FFF27D\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.487,\n stopColor: \"#FFF48F\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.672,\n stopColor: \"#FFF7AD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.793,\n stopColor: \"#FFF9C4\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.822,\n stopColor: \"#FFF8BD\",\n stopOpacity: 0.804\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.863,\n stopColor: \"#FFF6AB\",\n stopOpacity: 0.529\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.91,\n stopColor: \"#FFF38D\",\n stopOpacity: 0.209\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.941,\n stopColor: \"#FFF176\",\n stopOpacity: 0\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDefault);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/default.8925c30c03871217927a2211e2e405c9.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDefault = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.00132 3.67292L11.7549 5.82522V10.151L8.01191 12.3165L4.26094 10.1695V5.84638L8.00132 3.67292ZM8.00132 0.5L6.62482 1.29323L2.8765 3.46668L1.5 4.25992V11.7612L2.8765 12.5545L6.63012 14.7068L8.00662 15.5L9.38312 14.7068L13.1235 12.5386L14.5 11.7454V4.23347L13.1235 3.44024L9.37253 1.29323L7.99603 0.5H8.00132Z\",\n fill: \"#375BD2\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDefault);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/default.20888a5b789cb99438c9aac38478a2f2.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDefault = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.00268 1.30335C5.88426 0.79246 6.90761 0.5 7.99974 0.5C11.3108 0.5 13.9944 3.1857 13.9944 6.49884C13.9944 9.81198 11.3108 12.4977 7.99974 12.4977V10.9981C10.4828 10.9981 12.4958 8.98344 12.4958 6.49937C12.4958 4.01424 10.4828 1.99958 7.99974 1.99958C6.89365 1.99899 5.82632 2.407 5.00268 3.14527C4.53062 3.56704 4.15308 4.08386 3.89482 4.66182C3.63657 5.23978 3.50343 5.86581 3.50415 6.49884V12.4977L2.00562 10.9986V6.49884C2.00365 5.03787 2.53672 3.62675 3.50415 2.53199C3.93372 2.04388 4.43984 1.62891 5.00268 1.30335Z\",\n fill: \"#7142CF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.38383 7.07623C9.4591 6.89433 9.4978 6.69939 9.49773 6.50253C9.50303 6.3024 9.46819 6.10376 9.39526 5.91732C9.32234 5.73088 9.21281 5.56093 9.07313 5.41751C8.93346 5.27409 8.76647 5.1601 8.58202 5.08226C8.39757 5.00443 8.1994 4.96433 7.99921 4.96433C7.79901 4.96433 7.60084 5.00443 7.41639 5.08226C7.23194 5.1601 7.06495 5.27409 6.92528 5.41751C6.7856 5.56093 6.67607 5.73088 6.60315 5.91732C6.53022 6.10376 6.49538 6.30293 6.50068 6.50305V15.5L6.34946 15.3493L5.00215 13.9999V6.502C5.00171 5.97549 5.13999 5.45815 5.40306 5.00207C5.66612 4.54598 6.0447 4.16725 6.50068 3.90399C6.95656 3.64116 7.47359 3.50294 7.99982 3.50323C8.52604 3.50352 9.04292 3.64231 9.49851 3.90565C9.9541 4.16899 10.3324 4.54761 10.5953 5.00345C10.8582 5.45929 10.9965 5.9763 10.9963 6.50253C10.9964 6.89624 10.919 7.28613 10.7684 7.64993C10.6179 8.01373 10.3972 8.34432 10.1189 8.62282C9.84058 8.90132 9.51015 9.12227 9.14645 9.27307C8.78276 9.42386 8.39292 9.50155 7.99921 9.50169V8.00211C8.19606 8.00204 8.39098 7.96319 8.57283 7.8878C8.75468 7.8124 8.91989 7.70192 9.05904 7.56267C9.19819 7.42342 9.30856 7.25813 9.38383 7.07623Z\",\n fill: \"#7142CF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDefault);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/default.b785c2b33c6831e299d750aa2ebb202f.svg\";","import { ReactComponent as DefaultDexV2Icon } from '@/assets/svg/oracle/DEXV2/default.svg';\nimport { ReactComponent as UniDexIcon } from '@/assets/svg/oracle/DEXV2/uni.svg';\nimport { ReactComponent as DefaultEmergingcIcon } from '@/assets/svg/oracle/EMG/default.svg';\nimport { ReactComponent as DefaultLinkIcon } from '@/assets/svg/oracle/LINK/default.svg';\nimport { ReactComponent as DefaultPythIcon } from '@/assets/svg/oracle/PYTH/default.svg';\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport { MarketType } from '@synfutures/sdks-perp';\ntype MarketOraclesInfo = {\n [id in MarketType]: { oracleIcon: JSX.Element | null; oracleNameForI18nTooltip: string };\n};\n\nexport const i18nIdOracleTooltipMap = {\n [MarketType.LINK]: 'common.tradePage.oracleTooltip.LINK',\n [MarketType.DEXV2]: 'common.tradePage.oracleTooltip.DEXV2',\n [MarketType.PYTH]: 'common.tradePage.oracleTooltip.PYTH',\n [MarketType.EMG]: 'common.tradePage.oracleTooltip.EMG',\n};\n\nconst defaultMarketOraclesInfo: MarketOraclesInfo = {\n [MarketType.LINK]: {\n oracleIcon: ,\n oracleNameForI18nTooltip: 'Chainlink',\n },\n [MarketType.DEXV2]: {\n oracleIcon: ,\n oracleNameForI18nTooltip: 'DEX',\n },\n [MarketType.PYTH]: {\n oracleIcon: ,\n oracleNameForI18nTooltip: 'PYTH',\n },\n [MarketType.EMG]: {\n oracleIcon: ,\n oracleNameForI18nTooltip: 'EMERGING',\n },\n};\n\nconst marketOraclesInfoInChains: { [id in CHAIN_ID]?: MarketOraclesInfo } = {\n [CHAIN_ID.BASE]: {\n ...defaultMarketOraclesInfo,\n [MarketType.DEXV2]: {\n oracleIcon: ,\n oracleNameForI18nTooltip: 'Uniswap',\n },\n },\n};\n\nexport const getMarketOraclesInfo = (chainId: CHAIN_ID): MarketOraclesInfo => {\n return marketOraclesInfoInChains[chainId] || defaultMarketOraclesInfo;\n};\n","import './TokenPairOracle.less';\n\nimport { MarketType } from '@synfutures/sdks-perp';\nimport React, { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { getMarketOraclesInfo, i18nIdOracleTooltipMap } from '@/constants/oracle/marketOraclesInfo';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { Tooltip } from '../ToolTip';\n\nfunction TokenPairOracle({ marketType }: { marketType: MarketType | undefined }): JSX.Element | null {\n const { t } = useTranslation();\n const chainId = useChainId();\n const oraclesInfo = useMemo(() => {\n return chainId && marketType && getMarketOraclesInfo(chainId)[marketType];\n }, [chainId, marketType]);\n const oracleIcon = useMemo(() => {\n return oraclesInfo && oraclesInfo.oracleIcon;\n }, [oraclesInfo]);\n const tooltipTitle = useMemo(() => {\n return (\n oraclesInfo &&\n marketType &&\n t(i18nIdOracleTooltipMap[marketType], { oracleName: oraclesInfo.oracleNameForI18nTooltip })\n );\n }, [marketType, oraclesInfo, t]);\n if (!oraclesInfo || !tooltipTitle) return <>;\n return (\n \n
{oracleIcon}
\n
\n );\n}\n\nexport default React.memo(TokenPairOracle);\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgMarginIcon = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 9,\n height: 9,\n viewBox: \"0 0 9 9\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.688 6.5696H3.36V4.2656C3.36 4.0224 3.3504 3.792 3.3312 3.5744C3.312 3.3568 3.2832 3.1648 3.2448 2.9984L3.2064 3.0464L4.4736 6.5696H5.0784L6.3072 3.0464L6.2592 3.0368C6.2464 3.1392 6.2336 3.2992 6.2208 3.5168C6.2144 3.728 6.2112 3.9776 6.2112 4.2656V6.5696H6.9216V2.528H5.952L4.8768 5.36C4.8512 5.4368 4.832 5.5136 4.8192 5.5904C4.8064 5.6608 4.7904 5.7344 4.7712 5.8112H4.8096C4.8032 5.7344 4.7936 5.6608 4.7808 5.5904C4.768 5.5136 4.7488 5.4368 4.7232 5.36L3.6672 2.528H2.688V6.5696ZM4.8 8.528C4.256 8.528 3.744 8.4256 3.264 8.2208C2.784 8.016 2.3616 7.7344 1.9968 7.376C1.6384 7.0112 1.3568 6.5888 1.152 6.1088C0.9472 5.6288 0.8448 5.1168 0.8448 4.5728C0.8448 4.0288 0.9472 3.52 1.152 3.0464C1.3568 2.5664 1.6384 2.144 1.9968 1.7792C2.3616 1.4144 2.784 1.1296 3.264 0.924799C3.744 0.719999 4.256 0.617599 4.8 0.617599C5.3504 0.617599 5.8624 0.719999 6.336 0.924799C6.816 1.1296 7.2352 1.4144 7.5936 1.7792C7.9584 2.144 8.2432 2.5664 8.448 3.0464C8.6528 3.52 8.7552 4.0288 8.7552 4.5728C8.7552 5.1168 8.6528 5.6288 8.448 6.1088C8.2432 6.5888 7.9584 7.0112 7.5936 7.376C7.2352 7.7344 6.816 8.016 6.336 8.2208C5.8624 8.4256 5.3504 8.528 4.8 8.528Z\",\n fill: \"#A1A7B2\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgMarginIcon);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/margin_icon.8e25f81a534d96dd83082532256ac339.svg\";","import './TokenPairSymbol.less';\n\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport { ReactComponent as MarginIcon } from '@/assets/svg/margin_icon.svg';\nimport { TokenInfo } from '@/types/token';\n\nfunction TokenPairSymbol({\n baseToken,\n quoteToken,\n isInverse,\n requiredMarginIcon = true,\n}: {\n baseToken: TokenInfo;\n quoteToken: TokenInfo;\n isInverse?: boolean;\n requiredMarginIcon?: boolean;\n}): JSX.Element {\n return (\n \n {isInverse ? (\n <>\n {quoteToken?.symbol}\n {requiredMarginIcon && }\n /{baseToken?.symbol}\n \n ) : (\n <>\n {baseToken?.symbol}\n /{quoteToken?.symbol}\n {requiredMarginIcon && }\n \n )}\n \n );\n}\n\nexport default React.memo(TokenPairSymbol, (prevProps, nextProps) => {\n return (\n prevProps?.baseToken?.id === nextProps?.baseToken?.id &&\n prevProps?.quoteToken.id === nextProps?.quoteToken.id &&\n prevProps?.quoteToken.symbol === nextProps?.quoteToken.symbol &&\n prevProps?.baseToken?.symbol === nextProps?.baseToken?.symbol\n );\n});\n","import './index.less';\n\nimport { MarketType } from '@synfutures/sdks-perp';\nimport classNames from 'classnames';\nimport React, { useMemo } from 'react';\n\nimport { TokenInfo } from '@/types/token';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { useTranslation } from 'react-i18next';\nimport Tag from '../Tag';\nimport TokenFavorite from '../TokenFavorite';\nimport TokenLogo from '../TokenLogo';\nimport TokenPairExpiry from './TokenPairExpiry';\nimport TokenPairLeverage from './TokenPairLeverage';\nimport TokenPairOracle from './TokenPairOracle';\nimport TokenPairSymbol from './TokenPairSymbol';\ntype TokenPairProps = {\n baseToken: TokenInfo;\n quoteToken: TokenInfo;\n marketType?: MarketType;\n expiry?: number;\n instrumentAddr?: string;\n showFavorite?: boolean;\n infoMode?: boolean;\n isInverse?: boolean;\n showOracle?: boolean;\n tokenSize?: number;\n highlightExpiry?: boolean;\n favoriteClicked?: (fav: boolean) => void;\n isShowLogo?: boolean;\n isShowExpiryTag?: boolean;\n showShortPerp?: boolean;\n leverage?: number;\n showLeverage?: boolean;\n extra?: React.ReactNode;\n verticalMode?: boolean;\n dropdownIcon?: React.ReactNode;\n mouseOver?: () => void;\n mouseLeave?: () => void;\n tagExtra?: React.ReactNode;\n isMobile?: boolean;\n isShowPairSettleIcon?: boolean;\n showMargin?: boolean;\n symbol?: string;\n chainId?: CHAIN_ID;\n showChainIcon?: boolean;\n showMarginText?: boolean;\n requiredMarginIcon?: boolean;\n};\n\nfunction TokenPair({\n baseToken,\n quoteToken,\n expiry,\n showFavorite,\n instrumentAddr,\n infoMode,\n tokenSize,\n isInverse = false,\n showOracle = false,\n marketType,\n highlightExpiry,\n isShowLogo = true,\n isShowExpiryTag = true,\n showShortPerp = true,\n leverage,\n showLeverage,\n extra,\n verticalMode,\n tagExtra,\n dropdownIcon,\n isMobile,\n showMargin,\n chainId,\n // symbol,\n showChainIcon,\n showMarginText,\n}: TokenPairProps): JSX.Element {\n const { t } = useTranslation();\n const expiryDom = useMemo(() => {\n if (expiry) {\n const dom = (\n \n );\n if (isShowExpiryTag) {\n return (\n \n {dom}\n \n );\n }\n return dom;\n }\n }, [expiry, highlightExpiry, isShowExpiryTag, showShortPerp]);\n\n if (verticalMode) {\n return (\n
\n <>{showFavorite && }\n
\n {isShowLogo && (\n \n )}\n
\n
\n \n {dropdownIcon}\n
\n
\n {showMarginText && (\n
\n {quoteToken.symbol} {t('common.margin')}\n
\n )}\n {expiryDom}\n {showLeverage && (\n \n \n \n )}\n {showOracle && }\n {tagExtra}\n
\n
\n
\n
\n );\n }\n if (showMargin) {\n return (\n \n \n \n
\n
\n \n {expiryDom}\n \n \n \n
\n
\n
\n {quoteToken.symbol} {t('common.margin')}\n
\n {/* {chainId && symbol && (\n \n )} */}\n {showOracle && }\n {tagExtra}\n
\n
\n {extra}\n
\n );\n }\n return (\n
\n <>{showFavorite && }\n {isShowLogo && (\n \n )}\n
\n \n {infoMode ? (\n <>{showFavorite && }\n ) : (\n expiryDom\n )}\n {showLeverage && (\n \n \n \n )}\n {showOracle && }\n {tagExtra}\n
\n {extra}\n
\n );\n}\n\nexport default React.memo(TokenPair, (prevProps, nextProps) => {\n return (\n prevProps.baseToken?.id === nextProps.baseToken?.id &&\n prevProps.baseToken?.symbol === nextProps.baseToken?.symbol &&\n prevProps.quoteToken?.id === nextProps.quoteToken?.id &&\n prevProps.quoteToken?.symbol === nextProps.quoteToken?.symbol &&\n prevProps.expiry === nextProps.expiry &&\n prevProps.showFavorite === nextProps.showFavorite &&\n prevProps.infoMode === nextProps.infoMode &&\n prevProps.isInverse === nextProps.isInverse &&\n prevProps.showOracle === nextProps.showOracle &&\n prevProps.tokenSize === nextProps.tokenSize &&\n prevProps.highlightExpiry === nextProps.highlightExpiry &&\n prevProps.isShowLogo === nextProps.isShowLogo &&\n prevProps.isShowExpiryTag === nextProps.isShowExpiryTag &&\n prevProps.showShortPerp === nextProps.showShortPerp &&\n prevProps.leverage === nextProps.leverage &&\n prevProps.showLeverage === nextProps.showLeverage &&\n prevProps.extra === nextProps.extra &&\n prevProps.verticalMode === nextProps.verticalMode &&\n prevProps.tagExtra === nextProps.tagExtra\n );\n});\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconFilterOff = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.68027 1.75C3.69415 1.75 3.70808 1.75001 3.72204 1.75001L12.3195 1.75C12.7158 1.74996 13.0806 1.74992 13.3777 1.78737C13.7016 1.82822 14.0572 1.92489 14.3551 2.20466C14.6604 2.49072 14.773 2.8433 14.8198 3.16974C14.8612 3.4579 14.8611 3.80862 14.861 4.17514C14.861 4.18997 14.861 4.20482 14.861 4.21969L14.861 4.67286C14.8611 4.96293 14.8611 5.23474 14.8372 5.46549C14.8105 5.7226 14.75 5.98617 14.5942 6.24396C14.4403 6.4992 14.236 6.6773 14.0237 6.82465C13.8295 6.95947 13.5854 7.09667 13.3184 7.24674L11.5127 8.26331C11.5126 8.2634 11.5124 8.2635 11.5122 8.26359C11.0891 8.50242 10.98 8.56788 10.9133 8.62578L10.9083 8.63008L10.9033 8.6343C10.7519 8.76112 10.6471 8.93481 10.6055 9.12789L10.6048 9.13107L10.6041 9.13424C10.5877 9.20715 10.5832 9.30934 10.5832 9.7552V11.3869C10.5832 11.4055 10.5832 11.4241 10.5832 11.4427C10.5833 11.9781 10.5834 12.4661 10.523 12.8487C10.4569 13.2681 10.2929 13.7349 9.82214 14.0288C9.36593 14.3139 8.87663 14.2755 8.46418 14.1776C8.07469 14.0852 7.60304 13.9009 7.0707 13.6929C7.05443 13.6865 7.03811 13.6802 7.02174 13.6738L6.99033 13.6615C6.74316 13.5648 6.50697 13.4723 6.31619 13.3738C6.10361 13.2639 5.8818 13.1149 5.70912 12.8718C5.53389 12.6254 5.46856 12.3658 5.44075 12.126C5.41641 11.9161 5.41646 11.6696 5.4165 11.4203C5.41651 11.4094 5.41651 11.3984 5.41651 11.3875V9.75581C5.41651 9.30898 5.41195 9.20733 5.39574 9.1354L5.39547 9.13418L5.3952 9.13296C5.35054 8.93165 5.25948 8.77592 5.08728 8.6266L5.08685 8.62623C5.01985 8.56805 4.91063 8.50238 4.48777 8.26436L4.48772 8.26433L2.68947 7.25193C2.41843 7.09943 2.17151 6.9605 1.97516 6.82383C1.76258 6.67586 1.55945 6.49787 1.40577 6.24372C1.24992 5.98596 1.18925 5.72254 1.16255 5.46535C1.13862 5.23478 1.13865 4.96323 1.13868 4.67348C1.13868 4.663 1.13868 4.6525 1.13868 4.64197V4.2203C1.13868 4.20543 1.13868 4.19057 1.13868 4.17575C1.13861 3.80894 1.13855 3.45808 1.1799 3.16985C1.22674 2.84333 1.33929 2.4907 1.64464 2.20462C1.94276 1.92499 2.29832 1.82826 2.62253 1.78737C2.91955 1.74992 3.28424 1.74996 3.68027 1.75ZM2.65955 3.30764C2.65667 3.30951 2.65488 3.3103 2.6547 3.31022C2.65452 3.31015 2.65596 3.30922 2.65955 3.30764ZM2.68056 3.30023C2.67599 3.3174 2.67029 3.34387 2.66469 3.38286C2.64049 3.55156 2.63868 3.79225 2.63868 4.2203V4.64197C2.63868 4.97415 2.63961 5.16669 2.65454 5.31049C2.66712 5.43174 2.68506 5.46064 2.68901 5.467C2.68915 5.46722 2.68927 5.46742 2.68937 5.46759L2.68949 5.46778C2.69489 5.47672 2.71625 5.51208 2.83209 5.59271C2.96059 5.68215 3.1415 5.78512 3.44327 5.95492L3.44334 5.95497L3.44341 5.95501L5.22355 6.95721C5.22357 6.95722 5.22358 6.95723 5.2236 6.95724C5.24714 6.97049 5.27034 6.98353 5.29323 6.99639C5.61479 7.1771 5.87239 7.32186 6.06995 7.49331C6.47678 7.84607 6.74252 8.28152 6.85933 8.80691C6.91705 9.06395 6.91682 9.3484 6.91655 9.68504C6.91653 9.70838 6.91651 9.73196 6.91651 9.75581V11.3875C6.91651 11.6826 6.91767 11.8403 6.93076 11.9532C6.93336 11.9756 6.93601 11.9918 6.93822 12.0031C6.95112 12.0116 6.97215 12.0243 7.0047 12.0411C7.1179 12.0996 7.27985 12.164 7.56752 12.2766C7.56759 12.2766 7.56766 12.2766 7.56773 12.2767C8.16349 12.5094 8.53586 12.653 8.81049 12.7181C8.91335 12.7425 8.97627 12.7492 9.01188 12.75C9.02035 12.7233 9.03101 12.6805 9.04134 12.6151C9.08098 12.3636 9.08321 11.9968 9.08321 11.3869V9.7552C9.08321 9.7315 9.0832 9.70807 9.08318 9.68488C9.08291 9.34927 9.08268 9.0658 9.13978 8.80901C9.25166 8.29292 9.53147 7.8285 9.93537 7.48839C10.1305 7.3204 10.3851 7.17697 10.7015 6.99868C10.7258 6.98502 10.7504 6.97114 10.7754 6.95704L10.7758 6.95684L12.5565 5.95429L12.5567 5.95419C12.8587 5.78439 13.0396 5.68177 13.1685 5.59235C13.2839 5.51224 13.3048 5.47741 13.3095 5.46961L13.3097 5.4693L13.31 5.46875L13.3103 5.4682C13.3104 5.46803 13.3106 5.46784 13.3107 5.46762C13.3146 5.4614 13.3326 5.43245 13.3452 5.31081C13.3601 5.16672 13.361 4.97382 13.361 4.64136V4.21969C13.361 3.79194 13.3592 3.55142 13.335 3.38282C13.3294 3.34375 13.3237 3.31726 13.3191 3.3001C13.2963 3.29325 13.2561 3.28392 13.19 3.27559C12.9983 3.25141 12.73 3.25001 12.2777 3.25001H3.72204C3.27005 3.25001 3.0019 3.25141 2.8102 3.27559C2.74385 3.28395 2.70348 3.29334 2.68056 3.30023ZM13.3449 3.31002C13.3447 3.31009 13.3429 3.30931 13.3401 3.30747C13.3436 3.30902 13.3451 3.30994 13.3449 3.31002ZM13.3123 3.27825C13.3104 3.27513 13.3097 3.27318 13.3098 3.27298C13.3098 3.27278 13.3107 3.27435 13.3123 3.27825ZM8.99518 12.789C8.995 12.7885 8.99665 12.785 9.00069 12.7799C8.99739 12.787 8.99537 12.7895 8.99518 12.789ZM9.04281 12.7489C9.04793 12.747 9.05107 12.7466 9.05136 12.7469C9.05165 12.7472 9.04909 12.7481 9.04281 12.7489ZM6.92052 11.99C6.92059 11.99 6.92135 11.9906 6.9226 11.9918C6.92108 11.9906 6.92045 11.99 6.92052 11.99ZM6.94279 12.0224C6.94339 12.0239 6.94364 12.0247 6.94362 12.0247C6.9436 12.0248 6.94331 12.0241 6.94279 12.0224ZM2.68746 3.27824C2.68899 3.27433 2.6899 3.27277 2.68998 3.27296C2.69005 3.27316 2.68929 3.27511 2.68746 3.27824Z\",\n fill: \"#ABB5BA\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconFilterOff);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_filter_off.23bc4e0f3d932fcdbed4b1fb5206d62f.svg\";","/**\n * @description Component-FeeTooltip\n */\nimport { WrappedInstrument } from '@/entities/WrappedInstrument';\nimport './index.less';\n\nimport { ADDITIONAL_FEE_LINK } from '@/constants/links';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { BigNumber } from 'ethers';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport LeanMoreToolTip from '../LeanMoreToolTip';\ninterface IPropTypes {\n className?: string;\n instrument: WrappedInstrument | undefined;\n fee: BigNumber;\n stablityFee: BigNumber;\n}\nconst FeeTooltip: FC = function ({ fee, instrument, stablityFee }) {\n const { t } = useTranslation();\n const additionalFee = useMemo(() => WrappedBigNumber.from(stablityFee), [stablityFee]);\n const tradingFee = useMemo(() => WrappedBigNumber.from(fee).min(additionalFee), [additionalFee, fee]);\n return additionalFee.gt(0) ? (\n \n
{t('tooltip.portfolio.history.tradeHistory.totalFee')}
\n
\n
{t('tooltip.portfolio.history.tradeHistory.tradingFee')}
\n
\n {tradingFee.formatNumberWithTooltip({\n suffix: instrument?.marginToken.symbol,\n })}\n
\n
\n
\n
{t('tooltip.portfolio.history.tradeHistory.additionalFee')}
\n
\n {additionalFee.formatNumberWithTooltip({\n suffix: instrument?.marginToken.symbol,\n })}\n
\n
\n
\n }>\n {WrappedBigNumber.from(fee).formatNumberWithTooltip({\n suffix: instrument?.marginToken.symbol,\n showToolTip: false,\n })}\n \n ) : (\n <>\n {WrappedBigNumber.from(fee).formatNumberWithTooltip({\n suffix: instrument?.marginToken.symbol,\n })}\n \n );\n};\n\nexport default FeeTooltip;\n","/**\n * @description Component-LiquidityRemoveTooltip\n */\nimport './index.less';\n\nimport { ITradeHistory } from '@/types/graph';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\ninterface IPropTypes {\n record: ITradeHistory;\n}\nconst LiquidityRemoveTooltip: FC = function ({ record }) {\n const { t } = useTranslation();\n return (\n \n {record.isRangeLiquidated\n ? t('tooltip.portfolio.history.tradeHistory.liqRemoved')\n : t(`tooltip.portfolio.history.tradeHistory.liqRemove`)}\n \n );\n};\n\nexport default LiquidityRemoveTooltip;\n","/**\n * @description Component-TradeSide\n */\nimport './index.less';\n\nimport { Side } from '@synfutures/sdks-perp';\nimport React, { FC } from 'react';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n side: Side;\n size: React.ReactNode;\n quoteSize?: React.ReactNode;\n noBg?: boolean;\n vertical?: boolean;\n}\nconst TradeSideSize: FC = function ({ vertical, size, quoteSize, side, noBg: noTag }) {\n const { deviceType } = useMediaQueryDevice();\n if (side === Side.FLAT) {\n return null;\n }\n return (\n \n
\n
\n {size}\n
{quoteSize}
\n
\n
\n );\n};\n\nexport default TradeSideSize;\n","/**\n * @description Component-HistoryFilterDropDown\n */\nimport './index.less';\n\nimport { Checkbox } from 'antd';\nimport { FilterDropdownProps } from 'antd/es/table/interface';\nimport { FC, Key, useMemo } from 'react';\n\nconst HistoryFilterDropDown: FC = function ({ filters, confirm, setSelectedKeys }) {\n const options = useMemo(\n () =>\n filters?.map((f) => ({\n label: f.text,\n value: f.value,\n })),\n [filters],\n );\n if (!filters?.length) {\n return <>;\n }\n return (\n {\n setSelectedKeys(checkedValues as Key[]);\n confirm({ closeDropdown: false });\n }}\n options={options || []}\n className=\"syn-history-filter-drop-down\"\n />\n );\n};\n\nexport default HistoryFilterDropDown;\n","var _rect, _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconLabelP = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 1.33337,\n y: 1.33334,\n width: 13.3333,\n height: 13.3333,\n rx: 4,\n fill: \"#FF6666\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.32483 4.79332C5.32483 4.25332 5.64631 3.89777 6.22075 3.89777H8.25334C9.94185 3.89777 11.1933 5.00036 11.1933 6.6422C11.1933 8.31887 9.89556 9.36405 8.3226 9.36405H7.04816V11.2474C7.04816 11.8218 6.68075 12.1429 6.18668 12.1429C5.69261 12.1429 5.3252 11.8218 5.3252 11.2474L5.32483 4.79332ZM7.04742 7.84813H8.21853C8.94223 7.84813 9.40149 7.31998 9.40149 6.63072C9.40149 5.94184 8.94223 5.41332 8.21853 5.41332H7.04742V7.84813Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconLabelP);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_label_p.438954b8fc8aabd529ab913a2b95641a.svg\";","var _rect, _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconLabelR = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 1.33337,\n y: 1.33334,\n width: 13.3333,\n height: 13.3333,\n rx: 4,\n fill: \"#14B84B\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.32483 4.79332C5.32483 4.24221 5.63483 3.89777 6.20927 3.89777H8.23038C9.99889 3.89777 11.0896 4.69036 11.0896 6.49294C11.0896 7.75627 10.1367 8.47961 8.96519 8.66331L10.9178 10.7537C11.0781 10.9259 11.147 11.0981 11.147 11.2589C11.147 11.7066 10.7911 12.1429 10.2863 12.1429C10.0793 12.1429 9.80371 12.0626 9.62 11.8444L7.07075 8.75516H7.04779V11.247C7.04779 11.8214 6.68038 12.1426 6.18631 12.1426C5.69224 12.1426 5.32483 11.8214 5.32483 11.247V4.79332ZM7.04742 7.51479H8.23001C8.86149 7.51479 9.29815 7.13591 9.29815 6.49294C9.29815 5.8385 8.86112 5.48221 8.23001 5.48221H7.04742V7.51479Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconLabelR);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_label_r.aff9341fd7da1ed769e7bd54c669a9cc.svg\";","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { ExternalLink } from '@/components/Link';\nimport TokenSymbol from '@/components/TokenLogo/TokenSymbol';\nimport TokenPair from '@/components/TokenPair';\nimport { Tooltip } from '@/components/ToolTip';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { HISTORY_TYPE } from '@/constants/history';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useWrappedInstrumentMap } from '@/features/futures/hooks';\nimport { useChainId, useEtherscanLink } from '@/hooks/web3/useChain';\nimport {\n IAccountBalanceHistory,\n IFundingHistory,\n IGraphPairBasicInfo,\n ILiquidityHistory,\n IOrderHistory,\n ITradeHistory,\n ITransferHistory,\n} from '@/types/graph';\nimport { TokenInfo } from '@/types/token';\nimport { formatDate } from '@/utils/timeUtils';\nimport { fixBalanceNumberDecimalsTo18 } from '@/utils/token';\nimport { ColumnsType } from 'antd/es/table';\nimport { FilterDropdownProps } from 'antd/es/table/interface';\nimport { t } from 'i18next';\nimport _ from 'lodash';\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport FeeTooltip from '@/components/ToolTip/FeeTooltip';\nimport LiquidityRemoveTooltip from '@/components/ToolTip/LiquidityRemoveTooltip';\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport TradeSideSize from '@/pages/components/TradeSideSize';\nimport { ZERO } from '@synfutures/sdks-perp';\nimport { OrderStatus, VirtualTradeType } from '@synfutures/sdks-perp-datasource';\nimport HistoryFilterDropDown from './HistoryFilterDropDown';\nimport { ReactComponent as IconFilter } from './assets/icon_filter_off.svg';\nimport { ReactComponent as IconPay } from './assets/icon_label_p.svg';\nimport { ReactComponent as IconReceive } from './assets/icon_label_r.svg';\n\nexport const portfolioTableColumns = {\n lastUpdatedTime: {\n title: 'common.status',\n key: 'status',\n width: 119,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: IOrderHistory): JSX.Element | undefined => {\n const status = record.status;\n let statusText = t(`common.table.status.${status}`);\n if (status === OrderStatus.FILLED && !record.filledSize.abs().eq(record.size.abs())) {\n statusText = t(`common.table.status.PARTIAL_FILLED`);\n }\n return (\n \n {statusText}\n \n );\n },\n },\n direction: {\n title: 'common.table.direction',\n key: 'direction',\n width: 80,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: IOrderHistory): JSX.Element | undefined => {\n return <>{formatDate(record.timestamp * 1000)};\n },\n },\n type: {\n title: 'common.table.type',\n key: 'type',\n width: 80,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: ITradeHistory): JSX.Element | undefined => {\n const typeDom = (\n \n <>{t(`common.historyC.tradeHistory.type.${record.type}`)}\n \n );\n return (\n : undefined}>\n {typeDom}\n \n );\n },\n },\n orderPrice: {\n title: 'common.table.orderPrice',\n key: 'orderPrice',\n width: 90,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: IOrderHistory): JSX.Element | undefined => {\n const price = WrappedBigNumber.from(record.price);\n return <>{price.formatPriceNumberWithTooltip()};\n },\n },\n price: {\n title: 'common.table.price',\n key: 'price',\n width: 80,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: ITradeHistory): JSX.Element | undefined => {\n // const price = getAdjustTradePrice(record.price, record.pair?.isInverse || false);\n const price = WrappedBigNumber.from(record.price);\n return <>{price.formatPriceNumberWithTooltip()};\n },\n },\n side: {\n title: 'common.sideSize',\n key: 'side',\n width: 140,\n align: 'left',\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: ITradeHistory | IOrderHistory): JSX.Element | undefined => {\n const side = record.side;\n return (\n
\n \n
\n );\n },\n },\n action: {\n title: 'common.table.action',\n key: 'action',\n width: 80,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: IFundingHistory): JSX.Element | undefined => {\n return <>{record.type};\n },\n },\n};\n\nexport function useHistoryTableColumns(\n historyType: HISTORY_TYPE,\n pairs?: (IGraphPairBasicInfo | undefined)[],\n quotes?: (TokenInfo | undefined)[],\n showPair = true,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n): ColumnsType {\n const { t } = useTranslation();\n const chainId = useChainId();\n const futures = useWrappedInstrumentMap(chainId);\n const getEtherscanLink = useEtherscanLink();\n const timestamp = useMemo(\n () => ({\n title: 'common.table.time',\n key: 'time',\n width: 140,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: ITradeHistory): JSX.Element | undefined => {\n return (\n \n
\n {formatDate(record.timestamp * 1000)}\n {record?.pair?.chainId && }\n
\n
\n );\n },\n }),\n [getEtherscanLink],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const tradeValue = useMemo(\n () => ({\n title: 'common.table.tradeV',\n key: 'tradeV',\n width: 100,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_value: any, record: ITradeHistory): JSX.Element | undefined => {\n const future = futures[record.instrumentAddr];\n return (\n <>\n {WrappedBigNumber.from(record.tradeValue).formatNumberWithTooltip({\n suffix: future?.marginToken.symbol,\n })}\n \n );\n },\n }),\n [futures],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const fee = useMemo(\n () => ({\n title: 'common.table.fee',\n key: 'fee',\n width: 150,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_value: any, record: ITradeHistory): JSX.Element | undefined => {\n const future = futures[record.instrumentAddr];\n\n let type: 'paid' | 'received' | undefined = undefined;\n let fee = record?.fee;\n if (record.type === VirtualTradeType.MARKET) {\n type = 'paid';\n } else if (record.type === VirtualTradeType.LIMIT) {\n type = 'received';\n } else if (record.type === VirtualTradeType.RANGE) {\n fee = ZERO;\n } else if (record.type === VirtualTradeType.TAKE_OVER) {\n fee = ZERO;\n } else if (record.type === VirtualTradeType.LIQUIDATION) {\n type = 'paid';\n }\n return (\n \n \n \n {type && (\n \n {type === 'paid' ? : }\n \n )}\n \n\n \n \n \n );\n },\n }),\n [futures, t],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const size = useMemo(\n () => ({\n title: 'common.table.size',\n key: 'size',\n width: 100,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_value: any, record: ITradeHistory | IOrderHistory): JSX.Element | undefined => {\n const future = futures[record.instrumentAddr || ''];\n return (\n <>\n {WrappedBigNumber.from(record.size.abs()).formatNumberWithTooltip({\n suffix: future?.baseToken?.symbol,\n })}\n \n );\n },\n }),\n [futures],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const fundingSize = useMemo(\n () => ({\n title: 'common.table.amount',\n key: 'amount',\n width: 80,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_value: any, record: IFundingHistory): JSX.Element | undefined => {\n const future = futures[record.instrumentAddr || ''];\n return (\n <>\n {WrappedBigNumber.from(record.funding).abs().formatNumberWithTooltip({\n suffix: future?.marginToken.symbol,\n })}\n \n );\n },\n }),\n [futures],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const transferAmount = useMemo(\n () => ({\n title: 'common.table.amount',\n key: 'amount',\n width: 120,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_value: any, record: ITransferHistory): JSX.Element | undefined => {\n const future = futures[record.instrumentAddr || ''];\n return (\n <>\n {future?.marginToken &&\n WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(record.amount, future?.marginToken.decimals),\n ).formatNumberWithTooltip({\n suffix: future?.marginToken.symbol,\n })}\n \n );\n },\n }),\n [futures],\n );\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const direction = useMemo(\n () => ({\n title: 'common.table.direction',\n key: 'direction',\n width: 120,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_value: any, record: ITransferHistory): JSX.Element | undefined => {\n return <>{record.isTransferIn ? t('common.table.transferIn') : t('common.table.transferOut')};\n },\n }),\n [t],\n );\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const earnPriceRange = useMemo(\n () => ({\n title: 'common.table.earn.priceRange',\n key: 'earnPriceRange',\n width: 120,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_: any, record: ILiquidityHistory): JSX.Element | undefined => {\n const priceMin = WrappedBigNumber.from(record.lowerPrice);\n\n const priceMax = WrappedBigNumber.from(record.upperPrice);\n return (\n <>\n {priceMin.formatPriceNumberWithTooltip()} ~ {priceMax.formatPriceNumberWithTooltip()}\n \n );\n },\n }),\n [],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const fairPrice = useMemo(\n () => ({\n title: 'common.fairP',\n key: 'fairPrice',\n width: 100,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_: any, record: ILiquidityHistory): JSX.Element | undefined => {\n const fairPrice = WrappedBigNumber.from(record.fairPrice);\n return <>{fairPrice.formatPriceNumberWithTooltip()};\n },\n }),\n [],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const earnAmountMobile = useMemo(\n () => ({\n title: 'common.table.amount',\n key: 'amount',\n width: 80,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_value: any, record: ILiquidityHistory): JSX.Element | undefined => {\n const future = futures[record.instrumentAddr || ''];\n return <>{WrappedBigNumber.from(record.amount).formatNumberWithTooltip()};\n },\n }),\n [futures],\n );\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const earnFeeEarning = useMemo(\n () => ({\n title: 'common.table.earn.feeEarning',\n key: 'feeEarning',\n width: 100,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_value: any, record: ILiquidityHistory): JSX.Element | undefined => {\n const future = futures[record.instrumentAddr || ''];\n return (\n \n {record.feeEarned &&\n WrappedBigNumber.from(record.feeEarned).formatNumberWithTooltip({\n suffix: future?.marginToken.symbol,\n })}\n \n );\n },\n }),\n [futures],\n );\n\n const filters = useMemo(\n () =>\n pairs?.map((pair) => ({\n text: pair ? (\n \n ) : (\n ''\n ),\n value: pair?.id,\n })),\n [pairs],\n );\n\n const pair = useMemo(\n () => ({\n title: 'common.market.tradeP',\n dataIndex: 'name',\n width: 260,\n filters,\n filterIcon: ,\n onFilter: (value: string, record: ITradeHistory | IOrderHistory) => record?.pair?.id === value,\n filterDropdown: (props: FilterDropdownProps) => (props.filters ? : <>),\n render: (text: string, record: { pair: IGraphPairBasicInfo }): JSX.Element | undefined => {\n const pair = record.pair;\n if (!pair) return undefined;\n return (\n \n );\n },\n }),\n [filters],\n );\n\n const quoteFilters = useMemo(\n () =>\n quotes?.map((quote) => ({\n text: quote ? quote.symbol : '',\n value: quote?.id,\n })),\n [quotes],\n );\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const accountType = useMemo(\n () => ({\n title: 'common.table.account',\n dataIndex: 'quote',\n className: 'history-account-type',\n width: 180,\n filters: quoteFilters,\n align: 'left',\n filterIcon: ,\n onFilter: (value: string, record: IAccountBalanceHistory) => record?.quote.address === value,\n filterDropdown: (props: FilterDropdownProps) => (props.filters ? : <>),\n render: (_value: TokenInfo, record: IAccountBalanceHistory): JSX.Element | undefined => {\n return (\n <>\n \n \n );\n },\n }),\n [quoteFilters],\n );\n\n const columnsMap = useMemo(\n () => ({\n [HISTORY_TYPE.ORDERS]: [\n {\n ...timestamp,\n render: (value: unknown, record: IOrderHistory): JSX.Element | undefined => {\n return (\n \n
\n {formatDate(record.createdTimestamp * 1000)}\n {record?.pair?.chainId && }\n
\n
\n );\n },\n },\n showPair ? { ...pair, title: 'common.table.pair', width: 190, align: 'left' } : undefined,\n { ...portfolioTableColumns.side, width: 120 },\n {\n title: 'common.taken',\n key: 'FILLED_AMOUNT',\n width: 135,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: IOrderHistory): JSX.Element | undefined => {\n const future = futures[record.instrumentAddr];\n return (\n <>{WrappedBigNumber.from(record.filledSize.abs()).abs().formatNumberWithTooltip({ isShowTBMK: true })}\n );\n },\n },\n\n {\n ...portfolioTableColumns.orderPrice,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: IOrderHistory): JSX.Element | undefined => {\n const price = WrappedBigNumber.from(record.price); // getAdjustTradePrice(oPrice, record.pair?.isInverse || false);\n return <>{price.formatPriceNumberWithTooltip()};\n },\n },\n {\n ...tradeValue,\n width: 110,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: IOrderHistory): JSX.Element | undefined => {\n const future = futures[record.instrumentAddr];\n return (\n <>\n {WrappedBigNumber.from(record.tradeValue).abs().formatNumberWithTooltip({\n suffix: future?.marginToken.symbol,\n })}\n \n );\n },\n },\n {\n ...fee,\n title: 'common.table.feeEarned',\n width: 150,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render: (_value: any, record: ITradeHistory): JSX.Element | undefined => {\n const future = futures[record.instrumentAddr];\n const fee = WrappedBigNumber.from(record.fee);\n return (\n \n \n {fee.formatNumberWithTooltip({\n suffix: future?.marginToken.symbol,\n })}\n \n \n );\n },\n },\n {\n ...portfolioTableColumns.lastUpdatedTime,\n width: 89,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render: (value: any, record: IOrderHistory): JSX.Element | undefined => {\n const status = record.status;\n let statusText = t(`common.table.status.${status}`);\n if (status === OrderStatus.FILLED && !record.filledSize.abs().eq(record.size.abs())) {\n statusText = t(`common.table.status.PARTIAL_FILLED`);\n }\n return (\n \n {t(`common.table.lastUpdatedTime`)}: {formatDate(record.timestamp * 1000)}\n \n }>\n {statusText}\n \n );\n },\n },\n ],\n [HISTORY_TYPE.TRADE]: [\n timestamp,\n showPair ? { ...pair, title: 'common.table.pair', width: 180, align: 'left' } : undefined,\n { ...portfolioTableColumns.type, align: 'left' },\n portfolioTableColumns.side,\n { ...portfolioTableColumns.price, width: 100 },\n { ...tradeValue, width: 110 },\n { ...fee, width: 200 },\n ],\n [HISTORY_TYPE.FUNDING]: [\n {\n ...timestamp,\n render: (value: unknown, record: ITradeHistory): JSX.Element | undefined => (\n <>\n
\n {formatDate(record.timestamp * 1000)}\n {record?.pair?.chainId && }\n
\n \n ),\n },\n showPair ? { ...pair, title: 'common.table.pair', width: 120, align: 'left' } : undefined,\n portfolioTableColumns.action,\n fundingSize,\n ],\n [HISTORY_TYPE.TRANSFERS]: [\n { ...timestamp, width: 190 },\n showPair ? { ...pair, title: 'common.table.pair', width: 120, align: 'left' } : undefined,\n direction,\n { ...transferAmount, width: 180 },\n ],\n [HISTORY_TYPE.LIQUIDITY]: [\n { ...timestamp, width: 120 },\n showPair ? { ...pair, title: 'common.table.pair', width: 120, align: 'left' } : undefined,\n {\n ...portfolioTableColumns.type,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render: (_value: any, record: ILiquidityHistory): JSX.Element | undefined => {\n return (\n <>\n {record.type === 'Remove' && record.operator?.toLowerCase() !== record.trader?.toLowerCase()\n ? t(`common.historyC.liqHistory.Removed`)\n : t(`common.historyC.liqHistory.${record.type}`)}\n \n );\n },\n },\n earnPriceRange,\n fairPrice,\n earnAmountMobile,\n earnFeeEarning,\n ],\n [HISTORY_TYPE.LIQUIDITY_MOBILE]: [\n {\n ...timestamp,\n width: 90,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render: (value: any, record: ITradeHistory): JSX.Element | undefined => {\n return (\n \n
\n {formatDate(record.timestamp * 1000, 'MM-DD HH:mm')}\n {record?.pair?.chainId && }\n
\n
\n );\n },\n },\n {\n ...portfolioTableColumns.type,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render: (_value: any, record: ILiquidityHistory): JSX.Element | undefined => {\n return (\n <>\n {record.type === 'Remove' && record.operator?.toLowerCase() !== record.trader?.toLowerCase()\n ? t(`common.historyC.liqHistory.Removed`)\n : t(`common.historyC.liqHistory.${record.type}`)}\n \n );\n },\n width: 45,\n },\n { ...earnPriceRange, width: 115 },\n { ...earnAmountMobile, width: 55 },\n ],\n [HISTORY_TYPE.ACCOUNT]: [\n {\n ...timestamp,\n width: 190,\n render: (value: unknown, record: IAccountBalanceHistory): JSX.Element | undefined => {\n return (\n \n
\n {formatDate((record?.timestamp || 0) * 1000)}\n {record?.chainId && }\n
\n
\n );\n },\n },\n accountType,\n {\n ...portfolioTableColumns.type,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render: (_value: any, record: IAccountBalanceHistory): JSX.Element | undefined => {\n return <>{record.type === 'Deposit' ? t('common.deposit') : t('common.withdraw')};\n },\n },\n {\n ...transferAmount,\n width: 180, // eslint-disable-next-line @typescript-eslint/no-explicit-any\n render: (_value: any, record: IAccountBalanceHistory): JSX.Element | undefined => {\n try {\n return (\n <>\n {WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(record.amount, record?.quote?.decimals),\n ).formatNumberWithTooltip({\n suffix: record?.quote?.symbol,\n })}\n \n );\n } catch (error) {\n console.log('🚀 ~ error:', { error, record });\n }\n },\n },\n ],\n }),\n [\n timestamp,\n showPair,\n pair,\n tradeValue,\n fee,\n fundingSize,\n direction,\n transferAmount,\n earnPriceRange,\n fairPrice,\n earnAmountMobile,\n earnFeeEarning,\n accountType,\n getEtherscanLink,\n futures,\n t,\n ],\n );\n const columnDefs = useMemo(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n () =>\n _.filter(\n _.get(columnsMap, [historyType]),\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (c: any) => !!c,\n )\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map((c: { title: any }) => ({ ...c, title: t(c.title) })),\n [columnsMap, historyType, t],\n );\n return columnDefs;\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconChevronLeft = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 25,\n viewBox: \"0 0 25 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.779 4.22203C16.2508 4.62638 16.3054 5.33659 15.901 5.80833L10.5286 12.0762L15.901 18.3441C16.3054 18.8158 16.2508 19.526 15.779 19.9304C15.3073 20.3347 14.5971 20.2801 14.1927 19.8083L8.19271 12.8083C7.8316 12.387 7.8316 11.7654 8.19271 11.3441L14.1927 4.34405C14.5971 3.87231 15.3073 3.81768 15.779 4.22203Z\",\n fill: \"#ABB5BA\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconChevronLeft);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_chevron_left.b4756d1c6d6018ed896d7377b0803ee0.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconRefreshLinear = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10 4.0625C6.60877 4.0625 4.0625 6.4979 4.0625 9.175C4.0625 9.69277 3.64277 10.1125 3.125 10.1125C2.60723 10.1125 2.1875 9.69277 2.1875 9.175C2.1875 5.2521 5.79683 2.1875 10 2.1875C12.3581 2.1875 14.2795 3.28549 15.57 4.31794C15.698 4.42032 15.8206 4.52266 15.9375 4.62398V3.125C15.9375 2.60723 16.3572 2.1875 16.875 2.1875C17.3928 2.1875 17.8125 2.60723 17.8125 3.125V6.975C17.8125 7.49277 17.3928 7.9125 16.875 7.9125H13.575C13.0572 7.9125 12.6375 7.49277 12.6375 6.975C12.6375 6.45723 13.0572 6.0375 13.575 6.0375H14.7056C14.6078 5.95285 14.5054 5.86743 14.3987 5.78206C13.283 4.88951 11.7669 4.0625 10 4.0625ZM16.1132 7.52139C16.1133 7.5216 16.1133 7.52158 16.1131 7.52133L16.1132 7.52139ZM16.875 9.8875C17.3928 9.8875 17.8125 10.3072 17.8125 10.825C17.8125 14.7479 14.2032 17.8125 10 17.8125C7.64188 17.8125 5.72053 16.7145 4.42997 15.6821C4.30199 15.5797 4.17944 15.4773 4.0625 15.376V16.875C4.0625 17.3928 3.64277 17.8125 3.125 17.8125C2.60723 17.8125 2.1875 17.3928 2.1875 16.875V13.025C2.1875 12.5072 2.60723 12.0875 3.125 12.0875H6.425C6.94277 12.0875 7.3625 12.5072 7.3625 13.025C7.3625 13.5428 6.94277 13.9625 6.425 13.9625H5.29442C5.39223 14.0472 5.49457 14.1326 5.60128 14.2179C6.71697 15.1105 8.23312 15.9375 10 15.9375C13.3912 15.9375 15.9375 13.5021 15.9375 10.825C15.9375 10.3072 16.3572 9.8875 16.875 9.8875Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconRefreshLinear);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_refresh_linear.bb1d5d6e0f044db658185ccd5b1b5c6b.svg\";","/**\n * @description Component-TradeHistoryDrawerHeader\n */\nimport './index.less';\n\nimport { Tooltip } from 'antd';\nimport { FC, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as IconBack } from '@/assets/svg/icon_chevron_left.svg';\nimport { ReactComponent as IconRefresh } from '@/assets/svg/icon_refresh_linear.svg';\nimport { Button } from '@/components/Button';\nimport TokenPair from '@/components/TokenPair';\nimport { HIDE_HISTORY_TOOLTIP } from '@/constants/storage';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useChainId } from '@/hooks/web3/useChain';\ninterface IPropTypes {\n className?: string;\n onClose: () => void;\n onRefresh: () => void;\n}\nconst HistoryDrawerHeader: FC = function ({ onClose, onRefresh }) {\n const chainId = useChainId();\n const { t } = useTranslation();\n const [hideTooltip, setHideTooltip] = useState(true);\n\n const currentPair = useCurrentPairFromUrl(chainId);\n useEffect(() => {\n setHideTooltip(!!localStorage.getItem(HIDE_HISTORY_TOOLTIP));\n }, []);\n if (!currentPair) {\n return <>;\n }\n return (\n
\n
\n );\n};\n\nexport default HistoryDrawerHeader;\n","/**\n * @description Component-EarnHistoryDrawer\n */\nimport SubPageWrap from '@/components/SubPage';\nimport './index.less';\n\nimport SkeletonTable, { SkeletonTableColumnsType } from '@/components/SkeletonTable';\nimport Table from '@/components/Table';\nimport { HISTORY_TYPE } from '@/constants/history';\nimport { useInfiniteLiquidityHistory } from '@/features/graph/hooks';\nimport { usePairFromUrl } from '@/features/pair/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { useHistoryTableColumns } from '@/pages/portfolio/AccountHistory/tableConfigs';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport HistoryDrawerHeader from '../../components/HistoryDrawerHeader';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n open: boolean;\n onClose: () => void;\n}\nconst EarnHistoryDrawer: FC = function ({ open, onClose }) {\n const chainId = useChainId();\n const pair = usePairFromUrl(chainId);\n const userAddr = useUserAddr();\n const {\n refreshData,\n histories: liquidityHistories,\n queryState: { isLoading },\n } = useInfiniteLiquidityHistory({\n chainId,\n userAddr,\n pair,\n });\n const columnDefs = useHistoryTableColumns(HISTORY_TYPE.LIQUIDITY_MOBILE);\n const { t } = useTranslation();\n\n return (\n {\n console.log('');\n }}\n header={}\n className=\"syn-earn-history-drawer\">\n <>\n \n record.txHash + record.logIndex}\n className=\"syn-trade-history-mobile-table\"\n emptyDesc={undefined}\n emptyType=\"vertical\"\n emptyDescLink={undefined}\n />\n \n\n {!isLoading && !!liquidityHistories.length && (\n
{t('mobile.history.tableInfo')}
\n )}\n \n \n );\n};\n\nexport default EarnHistoryDrawer;\n","import { TABLE_TYPES } from '@/constants/global';\nimport { setIsHistoryPortfolioTab, setTradePortfolioTab } from '@/features/trade/slice';\nimport { useCallback } from 'react';\nimport { useAppDispatch } from '..';\nimport { useChainId } from '../web3/useChain';\n// History related tab use useTradePortfolioTab, Non History related tab use useSetTradePortfolioTab\nexport default function useSetTradePortfolioTab() {\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n\n return useCallback(\n (tabType: TABLE_TYPES) => {\n if (Object.values(TABLE_TYPES).includes(tabType)) {\n dispatch(setIsHistoryPortfolioTab(false));\n chainId && dispatch(setTradePortfolioTab({ tab: tabType, chainId }));\n }\n },\n [chainId, dispatch],\n );\n}\n","/**\n * @description Component-TradeSide\n */\nimport './index.less';\n\nimport { Side } from '@synfutures/sdks-perp';\nimport React, { FC } from 'react';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport Tag from '@/components/Tag';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n side: Side;\n noBg?: boolean;\n}\nconst TradeSide: FC = function ({ side, noBg: noTag }) {\n const { deviceType } = useMediaQueryDevice();\n if (side === Side.FLAT) {\n return null;\n }\n return (\n
\n \n {side === Side.LONG ? 'LONG' : 'SHORT'}\n \n
\n );\n};\n\nexport default TradeSide;\n","/**\n * @description Component-RemoveLiqFormDetail\n */\nimport './index.less';\n\nimport { Side } from '@synfutures/sdks-perp';\nimport React, { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Message } from '@/components/Message';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useCurrentRange } from '@/features/account/rangeHook';\nimport { useRemoveLiquidationSimulation } from '@/features/earn/hook';\nimport { useCurrentPairByDevice } from '@/features/pair/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport TradeSide from '@/pages/components/TradeSide';\nimport { calcEquity } from '@/utils/position';\nimport { calcRemovedPositionEntryPrice } from '@/utils/trade';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst RemoveLiqFormDetail: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { t } = useTranslation();\n const currentPair = useCurrentPairByDevice(chainId);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const range = useCurrentRange(chainId, userAddr);\n const simulation = useRemoveLiquidationSimulation(chainId);\n const netPosition = useMemo(\n () => simulation?.data?.simulationMainPosition.size.sub(currentPosition?.size || 0),\n [currentPosition?.size, simulation?.data?.simulationMainPosition.size],\n );\n const netSide = useMemo(\n () =>\n // currentPair ? getAdjustTradeSide(netPosition?.gt(0) ? Side.LONG : Side.SHORT, currentPair?.isInverse) : undefined,\n currentPair ? (netPosition?.gt(0) ? Side.LONG : Side.SHORT) : undefined,\n [currentPair, netPosition],\n );\n\n const removedPositionEntryPrice = useMemo(\n () =>\n currentPair?.sqrtPX96 &&\n range?.sqrtEntryPX96 &&\n calcRemovedPositionEntryPrice(\n currentPair?.sqrtPX96,\n range?.sqrtEntryPX96,\n currentPair?.isInverse,\n ).formatPriceNumberWithTooltip(),\n [currentPair?.sqrtPX96, range?.sqrtEntryPX96, currentPair?.isInverse],\n );\n\n if (!simulation) {\n return null;\n }\n return simulation.message ? (\n \n ) : (\n
\n
\n
\n
\n
{t('common.earn.valueRemove')}
\n
({t('common.earn.includeFee')})
\n
\n
\n
\n {simulation?.data?.simulatePositionRemoved &&\n currentPair &&\n calcEquity(simulation?.data?.simulatePositionRemoved, currentPair).formatNumberWithTooltip({\n suffix: range?.rootInstrument.marginToken.symbol,\n })}\n
\n
\n
\n {/* )} */}\n {(!simulation.data?.simulationMainPosition?.size.eq(0) ||\n simulation.data?.simulationMainPosition?.balance.lt(0)) && (\n
\n
{t('common.earn.removeDetailTitle')}
\n
\n
\n
{t('common.earn.netP')}
\n
\n
\n {netSide && }\n \n {WrappedBigNumber.from(netPosition || 0)\n .abs()\n .formatNumberWithTooltip({\n suffix: range?.rootInstrument.baseToken.symbol,\n })}\n \n
\n
\n {currentPair && range && (\n
\n
{t('common.earn.positionEntryPrice')}
\n
\n
\n {removedPositionEntryPrice}\n
\n
\n )}\n
\n
{t('common.earn.removedPrice')}
\n
\n
\n {WrappedBigNumber.from(currentPair?.fairPrice || 0).formatPriceNumberWithTooltip()}\n
\n
\n
\n
\n )}\n
\n );\n};\n\nexport default RemoveLiqFormDetail;\n","/**\n * @description Component-RemoveLiqForm\n */\nimport './index.less';\n\nimport { FC, useEffect } from 'react';\n\nimport { EARN_TYPE } from '@/constants/earn';\nimport { useWrappedPortfolioByPairId } from '@/features/account/portfolioHook';\nimport { useCurrentRange } from '@/features/account/rangeHook';\nimport { removeLiquiditySimulate, setEarnFormType } from '@/features/earn/action';\nimport { useRemoveLiquidationSimulation, useRemoveLiquidationSuccess } from '@/features/earn/hook';\nimport { useGlobalConfig } from '@/features/global/hooks';\nimport { usePairFromUrl } from '@/features/pair/hook';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { perToTenThousands } from '@/utils/trade';\n\nimport useSetTradePortfolioTab from '@/hooks/trade/useSetTradePortfolioTab';\nimport EarnFormAlert from '../EarnFormAlert';\nimport RemoveLiqFormDetail from '../RemoveLiqFormDetail';\ninterface IPropTypes {\n className?: string;\n}\nconst RemoveLiqForm: FC = function ({}) {\n const chainId = useChainId();\n // const { dataTheme } = useTheme();\n const userAddr = useUserAddr();\n const pair = usePairFromUrl(chainId);\n const dispatch = useAppDispatch();\n const portfolio = useWrappedPortfolioByPairId(chainId, userAddr, pair?.id);\n const sdkContext = useSDK(chainId);\n const { slippage } = useGlobalConfig(chainId);\n const range = useCurrentRange(chainId, userAddr);\n const simulation = useRemoveLiquidationSimulation(chainId);\n const removeSuccess = useRemoveLiquidationSuccess(chainId, EARN_TYPE.REMOVE_LIQ);\n const setTradePortfolioTab = useSetTradePortfolioTab();\n //const { t } = useTranslation();\n useEffect(() => {\n chainId &&\n range &&\n slippage &&\n portfolio &&\n dispatch(\n removeLiquiditySimulate({\n chainId,\n sdkContext,\n portfolio,\n range,\n slippage: perToTenThousands(Number(slippage)),\n }),\n );\n }, [chainId, dispatch, portfolio, range, range?.id, sdkContext, slippage]);\n useEffect(() => {\n if (removeSuccess && chainId) {\n dispatch(\n setEarnFormType({\n chainId,\n formType: EARN_TYPE.ADD_LIQ,\n }),\n );\n }\n }, [chainId, dispatch, removeSuccess, setTradePortfolioTab]);\n return (\n
\n {/* {removeSuccess ? (\n
\n \n
{t('common.earn.removeSuccessLine')}
\n
\n ) : (\n <> */}\n \n \n {/* \n )} */}\n
\n );\n};\n\nexport default RemoveLiqForm;\n","/**\n * @description Component-TradeForm\n */\nimport './index.less';\n\nimport React, { FC, useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { TabType } from '@/constants';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { setCurrentRange, setEarnFormType } from '@/features/earn/action';\nimport { useAddLiquidityFormState, useEarnFormType, useIsInWhiteList } from '@/features/earn/hook';\nimport { useCombinedPairFromUrl } from '@/features/pair/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport DepositNativeCard from '@/pages/components/Portfolio/Vault/AccountButtons/Deposit/DepositModal/DepositNativeCard';\nimport WalletCardWrapper from '@/pages/components/WalletStatus/WalletCardWrapper';\nimport { isWrappedNativeToken } from '@/utils/token';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport TradeEarnTabs from '@/pages/components/Tabs/TradeEarnTabs';\nimport EarnFormFooter from '../EarnFormFooter';\nimport AddLiqForm from './AddLiqForm';\nimport PairNotInWhitelist from './PairNotInWhitelist';\nimport RemoveLiqForm from './RemoveLiqForm';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n onClose?: () => void;\n isRemove?: boolean;\n}\nconst EarnForm: FC = function ({ onClose, isRemove }) {\n const dispatch = useAppDispatch();\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const earnType = useEarnFormType(chainId);\n const addLiqFormState = useAddLiquidityFormState(chainId);\n const currentPair = useCombinedPairFromUrl(chainId);\n const isInWhiteList = useIsInWhiteList(chainId, userAddr, currentPair?.rootInstrument.quoteToken);\n const { isMobile } = useMediaQueryDevice();\n const isWrappedNative = useMemo(\n () => chainId && isWrappedNativeToken(chainId, currentPair?.rootInstrument.quoteToken?.address || ''),\n [chainId, currentPair?.rootInstrument.quoteToken?.address],\n );\n\n const tabList = useMemo(() => {\n if (earnType === EARN_TYPE.ADD_LIQ) {\n return [\n {\n key: EARN_TYPE.ADD_LIQ.toString(),\n tab: t('common.earn.addLiq'),\n },\n ];\n }\n return [\n {\n key: EARN_TYPE.REMOVE_LIQ.toString(),\n tab: t('common.earn.removeLiq'),\n },\n ];\n }, [earnType, t]);\n\n const formState = useMemo(() => {\n return earnType === EARN_TYPE.ADD_LIQ ? addLiqFormState : undefined;\n }, [addLiqFormState, earnType]);\n const closeRemove = useCallback(() => {\n if (isRemove && onClose) {\n onClose();\n return;\n }\n if (chainId) {\n dispatch(\n setEarnFormType({\n chainId,\n formType: EARN_TYPE.ADD_LIQ,\n }),\n );\n dispatch(\n setCurrentRange({\n chainId,\n rangeId: '',\n }),\n );\n }\n }, [chainId, dispatch, isRemove, onClose]);\n\n const isNewPair = !(currentPair instanceof WrappedPair);\n\n return (\n <>\n {!isInWhiteList && earnType !== EARN_TYPE.REMOVE_LIQ ? (\n \n ) : (\n (earnType === EARN_TYPE.ADD_LIQ || earnType === EARN_TYPE.REMOVE_LIQ) && (\n \n \n \n )\n }\n tabList={tabList}\n mode={earnType === EARN_TYPE.REMOVE_LIQ ? 'modal' : undefined}\n clickClose={closeRemove}\n title={t('common.earn.removeLiq')}\n className=\"syn-earn-form\"\n showSettingsIcon={!isMobile}\n isWrappedNative={isWrappedNative}\n tabKey={earnType.toString()}\n onTabChange={(key) => {\n chainId &&\n dispatch(\n setEarnFormType({\n chainId,\n formType: key as EARN_TYPE,\n }),\n );\n }}\n footer={\n \n }>\n {isRemove ? (\n \n ) : (\n <>\n {earnType === EARN_TYPE.ADD_LIQ && }\n {earnType === EARN_TYPE.REMOVE_LIQ && }\n \n )}\n \n )\n )}\n {earnType === EARN_TYPE.DEPOSIT_NATIVE && }\n \n );\n};\n\nexport default EarnForm;\n","/**\n * @description Component-PriceRange\n */\nimport './index.less';\n\nimport { FC, useMemo, useState } from 'react';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { Tooltip } from '@/components/ToolTip';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { usePairRangesMaxMin } from '@/features/earn/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { getLeftRatio, getRightRatio } from '@/utils/pair';\nimport classNames from 'classnames';\ninterface IPropTypes {\n className?: string;\n minPrice: WrappedBigNumber;\n maxPrice: WrappedBigNumber;\n fairPrice: WrappedBigNumber;\n isInverse: boolean;\n pairId: string;\n}\nconst PriceRange: FC = function ({ fairPrice, minPrice, maxPrice, pairId }) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { deviceType } = useMediaQueryDevice();\n const maxRatio = usePairRangesMaxMin(chainId, userAddr, pairId, fairPrice.toNumber());\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const leftRatio = useMemo(() => getLeftRatio(minPrice.toNumber(), fairPrice.toNumber()), [minPrice.stringValue]);\n const rightRatio = useMemo(() => getRightRatio(maxPrice.toNumber(), fairPrice.toNumber()), [maxPrice.stringValue]);\n\n const barLeft = useMemo(() => {\n const left = 50 - 50 * (leftRatio / maxRatio);\n return left > 47.5 ? 47.5 : left;\n }, [leftRatio, maxRatio]);\n const barRight = useMemo(() => {\n const right = 50 + 50 * (rightRatio / maxRatio);\n return right < 52.5 ? 52.5 : right;\n }, [rightRatio, maxRatio]);\n const width = useMemo(() => {\n return barRight - barLeft;\n }, [barLeft, barRight]);\n return (\n
\n
\n
{minPrice.formatPriceNumberWithTooltip()}
\n
{fairPrice.formatPriceNumberWithTooltip()}
\n {/*
*/}\n
{maxPrice.formatPriceNumberWithTooltip()}
\n
\n
\n
\n setTooltipOpen(true)}\n onMouseLeave={() => setTooltipOpen(false)}\n style={{ left: `${barLeft}%`, width: `${width}%` }}>
\n \n
\n
\n
\n
\n \n );\n};\n\nexport default PriceRange;\n","/**\n * @description Component-EarnLiquiditiesMobile\n */\nimport { useWrappedRangeList } from '@/features/account/rangeHook';\nimport { usePairFromUrl } from '@/features/pair/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport './index.less';\n\nimport { Button } from '@/components/Button';\nimport Drawer from '@/components/Drawer';\nimport Empty from '@/components/Empty';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { Skeleton } from '@/components/Skeleton';\nimport { Tooltip } from '@/components/ToolTip';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { setCurrentRange, setEarnFormType } from '@/features/earn/action';\nimport { useIsIpBlocked } from '@/features/global/hooks';\nimport { useIsFetchedSinglePortfolio } from '@/features/portfolio/hook';\nimport { useAppDispatch } from '@/hooks';\nimport LiquidationPrices from '@/pages/components/LiquidationPrices';\nimport EarnForm from '@/pages/earn/EarnCard/EarnForm';\nimport PriceRange from '@/pages/earn/EarnLiquidities/PriceRange';\nimport { FC, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst EarnLiquiditiesMobile: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const ipBlocked = useIsIpBlocked();\n const currentPair = usePairFromUrl(chainId);\n const rangeList = useWrappedRangeList(chainId, userAddr, currentPair?.id);\n const isFetchedPortfolio = useIsFetchedSinglePortfolio(\n chainId,\n userAddr,\n currentPair?.instrumentAddr,\n currentPair?.expiry,\n );\n\n const [openDrawer, setOpenDrawer] = useState(false);\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n if (!isFetchedPortfolio) {\n return (\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n );\n }\n\n return (\n
\n {rangeList?.map((range) => (\n
\n
\n \n \n {\n e.stopPropagation();\n setOpenDrawer(true);\n if (chainId) {\n chainId &&\n dispatch(\n setCurrentRange({\n chainId,\n rangeId: range.id,\n }),\n );\n dispatch(setEarnFormType({ chainId, formType: EARN_TYPE.REMOVE_LIQ }));\n }\n }}\n className=\"syn-trade-open-orders-cancel-btn\">\n {t('common.remove')}\n \n \n
\n
\n
\n
{t('common.earn.valueLocked')}
\n
\n \n {range.wrapAttribute('valueLocked').formatNumberWithTooltip({\n suffix: range.rootInstrument.marginToken.symbol,\n showToolTip: true,\n })}\n \n
\n
\n
\n
{t('common.earn.feesE')}
\n
\n \n {range.wrapAttribute('feeEarned').formatNumberWithTooltip({\n suffix: range.rootInstrument.marginToken.symbol,\n })}\n \n
\n
\n
\n
{t('common.liqPrice')}
\n
\n \n
\n
\n
\n
\n ))}\n {!rangeList?.length && }\n {\n setOpenDrawer(false);\n if (chainId) {\n dispatch(setEarnFormType({ chainId, formType: EARN_TYPE.ADD_LIQ }));\n dispatch(\n setCurrentRange({\n chainId,\n rangeId: '',\n }),\n );\n }\n }}\n open={openDrawer}\n styles={{ header: { display: 'none' } }}\n className=\"syn-earn-liquidities-mobile-drawer reverse-header\">\n {\n setOpenDrawer(false);\n }}\n />\n \n
\n );\n};\n\nexport default EarnLiquiditiesMobile;\n","/**\n * @description Component-FundingHistoryMobile\n */\nimport './index.less';\n\nimport React, { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport SkeletonTable, { SkeletonTableColumnsType } from '@/components/SkeletonTable';\nimport Table from '@/components/Table';\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useInfiniteFundingHistory } from '@/features/graph/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { IFundingHistory } from '@/types/graph';\nimport { formatDate } from '@/utils/timeUtils';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst FundingHistoryMobile: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { t } = useTranslation();\n const pair = useCurrentPairFromUrl(chainId);\n const {\n histories,\n queryState: { isLoading },\n } = useInfiniteFundingHistory({ chainId, userAddr, pair });\n const columnDefs: SkeletonTableColumnsType[] = useMemo(\n () => [\n {\n title: t('common.table.time'),\n key: 'time',\n width: 200,\n render: (_value: unknown, record: IFundingHistory): JSX.Element | undefined => {\n return (\n
\n {formatDate(record.timestamp || 0 * 1000, 'MM-DD HH:mm')}\n {record?.pair?.chainId && }\n
\n );\n },\n },\n {\n title: t('common.table.funding'),\n key: 'amount',\n align: 'left',\n render: (_value: unknown, record: IFundingHistory): JSX.Element | undefined => {\n return (\n
\n {t(`common.table.actions.${record?.type}`)}\n {WrappedBigNumber.from(record?.funding).abs().formatNumberWithTooltip()}\n {pair?.rootInstrument?.marginToken.symbol}\n
\n );\n },\n },\n ],\n [pair?.rootInstrument?.marginToken.symbol, t],\n );\n return (\n <>\n
\n \n \n \n
\n {!isLoading && !!histories.length && (\n
{t('mobile.history.tableInfo')}
\n )}\n \n );\n};\n\nexport default FundingHistoryMobile;\n","/**\n * @description Component-OrderHistoryMobile\n */\nimport './index.less';\n\nimport { Side, TickMath } from '@synfutures/sdks-perp';\nimport React, { FC, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Drawer from '@/components/Drawer';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { ExternalLink } from '@/components/Link';\nimport SkeletonTable, { SkeletonTableColumnsType } from '@/components/SkeletonTable';\nimport Table from '@/components/Table';\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useInfiniteOrdersHistory } from '@/features/graph/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useChainId, useEtherscanLink, useUserAddr } from '@/hooks/web3/useChain';\nimport TradeSide from '@/pages/components/TradeSide';\nimport { portfolioTableColumns } from '@/pages/portfolio/AccountHistory/tableConfigs';\nimport { IOrderHistory } from '@/types/graph';\nimport { formatDate } from '@/utils/timeUtils';\nimport { OrderStatus } from '@synfutures/sdks-perp-datasource';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst OrderHistoryMobile: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { t } = useTranslation();\n const pair = useCurrentPairFromUrl(chainId);\n const {\n histories,\n queryState: { isLoading },\n } = useInfiniteOrdersHistory({ chainId, userAddr, pair });\n const getEtherscanLink = useEtherscanLink();\n const [selectedHistory, setSelectedHistory] = useState(null);\n const dappConfig = useBackendChainConfig(chainId);\n const columnDefs: SkeletonTableColumnsType[] = useMemo(\n () =>\n [\n {\n title: t('common.table.time'),\n key: 'time',\n width: 105,\n render: (_value: unknown, record: IOrderHistory): JSX.Element | undefined => {\n return (\n e.stopPropagation()}\n href={getEtherscanLink(record.placeTxHash, 'transaction')}>\n
\n {formatDate(record.createdTimestamp * 1000, 'MM-DD HH:mm')}\n {record?.pair?.chainId && }\n
\n \n );\n },\n },\n dappConfig?.trade?.isDisableLimitOrder\n ? undefined\n : {\n title: t('common.table.side'),\n key: 'side',\n width: 55,\n align: 'center',\n render: (_value: unknown, record: IOrderHistory): JSX.Element | undefined => {\n const side = record.side;\n return ;\n },\n },\n {\n title: t('common.table.filledOrSize'),\n key: 'FILLED_AMOUNT',\n width: 120,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: IOrderHistory): JSX.Element | undefined => {\n return (\n <>\n {WrappedBigNumber.from(record.filledSize.abs()).abs().formatNumberWithTooltip()} /{' '}\n {WrappedBigNumber.from(record.size.abs()).abs().formatNumberWithTooltip()}\n \n );\n },\n },\n { ...portfolioTableColumns.price, title: t('common.table.price'), width: 80 },\n ].filter((t) => t !== undefined) as SkeletonTableColumnsType[],\n [dappConfig?.trade?.isDisableLimitOrder, getEtherscanLink, t],\n );\n const side = useMemo(() => selectedHistory?.side || Side.LONG, [selectedHistory?.side]);\n const price = useMemo(() => {\n return selectedHistory?.price ? WrappedBigNumber.from(selectedHistory?.price) : undefined;\n }, [selectedHistory]);\n const tradeValue = useMemo(() => {\n const oPrice =\n selectedHistory?.status === OrderStatus.CANCELLED\n ? TickMath.getWadAtTick(selectedHistory.tick)\n : selectedHistory?.price;\n const price = WrappedBigNumber.from(oPrice || 0);\n const size = selectedHistory?.status === OrderStatus.CANCELLED ? selectedHistory.size : selectedHistory?.filledSize;\n return price.mul(size || 1).abs();\n }, [\n selectedHistory?.filledSize,\n selectedHistory?.price,\n selectedHistory?.size,\n selectedHistory?.status,\n selectedHistory?.tick,\n ]);\n const statusText = useMemo(() => {\n const status = selectedHistory?.status;\n let statusText = t(`common.table.status.${status}`);\n if (status === OrderStatus.FILLED && !selectedHistory?.filledSize.abs().eq(selectedHistory?.size.abs())) {\n statusText = t(`common.table.status.PARTIAL_FILLED`);\n }\n return statusText;\n }, [selectedHistory?.filledSize, selectedHistory?.size, selectedHistory?.status, t]);\n return (\n <>\n
\n \n ({ onClick: () => setSelectedHistory(record) })}\n dataSource={histories.slice(0, 10)}\n rowKey={(record) => record.txHash + record.logIndex}\n className=\"syn-order-history-mobile-table\"\n emptyDesc={undefined}\n emptyType=\"vertical\"\n emptyDescLink={undefined}\n />\n \n setSelectedHistory(null)}\n title={t('mobile.details')}\n open={!!selectedHistory}\n className=\"syn-order-history-mobile-drawer reverse-header\">\n {selectedHistory && (\n <>\n
\n
\n
{t('mobile.side')}
\n
\n \n
\n
\n
\n
{t('mobile.price')}
\n
{price?.formatPriceNumberWithTooltip()}
\n
\n
\n
{t('mobile.filledSize')}
\n
\n {WrappedBigNumber.from(selectedHistory.filledSize.abs()).abs().formatNumberWithTooltip()}\n
{` / `}
\n {WrappedBigNumber.from(selectedHistory.size.abs()).abs().formatNumberWithTooltip()}\n {selectedHistory.pair?.rootInstrument?.baseToken.symbol}\n
\n
\n
\n
{t('mobile.closeP.tradeVal')}
\n
\n {tradeValue?.formatNumberWithTooltip({\n suffix: selectedHistory?.pair?.rootInstrument.quoteToken.symbol,\n })}\n
\n
\n
\n
\n {selectedHistory.filledSize.gt(0) ? t('mobile.closeP.feeRebate2') : t('mobile.closeP.feeRebate')}\n
\n
\n \n {WrappedBigNumber.from(selectedHistory?.fee).formatNumberWithTooltip({\n suffix: selectedHistory.pair?.rootInstrument?.quoteToken.symbol,\n })}\n \n
\n
\n
\n
{t('common.status')}
\n
{statusText}
\n
\n
\n
{t('mobile.closeP.createdTime')}
\n
\n \n {formatDate(selectedHistory?.createdTimestamp * 1000)}\n \n
\n
\n
\n
{t('mobile.closeP.updatedTime')}
\n
\n \n {formatDate(selectedHistory?.timestamp * 1000)}\n \n
\n
\n
\n \n )}\n \n
\n {!isLoading && !!histories.length && (\n
{t('mobile.history.tableInfo')}
\n )}\n \n );\n};\nexport default OrderHistoryMobile;\n","/**\n * @description Component-TradeHistroyDrawerTabs\n */\nimport './index.less';\n\nimport React, { FC, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport SynTitleTabs from '@/components/Tabs/SynTitleTabs';\nimport { HISTORY_TYPE } from '@/constants/history';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useChainId } from '@/hooks/web3/useChain';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n onTabChange: (tab: HISTORY_TYPE) => void;\n tab: HISTORY_TYPE;\n}\nconst TradeHistoryDrawerTabs: FC = function ({ onTabChange, tab }) {\n const chainId = useChainId();\n const { t } = useTranslation();\n const currentPair = useCurrentPairFromUrl(chainId);\n const [value, setValue] = useState(HISTORY_TYPE.TRADE);\n const dappConfig = useBackendChainConfig(chainId);\n const tabList = useMemo(() => {\n const tabs = [\n {\n key: HISTORY_TYPE.TRADE.toString(),\n value: HISTORY_TYPE.TRADE.toString(),\n label: t('mobile.trade'),\n },\n ];\n if (!dappConfig?.trade?.isDisableLimitOrder) {\n tabs.push({\n key: HISTORY_TYPE.ORDERS.toString(),\n value: HISTORY_TYPE.ORDERS.toString(),\n label: t('mobile.order'),\n });\n }\n if (currentPair?.isPerpetual) {\n tabs.push({\n key: HISTORY_TYPE.FUNDING.toString(),\n value: HISTORY_TYPE.FUNDING.toString(),\n label: t('mobile.funding'),\n });\n }\n return tabs;\n }, [currentPair?.isPerpetual, dappConfig?.trade?.isDisableLimitOrder, t]);\n\n useEffect(() => {\n setValue(tab);\n // no deps\n }, [tab]);\n\n return (\n {\n setValue(key as HISTORY_TYPE);\n onTabChange(key as HISTORY_TYPE);\n }}\n activeKey={value}\n items={tabList}\n />\n );\n};\n\nexport default TradeHistoryDrawerTabs;\n","/**\n * @description Component-TradeHistoryMobile\n */\nimport './index.less';\n\nimport React, { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ExternalLink } from '@/components/Link';\nimport SkeletonTable, { SkeletonTableColumnsType } from '@/components/SkeletonTable';\nimport Table from '@/components/Table';\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useInfiniteVirtualTradeHistory } from '@/features/graph/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useChainId, useEtherscanLink, useUserAddr } from '@/hooks/web3/useChain';\nimport TradeSide from '@/pages/components/TradeSide';\nimport { portfolioTableColumns } from '@/pages/portfolio/AccountHistory/tableConfigs';\nimport { ITradeHistory } from '@/types/graph';\nimport { formatDate } from '@/utils/timeUtils';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradeHistoryMobile: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { t } = useTranslation();\n const pair = useCurrentPairFromUrl(chainId);\n const {\n histories,\n queryState: { isLoading: isLoadingTrade },\n } = useInfiniteVirtualTradeHistory({ chainId, userAddr, pair });\n const getEtherscanLink = useEtherscanLink();\n const columnDefs: SkeletonTableColumnsType[] = useMemo(\n () => [\n {\n title: t('common.table.time'),\n key: 'time',\n width: 140,\n render: (_value: unknown, record: ITradeHistory): JSX.Element | undefined => {\n return (\n \n
\n {formatDate(record.timestamp * 1000, 'MM-DD HH:mm')}\n {record?.pair?.chainId && }\n
\n
\n );\n },\n },\n {\n title: t('common.table.side'),\n key: 'side',\n align: 'center',\n render: (_value: unknown, record: ITradeHistory): JSX.Element | undefined => {\n const side = record.side;\n return ;\n },\n },\n {\n title: t('common.table.size'),\n key: 'size',\n\n render: (_value: unknown, record: ITradeHistory): JSX.Element | undefined => {\n return <>{WrappedBigNumber.from(record.size.abs()).formatNumberWithTooltip({})};\n },\n },\n { ...portfolioTableColumns.price, title: t('common.table.price'), width: 'auto' },\n ],\n [getEtherscanLink, t],\n );\n return (\n <>\n
\n \n record.txHash + record.logIndex}\n className=\"syn-trade-history-mobile-table\"\n emptyDesc={undefined}\n emptyType=\"vertical\"\n emptyDescLink={undefined}\n />\n \n
\n {!isLoadingTrade && !!histories.length && (\n
{t('mobile.history.tableInfo')}
\n )}\n \n );\n};\n\nexport default TradeHistoryMobile;\n","/**\n * @description Component-TradeHistoryDrawer\n */\nimport './index.less';\n\nimport React, { FC, useCallback, useEffect, useState } from 'react';\n\nimport SubPageWrap from '@/components/SubPage';\nimport { HISTORY_TYPE } from '@/constants/history';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport {\n useInfiniteFundingHistory,\n useInfiniteOrdersHistory,\n useInfiniteVirtualTradeHistory,\n} from '@/features/graph/hooks';\nimport HistoryDrawerHeader from '../../components/HistoryDrawerHeader';\nimport FundingHistoryMobile from './FundingHistoryMobile';\nimport OrderHistoryMobile from './OrderHistoryMobile';\nimport TradeHistoryDrawerTabs from './TradeHistoryDrawerTabs';\nimport TradeHistoryMobile from './TradeHistoryMobile';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n open: boolean;\n historyType: HISTORY_TYPE;\n onClose: () => void;\n}\nconst TradeHistoryDrawer: FC = function ({ open, onClose, historyType }) {\n const [tab, setTab] = useState(HISTORY_TYPE.TRADE);\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const currentPair = useCurrentPairFromUrl(chainId);\n const dappConfig = useBackendChainConfig(chainId);\n const { refreshData: refreshTradeHistory } = useInfiniteVirtualTradeHistory({ chainId, userAddr, pair: currentPair });\n const { refreshData: refreshOrderHistory } = useInfiniteOrdersHistory({ chainId, userAddr, pair: currentPair });\n const { refreshData: refreshFundingHistory } = useInfiniteFundingHistory({ chainId, userAddr, pair: currentPair });\n\n const refreshData = useCallback(() => {\n if (tab === HISTORY_TYPE.TRADE) {\n refreshTradeHistory();\n }\n if (tab === HISTORY_TYPE.ORDERS) {\n refreshOrderHistory();\n }\n if (tab === HISTORY_TYPE.FUNDING) {\n refreshFundingHistory();\n }\n }, [tab, refreshFundingHistory, refreshOrderHistory, refreshTradeHistory]);\n\n useEffect(() => {\n setTab(historyType);\n }, [historyType]);\n return (\n }\n onClose={() => {\n console.log('');\n }}>\n
\n {!(!currentPair?.isPerpetual && dappConfig?.trade.isDisableLimitOrder) && (\n
\n \n
\n )}\n
\n {tab === HISTORY_TYPE.TRADE && }\n {tab === HISTORY_TYPE.ORDERS && }\n {tab === HISTORY_TYPE.FUNDING && }\n
\n
\n \n );\n};\n\nexport default TradeHistoryDrawer;\n","/**\n * @description Component-TradeOrdersMobile\n */\nimport './index.less';\n\nimport _ from 'lodash';\nimport React, { FC, useCallback, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\nimport Drawer from '@/components/Drawer';\nimport Empty from '@/components/Empty';\nimport { Skeleton } from '@/components/Skeleton';\nimport { Tooltip } from '@/components/ToolTip';\nimport { FETCHING_STATUS } from '@/constants';\nimport { WrappedOrder } from '@/entities/WrappedOrder';\nimport { useWrappedOrderList } from '@/features/account/orderHook';\nimport { useWrappedPortfolioByPairId } from '@/features/account/portfolioHook';\nimport { useGlobalConfig, useIsIpBlocked } from '@/features/global/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useIsFetchedPortfolioList } from '@/features/portfolio/hook';\nimport { cancelTradeOrders } from '@/features/trade/actions';\nimport { useCancelFormStatus } from '@/features/trade/hooks';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useAppProvider, useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useDappChainConfig, useUserAddr } from '@/hooks/web3/useChain';\nimport { useSwitchNetwork } from '@/hooks/web3/useSwitchConnectorNetwork';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport TradeSide from '@/pages/components/TradeSide';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradeOrdersMobile: FC = function ({}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n const currentPair = useCurrentPairFromUrl(chainId);\n const sdkContext = useSDK(chainId);\n const provider = useAppProvider();\n const ipBlocked = useIsIpBlocked();\n const { deadline } = useGlobalConfig(chainId);\n const signer = useWalletSigner();\n const portfolio = useWrappedPortfolioByPairId(chainId, userAddr, currentPair?.id);\n const openOrders = useWrappedOrderList(chainId, userAddr, currentPair?.id);\n const isFetchedPortfolio = useIsFetchedPortfolioList(chainId, userAddr);\n\n const cancelStatuses = useCancelFormStatus(chainId);\n const [selectedOrder, setSelectedOrder] = useState(undefined);\n const status = useMemo(() => _.get(cancelStatuses, [selectedOrder?.id || '']), [selectedOrder, cancelStatuses]);\n const walletStatus = useWalletConnectStatus();\n const { switchWalletNetwork } = useSwitchNetwork();\n const dappConfig = useDappChainConfig(chainId);\n const cancelOrders = useCallback(\n async (orders: WrappedOrder[]) => {\n if (chainId && userAddr && sdkContext && signer && portfolio && deadline && provider) {\n try {\n if (walletStatus === WALLET_CONNECT_STATUS.WRONG_NETWORK) {\n await switchWalletNetwork(chainId);\n return;\n }\n const result = await dispatch(\n cancelTradeOrders({\n chainId,\n userAddr,\n sdkContext,\n signer,\n portfolio,\n orders: orders,\n deadline: Number(deadline),\n provider,\n }),\n ).unwrap();\n if (result) {\n setSelectedOrder(undefined);\n }\n } catch (e) {}\n }\n },\n [chainId, deadline, dispatch, portfolio, provider, sdkContext, signer, switchWalletNetwork, userAddr, walletStatus],\n );\n if (!isFetchedPortfolio) {\n return (\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n );\n }\n return (\n
\n {openOrders?.map((order) => {\n const cancelStatus = _.get(cancelStatuses, [order?.id || '']);\n return (\n
setSelectedOrder(order)} key={order.id} className=\"syn-trade-orders-mobile-order\">\n
\n \n \n {\n e.stopPropagation();\n cancelOrders([order]);\n }}\n loading={cancelStatus === FETCHING_STATUS.FETCHING}\n className=\"syn-trade-open-orders-cancel-btn\">\n {t(walletStatus === WALLET_CONNECT_STATUS.WRONG_NETWORK ? 'common.switchToChain' : 'common.cancel', {\n chainName: dappConfig?.network?.name || '',\n })}\n \n \n
\n
\n
\n
\n {t('common.table.filledOrSize')} ({order.rootPair.rootInstrument.baseToken.symbol})\n
\n
\n {order.wrapAttribute('taken').abs().formatNumberWithTooltip()}\n
{` / `}
\n {order.wrapAttribute('size').abs().formatNumberWithTooltip({ isShowTBMK: true })}\n
\n
\n
\n
{t('mobile.price')}
\n
{order.wrapAttribute('limitPrice').formatPriceNumberWithTooltip()}
\n
\n
\n
{t('mobile.leverage')}
\n
{order.wrapAttribute('leverageWad').formatLeverageWithTooltip()}
\n
\n
\n
\n );\n })}\n {!openOrders?.length && }\n setSelectedOrder(undefined)}\n title={t('mobile.details')}\n open={!!selectedOrder}\n className=\"syn-trade-orders-mobile-drawer reverse-header\">\n {selectedOrder && (\n <>\n
\n
\n
{t('mobile.side')}
\n
\n \n
\n
\n
\n
{t('mobile.price')}
\n
{selectedOrder?.wrapAttribute('limitPrice').formatPriceNumberWithTooltip()}
\n
\n
\n
{t('mobile.filledSize')}
\n
\n {selectedOrder.wrapAttribute('taken').abs().formatNumberWithTooltip()}\n
{` / `}
\n {selectedOrder.wrapAttribute('size').abs().formatNumberWithTooltip({ isShowTBMK: true })}\n {selectedOrder.rootInstrument.baseToken.symbol}\n
\n
\n
\n
{t('mobile.margin')}
\n
\n {selectedOrder.wrapAttribute('balance').formatNumberWithTooltip({\n suffix: selectedOrder.rootInstrument.marginToken.symbol,\n })}\n
\n
\n
\n
{t('mobile.leverage')}
\n
{selectedOrder.wrapAttribute('leverageWad').formatLeverageWithTooltip()}
\n
\n
\n
{t('mobile.closeP.tradeVal')}
\n
\n {selectedOrder.tradeValue.formatNumberWithTooltip({\n suffix: selectedOrder.rootInstrument.marginToken.symbol,\n })}\n
\n
\n
\n
{t('mobile.closeP.feeRebate')}
\n
\n {selectedOrder.rebateFee.formatNumberWithTooltip()}\n {selectedOrder.rootInstrument.marginToken.symbol}\n
\n
\n
\n cancelOrders([selectedOrder])}\n loading={status === FETCHING_STATUS.FETCHING}\n disabled={status === FETCHING_STATUS.FETCHING}\n className=\"syn-trade-orders-mobile-drawer-cancel-btn\">\n {t('mobile.closeP.cancelOrder')}\n \n \n )}\n \n
\n );\n};\n\nexport default TradeOrdersMobile;\n","import './index.less';\n\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/Alert';\nimport { LEARN_MORE_LINK } from '@/constants/links';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\n\ntype SocialLossAlertProps = {\n position: WrappedPosition | undefined;\n isDesktop?: boolean;\n};\nexport const SocialLossAlert = ({ position, isDesktop = true }: SocialLossAlertProps): JSX.Element => {\n const { t } = useTranslation();\n if (!position || position.unrealizedSocialLoss.lte(0)) return <>;\n\n return (\n \n \n {t('common.tradePage.tradePosition.unRealizedSocialLossAlert.head')} \n \n {t('common.tradePage.tradePosition.unRealizedSocialLossAlert.bold')}\n  \n {position.unrealizedSocialLoss.formatNumberWithTooltip({\n suffix: position.rootInstrument.marginToken.symbol,\n isShowTBMK: true,\n colorSuffix: true,\n isShowApproximatelyEqualTo: false,\n showToolTip: false,\n })}\n \n {t('common.tradePage.tradePosition.unRealizedSocialLossAlert.tail')}\n  \n \n {t('common.learnMore')}\n \n \n }\n showIcon\n />\n \n );\n};\n","import { FARCASTER_SHARE_LINK } from '@/constants/links';\nimport { TWITTER_SHARE_LINK } from '@/constants/odyssey';\n\nexport function sleep(ms: number) {\n return new Promise((resolve) => {\n setTimeout(resolve, ms);\n });\n}\n\nexport const tweet = ({ text, url }: { text?: string; url?: string }) => {\n window.open(\n `${TWITTER_SHARE_LINK}${text ? encodeURIComponent(text) : ''}&url=${url ? encodeURIComponent(url) : ''}`,\n '_blank',\n );\n};\n\nexport const cast = ({ text, url }: { text?: string; url?: string }) => {\n window.open(\n `${FARCASTER_SHARE_LINK}${text ? encodeURIComponent(text) : ''}&embeds[]=${url ? encodeURIComponent(url) : ''}`,\n '_blank',\n );\n};\nexport type TSynAddressShareIdMaps = {\n [userAddress in string]?: { shareId: string; timestamp: number };\n};\n","import { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { useCurrentPairFromUrl, useGetDefaultLimitPrice } from '@/features/pair/hook';\nimport { setLimitPrice, setTradeFormAmount, setTradeFormSide, setTradeFormType } from '@/features/trade/actions';\nimport { useLimitFormState, useTradeType } from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { sleep } from '@/utils/common';\nimport { formatNumber } from '@/utils/numberUtil';\nimport { Side } from '@synfutures/sdks-perp';\nimport { useCallback } from 'react';\nimport { useAppDispatch } from '..';\nimport { useChainId } from '../web3/useChain';\n\nconst reverseTradeMap: { [id in number]: Side } = {\n [Side.LONG]: Side.SHORT,\n [Side.SHORT]: Side.LONG,\n};\nexport default function useReverseLimitOrderInput(position: WrappedPosition | undefined) {\n const baseAmount = position?.wrapAttribute('size').abs().toString();\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const sdkContext = useSDK(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const targetTradeSide = (position && reverseTradeMap[position.wrappedSide]) || Side.FLAT;\n const currTradeType = useTradeType(chainId);\n const limitState = useLimitFormState(chainId);\n const getDefaultLimitPrice = useGetDefaultLimitPrice(currentPair, targetTradeSide, sdkContext);\n\n const reverseLimitOrderInput = useCallback(async () => {\n let inputlimitPriceStr: string | undefined = limitState.limitPrice;\n const defaultLimitPrice = await getDefaultLimitPrice();\n if (defaultLimitPrice) {\n inputlimitPriceStr = formatNumber(defaultLimitPrice.adjustPrice.stringValue, currentPair?.priceDecimal, false);\n }\n\n if (currTradeType !== TRADE_TYPE.LIMIT) {\n chainId &&\n dispatch(\n setTradeFormType({\n chainId,\n tradeType: TRADE_TYPE.LIMIT,\n }),\n );\n }\n await sleep(100);\n chainId &&\n dispatch(\n setTradeFormSide({\n chainId,\n tradeSide: targetTradeSide,\n }),\n );\n await sleep(100);\n if (inputlimitPriceStr) {\n chainId &&\n dispatch(\n setLimitPrice({\n chainId,\n limitPrice: inputlimitPriceStr,\n alignedPrice: inputlimitPriceStr,\n }),\n );\n }\n await sleep(100);\n chainId &&\n dispatch(\n setTradeFormAmount({\n chainId,\n baseAmount,\n }),\n );\n }, [\n limitState.limitPrice,\n getDefaultLimitPrice,\n currentPair?.priceDecimal,\n currTradeType,\n chainId,\n dispatch,\n targetTradeSide,\n baseAmount,\n ]);\n return reverseLimitOrderInput;\n}\n","/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\nimport { useCallback } from 'react';\n\nimport { PriceBasisForPnl } from '@/constants/trade/priceBasisForPnl';\nimport { setPriceBasisForPnl } from '@/features/trade/actions';\n\nimport { useAppDispatch, useAppSelector } from '.';\n\nexport function usePriceBasisForPnl() {\n const priceBasisForPnl = useAppSelector((state) => state.trade.priceBasisForPnl);\n const dispatch = useAppDispatch();\n\n const onClickPriceBasisCheckbox = useCallback(\n (newPriceBasisForPnl: PriceBasisForPnl) => {\n dispatch(setPriceBasisForPnl({ priceBasisForPnl: newPriceBasisForPnl }));\n },\n [dispatch],\n );\n return {\n onClickPriceBasisCheckbox,\n priceBasisForPnl,\n };\n}\n","/**\n * @description Component-SynTab\n */\nimport './index.less';\n\nimport { Tabs } from 'antd';\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\ninterface IPropTypes {\n className?: string;\n items: {\n key: string;\n label: React.ReactNode;\n }[];\n activeKey: string;\n onChange: (key: string) => void;\n disabled?: boolean;\n variant?: 'default' | 'rounded';\n}\nconst SynTab: FC = function ({ items, activeKey, disabled, onChange, className, variant = 'default' }) {\n return (\n !disabled && onChange(key)}\n activeKey={activeKey}\n items={items}\n />\n );\n};\n\nexport default SynTab;\n","import { MANAGE_SIDE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useWrappedPortfolioByPairId } from '@/features/account/portfolioHook';\nimport { useTokenGateBalanceByChainIdAndAddress } from '@/features/balance/hook';\nimport { useGlobalConfig } from '@/features/global/hooks';\nimport { useCurrentPairByDevice } from '@/features/pair/hook';\n\nimport { setAdjustMarginFormAmount, simulateAdjustMargin } from '@/features/trade/actions';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { MarginAdjustMethod } from '@/types/trade';\nimport { toWad } from '@/utils/numberUtil';\nimport { useDebounceFn } from 'ahooks';\nimport { useCallback } from 'react';\n\nexport default function useMarginAdjustInputChanged(method: MarginAdjustMethod) {\n const manageSide = useAppSelector((state) => state.trade.adjustMarginControlState.manageSides[method]);\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const currentPair = useCurrentPairByDevice(chainId);\n const portfolio = useWrappedPortfolioByPairId(chainId, userAddr, currentPair?.id);\n const { slippage } = useGlobalConfig(chainId);\n const gateBalanceInfo = useTokenGateBalanceByChainIdAndAddress(\n chainId,\n currentPair?.rootInstrument.marginToken.address,\n );\n const sdkContext = useSDK(chainId);\n const simulateAfterInput = useCallback(\n async (inputAmountStr: string, transferIn: boolean) => {\n if (chainId && portfolio && gateBalanceInfo?.balance) {\n try {\n const simulation = await dispatch(\n simulateAdjustMargin({\n chainId,\n pair: currentPair,\n portfolio,\n transferAmount: toWad(inputAmountStr || 0),\n leverage: undefined,\n sdkContext,\n transferIn,\n slippage: Number(slippage),\n }),\n ).unwrap();\n\n if (simulation?.data) {\n // dispatch(setAdjustMarginSimulation({ chainId, ...simulation }));\n dispatch(\n setAdjustMarginFormAmount({\n chainId,\n transferIn,\n // amount: WrappedBigNumber.from(simulation.transferAmountWad).abs().stringValue,\n amount: inputAmountStr,\n marginToDeposit: WrappedBigNumber.from(simulation.data.marginToDepositWad).stringValue,\n }),\n );\n }\n } catch (e) {\n console.log('🚀 ~ file: index.tsx:71 ~ e:', e);\n }\n }\n },\n [chainId, currentPair, dispatch, gateBalanceInfo?.balance, portfolio, sdkContext, slippage],\n );\n const { run: debouncedSimulateAfterInput } = useDebounceFn(simulateAfterInput, {\n wait: 500,\n });\n\n const inputAmountStrChanged = useCallback(\n (inputAmountStr: string, noNeedDebounced = false) => {\n chainId && dispatch(setAdjustMarginFormAmount({ chainId, amount: inputAmountStr }));\n if (noNeedDebounced) {\n simulateAfterInput(inputAmountStr, manageSide === MANAGE_SIDE.IN);\n } else {\n debouncedSimulateAfterInput(inputAmountStr, manageSide === MANAGE_SIDE.IN);\n }\n },\n [chainId, debouncedSimulateAfterInput, dispatch, manageSide, simulateAfterInput],\n );\n return {\n inputAmountStrChanged,\n };\n}\n","import { MANAGE_SIDE } from '@/constants/trade';\nimport { useWrappedPortfolioByPairId } from '@/features/account/portfolioHook';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useAvailableTokenBalance } from '@/features/balance/hook';\nimport { useCurrentPairByDevice } from '@/features/pair/hook';\nimport { resetAdjustMarginForm, setAdjustMarginByLeverageState, setAdjustMarginSide } from '@/features/trade/actions';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { MarginAdjustMethod } from '@/types/trade';\nimport { getMinMaxLeverageInAdjustMargin } from '@/utils/trade';\nimport { utils as SDKUtils } from '@synfutures/sdks-perp';\nimport { useDebounce } from 'ahooks';\nimport { utils } from 'ethers';\nimport { formatEther, parseUnits } from 'ethers/lib/utils';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport useMarginAdjustInputChanged from './useMarginAdjustSimulate';\n\nexport const useMarginAdjustByLeverageInput = () => {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n const leverageInput = useAppSelector(\n (state) => chainId && state.trade.chainAdjustMarginByLeverageState[chainId]?.leverageInput,\n );\n const isLeverageInputChanged = useAppSelector(\n (state) => chainId && state.trade.chainAdjustMarginByLeverageState[chainId]?.isLeverageInputChanged,\n );\n const setLeverageInput = useCallback(\n (leverageInput: string) => {\n if (chainId) {\n dispatch(setAdjustMarginByLeverageState({ chainId, isLeverageInputChanged: true, leverageInput }));\n }\n },\n [chainId, dispatch],\n );\n const currentPair = useCurrentPairByDevice(chainId);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const currLeverage = currentPosition ? formatEther(currentPosition.wrapAttribute('leverageWad').wadValue) : '0';\n\n const finalLeverageInput = useMemo(() => leverageInput || currLeverage, [currLeverage, leverageInput]);\n\n useEffect(() => {\n return () => {\n // reset when unmount\n if (chainId) {\n dispatch(\n setAdjustMarginByLeverageState({ chainId, leverageInput: null, isLeverageInputChanged: false, errMsg: null }),\n );\n dispatch(resetAdjustMarginForm({ chainId }));\n }\n };\n }, [chainId, dispatch]);\n return { disable: !isLeverageInputChanged, leverageInput: finalLeverageInput, setLeverageInput };\n};\n\nexport default function useMarginAdjustByLeverage() {\n const chainId = useChainId();\n const dispatch = useAppDispatch();\n const userAddr = useUserAddr();\n const currentPair = useCurrentPairByDevice(chainId);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const portfolio = useWrappedPortfolioByPairId(chainId, userAddr, currentPair?.id);\n const sdkContext = useSDK(chainId);\n const tokenBalance = useAvailableTokenBalance(currentPosition?.rootInstrument.marginToken.address, chainId);\n const { t } = useTranslation();\n const { inputAmountStrChanged } = useMarginAdjustInputChanged(MarginAdjustMethod.Leverage);\n const { leverageInput, setLeverageInput, disable } = useMarginAdjustByLeverageInput();\n const debouncedLeverageInputAmount = useDebounce(leverageInput, { wait: 500 });\n // positive means transferIn, negative means transferOut\n const debouncedInputAmountStr = useMemo(() => {\n if (debouncedLeverageInputAmount && currentPosition && sdkContext && !disable && chainId) {\n const { maxLeverage } = getMinMaxLeverageInAdjustMargin({\n chainId,\n sdkContext,\n portfolio,\n availableBalance: parseUnits(tokenBalance.toString(), currentPosition.rootInstrument.marginToken.decimals),\n position: currentPosition,\n });\n\n if (maxLeverage && maxLeverage >= Number(debouncedLeverageInputAmount)) {\n const transferAmountWad = SDKUtils.inquireTransferAmountFromTargetLeverage(\n currentPosition,\n currentPosition.rootPair,\n utils.parseEther(debouncedLeverageInputAmount),\n );\n dispatch(\n setAdjustMarginSide({\n side: transferAmountWad.lt(0) ? MANAGE_SIDE.OUT : MANAGE_SIDE.IN,\n method: MarginAdjustMethod.Leverage,\n }),\n );\n dispatch(\n setAdjustMarginByLeverageState({\n chainId,\n errMsg: null,\n }),\n );\n return utils.formatEther(transferAmountWad.abs());\n } else {\n dispatch(resetAdjustMarginForm({ chainId }));\n maxLeverage &&\n dispatch(\n setAdjustMarginByLeverageState({\n chainId,\n errMsg: (\n <>\n {t('common.warning.maxLeverage', { leverage: maxLeverage })} \n {\n setLeverageInput(maxLeverage.toString());\n }}>\n {t('common.useMax')}\n \n \n ),\n }),\n );\n }\n } else {\n dispatch(\n setAdjustMarginSide({\n side: MANAGE_SIDE.IN,\n method: MarginAdjustMethod.Leverage,\n }),\n );\n }\n return null;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n chainId,\n //currentPosition,\n debouncedLeverageInputAmount,\n disable,\n dispatch,\n //portfolio,\n //sdkContext,\n // setLeverageInput,\n t,\n //tokenBalance,\n ]);\n\n useEffect(() => {\n if (debouncedInputAmountStr) {\n inputAmountStrChanged(debouncedInputAmountStr);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [debouncedInputAmountStr]);\n\n return { leverageInput, setLeverageInput, debouncedInputAmountStr };\n}\n","import { setAdjustMarginMethod } from '@/features/trade/actions';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport { MarginAdjustMethod } from '@/types/trade';\nimport { useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nexport type MarginAdjustMethodInfoProps = {\n i18nId: string;\n key: string;\n value: string;\n};\nexport const marginAdjustMethodInfos: {\n [id in MarginAdjustMethod]: MarginAdjustMethodInfoProps;\n} = {\n [MarginAdjustMethod.Leverage]: {\n i18nId: 'common.leverage',\n key: MarginAdjustMethod.Leverage,\n value: MarginAdjustMethod.Leverage,\n },\n [MarginAdjustMethod.Amount]: {\n i18nId: 'common.amount',\n key: MarginAdjustMethod.Amount,\n value: MarginAdjustMethod.Amount,\n },\n};\nexport default function useMarginAdjustMethod() {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const activeMarginAdjustMethod = useAppSelector((state) => state.trade.adjustMarginControlState.marginAdjustMethod);\n\n const toggleActiveMarginAdjustMethod = useCallback(() => {\n dispatch(\n setAdjustMarginMethod(\n activeMarginAdjustMethod === MarginAdjustMethod.Amount\n ? MarginAdjustMethod.Leverage\n : MarginAdjustMethod.Amount,\n ),\n );\n }, [activeMarginAdjustMethod, dispatch]);\n const tradeAdjustMethodItems = useMemo(\n () =>\n [marginAdjustMethodInfos[MarginAdjustMethod.Leverage], marginAdjustMethodInfos[MarginAdjustMethod.Amount]].map(\n (item) => ({ ...item, label: t(item.i18nId) }),\n ),\n [t],\n );\n return {\n activeMarginAdjustMethod,\n toggleActiveMarginAdjustMethod,\n tradeAdjustMethodItems,\n };\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconArrow = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 10,\n height: 4,\n viewBox: \"0 0 10 4\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.148 3.3C7.268 3.044 7.384 2.82 7.496 2.628C7.616 2.436 7.732 2.276 7.844 2.148H0.848V1.644H7.844C7.732 1.508 7.616 1.344 7.496 1.152C7.384 0.96 7.268 0.74 7.148 0.492H7.568C8.072 1.076 8.6 1.508 9.152 1.788V2.004C8.6 2.276 8.072 2.708 7.568 3.3H7.148Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconArrow);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_arrow.8f35535a3098f303457fdb65bc8c3c64.svg\";","/**\n * @description Component-TradeAjustDetail\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { IAdjustMarginSimulation } from '@/types/trade';\n\nimport { ReactComponent as ArrowRight } from './assets/icon_arrow.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n simulation: IAdjustMarginSimulation | undefined;\n currentPosition: WrappedPosition | undefined;\n}\nconst TradeAdjustDetail: FC = function ({ currentPosition, simulation }) {\n const { t } = useTranslation();\n\n return (\n
\n
\n
{t('common.leverage')}
\n
\n
\n \n {!simulation?.data ? currentPosition?.wrapAttribute('leverageWad').formatLeverageWithTooltip() : ''}\n {simulation?.data && (\n <>\n {currentPosition?.wrapAttribute('leverageWad').formatLeverageWithTooltip()}\n \n {WrappedBigNumber.from(simulation.data.leverageWad)?.formatLeverageWithTooltip()}\n \n )}\n \n
\n
\n
\n
{t('common.liqPShort')}
\n
\n
\n \n {!simulation?.data\n ? currentPosition?.wrapAttribute('liquidationPrice').formatLiqPriceNumberWithTooltip()\n : ''}\n {simulation?.data && (\n <>\n {currentPosition?.wrapAttribute('liquidationPrice').formatLiqPriceNumberWithTooltip()}\n \n\n {simulation?.data.simulationMainPosition\n ?.wrapAttribute('liquidationPrice')\n ?.formatLiqPriceNumberWithTooltip()}\n \n )}\n \n
\n
\n
\n );\n};\n\nexport default TradeAdjustDetail;\n","import { MANAGE_SIDE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport useMarginAdjustByAmount from '@/hooks/trade/MarginAdjust/useMarginAdjustByAmount';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport WrapETHButton from '../../WrapETHButton';\n\nimport Input from '@/components/Input';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport SynTab from '@/components/SynTab';\nimport { FETCHING_STATUS } from '@/constants';\nimport BalanceMax from '@/pages/components/BalanceMax';\nimport PercentageSelector from '@/pages/components/PercentageSelector/PercentageSelector';\nimport { inputNumChecker } from '@/utils/numberUtil';\n\nimport useMarginAdjustInputChanged from '@/hooks/trade/MarginAdjust/useMarginAdjustSimulate';\nimport { MarginAdjustMethod } from '@/types/trade';\n\nexport default function MarginAdjustByAmount() {\n const {\n currentPair,\n manageSide,\n adjustFormStatus,\n onSideChange,\n percentageChange,\n isWrappedNative,\n manageSides,\n displayBalance,\n adustMarginFormState,\n percentage,\n inputRef,\n portfolio,\n } = useMarginAdjustByAmount();\n const { inputAmountStrChanged } = useMarginAdjustInputChanged(MarginAdjustMethod.Amount);\n const { isMobile } = useMediaQueryDevice();\n const { t } = useTranslation();\n\n return (\n <>\n \n
\n
\n {\n const value = inputNumChecker(e.target.value, portfolio?.rootInstrument.marginToken.decimals);\n if (WrappedBigNumber.from(value).gt(displayBalance)) {\n inputAmountStrChanged(\n inputNumChecker(displayBalance.stringValue, currentPair?.rootInstrument.marginToken.decimals),\n );\n } else {\n inputAmountStrChanged(value);\n }\n }}\n {...{\n type: 'text',\n pattern: '^[0-9]*[.,]?[0-9]*$',\n inputMode: 'decimal',\n autoComplete: 'off',\n autoCorrect: 'off',\n step: 1e18,\n autoFocus: true,\n onKeyDown: (e) => ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n }}\n id=\"manage-input\"\n disabled={adjustFormStatus === FETCHING_STATUS.FETCHING}\n placeholder=\"0.0\"\n autoFocus={true}\n max={displayBalance.stringValue}\n value={adustMarginFormState.amount}\n className={classNames('syn-form-input')}\n suffix={currentPair?.rootInstrument.marginToken.symbol}\n />\n
\n {t('common.availableBalanceTile.av')}\n \n
\n
\n \n {isWrappedNative && manageSide === MANAGE_SIDE.IN && (\n
\n {!isMobile && }\n
\n )}\n
\n \n );\n}\n","import { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { MANAGE_SIDE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useWrappedPortfolioByPairId } from '@/features/account/portfolioHook';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useDisplayBalance } from '@/features/balance/hook';\nimport { useCurrentPairByDevice } from '@/features/pair/hook';\nimport BigNumber from 'bignumber.js';\n\nimport { setAdjustMarginSide } from '@/features/trade/actions';\nimport { useAdjustMarginFormState, useAdjustMarginFormStatus } from '@/features/trade/hooks';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { MarginAdjustMethod } from '@/types/trade';\nimport { formatNumber, inputNumChecker } from '@/utils/numberUtil';\nimport { isWrappedNativeToken } from '@/utils/token';\nimport { useCallback, useEffect, useMemo, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport useMarginAdjustInputChanged from './useMarginAdjustSimulate';\n\nexport default function useMarginAdjustByAmount() {\n const { isMobile } = useMediaQueryDevice();\n const manageSide = useAppSelector(\n (state) => state.trade.adjustMarginControlState.manageSides.MarginAdjustMethod_Amount,\n );\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { t } = useTranslation();\n const adustMarginFormState = useAdjustMarginFormState(chainId);\n const adjustFormStatus = useAdjustMarginFormStatus(chainId);\n const currentPair = useCurrentPairByDevice(chainId);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const portfolio = useWrappedPortfolioByPairId(chainId, userAddr, currentPair?.id);\n const { inputAmountStrChanged } = useMarginAdjustInputChanged(MarginAdjustMethod.Amount);\n const inputRef = useRef(null);\n const isWrappedNative = useMemo(() => {\n return chainId && isWrappedNativeToken(chainId, currentPair?.rootInstrument.marginToken.address || '');\n }, [chainId, currentPair?.rootInstrument.marginToken.address]);\n const manageSides = useMemo(() => {\n return [\n {\n label: t('common.tradePage.adjustMargin.topUp'),\n key: MANAGE_SIDE.IN.toString(),\n value: MANAGE_SIDE.IN.toString(),\n },\n {\n label: t('common.tradePage.adjustMargin.reduce'),\n key: MANAGE_SIDE.OUT.toString(),\n value: MANAGE_SIDE.OUT.toString(),\n },\n ];\n }, [t]);\n useEffect(() => {\n dispatch(setAdjustMarginSide({ method: MarginAdjustMethod.Amount, side: MANAGE_SIDE.IN }));\n }, [dispatch]);\n const displayBalance = useDisplayBalance(\n currentPosition,\n manageSide === MANAGE_SIDE.IN,\n chainId,\n currentPosition?.rootInstrument.marginToken.address,\n );\n\n const percentage = useMemo(() => {\n return formatNumber(\n WrappedBigNumber.from(adustMarginFormState.amount || 0)\n .div(displayBalance || 1)\n .mul(100).stringValue,\n 1,\n false,\n BigNumber.ROUND_UP,\n );\n }, [adustMarginFormState.amount, displayBalance]);\n\n const onSideChange = useCallback(\n (key: string) => {\n dispatch(\n setAdjustMarginSide({\n side: key as MANAGE_SIDE,\n method: MarginAdjustMethod.Amount,\n }),\n );\n },\n [dispatch],\n );\n const percentageChange = useCallback(\n (percentage: number) => {\n console.log('🚀 ~ file: index.tsx:354 ~ percentage:', percentage);\n const amount = displayBalance.mul(percentage).div(100);\n inputAmountStrChanged(inputNumChecker(amount.stringValue, currentPair?.rootInstrument.marginToken.decimals));\n },\n [currentPair?.rootInstrument.marginToken.decimals, displayBalance, inputAmountStrChanged],\n );\n\n useEffect(() => {\n inputAmountStrChanged('', true);\n if (!isMobile) {\n inputRef.current?.querySelector('input')?.focus();\n }\n // must dep on manageSide\n return () => {\n inputAmountStrChanged('', true);\n if (!isMobile) {\n inputRef.current?.querySelector('input')?.focus();\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [manageSide, isMobile]);\n\n return {\n currentPair,\n manageSide,\n adjustFormStatus,\n onSideChange,\n percentageChange,\n isWrappedNative,\n manageSides,\n displayBalance,\n adustMarginFormState,\n percentage,\n inputRef,\n portfolio,\n };\n}\n","/**\n * @description Component-Slider\n */\nimport './index.less';\n\nimport { Slider as AntSlider, SliderSingleProps } from 'antd';\nimport { FC, useMemo } from 'react';\ninterface IPropTypes extends SliderSingleProps {\n unit?: string;\n}\nconst Slider: FC = function ({ unit = '%', ...props }) {\n function formatter(value?: number) {\n return `${value || 0}${unit}`;\n }\n const marks = useMemo(() => {\n return {\n 0: '0',\n 25: '25',\n 50: '50',\n 75: '75',\n 100: '100',\n };\n }, []);\n return (\n {\n return document.body;\n },\n formatter: formatter,\n }}\n className=\"syn-slider\"\n marks={marks}\n {...props}\n />\n );\n};\n\nexport default Slider;\n","/**\n * @description Component-SynSlider\n */\nimport { SliderSingleProps } from 'antd/lib/slider';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { FC, useEffect, useMemo, useRef } from 'react';\n\nimport { TRADE_LEVERAGE_THRESHOLDS } from '@/constants/global';\n\nimport { useMediaQueryDevice } from '../MediaQuery';\nimport Slider from '../Slider';\nimport './index.less';\ninterface IProps extends SliderSingleProps {\n max?: number;\n ticks?: number;\n}\n\nconst SynSlider: FC = function ({ onChange, disabled, value, max = TRADE_LEVERAGE_THRESHOLDS.MAX, ticks = 5 }) {\n const { isMobile, deviceType } = useMediaQueryDevice();\n const ref = useRef(null);\n\n const marks = useMemo(() => {\n if (max === 33) {\n return {\n '0.1': '0.1x',\n '5': '5x',\n '10': '10x',\n '15': '15x',\n '20': '20x',\n '25': '25x',\n '33': '33x',\n };\n }\n const mark = { '0.1': '0.1x' };\n if (isMobile) {\n value && _.set(mark, [value], `${value}x`);\n if (value && value < 0.8 * max) {\n _.set(mark, [max], `${max}x`);\n }\n if (value && value < 0.2 * max && value !== 0.1) {\n _.set(mark, ['0.1'], '');\n }\n } else {\n let count = ticks;\n const portion = max / count;\n while (count > 0) {\n const value = Math.floor(count * portion);\n _.set(mark, [value], `${value}x`);\n count--;\n }\n }\n return mark;\n }, [isMobile, max, ticks, value]);\n\n useEffect(() => {\n if (isMobile && disabled) {\n const nodes = ref.current?.querySelectorAll('.ant-slider-mark-text-active');\n const lastEl = nodes?.item(nodes?.length - 1);\n lastEl?.classList.add('highlight');\n }\n }, [isMobile, disabled]);\n\n return (\n
\n <>{number}x,\n }}\n step={0.1}\n value={value}\n />\n
\n );\n};\n\nexport default SynSlider;\n","import './TradeLeverage.less';\n\n// import { useDebounceFn } from 'ahooks';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { memo, useCallback, useEffect, useState } from 'react';\n\nimport Input from '@/components/Input';\nimport SynSlider from '@/components/SynSlider';\nimport { TRADE_FORM_TYPE } from '@/constants';\nimport { CHAIN_ID } from '@/constants/chain';\nimport { TRADE_LEVERAGE_THRESHOLDS } from '@/constants/global';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useTradeDefaultLeverage } from '@/features/trade/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { savePairLeverage } from '@/utils/localstorage';\nimport { inputNumChecker } from '@/utils/numberUtil';\n\nimport { useMediaQueryDevice } from '../MediaQuery';\n\ninterface IProps {\n isMobile?: boolean;\n chainId: CHAIN_ID | undefined;\n tradeFormType?: TRADE_FORM_TYPE;\n pairId: string | undefined;\n leverage: string;\n tradeType?: TRADE_TYPE;\n max?: number;\n maxLeverage: number | undefined;\n imr?: number;\n disabled?: boolean;\n leverageChanged: (leverage: string) => void;\n mobileUseDesktopStyle?: boolean;\n}\n\nexport function TradeLeverageComponent({\n leverageChanged,\n leverage,\n max,\n chainId,\n disabled,\n pairId,\n tradeType,\n maxLeverage,\n mobileUseDesktopStyle = false,\n}: IProps): JSX.Element {\n const { isMobile, deviceType } = useMediaQueryDevice();\n const [inputValue, setInputValue] = useState(leverage);\n const userAddr = useUserAddr();\n const [touched, setTouched] = useState(false);\n const defaultLeverage = useTradeDefaultLeverage(maxLeverage);\n const updateLocalLeverage = useCallback(\n (leverage: string) => {\n userAddr && tradeType && chainId && pairId && savePairLeverage(userAddr, chainId, pairId, tradeType, leverage);\n },\n [chainId, pairId, userAddr, tradeType],\n );\n const onSliderChange = useCallback(\n (value: number) => {\n gtag('event', 'adjust_leverage', {\n adjust_leverage: 'drag', // drag, enter\n });\n leverageChanged(value.toString());\n setInputValue(value.toString());\n updateLocalLeverage(value.toString());\n },\n [leverageChanged, updateLocalLeverage],\n );\n\n useEffect(() => {\n setInputValue(leverage);\n }, [leverage]);\n const sliderMove = useCallback(\n (e: TouchEvent | MouseEvent) => {\n const rect = document.getElementById('leverage-bottom')?.getBoundingClientRect();\n if (rect && maxLeverage) {\n const clientX = _.get(e, ['touches', 0, 'clientX'], _.get(e, ['clientX']));\n const x = clientX - rect?.left;\n let percent = x / rect.width;\n\n if (percent > 1) {\n percent = 1;\n }\n if (percent < 0) {\n percent = 0;\n }\n const leverageNew = (maxLeverage - TRADE_LEVERAGE_THRESHOLDS.MIN) * percent + 0.1;\n const leverageAdjusted = Number(leverageNew.toFixed(1));\n\n onSliderChange(leverageAdjusted);\n }\n },\n [maxLeverage, onSliderChange],\n );\n\n const setVal = useCallback(\n (value: string) => {\n let val = inputNumChecker(value, 1);\n const valBN = WrappedBigNumber.from(val);\n if (val) {\n if (maxLeverage && valBN.gt(maxLeverage)) {\n val = maxLeverage.toString();\n } else if (valBN.lt(TRADE_LEVERAGE_THRESHOLDS.MIN)) {\n val = TRADE_LEVERAGE_THRESHOLDS.MIN.toString();\n }\n if (max && valBN.gt(max)) {\n val = max.toString();\n }\n } else {\n val = defaultLeverage.toString();\n }\n val = WrappedBigNumber.from(val).stringValue;\n setInputValue(val);\n return val;\n },\n [defaultLeverage, max, maxLeverage],\n );\n\n return (\n
\n {\n if (!mobileUseDesktopStyle) {\n if (isMobile && !disabled) {\n sliderMove(e as unknown as MouseEvent);\n setTouched(true);\n }\n }\n }}\n onTouchStart={(e) => {\n if (!mobileUseDesktopStyle) {\n if (disabled) {\n return;\n }\n setTouched(true);\n sliderMove(e as unknown as TouchEvent);\n }\n }}\n onTouchMove={(e) => {\n if (!mobileUseDesktopStyle) {\n !disabled && sliderMove(e as unknown as TouchEvent);\n }\n }}\n onTouchEnd={() => {\n if (!mobileUseDesktopStyle) {\n setTouched(false);\n }\n }}\n className=\"trade-leverage-bottom\">\n (!isMobile || mobileUseDesktopStyle) && onSliderChange(number)}\n value={Number(leverage)}\n />\n {(!isMobile || mobileUseDesktopStyle) && (\n
\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n step: 1e18,\n }}\n suffix={'x'}\n onChange={(e) => {\n setInputValue(e.target.value);\n }}\n disabled={disabled}\n onBlur={(e) => {\n const val = setVal(e.target.value);\n leverageChanged(val);\n gtag('event', 'adjust_leverage', {\n adjust_leverage: 'enter', // drag, enter\n });\n updateLocalLeverage(val);\n }}\n />\n
\n )}\n
\n \n );\n}\n\nexport const TradeLeverage = memo(TradeLeverageComponent);\n","import { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { AvailableBalance } from '@/components/ToolTip/AvailableBalanceToolTip';\nimport { TradeLeverage } from '@/components/TradeLeverage/TradeLeverage';\nimport { MANAGE_SIDE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useAppSelector } from '@/hooks';\nimport useMarginAdjustByLeverage from '@/hooks/trade/MarginAdjust/useMarginAdjustByLeverage';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { MarginAdjustMethod } from '@/types/trade';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\ntype IProps = {\n pair: WrappedPair;\n};\nexport default function TradeMarginAdjustLeverage({ pair }: IProps) {\n const chainId = useChainId();\n const manageSide = useAppSelector(\n (state) => state.trade.adjustMarginControlState.manageSides[MarginAdjustMethod.Leverage],\n );\n\n const { isMobile } = useMediaQueryDevice();\n const { leverageInput, setLeverageInput, debouncedInputAmountStr } = useMarginAdjustByLeverage();\n const { t } = useTranslation();\n return (\n
\n {leverageInput && (\n \n )}\n\n \n\n {debouncedInputAmountStr && (\n
\n \n {manageSide === MANAGE_SIDE.IN ? t('common.marginRequired') : t('common.marginReleased')}\n \n
\n \n {WrappedBigNumber.from(debouncedInputAmountStr).formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: pair.rootInstrument.marginToken.symbol,\n })}\n \n
\n )}\n
\n );\n}\n","/**\n * @description Component-TradeAdjustClose\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { FC, useEffect, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/Alert';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { Message } from '@/components/Message';\nimport SynTab from '@/components/SynTab';\nimport WrappedButton from '@/components/WrappedButton';\nimport { FETCHING_STATUS } from '@/constants';\nimport { MANAGE_SIDE } from '@/constants/trade';\nimport WalletCardWrapper from '@/pages/components/WalletStatus/WalletCardWrapper';\n\nimport { Tooltip } from '@/components/ToolTip';\nimport { useIsIpBlocked } from '@/features/global/hooks';\nimport { useCurrentPairByDevice } from '@/features/pair/hook';\nimport { setAdjustMarginMethod } from '@/features/trade/actions';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport useMarginAdjust from '@/hooks/trade/MarginAdjust/useMarginAdjust';\nimport { useMarginAdjustByLeverageInput } from '@/hooks/trade/MarginAdjust/useMarginAdjustByLeverage';\nimport useMarginAdjustMethod from '@/hooks/trade/MarginAdjust/useMarginAdjustMethod';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport TradeEarnTabs from '@/pages/components/Tabs/TradeEarnTabs';\nimport { MarginAdjustMethod } from '@/types/trade';\nimport TradeAdjustDetail from './TradeAdjustDetail';\nimport MarginAdjustByAmount from './TradeMarginAdjustAmount';\nimport TradeMarginAdjustLeverage from './TradeMarginAdjustLeverage';\n\ninterface IPropTypes {\n onClose?: () => void;\n}\nconst TradeAdjust: FC = function ({ onClose }) {\n const { activeMarginAdjustMethod, toggleActiveMarginAdjustMethod, tradeAdjustMethodItems } = useMarginAdjustMethod();\n const manageSides = useAppSelector((state) => state.trade.adjustMarginControlState.manageSides);\n const chainId = useChainId();\n const leverageErrMsg = useAppSelector(\n (state) => chainId && state.trade.chainAdjustMarginByLeverageState[chainId]?.errMsg,\n );\n\n const currentPair = useCurrentPairByDevice(chainId);\n const dispatch = useAppDispatch();\n\n const {\n closeSection,\n marginTokenAmount,\n isLoading,\n isDisable,\n adjustPositionMargin,\n adjustFormStatus,\n adjustMarginSimulation,\n currentPosition,\n errMsg,\n isShowDepositInfo,\n depositInfo,\n displayBalance,\n adjustMarginFormState,\n } = useMarginAdjust(onClose);\n\n const { isMobile, deviceType } = useMediaQueryDevice();\n const { t } = useTranslation();\n const manageSide = useMemo(() => manageSides[activeMarginAdjustMethod], [activeMarginAdjustMethod, manageSides]);\n const { disable } = useMarginAdjustByLeverageInput();\n\n const inDisabledAdjustWithdraw = useMemo(\n () => manageSide === MANAGE_SIDE.OUT && !!currentPair?.symbol && !currentPair?.withinDeviationLimit,\n [currentPair?.symbol, currentPair?.withinDeviationLimit, manageSide],\n );\n\n const ipBlocked = useIsIpBlocked();\n useEffect(() => {\n dispatch(setAdjustMarginMethod(MarginAdjustMethod.Leverage));\n }, [dispatch]);\n return (\n \n \n
\n )\n }\n footer={\n \n \n {manageSide === MANAGE_SIDE.OUT\n ? t('common.tradePage.adjustMargin.reduce')\n : t('common.tradePage.adjustMargin.topUp')}\n \n \n }\n title={isMobile ? '' : t('common.adjustM')}\n mode={isMobile ? undefined : 'modal'}\n className={classNames('syn-trade-adjust', deviceType)}>\n
\n {t('common.by')}\n
\n \n
\n
\n\n {activeMarginAdjustMethod === MarginAdjustMethod.Leverage && (\n <>{currentPair && }\n )}\n {activeMarginAdjustMethod === MarginAdjustMethod.Amount && (\n <>\n \n \n )}\n\n {isMobile && }\n {errMsg && (\n <>\n \n \n )}\n {leverageErrMsg && (\n <>\n \n \n )}\n {isShowDepositInfo && depositInfo}\n {/* {!isShowDepositInfo && isShowVaultChange && vaultChangeInfo} */}\n {displayBalance.mul(0.95).lte(adjustMarginFormState.amount) && manageSide === MANAGE_SIDE.OUT && (\n }} />}\n type=\"info\"\n showIcon\n />\n )}\n \n );\n};\n\nexport default TradeAdjust;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconShare32 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.07 4.55868C20.9514 4.4475 20.8029 4.37343 20.6428 4.34558C20.4826 4.31773 20.3179 4.33732 20.1687 4.40193C20.0196 4.46655 19.8926 4.57338 19.8034 4.70926C19.7142 4.84514 19.6666 5.00414 19.6667 5.16668V8.81468C19.428 8.82002 19.15 8.83468 18.84 8.86268C17.8167 8.95735 16.4293 9.21335 14.9893 9.86602C12.0547 11.196 9.03867 14.1154 8.33867 20.2393C8.3196 20.407 8.35188 20.5765 8.43123 20.7254C8.51057 20.8743 8.63325 20.9956 8.78303 21.0733C8.93282 21.151 9.10265 21.1813 9.27008 21.1604C9.4375 21.1395 9.59462 21.0682 9.72067 20.956C12.6107 18.3867 15.3187 17.2807 17.278 16.81C18.0397 16.6226 18.8182 16.5116 19.602 16.4787L19.6667 16.4767V20.1667C19.6666 20.3292 19.7142 20.4882 19.8034 20.6241C19.8926 20.76 20.0196 20.8668 20.1687 20.9314C20.3179 20.9961 20.4826 21.0156 20.6428 20.9878C20.8029 20.9599 20.9514 20.8859 21.07 20.7747L29.07 13.2747C29.1532 13.1967 29.2194 13.1026 29.2647 12.998C29.3101 12.8934 29.3334 12.7807 29.3334 12.6667C29.3334 12.5527 29.3101 12.44 29.2647 12.3354C29.2194 12.2308 29.1532 12.1366 29.07 12.0587L21.07 4.55868ZM4 9.50002C4 8.39495 4.43899 7.33514 5.22039 6.55374C6.00179 5.77234 7.0616 5.33335 8.16667 5.33335H13.6667C13.8877 5.33335 14.0996 5.42115 14.2559 5.57743C14.4122 5.73371 14.5 5.94567 14.5 6.16668C14.5 6.3877 14.4122 6.59966 14.2559 6.75594C14.0996 6.91222 13.8877 7.00002 13.6667 7.00002H8.16667C7.50363 7.00002 6.86774 7.26341 6.3989 7.73225C5.93006 8.20109 5.66667 8.83698 5.66667 9.50002V23.8333C5.66667 24.4964 5.93006 25.1323 6.3989 25.6011C6.86774 26.07 7.50363 26.3333 8.16667 26.3333H22.5C23.163 26.3333 23.7989 26.07 24.2678 25.6011C24.7366 25.1323 25 24.4964 25 23.8333V22.3334C25 22.1123 25.0878 21.9004 25.2441 21.7441C25.4004 21.5878 25.6123 21.5 25.8333 21.5C26.0543 21.5 26.2663 21.5878 26.4226 21.7441C26.5789 21.9004 26.6667 22.1123 26.6667 22.3334V23.8333C26.6667 24.9384 26.2277 25.9982 25.4463 26.7796C24.6649 27.561 23.6051 28 22.5 28H8.16667C7.0616 28 6.00179 27.561 5.22039 26.7796C4.43899 25.9982 4 24.9384 4 23.8333V9.50002Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconShare32);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_share_32.e8df3d6d731344ab4c91847adbf8a15a.svg\";","import { FETCHING_STATUS } from '@/constants';\nimport { ERROR_MSG_INSUFFICIENT_MARGIN } from '@/constants/simulation';\nimport { MANAGE_SIDE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useDisplayBalance, useTokenBalance } from '@/features/balance/hook';\nimport { useGlobalConfig } from '@/features/global/hooks';\nimport { useCurrentPairByDevice } from '@/features/pair/hook';\n\nimport Alert from '@/components/Alert';\nimport { adjustMargin, resetFormByChainId } from '@/features/trade/actions';\nimport { useAdjustMarginFormState, useAdjustMarginFormStatus, useAdjustMarginSimulation } from '@/features/trade/hooks';\nimport { useAppProvider, useSDK } from '@/features/web3/hook';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { MarginAdjustMethod } from '@/types/trade';\nimport { inputNumChecker, toWad } from '@/utils/numberUtil';\nimport { ZERO } from '@synfutures/sdks-perp';\nimport { useCallback, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport useMarginAdjustInputChanged from './useMarginAdjustSimulate';\n\nexport default function useMarginAdjust(onClose?: () => void) {\n const manageSide = useAppSelector(\n (state) => state.trade.adjustMarginControlState.manageSides.MarginAdjustMethod_Amount,\n );\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const provider = useAppProvider();\n const { t } = useTranslation();\n const adjustMarginFormState = useAdjustMarginFormState(chainId);\n const adjustFormStatus = useAdjustMarginFormStatus(chainId);\n const currentPair = useCurrentPairByDevice(chainId);\n const activeMarginAdjustMethod = useAppSelector((state) => state.trade.adjustMarginControlState.marginAdjustMethod);\n const { inputAmountStrChanged } = useMarginAdjustInputChanged(activeMarginAdjustMethod);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n\n const marginToken = useMemo(() => currentPair?.rootInstrument.marginToken, [currentPair?.rootInstrument.marginToken]);\n const adjustMarginSimulation = useAdjustMarginSimulation(chainId);\n const isLoading = useMemo(() => adjustFormStatus === FETCHING_STATUS.FETCHING, [adjustFormStatus]);\n const sdkContext = useSDK(chainId);\n const signer = useWalletSigner();\n const { deadline } = useGlobalConfig(chainId);\n const walletBalance = useTokenBalance(currentPair?.rootInstrument?.quoteToken?.address, chainId);\n const walletNoBalance = useMemo(() => {\n return walletBalance.lt(WrappedBigNumber.from(adjustMarginSimulation?.data?.marginToDepositWad || 0));\n }, [adjustMarginSimulation?.data?.marginToDepositWad, walletBalance]);\n\n const withinWB = useMemo(\n () => walletBalance.gte(WrappedBigNumber.from(adjustMarginSimulation?.data?.marginToDepositWad || 0)),\n [walletBalance, adjustMarginSimulation?.data?.marginToDepositWad],\n );\n const displayBalance = useDisplayBalance(\n currentPosition,\n manageSide === MANAGE_SIDE.IN,\n chainId,\n currentPosition?.rootInstrument.marginToken.address,\n );\n\n const isDisable = useMemo(() => {\n if (walletNoBalance) return true;\n if (!withinWB) {\n return true;\n }\n\n return !!adjustMarginSimulation?.message;\n }, [adjustMarginSimulation?.message, walletNoBalance, withinWB]);\n\n const isShowDepositInfo = useMemo(() => {\n const margin = adjustMarginSimulation?.data?.marginToDepositWad;\n return !adjustMarginSimulation?.message && margin && !margin.eq(0);\n }, [adjustMarginSimulation?.data?.marginToDepositWad, adjustMarginSimulation?.message]);\n\n const closeSection = useCallback(() => {\n chainId &&\n dispatch(\n resetFormByChainId({\n chainId,\n }),\n );\n }, [chainId, dispatch]);\n\n const depositInfo = useMemo(() => {\n const margin = WrappedBigNumber.from(adjustMarginSimulation?.data?.marginToDepositWad || 0);\n if (isShowDepositInfo) {\n return (\n }}\n />\n ) : (\n <>\n ,\n }}\n />\n {activeMarginAdjustMethod === MarginAdjustMethod.Amount && (\n {\n inputAmountStrChanged(\n inputNumChecker(displayBalance.stringValue, currentPair?.rootInstrument.marginToken.decimals),\n );\n }}>\n {t('common.useMax')}\n \n )}\n \n )\n }\n type={withinWB ? 'info' : 'error'}\n showIcon\n />\n );\n }\n }, [\n adjustMarginSimulation?.data?.marginToDepositWad,\n isShowDepositInfo,\n withinWB,\n t,\n marginToken?.symbol,\n activeMarginAdjustMethod,\n inputAmountStrChanged,\n displayBalance.stringValue,\n currentPair?.rootInstrument.marginToken.decimals,\n ]);\n const errMsg = useMemo(() => {\n if (adjustMarginSimulation?.message === ERROR_MSG_INSUFFICIENT_MARGIN) {\n return (\n <>\n {adjustMarginSimulation?.message}. \n {\n inputAmountStrChanged(\n inputNumChecker(displayBalance.stringValue, currentPair?.rootInstrument.marginToken.decimals),\n );\n }}>\n {t('common.useMax')}\n \n \n );\n }\n return adjustMarginSimulation?.message;\n }, [\n adjustMarginSimulation?.message,\n currentPair?.rootInstrument.marginToken.decimals,\n displayBalance,\n inputAmountStrChanged,\n t,\n ]);\n\n const marginTokenAmount = useMemo(() => {\n return adjustMarginFormState?.marginToDeposit\n ? WrappedBigNumber.from(adjustMarginFormState?.marginToDeposit).wadValue\n : ZERO;\n }, [adjustMarginFormState?.marginToDeposit]);\n\n const adjustPositionMargin = useCallback(async () => {\n if (chainId && signer && currentPair && userAddr && sdkContext && deadline && provider) {\n const amount = toWad(adjustMarginFormState.amount);\n try {\n const result = await dispatch(\n adjustMargin({\n chainId,\n signer,\n pair: currentPair,\n userAddr,\n sdkContext,\n transferIn: !!adjustMarginFormState.transferIn,\n margin: amount.abs(),\n deadline: Number(deadline),\n provider,\n }),\n ).unwrap();\n if (result && onClose) {\n onClose();\n }\n } catch (e) {}\n }\n }, [\n adjustMarginFormState.amount,\n adjustMarginFormState.transferIn,\n chainId,\n currentPair,\n deadline,\n dispatch,\n onClose,\n sdkContext,\n signer,\n userAddr,\n provider,\n ]);\n\n return {\n closeSection,\n marginTokenAmount,\n isLoading,\n isDisable,\n adjustPositionMargin,\n adjustFormStatus,\n adjustMarginSimulation,\n currentPosition,\n errMsg,\n isShowDepositInfo,\n depositInfo,\n displayBalance,\n adjustMarginFormState,\n };\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconChevronDown = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.46978 6.46967C3.76268 6.17678 4.23755 6.17678 4.53044 6.46967L8.00011 9.93934L11.4698 6.46967C11.7627 6.17678 12.2375 6.17678 12.5304 6.46967C12.8233 6.76256 12.8233 7.23744 12.5304 7.53033L8.53044 11.5303C8.23755 11.8232 7.76268 11.8232 7.46978 11.5303L3.46978 7.53033C3.17689 7.23744 3.17689 6.76256 3.46978 6.46967Z\",\n fill: \"#94B8BF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconChevronDown);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_chevron_down.e3f866c22798a32281a343a809509f68.svg\";","import classNames from 'classnames';\nimport { useCallback } from 'react';\nimport { toast } from 'react-toastify';\nimport { ToastOptions } from 'react-toastify/dist/types/index';\n\nimport { ReactComponent as ShareIcon } from '@/assets/svg/icon_share_32.svg';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { CloseButton } from '@/components/Notification';\nimport { SecondGlobalModalType } from '@/constants';\nimport { mockNotiDontClose } from '@/constants/mock';\nimport { NO_SHOW_PNL_NOTIFICATION } from '@/constants/storage';\nimport { usePnlShareModal, useTheme } from '@/features/global/hooks';\nimport { IPnlParams } from '@/types/trade';\nimport { useTranslation } from 'react-i18next';\nimport Button from '../Button/Button';\nimport Checkbox from '../Checkbox';\nimport './index.less';\nconst cachedNotify: { [tx: string]: string } = {};\n\nexport const usePnlShareNotification = (): ((args: IPnlParams) => void) => {\n const { deviceType, isMobile } = useMediaQueryDevice();\n const { dataTheme } = useTheme();\n const { togglePnlShareModal } = usePnlShareModal(SecondGlobalModalType.PNL_SHARE_NOTIFICATION);\n const { t } = useTranslation();\n\n const openNotification = useCallback(\n (args: IPnlParams, onlyBtn = false, fromWindow = false): void => {\n const showBtnOnly = onlyBtn || !!localStorage.getItem(NO_SHOW_PNL_NOTIFICATION) || isMobile;\n const toastDom = showBtnOnly ? (\n {\n togglePnlShareModal();\n }}>\n \n {t('notification.pnl.title')}\n \n ) : (\n
\n
\n {t('notification.pnl.title')}\n
\n
\n
\n
\n {args.pnlRatio.formatPercentage({\n colorShader: true,\n })}\n
\n
\n {args.pnl.formatNumberWithTooltip({\n showPositive: true,\n isShowTBMK: true,\n colorShader: true,\n prefix: '(',\n colorSuffix: true,\n suffix: args.pair.rootInstrument.marginToken.symbol + ')',\n })}\n
\n
\n
\n {\n togglePnlShareModal();\n }}>\n \n {t('common.share')}\n \n {\n localStorage.setItem(NO_SHOW_PNL_NOTIFICATION, e.target.checked ? 'true' : '');\n }}>\n {t('notification.pnl.hideNotification')}\n \n
\n
\n
\n );\n const toastConfig: ToastOptions = {\n className: classNames(deviceType, dataTheme, 'syn-pnl-notification-toaster', { 'btn-only': showBtnOnly }),\n closeButton: showBtnOnly ? false : CloseButton,\n closeOnClick: false,\n bodyClassName: 'syn-pnl-notification-toaster-wrapper',\n type: 'info',\n position: 'bottom-right',\n autoClose: mockNotiDontClose ? false : showBtnOnly ? (fromWindow ? 5000 : 10000) : 5000,\n hideProgressBar: showBtnOnly,\n icon: false,\n onClose: () => {\n if (args.tx && cachedNotify[args.tx]) {\n delete cachedNotify[args.tx];\n }\n if (!showBtnOnly) {\n openNotification(args, true, true);\n }\n },\n };\n // if (cachedNotify[args.tx]) {\n // toast.update(cachedNotify[args.tx], { ...toastConfig, render: toastDom });\n // } else {\n const id = toast(toastDom, toastConfig);\n args.tx && (cachedNotify[args.tx] = id.toString());\n // }\n },\n [isMobile, t, deviceType, dataTheme, togglePnlShareModal],\n );\n\n return openNotification;\n};\n","import './TradeFormDetails.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport { Side } from '@synfutures/sdks-perp';\nimport { Spin } from 'antd';\nimport classNames from 'classnames';\nimport { memo, useMemo, useState } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { ReactComponent as ChevronDown } from '@/assets/svg/icon_chevron_down.svg';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { formatPercentage } from '@/components/NumberFormat';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedQuote } from '@/entities/WrappedQuote';\nimport { useGlobalConfig } from '@/features/global/hooks';\nimport { useTokenPrice } from '@/features/global/query';\nimport { useMarketFormState } from '@/features/trade/hooks';\nimport { ISimulationData } from '@/types/trade';\nimport { formatNumber } from '@/utils/numberUtil';\n\ninterface IProps {\n isLoading: boolean;\n tradeSide?: Side;\n marginToken: WrappedQuote | undefined;\n simulation: ISimulationData | undefined;\n fairPrice?: WrappedBigNumber;\n chainId: CHAIN_ID | undefined;\n detailToggle?: boolean;\n extraTitle?: React.ReactNode;\n}\nexport default function TradeFormDetailsComponent({\n isLoading,\n simulation,\n marginToken,\n fairPrice,\n chainId,\n tradeSide,\n detailToggle,\n extraTitle,\n}: IProps): JSX.Element | null {\n const { t } = useTranslation();\n const { isMobile } = useMediaQueryDevice();\n const tokenPriceInfo = useTokenPrice({ chainId, tokenAddress: marginToken?.address });\n const [showDetail, setShowDetail] = useState(true);\n const { slippage } = useGlobalConfig(chainId);\n const { marginAmount } = useMarketFormState(chainId);\n const priceImpactPrice = useMemo(() => {\n if (fairPrice && simulation?.priceChangeRate) {\n return fairPrice.mul(simulation?.priceChangeRate.add(1));\n }\n }, [fairPrice, simulation?.priceChangeRate]);\n\n const tradeFeeUSD = useMemo(() => {\n if (tokenPriceInfo?.current && simulation?.tradingFee) {\n return WrappedBigNumber.from(simulation?.tradingFee).mul(tokenPriceInfo?.current);\n }\n return WrappedBigNumber.ZERO;\n }, [simulation?.tradingFee, tokenPriceInfo]);\n\n // const additionalFeeUSD = useSimulationAdditionalFeeUSD(simulation, marginToken?.price);\n\n if (!simulation) {\n return null;\n }\n\n return (\n \n
\n {detailToggle && (\n
setShowDetail(!showDetail)}>\n {t('common.details')}\n \n
\n )}\n {extraTitle}\n {showDetail && (\n
\n {!isMobile && simulation.margin.gt(0) && !marginAmount && (\n
\n
\n {isMobile ? (\n t('common.marginRequired')\n ) : (\n \n {t('common.marginRequired')}\n \n )}\n
\n
\n
{simulation.margin.formatNumberWithTooltip({ suffix: marginToken?.symbol })}
\n
\n )}\n {simulation?.realized?.notEq(0) && (\n
\n
{t('common.tradeFormDetails.estPnl')}
\n
\n
\n \n {simulation.realized.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '≈',\n suffix: marginToken?.symbol,\n isShowApproximatelyEqualTo: false,\n })}\n \n
\n
\n )}\n
\n
\n {isMobile ? (\n t('common.tradeFormDetails.pi')\n ) : (\n \n {t('common.tradeFormDetails.pi')}\n \n )}\n {/* */}\n
\n
\n
\n \n {formatPercentage({\n percentage: WrappedBigNumber.from(simulation?.priceChangeRate).toNumber(),\n colorShader: false,\n withThreshHold: true,\n })}\n ({priceImpactPrice?.formatPriceNumberWithTooltip()})\n \n
\n
\n
\n
{t('common.tradeFormDetails.estTV')}
\n
\n
\n {simulation.estimatedTradeValue?.formatNumberWithTooltip({\n suffix: marginToken?.symbol,\n })}\n
\n
\n
\n
{t('common.tradeFormDetails.fee')}
\n
\n
\n \n {tradeFeeUSD.gte(0.001) && ` ≈ `}\n {tradeFeeUSD?.formatNumberWithTooltip({\n prefix: '$',\n colorShader: false,\n isShowApproximatelyEqualTo: tradeFeeUSD.gte(0.0001),\n })}\n \n
\n
\n {/* {simulation?.additionalFee?.gt(0) && (\n <>\n
\n
\n {' '}\n {isMobile ? (\n t('common.tradeFormDetails.additionalFee')\n ) : (\n \n {t('common.tradeFormDetails.additionalFee')}\n \n )}\n
\n
\n
\n \n {additionalFeeUSD.gte(0.001) && ` ≈ `}\n {additionalFeeUSD?.formatNumberWithTooltip({\n prefix: '$',\n colorShader: false,\n isShowApproximatelyEqualTo: additionalFeeUSD.gte(0.0001),\n })}\n \n
\n
\n \n )} */}\n
\n
{t('common.tradeFormDetails.maxSlippage')}
\n
\n
\n \n \n }>\n {WrappedBigNumber.from(slippage).formatPercentage({ hundredfold: false, colorShader: false })}\n \n \n
\n
\n
\n )}\n
\n
\n );\n}\nexport const TradeFormDetails = memo(TradeFormDetailsComponent);\n","/**\n * @description Component-TradeFormAlert\n */\nimport './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport React, { FC, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/Alert';\nimport I18nTrans from '@/components/I18nTrans';\nimport { SLIPPAGE_THRESHOLDS } from '@/constants/global';\nimport { ERROR_MSG_EXCEED_WALLET_BALANCE, ERROR_MSG_IMR } from '@/constants/simulation';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedQuote } from '@/entities/WrappedQuote';\nimport { useAvailableTokenBalance, useTokenBalance } from '@/features/balance/hook';\nimport { useNativeToken } from '@/features/chain/hook';\nimport { useGlobalConfig } from '@/features/global/hooks';\nimport { useCurrentPairByDevice } from '@/features/pair/hook';\nimport {\n useCanPlaceCrossMarketOrder,\n useCrossMarketSimulation,\n useLimitSimulation,\n useScaleSimulation,\n useSimulationAdditionalFeeUSD,\n} from '@/features/trade/hooks';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useDappChainConfig } from '@/hooks/web3/useChain';\nimport { ISimulation } from '@/types/trade';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\nimport { isNativeTokenAddr, isWrappedNativeToken } from '@/utils/token';\ninterface IPropTypes {\n chainId: CHAIN_ID | undefined;\n marginToken: WrappedQuote | undefined;\n tradeType: TRADE_TYPE;\n isClosing?: boolean;\n onMaxBalanceClick?: (balance: WrappedBigNumber) => void;\n onNativeTokenDepositClick?: (balance: WrappedBigNumber) => void;\n tradeSimulation: ISimulation | undefined;\n}\nconst TradeFormAlert: FC = function ({\n chainId,\n marginToken,\n tradeType,\n onMaxBalanceClick,\n onNativeTokenDepositClick,\n isClosing,\n tradeSimulation,\n}) {\n const { t } = useTranslation();\n const { slippage } = useGlobalConfig(chainId);\n const nativeToken = useNativeToken(chainId);\n const currentPair = useCurrentPairByDevice(chainId);\n const dappConfig = useDappChainConfig(chainId);\n const nativeTokenBalance = useTokenBalance(dappConfig?.nativeToken?.address, dappConfig?.network.chainId, true);\n const availableBalance = useAvailableTokenBalance(marginToken?.address, chainId, true);\n const limitSimulation = useLimitSimulation(chainId);\n const crossMarketSimulation = useCrossMarketSimulation(chainId);\n const scaleLimitSimulation = useScaleSimulation(chainId);\n const canPlaceCrossMarketOrder = useCanPlaceCrossMarketOrder(chainId);\n\n const simulation = useMemo(() => {\n if (tradeType === TRADE_TYPE.LIMIT) {\n return canPlaceCrossMarketOrder ? crossMarketSimulation : limitSimulation;\n }\n if (tradeType === TRADE_TYPE.SCALE_LIMIT) {\n return scaleLimitSimulation;\n }\n return tradeSimulation;\n }, [\n canPlaceCrossMarketOrder,\n crossMarketSimulation,\n limitSimulation,\n scaleLimitSimulation,\n tradeSimulation,\n tradeType,\n ]);\n const insufficientWalletBalanceMsg = useMemo(() => {\n if (simulation?.message === ERROR_MSG_EXCEED_WALLET_BALANCE.errorData) {\n let maxBalanceTip;\n if (onMaxBalanceClick && availableBalance.gte(simulation.data?.margin || 0)) {\n maxBalanceTip = (\n {\n onMaxBalanceClick && onMaxBalanceClick(availableBalance);\n }}>\n {t('common.useMax')} {availableBalance.formatNumberWithTooltip({ suffix: marginToken?.symbol })}\n \n );\n }\n if (chainId && isWrappedNativeToken(chainId, marginToken?.address || '')) {\n maxBalanceTip = (\n
\n {\n onNativeTokenDepositClick && onNativeTokenDepositClick(availableBalance);\n }}>\n {t('common.depositForm.wantSwap', {\n nativeSymbol: nativeToken?.symbol,\n wrapSymbol: marginToken?.symbol,\n })}\n \n
\n );\n }\n\n return (\n <>\n {t(simulation?.message || '')}. \n {maxBalanceTip}\n \n );\n }\n }, [\n simulation?.data?.margin,\n simulation?.message,\n onMaxBalanceClick,\n availableBalance,\n chainId,\n marginToken?.address,\n marginToken?.symbol,\n t,\n nativeToken?.symbol,\n onNativeTokenDepositClick,\n ]);\n\n const errMsg = useMemo(() => {\n if (simulation?.message === ERROR_MSG_EXCEED_WALLET_BALANCE.errorData) {\n return insufficientWalletBalanceMsg;\n }\n if (\n (tradeType === TRADE_TYPE.CLOSE_POSITION || isClosing) &&\n simulation?.message === 'Insufficient margin to open position'\n ) {\n return t('errors.trade.insuffBalToClosePosition');\n }\n return t(simulation?.errorData || simulation?.message || '');\n }, [insufficientWalletBalanceMsg, isClosing, simulation?.errorData, simulation?.message, t, tradeType]);\n\n // const { isShowVaultChange } = useSimulationBalanceChange(chainId, marginToken);\n\n const walletConnectStatus = useWalletConnectStatus();\n\n const needHide = useMemo(() => false, []);\n\n const isShowSimulateError = useMemo(() => {\n return errMsg && !needHide;\n }, [errMsg, needHide]);\n\n const additionalFeeUSD = useSimulationAdditionalFeeUSD(tradeSimulation?.data, marginToken?.price);\n const isShowAdditionalFee = useMemo(() => {\n return tradeSimulation?.data?.additionalFee.gt(0);\n }, [tradeSimulation?.data?.additionalFee]);\n\n // is price impact warning\n const isShowPriceImpactWarning = useMemo(() => {\n return (\n currentPair?.rootInstrument.setting.maintenanceMarginRatio &&\n tradeSimulation?.data?.priceChangeRate?.abs().gte(currentPair?.mmr)\n );\n }, [\n currentPair?.mmr,\n currentPair?.rootInstrument.setting.maintenanceMarginRatio,\n tradeSimulation?.data?.priceChangeRate,\n ]);\n\n const isShowNativeTokenBalanceWarning = useMemo(() => {\n if (\n walletConnectStatus !== WALLET_CONNECT_STATUS.UN_CONNECT &&\n nativeTokenBalance &&\n isNativeTokenAddr(marginToken?.address || '')\n ) {\n if (nativeTokenBalance.lte(dappConfig?.minNativeTokenKeep || 0)) {\n return true;\n }\n\n return false;\n }\n }, [walletConnectStatus, nativeTokenBalance, marginToken?.address, dappConfig?.minNativeTokenKeep]);\n\n const isShowSlippageHighAlert = useMemo(() => {\n return tradeType !== TRADE_TYPE.LIMIT && WrappedBigNumber.from(slippage).gte(SLIPPAGE_THRESHOLDS.HIGH);\n }, [slippage, tradeType]);\n\n const isShowWarning = useMemo(() => {\n if (isShowSimulateError) return false;\n\n return (\n isShowPriceImpactWarning || isShowAdditionalFee || isShowNativeTokenBalanceWarning || isShowSlippageHighAlert\n );\n }, [\n isShowAdditionalFee,\n isShowSimulateError,\n isShowNativeTokenBalanceWarning,\n isShowPriceImpactWarning,\n isShowSlippageHighAlert,\n ]);\n\n const isShowDepositInfo = useMemo(() => {\n const margin = simulation?.data?.marginToDeposit;\n return !simulation?.message && margin && !margin.eq(0);\n }, [simulation?.data?.marginToDeposit, simulation?.message]);\n\n const depositInfo = useMemo(() => {\n const margin = WrappedBigNumber.from(simulation?.data?.marginToDeposit || 0);\n if (isShowDepositInfo) {\n return (\n }}\n />\n }\n type=\"info\"\n showIcon\n />\n );\n }\n }, [isShowDepositInfo, marginToken?.symbol, simulation?.data?.marginToDeposit, t]);\n\n // const vaultChangeInfo = useMemo(() => {\n // const margin = WrappedBigNumber.from(simulation?.data?.margin || 0).min(simulation?.data?.marginToDeposit || 0);\n // let i18Key = 'errors.trade.depositInfoVault';\n // if (vaultBalanceAfter && vaultBalanceBefore?.gt(vaultBalanceAfter)) {\n // i18Key = 'errors.trade.depositInfoVaultOut';\n // }\n // if (isShowVaultChange && margin && !margin.eq(0)) {\n // return (\n // }}\n // />\n // }\n // type=\"info\"\n // showIcon\n // />\n // );\n // }\n // }, [\n // isShowVaultChange,\n // marginToken?.symbol,\n // simulation?.data?.margin,\n // simulation?.data?.marginToDeposit,\n // t,\n // vaultBalanceAfter,\n // vaultBalanceBefore,\n // ]);\n\n const isShowInfo = useMemo(() => {\n return isShowDepositInfo;\n }, [isShowDepositInfo]);\n\n if (!isShowSimulateError && !isShowWarning && !isShowInfo) return null;\n return (\n
\n {isShowSimulateError && simulation?.message !== ERROR_MSG_IMR ? (\n } type=\"error\" showIcon>\n ) : (\n <>\n {isShowPriceImpactWarning && (\n }}\n />\n }\n type=\"warning\"\n showIcon>\n )}\n {isShowAdditionalFee && (\n }}\n />\n }\n type=\"error\"\n showIcon>\n )}\n {isShowNativeTokenBalanceWarning && (\n }}\n />\n }\n type=\"info\"\n showIcon>\n )}\n {isShowSlippageHighAlert && (\n \n )}\n {isShowDepositInfo && depositInfo}\n {/* {!isShowDepositInfo && isShowVaultChange && vaultChangeInfo} */}\n \n )}\n
\n );\n};\n\nexport default React.memo(TradeFormAlert);\n","/**\n * @description Component-TradeAdjustClose\n */\nimport './index.less';\n\nimport { Side } from '@synfutures/sdks-perp';\nimport { useDebounceFn } from 'ahooks';\nimport { Spin } from 'antd';\nimport classNames from 'classnames';\nimport { FC, useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as ArrowRight } from '@/assets/svg/arrow-right.svg';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\n// import Card from '@/components/Card';\nimport { FormInput } from '@/components/FormInput';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { AvailableBalance } from '@/components/ToolTip/AvailableBalanceToolTip';\n// import { Message } from '@/components/Message';\nimport WrappedButton from '@/components/WrappedButton';\nimport { FETCHING_STATUS, ZERO } from '@/constants';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useGlobalConfig, useIsIpBlocked } from '@/features/global/hooks';\nimport { useCurrentPairByDevice } from '@/features/pair/hook';\nimport {\n resetClosePositionForm,\n resetFormByChainId,\n setClosePositionFormAmount,\n setPnlShare,\n simulateMarketClosePosition,\n switchToMarketTab,\n trade,\n} from '@/features/trade/actions';\nimport {\n useCloseFormStatus,\n useClosePositionFormState,\n useCloseSimulation,\n useCloseSimulationStatus,\n useMarketFormStateStatus,\n useTradeDrawerType,\n useTradeMaxLeverage,\n useTradeType,\n} from '@/features/trade/hooks';\nimport { useAppProvider, useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useGa } from '@/hooks/useGa';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport PercentageSelector from '@/pages/components/PercentageSelector/PercentageSelector';\nimport WalletCardWrapper from '@/pages/components/WalletStatus/WalletCardWrapper';\nimport { GaCategory } from '@/utils/analytics';\nimport { inputNumChecker, toBN, toWad } from '@/utils/numberUtil';\n\n// import { ReactComponent as CloseIcon } from '../assets/close_icon.svg';\nimport { usePnlShareNotification } from '@/components/PnlShareNotification';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport TradeEarnTabs from '@/pages/components/Tabs/TradeEarnTabs';\nimport { IPnlParams } from '@/types/trade';\nimport { TradeFormDetails } from '../TradeDetail/TradeFormDetails';\nimport TradeFormAlert from '../TradeFormAlert';\ninterface IPropTypes {\n onClose?: () => void;\n}\nconst TradeClose: FC = function ({ onClose }) {\n const { isMobile, deviceType } = useMediaQueryDevice();\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n // const { priceBasisForPnl } = usePriceBasisForPnl();\n const pnlShare = usePnlShareNotification();\n const userAddr = useUserAddr();\n const provider = useAppProvider();\n const { t } = useTranslation();\n const gaEvent = useGa();\n const closePositionFormState = useClosePositionFormState(chainId);\n const closeFormStatus = useCloseFormStatus(chainId);\n const tradeType = useTradeType(chainId);\n const drawerType = useTradeDrawerType(chainId);\n const ipBlocked = useIsIpBlocked();\n const tradeTypeInDevice = useMemo(() => {\n return isMobile ? drawerType : tradeType;\n }, [drawerType, isMobile, tradeType]);\n const currentPair = useCurrentPairByDevice(chainId);\n const maxLeverage = useTradeMaxLeverage(currentPair?.maxLeverage);\n const sdk = useSDK(chainId);\n const signer = useWalletSigner();\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const { slippage, deadline } = useGlobalConfig(chainId);\n const marketFormStatus = useMarketFormStateStatus(chainId);\n const isLoading = useMemo(\n () => closeFormStatus === FETCHING_STATUS.FETCHING || marketFormStatus === FETCHING_STATUS.FETCHING,\n [closeFormStatus, marketFormStatus],\n );\n const closeSimulation = useCloseSimulation(chainId);\n const closeSimulationStatus = useCloseSimulationStatus(chainId);\n const closeSection = useCallback(() => {\n chainId &&\n dispatch(\n resetFormByChainId({\n chainId,\n }),\n );\n }, [chainId, dispatch]);\n const inputAmountStrChanged = useCallback(\n (inputAmountStr: string) => {\n if (Number(inputAmountStr) > 0 && currentPosition?.wrappedSize) {\n if (currentPosition?.wrappedSize.abs().lt(Number(inputAmountStr))) {\n inputAmountStr = currentPosition?.wrappedSize.abs().toString();\n }\n }\n\n if (chainId) {\n dispatch(\n setClosePositionFormAmount({\n chainId,\n amount: inputAmountStr,\n }),\n );\n }\n },\n [chainId, currentPosition?.wrappedSize, dispatch],\n );\n const percentageChange = useCallback(\n (percentage: number) => {\n let alignPercent = percentage;\n if (percentage > 100) {\n alignPercent = 100;\n }\n const amount = currentPosition?.wrappedSize.abs().mul(alignPercent).div(100).stringValue;\n console.log('🚀 ~ file: index.tsx:62 ~ amount:', { amount, size: currentPosition?.wrappedSize });\n amount && inputAmountStrChanged(amount);\n },\n [inputAmountStrChanged, currentPosition],\n );\n const percentage = useMemo(() => {\n return inputNumChecker(\n WrappedBigNumber.from(closePositionFormState.amount || 0)\n .div(currentPosition?.wrappedSize || 1)\n .mul(100).stringValue,\n currentPosition?.rootInstrument.marginToken.decimals,\n );\n }, [closePositionFormState.amount, currentPosition]);\n const marginTokenAmount = useMemo(() => {\n return ZERO;\n }, []);\n\n const tradeSide = useMemo(() => {\n return currentPosition?.side === Side.LONG ? Side.SHORT : Side.LONG;\n }, [currentPosition?.side]);\n\n const onClickCloseButton = useCallback(async () => {\n if (\n closePositionFormState.amount &&\n !toBN(closePositionFormState.amount).eq(0) &&\n chainId &&\n userAddr &&\n closePositionFormState.amount &&\n signer &&\n sdk &&\n currentPair &&\n tradeSide &&\n provider\n ) {\n // const adjustTradeSide = getAdjustTradeSide(tradeSide, currentPair.isInverse);\n const adjustTradeSide = tradeSide;\n try {\n if (closeSimulation?.data) {\n const positionLeverage = currentPosition?.wrapAttribute('leverageWad');\n const positionSide = Side[currentPosition?.wrappedSide || Side.FLAT].toString();\n const positionAveragePrice = currentPosition?.wrapAttribute('entryPrice');\n const pnlRatio = closeSimulation.data.realized\n .div(closeSimulation.data.estimatedTradeValue || 1)\n .mul(positionLeverage || 1);\n const result = await dispatch(\n trade({\n chainId,\n userAddr,\n signer,\n sdk: sdk,\n pair: currentPair,\n side: adjustTradeSide,\n baseAmount: toWad(closePositionFormState.amount),\n slippage: Number(slippage),\n deadline: Number(deadline),\n tradePrice: closeSimulation?.data?.tradePrice,\n simulation: closeSimulation,\n provider,\n }),\n ).unwrap();\n if (result) {\n dispatch(resetClosePositionForm({ chainId }));\n dispatch(resetFormByChainId({ chainId }));\n dispatch(switchToMarketTab({ chainId }));\n gaEvent({\n category: GaCategory.TRADE_PAIR_CARD_WRAPPER,\n action: `Trade-Click on ${tradeSide === Side.LONG ? 'Buy' : 'Sell'}`,\n label: {\n position: (tradeSide === Side.LONG ? '' : '-') + closePositionFormState.amount,\n pairName: currentPair.symbol,\n side: tradeSide === Side.LONG ? 'Buy' : 'Sell',\n tradeType,\n },\n });\n if (result.status === 1 && currentPosition) {\n const pnlParams = {\n chainId,\n tradePrice: WrappedBigNumber.from(closeSimulation?.data?.tradePrice),\n averagePrice: positionAveragePrice,\n pair: currentPair,\n pnl: closeSimulation.data.realized,\n pnlRatio,\n leverage: positionLeverage,\n side: positionSide,\n tx: result?.transactionHash,\n } as IPnlParams;\n dispatch(setPnlShare(pnlParams));\n pnlShare(pnlParams);\n }\n\n onClose && onClose();\n }\n }\n } catch (e) {\n console.log('🚀 ~ file: index.tsx ~ line 106 ~ onClickTradeButton ~ e', e);\n }\n }\n }, [\n closePositionFormState.amount,\n chainId,\n userAddr,\n signer,\n sdk,\n currentPair,\n tradeSide,\n provider,\n closeSimulation,\n dispatch,\n slippage,\n deadline,\n currentPosition,\n // priceBasisForPnl,\n pnlShare,\n gaEvent,\n tradeType,\n onClose,\n ]);\n const fetchSimulation = useCallback(() => {\n if (chainId && currentPosition && sdk && userAddr) {\n // const adjustTradeSide = getAdjustTradeSide(tradeSide, currentPair?.isInverse || false);\n const adjustTradeSide = tradeSide;\n // if the position size is 0, we don't need to simulate\n if (currentPosition.size.eq(0)) {\n return;\n }\n\n dispatch(\n simulateMarketClosePosition({\n chainId,\n sdkContext: sdk,\n base: closePositionFormState.amount,\n position: currentPosition,\n tradeSide: adjustTradeSide,\n slippage: Number(slippage),\n userAddr,\n maxLeverage,\n }),\n );\n }\n }, [\n chainId,\n currentPosition,\n sdk,\n userAddr,\n tradeSide,\n dispatch,\n closePositionFormState.amount,\n slippage,\n maxLeverage,\n ]);\n const { run: simulateTradeDebounced } = useDebounceFn(\n () => {\n fetchSimulation();\n },\n { wait: 500 },\n );\n useEffect(() => {\n tradeTypeInDevice === TRADE_TYPE.CLOSE_POSITION && simulateTradeDebounced();\n }, [\n closePositionFormState.amount,\n simulateTradeDebounced,\n tradeSide,\n currentPair?.fairPrice._hex,\n tradeTypeInDevice,\n ]);\n useEffect(() => {\n percentageChange(100);\n // no deps\n }, []);\n return (\n \n \n \n )\n }\n footer={\n \n {t('common.close')} {closeSimulation?.data ? `@ ` : ''}{' '}\n {closeSimulation?.data\n ? WrappedBigNumber.from(closeSimulation.data.tradePrice).formatPriceNumberWithTooltip()\n : ''}\n \n }>\n
\n
{t('common.size')}
\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n step: 1e18,\n }}\n className=\"trade-form-content-input\"\n inputAmountStr={closePositionFormState.amount || ''}\n inputAmountStrChanged={inputAmountStrChanged}\n suffix={currentPair?.rootInstrument.baseToken.symbol}\n />\n \n \n
\n {isMobile && (\n
\n
\n
{t('common.leverage')}
\n
\n
\n \n {!closeSimulation?.data\n ? currentPosition?.wrapAttribute('leverageWad').formatLeverageWithTooltip()\n : ''}\n {closeSimulation?.data && (\n <>\n {currentPosition?.wrapAttribute('leverageWad').formatLeverageWithTooltip()}\n \n {WrappedBigNumber.from(\n closeSimulation.data.simulationMainPosition.leverageWad,\n )?.formatLeverageWithTooltip()}\n \n )}\n \n
\n
\n
\n )}\n {closeSimulation?.data && (\n \n \n \n )}\n \n {/* {closeSimulation?.message && } */}\n \n );\n};\n\nexport default TradeClose;\n","/**\n * @description Component-TradePositionMobile\n */\nimport './index.less';\n\nimport { Side } from '@synfutures/sdks-perp';\nimport classNames from 'classnames';\nimport { FC, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { SocialLossAlert } from '@/components/Alert/SocialLossAlert';\nimport { Button } from '@/components/Button';\nimport Drawer from '@/components/Drawer';\nimport Empty from '@/components/Empty';\nimport { Skeleton } from '@/components/Skeleton';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { usePnlShareModal, useTheme } from '@/features/global/hooks';\nimport { useCurrentPairFromUrl, usePairDisabledForLimit } from '@/features/pair/hook';\nimport { useIsFetchedSinglePortfolio } from '@/features/portfolio/hook';\nimport { setTradeDrawerType } from '@/features/trade/actions';\nimport { useTradeDrawerType } from '@/features/trade/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport useReverseLimitOrderInput from '@/hooks/trade/useReverseLimitOrderInput';\nimport { usePriceBasisForPnl } from '@/hooks/usePriceBasisForPnl';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport TradeSide from '@/pages/components/TradeSide';\nimport TradeAdjust from '@/pages/trade/TradeCard/TradeForm/TradeAdjust';\nimport TradeClose from '@/pages/trade/TradeCard/TradeForm/TradeClose';\n\ninterface IPropTypes {\n className?: string;\n}\nconst TradePositionMobile: FC = function () {\n const { priceBasisForPnl } = usePriceBasisForPnl();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { dataTheme } = useTheme();\n const currentPair = useCurrentPairFromUrl(chainId);\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const drawerType = useTradeDrawerType(chainId);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const isFetchedPortfolio = useIsFetchedSinglePortfolio(\n chainId,\n userAddr,\n currentPair?.instrumentAddr,\n currentPair?.expiry,\n );\n\n const { togglePnlShareModal } = usePnlShareModal();\n const reverseLimitOrderInput = useReverseLimitOrderInput(currentPosition);\n\n const { inDisabledPairs } = usePairDisabledForLimit(currentPair);\n\n const closePosition = useCallback(() => {\n if (drawerType !== TRADE_TYPE.CLOSE_POSITION) {\n chainId &&\n dispatch(\n setTradeDrawerType({\n chainId,\n tradeType: TRADE_TYPE.CLOSE_POSITION,\n }),\n );\n }\n }, [chainId, dispatch, drawerType]);\n const adjust = useCallback(() => {\n if (drawerType !== TRADE_TYPE.ADJUST_MARGIN) {\n chainId &&\n dispatch(\n setTradeDrawerType({\n chainId,\n tradeType: TRADE_TYPE.ADJUST_MARGIN,\n }),\n );\n }\n }, [chainId, dispatch, drawerType]);\n const closeDrawer = useCallback(() => {\n chainId &&\n dispatch(\n setTradeDrawerType({\n chainId,\n tradeType: undefined,\n }),\n );\n }, [chainId, dispatch]);\n if (!isFetchedPortfolio) {\n return (\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n );\n }\n return (\n \n {!currentPosition || currentPosition?.wrappedSize.eq(0) ? (\n \n ) : (\n <>\n \n
\n \n !inDisabledPairs && reverseLimitOrderInput()} style={{ display: 'flex', gap: 4 }}>\n \n \n {currentPosition.wrapAttribute('size').formatNumberWithTooltip({\n suffix: currentPair?.rootInstrument.baseToken.symbol,\n isShowTBMK: true,\n })}\n
\n \n \n {currentPosition?.sizeInQuoteToken.formatNumberWithTooltip({\n prefix: '≈ ',\n suffix: currentPosition.rootInstrument.quoteToken.symbol,\n isShowTBMK: true,\n })}\n \n \n
\n \n \n \n
\n \n
\n
\n
{t('mobile.leverage')}
\n
{currentPosition.wrapAttribute('leverageWad').formatLeverageWithTooltip()}
\n
\n
\n
{t('mobile.liqP')}
\n
{currentPosition.wrapAttribute('liquidationPrice').formatLiqPriceNumberWithTooltip()}
\n
\n
\n
{t('mobile.avgP')}
\n
{currentPosition.wrapAttribute('entryPrice').formatPriceNumberWithTooltip()}
\n
\n
\n
\n
\n
\n {t('mobile.margin')} ({currentPair?.rootInstrument.marginToken.symbol})\n
\n
{currentPosition.equity.formatNumberWithTooltip()}
\n
\n
\n
{t('mobile.unrealPnl')}
\n
\n {currentPosition.getUnrealizedPositionPnlWithoutFunding(priceBasisForPnl).formatNumberWithTooltip({\n isShowTBMK: true,\n colorShader: true,\n showPositive: true,\n colorSuffix: true,\n isShowApproximatelyEqualTo: false,\n })}\n {currentPosition.equity.gt(0) &&\n currentPosition.getUnrealizedPnlPercentage(priceBasisForPnl).formatPercentage({\n decimals: 2,\n suffix: ')',\n prefix: '(',\n isHiddenIfZero: true,\n })}\n
\n
\n {currentPair?.isPerpetual && (\n
\n
{t('mobile.unrealFunding')}
\n
\n {currentPosition.wrapAttribute('unrealizedFundingFee').formatNumberWithTooltip({\n isShowTBMK: true,\n colorShader: true,\n showPositive: true,\n colorSuffix: true,\n isShowApproximatelyEqualTo: false,\n })}\n
\n
\n )}\n
\n {\n if (open) {\n if (drawerType === TRADE_TYPE.ADJUST_MARGIN) {\n }\n }\n }}\n onClose={closeDrawer}>\n {drawerType === TRADE_TYPE.ADJUST_MARGIN && }\n {drawerType === TRADE_TYPE.CLOSE_POSITION && }\n \n \n )}\n \n );\n};\n\nexport default TradePositionMobile;\n","/**\n * @description Component-TradeMobileProfile\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { GlobalModalType } from '@/constants';\nimport { PAIR_PAGE_TYPE, TABLE_TYPES } from '@/constants/global';\nimport { HISTORY_TYPE } from '@/constants/history';\nimport { OPEN_ORDER_QUERY_KEY } from '@/constants/trade';\nimport { useWrappedOrderList } from '@/features/account/orderHook';\nimport { useIsIpBlocked, useToggleModal } from '@/features/global/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { setIsChosenOrder } from '@/features/trade/actions';\nimport { useTradePortfolioTab } from '@/features/trade/hooks';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { ReactComponent as IconLastTrade } from '@/pages/mobile/assets/svg/icon_last_trade_hover.svg';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\n\nimport { Button } from '@/components/Button';\nimport SynTitleTabs from '@/components/Tabs/SynTitleTabs';\nimport { useWrappedRangeList } from '@/features/account/rangeHook';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { setTradePortfolioTab } from '@/features/trade/slice';\nimport EarnHistoryDrawer from '../../EarnMobile/EarnHistoryDrawer';\nimport EarnLiquiditiesMobile from '../../EarnMobileSubpage/EarnLiquiditiesMobile';\nimport TradeHistoryDrawer from '../../TradeMobile/TradeHistoryDrawer';\nimport TradeOrdersMobile from '../../TradeMobile/TradeOrdersMobile';\nimport TradePositionMobile from '../../TradeMobile/TradePositionMobile';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n type?: PAIR_PAGE_TYPE;\n}\nconst MobileProfile: FC = function ({ type = PAIR_PAGE_TYPE.TRADE }) {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const tabPosition = useTradePortfolioTab();\n const currentPair = useCurrentPairFromUrl(chainId);\n const [historyOpen, setHistoryOpen] = useState(false);\n const [historyType, setHistoryType] = useState(HISTORY_TYPE.TRADE);\n const walletConnectStatus = useWalletConnectStatus();\n const toggleWalletModal = useToggleModal(GlobalModalType.Wallet);\n const isIpBlocked = useIsIpBlocked();\n const openOrders = useWrappedOrderList(chainId, userAddr, currentPair?.id);\n const rangeList = useWrappedRangeList(chainId, userAddr, currentPair?.id);\n\n const dappConfig = useBackendChainConfig(chainId);\n const items = useMemo(() => {\n const res: { key: string; label: React.ReactNode }[] =\n type === PAIR_PAGE_TYPE.TRADE\n ? ([\n {\n key: TABLE_TYPES.POSITION,\n label: t('common.position'),\n },\n dappConfig?.trade?.isDisableLimitOrder\n ? undefined\n : {\n key: TABLE_TYPES.OPEN_ORDERS,\n label: (\n \n {t('common.tradePage.openO')}\n {!!openOrders?.length && (\n
{openOrders?.length || 0}
\n )}\n \n ),\n },\n ].filter((t) => t !== undefined) as { key: string; label: React.ReactNode; children: React.ReactNode }[])\n : [\n {\n key: TABLE_TYPES.LIQUIDITY,\n label: (\n \n {t('common.earn.myLiq')}\n {!!rangeList?.length &&
{rangeList?.length || 0}
}\n \n ),\n },\n ];\n\n return res;\n }, [type, t, dappConfig?.trade?.isDisableLimitOrder, tabPosition, openOrders?.length, rangeList?.length]);\n\n const onChange = useCallback(\n (e: string) => {\n console.log('🚀 ~ file: index.tsx:53 ~ onChange ~ e:', e);\n chainId && dispatch(setTradePortfolioTab({ tab: e as TABLE_TYPES, chainId }));\n },\n [chainId, dispatch],\n );\n\n useEffect(() => {\n if (chainId) {\n dispatch(setIsChosenOrder({ isChosenOrder: false, chainId }));\n }\n // only depend on these\n }, [tabPosition, dispatch, chainId]);\n useEffect(() => {\n if (type === PAIR_PAGE_TYPE.TRADE) {\n if (localStorage.getItem(OPEN_ORDER_QUERY_KEY)) {\n onChange(TABLE_TYPES.OPEN_ORDERS);\n if (currentPair) {\n setTimeout(() => {\n localStorage.setItem(OPEN_ORDER_QUERY_KEY, '');\n }, 0);\n }\n } else {\n onChange(TABLE_TYPES.POSITION);\n }\n } else {\n onChange(TABLE_TYPES.LIQUIDITY);\n }\n // only depend on this\n }, [currentPair, onChange, type]);\n\n return (\n
\n
\n \n {\n if (walletConnectStatus === WALLET_CONNECT_STATUS.UN_CONNECT) {\n toggleWalletModal();\n return;\n }\n setHistoryOpen(true);\n if (tabPosition === TABLE_TYPES.LIQUIDITY) {\n return;\n }\n if (tabPosition === TABLE_TYPES.OPEN_ORDERS) {\n setHistoryType(HISTORY_TYPE.ORDERS);\n } else {\n setHistoryType(HISTORY_TYPE.TRADE);\n }\n }}\n type=\"text\">\n \n \n
\n {tabPosition === TABLE_TYPES.POSITION && }\n {tabPosition === TABLE_TYPES.OPEN_ORDERS && }\n {tabPosition === TABLE_TYPES.LIQUIDITY && }\n\n {type === PAIR_PAGE_TYPE.TRADE ? (\n setHistoryOpen(false)} />\n ) : (\n setHistoryOpen(false)} />\n )}\n
\n );\n};\n\nexport default MobileProfile;\n","import './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport React, { ReactNode, useMemo } from 'react';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useMarketPairInfo } from '@/features/futures/hooks';\nimport { formatNumber } from '@/utils/numberUtil';\n\nfunction Change24({\n loadingWrap,\n isMobile,\n chainId,\n priceChange24h,\n instrumentAddr,\n expiry,\n}: {\n loadingWrap?: ReactNode;\n isMobile?: boolean;\n chainId: CHAIN_ID | undefined;\n priceChange24h?: WrappedBigNumber;\n instrumentAddr: string | undefined;\n expiry: number | undefined;\n}): JSX.Element {\n const marketPairInfo = useMarketPairInfo(chainId, instrumentAddr, expiry, priceChange24h == undefined);\n const change24 = useMemo(() => {\n let change: number | undefined = undefined;\n\n if (priceChange24h) {\n change = priceChange24h.toNumber();\n }\n\n if (marketPairInfo?.fairPriceChange24h) {\n change = marketPairInfo?.fairPriceChange24h.toNumber();\n }\n // if (pairStats?.priceChange24h) {\n // change = WrappedBigNumber.from(pairStats?.priceChange24h || 0).toNumber();\n // }\n // if (pair?.rootInstrument?.isInverse && change) {\n // change = -change;\n // }\n return change;\n }, [marketPairInfo?.fairPriceChange24h, priceChange24h]);\n\n const changeDisplay = useMemo(() => {\n return change24 !== undefined ? `${change24 > 0 ? '+' : ''}${formatNumber(change24 * 100, 2)}%` : '';\n }, [change24]);\n\n return (\n \n \n {changeDisplay}\n \n \n );\n}\n\nexport default React.memo(Change24);\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconChevronLeft12X24 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 24,\n viewBox: \"0 0 12 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.73214 4.14589C10.2039 4.55024 10.2585 5.26046 9.85416 5.7322L4.48171 12.0001L9.85416 18.2679C10.2585 18.7397 10.2039 19.4499 9.73214 19.8542C9.2604 20.2586 8.55019 20.2039 8.14584 19.7322L2.14584 12.7322C1.78472 12.3109 1.78472 11.6892 2.14584 11.2679L8.14584 4.26792C8.55019 3.79618 9.2604 3.74154 9.73214 4.14589Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconChevronLeft12X24);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_chevron_left_12x24.82f6b59261eede816425f7783257b97a.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconEarnNavChart = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3C4 2.44772 3.55228 2 3 2C2.44772 2 2 2.44772 2 3V21C2 21.5523 2.44772 22 3 22H21C21.5523 22 22 21.5523 22 21C22 20.4477 21.5523 20 21 20H4V3Z\",\n fill: \"#1F292E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.7071 6.29289C19.3166 5.90237 18.6834 5.90237 18.2929 6.29289L14 10.5858L10.7071 7.29289C10.3166 6.90237 9.68342 6.90237 9.29289 7.29289L6.29289 10.2929C5.90237 10.6834 5.90237 11.3166 6.29289 11.7071C6.68342 12.0976 7.31658 12.0976 7.70711 11.7071L10 9.41421L13.2929 12.7071C13.6834 13.0976 14.3166 13.0976 14.7071 12.7071L19.7071 7.70711C20.0976 7.31658 20.0976 6.68342 19.7071 6.29289Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconEarnNavChart);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_earn_nav_chart.81279411335c768625cb1f973e9b12a1.svg\";","var _path, _path2, _path3, _path4;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconEarnNavChartShow = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 3C4 2.44772 3.55228 2 3 2C2.44772 2 2 2.44772 2 3V21C2 21.5523 2.44772 22 3 22H9C9.55228 22 10 21.5523 10 21C10 20.4477 9.55228 20 9 20H4V3Z\",\n fill: \"#1F292E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.7071 6.29289C19.3166 5.90237 18.6834 5.90237 18.2929 6.29289L14 10.5858L10.7071 7.29289C10.3166 6.90237 9.68342 6.90237 9.29289 7.29289L6.29289 10.2929C5.90237 10.6834 5.90237 11.3166 6.29289 11.7071C6.68342 12.0976 7.31658 12.0976 7.70711 11.7071L10 9.41421L13.2929 12.7071C13.6834 13.0976 14.3166 13.0976 14.7071 12.7071L19.7071 7.70711C20.0976 7.31658 20.0976 6.68342 19.7071 6.29289Z\",\n fill: \"#1F292E\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.5 18.5C18.5 18.8978 18.342 19.2794 18.0607 19.5607C17.7794 19.842 17.3978 20 17 20C16.6022 20 16.2206 19.842 15.9393 19.5607C15.658 19.2794 15.5 18.8978 15.5 18.5C15.5 18.1022 15.658 17.7206 15.9393 17.4393C16.2206 17.158 16.6022 17 17 17C17.3978 17 17.7794 17.158 18.0607 17.4393C18.342 17.7206 18.5 18.1022 18.5 18.5Z\",\n fill: \"#1F292E\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17 14C14.2158 14 12.0031 15.743 11.0685 18.1362C10.9772 18.3701 10.9772 18.6299 11.0685 18.8638C12.0031 21.257 14.2158 23 17 23C19.7842 23 21.9969 21.257 22.9315 18.8638C23.0228 18.6299 23.0228 18.3701 22.9315 18.1362C21.9969 15.743 19.7842 14 17 14ZM17 21C15.2572 21 13.8209 20.003 13.0905 18.5C13.8209 16.997 15.2572 16 17 16C18.7428 16 20.1791 16.997 20.9095 18.5C20.1791 20.003 18.7428 21 17 21Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconEarnNavChartShow);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_earn_nav_chart_show.e4671d4227693fdff138c16c56eb0c57.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconTradeNavChart = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8 2C8 1.44772 7.55228 1 7 1C6.44772 1 6 1.44772 6 2V4H4.8C3.80589 4 3 4.80589 3 5.8V14.2C3 15.1941 3.80589 16 4.8 16H6V18C6 18.5523 6.44772 19 7 19C7.55228 19 8 18.5523 8 18V16H9.2C10.1941 16 11 15.1941 11 14.2V5.8C11 4.80589 10.1941 4 9.2 4H8V2ZM9 14V6H5V14H9Z\",\n fill: \"#1F292E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17 5C17.5523 5 18 5.44772 18 6V11H19.2C20.1941 11 21 11.8059 21 12.8V18.2C21 19.1941 20.1941 20 19.2 20H18V22C18 22.5523 17.5523 23 17 23C16.4477 23 16 22.5523 16 22V20H14.8C13.8059 20 13 19.1941 13 18.2V12.8C13 11.8059 13.8059 11 14.8 11H16V6C16 5.44772 16.4477 5 17 5ZM19 18V13H15V18H19Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconTradeNavChart);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_trade_nav_chart.d21ae05e3f7087127e12a189922c1c02.svg\";","var _path, _path2, _path3, _path4;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconTradeNavChartShow = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 2C8 1.44772 7.55228 1 7 1C6.44772 1 6 1.44772 6 2V4H4.8C3.80589 4 3 4.80589 3 5.8V12C3 12.5523 3.44772 13 4 13C4.55228 13 5 12.5523 5 12V6H9V12C9 12.5523 9.44772 13 10 13C10.5523 13 11 12.5523 11 12V5.8C11 4.80589 10.1941 4 9.2 4H8V2Z\",\n fill: \"#1F292E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 5C17.5523 5 18 5.44772 18 6V11H19.2C20.1941 11 21 11.8059 21 12.8V18.2C21 19.1941 20.1941 20 19.2 20H18V22C18 22.5523 17.5523 23 17 23C16.4477 23 16 22.5523 16 22V19C16 18.4477 16.4477 18 17 18H19V13H15V15C15 15.5523 14.5523 16 14 16C13.4477 16 13 15.5523 13 15V12.8C13 11.8059 13.8059 11 14.8 11H16V6C16 5.44772 16.4477 5 17 5Z\",\n fill: \"#1F292E\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.5 18.5C8.5 18.8978 8.34196 19.2794 8.06066 19.5607C7.77936 19.842 7.39782 20 7 20C6.60218 20 6.22064 19.842 5.93934 19.5607C5.65804 19.2794 5.5 18.8978 5.5 18.5C5.5 18.1022 5.65804 17.7206 5.93934 17.4393C6.22064 17.158 6.60218 17 7 17C7.39782 17 7.77936 17.158 8.06066 17.4393C8.34196 17.7206 8.5 18.1022 8.5 18.5Z\",\n fill: \"#1F292E\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7 14C4.21585 14 2.00315 15.743 1.06851 18.1362C0.977162 18.3701 0.977162 18.6299 1.06851 18.8638C2.00315 21.257 4.21585 23 7 23C9.78415 23 11.9969 21.257 12.9315 18.8638C13.0228 18.6299 13.0228 18.3701 12.9315 18.1362C11.9969 15.743 9.78415 14 7 14ZM7 21C5.25722 21 3.82089 20.003 3.09052 18.5C3.82089 16.997 5.25722 16 7 16C8.74278 16 10.1791 16.997 10.9095 18.5C10.1791 20.003 8.74278 21 7 21Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconTradeNavChartShow);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_trade_nav_chart_show.faef5d11ecb7d838e4ebd9277b9c1c3a.svg\";","var _path, _path2, _path3;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconTradeNavInfo = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 11.5C12.5523 11.5 13 11.9477 13 12.5V16C13 16.5523 12.5523 17 12 17C11.4477 17 11 16.5523 11 16V12.5C11 11.9477 11.4477 11.5 12 11.5Z\",\n fill: \"#1F292E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.3055 7.71066C11.5111 7.57331 11.7528 7.5 12 7.5C12.3315 7.5 12.6495 7.6317 12.8839 7.86612C13.1183 8.10054 13.25 8.41848 13.25 8.75C13.25 8.99723 13.1767 9.2389 13.0393 9.44446C12.902 9.65002 12.7068 9.81024 12.4784 9.90485C12.2499 9.99946 11.9986 10.0242 11.7561 9.97598C11.5137 9.92775 11.2909 9.8087 11.1161 9.63388C10.9413 9.45907 10.8223 9.23634 10.774 8.99386C10.7258 8.75139 10.7505 8.50005 10.8452 8.27165C10.9398 8.04324 11.1 7.84801 11.3055 7.71066Z\",\n fill: \"#1F292E\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1 12C1 5.92487 5.92487 1 12 1C18.0751 1 23 5.92487 23 12C23 18.0751 18.0751 23 12 23C5.92487 23 1 18.0751 1 12ZM12 3C7.02944 3 3 7.02944 3 12C3 16.9706 7.02944 21 12 21C16.9706 21 21 16.9706 21 12C21 7.02944 16.9706 3 12 3Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconTradeNavInfo);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_trade_nav_info.d20ea4e3cec0fcb724e104c9e6b4cef7.svg\";","/**\n * @description Component-TradeMobileInfoDrawer\n */\nimport './index.less';\n\nimport React, { FC, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\nimport Drawer from '@/components/Drawer';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport TokenPairOracle from '@/components/TokenPair/TokenPairOracle';\nimport { useCurrentPairFromUrl, usePairInfo } from '@/features/pair/hook';\nimport { useChainId, useEtherscanLink } from '@/hooks/web3/useChain';\n\nimport { ExternalLinkIcon } from '@/components/Link';\nimport TVLWarningIcon from '@/components/TVLWarningIcon';\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { useIsFetchedPairInfo } from '@/features/futures/hooks';\nimport { ReactComponent as InfowIcon } from '@/pages/mobile/assets/svg/icon_trade_nav_info.svg';\nimport { shortenAddress } from '@/utils/address';\nimport classNames from 'classnames';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n type?: PAIR_PAGE_TYPE;\n}\nconst getTable = (elements: ([JSX.Element, JSX.Element] | undefined)[], id: string) => {\n return elements.map(\n (element, i) =>\n element && (\n \n {element[0]}\n {element[1]}\n \n ),\n );\n};\nconst MobileInfoDrawer: FC = function ({ type = PAIR_PAGE_TYPE.TRADE }) {\n const [open, setOpen] = useState(false);\n const chainId = useChainId();\n const currentPair = useCurrentPairFromUrl(chainId);\n const { t } = useTranslation();\n const pairInfo = usePairInfo(currentPair);\n const getEtherscanLink = useEtherscanLink();\n const isFetchedPairInfo = useIsFetchedPairInfo(chainId, currentPair?.instrumentAddr, currentPair?.expiry);\n\n // Statistics\n const poolApy = (\n
\n
{t('common.earn.estPoolApy')}
\n
\n \n {currentPair?.stats?.liquidityApy.formatPercentage({ colorShader: false })}\n \n
\n
\n );\n const tvl = (\n
\n
{t('common.tvl')}
\n
\n \n {currentPair?.tvlUSD.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n })}\n \n \n
\n
\n );\n const indexPrice = (\n
\n
{t('common.indexP')}
\n
\n \n {currentPair?.rootInstrument.wrapAttribute('spotPrice').formatPriceNumberWithTooltip({\n isShowTBMK: true,\n })}\n \n \n {' '}\n \n \n
\n
\n );\n const markPrice = (\n
\n
{t('common.markP')}
\n
\n \n {currentPair?.wrapAttribute('markPrice').formatPriceNumberWithTooltip({\n isShowTBMK: true,\n })}\n \n
\n
\n );\n const fairPrice = (\n
\n
{t('common.fairP')}
\n
\n \n {currentPair?.wrapAttribute('fairPrice').formatPriceNumberWithTooltip({\n isShowTBMK: true,\n })}\n \n
\n
\n );\n // const high24h = (\n //
\n //
{t('common.24HH')}
\n //
\n // {' '}\n // \n // {currentPair?.stats?.high24h && currentPair?.stats?.displayHigh24h.formatPriceNumberWithTooltip()}\n // \n //
\n //
\n // );\n\n // const low24h = (\n //
\n //
{t('common.24HL')}
\n //
\n // \n // {currentPair?.stats?.low24h && currentPair?.stats?.displayLow24h.formatPriceNumberWithTooltip()}\n // \n //
\n //
\n // );\n\n const openInterest = (\n
\n
{t('common.oi')}
\n
\n \n {currentPair?.wrapAttribute('openInterests').formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: currentPair.rootInstrument?.baseToken?.symbol,\n })}\n \n
\n
\n );\n const longOiShortOi = (\n
\n
{t('common.longOiShortOi')}
\n
\n \n {currentPair?.longOpenInterest?.formatNumberWithTooltip({\n isShowTBMK: true,\n })}\n  / \n {currentPair?.shortOpenInterest?.formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: currentPair.rootInstrument?.baseToken?.symbol,\n })}\n \n
\n
\n );\n const volume24h = (\n
\n
{t('common.24HV')}
\n
\n \n {currentPair?.volume24hUSD?.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n isShowApproximatelyEqualTo: false,\n })}\n \n
\n
\n );\n\n const pay = (\n
\n
{currentPair?.wrapAttribute('fundingRatePerHour').gt(0) ? t('common.longPay') : t('common.shortPay')}
\n
\n \n {currentPair?.wrapAttribute('fundingRatePerHour').gt(0)\n ? currentPair?.fundingFeeRateForLongAndShort.long\n .abs()\n .formatPercentage({ decimals: 4, colorShader: false })\n : currentPair?.fundingFeeRateForLongAndShort.short\n .abs()\n .formatPercentage({ decimals: 4, colorShader: false })}\n \n
\n
\n );\n const receive = (\n
\n
\n {currentPair?.wrapAttribute('fundingRatePerHour').gt(0) ? t('common.shortReceive') : t('common.longReceive')}\n
\n
\n \n {currentPair?.wrapAttribute('fundingRatePerHour').gt(0)\n ? currentPair?.fundingFeeRateForLongAndShort.short\n .abs()\n .formatPercentage({ decimals: 4, colorShader: false })\n : currentPair?.fundingFeeRateForLongAndShort.long\n .abs()\n .formatPercentage({ decimals: 4, colorShader: false })}\n \n
\n
\n );\n\n return (\n <>\n \n ) : (\n \n )}\n \n \n );\n};\n\nexport default MobileSubPageHeader;\n","/**\n * @description Component-EarnMobileSubpage\n */\nimport SubPageWrap from '@/components/SubPage';\nimport './index.less';\n\nimport SynTitleTabs from '@/components/Tabs/SynTitleTabs';\nimport BlockNumberTextMobile from '@/components/Text/BlockNumberText/BlockNumberTextMobile';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { PAIR_PAGE_TYPE, TVL_THRESHHOLD } from '@/constants/global';\nimport { MOBILE_SHOW_CHART_EARN } from '@/constants/storage';\nimport { resetLiquidityFormByChainId, setEarnFormType } from '@/features/earn/action';\nimport { useIsInWhiteList } from '@/features/earn/hook';\nimport { useMarketList } from '@/features/market/hooks';\nimport { useCurrentPairBaseInfoFromUrl, useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { resetFormByChainId } from '@/features/trade/actions';\nimport { useAppDispatch } from '@/hooks';\nimport { usePollingSingleInstrumentDataOnTradeOrEarn } from '@/hooks/data/usePollingDataOnWorker';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { usePairCheck } from '@/pages/components/PairInfo/pairCheckHook';\nimport AddLiqForm from '@/pages/earn/EarnCard/EarnForm/AddLiqForm';\nimport PairNotInWhitelist from '@/pages/earn/EarnCard/EarnForm/PairNotInWhitelist';\nimport InfoChart from '@/pages/earn/EarnChart/InfoChart';\nimport _ from 'lodash';\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport MobileBanner from '../components/MobileBanner';\nimport MobileProfile from '../components/MobileProfile';\nimport MobileSubPageHeader from '../components/MobileSubpageHeader';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst EarnMobileSubpage: FC = function ({}) {\n const [showChart, setShowChart] = useState(false);\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const currentPair = useCurrentPairFromUrl(chainId);\n const navigate = useNavigate();\n const isInWhiteList = useIsInWhiteList(chainId, userAddr, currentPair?.rootInstrument.quoteToken);\n const { pairSymbol: symbolFromUrl } = useParams();\n const { t } = useTranslation();\n const items = useMemo(\n () => [\n {\n key: EARN_TYPE.ADD_LIQ.toString(),\n label: t('common.earn.addLiq'),\n // children: ,\n },\n ],\n [t],\n );\n const { marketPairList, isFetched } = useMarketList(chainId ? [chainId] : undefined);\n const marketPairListOrdered = useMemo(\n () =>\n _.orderBy(\n marketPairList.filter((p) => p.tvlUsd.gte(TVL_THRESHHOLD)),\n [(p) => p?.liquidityApy?.toNumber()],\n ['desc'],\n ),\n [marketPairList],\n );\n const dispatch = useAppDispatch();\n const resetCurrentPair = useCallback(() => {\n navigate('/market');\n chainId && dispatch(resetLiquidityFormByChainId({ chainId }));\n }, [chainId, dispatch, navigate]);\n const currentBaseInfo = useCurrentPairBaseInfoFromUrl(chainId);\n // const pairFetchingStatus = usePairFetchingStatus(chainId, currentBaseInfo?.id);\n\n usePollingSingleInstrumentDataOnTradeOrEarn(\n chainId,\n userAddr,\n currentBaseInfo?.instrumentAddr,\n currentBaseInfo?.expiry,\n );\n usePairCheck(\n chainId,\n currentPair?.symbol,\n marketPairListOrdered.map((p) => p.pairSymbol),\n PAIR_PAGE_TYPE.EARN,\n false,\n );\n useEffect(() => {\n chainId && !currentPair && dispatch(resetFormByChainId({ chainId }));\n }, [chainId, dispatch, currentPair]);\n\n useEffect(() => {\n setTimeout(() => {\n const localOpenState = localStorage.getItem(MOBILE_SHOW_CHART_EARN);\n if (localOpenState) {\n setShowChart(true);\n }\n }, 1000);\n }, []);\n useEffect(() => {\n if (isFetched && symbolFromUrl && currentPair?.symbol.toLocaleLowerCase() !== symbolFromUrl.toLocaleLowerCase()) {\n const pair = marketPairList.find((p) => p.pairSymbol.toLowerCase() === symbolFromUrl.toLowerCase());\n if (pair) {\n if (chainId) {\n dispatch(setEarnFormType({ chainId, formType: EARN_TYPE.ADD_LIQ }));\n }\n }\n }\n // only these three\n }, [isFetched, symbolFromUrl, currentPair?.symbol]);\n\n return (\n }\n noFooterPadding\n isOverflowAuto\n onClose={() => {\n resetCurrentPair();\n }}\n isShowSubPage={true}\n header={\n {\n if (showChart) {\n localStorage.setItem(MOBILE_SHOW_CHART_EARN, '');\n } else {\n localStorage.setItem(MOBILE_SHOW_CHART_EARN, 'true');\n }\n setShowChart((pre) => !pre);\n }}\n closeDetail={resetCurrentPair}\n showChart={showChart}\n />\n }\n className=\"syn-earn-mobile-subpage\">\n {isInWhiteList ? (\n <>\n \n
\n
\n {showChart && (\n
\n
{t('mobile.volume')}
\n \n
\n )}\n
\n \n \n
\n
\n \n
\n \n ) : (\n \n )}\n \n );\n};\n\nexport default EarnMobileSubpage;\n","import { useDebounceFn } from 'ahooks';\nimport { BigNumber } from 'ethers';\nimport React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { OPERATION_TX_TYPE } from '@/constants';\nimport { WrappedInstrument } from '@/entities/WrappedInstrument';\nimport { useGlobalStore } from '@/features/global/stores';\nimport { PollingHistoryId } from '@/features/global/type';\nimport { useAppDispatch } from '@/hooks';\nimport { useTxNotification } from '@/hooks/useTxNotification';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { WorkerEventNames, WorkerOnInstrumentOrderUpdateResult } from '@/types/worker';\nimport { mapObjectValue } from '@/utils/notification';\nimport { getAdjustTradePrice, getAdjustTradeSize } from '@/utils/pairs';\nimport { getWatchWorkerEventCallback } from '@/worker/helper';\nimport { TickMath } from '@synfutures/sdks-perp';\nimport { debounce } from 'lodash';\n\nexport function useOrderUpdateEventListener(instrument: WrappedInstrument | undefined): void {\n const dispatch = useAppDispatch();\n const { t } = useTranslation();\n const { open } = useTxNotification();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { run: showNotify } = useDebounceFn(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n async (txType: OPERATION_TX_TYPE, instrumentAddr: string, expiry: number, txHash: string, args: any) => {\n let message: React.ReactNode = ``;\n if (instrumentAddr !== instrument?.instrumentAddr) return;\n try {\n if (chainId && userAddr && instrument) {\n console.log('notification event [Fill] args:', args);\n const tickPrice = getAdjustTradePrice(TickMath.getWadAtTick(Number(args?.tick)), instrument.isInverse);\n const size = getAdjustTradeSize(BigNumber.from(args?.pic?.size || 0), instrument.isInverse);\n const tradeType = size.gt(0) ? 'common.bought' : 'common.sold';\n const descTemplate = `notification.${txType}.successDesc`;\n const templateArgs = {\n tickPrice: tickPrice.formatDisplayNumber({ type: 'price' }),\n size: size.abs().formatDisplayNumber(),\n tradeType,\n base: instrument.baseToken.symbol,\n };\n message = (\n
\n
\n {t(\n descTemplate,\n mapObjectValue(templateArgs, 'string', (value) => t(value)),\n )}\n
\n
\n );\n }\n } catch (error) {\n message = t(`notification.${txType}.success`);\n }\n open({\n message: t(`notification.${txType}.success`),\n description: message,\n\n tx: txHash,\n type: 'success',\n });\n },\n { wait: 500 },\n );\n\n // watch order update event\n useEffect(() => {\n if (window.synWorker && chainId) {\n const cbFunction = debounce(\n (e: MessageEvent) =>\n getWatchWorkerEventCallback(\n e,\n window.synWorker,\n WorkerEventNames.OnInstrumentOrderUpdateEvent,\n (data) => {\n const result = data;\n\n // updatePairDepthData(result.instrumentAddr, result.expiry, result.block);\n if (result.eventName === 'Fill') {\n const { setPollingHistoryTx } = useGlobalStore.getState();\n setPollingHistoryTx({\n userAddress: result.userAddr,\n chainId,\n pollingHistoryId: PollingHistoryId.order,\n tx: result.transactionHash,\n });\n\n showNotify(\n OPERATION_TX_TYPE.FILL_ORDER,\n result.instrumentAddr,\n result.expiry,\n result.transactionHash,\n result.eventArgs,\n );\n }\n },\n { chainId },\n ),\n 300,\n );\n window.synWorker.addEventListener('message', cbFunction);\n // Return a cleanup function to remove the event listener\n return () => {\n window.synWorker.removeEventListener('message', cbFunction);\n };\n }\n }, [chainId, dispatch]);\n}\n\nexport function OrderEventListener({ instrument }: { instrument: WrappedInstrument | undefined }): null {\n useOrderUpdateEventListener(instrument);\n return null;\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconArrowFall16 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.05469 12.9258C5.05469 13.4781 5.5024 13.9258 6.05469 13.9258H12.0547C12.607 13.9258 13.0547 13.4781 13.0547 12.9258V6.92578C13.0547 6.3735 12.607 5.92578 12.0547 5.92578C11.5024 5.92578 11.0547 6.3735 11.0547 6.92578V10.5116L4.76179 4.21867C4.37127 3.82815 3.7381 3.82815 3.34758 4.21867C2.95706 4.6092 2.95706 5.24236 3.34758 5.63289L9.64047 11.9258H6.05469C5.5024 11.9258 5.05469 12.3735 5.05469 12.9258Z\",\n fill: \"#FF6666\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconArrowFall16);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_arrow_fall_16.4db7a913b60ec7a75814c511f0d1e2d6.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconArrowRise16 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.05469 4.92578C5.05469 4.3735 5.5024 3.92578 6.05469 3.92578H12.0547C12.607 3.92578 13.0547 4.3735 13.0547 4.92578V10.9258C13.0547 11.4781 12.607 11.9258 12.0547 11.9258C11.5024 11.9258 11.0547 11.4781 11.0547 10.9258V7.33999L4.76179 13.6329C4.37127 14.0234 3.7381 14.0234 3.34758 13.6329C2.95706 13.2424 2.95706 12.6092 3.34758 12.2187L9.64047 5.92578H6.05469C5.5024 5.92578 5.05469 5.47807 5.05469 4.92578Z\",\n fill: \"#14B84B\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconArrowRise16);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_arrow_rise_16.de3ef0579dd909ae4cb9d490ca689d8a.svg\";","var _path, _path2, _path3, _path4, _path5, _path6;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgLabelRebate = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 48,\n height: 24,\n viewBox: \"0 0 48 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.196 8.656C8.46 8.632 8.84 8.62 9.336 8.62C9.648 8.62 9.94 8.644 10.212 8.692C10.492 8.74 10.732 8.824 10.932 8.944C11.14 9.064 11.304 9.228 11.424 9.436C11.544 9.644 11.604 9.904 11.604 10.216C11.604 10.552 11.544 10.824 11.424 11.032C11.304 11.232 11.132 11.388 10.908 11.5C10.692 11.612 10.424 11.688 10.104 11.728C9.784 11.768 9.424 11.788 9.024 11.788H8.196V8.656Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.0589 11.044C18.3229 11.364 18.4509 11.776 18.4429 12.28H15.3469C15.3709 12.064 15.4189 11.852 15.4909 11.644C15.5709 11.436 15.6789 11.252 15.8149 11.092C15.9509 10.932 16.1149 10.804 16.3069 10.708C16.5069 10.604 16.7349 10.552 16.9909 10.552C17.4469 10.552 17.8029 10.716 18.0589 11.044Z\",\n fill: \"#00BFBF\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.794 15.124C22.594 15.092 22.438 15.06 22.326 15.028V11.08C22.462 10.968 22.658 10.86 22.914 10.756C23.17 10.652 23.45 10.6 23.754 10.6C24.074 10.6 24.346 10.66 24.57 10.78C24.802 10.892 24.99 11.052 25.134 11.26C25.278 11.46 25.382 11.7 25.446 11.98C25.51 12.26 25.542 12.56 25.542 12.88C25.542 13.608 25.362 14.172 25.002 14.572C24.642 14.964 24.162 15.16 23.562 15.16C23.258 15.16 23.002 15.148 22.794 15.124Z\",\n fill: \"#00BFBF\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.0844 15.184C30.8844 15.192 30.6524 15.196 30.3884 15.196C29.9484 15.196 29.6004 15.12 29.3444 14.968C29.0884 14.808 28.9604 14.528 28.9604 14.128C28.9604 13.912 29.0124 13.74 29.1164 13.612C29.2204 13.476 29.3484 13.372 29.5004 13.3C29.6604 13.22 29.8324 13.168 30.0164 13.144C30.2084 13.12 30.3884 13.108 30.5564 13.108C30.8124 13.108 31.0284 13.124 31.2044 13.156C31.3884 13.18 31.5204 13.212 31.6004 13.252V15.112C31.4644 15.144 31.2924 15.168 31.0844 15.184Z\",\n fill: \"#00BFBF\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.8089 11.044C43.0729 11.364 43.2009 11.776 43.1929 12.28H40.0969C40.1209 12.064 40.1689 11.852 40.2409 11.644C40.3209 11.436 40.4289 11.252 40.5649 11.092C40.7009 10.932 40.8649 10.804 41.0569 10.708C41.2569 10.604 41.4849 10.552 41.7409 10.552C42.1969 10.552 42.5529 10.716 42.8089 11.044Z\",\n fill: \"#00BFBF\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3 7C3 4.79086 4.79086 3 7 3H44C46.2091 3 48 4.79086 48 7V17C48 19.2091 46.2091 21 44 21H7C4.79086 21 3 19.2091 3 17V15L0 12L3 9V7ZM11.58 13.156C11.388 12.892 11.228 12.68 11.1 12.52C11.668 12.328 12.096 12.036 12.384 11.644C12.68 11.252 12.828 10.78 12.828 10.228C12.828 9.356 12.52 8.7 11.904 8.26C11.296 7.82 10.408 7.6 9.24 7.6C8.904 7.6 8.532 7.616 8.124 7.648C7.724 7.672 7.36 7.724 7.032 7.804V16H8.196V12.748H9.564C9.676 12.748 9.784 12.744 9.888 12.736C10.04 12.92 10.208 13.136 10.392 13.384C10.584 13.632 10.776 13.9 10.968 14.188C11.16 14.468 11.348 14.764 11.532 15.076C11.724 15.388 11.9 15.696 12.06 16H13.332C13.188 15.68 13.012 15.348 12.804 15.004C12.604 14.66 12.4 14.332 12.192 14.02C11.984 13.7 11.78 13.412 11.58 13.156ZM14.3989 11.452C14.2389 11.86 14.1589 12.34 14.1589 12.892C14.1589 13.364 14.2189 13.8 14.3389 14.2C14.4669 14.592 14.6589 14.932 14.9149 15.22C15.1709 15.508 15.4949 15.736 15.8869 15.904C16.2869 16.064 16.7589 16.144 17.3029 16.144C17.7349 16.144 18.1189 16.104 18.4549 16.024C18.7989 15.944 19.0389 15.868 19.1749 15.796L19.0189 14.86C18.8829 14.924 18.6789 14.992 18.4069 15.064C18.1429 15.128 17.8149 15.16 17.4229 15.16C16.7269 15.16 16.2149 14.992 15.8869 14.656C15.5589 14.32 15.3709 13.828 15.3229 13.18H19.5949C19.6029 13.116 19.6069 13.048 19.6069 12.976V12.784C19.6069 11.712 19.3829 10.916 18.9349 10.396C18.4869 9.868 17.8429 9.604 17.0029 9.604C16.6429 9.604 16.2909 9.672 15.9469 9.808C15.6029 9.944 15.2989 10.148 15.0349 10.42C14.7709 10.692 14.5589 11.036 14.3989 11.452ZM22.938 9.76C22.666 9.856 22.462 9.948 22.326 10.036V6.688L21.21 6.88V15.82C21.466 15.892 21.794 15.964 22.194 16.036C22.594 16.108 23.054 16.144 23.574 16.144C24.054 16.144 24.486 16.068 24.87 15.916C25.254 15.764 25.582 15.548 25.854 15.268C26.126 14.988 26.334 14.648 26.478 14.248C26.63 13.84 26.706 13.384 26.706 12.88C26.706 12.4 26.642 11.96 26.514 11.56C26.394 11.16 26.214 10.816 25.974 10.528C25.734 10.24 25.438 10.016 25.086 9.856C24.742 9.696 24.346 9.616 23.898 9.616C23.538 9.616 23.218 9.664 22.938 9.76ZM31.4204 9.784C31.1164 9.664 30.7404 9.604 30.2924 9.604C29.9004 9.604 29.5364 9.636 29.2004 9.7C28.8644 9.756 28.6244 9.816 28.4804 9.88L28.6124 10.804C28.7484 10.748 28.9524 10.696 29.2244 10.648C29.5044 10.592 29.8284 10.564 30.1964 10.564C30.4844 10.564 30.7164 10.608 30.8924 10.696C31.0764 10.776 31.2204 10.888 31.3244 11.032C31.4284 11.168 31.5004 11.328 31.5404 11.512C31.5804 11.688 31.6004 11.868 31.6004 12.052V12.364C31.5684 12.356 31.5124 12.344 31.4324 12.328C31.3524 12.312 31.2564 12.296 31.1444 12.28C31.0404 12.256 30.9284 12.24 30.8084 12.232C30.6884 12.216 30.5724 12.208 30.4604 12.208C30.1084 12.208 29.7724 12.244 29.4524 12.316C29.1324 12.388 28.8524 12.5 28.6124 12.652C28.3724 12.804 28.1804 13.004 28.0364 13.252C27.9004 13.5 27.8324 13.796 27.8324 14.14C27.8324 14.5 27.8924 14.808 28.0124 15.064C28.1324 15.32 28.3004 15.528 28.5164 15.688C28.7324 15.84 28.9884 15.952 29.2844 16.024C29.5804 16.096 29.9044 16.132 30.2564 16.132C30.5044 16.132 30.7524 16.12 31.0004 16.096C31.2564 16.08 31.4924 16.06 31.7084 16.036C31.9244 16.012 32.1164 15.988 32.2844 15.964C32.4604 15.932 32.5964 15.908 32.6924 15.892V11.992C32.6924 11.64 32.6524 11.32 32.5724 11.032C32.4924 10.736 32.3564 10.484 32.1644 10.276C31.9804 10.06 31.7324 9.896 31.4204 9.784ZM37.9539 9.76H35.5899V7.828L34.4739 8.02V13.588C34.4739 14.004 34.5059 14.372 34.5699 14.692C34.6419 15.004 34.7619 15.268 34.9299 15.484C35.0979 15.7 35.3179 15.864 35.5899 15.976C35.8699 16.08 36.2219 16.132 36.6459 16.132C37.0059 16.132 37.3259 16.088 37.6059 16C37.8859 15.92 38.0819 15.852 38.1939 15.796L37.9779 14.872C37.8979 14.904 37.7539 14.96 37.5459 15.04C37.3459 15.112 37.0779 15.148 36.7419 15.148C36.5499 15.148 36.3819 15.124 36.2379 15.076C36.0939 15.028 35.9739 14.948 35.8779 14.836C35.7819 14.716 35.7099 14.556 35.6619 14.356C35.6139 14.148 35.5899 13.888 35.5899 13.576V10.696H37.9539V9.76ZM39.1489 11.452C38.9889 11.86 38.9089 12.34 38.9089 12.892C38.9089 13.364 38.9689 13.8 39.0889 14.2C39.2169 14.592 39.4089 14.932 39.6649 15.22C39.9209 15.508 40.2449 15.736 40.6369 15.904C41.0369 16.064 41.5089 16.144 42.0529 16.144C42.4849 16.144 42.8689 16.104 43.2049 16.024C43.5489 15.944 43.7889 15.868 43.9249 15.796L43.7689 14.86C43.6329 14.924 43.4289 14.992 43.1569 15.064C42.8929 15.128 42.5649 15.16 42.1729 15.16C41.4769 15.16 40.9649 14.992 40.6369 14.656C40.3089 14.32 40.1209 13.828 40.0729 13.18H44.3449C44.3529 13.116 44.3569 13.048 44.3569 12.976V12.784C44.3569 11.712 44.1329 10.916 43.6849 10.396C43.2369 9.868 42.5929 9.604 41.7529 9.604C41.3929 9.604 41.0409 9.672 40.6969 9.808C40.3529 9.944 40.0489 10.148 39.7849 10.42C39.5209 10.692 39.3089 11.036 39.1489 11.452Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgLabelRebate);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/label_rebate.d918888c8a84c109abe0c50b96af4ff4.svg\";","export const getOrderBookSizeInQuote = (\n sizeInBaseToken: number,\n quoteTokenPriceInBaseToken: number,\n isNonInverse: boolean,\n) => {\n if (isNonInverse) {\n return sizeInBaseToken * quoteTokenPriceInBaseToken;\n }\n return sizeInBaseToken / quoteTokenPriceInBaseToken;\n};\n","/**\n * @description Component-OrderBookSkeleton\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC, useMemo } from 'react';\n\nimport Loading from '@/components/Loading';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { Skeleton } from '@/components/Skeleton';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n isLoading: boolean;\n}\nconst OrderBookSkeleton: FC = function ({ children, isLoading }) {\n const { isMobile } = useMediaQueryDevice();\n const sellData = useMemo(() => {\n return new Array(isMobile ? 5 : 8).fill(undefined).map((_, index) => `sell_${index}`);\n }, [isMobile]);\n\n const buyData = useMemo(() => {\n return new Array(isMobile ? 5 : 8).fill(undefined).map((_, index) => `buy_${index}`);\n }, [isMobile]);\n\n if (!isLoading) {\n return <>{children};\n }\n return (\n
\n {isLoading && }\n\n
\n
\n {sellData.map((key) => (\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n ))}\n
\n
\n
\n \n
\n {!isMobile && (\n
\n \n
\n )}\n
\n
\n {buyData.map((key) => (\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n ))}\n
\n
\n
\n );\n};\n\nexport default OrderBookSkeleton;\n","/**\n * @description Component-OrderBook\n */\nimport './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber, WrappedBigNumberLike } from '@/entities/WrappedBigNumber';\nimport { WrappedOrder } from '@/entities/WrappedOrder';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useWrappedOrderList } from '@/features/account/orderHook';\nimport {\n useCurrentPairByDevice,\n useGetAlignedFairPrice,\n usePairAdjustedRange,\n usePairDisabledForLimit,\n} from '@/features/pair/hook';\nimport { updateLimitPriceFromOrderBook } from '@/features/trade/actions';\nimport { useLimitFormState, useTradeSide } from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { formatNumber } from '@/utils/numberUtil';\n\nimport { ChangeIcon } from '@/assets/svg';\nimport { ReactComponent as IconArrowFall } from '@/assets/svg/icon_arrow_fall_16.svg';\nimport { ReactComponent as IconArrowRise } from '@/assets/svg/icon_arrow_rise_16.svg';\nimport { useMockDevTool } from '@/components/Mock';\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { useFuturesOrderBookWithStepRatio, useIsFetchedFuturesOrderBook } from '@/features/futures/hooks';\nimport { IExtendDepthChartData } from '@/types/chart';\nimport { IFuturesOrderBookItem } from '@/types/futures';\nimport { getOrderBookSizeInQuote } from '@/utils/trade/orderBook';\nimport { Side } from '@synfutures/sdks-perp';\nimport { usePrevious } from 'ahooks';\nimport { useNavigate } from 'react-router-dom';\nimport OrderBookSkeleton from './OrderBookSkeleton';\n\n// let depthPolling: NodeJS.Timeout | undefined = undefined;\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n isMobile?: boolean;\n pair: WrappedPair | undefined;\n chainId: CHAIN_ID | undefined;\n stepRatio?: number;\n}\n\nconst OrderBook: FC = function ({ pair, chainId, stepRatio = 5 }) {\n // const depthData = useOrderBookData(chainId, pair, stepRatio);\n const depthDataFromApi = useFuturesOrderBookWithStepRatio(chainId, pair?.instrumentAddr, pair?.expiry, stepRatio);\n const isFetched = useIsFetchedFuturesOrderBook(chainId, pair?.instrumentAddr, pair?.expiry, stepRatio);\n\n // const fetchingStatus = useOrderBookDataStatus(chainId, pair?.id, stepRatio);\n const sdkContext = useSDK(chainId);\n const dispatch = useAppDispatch();\n const userAddr = useUserAddr();\n\n // const currentPairBaseInfo = useCurrentPairBaseInfoFromUrl(chainId);\n const currentPair = useCurrentPairByDevice(chainId);\n // const marketPairInfo = useMarketPairInfo(chainId, currentPairBaseInfo?.instrumentAddr, currentPairBaseInfo?.expiry);\n // console.log('🚀 ~ marketPairInfo:', marketPairInfo);\n // const currentBaseInfo = useCurrentPairBaseInfoFromUrl(chainId);\n\n const prevPrice = usePrevious(currentPair?.wrapAttribute('fairPrice')?.toNumber());\n\n const { pairDisabledInLimit } = usePairDisabledForLimit(currentPair);\n const tradeSide = useTradeSide(chainId);\n const orders = useWrappedOrderList(chainId, userAddr, pair?.id);\n const [adjustedLowerPrice, adjustedUpperPrice] = usePairAdjustedRange(currentPair, tradeSide, sdkContext);\n const { isMobile, deviceType } = useMediaQueryDevice();\n const { t } = useTranslation();\n const getAlignedFairPrice = useGetAlignedFairPrice(currentPair);\n const { isTurnOnCrossMarket } = useLimitFormState(chainId);\n const [isUnitInBaseToken, setIsUnitInBaseToken] = useState(true);\n const { isMockSkeleton } = useMockDevTool();\n const navigage = useNavigate();\n const setLimitPriceToTrade = useCallback(\n async (price: WrappedBigNumberLike, side: Side) => {\n if (pairDisabledInLimit) {\n return;\n }\n if (currentPair && !isMobile) {\n navigage(`/trade/${DAPP_CHAIN_CONFIGS[currentPair?.chainId]?.network?.shortName}/${currentPair?.symbol}`);\n }\n gtag('event', 'adjust_price', {\n adjust_price: 'click_order_book', //plus_or_mins, enter, click_order_book\n });\n if (currentPair) {\n const alignedFairPrice = await getAlignedFairPrice(side);\n let priceFinal = WrappedBigNumber.from(price);\n const adjustTradeSide = side;\n if (chainId) {\n if (adjustTradeSide === Side.LONG) {\n if (adjustedLowerPrice && priceFinal.lt(adjustedLowerPrice)) {\n priceFinal = adjustedLowerPrice;\n }\n if (alignedFairPrice && priceFinal.gt(alignedFairPrice)) {\n priceFinal = alignedFairPrice;\n }\n }\n if (adjustTradeSide === Side.SHORT) {\n if (adjustedUpperPrice && priceFinal.gt(adjustedUpperPrice || 0)) {\n priceFinal = adjustedUpperPrice;\n }\n if (alignedFairPrice && alignedFairPrice.gt(priceFinal)) {\n priceFinal = alignedFairPrice;\n }\n }\n const checkedPrice = formatNumber(priceFinal.stringValue, currentPair?.priceDecimal, false);\n dispatch(\n updateLimitPriceFromOrderBook({\n limitState: {\n chainId,\n limitPrice: checkedPrice,\n alignedPrice: checkedPrice,\n tradeSide: isTurnOnCrossMarket ? tradeSide : side,\n },\n formType: TRADE_TYPE.LIMIT,\n }),\n );\n }\n }\n },\n [\n adjustedLowerPrice,\n adjustedUpperPrice,\n chainId,\n currentPair,\n dispatch,\n getAlignedFairPrice,\n isMobile,\n isTurnOnCrossMarket,\n navigage,\n pairDisabledInLimit,\n tradeSide,\n ],\n );\n useEffect(() => {\n setIsUnitInBaseToken(true);\n }, [pair?.id]);\n // useEffect(() => {\n // if (currentBaseInfo && chainId && sdkContext && stepRatio) {\n // try {\n // depthPolling && clearInterval(depthPolling);\n // depthPolling = pollingFunc(() => {\n // dispatch(\n // getPairOrderBookData({\n // chainId,\n // instrumentAddr: currentBaseInfo.instrumentAddr,\n // expiry: currentBaseInfo.expiry,\n // sdkContext,\n // stepRatio,\n // }),\n // );\n // }, POLLING_ORDER_BOOK);\n // } catch (e) {\n // console.log('🚀 ~ file: index.tsx:140 ~ useEffect ~ e:', e);\n // }\n // }\n // return () => {\n // depthPolling && clearInterval(depthPolling);\n // };\n // // only these two\n // }, [pair?.fairPrice._hex, stepRatio, currentBaseInfo?.id]);\n\n useEffect(() => {\n setIsUnitInBaseToken(\n pair?.isInverse ? !!pair?.wrapAttribute('fairPrice').gt(1) : !!pair?.wrapAttribute('fairPrice').lt(1),\n );\n }, [pair?.id]);\n\n const findClosest = useCallback(\n (array: (IFuturesOrderBookItem & { isShowIcon?: boolean })[], order: WrappedOrder, side: Side) => {\n if (side === Side.LONG) {\n const orderedArr = array;\n\n const best = orderedArr.find((item) =>\n order.isInverse\n ? WrappedBigNumber.from(item.tick).gte(order.tick)\n : WrappedBigNumber.from(item.tick).lte(order.tick),\n );\n return best;\n } else if (side === Side.SHORT) {\n const orderedArr = array;\n const best = orderedArr.find((item) =>\n order.isInverse\n ? WrappedBigNumber.from(item.tick).lte(order.tick)\n : WrappedBigNumber.from(item.tick).gte(order.tick),\n );\n\n return best;\n }\n },\n [],\n );\n\n const sellDataWithOrder = useMemo(() => {\n // data must be mapped to become immutable\n const data: (IFuturesOrderBookItem & { isShowIcon?: boolean })[] | undefined = depthDataFromApi?.right.map((d) => ({\n ...d,\n }));\n if (data && orders) {\n const sellOrders = orders.filter((order) => order.side === Side.SHORT);\n sellOrders.forEach((order) => {\n const closest = findClosest(data, order, order.side);\n if (closest) {\n //console.log('🚀 ~ sellOrders.forEach ~ closest:', { closest, order, sellOrders, orders, depthDataFromApi });\n closest.isShowIcon = true;\n }\n });\n }\n return data?.slice(0, isMobile ? 5 : 8);\n }, [depthDataFromApi?.right, findClosest, orders, isMobile]);\n\n const buyDataWithOrder = useMemo(() => {\n const data: (IFuturesOrderBookItem & { isShowIcon?: boolean })[] | undefined = depthDataFromApi?.left.map((d) => ({\n ...d,\n }));\n if (data && orders) {\n const buyOrders = orders.filter((order) => order.side === Side.LONG);\n buyOrders.forEach((order) => {\n const closest = findClosest(data, order, order.side);\n if (closest) {\n closest.isShowIcon = true;\n }\n });\n }\n return data?.slice(0, isMobile ? 5 : 8);\n }, [depthDataFromApi?.left, findClosest, orders, isMobile]);\n\n const sellData = useMemo(() => {\n const data = sellDataWithOrder;\n if (data && pair) {\n const dataWithSumAndQuote = data.map((item, index) => {\n const currQuote = getOrderBookSizeInQuote(item.base, item.price, !pair.isInverse);\n if (index > 0) {\n const prevList = data.slice(0, index);\n const sum = prevList.reduce((prev, cur) => {\n return prev + (cur?.base || 0) || 0;\n }, item?.base || 0);\n return {\n ...item,\n sum,\n quote: currQuote,\n };\n }\n return {\n ...item,\n sum: item?.base || 0,\n quote: currQuote,\n };\n });\n const dataWithSumAndQuoteAndQuoteSum = dataWithSumAndQuote.map((item, index) => {\n if (index > 0) {\n const prevList = dataWithSumAndQuote.slice(0, index);\n const sumQuote = prevList.reduce((prev, cur) => {\n return prev + (cur?.quote || 0) || 0;\n }, item?.quote || 0);\n return {\n ...item,\n sumQuote,\n };\n }\n return {\n ...item,\n sum: item?.base || 0,\n sumQuote: item.quote,\n };\n });\n return [...dataWithSumAndQuoteAndQuoteSum].reverse();\n }\n\n return new Array(isMobile ? 5 : 8).fill({\n sum: 0,\n tick: 0,\n price: 0,\n base: 0,\n quote: 0,\n sumQuote: 0,\n isShowIcon: false,\n }) as IExtendDepthChartData[];\n }, [sellDataWithOrder, pair, isMobile]);\n\n const buyData: IExtendDepthChartData[] = useMemo(() => {\n const data = buyDataWithOrder;\n if (data && pair) {\n const dataWithSumAndQuote = data.map((item, index) => {\n const currQuote = getOrderBookSizeInQuote(item.base, item.price, !pair.isInverse);\n if (index > 0) {\n const prevList = data.slice(0, index);\n const sum = prevList.reduce((prev, cur) => {\n return prev + (cur?.base || 0) || 0;\n }, item?.base || 0);\n return {\n ...item,\n sum,\n quote: currQuote,\n };\n }\n return {\n ...item,\n sum: item?.base || 0,\n quote: currQuote,\n };\n });\n const dataWithSumAndQuoteAndQuoteSum = dataWithSumAndQuote.map((item, index) => {\n if (index > 0) {\n const prevList = dataWithSumAndQuote.slice(0, index);\n const sumQuote = prevList.reduce((prev, cur) => {\n return prev + (cur?.quote || 0) || 0;\n }, item?.quote || 0);\n return {\n ...item,\n sumQuote,\n };\n }\n return {\n ...item,\n sum: item?.base || 0,\n sumQuote: item.quote,\n };\n });\n return dataWithSumAndQuoteAndQuoteSum;\n }\n\n return new Array(isMobile ? 5 : 8).fill({\n sum: 0,\n tick: 0,\n price: 0,\n base: 0,\n quote: 0,\n sumQuote: 0,\n isShowIcon: false,\n }) as IExtendDepthChartData[];\n }, [buyDataWithOrder, pair, isMobile]);\n const maxSum = useMemo(() => {\n return Math.max(\n ...sellData.map((item) => (isUnitInBaseToken ? item.sum : item.sumQuote)),\n ...buyData.map((item) => (isUnitInBaseToken ? item.sum : item.sumQuote)),\n );\n }, [buyData, isUnitInBaseToken, sellData]);\n\n const getWidth = (sum: number, max: number) => {\n return `calc(${WrappedBigNumber.from(sum).div(max).mul(100).stringValue}%)`;\n };\n const loading = isMockSkeleton || !isFetched;\n\n return (\n
\n {!isMobile && (\n
\n
\n
{t('common.orderBook.price')}
\n
\n {t('common.orderBook.size')}\n {currentPair?.rootInstrument && (\n setIsUnitInBaseToken((prev) => !prev)} className=\"suffix\">\n (\n \n {isUnitInBaseToken\n ? currentPair?.rootInstrument.baseToken.symbol\n : currentPair?.rootInstrument.quoteToken.symbol}\n \n )\n \n )}\n
\n
{t('common.orderBook.sum')}
\n
\n
\n )}\n \n
\n
\n {sellData.map((sell, i) => (\n setLimitPriceToTrade(sell.price, Side.SHORT)}\n key={sell.tick?.toString() + sell.price.toString() + i}>\n
\n \n {WrappedBigNumber.from(sell.price).formatPriceNumberWithTooltip()}\n \n
\n
\n \n {WrappedBigNumber.from(isUnitInBaseToken ? sell?.base : sell.quote).formatNumberWithTooltip({\n isShowTBMK: true,\n })}\n \n
\n {!isMobile && (\n
\n \n {WrappedBigNumber.from(isUnitInBaseToken ? sell.sum : sell.sumQuote).formatNumberWithTooltip({\n isShowTBMK: true,\n })}\n \n
\n )}\n
\n
\n
\n {sell.isShowIcon && (\n
\n )}\n
\n ))}\n
\n
\n \n {pair?.wrapAttribute('fairPrice').formatPriceNumberWithTooltip()}\n\n {pair?.wrapAttribute('fairPrice')?.gte(prevPrice || 0) ? : }\n
\n {!isMobile && (\n
\n {pair?.wrapAttribute('markPrice').formatPriceNumberWithTooltip()}\n
\n )}\n \n
\n {buyData.map((buy, i) => (\n setLimitPriceToTrade(buy.price, Side.LONG)}\n className=\"syn-order-book-item\"\n key={buy.tick?.toString() + buy.price.toString() + i}>\n
\n \n {WrappedBigNumber.from(buy.price).formatPriceNumberWithTooltip()}\n \n
\n
\n {\n \n {WrappedBigNumber.from(isUnitInBaseToken ? buy.base : buy.quote).formatNumberWithTooltip({\n isShowTBMK: true,\n })}\n \n }\n
\n {!isMobile && (\n
\n {\n \n {WrappedBigNumber.from(isUnitInBaseToken ? buy.sum : buy.sumQuote).formatNumberWithTooltip({\n isShowTBMK: true,\n })}\n \n }\n
\n )}\n
\n
\n
\n {buy.isShowIcon && (\n
\n )}\n \n ))}\n \n \n \n \n );\n};\n\nexport default OrderBook;\n","import { usePnlShareNotification } from '@/components/PnlShareNotification';\nimport { GlobalModalType } from '@/constants';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useTokenBalance } from '@/features/balance/hook';\nimport { useGlobalConfig, useToggleModal } from '@/features/global/hooks';\nimport {\n placeCrossMarketOrder,\n placeLimitOrder,\n setPairLeverageSwitchChecked,\n setPnlShare,\n trade,\n} from '@/features/trade/actions';\nimport {\n useCanPlaceCrossMarketOrder,\n useCrossMarketSimulation,\n useLimitFormState,\n useLimitPriceWarning,\n useLimitSimulation,\n useMarketFormState,\n useMarketSimulation,\n useScaleSimulation,\n useTradeSide,\n} from '@/features/trade/hooks';\nimport { useAppProvider, useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { usePriceBasisForPnl } from '@/hooks/usePriceBasisForPnl';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { DYNAMIC } from '@/types/storage';\nimport { IPnlParams } from '@/types/trade';\nimport { savePairLeverage } from '@/utils/localstorage';\nimport { toWad } from '@/utils/numberUtil';\nimport { Side } from '@synfutures/sdks-perp';\nimport { BigNumber } from 'ethers';\nimport { useCallback, useMemo } from 'react';\n\nexport function useTradeFooterFormState(tradeType: TRADE_TYPE, currentPair: WrappedPair | undefined) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const toggleScaleLimitPreview = useToggleModal(GlobalModalType.ORDER_PREVIEW);\n const scaleLimitSimulation = useScaleSimulation(chainId);\n const limitSimulation = useLimitSimulation(chainId);\n const tradeSimulation = useMarketSimulation(chainId);\n const crossMarginSimulation = useCrossMarketSimulation(chainId);\n const canPlaceCrossMarketOrder = useCanPlaceCrossMarketOrder(chainId);\n const limitPriceMsg = useLimitPriceWarning(chainId);\n const provider = useAppProvider();\n const sdk = useSDK(chainId);\n const dispatch = useAppDispatch();\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const { slippage, deadline } = useGlobalConfig(chainId);\n const signer = useWalletSigner();\n const marketFormState = useMarketFormState(chainId);\n const limitFormState = useLimitFormState(chainId);\n const tradeSide = useTradeSide(chainId);\n const { priceBasisForPnl } = usePriceBasisForPnl();\n const pnlShare = usePnlShareNotification();\n\n const tradePrice = useMemo(() => {\n if (tradeType === TRADE_TYPE.MARKET && tradeSimulation?.data?.tradePrice) {\n return tradeSimulation?.data?.tradePrice;\n } else if (tradeType === TRADE_TYPE.LIMIT) {\n return canPlaceCrossMarketOrder\n ? crossMarginSimulation?.data\n ? WrappedBigNumber.from(crossMarginSimulation?.data?.orderSimulation?.limitPrice || 0)\n : WrappedBigNumber.from(limitFormState.alignedPrice || 0)\n : limitSimulation?.data\n ? WrappedBigNumber.from(limitSimulation?.data?.limitPrice || limitFormState.alignedPrice || 0)\n : WrappedBigNumber.from(limitFormState.alignedPrice || 0);\n }\n return undefined;\n }, [\n canPlaceCrossMarketOrder,\n crossMarginSimulation?.data,\n limitFormState.alignedPrice,\n limitSimulation?.data,\n tradeSimulation?.data?.tradePrice,\n tradeType,\n ]);\n\n const marginToDeposit = useMemo(() => {\n if (tradeType === TRADE_TYPE.MARKET) {\n return tradeSimulation?.data?.marginToDeposit;\n } else if (tradeType === TRADE_TYPE.SCALE_LIMIT) {\n return scaleLimitSimulation?.data?.marginToDeposit;\n } else {\n return canPlaceCrossMarketOrder\n ? crossMarginSimulation?.data?.marginToDeposit\n : limitSimulation?.data?.marginToDeposit;\n }\n }, [\n tradeType,\n tradeSimulation?.data?.marginToDeposit,\n scaleLimitSimulation?.data?.marginToDeposit,\n canPlaceCrossMarketOrder,\n crossMarginSimulation?.data?.marginToDeposit,\n limitSimulation?.data?.marginToDeposit,\n ]);\n const walletBalance = useTokenBalance(currentPair?.rootInstrument?.quoteToken?.address, chainId);\n\n const walletNoBalance = useMemo(() => {\n return walletBalance.lt(marginToDeposit || 0);\n }, [marginToDeposit, walletBalance]);\n\n const isDisableBtn = useMemo(() => {\n if (walletNoBalance) return true;\n if (tradeType === TRADE_TYPE.LIMIT) {\n if (canPlaceCrossMarketOrder) return !!crossMarginSimulation?.message;\n return !!limitSimulation?.message || !!limitPriceMsg;\n }\n if (tradeType === TRADE_TYPE.SCALE_LIMIT) return !!scaleLimitSimulation?.message;\n\n return !!tradeSimulation?.message || tradeSimulation?.data?.additionalFee?.gt(0);\n }, [\n canPlaceCrossMarketOrder,\n crossMarginSimulation?.message,\n limitPriceMsg,\n limitSimulation?.message,\n scaleLimitSimulation?.message,\n tradeSimulation?.message,\n tradeType,\n walletNoBalance,\n tradeSimulation?.data?.additionalFee,\n ]);\n\n const onTradeMarket = useCallback(\n async (originalSize: BigNumber) => {\n if (!chainId || !userAddr || !sdk || !currentPair || !signer) return;\n if (tradeType === TRADE_TYPE.MARKET && tradeSimulation?.data) {\n // const pnlRatio = currentPosition?.getUnrealizedPnlPercentage(priceBasisForPnl);\n const hasPosition = currentPosition?.hasPosition;\n const currentSide = currentPosition?.wrappedSide;\n const positionAverageP = currentPosition?.wrapAttribute('entryPrice');\n const positionLeverage = currentPosition?.wrapAttribute('leverageWad');\n const positionSide = Side[currentPosition?.wrappedSide || Side.FLAT].toString();\n const pnlRatio = tradeSimulation.data.realized\n .div(tradeSimulation.data.estimatedTradeValue || 1)\n .mul(positionLeverage || 1);\n const result = await dispatch(\n trade({\n chainId,\n userAddr,\n signer,\n sdk: sdk,\n pair: currentPair,\n side: tradeSide,\n baseAmount: toWad(marketFormState.baseAmount),\n slippage: Number(slippage),\n deadline: Number(deadline),\n simulation: tradeSimulation,\n tradePrice: tradeSimulation?.data?.tradePrice,\n provider,\n }),\n ).unwrap();\n // set pair to dynamic when turning for zero to size after trading\n if (result && tradeType === TRADE_TYPE.MARKET && originalSize.eq(0)) {\n savePairLeverage(userAddr, chainId, currentPair?.id, DYNAMIC, DYNAMIC);\n chainId &&\n userAddr &&\n dispatch(setPairLeverageSwitchChecked({ chainId, userAddr, pairId: currentPair.id, checked: false }));\n }\n if (result?.status === 1 && hasPosition && currentSide !== tradeSide) {\n const pnlParams = {\n chainId,\n tradePrice: WrappedBigNumber.from(tradeSimulation?.data?.tradePrice),\n averagePrice: positionAverageP,\n pair: currentPair,\n pnl: tradeSimulation.data.realized,\n pnlRatio,\n leverage: positionLeverage,\n side: positionSide,\n tx: result?.transactionHash,\n size: WrappedBigNumber.from(marketFormState.baseAmount),\n } as IPnlParams;\n dispatch(setPnlShare(pnlParams));\n pnlShare(pnlParams);\n }\n }\n },\n [\n chainId,\n userAddr,\n sdk,\n currentPair,\n signer,\n tradeType,\n tradeSimulation,\n dispatch,\n tradeSide,\n marketFormState.baseAmount,\n slippage,\n deadline,\n provider,\n currentPosition,\n priceBasisForPnl,\n pnlShare,\n ],\n );\n\n const onTradeLimit = useCallback(async () => {\n if (!chainId || !userAddr || !sdk || !currentPair || !signer) return;\n if (tradeType === TRADE_TYPE.LIMIT && limitSimulation?.data) {\n dispatch(\n placeLimitOrder({\n chainId,\n signer,\n userAddr,\n sdkContext: sdk,\n pair: currentPair,\n simulation: limitSimulation?.data,\n deadline: Number(deadline),\n provider,\n side: tradeSide,\n }),\n );\n }\n }, [\n chainId,\n currentPair,\n deadline,\n dispatch,\n tradeSide,\n limitSimulation?.data,\n provider,\n sdk,\n signer,\n tradeType,\n userAddr,\n ]);\n\n const onTradeScaledLimit = useCallback(async () => {\n if (tradeType === TRADE_TYPE.SCALE_LIMIT && scaleLimitSimulation?.data) {\n toggleScaleLimitPreview(true);\n return;\n }\n }, [scaleLimitSimulation?.data, toggleScaleLimitPreview, tradeType]);\n\n const onTradeCrossMarket = useCallback(async () => {\n if (!chainId || !userAddr || !sdk || !currentPair || !signer) return;\n if (tradeType === TRADE_TYPE.LIMIT && crossMarginSimulation?.data) {\n dispatch(\n placeCrossMarketOrder({\n chainId,\n signer,\n userAddr,\n sdkContext: sdk,\n pair: currentPair,\n simulation: crossMarginSimulation?.data,\n provider,\n side: tradeSide,\n slippage: Number(slippage),\n deadline: Number(deadline),\n }),\n );\n }\n }, [\n chainId,\n crossMarginSimulation?.data,\n currentPair,\n deadline,\n dispatch,\n provider,\n sdk,\n signer,\n slippage,\n tradeSide,\n tradeType,\n userAddr,\n ]);\n\n return {\n marginToDeposit,\n isDisableBtn,\n tradePrice,\n onTradeMarket,\n onTradeLimit,\n onTradeScaledLimit,\n onTradeCrossMarket,\n };\n}\n","/**\n * @description Component-TradeFormFooter\n */\nimport './index.less';\n\nimport { Side } from '@synfutures/sdks-perp';\nimport { BigNumber } from 'ethers';\nimport { FC, memo, useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { FETCHING_STATUS } from '@/constants';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useCurrentPairByDevice } from '@/features/pair/hook';\nimport {\n useCanPlaceCrossMarketOrder,\n useLimitFormStatus,\n useMarketFormStateStatus,\n useScaleSimulation,\n useTradeSide,\n} from '@/features/trade/hooks';\n// import { useGa } from '@/hooks/useGa';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { ApproveWrapButton } from '@/pages/components/WalletStatus/ApproveButton';\n// import { GaCategory } from '@/utils/analytics';\n// import { getDisplayExpiry } from '@/utils/feature';\nimport Alert from '@/components/Alert';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { formatDisplayNumber } from '@/utils/numberUtil';\nimport { useTradeFooterFormState } from './useTradeFooterStatus';\ninterface IPropTypes {\n disableBtn?: boolean;\n onTradeSuccess?: () => void;\n tradeType: TRADE_TYPE;\n}\nconst TradeFormFooter: FC = function ({ disableBtn, tradeType }) {\n const { deviceType } = useMediaQueryDevice();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const marketFormStatus = useMarketFormStateStatus(chainId);\n const limitFormStatus = useLimitFormStatus(chainId);\n const tradeSide = useTradeSide(chainId);\n const { t } = useTranslation();\n const currentPair = useCurrentPairByDevice(chainId);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const canPlaceCrossMarketOrder = useCanPlaceCrossMarketOrder(chainId);\n const fetchingStatus = useMemo(() => {\n switch (tradeType) {\n case TRADE_TYPE.LIMIT:\n return limitFormStatus;\n case TRADE_TYPE.SCALE_LIMIT:\n return false;\n default:\n return marketFormStatus;\n }\n }, [tradeType, marketFormStatus, limitFormStatus]);\n const scaleLimitSimulation = useScaleSimulation(chainId);\n\n const {\n marginToDeposit,\n isDisableBtn,\n tradePrice,\n onTradeLimit,\n onTradeMarket,\n onTradeScaledLimit,\n onTradeCrossMarket,\n } = useTradeFooterFormState(tradeType, currentPair);\n\n const tradeText = useMemo(() => {\n if (tradeType === TRADE_TYPE.SCALE_LIMIT) {\n return t('common.preview');\n }\n return tradeSide === Side.LONG ? t('common.buyUpper') : t('common.sellUpper');\n }, [tradeSide, t, tradeType]);\n const signer = useWalletSigner();\n\n const onClickTradeButton = useCallback(\n async (originalSize: BigNumber) => {\n if (chainId && userAddr && signer && currentPair) {\n try {\n if (tradeType === TRADE_TYPE.SCALE_LIMIT) {\n onTradeScaledLimit();\n }\n if (tradeType === TRADE_TYPE.MARKET) {\n onTradeMarket(originalSize);\n } else if (tradeType === TRADE_TYPE.LIMIT) {\n canPlaceCrossMarketOrder ? onTradeCrossMarket() : onTradeLimit();\n }\n } catch (e) {}\n }\n },\n [\n chainId,\n userAddr,\n signer,\n currentPair,\n tradeType,\n onTradeScaledLimit,\n onTradeMarket,\n canPlaceCrossMarketOrder,\n onTradeCrossMarket,\n onTradeLimit,\n ],\n );\n return (\n
\n {tradeType === TRADE_TYPE.SCALE_LIMIT && scaleLimitSimulation?.data && !scaleLimitSimulation?.message && (\n \n )}\n\n currentPosition && onClickTradeButton(currentPosition.size)}>\n {tradeText}\n <>   {tradePrice ? '@ ' + formatDisplayNumber({ num: tradePrice || '', type: 'price' }) : ''} \n \n
\n );\n};\n\nexport default memo(TradeFormFooter);\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconPercentAdd = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 25,\n viewBox: \"0 0 25 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.0547 7.30078C12.676 7.30078 13.1797 7.80446 13.1797 8.42578V11.8008H16.5547C17.176 11.8008 17.6797 12.3045 17.6797 12.9258C17.6797 13.5471 17.176 14.0508 16.5547 14.0508H13.1797V17.4258C13.1797 18.0471 12.676 18.5508 12.0547 18.5508C11.4334 18.5508 10.9297 18.0471 10.9297 17.4258V14.0508H7.55469C6.93337 14.0508 6.42969 13.5471 6.42969 12.9258C6.42969 12.3045 6.93337 11.8008 7.55469 11.8008H10.9297V8.42578C10.9297 7.80446 11.4334 7.30078 12.0547 7.30078Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconPercentAdd);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_percent_add.d062f10db08cea45d7055d77e72eee5a.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconPercentMinus = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 25,\n height: 25,\n viewBox: \"0 0 25 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.42969 12.9258C6.42969 12.3045 6.93337 11.8008 7.55469 11.8008H16.5547C17.176 11.8008 17.6797 12.3045 17.6797 12.9258C17.6797 13.5471 17.176 14.0508 16.5547 14.0508H7.55469C6.93337 14.0508 6.42969 13.5471 6.42969 12.9258Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconPercentMinus);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_percent_minus.62d41267d381915bce4fc94b42679922.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconRebate = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_7930_1758)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.5591 4.5468C5.50612 4.38733 5.40426 4.24859 5.26799 4.15026C5.13171 4.05194 4.96794 3.99902 4.7999 3.99902C4.63185 3.99902 4.46808 4.05194 4.3318 4.15026C4.19553 4.24859 4.09368 4.38733 4.0407 4.5468L3.4943 6.1876C3.45504 6.30555 3.38883 6.41273 3.30093 6.50063C3.21302 6.58853 3.10585 6.65474 2.9879 6.694L1.3471 7.2404C1.18762 7.29338 1.04888 7.39523 0.950557 7.53151C0.852232 7.66778 0.799316 7.83156 0.799316 7.9996C0.799316 8.16765 0.852232 8.33142 0.950557 8.4677C1.04888 8.60397 1.18762 8.70582 1.3471 8.7588L2.9879 9.306C3.10576 9.34518 3.21288 9.41127 3.30078 9.49903C3.38867 9.58678 3.45493 9.6938 3.4943 9.8116L4.0407 11.4524C4.09368 11.6119 4.19553 11.7506 4.3318 11.8489C4.46808 11.9473 4.63185 12.0002 4.7999 12.0002C4.96794 12.0002 5.13171 11.9473 5.26799 11.8489C5.40426 11.7506 5.50612 11.6119 5.5591 11.4524L6.1055 9.8116C6.14476 9.69365 6.21096 9.58647 6.29887 9.49857C6.38677 9.41067 6.49395 9.34446 6.6119 9.3052L8.2527 8.7588C8.41217 8.70582 8.55091 8.60397 8.64923 8.4677C8.74756 8.33142 8.80048 8.16765 8.80048 7.9996C8.80048 7.83156 8.74756 7.66778 8.64923 7.53151C8.55091 7.39523 8.41217 7.29338 8.2527 7.2404L6.6119 6.694C6.49395 6.65474 6.38677 6.58853 6.29887 6.50063C6.21096 6.41273 6.14476 6.30555 6.1055 6.1876L5.5591 4.5468Z\",\n fill: \"#00BFBF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.3,\n d: \"M10.8687 10.5507C11.0049 10.649 11.1068 10.7877 11.1598 10.9472L11.3062 11.388C11.3455 11.5058 11.4118 11.6128 11.4997 11.7006C11.5876 11.7883 11.6947 11.8544 11.8126 11.8936L12.2534 12.0408C12.4129 12.0938 12.5516 12.1956 12.6499 12.3319C12.7482 12.4682 12.8012 12.632 12.8012 12.8C12.8012 12.968 12.7482 13.1318 12.6499 13.2681C12.5516 13.4044 12.4129 13.5062 12.2534 13.5592L11.8126 13.7056C11.6948 13.745 11.5878 13.8112 11.5 13.8991C11.4122 13.987 11.3462 14.0941 11.307 14.212L11.1598 14.6528C11.1068 14.8123 11.0049 14.951 10.8687 15.0493C10.7324 15.1477 10.5686 15.2006 10.4006 15.2006C10.2325 15.2006 10.0688 15.1477 9.93248 15.0493C9.79621 14.951 9.69436 14.8123 9.64138 14.6528L9.49498 14.212C9.45572 14.094 9.38951 13.9869 9.30161 13.899C9.21371 13.8111 9.10653 13.7449 8.98858 13.7056L8.54778 13.5592C8.38831 13.5062 8.24957 13.4044 8.15124 13.2681C8.05292 13.1318 8 12.968 8 12.8C8 12.632 8.05292 12.4682 8.15124 12.3319C8.24957 12.1956 8.38831 12.0938 8.54778 12.0408L8.98858 11.8944C9.10638 11.855 9.2134 11.7888 9.30116 11.7009C9.38891 11.613 9.455 11.5059 9.49418 11.388L9.64138 10.9472C9.69436 10.7877 9.79621 10.649 9.93248 10.5507C10.0688 10.4523 10.2325 10.3994 10.4006 10.3994C10.5686 10.3994 10.7324 10.4523 10.8687 10.5507Z\",\n fill: \"#00BFBF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.6,\n d: \"M12.5067 0.983316C12.6496 1.1001 12.7477 1.26269 12.7844 1.44354L12.9756 2.39714C13.0066 2.55215 13.0827 2.69452 13.1945 2.80629C13.3062 2.91805 13.4486 2.99421 13.6036 3.02514L14.5572 3.21554C14.7389 3.25147 14.9026 3.34936 15.0201 3.49248C15.1377 3.6356 15.202 3.8151 15.202 4.00034C15.202 4.18557 15.1377 4.36507 15.0201 4.50819C14.9026 4.65132 14.7389 4.7492 14.5572 4.78514L13.6036 4.97554C13.4486 5.00646 13.3062 5.08262 13.1945 5.19439C13.0827 5.30616 13.0066 5.44853 12.9756 5.60354L12.7852 6.55714C12.7493 6.73885 12.6514 6.90247 12.5083 7.02006C12.3652 7.13765 12.1857 7.20193 12.0004 7.20193C11.8152 7.20193 11.6357 7.13765 11.4926 7.02006C11.3494 6.90247 11.2516 6.73885 11.2156 6.55714L11.0252 5.60354C10.9943 5.44853 10.9181 5.30616 10.8064 5.19439C10.6946 5.08262 10.5522 5.00646 10.3972 4.97554L9.44362 4.78514C9.26191 4.7492 9.09829 4.65132 8.9807 4.50819C8.86311 4.36507 8.79883 4.18557 8.79883 4.00034C8.79883 3.8151 8.86311 3.6356 8.9807 3.49248C9.09829 3.34936 9.26191 3.25147 9.44362 3.21554L10.3972 3.02514C10.5521 2.99407 10.6943 2.91785 10.8059 2.80609C10.9175 2.69433 10.9935 2.55204 11.0244 2.39714L11.2164 1.44354C11.2531 1.26269 11.3513 1.1001 11.4941 0.983316C11.637 0.866531 11.8159 0.802734 12.0004 0.802734C12.185 0.802734 12.3638 0.866531 12.5067 0.983316Z\",\n fill: \"#00BFBF\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_7930_1758\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconRebate);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_rebate.1be84f048243392f52b3c3daef3c6cc2.svg\";","/**\n * @description Component-SynInputNumber\n */\nimport './index.less';\n\nimport { useHover } from 'ahooks';\nimport classNames from 'classnames';\nimport React, { FC, useMemo, useRef } from 'react';\n\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\n\nimport { useMediaQueryDevice } from '../MediaQuery';\nimport { Tooltip } from '../ToolTip';\nimport { ReactComponent as PlusIcon } from './assets/icon_percent_add.svg';\nimport { ReactComponent as MinusIcon } from './assets/icon_percent_minus.svg';\n\ninterface IPropTypes {\n className: string;\n suffix?: string;\n disabled?: boolean;\n inputChanged: (value: number) => void;\n limitPrice: string | undefined;\n upperPrice: WrappedBigNumber | undefined;\n lowerPrice: WrappedBigNumber | undefined;\n minDisableTooltip?: React.ReactNode;\n maxDisableTooltip?: React.ReactNode;\n vertical?: boolean;\n}\nconst SynInputNumber: FC = function ({\n inputChanged,\n className,\n disabled,\n limitPrice,\n minDisableTooltip,\n maxDisableTooltip,\n upperPrice,\n lowerPrice,\n vertical,\n}) {\n const minRef = useRef(null);\n const isHoveringMin = useHover(minRef);\n const maxRef = useRef(null);\n const isHoveringMax = useHover(maxRef);\n const { deviceType } = useMediaQueryDevice();\n const disablePlus = useMemo(() => upperPrice?.lte(limitPrice || 0), [upperPrice, limitPrice]);\n const disableMinus = useMemo(() => lowerPrice && lowerPrice?.gte(limitPrice || 0), [lowerPrice, limitPrice]);\n\n return (\n
\n \n {\n if (!disabled && !disableMinus) {\n gtag('event', 'adjust_price', {\n adjust_price: 'plus_or_mins', //plus_or_mins, enter, click_order_book\n });\n inputChanged(-1);\n }\n }}>\n \n \n \n \n {\n if (!disabled && !disablePlus) {\n gtag('event', 'adjust_price', {\n adjust_price: 'plus_or_mins', //plus_or_mins, enter, click_order_book\n });\n inputChanged(1);\n }\n }}>\n \n \n \n
\n );\n};\n\nexport default SynInputNumber;\n","/**\n * @description Component-TokenSelectDrawer\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC, useMemo, useState } from 'react';\n\nimport { ReactComponent as ChevronDown } from '@/assets/svg/icon_chevron_down.svg';\nimport Drawer from '@/components/Drawer';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n value: string | undefined;\n onTokenChange: (value: string) => void;\n disabled?: boolean;\n options: { value: string | undefined; label: string | undefined }[];\n}\nconst TokenSelectDrawer: FC = function ({ value, onTokenChange, options, disabled }) {\n const [open, setOpen] = useState(false);\n const selectedOption = useMemo(() => options.find((op) => op.value === value), [options, value]);\n return (\n <>\n
!disabled && setOpen(true)} className=\"syn-token-select-drawer-selected\">\n {' '}\n {selectedOption?.label}\n \n
\n setOpen(false)}>\n {options.map((option) => (\n {\n onTokenChange(option?.value || '');\n setOpen(false);\n }}\n className={classNames('syn-token-select-drawer-item', { active: value === option.value })}>\n {option.label}\n \n ))}\n \n \n );\n};\n\nexport default TokenSelectDrawer;\n","/**\n * @description Component-TradeFrombaseMobile\n */\nimport './index.less';\n\nimport { Side, TokenInfo } from '@synfutures/sdks-perp';\nimport { useDebounceEffect } from 'ahooks';\nimport React, { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport SwitchBtn from '@/components/Button/SwitchBtn';\nimport { TradeLeverage } from '@/components/TradeLeverage/TradeLeverage';\nimport { DEFAULT_DECIMALS } from '@/constants/global';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { setPairLeverageSwitchChecked, setTradeFormAmount, updateSimulateError } from '@/features/trade/actions';\nimport { usePairLeverageSwitchChecked, useTradeFormLeverage, useTradeType } from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport FloatingInput from '@/pages/components/FloatingInput';\nimport { DYNAMIC } from '@/types/storage';\nimport { parsedEthersError } from '@/utils/error';\nimport { getSavedPairLeverage, savePairLeverage } from '@/utils/localstorage';\nimport { inputNumChecker, toBN } from '@/utils/numberUtil';\n\nimport { calcBaseSizeByQuote, calcQuoteSizeByBase } from '@/utils/trade';\nimport TokenSelectDrawer from './TokenSelectDrawer';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n tradeSide: Side;\n disabled?: boolean;\n state: {\n baseAmount: string | undefined;\n quoteAmount?: string | undefined;\n marginAmount?: string | undefined;\n };\n pair: WrappedPair | undefined;\n baseToken: TokenInfo | undefined;\n quoteToken: TokenInfo | undefined;\n marginToken: TokenInfo | undefined;\n price: string | undefined;\n amountStrChanged?: (val: string) => void;\n leverageChanged: (val: string) => void;\n isShowAmountWarning?: boolean;\n amountWarning?: JSX.Element;\n isShowInfoAlert?: boolean;\n infoAlert?: JSX.Element;\n showLeverageSwitch?: boolean;\n simulationMessage?: string;\n leverageSwitched?: (checked: boolean) => void;\n}\nconst TradeFormBaseMobile: FC = function ({\n state,\n baseToken,\n quoteToken,\n tradeSide,\n pair,\n disabled,\n amountStrChanged,\n leverageChanged,\n showLeverageSwitch,\n leverageSwitched,\n price,\n}) {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const tradeType = useTradeType(chainId);\n const sdkContext = useSDK(chainId);\n const leverage = useTradeFormLeverage(chainId, tradeType, pair?.maxLeverage);\n const [inputTokenAddr, setInputTokenAddr] = useState(baseToken?.address);\n const [showLeverageSelector, setShowLeverageSelector] = useState(true);\n const leverageSwitchChecked = usePairLeverageSwitchChecked(chainId, userAddr, pair?.id);\n const options = useMemo(\n () => [\n {\n value: baseToken?.address,\n label: baseToken?.symbol,\n },\n {\n value: quoteToken?.address,\n label: quoteToken?.symbol,\n },\n ],\n [baseToken?.address, baseToken?.symbol, quoteToken?.address, quoteToken?.symbol],\n );\n const onTokenChange = useCallback((tokenAddr: string) => setInputTokenAddr(tokenAddr), []);\n const updateQuoteAmountByBase = useCallback(\n async (baseAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n try {\n let quoteAmount;\n if (baseAmountStr) {\n quoteAmount = calcQuoteSizeByBase(baseAmountStr, price || 1, pair.isInverse);\n }\n\n dispatch(\n setTradeFormAmount({\n chainId,\n quoteAmount: quoteAmount\n ? inputNumChecker(\n WrappedBigNumber.from(quoteAmount).stringValue,\n pair?.rootInstrument.marginToken.decimals,\n )\n : baseAmountStr,\n }),\n );\n } catch (e) {\n const parsedError = parsedEthersError(e);\n if (parsedError) {\n dispatch(\n updateSimulateError({\n type: tradeType,\n errMessage: parsedError?.errorMsg,\n chainId,\n }),\n );\n }\n }\n }\n },\n [chainId, sdkContext, pair, tradeType, dispatch, price],\n );\n const baseInputAmountStrChanged = useCallback(\n (inputAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n dispatch(\n setTradeFormAmount({\n chainId,\n baseAmount: inputAmountStr,\n }),\n );\n amountStrChanged && amountStrChanged(inputAmountStr);\n updateQuoteAmountByBase(inputAmountStr);\n }\n },\n [chainId, sdkContext, pair, dispatch, amountStrChanged, updateQuoteAmountByBase],\n );\n\n const leverageInputAmountStrChanged = useCallback(\n async (inputAmountStr: string) => {\n leverageChanged && leverageChanged(inputAmountStr);\n },\n [leverageChanged],\n );\n const updateBaseAmountByQuote = useCallback(\n async (quoteAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n try {\n let baseAmount;\n if (quoteAmountStr) {\n baseAmount = calcBaseSizeByQuote(quoteAmountStr, price || 1, pair.isInverse);\n }\n const checkedBaseAmount = baseAmount\n ? inputNumChecker(WrappedBigNumber.from(baseAmount).stringValue, baseToken?.decimals || DEFAULT_DECIMALS)\n : quoteAmountStr;\n\n amountStrChanged && amountStrChanged(checkedBaseAmount);\n dispatch(\n setTradeFormAmount({\n chainId,\n baseAmount: checkedBaseAmount,\n }),\n );\n } catch (e) {\n const parsedError = parsedEthersError(e);\n if (parsedError) {\n dispatch(\n updateSimulateError({\n type: tradeType,\n errMessage: parsedError?.errorMsg,\n chainId,\n }),\n );\n }\n }\n }\n },\n [chainId, sdkContext, pair, tradeType, price, baseToken?.decimals, amountStrChanged, dispatch],\n );\n const quoteInputAmountStrChanged = useCallback(\n (inputAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n dispatch(\n setTradeFormAmount({\n chainId,\n quoteAmount: inputAmountStr,\n }),\n );\n updateBaseAmountByQuote(inputAmountStr);\n }\n },\n [chainId, pair, dispatch, sdkContext, updateBaseAmountByQuote],\n );\n const inputAmountStrChanged = useCallback(\n (amount: string) => {\n if (inputTokenAddr === baseToken?.address) {\n baseInputAmountStrChanged(amount);\n } else {\n quoteInputAmountStrChanged(amount);\n }\n },\n [baseInputAmountStrChanged, baseToken?.address, inputTokenAddr, quoteInputAmountStrChanged],\n );\n useDebounceEffect(\n () => {\n state.baseAmount && !toBN(state.baseAmount || 0).eq(0) && updateQuoteAmountByBase(state.baseAmount);\n\n // only depend on price\n },\n [price],\n { wait: 0 },\n );\n useEffect(() => {\n if (pair?.isInverse) {\n state.quoteAmount && updateBaseAmountByQuote(state.quoteAmount);\n } else {\n state.baseAmount && updateQuoteAmountByBase(state.baseAmount);\n }\n }, [tradeSide]);\n useEffect(() => {\n setInputTokenAddr(baseToken?.address);\n // only this\n }, [chainId, baseToken]);\n useEffect(() => {\n const leverageSaved = getSavedPairLeverage(userAddr, chainId, pair?.id, TRADE_TYPE.MARKET);\n const dynamicSaved = getSavedPairLeverage(userAddr, chainId, pair?.id, DYNAMIC);\n if (!showLeverageSwitch) {\n setShowLeverageSelector(true);\n } else {\n const switchChecked = !!leverageSaved && !dynamicSaved;\n setShowLeverageSelector(switchChecked);\n chainId &&\n userAddr &&\n pair &&\n dispatch(\n setPairLeverageSwitchChecked({\n chainId,\n userAddr,\n pairId: pair?.id,\n checked: switchChecked,\n }),\n );\n }\n }, [showLeverageSwitch]);\n\n return (\n
\n \n }\n decimals={pair?.rootInstrument.marginToken.decimals}\n value={(inputTokenAddr === baseToken?.address ? state.baseAmount : state.quoteAmount) || ''}\n onChange={inputAmountStrChanged}\n />\n
\n \n {showLeverageSwitch && (\n {\n chainId &&\n userAddr &&\n pair &&\n dispatch(\n setPairLeverageSwitchChecked({\n chainId,\n userAddr,\n pairId: pair?.id,\n checked,\n }),\n );\n setShowLeverageSelector(checked);\n\n if (pair && userAddr && chainId) {\n savePairLeverage(userAddr, chainId, pair?.id, DYNAMIC, checked ? '' : DYNAMIC);\n }\n leverageSwitched && leverageSwitched(checked);\n }}\n isChecked={leverageSwitchChecked}\n />\n )}\n
\n
\n );\n};\n\nexport default TradeFormBaseMobile;\n","/**\n * @description Component-TradeLimitInputMessages\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/Alert';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useLimitFormState } from '@/features/trade/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n inputTouched?: boolean;\n inputTouchedChange: (entering: boolean) => void;\n}\nconst TradeLimitInputMessages: FC = function ({ inputTouched }) {\n const chainId = useChainId();\n const { t } = useTranslation();\n const limitFormState = useLimitFormState(chainId);\n\n return (\n
\n {inputTouched &&\n WrappedBigNumber.from(limitFormState.alignedPrice || 0)?.notEq(limitFormState.limitPrice || 0) && (\n \n }}\n values={{ price: limitFormState.alignedPrice }}\n />\n
\n }\n type=\"info\"\n showIcon\n />\n )}\n \n );\n};\n\nexport default TradeLimitInputMessages;\n","/**\n * @description Component-TradeLimitFormMobile\n */\nimport './index.less';\n\nimport { PEARL_SPACING } from '@synfutures/sdks-perp';\nimport { useDebounceFn } from 'ahooks';\n// import BN from 'bignumber.js';\nimport classNames from 'classnames';\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport SynInputNumber from '@/components/SynInputNumber';\nimport { FETCHING_STATUS } from '@/constants';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useWrappedPortfolioByPairId } from '@/features/account/portfolioHook';\nimport { useCurrentPairFromUrl, useGetAlignedPrice, usePairLimitPriceRange } from '@/features/pair/hook';\nimport { orderSimulate, setLimitPrice, setTradeFormLeverage } from '@/features/trade/actions';\nimport {\n useLimitFormState,\n useLimitFormStatus,\n useLimitPriceChangeWhenOutOfRange,\n useTradeDefaultLeverage,\n useTradeMaxLeverage,\n useTradeSide,\n} from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport FloatingInput from '@/pages/components/FloatingInput';\nimport { getSavedPairLeverage } from '@/utils/localstorage';\nimport { formatNumber, inputNumChecker, toWad } from '@/utils/numberUtil';\n\nimport { useWrappedOrderList } from '@/features/account/orderHook';\nimport { useAvailableTokenBalance } from '@/features/balance/hook';\nimport TradeFormBaseMobile from '../TradeFormMobile/TradeFormbaseMobile';\nimport TradeLimitInputMessages from './TradeLimitInputMessages';\ninterface IPropTypes {\n className?: string;\n inputTouchedChange: (entering: boolean) => void;\n inputTouched: boolean;\n}\nconst TradeLimitFormMobile: FC = function ({ className, inputTouchedChange, inputTouched }) {\n const dispatch = useAppDispatch();\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const tradeSide = useTradeSide(chainId);\n const limitFormState = useLimitFormState(chainId);\n const limitFormStatus = useLimitFormStatus(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const sdkContext = useSDK(chainId);\n const orders = useWrappedOrderList(chainId, userAddr, currentPair?.id);\n const maxLeverage = useTradeMaxLeverage(currentPair?.maxLeverage);\n const tokenBalance = useAvailableTokenBalance(currentPair?.rootInstrument.marginToken?.address, chainId);\n const portfolio = useWrappedPortfolioByPairId(chainId, userAddr, currentPair?.id);\n const defaultLeverage = useTradeDefaultLeverage(maxLeverage);\n const [lowerPrice, upperPrice] = usePairLimitPriceRange(currentPair, tradeSide, sdkContext);\n const getAlignPriceWad = useGetAlignedPrice(sdkContext, currentPair);\n const [priceInputFocused, setPriceInputFocused] = useState(false);\n const changelimitPriceWhenOutOfRange = useLimitPriceChangeWhenOutOfRange(chainId, priceInputFocused);\n const limitPriceStrChanged = useCallback(\n async (inputAmountStr: string) => {\n inputAmountStr = inputNumChecker(inputAmountStr, currentPair?.priceDecimal);\n const alignedPrice = await getAlignPriceWad(inputAmountStr, tradeSide);\n\n chainId &&\n dispatch(\n setLimitPrice({\n chainId,\n limitPrice: inputAmountStr,\n alignedPrice: inputNumChecker(alignedPrice?.adjustPrice.stringValue || '', currentPair?.priceDecimal),\n }),\n );\n },\n [chainId, dispatch, getAlignPriceWad, currentPair?.priceDecimal, tradeSide],\n );\n\n const limitPercentageChanged = useCallback(\n async (multiple: number) => {\n try {\n if (currentPair && sdkContext) {\n gtag('event', 'adjust_price', {\n adjust_price: 'enter', //plus_or_mins, enter, click_order_book\n });\n\n const alignedPrice = await getAlignPriceWad(limitFormState.limitPrice || 0, tradeSide);\n if (alignedPrice) {\n const newPrice = WrappedBigNumber.from(\n await sdkContext.perp.calc.getWadAtTick(\n currentPair.instrumentAddr,\n alignedPrice.tick + PEARL_SPACING * multiple * (currentPair.isInverse ? -1 : 1),\n ),\n );\n const limitPrice = formatNumber(\n newPrice.stringValue,\n currentPair?.priceDecimal,\n false,\n // multiple > 0 ? BN.ROUND_DOWN : BN.ROUND_CEIL,\n );\n\n chainId &&\n dispatch(\n setLimitPrice({\n chainId,\n limitPrice,\n alignedPrice: inputNumChecker(alignedPrice?.adjustPrice.stringValue || '', currentPair?.priceDecimal),\n }),\n );\n }\n }\n } catch (error) {\n console.log('🚀 ~ file: index.tsx:132 ~ error:', error);\n }\n },\n [chainId, currentPair, dispatch, getAlignPriceWad, limitFormState.limitPrice, sdkContext, tradeSide],\n );\n\n const fetchSimulation = useCallback(\n (leverage?: string) => {\n if (chainId && portfolio && sdkContext) {\n dispatch(\n orderSimulate({\n chainId,\n sdkContext,\n base: toWad(limitFormState.baseAmount || 0),\n tradeSide,\n limitPrice: limitFormState.limitPrice,\n portfolio,\n leverage: leverage ? toWad(leverage) : undefined,\n }),\n );\n }\n },\n [chainId, portfolio, sdkContext, dispatch, limitFormState.baseAmount, limitFormState.limitPrice, tradeSide],\n );\n\n const { run: debouncedSimulateOrder } = useDebounceFn(\n (leverage: string | undefined) => {\n fetchSimulation(leverage);\n },\n { wait: 500 },\n );\n\n const leverageChanged = useCallback(\n (leverage: string) => {\n if (chainId) {\n const baseWad = toWad(limitFormState.baseAmount || 0);\n dispatch(\n setTradeFormLeverage({\n chainId,\n leverage: leverage,\n }),\n );\n // no simulation when base zero\n !baseWad.eq(0) && debouncedSimulateOrder(leverage);\n }\n },\n [chainId, debouncedSimulateOrder, dispatch, limitFormState.baseAmount],\n );\n\n const adjustLimitPrice = useMemo(() => {\n return limitFormState?.limitPrice ? inputNumChecker(limitFormState?.limitPrice, currentPair?.priceDecimal) : '';\n }, [currentPair?.priceDecimal, limitFormState?.limitPrice]);\n\n const alignLimitPrice = useMemo(() => {\n console.log(\n '🚀 ~ alignLimitPrice ~ limitFormState?.limitPrice:',\n currentPair?.isInverse,\n limitFormState?.limitPrice,\n );\n if (currentPair?.isInverse && WrappedBigNumber.from(limitFormState?.limitPrice || 0).gt(0)) {\n // const price = getAdjustTradePrice(\n // WrappedBigNumber.from(limitFormState?.limitPrice || 0),\n // currentPair?.isInverse || false,\n // );\n // console.log('🚀 ~ alignLimitPrice ~ price:', price, currentPair?.isInverse, limitFormState?.limitPrice);\n // return price.stringValue;\n }\n return limitFormState?.limitPrice;\n }, [currentPair?.isInverse, limitFormState?.limitPrice]);\n\n useEffect(() => {\n if (chainId && userAddr && currentPair?.id) {\n const leverageSaved = getSavedPairLeverage(userAddr, chainId, currentPair.id, TRADE_TYPE.LIMIT);\n\n dispatch(\n setTradeFormLeverage({\n chainId,\n leverage: leverageSaved || defaultLeverage.toString(),\n }),\n );\n }\n // only depend on chainId userAddr and currentPair.id\n }, [chainId, userAddr, currentPair?.id]);\n\n useEffect(() => {\n debouncedSimulateOrder(limitFormState.leverage);\n // when limit price change or base amount change or orders or tokenbalance change\n }, [\n limitFormState.limitPrice,\n orders?.length,\n tokenBalance?.stringValue,\n limitFormState.baseAmount,\n debouncedSimulateOrder,\n ]);\n\n return (\n
\n {\n inputTouchedChange(true);\n setPriceInputFocused(false);\n changelimitPriceWhenOutOfRange();\n }}\n onFocus={() => {\n inputTouchedChange(false);\n\n setPriceInputFocused(true);\n }}\n label={t('common.price') + `(${currentPair?.rootInstrument.priceToken.symbol})`}\n value={adjustLimitPrice}\n decimals={currentPair?.priceDecimal}\n onChange={limitPriceStrChanged}\n suffix={\n \n }\n />\n \n \n
\n );\n};\nexport default TradeLimitFormMobile;\n","/**\n * @description Component-TradeMarketFormMobile\n */\nimport './index.less';\n\nimport { useDebounceFn } from 'ahooks';\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useEffect } from 'react';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { TRADE_LEVERAGE_THRESHOLDS } from '@/constants/global';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useAvailableTokenBalance } from '@/features/balance/hook';\nimport { useGlobalConfig } from '@/features/global/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport {\n clearMarketTradeSimulation,\n setTradeFormLeverage,\n setTradeFormLeverageAndMargin,\n simulateMarketTrade,\n} from '@/features/trade/actions';\nimport {\n useMarketFormState,\n useMarketFormStateStatus,\n useMarketSimulation,\n useTradeDefaultLeverage,\n useTradeDefaultSide,\n useTradeMaxLeverage,\n useTradeSide,\n} from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { DYNAMIC } from '@/types/storage';\nimport { getSavedPairLeverage, savePairLeverage } from '@/utils/localstorage';\nimport { toBN, toWad } from '@/utils/numberUtil';\n\nimport { useIsFetchedSinglePortfolio } from '@/features/portfolio/hook';\nimport TradeFormBaseMobile from '../TradeFormMobile/TradeFormbaseMobile';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradeMarketFormMobile: FC = function () {\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const tradeSide = useTradeSide(chainId);\n const marketFormState = useMarketFormState(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const sdkContext = useSDK(chainId);\n useTradeDefaultSide(currentPair);\n const maxLeverage = useTradeMaxLeverage(currentPair?.maxLeverage);\n const defaultLeverage = useTradeDefaultLeverage(maxLeverage);\n const userAddr = useUserAddr();\n const marketFormStatus = useMarketFormStateStatus(chainId);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const tradeSimulation = useMarketSimulation(chainId);\n const { slippage } = useGlobalConfig(chainId);\n const availableBalance = useAvailableTokenBalance(currentPair?.rootInstrument?.marginToken?.address, chainId, true);\n const isFetchedPortfolio = useIsFetchedSinglePortfolio(\n chainId,\n userAddr,\n currentPair?.instrumentAddr,\n currentPair?.expiry,\n );\n\n const fetchSimulation = useCallback(() => {\n if (chainId && currentPosition && sdkContext && userAddr) {\n if (WrappedBigNumber.from(marketFormState?.baseAmount).lte(0)) {\n dispatch(clearMarketTradeSimulation({ chainId }));\n return;\n }\n dispatch(\n simulateMarketTrade({\n chainId,\n sdkContext,\n position: currentPosition,\n // base: marketFormState.baseAmount,\n tradeSide,\n margin: '0',\n slippage: Number(slippage),\n userAddr,\n maxLeverage,\n }),\n );\n }\n }, [\n chainId,\n userAddr,\n currentPosition,\n sdkContext,\n marketFormState.baseAmount,\n dispatch,\n tradeSide,\n slippage,\n maxLeverage,\n ]);\n const fetchSimulationWitLeverage = useCallback(\n (leverage?: string) => {\n if (chainId && currentPosition && sdkContext && userAddr) {\n if (WrappedBigNumber.from(marketFormState?.baseAmount).lte(0)) {\n dispatch(clearMarketTradeSimulation({ chainId }));\n\n return;\n }\n const savedLeverage = getSavedPairLeverage(userAddr, chainId, currentPair?.id, TRADE_TYPE.MARKET);\n dispatch(\n simulateMarketTrade({\n chainId,\n sdkContext,\n position: currentPosition,\n // base: marketFormState.baseAmount,\n leverage: leverage || savedLeverage || marketFormState.leverage,\n tradeSide,\n slippage: Number(slippage),\n userAddr,\n maxLeverage,\n }),\n );\n }\n },\n [\n chainId,\n currentPosition,\n sdkContext,\n userAddr,\n marketFormState.baseAmount,\n marketFormState.leverage,\n currentPair?.id,\n dispatch,\n tradeSide,\n slippage,\n maxLeverage,\n ],\n );\n const { run: simulateTradeDebounced } = useDebounceFn(\n () => {\n fetchSimulation();\n },\n { wait: 400 },\n );\n const { run: simulateTradeWithLeverageDebounced } = useDebounceFn(\n (leverage?: string) => {\n fetchSimulationWitLeverage(leverage);\n },\n { wait: 400 },\n );\n\n const leverageChanged = useCallback(\n (leverage: string) => {\n if (chainId) {\n const baseWad = toWad(marketFormState.baseAmount || 0);\n\n dispatch(\n setTradeFormLeverageAndMargin({\n chainId,\n leverage: leverage,\n marginAmount: undefined,\n }),\n );\n // no simulation when base zero\n !baseWad.eq(0) && simulateTradeWithLeverageDebounced(leverage);\n }\n },\n [chainId, dispatch, marketFormState.baseAmount, simulateTradeWithLeverageDebounced],\n );\n const simulateFn = useCallback(() => {\n const dynamic = getSavedPairLeverage(userAddr, chainId, currentPosition?.rootPair.id, DYNAMIC);\n if (!toBN(marketFormState.baseAmount || 0).eq(0)) {\n if (dynamic) {\n simulateTradeDebounced();\n } else {\n simulateTradeWithLeverageDebounced();\n }\n }\n }, [\n chainId,\n currentPosition?.rootPair.id,\n marketFormState.baseAmount,\n simulateTradeDebounced,\n simulateTradeWithLeverageDebounced,\n userAddr,\n ]);\n\n const amountStrChanged = useCallback(() => {\n const dynamic = getSavedPairLeverage(userAddr, chainId, currentPair?.id, DYNAMIC);\n if (dynamic && currentPosition?.hasPosition) {\n simulateTradeDebounced();\n } else {\n simulateTradeWithLeverageDebounced();\n }\n }, [\n chainId,\n currentPair?.id,\n currentPosition?.hasPosition,\n simulateTradeDebounced,\n simulateTradeWithLeverageDebounced,\n userAddr,\n ]);\n\n useEffect(() => {\n simulateFn();\n }, [tradeSide]);\n\n useEffect(() => {\n if (\n chainId &&\n userAddr &&\n currentPair?.id &&\n isFetchedPortfolio &&\n maxLeverage !== TRADE_LEVERAGE_THRESHOLDS.DEFAULT\n ) {\n const leverageSaved = getSavedPairLeverage(userAddr, chainId, currentPosition?.rootPair.id, TRADE_TYPE.MARKET);\n let leverage =\n leverageSaved ||\n (currentPosition?.hasPosition\n ? currentPosition?.wrapAttribute('leverageWad').formatNormalNumberString(1)\n : defaultLeverage.toString());\n // make sure leverage is normal number\n if (WrappedBigNumber.from(leverage).lt(TRADE_LEVERAGE_THRESHOLDS.MIN)) {\n leverage = TRADE_LEVERAGE_THRESHOLDS.MIN.toString();\n }\n if (leverage !== leverageSaved && currentPosition?.rootPair.id) {\n savePairLeverage(userAddr, chainId, currentPosition?.rootPair.id, TRADE_TYPE.MARKET, leverage);\n }\n dispatch(\n setTradeFormLeverage({\n chainId,\n leverage,\n }),\n );\n }\n // must dep on all these\n }, [chainId, currentPosition?.rootPair.id, currentPosition?.id, isFetchedPortfolio, maxLeverage, defaultLeverage]);\n\n useEffect(() => {\n if (marketFormStatus !== FETCHING_STATUS.FETCHING) {\n // re simulate only when amount exists\n simulateFn();\n }\n }, [slippage]);\n\n useEffect(() => {\n if (marketFormStatus !== FETCHING_STATUS.FETCHING) {\n // simulate when fairPrice change\n simulateFn();\n }\n }, [currentPair?.fairPrice._hex]);\n\n useEffect(() => {\n if (marketFormStatus !== FETCHING_STATUS.FETCHING) {\n // simulate when balance change\n simulateFn();\n }\n }, [availableBalance?.stringValue]);\n\n return (\n
\n {\n amountStrChanged();\n }}\n leverageChanged={leverageChanged}\n quoteToken={currentPair?.rootInstrument.quoteToken}\n amountStrChanged={amountStrChanged}\n showLeverageSwitch={currentPosition?.hasPosition}\n marginToken={currentPair?.rootInstrument.marginToken}\n simulationMessage={tradeSimulation?.message}\n />\n
\n );\n};\n\nexport default TradeMarketFormMobile;\n","/**\n * @description Component-SettingsDrawer\n */\nimport './index.less';\n\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as LabelIcon } from '@/assets/svg/label_rebate.svg';\nimport Drawer from '@/components/Drawer';\n\ninterface IPropTypes {\n className?: string;\n onClose: (close: boolean) => void;\n open: boolean;\n}\nconst LimitDisabledDrawer: FC = function ({ onClose, open }) {\n const { t } = useTranslation();\n\n return (\n <>\n \n {t('common.limit')}\n \n \n }\n className=\"syn-limit-disabled-drawer reverse-header\"\n placement=\"bottom\"\n onClose={() => onClose(false)}\n destroyOnClose\n height={'auto'}>\n {t('common.tradePage.limitDisabled')}\n \n \n );\n};\n\nexport default LimitDisabledDrawer;\n","/**\n * @description Component-TradeFormSideMobile\n */\nimport './index.less';\n\nimport { Side } from '@synfutures/sdks-perp';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport SynTab from '@/components/SynTab';\nimport { FETCHING_STATUS } from '@/constants';\nimport { CHAIN_ID } from '@/constants/chain';\nimport { useLimitFormStatus, useMarketFormStateStatus, useTradeSide } from '@/features/trade/hooks';\ninterface IPropTypes {\n className?: string;\n chainId: CHAIN_ID | undefined;\n onSideChange: (key: string) => void;\n}\nconst TradeFormSideMobile: FC = function ({ chainId, onSideChange }) {\n const tradeSide = useTradeSide(chainId);\n const { t } = useTranslation();\n const marketFormStatus = useMarketFormStateStatus(chainId);\n const limitFormStatus = useLimitFormStatus(chainId);\n const disabled = useMemo(\n () => marketFormStatus === FETCHING_STATUS.FETCHING || limitFormStatus === FETCHING_STATUS.FETCHING,\n [limitFormStatus, marketFormStatus],\n );\n const tradeSides = useMemo(() => {\n return [\n {\n label: {t('common.buyUpper')},\n key: Side.LONG.toString(),\n value: Side.LONG.toString(),\n tabClass: 'LONG',\n },\n {\n label: {t('common.sellUpper')},\n key: Side.SHORT.toString(),\n value: Side.SHORT.toString(),\n tabClass: 'SHORT',\n },\n ];\n }, [t]);\n return (\n !disabled && onSideChange(key)}\n disabled={disabled}\n activeKey={tradeSide.toString().trim()}\n items={tradeSides}\n />\n );\n};\n\nexport default TradeFormSideMobile;\n","/**\n * @description Component-TradeFormMobile\n */\nimport './index.less';\n\nimport { Side } from '@synfutures/sdks-perp';\nimport { Tooltip } from 'antd';\nimport { FC, useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as LabelIcon } from '@/assets/svg/label_rebate.svg';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { useCurrentPairFromUrl, useGetDefaultLimitPrice, usePairDisabledForLimit } from '@/features/pair/hook';\nimport { setLimitPrice, setTradeFormSide, setTradeFormType } from '@/features/trade/actions';\nimport { useTradeSide, useTradeType } from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport WalletCardWrapper from '@/pages/components/WalletStatus/WalletCardWrapper';\nimport TradeformFooter from '@/pages/trade/TradeCard/TradeForm/tradeformFooter';\nimport { formatNumber } from '@/utils/numberUtil';\n\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport classNames from 'classnames';\nimport TradeLimitFormMobile from '../TradeLimitFormMobile';\nimport TradeMarketFormMobile from '../TradeMarketFormMobile';\nimport LimitDisabledDrawer from './LimitDisabledDrawer';\nimport TradeFormSideMobile from './TradeFormSideMobile';\ninterface IPropTypes {\n className?: string;\n}\nconst TradeFormMobile: FC = function ({}) {\n const chainId = useChainId();\n const { t } = useTranslation();\n const [openLimitDrawer, setOpenLimitDrawer] = useState(false);\n const dispatch = useAppDispatch();\n const tradeType = useTradeType(chainId);\n const dappConfig = useBackendChainConfig(chainId);\n const tradeSide = useTradeSide(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const [inputTouched, setInputTouched] = useState(false);\n const sdkContext = useSDK(chainId);\n const { inDisabledPairs } = usePairDisabledForLimit(currentPair);\n const getDefaultLimitPrice = useGetDefaultLimitPrice(currentPair, tradeSide, sdkContext);\n const setDefaultLimitPrice = useCallback(\n async (tradeSide?: Side) => {\n const defaultLimitPrice = await getDefaultLimitPrice(tradeSide);\n if (defaultLimitPrice) {\n const inputAmountStr = formatNumber(\n defaultLimitPrice.adjustPrice.stringValue,\n currentPair?.priceDecimal,\n false,\n );\n chainId &&\n dispatch(\n setLimitPrice({\n chainId,\n limitPrice: inputAmountStr,\n alignedPrice: inputAmountStr,\n }),\n );\n }\n },\n [chainId, currentPair?.priceDecimal, dispatch, getDefaultLimitPrice],\n );\n const onTradeSideChange = useCallback(\n async (key: string) => {\n const side = Number(key) as Side;\n chainId &&\n dispatch(\n setTradeFormSide({\n chainId,\n tradeSide: side,\n }),\n );\n setInputTouched(false);\n if (tradeType === TRADE_TYPE.LIMIT) {\n setDefaultLimitPrice(side);\n }\n },\n [chainId, dispatch, setDefaultLimitPrice, tradeType],\n );\n\n const tabList = [\n {\n key: TRADE_TYPE.MARKET.toString(),\n tab: t('common.tradePage.market'),\n },\n {\n key: TRADE_TYPE.LIMIT.toString(),\n tab: dappConfig?.trade?.isDisableLimitOrder ? (\n \n {t('common.limit')}\n \n ) : (\n
\n
\n {t('common.limit')}\n \n
\n
\n ),\n disabled: dappConfig?.trade?.isDisableLimitOrder,\n },\n ];\n const onTabChange = useCallback(\n (key: string) => {\n const tradeType = key as TRADE_TYPE;\n if (inDisabledPairs) {\n setOpenLimitDrawer(true);\n return;\n }\n chainId &&\n dispatch(\n setTradeFormType({\n chainId,\n tradeType,\n }),\n );\n if (tradeType === TRADE_TYPE.LIMIT) {\n setDefaultLimitPrice();\n }\n },\n [chainId, dispatch, inDisabledPairs, setDefaultLimitPrice],\n );\n\n useEffect(() => {\n setInputTouched(false);\n }, [tradeType]);\n return (\n <>\n }\n className=\"syn-trade-form-mobile\">\n \n {tradeType === TRADE_TYPE.MARKET && }\n {tradeType === TRADE_TYPE.LIMIT && (\n \n )}\n \n \n \n );\n};\n\nexport default TradeFormMobile;\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconSparkle16 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_7783_101824)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.55958 4.5472C5.5066 4.38773 5.40475 4.24899 5.26848 4.15066C5.1322 4.05234 4.96843 3.99942 4.80038 3.99942C4.63234 3.99942 4.46856 4.05234 4.33229 4.15066C4.19602 4.24899 4.09416 4.38773 4.04118 4.5472L3.49478 6.188C3.45552 6.30595 3.38932 6.41313 3.30141 6.50103C3.21351 6.58893 3.10633 6.65514 2.98838 6.6944L1.34758 7.2408C1.18811 7.29378 1.04937 7.39563 0.951046 7.53191C0.852721 7.66818 0.799805 7.83196 0.799805 8C0.799805 8.16804 0.852721 8.33182 0.951046 8.46809C1.04937 8.60437 1.18811 8.70622 1.34758 8.7592L2.98838 9.3064C3.10625 9.34558 3.21337 9.41166 3.30127 9.49942C3.38916 9.58718 3.45542 9.6942 3.49478 9.812L4.04118 11.4528C4.09416 11.6123 4.19602 11.751 4.33229 11.8493C4.46856 11.9477 4.63234 12.0006 4.80038 12.0006C4.96843 12.0006 5.1322 11.9477 5.26848 11.8493C5.40475 11.751 5.5066 11.6123 5.55958 11.4528L6.10598 9.812C6.14524 9.69405 6.21145 9.58687 6.29935 9.49897C6.38726 9.41107 6.49443 9.34486 6.61238 9.3056L8.25318 8.7592C8.41266 8.70622 8.5514 8.60437 8.64972 8.46809C8.74805 8.33182 8.80096 8.16804 8.80096 8C8.80096 7.83196 8.74805 7.66818 8.64972 7.53191C8.5514 7.39563 8.41266 7.29378 8.25318 7.2408L6.61238 6.6944C6.49443 6.65514 6.38726 6.58893 6.29935 6.50103C6.21145 6.41313 6.14524 6.30595 6.10598 6.188L5.55958 4.5472Z\",\n fill: \"#00BFBF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.3,\n d: \"M10.8687 10.5507C11.0049 10.649 11.1068 10.7877 11.1598 10.9472L11.3062 11.388C11.3455 11.5058 11.4118 11.6128 11.4997 11.7006C11.5876 11.7883 11.6947 11.8544 11.8126 11.8936L12.2534 12.0408C12.4129 12.0938 12.5516 12.1956 12.6499 12.3319C12.7482 12.4682 12.8012 12.632 12.8012 12.8C12.8012 12.968 12.7482 13.1318 12.6499 13.2681C12.5516 13.4044 12.4129 13.5062 12.2534 13.5592L11.8126 13.7056C11.6948 13.745 11.5878 13.8112 11.5 13.8991C11.4122 13.987 11.3462 14.0941 11.307 14.212L11.1598 14.6528C11.1068 14.8123 11.0049 14.951 10.8687 15.0493C10.7324 15.1477 10.5686 15.2006 10.4006 15.2006C10.2325 15.2006 10.0688 15.1477 9.93248 15.0493C9.79621 14.951 9.69436 14.8123 9.64138 14.6528L9.49498 14.212C9.45572 14.094 9.38951 13.9869 9.30161 13.899C9.21371 13.8111 9.10653 13.7449 8.98858 13.7056L8.54778 13.5592C8.38831 13.5062 8.24957 13.4044 8.15124 13.2681C8.05292 13.1318 8 12.968 8 12.8C8 12.632 8.05292 12.4682 8.15124 12.3319C8.24957 12.1956 8.38831 12.0938 8.54778 12.0408L8.98858 11.8944C9.10638 11.855 9.2134 11.7888 9.30116 11.7009C9.38891 11.613 9.455 11.5059 9.49418 11.388L9.64138 10.9472C9.69436 10.7877 9.79621 10.649 9.93248 10.5507C10.0688 10.4523 10.2325 10.3994 10.4006 10.3994C10.5686 10.3994 10.7324 10.4523 10.8687 10.5507Z\",\n fill: \"#00BFBF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.6,\n d: \"M12.5067 0.98298C12.6496 1.09976 12.7477 1.26235 12.7844 1.4432L12.9756 2.3968C13.0066 2.55181 13.0827 2.69418 13.1945 2.80595C13.3062 2.91772 13.4486 2.99387 13.6036 3.0248L14.5572 3.2152C14.7389 3.25114 14.9026 3.34902 15.0201 3.49214C15.1377 3.63527 15.202 3.81476 15.202 4C15.202 4.18524 15.1377 4.36473 15.0201 4.50786C14.9026 4.65098 14.7389 4.74886 14.5572 4.7848L13.6036 4.9752C13.4486 5.00613 13.3062 5.08228 13.1945 5.19405C13.0827 5.30582 13.0066 5.44819 12.9756 5.6032L12.7852 6.5568C12.7493 6.73852 12.6514 6.90213 12.5083 7.01972C12.3652 7.13731 12.1857 7.20159 12.0004 7.20159C11.8152 7.20159 11.6357 7.13731 11.4926 7.01972C11.3494 6.90213 11.2516 6.73852 11.2156 6.5568L11.0252 5.6032C10.9943 5.44819 10.9181 5.30582 10.8064 5.19405C10.6946 5.08228 10.5522 5.00613 10.3972 4.9752L9.44362 4.7848C9.26191 4.74886 9.09829 4.65098 8.9807 4.50786C8.86311 4.36473 8.79883 4.18524 8.79883 4C8.79883 3.81476 8.86311 3.63527 8.9807 3.49214C9.09829 3.34902 9.26191 3.25114 9.44362 3.2152L10.3972 3.0248C10.5521 2.99373 10.6943 2.91751 10.8059 2.80576C10.9175 2.694 10.9935 2.5517 11.0244 2.3968L11.2164 1.4432C11.2531 1.26235 11.3513 1.09976 11.4941 0.98298C11.637 0.866196 11.8159 0.802399 12.0004 0.802399C12.185 0.802399 12.3638 0.866196 12.5067 0.98298Z\",\n fill: \"#00BFBF\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_7783_101824\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconSparkle16);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_sparkle_16.04d8fba894c145df83a0ba91c81272c6.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreWhitepaper = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 13,\n height: 12,\n viewBox: \"0 0 13 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.63048 1.63073C3.14824 1.69559 2.9047 1.81265 2.73392 1.98358L2.73375 1.98375L2.73358 1.98392C2.56265 2.1547 2.44559 2.39824 2.38073 2.88048C2.3137 3.37889 2.3125 4.04134 2.3125 5V7C2.3125 7.95866 2.3137 8.62111 2.38073 9.11952C2.44559 9.60176 2.56265 9.8453 2.73358 10.0161L2.73375 10.0163L2.73392 10.0164C2.9047 10.1874 3.14824 10.3044 3.63048 10.3693C4.1289 10.4363 4.79134 10.4375 5.75 10.4375H6.75C7.70866 10.4375 8.37111 10.4363 8.86952 10.3693C9.35176 10.3044 9.5953 10.1874 9.76608 10.0164L9.76642 10.0161C9.93735 9.8453 10.0544 9.60176 10.1193 9.11952C10.1863 8.62111 10.1875 7.95866 10.1875 7V5C10.1875 4.04134 10.1863 3.3789 10.1193 2.88048C10.0544 2.39824 9.93735 2.1547 9.76642 1.98392L9.76625 1.98375L9.76608 1.98358C9.5953 1.81265 9.35176 1.69559 8.86952 1.63073C8.37111 1.5637 7.70866 1.5625 6.75 1.5625H5.75C4.79134 1.5625 4.1289 1.5637 3.63048 1.63073ZM5.70939 0.437501H6.79061C7.69883 0.437483 8.4373 0.437469 9.01948 0.515771C9.62646 0.597407 10.1472 0.773337 10.5619 1.18837C10.5619 1.18839 10.5619 1.1884 10.5619 1.18842C10.9767 1.60308 11.1526 2.12368 11.2342 2.73052C11.3125 3.3127 11.3125 4.05117 11.3125 4.95939V7.04062C11.3125 7.94883 11.3125 8.6873 11.2342 9.26948C11.1526 9.87632 10.9767 10.3969 10.5619 10.8116C10.1472 11.2266 9.62649 11.4026 9.01948 11.4842C8.43729 11.5625 7.69882 11.5625 6.79059 11.5625H5.70942C4.80118 11.5625 4.06271 11.5625 3.48052 11.4842C2.87351 11.4026 2.3528 11.2266 1.93808 10.8116C1.52326 10.3969 1.34739 9.87632 1.26577 9.26948C1.18747 8.6873 1.18748 7.94883 1.1875 7.04061V4.95939C1.18748 4.05117 1.18747 3.3127 1.26577 2.73052C1.3474 2.1236 1.5233 1.60295 1.93824 1.18826C2.35293 0.773308 2.87359 0.5974 3.48052 0.515771C4.0627 0.437469 4.80117 0.437483 5.70939 0.437501ZM3.6875 4C3.6875 3.68934 3.93934 3.4375 4.25 3.4375H8.25C8.56066 3.4375 8.8125 3.68934 8.8125 4C8.8125 4.31066 8.56066 4.5625 8.25 4.5625H4.25C3.93934 4.5625 3.6875 4.31066 3.6875 4ZM3.6875 6C3.6875 5.68934 3.93934 5.4375 4.25 5.4375H8.25C8.56066 5.4375 8.8125 5.68934 8.8125 6C8.8125 6.31066 8.56066 6.5625 8.25 6.5625H4.25C3.93934 6.5625 3.6875 6.31066 3.6875 6ZM3.6875 8C3.6875 7.68934 3.93934 7.4375 4.25 7.4375H6.75C7.06066 7.4375 7.3125 7.68934 7.3125 8C7.3125 8.31066 7.06066 8.5625 6.75 8.5625H4.25C3.93934 8.5625 3.6875 8.31066 3.6875 8Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreWhitepaper);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_whitepaper.ed577557730387aa3c3fcb528d74f1af.svg\";","/**\n * @description Component-LimitFormDetail\n */\nimport './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport { Side } from '@synfutures/sdks-perp';\nimport { Spin } from 'antd';\nimport { FC, memo, useMemo } from 'react';\n// import IconToolTip from '@/components/ToolTip/IconToolTip';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as IconRebate } from '@/assets/svg/icon_rebate.svg';\nimport { ReactComponent as IconSpark } from '@/assets/svg/icon_sparkle_16.svg';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { Tooltip } from '@/components/ToolTip';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedQuote } from '@/entities/WrappedQuote';\nimport { useTokenPrice } from '@/features/global/query';\nimport { TokenInfo } from '@/types/token';\nimport { IOrderSimulationData, IScaledOrderSimulationData } from '@/types/trade';\n\ninterface IProps {\n isLoading: boolean;\n tradeSide?: Side;\n marginToken: WrappedQuote | undefined;\n baseToken?: TokenInfo;\n fairPrice?: WrappedBigNumber;\n chainId: CHAIN_ID | undefined;\n pairSymbol?: string;\n showSize?: boolean;\n simulationData: IOrderSimulationData | IScaledOrderSimulationData | undefined;\n extraTitle?: React.ReactNode;\n}\nconst LimitFormDetailComponent: FC = function ({\n marginToken,\n isLoading,\n chainId,\n showSize,\n baseToken,\n simulationData: simulationData,\n extraTitle,\n}) {\n const { isMobile } = useMediaQueryDevice();\n const { t } = useTranslation();\n\n const tokenPriceInfo = useTokenPrice({ chainId, tokenAddress: marginToken?.address });\n const minFeeRebateUSD = useMemo(() => {\n if (tokenPriceInfo?.current && simulationData?.minFeeRebate) {\n return WrappedBigNumber.from(simulationData?.minFeeRebate).mul(tokenPriceInfo?.current);\n }\n return WrappedBigNumber.ZERO;\n }, [simulationData?.minFeeRebate, tokenPriceInfo]);\n\n if (!simulationData) {\n return null;\n }\n\n return (\n \n
\n {extraTitle}\n
\n {showSize && (\n
\n
\n {t('common.size')}\n {/* */}\n
\n
\n
\n {WrappedBigNumber.from(simulationData?.baseSize || 0).formatNumberWithTooltip({\n suffix: baseToken?.symbol,\n })}\n
\n
\n )}\n {!isMobile && simulationData.margin.gt(0) && (\n
\n
\n \n {t('common.marginRequired')}\n \n
\n
\n
{simulationData?.margin.formatNumberWithTooltip({ suffix: marginToken?.symbol })}
\n
\n )}\n
\n
\n {t('common.tradeFormDetails.estTV')}\n {/* */}\n
\n
\n
\n {simulationData?.estimatedTradeValue?.formatNumberWithTooltip({\n suffix: marginToken?.symbol,\n })}\n
\n
\n
\n
\n {t('common.tradeFormDetails.feeRebate')}\n {isMobile ? (\n \n ) : (\n \n \n \n )}\n
\n
\n
\n \n {minFeeRebateUSD.gte(0.001) && ` ≈ `}\n {minFeeRebateUSD?.formatNumberWithTooltip({\n prefix: '$',\n colorShader: false,\n isShowApproximatelyEqualTo: minFeeRebateUSD.gte(0.0001),\n })}\n \n
\n
\n
\n
\n
\n );\n};\n\nexport const LimitFormDetail = memo(LimitFormDetailComponent);\n","/**\n * @description Component-TradeDetailtsDrawer\n */\nimport './index.less';\n\nimport React, { FC, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\nimport Drawer from '@/components/Drawer';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useLimitSimulation, useMarketSimulation, useTradeSide, useTradeType } from '@/features/trade/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { TradeFormDetails } from '@/pages/trade/TradeCard/TradeForm/TradeDetail/TradeFormDetails';\nimport { LimitFormDetail } from '@/pages/trade/TradeCard/TradeForm/TradeLimitForm/LimitFormDetail';\n\nimport { ReactComponent as DetailsIcon } from './assets/icon_more_whitepaper.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradeDetailsDrawer: FC = function () {\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n const chainId = useChainId();\n const tradeType = useTradeType(chainId);\n const tradeSide = useTradeSide(chainId);\n const marketSimulation = useMarketSimulation(chainId);\n const limitSimulation = useLimitSimulation(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n return (\n <>\n \n setOpen(false)}\n className=\"syn-trade-details-drawer reverse-header\">\n {tradeType === TRADE_TYPE.MARKET && (\n \n )}\n {tradeType === TRADE_TYPE.LIMIT && (\n \n )}\n \n \n );\n};\n\nexport default TradeDetailsDrawer;\n","/**\n * @description Component-TradeLimitMessages\n */\nimport './index.less';\n\nimport React, { FC, useCallback } from 'react';\n\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useWrappedPortfolioByPairId } from '@/features/account/portfolioHook';\nimport { useCurrentPairByDevice } from '@/features/pair/hook';\nimport { setTradeFormType } from '@/features/trade/actions';\nimport { useLimitFormState, useTradeSide } from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport TradeFormAlert from '@/pages/trade/TradeCard/TradeForm/TradeFormAlert';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradeLimitMessages: FC = function () {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const tradeSide = useTradeSide(chainId);\n const sdkContext = useSDK(chainId);\n const limitFormState = useLimitFormState(chainId);\n const dispatch = useAppDispatch();\n const currentPair = useCurrentPairByDevice(chainId);\n const portfolio = useWrappedPortfolioByPairId(chainId, userAddr, currentPair?.id);\n\n const onNativeTokenDepositClick = useCallback(() => {\n chainId &&\n dispatch(\n setTradeFormType({\n chainId,\n tradeType: TRADE_TYPE.DEPOSIT_NATIVE,\n }),\n );\n }, [chainId, dispatch]);\n\n const onMaxBalanceClick = useCallback(\n (balance: WrappedBigNumber) => {\n if (chainId && portfolio && sdkContext) {\n console.log('🚀 ~ balance:', balance);\n // TODO: simulate order by margin\n // dispatch(\n // orderSimulate({\n // chainId,\n // sdkContext,\n // base: toWad(limitFormState.baseAmount || 0),\n // tradeSide,\n // limitPrice: limitFormState.alignedPrice,\n // portfolio,\n // leverage: undefined,\n // margin: balance.stringValue,\n // }),\n // );\n }\n },\n [chainId, dispatch, limitFormState.alignedPrice, limitFormState.baseAmount, portfolio, sdkContext, tradeSide],\n );\n return (\n
\n \n
\n );\n};\n\nexport default TradeLimitMessages;\n","/**\n * @description Component-TradeMarginRequiredMobile\n */\nimport './index.less';\n\nimport React, { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as ArrowRight } from '@/assets/svg/arrow-right.svg';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useLimitSimulation, useMarketSimulation, useTradeType } from '@/features/trade/hooks';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport AvailableMarginDrawer from '@/pages/components/AvailableMarginDrawer';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradeMarginRequiredMobile: FC = function () {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const tradeType = useTradeType(chainId);\n const marketSimulation = useMarketSimulation(chainId);\n const limitSimulation = useLimitSimulation(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const { t } = useTranslation();\n const walletConnectStatus = useWalletConnectStatus();\n const simulation = useMemo(\n () => (tradeType === TRADE_TYPE.MARKET ? marketSimulation : limitSimulation),\n [limitSimulation, marketSimulation, tradeType],\n );\n\n return (\n
\n {walletConnectStatus !== WALLET_CONNECT_STATUS.UN_CONNECT && }\n {simulation?.data && (\n <>\n {(currentPosition?.size.eq(0) || limitSimulation?.data) && (\n
\n
{t('common.marginRequired')}
\n
\n
\n {simulation?.data.margin?.formatNumberWithTooltip({\n suffix: currentPair?.rootInstrument.marginToken?.symbol,\n })}\n
\n
\n )}\n {marketSimulation?.data && !currentPosition?.size.eq(0) && (\n
\n
{t('common.leverage')}
\n
\n
\n {currentPosition?.wrapAttribute('leverageWad').formatLeverageWithTooltip()}\n \n {WrappedBigNumber.from(marketSimulation?.data?.leverage || 0)?.formatLeverageWithTooltip()}\n
\n
\n )}\n \n )}\n
\n );\n};\n\nexport default TradeMarginRequiredMobile;\n","/**\n * @description Component-TradeMarketMessages\n */\nimport './index.less';\n\nimport { Alert } from 'antd';\nimport React, { FC, useCallback, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { ExternalLink } from '@/components/Link';\nimport { FAQ_LINKS } from '@/constants/links';\nimport { ERROR_MSG_IMR } from '@/constants/simulation';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useGlobalConfig } from '@/features/global/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { clearMarketTradeSimulation, setTradeFormType, simulateMarketTrade } from '@/features/trade/actions';\nimport { useMarketFormState, useMarketSimulation, useTradeMaxLeverage, useTradeSide } from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport TradeFormAlert from '@/pages/trade/TradeCard/TradeForm/TradeFormAlert';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n leverageChanged?: (val: string) => void;\n}\nconst TradeMarketMessages: FC = function ({}) {\n const chainId = useChainId();\n const simulation = useMarketSimulation(chainId);\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const userAddr = useUserAddr();\n const { slippage } = useGlobalConfig(chainId);\n const tradeSide = useTradeSide(chainId);\n const marketFormState = useMarketFormState(chainId);\n const sdkContext = useSDK(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const maxLeverage = useTradeMaxLeverage(currentPair?.maxLeverage);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const isShowLeverageWarning = useMemo(() => {\n return (simulation?.data?.exceedMaxLeverage && !simulation.data.leverage.eq(0)) || false;\n }, [simulation?.data?.exceedMaxLeverage, simulation?.data?.leverage]);\n // const leverageInputAmountStrChanged = useCallback(\n // async (inputAmountStr: string) => {\n // leverageChanged && leverageChanged(inputAmountStr);\n // },\n // [leverageChanged],\n // );\n const onNativeTokenDepositClick = useCallback(() => {\n chainId &&\n dispatch(\n setTradeFormType({\n chainId,\n tradeType: TRADE_TYPE.DEPOSIT_NATIVE,\n }),\n );\n }, [chainId, dispatch]);\n\n const onMaxBalanceClick = useCallback(\n (balance: WrappedBigNumber) => {\n if (chainId && currentPosition && sdkContext && userAddr) {\n if (WrappedBigNumber.from(marketFormState?.baseAmount).lte(0)) {\n dispatch(clearMarketTradeSimulation({ chainId }));\n return;\n }\n dispatch(\n simulateMarketTrade({\n chainId,\n sdkContext,\n position: currentPosition,\n base: marketFormState.baseAmount,\n tradeSide,\n slippage: Number(slippage),\n userAddr,\n margin: balance.stringValue,\n maxLeverage,\n }),\n );\n }\n },\n [\n chainId,\n currentPosition,\n dispatch,\n marketFormState.baseAmount,\n sdkContext,\n slippage,\n tradeSide,\n userAddr,\n maxLeverage,\n ],\n );\n return (\n
\n {simulation?.message === ERROR_MSG_IMR && (\n \n \n {t(simulation?.message || '')}\n {'. '}\n \n {/* {\n leverageInputAmountStrChanged(maxLeverage.toString());\n }}>\n {t('common.tradePage.enableLeverage')}\n */}\n
\n }\n type=\"error\"\n showIcon\n />\n )}\n {isShowLeverageWarning && (\n \n }}\n />\n {FAQ_LINKS.PNL_FAQ && {t('common.learnMore')}}\n \n }\n type=\"warning\"\n showIcon>
\n )}\n \n \n );\n};\n\nexport default TradeMarketMessages;\n","/**\n * @description Component-TradeFormMobileMessages\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { FC, useEffect, useMemo, useState } from 'react';\n\nimport { GOT_PRICE_ROUNDED } from '@/constants/storage';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useLimitSimulation, useMarketSimulation, useTradeType } from '@/features/trade/hooks';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\nimport { isWrappedNativeToken } from '@/utils/token';\n\nimport SettingsDrawer from './SettingsDrawer';\nimport TradeDetailsDrawer from './TradeDetailsDrawer';\nimport TradeLimitMessages from './TradeLimitMessages';\nimport TradeMarginRequiredMobile from './TradeMarginRequiredMobile';\nimport TradeMarketMessages from './TradeMarketMessages';\nimport WrapNativeDrawer from './WrapNativeDrawer';\n\ninterface IPropTypes {\n className?: string;\n}\nconst TradeFormMobileMessages: FC = function () {\n const chainId = useChainId();\n const tradeType = useTradeType(chainId);\n const marketSimulation = useMarketSimulation(chainId);\n const limitSimulation = useLimitSimulation(chainId);\n\n const currentPair = useCurrentPairFromUrl(chainId);\n const [, setGotPriceRounded] = useState(false);\n const walletConnectStatus = useWalletConnectStatus();\n\n const simulation = useMemo(\n () => (tradeType === TRADE_TYPE.LIMIT ? limitSimulation : marketSimulation),\n [limitSimulation, marketSimulation, tradeType],\n );\n const isWrappedNative = useMemo(\n () => chainId && isWrappedNativeToken(chainId, currentPair?.rootInstrument.marginToken?.address || ''),\n [chainId, currentPair?.rootInstrument.marginToken?.address],\n );\n useEffect(() => {\n setGotPriceRounded(!!localStorage.getItem(GOT_PRICE_ROUNDED));\n }, []);\n if (walletConnectStatus === WALLET_CONNECT_STATUS.UN_CONNECT && !simulation?.data) {\n return <>;\n }\n return (\n \n {tradeType === TRADE_TYPE.MARKET && }\n {tradeType === TRADE_TYPE.LIMIT && }\n
\n \n
\n {simulation?.data && (\n <>\n \n \n \n )}\n {isWrappedNative && }\n
\n
\n \n );\n};\n\nexport default TradeFormMobileMessages;\n","/**\n * @description Component-TradeMobileOrdersTrade\n */\nimport './index.less';\n\nimport _ from 'lodash';\nimport React, { FC, useMemo } from 'react';\n\nimport { getImrStepRatio } from '@/constants/trade';\nimport { OrderEventListener } from '@/features/pair/EventListener';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport OrderBook from '@/pages/trade/CoinPriceChart/OrderBook';\n\nimport TradeFormMobile from '../TradeFormMobile';\nimport TradeFormMobileMessages from '../TradeFormMobileMessages';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradeMobileOrdersTrade: FC = function () {\n const chainId = useChainId();\n const currentPair = useCurrentPairFromUrl(chainId);\n const stepRatio = useMemo(\n () => _.last(getImrStepRatio(currentPair?.rootInstrument.metaFutures.setting.initialMarginRatio)),\n [currentPair],\n );\n return (\n
\n
\n \n \n
\n
\n \n
\n\n \n
\n );\n};\n\nexport default TradeMobileOrdersTrade;\n","/**\n * @description Component-TradingViewLightCharts\n */\nimport './index.less';\n\nimport { KlineData, KlineInterval } from '@synfutures/sdks-perp-datasource';\nimport { useDebounceEffect, useDebounceFn } from 'ahooks';\n// import BigNumber from 'bignumber.js';\nimport classNames from 'classnames';\nimport {\n CandlestickSeries,\n ChartOptions,\n ColorType,\n CrosshairMode,\n DeepPartial,\n HistogramSeries,\n IChartApi,\n // IPriceLine,\n ISeriesApi,\n LogicalRange,\n MismatchDirection,\n SingleValueData,\n TickMarkType,\n // ChartOptions,\n // DeepPartial,\n // TickMarkType,\n UTCTimestamp,\n createChart,\n} from 'lightweight-charts';\nimport _ from 'lodash';\nimport React, { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { isMobile as isMobileDevice } from 'react-device-detect';\nimport { useTranslation } from 'react-i18next';\n\nimport Loading from '@/components/Loading';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { FETCHING_STATUS, THEME_ENUM } from '@/constants';\nimport { SIGNIFICANT_DIGITS } from '@/constants/global';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useTheme } from '@/features/global/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { TokenInfo } from '@/types/token';\nimport { formatDate, getKlineTimeDuration } from '@/utils/timeUtils';\nimport { getPairId } from '@/utils/transform/transformId';\n\nimport { useMockDevTool } from '@/components/Mock';\n\nconst needRequestData: {\n [pairId: string]: {\n [chartDuration: string]: number;\n };\n} = {};\n\ninterface IPropTypes {\n fetchingStatus: FETCHING_STATUS;\n children?: React.ReactNode;\n className?: string;\n kLineDataList?: KlineData[];\n chartDuration: KlineInterval;\n fairPriceBN: WrappedBigNumber | undefined;\n baseToken: TokenInfo | undefined;\n instrumentAddr: string | undefined;\n expiry: number | undefined;\n firstTimeLoad: boolean;\n pairId: string | undefined;\n isStablePair: boolean | undefined;\n onFetchData: (firstTime: number) => void;\n}\n\nconst RECENT_TICKS_COUNT = 10;\n\nconst green = 'rgba(20, 184, 75, 0.6)';\nconst red = 'rgba(255, 102, 102, 0.6)';\nconst TradingViewLightCharts: FC = function ({\n kLineDataList,\n chartDuration,\n fetchingStatus,\n fairPriceBN,\n baseToken,\n instrumentAddr,\n expiry,\n firstTimeLoad,\n isStablePair,\n onFetchData,\n pairId,\n}) {\n const { t } = useTranslation();\n const chartContainerRef = useRef(null);\n const { dataTheme } = useTheme();\n const chartRef = useRef(null);\n const hideVolume = useMemo(() => process.env.REACT_APP_AWS_ENV === 'prod', []);\n const chartKLineRef = useRef | null>(null);\n const chartVolumeRef = useRef | null>(null);\n // const chartIndexPriceLineRef = useRef(undefined);\n const [hoverKLineData, setHoverKLineData] = useState(null);\n const chainId = useChainId();\n const { deviceType, isMobile } = useMediaQueryDevice();\n const klineData = useMemo(() => {\n if (kLineDataList?.length && fairPriceBN && fairPriceBN.gt(0)) {\n const lastTick = kLineDataList[kLineDataList.length - 1];\n const num = fairPriceBN.toNumber();\n lastTick.close = num;\n lastTick.high = Math.max(lastTick.high, num);\n lastTick.low = Math.min(lastTick.low, num);\n }\n return kLineDataList;\n // must use stringValue\n }, [fairPriceBN?.stringValue, kLineDataList]);\n\n const updateChartOptions = useCallback(() => {\n if (!chartContainerRef.current) return undefined;\n\n const crossColor = dataTheme === THEME_ENUM.LIGHT ? '#C3E7E7' : '#3D4F5C';\n\n const chartOptions: DeepPartial = {\n handleScale: {\n axisPressedMouseMove: true,\n },\n layout: {\n textColor: dataTheme === THEME_ENUM.LIGHT ? '#333' : 'rgba(140, 191, 217, 0.8)',\n background: { type: ColorType.Solid, color: 'transparent' },\n attributionLogo: false,\n },\n width: chartContainerRef.current.clientWidth,\n height: chartContainerRef.current.clientHeight,\n grid: {\n vertLines: {\n color: 'transparent',\n },\n horzLines: {\n color: 'transparent',\n },\n },\n crosshair: {\n mode: CrosshairMode.Normal,\n vertLine: {\n color: crossColor,\n labelBackgroundColor: crossColor,\n },\n horzLine: {\n color: crossColor,\n labelBackgroundColor: crossColor,\n },\n },\n // watermark: {\n // fontSize: 98,\n // color: 'rgba(41, 181, 188, 0.07)',\n // visible: true,\n // },\n rightPriceScale: {\n borderColor: 'transparent',\n textColor: dataTheme === THEME_ENUM.LIGHT ? '#333' : 'rgba(140, 191, 217, 0.8)',\n },\n\n timeScale: {\n borderColor: dataTheme === THEME_ENUM.LIGHT ? '#C3E7E7' : 'rgba(17, 120, 178, 0.15)',\n timeVisible: true,\n // secondVisible: false,\n // borderVisible:false,\n tickMarkFormatter: (timePoint: number, tickMarkType: TickMarkType) => {\n switch (tickMarkType) {\n case TickMarkType.Year:\n return formatDate(timePoint * 1000, 'YYYY-MM-DD');\n break;\n\n case TickMarkType.Month:\n case TickMarkType.DayOfMonth:\n return formatDate(timePoint * 1000, 'MM-DD');\n break;\n\n case TickMarkType.Time:\n case TickMarkType.TimeWithSeconds:\n return formatDate(timePoint * 1000, 'HH:mm');\n break;\n }\n\n return formatDate(timePoint * 1000, 'HH:mm');\n },\n },\n localization: {\n locale: navigator.language,\n dateFormat: 'YYYY-MM-DD',\n timeFormatter: (time: number) => {\n const formater =\n chartDuration === KlineInterval.DAY || chartDuration === KlineInterval.WEEK\n ? 'YYYY-MM-DD'\n : 'YYYY-MM-DD HH:mm';\n return formatDate(time * 1000, formater);\n },\n priceFormatter: (price: number) => {\n const priceS = WrappedBigNumber.from(price).formatDisplayNumber({\n type: 'price',\n significantDigits: isStablePair ? SIGNIFICANT_DIGITS + 1 : SIGNIFICANT_DIGITS,\n // roundingMode: isStablePair ? BigNumber.ROUND_HALF_UP : undefined,\n });\n return priceS;\n },\n },\n };\n return chartOptions;\n }, [chartDuration, dataTheme, isStablePair]);\n\n useEffect(() => {\n if (!chartContainerRef.current) return;\n if (chartRef.current) return;\n const chartOptions = updateChartOptions();\n const chart = createChart(chartContainerRef.current || '', {\n ...chartOptions,\n autoSize: false,\n });\n\n const candlestickSeries = chart.addSeries(CandlestickSeries, {\n upColor: '#14b84b',\n downColor: '#ff6666',\n borderVisible: false,\n wickUpColor: '#14b84b',\n wickDownColor: '#ff6666',\n priceFormat: {\n minMove: 0.00000001,\n },\n // priceLineStyle: 0,\n });\n // candlestickSeries.setData(priceData);\n candlestickSeries.priceScale().applyOptions({\n autoScale: true,\n scaleMargins: {\n top: 0.15, // highest point of the series will be 70% away from the top\n bottom: 0.1,\n },\n });\n chartKLineRef.current = candlestickSeries;\n if (!hideVolume) {\n const volumeSeries = chart.addSeries(HistogramSeries, {\n // color: `rgba(38, 166, 154, 0.3)`,\n priceFormat: {\n type: 'volume',\n },\n priceLineVisible: false,\n lastValueVisible: false,\n priceScaleId: '', // set as an overlay by setting a blank priceScaleId\n // set the positioning of the volume series\n // scaleMargins: {\n // top: 0.7, // highest point of the series will be 70% away from the top\n // bottom: 0,\n // },\n });\n volumeSeries.priceScale().applyOptions({\n scaleMargins: {\n top: 0.9, // highest point of the series will be 70% away from the top\n bottom: 0,\n },\n autoScale: true,\n });\n chartVolumeRef.current = volumeSeries;\n }\n\n // chart.timeScale().fitContent();\n chartRef.current = chart;\n\n // chart.timeScale().applyOptions({ fixLeftEdge: true });\n\n //used to resize observer\n const resizeO = new ResizeObserver(() => {\n if (chartContainerRef.current)\n chart.applyOptions({\n width: chartContainerRef.current.clientWidth,\n height: chartContainerRef.current.clientHeight,\n });\n });\n\n resizeO.observe(chartContainerRef.current);\n\n return () => {\n resizeO.disconnect();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n useEffect(() => {\n if (chartContainerRef.current) {\n const background = document.createElement('div');\n background.id = 'syn-tv-watermark';\n // place below the chart\n // background.style.zIndex = '1';\n background.classList.add('syn-tv-charts-watermark');\n // background.style.position = 'absolute';\n // set size and position to match container\n // background.style.inset = '0px';\n // background.style.backgroundImage = watemarkBase64;\n // background.style.backgroundRepeat = 'no-repeat';\n // background.style.backgroundPosition = 'center';\n // background.style.opacity = '0.6';\n if (isMobileDevice) {\n background.classList.add('mobile');\n // background.style.width = '60vw';\n // background.style.backgroundSize = 'contain';\n // background.style.left = '10vw';\n }\n chartContainerRef.current.appendChild(background);\n }\n }, []);\n\n // watch chart duration change\n useEffect(() => {\n if (chartRef.current) {\n const chartOptions = updateChartOptions();\n if (chartOptions) chartRef.current.applyOptions(chartOptions);\n }\n }, [updateChartOptions]);\n\n useEffect(() => {\n if (fetchingStatus !== FETCHING_STATUS.DONE) {\n if (firstTimeLoad) {\n chartKLineRef.current?.setData([]);\n chartVolumeRef.current?.setData([]);\n setHoverKLineData(null);\n }\n } else if (klineData?.length) {\n // update kline data\n const data = klineData.map((item) => ({\n time: item.timestamp as UTCTimestamp,\n open: item.open,\n high: item.high,\n low: item.low,\n close: item.close,\n }));\n\n // update volue data\n const volumeData = hideVolume\n ? []\n : klineData.map((item) => ({\n time: item.timestamp as UTCTimestamp,\n value: item.baseVolume,\n color: item.open > item.close ? red : green,\n }));\n\n // if not first time load, update the last tick with the new data\n if (!firstTimeLoad) {\n const lastTick = chartKLineRef.current?.dataByIndex(Infinity, MismatchDirection.NearestLeft);\n if (lastTick) {\n const lastTickData = data.find((item) => item.time === lastTick.time);\n if (lastTickData) {\n chartKLineRef.current?.update({\n time: lastTickData.time as UTCTimestamp,\n open: lastTickData.open,\n high: lastTickData.high,\n low: lastTickData.low,\n close: lastTickData.close,\n });\n if (!hideVolume) {\n const lastVolumeData = volumeData.find((item) => item.time === lastTickData.time);\n if (lastVolumeData) {\n chartVolumeRef.current?.update({\n time: lastVolumeData.time as UTCTimestamp,\n value: lastVolumeData.value,\n color: lastVolumeData.color,\n });\n }\n }\n }\n }\n }\n\n chartKLineRef.current?.setData(data);\n if (!hideVolume) {\n chartVolumeRef.current?.setData(volumeData);\n }\n // chartRef.current?.timeScale().applyOptions({ fixLeftEdge: true });\n\n chartRef.current &&\n chartRef.current?.timeScale().scrollPosition() >= 0 &&\n chartRef.current?.timeScale().scrollToPosition(5, false);\n\n // chartRef.current?.timeScale().fitContent();\n\n //set hover data\n if (data.length) {\n const lastTick = data[data.length - 1];\n const hoverData = {\n ...(lastTick as unknown as KlineData),\n timestamp: Number(lastTick.time),\n };\n if (!hideVolume && volumeData.length) {\n const dataVolume = volumeData[volumeData.length - 1];\n hoverData.baseVolume = dataVolume?.value;\n }\n\n if (firstTimeLoad) {\n setHoverKLineData(hoverData);\n }\n }\n }\n }, [klineData, fetchingStatus, firstTimeLoad, hideVolume]);\n\n useEffect(() => {\n setTimeout(() => {\n pairId && chartRef.current && chartRef.current?.timeScale().scrollToPosition(5, false);\n }, 500);\n }, [chartDuration, pairId]);\n\n useDebounceEffect(\n () => {\n if (fetchingStatus === FETCHING_STATUS.DONE && klineData?.length) {\n const recentTicks = klineData.slice(-RECENT_TICKS_COUNT);\n\n if (fairPriceBN) {\n const num = fairPriceBN.toNumber();\n if (num) {\n recentTicks.forEach((tick) => {\n // Only update the latest tick with fair price\n if (tick === recentTicks[recentTicks.length - 1]) {\n tick.close = Number(num);\n tick.high = Math.max(tick.high, Number(num));\n tick.low = Math.min(tick.low, Number(num));\n }\n\n chartKLineRef.current?.update(\n {\n time: tick.timestamp as UTCTimestamp,\n open: tick.open,\n high: tick.high,\n low: tick.low,\n close: tick.close,\n },\n true,\n );\n });\n }\n }\n }\n },\n [klineData, fetchingStatus, fairPriceBN],\n { wait: 200 },\n );\n\n useEffect(() => {\n if (chartRef?.current) {\n // watch crosshair move\n chartRef.current.subscribeCrosshairMove((param) => {\n if (chartKLineRef.current) {\n const data = param.seriesData.get(chartKLineRef.current);\n if (!data) {\n return;\n }\n const newData = {\n ...(data as unknown as KlineData),\n timestamp: Number(data.time as string),\n };\n if (!hideVolume && chartVolumeRef.current) {\n const dataVolume = param.seriesData.get(chartVolumeRef.current) as SingleValueData;\n newData.baseVolume = dataVolume?.value;\n }\n setHoverKLineData(newData);\n }\n });\n }\n }, [hideVolume]);\n\n const { run: fetchHistoryData } = useDebounceFn(\n async (firstTime: number) => {\n onFetchData(firstTime);\n },\n { wait: 500 },\n );\n\n const onVisibleLogicalRangeChanged = useCallback(\n (newVisibleLogicalRange: LogicalRange | null) => {\n if (chartKLineRef.current && newVisibleLogicalRange) {\n const barsInfo = chartKLineRef.current.barsInLogicalRange(newVisibleLogicalRange);\n // if there less than 50 bars to the left of the visible area\n if (barsInfo !== null && barsInfo.barsBefore) {\n if (instrumentAddr && expiry && barsInfo.barsBefore > 0 && barsInfo.barsBefore <= 50) {\n const firstTime = Math.floor(\n Number(barsInfo.from) - getKlineTimeDuration(chartDuration) * barsInfo.barsBefore,\n );\n const timeRequested = _.get(needRequestData, [getPairId(instrumentAddr, expiry), chartDuration]);\n if (!timeRequested || firstTime < timeRequested) {\n // try to load additional historical data and prepend it to the series data\n _.set(needRequestData, [getPairId(instrumentAddr, expiry), chartDuration], firstTime);\n\n fetchHistoryData(firstTime);\n }\n }\n }\n }\n },\n [chartDuration, expiry, fetchHistoryData, instrumentAddr],\n );\n\n useEffect(() => {\n if (chartRef?.current && chainId && instrumentAddr && expiry) {\n // subscribe to visible range change event\n chartRef.current.timeScale().subscribeVisibleLogicalRangeChange(onVisibleLogicalRangeChanged);\n }\n }, [chainId, expiry, instrumentAddr, onVisibleLogicalRangeChanged]);\n\n // useDebounceEffect(\n // () => {\n // if (!pair?.rootInstrument?.spotPrice) {\n // return;\n // }\n // const indexPriceLine = {\n // price: pair?.rootInstrument?.wrapAttribute('spotPrice').toNumber(),\n // color: '#29b5bc',\n // // lineWidth: lineWidth,\n // lineStyle: 2, // LineStyle.Dashed\n // axisLabelVisible: true,\n // title: 'Index Price',\n // };\n // if (!chartIndexPriceLineRef.current) {\n // chartIndexPriceLineRef.current = chartKLineRef.current?.createPriceLine(indexPriceLine);\n // } else {\n // chartIndexPriceLineRef.current.applyOptions(indexPriceLine);\n // }\n // },\n // [pair?.rootInstrument?.spotPrice],\n // { wait: 200 },\n // );\n\n const durationStr = useMemo(() => {\n return t(`common.tradePage.${chartDuration}`);\n }, [chartDuration, t]);\n const { isMockSkeleton } = useMockDevTool();\n const isloading = fetchingStatus !== FETCHING_STATUS.DONE || isMockSkeleton;\n return (\n
\n {isloading && }\n \n\n
\n
\n {hoverKLineData && !isMobile && (\n <>\n
\n {formatDate(\n hoverKLineData?.timestamp * 1000,\n [KlineInterval.DAY, KlineInterval.WEEK].includes(chartDuration) ? 'YYYY-MM-DD' : 'YYYY-MM-DD HH:mm',\n )}\n
\n
• {durationStr}
\n \n )}\n\n {hoverKLineData && (\n
\n \n O{' '}\n hoverKLineData.close\n ? 'syn-tv-charts-legend-info-ohlc-red'\n : 'syn-tv-charts-legend-info-ohlc-green'\n }>\n {WrappedBigNumber.from(hoverKLineData.open).formatPriceNumberWithTooltip({\n isStablePair: isStablePair,\n // roundingMode: isStablePair ? BigNumber.ROUND_HALF_UP : undefined,\n })}\n \n \n \n H{' '}\n hoverKLineData.close\n ? 'syn-tv-charts-legend-info-ohlc-red'\n : 'syn-tv-charts-legend-info-ohlc-green'\n }>\n {WrappedBigNumber.from(hoverKLineData.high).formatPriceNumberWithTooltip({\n isStablePair: isStablePair,\n // roundingMode: isStablePair ? BigNumber.ROUND_HALF_UP : undefined,\n })}\n \n \n \n L{' '}\n hoverKLineData.close\n ? 'syn-tv-charts-legend-info-ohlc-red'\n : 'syn-tv-charts-legend-info-ohlc-green'\n }>\n {WrappedBigNumber.from(hoverKLineData.low).formatPriceNumberWithTooltip({\n isStablePair: isStablePair,\n // roundingMode: isStablePair ? BigNumber.ROUND_HALF_UP : undefined,\n })}\n \n \n \n C{' '}\n hoverKLineData.close\n ? 'syn-tv-charts-legend-info-ohlc-red'\n : 'syn-tv-charts-legend-info-ohlc-green'\n }>\n {WrappedBigNumber.from(hoverKLineData.close).formatPriceNumberWithTooltip({\n isStablePair: isStablePair,\n // roundingMode: isStablePair ? BigNumber.ROUND_HALF_UP : undefined,\n })}\n \n \n
\n )}\n
\n {hoverKLineData && !hideVolume && (\n
\n Vol • {baseToken?.symbol}\n hoverKLineData.close\n ? 'syn-tv-charts-legend-volume-red'\n : 'syn-tv-charts-legend-volume-green'\n }>\n {WrappedBigNumber.from(hoverKLineData.baseVolume).formatNumberWithTooltip({ isShowTBMK: true })}\n \n
\n )}\n
\n
\n );\n};\n\nexport default React.memo(TradingViewLightCharts);\n","/**\n * @description Component-PriceChart\n */\nimport './index.less';\n\nimport { KlineData, KlineInterval } from '@synfutures/sdks-perp-datasource';\nimport React, { FC, useCallback, useEffect } from 'react';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { POLLING_GRAPH } from '@/constants/polling';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { getPairKlineData } from '@/features/chart/actions';\nimport { useKlineChartNotFirstTimeLoad } from '@/features/chart/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { pollingFunc } from '@/utils';\n\n// import TradingViewWidget from './TradingView/TradingViewWidget';\nimport TradingViewLightCharts from './TradingView';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n chartDuration: KlineInterval;\n pair: WrappedPair | undefined;\n kLineDataList: KlineData[] | undefined;\n fetchingStatus: FETCHING_STATUS;\n}\n\nlet polling_chart: NodeJS.Timer | null = null;\n\nconst KLineChart: FC = function ({ className, chartDuration, pair, kLineDataList, fetchingStatus }) {\n const chainId = useChainId();\n const firstTimeLoad = useKlineChartNotFirstTimeLoad(chainId, pair?.id, chartDuration);\n const dispatch = useAppDispatch();\n const onFetchData = useCallback(\n (timeEnd: number) => {\n chainId &&\n pair &&\n dispatch(\n getPairKlineData({\n chainId,\n instrumentAddr: pair.rootInstrument.id,\n expiry: pair.expiry,\n chartDuration,\n timeEnd: timeEnd,\n minTradeValue: pair?.rootInstrument?.minTradeValue,\n }),\n );\n },\n [chainId, chartDuration, dispatch, pair],\n );\n useEffect(() => {\n if (polling_chart) clearInterval(polling_chart);\n polling_chart = pollingFunc(() => {\n onFetchData(Math.floor(Date.now() / 1000));\n }, POLLING_GRAPH);\n return () => {\n if (polling_chart) clearInterval(polling_chart);\n };\n }, [firstTimeLoad, onFetchData]);\n return (\n
\n {/* */}\n \n
\n );\n};\n\nexport default KLineChart;\n","/**\n * @description Component-TradeMobileTradingView\n */\nimport './index.less';\n\nimport { KlineInterval } from '@synfutures/sdks-perp-datasource';\nimport React, { FC, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { CHAIN_ID } from '@/constants/chain';\nimport { getPairKlineData } from '@/features/chart/actions';\nimport { useKlineChartData, useKlineChartFetchingStatus } from '@/features/chart/hooks';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport KLineChart from '@/pages/trade/CoinPriceChart/KLineChart';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradeMobileTradingView: FC = function () {\n const chainId = useChainId();\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const dappConfig = useBackendChainConfig(chainId);\n const [chartDuration, setChartDuration] = useState(\n (dappConfig?.trade.klineInterval.default as KlineInterval) || KlineInterval.HOUR,\n );\n const currentPair = useCurrentPairFromUrl(chainId);\n const kLineDataList = useKlineChartData(chainId, currentPair, chartDuration);\n const fetchingStatus = useKlineChartFetchingStatus(chainId, currentPair?.id, chartDuration);\n useEffect(() => {\n if (chainId === CHAIN_ID.LINEA) {\n setChartDuration(KlineInterval.DAY);\n }\n if (chainId === CHAIN_ID.GOERLI) {\n setChartDuration(KlineInterval.HOUR);\n }\n }, [chainId]);\n useEffect(() => {\n if (currentPair && chainId) {\n try {\n dispatch(\n getPairKlineData({\n chainId,\n instrumentAddr: currentPair.rootInstrument.id,\n expiry: currentPair.expiry,\n chartDuration,\n minTradeValue: currentPair?.rootInstrument?.minTradeValue,\n }),\n );\n } catch (e) {\n console.log('🚀 ~ file: index.tsx:57 ~ useEffect ~ e:', e);\n }\n }\n // only these three\n }, [currentPair?.id, chainId, chartDuration]);\n return (\n
\n {fetchingStatus === FETCHING_STATUS.DONE && !kLineDataList?.length && (\n
{t('common.nodata')}
\n )}\n {!(fetchingStatus === FETCHING_STATUS.DONE && !kLineDataList?.length) && (\n <>\n
\n
{t('common.tradePage.price')}
\n
\n {dappConfig?.trade.klineInterval.list.map((interval: string) => {\n return (\n setChartDuration(interval as KlineInterval)}\n className={`syn-trade-mobile-trading-view-content-price-right-item ${\n interval === chartDuration ? 'active' : ''\n }`}>\n {t(`common.tradePage.${interval}`)}\n
\n );\n })}\n
\n
\n \n \n )}\n \n );\n};\n\nexport default TradeMobileTradingView;\n","/**\n * @description Component-TradeMobile\n */\nimport './index.less';\n\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\n\nimport SubPageWrap from '@/components/SubPage';\nimport { MOBILE_SHOW_CHART } from '@/constants/storage';\nimport { useCurrentPairBaseInfoFromUrl, useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { resetFormByChainId, setTradeFormType } from '@/features/trade/actions';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n\nimport BlockNumberTextMobile from '@/components/Text/BlockNumberText/BlockNumberTextMobile';\nimport { PAIR_PAGE_TYPE, TVL_THRESHHOLD } from '@/constants/global';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { useMarketList } from '@/features/market/hooks';\nimport { usePollingSingleInstrumentDataOnTradeOrEarn } from '@/hooks/data/usePollingDataOnWorker';\nimport { usePairCheck } from '@/pages/components/PairInfo/pairCheckHook';\nimport _ from 'lodash';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport MobileBanner from '../components/MobileBanner';\nimport MobileProfile from '../components/MobileProfile';\nimport MobileSubPageHeader from '../components/MobileSubpageHeader';\nimport TradeMobileOrdersTrade from './TradeMobileOrdersTrade';\nimport TradeMobileTradingView from './TradeMobileTradingView';\ninterface IPropTypes {\n className?: string;\n}\nconst TradeMobile: FC = function () {\n const [showChart, setShowChart] = useState(false);\n const chainId = useChainId();\n const dispatch = useAppDispatch();\n const userAddr = useUserAddr();\n const { marketPairList, isFetched } = useMarketList(chainId ? [chainId] : undefined);\n const navigate = useNavigate();\n const currentPair = useCurrentPairFromUrl(chainId);\n\n const { pairSymbol: symbolFromUrl } = useParams();\n const marketPairListOrdered = useMemo(\n () =>\n _.orderBy(\n marketPairList.filter((p) => p.tvlUsd.gte(TVL_THRESHHOLD)),\n [(p) => p?.volume24hUsd?.toNumber()],\n ['desc'],\n ),\n [marketPairList],\n );\n const currentBaseInfo = useCurrentPairBaseInfoFromUrl(chainId);\n // const pairFetchingStatus = usePairFetchingStatus(chainId, currentBaseInfo?.id);\n\n usePollingSingleInstrumentDataOnTradeOrEarn(\n chainId,\n userAddr,\n currentBaseInfo?.instrumentAddr,\n currentBaseInfo?.expiry,\n );\n const resetCurrentPair = useCallback(() => {\n chainId && dispatch(resetFormByChainId({ chainId }));\n navigate('/market');\n }, [chainId, dispatch, navigate]);\n usePairCheck(\n chainId,\n currentPair?.symbol,\n marketPairListOrdered.map((p) => p.pairSymbol),\n PAIR_PAGE_TYPE.TRADE,\n false,\n );\n useEffect(() => {\n chainId && !currentPair && dispatch(resetFormByChainId({ chainId }));\n }, [chainId, dispatch, currentPair]);\n\n useEffect(() => {\n setTimeout(() => {\n if (localStorage.getItem(MOBILE_SHOW_CHART)) {\n setShowChart(true);\n }\n }, 1000);\n }, []);\n useEffect(() => {\n if (\n isFetched &&\n symbolFromUrl &&\n currentBaseInfo?.symbol?.toLocaleLowerCase() !== symbolFromUrl.toLocaleLowerCase()\n ) {\n const pair = marketPairList.find((p) => p.pairSymbol.toLowerCase() === symbolFromUrl.toLowerCase());\n if (pair) {\n chainId && dispatch(setTradeFormType({ chainId, tradeType: TRADE_TYPE.MARKET }));\n }\n }\n // only these three\n }, [isFetched, symbolFromUrl, currentBaseInfo?.symbol]);\n\n return (\n }\n header={\n {\n resetCurrentPair();\n }}\n showChart={showChart}\n toggleShowChart={() => {\n if (showChart) {\n localStorage.setItem(MOBILE_SHOW_CHART, '');\n } else {\n localStorage.setItem(MOBILE_SHOW_CHART, 'true');\n }\n setShowChart(!showChart);\n }}\n />\n }\n onClose={() => {\n resetCurrentPair();\n }}>\n \n
\n {showChart && }\n {\n <>\n \n \n \n }\n
\n \n );\n};\n\nexport default TradeMobile;\n","/**\n * @description Component-PairInfoSkeleton\n */\nimport './index.less';\n\nimport { Skeleton as AntSkeleton } from 'antd';\nimport { FC } from 'react';\n\nimport { Skeleton } from '@/components/Skeleton';\n\nconst PairInfoSkeleton: FC = function () {\n return (\n
\n \n \n \n \n \n \n \n
\n );\n};\n\nexport default PairInfoSkeleton;\n","import Loading from '@/components/Loading';\nimport PairInfoSkeleton from '@/pages/components/PairInfo/PairInfoSkeleton';\nimport './index.less';\nexport function DesktopTradeFallback() {\n return (\n
\n
\n
\n \n \n
\n
\n
\n\n
\n
\n );\n}\n","var _g;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconErrorTriWhite = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"solar:danger-triangle-bold-duotone\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Subtract\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.54019 7.174C5.48552 3.72467 6.45886 2 7.99886 2C9.53952 2 10.5122 3.72467 12.4575 7.174L12.7002 7.604L12.7014 7.60616C14.3173 10.4714 15.1253 11.9043 14.3949 12.952C13.6642 14 11.8562 14 8.24152 14H7.75619C4.14152 14 2.33352 14 1.60286 12.952C0.872376 11.9043 1.68045 10.4714 3.2963 7.60617L3.29752 7.604L3.54019 7.174ZM8.52918 4.71967C8.38853 4.57902 8.19776 4.5 7.99885 4.5C7.79993 4.5 7.60917 4.57902 7.46851 4.71967C7.32786 4.86032 7.24884 5.05109 7.24884 5.25V9C7.24884 9.19891 7.32786 9.38968 7.46851 9.53033C7.60917 9.67098 7.79993 9.75 7.99885 9.75C8.19776 9.75 8.38853 9.67098 8.52918 9.53033C8.66984 9.38968 8.74885 9.19891 8.74885 9V5.25C8.74885 5.05109 8.66984 4.86032 8.52918 4.71967ZM8.70596 12.2071C8.51842 12.3946 8.26407 12.5 7.99885 12.5C7.73363 12.5 7.47927 12.3946 7.29174 12.2071C7.1042 12.0196 6.99884 11.7652 6.99884 11.5C6.99884 11.2348 7.1042 10.9804 7.29174 10.7929C7.47927 10.6054 7.73363 10.5 7.99885 10.5C8.26407 10.5 8.51842 10.6054 8.70596 10.7929C8.8935 10.9804 8.99886 11.2348 8.99886 11.5C8.99886 11.7652 8.8935 12.0196 8.70596 12.2071Z\",\n fill: \"white\"\n }))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconErrorTriWhite);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_error_tri_white.9c1fc96c08af42081ddb3b87c80d83bb.svg\";","import { useIsBlacklistedFromStore } from '@/features/user/hooks';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport iconPath from '../assets/icon_error_tri_white.svg';\nimport './index.less';\ntype TWarningAlert = ComponentProps<'div'>;\nexport default function BlockedAlert({ className, ...others }: TWarningAlert): JSX.Element {\n const { t } = useTranslation();\n const isBlacklist = useIsBlacklistedFromStore();\n if (isBlacklist) {\n return (\n
\n \n {t('common.blockedWarning')}\n
\n );\n } else {\n return <>;\n }\n}\n","import { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { PORTFOLIO_TAB_ITEMS, defaultPortfolioTabItem, portfolioTabItemInfos } from '@/constants/portfolio';\nimport { useTokenInfos } from '@/features/chain/hook';\nimport { useAssetsBalanceList } from '@/pages/portfolio/Assets/hooks/assetsHook';\nimport { useCallback } from 'react';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { useQueryParam } from '..';\nimport { useChainId, useUserAddr } from '../web3/useChain';\n\nexport default function usePortfolioParams(): PORTFOLIO_TAB_ITEMS | undefined {\n const { tab } = useParams();\n const { isMobile } = useMediaQueryDevice();\n const portfolioTabItem = Object.values(PORTFOLIO_TAB_ITEMS).find((id) => {\n const item = portfolioTabItemInfos[id];\n const correctTabId = tab?.toLowerCase() === id?.toLowerCase();\n const correctDevice =\n (isMobile && item.mobileOrDesktop === 'mobile') ||\n (!isMobile && item.mobileOrDesktop === 'desktop') ||\n item.mobileOrDesktop === 'all';\n return correctTabId && correctDevice;\n });\n if (portfolioTabItem === undefined) {\n if (!isMobile) return defaultPortfolioTabItem.desktop;\n if (isMobile) return defaultPortfolioTabItem.mobile;\n }\n return portfolioTabItem;\n}\nexport enum AccountAction {\n withdraw = 'withdraw',\n deposit = 'deposit',\n inactive = 'inactive',\n}\nexport function useGoToAccountBalanceAction() {\n const navigate = useNavigate();\n const chainId = useChainId();\n const tokenInfos = useTokenInfos(chainId);\n const { isMobile } = useMediaQueryDevice();\n const goToAccountBalanceAction = useCallback(\n (accountAction: AccountAction | null, tokenAddress?: string) => {\n if (isMobile) {\n return;\n }\n if (accountAction === null) {\n navigate('/portfolio');\n } else {\n navigate(\n `/portfolio?accountAction=${accountAction}&tokenSymbol=${tokenAddress && tokenInfos[tokenAddress].symbol}`,\n );\n }\n },\n [navigate, tokenInfos, isMobile],\n );\n return { goToAccountBalanceAction };\n}\n\nexport const useAssetSelectFromParams = () => {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const accountAction = useQueryParam('accountAction') as AccountAction;\n const tokenSymbol = useQueryParam('tokenSymbol');\n const Assetinfos = useAssetsBalanceList(chainId, userAddr, {}, true);\n const Assetinfo = Assetinfos.find((info) => info.quote.symbol === tokenSymbol);\n return {\n accountAction: Object.values(AccountAction).includes(accountAction) ? accountAction : null,\n quoteSymbol: Assetinfo?.quote.symbol,\n };\n};\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconExportCsv = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.30499 12.9258C3.30499 13.4677 3.64812 13.9258 4.05499 13.9258C4.14189 13.9229 4.22731 13.9025 4.30606 13.8656C4.38481 13.8288 4.45526 13.7763 4.51312 13.7114C4.6507 13.5677 4.83974 13.4845 5.03864 13.4802C5.23755 13.4758 5.43003 13.5507 5.57374 13.6883C5.71746 13.8259 5.80063 14.0149 5.80497 14.2138C5.8093 14.4127 5.73445 14.6052 5.59687 14.7489C5.39954 14.9608 5.16098 15.1302 4.89584 15.2466C4.63069 15.363 4.34456 15.424 4.05499 15.4258C2.81437 15.4258 1.80499 14.3008 1.80499 12.9258C1.80499 11.5508 2.81437 10.4258 4.05499 10.4258C4.34456 10.4276 4.63069 10.4886 4.89584 10.605C5.16098 10.7214 5.39954 10.8907 5.59687 11.1027C5.73445 11.2464 5.8093 11.4389 5.80497 11.6378C5.80063 11.8367 5.71746 12.0257 5.57374 12.1633C5.43003 12.3009 5.23755 12.3757 5.03864 12.3714C4.83974 12.367 4.6507 12.2839 4.51312 12.1402C4.45526 12.0753 4.38481 12.0228 4.30606 11.9859C4.22731 11.9491 4.14189 11.9286 4.05499 11.9258C3.64812 11.9258 3.30499 12.3827 3.30499 12.9258ZM9.39937 12.5689C9.07874 12.3533 8.69124 12.2414 8.34937 12.1427C8.18186 12.0974 8.01684 12.0433 7.85499 11.9808C8.00812 11.907 8.46187 11.8995 8.85937 12.0014C9.05173 12.0522 9.2564 12.0245 9.42835 11.9244C9.6003 11.8243 9.72544 11.66 9.77624 11.4677C9.82705 11.2753 9.79936 11.0706 9.69926 10.8987C9.59916 10.7267 9.43486 10.6016 9.24249 10.5508C8.99638 10.4901 8.74541 10.4512 8.49249 10.4345C7.87187 10.3933 7.36749 10.502 6.98624 10.7577C6.80037 10.8824 6.64418 11.0465 6.52873 11.2383C6.41327 11.4302 6.34137 11.645 6.31812 11.8677C6.24937 12.4139 6.47312 12.8845 6.94999 13.192C7.24874 13.3852 7.59749 13.4858 7.93437 13.5833C8.12187 13.6389 8.43062 13.727 8.55187 13.8039C8.5501 13.8194 8.54543 13.8345 8.53812 13.8483C8.45312 13.9452 7.93999 13.9602 7.51374 13.8445C7.32393 13.7964 7.12281 13.8244 6.95337 13.9226C6.78393 14.0207 6.6596 14.1813 6.60696 14.3699C6.55432 14.5585 6.57753 14.7602 6.67165 14.932C6.76576 15.1037 6.92331 15.2318 7.11062 15.2889C7.44084 15.3778 7.78114 15.4238 8.12312 15.4258C8.52749 15.4258 8.98187 15.3527 9.35687 15.1039C9.54675 14.9784 9.70655 14.8124 9.82485 14.6179C9.94316 14.4235 10.017 14.2053 10.0412 13.9789C10.1175 13.3964 9.88749 12.8964 9.39937 12.5677V12.5689ZM13.805 10.4683C13.6175 10.4023 13.4115 10.4134 13.2322 10.4991C13.0529 10.5849 12.915 10.7384 12.8487 10.9258L12.305 12.4445L11.7612 10.9258C11.7319 10.8287 11.6831 10.7386 11.6179 10.6609C11.5527 10.5832 11.4725 10.5195 11.382 10.4738C11.2915 10.428 11.1926 10.401 11.0914 10.3945C10.9902 10.388 10.8887 10.4021 10.7931 10.436C10.6975 10.4698 10.6098 10.5227 10.5352 10.5914C10.4606 10.6601 10.4007 10.7433 10.3592 10.8358C10.3176 10.9283 10.2953 11.0283 10.2935 11.1297C10.2917 11.2311 10.3105 11.3318 10.3487 11.4258L11.5987 14.9258C11.6508 15.0714 11.7466 15.1974 11.873 15.2865C11.9995 15.3756 12.1503 15.4234 12.305 15.4234C12.4597 15.4234 12.6105 15.3756 12.737 15.2865C12.8634 15.1974 12.9592 15.0714 13.0112 14.9258L14.2612 11.4258C14.3277 11.2383 14.317 11.0321 14.2314 10.8525C14.1459 10.673 13.9925 10.5348 13.805 10.4683ZM2.55499 8.42578V4.17578C2.55499 3.84426 2.68669 3.52632 2.92111 3.2919C3.15553 3.05748 3.47347 2.92578 3.80499 2.92578H9.80499C9.90351 2.9257 10.0011 2.94504 10.0921 2.98268C10.1832 3.02032 10.2659 3.07553 10.3356 3.14516L13.8356 6.64516C13.9052 6.71486 13.9605 6.7976 13.9981 6.88864C14.0357 6.97969 14.0551 7.07726 14.055 7.17578V8.42578C14.055 8.62469 13.976 8.81546 13.8353 8.95611C13.6947 9.09676 13.5039 9.17578 13.305 9.17578C13.1061 9.17578 12.9153 9.09676 12.7747 8.95611C12.634 8.81546 12.555 8.62469 12.555 8.42578V8.17578H9.55499C9.35608 8.17578 9.16532 8.09676 9.02466 7.95611C8.88401 7.81546 8.80499 7.62469 8.80499 7.42578V4.42578H4.05499V8.42578C4.05499 8.62469 3.97598 8.81546 3.83532 8.95611C3.69467 9.09676 3.50391 9.17578 3.30499 9.17578C3.10608 9.17578 2.91531 9.09676 2.77466 8.95611C2.63401 8.81546 2.55499 8.62469 2.55499 8.42578ZM10.305 6.67578H11.7425L10.305 5.23828V6.67578Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconExportCsv);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_export_csv.fc9735a4f97b5efc225d204dbba28941.svg\";","/**\n * @description Component-WalletModalWrapper\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { FC, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Drawer from '@/components/Drawer';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { ICardWrapperDrawerPropTypes } from '@/types/modal';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\n\nimport SettingSubCard from '../SettingSubCard';\nimport { useUnConnectSubCard } from '../UnconnectSubCard';\nimport WalletCardWrapper from '../WalletCardWrapper';\ninterface PropTypes extends ICardWrapperDrawerPropTypes {\n onClose: () => void;\n}\nconst WalletDrawerWrapper: FC = function ({\n onClose,\n className,\n cardProps: { showFooter, ...cardProps },\n children,\n ...props\n}) {\n const [showSubCard, setShowSubCard] = useState<'wallet' | 'setting' | undefined>(undefined);\n const unConnectSubCardProps = useUnConnectSubCard(showSubCard, setShowSubCard, showFooter);\n const { t } = useTranslation();\n const subCardProps = useMemo(() => {\n return {\n subCardSlot: setShowSubCard(undefined)}>,\n subCardTitle: t('common.walletCardWrapper.subCardTitle'),\n ...unConnectSubCardProps,\n };\n }, [setShowSubCard, unConnectSubCardProps, t]);\n\n const walletConnectStatus = useWalletConnectStatus();\n\n useEffect(() => {\n // close\n if (showSubCard === 'wallet' && walletConnectStatus !== WALLET_CONNECT_STATUS.UN_CONNECT) {\n setShowSubCard(undefined);\n }\n }, [walletConnectStatus, showSubCard]);\n return (\n \n {\n setShowSubCard(fallback ? 'setting' : undefined);\n }}\n {...subCardProps}>\n {children}\n \n \n );\n};\n\nexport default WalletDrawerWrapper;\n","/**\n * @description Component-WalletModalWrapper\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { FC, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { CardModalWrapper } from '@/components/CardWrapper';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { ICardWrapperModalPropTypes } from '@/types/modal';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\n\nimport SettingSubCard from '../SettingSubCard';\nimport { useUnConnectSubCard } from '../UnconnectSubCard';\ninterface PropTypes extends ICardWrapperModalPropTypes {\n onClose: () => void;\n}\nconst WalletModalWrapper: FC = function ({\n onClose,\n className,\n cardProps: { showFooter, ...cardProps },\n children,\n ...props\n}) {\n const [showSubCard, setShowSubCard] = useState<'wallet' | 'setting' | undefined>(undefined);\n const unConnectSubCardProps = useUnConnectSubCard(showSubCard, setShowSubCard, showFooter);\n const { t } = useTranslation();\n const subCardProps = useMemo(() => {\n return {\n subCardSlot: setShowSubCard(undefined)}>,\n subCardTitle: t('common.walletCardWrapper.subCardTitle'),\n ...unConnectSubCardProps,\n };\n }, [setShowSubCard, unConnectSubCardProps, t]);\n\n const walletConnectStatus = useWalletConnectStatus();\n\n useEffect(() => {\n // close\n if (showSubCard === 'wallet' && walletConnectStatus !== WALLET_CONNECT_STATUS.UN_CONNECT) {\n setShowSubCard(undefined);\n }\n }, [walletConnectStatus, showSubCard]);\n return (\n {\n setShowSubCard(fallback ? 'setting' : undefined);\n },\n }}\n className={classNames('syn-wallet-card-wrapper', `width-${props.width}`, className)}\n onClose={onClose}>\n {children}\n \n );\n};\n\nexport default WalletModalWrapper;\n","/**\n * @description Component-SettleModalFooter\n */\nimport './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport React, { FC, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\nimport { FETCHING_STATUS } from '@/constants';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { settle } from '@/features/portfolio/actions';\nimport { useSettlingStatus } from '@/features/portfolio/hook';\nimport { useAppProvider, useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n settlingPortfolio: WrappedPortfolio | undefined;\n chainId: CHAIN_ID | undefined;\n userAddr: string | undefined;\n onCloseModal?: () => void;\n}\nconst SettleModalFooter: FC = function ({ settlingPortfolio, onCloseModal, chainId, userAddr }) {\n const dispatch = useAppDispatch();\n const signer = useWalletSigner();\n const provider = useAppProvider();\n const { t } = useTranslation();\n const sdkContext = useSDK(chainId);\n const settlingStatus = useSettlingStatus(chainId, userAddr);\n\n const onAfterClickSettle = useCallback(async () => {\n try {\n if (chainId && userAddr && signer && sdkContext && provider && settlingPortfolio) {\n const receipt = await dispatch(\n settle({\n signer,\n provider,\n sdkContext,\n chainId,\n userAddr,\n portfolio: settlingPortfolio,\n }),\n ).unwrap();\n if (receipt) onCloseModal && onCloseModal();\n }\n } catch (e) {\n console.error('🚀 ~ file: SettleModalFooter ~ onAfterClickSettle ~ e', e);\n }\n }, [chainId, userAddr, signer, sdkContext, provider, settlingPortfolio, dispatch, onCloseModal]);\n\n return (\n
\n \n {t('common.settle')}\n \n
\n );\n};\n\nexport default SettleModalFooter;\n","/**\n * @description Component-SettleModal\n */\n\nimport './index.less';\n\nimport { utils } from '@synfutures/sdks-perp';\nimport { useAsyncEffect } from 'ahooks';\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { GlobalModalType, THEME_ENUM } from '@/constants';\nimport { EMERGENCY_CLOSE_TIME } from '@/constants/portfolio';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useModalOpen, useTheme, useToggleModal } from '@/features/global/hooks';\nimport { useSettlingPortfolio } from '@/features/portfolio/hook';\nimport { useSDK } from '@/features/web3/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n\nimport WalletDrawerWrapper from '../WalletStatus/WalletDrawerWrapper';\nimport WalletModalWrapper from '../WalletStatus/WalletModalWrapper';\nimport ImgFrozen_constr from './assets/icon_mj_construction@2x 3.png';\nimport SettleModalFooter from './SettleModalFooter';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SettleModal: FC = function ({}) {\n const { isMobile } = useMediaQueryDevice();\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { dataTheme } = useTheme();\n const toggleModal = useToggleModal(GlobalModalType.SETTLE);\n const [seconds, setSeconds] = useState(EMERGENCY_CLOSE_TIME);\n const settlingPortfolio = useSettlingPortfolio(chainId, userAddr);\n const sdk = useSDK(chainId);\n const [settledBalance, setSettledBalance] = useState(undefined);\n const visible = useModalOpen(GlobalModalType.SETTLE);\n\n const isAbnormalInstrument = useMemo(() => {\n return !settlingPortfolio?.rootInstrument?.isNormalInstrument || false;\n }, [settlingPortfolio?.rootInstrument?.isNormalInstrument]);\n\n useEffect(() => {\n toggleModal(false);\n }, [chainId, userAddr]);\n\n useEffect(() => {\n let interval: NodeJS.Timer;\n if (isAbnormalInstrument && visible) {\n interval = setInterval(() => {\n if (seconds > 0) {\n setSeconds(seconds - 1);\n }\n }, 1000);\n }\n return () => !!interval && clearInterval(interval);\n }, [isAbnormalInstrument, seconds, visible]);\n\n useEffect(() => {\n const timeOut = setTimeout(() => {\n if (seconds === 1 && visible) {\n toggleModal(false);\n }\n }, 0);\n return () => timeOut && clearTimeout(timeOut);\n }, [seconds, visible]);\n\n useEffect(() => {\n if (visible) {\n setSeconds(EMERGENCY_CLOSE_TIME);\n }\n }, [visible]);\n\n useAsyncEffect(async () => {\n try {\n if (sdk && settlingPortfolio) {\n setSettledBalance(undefined);\n const position = await sdk.perp.observer.getPositionIfSettle(settlingPortfolio, settlingPortfolio.rootPair);\n\n const equity = utils.positionEquity(position, settlingPortfolio.rootPair);\n setSettledBalance(WrappedBigNumber.from(equity));\n }\n } catch (error) {\n console.log('get settled account total balance error:', error);\n }\n }, [sdk, settlingPortfolio]);\n\n const onClickModal = useCallback(() => {\n toggleModal(false);\n }, [toggleModal]);\n\n const onCloseModal = useCallback(() => {\n toggleModal(false);\n }, [toggleModal]);\n const cardProps = useMemo(\n () => ({\n tabList: [],\n title: isAbnormalInstrument ? false : t('common.portfolio.settleForm.title'),\n // collapsePanelSlot: ,\n showSliderBar: true,\n // showSubSlotSwitch: false,\n showSettingsIcon: false,\n // alert: ,\n footer: isAbnormalInstrument ? (\n \n ) : (\n \n ),\n }),\n [chainId, isAbnormalInstrument, onCloseModal, seconds, settlingPortfolio, t, userAddr],\n );\n const cardForm = useMemo(\n () => (\n
\n {isAbnormalInstrument ? (\n
\n
\n \n
\n
\n
{t('common.portfolio.settleForm.AbnormalTitle1')}
\n
{t('common.portfolio.settleForm.AbnormalTitle2')}
\n
\n
\n ) : (\n <>\n
\n {t('common.portfolio.settleForm.totalBalance')}\n
\n \n {settledBalance && (\n \n {settledBalance.formatNumberWithTooltip({\n suffix: settlingPortfolio?.rootInstrument.quoteToken.symbol,\n showZeroIfNegative: true,\n })}\n \n )}\n \n
\n
    \n
  • \n }}\n />\n
  • \n
  • \n }} />\n
  • \n
\n \n )}\n
\n ),\n [dataTheme, isAbnormalInstrument, settledBalance, settlingPortfolio?.rootInstrument.quoteToken.symbol, t],\n );\n\n return isMobile ? (\n {\n onClickModal();\n }}\n placement=\"bottom\"\n cardProps={cardProps}>\n {cardForm}\n \n ) : (\n {\n onClickModal();\n }}\n onCancel={onCloseModal}\n cardProps={cardProps}>\n {cardForm}\n \n );\n};\n\nexport default SettleModal;\n","import Papa from 'papaparse';\nexport function downloadCSV(array: object[], filename: string): void {\n const csv = Papa.unparse(array);\n\n const csvData = new Blob([csv], { type: 'text/csv;charset=utf-8;' });\n let csvURL = null;\n csvURL = window.URL.createObjectURL(csvData);\n const tempLink = document.createElement('a');\n tempLink.href = csvURL;\n tempLink.setAttribute('download', filename);\n tempLink.click();\n}\n","import { TWrappedVolume } from '@/components/TableCard/tableConfigs/WrappedVolume';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useDailyVolumeDetails } from '@/features/graph/hooks';\nimport { useWrappedPairMap } from '@/features/pair/hook';\nimport { useQuoteHistoryPriceList } from '@/features/portfolio/hook';\nimport { priceInNumber, timestamp } from '@/types/_utils';\nimport { useMemo } from 'react';\nimport { useChainId, useUserAddr } from '../web3/useChain';\n\ntype TQuotePrices = { [timestamp in number]: priceInNumber };\nexport default function useWrappedVolumes(): TWrappedVolume[] {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const quoteHistoryPriceList = useQuoteHistoryPriceList();\n const prices = useMemo(\n () =>\n Object.entries(quoteHistoryPriceList || {}).reduce((prev, curr) => {\n const [qouteSymbol, value] = curr;\n if (qouteSymbol !== 'lastUpdate') {\n const typedValues = value as [timestamp, priceInNumber][];\n return {\n [qouteSymbol]: typedValues.reduce((prev, [timestamp, priceInNumber]) => {\n return { ...prev, [timestamp]: priceInNumber };\n }, {} as TQuotePrices),\n ...prev,\n };\n } else {\n return {\n ...prev,\n };\n }\n }, {} as { [qouteSymbol in string]: TQuotePrices }),\n [quoteHistoryPriceList],\n );\n const dailyVolumeDetails = useDailyVolumeDetails(chainId, userAddr);\n const pair = useWrappedPairMap(chainId);\n const mockPairMap = useMemo(\n () =>\n Object.values(pair).reduce((prev, curr) => {\n return { ...prev, [curr.metaPair.id]: curr };\n }, {} as { [pairSymbol in string]: WrappedPair }),\n [pair],\n );\n const result = useMemo(() => {\n const detailsWithUsd = dailyVolumeDetails.map((details) => {\n const {\n timestamp,\n symbol: pairSymbol,\n takerVolume,\n takerFee,\n makerVolume,\n makerRebate,\n expiry,\n instrumentAddr,\n } = details;\n const wrappedPair: undefined | WrappedPair = mockPairMap[`${instrumentAddr}-${expiry}`];\n const qouteSymbol = pairSymbol ? pairSymbol.split('-')[1] : '';\n const price: undefined | number = prices[qouteSymbol]?.[timestamp];\n return {\n ...details,\n wrappedPair,\n takerVolumeInUsd: price ? takerVolume * price : undefined,\n takerFeeInUsd: price ? takerFee * price : undefined,\n makerVolumeInUsd: price ? makerVolume * price : undefined,\n makerRebateInUsd: price ? makerRebate * price : undefined,\n qouteSymbol,\n } as TWrappedVolume;\n });\n return detailsWithUsd;\n }, [dailyVolumeDetails, mockPairMap, prices]);\n\n return result;\n}\n","import './index.less';\n\nimport { useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { HISTORY_RANGE, HISTORY_TYPE, MAX_HISTORY_PAGE_SIZE } from '@/constants/history';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { downloadCSV } from '@/utils/csv';\nimport { transformHistoryDataToCsvData } from '@/utils/history';\n\nimport { Tooltip } from '@/components/ToolTip';\nimport { TABLE_TYPES } from '@/constants/global';\nimport { useMarginTokenInfoMap } from '@/features/chain/hook';\nimport {\n getAccountBalanceHistory,\n getFundingHistory,\n getLiquidityHistory,\n getOrdersHistory,\n getTransferHistory,\n getVirtualTradeHistory,\n} from '@/features/graph/api';\nimport { useAllPairBasicInfoByGraph } from '@/features/graph/query';\nimport { useSDK } from '@/features/web3/hook';\nimport useWrappedVolumes from '@/hooks/portfolio/useWrappedVolumes';\nimport { transformVolumeDataToCsvData } from '@/utils/portfolio';\nimport { ReactComponent as ExportIcon } from '../../../assets/svg/icon_export_csv.svg';\nimport Button from '../Button';\ninterface ICsvExportButton {\n historyType: HISTORY_TYPE | TABLE_TYPES.VOLUME_DETAIL;\n historyTimeRange?: HISTORY_RANGE;\n pair?: WrappedPair;\n disableTooltip?: boolean;\n}\nexport default function CsvExportButton({ historyType, pair, disableTooltip }: ICsvExportButton): JSX.Element {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { data: pairBasicInfos } = useAllPairBasicInfoByGraph(chainId);\n const [loading, setLoading] = useState(false);\n const sdk = useSDK(chainId);\n const wrappedVolumes = useWrappedVolumes();\n const marginTokenMap = useMarginTokenInfoMap(chainId);\n\n const handleClick = useCallback(async () => {\n if (chainId && userAddr && sdk) {\n let csvData: object[] = [];\n setLoading(true);\n const args = {\n chainId,\n userAddr,\n timeRange: HISTORY_RANGE.ALL,\n instrumentAddr: pair?.metaPair.instrumentId,\n expiry: pair?.expiry,\n pageSize: MAX_HISTORY_PAGE_SIZE,\n sdk,\n };\n switch (historyType) {\n case HISTORY_TYPE.TRADE:\n const tradeData = await getVirtualTradeHistory(args);\n if (tradeData) {\n csvData = transformHistoryDataToCsvData({\n type: HISTORY_TYPE.TRADE,\n data: tradeData,\n pairBasicInfos,\n });\n }\n break;\n case HISTORY_TYPE.ORDERS:\n const orderData = await getOrdersHistory(args);\n if (orderData) {\n csvData = transformHistoryDataToCsvData({\n type: HISTORY_TYPE.ORDERS,\n data: orderData,\n pairBasicInfos,\n });\n }\n break;\n case HISTORY_TYPE.LIQUIDITY:\n const liquidityData = await getLiquidityHistory(args);\n\n if (liquidityData) {\n csvData = transformHistoryDataToCsvData({\n type: HISTORY_TYPE.LIQUIDITY,\n data: liquidityData,\n pairBasicInfos,\n });\n }\n break;\n case HISTORY_TYPE.FUNDING:\n const fundingData = await getFundingHistory(args);\n if (fundingData) {\n csvData = transformHistoryDataToCsvData({\n type: HISTORY_TYPE.FUNDING,\n data: fundingData,\n pairBasicInfos,\n });\n }\n break;\n case HISTORY_TYPE.TRANSFERS:\n const transferData = await getTransferHistory(args);\n if (transferData) {\n csvData = transformHistoryDataToCsvData({\n type: HISTORY_TYPE.TRANSFERS,\n data: transferData,\n pairBasicInfos,\n });\n }\n break;\n case HISTORY_TYPE.ACCOUNT:\n const accountData = await getAccountBalanceHistory(args);\n if (accountData) {\n csvData = transformHistoryDataToCsvData({\n type: HISTORY_TYPE.ACCOUNT,\n data: accountData,\n marginTokenMap,\n pairBasicInfos,\n });\n }\n break;\n case TABLE_TYPES.VOLUME_DETAIL:\n if (wrappedVolumes) {\n csvData = transformVolumeDataToCsvData(wrappedVolumes);\n }\n break;\n default:\n break;\n }\n setLoading(false);\n downloadCSV(\n csvData,\n `synfutures${pair ? `-${pair.symbol}` : ''}-${\n HISTORY_RANGE.ALL\n }-${historyType}-history-${Date.now()}.csv`.toLowerCase(),\n );\n }\n }, [chainId, userAddr, sdk, pair, marginTokenMap, historyType, wrappedVolumes, pairBasicInfos]);\n return (\n \n }\n loading={loading}\n className=\"syn-csv-export-button\"\n onClick={handleClick}>\n {t('common.exportCSV')}\n \n \n );\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconClose24 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 16,\n viewBox: \"0 0 17 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2.51654 2.46967C2.80944 2.17678 3.28431 2.17678 3.57721 2.46967L8.04688 6.93934L12.5165 2.46967C12.8094 2.17678 13.2843 2.17678 13.5772 2.46967C13.8701 2.76256 13.8701 3.23744 13.5772 3.53033L9.10753 8L13.5772 12.4697C13.8701 12.7626 13.8701 13.2374 13.5772 13.5303C13.2843 13.8232 12.8094 13.8232 12.5165 13.5303L8.04688 9.06066L3.57721 13.5303C3.28431 13.8232 2.80944 13.8232 2.51654 13.5303C2.22365 13.2374 2.22365 12.7626 2.51654 12.4697L6.98622 8L2.51654 3.53033C2.22365 3.23744 2.22365 2.76256 2.51654 2.46967Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconClose24);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_close_24.ced61c08e7a9204da99c9f8ec00ac433.svg\";","/**\n * @description Component-HistoryRefreshSimple\n */\nimport './index.less';\n\nimport { FC, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as CloseIcon } from '@/assets/svg/icon_close_24.svg';\nimport { Button } from '@/components/Button';\nimport { HIDE_REFRESH_HISTORY_DATA } from '@/constants/storage';\n\ninterface IPropTypes {\n className?: string;\n onMessageClose: (closed: true) => void;\n}\nconst HistoryRefreshSimple: FC = function ({ onMessageClose }) {\n const { t } = useTranslation();\n const [open, setOpen] = useState(true);\n const hideRefresh = localStorage.getItem(HIDE_REFRESH_HISTORY_DATA);\n useEffect(() => {\n if (hideRefresh) {\n onMessageClose(true);\n }\n }, [hideRefresh, onMessageClose]);\n\n if (!open || hideRefresh) {\n return null;\n }\n return (\n
\n
\n 💡\n {t('common.historyC.refreshLine')}\n
\n {\n setOpen(false);\n localStorage.setItem(HIDE_REFRESH_HISTORY_DATA, 'true');\n onMessageClose(true);\n }}\n icon={}\n className={'syn-history-refresh-simple-btn'}\n type=\"text\"\n />\n
\n );\n};\n\nexport default HistoryRefreshSimple;\n","import { useEffect } from 'react';\n\nexport function useStaticPinObserver(stickyRef: React.RefObject, top = 0): void {\n useEffect(() => {\n const el = stickyRef.current;\n const observer = new IntersectionObserver(\n ([e]) => e.target.classList.toggle('is-pinned', e.intersectionRatio < 1),\n {\n threshold: [0, 1],\n },\n );\n el && observer.observe(el);\n }, [stickyRef]);\n useEffect(() => {\n const el = stickyRef.current;\n const mainContainer = document.getElementsByClassName('main-container')[0];\n mainContainer?.addEventListener('scroll', () => {\n if (el) {\n const stickyTop = mainContainer.getBoundingClientRect().top;\n const currentTop = el.getBoundingClientRect().top;\n el.classList.toggle('is-pinned', currentTop <= stickyTop + top);\n }\n });\n }, [stickyRef, top]);\n}\nexport function useStickyObserver(selector: string, top = 0): void {\n useEffect(() => {\n const el = document.querySelector(selector);\n const mainContainer = document.getElementsByClassName('main-container')[0];\n mainContainer?.addEventListener('scroll', () => {\n if (el) {\n const stickyTop = mainContainer.getBoundingClientRect().top;\n const currentTop = el.getBoundingClientRect().top;\n el.classList.toggle('is-pinned', currentTop <= stickyTop + top);\n }\n });\n }, [selector, top]);\n}\n","/**\n * @description Component-HistoryTableRangeSelector\n */\nimport classNames from 'classnames';\nimport './index.less';\n\nimport { FC, ReactNode } from 'react';\n\ninterface IPropTypes {\n className?: string;\n onClick?: (key: string) => void;\n items: { key: string; label: ReactNode }[];\n activeKey?: string;\n varient?: 'default' | 'solid';\n}\nconst SynCircleTabs: FC = function ({ items, onClick, className, activeKey, varient = 'default' }) {\n return (\n
\n
\n {items.map((item, i) => (\n {\n onClick?.(item.key);\n }}\n className={classNames('syn-circle-tabs-item', activeKey === item.key && 'active')}>\n {item.label}\n
\n ))}\n
\n
\n );\n};\n\nexport default SynCircleTabs;\n","import SynCircleTabs from '@/components/Tabs/SynCircleTabs';\nimport { TABLE_TYPES } from '@/constants/global';\nimport { useTradePortfolioTab } from '@/features/trade/hooks';\nimport { setTradePortfolioTab } from '@/features/trade/slice';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { useTranslation } from 'react-i18next';\n\nexport default function TradeHistoryTabs() {\n const dispatch = useAppDispatch();\n const tabPosition = useTradePortfolioTab();\n const chainId = useChainId();\n\n const { t } = useTranslation();\n const items: {\n key: string;\n label: string;\n }[] = [\n { key: TABLE_TYPES.TRADE_HISTORY, label: t('common.trade') },\n { key: TABLE_TYPES.ORDER_HISTORY, label: t('common.order') },\n { key: TABLE_TYPES.LIQUIDITY_HISTORY, label: t('common.liquidity') },\n { key: TABLE_TYPES.FUNDING, label: t('common.funding') },\n { key: TABLE_TYPES.TRANSFERS, label: t('common.transfer') },\n ];\n return (\n {\n chainId && dispatch(setTradePortfolioTab({ tab: key as TABLE_TYPES, chainId }));\n }}\n />\n );\n}\n","/**\n * @description Component-HistoryTableRangeSelector\n */\nimport './index.less';\n\nimport React, { FC, useCallback, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { HISTORY_RANGE } from '@/constants/history';\nimport { setHistoryRange } from '@/features/graph/actions';\nimport { useHistoryRange } from '@/features/graph/hooks';\nimport { useAppDispatch } from '@/hooks';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst HistoryTableRangeSelector: FC = function () {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const timeRange = useHistoryRange();\n const selectorRef = useRef(null);\n\n const setTimeRange = useCallback(\n (type: HISTORY_RANGE) => {\n dispatch(setHistoryRange(type));\n },\n [dispatch],\n );\n return (\n
\n
\n setTimeRange(HISTORY_RANGE.D_1)}\n className={`syn-history-table-range-selector-item ${timeRange === HISTORY_RANGE.D_1 ? 'active' : ''}`}>\n {t('common.historyC.1d')}\n
\n setTimeRange(HISTORY_RANGE.D_7)}\n className={`syn-history-table-range-selector-item ${timeRange === HISTORY_RANGE.D_7 ? 'active' : ''}`}>\n {t('common.historyC.7d')}\n
\n setTimeRange(HISTORY_RANGE.M_1)}\n className={`syn-history-table-range-selector-item ${timeRange === HISTORY_RANGE.M_1 ? 'active' : ''}`}>\n {t('common.historyC.1m')}\n
\n {/* setTimeRange(HISTORY_RANGE.M_3)}\n className={`syn-history-table-range-selector-item ${timeRange === HISTORY_RANGE.M_3 ? 'active' : ''}`}>\n {t('common.historyC.3m')}\n */}\n setTimeRange(HISTORY_RANGE.ALL)}\n className={`syn-history-table-range-selector-item ${timeRange === HISTORY_RANGE.ALL ? 'active' : ''}`}>\n {t('common.historyC.all')}\n \n \n \n );\n};\n\nexport default HistoryTableRangeSelector;\n","/**\n * @description Component-DayTable\n */\nimport './index.less';\n\nimport { useDebounceFn } from 'ahooks';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as RefreshIcon } from '@/assets/svg/icon_refresh_linear.svg';\nimport { Button } from '@/components/Button';\nimport CsvExportButton from '@/components/Button/CsvExportButton';\nimport SkeletonTable, { SkeletonTableColumnsType } from '@/components/SkeletonTable';\nimport type { TableSticky } from '@/components/Table';\nimport Table from '@/components/Table';\nimport { DEFAULT_HISTORY_PAGE_SIZE_LOCAL, HISTORY_RANGE, HISTORY_TYPE } from '@/constants/history';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useHistoryRange } from '@/features/graph/hooks';\nimport { useStickyObserver } from '@/hooks/useStickyPin';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport {\n IAccountBalanceHistory,\n IFundingHistory,\n ILiquidityHistory,\n IOrderHistory,\n ITradeHistory,\n ITransferHistory,\n} from '@/types/graph';\n\nimport TradeHistoryTabs from '@/pages/trade/TradePortfolio/common';\nimport HistoryRefreshSimple from '../HistoryRefreshSimple';\nimport { useHistoryTableColumns } from '../tableConfigs';\nimport HistoryTableRangeSelector from './HistoryTableRangeSelector';\n\ninterface IPropTypes {\n pair?: WrappedPair;\n historyType: HISTORY_TYPE;\n histories:\n | ITradeHistory[]\n | IOrderHistory[]\n | IFundingHistory[]\n | ITransferHistory[]\n | ILiquidityHistory[]\n | IAccountBalanceHistory[];\n showPair?: boolean;\n loading: boolean;\n rowCount?: number;\n pageType?: 'portfolio' | 'trade';\n isShowSelector?: boolean;\n refresh?: () => void;\n showTradeHistoryTabs?: boolean;\n sticky?: boolean | TableSticky;\n fetchMoreData?: () => void;\n}\nconst HistoryTable: FC = function ({\n pair,\n historyType,\n histories,\n showPair = true,\n rowCount = 2,\n loading,\n pageType = 'trade',\n isShowSelector = true,\n refresh,\n sticky,\n fetchMoreData,\n showTradeHistoryTabs = false,\n}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const [messageClosed, setMessageClosed] = useState(false);\n const timeRange = useHistoryRange();\n const containerRef = useRef(null);\n const selectorRef = useRef(null);\n const [scrollY, setScrollY] = useState(300);\n const [scrollX, setScrollX] = useState(600);\n const [page, setPage] = useState(1);\n\n const filteredHistories = useMemo(() => {\n const current = moment.utc();\n const currentTime = current.valueOf() / 1000;\n return _.filter(\n histories,\n (\n h:\n | ITradeHistory\n | IOrderHistory\n | IFundingHistory\n | ITransferHistory\n | ILiquidityHistory\n | IAccountBalanceHistory,\n ) => {\n const time = moment((h?.timestamp || 0) * 1000);\n switch (timeRange) {\n case HISTORY_RANGE.ALL:\n return true;\n case HISTORY_RANGE.D_1:\n return currentTime - (h.timestamp || 0) <= 60 * 60 * 24;\n case HISTORY_RANGE.D_7:\n return currentTime - (h.timestamp || 0) <= 60 * 60 * 24 * 7;\n case HISTORY_RANGE.M_1:\n return current.month() - time.month() <= 1;\n case HISTORY_RANGE.M_3:\n return current.month() - time.month() <= 3;\n default:\n return true;\n }\n },\n );\n }, [histories, timeRange]);\n\n const localHistories = useMemo(\n () => filteredHistories.slice(0, page * DEFAULT_HISTORY_PAGE_SIZE_LOCAL),\n [filteredHistories, page],\n );\n\n const pairs = useMemo(\n () => _.uniq(filteredHistories.map((history) => history?.pair).filter((h) => h !== undefined)),\n [filteredHistories],\n );\n\n const quotes = useMemo(() => {\n const quotes = _.uniqBy(\n filteredHistories.map((history) => (history as IAccountBalanceHistory)?.quote).filter((h) => h !== undefined),\n 'address',\n );\n return quotes;\n }, [filteredHistories]);\n\n useStickyObserver('.syn-history-table-header', 48);\n const columnDefs = useHistoryTableColumns(historyType, pairs, quotes, showPair);\n const setTableParams = useCallback(() => {\n if (containerRef.current) {\n const scrollY =\n containerRef.current.offsetHeight - (selectorRef.current ? selectorRef.current.offsetHeight + 49 : 0);\n setScrollY(scrollY > 1000 ? 1000 : scrollY < 300 ? 300 : scrollY);\n setScrollX(containerRef.current.offsetWidth);\n }\n }, [setScrollX, setScrollY]);\n\n const { run: fetchMoreDataDebounce } = useDebounceFn(\n () => {\n fetchMoreData && fetchMoreData();\n },\n { wait: 100 },\n );\n\n useEffect(() => {\n let timeOut: NodeJS.Timeout;\n if (!loading) {\n timeOut = setTimeout(() => setTableParams(), 0);\n window.onresize = setTableParams;\n }\n return () => timeOut && clearTimeout(timeOut);\n // must depend on historyType\n }, [loading, historyType]);\n const { run: onScroll } = useDebounceFn(\n (e: Event) => {\n const { scrollTop, scrollHeight, clientHeight } = e.target as HTMLTableSectionElement;\n if (scrollTop + clientHeight === scrollHeight) {\n fetchMoreDataDebounce();\n setPage((pre) => pre + 1);\n }\n },\n { wait: 20 },\n );\n useEffect(() => {\n if (!loading && !!filteredHistories.length) {\n const el = document.querySelector('#historyTable .ant-table-tbody-virtual-holder') as HTMLTableSectionElement;\n if (el) {\n el.addEventListener('scroll', onScroll);\n }\n }\n }, [loading, fetchMoreDataDebounce]);\n\n useEffect(() => {\n setPage(1);\n }, [chainId, historyType, timeRange, userAddr]);\n const emptyDescProps = useMemo(() => {\n if (pageType === 'portfolio' && historyType === HISTORY_TYPE.LIQUIDITY) {\n return {\n emptyDesc: t('common.empty.EarnNow'),\n emptyDescLink: '/#/earn',\n };\n }\n return {\n emptyDesc: pageType === 'portfolio' ? t('common.empty.TradeNow') : undefined,\n emptyDescLink: pageType === 'portfolio' ? '/#/trade' : undefined,\n };\n }, [historyType, pageType, t]);\n return (\n \n {isShowSelector && (\n
\n
\n {showTradeHistoryTabs && }\n\n {!showTradeHistoryTabs && }\n
\n \n\n \n {showTradeHistoryTabs && }\n
\n
\n \n
\n )}\n \n record.txHash + record.logIndex}\n virtual={!!localHistories.length}\n scroll={localHistories.length ? { x: scrollX, y: scrollY } : undefined}\n {...emptyDescProps}\n />\n \n \n );\n};\n\nexport default HistoryTable;\n","/**\n * @description Component-AccountHistory\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as RefreshIcon } from '@/assets/svg/icon_refresh_linear.svg';\nimport { Button } from '@/components/Button';\nimport CsvExportButton from '@/components/Button/CsvExportButton';\nimport { HISTORY_TYPE } from '@/constants/history';\nimport {\n useHistoryRange,\n useInfiniteAccountBalanceHistory,\n useInfiniteFundingHistory,\n useInfiniteLiquidityHistory,\n useInfiniteOrdersHistory,\n useInfiniteTransferHistory,\n useInfiniteVirtualTradeHistory,\n} from '@/features/graph/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport HistoryRefreshSimple from './HistoryRefreshSimple';\nimport HistoryTable from './HistoryTable';\nimport HistoryTableRangeSelector from './HistoryTable/HistoryTableRangeSelector';\n\nconst AccountHistory: FC = function () {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const dappConfig = useBackendChainConfig(chainId);\n const [historyType, setHistoryType] = useState(HISTORY_TYPE.TRADE);\n const timeRange = useHistoryRange();\n const {\n refreshData: refreshTradeHistory,\n histories: tradeHistories,\n queryState: { fetchNextPage: fetchNextTradePage, isLoading: isLoadingTrade },\n } = useInfiniteVirtualTradeHistory({\n chainId,\n userAddr,\n pair: 'all',\n timeRange,\n });\n const {\n refreshData: refreshOrderHistory,\n histories: orderHistories,\n queryState: { fetchNextPage: fetchNextOrderPage, isLoading: isLoadingOrder },\n } = useInfiniteOrdersHistory({ chainId, userAddr });\n const {\n refreshData: refreshLiquidityHistory,\n histories: liquidityHistories,\n queryState: { fetchNextPage: fetchNextLiquidityPage, isLoading: isLoadingLiquidity },\n } = useInfiniteLiquidityHistory({ chainId, userAddr, pair: 'all', timeRange });\n const {\n refreshData: refreshFundingHistory,\n histories: fundingHistories,\n queryState: { fetchNextPage: fetchNextFundingPage, isLoading: isLoadingFunding },\n } = useInfiniteFundingHistory({ chainId, userAddr, pair: 'all', timeRange });\n const {\n refreshData: refreshTransferHistory,\n histories: transferHistories,\n queryState: { fetchNextPage: fetchNextTransferPage, isLoading: isLoadingTransfer },\n } = useInfiniteTransferHistory({ chainId, userAddr, pair: 'all', timeRange });\n const {\n refreshData: refreshAccountBalanceHistory,\n histories: accountBalanceHistories,\n queryState: { fetchNextPage: fetchNextAccountBalancePage, isLoading: isLoadingAccountBalance },\n } = useInfiniteAccountBalanceHistory({ chainId, userAddr, timeRange });\n const [refreshMessageClosed, setRefreshMessageClosed] = useState(false);\n const histories = useMemo(() => {\n switch (historyType) {\n case HISTORY_TYPE.TRADE:\n return tradeHistories;\n case HISTORY_TYPE.ORDERS:\n return orderHistories;\n case HISTORY_TYPE.LIQUIDITY:\n return liquidityHistories;\n case HISTORY_TYPE.FUNDING:\n return fundingHistories;\n case HISTORY_TYPE.TRANSFERS:\n return transferHistories;\n case HISTORY_TYPE.ACCOUNT:\n return accountBalanceHistories;\n default:\n return [];\n }\n }, [\n historyType,\n tradeHistories,\n orderHistories,\n liquidityHistories,\n fundingHistories,\n transferHistories,\n accountBalanceHistories,\n ]);\n\n const loading = useMemo(() => {\n switch (historyType) {\n case HISTORY_TYPE.TRADE:\n return isLoadingTrade;\n case HISTORY_TYPE.ORDERS:\n return isLoadingOrder;\n case HISTORY_TYPE.LIQUIDITY:\n return isLoadingLiquidity;\n case HISTORY_TYPE.FUNDING:\n return isLoadingFunding;\n case HISTORY_TYPE.TRANSFERS:\n return isLoadingTransfer;\n case HISTORY_TYPE.ACCOUNT:\n return isLoadingAccountBalance;\n default:\n return false;\n }\n }, [\n isLoadingTrade,\n isLoadingOrder,\n isLoadingLiquidity,\n isLoadingFunding,\n isLoadingTransfer,\n isLoadingAccountBalance,\n historyType,\n ]);\n\n const refreshData = useCallback(() => {\n switch (historyType) {\n case HISTORY_TYPE.TRADE:\n refreshTradeHistory();\n break;\n case HISTORY_TYPE.ORDERS:\n refreshOrderHistory();\n break;\n case HISTORY_TYPE.LIQUIDITY:\n refreshLiquidityHistory();\n break;\n case HISTORY_TYPE.FUNDING:\n refreshFundingHistory();\n break;\n case HISTORY_TYPE.TRANSFERS:\n refreshTransferHistory();\n break;\n case HISTORY_TYPE.ACCOUNT:\n refreshAccountBalanceHistory();\n break;\n }\n }, [\n historyType,\n refreshTradeHistory,\n refreshOrderHistory,\n refreshLiquidityHistory,\n refreshFundingHistory,\n refreshTransferHistory,\n refreshAccountBalanceHistory,\n ]);\n\n const fetchMoreData = useCallback(() => {\n switch (historyType) {\n case HISTORY_TYPE.TRADE:\n fetchNextTradePage();\n break;\n case HISTORY_TYPE.ORDERS:\n fetchNextOrderPage();\n break;\n case HISTORY_TYPE.LIQUIDITY:\n fetchNextLiquidityPage();\n break;\n case HISTORY_TYPE.FUNDING:\n fetchNextFundingPage();\n break;\n case HISTORY_TYPE.TRANSFERS:\n fetchNextTransferPage();\n break;\n case HISTORY_TYPE.ACCOUNT:\n fetchNextAccountBalancePage();\n break;\n default:\n break;\n }\n }, [\n historyType,\n fetchNextTradePage,\n fetchNextOrderPage,\n fetchNextLiquidityPage,\n fetchNextFundingPage,\n fetchNextTransferPage,\n fetchNextAccountBalancePage,\n ]);\n\n useEffect(() => {\n setHistoryType(HISTORY_TYPE.TRADE);\n }, [chainId]);\n\n return (\n
\n
\n
\n
\n
\n setHistoryType(HISTORY_TYPE.TRADE)}\n className={`syn-portfolio-account-history-type-selector-item ${\n historyType === HISTORY_TYPE.TRADE ? 'active' : ''\n }`}>\n {t('common.historyC.trade')}\n
\n {!dappConfig?.trade?.isDisableLimitOrder && (\n <>\n setHistoryType(HISTORY_TYPE.ORDERS)}\n className={`syn-portfolio-account-history-type-selector-item ${\n historyType === HISTORY_TYPE.ORDERS ? 'active' : ''\n }`}>\n {t('common.historyC.orders')}\n
\n \n )}\n setHistoryType(HISTORY_TYPE.LIQUIDITY)}\n className={`syn-portfolio-account-history-type-selector-item ${\n historyType === HISTORY_TYPE.LIQUIDITY ? 'active' : ''\n }`}>\n {t('common.liquidity')}\n
\n setHistoryType(HISTORY_TYPE.FUNDING)}\n className={`syn-portfolio-account-history-type-selector-item ${\n historyType === HISTORY_TYPE.FUNDING ? 'active' : ''\n }`}>\n {t('common.historyC.funding')}\n
\n setHistoryType(HISTORY_TYPE.TRANSFERS)}\n className={`syn-portfolio-account-history-type-selector-item ${\n historyType === HISTORY_TYPE.TRANSFERS ? 'active' : ''\n }`}>\n {t('common.historyC.transfers')}\n
\n setHistoryType(HISTORY_TYPE.ACCOUNT)}\n className={`syn-portfolio-account-history-type-selector-item ${\n historyType === HISTORY_TYPE.ACCOUNT ? 'active' : ''\n }`}>\n {t('common.historyC.account')}\n \n \n \n
\n \n refreshData()}\n icon={}\n disabled={loading}\n className={'syn-HistoryRefresh-btn'}\n type=\"text\">\n {t('common.historyC.refresh')}\n \n \n
\n \n \n \n \n \n );\n};\n\nexport default AccountHistory;\n","export default function OpenOrderIcon() {\n return (\n \n \n \n \n \n );\n}\n","import { TABLE_TYPES } from './global';\n\nexport const tableWidthMap = {\n [TABLE_TYPES.OPEN_ORDERS]: {\n side: 155,\n filledAmount: 100,\n limitPrice: 115,\n margin: 110,\n leverage: 95,\n openOrderCreateTime: 105,\n action: 90,\n checkboxCol: 40,\n },\n};\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconListRewards = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.32 7.635V10.045C2.32132 10.1661 2.37036 10.2819 2.45649 10.367C2.54261 10.4522 2.65886 10.5 2.78 10.5H5.59V7.635H2.32ZM6.41 10.5H9.22C9.34114 10.5 9.45739 10.4522 9.54351 10.367C9.62964 10.2819 9.67868 10.1661 9.68 10.045V7.635H6.41V10.5ZM10.05 3.545H9.13C9.22457 3.35373 9.27416 3.14337 9.275 2.93C9.27368 2.55028 9.12191 2.18657 8.85293 1.91853C8.58396 1.6505 8.21972 1.5 7.84 1.5C7.44332 1.51881 7.06005 1.64945 6.73447 1.87683C6.40888 2.10421 6.15425 2.41906 6 2.785C5.84575 2.41906 5.59112 2.10421 5.26553 1.87683C4.93995 1.64945 4.55668 1.51881 4.16 1.5C3.78028 1.5 3.41604 1.6505 3.14707 1.91853C2.87809 2.18657 2.72632 2.55028 2.725 2.93C2.72584 3.14337 2.77543 3.35373 2.87 3.545H1.95C1.7 3.545 1.5 3.84 1.5 4.2V6.165C1.5 6.525 1.7 6.82 1.95 6.82H5.59V3.545H6.41V6.82H10.05C10.3 6.82 10.5 6.525 10.5 6.165V4.2C10.5 3.84 10.3 3.545 10.05 3.545ZM4.16 3.545C4.07491 3.5527 3.98916 3.54258 3.9082 3.5153C3.82724 3.48801 3.75285 3.44416 3.68978 3.38653C3.62671 3.32891 3.57633 3.25877 3.54187 3.1806C3.5074 3.10243 3.4896 3.01793 3.4896 2.9325C3.4896 2.84707 3.5074 2.76257 3.54187 2.6844C3.57633 2.60623 3.62671 2.53609 3.68978 2.47847C3.75285 2.42084 3.82724 2.37699 3.9082 2.3497C3.98916 2.32242 4.07491 2.3123 4.16 2.32C4.86 2.32 5.255 3.04 5.45 3.545H4.16ZM7.84 3.545H6.55C6.745 3.045 7.14 2.32 7.84 2.32C7.92509 2.3123 8.01084 2.32242 8.0918 2.3497C8.17276 2.37699 8.24715 2.42084 8.31022 2.47847C8.37329 2.53609 8.42367 2.60623 8.45813 2.6844C8.4926 2.76257 8.5104 2.84707 8.5104 2.9325C8.5104 3.01793 8.4926 3.10243 8.45813 3.1806C8.42367 3.25877 8.37329 3.32891 8.31022 3.38653C8.24715 3.44416 8.17276 3.48801 8.0918 3.5153C8.01084 3.54258 7.92509 3.5527 7.84 3.545Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconListRewards);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_list_rewards.3c356b66eb6c38cc22f9d14e4db19292.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgSolarSquareTopDownLinear = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 8,\n height: 8,\n viewBox: \"0 0 8 8\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"solar:square-top-down-linear\",\n clipPath: \"url(#clip0_44104_33999)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.1757 0.666504C5.1757 0.459397 5.34359 0.291504 5.5507 0.291504H7.33203C7.53914 0.291504 7.70703 0.459397 7.70703 0.666504V2.44784C7.70703 2.65494 7.53914 2.82284 7.33203 2.82284C7.12492 2.82284 6.95703 2.65494 6.95703 2.44784V1.57183L4.5972 3.93167C4.45075 4.07812 4.21331 4.07812 4.06687 3.93167C3.92042 3.78522 3.92042 3.54779 4.06687 3.40134L6.4267 1.0415H5.5507C5.34359 1.0415 5.1757 0.873611 5.1757 0.666504Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2.22064 1.09916C1.80852 1.15455 1.58223 1.25691 1.41914 1.41971C1.25644 1.58259 1.15407 1.8088 1.09867 2.221C1.04181 2.64409 1.04102 3.20357 1.04102 3.99984C1.04102 4.7961 1.04181 5.35567 1.09867 5.77876C1.15409 6.19112 1.2565 6.4171 1.41909 6.57958L1.41918 6.57967C1.58208 6.74257 1.80828 6.84503 2.22054 6.90048C2.64361 6.95737 3.20308 6.95817 3.99935 6.95817C4.79562 6.95817 5.35517 6.95737 5.77824 6.90048C6.19055 6.84502 6.41651 6.74257 6.579 6.57985L6.57927 6.57958C6.74209 6.41688 6.84454 6.19083 6.89999 5.7786C6.95689 5.35557 6.95768 4.79611 6.95768 3.99984C6.95768 3.79273 7.12558 3.62484 7.33268 3.62484C7.53979 3.62484 7.70768 3.79273 7.70768 3.99984V4.0276C7.70769 4.7897 7.7077 5.39973 7.64329 5.87858C7.57666 6.37401 7.43494 6.7848 7.10942 7.11009C6.78429 7.43552 6.37351 7.57717 5.87821 7.64378C5.39933 7.70819 4.78921 7.70818 4.02711 7.70817H3.97159C3.20949 7.70818 2.59945 7.70819 2.12057 7.64378C1.62513 7.57715 1.21436 7.43546 0.888942 7.11009C0.563534 6.78491 0.421938 6.37406 0.355358 5.87866C0.290999 5.3998 0.291006 4.78969 0.291016 4.02757V3.97211C0.291006 3.20999 0.290999 2.59996 0.355358 2.1211C0.421944 1.62565 0.563538 1.21487 0.888761 0.88943L0.889032 0.889158C1.2146 0.564038 1.62529 0.422439 2.12073 0.355847C2.59955 0.291487 3.2095 0.291495 3.97161 0.291504L3.99935 0.291504C4.20646 0.291504 4.37435 0.459398 4.37435 0.666504C4.37435 0.873611 4.20646 1.0415 3.99935 1.0415C3.20308 1.0415 2.64368 1.0423 2.22064 1.09916Z\",\n fill: \"white\"\n })))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_44104_33999\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 8,\n height: 8,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgSolarSquareTopDownLinear);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/solar_square-top-down-linear.f2325341b00b277bd21714488d8245a6.svg\";","/**\n * @description Component-CampaignRefTag\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\n\nimport Tag from '@/components/Tag';\nimport { Tooltip } from '@/components/ToolTip';\nimport { useTheme } from '@/features/global/hooks';\n\nimport { useNavigate } from 'react-router-dom';\nimport { ReactComponent as IconListRewards } from './assets/icon_list_rewards.svg';\nimport { ReactComponent as IconLink } from './assets/solar_square-top-down-linear.svg';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n campaignTitle?: string;\n campaignBonus?: number;\n}\n\nconst CampaignRefTag: FC = function ({ campaignBonus, campaignTitle }) {\n const { dataTheme } = useTheme();\n const navigate = useNavigate();\n if (!campaignBonus) return null;\n return (\n
\n \n {\n navigate('/campaign');\n e.stopPropagation();\n }}>\n \n {campaignBonus}\n \n \n \n
\n );\n};\n\nexport default CampaignRefTag;\n","/**\n * @description Component-MarketTag\n */\nimport Tag from '@/components/Tag';\nimport './index.less';\n\nimport { Tooltip } from '@/components/ToolTip';\nimport { BackendMarketCustomTagConfig } from '@/types/config';\nimport { FC } from 'react';\ninterface IPropTypes extends BackendMarketCustomTagConfig {\n children?: React.ReactNode;\n className?: string;\n}\nconst MarketTag: FC = function ({ tagName, tagColor, tagBgColor, tooltip, link, isOpenNewTag }) {\n return (\n \n {\n if (link) {\n if (isOpenNewTag) {\n window.open(link, '_blank');\n } else {\n window.location.href = link;\n }\n }\n e.stopPropagation();\n }}>\n {tagName}\n \n \n );\n};\n\nexport default MarketTag;\n","/**\n * @description Component-TokenPairWitheToolTip\n */\n\nimport { MarketType } from '@synfutures/sdks-perp';\nimport { Tooltip } from 'antd';\nimport React, { ComponentProps, FC, useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { WrappedOrder } from '@/entities/WrappedOrder';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { WrappedRange } from '@/entities/WrappedRange';\n\nimport TokenPair from '../TokenPair';\ntype IPropTypes = {\n children?: React.ReactNode;\n className?: string;\n record: WrappedPair | WrappedOrder | WrappedRange | WrappedPosition;\n isShowPairSettleIcon?: boolean;\n isShowLogo?: boolean;\n} & Partial>;\n\nconst TokenPairWitheToolTip: FC = function ({\n record,\n isShowLogo = false,\n isShowPairSettleIcon = true,\n ...props\n}) {\n const [open, setOpen] = useState(false);\n const { t } = useTranslation();\n const ref = useRef(null);\n const pair = record instanceof WrappedPair ? record : record.rootPair;\n const isAbnormalInstrument = !pair?.rootInstrument?.isNormalInstrument || false;\n useEffect(() => {\n ref.current?.parentNode?.parentNode?.parentNode?.addEventListener('mouseover', () => {\n setOpen(true);\n });\n ref.current?.parentNode?.parentNode?.parentNode?.addEventListener('mouseleave', () => {\n setOpen(false);\n });\n }, [ref.current?.parentNode?.parentNode?.parentNode]);\n return (\n \n \n
{isAbnormalInstrument ? <>🚧 : <>💰}
\n \n \n ) : undefined\n ) : undefined\n }\n {...props}\n />\n );\n};\n\nexport default TokenPairWitheToolTip;\n","import './index.less';\n\nimport { Checkbox } from 'antd';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { PriceBasisForPnl, priceBasisForPnlInfos } from '@/constants/trade/priceBasisForPnl';\nimport { usePriceBasisForPnl } from '@/hooks/usePriceBasisForPnl';\n\nimport UnderlineToolTip from '../UnderlineToolTip';\nexport default function PnlTitleToolTip(): JSX.Element {\n const { t } = useTranslation();\n const { onClickPriceBasisCheckbox, priceBasisForPnl } = usePriceBasisForPnl();\n return (\n \n
\n
\n {t('common.tradePage.tradePosition.selectPriceBasis')}\n
\n {Object.values(PriceBasisForPnl).map((thisPriceBasisForPnl, key) => (\n
\n {\n onClickPriceBasisCheckbox(thisPriceBasisForPnl);\n }}\n checked={priceBasisForPnl === thisPriceBasisForPnl}\n />\n {t(priceBasisForPnlInfos[thisPriceBasisForPnl].i18nId)}\n
\n ))}\n
\n\n }} />\n \n }>\n {t('common.unrealizedPl')}\n \n );\n}\n","import './index.less';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { LEARN_MORE_LINK } from '@/constants/links';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { usePriceBasisForPnl } from '@/hooks/usePriceBasisForPnl';\n\ntype UnrealizedPnlTooltipProps = {\n position: WrappedPosition | undefined;\n};\nexport const UnrealizedPnlTooltip = ({ position }: UnrealizedPnlTooltipProps): JSX.Element => {\n const { priceBasisForPnl } = usePriceBasisForPnl();\n const { t } = useTranslation();\n if (!position) return <>;\n return (\n
\n
\n
{t('common.unrealizedPl')}
\n
\n {t('common.tradePage.tradePosition.unRealizedPnlTooltipDesktop.positionPnl')}\n \n {position.getUnrealizedPnlWithoutFunding(priceBasisForPnl).formatNumberWithTooltip({\n suffix: position.rootInstrument.marginToken.symbol,\n isShowTBMK: true,\n colorShader: true,\n showPositive: true,\n colorSuffix: true,\n isShowApproximatelyEqualTo: false,\n })}\n \n
\n
\n {t('common.tradePage.tradePosition.unRealizedPnlTooltipDesktop.socialLoss')}\n \n {/* mul -1 since unrealizedSocialLoss will be positive */}\n {position.unrealizedSocialLoss.mul(-1).formatNumberWithTooltip({\n suffix: position.rootInstrument.marginToken.symbol,\n isShowTBMK: true,\n colorShader: true,\n showPositive: true,\n colorSuffix: true,\n isShowApproximatelyEqualTo: false,\n })}\n \n
\n
\n {\n e.stopPropagation();\n }}\n className=\"syn-unrealized-pnl-tooltip-link\"\n href={LEARN_MORE_LINK.socialLoss}\n target=\"_blank\"\n rel=\"noreferrer\">\n {t('common.tradePage.tradePosition.unRealizedPnlTooltipDesktop.learnMore')}\n \n
\n );\n};\n","import { formatNumberWithTooltip } from '@/components/NumberFormat';\nimport TokenPairWitheToolTip from '@/components/TokenPairWitheToolTip';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { DailyVolumeDetail } from '@/types/portfolio';\nimport { formatDate } from '@/utils/timeUtils';\n\nimport { ColumnType } from 'antd/es/table';\nimport { AlignType } from 'rc-table/lib/interface';\nexport type TWrappedVolume = DailyVolumeDetail & {\n wrappedPair?: WrappedPair;\n takerVolumeInUsd?: number;\n takerFeeInUsd?: number;\n makerVolumeInUsd?: number;\n makerRebateInUsd?: number;\n qouteSymbol: string;\n};\n\nconst ValueAndUsdValueNode = ({ value, usdValue }: { value: number | undefined; usdValue: number | undefined }) => {\n return (\n
\n {value !== undefined ? (\n formatNumberWithTooltip({\n num: value,\n isShowTBMK: true,\n })\n ) : (\n -\n )}\n {usdValue !== undefined ? (\n formatNumberWithTooltip({\n num: usdValue,\n isShowTBMK: true,\n prefix: '$',\n })\n ) : (\n -\n )}\n
\n );\n};\nexport const date = (width?: number, align?: AlignType): ColumnType => ({\n title: 'common.date',\n dataIndex: 'DATE',\n width: width !== undefined ? width : 80,\n align,\n render: (_, record) => {\n return <> {formatDate(Number(record.timestamp) * 1000, 'YYYY-MM-DD')};\n },\n});\n\nexport const pairForVolume = (width?: number, align?: AlignType): ColumnType => ({\n title: 'common.table.pair',\n dataIndex: 'PAIR',\n width: width !== undefined ? width : 80,\n align,\n render: (_, record) => {\n return record.wrappedPair ? (\n \n ) : (\n record.symbol\n );\n },\n});\n\nexport const marginForVolume = (width?: number, align?: AlignType): ColumnType => ({\n title: 'common.table.margin',\n dataIndex: 'MARGIN',\n width: width !== undefined ? width : 80,\n align,\n render: (_, record) => {\n return <>{record.qouteSymbol.toUpperCase()};\n },\n});\n\nexport const takerVolume = (width?: number, align?: AlignType): ColumnType => ({\n title: 'common.table.takerVolume',\n dataIndex: 'TAKER_VOLUME',\n width: width !== undefined ? width : 80,\n align,\n render: (_, record) => {\n return ;\n },\n});\n\nexport const makerVolume = (width?: number, align?: AlignType): ColumnType => ({\n title: 'common.table.makerVolume',\n dataIndex: 'MAKER_VOLUME',\n width: width !== undefined ? width : 80,\n align,\n render: (_, record) => {\n return ;\n },\n});\n\nexport const takerFee = (width?: number, align?: AlignType): ColumnType => ({\n title: 'common.table.takerFee',\n dataIndex: 'TAKER_FEE',\n width: width !== undefined ? width : 80,\n align,\n render: (_, record) => {\n return ;\n },\n});\n\nexport const makerRebate = (width?: number, align?: AlignType): ColumnType => ({\n title: 'common.table.makerRebate',\n dataIndex: 'MAKER_REBATE',\n width: width !== undefined ? width : 80,\n align,\n render: (_, record) => {\n return ;\n },\n});\n","/* eslint-disable @typescript-eslint/no-unused-vars */\nimport { ColumnsType, ColumnType } from 'antd/es/table';\nimport _ from 'lodash';\nimport { useMemo } from 'react';\nimport { TFunction, Trans, useTranslation } from 'react-i18next';\n\nimport { TABLE_TYPES } from '@/constants/global';\nimport { FAQ_LINKS } from '@/constants/links';\nimport { PriceBasisForPnl } from '@/constants/trade/priceBasisForPnl';\nimport { WrappedOrder } from '@/entities/WrappedOrder';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { WrappedRange } from '@/entities/WrappedRange';\nimport { usePriceBasisForPnl } from '@/hooks/usePriceBasisForPnl';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport LiquidationPrices from '@/pages/components/LiquidationPrices';\nimport PriceRange from '@/pages/earn/EarnLiquidities/PriceRange';\nimport { bigNumberSort, toBN } from '@/utils/numberUtil';\n\nimport { EmptyDataWrap } from '../../EmptyDataWrap';\n// import Tag from '../Tag';\nimport TVLWarningIcon from '@/components/TVLWarningIcon';\nimport { tableWidthMap } from '@/constants/table';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport CampaignRefTag from '@/pages/campaign/CampaignRefTag';\nimport Change24 from '@/pages/components/Change24';\nimport TradeSideSize from '@/pages/components/TradeSideSize';\nimport MarketTag from '@/pages/Market/MarketTag';\nimport { BackendChainConfig } from '@/types/config';\nimport { IMarketPair } from '@/types/pair';\nimport { formatDate } from '@/utils/timeUtils';\nimport { AlignType } from 'rc-table/lib/interface';\nimport TokenPair from '../../TokenPair';\nimport TokenPairWitheToolTip from '../../TokenPairWitheToolTip';\nimport LeanMoreToolTip from '../../ToolTip/LeanMoreToolTip';\nimport PnlTitleToolTip from '../../ToolTip/PnlTitleToolTip';\nimport UnderlineToolTip from '../../ToolTip/UnderlineToolTip';\nimport { UnrealizedPnlTooltip } from '../../ToolTip/UnrealizedPnlTooltip';\nimport { date, makerRebate, makerVolume, marginForVolume, pairForVolume, takerFee, takerVolume } from './WrappedVolume';\nexport enum TABLE_COLUMN_DEFS {\n SIDE = 'SIDE',\n AMOUNT = 'AMOUNT',\n MARGIN = 'MARGIN',\n LEVERAGE = 'LEVERAGE',\n LIQ_PRICE = 'LEVERAGE',\n PNL = 'PNL',\n AVG_PRICE = 'AVG_PRICE',\n TP = 'TP',\n SL = 'SL',\n PRICE = 'PRICE',\n FILLED_AMOUNT = 'FILLED_AMOUNT',\n}\n\nconst side = (width?: number, align?: AlignType): ColumnType => ({\n title: 'common.sideSize',\n dataIndex: 'SIDE',\n width: width !== undefined ? width : 80,\n align,\n render: (_, record) => {\n return (\n \n {record?.wrappedQuoteSize?.abs()?.formatNumberWithTooltip({\n suffix: record.rootPair.rootInstrument.quoteToken.symbol,\n isShowTBMK: true,\n })}\n \n }\n />\n );\n },\n});\nconst margin = (width?: number): ColumnType => ({\n title: 'common.table.margin',\n dataIndex: 'MARGIN',\n width: width !== undefined ? width : 80,\n render: (_, record): JSX.Element | undefined => {\n return (\n <>\n {record?.wrapAttribute('balance')?.formatNumberWithTooltip({\n suffix: record.rootPair.rootInstrument.marginToken.symbol,\n })}\n \n );\n },\n});\nconst openOrderCreateTime = (width?: number): ColumnType => ({\n title: 'common.createTime',\n dataIndex: 'createTime',\n width: width !== undefined ? width : 80,\n render: (_, record): JSX.Element | undefined => {\n const createTimestamp = record.createTimestamp;\n return <> {createTimestamp ? formatDate(createTimestamp * 1000) : '-'};\n },\n sorter: (a: WrappedOrder, b: WrappedOrder): number => {\n return (a.createTimestamp || Date.now() / 1000) - (b.createTimestamp || Date.now() / 1000);\n },\n sortDirections: ['ascend', 'descend'],\n});\nconst leverage = (width?: number): ColumnType => ({\n title: 'common.table.leverage',\n dataIndex: 'LEVERAGE',\n width: width !== undefined ? width : 80,\n\n render: (_, record): JSX.Element | undefined => {\n return <>{record.wrapAttribute('leverageWad').formatLeverageWithTooltip()};\n },\n});\nconst filled = (width?: number): ColumnType => ({\n title: 'common.taken',\n dataIndex: 'filled',\n width: width !== undefined ? width : 80,\n\n render: (_, record): JSX.Element | undefined => {\n return (\n <>\n
\n {record.wrapAttribute('taken').abs().formatNumberWithTooltip({\n suffix: record.rootPair.rootInstrument.baseToken.symbol,\n isShowTBMK: true,\n })}\n
\n
\n {record.wrappedFilledSize.formatNumberWithTooltip({\n suffix: record.rootPair.rootInstrument.quoteToken.symbol,\n isShowTBMK: true,\n })}\n
\n \n );\n },\n});\nconst limitPrice = (width?: number): ColumnType => ({\n title: 'common.table.orderPrice',\n dataIndex: 'PRICE',\n width: width !== undefined ? width : 120,\n\n render: (_, record): JSX.Element | undefined => {\n return <>{record.wrapAttribute('limitPrice').formatPriceNumberWithTooltip()};\n },\n sorter: (a: WrappedOrder, b: WrappedOrder): number => {\n return bigNumberSort(a.wrapAttribute('limitPrice'), b.wrapAttribute('limitPrice'));\n },\n sortDirections: ['ascend', 'descend'],\n});\nconst tradingPairInMarketPage = (\n width?: number,\n backendChainConfig?: BackendChainConfig | undefined,\n): ColumnType => ({\n title: 'common.market.tradeP',\n dataIndex: 'name',\n width: width !== undefined ? width : 345,\n shouldCellUpdate: (record: IMarketPair, prevRecord: IMarketPair): boolean => false,\n render: (_, record): JSX.Element | undefined => {\n const customTags = backendChainConfig?.marketCustomTag?.[record.pairSymbol];\n return (\n \n {record?.isCampaign && (\n \n )}\n {customTags?.map((tag, index) => (\n \n ))}\n \n }\n showShortPerp={true}\n />\n );\n },\n});\nconst fairPriceInPair = (width?: number): ColumnType => ({\n title: 'common.table.price',\n dataIndex: 'price',\n width: width !== undefined ? width : 120,\n shouldCellUpdate: (record: IMarketPair, prevRecord: IMarketPair): boolean => true,\n render: (_, record): JSX.Element | undefined => {\n return (\n \n
{record.fairPrice.formatPriceNumberWithTooltip()}
\n \n
\n );\n },\n});\nconst change24h = (width?: number, showMarkChange?: boolean): ColumnType => ({\n title: 'common.24HC',\n dataIndex: '24hc',\n width: width !== undefined ? width : 120,\n showSorterTooltip: false,\n shouldCellUpdate: (record: IMarketPair, prevRecord: IMarketPair): boolean => true,\n sorter: (a: IMarketPair, b: IMarketPair): number => {\n if (a?.fairPriceChange24h && b?.fairPriceChange24h) {\n return bigNumberSort(a?.fairPriceChange24h, b?.fairPriceChange24h);\n }\n return 0;\n },\n render: (_, record): JSX.Element | undefined => {\n return (\n \n
{record.fairPriceChange24h.formatPercentage({})}
\n {showMarkChange && record?.markPriceChange24h && (\n
\n {record.markPriceChange24h.formatPercentage()}\n
\n )}\n
\n );\n },\n});\n// const high24 = (width?: number): ColumnType => ({\n// title: 'common.24HH',\n// dataIndex: '24hh',\n// width: width !== undefined ? width : 120,\n// showSorterTooltip: false,\n// shouldCellUpdate: (record: WrappedPair, prevRecord: WrappedPair): boolean => true,\n// sorter: (a: WrappedPair, b: WrappedPair): number => {\n// if (a?.stats?.high24h !== undefined && b?.stats?.high24h !== undefined) {\n// return bigNumberSort(a.stats.wrapAttribute('high24h'), b.stats.wrapAttribute('high24h'));\n// }\n// return 0;\n// },\n// render: (_, record): JSX.Element | undefined => {\n// return (\n// \n// {record?.stats?.high24h && record?.stats?.displayHigh24h.formatPriceNumberWithTooltip()}\n// \n// );\n// },\n// });\n// const low24 = (width?: number): ColumnType => ({\n// title: 'common.24HL',\n// dataIndex: 'low24h',\n// className: 'align-right',\n// width: width !== undefined ? width : 125,\n// showSorterTooltip: false,\n// shouldCellUpdate: (record: WrappedPair, prevRecord: WrappedPair): boolean => true,\n// sorter: (a: WrappedPair, b: WrappedPair): number => {\n// if (a?.stats?.low24h !== undefined && b?.stats?.low24h !== undefined) {\n// return bigNumberSort(a.stats.wrapAttribute('low24h'), b.stats.wrapAttribute('low24h'));\n// }\n// return 0;\n// },\n// render: (_, record): JSX.Element | undefined => {\n// return (\n// \n// {record?.stats?.low24h && record?.stats?.displayLow24h.formatPriceNumberWithTooltip()}\n// {/*
{record?.stats?.low24h && record?.stats?.wrapAttribute('low24h').formatPriceNumberWithTooltip()}
*/}\n//
\n// );\n// },\n// });\n// const marginSymbol = (width?: number): ColumnType => ({\n// title: 'common.margin',\n// dataIndex: 'margin',\n// className: 'align-right',\n// width: width !== undefined ? width : 60,\n// showSorterTooltip: false,\n// shouldCellUpdate: (record: WrappedPair, prevRecord: WrappedPair): boolean => true,\n// sorter: (a: WrappedPair, b: WrappedPair): number => {\n// return a?.rootInstrument.marginToken.symbol > b?.rootInstrument.marginToken.symbol ? 1 : -1;\n// },\n// render: (_, record): JSX.Element | undefined => <> {record?.rootInstrument.marginToken.symbol},\n// });\nconst hV24 = (width?: number): ColumnType => ({\n title: 'common.24HV',\n dataIndex: '24hV',\n width: width !== undefined ? width : 120,\n showSorterTooltip: false,\n shouldCellUpdate: (record: IMarketPair, prevRecord: IMarketPair): boolean => true,\n sorter: (a: IMarketPair, b: IMarketPair): number => {\n return bigNumberSort(a.volume24hUsd, b.volume24hUsd);\n },\n render: (_, record): JSX.Element | undefined => {\n return (\n \n {record?.volume24hUsd?.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n isShowApproximatelyEqualTo: false,\n })}\n \n );\n },\n});\nconst BoostLiquidity = (width?: number): ColumnType => ({\n title: 'common.effectLiq',\n dataIndex: 'effectLiq',\n width: width !== undefined ? width : 130,\n showSorterTooltip: false,\n align: 'right',\n shouldCellUpdate: (record: IMarketPair, prevRecord: IMarketPair): boolean => true,\n sorter: (a: IMarketPair, b: IMarketPair): number => {\n return bigNumberSort(a.effectLiqTvl, b.effectLiqTvl);\n },\n render: (_, record): JSX.Element | undefined => {\n return (\n \n {record?.effectLiqTvl.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n })}\n \n );\n },\n});\nconst apy = (width?: number, align?: 'left' | 'right'): ColumnType => ({\n title: 'common.table.liqApy',\n dataIndex: 'apy',\n width: width !== undefined ? width : 130,\n showSorterTooltip: false,\n shouldCellUpdate: (record: IMarketPair, prevRecord: IMarketPair): boolean => true,\n sorter: (a: IMarketPair, b: IMarketPair): number => {\n return bigNumberSort(a.liquidityApy, b.liquidityApy);\n },\n render: (_, record): JSX.Element | undefined => {\n return (\n \n {record?.liquidityApy.formatPercentage({ colorShader: false })}\n \n );\n },\n align: align,\n});\nconst portfolioPositionSide = (width?: number): ColumnType => ({\n title: 'common.sideSize',\n dataIndex: 'sideSize',\n align: 'left',\n width: width !== undefined ? width : 100,\n render: (_, record): JSX.Element | undefined => {\n return (\n \n );\n },\n});\nconst avgPr = (width?: number): ColumnType => ({\n title: 'common.avgPShort',\n dataIndex: 'avgPr',\n width: width !== undefined ? width : 100,\n render: (_, record): JSX.Element | undefined => {\n return (\n \n {record.wrapAttribute('entryPrice')?.formatPriceNumberWithTooltip()}\n \n );\n },\n});\nconst newLeverage = (width?: number): ColumnType => ({\n title: 'common.leverage',\n dataIndex: 'leverage',\n width: width !== undefined ? width : 100,\n render: (_, record): JSX.Element | undefined => {\n return (\n \n {record.wrapAttribute('leverageWad')?.formatLeverageWithTooltip()}\n \n );\n },\n});\nconst newMargin = (t: TFunction<'translation', undefined>, width?: number): ColumnType => ({\n title: {t('common.margin')},\n dataIndex: 'margin',\n width: width !== undefined ? width : 100,\n render: (_, record): JSX.Element | undefined => {\n return (\n \n {record.equity?.formatNumberWithTooltip({\n isShowTBMK: true,\n colorShader: false,\n suffix: record.rootInstrument.quoteToken.symbol,\n isShowApproximatelyEqualTo: false,\n })}\n \n );\n },\n});\nconst feesEarned = (width?: number): ColumnType => ({\n title: 'common.earn.feesE',\n dataIndex: 'fe',\n width: width !== undefined ? width : 80,\n\n render: (_, record): JSX.Element | undefined => {\n return (\n \n {record.wrapAttribute('feeEarned').formatNumberWithTooltip({\n suffix: record.rootInstrument.marginToken.symbol,\n })}\n \n );\n },\n});\nconst liqPrice = (width?: number): ColumnType => ({\n title: 'common.liqPShort',\n dataIndex: 'liqPrice',\n width: width !== undefined ? width : 100,\n render: (_, record): JSX.Element | undefined => {\n return (\n \n {record.wrapAttribute('liquidationPrice')?.formatLiqPriceNumberWithTooltip({\n colorShader: false,\n isShowApproximatelyEqualTo: false,\n })}\n \n );\n },\n});\nconst markPrice = (width?: number): ColumnType => ({\n title: 'common.markP',\n dataIndex: 'markPrice',\n width: width !== undefined ? width : 100,\n render: (_, record): JSX.Element | undefined => {\n return (\n \n {record.rootPair.wrapAttribute('markPrice')?.formatPriceNumberWithTooltip({\n colorShader: false,\n isShowApproximatelyEqualTo: false,\n })}\n \n );\n },\n});\nconst pnl = (priceBasisForPnl: PriceBasisForPnl, width?: number): ColumnType => ({\n title: ,\n dataIndex: 'pnl',\n width: width !== undefined ? width : 100,\n render: (_, record): JSX.Element | undefined => {\n return (\n \n
\n {record.unrealizedSocialLoss.lte(0) ? (\n <>\n {record.getUnrealizedPositionPnlWithoutFunding(priceBasisForPnl)?.formatNumberWithTooltip({\n isShowTBMK: true,\n colorShader: true,\n showPositive: true,\n colorSuffix: true,\n suffix: record.rootInstrument.quoteToken.symbol,\n isShowApproximatelyEqualTo: false,\n showToolTip: true,\n })}\n \n ) : (\n }>\n {record.getUnrealizedPositionPnlWithoutFunding(priceBasisForPnl)?.formatNumberWithTooltip({\n isShowTBMK: true,\n colorShader: true,\n showPositive: true,\n colorSuffix: true,\n suffix: record.rootInstrument.quoteToken.symbol,\n isShowApproximatelyEqualTo: false,\n showToolTip: false,\n })}\n \n )}\n\n
\n {record.equity.gt(0) &&\n record.getUnrealizedPnlPercentage(priceBasisForPnl)?.formatPercentage({\n decimals: 2,\n isColorShaderWhiteIfZero: true,\n suffix: ')',\n prefix: '(',\n })}\n
\n
\n
\n );\n },\n});\nconst priceRange = (width?: number): ColumnType => ({\n title: 'common.earn.priceR',\n dataIndex: 'pr',\n align: 'left',\n width: width !== undefined ? width : 224,\n\n render: (_, record): JSX.Element | undefined => {\n return (\n \n );\n },\n});\nconst rangeAmount = (t: TFunction<'translation', undefined>, width?: number): ColumnType => ({\n title: {t('common.earn.valueLocked')},\n dataIndex: 'valueLocked',\n width: width !== undefined ? width : 80,\n sorter: (a: WrappedRange, b: WrappedRange): number => {\n // a.valueLock needs to be checked first when there is a default sorter\n return bigNumberSort(a.wrapAttribute('valueLocked'), b.wrapAttribute('valueLocked'));\n },\n className: 'rangeAmount',\n sortDirections: ['ascend', 'descend'],\n render: (_, record): JSX.Element | undefined => {\n return (\n <>\n {record.wrapAttribute('valueLocked').formatNumberWithTooltip({\n suffix: record.rootInstrument.marginToken.symbol,\n showToolTip: true,\n })}\n \n );\n },\n});\nconst fairPriceInRange = (width?: number): ColumnType => ({\n title: 'common.fairP',\n dataIndex: 'fairPrice',\n width: width !== undefined ? width : 80,\n shouldCellUpdate: (record, prevRecord: WrappedRange): boolean => true,\n\n render: (_, record): JSX.Element | undefined => {\n return (\n \n {record.rootPair.wrapAttribute('fairPrice').formatPriceNumberWithTooltip()}\n \n );\n },\n});\n\nconst entryPriceInRange = (width?: number): ColumnType => ({\n title: 'common.earn.entryPrice',\n dataIndex: 'entryPrice',\n width: width !== undefined ? width : 80,\n shouldCellUpdate: (record, prevRecord: WrappedRange): boolean => true,\n\n render: (_, record): JSX.Element | undefined => {\n return (\n \n {WrappedBigNumber.from(record.entryPrice || 0).formatPriceNumberWithTooltip()}\n \n );\n },\n});\n\nconst pair = (width?: number): ColumnType => ({\n title: 'common.pair',\n dataIndex: 'pair',\n width: width !== undefined ? width : 180,\n render: (_, record: WrappedPair | WrappedOrder | WrappedRange): JSX.Element | undefined => {\n let leverage = undefined;\n const castedPairRecord = record as WrappedPair;\n if (castedPairRecord.maxLeverage) {\n leverage = castedPairRecord.maxLeverage;\n }\n const castedOrderRecord = record as WrappedOrder;\n if (castedOrderRecord.rootPair.maxLeverage) {\n leverage = castedOrderRecord.rootPair.maxLeverage;\n }\n return (\n \n );\n },\n});\nconst liquidationPrice = (width?: number): ColumnType => ({\n title: 'common.liqPrice',\n dataIndex: 'lp',\n width: width !== undefined ? width : 80,\n render: (_, record): JSX.Element | undefined => {\n return (\n \n
\n \n
\n
\n );\n },\n});\nconst tvl = (width?: number): ColumnType => ({\n title: 'common.tvl',\n dataIndex: 'tvl',\n width: width !== undefined ? width : 130,\n showSorterTooltip: false,\n align: 'right',\n shouldCellUpdate: (record: IMarketPair, prevRecord: IMarketPair): boolean => true,\n sorter: (a: IMarketPair, b: IMarketPair): number => {\n return bigNumberSort(a.tvlUsd, b.tvlUsd);\n },\n render: (_, record): JSX.Element | undefined => {\n return (\n
\n \n {record.tvlUsd.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n })}\n \n \n
\n );\n },\n});\nconst funding = (t: TFunction<'translation', undefined>, width?: number): ColumnType => ({\n title: (\n }} />}\n link={FAQ_LINKS.PREDICTED_FUNDING_RATE}>\n {t('common.table.funding')}\n \n ),\n dataIndex: 'funding',\n width: width !== undefined ? width : 120,\n render: (_, record): JSX.Element | undefined => {\n return (\n \n
\n
\n {record.wrapAttribute('unrealizedFundingFee')?.formatNumberWithTooltip({\n isShowTBMK: true,\n colorShader: true,\n showPositive: true,\n colorSuffix: true,\n suffix: record.rootInstrument.quoteToken.symbol,\n isShowApproximatelyEqualTo: false,\n })}\n
\n
\n
\n );\n },\n});\nexport function useTableColumns(mapKey: TABLE_TYPES): ColumnsType {\n const { t } = useTranslation();\n const { priceBasisForPnl } = usePriceBasisForPnl();\n const chainId = useChainId();\n const chainConfig = useBackendChainConfig(chainId);\n /**\n * How to format column width:\n * 1. Sum of Column Width need to be 1000!\n * 2. think the proportion of each column\n *\n */\n const columnsMap = useMemo(\n () => ({\n [TABLE_TYPES.OPEN_ORDERS]: [\n side(tableWidthMap[TABLE_TYPES.OPEN_ORDERS].side),\n filled(tableWidthMap[TABLE_TYPES.OPEN_ORDERS].filledAmount),\n limitPrice(tableWidthMap[TABLE_TYPES.OPEN_ORDERS].limitPrice),\n margin(tableWidthMap[TABLE_TYPES.OPEN_ORDERS].margin),\n leverage(tableWidthMap[TABLE_TYPES.OPEN_ORDERS].leverage),\n openOrderCreateTime(tableWidthMap[TABLE_TYPES.OPEN_ORDERS].openOrderCreateTime),\n ],\n [TABLE_TYPES.TRADING_PAIR]: [\n tradingPairInMarketPage(280, chainConfig),\n fairPriceInPair(90 + 16),\n // change24h(80 + 16),\n // high24(),\n // low24(),\n { ...hV24(90 + 16), defaultSortOrder: chainConfig?.trendingPairs?.length ? '' : 'descend' },\n BoostLiquidity(115 + 16),\n tvl(90 + 16),\n apy(90 + 16, 'right'),\n // fakeAction(t, pairPageNavigate, 154 + 16),\n ],\n\n [TABLE_TYPES.PORTFOLIO_POSITIONS]: [\n pair(250),\n portfolioPositionSide(120),\n avgPr(110),\n newMargin(t, 114),\n newLeverage(80),\n liqPrice(110),\n markPrice(110),\n pnl(priceBasisForPnl, 200),\n funding(t, 138),\n ],\n [TABLE_TYPES.PORTFOLIO_LIQUIDITIES]: [\n pair(250),\n priceRange(240),\n entryPriceInRange(180),\n rangeAmount(t, 180),\n feesEarned(180),\n liquidationPrice(202),\n ],\n [TABLE_TYPES.PORTFOLIO_OPEN_ORDERS]: [\n pair(250),\n side(176, 'left'),\n filled(156),\n limitPrice(170),\n margin(170),\n leverage(140),\n openOrderCreateTime(170),\n ],\n [TABLE_TYPES.VOLUME_DETAIL]: [\n date((900 * 135) / 1000),\n pairForVolume((900 * 190) / 1000, 'left'),\n marginForVolume((900 * 135) / 1000, 'center'),\n takerVolume((900 * 135) / 1000),\n makerVolume((900 * 135) / 1000),\n takerFee((900 * 135) / 1000),\n makerRebate((900 * 135) / 1000),\n ],\n }),\n [chainConfig?.trendingPairs?.length, priceBasisForPnl, t],\n );\n\n const columnDefs = useMemo(\n () =>\n _.get(columnsMap, [mapKey]).map((c: ColumnType) => ({\n ...c,\n title: typeof c.title === 'string' ? t(c.title) : c.title,\n })) as ColumnType[],\n [columnsMap, mapKey, t],\n );\n return columnDefs;\n}\n","import { useEffect, useRef } from 'react';\n\n/** Source: https://github.com/austintgriffith/eth-hooks/blob/master/src/Poller.ts */\n\nexport const usePoller = (\n fn: () => void,\n // eslint-disable-next-line\n deps: any[] = [],\n interval = 5000,\n delayAtFirstTime: number | null = null,\n): void => {\n const savedCallback = useRef<() => void>();\n // Remember the latest fn.\n useEffect((): void => {\n savedCallback.current = () => {\n // add fn required online\n if (navigator.onLine) {\n fn();\n }\n };\n }, [fn]);\n\n // Set up the interval.\n useEffect((): void | (() => void) => {\n function tick() {\n if (savedCallback.current) savedCallback.current();\n }\n if (interval !== null) {\n const id = setInterval(tick, interval);\n return () => clearInterval(id);\n }\n // eslint-disable-next-line\n }, [interval, ...deps]);\n\n // run at start too\n useEffect(() => {\n // add fn required online\n if (navigator.onLine) {\n if (delayAtFirstTime) {\n const timeoutId = setTimeout(() => {\n fn();\n }, delayAtFirstTime);\n return () => clearTimeout(timeoutId);\n } else {\n fn();\n }\n }\n // eslint-disable-next-line\n }, [...deps]);\n};\n","import { HISTORY_RANGE } from '@/constants/history';\nimport { POLLING_OPEN_ORDER_CREATE_TIME } from '@/constants/polling';\nimport { WrappedOrder } from '@/entities/WrappedOrder';\nimport { useWrappedOrderListByUser } from '@/features/account/orderHook';\nimport { getOpenOrderCreateTime } from '@/features/graph/actions';\nimport { selectOpenOrderCreateTime } from '@/features/graph/slice';\nimport { useSDK } from '@/features/web3/hook';\nimport { useEffect, useMemo } from 'react';\nimport { useAppDispatch, useAppSelector } from '..';\nimport { usePoller } from '../common/usePoller';\nimport { useChainId, useUserAddr } from '../web3/useChain';\nexport type UseOpenOrderListWithCreateTimeProps = Parameters;\nexport default function useOpenOrderListWithCreateTime(orders: WrappedOrder[] | undefined): WrappedOrder[] | undefined {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n const sdk = useSDK(chainId);\n const orderHistoryCreateTimeMap = useAppSelector(selectOpenOrderCreateTime(chainId, userAddr));\n const isAllOrderCreateTimeFound = useMemo(() => {\n let ans = true;\n for (let index = 0; index < (orders || []).length; index++) {\n if (orders?.[index]) {\n const timestamp = orderHistoryCreateTimeMap?.[orders?.[index].getInstrumentAddrTickSizeId()];\n if (!timestamp) {\n ans = false;\n }\n }\n }\n return ans;\n }, [orders?.length, JSON.stringify(orderHistoryCreateTimeMap)]);\n usePoller(\n () => {\n if (chainId && sdk && userAddr && !isAllOrderCreateTimeFound) {\n dispatch(\n getOpenOrderCreateTime({\n chainId,\n userAddr,\n timeRange: HISTORY_RANGE.ALL,\n requiredAllData: true,\n requiredOpenDataOnly: true,\n sdk,\n }),\n );\n }\n },\n [chainId, dispatch, isAllOrderCreateTimeFound, userAddr],\n POLLING_OPEN_ORDER_CREATE_TIME,\n 3000,\n );\n\n useEffect(() => {\n for (let index = 0; index < (orders || []).length; index++) {\n if (orders?.[index]) {\n const timestamp = orderHistoryCreateTimeMap?.[orders?.[index].getInstrumentAddrTickSizeId()];\n if (timestamp) {\n orders?.[index].setCreateTimestamp(timestamp);\n }\n }\n }\n }, [orders?.length, JSON.stringify(orderHistoryCreateTimeMap)]);\n return orders;\n}\n","/**\n * @description Component-OpenOrders\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport OpenOrderIcon from '@/assets/svg/icons/openOrder';\nimport { useMockDevTool } from '@/components/Mock';\nimport SkeletonTable, { SkeletonTableColumnsType } from '@/components/SkeletonTable';\nimport Table from '@/components/Table';\nimport { useTableColumns } from '@/components/TableCard/tableConfigs';\nimport { PAIR_PAGE_TYPE, TABLE_TYPES } from '@/constants/global';\nimport { WrappedOrder } from '@/entities/WrappedOrder';\nimport { useWrappedOrderListByUser } from '@/features/account/orderHook';\nimport { clickOpenSettledPairModal } from '@/features/portfolio/actions';\nimport { useIsFetchedPortfolioList } from '@/features/portfolio/hook';\nimport { useAppDispatch } from '@/hooks';\nimport useOpenOrderListWithCreateTime from '@/hooks/portfolio/useOpenOrderListWithCreateTime';\nimport { useSideNavigate } from '@/hooks/useRouterNavigate';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { useNavigate } from 'react-router-dom';\ninterface IPropTypes {\n className?: string;\n}\nconst OpenOrders: FC = function ({}) {\n const navigate = useNavigate();\n const { t } = useTranslation();\n const chainId = useChainId();\n const { pairPageNavigate } = useSideNavigate();\n const userAddr = useUserAddr();\n const columnDefs = useTableColumns(TABLE_TYPES.PORTFOLIO_OPEN_ORDERS);\n const orders = useWrappedOrderListByUser(chainId, userAddr, false);\n const ordersWithCreateTime = useOpenOrderListWithCreateTime(orders);\n const instruments = useMemo(\n () => _.uniq(ordersWithCreateTime?.map((p) => p.rootInstrument.displaySymbol)),\n [ordersWithCreateTime],\n );\n const isFetchedPortfolio = useIsFetchedPortfolioList(chainId, userAddr);\n\n const dispatch = useAppDispatch();\n const { isMockSkeleton } = useMockDevTool();\n if (isFetchedPortfolio && !orders?.length) {\n return null;\n }\n return (\n <>\n

\n \n {t('common.openOrders')}\n

\n
\n \n \n record.id +\n record.rootPair.rootInstrument?.isNormalInstrument?.toString() +\n record.rootPair.isNormalPair?.toString()\n }\n pagination={false}\n emptyDesc={t('common.empty.placeNow')}\n emptyDescLink={`/#/trade`}\n showUnconnected={false}\n rowClassName={(record: WrappedOrder) =>\n classNames({\n emergency: !record.rootPair.rootInstrument?.isNormalInstrument,\n odd: _.indexOf(instruments, record.rootInstrument.displaySymbol) % 2 !== 0,\n })\n }\n emptyDescLinkClick={() => navigate(`/#/trade`, { state: { toLimitTab: true } })}\n onRow={(record: WrappedOrder) => {\n return {\n onClick: () => {\n if (!record.rootPair.isNormalPair) {\n chainId &&\n userAddr &&\n dispatch(clickOpenSettledPairModal({ chainId, userAddr, portfolio: record.rootPortfolio }));\n return;\n }\n gtag('event', 'enter_trade', {\n entrance: 'portfolio', // link, nav_bar, market, portfolio, odyssey_place_limit_order\n });\n pairPageNavigate(record.rootPair.symbol || '', PAIR_PAGE_TYPE.TRADE, record.rootPair.chainId, {\n state: { toLimitTab: true },\n });\n },\n };\n }}\n />\n \n
\n \n );\n};\n\nexport default OpenOrders;\n","export default function LiquidityIcon() {\n return (\n \n \n \n \n );\n}\n","/**\n * @description Component-PortfolioLiquidityTable\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport LiquidityIcon from '@/assets/svg/icons/liquidity';\nimport { useMockDevTool } from '@/components/Mock';\nimport SkeletonTable, { SkeletonTableColumnsType } from '@/components/SkeletonTable';\nimport Table from '@/components/Table';\nimport { useTableColumns } from '@/components/TableCard/tableConfigs';\nimport { PAIR_PAGE_TYPE, TABLE_TYPES } from '@/constants/global';\nimport { WrappedRange } from '@/entities/WrappedRange';\nimport { useWrappedRangeListByUser } from '@/features/account/rangeHook';\nimport { clickOpenSettledPairModal } from '@/features/portfolio/actions';\nimport { useIsFetchedPortfolioList } from '@/features/portfolio/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useSideNavigate } from '@/hooks/useRouterNavigate';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\ninterface IPropTypes {\n className?: string;\n}\nconst PortfolioLiquidityTable: FC = function ({}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const { pairPageNavigate } = useSideNavigate();\n const userAddr = useUserAddr();\n const columnDefs = useTableColumns(TABLE_TYPES.PORTFOLIO_LIQUIDITIES);\n const ranges = useWrappedRangeListByUser(chainId, userAddr, false);\n const instruments = useMemo(() => _.uniq(ranges?.map((p) => p.rootInstrument.displaySymbol)), [ranges]);\n const isFetchedPortfolio = useIsFetchedPortfolioList(chainId, userAddr);\n\n const dispatch = useAppDispatch();\n const { isMockSkeleton } = useMockDevTool();\n if (isFetchedPortfolio && !ranges?.length) {\n return null;\n }\n return (\n <>\n

\n \n {t('common.liquidity')}\n

\n
\n \n \n record.id +\n record.rootPair.rootInstrument?.isNormalInstrument?.toString() +\n record.rootPair.isNormalPair?.toString()\n }\n pagination={false}\n emptyDesc={t('common.empty.EarnNow')}\n emptyDescLink={'/#/earn'}\n showUnconnected={false}\n rowClassName={(record: WrappedRange) =>\n classNames({\n emergency: !record.rootPair.rootInstrument?.isNormalInstrument,\n odd: _.indexOf(instruments, record.rootInstrument.displaySymbol) % 2 !== 0,\n })\n }\n onRow={(record: WrappedRange) => {\n return {\n onClick: () => {\n if (!record.rootPair.isNormalPair) {\n chainId &&\n userAddr &&\n dispatch(clickOpenSettledPairModal({ chainId, userAddr, portfolio: record.rootPortfolio }));\n return;\n }\n pairPageNavigate(record.rootPair.symbol || '', PAIR_PAGE_TYPE.EARN, record.rootPair.chainId);\n },\n };\n }}\n />\n \n
\n \n );\n};\n\nexport default PortfolioLiquidityTable;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconArrowRight = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15 8L11 4M15 8H1H15ZM15 8L11 12L15 8Z\",\n stroke: \"#1B1F26\",\n strokeWidth: 2,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconArrowRight);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_arrow_right.42bfd59d67574ed276a1087cf416ca96.svg\";","/**\n * @description Component-PortfolioAssetWithdrawLimit\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { Tooltip } from '@/components/ToolTip';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedQuote } from '@/entities/WrappedQuote';\nimport { useQuoteTokens } from '@/features/chain/hook';\nimport { claimWithdraw } from '@/features/portfolio/actions';\nimport { useUserWithdrawPendingToken, useWithdrawPendingConfig } from '@/features/portfolio/hook';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useTxNotification } from '@/hooks/useTxNotification';\nimport { useChainId, useProvider, useUserAddr } from '@/hooks/web3/useChain';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { formatDate } from '@/utils/timeUtils';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n isCurrentAsset: boolean;\n quote: WrappedQuote | undefined;\n}\nconst PortfolioAssetWithdrawLimit: FC = function ({ isCurrentAsset, quote }) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n const { pendingToken, isShowClaim, isShowProgress } = useUserWithdrawPendingToken(chainId, userAddr, quote?.address);\n const withdrawPendingConfig = useWithdrawPendingConfig(chainId);\n const marginTokens = useQuoteTokens(chainId);\n const sdkContext = useSDK(chainId);\n const signer = useWalletSigner();\n const provider = useProvider();\n const pendingHourly = useMemo(() => {\n if (withdrawPendingConfig?.pendingDuration) return withdrawPendingConfig?.pendingDuration / 3600;\n }, [withdrawPendingConfig?.pendingDuration]);\n const notification = useTxNotification();\n\n const withdrawAmountBN = useMemo(() => {\n return WrappedBigNumber.from(pendingToken?.pending?.amount || 0);\n }, [pendingToken?.pending?.amount]);\n\n const withdrawTime = useMemo(() => {\n return formatDate((pendingToken?.pending?.timestamp || 0) * 1000, 'MM-DD HH:mm');\n }, [pendingToken?.pending?.timestamp]);\n\n const releaseTime = useMemo(() => {\n return formatDate(\n (pendingToken?.pending?.timestamp || 0) * 1000 + (withdrawPendingConfig?.pendingDuration || 0) * 1000,\n 'MM-DD HH:mm',\n );\n }, [pendingToken?.pending?.timestamp, withdrawPendingConfig?.pendingDuration]);\n\n const isShowTag = useMemo(() => {\n return isShowProgress || isShowClaim;\n }, [isShowClaim, isShowProgress]);\n\n const tooltip = useMemo(() => {\n if (!isShowClaim)\n return (\n }}\n />\n );\n }, [isShowClaim, t, withdrawAmountBN, quote?.symbol, pendingHourly, withdrawTime, releaseTime]);\n\n const onClaimClick = useCallback(async () => {\n if (isShowClaim && chainId && userAddr && quote && sdkContext && signer && provider) {\n if (pendingToken?.pending?.amount?.gt(0)) {\n const receipt = await dispatch(\n claimWithdraw({\n chainId,\n userAddr,\n quote,\n sdkContext,\n signer,\n amount: pendingToken?.pending?.amount,\n provider,\n marginTokens,\n }),\n ).unwrap();\n if (receipt && receipt?.status === 1) {\n notification.success({\n tx: receipt.transactionHash,\n message: t('notification.claimWithdraw.success'),\n description: t('notification.claimWithdraw.successDesc', {\n quantity: WrappedBigNumber.from(pendingToken?.pending?.amount).formatDisplayNumber(),\n quote: quote.symbol,\n }),\n });\n }\n }\n }\n }, [\n chainId,\n dispatch,\n isShowClaim,\n notification,\n pendingToken?.pending?.amount,\n provider,\n quote,\n marginTokens,\n sdkContext,\n signer,\n t,\n userAddr,\n ]);\n\n if (!isShowTag) return null;\n if (!isCurrentAsset)\n return (\n \n
\n
\n );\n return (\n \n
\n {\n if (isShowClaim) {\n onClaimClick();\n }\n }}>\n {isShowClaim ? t('common.portfolio.claim') : t('common.portfolio.inProgress')}\n
\n \n
\n );\n};\n\nexport default PortfolioAssetWithdrawLimit;\n","import TokenLogo from '@/components/TokenLogo';\nimport PortfolioAssetWithdrawLimit from '@/pages/portfolio/PortfolioOverview/PortfolioAsset/PortfolioAssetWithdrawLimit';\nimport { IAssetsBalance } from '@/types/assets';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport './index.less';\n\ntype TokenBalanceInfoButtonProps = {\n assetBalance?: IAssetsBalance;\n} & ComponentProps<'button'>;\n\nexport default function TokenBalanceInfoButton({ assetBalance, ...props }: TokenBalanceInfoButtonProps): JSX.Element {\n const tokenInfo = assetBalance?.quote;\n if (!assetBalance) return <>;\n const usdValue = assetBalance.gateBalance?.mul(assetBalance.quote.price || 0);\n return (\n \n );\n}\n","/**\n * @description Component-DepositButton\n */\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\nimport { IButtonProps } from '@/types/button';\n\nimport './index.less';\n\nconst DepositButton: FC = function (props) {\n const { t } = useTranslation();\n return (\n \n );\n};\n\nexport default DepositButton;\n","var _path, _path2, _path3;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconSparkle16Light = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.33889 6.82167C8.25942 6.58246 8.10664 6.37435 7.90223 6.22686C7.69782 6.07937 7.45215 6 7.20009 6C6.94802 6 6.70236 6.07937 6.49795 6.22686C6.29354 6.37435 6.14076 6.58246 6.06129 6.82167L5.24169 9.28287C5.1828 9.45979 5.08349 9.62056 4.95163 9.75241C4.81978 9.88427 4.65901 9.98358 4.48209 10.0425L2.02089 10.8621C1.78168 10.9415 1.57357 11.0943 1.42608 11.2987C1.27859 11.5031 1.19922 11.7488 1.19922 12.0009C1.19922 12.2529 1.27859 12.4986 1.42608 12.703C1.57357 12.9074 1.78168 13.0602 2.02089 13.1397L4.48209 13.9605C4.65888 14.0192 4.81957 14.1184 4.95141 14.25C5.08326 14.3816 5.18264 14.5422 5.24169 14.7189L6.06129 17.1801C6.14076 17.4193 6.29354 17.6274 6.49795 17.7749C6.70236 17.9224 6.94802 18.0017 7.20009 18.0017C7.45215 18.0017 7.69782 17.9224 7.90223 17.7749C8.10664 17.6274 8.25942 17.4193 8.33889 17.1801L9.15849 14.7189C9.21738 14.5419 9.31669 14.3812 9.44854 14.2493C9.5804 14.1175 9.74116 14.0182 9.91809 13.9593L12.3793 13.1397C12.6185 13.0602 12.8266 12.9074 12.9741 12.703C13.1216 12.4986 13.201 12.2529 13.201 12.0009C13.201 11.7488 13.1216 11.5031 12.9741 11.2987C12.8266 11.0943 12.6185 10.9415 12.3793 10.8621L9.91809 10.0425C9.74116 9.98358 9.5804 9.88427 9.44854 9.75241C9.31669 9.62056 9.21738 9.45979 9.15849 9.28287L8.33889 6.82167Z\",\n fill: \"#006A80\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.3,\n d: \"M16.303 15.8265C16.5074 15.974 16.6602 16.1821 16.7397 16.4213L16.9593 17.0825C17.0183 17.2592 17.1177 17.4197 17.2495 17.5513C17.3814 17.683 17.5421 17.7821 17.7189 17.8409L18.3801 18.0617C18.6193 18.1411 18.8274 18.2939 18.9749 18.4983C19.1224 18.7027 19.2017 18.9484 19.2017 19.2005C19.2017 19.4525 19.1224 19.6982 18.9749 19.9026C18.8274 20.107 18.6193 20.2598 18.3801 20.3393L17.7189 20.5589C17.5422 20.6179 17.3816 20.7173 17.25 20.8492C17.1184 20.981 17.0192 21.1417 16.9605 21.3185L16.7397 21.9797C16.6602 22.2189 16.5074 22.427 16.303 22.5745C16.0986 22.722 15.8529 22.8013 15.6009 22.8013C15.3488 22.8013 15.1031 22.722 14.8987 22.5745C14.6943 22.427 14.5415 22.2189 14.4621 21.9797L14.2425 21.3185C14.1836 21.1416 14.0843 20.9808 13.9524 20.8489C13.8206 20.7171 13.6598 20.6178 13.4829 20.5589L12.8217 20.3393C12.5825 20.2598 12.3743 20.107 12.2269 19.9026C12.0794 19.6982 12 19.4525 12 19.2005C12 18.9484 12.0794 18.7027 12.2269 18.4983C12.3743 18.2939 12.5825 18.1411 12.8217 18.0617L13.4829 17.8421C13.6596 17.783 13.8201 17.6836 13.9517 17.5518C14.0834 17.42 14.1825 17.2593 14.2413 17.0825L14.4621 16.4213C14.5415 16.1821 14.6943 15.974 14.8987 15.8265C15.1031 15.679 15.3488 15.5996 15.6009 15.5996C15.8529 15.5996 16.0986 15.679 16.303 15.8265Z\",\n fill: \"#006A80\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.6,\n d: \"M18.761 1.474C18.9754 1.64917 19.1225 1.89306 19.1776 2.16433L19.4644 3.59473C19.5108 3.82724 19.625 4.0408 19.7927 4.20845C19.9603 4.3761 20.1739 4.49034 20.4064 4.53673L21.8368 4.82233C22.1094 4.87623 22.3548 5.02306 22.5312 5.23774C22.7076 5.45243 22.804 5.72167 22.804 5.99953C22.804 6.27738 22.7076 6.54663 22.5312 6.76131C22.3548 6.976 22.1094 7.12282 21.8368 7.17673L20.4064 7.46233C20.1739 7.50872 19.9603 7.62295 19.7927 7.7906C19.625 7.95826 19.5108 8.17182 19.4644 8.40433L19.1788 9.83473C19.1249 10.1073 18.9781 10.3527 18.7634 10.5291C18.5487 10.7055 18.2795 10.8019 18.0016 10.8019C17.7238 10.8019 17.4545 10.7055 17.2398 10.5291C17.0251 10.3527 16.8783 10.1073 16.8244 9.83473L16.5388 8.40433C16.4924 8.17182 16.3782 7.95826 16.2105 7.7906C16.0429 7.62295 15.8293 7.50872 15.5968 7.46233L14.1664 7.17673C13.8938 7.12282 13.6484 6.976 13.472 6.76131C13.2956 6.54663 13.1992 6.27738 13.1992 5.99953C13.1992 5.72167 13.2956 5.45243 13.472 5.23774C13.6484 5.02306 13.8938 4.87623 14.1664 4.82233L15.5968 4.53673C15.8291 4.49012 16.0424 4.3758 16.2098 4.20816C16.3772 4.04053 16.4913 3.82708 16.5376 3.59473L16.8256 2.16433C16.8807 1.89306 17.0279 1.64917 17.2422 1.474C17.4565 1.29882 17.7248 1.20312 18.0016 1.20312C18.2784 1.20312 18.5467 1.29882 18.761 1.474Z\",\n fill: \"#006A80\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconSparkle16Light);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_sparkle_16_light.61fc39b0bdd3305b035233d921abb0da.svg\";","var _g;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconSparkles20 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"heroicons:sparkles-20-solid\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M8.33889 6.82069C8.25942 6.58148 8.10664 6.37337 7.90223 6.22588C7.69782 6.0784 7.45215 5.99902 7.20009 5.99902C6.94802 5.99902 6.70236 6.0784 6.49795 6.22588C6.29354 6.37337 6.14076 6.58148 6.06129 6.82069L5.24169 9.28189C5.1828 9.45882 5.08349 9.61958 4.95163 9.75144C4.81978 9.88329 4.65901 9.9826 4.48209 10.0415L2.02089 10.8611C1.78168 10.9406 1.57357 11.0933 1.42608 11.2978C1.27859 11.5022 1.19922 11.7478 1.19922 11.9999C1.19922 12.252 1.27859 12.4976 1.42608 12.702C1.57357 12.9064 1.78168 13.0592 2.02089 13.1387L4.48209 13.9595C4.65888 14.0183 4.81957 14.1174 4.95141 14.249C5.08326 14.3807 5.18264 14.5412 5.24169 14.7179L6.06129 17.1791C6.14076 17.4183 6.29354 17.6264 6.49795 17.7739C6.70236 17.9214 6.94802 18.0008 7.20009 18.0008C7.45215 18.0008 7.69782 17.9214 7.90223 17.7739C8.10664 17.6264 8.25942 17.4183 8.33889 17.1791L9.15849 14.7179C9.21738 14.541 9.31669 14.3802 9.44854 14.2483C9.5804 14.1165 9.74116 14.0172 9.91809 13.9583L12.3793 13.1387C12.6185 13.0592 12.8266 12.9064 12.9741 12.702C13.1216 12.4976 13.201 12.252 13.201 11.9999C13.201 11.7478 13.1216 11.5022 12.9741 11.2978C12.8266 11.0933 12.6185 10.9406 12.3793 10.8611L9.91809 10.0415C9.74116 9.9826 9.5804 9.88329 9.44854 9.75144C9.31669 9.61958 9.21738 9.45882 9.15849 9.28189L8.33889 6.82069Z\",\n fill: \"#709CB2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n opacity: 0.3,\n d: \"M16.303 15.8265C16.5074 15.974 16.6602 16.1821 16.7397 16.4213L16.9593 17.0825C17.0183 17.2592 17.1177 17.4197 17.2495 17.5513C17.3814 17.683 17.5421 17.7821 17.7189 17.8409L18.3801 18.0617C18.6193 18.1411 18.8274 18.2939 18.9749 18.4983C19.1224 18.7027 19.2017 18.9484 19.2017 19.2005C19.2017 19.4525 19.1224 19.6982 18.9749 19.9026C18.8274 20.107 18.6193 20.2598 18.3801 20.3393L17.7189 20.5589C17.5422 20.6179 17.3816 20.7173 17.25 20.8492C17.1184 20.981 17.0192 21.1417 16.9605 21.3185L16.7397 21.9797C16.6602 22.2189 16.5074 22.427 16.303 22.5745C16.0986 22.722 15.8529 22.8013 15.6009 22.8013C15.3488 22.8013 15.1031 22.722 14.8987 22.5745C14.6943 22.427 14.5415 22.2189 14.4621 21.9797L14.2425 21.3185C14.1836 21.1416 14.0843 20.9808 13.9524 20.8489C13.8206 20.7171 13.6598 20.6178 13.4829 20.5589L12.8217 20.3393C12.5825 20.2598 12.3743 20.107 12.2269 19.9026C12.0794 19.6982 12 19.4525 12 19.2005C12 18.9484 12.0794 18.7027 12.2269 18.4983C12.3743 18.2939 12.5825 18.1411 12.8217 18.0617L13.4829 17.8421C13.6596 17.783 13.8201 17.6836 13.9517 17.5518C14.0834 17.42 14.1825 17.2593 14.2413 17.0825L14.4621 16.4213C14.5415 16.1821 14.6943 15.974 14.8987 15.8265C15.1031 15.679 15.3488 15.5996 15.6009 15.5996C15.8529 15.5996 16.0986 15.679 16.303 15.8265Z\",\n fill: \"#709CB2\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_3\",\n opacity: 0.6,\n d: \"M18.7601 1.474C18.9744 1.64917 19.1215 1.89306 19.1766 2.16433L19.4634 3.59473C19.5098 3.82724 19.6241 4.0408 19.7917 4.20845C19.9594 4.3761 20.1729 4.49034 20.4054 4.53673L21.8358 4.82233C22.1084 4.87623 22.3538 5.02306 22.5302 5.23774C22.7066 5.45243 22.803 5.72167 22.803 5.99953C22.803 6.27738 22.7066 6.54663 22.5302 6.76131C22.3538 6.976 22.1084 7.12282 21.8358 7.17673L20.4054 7.46233C20.1729 7.50872 19.9594 7.62295 19.7917 7.7906C19.6241 7.95826 19.5098 8.17182 19.4634 8.40433L19.1778 9.83473C19.1239 10.1073 18.9771 10.3527 18.7624 10.5291C18.5477 10.7055 18.2785 10.8019 18.0006 10.8019C17.7228 10.8019 17.4535 10.7055 17.2388 10.5291C17.0242 10.3527 16.8773 10.1073 16.8234 9.83473L16.5378 8.40433C16.4914 8.17182 16.3772 7.95826 16.2096 7.7906C16.0419 7.62295 15.8283 7.50872 15.5958 7.46233L14.1654 7.17673C13.8929 7.12282 13.6474 6.976 13.4711 6.76131C13.2947 6.54663 13.1982 6.27738 13.1982 5.99953C13.1982 5.72167 13.2947 5.45243 13.4711 5.23774C13.6474 5.02306 13.8929 4.87623 14.1654 4.82233L15.5958 4.53673C15.8281 4.49012 16.0414 4.3758 16.2088 4.20816C16.3763 4.04053 16.4903 3.82708 16.5366 3.59473L16.8246 2.16433C16.8797 1.89306 17.0269 1.64917 17.2412 1.474C17.4555 1.29882 17.7238 1.20312 18.0006 1.20312C18.2774 1.20312 18.5457 1.29882 18.7601 1.474Z\",\n fill: \"#709CB2\"\n }))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconSparkles20);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_sparkles_20.c7e1345150aeb6668f412f2ce301320a.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconTableCheck = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_3608_10552)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17.9919 5.4477C18.1695 5.34109 18.3816 5.30728 18.5837 5.35336C18.7857 5.39944 18.9621 5.52183 19.0756 5.69484L19.8692 6.90257C19.9726 7.06034 20.0169 7.24951 19.9942 7.43667C19.9714 7.62384 19.8832 7.79698 19.7449 7.92553L19.7425 7.92873L19.7313 7.93913L19.6856 7.98152L19.5053 8.15348C18.5073 9.11934 17.5396 10.1159 16.6036 11.1416C14.8425 13.074 12.7512 15.603 11.3436 18.0568C10.9508 18.7415 9.99131 18.8886 9.42219 18.2976L4.22393 12.9084C4.14944 12.8311 4.09127 12.7397 4.05289 12.6396C4.01451 12.5394 3.99669 12.4326 4.00051 12.3255C4.00432 12.2183 4.02968 12.1131 4.07509 12.0159C4.12049 11.9187 4.18501 11.8316 4.26481 11.7599L5.83591 10.3458C5.97398 10.2216 6.15101 10.1491 6.33672 10.1408C6.52243 10.1325 6.70526 10.1888 6.85392 10.3002L9.50635 12.2845C13.6497 8.20787 15.9992 6.64343 17.9919 5.4477Z\",\n fill: \"#13ECC8\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_3608_10552\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconTableCheck);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_table_check.429515d1683e738d431868271fd25d1a.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconViewImage = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5371_16379)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.05003 4.37985C8.05003 3.52381 8.74399 2.82986 9.60003 2.82986C10.4561 2.82986 11.15 3.52381 11.15 4.37985C11.15 5.2359 10.4561 5.92985 9.60003 5.92985C8.74399 5.92985 8.05003 5.2359 8.05003 4.37985Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.64995 12C9.64995 11.2544 10.2544 10.65 11 10.65C11.7455 10.65 12.35 11.2544 12.35 12C12.35 12.7456 11.7455 13.35 11 13.35C10.2544 13.35 9.64995 12.7456 9.64995 12Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.250034 7.30741C0.250439 8.55891 0.257233 9.57891 0.366493 10.3919C0.487442 11.2918 0.746194 12.0497 1.34808 12.6513C1.95011 13.2534 2.70802 13.5124 3.60822 13.6334C4.47522 13.75 5.57752 13.75 6.94505 13.75H6.96191C7.72216 14.662 9.04321 15.75 11 15.75C12.9842 15.75 14.3147 14.6313 15.0697 13.7118C15.0768 13.7032 15.0839 13.6945 15.0911 13.6857L15.0938 13.6825L15.0939 13.6824C15.2443 13.4995 15.4254 13.2794 15.551 13.0129C15.6965 12.704 15.75 12.3813 15.75 12C15.75 11.6187 15.6965 11.296 15.551 10.9871C15.4254 10.7206 15.2443 10.5004 15.0939 10.3176C15.0857 10.3077 15.0777 10.2979 15.0697 10.2882C14.7372 9.88327 14.2932 9.43972 13.7308 9.0701C13.75 8.47487 13.75 7.80483 13.75 7.05506V6.94504C13.75 5.57751 13.75 4.47536 13.6334 3.60842C13.5124 2.70822 13.2533 1.95049 12.6515 1.34825L12.6513 1.34807C12.0495 0.74626 11.2917 0.487457 10.3917 0.366485C9.52475 0.249963 8.42245 0.24998 7.05487 0.250001H6.94514C5.57756 0.24998 4.47541 0.249963 3.6085 0.366485C2.70839 0.487469 1.9507 0.746268 1.34844 1.34771L1.3479 1.34825C0.746255 1.95031 0.487466 2.70817 0.366493 3.60827C0.249973 4.47526 0.249989 5.57755 0.25001 6.94514V7.05485C0.250008 7.13533 0.250007 7.21488 0.25003 7.29353C0.249989 7.29815 0.24999 7.30278 0.250034 7.30741ZM2.40869 2.40878C2.68601 2.132 3.0749 1.95169 3.80832 1.85312C4.56364 1.75159 5.56461 1.75 7.00001 1.75C8.4354 1.75 9.43652 1.75159 10.1918 1.85312C10.9255 1.95172 11.3139 2.13206 11.5905 2.40855L11.5907 2.40873C11.8677 2.68608 12.0482 3.07494 12.1468 3.80838C12.2484 4.56366 12.25 5.56459 12.25 7C12.25 7.52328 12.2498 7.98885 12.2446 8.40583C11.8624 8.30699 11.4479 8.25 11 8.25C9.68487 8.25 8.6569 8.74144 7.89334 9.34061L4.46547 5.91274C4.08345 5.53081 3.57059 5.3083 3.03071 5.29025C2.57438 5.27499 2.12756 5.40676 1.75461 5.66261C1.76298 4.90356 1.7866 4.30307 1.85313 3.80807C1.95173 3.07444 2.13206 2.68571 2.40869 2.40878ZM1.7505 7.63983L2.54502 6.94462L2.54509 6.94457C2.66534 6.83953 2.82099 6.78408 2.98058 6.78941C3.14023 6.79475 3.29189 6.86054 3.40488 6.97346L3.40494 6.97353L6.83541 10.404C6.70172 10.5688 6.55544 10.7613 6.44905 10.9871C6.3035 11.296 6.25001 11.6187 6.25001 12C6.25001 12.0859 6.25272 12.1688 6.25859 12.2492C5.20849 12.2461 4.4261 12.2299 3.80815 12.1468C3.0744 12.0481 2.6857 11.8676 2.40874 11.5907L2.40865 11.5906L2.40856 11.5905C2.13217 11.3143 1.95177 10.926 1.85313 10.1921C1.76741 9.55432 1.75293 8.74134 1.7505 7.63983ZM11 9.74999C9.63869 9.74999 8.69229 10.506 8.08962 11.24C7.90442 11.4656 7.84356 11.5467 7.80594 11.6265C7.7815 11.6784 7.75 11.7666 7.75 12C7.75 12.2334 7.7815 12.3216 7.80594 12.3735C7.84356 12.4533 7.90442 12.5344 8.08962 12.7599C8.69229 13.494 9.63869 14.25 11 14.25C12.3613 14.25 13.3077 13.494 13.9104 12.7599C14.0956 12.5344 14.1565 12.4533 14.1941 12.3735C14.2185 12.3216 14.25 12.2334 14.25 12C14.25 11.7666 14.2185 11.6784 14.1941 11.6265C14.1565 11.5467 14.0956 11.4656 13.9104 11.24C13.3077 10.506 12.3613 9.74999 11 9.74999Z\",\n fill: \"white\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5371_16379\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconViewImage);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_view_image.5f596b84a807139d1ff15a3857e79a5c.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconViewImageLight = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5429_16845)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.05003 4.37985C8.05003 3.52381 8.74399 2.82986 9.60003 2.82986C10.4561 2.82986 11.15 3.52381 11.15 4.37985C11.15 5.2359 10.4561 5.92985 9.60003 5.92985C8.74399 5.92985 8.05003 5.2359 8.05003 4.37985Z\",\n fill: \"#1F292E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.64995 12C9.64995 11.2544 10.2544 10.65 11 10.65C11.7455 10.65 12.35 11.2544 12.35 12C12.35 12.7456 11.7455 13.35 11 13.35C10.2544 13.35 9.64995 12.7456 9.64995 12Z\",\n fill: \"#1F292E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.250034 7.30741C0.250439 8.55891 0.257233 9.57891 0.366493 10.3919C0.487442 11.2918 0.746194 12.0497 1.34808 12.6513C1.95011 13.2534 2.70802 13.5124 3.60822 13.6334C4.47522 13.75 5.57752 13.75 6.94505 13.75H6.96191C7.72216 14.662 9.04321 15.75 11 15.75C12.9842 15.75 14.3147 14.6313 15.0697 13.7118C15.0768 13.7032 15.0839 13.6945 15.0911 13.6857L15.0938 13.6825L15.0939 13.6824C15.2443 13.4995 15.4254 13.2794 15.551 13.0129C15.6965 12.704 15.75 12.3813 15.75 12C15.75 11.6187 15.6965 11.296 15.551 10.9871C15.4254 10.7206 15.2443 10.5004 15.0939 10.3176C15.0857 10.3077 15.0777 10.2979 15.0697 10.2882C14.7372 9.88327 14.2932 9.43972 13.7308 9.0701C13.75 8.47487 13.75 7.80483 13.75 7.05506V6.94504C13.75 5.57751 13.75 4.47536 13.6334 3.60842C13.5124 2.70822 13.2533 1.95049 12.6515 1.34825L12.6513 1.34807C12.0495 0.74626 11.2917 0.487457 10.3917 0.366485C9.52475 0.249963 8.42245 0.24998 7.05487 0.250001H6.94514C5.57756 0.24998 4.47541 0.249963 3.6085 0.366485C2.70839 0.487469 1.9507 0.746268 1.34844 1.34771L1.3479 1.34825C0.746255 1.95031 0.487466 2.70817 0.366493 3.60827C0.249973 4.47526 0.249989 5.57755 0.25001 6.94514V7.05485C0.250008 7.13533 0.250007 7.21488 0.25003 7.29353C0.249989 7.29815 0.24999 7.30278 0.250034 7.30741ZM2.40869 2.40878C2.68601 2.132 3.0749 1.95169 3.80832 1.85312C4.56364 1.75159 5.56461 1.75 7.00001 1.75C8.4354 1.75 9.43652 1.75159 10.1918 1.85312C10.9255 1.95172 11.3139 2.13206 11.5905 2.40855L11.5907 2.40873C11.8677 2.68608 12.0482 3.07494 12.1468 3.80838C12.2484 4.56366 12.25 5.56459 12.25 7C12.25 7.52328 12.2498 7.98885 12.2446 8.40583C11.8624 8.30699 11.4479 8.25 11 8.25C9.68487 8.25 8.6569 8.74144 7.89334 9.34061L4.46547 5.91274C4.08345 5.53081 3.57059 5.3083 3.03071 5.29025C2.57438 5.27499 2.12756 5.40676 1.75461 5.66261C1.76298 4.90356 1.7866 4.30307 1.85313 3.80807C1.95173 3.07444 2.13206 2.68571 2.40869 2.40878ZM1.7505 7.63983L2.54502 6.94462L2.54509 6.94457C2.66534 6.83953 2.82099 6.78408 2.98058 6.78941C3.14023 6.79475 3.29189 6.86054 3.40488 6.97346L3.40494 6.97353L6.83541 10.404C6.70172 10.5688 6.55544 10.7613 6.44905 10.9871C6.3035 11.296 6.25001 11.6187 6.25001 12C6.25001 12.0859 6.25272 12.1688 6.25859 12.2492C5.20849 12.2461 4.4261 12.2299 3.80815 12.1468C3.0744 12.0481 2.6857 11.8676 2.40874 11.5907L2.40865 11.5906L2.40856 11.5905C2.13217 11.3143 1.95177 10.926 1.85313 10.1921C1.76741 9.55432 1.75293 8.74134 1.7505 7.63983ZM11 9.74999C9.63869 9.74999 8.69229 10.506 8.08962 11.24C7.90442 11.4656 7.84356 11.5467 7.80594 11.6265C7.7815 11.6784 7.75 11.7666 7.75 12C7.75 12.2334 7.7815 12.3216 7.80594 12.3735C7.84356 12.4533 7.90442 12.5344 8.08962 12.7599C8.69229 13.494 9.63869 14.25 11 14.25C12.3613 14.25 13.3077 13.494 13.9104 12.7599C14.0956 12.5344 14.1565 12.4533 14.1941 12.3735C14.2185 12.3216 14.25 12.2334 14.25 12C14.25 11.7666 14.2185 11.6784 14.1941 11.6265C14.1565 11.5467 14.0956 11.4656 13.9104 11.24C13.3077 10.506 12.3613 9.74999 11 9.74999Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5429_16845\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconViewImageLight);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_view_image_light.4c7dae49525752b79e667f7694c2c052.svg\";","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport {\n IEpoch,\n IEpochDetail,\n IInfoOverview,\n ILeaderBoard,\n IOdysseyDappConfig,\n IOdysseyDashboard,\n IOdysseySignature,\n IRanking,\n IRecentJoin,\n ITokenProof,\n ITokenRanking,\n IUserPoints,\n IUserProfile,\n ODYSSEY_STEP,\n ODYSSEY_TABS,\n USER_STATUS,\n} from '@/types/odyssey';\nimport {\n getDefaultItemStatus,\n getDefaultListArrayStatus,\n ItemStatus,\n ListArrayStatus,\n setFulfilledItemStatus,\n setFulfilledListArrayStatus,\n} from '@/types/redux';\nimport { getStepByUserStatus } from '@/utils/odyssey';\nimport { currentUnixTime } from '@/utils/timeUtils';\n\nimport { getOdysseyConfigWithoutEarnOoPointPairs } from '@/configs';\nimport { AppState } from '../store';\nimport {\n claimExtraPointsAction,\n getEpochs,\n getInfoOverview,\n getLeaderBoard,\n getRecentJoins,\n getUserBlastOOPoints,\n getUserDashboard,\n getUserEpochDetails,\n getUserPrePoints,\n getUserProfile,\n getUserRanking,\n getUserTokenProof,\n getUserTokenRanking,\n openBoxAction,\n postUpdateProfile,\n resetState,\n saveReferralCode,\n setCurrentEpoch,\n setCurrentStep,\n setOdysseyRegistered,\n setOdysseyTab,\n setOdysseyUserJWT,\n setSignUpSkipped,\n signOdysseyMsg,\n simulateEarningPoints,\n simulatePointsByAddLiquidity,\n simulatePointsByLimitTrade,\n} from './actions';\n\nexport interface IOdysseyState {\n chainUserProfile: { [chainId: number]: { [userAddr: string]: ItemStatus } };\n chainUserPrePoint: { [chainId: number]: { [userAddr: string]: ItemStatus } };\n chainUserSignature: {\n [chainId: number]: {\n [userAddr: string]: IOdysseySignature;\n };\n };\n chainSignUpSkipped: {\n [chainId: number]: {\n [userAddr: string]: boolean;\n };\n };\n chainUserJWTToKEN: {\n [chainId: number]: {\n [userAddr: string]: string;\n };\n };\n chainUserTokenProof: { [chainId: number]: { [userAddr: string]: ITokenProof[] } };\n chainCurrentStep: {\n [chainId: number]: {\n [userAddr: string]: ODYSSEY_STEP;\n };\n };\n chainUserRegistered: { [chainId: number]: { [userAddr: string]: boolean } };\n chainUserDashboard: {\n [chainId: number]: {\n [userAddr: string]: ItemStatus;\n };\n };\n chainUserPointsPerDay: {\n [chainId: number]: {\n [userAddr: string]: WrappedBigNumber;\n };\n };\n chainUserPoints: { [chainId: number]: { [userAddr: string]: ItemStatus } };\n chainLeaderBoard: { [chainId: number]: ItemStatus };\n chainCurrentEpoch: { [chainId: number]: IEpoch | undefined };\n chainEpochs: { [chainId: number]: ListArrayStatus };\n chainRecentJoins: { [chainId: number]: ListArrayStatus };\n chainReferralCode: { [chainId: number]: string }; // code from shared link\n chainUserRanking: {\n [chainId: number]: {\n [userAddr: string]: { [epoch: string]: ItemStatus };\n };\n };\n chainUserEpochDetails: {\n [chainId: number]: {\n [userAddr: string]: { [epoch: string]: IEpochDetail };\n };\n };\n chainUserTokenRanking: {\n [chainId: number]: {\n [userAddr: string]: ItemStatus;\n };\n };\n odysseyDappConfig: IOdysseyDappConfig;\n chainPairPointTradeSimulation: {\n [chainId: number]: {\n [userAddr: string]: {\n [pairSymbol: string]: WrappedBigNumber;\n };\n };\n };\n chainPairPointEarnSimulation: {\n [chainId: number]: {\n [userAddr: string]: {\n [pairSymbol: string]: WrappedBigNumber;\n };\n };\n };\n odysseyTab: ODYSSEY_TABS | undefined;\n chainActiveEpoch: { [chainId: number]: IEpoch | undefined }; // current active epoch for user to earn points\n chainInfoOverview: {\n [chainId: number]: IInfoOverview | undefined;\n };\n}\n\nexport const initialState: IOdysseyState = {\n chainUserProfile: {},\n chainUserPrePoint: {},\n chainUserDashboard: {},\n chainUserJWTToKEN: {},\n chainUserSignature: {},\n chainUserTokenProof: {},\n chainSignUpSkipped: {},\n chainUserPointsPerDay: {},\n chainReferralCode: {},\n chainLeaderBoard: {},\n chainCurrentEpoch: {},\n chainEpochs: {},\n chainRecentJoins: {},\n chainUserRanking: {},\n chainUserEpochDetails: {},\n chainUserTokenRanking: {},\n chainCurrentStep: {},\n odysseyDappConfig: getOdysseyConfigWithoutEarnOoPointPairs(),\n chainPairPointTradeSimulation: {},\n chainPairPointEarnSimulation: {},\n odysseyTab: undefined,\n chainActiveEpoch: {},\n chainUserPoints: {},\n chainUserRegistered: {},\n chainInfoOverview: {},\n};\n\nexport const odysseySlice = createSlice({\n name: 'odyssey',\n initialState,\n reducers: {\n setOdysseyDappConfig: (state, { payload }: PayloadAction) => {\n state.odysseyDappConfig = payload;\n },\n },\n extraReducers: (builder) => {\n builder.addCase(resetState, (state, { payload }) => {\n const userAddr = payload.userAddr;\n const currentProfile = _.get(state.chainUserProfile, [payload.chainId, userAddr]);\n if (!currentProfile) {\n _.set(state.chainUserProfile, [payload.chainId, userAddr], getDefaultItemStatus(FETCHING_STATUS.DONE));\n }\n });\n builder.addCase(setSignUpSkipped, (state, { payload }) => {\n _.set(state.chainSignUpSkipped, [payload.chainId, payload.userAddr], true);\n });\n builder.addCase(setCurrentEpoch, (state, { payload }) => {\n _.set(state.chainCurrentEpoch, [payload.chainId], payload.epoch);\n });\n builder.addCase(setOdysseyTab, (state, { payload }) => {\n state.odysseyTab = payload.tab;\n });\n builder.addCase(setCurrentStep, (state, { payload }) => {\n _.set(state.chainCurrentStep, [payload.chainId, payload.userAddr], payload.step);\n });\n builder.addCase(saveReferralCode, (state, { payload }) => {\n _.set(state.chainReferralCode, [payload.chainId], payload.referralCode);\n });\n\n // builder.addCase(signOdysseyMsg.pending, (state, { payload,meta }) => {\n // });\n builder.addCase(signOdysseyMsg.fulfilled, (state, { payload, meta }) => {\n const { userAddr, chainId } = meta.arg;\n if (payload) {\n _.set(state.chainUserSignature, [chainId, userAddr], payload);\n _.set(state.chainUserJWTToKEN, [chainId, userAddr], payload.jwtToken);\n _.set(state.chainCurrentStep, [chainId, userAddr], ODYSSEY_STEP.CONNECTED_WALLET);\n const userProfile = _.get(state.chainUserProfile, [chainId, userAddr, 'item']);\n if (!userProfile)\n _.set(state.chainUserProfile, [chainId, userAddr], getDefaultItemStatus(FETCHING_STATUS.DONE));\n }\n });\n builder.addCase(postUpdateProfile.fulfilled, (state, { payload, meta }) => {\n const { userAddr, email, discordId: discord, username, chainId } = meta.arg;\n if (payload) {\n if (discord) {\n _.set(state.chainCurrentStep, [chainId, userAddr], ODYSSEY_STEP.FOLLOWED_DISCORD);\n _.set(state.chainUserProfile, [chainId, userAddr, 'item', 'status'], USER_STATUS.DISCORD_CONNECTED);\n }\n if (email) {\n _.set(state.chainCurrentStep, [chainId, userAddr], ODYSSEY_STEP.FILLED_EMAIL);\n _.set(state.chainUserProfile, [chainId, userAddr, 'item', 'status'], USER_STATUS.EMAIL_CONNECTED);\n }\n // if (discord || email) {\n // const boxs = _.get(state.userDashboard, ['item', 'boxes'], 0);\n // _.set(state.userDashboard, [userAddr, 'item', 'boxes'], boxs + 1);\n // }\n if (username) {\n _.set(state.chainUserRanking, [chainId, userAddr, 'item', 'username'], username);\n _.set(state.chainUserTokenRanking, [chainId, userAddr, 'item', 'username'], username);\n }\n }\n });\n builder.addCase(getUserDashboard.pending, (state, { meta }) => {\n const { userAddr, chainId } = meta.arg;\n _.set(state.chainUserDashboard, [chainId, userAddr, 'status'], FETCHING_STATUS.INIT);\n });\n builder.addCase(getUserDashboard.fulfilled, (state, { payload, meta }) => {\n const { userAddr, chainId } = meta.arg;\n if (payload) {\n _.set(state.chainUserDashboard, [chainId, userAddr], setFulfilledItemStatus(payload));\n }\n });\n builder.addCase(getUserDashboard.rejected, (state, { meta }) => {\n const { userAddr, chainId } = meta.arg;\n _.set(state.chainUserDashboard, [chainId, userAddr, 'status'], FETCHING_STATUS.DONE);\n });\n builder.addCase(getLeaderBoard.pending, (state, { meta }) => {\n // const leaderboard = _.get(state.leaderBoard, ['item']);\n const { chainId } = meta.arg;\n _.set(state.chainLeaderBoard, [chainId, 'status'], FETCHING_STATUS.INIT);\n });\n builder.addCase(getLeaderBoard.fulfilled, (state, { payload, meta }) => {\n const { chainId } = meta.arg;\n if (payload) {\n _.set(state.chainLeaderBoard, [chainId], setFulfilledItemStatus(payload));\n }\n });\n builder.addCase(getLeaderBoard.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainLeaderBoard, [chainId, 'status'], FETCHING_STATUS.DONE);\n });\n builder.addCase(getEpochs.pending, (state, { meta }) => {\n const { chainId } = meta.arg;\n const epochs = _.get(state.chainEpochs, [chainId, 'list']);\n if (!epochs) _.set(state.chainEpochs, [chainId], getDefaultListArrayStatus());\n else {\n _.set(state.chainEpochs, [chainId, 'status'], FETCHING_STATUS.FETCHING);\n }\n });\n builder.addCase(getEpochs.fulfilled, (state, { payload, meta }) => {\n const { chainId } = meta.arg;\n if (payload) {\n _.set(state.chainEpochs, [chainId], setFulfilledListArrayStatus(payload));\n const currentTime = currentUnixTime();\n // find active epoch\n const activeEpoch = payload.find((epoch) => epoch.startTs <= currentTime && currentTime <= epoch.endTs);\n const minEpoch = _.minBy(payload, (epoch) => epoch.startTs);\n const maxEpoch = _.maxBy(payload, (epoch) => epoch.endTs);\n if (activeEpoch) {\n _.set(state.chainCurrentEpoch, [chainId], activeEpoch);\n _.set(state.chainActiveEpoch, [chainId], activeEpoch);\n } else if (minEpoch && currentTime < minEpoch.startTs) {\n _.set(state.chainCurrentEpoch, [chainId], minEpoch);\n _.set(state.chainActiveEpoch, [chainId], minEpoch);\n } else if (maxEpoch && currentTime > maxEpoch.endTs) {\n _.set(state.chainCurrentEpoch, [chainId], maxEpoch);\n _.set(state.chainActiveEpoch, [chainId], maxEpoch);\n } else {\n _.set(state.chainCurrentEpoch, [chainId], undefined);\n _.set(state.chainActiveEpoch, [chainId], undefined);\n }\n }\n });\n builder.addCase(getEpochs.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n\n _.set(state.chainEpochs, [chainId], getDefaultListArrayStatus());\n });\n builder.addCase(getRecentJoins.pending, (state, { meta }) => {\n const { chainId } = meta.arg;\n const recentJoins = _.get(state.chainRecentJoins, [chainId, 'item']);\n if (!recentJoins) _.set(state.chainRecentJoins, [chainId], getDefaultListArrayStatus());\n else {\n _.set(state.chainRecentJoins, [chainId, 'status'], FETCHING_STATUS.FETCHING);\n }\n });\n builder.addCase(getRecentJoins.fulfilled, (state, { payload, meta }) => {\n const { chainId } = meta.arg;\n if (payload) {\n _.set(state.chainRecentJoins, [chainId], setFulfilledListArrayStatus(payload));\n }\n });\n builder.addCase(getRecentJoins.rejected, (state, { meta }) => {\n const { chainId } = meta.arg;\n _.set(state.chainRecentJoins, [chainId], getDefaultListArrayStatus());\n });\n builder.addCase(getUserProfile.pending, (state, { meta }) => {\n const { userAddr, chainId } = meta.arg;\n const userProfile = _.get(state.chainUserProfile, [chainId, userAddr, 'item']);\n if (!userProfile) {\n _.set(state.chainUserProfile, [chainId, userAddr], getDefaultItemStatus());\n } else {\n _.set(state.chainUserProfile, [chainId, userAddr, 'status'], FETCHING_STATUS.FETCHING);\n }\n });\n builder.addCase(getUserProfile.fulfilled, (state, { payload, meta }) => {\n const { userAddr, chainId } = meta.arg;\n _.set(state.chainUserProfile, [chainId, userAddr], setFulfilledItemStatus(payload));\n if (payload) {\n const stepStatus = getStepByUserStatus(payload.status);\n _.set(state.chainCurrentStep, [chainId, userAddr], stepStatus);\n }\n });\n builder.addCase(setOdysseyRegistered, (state, { payload }) => {\n _.set(state.chainUserRegistered, [payload.chainId, payload.userAddr], payload.registered);\n });\n builder.addCase(setOdysseyUserJWT, (state, { payload }) => {\n _.set(state.chainUserJWTToKEN, [payload.chainId, payload.userAddr], payload.token);\n });\n builder.addCase(getUserBlastOOPoints.pending, (state, { meta }) => {\n const { userAddr, chainId } = meta.arg;\n _.set(state.chainUserPoints, [chainId, userAddr, 'status'], FETCHING_STATUS.FETCHING);\n });\n builder.addCase(getUserBlastOOPoints.fulfilled, (state, { payload, meta }) => {\n const { userAddr, chainId } = meta.arg;\n if (payload) {\n _.set(state.chainUserPoints, [chainId, userAddr], setFulfilledItemStatus(payload));\n }\n });\n builder.addCase(getUserBlastOOPoints.rejected, (state, { meta }) => {\n const { userAddr, chainId } = meta.arg;\n _.set(state.chainUserPoints, [chainId, userAddr, 'status'], FETCHING_STATUS.DONE);\n });\n builder.addCase(getUserProfile.rejected, (state, { meta }) => {\n _.set(state.chainUserProfile, [meta.arg.userAddr, 'status'], FETCHING_STATUS.DONE);\n });\n\n builder.addCase(claimExtraPointsAction.fulfilled, (state, { payload, meta }) => {\n const { userAddr, chainId } = meta.arg;\n if (payload) {\n const currentProfile = _.get(state.chainUserProfile, [chainId, userAddr, 'item']);\n _.set(\n state.chainUserProfile,\n [chainId, userAddr],\n setFulfilledItemStatus({ ...currentProfile, status: USER_STATUS.EXTRA_POINTS_CLAIMED }),\n );\n }\n });\n\n builder.addCase(openBoxAction.fulfilled, (state, { meta }) => {\n const { userAddr, count, chainId } = meta.arg;\n if (count && count > 0) {\n const dashboard = _.get(state.chainUserDashboard, [chainId, userAddr, 'item']);\n const box = Math.max(0, (dashboard.boxes || 0) - count);\n _.set(state.chainUserDashboard, [chainId, userAddr, 'item', 'boxes'], box);\n }\n });\n builder.addCase(openBoxAction.rejected, (state, { meta }) => {\n console.log('🚀 ~ meta:', meta, state);\n });\n builder.addCase(getUserRanking.pending, (state, { meta }) => {\n const { userAddr, epoch, chainId } = meta.arg;\n if (meta.arg.epoch === _.get(state.chainCurrentEpoch, [chainId])?.epoch) {\n _.set(state.chainUserRanking, [chainId, userAddr, `${epoch}_epoch`, 'status'], FETCHING_STATUS.FETCHING);\n }\n });\n builder.addCase(getUserRanking.rejected, (state, { meta }) => {\n const { userAddr, epoch, chainId } = meta.arg;\n _.set(state.chainUserRanking, [chainId, userAddr, `${epoch}_epoch`, 'status'], FETCHING_STATUS.DONE);\n });\n builder.addCase(getUserRanking.fulfilled, (state, { payload, meta }) => {\n const { userAddr, epoch, chainId } = meta.arg;\n _.set(state.chainUserRanking, [chainId, userAddr, `${epoch}_epoch`], setFulfilledItemStatus(payload));\n });\n builder.addCase(getUserEpochDetails.fulfilled, (state, { payload, meta }) => {\n const { userAddr, chainId } = meta.arg;\n if (payload) {\n _.set(\n state.chainUserEpochDetails,\n [chainId, userAddr],\n _.keyBy(payload, (e) => `epoch_${e.epoch}`),\n );\n }\n });\n builder.addCase(getUserTokenProof.fulfilled, (state, { payload, meta }) => {\n const { userAddr, chainId } = meta.arg;\n _.set(state.chainUserTokenProof, [chainId, userAddr], payload);\n });\n builder.addCase(getUserTokenRanking.pending, (state, { meta }) => {\n const { userAddr, chainId } = meta.arg;\n _.set(state.chainUserTokenRanking, [chainId, userAddr, 'status'], FETCHING_STATUS.FETCHING);\n });\n builder.addCase(getUserTokenRanking.rejected, (state, { meta }) => {\n const { userAddr, chainId } = meta.arg;\n _.set(state.chainUserTokenRanking, [chainId, userAddr, 'status'], FETCHING_STATUS.DONE);\n });\n builder.addCase(getUserTokenRanking.fulfilled, (state, { payload, meta }) => {\n const { userAddr, chainId } = meta.arg;\n if (payload) {\n _.set(state.chainUserTokenRanking, [chainId, userAddr], setFulfilledItemStatus(payload));\n }\n });\n builder.addCase(simulatePointsByAddLiquidity.fulfilled, (state, { meta, payload }) => {\n const { chainId, userAddr, pair } = meta.arg;\n _.set(state.chainPairPointEarnSimulation, [chainId, userAddr, pair.symbol], payload);\n });\n builder.addCase(simulatePointsByLimitTrade.fulfilled, (state, { meta, payload }) => {\n const { chainId, userAddr, pair } = meta.arg;\n _.set(state.chainPairPointTradeSimulation, [chainId, userAddr, pair.symbol], payload);\n });\n builder.addCase(getUserPrePoints.fulfilled, (state, { payload, meta }) => {\n const { userAddr, chainId } = meta.arg;\n if (payload) {\n _.set(state.chainUserPrePoint, [chainId, userAddr], setFulfilledItemStatus(payload));\n }\n });\n\n // getInfoOverview\n builder.addCase(getInfoOverview.fulfilled, (state, { meta, payload }) => {\n const { chainId } = meta.arg;\n if (payload) {\n _.set(state.chainInfoOverview, [chainId], payload);\n }\n });\n builder.addCase(simulateEarningPoints.fulfilled, (state, { meta, payload }) => {\n _.set(state.chainUserPointsPerDay, [meta.arg.chainId, meta.arg.userAddr], payload);\n });\n },\n});\nexport const { setOdysseyDappConfig } = odysseySlice.actions;\nexport const selectUserProfile =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): IUserProfile | undefined =>\n _.get(state.odyssey.chainUserProfile, [chainId || '', userAddr || '', 'item']);\n\nexport const selectUserProfileStatus =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.odyssey.chainUserProfile, [chainId || '', userAddr || '', 'status'], FETCHING_STATUS.INIT);\n\nexport const selectUserJWT =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): string | undefined =>\n _.get(state.odyssey.chainUserJWTToKEN, [chainId || '', userAddr || '']);\n\nexport const selectSignUpSkipped =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): boolean =>\n _.get(state.odyssey.chainSignUpSkipped, [chainId || '', userAddr || '']);\n\nexport const selectUserCurrentStep =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): ODYSSEY_STEP =>\n _.get(state.odyssey.chainCurrentStep, [chainId || '', userAddr || ''], ODYSSEY_STEP.INIT);\n\nexport const selectUserDashboard =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): IOdysseyDashboard | undefined =>\n _.get(state.odyssey.chainUserDashboard, [chainId || '', userAddr || '', 'item']);\n\nexport const selectUserDashboardStatus =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.odyssey.chainUserDashboard, [chainId || '', userAddr || '', 'status'], FETCHING_STATUS.INIT);\n\nexport const selectLeaderBoard =\n (chainId: number | undefined) =>\n (state: AppState): ILeaderBoard | undefined =>\n _.get(state.odyssey.chainLeaderBoard, [chainId || '', 'item']);\n\nexport const selectLeaderBoardStatus =\n (chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.odyssey.chainLeaderBoard, [chainId || '', 'status'], FETCHING_STATUS.INIT);\n\nexport const selectEarnPoints =\n (chainId: number | undefined, userAddr: string | undefined, pairId: string | undefined) =>\n (state: AppState): WrappedBigNumber | undefined =>\n _.get(state.odyssey.chainPairPointEarnSimulation, [chainId || '', userAddr || '', pairId || '']);\n\nexport const selectTradePoints =\n (chainId: number | undefined, userAddr: string | undefined, pairId: string | undefined) =>\n (state: AppState): WrappedBigNumber | undefined =>\n _.get(state.odyssey.chainPairPointTradeSimulation, [chainId || '', userAddr || '', pairId || '']);\n\nexport const selectEpochs =\n (chainId: number | undefined) =>\n (state: AppState): IEpoch[] =>\n _.get(state.odyssey.chainEpochs, [chainId || '', 'list'], []);\nexport const selectEpochsStatus =\n (chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS | undefined =>\n _.get(state.odyssey.chainEpochs, [chainId || '', 'status']);\nexport const selectCurrentEpoch =\n (chainId: number | undefined) =>\n (state: AppState): IEpoch | undefined =>\n _.get(state.odyssey.chainCurrentEpoch, [chainId || '']);\nexport const selectActiveEpoch =\n (chainId: number | undefined) =>\n (state: AppState): IEpoch | undefined =>\n _.get(state.odyssey.chainActiveEpoch, [chainId || '']);\nexport const selectRecentJoins =\n (chainId: number | undefined) =>\n (state: AppState): IRecentJoin[] =>\n _.get(state.odyssey.chainRecentJoins, [chainId || '', 'list'], []);\nexport const selectSharedReferralCode =\n (chainId: number | undefined) =>\n (state: AppState): string | undefined =>\n _.get(state.odyssey.chainReferralCode, [chainId || '']);\nexport const selectUserRanking =\n (userAddr: string | undefined, epoch: number | undefined, chainId: number | undefined) =>\n (state: AppState): IRanking | undefined =>\n _.get(state.odyssey.chainUserRanking, [chainId || '', userAddr || '', `${epoch}_epoch`, 'item']);\nexport const selectUserEpochDetail =\n (userAddr: string | undefined, epoch: number | undefined, chainId: number | undefined) =>\n (state: AppState): IEpochDetail | undefined =>\n _.get(state.odyssey.chainUserEpochDetails, [chainId || '', userAddr || '', `epoch_${epoch}`]);\nexport const selectUserTokenProof =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): ITokenProof[] | undefined =>\n _.get(state.odyssey.chainUserTokenProof, [chainId || '', userAddr || '']);\nexport const selectUserTokenRanking =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): ItemStatus | undefined =>\n _.get(state.odyssey.chainUserTokenRanking, [chainId || '', userAddr || '']);\nexport const selectUserRankingStatus =\n (userAddr: string | undefined, epoch: number | undefined, chainId: number | undefined) =>\n (state: AppState): FETCHING_STATUS | undefined =>\n _.get(state.odyssey.chainUserRanking, [chainId || '', userAddr || '', `${epoch}_epoch`, 'status']);\n\nexport const selectUserPrePoint =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): number =>\n _.get(state.odyssey.chainUserPrePoint, [chainId || '', userAddr || '', 'item'], 0);\nexport const selectUserBlastOOPoints =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): ItemStatus | undefined =>\n _.get(state.odyssey.chainUserPoints, [chainId || '', userAddr || '']);\nexport const selectUserOdysseyRegistered =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): boolean =>\n _.get(state.odyssey.chainUserRegistered, [chainId || '', userAddr || ''], false);\n\nexport const selectOdysseyTab = (state: AppState): ODYSSEY_TABS | undefined => state.odyssey.odysseyTab;\n\nexport const selectPointsEarning =\n (userAddr: string | undefined, chainId: number | undefined) =>\n (state: AppState): WrappedBigNumber | undefined =>\n _.get(state.odyssey.chainUserPointsPerDay, [chainId || '', userAddr || '']);\n\nexport const selectInfoOverview =\n (chainId: number | undefined) =>\n (state: AppState): IInfoOverview | undefined =>\n _.get(state.odyssey.chainInfoOverview, [chainId || '']);\n\nexport default odysseySlice.reducer;\n","import { useDebounceEffect } from 'ahooks';\nimport _ from 'lodash';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate, useParams, useSearchParams } from 'react-router-dom';\nimport { toast } from 'react-toastify';\n\nimport { FETCHING_STATUS, GlobalModalType } from '@/constants';\nimport { TWITTER_SHARE_LINK } from '@/constants/odyssey';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useAppDispatch, useAppSelector, useQueryParam } from '@/hooks';\nimport { useTxNotification } from '@/hooks/useTxNotification';\nimport { useChainId, useChainName, useChainShortName, useUserAddr } from '@/hooks/web3/useChain';\nimport { useWalletAccount, useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport {\n IEpoch,\n IEpochDetail,\n IInfoOverview,\n ILeaderBoard,\n IOdysseyChainConfig,\n IOdysseyDashboard,\n IRanking,\n IRecentJoin,\n ITokenProof,\n ITokenRanking,\n IUserPoints,\n IUserProfile,\n ODYSSEY_STEP,\n ODYSSEY_TABS,\n} from '@/types/odyssey';\nimport { ItemStatus } from '@/types/redux';\nimport {\n getOdysseyJWTToken,\n getOdysseyReferralCodeToLocalForage,\n saveOdysseyReferralCodeToLocalForage,\n saveOdysseySignatureToLocalForage,\n} from '@/utils/storage';\n\nimport { CHAIN_ID, CHAIN_NAME_ID, DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { useSwitchNetwork } from '@/hooks/web3/useSwitchConnectorNetwork';\nimport { getChainIdByChainShortName } from '@/utils/chain';\nimport { useToggleModal } from '../global/hooks';\nimport { useWalletChainId } from '../wallet/hook';\nimport {\n getUserDashboard,\n getUserPrePoints,\n getUserProfile,\n saveReferralCode,\n setOdysseyRegistered,\n setOdysseyUserJWT,\n signOdysseyMsg,\n} from './actions';\nimport {\n selectActiveEpoch,\n selectCurrentEpoch,\n selectEarnPoints,\n selectEpochs,\n selectEpochsStatus,\n selectInfoOverview,\n selectLeaderBoard,\n selectLeaderBoardStatus,\n selectOdysseyTab,\n selectPointsEarning,\n selectRecentJoins,\n selectSharedReferralCode,\n selectSignUpSkipped,\n selectTradePoints,\n selectUserBlastOOPoints,\n selectUserCurrentStep,\n selectUserDashboard,\n selectUserDashboardStatus,\n selectUserEpochDetail,\n selectUserJWT,\n selectUserOdysseyRegistered,\n selectUserPrePoint,\n selectUserProfile,\n selectUserProfileStatus,\n selectUserRanking,\n selectUserRankingStatus,\n selectUserTokenProof,\n selectUserTokenRanking,\n} from './slice';\n\nexport function useOdysseyProfile(userAddr: string | undefined, chainId: number | undefined): IUserProfile | undefined {\n const profile = useAppSelector(selectUserProfile(userAddr, chainId));\n return useMemo(() => profile, [profile]);\n}\nexport function useOdysseyProfileStatus(userAddr: string | undefined, chainId: number | undefined): FETCHING_STATUS {\n const profile = useAppSelector(selectUserProfileStatus(userAddr, chainId));\n return useMemo(() => profile, [profile]);\n}\n\nexport function useCurrentStep(userAddr: string | undefined, chainId: number | undefined): ODYSSEY_STEP {\n return useAppSelector(selectUserCurrentStep(userAddr, chainId));\n}\nexport function useUserOdysseyJWT(userAddr: string | undefined, chainId: number | undefined): string | undefined {\n return useAppSelector(selectUserJWT(userAddr, chainId));\n}\nexport function useSignUpSkipped(userAddr: string | undefined, chainId: number | undefined): boolean {\n return useAppSelector(selectSignUpSkipped(userAddr, chainId));\n}\n\nexport function useOdysseyTab(): ODYSSEY_TABS | undefined {\n return useAppSelector(selectOdysseyTab);\n}\n\nexport function useUserDashboard(\n userAddr: string | undefined,\n chainId: number | undefined,\n): IOdysseyDashboard | undefined {\n return useAppSelector(selectUserDashboard(userAddr, chainId));\n}\nexport function useUserDashboardStatus(userAddr: string | undefined, chainId: number | undefined): FETCHING_STATUS {\n return useAppSelector(selectUserDashboardStatus(userAddr, chainId));\n}\n\nexport function useUserPrePoint(userAddr: string | undefined, chainId: number | undefined): number {\n return useAppSelector(selectUserPrePoint(userAddr, chainId));\n}\nexport function useUserBlastPoints(\n userAddr: string | undefined,\n chainId: number | undefined,\n): ItemStatus | undefined {\n return useAppSelector(selectUserBlastOOPoints(userAddr, chainId));\n}\nexport function useUserOdysseyRegistered(userAddr: string | undefined, chainId: number | undefined): boolean {\n return useAppSelector(selectUserOdysseyRegistered(userAddr, chainId));\n}\n\nexport function useUserLeaderBoard(chainId: number | undefined): ILeaderBoard | undefined {\n return useAppSelector(selectLeaderBoard(chainId));\n}\n\nexport function useLeaderBoardStatus(chainId: number | undefined): FETCHING_STATUS {\n return useAppSelector(selectLeaderBoardStatus(chainId));\n}\n\nexport function useEpochs(chainId: number | undefined): IEpoch[] {\n const epochs = useAppSelector(selectEpochs(chainId));\n return useMemo(() => epochs.filter((e) => e.startTs * 1000 <= Date.now()), [epochs]);\n}\nexport function useEpochsStatus(chainId: number | undefined): FETCHING_STATUS | undefined {\n const status = useAppSelector(selectEpochsStatus(chainId));\n return useMemo(() => status, [status]);\n}\n\nexport function useCurrentEpoch(chainId: number | undefined): IEpoch | undefined {\n return useAppSelector(selectCurrentEpoch(chainId));\n}\n\nexport function useActiveEpoch(chainId: number | undefined): IEpoch | undefined {\n return useAppSelector(selectActiveEpoch(chainId));\n}\n\nexport function useRecentJoins(chainId: number | undefined): IRecentJoin[] {\n return useAppSelector(selectRecentJoins(chainId));\n}\n\nexport function useTradePoints(\n chainId: number | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n): WrappedBigNumber | undefined {\n return useAppSelector(selectTradePoints(chainId, userAddr, pairId));\n}\n\nexport function useEarnPoints(\n chainId: number | undefined,\n userAddr: string | undefined,\n pairId: string | undefined,\n): WrappedBigNumber | undefined {\n return useAppSelector(selectEarnPoints(chainId, userAddr, pairId));\n}\n\nexport function useUserRanking(\n userAddr: string | undefined,\n epoch: number | undefined,\n chainId: number | undefined,\n): IRanking | undefined {\n return useAppSelector(selectUserRanking(userAddr, epoch, chainId));\n}\nexport function useUserEpochDetail(\n userAddr: string | undefined,\n epoch: number | undefined,\n chainId: number | undefined,\n): IEpochDetail | undefined {\n return useAppSelector(selectUserEpochDetail(userAddr, epoch, chainId));\n}\nexport function useUserTokenProof(\n userAddr: string | undefined,\n chainId: number | undefined,\n): ITokenProof[] | undefined {\n return useAppSelector(selectUserTokenProof(userAddr, chainId));\n}\nexport function useUserTokenRanking(\n userAddr: string | undefined,\n chainId: number | undefined,\n): ItemStatus | undefined {\n return useAppSelector(selectUserTokenRanking(userAddr, chainId));\n}\nexport function useUserRankingStatus(\n userAddr: string | undefined,\n epoch: number | undefined,\n chainId: number | undefined,\n): FETCHING_STATUS | undefined {\n return useAppSelector(selectUserRankingStatus(userAddr, epoch, chainId));\n}\n\nexport function useOdysseyDappConfig() {\n const odysseyDappConfig = useAppSelector((state) => state.odyssey.odysseyDappConfig);\n return useMemo(() => {\n return odysseyDappConfig;\n }, [odysseyDappConfig]);\n}\nexport function useOdysseyDappChainConfig(chainId: number | undefined): IOdysseyChainConfig | undefined {\n const odysseyDappConfig = useOdysseyDappConfig();\n return useMemo(() => {\n return _.get(odysseyDappConfig?.chainConfig, [chainId || '']);\n }, [chainId, odysseyDappConfig?.chainConfig]);\n}\n\nexport function useInfoOverview(chainId: number | undefined): IInfoOverview | undefined {\n return useAppSelector(selectInfoOverview(chainId));\n}\n\n/**\n * get referral code from url\n * @returns\n */\nexport function useSharedReferralCode(chainId: number | undefined): string | undefined {\n return useAppSelector(selectSharedReferralCode(chainId));\n}\n\nexport function useChainOdysseyDappConfig(chainId: number | undefined): IOdysseyChainConfig | undefined {\n const odysseyDappConfig = useOdysseyDappConfig();\n return useMemo(() => {\n if (chainId) return odysseyDappConfig?.chainConfig[chainId];\n }, [odysseyDappConfig, chainId]);\n}\n\nexport function useGetSharedCode(userAddr: string | undefined): void {\n const { referralCode, chainName } = useParams();\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const chainId = CHAIN_NAME_ID[chainName || ''];\n\n useDebounceEffect(\n () => {\n if (referralCode && chainId) {\n dispatch(saveReferralCode({ referralCode, userAddr, chainId }));\n saveOdysseyReferralCodeToLocalForage(referralCode, userAddr, chainId);\n navigate('/odyssey', { replace: true });\n gtag('event', 'enter_odyssey', {\n entrance: 'referral_link',\n });\n } else {\n // gtag('event', 'enter_odyssey', {\n // entrance: 'normal_link',\n // });\n chainId &&\n getOdysseyReferralCodeToLocalForage(userAddr, chainId).then((code) => {\n code && dispatch(saveReferralCode({ referralCode: code, userAddr, chainId }));\n });\n }\n },\n [referralCode, userAddr],\n { wait: 200 },\n );\n}\n\nexport function useUserReferralLink(userAddr: string | undefined, chainId: number | undefined): string | undefined {\n const profile = useOdysseyProfile(userAddr, chainId);\n const chainName = useChainShortName(chainId);\n return useMemo(() => {\n if (profile?.referralCode && chainName) {\n const href = window.location.href.split('?')[0];\n return `${href}/${chainName?.toLowerCase()}/${profile?.referralCode}`;\n }\n }, [profile?.referralCode, chainName]);\n}\nexport function useTwitterLink(userAddr: string | undefined): () => string {\n const chainId = useChainId();\n const link = useUserReferralLink(userAddr, chainId);\n const odysseyConfig = useOdysseyDappChainConfig(chainId);\n const odysseyProfile = useOdysseyProfile(userAddr, chainId);\n const getTwitterLink = useCallback(() => {\n const random = Math.floor(Math.random() * 4);\n if (!odysseyConfig?.twitter) return '';\n return `${TWITTER_SHARE_LINK}${encodeURIComponent(\n odysseyProfile?.isKol ? odysseyConfig.twitter.kol[random] : odysseyConfig.twitter.open[random],\n )}&url=${encodeURIComponent(link || '')}`;\n }, [link, odysseyConfig?.twitter, odysseyProfile?.isKol]);\n return getTwitterLink;\n}\n\nexport function useGetUserProfile(updateQueries?: boolean): void {\n updateQueries;\n //console.log('🚀 ~ useGetUserProfile ~ updateQueries:', updateQueries);\n const userAddr = useUserAddr();\n // const [searchParams] = useSearchParams();\n // const tabParam = useMemo(() => searchParams.get('tab'), [searchParams]);\n const dispatch = useAppDispatch();\n // const navigate = useNavigate();\n const chainId = useChainId();\n // updates the query params\n // const setQueryParams = useCallback(\n // (key?: string) => {\n // navigate({\n // search: key ? `?tab=${key}` : '',\n // });\n // },\n // [navigate],\n // );\n\n const initProfile = useCallback(async () => {\n if (userAddr && chainId) {\n try {\n const profile = await dispatch(getUserProfile({ userAddr, chainId })).unwrap();\n\n if (profile) {\n dispatch(setOdysseyRegistered({ userAddr, registered: true, chainId }));\n // if (updateQueries) {\n // if (profile.status !== USER_STATUS.TWITTER_CONNECTED) {\n // // if (tabParam) {\n // // if (Object.values(ODYSSEY_TABS).includes(tabParam as ODYSSEY_TABS)) {\n // // // dispatch(setOdysseyTab({ tab: tabParam as ODYSSEY_TABS }));\n // // } else {\n // // // dispatch(setOdysseyTab({ tab: ODYSSEY_TABS.EARN_POINTS }));\n // // }\n // // } else {\n // // // setQueryParams(ODYSSEY_TABS.EARN_POINTS);\n // // }\n // } else {\n // // setQueryParams('');\n // // dispatch(setOdysseyTab({ tab: ODYSSEY_TABS.EARN_POINTS }));\n // }\n // }\n } else {\n throw new Error('Failed to get user profile');\n }\n } catch (e) {\n // if (updateQueries) {\n // const skipped = localStorage.getItem(`${SIGN_UP_SKIPPED}-${userAddr}-${chainId}`);\n // // if (tabParam !== ODYSSEY_TABS.LEADER_BOARD) {\n // // setQueryParams(skipped ? ODYSSEY_TABS.EARN_POINTS : '');\n // // dispatch(setOdysseyTab({ tab: ODYSSEY_TABS.EARN_POINTS }));\n // // }\n // // if (tabParam === ODYSSEY_TABS.LEADER_BOARD) {\n // // dispatch(setOdysseyTab({ tab: tabParam as ODYSSEY_TABS }));\n // // }\n // }\n }\n }\n }, [dispatch, userAddr, chainId]);\n\n useDebounceEffect(\n () => {\n if (!userAddr || !chainId) return;\n const token = getOdysseyJWTToken(userAddr, chainId);\n token && chainId && dispatch(setOdysseyUserJWT({ userAddr, token, chainId }));\n dispatch(getUserDashboard({ userAddr, chainId }));\n initProfile();\n if (!token) return;\n return () => {\n // userAddr && dispatch(resetState({ userAddr }));\n };\n },\n [dispatch, userAddr, chainId],\n { wait: 100 },\n );\n}\n\nexport function useGetUserPrePoints(userAddr: string | undefined): void {\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const currentEpoch = useActiveEpoch(chainId);\n useEffect(() => {\n if (!userAddr) return;\n\n currentEpoch && userAddr && chainId && dispatch(getUserPrePoints({ userAddr, epoch: currentEpoch.epoch, chainId }));\n }, [currentEpoch, dispatch, userAddr, chainId]);\n}\n\n/**\n * handle twitter error message, show notification and clear url\n */\nexport function useHandleTwitterErrorMsg(): void {\n const errMsg = useQueryParam('errMsg');\n const { t } = useTranslation();\n const notification = useTxNotification();\n const [, setSearchParams] = useSearchParams();\n useEffect(() => {\n if (errMsg) {\n if (errMsg !== 'undefined') {\n notification.error({\n message: t('odyssey.signUp.twitterErrorTitle'),\n description: errMsg,\n });\n gtag('event', 'connect_twitter_result', {\n connect_twitter_result: 'fail',\n exception: errMsg,\n });\n }\n setSearchParams('', { replace: true });\n }\n }, [errMsg, notification, setSearchParams, t]);\n}\n\nexport function useSignUp(): () => Promise {\n const toggleModal = useToggleModal(GlobalModalType.Wallet);\n const userAddr = useWalletAccount();\n const dispatch = useAppDispatch();\n const signer = useWalletSigner();\n const chainId = useChainId();\n const code = useSharedReferralCode(chainId);\n const { t } = useTranslation();\n const onBtnClick = useCallback(async (): Promise => {\n if (userAddr && chainId) {\n try {\n if (signer) {\n const response = await dispatch(\n signOdysseyMsg({ userAddr, message: '', inviteCode: code, signer, chainId }),\n ).unwrap();\n if (response) {\n response.data && saveOdysseySignatureToLocalForage(response.data);\n return true;\n }\n }\n return false;\n } catch (error) {\n toast.error(\n
\n
{t('odyssey.signUp.step1.error')}
\n
,\n );\n return false;\n }\n } else {\n toggleModal(true);\n return false;\n }\n }, [chainId, code, dispatch, signer, t, toggleModal, userAddr]);\n return onBtnClick;\n}\n\nexport function usePointsPerDay(\n userAddr: string | undefined,\n chainId: number | undefined,\n): WrappedBigNumber | undefined {\n return useAppSelector(selectPointsEarning(userAddr, chainId));\n}\nexport function useOdysseyReferralNetworkCheck(): void {\n const chainName = useChainName();\n const walletChainId = useWalletChainId();\n const { chainName: referralChainName } = useParams();\n const { switchWalletNetwork, switchAppNetwork } = useSwitchNetwork();\n useEffect(() => {\n if (referralChainName) {\n const desiredChainId = getChainIdByChainShortName(referralChainName);\n if (\n chainName?.toLocaleLowerCase() !== referralChainName?.toLocaleLowerCase() ||\n (desiredChainId && desiredChainId !== walletChainId)\n ) {\n desiredChainId && switchWalletNetwork(desiredChainId);\n desiredChainId && switchAppNetwork(desiredChainId);\n }\n }\n }, [referralChainName, chainName, walletChainId]);\n}\n\nexport function useOdysseyDisplayChainId(): CHAIN_ID | undefined {\n const chainId = useChainId();\n const odysseyConfig = useOdysseyDappConfig();\n return useMemo(() => {\n if (chainId) {\n const defaultChainId = CHAIN_ID.BLAST;\n if (odysseyConfig?.supportChains.includes(chainId)) {\n return chainId;\n }\n return defaultChainId;\n }\n }, [chainId, odysseyConfig?.supportChains]);\n}\n\nexport function useOdysseyChainIconStr(): string | undefined {\n const ooChainId = useOdysseyDisplayChainId();\n return useMemo(() => {\n const defaultChainId = CHAIN_ID.BLAST;\n return DAPP_CHAIN_CONFIGS[ooChainId || defaultChainId].network.icon;\n }, [ooChainId]);\n}\n","var _circle, _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconBlastGold = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 25,\n viewBox: \"0 0 24 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 12.5,\n r: 10.75,\n fill: \"#FCFC03\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17.2219 7.67195L13.3421 7.25L6.75048 10.431L4.74731 15.2155L11.7509 17.75L19.2529 11.6411L17.2219 7.67195ZM8.49834 10.5805L13.4995 8.16612H13.5002L15.5469 8.38848L10.9578 11.0657L8.49834 10.5805ZM11.4483 11.8148L12.0098 16.3862L18.1287 11.4044L16.7549 8.71902L11.4483 11.8148ZM10.558 11.8985L11.1323 16.5757L5.93448 14.6948L7.36838 11.2692L10.558 11.8985Z\",\n fill: \"black\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconBlastGold);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_blast_gold.69da90589b33d385686fa3e5191fcd01.svg\";","var _circle, _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconBlastPoints = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 12,\n cy: 12,\n r: 10.75,\n fill: \"#FCFC03\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17.8262 10.908L15.7863 11.9231L15.7723 11.9509L17.1578 12.9661L16.4198 15.2467L14.352 16.2687L15.5913 12.4655H11.1772L11.6019 11.1444H16.016L16.6009 9.33661H5.59351L7.75877 7.73047H17.123L18.5294 8.75256L17.8262 10.908ZM9.97972 10.6715L8.70563 14.6347H14.8812L14.352 16.2687H6.44289L8.56638 9.61467L9.97972 10.6715Z\",\n fill: \"black\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconBlastPoints);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_blast_points.f9a86ab01c861b6ed6868e4b0f8e4bed.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconEigenlayer12 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.05135 6.00002V1H1.45459V6.00002V11H9.24483V8.49999H6.64812V6.00002H9.24483V3.50001H7.94424V1H5.39699V2.25217H6.6436V6.00002H5.34296V8.49999H4.05135V6.00002ZM9.24483 3.50001H10.5455V1H9.24483V3.50001Z\",\n fill: \"var(--eigenlayer-color)\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconEigenlayer12);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_eigenlayer_12.87c19b7674dfd98ffb44e6b9437018e6.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconEigenlayerPoints = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.00002 14.6668C11.6819 14.6668 14.6667 11.682 14.6667 8.00015C14.6667 4.31826 11.6819 1.3335 8.00002 1.3335C4.31813 1.3335 1.33337 4.31826 1.33337 8.00015C1.33337 11.682 4.31813 14.6668 8.00002 14.6668Z\",\n fill: \"#1A0C6D\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.75747 8.00043V4.81201H5.10156V8.00043V11.1888H10.0692V9.59461H8.41337V8.00043H10.0692V6.40622H9.23989V4.81201H7.61556V5.61049H8.41049V8.00043H7.5811V9.59461H6.75747V8.00043ZM10.0692 6.40622H10.8986V4.81201H10.0692V6.40622Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconEigenlayerPoints);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_eigenlayer_points.ad5ac4c6ccc0839ad7bdb4840eed9b54.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconEtherfi12 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_15005_119067)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.6294 11.5C6.61546 11.5 6.60152 11.4982 6.5878 11.4944L6.58045 11.4923L4.95497 10.9668C4.8974 10.948 4.85399 10.9022 4.83835 10.844L4.46518 9.47582L3.00739 9.00453C2.95025 8.98606 2.90673 8.94035 2.89087 8.88236L2.49302 7.42376L1.07769 6.96626C1.02097 6.94821 0.977238 6.9025 0.961277 6.84419L0.5 5.15342L0.54533 5.106C0.551821 5.09596 0.559482 5.08657 0.568101 5.07813L5.21035 0.550365C5.25419 0.507647 5.31569 0.490667 5.37507 0.504977L7.00417 0.897126C7.07025 0.913039 7.12047 0.964193 7.13548 1.03051L7.51993 2.7152C7.53365 2.77511 7.51482 2.83908 7.47098 2.88212L4.82675 5.46109L6.05512 5.75681C6.12109 5.77272 6.17142 5.82388 6.18643 5.89019L6.46458 7.10915L9.12732 4.51212C9.17478 4.46588 9.24352 4.45413 9.30183 4.47666L10.948 4.87287C11.0136 4.88868 11.0639 4.93951 11.0792 5.00562L11.4678 6.70899C11.4714 6.71849 11.474 6.72821 11.4757 6.73804L11.5 6.81119L11.3618 6.95152L11.3593 6.95077L9.43409 8.82854L9.43495 8.83217L9.36567 8.89582C9.36397 8.89742 9.36216 8.89892 9.36046 8.90041L6.74251 11.4538L6.7406 11.4556C6.73943 11.4566 6.73815 11.4578 6.73687 11.4588C6.70719 11.4855 6.66856 11.4999 6.6293 11.4999L6.6294 11.5ZM5.46051 10.6891L6.2774 10.9531L6.07938 10.0855L5.46051 10.6891ZM6.43042 9.74313L6.69718 10.9122L8.84885 8.81359L7.74817 8.45785L6.43031 9.74313H6.43042ZM4.91986 9.55282L5.15214 10.4042L5.80634 9.76609L4.91986 9.55271V9.55282ZM6.41254 9.66474V9.66506C6.41254 9.66506 6.41254 9.66484 6.41254 9.66474ZM4.98593 9.13707L6.16131 9.41997L7.43693 8.17581L7.12899 7.04689L6.57269 7.5894L6.57354 7.59346L6.50512 7.65572C6.50363 7.65711 6.50203 7.6585 6.50043 7.65978L4.98593 9.13685V9.13707ZM4.44485 9.40138C4.44485 9.40138 4.44506 9.40202 4.44506 9.40234L4.44485 9.40138ZM3.49027 8.71971L4.35323 8.99866L4.14404 8.08204L3.49027 8.71971ZM4.49518 7.73966L4.73598 8.79511L5.98893 7.57306L4.9953 7.25182L4.49508 7.73966H4.49518ZM7.66698 8.43158C7.66698 8.43158 7.66751 8.4318 7.66773 8.4318L7.66698 8.43158ZM2.96589 7.56751L3.19818 8.41887L3.85237 7.78078L2.96589 7.5674V7.56751ZM8.08793 8.12658L8.90482 8.39057L8.7068 7.52297L8.08793 8.12658ZM9.05784 7.18059L9.3246 8.34967L10.9083 6.8051L9.80759 6.44926L9.05784 7.18059ZM7.49716 8.11707C7.49716 8.11707 7.49694 8.11729 7.49684 8.11739L7.49716 8.11707ZM7.54727 6.99028L7.77956 7.84165L8.43376 7.20355L7.54727 6.99018V6.99028ZM4.15159 7.48901C4.15159 7.48901 4.15117 7.48944 4.15095 7.48955L4.15159 7.48901ZM3.08124 7.16351L4.20735 7.43455L4.68544 6.96828L4.39037 5.88667L3.08124 7.16351ZM9.00102 7.23613L9.00048 7.23666C9.00048 7.23666 9.0008 7.23634 9.00102 7.23613ZM5.33495 6.92055L6.0448 7.15005L5.87274 6.39608L5.33495 6.92055ZM1.52279 6.66915L2.40012 6.9528L2.18752 6.02091L1.5229 6.66915H1.52279ZM7.61335 6.57443L8.78873 6.85733L9.49624 6.16722L9.18829 5.0383L7.61335 6.57443ZM2.53845 5.67853L2.80511 6.84718L5.01945 4.68748L3.9192 4.33185L2.53835 5.67863L2.53845 5.67853ZM4.82568 5.89254L5.02797 6.63423L5.59778 6.07847L4.82568 5.89265V5.89254ZM9.72608 6.42299C9.72608 6.42299 9.72608 6.42299 9.72618 6.42299H9.72608ZM9.8942 6.03629L10.964 6.38209L10.7048 5.24612L9.60648 4.9818L9.8941 6.03629H9.8942ZM1.04257 5.5524L1.25794 6.34183L1.86447 5.75029L1.04257 5.55251V5.5524ZM9.51837 6.24849C9.51837 6.24849 9.51837 6.2487 9.51837 6.24881V6.24849ZM9.55646 6.10859C9.55646 6.10859 9.55625 6.1088 9.55614 6.10891L9.55646 6.10859ZM1.10865 5.13655L2.21944 5.40396L3.6137 4.04415L3.32268 2.97727L1.10865 5.13655ZM10.6852 5.15983C10.6852 5.15983 10.6853 5.16047 10.6854 5.16079L10.6852 5.15983ZM0.679403 5.03776C0.691427 5.03776 0.703558 5.03915 0.715582 5.04193C0.701643 5.03862 0.687597 5.03733 0.673657 5.03787C0.675573 5.03787 0.677488 5.03787 0.679403 5.03787V5.03776ZM5.19364 3.08887L5.4603 4.25752L6.9167 2.83705L5.81655 2.48142L5.19364 3.08887ZM4.25896 4.00047L5.02924 4.24951L4.8425 3.43136L4.25885 4.00057L4.25896 4.00047ZM3.74096 2.92056L3.95633 3.70999L4.56286 3.11845L3.74096 2.92067V2.92056ZM5.17566 3.01048V3.0108C5.17566 3.0108 5.17566 3.01059 5.17566 3.01048ZM3.80704 2.5047L4.91783 2.77212L5.52638 2.17866L5.23535 1.11178L3.80704 2.50481V2.5047ZM5.93264 2.07795L7.02598 2.43144L6.76103 1.27048L5.63864 1.00029L5.93264 2.07795ZM5.87806 2.4214L5.87763 2.42183C5.87763 2.42183 5.87795 2.42151 5.87806 2.4214ZM5.58661 2.11992C5.58661 2.11992 5.58639 2.12003 5.58639 2.12014L5.58661 2.11992ZM5.85965 2.05435H5.85986C5.85986 2.05435 5.85975 2.05435 5.85965 2.05435Z\",\n fill: \"white\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_15005_119067\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconEtherfi12);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_etherfi_12.69bfccc612c9cb284d771866e21674b0.svg\";","var _circle, _path, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconEtherfiPoints = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 6.6665,\n fill: \"url(#paint0_linear_15017_120151)\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.45775 12C8.44761 12 8.43747 11.9987 8.42749 11.996L8.42215 11.9944L7.23998 11.6122C7.19811 11.5985 7.16654 11.5652 7.15516 11.5229L6.88376 10.5279L5.82356 10.1851C5.782 10.1717 5.75035 10.1384 5.73882 10.0963L5.44947 9.03546L4.42014 8.70273C4.37889 8.68961 4.34708 8.65636 4.33547 8.61396L4 7.38431L4.03297 7.34982C4.03769 7.34252 4.04326 7.33568 4.04953 7.32955L7.42571 4.03663C7.45759 4.00556 7.50232 3.99321 7.5455 4.00362L8.7303 4.28882C8.77836 4.30039 8.81489 4.3376 8.8258 4.38583L9.1054 5.61105C9.11538 5.65462 9.10169 5.70115 9.0698 5.73245L7.14673 7.60807L8.04009 7.82313C8.08807 7.83471 8.12467 7.87191 8.13558 7.92014L8.33787 8.80665L10.2744 6.9179C10.3089 6.88427 10.3589 6.87573 10.4013 6.89212L11.5985 7.18027C11.6463 7.19176 11.6829 7.22873 11.6939 7.27681L11.9766 8.51563C11.9792 8.52254 11.9811 8.52961 11.9824 8.53675L12 8.58996L11.8995 8.69201L11.8977 8.69147L10.4975 10.0571L10.4981 10.0598L10.4478 10.106C10.4465 10.1072 10.4452 10.1083 10.444 10.1094L8.54001 11.9664L8.53862 11.9677C8.53776 11.9685 8.53684 11.9693 8.53591 11.97C8.51432 11.9894 8.48623 11.9999 8.45767 11.9999L8.45775 12ZM7.60765 11.4103L8.20175 11.6023L8.05773 10.9713L7.60765 11.4103ZM8.31303 10.7223L8.50704 11.5725L10.0719 10.0462L9.2714 9.78753L8.31295 10.7223H8.31303ZM7.21444 10.5839L7.38338 11.203L7.85915 10.739L7.21444 10.5838V10.5839ZM8.30003 10.6653V10.6655C8.30003 10.6655 8.30003 10.6653 8.30003 10.6653ZM7.2625 10.2815L8.11732 10.4872L9.04504 9.58241L8.82108 8.76137L8.4165 9.15593L8.41712 9.15888L8.36736 9.20416C8.36627 9.20517 8.36511 9.20618 8.36395 9.20711L7.2625 10.2813V10.2815ZM6.86898 10.4737C6.86898 10.4737 6.86914 10.4742 6.86914 10.4744L6.86898 10.4737ZM6.17474 9.97797L6.80235 10.1808L6.65021 9.51421L6.17474 9.97797ZM6.90559 9.26521L7.08072 10.0328L7.99195 9.14404L7.26931 8.91042L6.90551 9.26521H6.90559ZM9.21235 9.76842C9.21235 9.76842 9.21274 9.76858 9.21289 9.76858L9.21235 9.76842ZM5.79338 9.14001L5.96231 9.75918L6.43809 9.29511L5.79338 9.13993V9.14001ZM9.5185 9.5466L10.1126 9.7386L9.96858 9.10762L9.5185 9.5466ZM10.2239 8.85861L10.4179 9.70885L11.5696 8.58553L10.7692 8.32674L10.2239 8.85861ZM9.08884 9.53969C9.08884 9.53969 9.08869 9.53984 9.08861 9.53992L9.08884 9.53969ZM9.12529 8.72021L9.29423 9.33938L9.77 8.87531L9.12529 8.72013V8.72021ZM6.6557 9.08292C6.6557 9.08292 6.65539 9.08323 6.65524 9.08331L6.6557 9.08292ZM5.87726 8.84619L6.69625 9.04331L7.04396 8.70421L6.82936 7.91758L5.87726 8.84619ZM10.1826 8.899L10.1822 8.89939C10.1822 8.89939 10.1824 8.89916 10.1826 8.899ZM7.51633 8.66949L8.03258 8.8364L7.90744 8.28806L7.51633 8.66949ZM4.74385 8.48666L5.38191 8.69294L5.22729 8.01521L4.74393 8.48666H4.74385ZM9.17335 8.41776L10.0282 8.62351L10.5427 8.12161L10.3188 7.30058L9.17335 8.41776ZM5.48251 7.7662L5.67644 8.61613L7.28688 7.04544L6.48669 6.7868L5.48243 7.76628L5.48251 7.7662ZM7.14595 7.92185L7.29307 8.46126L7.70748 8.05707L7.14595 7.92193V7.92185ZM10.7099 8.30763C10.7099 8.30763 10.7099 8.30763 10.71 8.30763H10.7099ZM10.8321 8.02639L11.6102 8.27788L11.4217 7.45172L10.6229 7.25949L10.8321 8.02639H10.8321ZM4.3946 7.67448L4.55123 8.2486L4.99234 7.8184L4.3946 7.67455V7.67448ZM10.5588 8.18072C10.5588 8.18072 10.5588 8.18088 10.5588 8.18095V8.18072ZM10.5865 8.07897C10.5865 8.07897 10.5864 8.07913 10.5863 8.07921L10.5865 8.07897ZM4.44266 7.37203L5.2505 7.56652L6.26451 6.57756L6.05286 5.80165L4.44266 7.37203ZM11.4074 7.38897C11.4074 7.38897 11.4075 7.38943 11.4076 7.38966L11.4074 7.38897ZM4.13048 7.30019C4.13922 7.30019 4.14804 7.3012 4.15679 7.30322C4.14665 7.30081 4.13643 7.29988 4.1263 7.30027C4.12769 7.30027 4.12908 7.30027 4.13048 7.30027V7.30019ZM7.41356 5.88281L7.60749 6.73274L8.66669 5.69967L7.86658 5.44103L7.41356 5.88281ZM6.73379 6.54579L7.29399 6.72692L7.15818 6.1319L6.73371 6.54587L6.73379 6.54579ZM6.35707 5.76041L6.5137 6.33454L6.95481 5.90433L6.35707 5.76049V5.76041ZM7.40048 5.82581V5.82604C7.40048 5.82604 7.40048 5.82588 7.40048 5.82581ZM6.40512 5.45797L7.21297 5.65245L7.65555 5.22084L7.44389 4.44493L6.40512 5.45804V5.45797ZM7.95101 5.1476L8.74617 5.40469L8.55347 4.56035L7.73719 4.36385L7.95101 5.1476ZM7.91131 5.39738L7.911 5.3977C7.911 5.3977 7.91124 5.39746 7.91131 5.39738ZM7.69935 5.17813C7.69935 5.17813 7.6992 5.1782 7.6992 5.17828L7.69935 5.17813ZM7.89793 5.13044H7.89808C7.89808 5.13044 7.898 5.13044 7.89793 5.13044Z\",\n fill: \"url(#paint1_linear_15017_120151)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_15017_120151\",\n x1: 1.3335,\n y1: 1.3335,\n x2: 14.6665,\n y2: 14.6665,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#2B2689\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1A1568\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_15017_120151\",\n x1: 7.01856,\n y1: 5.01822,\n x2: 10.0679,\n y2: 7.71059,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#AF5BF9\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#557AE9\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconEtherfiPoints);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_etherfi_points.e14f9a75c2e66d3f4d2c550b60646702.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconEzpoints12 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_14219_162361)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.9698 6.43652C10.9698 6.44437 10.9672 6.4548 10.9672 6.46265C10.7501 8.84896 8.85134 10.7099 6.53936 10.9504C6.52369 10.953 6.50798 10.953 6.49231 10.9556L10.9698 6.43652Z\",\n fill: \"var(--ezpoints-color)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.18701 1.50444C8.06148 1.44432 7.93332 1.38682 7.80255 1.33717C7.54886 1.23785 7.28211 1.15943 7.0101 1.10455C6.68319 1.03659 6.34319 1 5.99534 1C5.82795 1 5.66319 1.00784 5.49842 1.02352C4.34767 1.13591 3.3146 1.64035 2.52737 2.39832L2.52476 2.40093C2.47245 2.45321 2.42014 2.50548 2.36784 2.55775L2.36522 2.56037C1.61461 3.35231 1.12031 4.39255 1.01831 5.54519C1.00523 5.69157 1 5.84054 1 5.9895C1 6.36329 1.04185 6.72658 1.11769 7.07421C1.17523 7.33816 1.25631 7.59692 1.35569 7.8426C1.41061 7.97852 1.47077 8.11183 1.53615 8.24251C1.65122 8.4673 1.78199 8.68421 1.92846 8.88811L2.74968 8.05955L8.03534 2.72503L8.85654 1.89649C8.6447 1.75013 8.42242 1.61944 8.18701 1.50444ZM2.26322 6.93044C2.25537 6.89647 2.24753 6.8625 2.23968 6.82853V6.82591C2.17953 6.55407 2.14814 6.2718 2.14814 5.9895C2.14814 5.00155 2.51691 4.07108 3.19167 3.35754L3.19429 3.35493L3.33029 3.2164L3.33291 3.21379C4.05213 2.52116 4.99627 2.14218 5.99795 2.14218C6.26211 2.14218 6.52628 2.16832 6.78258 2.22059C6.82181 2.22843 6.86104 2.23889 6.90289 2.24673L2.26322 6.93044Z\",\n fill: \"var(--ezpoints-color)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.27183 10.6756C4.14891 10.6312 4.0286 10.5789 3.9083 10.5267C3.66245 10.4143 3.42707 10.281 3.20215 10.1294L10.1067 3.15869C10.2558 3.37301 10.3892 3.60302 10.5016 3.84086C10.5618 3.96371 10.6141 4.09177 10.6638 4.21985L4.27183 10.6756Z\",\n fill: \"var(--ezpoints-color)\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_14219_162361\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 10,\n height: 9.96002,\n fill: \"white\",\n transform: \"translate(1 1)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconEzpoints12);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_ezpoints_12.535ef1b4d9755a9ba60c9ef0132cd5b4.svg\";","var _circle, _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconKelpMiles = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 6.6665,\n fill: \"url(#paint0_linear_15825_179335)\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_15825_179335)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.14833 4.01931L7.90052 4.71793C7.44948 4.97046 7.40935 5.59834 7.82465 5.90509L9.09871 6.84613C9.35818 7.0378 9.33319 7.4301 9.05145 7.58803L7.90176 8.2323C7.45045 8.48523 7.41098 9.11383 7.82719 9.4201L9.04017 10.3127C9.16605 10.4053 9.24022 10.5513 9.24022 10.7065V10.7433C9.24022 10.8563 9.3635 10.9272 9.4627 10.8712L10.7171 10.1637C11.1683 9.90917 11.2053 9.27923 10.7869 8.97467L9.51373 8.0481C9.25234 7.85787 9.27525 7.4644 9.55698 7.30515L10.7194 6.64805C11.1699 6.39334 11.2068 5.76419 10.789 5.45966L9.57224 4.57281C9.44535 4.4803 9.37041 4.3336 9.37041 4.17761V4.14747C9.37041 4.03468 9.24753 3.96377 9.14833 4.01931Z\",\n fill: \"#D4EEED\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.41213 5.12868L5.16432 5.82731C4.71328 6.07983 4.67315 6.70772 5.08844 7.01447L6.36249 7.9555C6.62198 8.14716 6.597 8.5395 6.31523 8.6974L5.16556 9.3417C4.71424 9.5946 4.67478 10.2232 5.09098 10.5295L6.30397 11.422C6.42983 11.5147 6.504 11.6607 6.504 11.8159V11.8527C6.504 11.9657 6.62729 12.0365 6.72649 11.9806L7.98086 11.2731C8.43212 11.0186 8.4691 10.3886 8.05067 10.0841L6.77752 9.15746C6.51615 8.96723 6.53906 8.5738 6.82078 8.41453L7.98316 7.75743C8.43373 7.5027 8.47058 6.87356 8.05278 6.56903L6.83605 5.68218C6.70914 5.58967 6.63421 5.44297 6.63421 5.28698V5.25684C6.63421 5.14406 6.51133 5.07314 6.41213 5.12868Z\",\n fill: \"#D4EEED\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_15825_179335\",\n x1: 4.5,\n y1: 1,\n x2: 11,\n y2: 15,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#065A5A\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.505,\n stopColor: \"#009293\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#065A5A\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_15825_179335\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 6.4,\n height: 8,\n fill: \"white\",\n transform: \"translate(4.80005 4)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconKelpMiles);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_kelp_miles.fd4fc56134fa0e452b1a9e8857287dbd.svg\";","var _circle, _path, _path2, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconOOPoints = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8.00002,\n cy: 7.99999,\n r: 6.66665,\n fill: \"url(#paint0_linear_4583_12007)\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.41323 6.632L7.99175 8.068L11.6364 6.032V9.968L7.99175 12L4.36365 9.968V7.968L5.4339 8.568V9.384L7.99175 10.816L10.5661 9.384V7.8L7.99175 9.248L4.36365 7.216V6.032L7.99175 4L11.0207 5.68L9.95042 6.28L7.98761 5.18L5.42976 6.632H5.41323Z\",\n fill: \"url(#paint1_linear_4583_12007)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.00775 7.41664L6.9375 6.81664L7.99122 6.23264L9.05733 6.81664L8.00775 7.41664Z\",\n fill: \"url(#paint2_linear_4583_12007)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_4583_12007\",\n x1: 8.00002,\n y1: 1.33334,\n x2: 8.00002,\n y2: 14.6666,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#13ECC8\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#009999\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_4583_12007\",\n x1: 8.00001,\n y1: 4,\n x2: 8.00001,\n y2: 12,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.5,\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0.6\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_4583_12007\",\n x1: 8.00001,\n y1: 4,\n x2: 8.00001,\n y2: 12,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.5,\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0.6\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconOOPoints);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_o_o_points.91d474ca4e132225c74691c9c2ade654.svg\";","var _circle, _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconRenzoEzpoints = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 8,\n cy: 8,\n r: 6.6665,\n fill: \"url(#paint0_linear_14205_639)\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_14205_639)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.9758 8.36523C11.9758 8.37151 11.9737 8.37986 11.9737 8.38613C11.8 10.2952 10.281 11.7839 8.43144 11.9763C8.4189 11.9784 8.40634 11.9784 8.3938 11.9805L11.9758 8.36523Z\",\n fill: \"#C4FF61\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.74961 4.41967C9.64918 4.37157 9.54666 4.32557 9.44204 4.28585C9.23909 4.20639 9.02569 4.14366 8.80808 4.09975C8.54655 4.04539 8.27455 4.01611 7.99627 4.01611C7.86236 4.01611 7.73055 4.02239 7.59874 4.03493C6.67813 4.12484 5.85168 4.5284 5.2219 5.13477L5.2198 5.13686C5.17796 5.17868 5.13611 5.2205 5.09427 5.26232L5.09217 5.26441C4.49169 5.89796 4.09624 6.73015 4.01465 7.65227C4.00418 7.76937 4 7.88854 4 8.00772C4 8.30675 4.03348 8.59738 4.09415 8.87548C4.14018 9.08665 4.20504 9.29365 4.28455 9.4902C4.32849 9.59893 4.37661 9.70558 4.42892 9.81013C4.52098 9.98996 4.62559 10.1635 4.74277 10.3266L5.39974 9.66375L9.62827 5.39614L10.2852 4.73331C10.1158 4.61622 9.93793 4.51167 9.74961 4.41967ZM5.01058 8.76047C5.0043 8.73329 4.99802 8.70611 4.99174 8.67893V8.67684C4.94362 8.45937 4.91852 8.23356 4.91852 8.00772C4.91852 7.21735 5.21353 6.47298 5.75334 5.90215L5.75543 5.90006L5.86423 5.78923L5.86632 5.78714C6.4417 5.23304 7.19702 4.92986 7.99836 4.92986C8.20969 4.92986 8.42102 4.95077 8.62607 4.99258C8.65745 4.99886 8.68883 5.00722 8.72231 5.01349L5.01058 8.76047Z\",\n fill: \"#C4FF61\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.61747 11.7567C6.51913 11.7212 6.42288 11.6793 6.32664 11.6375C6.12996 11.5476 5.94165 11.441 5.76172 11.3197L11.2854 5.74316C11.4046 5.91462 11.5113 6.09862 11.6013 6.2889C11.6494 6.38718 11.6913 6.48963 11.731 6.59209L6.61747 11.7567Z\",\n fill: \"#C4FF61\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_14205_639\",\n x1: 1.3335,\n y1: 1.3335,\n x2: 14.6665,\n y2: 14.6665,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#363663\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1F2247\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_14205_639\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 8,\n height: 7.96802,\n fill: \"white\",\n transform: \"translate(4 4.01611)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconRenzoEzpoints);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_renzo_ezpoints.2bfe41f9b15d71f15d48d92d02be33e1.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgKelpIcon = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 9,\n height: 10,\n viewBox: \"0 0 9 10\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"kelp-icon 1\",\n clipPath: \"url(#clip0_15840_96400)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector\",\n d: \"M5.93697 0.0241318L4.37721 0.897412C3.81341 1.21307 3.76325 1.99793 4.28237 2.38137L5.87494 3.55766C6.19928 3.79725 6.16804 4.28762 5.81587 4.48504L4.37876 5.29038C3.81462 5.60654 3.76529 6.39229 4.28554 6.77512L5.80177 7.89083C5.95911 8.00658 6.05183 8.18917 6.05183 8.38317V8.42912C6.05183 8.57033 6.20593 8.65896 6.32993 8.589L7.89789 7.70463C8.46198 7.38646 8.50821 6.59904 7.98513 6.21833L6.39372 5.06012C6.06699 4.82233 6.09562 4.3305 6.44779 4.13144L7.90076 3.31006C8.46396 2.99167 8.51006 2.20524 7.98779 1.82457L6.46686 0.716012C6.30825 0.600375 6.21457 0.416996 6.21457 0.222007V0.184332C6.21457 0.0433541 6.06097 -0.0452888 5.93697 0.0241318Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector_2\",\n d: \"M2.51511 1.41085L0.955335 2.28413C0.391534 2.59979 0.341372 3.38465 0.860493 3.76808L2.45305 4.94437C2.77742 5.18395 2.74619 5.67437 2.39397 5.87175L0.956884 6.67712C0.392745 6.99325 0.343411 7.779 0.863665 8.16183L2.3799 9.27754C2.53722 9.39333 2.62995 9.57587 2.62995 9.76991V9.81583C2.62995 9.95708 2.78405 10.0457 2.90805 9.97575L4.47601 9.09137C5.04008 8.7732 5.08632 7.98575 4.56328 7.60508L2.97184 6.44683C2.64512 6.20904 2.67376 5.71725 3.02592 5.51816L4.47888 4.69679C5.04211 4.37837 5.08817 3.59195 4.56591 3.21129L3.04501 2.10273C2.88636 1.98709 2.7927 1.80372 2.7927 1.60873V1.57105C2.7927 1.43008 2.6391 1.34143 2.51511 1.41085Z\",\n fill: \"white\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_15840_96400\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 8,\n height: 10,\n fill: \"white\",\n transform: \"translate(0.5)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgKelpIcon);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/kelp-icon.35086d9c08dff2b928ab228f427a622d.svg\";","import blastGoldSrc from '@/assets/svg/icon_blast_gold.svg';\nimport blastPointsSrc from '@/assets/svg/icon_blast_points.svg';\nimport { ReactComponent as IconEigenlayerDarkTag } from '@/assets/svg/icon_eigenlayer_12.svg';\nimport eigenlayerPointsSrc from '@/assets/svg/icon_eigenlayer_points.svg';\nimport { ReactComponent as IconEtherFiPointsTag } from '@/assets/svg/icon_etherfi_12.svg';\nimport etherFiPointsSrc from '@/assets/svg/icon_etherfi_points.svg';\nimport { ReactComponent as IconEzPointsDarkTag } from '@/assets/svg/icon_ezpoints_12.svg';\nimport kelpMilesSrc from '@/assets/svg/icon_kelp_miles.svg';\nimport OOPointsSrc from '@/assets/svg/icon_o_o_points.svg';\nimport ezPointsSrc from '@/assets/svg/icon_renzo_ezpoints.svg';\nimport { ReactComponent as IconKelpTag } from '@/assets/svg/kelp-icon.svg';\nimport { IOdysseyChainConfig } from '@/types/odyssey';\nimport { CHAIN_ID } from '@derivation-tech/context';\nexport enum OdysseyRewardId {\n OO_POINTS = 'OO_POINTS',\n BLAST_POINTS = 'BLAST_POINTS',\n BLAST_GOLD = 'BLAST_GOLD',\n EZ_POINTS = 'EZ_POINTS',\n EIGEN_LAYER_POINTS = 'EIGEN_LAYER_POINTS',\n KELP_MILES = 'KELP_MILES',\n ETHER_FI_POINTS = 'ETHER_FI_POINTS',\n}\n\nexport const getMultiplerForNonBlastAndOoPointReward = (\n config: IOdysseyChainConfig,\n quoteSymbol: string,\n id: OdysseyRewardId,\n): number | undefined => {\n return config?.nonBlastAndOoPointReward?.[id]?.quotes.find((item) => item.symbol === quoteSymbol && item.multiplier)\n ?.multiplier;\n};\n\nexport const odysseyRewardInfos: {\n [id in OdysseyRewardId]: {\n iconSvgNodeForTag: React.ReactNode;\n tagBgColor?: string;\n textColor?: string;\n iconSrcForRewardCard: string;\n checkIsDisplay?: (config: IOdysseyChainConfig, quoteSymbol: string, chainId?: CHAIN_ID) => boolean;\n order: number;\n };\n} = {\n [OdysseyRewardId.OO_POINTS]: {\n iconSrcForRewardCard: OOPointsSrc,\n order: 0,\n iconSvgNodeForTag: <>,\n },\n [OdysseyRewardId.BLAST_POINTS]: {\n iconSrcForRewardCard: blastPointsSrc,\n checkIsDisplay: (config, quoteSymbol, chainId) => {\n return config?.earnBlastPointQuotes?.includes(quoteSymbol) && chainId === CHAIN_ID.BLAST;\n },\n order: 1,\n iconSvgNodeForTag: <>,\n },\n [OdysseyRewardId.BLAST_GOLD]: {\n iconSrcForRewardCard: blastGoldSrc,\n order: 2,\n iconSvgNodeForTag: <>,\n checkIsDisplay: (config, quoteSymbol, chainId) => {\n return config?.earnBlastPointQuotes?.includes(quoteSymbol) && chainId === CHAIN_ID.BLAST;\n },\n },\n\n [OdysseyRewardId.EZ_POINTS]: {\n iconSrcForRewardCard: ezPointsSrc,\n checkIsDisplay: (config, quoteSymbol) => {\n return getMultiplerForNonBlastAndOoPointReward(config, quoteSymbol, OdysseyRewardId.EZ_POINTS) !== undefined;\n },\n order: 3,\n iconSvgNodeForTag: ,\n tagBgColor: '#8c0',\n },\n [OdysseyRewardId.ETHER_FI_POINTS]: {\n iconSrcForRewardCard: etherFiPointsSrc,\n checkIsDisplay: (config, quoteSymbol) => {\n return (\n getMultiplerForNonBlastAndOoPointReward(config, quoteSymbol, OdysseyRewardId.ETHER_FI_POINTS) !== undefined\n );\n },\n order: 4,\n iconSvgNodeForTag: ,\n tagBgColor: 'linear-gradient(131deg, #af5bf9 26.01%, #557ae9 62.03%)',\n },\n [OdysseyRewardId.KELP_MILES]: {\n iconSrcForRewardCard: kelpMilesSrc,\n checkIsDisplay: (config, quoteSymbol) => {\n return getMultiplerForNonBlastAndOoPointReward(config, quoteSymbol, OdysseyRewardId.KELP_MILES) !== undefined;\n },\n order: 5,\n iconSvgNodeForTag: ,\n tagBgColor: '#009293',\n },\n [OdysseyRewardId.EIGEN_LAYER_POINTS]: {\n iconSrcForRewardCard: eigenlayerPointsSrc,\n checkIsDisplay: (config, quoteSymbol) => {\n return (\n getMultiplerForNonBlastAndOoPointReward(config, quoteSymbol, OdysseyRewardId.EIGEN_LAYER_POINTS) !== undefined\n );\n },\n order: 6,\n iconSvgNodeForTag: ,\n tagBgColor: '#9494d1',\n },\n};\n\nexport const nonBlastAndOoPointRewardIds: OdysseyRewardId[] = Object.values(OdysseyRewardId)\n .filter((id) => ![OdysseyRewardId.BLAST_GOLD, OdysseyRewardId.BLAST_POINTS, OdysseyRewardId.OO_POINTS].includes(id))\n .sort((aId, bId) => {\n return odysseyRewardInfos[aId].order - odysseyRewardInfos[bId].order;\n });\n","/**\n * @description Component-OdysseyBoostTag\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport Tag from '@/components/Tag';\nimport { Tooltip } from '@/components/ToolTip';\nimport {\n getMultiplerForNonBlastAndOoPointReward,\n nonBlastAndOoPointRewardIds,\n odysseyRewardInfos,\n} from '@/configs/odysseyReward';\nimport { useTheme } from '@/features/global/hooks';\nimport { useChainOdysseyDappConfig } from '@/features/odyssey/hooks';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n chainId: number | undefined;\n pairSymbol: string | undefined;\n quoteSymbol?: string | undefined;\n isShowNonOoPoint?: boolean;\n}\n\nconst OdysseyBoostTag: FC = function ({ chainId, pairSymbol, quoteSymbol, isShowNonOoPoint }) {\n const { dataTheme } = useTheme();\n const { t } = useTranslation();\n const odysseyChainConfig = useChainOdysseyDappConfig(chainId);\n const pairConfig = useMemo(() => {\n return odysseyChainConfig?.earnOoPointPairs?.find((item) => item.pairSymbol === pairSymbol);\n }, [odysseyChainConfig?.earnOoPointPairs, pairSymbol]);\n\n if (!odysseyChainConfig?.showLiquidityPoints || !pairConfig || !pairSymbol) {\n return null;\n }\n return (\n
\n }} />}>\n \n {t('odyssey.earn.earnBoost', { boost: pairConfig?.boost || 1 })}\n \n \n {isShowNonOoPoint &&\n quoteSymbol &&\n nonBlastAndOoPointRewardIds.map((id) => {\n const multiplier = getMultiplerForNonBlastAndOoPointReward(odysseyChainConfig, quoteSymbol, id);\n const info = odysseyRewardInfos[id];\n if (multiplier === undefined) return null;\n return (\n \n }}\n values={{ boost: multiplier }}\n />\n }>\n \n {t('odyssey.earn.odysseyBoostReward.earnBoost', { boost: multiplier })}\n \n \n \n );\n })}\n
\n );\n};\n\nexport default OdysseyBoostTag;\n","import bronze from '@/assets/images/icon_medal_bonze.png';\nimport gold from '@/assets/images/icon_medal_gold.png';\nimport silver from '@/assets/images/icon_medal_silver.png';\nimport { SHARE_POST_UPLOAD } from '@/constants/links';\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport html2canvas, { Options } from 'html2canvas';\nimport { axiosPost } from './axios';\nimport { getShareVerification } from './sharepnl';\nexport const getEarnRuleImg = (chainId?: CHAIN_ID): string => {\n try {\n return require(`@/assets/images/earningRules/${chainId}.png`);\n } catch (error) {\n return require(`@/assets/images/earningRules/81457.png`);\n }\n};\nexport const exportAsImageDataURL = async (\n element: HTMLElement | null,\n html2canvasOptions?: Partial,\n quality = 0.7,\n) => {\n if (element) {\n const canvas = await html2canvas(element, html2canvasOptions);\n const imageDataURL = canvas.toDataURL('image/jpeg', quality);\n return imageDataURL;\n }\n};\n\nexport const exportAsImage = async (\n element: HTMLElement | null,\n imageFileName: string,\n html2canvasOptions?: Partial,\n) => {\n const imageDataURL = await exportAsImageDataURL(element, html2canvasOptions);\n imageDataURL && downloadImage(imageDataURL, imageFileName);\n};\n\nexport const downloadImage = (blob: string, fileName: string) => {\n const fakeLink = window.document.createElement('a');\n fakeLink.style.cssText = 'display:none;';\n fakeLink.download = fileName;\n\n fakeLink.href = blob;\n\n document.body.appendChild(fakeLink);\n fakeLink.click();\n if (document.body.contains(fakeLink)) {\n document.body.removeChild(fakeLink);\n }\n\n fakeLink.remove();\n};\n\nexport const uploadImageAndGetId = async ({\n id,\n base64Data,\n timestamp,\n url = SHARE_POST_UPLOAD,\n}: Parameters[0] & { timestamp: number; url?: string }) => {\n // const verification = getShareVerification({\n // id,\n // base64Data,\n // timestamp,\n // });\n\n const response = await axiosPost({\n url,\n data: {\n id,\n base64: base64Data,\n timestamp: timestamp.toString(),\n // verification,\n },\n });\n if (response.data.code !== 200) {\n throw new Error('uploadSharePnlImage response was not ok');\n }\n console.log('🚀 ~ uploadSharePnlImage created successfully!');\n};\n\nexport const preload = (urls: string[], onload?: (ev: Event) => void) => {\n const images = [];\n for (let i = 0; i < urls.length; i++) {\n const image = new Image();\n image.src = urls[i];\n image.onload = (ev) => {\n onload?.(ev);\n };\n images.push(image);\n }\n};\nexport const rankSrcList = [gold, silver, bronze];\n","import tableCheckSrc from '@/assets/svg/icon_table_check.svg';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { TabType } from '@/constants';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useAddLiquidationSimulation, useEarnFormType } from '@/features/earn/hook';\nimport { useTabType } from '@/features/global/hooks';\nimport { useChainOdysseyDappConfig, useEarnPoints, useTradePoints } from '@/features/odyssey/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useLimitFormState, useTradeType } from '@/features/trade/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { toBN } from '@/utils/numberUtil';\nimport { ReactNode, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nexport default function useOoPointsRightNode(): ReactNode {\n const { t } = useTranslation();\n const chainId = useChainId();\n const odysseyChainConfig = useChainOdysseyDappConfig(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const pairConfig = useMemo(() => {\n return odysseyChainConfig?.earnOoPointPairs?.find(\n (item) => item.pairSymbol.toLowerCase() === currentPair?.symbol.toLowerCase(),\n );\n }, [odysseyChainConfig?.earnOoPointPairs, currentPair?.symbol]);\n const userAddr = useUserAddr();\n const tabType = useTabType();\n let ooPoints: undefined | WrappedBigNumber = undefined;\n // OdysseyRewardCard in Trade Tab\n const tradeType = useTradeType(chainId);\n const ooPointsInTrade = useTradePoints(chainId, userAddr, currentPair?.symbol);\n const limitFormState = useLimitFormState(chainId);\n // OdysseyRewardCard in Earn Tab\n const ooPointsInEarn = useEarnPoints(chainId, userAddr, currentPair?.symbol);\n const earnType = useEarnFormType(chainId);\n const liquidationSimulation = useAddLiquidationSimulation(chainId);\n let ooPointsRightNode: ReactNode = null;\n\n const beforeSimulationOOPointsRightNode = useMemo(() => {\n // In Market Trade, Limit Trade, Add Liquidation, every pairs have oo point but different boost\n if (!pairConfig?.boost) return \"check\";\n return (\n \n \n }>\n {t('odyssey.rewardCard.boost', { boost: pairConfig?.boost })}\n \n \"check\"\n \n );\n }, [pairConfig?.boost, t]);\n\n const afterSimulationOOPointsRightNode = (ooPoints: WrappedBigNumber, i18nKey: string, isEarn: boolean) => (\n }} />}>\n {isEarn ? (\n \n ) : (\n <>\n {t('odyssey.rewardCard.upTo')}  \n {ooPoints.formatDisplayNumber({ isShowSeparator: true, type: 'price' })}\n \n )}\n \n );\n if (tabType === TabType.Trade) {\n // when user claer input then show 100x instead previous simulation\n if (toBN(limitFormState.baseAmount || 0).lte(0)) {\n ooPoints = undefined;\n } else {\n ooPoints = ooPointsInTrade;\n }\n ooPointsRightNode = (\n <>\n {tradeType !== TRADE_TYPE.LIMIT && \"check\"}\n {tradeType === TRADE_TYPE.LIMIT && ooPoints === undefined && beforeSimulationOOPointsRightNode}\n {tradeType === TRADE_TYPE.LIMIT &&\n ooPoints &&\n afterSimulationOOPointsRightNode(ooPoints, 'odyssey.rewardCard.tooltip.limitOrder', false)}\n \n );\n }\n\n if (tabType === TabType.Earn && earnType === EARN_TYPE.ADD_LIQ) {\n // when user claer input then show 100x instead previous simulation\n if (!liquidationSimulation?.data || !!liquidationSimulation.message) {\n ooPoints = undefined;\n } else {\n ooPoints = ooPointsInEarn;\n }\n ooPointsRightNode = (\n <>\n {ooPoints === undefined && beforeSimulationOOPointsRightNode}\n {ooPoints && afterSimulationOOPointsRightNode(ooPoints, 'odyssey.rewardCard.tooltip.addLiquidity', true)}\n \n );\n }\n\n return ooPointsRightNode;\n}\n","import './index.less';\n\nimport { Image } from 'antd';\nimport classNames from 'classnames';\nimport { ReactNode, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport iconSparklesLightSrc from '@/assets/svg/icon_sparkle_16_light.svg';\nimport iconSparklesSrc from '@/assets/svg/icon_sparkles_20.svg';\nimport tableCheckSrc from '@/assets/svg/icon_table_check.svg';\n\nimport viewImageSrc from '@/assets/svg/icon_view_image.svg';\nimport viewImageLightSrc from '@/assets/svg/icon_view_image_light.svg';\nimport { THEME_ENUM } from '@/constants';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { useEarnFormType } from '@/features/earn/hook';\nimport { useCurrentMarketType, useTheme } from '@/features/global/hooks';\nimport { useChainOdysseyDappConfig } from '@/features/odyssey/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useTradeType } from '@/features/trade/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport OdysseyBoostTag from '@/pages/Odyssey/components/OdysseyBoostTag';\nimport { getEarnRuleImg } from '@/utils/image';\nimport { OdysseyRewardId, nonBlastAndOoPointRewardIds, odysseyRewardInfos } from '../../../configs/odysseyReward';\nimport useOoPointsRightNode from './useOoPointsRightNode';\ntype OdysseyRewardCardProps =\n | {\n isDepositModal: true;\n quoteSymbol: string;\n }\n | {\n isDepositModal?: false;\n };\ntype TContentItem = {\n iconSrc: string;\n right: ReactNode;\n id: OdysseyRewardId;\n};\nconst imgSrc = {\n iconSparkles: {\n [THEME_ENUM.LIGHT]: iconSparklesLightSrc,\n [THEME_ENUM.DARK]: iconSparklesSrc,\n },\n viewImage: {\n [THEME_ENUM.LIGHT]: viewImageLightSrc,\n [THEME_ENUM.DARK]: viewImageSrc,\n },\n};\n/**\n * OdysseyReward\n * blastPoints reminder:\n * 1. qoute symbol need to filter by earnBlastPointQuotes in Market Trade, Limit Trade, Add Liquidation and Deposit.\n * if qoute symbol is not included no blastPoints\n * 2. In Market Trade, Limit Trade, Add Liquidation,Close Position Only the pairs included in earnOoPointPairs which have boosted ooPoints\n * blastPoints blastGold ooPoints non Blast, non OoPoint Reward\n * Market Trade(Trade) ?(depends on earnBlastPointQuotes) v v (No boosted) ?(depends on checkIsDisplay)\n * Limit Trade(Trade) ?(depends on earnBlastPointQuotes) v v (boosted depends on earnOoPointPairs) ?(depends on checkIsDisplay)\n * Close Position(Trade) ?(depends on earnBlastPointQuotes) v v (No boosted) ?(depends on checkIsDisplay)\n * Add Liquidation(Earn) ?(depends on earnBlastPointQuotes) v v (boosted depends on earnOoPointPairs) ?(depends on checkIsDisplay)\n * Deposit(Depsoit) ?(depends on earnBlastPointQuotes) v x ?(depends on checkIsDisplay)\n * Deposit Native(DepsoitNative) v v x x\n * Remove Liquidty x x x x\n * Adjust Margin x x x x\n */\n\nexport default function OdysseyRewardCard(props: OdysseyRewardCardProps): JSX.Element | null {\n const { isDepositModal } = props;\n const [visible, setVisible] = useState(false);\n const { dataTheme } = useTheme();\n const { t } = useTranslation();\n const chainId = useChainId();\n const odysseyChainConfig = useChainOdysseyDappConfig(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const quoteSymbol = useMemo(() => {\n return isDepositModal ? props.quoteSymbol : currentPair?.rootInstrument.marginToken.symbol || '';\n }, [currentPair?.rootInstrument.marginToken.symbol, isDepositModal, props]);\n const tradeType = useTradeType(chainId);\n const earnType = useEarnFormType(chainId);\n const ooPointsRightNode = useOoPointsRightNode();\n const marketType = useCurrentMarketType();\n if (\n !odysseyChainConfig?.showEarnBanner ||\n earnType === EARN_TYPE.REMOVE_LIQ ||\n tradeType === TRADE_TYPE.ADJUST_MARGIN\n ) {\n return null;\n }\n\n /**\n * 1. Portfolio page deposit\n * 2. DEPOSIT_NATIVE in earn and trade pages\n * 3. Trade and add liquidation\n */\n const selectedOdysseyRewardIds = (isDepositModal && [\n OdysseyRewardId.BLAST_POINTS,\n OdysseyRewardId.BLAST_GOLD,\n ...nonBlastAndOoPointRewardIds,\n ]) ||\n ((tradeType === TRADE_TYPE.DEPOSIT_NATIVE || earnType === EARN_TYPE.DEPOSIT_NATIVE) && [\n OdysseyRewardId.BLAST_POINTS,\n OdysseyRewardId.BLAST_GOLD,\n ]) || [\n OdysseyRewardId.OO_POINTS,\n OdysseyRewardId.BLAST_POINTS,\n OdysseyRewardId.BLAST_GOLD,\n ...nonBlastAndOoPointRewardIds,\n ];\n\n const contentItems: TContentItem[] = selectedOdysseyRewardIds.flatMap((id) => {\n if (\n odysseyRewardInfos[id].checkIsDisplay &&\n !odysseyRewardInfos[id].checkIsDisplay?.(odysseyChainConfig, quoteSymbol, chainId)\n ) {\n return [];\n }\n if (id === OdysseyRewardId.OO_POINTS) {\n return [\n {\n ...odysseyRewardInfos[id],\n iconSrc: odysseyRewardInfos[id].iconSrcForRewardCard,\n right: ooPointsRightNode,\n id: id as OdysseyRewardId,\n },\n ];\n }\n return [\n {\n ...odysseyRewardInfos[id],\n iconSrc: odysseyRewardInfos[id].iconSrcForRewardCard,\n right: \"check\",\n id,\n },\n ];\n });\n\n if (contentItems.length === 0) {\n return null;\n }\n return (\n
\n
\n
\n \"iconSparkles\"\n {t('odyssey.eligibleToEarn')}\n
\n
setVisible(true)} className=\"syn-odyssey-reward-card-view-rule\">\n \"view\n {t('common.rules')}\n
\n
\n
\n {contentItems.map((item, i) => (\n
\n
\n \n {t(`odyssey.earn.odysseyBoostReward.points.title.${item.id}`)}\n {item.id === OdysseyRewardId.OO_POINTS && marketType === PAIR_PAGE_TYPE.EARN && chainId && (\n \n )}\n
\n
{item.right}
\n
\n ))}\n
\n {\n setVisible(value);\n },\n }}\n />\n
\n );\n}\n","/**\n * @description Component-DepositModal\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport OdysseyRewardCard from '@/components/Card/OdysseyRewardsCard';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { BALANCE_TYPE } from '@/constants';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { setGateAccountState } from '@/features/balance/actions';\nimport { useGateAccountState, useTokenBalance, useTokenGateBalanceByChainIdAndAddress } from '@/features/balance/hook';\nimport { setPortfolioDepositOrWithdrawOperateToken } from '@/features/portfolio/actions';\nimport { usePortfolioOperateToken } from '@/features/portfolio/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport WalletDrawerWrapper from '@/pages/components/WalletStatus/WalletDrawerWrapper';\nimport WalletModalWrapper from '@/pages/components/WalletStatus/WalletModalWrapper';\nimport { useAccountDepositWithdrawCheck } from '@/pages/portfolio/Assets/hooks/assetsHook';\nimport { getDefaultITradeAccountState } from '@/types/balance';\nimport { DepositModalProps } from '@/types/modal';\nimport { isWrappedNativeToken } from '@/utils/token';\n\nimport DepositForm from './DepositForm';\nimport DepositFormAlert from './DepositFormAlert';\nimport DepositModalFooter from './DepositModalFooter';\nimport './index.less';\nconst DepositModal: FC = function ({ type, open: visible, onCloseModal, quote: quote }) {\n const { isMobile } = useMediaQueryDevice();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n const tradeAccountState = useGateAccountState(chainId);\n const tokenInfo = usePortfolioOperateToken(chainId, userAddr);\n const adjustQuote = useMemo(() => {\n if (chainId && quote && isWrappedNativeToken(chainId, quote.address)) {\n return tokenInfo;\n }\n return quote;\n }, [chainId, quote, tokenInfo]);\n const isWrappedNativeTokenInfo = useMemo(() => {\n return chainId && quote && isWrappedNativeToken(chainId, quote.address);\n }, [chainId, quote]);\n const tokenBalance = useTokenBalance(adjustQuote?.address || '', chainId);\n const gateBalance = useTokenGateBalanceByChainIdAndAddress(chainId, quote?.address || '');\n const simulation = useAccountDepositWithdrawCheck(\n WrappedBigNumber.from(tradeAccountState?.depositAmountStr || 0),\n gateBalance?.balance,\n tokenBalance,\n type as BALANCE_TYPE,\n chainId,\n );\n\n const { t } = useTranslation();\n\n useEffect(() => {\n if (visible) {\n if (chainId && userAddr && quote)\n dispatch(setPortfolioDepositOrWithdrawOperateToken({ chainId, userAddr, tokenInfo: quote }));\n }\n }, [chainId, dispatch, quote, userAddr, visible]);\n\n const onClickModal = useCallback(() => {\n onCloseModal();\n isWrappedNativeTokenInfo &&\n chainId &&\n userAddr &&\n quote &&\n dispatch(setPortfolioDepositOrWithdrawOperateToken({ chainId, userAddr, tokenInfo: quote }));\n chainId &&\n dispatch(\n setGateAccountState({\n chainId,\n ...getDefaultITradeAccountState(),\n }),\n );\n }, [chainId, dispatch, isWrappedNativeTokenInfo, onCloseModal, quote, userAddr]);\n\n return isMobile ? (\n {\n onClickModal();\n }}\n cardProps={{\n tabList: [],\n title: type === BALANCE_TYPE.DEPOSIT ? t('common.deposit') : t('common.withdraw'),\n showSliderBar: true,\n showSettingsIcon: false,\n alert: (\n \n ),\n footer: (\n \n ),\n }}>\n \n \n ) : (\n <>\n {\n onClickModal();\n }}\n onCancel={onCloseModal}\n cardProps={{\n tabList: [],\n title: type === BALANCE_TYPE.DEPOSIT ? t('common.deposit') : t('common.withdraw'),\n showSliderBar: true,\n showSettingsIcon: false,\n alert: (\n \n ),\n footer: (\n \n ),\n }}>\n \n {type === BALANCE_TYPE.DEPOSIT && quote && }\n \n \n );\n};\n\nexport default React.memo(DepositModal);\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgTotalPnlIcon = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40,\n height: 38,\n viewBox: \"0 0 40 38\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 18408\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 18403\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Union\",\n d: \"M30.6046 0.875665C30.4526 0.700335 30.232 0.599609 30 0.599609C29.768 0.599609 29.5474 0.700335 29.3955 0.875665L24.1955 6.87567C23.9903 7.11236 23.9422 7.44699 24.0723 7.73191C24.2024 8.01682 24.4868 8.19961 24.8 8.19961H26.4V19.4996C28.8 19.4996 31.2 19.4996 33.6 19.4996V8.19961H35.2C35.5132 8.19961 35.7976 8.01682 35.9277 7.73191C36.0578 7.44699 36.0097 7.11236 35.8046 6.87567L30.6046 0.875665Z\",\n fill: \"url(#paint0_linear_15194_110689)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Union_2\",\n d: \"M30 17.3994C27.3478 17.3994 24.8043 18.453 22.9289 20.3283C21.0536 22.2037 20 24.7472 20 27.3994C20 30.0516 21.0536 32.5951 22.9289 34.4705C24.8043 36.3458 27.3478 37.3994 30 37.3994C32.6522 37.3994 35.1957 36.3458 37.0711 34.4705C38.9464 32.5951 40 30.0516 40 27.3994C40 24.7472 38.9464 22.2037 37.0711 20.3283C35.1957 18.453 32.6522 17.3994 30 17.3994Z\",\n fill: \"url(#paint1_linear_15194_110689)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M29.9984 21C30.4403 21 30.7984 21.3582 30.7984 21.8V22.6015C31.355 22.6193 31.8978 22.7918 32.3596 23.1026C32.8494 23.4324 33.2261 23.9035 33.4305 24.4556C33.5839 24.87 33.3723 25.3302 32.958 25.4836C32.5436 25.637 32.0834 25.4254 31.93 25.0111C31.8454 24.7826 31.6858 24.5779 31.466 24.4299C31.2458 24.2816 30.9783 24.1996 30.7008 24.2H29.0737C28.7976 24.1996 28.5369 24.2968 28.3409 24.4641C28.146 24.6306 28.0303 24.8526 28.0042 25.0833C27.9781 25.3136 28.0414 25.5493 28.1903 25.746C28.3402 25.9439 28.5684 26.0902 28.8369 26.1456L28.8377 26.1458L31.3121 26.6619C32.001 26.8059 32.619 27.1891 33.0416 27.7489C33.4652 28.3099 33.6604 29.0066 33.5812 29.7044C33.5021 30.4018 33.1562 31.0382 32.622 31.4954C32.1136 31.9305 31.4675 32.176 30.7984 32.1983V33C30.7984 33.4418 30.4403 33.8 29.9984 33.8C29.5566 33.8 29.1984 33.4418 29.1984 33V32.1982C28.6432 32.1792 28.1021 32.0064 27.6415 31.696C27.1521 31.3661 26.7755 30.8951 26.571 30.3431C26.4175 29.9288 26.6289 29.4685 27.0432 29.315C27.4576 29.1615 27.9178 29.3729 28.0713 29.7872C28.1561 30.016 28.3158 30.2209 28.5358 30.3692C28.7562 30.5177 29.0238 30.6 29.3017 30.6H30.6992C31.0307 30.5998 31.3447 30.4826 31.5816 30.2798C31.8176 30.0778 31.9592 29.8073 31.9914 29.5241C32.0235 29.2412 31.9458 28.9527 31.7647 28.713C31.5829 28.4722 31.3073 28.2956 30.985 28.2281L30.9847 28.2281L28.5134 27.7125C28.5131 27.7125 28.5128 27.7124 28.5125 27.7124C27.8771 27.581 27.306 27.2285 26.9147 26.7119C26.5224 26.1938 26.3412 25.5492 26.4144 24.9032C26.4875 24.2576 26.808 23.6692 27.3019 23.2474C27.7947 22.8266 28.4268 22.5991 29.0756 22.6H29.1984V21.8C29.1984 21.3582 29.5566 21 29.9984 21Z\",\n fill: \"white\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group 18404\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Union_3\",\n d: \"M10.6046 37.123C10.4526 37.2983 10.232 37.399 10 37.399C9.768 37.399 9.54741 37.2983 9.39546 37.123L4.19546 31.123C3.99033 30.8863 3.94219 30.5516 4.07229 30.2667C4.20239 29.9818 4.4868 29.799 4.80001 29.799H6.40001V18.499C8.80001 18.4991 11.2 18.499 13.6 18.499V29.799H15.2C15.5132 29.799 15.7976 29.9818 15.9277 30.2667C16.0578 30.5516 16.0097 30.8863 15.8046 31.123L10.6046 37.123Z\",\n fill: \"url(#paint2_linear_15194_110689)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Union_4\",\n d: \"M10 20.5996C7.34784 20.5996 4.8043 19.546 2.92893 17.6707C1.05357 15.7953 0 13.2518 0 10.5996C0 7.94744 1.05357 5.4039 2.92893 3.52854C4.8043 1.65318 7.34784 0.599609 10 0.599609C12.6522 0.599609 15.1957 1.65318 17.0711 3.52854C18.9464 5.4039 20 7.94744 20 10.5996C20 13.2518 18.9464 15.7953 17.0711 17.6707C15.1957 19.546 12.6522 20.5996 10 20.5996Z\",\n fill: \"url(#paint3_linear_15194_110689)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)_2\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.99845 4.19922C10.4403 4.19922 10.7984 4.55739 10.7984 4.99922V5.80075C11.355 5.81854 11.8978 5.99099 12.3596 6.30186C12.8494 6.63158 13.2261 7.10268 13.4305 7.65483C13.5839 8.06918 13.3723 8.52942 12.958 8.6828C12.5436 8.83618 12.0834 8.62463 11.93 8.21028C11.8454 7.98182 11.6858 7.77708 11.466 7.62911C11.2458 7.48084 10.9783 7.39886 10.7008 7.39922H9.07374C8.7976 7.39879 8.53689 7.49603 8.34094 7.66336C8.14598 7.82985 8.03033 8.05179 8.00419 8.28252C7.97809 8.51281 8.04137 8.74851 8.19031 8.94521C8.34016 9.14311 8.56843 9.28938 8.83687 9.3448L8.83767 9.34497L11.3121 9.86114C12.001 10.0052 12.619 10.3883 13.0416 10.9481C13.4652 11.5091 13.6604 12.2058 13.5812 12.9036C13.5021 13.601 13.1562 14.2374 12.622 14.6946C12.1136 15.1297 11.4675 15.3752 10.7984 15.3975V16.1992C10.7984 16.641 10.4403 16.9992 9.99845 16.9992C9.55662 16.9992 9.19845 16.641 9.19845 16.1992V15.3974C8.64325 15.3784 8.10207 15.2056 7.64154 14.8952C7.15206 14.5653 6.77551 14.0943 6.57101 13.5423C6.41751 13.128 6.62894 12.6677 7.04324 12.5142C7.45755 12.3607 7.91785 12.5721 8.07135 12.9865C8.15609 13.2152 8.31583 13.4202 8.53577 13.5684C8.75616 13.7169 9.0238 13.7992 9.30167 13.7992H10.6992C11.0307 13.799 11.3447 13.6818 11.5816 13.479C11.8176 13.2771 11.9592 13.0065 11.9914 12.7233C12.0235 12.4404 11.9458 12.152 11.7647 11.9122C11.5829 11.6714 11.3073 11.4948 10.985 11.4274L10.9847 11.4273L8.51336 10.9118C8.51306 10.9117 8.51277 10.9116 8.51248 10.9116C7.87707 10.7802 7.30597 10.4278 6.91474 9.91109C6.52242 9.39298 6.34116 8.74837 6.41436 8.10237C6.48751 7.45682 6.80796 6.86844 7.30192 6.44663C7.79472 6.0258 8.42678 5.79836 9.07559 5.79922H9.19845V4.99922C9.19845 4.55739 9.55662 4.19922 9.99845 4.19922Z\",\n fill: \"white\"\n })))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_15194_110689\",\n x1: 30,\n y1: 0.599609,\n x2: 30,\n y2: 19.4996,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#47EB7E\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#14B84B\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_15194_110689\",\n x1: 30,\n y1: 37.3994,\n x2: 30,\n y2: 17.3994,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFCC66\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFAA00\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_15194_110689\",\n x1: 10,\n y1: 37.399,\n x2: 10,\n y2: 18.499,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FF9999\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FF6666\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_15194_110689\",\n x1: 10,\n y1: 20.5996,\n x2: 10,\n y2: 0.599609,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFCC66\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFAA00\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgTotalPnlIcon);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/total-pnl-icon.2d1dff7502a59846720b94eddfd1be5c.svg\";","/**\n * @description Component-Deposit\n */\nimport React, { FC, useState } from 'react';\n\nimport { BALANCE_TYPE } from '@/constants';\nimport { WrappedQuote } from '@/entities/WrappedQuote';\nimport { setGateAccountState } from '@/features/balance/actions';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { getDefaultITradeAccountState } from '@/types/balance';\nimport { IButtonProps } from '@/types/button';\nimport { GaCategory } from '@/utils/analytics';\n\nimport DepositButton from './DepositButton';\nimport DepositModal from './DepositModal';\n\n// import { useIsOnWhiteList } from '@/hooks/useWhitelist';\n// import { useToggleModal } from '@/features/global/hooks';\n// import './index.less'\ninterface IPropTypes {\n quote: WrappedQuote | undefined;\n btnProps?: IButtonProps;\n gaCategory?: GaCategory;\n gaAction?: string;\n}\nconst AccountDeposit: FC = function ({ quote, btnProps }) {\n const chainId = useChainId();\n const dispatch = useAppDispatch();\n const [visible, setVisible] = useState(false);\n // const isOnWhiteList = useIsOnWhiteList(userAddr);\n // const toggleSignUpModal = useToggleModal(GlobalModalType.SignUp);\n\n return (\n
\n {\n // if (!isOnWhiteList) {\n // toggleSignUpModal();\n // return;\n // }\n setVisible(true);\n chainId &&\n dispatch(\n setGateAccountState({\n chainId,\n ...getDefaultITradeAccountState(),\n }),\n );\n btnProps?.onClick && btnProps?.onClick(event);\n }}\n />\n {\n setVisible(false);\n }}\n quote={quote}\n />\n
\n );\n};\n\nexport default React.memo(AccountDeposit);\n","/**\n * @description Component-WithdrawButton\n */\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\nimport { IButtonProps } from '@/types/button';\n\nimport './index.less';\n\nconst WithdrawButton: FC = function (props) {\n const { t } = useTranslation();\n return (\n \n );\n};\n\nexport default WithdrawButton;\n","/**\n * @description Component-WithdrawModal\n */\nimport React, { FC } from 'react';\n\nimport { DepositModalProps } from '@/types/modal';\n\nimport DepositModal from '../../Deposit/DepositModal';\n\nconst WithdrawModal: FC = function (props) {\n return ;\n};\n\nexport default React.memo(WithdrawModal);\n","/**\n * @description Component-AccountWithdraw\n */\nimport React, { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Tooltip } from '@/components/ToolTip';\nimport { BALANCE_TYPE } from '@/constants';\nimport { WrappedQuote } from '@/entities/WrappedQuote';\nimport { setGateAccountState } from '@/features/balance/actions';\nimport { getUserPendings } from '@/features/portfolio/actions';\nimport { useUserWithdrawPendingToken } from '@/features/portfolio/hook';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { getDefaultITradeAccountState } from '@/types/balance';\nimport { IButtonProps } from '@/types/button';\n\nimport { useQuoteTokens } from '@/features/chain/hook';\nimport {\n AccountAction,\n useAssetSelectFromParams,\n useGoToAccountBalanceAction,\n} from '@/hooks/portfolio/usePortfolioParams';\nimport WithdrawButton from './WithdrawButton';\nimport WithdrawModal from './WithdrawModal';\n// import './index.less'\ninterface IPropTypes {\n quote: WrappedQuote | undefined;\n btnProps?: IButtonProps;\n}\nconst AccountWithdraw: FC = function ({ quote, btnProps }) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n const [visible, setVisible] = useState(false);\n const { isShowClaim } = useUserWithdrawPendingToken(chainId, userAddr, quote?.address);\n const sdkContext = useSDK(chainId);\n const marginTokens = useQuoteTokens(chainId);\n const isDisableWithdrawBtn = useMemo(() => {\n return isShowClaim;\n }, [isShowClaim]);\n const handleClickWithdrawButton = useCallback(() => {\n setVisible(true);\n chainId &&\n dispatch(\n setGateAccountState({\n chainId,\n ...getDefaultITradeAccountState(),\n }),\n );\n\n chainId &&\n sdkContext &&\n userAddr &&\n dispatch(\n getUserPendings({\n chainId,\n sdkContext,\n userAddr,\n marginTokens,\n }),\n );\n }, [chainId, dispatch, marginTokens, sdkContext, userAddr]);\n const { accountAction } = useAssetSelectFromParams();\n const { goToAccountBalanceAction } = useGoToAccountBalanceAction();\n useEffect(() => {\n if (accountAction === AccountAction.withdraw && quote && !btnProps?.disabled) {\n handleClickWithdrawButton();\n }\n }, [accountAction, btnProps?.disabled, handleClickWithdrawButton, quote]);\n return (\n \n
\n {\n handleClickWithdrawButton();\n }}\n />\n {\n setVisible(false);\n goToAccountBalanceAction(null);\n }}\n quote={quote}\n />\n
\n
\n );\n};\n\nexport default React.memo(AccountWithdraw);\n","/**\n * @description Component-PortfolioAssetSkeleton\n */\nimport './index.less';\n\nimport { FC } from 'react';\n\nimport { Skeleton } from '@/components/Skeleton';\ninterface IPropTypes {\n className?: string;\n}\nconst PortfolioAssetSkeleton: FC = function () {\n return (\n
\n {Array(8)\n .fill(null)\n .map((_, i) => (\n
\n \n \n
\n ))}\n
\n );\n};\n\nexport default PortfolioAssetSkeleton;\n","/**\n * @description Component-PortfolioAsset\n */\nimport './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as RightIcon } from '@/assets/svg/icon_arrow_right.svg';\nimport { IAssetsBalance } from '@/types/assets';\n\nimport TokenBalanceInfoButton from '@/components/Button/TokenBalanceInfoButton';\nimport { useMockDevTool } from '@/components/Mock';\nimport { useUserIsFetchedGateBalanceList } from '@/features/balance/hook';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { setPortfolioAssetSelect } from '@/features/portfolio/actions';\nimport { useUserWithdrawPendingToken } from '@/features/portfolio/hook';\nimport { useIsBlacklistedFromStore } from '@/features/user/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useAssetSelectFromParams } from '@/hooks/portfolio/usePortfolioParams';\nimport DepositButton from '@/pages/components/Portfolio/Vault/AccountButtons/Deposit';\nimport WithdrawButton from '@/pages/components/Portfolio/Vault/AccountButtons/Withdraw';\nimport PortfolioAssetSkeleton from './PortfolioAssetSkeleton';\nconst maxTokenInBalanceInfosPerBatch = 8;\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n assetBalanceList: IAssetsBalance[];\n chainId: CHAIN_ID | undefined;\n userAddr: string | undefined;\n}\nconst PortfolioAsset: FC = function ({ assetBalanceList, chainId, userAddr }) {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const isBlacklisted = useIsBlacklistedFromStore();\n const backendChainConfig = useBackendChainConfig(chainId);\n const [assetSelect, setAssetSelect] = useState(backendChainConfig?.quoteDisplayList[0] || 'USDC');\n const isFetchedGateBalance = useUserIsFetchedGateBalanceList(chainId, userAddr);\n\n const selectedAssetInfo = useMemo(\n () => assetBalanceList.find((assetBalance) => assetBalance.quote.symbol === assetSelect),\n [assetBalanceList, assetSelect],\n );\n useEffect(() => {\n dispatch(setPortfolioAssetSelect({ assetSelected: selectedAssetInfo || null }));\n }, [dispatch, selectedAssetInfo]);\n const { quoteSymbol: quoteSymbolFromParams } = useAssetSelectFromParams();\n const { isMockSkeleton } = useMockDevTool();\n const isLoading = useMemo(() => {\n return isMockSkeleton || !isFetchedGateBalance;\n }, [isFetchedGateBalance, isMockSkeleton]);\n const totalBatches = useMemo(\n () => Math.ceil((assetBalanceList?.length || 0) / maxTokenInBalanceInfosPerBatch),\n [assetBalanceList],\n );\n const { isShowClaim: isSelectedAssetShowClaim } = useUserWithdrawPendingToken(\n chainId,\n userAddr,\n selectedAssetInfo?.quote.address,\n );\n const isSelectedAssetWithdrawDisable = useMemo(() => {\n return isSelectedAssetShowClaim || selectedAssetInfo?.gateBalance?.lte(0);\n }, [isSelectedAssetShowClaim, selectedAssetInfo?.gateBalance]);\n const [currentBatch, setCurrentBath] = useState(0);\n const currentAssets = useMemo(() => {\n const list = assetBalanceList.slice(\n currentBatch * maxTokenInBalanceInfosPerBatch,\n (currentBatch + 1) * maxTokenInBalanceInfosPerBatch,\n );\n return list.sort((a, b) => {\n if (a?.gateBalance?.gt(0) && b?.gateBalance?.eq(0)) return -1;\n if (a?.gateBalance?.eq(0) && b?.gateBalance?.gt(0)) return 1;\n return 0;\n });\n }, [assetBalanceList, currentBatch]);\n const prevAsset = useCallback(() => {\n if (currentBatch !== 0) {\n const newBatch = currentBatch - 1;\n const newSymbol = assetBalanceList[newBatch * maxTokenInBalanceInfosPerBatch]?.quote.symbol;\n newSymbol && setAssetSelect(newSymbol);\n setCurrentBath(newBatch);\n }\n }, [assetBalanceList, currentBatch]);\n const nextAsset = useCallback(() => {\n if (currentBatch !== totalBatches - 1) {\n const newBatch = currentBatch + 1;\n const newSymbol = assetBalanceList[newBatch * maxTokenInBalanceInfosPerBatch]?.quote.symbol;\n newSymbol && setAssetSelect(newSymbol);\n setCurrentBath(newBatch);\n }\n }, [assetBalanceList, currentBatch, totalBatches]);\n\n useEffect(() => {\n let quoteSymbol = backendChainConfig?.quoteDisplayList[0] || 'USDC';\n if (\n assetBalanceList?.length &&\n !assetBalanceList.find((assetBalance) => assetBalance.quote.symbol === quoteSymbol)\n ) {\n quoteSymbol = assetBalanceList[0].quote.symbol;\n }\n setAssetSelect(quoteSymbol);\n }, [backendChainConfig?.quoteDisplayList, chainId]);\n\n useEffect(() => {\n quoteSymbolFromParams && setAssetSelect(quoteSymbolFromParams);\n }, [quoteSymbolFromParams]);\n return (\n
\n
\n
\n {isBlacklisted ? (\n
{t('common.violationAccount')}
\n ) : (\n <>\n {t('common.portfolio.account')}\n {chainId === CHAIN_ID.BLAST && (\n {t('common.banners.deposit')}\n )}\n \n )}\n
\n {selectedAssetInfo && (\n
\n \n \n
\n )}\n {assetBalanceList.length > maxTokenInBalanceInfosPerBatch && (\n
\n {' '}\n \n
\n )}\n
\n {!isFetchedGateBalance && }\n {isFetchedGateBalance && (\n
\n {currentAssets.map((assetBalance, index) => {\n return (\n setAssetSelect(assetBalance.quote.symbol)}\n />\n );\n })}\n
\n )}\n
\n );\n};\n\nexport default PortfolioAsset;\n","/**\n * @description Component-PortfolioEmpty\n */\nimport './index.less';\n\nimport React, { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Empty from '@/components/Empty';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PortfolioEmpty: FC = function ({ children }) {\n const connectionStatus = useWalletConnectStatus();\n const { t } = useTranslation();\n const isUnConnect = useMemo(() => {\n return connectionStatus === WALLET_CONNECT_STATUS.UN_CONNECT;\n }, [connectionStatus]);\n if (!isUnConnect && children) return <>{children};\n return (\n
\n
{t('common.portfolio.account')}
\n \n
\n );\n};\n\nexport default PortfolioEmpty;\n","import './index.less';\n\nimport { Card as AntDCard, CardProps, Spin } from 'antd';\nimport cls from 'classnames';\nimport { FC, memo, useMemo } from 'react';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\ninterface ICardProps extends CardProps {\n total?: number;\n loadingItem?: boolean;\n}\nconst CardComponent: FC = ({ loadingItem, ...props }) => {\n const { deviceType } = useMediaQueryDevice();\n\n const title = useMemo(() => {\n if (props.title) {\n return (\n
\n {props.title}\n {/* remove total */}\n {/* {!!props.total && props.total > 0 &&
{props.total}
} */}\n\n {(loadingItem || props.loading) && }\n
\n );\n }\n return undefined;\n }, [props.title, props.loading, loadingItem]);\n\n return ;\n};\nconst Card = memo(CardComponent);\nexport default Card;\n","/**\n * @description Component-EarnUnconnectedCard\n */\nimport classNames from 'classnames';\nimport { FC, memo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { GlobalModalType, THEME_ENUM } from '@/constants';\nimport { useTheme, useToggleModal } from '@/features/global/hooks';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\n\nimport ConnectWalletButton from '../WalletStatus/ConnectWalletButton';\nimport GlossyIcon from './assets/icon_mj_link.png';\nimport GlossyIconD from './assets/icon_mj_link_d.png';\nimport './index.less';\ninterface IProps {\n hide?: boolean;\n}\nconst UnconnectedCard: FC = function ({ hide }) {\n const connectionStatus = useWalletConnectStatus();\n const theme = useTheme();\n const { t } = useTranslation();\n const toggleWalletModal = useToggleModal(GlobalModalType.Wallet);\n return (\n <>\n {connectionStatus === WALLET_CONNECT_STATUS.UN_CONNECT && !hide && (\n
\n \n\n
\n
{t('common.portfolio.connectWallet')}
\n
\n {\n toggleWalletModal(true);\n }}>\n
\n
\n
\n )}\n \n );\n};\n\nexport default memo(UnconnectedCard);\n","import { CHAIN_ID } from '@/constants/chain';\n\nconst ChainTagIcon = ({ chainId }: { chainId?: CHAIN_ID }) => {\n if (chainId === CHAIN_ID.BASE) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n if (chainId === CHAIN_ID.BLAST) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n return null;\n};\n\nexport default ChainTagIcon;\n","import TokenLogo from '@/components/TokenLogo';\nimport { TokenInfo } from '@/types/token';\nimport classNames from 'classnames';\nimport { ComponentProps, ReactNode } from 'react';\nimport './index.less';\n\ntype TotalOverviewTooltipProps = {\n title: string;\n value: ReactNode;\n data: (\n | {\n type: 'quote';\n subtitle?: string;\n items: {\n color: string;\n symbol: ReactNode;\n tokenAmount: ReactNode;\n usdAmount: ReactNode;\n token?: TokenInfo;\n }[];\n }\n | {\n type: 'usage';\n subtitle?: string;\n items: {\n title: string;\n value: ReactNode;\n }[];\n }\n )[];\n isDisplayTokenIconInsteadOfColorDot?: boolean;\n} & ComponentProps<'div'>;\nexport default function TotalOverviewTooltip({\n title,\n value,\n data,\n className,\n isDisplayTokenIconInsteadOfColorDot,\n ...others\n}: TotalOverviewTooltipProps): JSX.Element {\n return (\n
\n
\n {title}\n {value}\n
\n {data.map(({ subtitle, items, type }, i) => {\n if (items.length === 0) return null;\n return (\n
\n
\n {subtitle &&
{subtitle}
}\n \n \n {type === 'usage' &&\n items.map((item, j) => (\n \n \n \n \n ))}\n {type === 'quote' &&\n items.map((item, i) => {\n return item.tokenAmount === undefined ? null : (\n \n \n \n \n \n \n );\n })}\n \n
{item.title}{item.value}
\n {isDisplayTokenIconInsteadOfColorDot ? (\n \n ) : (\n \n )}\n {item.symbol}{item.tokenAmount}{item.usdAmount}
\n
\n {i + 1 !== data.length &&
}\n
\n );\n })}\n
\n );\n}\n","export const disabledDarkColor = '#04606E';\nexport const disabledLightColor = '#F0F4F5';\n","/**\n * @description Component-AccountPieChart\n */\nimport './index.less';\n\nimport _ from 'lodash';\nimport { FC, useCallback, useState } from 'react';\nimport { Cell, Pie, PieChart, ResponsiveContainer, Sector, Tooltip } from 'recharts';\n\nimport { THEME_ENUM } from '@/constants';\nimport { useTheme } from '@/features/global/hooks';\nimport { PieChartItem } from '@/types/chart';\nimport { ITooltipProps } from '@/types/pair';\nimport { formatDisplayNumber } from '@/utils/numberUtil';\nimport { disabledDarkColor, disabledLightColor } from '../constant';\n\nexport interface ValuesPieChartProps {\n chartList: PieChartItem[];\n size?: number;\n disabled?: boolean;\n noPadding?: boolean;\n onMouseOver?: (data: PieChartItem, index: number) => void;\n onMouseLeave?: (data: PieChartItem, index: number) => void;\n hideTooltip?: boolean;\n noHoverEffect?: boolean;\n isHollow?: boolean;\n}\nconst ValuesPieChart: FC = function ({\n chartList,\n noPadding,\n disabled,\n hideTooltip,\n size = 64,\n noHoverEffect = false,\n isHollow = true,\n ...props\n}) {\n const dataTheme = useTheme();\n const [activeIndex, setActiveIndex] = useState(-1);\n\n const onMouseOver = useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data: any, index: number) => {\n if (disabled) {\n return;\n }\n if (data?.payload?.payload) {\n props.onMouseOver && props.onMouseOver(data.payload.payload, index);\n }\n setActiveIndex(index);\n },\n [props, disabled],\n );\n const onMouseLeave = useCallback(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (data: any, index: number) => {\n if (disabled) {\n return;\n }\n setActiveIndex(-1);\n if (data?.payload?.payload) {\n props.onMouseLeave && props.onMouseLeave(data.payload.payload, index);\n }\n },\n [props, disabled],\n );\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const renderActiveShape = useCallback((props: any) => {\n const { cx, cy, innerRadius, outerRadius, startAngle, endAngle, fill } = props;\n\n return (\n \n \n \n );\n }, []);\n const CustomTooltip = useCallback(\n (item: ITooltipProps) => {\n const { active, payload } = item;\n if (active && payload && payload.length) {\n const content = _.get(payload, [0]);\n const contentFill = _.get(content, ['payload', 'fill']);\n const dataItem = chartList.find((d) => d.name === _.get(content, ['name']));\n return (\n
\n
\n
\n {dataItem?.name}\n
\n
\n ${formatDisplayNumber({ num: dataItem?.value || 0, type: 'price', isShowTBMK: true })}\n
\n
\n );\n }\n\n return null;\n },\n [chartList],\n );\n\n return (\n \n \n \n 1 ? 0.5 : 0}\n dataKey=\"value\"\n minAngle={0}\n cornerRadius={2.5}\n activeIndex={activeIndex}\n activeShape={renderActiveShape}\n onMouseOver={noHoverEffect ? undefined : onMouseOver}\n onMouseLeave={noHoverEffect ? undefined : onMouseLeave}>\n {chartList.map((entry, index) => {\n let color = entry.color;\n if (disabled) {\n color = dataTheme.dataTheme === THEME_ENUM.DARK ? disabledDarkColor : disabledLightColor;\n }\n return ;\n })}\n \n {false && !hideTooltip && !disabled && (\n } />\n )}\n \n \n
\n );\n};\n\nexport default ValuesPieChart;\n","import { ReactComponent as IconPnl } from '@/assets/svg/total-pnl-icon.svg';\nimport { Tooltip } from 'antd';\nimport classNames from 'classnames';\nimport { ComponentProps, ReactNode } from 'react';\nimport ValuesPieChart, { ValuesPieChartProps } from '../ValuesPieChart';\nimport './index.less';\ntype PieChartWithTextProps = {\n isPnl?: boolean;\n valuesPieChartProps?: ValuesPieChartProps;\n valuesPieChartContainerProps?: ComponentProps<'div'>;\n title?: ReactNode;\n value?: ReactNode;\n size?: 'medium' | 'small';\n tooltipTitle?: ReactNode;\n};\nexport default function PieChartWithText({\n isPnl,\n valuesPieChartContainerProps,\n valuesPieChartProps,\n title,\n value,\n tooltipTitle,\n size = 'medium',\n}: PieChartWithTextProps): JSX.Element {\n return (\n
\n \n {isPnl && (\n \n \n
\n )}\n {valuesPieChartProps && (\n \n \n \n )}\n \n\n
\n
\n {title &&
{title}
}\n {value &&
{value}
}\n
\n
\n \n );\n}\n","import { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport TotalOverviewTooltip from '@/components/ToolTip/TotalOverviewTooltip';\nimport { useTokensInfoConfig } from '@/features/config/hook';\nimport { useAssetPnl } from '@/pages/portfolio/Assets/hooks/assetsHook';\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PieChartWithText from '../../PieChartWithText';\nimport { PieChartWithTextsProps } from '../types';\n\nexport default function TotalPnLChart({ chainId, userAddr, statusIsLoading }: PieChartWithTextsProps): JSX.Element {\n const { t } = useTranslation();\n const { total, list } = useAssetPnl(chainId, userAddr);\n const isLoading = useMemo(() => statusIsLoading || list === undefined, [list, statusIsLoading]);\n const isTotalLessAndEqualZero = useMemo(() => {\n if (process.env.REACT_APP_APP_PORTFOLIO_SHOW_PNL === 'true') {\n return false;\n }\n return total.lte(0);\n }, [total]);\n const tokensInfoConfig = useTokensInfoConfig(chainId);\n const quoteAssetPnlData = useMemo(() => {\n return list?.map((record) => {\n return {\n color: tokensInfoConfig?.marginTokenMap?.[record.quote.address].color || 'black',\n symbol: record.quote.symbol,\n tokenAmount: record.pnlInToken?.formatNumberWithTooltip({ isShowTBMK: true }) || '-',\n usdAmount: record.pnlInUsd?.formatNumberWithTooltip({ prefix: '$', isShowTBMK: true }) || '-',\n name: record.quote.symbol,\n token: record.quote,\n };\n });\n }, [list, tokensInfoConfig?.marginTokenMap]);\n if (isTotalLessAndEqualZero) return <>;\n return (\n <>\n \n )\n }\n isPnl\n size=\"small\"\n title={t('common.portfolio.totalPNL')}\n value={\n \n {isTotalLessAndEqualZero ? '-' : total.formatNumberWithTooltip({ prefix: '$', isShowTBMK: true })}\n \n }\n />\n \n );\n}\n","import { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { formatNumberWithTooltip, formatPriceNumberWithTooltip } from '@/components/NumberFormat';\nimport TotalOverviewTooltip from '@/components/ToolTip/TotalOverviewTooltip';\nimport { THEME_ENUM } from '@/constants';\nimport { useTokensInfoConfig } from '@/features/config/hook';\nimport { useTheme } from '@/features/global/hooks';\nimport { useAssetsBalanceList, useAssetsTotalsInUsd } from '@/pages/portfolio/Assets/hooks/assetsHook';\nimport { PieChartItem } from '@/types/chart';\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PieChartWithText from '../../PieChartWithText';\nimport { disabledDarkColor, disabledLightColor } from '../../constant';\nimport { PieChartWithTextsProps } from '../types';\n\nexport default function TotalValueChart({ chainId, userAddr, statusIsLoading }: PieChartWithTextsProps): JSX.Element {\n const { dataTheme } = useTheme();\n const { t } = useTranslation();\n const assetsBalance = useAssetsBalanceList(chainId, userAddr, undefined, true);\n const tokensInfoConfig = useTokensInfoConfig(chainId);\n const totals = useAssetsTotalsInUsd(chainId, userAddr);\n const isLoading = useMemo(\n () => statusIsLoading || totals.totalValue === undefined,\n [statusIsLoading, totals.totalValue],\n );\n const quoteAssetBalanceData = useMemo(() => {\n return assetsBalance.flatMap((record) => {\n const totalUSD = record.totalBalance?.mul(record.quote.price || 0);\n if (totalUSD?.lte(0)) {\n return [];\n }\n return [\n {\n color: tokensInfoConfig?.marginTokenMap?.[record.quote.address].color || 'black',\n symbol: record.quote.symbol,\n tokenAmount: record.totalBalance?.formatNumberWithTooltip({ isShowTBMK: true }) || '-',\n usdAmount: totalUSD?.formatNumberWithTooltip({ prefix: '$', isShowTBMK: true }) || '-',\n name: record.quote.symbol,\n value: Number(totalUSD?.toString() || '0'),\n },\n ];\n });\n }, [assetsBalance, tokensInfoConfig?.marginTokenMap]);\n\n const quoteAssetUsageData = useMemo(() => {\n return [\n {\n title: t('common.portfolio.inPosition'),\n value: formatNumberWithTooltip({\n num: totals.inPosition?.stringValue || '-',\n prefix: '$',\n }),\n },\n {\n title: t('common.portfolio.inLiq'),\n value: formatNumberWithTooltip({ num: totals.inLiq?.stringValue || '-', prefix: '$', isShowTBMK: true }),\n },\n {\n title: t('common.portfolio.inOrder'),\n value: formatNumberWithTooltip({ num: totals.inOrder?.stringValue || '-', prefix: '$', isShowTBMK: true }),\n },\n {\n title: t('common.portfolio.accountBalance'),\n value: formatNumberWithTooltip({\n num: totals.inAccount?.stringValue || '-',\n prefix: '$',\n isShowTBMK: true,\n }),\n },\n ].concat(\n totals?.inWithdrawPendingLock?.gt(0)\n ? [\n {\n title: t('common.portfolio.withdrawalInProgress'),\n value: formatPriceNumberWithTooltip({\n num: totals?.inWithdrawPendingLock?.stringValue || '-',\n prefix: '$',\n isShowTBMK: true,\n }),\n },\n ]\n : [],\n );\n }, [\n t,\n totals.inAccount?.stringValue,\n totals.inLiq?.stringValue,\n totals.inOrder?.stringValue,\n totals.inPosition?.stringValue,\n totals?.inWithdrawPendingLock,\n ]);\n const totalValueChartList: PieChartItem[] = useMemo(() => {\n if (statusIsLoading || totals.totalValue?.eq(0)) {\n return [\n {\n name: 'Others',\n value: 1,\n color: dataTheme === THEME_ENUM.DARK ? disabledDarkColor : disabledLightColor, //PAIR_COLOR_TYPE.Others,\n },\n ];\n }\n const res = quoteAssetBalanceData;\n\n return res;\n }, [statusIsLoading, totals.totalValue, quoteAssetBalanceData, dataTheme]);\n return (\n <>\n \n }\n value={\n \n {totals.totalValue?.formatNumberWithTooltip({ prefix: '$', isShowTBMK: true })}\n \n }\n />\n \n );\n}\n","import { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { formatNumberWithTooltip } from '@/components/NumberFormat';\nimport TotalOverviewTooltip from '@/components/ToolTip/TotalOverviewTooltip';\nimport { THEME_ENUM } from '@/constants';\nimport { useTokensInfoConfig } from '@/features/config/hook';\nimport { useTheme } from '@/features/global/hooks';\nimport { getTotalVolume } from '@/features/portfolio/actions';\nimport { useTotalVolume } from '@/features/portfolio/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { usePoller } from '@/hooks/common/usePoller';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { useAssetsBalanceList } from '@/pages/portfolio/Assets/hooks/assetsHook';\nimport { PieChartItem } from '@/types/chart';\nimport _ from 'lodash';\nimport { useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport PieChartWithText from '../../PieChartWithText';\nimport { disabledDarkColor, disabledLightColor } from '../../constant';\nimport { PieChartWithTextsProps } from '../types';\nexport default function TotalVolumeChart({ statusIsLoading }: PieChartWithTextsProps): JSX.Element {\n const { dataTheme } = useTheme();\n const { t } = useTranslation();\n const isLoading = useMemo(() => statusIsLoading, [statusIsLoading]);\n {\n /* // @TODO uncomment after build large scale details solution */\n }\n //const [isModalOpen, setIsModalOpen] = useState(true);\n const dispatch = useAppDispatch();\n const userAddr = useUserAddr();\n const chainId = useChainId();\n const tokensInfoConfig = useTokensInfoConfig(chainId);\n const totalVolume = useTotalVolume(userAddr, chainId);\n const assetsBalance = useAssetsBalanceList(chainId, userAddr, undefined, true);\n usePoller(\n () => {\n chainId && userAddr && dispatch(getTotalVolume({ chainId, userAddr }));\n },\n [chainId, dispatch, userAddr],\n 30000,\n );\n const totalVolumeUSD = useMemo(\n () => formatNumberWithTooltip({ num: totalVolume?.totalVolumeUSD || '-', prefix: '$', isShowTBMK: true }),\n [totalVolume?.totalVolumeUSD],\n );\n const qouteVolumeData = useMemo(() => {\n return assetsBalance.flatMap((record) => {\n const volumeDetails = _.get(totalVolume?.details, [record.quote.symbol]);\n const usdAmount = volumeDetails?.volumeUSD || '0';\n if (Number(usdAmount) <= 0) {\n return [];\n }\n return {\n name: record.quote.symbol,\n color: tokensInfoConfig?.marginTokenMap?.[record.quote.address].color || 'black',\n symbol: record.quote.symbol,\n tokenAmount: formatNumberWithTooltip({ num: volumeDetails?.volume || 0, isShowTBMK: true }),\n usdAmount: formatNumberWithTooltip({ num: usdAmount, prefix: '$', isShowTBMK: true }),\n value: Number(usdAmount),\n };\n });\n }, [assetsBalance, tokensInfoConfig?.marginTokenMap, totalVolume?.details]);\n const volumeChartList: PieChartItem[] = useMemo(() => {\n if (statusIsLoading || Number(totalVolume?.totalVolumeUSD || 0) === 0) {\n return [\n {\n symbol: '',\n name: 'Others',\n value: 1,\n color: dataTheme === THEME_ENUM.DARK ? disabledDarkColor : disabledLightColor, //PAIR_COLOR_TYPE.Others,\n tokenAmount: undefined,\n usdAmount: undefined,\n },\n ];\n }\n return qouteVolumeData;\n }, [statusIsLoading, totalVolume?.totalVolumeUSD, dataTheme, qouteVolumeData]);\n return (\n <>\n {/* // @TODO uncomment after build large scale details solution */}\n {/* setIsModalOpen(false)} /> */}\n\n \n }\n size=\"small\"\n valuesPieChartProps={{\n noHoverEffect: true,\n chartList: volumeChartList,\n disabled: isLoading,\n isHollow: false,\n }}\n title={t('common.portfolio.totalVolume')}\n value={\n \n
\n {totalVolumeUSD}\n {/* // @TODO uncomment after build large scale details solution */}\n {/* setIsModalOpen(true)} className=\"syn-total-overview-csv-btn\">\n \n {t('common.details')}\n */}\n
\n
\n }\n />\n \n );\n}\n","import { Skeleton } from 'antd';\nimport classNames from 'classnames';\nimport './index.less';\nfunction TotalOveriewSkeletonItem({ isBig = false }: { isBig?: boolean }): JSX.Element {\n return (\n
\n \n {isBig &&
}\n
\n \n \n
\n
\n );\n}\n\nexport default function TotalOveriewSkeleton(): JSX.Element {\n return (\n
\n \n
\n {/* */}\n \n
\n
\n );\n}\n","/**\n * @description Component-TotalValues\n */\nimport './index.less';\n\nimport Card from '@/components/Card';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport UnconnectedCard from '@/pages/components/UnconnectedCard';\nimport React, { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport ChainTagIcon from '@/assets/svg/icons/chainTag';\nimport { useMockDevTool } from '@/components/Mock';\nimport { useUserIsFetchedGateBalanceList } from '@/features/balance/hook';\nimport { useIsFetchedPortfolioList } from '@/features/portfolio/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\nimport TotalPnLChart from './PieChartWithTexts/TotalPnLChart';\nimport TotalValueChart from './PieChartWithTexts/TotalValueChart';\nimport TotalVolumeChart from './PieChartWithTexts/TotalVolumeChart';\nimport TotalOveriewSkeleton from './Skeleton';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\n\nconst TotalOverview: FC = function ({}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const walletConnectStatus = useWalletConnectStatus();\n const { isMockSkeleton } = useMockDevTool();\n\n const isFetchedPortfolio = useIsFetchedPortfolioList(chainId, userAddr);\n const isFetchedGateBalance = useUserIsFetchedGateBalanceList(chainId, userAddr);\n\n const statusIsLoading = useMemo(() => {\n return isMockSkeleton || !isFetchedPortfolio || !isFetchedGateBalance;\n }, [isFetchedGateBalance, isFetchedPortfolio, isMockSkeleton]);\n\n return (\n <>\n \n {walletConnectStatus !== WALLET_CONNECT_STATUS.UN_CONNECT && (\n \n

\n {t('common.overview')}\n \n

\n {statusIsLoading ? (\n \n ) : (\n
\n
\n \n
\n\n
\n
\n \n
\n\n
\n \n
\n
\n
\n )}\n
\n )}\n \n );\n};\n\nexport default TotalOverview;\n","/**\n * @description Component-PorfolioOverview\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport { useFetchFundFlows, useFetchWithdrawPendings } from '@/features/portfolio/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n\nimport { useAssetsBalanceList } from '../Assets/hooks/assetsHook';\nimport PortfolioAsset from './PortfolioAsset';\nimport PortfolioEmpty from './PortfolioEmpty';\nimport TotalOverview from './TotalOveriew';\ninterface IPropTypes {\n children?: React.ReactNode;\n}\nconst PortfolioOverview: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const filteredAssets = useAssetsBalanceList(chainId, userAddr, undefined, true);\n useFetchWithdrawPendings(chainId, userAddr);\n useFetchFundFlows(chainId, userAddr);\n\n return (\n
\n \n \n \n \n
\n );\n};\n\nexport default PortfolioOverview;\n","export default function PositionIcon() {\n return (\n \n \n \n \n \n );\n}\n","/**\n * @description Component-PortfolioPositionTable\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport React, { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport PositionIcon from '@/assets/svg/icons/position';\nimport { useMockDevTool } from '@/components/Mock';\nimport SkeletonTable, { SkeletonTableColumnsType } from '@/components/SkeletonTable';\nimport Table from '@/components/Table';\nimport { useTableColumns } from '@/components/TableCard/tableConfigs';\nimport { PAIR_PAGE_TYPE, TABLE_TYPES } from '@/constants/global';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { usePositionListByUser } from '@/features/account/positionHook';\nimport { clickOpenSettledPairModal } from '@/features/portfolio/actions';\nimport { useIsFetchedPortfolioList } from '@/features/portfolio/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useSideNavigate } from '@/hooks/useRouterNavigate';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PortfolioPositionTable: FC = function ({}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const { pairPageNavigate } = useSideNavigate();\n const userAddr = useUserAddr();\n const columnDefs = useTableColumns(TABLE_TYPES.PORTFOLIO_POSITIONS);\n const positions = usePositionListByUser(chainId, userAddr, false);\n const instruments = useMemo(() => _.uniq(positions?.map((p) => p.rootInstrument.displaySymbol)), [positions]);\n const isFetchedPortfolio = useIsFetchedPortfolioList(chainId, userAddr);\n\n const dispatch = useAppDispatch();\n const { isMockSkeleton } = useMockDevTool();\n if (isFetchedPortfolio && !positions?.length) {\n return null;\n }\n return (\n <>\n

\n \n {t('common.positions')}\n

\n
\n \n \n record.id +\n record.rootPair.rootInstrument?.isNormalInstrument?.toString() +\n record.rootPair.isNormalPair?.toString()\n }\n pagination={false}\n emptyDesc={t('common.empty.TradeNow')}\n emptyDescLink={'/#/trade'}\n showUnconnected={false}\n // antd site header height\n sticky={{ offsetHeader: 56 }}\n rowClassName={(record: WrappedPosition) =>\n classNames({\n emergency: !record.rootPair.rootInstrument?.isNormalInstrument,\n odd: _.indexOf(instruments, record.rootInstrument.displaySymbol) % 2 !== 0,\n })\n }\n onRow={(record: WrappedPosition) => {\n return {\n onClick: () => {\n if (!record.rootPair.isNormalPair) {\n chainId &&\n userAddr &&\n dispatch(clickOpenSettledPairModal({ chainId, userAddr, portfolio: record.rootPortfolio }));\n return;\n }\n gtag('event', 'enter_trade', {\n entrance: 'portfolio', // link, nav_bar, market, portfolio, odyssey_place_limit_order\n });\n pairPageNavigate(record.rootPair.symbol || '', PAIR_PAGE_TYPE.TRADE, record.rootPair.chainId);\n },\n };\n }}\n />\n \n
\n \n );\n};\n\nexport default PortfolioPositionTable;\n","/**\n * @description Component-PortfolioSkeleton\n */\nimport { Skeleton } from '@/components/Skeleton';\nimport './index.less';\n\nimport { FC } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PortfolioSkeleton: FC = function ({}) {\n return (\n
\n \n \n
\n );\n};\n\nexport default PortfolioSkeleton;\n","/**\n * @description Component-PortfolioTabs\n */\nimport './index.less';\n\nimport { FC, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router-dom';\n\nimport SynTitleTabs from '@/components/Tabs/SynTitleTabs';\nimport { PORTFOLIO_TAB_ITEMS } from '@/constants/portfolio';\nimport usePortfolioParams from '@/hooks/portfolio/usePortfolioParams';\ninterface IPropTypes {\n className?: string;\n}\nconst PortfolioTabs: FC = function () {\n const { t } = useTranslation();\n const tab = usePortfolioParams();\n const [value, setValue] = useState(PORTFOLIO_TAB_ITEMS.PORTFOLIO);\n const navigate = useNavigate();\n const newTabList = useMemo(() => {\n return [\n {\n key: PORTFOLIO_TAB_ITEMS.PORTFOLIO,\n label:
{t('common.portfolioStr')}
,\n },\n {\n key: PORTFOLIO_TAB_ITEMS.HISTORY,\n label: t('common.history'),\n },\n ];\n }, [t]);\n useEffect(() => {\n setValue(tab || PORTFOLIO_TAB_ITEMS.PORTFOLIO);\n // no deps\n }, [tab]);\n return (\n {\n setValue(key as PORTFOLIO_TAB_ITEMS);\n navigate(`/portfolio/${key}`);\n }}\n activeKey={value}\n items={newTabList}\n />\n );\n};\n\nexport default PortfolioTabs;\n","/**\n * @description Component-portfolio\n */\nimport './index.less';\n\nimport React, { FC, useCallback, useEffect, useMemo } from 'react';\nimport { useLocation, useNavigate } from 'react-router-dom';\n\nimport { PORTFOLIO_TAB_ITEMS } from '@/constants/portfolio';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n\nimport BlockedAlert from '@/components/Alert/BlockedAlert';\nimport { useMockDevTool } from '@/components/Mock';\nimport { useWrappedOrderListByUser } from '@/features/account/orderHook';\nimport { usePositionListByUser } from '@/features/account/positionHook';\nimport { useWrappedRangeListByUser } from '@/features/account/rangeHook';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useIsFetchedPortfolioList } from '@/features/portfolio/hook';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useListenGateEvent } from '@/hooks/data/useListenEventOnWorker';\nimport { usePollingAccountsData } from '@/hooks/data/usePollingDataOnWorker';\nimport usePortfolioParams from '@/hooks/portfolio/usePortfolioParams';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\nimport { getChainShortName } from '@/utils/chain';\nimport { useTranslation } from 'react-i18next';\nimport SettleModal from '../components/SettleModal';\nimport AccountHistory from './AccountHistory';\nimport OpenOrders from './OpenOrders';\nimport PortfolioLiquidityTable from './PortfolioLiquidityTable';\nimport PortfolioOverview from './PortfolioOverview';\nimport PortfolioPositionTable from './PortfolioPositionTable';\nimport PortfolioSkeleton from './PortfolioSkeleton';\nimport PortfolioTabs from './PortfolioTabs';\nimport portfolioEmpty from './images/icon_empty_128.png';\ninterface IPropTypes {\n children?: React.ReactNode;\n}\nconst Portfolio: FC = function ({}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const tab = usePortfolioParams();\n const navigate = useNavigate();\n const { pathname } = useLocation();\n const userAddr = useUserAddr();\n const dappConfig = useBackendChainConfig(chainId);\n const positions = usePositionListByUser(chainId, userAddr, false);\n const orders = useWrappedOrderListByUser(chainId, userAddr, false);\n const ranges = useWrappedRangeListByUser(chainId, userAddr, false);\n const { isMockSkeleton } = useMockDevTool();\n const isFetchedPortfolio = useIsFetchedPortfolioList(chainId, userAddr);\n const walletStatus = useWalletConnectStatus();\n\n usePollingAccountsData(chainId, userAddr);\n useListenGateEvent(chainId, userAddr);\n // const isAccountFetched = useIsFetchedPortfolioFromApi(chainId, userAddr);\n\n const isEmptyAccount = useMemo(() => {\n if (walletStatus === WALLET_CONNECT_STATUS.UN_CONNECT) return true;\n return !positions?.length && !orders?.length && !ranges?.length;\n }, [orders?.length, positions?.length, ranges?.length, walletStatus]);\n\n const isAccountLoading = useMemo(() => {\n if (!userAddr) return false;\n return isMockSkeleton || !isFetchedPortfolio;\n }, [isFetchedPortfolio, isMockSkeleton, userAddr]);\n\n const clickPlaceLimit = useCallback(\n (earn?: boolean, limit?: boolean) => {\n if (chainId && dappConfig) {\n const chainShortName = getChainShortName(chainId);\n if (earn) {\n navigate(`/earn/${chainShortName}/${dappConfig.trade.defaultPairSymbol}`);\n } else {\n navigate(`/trade/${chainShortName}/${dappConfig.trade.defaultPairSymbol}`, { state: { toLimitTab: limit } });\n }\n }\n },\n [chainId, dappConfig, navigate],\n );\n const pageContent = useMemo(() => {\n switch (tab) {\n case PORTFOLIO_TAB_ITEMS.HISTORY:\n return ;\n default:\n return isAccountLoading ? (\n \n ) : (\n <>\n {isEmptyAccount ? (\n \n ) : (\n
\n \n \n \n
\n )}\n \n );\n }\n }, [clickPlaceLimit, isAccountLoading, isEmptyAccount, t, tab]);\n\n useEffect(() => {\n if (dappConfig?.trade?.isDisableLimitOrder && pathname === '/portfolio/order') {\n navigate('/portfolio', { replace: true });\n }\n }, [dappConfig?.trade?.isDisableLimitOrder, navigate, pathname]);\n\n return (\n
\n \n \n
\n \n
{pageContent}
\n \n
\n {/* */}\n
\n );\n};\n\nexport default Portfolio;\n","/**\n * @description Component-HealthCapsule\n */\nimport './index.less';\n\nimport { FC, useMemo } from 'react';\n\nimport { IHealthCapsulePropTypes } from '@/types/health';\n\nconst itemBgMap = {\n low: ['#FF4D5B'],\n mid: ['#FFAA00', '#FFD500'],\n high: ['#A1F200', '#6CD900', '#00BF00'],\n};\nconst HealthCapsule: FC = function ({ level = 'low', className = '' }) {\n const items = useMemo(() => {\n return itemBgMap[level].map((itemColor) => {\n return
;\n });\n }, [level]);\n return
{items}
;\n};\n\nexport default HealthCapsule;\n","import './index.less';\n\nimport { Switch as AntDSwitch, SwitchProps } from 'antd';\nimport classNames from 'classnames';\n\nexport default function Input(props: SwitchProps): JSX.Element {\n return ;\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconCloseLinear = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 16,\n viewBox: \"0 0 17 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.37201 2.46967C3.66491 2.17678 4.13978 2.17678 4.43267 2.46967L8.90234 6.93934L13.372 2.46967C13.6649 2.17678 14.1398 2.17678 14.4327 2.46967C14.7256 2.76256 14.7256 3.23744 14.4327 3.53033L9.963 8L14.4327 12.4697C14.7256 12.7626 14.7256 13.2374 14.4327 13.5303C14.1398 13.8232 13.6649 13.8232 13.372 13.5303L8.90234 9.06066L4.43267 13.5303C4.13978 13.8232 3.66491 13.8232 3.37201 13.5303C3.07912 13.2374 3.07912 12.7626 3.37201 12.4697L7.84168 8L3.37201 3.53033C3.07912 3.23744 3.07912 2.76256 3.37201 2.46967Z\",\n fill: \"#94B8BF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconCloseLinear);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_close_linear.71cffcef48bf199311e2ba8a0f4cfb15.svg\";","import {\n CheckCircleFilled,\n CloseCircleFilled,\n CloseOutlined,\n ExclamationCircleFilled,\n InfoCircleFilled,\n} from '@ant-design/icons';\nimport { message } from 'antd';\nimport { MessageType } from 'antd/es/message/interface';\nimport { IconType } from 'antd/es/notification/interface';\nimport { ArgsProps } from 'antd/lib/message';\nimport {} from 'antd/lib/notification';\nimport classNames from 'classnames';\nimport React, { useCallback, useEffect, useMemo } from 'react';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { useEtherscanLink } from '@/hooks/web3/useChain';\n\nconst typeToIcon = {\n success: CheckCircleFilled,\n info: InfoCircleFilled,\n error: CloseCircleFilled,\n warning: ExclamationCircleFilled,\n};\n\ninterface IMessage extends ArgsProps {\n type?: IconType;\n tx?: string; // window.open(txHash)\n}\n\nexport const useMessage = (): {\n open: (args: IMessage) => void;\n success: (args: IMessage) => void;\n info: (args: IMessage) => void;\n warning: (args: IMessage) => void;\n error: (args: IMessage) => void;\n} => {\n const { deviceType } = useMediaQueryDevice();\n useEffect(() => {\n message.config({\n top: 76,\n duration: 5,\n });\n }, []);\n const getEtherscanLink = useEtherscanLink();\n /**\n * message wrapper, add tx open func\n * @param args message args\n */\n const openMessage = useCallback(\n (args: IMessage): void => {\n let iconNode: React.ReactNode = null;\n if (args.type) {\n const prefix = 'ant-message-notice';\n iconNode = React.createElement(typeToIcon[args.type] || null, {\n className: `${prefix}-icon ${prefix}-icon-${args.type}`,\n });\n }\n // eslint-disable-next-line prefer-const\n let hide: MessageType;\n const content = (\n {\n if (args.tx) {\n window.open(getEtherscanLink(args.tx, 'transaction'));\n }\n }}>\n
{args.content}
\n {\n hide();\n e.stopPropagation();\n }}>\n \n
\n \n );\n hide = message[args.type || 'info'](\n {\n content: content,\n // description: args.description,\n icon: iconNode,\n duration: args.type === 'error' ? 30 : args.type === 'info' ? 5 : 5,\n className: classNames('syn-message', deviceType),\n onClick: () => {\n if (args.tx) {\n window.open(getEtherscanLink(args.tx, 'transaction'));\n }\n },\n },\n args.duration,\n );\n },\n [deviceType, getEtherscanLink],\n );\n\n /**\n * add click\n */\n const txMessage = useMemo(() => {\n const res = {\n open: openMessage,\n success: openMessage,\n info: openMessage,\n warning: openMessage,\n error: openMessage,\n };\n\n const types: IconType[] = ['success', 'info', 'warning', 'error'];\n types.forEach((type: IconType) => {\n res[type] = (args: IMessage): void =>\n res.open({\n ...args,\n type,\n });\n });\n return res;\n }, [openMessage]);\n\n return txMessage;\n};\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMusicOff = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 16,\n viewBox: \"0 0 17 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_7621_27019)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.751532 1.46296C0.600126 1.30048 0.5177 1.08556 0.521618 0.863506C0.525536 0.641448 0.615492 0.429579 0.772536 0.272536C0.929579 0.115492 1.14145 0.0255359 1.36351 0.0216179C1.58556 0.0177 1.80048 0.100126 1.96296 0.251532L4.95725 3.24353C5.13782 3.02982 5.3801 2.87553 5.65096 2.80125L14.3092 0.400104C14.5148 0.344653 14.7303 0.337116 14.9392 0.378073C15.1481 0.419031 15.3448 0.507391 15.5141 0.636346C15.6835 0.765301 15.821 0.93141 15.916 1.12188C16.0111 1.31235 16.0612 1.52209 16.0624 1.73496V9.94639C16.103 10.5192 15.9674 11.0907 15.6738 11.5843C15.3803 12.0778 14.9428 12.4698 14.4201 12.7075L16.2487 14.5384C16.3329 14.6169 16.4004 14.7115 16.4473 14.8166C16.4941 14.9218 16.5193 15.0353 16.5214 15.1504C16.5234 15.2655 16.5022 15.3798 16.4591 15.4865C16.416 15.5932 16.3518 15.6902 16.2704 15.7716C16.189 15.853 16.0921 15.9171 15.9854 15.9602C15.8786 16.0034 15.7643 16.0245 15.6492 16.0225C15.5341 16.0205 15.4206 15.9953 15.3155 15.9484C15.2103 15.9016 15.1157 15.834 15.0372 15.7498L0.751532 1.46296ZM10.691 8.97953C10.995 8.30891 11.5497 7.78413 12.2362 7.51772C12.9226 7.2513 13.6861 7.26447 14.363 7.55439V4.74639L8.19268 6.4801L10.691 8.97953ZM4.62582 10.3544V7.13496L6.32525 8.83439V12.743C6.36872 13.3552 6.21088 13.9649 5.87575 14.4792C5.54062 14.9934 5.04659 15.3841 4.4689 15.5915C3.89122 15.799 3.26155 15.812 2.67582 15.6284C2.09009 15.4449 1.5804 15.0749 1.2244 14.5749C0.868397 14.0749 0.685598 13.4722 0.703847 12.8587C0.722095 12.2451 0.940392 11.6544 1.32548 11.1764C1.71057 10.6984 2.24135 10.3594 2.83695 10.211C3.43256 10.0626 4.06149 10.1129 4.62582 10.3544Z\",\n fill: \"#94B8BF\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_7621_27019\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\",\n transform: \"translate(0.5)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMusicOff);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_music_off.d49f2cb0d9f678f2be6d80a2ad04568d.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMusicOn = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 16,\n viewBox: \"0 0 17 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_7621_27018)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M15.107 0.263143C14.8966 0.222185 14.6796 0.230005 14.4727 0.286001H14.4659L5.74246 2.70772C5.44677 2.78813 5.18556 2.96318 4.99877 3.2061C4.81199 3.44902 4.70992 3.74643 4.70817 4.05286V10.3317C4.14871 10.0916 3.52674 10.0382 2.93454 10.1795C2.34235 10.3208 1.81149 10.6493 1.42074 11.1162C1.02999 11.583 0.800162 12.1635 0.76537 12.7713C0.730578 13.3791 0.89267 13.982 1.2276 14.4904C1.56252 14.9988 2.05243 15.3857 2.62463 15.5937C3.19684 15.8016 3.82084 15.8196 4.40405 15.6448C4.98726 15.4701 5.49859 15.112 5.86219 14.6237C6.22578 14.1354 6.42226 13.5428 6.42246 12.934V6.94429L14.5253 4.69286V7.50886C13.9688 7.27027 13.3505 7.2164 12.7612 7.35513C12.1718 7.49387 11.6425 7.81791 11.2508 8.27968C10.8592 8.74145 10.626 9.31661 10.5853 9.92071C10.5447 10.5248 10.6988 11.126 11.0251 11.6361C11.3514 12.1461 11.8326 12.5381 12.398 12.7545C12.9635 12.9709 13.5835 13.0003 14.1669 12.8384C14.7503 12.6765 15.2664 12.3318 15.6395 11.8549C16.0125 11.378 16.2229 10.7941 16.2396 10.1889V1.60257C16.2315 1.28391 16.115 0.97753 15.9093 0.734014C15.7036 0.490498 15.4199 0.324402 15.107 0.263143Z\",\n fill: \"#00BFBF\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_7621_27018\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\",\n transform: \"translate(0.5)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMusicOn);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_music_on.99c24c71d7534ee2d32e95be3cfd52f6.svg\";","/**\n * @description Component-OdysseyButton\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { FC } from 'react';\n\nimport { Button } from '@/components/Button';\nimport { IButtonProps } from '@/types/button';\n\nconst OdysseyButton: FC = function (props) {\n return \n \n\n \n
\n

event listener

\n
\n

blockNumber: {JSON.stringify(blockNumberInfo)}

\n
\n

marketListChanged time: {JSON.stringify(marketListChanged)}

\n

marketFeaturePairsUpdated time: {JSON.stringify(marketFeaturePairsChanged)}

\n

vaultChanged time: {JSON.stringify(vaultListChanged)}

\n

pairChanged time: {JSON.stringify(pairChanged)}

\n

eventChanged:

\n {eventChanged && }\n
\n
\n \n \n );\n};\n\nexport default SocketCard;\n","// import ThemeSwitch from '@/components/Theme/ThemeSwitch';\nimport './index.less';\n\nimport { SearchOutlined } from '@ant-design/icons';\nimport { Divider, Space } from 'antd';\nimport classNames from 'classnames';\nimport { useState } from 'react';\nimport { toast } from 'react-toastify';\n\nimport { Button, ButtonGroupSelector, SwitchBtn } from '@/components/Button';\nimport Card from '@/components/Card';\nimport { CardModalWrapper, CardWrapper } from '@/components/CardWrapper';\nimport HealthCapsule from '@/components/HealthCapsule';\nimport Input, { Search } from '@/components/Input';\nimport Loading from '@/components/Loading';\nimport BigLoading from '@/components/Loading/BigLoading';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\n// import { MiniDescriptions } from '@/components/Descriptions';\nimport Slider from '@/components/Slider';\nimport Switch from '@/components/Switch';\nimport { useMessage } from '@/hooks/useMessage';\n// import CardWrapper from '@/components/CardWrapper';\nimport { mockNotiDontClose } from '@/constants/mock';\nimport SentryService from '@/entities/SentryService';\nimport { useTxNotification } from '@/hooks/useTxNotification';\nimport SpinWheel from '@/pages/Odyssey/components/SpinWheel';\nimport SocketCard from './socket';\nexport default function ThemePage(): JSX.Element {\n const { deviceType } = useMediaQueryDevice();\n const txNotification = useTxNotification();\n const txMessage = useMessage();\n const [showSubCard, setShowSubCard] = useState(false);\n const [cardModalVisible, setCardModalVisible] = useState(false);\n\n return (\n
\n {/* */}\n {\n try {\n throw new Error('This is your first error!');\n } catch (error) {\n SentryService.captureException(error, { name: 'ThemePage:test' });\n }\n }}>\n Break the world\n \n ;\n \n \n \n \n \n \n \n setCardModalVisible(false)}\n cardProps={{\n showSubCard: showSubCard,\n subCardTitle: 'subCardTitle',\n subCardSlot:
subCardSlot
,\n mode: 'modal',\n tabList: [\n {\n tab: 'tab 1',\n disabled: false,\n key: '0',\n },\n {\n tab: 'tab 2',\n disabled: false,\n key: '1',\n },\n ],\n onFallbackClick: (fallback) => {\n console.log(fallback);\n setShowSubCard(fallback);\n },\n footer:
footer
,\n }}>\n

children

\n

children

\n

children

\n

children

\n

children

\n

children

\n

children

\n

children

\n

children

\n

children

\n

children

\n

children

\n

children

\n

children

\n

children

\n

children

\n

children

\n \n \n subCardSlot
}\n mode=\"modal\"\n onFallbackClick={(fallback) => {\n console.log(fallback);\n setShowSubCard(fallback);\n }}\n footer={
footer
}>\n children\n \n \n

subCardSlot

\n

subCardSlot

\n

subCardSlot

\n

subCardSlot

\n

subCardSlot

\n

subCardSlot

\n

subCardSlot

\n

subCardSlot

\n \n }\n tabList={[\n {\n tab: 'tab 1',\n disabled: false,\n key: '0',\n },\n {\n tab: 'tab 2',\n disabled: false,\n key: '1',\n },\n ]}\n onFallbackClick={(fallback) => {\n console.log(fallback);\n setShowSubCard(fallback);\n }}\n footer={
footer
}>\n children\n \n \n \n console.log({ values, group })}\n />\n \n \n \n
\n

Solid

\n \n
\n \n Type\n \n \n \n \n \n {/* */}\n \n
\n
\n \n Color\n \n \n {/* */}\n {/* */}\n \n
\n
\n \n Disabled\n \n \n \n {/* */}\n \n
\n
\n \n Loading\n \n \n \n {/* */}\n \n
\n
\n
\n\n \n
\n

Ghost

\n \n
\n \n Color\n \n \n \n {/* */}\n \n
\n
\n \n Shape\n \n \n
\n
\n \n Disabled\n \n \n \n {/* */}\n \n
\n
\n \n Loading\n \n \n \n {/* */}\n \n
\n
\n
\n
\n \n {\n console.log('switch');\n }}>\n All\n \n \n \n
\n

Size

\n \n
\n \n \n \n \n \n
\n
\n
\n
\n

Type

\n \n
\n \n \n \n \n \n
\n
\n
\n
\n

Search

\n \n
\n \n \n \n
\n
\n
\n
\n \n
\n

Solid

\n \n
\n \n \n \n
\n
\n
\n
\n \n \n {\n const id = toast.loading('Please wait...', { autoClose: false });\n //do something else\n setTimeout(() => {\n toast.update(id, {\n render: 'All is good',\n type: 'success',\n isLoading: false,\n autoClose: mockNotiDontClose ? false : 5000,\n closeButton: true,\n closeOnClick: true,\n onClick: () => {\n alert('1');\n },\n });\n }, 3000);\n toast.info(\n
\n
Trade tx sent, waiting for confirmation...
\n {/*
Trade Warning: 1.2345 ETH @ 1.2345
*/}\n
,\n {\n onClick: () => {\n alert('1');\n },\n },\n );\n // txNotification.open({\n // type: 'success',\n // tx: 'open!!!',\n // message: 'open!!!',\n // });\n }}>\n open\n \n {\n toast.success(\n
\n
title
\n
Trade 1.2345 ETH @ 1.2345
\n
,\n {\n onClick: () => {\n alert('1');\n },\n },\n );\n txNotification.success({\n type: 'success',\n tx: 'open!!!open!!!open!!!open!!!open!!!',\n message: 'open!!!open!!!open!!!open!!!open!!!',\n description: 'Trade 1.2345 ETH @ 1.2345',\n duration: 20,\n });\n }}>\n success\n \n {\n toast.error(\n
\n {/*
title
*/}\n
Trade Error: 1.2345 ETH @ 1.2345
\n
,\n {\n onClick: () => {\n alert('1');\n },\n },\n );\n txNotification.error({\n message: 'open!!!',\n duration: 20,\n });\n }}>\n error\n \n {\n toast.warning(\n
\n
Trade Warning: 1.2345 ETH @ 1.2345
\n {/*
Trade Warning: 1.2345 ETH @ 1.2345
*/}\n
,\n {\n onClick: () => {\n alert('1');\n },\n },\n );\n txNotification.info({\n message: 'open!!!',\n duration: 20,\n });\n }}>\n info\n \n
\n \n {\n txMessage.open({\n type: 'success',\n tx: 'open!!!',\n content: 'open!!!',\n duration: 20,\n });\n }}>\n open\n \n {\n txMessage.success({\n type: 'success',\n tx: 'open!!!',\n content:
Success Prompt. lorem ipsum text lorem ipsum text
,\n duration: 20,\n });\n }}>\n success\n \n {\n txMessage.error({\n content: (\n
\n
Success Prompt. lorem ipsum text lorem ipsum text
\n
Success Prompt.
\n
\n ),\n duration: 20,\n });\n }}>\n error\n \n {\n txMessage.info({\n content: 'open!!!',\n duration: 200,\n });\n }}>\n info\n \n
\n \n
\n \n
\n
\n \n
\n
\n \n \n \n \n );\n}\n","import './index.less';\n\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { ReactComponent as IconWarningYellow } from '@/assets/svg/icon_warning_yellow.svg';\nimport SynLink from '@/components/Link';\nimport { FAQ_LINKS } from '@/constants/links';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { CHAIN_ID } from '@derivation-tech/context';\nexport type ITradeYourOwnRiskAlertProps = ComponentProps<'div'> & {\n i18nId: string;\n hrefInfo?: { href: string; label: string };\n};\n\nexport default function TradeYourOwnRiskAlert({\n i18nId,\n className,\n hrefInfo,\n ...others\n}: ITradeYourOwnRiskAlertProps): JSX.Element {\n const chainId = useChainId();\n const { i18n } = useTranslation();\n if (!i18n.exists(i18nId)) {\n return <>;\n }\n return (\n
\n \n \n ),\n }}\n />\n {hrefInfo && (\n \n {hrefInfo.label}\n \n )}\n
\n );\n}\n","import { useDebounceEffect } from 'ahooks';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { useEffect, useMemo, useState } from 'react';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { TWITTER_SHARE_LINK } from '@/constants/odyssey';\nimport { TGP_POLLING_INTERVAL, TGP_POLLING_INTERVAL_LONG, TGP_SEASON, TGP_TYPE } from '@/constants/tgp';\nimport { useAppDispatch, useAppSelector } from '@/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { ODYSSEY_STEP } from '@/types/odyssey';\nimport {\n ITGPDappConfig,\n ITGPDashboardBase,\n ITGPMaster,\n ITGPMasterLeaderBoard,\n ITGPOpenLeaderBoard,\n ITGPStat,\n ITGPTrader,\n ITGPUser,\n ITradingWeek,\n WeekWithLuckyDrawState,\n} from '@/types/tgp';\nimport { pollingFunc } from '@/utils';\nimport { getTGPJWTToken } from '@/utils/storage';\n\nimport { getTGPMasters, getTGPUser, getTGPUserPreCheck, setTGPJWTToken } from './actions';\nimport {\n selectCurrentLuckyWeekWinners,\n selectCurrentSeason,\n selectSelectedLuckyWeek,\n selectSelectedSeason,\n selectTGPConfig,\n selectTGPMasterLeaderBoard,\n selectTGPMasterLeaderBoardStatus,\n selectTGPMasters,\n selectTGPOpenLeaderBoard,\n selectTGPOpenLeaderBoardStatus,\n selectTGPStats,\n selectTGPType,\n selectTGPUserCheckStatus,\n selectTGPUserCurrentStep,\n selectTGPUserIsRegistered,\n selectTGPUserProfile,\n selectTGPUserProfileStatus,\n selectUserJWTToken,\n selectUserJWTTokenStatus,\n selectUserSharedTicket,\n} from './slice';\n\nexport function useTGPMasterLeaderBoard(): ITGPMasterLeaderBoard | undefined {\n const masters = useTGPMasters();\n const leaderboard = useAppSelector(selectTGPMasterLeaderBoard);\n return useMemo(\n () =>\n leaderboard\n ? {\n ...leaderboard,\n list: leaderboard?.list?.map((l) => {\n const master = masters?.find((m) => l.userId === m.userId);\n return { ...l, ...master };\n }),\n }\n : leaderboard,\n [leaderboard, masters],\n );\n}\nexport function useTGPStats(): ITGPStat | undefined {\n return useAppSelector(selectTGPStats);\n}\nexport function useTGPOpenLeaderBoard(): ITGPOpenLeaderBoard | undefined {\n return useAppSelector(selectTGPOpenLeaderBoard);\n}\nexport function useTGPMasterLeaderBoardStatus(): FETCHING_STATUS | undefined {\n return useAppSelector(selectTGPMasterLeaderBoardStatus);\n}\nexport function useTGPOpenLeaderBoardStatus(): FETCHING_STATUS | undefined {\n return useAppSelector(selectTGPOpenLeaderBoardStatus);\n}\nexport function useTGPLeaderBoard(): ITGPMasterLeaderBoard | ITGPOpenLeaderBoard | undefined {\n const type = useTGPType();\n const masterLeaderboard = useTGPMasterLeaderBoard();\n const openLeaderboard = useTGPOpenLeaderBoard();\n return useMemo(\n () => (type === TGP_TYPE.MASTER ? masterLeaderboard : openLeaderboard),\n [masterLeaderboard, openLeaderboard, type],\n );\n}\nexport function useTGPLeaderBoardHeader(): ITGPDashboardBase | undefined {\n const masterLeaderboard = useTGPMasterLeaderBoard();\n const openLeaderboard = useTGPOpenLeaderBoard();\n return useMemo(() => _.merge({}, masterLeaderboard, openLeaderboard), [masterLeaderboard, openLeaderboard]);\n}\nexport function useTGPLeaderBoardStatus(): FETCHING_STATUS | undefined {\n const type = useTGPType();\n const masterLeaderboard = useTGPMasterLeaderBoardStatus();\n const openLeaderboard = useTGPOpenLeaderBoardStatus();\n return useMemo(\n () => (type === TGP_TYPE.MASTER ? masterLeaderboard : openLeaderboard),\n [masterLeaderboard, openLeaderboard, type],\n );\n}\nexport function useTGPType(): TGP_TYPE {\n return useAppSelector(selectTGPType);\n}\nexport function useTGPSeason(): TGP_SEASON {\n return useAppSelector(selectCurrentSeason);\n}\nexport function useTGPSelectedSeason(): TGP_SEASON {\n return useAppSelector(selectSelectedSeason);\n}\nexport function useTGPSeasonWWeeks(season: number): ITradingWeek[] {\n const config = useTGPDappConfig();\n return useMemo(() => config.weeks.slice((season - 1) * 4, season * 4), [config.weeks, season]);\n}\nexport function useUserSharedTicket(userAddr: string | undefined): string | undefined {\n return useAppSelector(selectUserSharedTicket(userAddr));\n}\n\nexport function useCurrentLuckyWeekWinners(week: number): ITGPTrader[] | undefined {\n return useAppSelector(selectCurrentLuckyWeekWinners(week));\n}\nexport function useSelectedLuckyWeek(): number {\n return useAppSelector(selectSelectedLuckyWeek);\n}\n\nexport function useTGPDappConfig(): ITGPDappConfig {\n return useAppSelector(selectTGPConfig);\n}\nexport function useTGPWeeksWithUserState(userAddr: string | undefined): WeekWithLuckyDrawState[] | undefined {\n const config = useTGPDappConfig();\n const user = useTGPUser(userAddr);\n return useMemo(() => {\n if (config && user) {\n const weeksWithState = config.weeks.map((week) => {\n const state = user.luckyDraws.find((w) => w.week === week.week);\n const weekWithState = _.merge({}, week, state);\n return weekWithState;\n });\n return weeksWithState;\n }\n if (config) {\n return config.weeks as WeekWithLuckyDrawState[];\n }\n return undefined;\n }, [config, user]);\n}\n\nexport function useTGPSeasonWeeks(season: number, userAddr: string | undefined): WeekWithLuckyDrawState[] | undefined {\n const weeks = useTGPWeeksWithUserState(userAddr);\n return useMemo(() => weeks?.slice((season - 1) * 4, season * 4), [weeks, season]);\n}\n\nexport function useCurrentTGPWeek(): number {\n const config = useTGPDappConfig();\n const [currentWeek, setCurrentWeek] = useState(config.defaultWeek || 1);\n let polling: NodeJS.Timeout;\n useEffect(() => {\n if (polling) {\n clearInterval(polling);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n polling = pollingFunc(() => {\n const now = moment().utc();\n const week = config.weeks.find(\n (w) => moment.utc(w.startTs).isSameOrBefore(now) && moment.utc(w.endTs).isSameOrAfter(now),\n );\n if (week) {\n setCurrentWeek(week?.week);\n } else {\n const lastEnd = _.last(config.weeks)?.endTs;\n if (lastEnd) {\n if (now.isAfter(lastEnd)) {\n setCurrentWeek(config.weeks.length + 1);\n }\n }\n }\n }, TGP_POLLING_INTERVAL_LONG);\n\n return () => polling && clearInterval(polling);\n }, []);\n return currentWeek;\n}\n\nexport function useTGPWeekState(userAddr: string | undefined, week: number): WeekWithLuckyDrawState | undefined {\n const weeksWithLuckyDrawState = useTGPWeeksWithUserState(userAddr);\n return useMemo(() => weeksWithLuckyDrawState?.find((w) => w.week === week), [week, weeksWithLuckyDrawState]);\n}\n\nexport function useUserJWTToken(userAddr: string | undefined): string | undefined {\n return useAppSelector(selectUserJWTToken(userAddr));\n}\nexport function useTGPMasters(): ITGPMaster[] | undefined {\n return useAppSelector(selectTGPMasters);\n}\nexport function useUserJWTTokenStatus(userAddr: string | undefined): FETCHING_STATUS {\n return useAppSelector(selectUserJWTTokenStatus(userAddr));\n}\n\nexport function useTGPCurrentStep(userAddr: string | undefined): ODYSSEY_STEP {\n return useAppSelector(selectTGPUserCurrentStep(userAddr));\n}\n\nexport function useTGPUser(userAddr: string | undefined): ITGPUser | undefined {\n const profile = useAppSelector(selectTGPUserProfile(userAddr));\n return profile;\n}\nexport function useTGPUserStatus(userAddr: string | undefined): FETCHING_STATUS {\n const profile = useAppSelector(selectTGPUserProfileStatus(userAddr));\n return profile;\n}\n\nexport function useIsMaster(userAddr: string | undefined): boolean {\n const masterInfo = useTGPMasterByAddr(userAddr);\n return !!masterInfo;\n}\nexport function useIsRegistered(userAddr: string | undefined): boolean {\n const isRegistered = useAppSelector(selectTGPUserIsRegistered(userAddr));\n return isRegistered;\n}\n\nexport function useUserCheckStatus(userAddr: string | undefined): FETCHING_STATUS {\n const status = useAppSelector(selectTGPUserCheckStatus(userAddr));\n return status;\n}\nlet userPolling: NodeJS.Timeout;\nexport function useFetchTGPUser(): void {\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n useDebounceEffect(\n () => {\n if (!userAddr) return;\n dispatch(getTGPUserPreCheck({ userAddr }));\n const token = getTGPJWTToken(userAddr);\n dispatch(setTGPJWTToken({ userAddr, jwtToken: token || '' }));\n if (!token) return;\n if (userPolling) {\n clearInterval(userPolling);\n }\n userPolling = pollingFunc(() => {\n userAddr && dispatch(getTGPUser({ userAddr }));\n }, TGP_POLLING_INTERVAL);\n\n // userAddr && dispatch(getUserDashboard({ userAddr }));\n return () => {\n userAddr && dispatch(setTGPJWTToken({ userAddr, jwtToken: '' }));\n userPolling && clearInterval(userPolling);\n };\n },\n [dispatch, userAddr],\n { wait: 100 },\n );\n}\nexport function useFetchTGPMasters(): void {\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n useEffect(() => {\n userAddr && dispatch(getTGPMasters({ userAddr }));\n }, [dispatch, userAddr]);\n}\n\nexport function useTGPTwitterLink(\n week: number | undefined,\n type: 'luckyDraw' | 'rank',\n status: 'claim' | 'shareToGetTicket',\n isMaster: boolean,\n): string | undefined {\n const tgpConfig = useTGPDappConfig();\n return useMemo(() => {\n const href = window.location.href;\n if (week && type && status) {\n const twitterTxt = encodeURIComponent(\n _.replace(\n _.get(\n tgpConfig.twitterShare,\n [\n `week${week}`,\n type,\n status === 'claim' && type === 'rank' ? `${status}${isMaster ? 'Master' : 'Open'}` : status,\n ],\n '',\n ) as string,\n '{{link}}',\n href,\n ),\n );\n\n return `${TWITTER_SHARE_LINK}${twitterTxt}`;\n }\n }, [isMaster, status, tgpConfig.twitterShare, type, week]);\n}\nexport function useIsPairInTGP(symbol: string | undefined): boolean {\n const config = useTGPDappConfig();\n return useMemo(\n () => config.trade.isShowTrade && config.trade.supportPairs.includes(symbol || ''),\n [config.trade.isShowTrade, config.trade.supportPairs, symbol],\n );\n}\nexport function useIsTGPEnded(season: number, userAddr: string | undefined): boolean {\n const [ended, setEnded] = useState(false);\n const currentSeasonWeeks = useTGPSeasonWeeks(season, userAddr);\n let polling: NodeJS.Timeout;\n useEffect(() => {\n if (polling) {\n clearInterval(polling);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n polling = pollingFunc(() => {\n const now = moment().utc();\n const week = _.last(currentSeasonWeeks);\n setEnded(week ? now.isAfter(moment.utc(week?.endTs)) : false);\n }, TGP_POLLING_INTERVAL_LONG);\n\n return () => polling && clearInterval(polling);\n }, []);\n return ended;\n}\n\nexport function useTGPMasterByAddr(userAddr: string | undefined): ITGPMaster | undefined {\n const TGPMasters = useTGPMasters();\n return useMemo(\n () => TGPMasters?.find((m) => userAddr && m.userId.toLowerCase() === userAddr.toLowerCase()),\n [TGPMasters, userAddr],\n );\n}\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconTgpTrophy = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.55728 1.9548H2.21725C1.42451 1.9548 0.666504 2.57419 0.666504 3.64942V4.3483C0.666504 4.91492 0.718611 5.33488 0.950469 5.89036C1.36765 6.88498 2.33654 7.87779 3.85468 7.93104L4.72769 7.45938L3.6007 6.98772C3.3187 6.95036 2.446 6.76028 1.88593 5.795C1.47186 5.08287 1.53462 3.95487 1.53462 3.69549V3.63418C1.53462 3.20356 1.80663 2.87683 2.17989 2.87683H3.55532L4.5563 2.41582L3.55728 1.9548Z\",\n fill: \"#EAA73A\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.55728 1.9548H2.21725C1.42451 1.9548 0.666504 2.57419 0.666504 3.64942V4.3483C0.666504 4.91492 0.718611 5.33488 0.950469 5.89036C1.36765 6.88498 2.33654 7.87779 3.85468 7.93104L4.72769 7.45938L3.6007 6.98772C3.3187 6.95036 2.446 6.76028 1.88593 5.795C1.47186 5.08287 1.53462 3.95487 1.53462 3.69549V3.63418C1.53462 3.20356 1.80663 2.87683 2.17989 2.87683H3.55532L4.5563 2.41582L3.55728 1.9548Z\",\n fill: \"url(#paint0_linear_11655_96250)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.7829 1.95218H12.4483L11.4483 2.41549L12.4483 2.87879H13.8207C14.1942 2.87879 14.4662 3.20487 14.4662 3.63614V3.69761C14.4662 3.95487 14.5283 5.08156 14.1144 5.79499C13.5563 6.75635 12.6903 6.94839 12.4022 6.98706L11.2739 7.45741L12.1456 7.92776C13.6636 7.87435 14.6323 6.88104 15.0497 5.88692C15.2817 5.33357 15.3336 4.91098 15.3336 4.34485V3.64483C15.3336 2.5714 14.5769 1.95218 13.7829 1.95218Z\",\n fill: \"#FFD340\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.7829 1.95218H12.4483L11.4483 2.41549L12.4483 2.87879H13.8207C14.1942 2.87879 14.4662 3.20487 14.4662 3.63614V3.69761C14.4662 3.95487 14.5283 5.08156 14.1144 5.79499C13.5563 6.75635 12.6903 6.94839 12.4022 6.98706L11.2739 7.45741L12.1456 7.92776C13.6636 7.87435 14.6323 6.88104 15.0497 5.88692C15.2817 5.33357 15.3336 4.91098 15.3336 4.34485V3.64483C15.3336 2.5714 14.5769 1.95218 13.7829 1.95218Z\",\n fill: \"url(#paint1_linear_11655_96250)\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.7829 1.95218H12.4483L11.4483 2.41549L12.4483 2.87879H13.8207C14.1942 2.87879 14.4662 3.20487 14.4662 3.63614V3.69761C14.4662 3.95487 14.5283 5.08156 14.1144 5.79499C13.5563 6.75635 12.6903 6.94839 12.4022 6.98706L11.2739 7.45741L12.1456 7.92776C13.6636 7.87435 14.6323 6.88104 15.0497 5.88692C15.2817 5.33357 15.3336 4.91098 15.3336 4.34485V3.64483C15.3336 2.5714 14.5769 1.95218 13.7829 1.95218Z\",\n fill: \"url(#paint2_radial_11655_96250)\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.29215 13.4845V9.2185L8.71821 9.21506V13.4845H10.847C11.2424 13.4845 11.5638 13.8232 11.5638 14.2405V14.244C11.5638 14.6613 11.2424 15 10.847 15H5.16479C4.77006 15 4.44873 14.6613 4.44873 14.244V14.2405C4.44873 13.8232 4.77006 13.4845 5.16479 13.4845H7.29215Z\",\n fill: \"url(#paint3_linear_11655_96250)\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.29215 13.4845V9.2185L8.71821 9.21506V13.4845H10.847C11.2424 13.4845 11.5638 13.8232 11.5638 14.2405V14.244C11.5638 14.6613 11.2424 15 10.847 15H5.16479C4.77006 15 4.44873 14.6613 4.44873 14.244V14.2405C4.44873 13.8232 4.77006 13.4845 5.16479 13.4845H7.29215Z\",\n fill: \"url(#paint4_radial_11655_96250)\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.29215 13.4845V9.2185L8.71821 9.21506V13.4845H10.847C11.2424 13.4845 11.5638 13.8232 11.5638 14.2405V14.244C11.5638 14.6613 11.2424 15 10.847 15H5.16479C4.77006 15 4.44873 14.6613 4.44873 14.244V14.2405C4.44873 13.8232 4.77006 13.4845 5.16479 13.4845H7.29215Z\",\n fill: \"url(#paint5_radial_11655_96250)\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.4485 1.91941V1.95218V2.87879V6.38357C12.4487 6.58562 12.4333 6.78738 12.4024 6.98706L12.1491 7.90843C11.5903 9.26582 10.3077 10.2151 8.81558 10.2151H8.71825L7.2922 10.2185H7.18831C5.6895 10.2185 4.40338 9.26091 3.84807 7.89368L3.60081 6.98771C3.57044 6.78754 3.55527 6.58537 3.55542 6.38291V2.87683L3.55739 1.9548C3.57082 1.05669 4.03143 1 4.50072 1H11.5925C12.1352 1 12.4485 1.29806 12.4485 1.91941Z\",\n fill: \"#EA873A\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.4485 1.91941V1.95218V2.87879V6.38357C12.4487 6.58562 12.4333 6.78738 12.4024 6.98706L12.1491 7.90843C11.5903 9.26582 10.3077 10.2151 8.81558 10.2151H8.71825L7.2922 10.2185H7.18831C5.6895 10.2185 4.40338 9.26091 3.84807 7.89368L3.60081 6.98771C3.57044 6.78754 3.55527 6.58537 3.55542 6.38291V2.87683L3.55739 1.9548C3.57082 1.05669 4.03143 1 4.50072 1H11.5925C12.1352 1 12.4485 1.29806 12.4485 1.91941Z\",\n fill: \"url(#paint6_radial_11655_96250)\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.4485 1.91941V1.95218V2.87879V6.38357C12.4487 6.58562 12.4333 6.78738 12.4024 6.98706L12.1491 7.90843C11.5903 9.26582 10.3077 10.2151 8.81558 10.2151H8.71825L7.2922 10.2185H7.18831C5.6895 10.2185 4.40338 9.26091 3.84807 7.89368L3.60081 6.98771C3.57044 6.78754 3.55527 6.58537 3.55542 6.38291V2.87683L3.55739 1.9548C3.57082 1.05669 4.03143 1 4.50072 1H11.5925C12.1352 1 12.4485 1.29806 12.4485 1.91941Z\",\n fill: \"url(#paint7_radial_11655_96250)\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.4485 1.91941V1.95218V2.87879V6.38357C12.4487 6.58562 12.4333 6.78738 12.4024 6.98706L12.1491 7.90843C11.5903 9.26582 10.3077 10.2151 8.81558 10.2151H8.71825L7.2922 10.2185H7.18831C5.6895 10.2185 4.40338 9.26091 3.84807 7.89368L3.60081 6.98771C3.57044 6.78754 3.55527 6.58537 3.55542 6.38291V2.87683L3.55739 1.9548C3.57082 1.05669 4.03143 1 4.50072 1H11.5925C12.1352 1 12.4485 1.29806 12.4485 1.91941Z\",\n fill: \"url(#paint8_radial_11655_96250)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_11655_96250\",\n x1: 3.49059,\n y1: 4.01211,\n x2: 2.15122,\n y2: 3.73007,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#D27840\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D27840\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_11655_96250\",\n x1: 12.7631,\n y1: 6.81941,\n x2: 15.1368,\n y2: 5.24058,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FEC551\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FEC551\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint2_radial_11655_96250\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(12.7839 4.67719) rotate(-28.1739) scale(2.76987 3.10818)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.727,\n stopColor: \"#FFEC6A\",\n stopOpacity: 0\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFEC6A\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_11655_96250\",\n x1: 9.0323,\n y1: 14.0433,\n x2: 5.02158,\n y2: 14.0433,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FBC33A\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#DB7B3C\"\n })), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint4_radial_11655_96250\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(9.25573 12.1075) rotate(90) scale(1.56209 1.51036)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.193,\n stopColor: \"#FFE469\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFE469\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint5_radial_11655_96250\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(10.9655 14.4853) rotate(150.613) scale(1.77619 2.61978)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFD34D\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFD34D\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint6_radial_11655_96250\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(9.62118 1.71326) rotate(83.6676) scale(7.87726 5.08533)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.121,\n stopColor: \"#FFFA73\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFFA73\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint7_radial_11655_96250\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(9.67282 1) rotate(90) scale(0.446558 5.01805)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFF45B\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFF45B\",\n stopOpacity: 0\n })), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint8_radial_11655_96250\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(10.1395 2.74352) rotate(121.712) scale(8.33781 8.01924)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.787,\n stopColor: \"#C55D73\",\n stopOpacity: 0\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#C55D73\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconTgpTrophy);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_tgp_trophy.be8b670452bf3dfac3efd3df78721ae1.svg\";","import { CHAIN_ID } from './chain';\n\nexport enum TGP_SEASON {\n FIRST = 1,\n SECOND = 2,\n}\nexport enum TGP_TYPE {\n MASTER = 'master',\n OPEN_1 = 's1',\n OPEN_2 = 's2',\n}\nexport const TGP_PAGE_SIZE = 10;\nexport const TGP_MASTER_PAGE_SIZE = 50;\nexport enum TGP_LUCK_STATUS {\n NOT_STARTED = 'not_started',\n ON_GOING = 'on_going',\n ENDED = 'ended',\n}\nexport enum TGP_LUCK_USER_STATUS {\n INIT = 1,\n SHARED = 2,\n CONFIRMED = 3,\n JOINED = 4,\n DISCORD_CONFIRMED = 5,\n}\n\nexport const getTgpApiPrefix = (url: string, chainId?: number): string =>\n `/v3/${CHAIN_ID.BASE === chainId ? 'base/' : ''}odyssey/prod${url}`;\n\nexport const TGP_POLLING_INTERVAL = 1000 * 30;\nexport const TGP_WAIT_TIME = 1000 * 5;\nexport const TGP_POLLING_INTERVAL_LONG = 1000 * 60 * 60 * 20;\n","import { JsonRpcSigner } from '@ethersproject/providers';\nimport { createAction, createAsyncThunk } from '@reduxjs/toolkit';\n\nimport { getOdysseyApiPrefix } from '@/constants/odyssey';\nimport { getTgpApiPrefix, TGP_PAGE_SIZE, TGP_SEASON, TGP_TYPE } from '@/constants/tgp';\nimport { CAMPAIGN_TYPE, ODYSSEY_STEP } from '@/types/odyssey';\nimport {\n ITGPLuckyDrawWinners,\n ITGPMaster,\n ITGPMasterLeaderBoard,\n ITGPOpenLeaderBoard,\n ITGPSignature,\n ITGPStat,\n ITGPUser,\n IUserCheck,\n TGP_USER_STATUS,\n} from '@/types/tgp';\nimport { axiosGet, axiosPost } from '@/utils/axios';\nimport { saveTGPJWTToken } from '@/utils/storage';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { AppState } from '../store';\nexport const setTGPType = createAction('tgp/setTGPType');\nexport const setTGPSeason = createAction('tgp/setTGPSeason');\nexport const setTGPSelectedSeason = createAction('tgp/setTGPSelectedSeason');\nexport const setSelectedLuckyWeek = createAction('tgp/setSelectedLuckyWeek');\nexport const setTGPCurrentStep = createAction<{ userAddr: string; step: ODYSSEY_STEP }>('tgp/setCurrentStep');\nexport const setTGPJWTToken = createAction<{ userAddr: string; jwtToken: string }>('tgp/setTGPJWTToken');\n\nexport const getTGPStats = createAsyncThunk(\n 'tgp/getTGPStat',\n async ({ chainId }: { chainId?: number }): Promise => {\n try {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.TGP,\n url: getTgpApiPrefix('/stats', chainId),\n });\n if (result) {\n return result.data.data;\n }\n } catch (e) {\n return undefined;\n }\n return undefined;\n },\n);\nexport const getTGPMasters = createAsyncThunk(\n 'tgp/getTGPMasters',\n async ({ userAddr }: { userAddr: string }): Promise => {\n try {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.TGP,\n url: getTgpApiPrefix(`/tgp/masters`),\n address: userAddr,\n });\n if (result) {\n return result.data.data;\n }\n } catch (e) {\n return undefined;\n }\n return undefined;\n },\n);\n\nexport const getTGPMasterLeaderBoard = createAsyncThunk(\n 'tgp/getTGPMasterLeaderBoard',\n async ({\n userAddr,\n page = 1,\n pageSize = TGP_PAGE_SIZE,\n }: {\n userAddr: string;\n pageSize?: number;\n page?: number;\n }): Promise => {\n try {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.TGP,\n url: getTgpApiPrefix(`/tgp/leaderboard/master`),\n address: userAddr,\n config: {\n params: { page, pageSize },\n },\n });\n if (result) {\n return result.data.data;\n }\n } catch (e) {\n return undefined;\n }\n return undefined;\n },\n);\nexport const getTGPOpenLeaderBoard = createAsyncThunk(\n 'tgp/getTGPOpenLeaderBoard',\n async ({\n userAddr,\n page = 1,\n pageSize = TGP_PAGE_SIZE,\n tgpType,\n }: {\n userAddr: string;\n pageSize?: number;\n page?: number;\n tgpType: TGP_TYPE;\n }): Promise => {\n try {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.TGP,\n url: getTgpApiPrefix(`/tgp/leaderboard/open/${tgpType}`),\n address: userAddr,\n config: {\n params: { page, pageSize },\n },\n });\n if (result) {\n return result.data.data;\n }\n } catch (e) {\n return undefined;\n }\n return undefined;\n },\n);\nexport const getTGPLuckyDrawWinners = createAsyncThunk(\n 'tgp/getTGPLuckyDrawWinners',\n async ({ userAddr }: { userAddr: string }): Promise => {\n try {\n const result = await axiosGet({\n url: getTgpApiPrefix('/tgp/luckyDrawWinners'),\n address: userAddr,\n type: CAMPAIGN_TYPE.TGP,\n });\n if (result) {\n return result.data.data;\n }\n return undefined;\n } catch (e) {\n return undefined;\n }\n },\n);\nexport const getTGPLuckyDrawTicket = createAsyncThunk(\n 'tgp/getTGPLuckyDrawTicket',\n async (\n { userAddr, chainId }: { userAddr: string; chainId: number | undefined },\n { dispatch },\n ): Promise => {\n try {\n const result = await axiosPost({\n url: getTgpApiPrefix('/tgp/luckyDraw'),\n address: userAddr,\n type: CAMPAIGN_TYPE.TGP,\n chainId,\n });\n if (result) {\n dispatch(getTGPUser({ userAddr }));\n return result.data.ticket;\n }\n return undefined;\n } catch (e) {\n return undefined;\n }\n },\n);\n\nexport const signTGPMsg = createAsyncThunk(\n 'tgp/signTGPMsg',\n async (\n {\n signer,\n userAddr,\n isMaster,\n }: {\n signer: JsonRpcSigner;\n userAddr: string;\n isMaster: boolean;\n },\n { dispatch, getState },\n ): Promise<{ data: ITGPSignature } & { jwtToken?: string }> => {\n const {\n tgp: { tgpDappConfig },\n } = getState() as AppState;\n const nonce = new Date().getTime();\n const signMsg = `Wallet Address:${userAddr}\nNonce:${nonce}\nAgreement:${isMaster ? tgpDappConfig.sign.agreement.master : tgpDappConfig.sign.agreement.open}`;\n const signature = await signer.signMessage(signMsg);\n console.log('🚀 ~ :signTGPMsg', {\n userAddr,\n signature,\n nonce,\n source: isMaster ? 1 : 2,\n signMsg,\n });\n const jwtToken = await dispatch(\n postTGPJWTToken({\n userAddr,\n signature,\n nonce,\n source: isMaster ? 1 : 2,\n }),\n ).unwrap();\n console.log('🚀 ~ jwtToken:', jwtToken);\n if (jwtToken) {\n saveTGPJWTToken(userAddr, jwtToken);\n // dispatch(getUserDashboard({ userAddr }));\n dispatch(getTGPUser({ userAddr }));\n dispatch(setTGPJWTToken({ userAddr, jwtToken }));\n }\n return {\n data: {\n nonce,\n signature,\n address: userAddr,\n },\n jwtToken,\n };\n },\n);\n\nexport const postTGPJWTToken = createAsyncThunk(\n 'tgp/postTGPJWTToken',\n async ({\n // message,\n userAddr,\n signature,\n nonce,\n source,\n }: {\n userAddr: string;\n signature: string;\n nonce: number;\n source: number;\n }): Promise => {\n // only blast has tgp\n const response = await axiosGet({\n url: getOdysseyApiPrefix(CHAIN_ID.BLAST, '/tgp/auth/sign'),\n type: CAMPAIGN_TYPE.TGP,\n address: userAddr,\n config: {\n params: {\n source: source, // 0: odyssey 1: TGP Master 2: TGP Open\n wallet: userAddr,\n signature,\n nonce,\n },\n },\n });\n if (response?.data?.data) {\n return response?.data?.data.accessToken;\n }\n },\n);\n\nexport const getTGPUser = createAsyncThunk(\n 'tgp/getTGPUser',\n async ({ userAddr }: { userAddr: string }): Promise => {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.TGP,\n url: getTgpApiPrefix('/tgp/user'),\n address: userAddr,\n });\n if (result?.data?.data) {\n return {\n ...result.data.data,\n status: TGP_USER_STATUS.DEFAULT,\n };\n }\n },\n);\n\nexport const getTGPUserPreCheck = createAsyncThunk(\n 'tgp/getTGPUserPreCheck',\n async ({ userAddr }: { userAddr: string }): Promise => {\n const result = await axiosGet({\n type: CAMPAIGN_TYPE.TGP,\n url: getTgpApiPrefix('/tgp/user/preCheck'),\n address: userAddr,\n config: {\n params: {\n wallet: userAddr,\n },\n },\n });\n if (result?.data?.data) {\n return result.data.data;\n }\n },\n);\n","import { createSlice } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { getTGPConfig } from '@/configs';\nimport { FETCHING_STATUS } from '@/constants';\nimport { TGP_SEASON, TGP_TYPE } from '@/constants/tgp';\nimport { CAMPAIGN_TYPE, IOdysseySignature, ODYSSEY_STEP } from '@/types/odyssey';\nimport { ItemStatus, getDefaultItemStatus, setFulfilledItemStatus } from '@/types/redux';\nimport {\n ITGPDappConfig,\n ITGPLuckyDrawWinners,\n ITGPMaster,\n ITGPMasterLeaderBoard,\n ITGPOpenLeaderBoard,\n ITGPStat,\n ITGPTrader,\n ITGPUser,\n IUserCheck,\n TGP_USER_STATUS,\n} from '@/types/tgp';\nimport { getStepByTGPUserStatus } from '@/utils/odyssey';\n\nimport { postUpdateProfile } from '../odyssey/actions';\nimport { AppState } from '../store';\nimport {\n getTGPLuckyDrawTicket,\n getTGPLuckyDrawWinners,\n getTGPMasterLeaderBoard,\n getTGPMasters,\n getTGPOpenLeaderBoard,\n getTGPStats,\n getTGPUser,\n getTGPUserPreCheck,\n setSelectedLuckyWeek,\n setTGPCurrentStep,\n setTGPJWTToken,\n setTGPSeason,\n setTGPSelectedSeason,\n setTGPType,\n signTGPMsg,\n} from './actions';\n\nexport interface ITGPState {\n masterLeaderBoard: ItemStatus;\n openLeaderBoard: ItemStatus;\n luckyDrawWinners: ItemStatus;\n currentType: TGP_TYPE;\n currentSeason: TGP_SEASON | undefined;\n selectedSeason: TGP_SEASON | undefined;\n selectedLuckyWeek: number;\n tgpMasters: ItemStatus;\n stats: ItemStatus;\n tgpDappConfig: ITGPDappConfig;\n userJWTToken: {\n [userAddr: string]: ItemStatus;\n };\n currentStep: {\n [userAddr: string]: ODYSSEY_STEP;\n };\n userProfile: { [userAddr: string]: ItemStatus };\n userSignature: {\n [userAddr: string]: IOdysseySignature;\n };\n userCheck: {\n [userAddr: string]: ItemStatus;\n };\n userShareTicket: {\n [userAddr: string]: string;\n };\n}\n\nexport const initialState: ITGPState = {\n masterLeaderBoard: getDefaultItemStatus(),\n openLeaderBoard: getDefaultItemStatus(),\n currentType: TGP_TYPE.MASTER,\n currentSeason: undefined,\n selectedSeason: undefined,\n luckyDrawWinners: getDefaultItemStatus(),\n tgpMasters: getDefaultItemStatus(),\n selectedLuckyWeek: 1,\n tgpDappConfig: getTGPConfig(),\n userJWTToken: {},\n currentStep: {},\n userProfile: {},\n userSignature: {},\n userCheck: {},\n stats: getDefaultItemStatus(),\n userShareTicket: {},\n};\n\nexport const tgpSlice = createSlice({\n name: 'odyssey',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder.addCase(getTGPMasterLeaderBoard.pending, (state, {}) => {\n _.set(state.masterLeaderBoard, ['status'], FETCHING_STATUS.FETCHING);\n });\n builder.addCase(getTGPMasterLeaderBoard.fulfilled, (state, { payload }) => {\n state.masterLeaderBoard = setFulfilledItemStatus(payload);\n });\n builder.addCase(getTGPMasterLeaderBoard.rejected, (state, {}) => {\n _.set(state.masterLeaderBoard, ['status'], FETCHING_STATUS.DONE);\n });\n builder.addCase(getTGPOpenLeaderBoard.pending, (state, {}) => {\n _.set(state.openLeaderBoard, ['status'], FETCHING_STATUS.FETCHING);\n });\n builder.addCase(getTGPOpenLeaderBoard.fulfilled, (state, { payload }) => {\n state.openLeaderBoard = setFulfilledItemStatus(payload);\n });\n builder.addCase(getTGPOpenLeaderBoard.rejected, (state, {}) => {\n _.set(state.openLeaderBoard, ['status'], FETCHING_STATUS.DONE);\n });\n builder.addCase(getTGPLuckyDrawWinners.fulfilled, (state, { payload }) => {\n state.luckyDrawWinners = setFulfilledItemStatus(payload);\n });\n builder.addCase(setTGPType, (state, { payload }) => {\n state.currentType = payload;\n });\n builder.addCase(setTGPSeason, (state, { payload }) => {\n state.currentSeason = payload;\n });\n builder.addCase(setTGPSelectedSeason, (state, { payload }) => {\n state.selectedSeason = payload;\n });\n builder.addCase(setTGPJWTToken, (state, { payload }) => {\n _.set(state.userJWTToken, [payload.userAddr], setFulfilledItemStatus(payload.jwtToken));\n });\n builder.addCase(setSelectedLuckyWeek, (state, { payload }) => {\n state.selectedLuckyWeek = payload;\n });\n builder.addCase(setTGPCurrentStep, (state, { payload }) => {\n _.set(state.currentStep, [payload.userAddr], payload.step);\n });\n builder.addCase(getTGPUser.pending, (state, { meta }) => {\n const { userAddr } = meta.arg;\n const userProfile = _.get(state.userProfile, [userAddr, 'item']);\n if (!userProfile) _.set(state.userProfile, [meta.arg.userAddr], getDefaultItemStatus());\n else {\n _.set(state.userProfile, [meta.arg.userAddr, 'status'], FETCHING_STATUS.FETCHING);\n }\n });\n builder.addCase(getTGPUser.fulfilled, (state, { payload, meta }) => {\n const { userAddr } = meta.arg;\n if (payload) {\n _.set(state.userProfile, [userAddr], setFulfilledItemStatus(payload));\n const stepStatus = getStepByTGPUserStatus(payload.status);\n _.set(state.currentStep, [userAddr], stepStatus);\n }\n });\n builder.addCase(getTGPUser.rejected, (state, { meta }) => {\n _.set(state.userProfile, [meta.arg.userAddr, 'status'], FETCHING_STATUS.DONE);\n });\n builder.addCase(signTGPMsg.fulfilled, (state, { payload, meta }) => {\n const { userAddr } = meta.arg;\n if (payload) {\n _.set(state.userSignature, [userAddr], payload);\n _.set(state.currentStep, [userAddr], ODYSSEY_STEP.CONNECTED_WALLET);\n const userProfile = _.get(state.userProfile, [userAddr, 'item']);\n if (!userProfile) _.set(state.userProfile, [meta.arg.userAddr], getDefaultItemStatus(FETCHING_STATUS.DONE));\n }\n });\n builder.addCase(getTGPUserPreCheck.pending, (state, { meta }) => {\n const { userAddr } = meta.arg;\n const isMasterItem = _.get(state.userCheck, [userAddr, 'item', 'isMaster']);\n if (!isMasterItem) {\n _.set(state.userCheck, [userAddr], getDefaultItemStatus());\n } else {\n _.set(state.userCheck, [userAddr, 'status'], FETCHING_STATUS.FETCHING);\n }\n });\n builder.addCase(getTGPUserPreCheck.fulfilled, (state, { payload, meta }) => {\n const { userAddr } = meta.arg;\n if (payload !== undefined) {\n _.set(state.userCheck, [userAddr], setFulfilledItemStatus(payload));\n }\n });\n builder.addCase(getTGPLuckyDrawTicket.fulfilled, (state, { payload, meta }) => {\n const { userAddr } = meta.arg;\n if (payload) {\n _.set(state.userShareTicket, [userAddr], payload);\n }\n });\n builder.addCase(getTGPStats.fulfilled, (state, { payload }) => {\n state.stats = setFulfilledItemStatus(payload);\n });\n builder.addCase(getTGPMasters.fulfilled, (state, { payload }) => {\n state.tgpMasters = setFulfilledItemStatus(payload);\n });\n builder.addCase(postUpdateProfile.fulfilled, (state, { payload, meta }) => {\n const { userAddr, email, discordId: discord, username, type } = meta.arg;\n if (payload && type === CAMPAIGN_TYPE.TGP) {\n if (discord) {\n _.set(state.currentStep, [userAddr], ODYSSEY_STEP.FOLLOWED_DISCORD);\n _.set(state.userProfile, [userAddr, 'item', 'status'], TGP_USER_STATUS.DISCORD_CONNECTED);\n }\n if (email) {\n _.set(state.currentStep, [userAddr], ODYSSEY_STEP.FILLED_EMAIL);\n _.set(state.userProfile, [userAddr, 'item', 'status'], TGP_USER_STATUS.EMAIL_CONNECTED);\n }\n if (username) {\n _.set(state.userProfile, [userAddr, 'item', 'username'], username);\n }\n }\n });\n },\n});\nexport const selectTGPType = (state: AppState): TGP_TYPE => state.tgp.currentType;\nexport const selectCurrentLuckyWeekWinners =\n (week: number) =>\n (state: AppState): ITGPTrader[] | undefined =>\n _.find(_.get(state.tgp.luckyDrawWinners, ['item']), (winners) => winners.week === week)?.winners;\nexport const selectSelectedLuckyWeek = (state: AppState): number => state.tgp.selectedLuckyWeek;\nexport const selectTGPConfig = (state: AppState): ITGPDappConfig => state.tgp.tgpDappConfig;\nexport const selectTGPMasterLeaderBoard = (state: AppState): ITGPMasterLeaderBoard | undefined =>\n _.get(state.tgp.masterLeaderBoard, ['item']);\nexport const selectTGPOpenLeaderBoard = (state: AppState): ITGPOpenLeaderBoard | undefined =>\n _.get(state.tgp.openLeaderBoard, ['item']);\nexport const selectTGPMasterLeaderBoardStatus = (state: AppState): FETCHING_STATUS | undefined =>\n _.get(state.tgp.masterLeaderBoard, ['status']);\nexport const selectTGPOpenLeaderBoardStatus = (state: AppState): FETCHING_STATUS | undefined =>\n _.get(state.tgp.openLeaderBoard, ['status']);\n\nexport const selectUserJWTToken =\n (userAddr: string | undefined) =>\n (state: AppState): string | undefined =>\n _.get(state.tgp.userJWTToken, [userAddr || '', 'item']);\nexport const selectUserJWTTokenStatus =\n (userAddr: string | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.tgp.userJWTToken, [userAddr || '', 'status'], FETCHING_STATUS.INIT);\n\nexport const selectTGPUserCurrentStep =\n (userAddr: string | undefined) =>\n (state: AppState): ODYSSEY_STEP =>\n _.get(state.tgp.currentStep, [userAddr || ''], ODYSSEY_STEP.INIT);\n\nexport const selectCurrentSeason = (state: AppState): TGP_SEASON =>\n state.tgp.currentSeason || state.tgp.tgpDappConfig.currentSeason;\nexport const selectSelectedSeason = (state: AppState): TGP_SEASON =>\n state.tgp.selectedSeason || state.tgp.tgpDappConfig.currentSeason;\n\nexport const selectTGPUserProfile =\n (userAddr: string | undefined) =>\n (state: AppState): ITGPUser | undefined =>\n _.get(state.tgp.userProfile, [userAddr || '', 'item']);\n\nexport const selectTGPUserProfileStatus =\n (userAddr: string | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.tgp.userProfile, [userAddr || '', 'status'], FETCHING_STATUS.INIT);\n\nexport const selectTGPUserIsMaster =\n (userAddr: string | undefined) =>\n (state: AppState): boolean =>\n _.get(state.tgp.userCheck, [userAddr || '', 'item', 'isMaster'], false);\nexport const selectTGPMasters = (state: AppState): ITGPMaster[] | undefined => state.tgp.tgpMasters.item;\nexport const selectTGPUserIsRegistered =\n (userAddr: string | undefined) =>\n (state: AppState): boolean =>\n _.get(state.tgp.userCheck, [userAddr || '', 'item', 'isRegistered'], false);\n\nexport const selectTGPUserCheckStatus =\n (userAddr: string | undefined) =>\n (state: AppState): FETCHING_STATUS =>\n _.get(state.tgp.userCheck, [userAddr || '', 'status'], FETCHING_STATUS.INIT);\n\nexport const selectUserSharedTicket =\n (userAddr: string | undefined) =>\n (state: AppState): string | undefined =>\n _.get(state.tgp.userShareTicket, [userAddr || '']);\nexport const selectTGPStats = (state: AppState): ITGPStat | undefined => _.get(state.tgp.stats, ['item']);\n\nexport default tgpSlice.reducer;\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDropdown = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 17,\n viewBox: \"0 0 16 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_2606_31270)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.00005 11.7002C7.82985 11.6993 7.66198 11.6606 7.50862 11.5868C7.35526 11.513 7.22024 11.406 7.11338 11.2735L4.30671 7.87353C4.14271 7.66884 4.0395 7.4222 4.00886 7.16171C3.97821 6.90122 4.02136 6.63736 4.13338 6.4002C4.22423 6.19408 4.37249 6.01847 4.56046 5.89434C4.74842 5.77022 4.96814 5.70282 5.19338 5.7002H10.8067C11.0319 5.70282 11.2517 5.77022 11.4396 5.89434C11.6276 6.01847 11.7759 6.19408 11.8667 6.4002C11.9787 6.63736 12.0219 6.90122 11.9912 7.16171C11.9606 7.4222 11.8574 7.66884 11.6934 7.87353L8.88671 11.2735C8.77985 11.406 8.64484 11.513 8.49147 11.5868C8.33811 11.6606 8.17024 11.6993 8.00005 11.7002Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_2606_31270\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\",\n transform: \"translate(0 0.700195)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDropdown);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/dropdown.c07c0c3873fe56d1b0e1b45b84c1c7ec.svg\";","/**\n * @description Component-TGPTag\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { Trans } from 'react-i18next';\n\nimport { Tooltip } from '@/components/ToolTip';\nimport { useIsPairInTGP, useTGPDappConfig } from '@/features/tgp/hooks';\nimport { ReactComponent as TrophyIcon } from '@/pages/TGP/assets/svg/icon_tgp_trophy.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n pairSymbol: string | undefined;\n}\nconst TGPTag: FC = function ({ pairSymbol }) {\n const isSupportedInTGP = useIsPairInTGP(pairSymbol);\n const tgpDappConfig = useTGPDappConfig();\n if (!tgpDappConfig?.trade?.isShowTrade || !isSupportedInTGP) {\n return null;\n }\n\n return (\n }} />}>\n \n \n );\n};\n\nexport default TGPTag;\n","import { PERP } from '@/constants';\n\nimport { showProperDateString } from './timeUtils';\n\nexport function searchPair(\n query: string,\n baseSymbol: string | undefined,\n quoteSymbol: string | undefined,\n expiry: number,\n): boolean {\n const pairString = baseSymbol + '' + quoteSymbol + '' + getDisplayExpiry(expiry);\n return pairString.toLowerCase().includes(query.toLowerCase());\n}\nexport function getDisplayExpiry(expiry: number, format = 'MMDD'): string {\n return expiry === 0 ? PERP : showProperDateString({ expiry, format });\n}\n","import { mockOpenDropdown } from '@/constants/mock';\nimport { Dropdown as AntdDropdown } from 'antd';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport './index.less';\ntype DropdownProps = {\n withPadding?: boolean;\n};\nexport default function Dropdown({\n withPadding = true,\n overlayClassName,\n className,\n ...others\n}: ComponentProps & DropdownProps) {\n return (\n \n );\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconRadioOff = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.7213 8.92579C14.7213 12.6078 11.7367 15.5925 8.05468 15.5925C4.37268 15.5925 1.38802 12.6078 1.38802 8.92579C1.38802 5.24379 4.37268 2.25912 8.05468 2.25912C11.7367 2.25912 14.7213 5.24379 14.7213 8.92579Z\",\n fill: \"#E2E7E9\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconRadioOff);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_radio_off.36a30870f32ee13f894adc4b5633610a.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconRadioOn = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.0547 15.5925C11.7366 15.5925 14.7214 12.6077 14.7214 8.92579C14.7214 5.24389 11.7366 2.25912 8.0547 2.25912C4.3728 2.25912 1.38803 5.24389 1.38803 8.92579C1.38803 12.6077 4.3728 15.5925 8.0547 15.5925Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.9184 6.72879C11.2112 7.02169 11.2112 7.49656 10.9184 7.78945L7.58502 11.1228C7.29213 11.4157 6.81726 11.4157 6.52436 11.1228L5.19103 9.78945C4.89814 9.49656 4.89814 9.02169 5.19103 8.72879C5.48392 8.4359 5.9588 8.4359 6.25169 8.72879L7.05469 9.5318L9.8577 6.72879C10.1506 6.4359 10.6255 6.4359 10.9184 6.72879Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconRadioOn);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_radio_on.82d99385d48d28deefe3471bc8c7d79f.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconSortAscending = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.97144 6.25912C1.97144 5.84491 2.30722 5.50912 2.72144 5.50912H8.72144C9.13565 5.50912 9.47144 5.84491 9.47144 6.25912C9.47144 6.67334 9.13565 7.00912 8.72144 7.00912H2.72144C2.30722 7.00912 1.97144 6.67334 1.97144 6.25912ZM3.30477 9.59246C3.30477 9.17824 3.64056 8.84246 4.05477 8.84246H8.72144C9.13565 8.84246 9.47144 9.17824 9.47144 9.59246C9.47144 10.0067 9.13565 10.3425 8.72144 10.3425H4.05477C3.64056 10.3425 3.30477 10.0067 3.30477 9.59246ZM4.6381 12.9258C4.6381 12.5116 4.97389 12.1758 5.3881 12.1758H8.72144C9.13565 12.1758 9.47144 12.5116 9.47144 12.9258C9.47144 13.34 9.13565 13.6758 8.72144 13.6758H5.3881C4.97389 13.6758 4.6381 13.34 4.6381 12.9258Z\",\n fill: \"#1F292E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.151 2.88094C11.4572 2.77886 11.7944 2.8842 11.9881 3.14246L13.9881 5.80912C14.2367 6.14049 14.1695 6.61059 13.8381 6.85912C13.5068 7.10765 13.0367 7.04049 12.7881 6.70912L12.1381 5.84246V14.2591C12.1381 14.6733 11.8023 15.0091 11.3881 15.0091C10.9739 15.0091 10.6381 14.6733 10.6381 14.2591V3.59246C10.6381 3.26963 10.8447 2.98303 11.151 2.88094Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconSortAscending);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_sort_ascending.4ee09c0d1ddb796c54b3d4250ab10e50.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconArrowLeft = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14 7.99967C14 8.36786 13.7015 8.66634 13.3333 8.66634L4.27614 8.66634L7.13807 11.5283C7.39842 11.7886 7.39842 12.2107 7.13807 12.4711C6.87772 12.7314 6.45561 12.7314 6.19526 12.4711L2.19526 8.47108C1.93491 8.21073 1.93491 7.78862 2.19526 7.52827L6.19526 3.52827C6.45561 3.26792 6.87772 3.26792 7.13807 3.52827C7.39842 3.78862 7.39842 4.21073 7.13807 4.47108L4.27614 7.33301L13.3333 7.33301C13.7015 7.33301 14 7.63148 14 7.99967Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconArrowLeft);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_arrow_left.4153a3e6c7d9481d8fceecd54cc6c422.svg\";","/**\n * @description Component-SearchPairSorter\n */\nimport './index.less';\n\nimport { Radio } from 'antd';\nimport { FC, memo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { PAIR_PAGE_TYPE, SEARCH_PAIR_DIRECTION, SEARCH_PAIR_SORTERS } from '@/constants/global';\n\nimport { SEARCH_PAIR_SORTER, SEARCH_PAIR_SORTER_DIRECTION } from '@/constants/storage';\nimport Dropdown from '../Dropdown';\nimport { ReactComponent as RadioOff } from './assets/icon_radio_off.svg';\nimport { ReactComponent as RadioOn } from './assets/icon_radio_on.svg';\nimport { ReactComponent as SortAscendingLight } from './assets/icon_sort_ascending.svg';\ninterface IPropTypes {\n className?: string;\n value: { sorter: SEARCH_PAIR_SORTERS; direction: SEARCH_PAIR_DIRECTION };\n type: PAIR_PAGE_TYPE;\n onChange: (vale: { sorter: SEARCH_PAIR_SORTERS; direction: SEARCH_PAIR_DIRECTION }) => void;\n}\nconst SearchPairSorter: FC = function ({ onChange, value }) {\n const { t } = useTranslation();\n const { sorter, direction } = value;\n const [showSorter, setShowSorter] = useState(false);\n const dropDownRef = useRef(null);\n const dropdownRenderer = () => (\n
setShowSorter(false)}>\n
\n
{t('common.searchPair.sortBy')}
\n
\n {\n onChange({ sorter: e.target.value, direction });\n localStorage.setItem(SEARCH_PAIR_SORTER, e.target.value);\n dropDownRef.current?.click();\n }}>\n \n {sorter === SEARCH_PAIR_SORTERS.FAVORITE ? : } {t('common.favorite')}\n \n \n {sorter === SEARCH_PAIR_SORTERS.VOLUME_24H ? : } {t('common.24HV')}\n \n \n {sorter === SEARCH_PAIR_SORTERS.CHANGE_24H ? : } {t('common.24HC')}\n \n \n {sorter === SEARCH_PAIR_SORTERS.BOOSTED_LIQUIDITY ? : } {t('common.effectLiq')}\n \n \n {sorter === SEARCH_PAIR_SORTERS.TVL ? : } {t('common.tvl')}\n \n \n {sorter === SEARCH_PAIR_SORTERS.APY ? : } {t('common.table.liqApy')}\n \n \n
\n
\n
\n
{t('common.searchPair.direction')}
\n
\n {\n onChange({ sorter, direction: e.target.value });\n localStorage.setItem(SEARCH_PAIR_SORTER_DIRECTION, e.target.value);\n dropDownRef.current?.click();\n }}>\n \n {' '}\n {direction === SEARCH_PAIR_DIRECTION.ASC ? : } {t('common.searchPair.asc')}\n \n \n {direction === SEARCH_PAIR_DIRECTION.DSC ? : } {t('common.searchPair.desc')}\n \n \n
\n
\n
\n );\n\n return (\n setShowSorter(open)}\n dropdownRender={dropdownRenderer}>\n
\n \n
\n \n );\n};\n\nexport default memo(SearchPairSorter);\n","/**\n * @description Component-SearchPair\n */\nimport './index.less';\n\nimport { default as classNames, default as cls } from 'classnames';\nimport _ from 'lodash';\nimport React, { FC, ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useParams } from 'react-router-dom';\n\nimport { Search } from '@/components/Input';\nimport {\n PAIR_PAGE_TYPE,\n SEARCH_PAIR_DIRECTION,\n SEARCH_PAIR_SORTERS,\n SEARCH_PAIR_SORTERS_TRANSLATION,\n TRADE_LEVERAGE_THRESHOLDS,\n TVL_THRESHHOLD,\n} from '@/constants/global';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { resetLiquidityFormByChainId } from '@/features/earn/action';\nimport { useCombinedPairFromUrl, useDormantPair } from '@/features/pair/hook';\nimport { resetFormByChainId } from '@/features/trade/actions';\nimport { useAppDispatch } from '@/hooks';\nimport { useFavorites } from '@/hooks/useFavorites';\nimport { useSideNavigate } from '@/hooks/useRouterNavigate';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport TGPTag from '@/pages/TGP/components/TGPTag';\nimport { CreativePair, IMarketPair } from '@/types/pair';\nimport { searchPair } from '@/utils/feature';\nimport { savePairChosen } from '@/utils/localstorage';\n\nimport { ReactComponent as DropDownIcon } from '@/assets/svg/dropdown.svg';\nimport { mockOpenDropdown } from '@/constants/mock';\nimport { QUERY_KEYS } from '@/constants/query';\nimport { SEARCH_PAIR_SORTER, SEARCH_PAIR_SORTER_DIRECTION } from '@/constants/storage';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useCreativePairList, useMarketList } from '@/features/market/hooks';\nimport { queryClient } from '@/pages/App';\nimport { usePairCheck } from '@/pages/components/PairInfo/pairCheckHook';\nimport { Button } from '../Button';\nimport Dropdown from '../Dropdown';\nimport Empty from '../Empty';\nimport { EmptyDataWrap } from '../EmptyDataWrap';\nimport TokenPair from '../TokenPair';\nimport SearchPairSorter from './SearchPairSorter';\ninterface IPropTypes {\n type: PAIR_PAGE_TYPE;\n createOnly?: boolean;\n tagExtra?: ReactNode;\n}\nconst SearchPair: FC = function ({ type = PAIR_PAGE_TYPE.TRADE, createOnly, tagExtra }) {\n const [search, setSearch] = useState('');\n const userAddr = useUserAddr();\n const chainId = useChainId();\n const { pairPageNavigate } = useSideNavigate();\n const { t } = useTranslation();\n const { marketPairList } = useMarketList([chainId]);\n const dispatch = useAppDispatch();\n const [sorters, setSorters] = useState({\n sorter: (localStorage.getItem(SEARCH_PAIR_SORTER) as SEARCH_PAIR_SORTERS) || SEARCH_PAIR_SORTERS.VOLUME_24H,\n direction:\n (localStorage.getItem(SEARCH_PAIR_SORTER_DIRECTION) as SEARCH_PAIR_DIRECTION) || SEARCH_PAIR_DIRECTION.DSC,\n });\n const searchRef = useRef(null);\n const pairListRef = useRef(null);\n const popupRef = useRef(null);\n // const wrappedPairs = useDisplayPairList(chainId);\n\n const [showPopup, setShowPopup] = useState(mockOpenDropdown);\n\n // const theme = useTheme();\n const dropDownRef = useRef(null);\n const { pairSymbol } = useParams();\n const favorites = useFavorites(chainId);\n const unInitiatedPair = useDormantPair(chainId);\n const dappConfig = useBackendChainConfig(chainId);\n const creativePairs = useCreativePairList(chainId);\n const currentPairBaseInfo = useCombinedPairFromUrl(chainId);\n\n const sortersMap = useMemo(\n () => ({\n [SEARCH_PAIR_SORTERS.FAVORITE]: (pair: IMarketPair) => {\n const isInFavorite = _.get(favorites, [`${pair?.id}-${chainId}`]);\n return isInFavorite ? 1 : -1;\n },\n [SEARCH_PAIR_SORTERS.EARN_FAVORITE]: (pair: IMarketPair) => {\n const isInFavorite = _.get(favorites, [`${pair?.id}-${chainId}`]);\n return isInFavorite ? 1 : -1;\n },\n [SEARCH_PAIR_SORTERS.VOLUME_24H]: (pair: IMarketPair) => {\n return pair?.volume24hUsd?.toNumber?.();\n },\n [SEARCH_PAIR_SORTERS.OI]: (pair: IMarketPair) => {\n return pair?.openInterestsUsd?.toNumber?.();\n },\n [SEARCH_PAIR_SORTERS.TVL]: (pair: IMarketPair) => {\n return pair?.tvlUsd?.toNumber?.();\n },\n [SEARCH_PAIR_SORTERS.CHANGE_24H]: (pair: IMarketPair) => {\n return pair?.fairPriceChange24h?.toNumber?.();\n },\n [SEARCH_PAIR_SORTERS.APY]: (pair: IMarketPair) => {\n return pair?.liquidityApy?.toNumber?.();\n },\n [SEARCH_PAIR_SORTERS.BOOSTED_LIQUIDITY]: (pair: IMarketPair) => {\n return pair?.effectLiqTvl?.toNumber?.();\n },\n }),\n [favorites, chainId],\n );\n const filteredCreativePairs = useMemo(() => {\n const searchStr = search;\n const pairs = creativePairs?.filter((pair) => {\n if (searchStr.length > 0)\n return searchPair(\n searchStr,\n pair?.rootInstrument.baseToken.symbol,\n pair?.rootInstrument.quoteToken.symbol,\n pair.expiry,\n );\n return true;\n });\n\n return pairs;\n }, [creativePairs, search]);\n const unInitiatedPairTransformed = useMemo(\n () =>\n unInitiatedPair.map((p) => ({\n id: p.id,\n pairSymbol: p.symbol,\n instrumentSymbol: p.rootInstrument.symbol,\n instrumentAddr: p.instrumentAddr,\n baseToken: p.rootInstrument.baseToken,\n quoteToken: p.rootInstrument.quoteToken,\n expiry: p.expiry,\n chainId: p.chainId,\n inInverse: p.isInverse,\n liquidityApy: p.stats?.liquidityApy,\n tvlUsd: p.tvlUSD,\n effectLiqTvl: p.effectLiqTvl,\n openInterestsUsd: p.openInterestsUSD,\n openInterests: p.wrapAttribute('openInterests'),\n volume24hUSD: p.volume24hUSD,\n fairPrice: p.wrapAttribute('fairPrice'),\n markPrice: p.wrapAttribute('markPrice'),\n fairPriceChange24h: p.stats?.fairPriceChange24h,\n marketPriceChange24h: p.stats?.markPriceChange24h,\n tvl: p.wrapAttribute('tvl'),\n })),\n [unInitiatedPair],\n );\n const filteredSearchPair = useMemo(() => {\n const searchStr = search;\n const pairs = [...(createOnly ? [] : marketPairList || []), ...unInitiatedPairTransformed]\n .filter((p) => !dappConfig?.pairsToBeFilteredInMarketAndEarn?.includes(p.pairSymbol))\n .filter((pair) => {\n if (searchStr.length > 0)\n return searchPair(searchStr, pair?.baseToken.symbol, pair?.quoteToken.symbol, pair.expiry);\n return true;\n })\n .map((p) => {\n // const wrappedPair = wrappedPairs.find((wp) => wp.id === p.id);\n // if (wrappedPair) {\n // return {\n // ...p,\n // fairPrice: wrappedPair.wrapAttribute('fairPrice'),\n // markPrice: wrappedPair.wrapAttribute('markPrice'),\n // fairPriceChange24h: wrappedPair.stats?.wrapAttribute('priceChange24h'),\n // tvl: wrappedPair.wrapAttribute('tvl'),\n // openInterests: wrappedPair.wrapAttribute('openInterests'),\n // tvlUsd: wrappedPair.tvlUSD,\n // openInterestsUsd: wrappedPair.openInterestsUSD,\n // liquidityApy: wrappedPair.stats?.wrapAttribute('APY24h'),\n // effectLiqTvl: wrappedPair.effectLiqTvl,\n // };\n // }\n return p;\n });\n\n return _.orderBy(pairs, [sortersMap[sorters.sorter]], [sorters.direction]) as IMarketPair[];\n }, [\n search,\n createOnly,\n marketPairList,\n unInitiatedPairTransformed,\n sortersMap,\n sorters.sorter,\n sorters.direction,\n dappConfig?.pairsToBeFilteredInMarketAndEarn,\n ]);\n\n const noRecord = useMemo(() => {\n if (type === PAIR_PAGE_TYPE.EARN) {\n return !filteredSearchPair?.length && !filteredCreativePairs?.length;\n }\n return !filteredSearchPair.length;\n }, [filteredCreativePairs?.length, filteredSearchPair.length, type]);\n usePairCheck(\n chainId,\n currentPairBaseInfo?.symbol,\n [\n ...filteredSearchPair.map((p) => p.pairSymbol),\n ...(type === PAIR_PAGE_TYPE.EARN && filteredSearchPair?.length ? creativePairs.map((p) => p.symbol) : []),\n ],\n type,\n createOnly || type === PAIR_PAGE_TYPE.EARN,\n );\n const selectPair = useCallback(\n (symbol: string, chainId: number, isCreative?: boolean, instrumentAddr?: string, expiry?: number) => {\n if (symbol !== pairSymbol) {\n if (createOnly) {\n pairPageNavigate(symbol || '', PAIR_PAGE_TYPE.EARN, chainId);\n } else {\n pairPageNavigate(symbol || '', type, chainId);\n }\n if (type === PAIR_PAGE_TYPE.TRADE) {\n if (!isCreative && instrumentAddr) {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.FUTURES.INSTRUMENT(chainId, instrumentAddr) });\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.FUTURES.PAIR_INFO(chainId, instrumentAddr, expiry),\n });\n }\n chainId && dispatch(resetFormByChainId({ chainId }));\n } else {\n chainId && dispatch(resetLiquidityFormByChainId({ chainId }));\n }\n\n chainId && userAddr && savePairChosen(userAddr, chainId, symbol, type as PAIR_PAGE_TYPE);\n }\n dropDownRef.current?.click();\n },\n [pairSymbol, createOnly, type, userAddr, pairPageNavigate, dispatch],\n );\n const dropdownRenderer = useCallback(\n () =>\n showPopup ? (\n
\n
\n {\n const value = e.target.value.trim().replace(/[^\\w]/g, '');\n setSearch(value);\n }}\n />\n {!createOnly && }\n
\n
\n
\n
\n
\n {t(`common.${type === PAIR_PAGE_TYPE.EARN ? 'pair' : 'pair'}`)}\n
\n
{t(`common.table.fairMarkP`)}
\n
\n {t(`common.${SEARCH_PAIR_SORTERS_TRANSLATION[sorters.sorter]}`)}\n
\n
\n {filteredSearchPair.map((v) => (\n {\n selectPair(v.pairSymbol, v.chainId, false, v.instrumentAddress, v.expiry);\n }}\n className={classNames('syn-search_pair-list-item', {\n hide: type === PAIR_PAGE_TYPE.TRADE && v.tvlUsd?.lt?.(TVL_THRESHHOLD),\n })}\n key={v.instrumentSymbol + v.expiry}>\n
\n }\n isShowExpiryTag\n leverage={v.maxLeverage}\n showShortPerp={true}\n instrumentAddr={v.instrumentAddress}\n marketType={v.marketType}\n />\n
\n
\n
\n {v.fairPrice.formatPriceNumberWithTooltip?.()}\n
\n {v.markPrice.formatPriceNumberWithTooltip?.()}\n
\n
\n {/*
{v.wrapAttribute('fairPriceWad').formatDisplayNumber()}
*/}\n {sorters.sorter === SEARCH_PAIR_SORTERS.CHANGE_24H && (\n <>\n {v?.fairPriceChange24h?.formatPercentage?.()}\n
\n {v?.markPriceChange24h?.formatNumberWithTooltip?.()}\n
\n \n )}\n {sorters.sorter === SEARCH_PAIR_SORTERS.OI && (\n \n
\n {v.openInterestsUsd.formatNumberWithTooltip?.({ prefix: '$', isShowTBMK: true })}\n
\n
\n {v.openInterests.formatNumberWithTooltip?.({\n suffix: v.baseToken.symbol,\n isShowTBMK: true,\n })}\n
\n
\n )}\n {(sorters.sorter === SEARCH_PAIR_SORTERS.VOLUME_24H ||\n sorters.sorter === SEARCH_PAIR_SORTERS.FAVORITE) && (\n \n
\n {v.volume24hUsd.formatNumberWithTooltip?.({ prefix: '$', isShowTBMK: true })}\n
\n
\n {v.volume24h.formatNumberWithTooltip?.({\n suffix: v.marginToken.symbol,\n isShowTBMK: true,\n })}\n
\n
\n )}\n {sorters.sorter === SEARCH_PAIR_SORTERS.TVL && (\n \n
\n {v.tvlUsd.formatNumberWithTooltip?.({ prefix: '$', isShowTBMK: true })}\n
\n
\n {v.tvl.formatNumberWithTooltip?.({\n suffix: v.marginToken.symbol,\n isShowTBMK: true,\n })}\n
\n
\n )}\n {sorters.sorter === SEARCH_PAIR_SORTERS.BOOSTED_LIQUIDITY && (\n \n
\n {v.effectLiqTvl?.formatNumberWithTooltip?.({ prefix: '$', isShowTBMK: true })}\n
\n
\n )}\n {sorters.sorter === SEARCH_PAIR_SORTERS.APY && (\n \n
{v.liquidityApy?.formatPercentage()}
\n
\n )}\n
\n
\n ))}\n {type === PAIR_PAGE_TYPE.EARN && (\n <>\n
\n {filteredCreativePairs?.map((v: CreativePair) => (\n {\n selectPair(v.symbol, v.chainId);\n }}\n className={classNames('syn-search_pair-list-item')}\n key={v.id}>\n
\n }\n marketType={v.rootInstrument.marketType}\n />\n
\n
-
\n
-
\n
\n ))}\n \n )}\n
\n {noRecord && }\n \n \n ) : (\n <>\n ),\n [createOnly, filteredCreativePairs, filteredSearchPair, noRecord, search, selectPair, showPopup, sorters, t, type],\n );\n useEffect(() => {\n if (showPopup) {\n setTimeout(() => {\n searchRef.current?.querySelector('input')?.focus();\n pairListRef.current?.scrollTo({ top: 0 });\n });\n } else {\n }\n }, [showPopup]);\n\n return (\n
\n {\n if (open) {\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.MARKET.PAIR_LIST() });\n setSearch('');\n setSorters({\n sorter:\n (localStorage.getItem(SEARCH_PAIR_SORTER) as SEARCH_PAIR_SORTERS) || SEARCH_PAIR_SORTERS.VOLUME_24H,\n direction:\n (localStorage.getItem(SEARCH_PAIR_SORTER_DIRECTION) as SEARCH_PAIR_DIRECTION) ||\n SEARCH_PAIR_DIRECTION.DSC,\n });\n }\n !mockOpenDropdown && setShowPopup(open);\n }}\n getPopupContainer={() => {\n return popupRef.current as HTMLElement;\n }}\n dropdownRender={dropdownRenderer}>\n
\n {createOnly ? (\n \n ) : (\n
\n {/* // For menu go left */}\n
\n
\n {currentPairBaseInfo?.rootInstrument && (\n \n \n {tagExtra}\n {/* {\n if (currentPair instanceof WrappedPair) {\n cast({\n text: `On Chain Perpetuals of Any Assets on @SynFuturesDefi . 🚀 #CryptoTrading #DeFi`,\n url: `${FARCASTER_LINK}/trade?chainId=${chainId}&instrument=${currentPair.rootInstrument.instrumentAddr}&expiry=${currentPair.expiry}`,\n });\n }\n }}\n /> */}\n
\n }\n dropdownIcon={\n \n }\n isShowExpiryTag\n leverage={(currentPairBaseInfo as WrappedPair)?.maxLeverage || TRADE_LEVERAGE_THRESHOLDS.MAX}\n showShortPerp={true}\n />\n )}\n
\n
\n )}\n
\n \n
\n
\n );\n};\n\nexport default React.memo(SearchPair);\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconArrowRight = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2 8.00033C2 7.63214 2.29848 7.33366 2.66667 7.33366L11.7239 7.33366L8.86193 4.47173C8.60158 4.21138 8.60158 3.78927 8.86193 3.52892C9.12228 3.26857 9.54439 3.26857 9.80474 3.52892L13.8047 7.52892C14.0651 7.78927 14.0651 8.21138 13.8047 8.47173L9.80474 12.4717C9.54439 12.7321 9.12228 12.7321 8.86193 12.4717C8.60158 12.2114 8.60158 11.7893 8.86193 11.5289L11.7239 8.66699L2.66667 8.66699C2.29848 8.66699 2 8.36852 2 8.00033Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconArrowRight);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_arrow_right.4cbefa5df2e32d42cdaf0ac38ba9b272.svg\";","/**\n * @description Component-FundingRate\n */\n// import './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport React, { FC, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport LeanMoreToolTip from '@/components/ToolTip/LeanMoreToolTip';\nimport { FAQ_LINKS } from '@/constants/links';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { IMarketPair } from '@/types/pair';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n currentPair: WrappedPair | undefined;\n chainId: CHAIN_ID | undefined;\n marketPairInfo: IMarketPair | undefined;\n}\nconst FundingRate: FC = function ({ currentPair, marketPairInfo }) {\n const { t } = useTranslation();\n // const dispatch = useAppDispatch();\n\n // const fundingRate = usePairLast1HFundingRate(chainId, currentPair?.id);\n // const onTooltipVisibleChange = useCallback(\n // (open: boolean) => {\n // if (open) {\n // // if (chainId && currentPair) dispatch(fetchLast1HFundingRate({ chainId, pair: currentPair }));\n // }\n // },\n // [chainId, currentPair, dispatch],\n // );\n\n const _1hPeriodsFunding = useMemo(() => {\n if (marketPairInfo?._1hPeriodsFunding) return marketPairInfo?._1hPeriodsFunding;\n return currentPair?.fundingFeeRateForLongAndShort;\n }, [currentPair?.fundingFeeRateForLongAndShort, marketPairInfo?._1hPeriodsFunding]);\n\n const _1hLastFunding = useMemo(() => {\n if (marketPairInfo?._1hLastFunding)\n return {\n long: WrappedBigNumber.from(marketPairInfo?._1hLastFunding.long),\n short: WrappedBigNumber.from(marketPairInfo?._1hLastFunding.short),\n };\n }, [marketPairInfo?._1hLastFunding]);\n\n // useEffect(() => {\n // if (chainId && currentPair && currentPair.isPerpetual) {\n // // dispatch(fetchLast1HFundingRate({ chainId, pair: currentPair }));\n // }\n // }, [currentPair?.id]);\n\n if (!currentPair?.isPerpetual) return null;\n return (\n
\n
\n \n
\n
\n }} />\n
\n
\n \n {currentPair.wrapAttribute('fundingRatePerHour').gt(0) ? t('common.longPay') : t('common.shortPay')}\n \n \n \n {currentPair.wrapAttribute('fundingRatePerHour').gt(0)\n ? _1hPeriodsFunding?.long?.abs?.()?.formatPercentage?.({\n colorShader: false,\n decimals: 4,\n })\n : _1hPeriodsFunding?.short?.abs?.()?.formatPercentage?.({\n colorShader: false,\n decimals: 4,\n })}\n \n \n /\n \n {' '}\n {currentPair.wrapAttribute('fundingRatePerHour').gt(0)\n ? t('common.shortReceive')\n : t('common.longReceive')}\n \n \n \n {currentPair.wrapAttribute('fundingRatePerHour').gt(0)\n ? _1hPeriodsFunding?.short?.abs?.()?.formatPercentage?.({\n colorShader: false,\n decimals: 4,\n })\n : _1hPeriodsFunding?.long?.abs?.()?.formatPercentage?.({\n colorShader: false,\n decimals: 4,\n })}\n \n \n
\n
\n\n {_1hLastFunding && (\n
\n
\n }} />\n
\n
\n \n {_1hLastFunding?.long && _1hLastFunding?.long?.lt?.(0)\n ? t('common.longPay')\n : t('common.shortPay')}\n \n \n \n {_1hLastFunding?.long.lt(0)\n ? _1hLastFunding.long.abs().formatPercentage({\n colorShader: false,\n decimals: 4,\n })\n : _1hLastFunding?.short.abs().formatPercentage({\n colorShader: false,\n decimals: 4,\n })}\n \n \n /\n \n {' '}\n {_1hLastFunding?.long && _1hLastFunding?.long.lt?.(0)\n ? t('common.shortReceive')\n : t('common.longReceive')}\n \n \n \n {_1hLastFunding?.long.lt(0)\n ? _1hLastFunding?.short.abs().formatPercentage({\n colorShader: false,\n decimals: 4,\n })\n : _1hLastFunding?.long.abs().formatPercentage({\n colorShader: false,\n decimals: 4,\n })}\n \n \n
\n
\n )}\n
\n {t('tooltip.tradePage.fundingLearMore')}\n \n }>\n {t('common.fundingEst')}\n \n
\n
\n \n {currentPair?.wrapAttribute('fundingRatePerHour').formatPercentage({\n hundredfold: true,\n colorShader: false,\n decimals: 4,\n })}{' '}\n {/* {\n \n {t('tradeDetail.underlyingInfo.pfr')}{' '}\n \n \n }>\n } */}\n \n
\n
\n );\n};\n\nexport default FundingRate;\n","/**\n * @description Component-PairInfoCollapse\n */\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport TVLWarningIcon from '@/components/TVLWarningIcon';\nimport LeanMoreToolTip from '@/components/ToolTip/LeanMoreToolTip';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { CHAIN_ID } from '@/constants/chain';\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { LEARN_MORE_LINK } from '@/constants/links';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useMarketPairInfo } from '@/features/futures/hooks';\nimport { useCurrentPairBaseInfoFromUrl } from '@/features/pair/hook';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { ISpotState } from '@/types/spot';\nimport { useDebounceFn } from 'ahooks';\nimport classNames from 'classnames';\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { ReactComponent as ArrowLeft } from '../../assets/icon_arrow_left.svg';\nimport { ReactComponent as ArrowRight } from '../../assets/icon_arrow_right.svg';\nimport FundingRate from '../FundingRate';\nimport './index.less';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n currentPair?: WrappedPair | undefined;\n type: PAIR_PAGE_TYPE;\n}\n\nfunction PairInfos({\n chainId,\n currentPair,\n}: {\n chainId: CHAIN_ID | undefined;\n currentPair: WrappedPair | undefined;\n spotRawPrice: WrappedBigNumber | undefined;\n spotState: ISpotState | undefined;\n}) {\n const { t } = useTranslation();\n const currentPairBaseInfo = useCurrentPairBaseInfoFromUrl(chainId);\n const marketPairInfo = useMarketPairInfo(chainId, currentPairBaseInfo?.instrumentAddr, currentPairBaseInfo?.expiry);\n const markPrice = useMemo(() => {\n return marketPairInfo?.markPrice || currentPair?.wrapAttribute('markPrice');\n }, [currentPair, marketPairInfo?.markPrice]);\n\n const effectLiqTvl = useMemo(() => {\n return marketPairInfo?.effectLiqTvl || currentPair?.wrapAttribute('effectLiqTvl');\n }, [currentPair, marketPairInfo?.effectLiqTvl]);\n\n const openInterests = useMemo(() => {\n return marketPairInfo?.openInterests || currentPair?.wrapAttribute('openInterests');\n }, [currentPair, marketPairInfo?.openInterests]);\n\n const longOi = useMemo(() => {\n return marketPairInfo?.longOi || currentPair?.wrapAttribute('longOpenInterest');\n }, [currentPair, marketPairInfo?.longOi]);\n\n const shortOi = useMemo(() => {\n return marketPairInfo?.shortOi || currentPair?.wrapAttribute('shortOpenInterest');\n }, [currentPair, marketPairInfo?.shortOi]);\n\n const baseToken = useMemo(() => {\n return marketPairInfo?.baseToken || currentPair?.rootInstrument?.baseToken;\n }, [currentPair?.rootInstrument?.baseToken, marketPairInfo?.baseToken]);\n return (\n <>\n
\n
\n {t('common.markP')}\n
\n
\n \n {markPrice?.formatPriceNumberWithTooltip({\n isShowTBMK: true,\n })}\n \n
\n
\n {/* 24HV */}\n
\n
{t('common.24HV')}
\n
\n {/* \n {currentPair?.volume24hUSD?.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n isShowApproximatelyEqualTo: false,\n })}\n */}\n\n \n {marketPairInfo?.volume24hUsd?.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n isShowApproximatelyEqualTo: false,\n })}\n \n
\n
\n {/* tvl */}\n
\n
\n {t('common.effectLiq')}\n
\n
\n
\n {/* \n {currentPair?.effectLiqTvl?.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n isShowApproximatelyEqualTo: false,\n })}\n */}\n \n {effectLiqTvl?.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n isShowApproximatelyEqualTo: false,\n })}\n \n
\n
\n
\n
\n
\n {t('common.tvl')}\n \n
\n
\n
\n {/* \n {currentPair?.tvlUSD?.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n isShowApproximatelyEqualTo: false,\n })}\n */}\n \n {marketPairInfo?.tvlUsd?.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n isShowApproximatelyEqualTo: false,\n })}\n \n
\n
\n
\n\n {/* estPoolApy */}\n
\n
{t('common.earn.estPoolApy')}
\n
\n {/* \n {currentPair?.stats?.wrapAttribute('APY24h')?.formatPercentage({\n hundredfold: true,\n colorShader: false,\n })}\n */}\n \n {marketPairInfo?.liquidityApy?.formatPercentage({\n hundredfold: true,\n colorShader: false,\n })}\n \n
\n
\n \n {/* Oi long short */}\n {/* openInterest */}\n {(process.env.REACT_APP_AWS_ENV === 'dev' || process.env.REACT_APP_AWS_ENV === 'pre') && (\n
\n
\n \n {t('common.oi')}\n \n
\n
\n \n {openInterests?.formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: baseToken?.symbol,\n })}\n \n
\n
\n )}\n {process.env.REACT_APP_APP_PORTFOLIO_SHOW_PNL === 'true' && (\n
\n
\n {\n ,\n }}\n />\n }\n
\n
\n \n
\n {longOi?.formatNumberWithTooltip({\n isShowTBMK: true,\n })}\n {` / `}\n\n {shortOi?.formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: baseToken?.symbol,\n })}\n
\n
\n
\n
\n )}\n \n );\n}\n\n// function TradeInfos({\n// chainId,\n// currentPair,\n// spotRawPrice,\n// spotState,\n// pairFetchingStatus,\n// pairStatsStatus,\n// }: {\n// chainId: CHAIN_ID | undefined;\n// currentPair: WrappedPair | undefined;\n// spotRawPrice: WrappedBigNumber | undefined;\n// spotState: ISpotState | undefined;\n// pairFetchingStatus: FETCHING_STATUS;\n// pairStatsStatus: FETCHING_STATUS;\n// }) {\n// const { t } = useTranslation();\n// const spotPriceDisplay = useMemo(() => {\n// // if (!currentPair?.rootInstrument?.spotPrice && !spotRawPrice) return;\n// let price: WrappedBigNumber | undefined;\n// // if (currentPair?.rootInstrument?.spotPrice) {\n// // price = WrappedBigNumber.from(currentPair?.rootInstrument?.spotPrice);\n// // }\n// if (spotRawPrice && spotRawPrice.gt(0)) {\n// price = spotRawPrice;\n// }\n\n// if (currentPair?.isInverse && price?.gt(0)) {\n// price = WrappedBigNumber.from(1).div(price);\n// }\n// return price;\n// }, [currentPair?.isInverse, spotRawPrice]);\n// return (\n// <>\n//
\n//
{t('common.indexP')}
\n//
\n// {/* {currentPair?.rootInstrument.market.info.type} */}\n// \n// \n//
{spotPriceDisplay?.stringValue}
\n// {spotState?.time && (\n//
\n// {t('common.updated')}: {formatDate(spotState?.time * 1000, 'MM-DD HH:mm:ss')}\n//
\n// )}\n//
\n// }>\n// {spotPriceDisplay?.formatPriceString()}\n// \n// \n// \n// {' '}\n// \n// \n//
\n//
\n//
\n//
\n// {t('common.markP')}\n//
\n//
\n// \n// {currentPair?.wrapAttribute('markPrice').formatPriceNumberWithTooltip({\n// isShowTBMK: true,\n// })}\n// \n//
\n//
\n\n// \n//
\n//
{t('common.24HH')}
\n//
\n// \n// {currentPair?.stats?.high24h && currentPair?.stats?.displayHigh24h.formatPriceNumberWithTooltip()}\n// \n//
\n//
\n//
\n//
{t('common.24HL')}
\n//
\n// \n// {currentPair?.stats?.low24h && currentPair?.stats?.displayLow24h.formatPriceNumberWithTooltip()}\n// \n//
\n//
\n//
\n//
{t('common.24HV')}
\n//
\n// \n// {currentPair?.volume24hUSD?.formatNumberWithTooltip({\n// isShowTBMK: true,\n// prefix: '$',\n// isShowApproximatelyEqualTo: false,\n// })}\n// \n//
\n//
\n//
\n//
\n// \n// {t('common.oi')}\n// \n//
\n//
\n// \n// {currentPair?.wrapAttribute('openInterests').formatNumberWithTooltip({\n// isShowTBMK: true,\n// suffix: currentPair.rootInstrument?.baseToken?.symbol,\n// })}\n// \n//
\n//
\n//
\n//
{t('common.longOi')}
\n//
\n// \n// {currentPair?.longOpenInterest?.formatNumberWithTooltip({\n// isShowTBMK: true,\n// suffix: currentPair.rootInstrument?.baseToken?.symbol,\n// })}\n// \n//
\n//
\n//
\n//
{t('common.ShortOi')}
\n//
\n// \n// {currentPair?.shortOpenInterest?.formatNumberWithTooltip({\n// isShowTBMK: true,\n// suffix: currentPair.rootInstrument?.baseToken?.symbol,\n// })}\n// \n//
\n//
\n//
\n//
{t('common.tvl')}
\n//
\n// \n// {currentPair?.tvlUSD?.formatNumberWithTooltip({\n// isShowTBMK: true,\n// prefix: '$',\n// isShowApproximatelyEqualTo: false,\n// })}\n// \n//
\n//
\n// \n// );\n// }\n\n// function EarnInfos({\n// currentPair,\n// spotRawPrice,\n// spotState,\n// pairStatsStatus,\n// }: {\n// currentPair: WrappedPair | undefined;\n// spotRawPrice: WrappedBigNumber | undefined;\n// spotState: ISpotState | undefined;\n// pairStatsStatus: FETCHING_STATUS;\n// }) {\n// const { t } = useTranslation();\n// const spotPriceDisplay = useMemo(() => {\n// // if (!currentPair?.rootInstrument?.spotPrice && !spotRawPrice) return;\n// let price: WrappedBigNumber | undefined;\n// // if (currentPair?.rootInstrument?.spotPrice) {\n// // price = WrappedBigNumber.from(currentPair?.rootInstrument?.spotPrice);\n// // }\n// if (spotRawPrice && spotRawPrice.gt(0)) {\n// price = spotRawPrice;\n// }\n\n// if (currentPair?.isInverse && price?.gt(0)) {\n// price = WrappedBigNumber.from(1).div(price);\n// }\n// return price;\n// }, [currentPair?.isInverse, spotRawPrice]);\n// return (\n// <>\n//
\n//
{t('common.tvl')}
\n//
\n// \n// {currentPair?.tvlUSD?.formatNumberWithTooltip({\n// isShowTBMK: true,\n// prefix: '$',\n// isShowApproximatelyEqualTo: false,\n// })}\n// \n//
\n//
\n//
\n//
{t('common.fairP')}
\n//
\n// \n// {currentPair?.wrapAttribute('fairPriceWad').formatPriceNumberWithTooltip()}\n// \n//
\n//
\n//
\n//
{t('common.indexP')}
\n//
\n// {/* {currentPair?.rootInstrument.market.info.type} */}\n// \n// \n//
{spotPriceDisplay?.stringValue}
\n// {spotState?.time && (\n//
\n// {t('common.updated')}: {formatDate(spotState?.time * 1000, 'MM-DD HH:mm:ss')}\n//
\n// )}\n//
\n// }>\n// {spotPriceDisplay?.formatPriceString()}\n// \n// \n// \n// {' '}\n// \n// \n//
\n// \n//
\n//
\n// {t('common.markP')}\n//
\n//
\n// \n// {currentPair?.wrapAttribute('markPrice').formatPriceNumberWithTooltip({\n// isShowTBMK: true,\n// })}\n// \n//
\n//
\n//
\n//
{t('common.24HH')}
\n//
\n// \n// {currentPair?.stats?.high24h && currentPair?.stats?.displayHigh24h.formatPriceNumberWithTooltip()}\n// \n//
\n//
\n//
\n//
{t('common.24HL')}
\n//
\n// \n// {currentPair?.stats?.low24h && currentPair?.stats?.displayLow24h.formatPriceNumberWithTooltip()}\n// \n//
\n//
\n//
\n//
{t('common.24HV')}
\n//
\n// \n// {currentPair?.volume24hUSD?.formatNumberWithTooltip({\n// isShowTBMK: true,\n// prefix: '$',\n// isShowApproximatelyEqualTo: false,\n// })}\n// \n//
\n//
\n//
\n//
\n// \n// {t('common.oi')}\n// \n//
\n//
\n// \n// {currentPair?.wrapAttribute('openInterests').formatNumberWithTooltip({\n// isShowTBMK: true,\n// suffix: currentPair.rootInstrument?.baseToken?.symbol,\n// })}\n// \n//
\n//
\n//
\n//
{t('common.longOi')}
\n//
\n// \n// {currentPair?.longOpenInterest?.formatNumberWithTooltip({\n// isShowTBMK: true,\n// suffix: currentPair.rootInstrument?.baseToken?.symbol,\n// })}\n// \n//
\n//
\n//
\n//
{t('common.ShortOi')}
\n//
\n// \n// {currentPair?.shortOpenInterest?.formatNumberWithTooltip({\n// isShowTBMK: true,\n// suffix: currentPair.rootInstrument?.baseToken?.symbol,\n// })}\n// \n//
\n//
\n// \n// );\n// }\n\nconst PairInfoCollapse: FC = function ({ currentPair }) {\n const chainId = useChainId();\n // const spotState = useInstrumentSpotState(chainId, currentPair?.rootInstrument?.id);\n // const spotRawPrice = useInstrumentSpotRawPrice(chainId, currentPair?.rootInstrument?.id);\n const [widthDifference, setWidthDifference] = useState(0);\n const [distanceToLeft, setDistanceToLeft] = useState(0);\n const { run: resize } = useDebounceFn(\n () => {\n const infoRightWidth = document.getElementById('infoRight')?.offsetWidth || 0;\n const infoRightContainerWidth = document.getElementById('infoRightContainer')?.offsetWidth || 0;\n setWidthDifference(infoRightContainerWidth - infoRightWidth);\n setDistanceToLeft(0);\n },\n { wait: 200 },\n );\n const moveRight = useCallback(() => {\n const newDistance = distanceToLeft + widthDifference;\n setDistanceToLeft(newDistance);\n }, [distanceToLeft, widthDifference]);\n const moveLeft = useCallback(() => {\n const newDistance = distanceToLeft - widthDifference;\n setDistanceToLeft(newDistance);\n }, [distanceToLeft, widthDifference]);\n useEffect(() => {\n resize();\n setDistanceToLeft(0);\n setWidthDifference(0);\n }, [currentPair?.id]);\n useEffect(() => {\n window.addEventListener('resize', resize);\n }, [resize]);\n const showLeft = useMemo(() => distanceToLeft > 0, [distanceToLeft]);\n const showRight = useMemo(() => distanceToLeft < widthDifference, [distanceToLeft, widthDifference]);\n\n return (\n
\n {widthDifference > 0 && (\n <>\n
\n {' '}\n \n
\n\n
\n \n
\n \n )}\n \n \n \n
\n \n \n );\n};\n\nexport default PairInfoCollapse;\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconConnectWallet = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 128,\n height: 128,\n viewBox: \"0 0 128 128\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.8592 45.9711L86.0577 24.6847C90.5857 23.1951 94.2592 25.7285 94.2592 30.3436V70.0351C94.2592 74.6495 90.5857 79.5999 86.0577 81.0879L23.1808 101.769C18.6528 103.257 14.9824 100.726 14.9824 96.1087V50.1503C14.9824 47.4239 19.8592 45.9711 19.8592 45.9711Z\",\n fill: \"#034650\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M31.528 45.4677L77.0096 32.2741C80.616 31.2309 83.5408 33.2565 83.5408 36.7989V64.9941C83.5408 68.5365 80.616 72.2581 77.0096 73.3045L31.528 86.4981C27.9216 87.5413 25 85.5157 25 81.9733V53.7781C25 50.2357 27.9216 46.5141 31.528 45.4677Z\",\n fill: \"#00CBCB\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M70.8921 39.9671L77.1075 38.04C77.6003 37.8877 78 38.1835 78 38.7009V42.8191C78 43.3365 77.6003 43.8801 77.1075 44.0329L70.8921 45.96C70.3993 46.1123 70 45.8165 70 45.2991V41.1809C70 40.6635 70.3993 40.1199 70.8921 39.9671Z\",\n fill: \"#8BF8F8\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M24.08 53.251L84.2241 41.1166C87.5809 40.4382 90.3009 42.7902 90.3009 46.3678V68.5342C90.3009 72.1118 87.5809 75.5613 84.2241 76.2365L24.08 88.3742C20.7232 89.0526 18 86.7006 18 83.123V60.9565C18 57.3789 20.7232 53.9294 24.08 53.251Z\",\n fill: \"#006679\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M50.4194 48.1058L46.1538 46.7778L46.157 46.7681C41.533 45.3153 39.2962 38.8962 41.1522 32.2034C43.0082 25.5106 48.2754 21.0306 53.0338 21.9998L53.037 21.9883L58.0994 23.4658L50.4194 48.1058Z\",\n fill: \"url(#paint0_linear_43489_189187)\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M57.8753 23.364C62.7169 24.6146 65.1041 31.1781 63.2033 38.0226C61.3025 44.8671 55.8369 49.405 50.9953 48.1538C46.1537 46.9026 43.7697 40.3394 45.6673 33.4946C47.5649 26.6498 53.0337 22.1135 57.8753 23.364Z\",\n fill: \"url(#paint1_linear_43489_189187)\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.5792 39.2721C26.8278 39.2721 27.84 38.2599 27.84 37.0113C27.84 35.7627 26.8278 34.7505 25.5792 34.7505C24.3306 34.7505 23.3184 35.7627 23.3184 37.0113C23.3184 38.2599 24.3306 39.2721 25.5792 39.2721Z\",\n fill: \"#8CBEC7\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M88.3038 19.2973L98.0511 16.5568C100.093 15.9827 101.747 17.3853 101.747 19.6896V30.816C101.747 33.12 100.093 35.4528 98.0511 36.0288L88.3038 38.768C86.2622 39.3408 84.6079 37.9392 84.6079 35.6352V24.5091C84.6079 22.2048 86.2622 19.8713 88.3038 19.2973Z\",\n fill: \"#00D2D2\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M93.6543 33.5902C93.6543 33.5902 89.6895 33.0174 89.6895 30.7221V25.636C89.6882 25.5139 89.72 25.3937 89.7814 25.2882C89.8428 25.1826 89.9316 25.0956 90.0383 25.0363C90.6749 24.6141 91.2724 24.1358 91.8239 23.6072C92.1119 23.3192 92.1919 23.1272 92.4351 23.06L94.8959 22.3675C95.1391 22.2994 95.2191 22.4446 95.5071 22.5717C96.0798 22.7949 96.6808 22.9379 97.2927 22.9966C97.3437 22.9951 97.3944 23.005 97.4411 23.0255C97.4877 23.046 97.5293 23.0766 97.5627 23.1151C97.5961 23.1537 97.6205 23.1991 97.6341 23.2483C97.6477 23.2974 97.6503 23.349 97.6415 23.3992V28.4853C97.6415 30.7794 93.6543 33.5902 93.6543 33.5902Z\",\n fill: \"#448599\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M33.7377 55.0945L100.33 48.0737C104.941 47.5777 108.682 50.9153 108.682 55.5329V95.2257C108.682 99.8401 104.941 103.984 100.33 104.48L33.7377 111.498C26.7041 112.266 14.9824 107.091 14.9824 100.288V50.8481C14.9824 50.8481 18.5409 56.6145 33.7377 55.0945Z\",\n fill: \"url(#paint2_linear_43489_189187)\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.3,\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M60.1461 80.0975C59.0227 81.221 58.3915 82.7447 58.3915 84.3335C58.3915 85.9223 59.0227 87.446 60.1461 88.5695C61.2696 89.6929 62.7933 90.3241 64.3821 90.3241C65.9709 90.3241 67.4947 89.6929 68.6181 88.5695L69.4871 87.7006C70.0269 87.1607 70.9023 87.1607 71.4421 87.7006C71.982 88.2405 71.982 89.1158 71.4421 89.6556L70.5732 90.5246C68.9312 92.1665 66.7042 93.089 64.3821 93.089C62.06 93.089 59.833 92.1665 58.1911 90.5246C56.5491 88.8826 55.6266 86.6556 55.6266 84.3335C55.6266 82.0114 56.5491 79.7844 58.1911 78.1424L59.06 77.2735C59.5999 76.7336 60.4752 76.7336 61.0151 77.2735C61.5549 77.8134 61.5549 78.6887 61.0151 79.2286L60.1461 80.0975ZM64.2735 74.015C63.7336 73.4752 63.7336 72.5999 64.2735 72.06L65.1424 71.191C66.7844 69.5491 69.0114 68.6266 71.3335 68.6266C73.6556 68.6266 75.8826 69.5491 77.5246 71.1911C79.1666 72.833 80.089 75.06 80.089 77.3821C80.089 79.7042 79.1666 81.9312 77.5246 83.5732L76.6557 84.4421C76.1158 84.982 75.2405 84.982 74.7006 84.4421C74.1607 83.9022 74.1607 83.0269 74.7006 82.487L75.5695 81.6181C76.693 80.4947 77.3241 78.9709 77.3241 77.3821C77.3241 75.7933 76.693 74.2696 75.5695 73.1461C74.4461 72.0227 72.9223 71.3915 71.3335 71.3915C69.7447 71.3915 68.221 72.0227 67.0975 73.1461L66.2286 74.015C65.6887 74.5549 64.8134 74.5549 64.2735 74.015ZM64.2735 84.4421C63.7336 83.9022 63.7336 83.0269 64.2735 82.487L69.4871 77.2735C70.0269 76.7336 70.9023 76.7336 71.4421 77.2735C71.982 77.8134 71.982 78.6887 71.4421 79.2286L66.2286 84.4421C65.6887 84.982 64.8134 84.982 64.2735 84.4421Z\",\n fill: \"white\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.293 86.8608C17.5209 89.2337 20.4582 90.8202 23.6641 91.3824C33.7089 93.2896 41.517 90.8001 41.517 90.8001L45.5682 93.8785V100.144L48.0002 102.125L47.8594 109.546\",\n stroke: \"#00D2D2\",\n strokeLinecap: \"round\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M107.659 63.1455L104.635 66.5023V89.4591L107.659 91.9455\",\n stroke: \"#00D2D2\",\n strokeLinecap: \"round\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M96.7682 70.1344L107.427 69.1104C110.583 68.8064 113.139 71.4848 113.139 75.088C113.139 78.6912 110.583 81.8624 107.427 82.1632L96.7682 83.1904C93.613 83.4944 91.0562 80.816 91.0562 77.2128C91.0562 73.6096 93.613 70.4384 96.7682 70.1344Z\",\n fill: \"url(#paint3_linear_43489_189187)\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M96.5697 74.5793C97.6673 74.4289 98.5569 75.4017 98.5569 76.7457C98.5569 78.0897 97.6673 79.3057 96.5697 79.4529C95.4721 79.6001 94.5825 78.6305 94.5825 77.2865C94.5825 75.9425 95.4721 74.7265 96.5697 74.5793Z\",\n fill: \"#155C73\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_43489_189187\",\n x1: 49.2994,\n y1: 21.8682,\n x2: 49.2994,\n y2: 48.1058,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FEE552\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFF19F\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_43489_189187\",\n x1: 54.436,\n y1: 23.1567,\n x2: 54.436,\n y2: 48.3612,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#ED9F00\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFC03F\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_43489_189187\",\n x1: 61.832,\n y1: 48.0249,\n x2: 61.832,\n y2: 111.573,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#09BDC4\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#639FF1\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_43489_189187\",\n x1: 96.0001,\n y1: 69,\n x2: 96.0001,\n y2: 84.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#6DB6FF\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#11E4E6\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconConnectWallet);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_connect_wallet.c08bc0375bc9b2a5d30484fea87debe1.svg\";","/**\n * @description Component-PairInfoRight\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { WrappedPair } from '@/entities/WrappedPair';\n\nimport PairInfoCollapse from './PairInfoCollapse';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n currentPair?: WrappedPair | undefined;\n type: PAIR_PAGE_TYPE;\n}\n\nconst PairInfoRight: FC = function ({ currentPair, type }) {\n return (\n
\n \n {/*
*/}\n {/* // TODO(vault) */}\n {/* */}\n {/* {currentPair?.symbol && (\n \n )} */}\n {/*
*/}\n
\n );\n};\n\nexport default PairInfoRight;\n","/**\n * @description Component-PairInfo\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { FC, useEffect } from 'react';\nimport { useNavigate } from 'react-router-dom';\n\nimport Card from '@/components/Card';\n// import CountdownTime from '@/components/CountdownTime';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\n// import LeanMoreToolTip from '@/components/ToolTip/LeanMoreToolTip';\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\n// import { FAQ_LINKS } from '@/constants/links';\nimport { useCurrentPairBaseInfoFromUrl, useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useListenGateEvent, useListenSingleInstrumentEvent } from '@/hooks/data/useListenEventOnWorker';\nimport { usePollingSingleInstrumentDataOnTradeOrEarn } from '@/hooks/data/usePollingDataOnWorker';\n// import Change24 from '@/pages/components/Change24';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { showProperDateString } from '@/utils/timeUtils';\n\nimport Change24 from '../Change24';\n// import BackButton from './BackButton';\nimport { useMockDevTool } from '@/components/Mock';\nimport SearchPair from '@/components/SearchPair';\nimport { useIsFetchedPairInfo, useMarketPairInfo, useWatchMarketPairInfoChange } from '@/features/futures/hooks';\nimport { useFetchFuturesInstrument } from '@/features/futures/query';\nimport { useTitle } from '@/features/global/hooks';\nimport { useFetchMarketPairList } from '@/features/market/query';\nimport { OrderEventListener } from '@/features/pair/EventListener';\nimport PairInfoRight from './PairInfoRight';\nimport PairInfoSkeleton from './PairInfoSkeleton';\ninterface IPropTypes {\n type?: PAIR_PAGE_TYPE;\n className?: string;\n}\nconst PairInfo: FC = function ({ className, type = PAIR_PAGE_TYPE.TRADE }) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const navigate = useNavigate();\n const currentPair = useCurrentPairFromUrl(chainId);\n const currentBaseInfo = useCurrentPairBaseInfoFromUrl(chainId);\n const currentMarketPairInfo = useMarketPairInfo(chainId, currentBaseInfo?.instrumentAddr, currentBaseInfo?.expiry);\n\n const { isMockSkeleton } = useMockDevTool();\n // show pair price in title\n useTitle(\n currentPair?.fairPrice &&\n currentPair?.rootInstrument?.displayBaseToken &&\n currentPair?.rootInstrument?.displayQuoteToken\n ? `${currentPair?.wrapAttribute('fairPrice')?.formatPriceString()} ${\n currentPair?.rootInstrument?.displayBaseToken?.symbol\n }/${currentPair?.rootInstrument?.displayQuoteToken?.symbol}-${showProperDateString({\n expiry: currentPair.expiry,\n format: 'MMDD',\n showShortPerp: true,\n })} | SynFutures`\n : 'SynFutures',\n // { restoreOnUnmount: true },\n );\n // const isFetched = useMarketPairInfoIsFetched(chainId, currentBaseInfo?.instrumentAddr, currentBaseInfo?.expiry);\n const isFetchedPair = useIsFetchedPairInfo(\n chainId,\n currentBaseInfo?.instrumentAddr,\n currentBaseInfo?.expiry,\n type === PAIR_PAGE_TYPE.EARN,\n );\n useListenSingleInstrumentEvent(chainId, userAddr, currentBaseInfo?.instrumentAddr);\n useListenGateEvent(chainId, userAddr);\n usePollingSingleInstrumentDataOnTradeOrEarn(\n chainId,\n userAddr,\n currentBaseInfo?.instrumentAddr,\n currentBaseInfo?.expiry,\n );\n // useFetchSingleInstrumentDataWhenChangePage(\n // chainId,\n // userAddr,\n // currentBaseInfo?.instrumentAddr,\n // currentBaseInfo?.expiry,\n // );\n\n useFetchMarketPairList();\n // useWatchMarketListChange(chainId);\n useFetchFuturesInstrument(chainId, currentBaseInfo?.instrumentAddr);\n useWatchMarketPairInfoChange(chainId, currentBaseInfo?.instrumentAddr, currentBaseInfo?.expiry);\n // useGetUserProfile();\n\n useEffect(() => {\n const hash = document.location.hash;\n if (currentPair && !currentPair?.isNormalPair && hash.startsWith('#/earn/')) {\n navigate('/portfolio');\n }\n // must dep on isNormalPair\n }, [currentPair?.isNormalPair]);\n\n // useEffect(() => {\n // if (currentBaseInfo?.instrumentAddr) {\n // // if (currentBaseInfo?.rootInstrument?.marketType)\n // // currentBaseInfo?.chainId &&\n // // window.synWorker.postMessage({\n // // eventName: WorkerEventNames.FetchInstrumentSpotState,\n // // data: {\n // // chainId: currentBaseInfo?.chainId,\n // // instrumentAddr: currentBaseInfo?.instrumentAddr,\n // // marketType: currentBaseInfo.rootInstrument.marketType,\n // // },\n // // });\n // // window.synWorker.postMessage({\n // // eventName: WorkerEventNames.PollingFetchInstrument,\n // // data: {\n // // chainId,\n // // instrumentAddr: currentBaseInfo?.instrumentAddr,\n // // },\n // // });\n // window.synWorker.postMessage({\n // eventName: WorkerEventNames.FetchPair,\n // data: {\n // chainId,\n // instrumentAddr: currentBaseInfo?.instrumentAddr,\n // },\n // });\n // }\n // }, [currentBaseInfo?.instrumentAddr]);\n const isLoading = isMockSkeleton || !isFetchedPair;\n // const isLoading = isMockSkeleton || !isFetched;\n\n return (\n <>\n \n {isLoading && }\n
\n
\n \n
\n
\n \n {currentMarketPairInfo?.fairPrice.formatPriceNumberWithTooltip()}\n \n
\n \n
\n
\n \n
\n \n\n {/* */}\n
\n \n );\n};\n\nexport default PairInfo;\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgBuiltOnBase = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 136,\n height: 16,\n viewBox: \"0 0 136 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M51.2598 12.1875C50.5237 12.1875 49.89 12.0278 49.3587 11.7083C48.8309 11.3854 48.423 10.9288 48.1348 10.3385C47.8466 9.74826 47.7025 9.05035 47.7025 8.24479V8.23438C47.7025 7.42535 47.8466 6.72743 48.1348 6.14063C48.4264 5.55035 48.8379 5.09549 49.3691 4.77604C49.9039 4.4566 50.5341 4.29688 51.2598 4.29688C51.9889 4.29688 52.6191 4.4566 53.1504 4.77604C53.6816 5.09549 54.0914 5.55035 54.3796 6.14063C54.6678 6.7309 54.8119 7.42882 54.8119 8.23438V8.24479C54.8119 9.05035 54.6678 9.74826 54.3796 10.3385C54.0948 10.9288 53.6869 11.3854 53.1556 11.7083C52.6244 12.0278 51.9924 12.1875 51.2598 12.1875ZM51.2598 11.026C51.7077 11.026 52.0948 10.9115 52.4212 10.6823C52.7476 10.4531 52.9994 10.1302 53.1764 9.71354C53.357 9.29688 53.4473 8.80729 53.4473 8.24479V8.23438C53.4473 7.6684 53.357 7.17882 53.1764 6.76563C52.9994 6.34896 52.7476 6.02778 52.4212 5.80208C52.0948 5.57292 51.7077 5.45833 51.2598 5.45833C50.8153 5.45833 50.4282 5.57292 50.0983 5.80208C49.7719 6.02778 49.5184 6.34896 49.3379 6.76563C49.1608 7.17882 49.0723 7.6684 49.0723 8.23438V8.24479C49.0723 8.80729 49.1591 9.29688 49.3327 9.71354C49.5098 10.1302 49.7615 10.4531 50.0879 10.6823C50.4178 10.9115 50.8084 11.026 51.2598 11.026Z\",\n fill: \"#0052FF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M56.3535 12V4.48438H57.5202L61.2133 9.66146H61.2962V4.48438H62.5879V12H61.4264L57.733 6.81771H57.6504V12H56.3535Z\",\n fill: \"#0052FF\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.1087 5.61458V12H41.4525V5.61458H43.765V4.48438H37.7962V5.61458H40.1087Z\",\n fill: \"#0052FF\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.9889 12V4.48438H34.3327V10.8698H37.7754V12H32.9889Z\",\n fill: \"#0052FF\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.791 4.48438V12H31.1348V4.48438H29.791Z\",\n fill: \"#0052FF\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M24.8535 12.1875C24.2216 12.1875 23.6747 12.0712 23.2129 11.8385C22.7511 11.6059 22.3934 11.2813 22.14 10.8646C21.89 10.4479 21.765 9.96354 21.765 9.41146V4.48438H23.1035V9.30208C23.1035 9.64583 23.1712 9.94792 23.3066 10.2083C23.4455 10.4653 23.6452 10.6667 23.9056 10.8125C24.166 10.9549 24.4837 11.026 24.8587 11.026C25.2303 11.026 25.5462 10.9549 25.8066 10.8125C26.0671 10.6667 26.265 10.4653 26.4004 10.2083C26.5358 9.94792 26.6035 9.64583 26.6035 9.30208V4.48438H27.9421V9.41146C27.9421 9.96354 27.8171 10.4479 27.5671 10.8646C27.3171 11.2813 26.9612 11.6059 26.4993 11.8385C26.041 12.0712 25.4924 12.1875 24.8535 12.1875Z\",\n fill: \"#0052FF\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M14.5098 12V4.48438H17.6452C18.1243 4.48438 18.5341 4.56076 18.8743 4.71354C19.2146 4.86285 19.4768 5.07813 19.6608 5.35938C19.8448 5.63715 19.9368 5.96875 19.9368 6.35417V6.36458C19.9368 6.62847 19.8761 6.875 19.7546 7.10417C19.6365 7.33333 19.4768 7.52431 19.2754 7.67708C19.0775 7.82986 18.8518 7.92708 18.5983 7.96875V8.0625C18.9351 8.09375 19.2303 8.19097 19.4837 8.35417C19.7407 8.51389 19.9403 8.72396 20.0827 8.98438C20.2285 9.24479 20.3014 9.53646 20.3014 9.85938V9.86979C20.3014 10.3073 20.1973 10.6858 19.9889 11.0052C19.7841 11.3247 19.4889 11.5712 19.1035 11.7448C18.7181 11.9149 18.258 12 17.7233 12H14.5098ZM17.416 10.9583H15.8535V8.60417H17.3587C17.7025 8.60417 17.9907 8.64757 18.2233 8.73438C18.4594 8.82118 18.6365 8.95139 18.7546 9.125C18.8726 9.29861 18.9316 9.51215 18.9316 9.76563V9.77604C18.9316 10.158 18.8032 10.4514 18.5462 10.6563C18.2893 10.8576 17.9125 10.9583 17.416 10.9583ZM15.8535 5.52604H17.3223C17.7285 5.52604 18.0445 5.61979 18.2702 5.80729C18.4959 5.99479 18.6087 6.25521 18.6087 6.58854V6.59896C18.6087 6.93924 18.4837 7.19965 18.2337 7.38021C17.9872 7.56076 17.6261 7.65104 17.1504 7.65104H15.8535V5.52604Z\",\n fill: \"#0052FF\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_18020_168050)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M84.7376 7.94196C84.7376 11.5918 81.7736 14.5506 78.1174 14.5506C74.6486 14.5506 71.8029 11.8874 71.5203 8.49747H80.2706V7.38644H71.5203C71.8029 3.99654 74.6486 1.33331 78.1174 1.33331C81.7736 1.33331 84.7376 4.2921 84.7376 7.94196ZM109.281 13.3533C111.575 13.3533 113.079 12.117 113.079 10.255C113.079 8.5271 111.947 7.70785 110.234 7.42483L108.715 7.17159C107.553 6.97796 106.779 6.4715 106.779 5.35432C106.779 4.22226 107.643 3.35831 109.281 3.35831C110.875 3.35831 111.694 4.16267 111.784 5.30964H112.93C112.841 3.79029 111.679 2.43478 109.296 2.43478C106.942 2.43478 105.647 3.76048 105.647 5.39902C105.647 7.14181 106.823 7.94618 108.432 8.2143L109.966 8.45263C111.247 8.67606 111.962 9.19741 111.962 10.2997C111.962 11.5956 110.905 12.4298 109.296 12.4298C107.628 12.4298 106.585 11.6254 106.496 10.255H105.364C105.453 12.0425 106.823 13.3533 109.281 13.3533ZM92.37 13.1448H88.1993V2.65821H92.221C93.9937 2.65821 95.2301 3.7009 95.2301 5.36923C95.2301 6.57578 94.5448 7.38014 93.4425 7.64826V7.69295C94.7533 7.94618 95.5577 8.83992 95.5577 10.2401C95.5577 12.0425 94.232 13.1448 92.37 13.1448ZM92.0721 7.26098C93.3383 7.26098 94.1128 6.57578 94.1128 5.50328V5.35432C94.1128 4.28184 93.3383 3.61154 92.0721 3.61154H89.3164V7.26098H92.0721ZM92.2062 12.1914C93.5915 12.1914 94.4405 11.4318 94.4405 10.2699V10.1209C94.4405 8.91439 93.5766 8.18451 92.1913 8.18451H89.3164V12.1914H92.2062ZM104.579 13.1448H103.388L102.494 10.2997H98.323L97.4293 13.1448H96.2972L99.7382 2.65821H101.094L104.579 13.1448ZM100.468 3.80518H100.379L98.6209 9.36126H102.211L100.468 3.80518ZM114.757 13.1448V2.65821H121.49V3.62643H115.875V7.23119H121.043V8.18451H115.875V12.1765H121.49V13.1448H114.757Z\",\n fill: \"#0052FF\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_18020_168050\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 49.97,\n height: 13.3333,\n fill: \"white\",\n transform: \"translate(71.5203 1.33331)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgBuiltOnBase);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/built_on_base.011191cc0a34ad45ec261920eb3b7cd1.svg\";","/**\n * @description Component-ConnectWalletCard\n */\nimport './index.less';\n\nimport { ReactComponent as IconConnectWallet } from './assets/icon_connect_wallet.svg';\n\nimport { GlobalModalType } from '@/constants';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ConnectWalletButton from '../ConnectWalletButton';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst ConnectWalletCard: FC = function ({}) {\n const { t } = useTranslation();\n const toggleWalletModal = useToggleModal(GlobalModalType.Wallet);\n return (\n
\n \n
\n
{t('common.portfolio.connectWallet')}
\n {\n toggleWalletModal(true);\n }}\n />\n
\n
\n );\n};\n\nexport default ConnectWalletCard;\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgBuiltOnBlast = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 136,\n height: 16,\n viewBox: \"0 0 136 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.4575 11.3334H56.5282C56.3762 11.3334 56.3001 11.2953 56.2336 11.1714L53.0498 5.90477V11.1334C53.0498 11.2572 52.9738 11.3334 52.8408 11.3334H51.8333C51.6908 11.3334 51.6243 11.2572 51.6243 11.1334V4.86674C51.6243 4.74293 51.6908 4.66669 51.8333 4.66669H53.7531C53.9052 4.66669 53.9812 4.71431 54.0477 4.82864L57.2315 10.1047V4.86674C57.2315 4.74293 57.3171 4.66669 57.4501 4.66669H58.4575C58.5906 4.66669 58.6666 4.74293 58.6666 4.86674V11.1334C58.6666 11.2572 58.5906 11.3334 58.4575 11.3334Z\",\n fill: \"#FCFC03\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.4064 6.19054V9.8095C49.4064 10.8571 48.9122 11.3334 47.8193 11.3334H43.9987C42.9153 11.3334 42.4021 10.8571 42.4021 9.8095V6.19054C42.4021 5.14293 42.9153 4.66669 43.9987 4.66669H47.8193C48.9122 4.66669 49.4064 5.14293 49.4064 6.19054ZM47.8668 9.37146V6.62863C47.8668 6.03816 47.7242 5.91435 47.021 5.91435H44.7876C44.0843 5.91435 43.9417 6.03816 43.9417 6.62863V9.37146C43.9417 9.96194 44.0843 10.0857 44.7876 10.0857H47.021C47.7242 10.0857 47.8668 9.96194 47.8668 9.37146Z\",\n fill: \"#FCFC03\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.8766 11.1334V5.91435H30.5196C30.3771 5.91435 30.3105 5.83816 30.3105 5.71435V4.86674C30.3105 4.74293 30.3771 4.66669 30.5196 4.66669H36.7636C36.9062 4.66669 36.9727 4.74293 36.9727 4.86674V5.71435C36.9727 5.83816 36.9062 5.91435 36.7636 5.91435H34.4162V11.1334C34.4162 11.2572 34.3307 11.3334 34.1976 11.3334H33.0857C32.9526 11.3334 32.8766 11.2572 32.8766 11.1334Z\",\n fill: \"#FCFC03\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.862 4.86674V10.0857H30.1957C30.3288 10.0857 30.4048 10.1619 30.4048 10.2857V11.1334C30.4048 11.2572 30.3288 11.3334 30.1957 11.3334H24.5315C24.3889 11.3334 24.3224 11.2572 24.3224 11.1334V4.86674C24.3224 4.74293 24.3889 4.66669 24.5315 4.66669H25.6434C25.7765 4.66669 25.862 4.74293 25.862 4.86674Z\",\n fill: \"#FCFC03\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.9987 4.86674V11.1334C21.9987 11.2572 21.9132 11.3334 21.7801 11.3334H20.6682C20.5256 11.3334 20.4591 11.2572 20.4591 11.1334V4.86674C20.4591 4.74293 20.5256 4.66669 20.6682 4.66669H21.7801C21.9132 4.66669 21.9987 4.74293 21.9987 4.86674Z\",\n fill: \"#FCFC03\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.9724 4.86674V9.37146C12.9724 9.96194 13.1054 10.0857 13.8182 10.0857H15.795C16.5078 10.0857 16.6503 9.96194 16.6503 9.37146V4.86674C16.6503 4.74293 16.7264 4.66669 16.8594 4.66669H17.9714C18.1044 4.66669 18.19 4.74293 18.19 4.86674V9.8095C18.19 10.8571 17.6958 11.3334 16.6028 11.3334H13.0294C11.9364 11.3334 11.4327 10.8571 11.4327 9.8095V4.86674C11.4327 4.74293 11.4993 4.66669 11.6418 4.66669H12.7538C12.8963 4.66669 12.9724 4.74293 12.9724 4.86674Z\",\n fill: \"#FCFC03\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.37632 6.53339C9.37632 7.36196 9.0817 7.80957 8.41644 7.96195C9.15773 8.09528 9.47136 8.5429 9.47136 9.40956V9.8476C9.47136 10.8666 8.99617 11.3334 7.92224 11.3334H2.87571C2.73315 11.3334 2.66663 11.2572 2.66663 11.1334V4.86674C2.66663 4.74293 2.73315 4.66669 2.87571 4.66669H7.8177C8.89163 4.66669 9.37632 5.1334 9.37632 6.15244V6.53339ZM7.23796 8.58099H4.20624V10.0857H7.23796C7.78919 10.0857 7.93174 9.95241 7.93174 9.47622V9.19051C7.93174 8.71432 7.78919 8.58099 7.23796 8.58099ZM4.20624 5.91435V7.36196H7.14293C7.68464 7.36196 7.8367 7.2191 7.8367 6.75238V6.52387C7.8367 6.04768 7.68464 5.91435 7.14293 5.91435H4.20624Z\",\n fill: \"#FCFC03\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M133.333 4.82036L130.703 2.84833H120.969L120.335 4.82036H125.47L122.712 13.3334H124.837L127.585 4.82036H133.333Z\",\n fill: \"#FCFC03\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M97.0084 2.84833L94.3679 4.82036H104.326L104.969 2.84833H97.0084Z\",\n fill: \"#FCFC03\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.3674 4.81531L91.6102 13.3282H93.7341L96.0823 6.07465L94.3674 4.81531Z\",\n fill: \"#FCFC03\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.968 2.84833L102.094 11.7225L103.097 11.6444L98.9754 8.51061H95.916L102.025 13.3334H103.691L106.683 4.10767L104.968 2.84833Z\",\n fill: \"#FCFC03\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.1291 7.99318L81.6335 6.75338L82.4907 4.10767L80.7757 2.84833H69.3171L66.6666 4.82036H80.1324L79.4213 7.04621H74.0231L73.497 8.65706H78.8952L77.3847 13.3334L79.9085 12.074L80.8146 9.27212L79.1191 8.02252L79.1291 7.99318Z\",\n fill: \"#FCFC03\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.4776 11.3149L72.037 6.45308L70.3026 5.15466L67.7104 13.326H77.3863L78.0291 11.3149H70.4776Z\",\n fill: \"#FCFC03\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M85.7408 3.92609L84.0258 2.66669L81.2487 11.2285L81.0054 11.9802L82.8275 13.3274H90.5251L91.1779 11.3164H83.3436L85.7408 3.92609Z\",\n fill: \"#FCFC03\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.065 7.08997L109.406 6.06491L107.701 4.81531L106.727 7.80267L108.422 9.04247V9.05227H116.022L115.291 11.3172H105.616L104.973 13.3282H114.639L117.172 12.0689L118.419 8.22241L116.85 7.07044L109.065 7.08997Z\",\n fill: \"#FCFC03\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.333 2.84833L107.703 4.82036H119.288L119.931 2.84833H110.333Z\",\n fill: \"#FCFC03\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgBuiltOnBlast);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/built_on_blast.d11a4273e6962e5f387f67e9e5f62b7e.svg\";","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgBuiltOnBlastLight = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 136,\n height: 16,\n viewBox: \"0 0 136 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M58.4576 11.3334H56.5283C56.3762 11.3334 56.3002 11.2953 56.2337 11.1714L53.0499 5.90477V11.1334C53.0499 11.2572 52.9739 11.3334 52.8408 11.3334H51.8334C51.6909 11.3334 51.6243 11.2572 51.6243 11.1334V4.86674C51.6243 4.74293 51.6909 4.66669 51.8334 4.66669H53.7532C53.9052 4.66669 53.9813 4.71431 54.0478 4.82864L57.2316 10.1047V4.86674C57.2316 4.74293 57.3171 4.66669 57.4502 4.66669H58.4576C58.5906 4.66669 58.6667 4.74293 58.6667 4.86674V11.1334C58.6667 11.2572 58.5906 11.3334 58.4576 11.3334Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M49.4064 6.19054V9.8095C49.4064 10.8571 48.9122 11.3334 47.8193 11.3334H43.9987C42.9153 11.3334 42.4021 10.8571 42.4021 9.8095V6.19054C42.4021 5.14293 42.9153 4.66669 43.9987 4.66669H47.8193C48.9122 4.66669 49.4064 5.14293 49.4064 6.19054ZM47.8668 9.37146V6.62863C47.8668 6.03816 47.7242 5.91435 47.021 5.91435H44.7876C44.0843 5.91435 43.9417 6.03816 43.9417 6.62863V9.37146C43.9417 9.96194 44.0843 10.0857 44.7876 10.0857H47.021C47.7242 10.0857 47.8668 9.96194 47.8668 9.37146Z\",\n fill: \"black\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.8766 11.1334V5.91435H30.5197C30.3771 5.91435 30.3106 5.83816 30.3106 5.71435V4.86674C30.3106 4.74293 30.3771 4.66669 30.5197 4.66669H36.7637C36.9063 4.66669 36.9728 4.74293 36.9728 4.86674V5.71435C36.9728 5.83816 36.9063 5.91435 36.7637 5.91435H34.4163V11.1334C34.4163 11.2572 34.3307 11.3334 34.1977 11.3334H33.0857C32.9527 11.3334 32.8766 11.2572 32.8766 11.1334Z\",\n fill: \"black\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.8621 4.86674V10.0857H30.1959C30.3289 10.0857 30.405 10.1619 30.405 10.2857V11.1334C30.405 11.2572 30.3289 11.3334 30.1959 11.3334H24.5316C24.389 11.3334 24.3225 11.2572 24.3225 11.1334V4.86674C24.3225 4.74293 24.389 4.66669 24.5316 4.66669H25.6435C25.7766 4.66669 25.8621 4.74293 25.8621 4.86674Z\",\n fill: \"black\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.9988 4.86674V11.1334C21.9988 11.2572 21.9133 11.3334 21.7802 11.3334H20.6682C20.5257 11.3334 20.4592 11.2572 20.4592 11.1334V4.86674C20.4592 4.74293 20.5257 4.66669 20.6682 4.66669H21.7802C21.9133 4.66669 21.9988 4.74293 21.9988 4.86674Z\",\n fill: \"black\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.9724 4.86674V9.37146C12.9724 9.96194 13.1055 10.0857 13.8183 10.0857H15.7951C16.5078 10.0857 16.6504 9.96194 16.6504 9.37146V4.86674C16.6504 4.74293 16.7264 4.66669 16.8595 4.66669H17.9714C18.1045 4.66669 18.19 4.74293 18.19 4.86674V9.8095C18.19 10.8571 17.6958 11.3334 16.6029 11.3334H13.0294C11.9365 11.3334 11.4328 10.8571 11.4328 9.8095V4.86674C11.4328 4.74293 11.4993 4.66669 11.6419 4.66669H12.7538C12.8964 4.66669 12.9724 4.74293 12.9724 4.86674Z\",\n fill: \"black\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.37638 6.53339C9.37638 7.36196 9.08176 7.80957 8.4165 7.96195C9.1578 8.09528 9.47142 8.5429 9.47142 9.40956V9.8476C9.47142 10.8666 8.99623 11.3334 7.9223 11.3334H2.87577C2.73321 11.3334 2.66669 11.2572 2.66669 11.1334V4.86674C2.66669 4.74293 2.73321 4.66669 2.87577 4.66669H7.81776C8.89169 4.66669 9.37638 5.1334 9.37638 6.15244V6.53339ZM7.23802 8.58099H4.20631V10.0857H7.23802C7.78925 10.0857 7.9318 9.95241 7.9318 9.47622V9.19051C7.9318 8.71432 7.78925 8.58099 7.23802 8.58099ZM4.20631 5.91435V7.36196H7.14299C7.6847 7.36196 7.83676 7.2191 7.83676 6.75238V6.52387C7.83676 6.04768 7.6847 5.91435 7.14299 5.91435H4.20631Z\",\n fill: \"black\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M133.333 4.82036L130.703 2.84833H120.969L120.335 4.82036H125.47L122.712 13.3334H124.837L127.585 4.82036H133.333Z\",\n fill: \"black\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M97.0085 2.84833L94.368 4.82036H104.326L104.969 2.84833H97.0085Z\",\n fill: \"black\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M94.3674 4.81531L91.6103 13.3282H93.7341L96.0824 6.07465L94.3674 4.81531Z\",\n fill: \"black\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M104.968 2.84833L102.094 11.7225L103.097 11.6444L98.9755 8.51061H95.9161L102.025 13.3334H103.691L106.683 4.10767L104.968 2.84833Z\",\n fill: \"black\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M79.1291 7.99318L81.6335 6.75338L82.4907 4.10767L80.7758 2.84833H69.3172L66.6667 4.82036H80.1325L79.4214 7.04621H74.0232L73.4971 8.65706H78.8953L77.3847 13.3334L79.9086 12.074L80.8147 9.27212L79.1191 8.02252L79.1291 7.99318Z\",\n fill: \"black\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M70.4777 11.3149L72.0371 6.45308L70.3027 5.15466L67.7106 13.326H77.3864L78.0292 11.3149H70.4777Z\",\n fill: \"black\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M85.7409 3.92609L84.026 2.66669L81.2488 11.2285L81.0055 11.9802L82.8277 13.3274H90.5253L91.178 11.3164H83.3438L85.7409 3.92609Z\",\n fill: \"black\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M109.065 7.08997L109.406 6.06491L107.701 4.81531L106.727 7.80267L108.422 9.04247V9.05227H116.022L115.291 11.3172H105.616L104.973 13.3282H114.639L117.172 12.0689L118.419 8.22241L116.85 7.07044L109.065 7.08997Z\",\n fill: \"black\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M110.333 2.84833L107.703 4.82036H119.288L119.931 2.84833H110.333Z\",\n fill: \"black\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgBuiltOnBlastLight);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/built_on_blast_light.74d6a7dc7999f2363ac39c052e0b1836.svg\";","/**\n * @description Component-BuildOnNetworkCard\n */\nimport { useChainId, useChainShortName } from '@/hooks/web3/useChain';\nimport { ReactComponent as BuiltOnBase } from './assets/built_on_base.svg';\nimport { ReactComponent as BuiltOnBlast } from './assets/built_on_blast.svg';\nimport { ReactComponent as BuiltOnBlastLight } from './assets/built_on_blast_light.svg';\nimport './index.less';\n\nimport { THEME_ENUM } from '@/constants';\nimport { CHAIN_ID, SHOW_BUILD_CHAIN } from '@/constants/chain';\nimport { useTheme } from '@/features/global/hooks';\nimport classNames from 'classnames';\nimport { FC } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst BuildOnNetworkCard: FC = function ({}) {\n const chainId = useChainId();\n const chainShortName = useChainShortName(chainId);\n const { dataTheme } = useTheme();\n\n if (chainId && !SHOW_BUILD_CHAIN.includes(chainId)) return null;\n return (\n
\n
\n {chainId === CHAIN_ID.BASE ? (\n \n ) : dataTheme === THEME_ENUM.LIGHT ? (\n \n ) : (\n \n )}\n
\n
\n );\n};\n\nexport default BuildOnNetworkCard;\n","/**\n * @description Component-EarnCard\n */\nimport './index.less';\n\nimport { FC } from 'react';\n\nimport BuildOnNetworkCard from '@/pages/components/BuildOnNetworkCard';\nimport EarnForm from './EarnForm';\ninterface IPropTypes {\n className?: string;\n}\nconst EarnCard: FC = function () {\n return (\n
\n \n \n {/* */}\n
\n );\n};\n\nexport default EarnCard;\n","/**\n * @description Component-NewPairBanner\n */\nimport './index.less';\n\nimport { FC, useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useSDK } from '@/features/web3/hook';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { CreativePair } from '@/types/pair';\n\nimport LiqIcon from './assets/icon_mj_liq.png';\ninterface IPropTypes {\n className?: string;\n pair: CreativePair;\n}\nconst NewPairBanner: FC = function ({ pair }) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const sdkContext = useSDK(chainId);\n const [price, setPrice] = useState();\n const getPrice = useCallback(async () => {\n try {\n const price = await sdkContext?.perp?.observer?.getRawSpotPrice({\n baseSymbol: pair.rootInstrument.baseToken,\n quoteSymbol: pair.rootInstrument.quoteToken,\n marketType: pair.rootInstrument.marketType,\n });\n\n // setPrice(getAdjustTradePrice(WrappedBigNumber.from(price || 0), pair.rootInstrument.isInverse || false));\n setPrice(WrappedBigNumber.from(price || 0));\n } catch (error) {\n console.log('🚀 ~ file: index.tsx:35 ~ getPrice ~ error:', error);\n }\n }, [pair, sdkContext]);\n useEffect(() => {\n getPrice();\n }, [pair]);\n return (\n
\n \n
\n
{t('common.earn.pairBannerTitle')}
\n
\n {t('common.earn.pairBannerSubTitle')}\n {price?.formatPriceNumberWithTooltip()}\n
\n
\n
\n );\n};\n\nexport default NewPairBanner;\n","/**\n * @description Component-CoinPriceChart\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\n\n// import { useTranslation } from 'react-i18next';\nimport Card from '@/components/Card';\nimport Loading from '@/components/Loading';\nimport { CHART_TYPE } from '@/constants/trade';\nimport { useCurrentNewPairFromUrl, useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useChainId } from '@/hooks/web3/useChain';\n\nimport { useMockDevTool } from '@/components/Mock';\nimport { useIsFetchedPairInfo } from '@/features/futures/hooks';\nimport NewPairBanner from './NewPairBanner';\n// import CoinPriceDepthChart from './CoinPriceDepthChart';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst EarnChart: FC = function ({ className = '' }) {\n // const { t } = useTranslation();\n const chartType = CHART_TYPE.VOLUME;\n const chainId = useChainId();\n const currentPair = useCurrentPairFromUrl(chainId);\n const newPair = useCurrentNewPairFromUrl(chainId);\n const isFetched = useIsFetchedPairInfo(chainId, currentPair?.instrumentAddr, currentPair?.expiry, true);\n //const { t } = useTranslation();\n // const tabList = useMemo(() => {\n // const tabs = [{ label: t('common.earn.vol'), vale: CHART_TYPE.VOLUME, key: CHART_TYPE.VOLUME }];\n // if (currentPair) {\n // tabs.push({ label: t('common.earn.info'), vale: CHART_TYPE.INFO, key: CHART_TYPE.INFO });\n // }\n // return tabs;\n // }, [currentPair, t]);\n const { isMockSkeleton } = useMockDevTool();\n return (\n \n
\n
\n
\n {/* fetchingStatus === FETCHING_STATUS.DONE && setChartType(key as CHART_TYPE)}\n items={tabList}\n /> */}\n
\n
\n {chartType === CHART_TYPE.VOLUME && (\n
\n {(isMockSkeleton || !isFetched) && }\n <>{isFetched && !currentPair && newPair && }\n
\n )}\n {/* {chartType === CHART_TYPE.INFO && currentPair && } */}\n
\n
\n );\n};\n\nexport default EarnChart;\n","/**\n * @description Component-FeeDiscountTag\n */\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport Tag from '@/components/Tag';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useTheme } from '@/features/global/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport classNames from 'classnames';\nimport { FC } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n currentPair: WrappedPair | undefined;\n}\nconst FeeDiscountTag: FC = function ({ currentPair }) {\n const chainId = useChainId();\n const { t } = useTranslation();\n const dappConfig = useBackendChainConfig(chainId);\n const { dataTheme } = useTheme();\n\n if (!dappConfig?.feeDiscountInstruments || !currentPair) {\n return null;\n }\n if (dappConfig?.feeDiscountInstruments.includes(currentPair.rootInstrument.symbol))\n return (\n \n {t('common.feeDiscount')}\n \n );\n\n return null;\n};\n\nexport default FeeDiscountTag;\n","/**\n * @description Component-ChartInfo\n */\nimport './index.less';\n\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ExternalLink, ExternalLinkIcon } from '@/components/Link';\nimport TokenSymbol from '@/components/TokenLogo/TokenSymbol';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { useCurrentPairFromUrl, usePairInfo } from '@/features/pair/hook';\nimport { useChainId, useEtherscanLink } from '@/hooks/web3/useChain';\nimport { shortenAddress } from '@/utils/address';\nimport FeeDiscountTag from './FeeDiscountTag';\ninterface IPropTypes {\n className?: string;\n}\nconst ChartInfo: FC = function () {\n const chainId = useChainId();\n const currentPair = useCurrentPairFromUrl(chainId);\n const pairInfo = usePairInfo(currentPair);\n const getEtherscanLink = useEtherscanLink();\n const { t } = useTranslation();\n\n if (!pairInfo) {\n return <>;\n }\n return (\n
\n
\n \n {/* \n {t('common.tradePage.website')}\n */}\n
\n
\n
\n
\n
{t('common.tradePage.base')}
\n
{pairInfo.displayBaseToken.symbol}
\n
\n
\n
{t('common.tradePage.quote')}
\n
{pairInfo.displayQuoteToken.symbol}
\n
\n
\n
{t('common.tradePage.maturity')}
\n
{pairInfo.expiry}
\n
\n
\n
\n
\n
{t('common.tradePage.margin')}
\n
{pairInfo.marginToken.symbol}
\n
\n
\n
{t('common.tradePage.imr')}
\n
{pairInfo.imrRate.formatPercentage({ colorShader: false })}
\n
\n
\n
{t('common.tradePage.mmr')}
\n
{pairInfo.mmrRate.formatPercentage({ colorShader: false })}
\n
\n
\n
\n
\n
{t('common.tradePage.mTs')}
\n
\n {pairInfo.minQuoteTradeSize.formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: pairInfo.marginToken.symbol,\n })}\n
\n
\n
\n
{t('common.tradePage.tfr')}
\n
\n \n {pairInfo.tradingFeeRatio.add(pairInfo.protocolFeeRatio).formatPercentage({ colorShader: false })}\n \n \n
\n
\n
\n
{t('common.tradePage.lofr')}
\n
{pairInfo.tradingFeeRatio.formatPercentage({ colorShader: false })}
\n
\n
\n
\n
\n
\n {' '}\n {t('common.tradePage.tip')}\n
\n
{pairInfo.tip.formatNumberWithTooltip({ isShowTBMK: true, suffix: pairInfo.marginToken.symbol })}
\n
\n
\n
{t('common.tradePage.oracle')}
\n
\n {currentPair?.rootInstrument?.dexV2PairAddr ? (\n \n {pairInfo.oracleInfo.name}\n \n ) : (\n pairInfo.oracleInfo.name\n )}\n
\n
\n {currentPair?.rootInstrument?.quoteToken?.address && (\n
\n
{t('common.tradePage.address')}
\n
\n \n {' '}\n {shortenAddress(currentPair?.rootInstrument?.quoteToken?.address || '')}\n \n
\n
\n )}\n
\n
\n
\n );\n};\n\nexport default ChartInfo;\n","export const watemarkBase64 = `url(\"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjk3IiBoZWlnaHQ9IjU2IiB2aWV3Qm94PSIwIDAgMjk3IDU2IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8ZyBjbGlwLXBhdGg9InVybCgjY2xpcDBfNDkwNV8xNDAwOCkiPgo8cGF0aCBkPSJNMTcuOTI0OCAxOS43MTE5TDI1LjE1NzMgMjMuOTExOUwzMi4yNzggMTkuNzExOUwyNS4wMTc2IDE1LjY1MTlMMTcuOTI0OCAxOS43MTE5WiIgZmlsbD0iIzM2NjM2MyIgZmlsbC1vcGFjaXR5PSIwLjA2Ii8+CjxwYXRoIGQ9Ik03LjYyMDc1IDE4LjQyNEg3LjczMjQ1TDI1LjAxNzcgOC4yNkwzOC4yODE5IDE1Ljk2TDQ1LjUxNDMgMTEuNzZMMjUuMDE3NyAwTDAuNSAxNC4yMjRWMjIuNTEyTDI1LjAxNzcgMzYuNzM2TDQyLjQxNDcgMjYuNTcyVjM3LjY2TDI1LjAxNzcgNDcuNzEyTDcuNzMyNDUgMzcuNjZWMzEuOTQ4TDAuNSAyNy43NzZWNDEuODA0TDI1LjAxNzcgNTZMNDkuNjQ3MiA0MS43NzZWMTQuMjI0TDI1LjAxNzcgMjguNDQ4TDcuNjIwNzUgMTguNDI0WiIgZmlsbD0iIzM2NjM2MyIgZmlsbC1vcGFjaXR5PSIwLjA2Ii8+CjxwYXRoIGQ9Ik03MS4zMzczIDM2LjU2MUg4OS4xODFDOTEuNjM4NCAzNi41NjEgOTIuNTU5OSAzNC44MjUgOTIuNTU5OSAzMi4wODFDOTIuNTU5OSAzMC4zNDUgOTIuMTk2OSAyOC42OTMgODguOTg1NiAyNy42MDFMNzYuMzYzNyAyMy40MDFDNzIuNTEwMSAyMi4xMTMgNzAuODYyNSAxOS45MjkgNzAuODYyNSAxNS41NjFDNzAuODYyNSAxMC45OTcgNzMuMDY4NiA4LjA4NDk2IDc4LjE3ODggOC4wODQ5Nkg5NS40NjQxVjExLjU1N0g3OC45MDQ4Qzc2LjQ0NzUgMTEuNTU3IDc1LjI0NjcgMTIuNjQ5IDc1LjI0NjcgMTUuNjczQzc1LjI0NjcgMTcuNDA5IDc1LjQ0MjIgMTkuMDYxIDc4LjI2MjUgMjAuMDQxTDkwLjMyNTkgMjQuMDQ1Qzk0LjYyNjMgMjUuNDE3IDk2Ljk5OTkgMjcuMDQxIDk2Ljk5OTkgMzIuMDgxQzk2Ljk5OTkgMzYuNDQ5IDk1LjI2ODYgNDAuMDA1IDkwLjMyNTkgNDAuMDA1SDcxLjMwOTNMNzEuMzM3MyAzNi41NjFaIiBmaWxsPSIjMzY2MzYzIiBmaWxsLW9wYWNpdHk9IjAuMDYiLz4KPHBhdGggZD0iTTEwNy40NDQgNDcuODczMUgxMDMuNDIzTDEwNy4xNjQgNDAuMTE3MUw5Ni42NjQ4IDE1Ljk1MzFIMTAwLjY4NkwxMDkuMjAzIDM1LjkxNzFMMTE3Ljk3MSAxNS45NTMxSDEyMS45OTJMMTA3LjQ0NCA0Ny44NzMxWiIgZmlsbD0iIzM2NjM2MyIgZmlsbC1vcGFjaXR5PSIwLjA2Ii8+CjxwYXRoIGQ9Ik0xMjMuNzI0IDE5Ljc4OTJDMTIzLjcyNCAxNy4yNDEyIDEyNC44MTMgMTUuNzg1MiAxMjcuNDY2IDE1Ljc4NTJIMTM2LjE1QzE0MS4zNzIgMTUuNzg1MiAxNDQuMjc2IDE4LjA1MzIgMTQ0LjI3NiAyMy42MjUyVjM5Ljk0OTJIMTQwLjQ3OFYyNC40MzcyQzE0MC40NzggMjEuMTYxMiAxMzkuMjc4IDE4Ljk3NzIgMTM1LjYyIDE4Ljk3NzJIMTI4Ljk0NkMxMjguMDI0IDE4Ljk3NzIgMTI3LjQ5MyAxOS4zNDEyIDEyNy40OTMgMjAuNTE3MlY0MC4wMzMySDEyMy42NFYxOS43ODkySDEyMy43MjRaIiBmaWxsPSIjMzY2MzYzIiBmaWxsLW9wYWNpdHk9IjAuMDYiLz4KPHBhdGggZD0iTTE0OS41MjYgNDAuMDMyOFYxMi41OTI4QzE0OS41MjYgOS4yMDQ3OSAxNTEuMjU3IDguMTEyNzkgMTUzLjk5NCA4LjExMjc5SDE3My4yOVYxMS41ODQ4SDE1NS44MzdDMTUzLjk5NCAxMS41ODQ4IDE1My43NDIgMTIuMTQ0OCAxNTMuNzQyIDEzLjc2ODhWMjIuMzM2OEgxNjguMDEyVjI1LjgwODhIMTUzLjc0MlY0MC4wMzI4SDE0OS41MjZaIiBmaWxsPSIjMzY2MzYzIiBmaWxsLW9wYWNpdHk9IjAuMDYiLz4KPHBhdGggZD0iTTE5My44NyAzNi4xMTMxQzE5My44NyAzOC42NjExIDE5Mi43ODEgNDAuMTE3MSAxOTAuMTI4IDQwLjExNzFIMTgxLjE2NEMxNzUuOTQyIDQwLjExNzEgMTczLjAzOCAzNy44NDkxIDE3My4wMzggMzIuMjc3MVYxNS45NTMxSDE3Ni44OTJWMzEuNTQ5MUMxNzYuODkyIDM0LjgyNTEgMTc4LjA5MyAzNy4wMDkxIDE4MS43NTEgMzcuMDA5MUgxODguNzA0QzE4OS42MjUgMzcuMDA5MSAxOTAuMTU2IDM2LjY0NTEgMTkwLjE1NiAzNS40NjkxVjE1Ljk1MzFIMTk0LjAxVjM2LjExMzFDMTkzLjk4MiAzNi4xMTMxIDE5My44NyAzNi4xMTMxIDE5My44NyAzNi4xMTMxWiIgZmlsbD0iIzM2NjM2MyIgZmlsbC1vcGFjaXR5PSIwLjA2Ii8+CjxwYXRoIGQ9Ik0yMDcuNjkzIDQwLjAzMjhDMjAxLjY2MSA0MC4wMzI4IDE5OS45MyAzNy4xMjA4IDE5OS45MyAzMi4yNzY4VjE4Ljk0ODhIMTk2LjM1NVYxNS44NDA4SDE5OS45M1Y4LjExMjc5SDIwMy43ODNWMTUuODY4OEgyMTAuNTQxVjE4Ljk3NjhIMjAzLjc4M1YzMi4wMjQ4QzIwMy43ODMgMzUuNzc2OCAyMDUuMjM1IDM2Ljg2ODggMjA5LjAwNSAzNi44Njg4SDIxMC41NjlWMzkuOTc2OEwyMDcuNjkzIDQwLjAzMjhaIiBmaWxsPSIjMzY2MzYzIiBmaWxsLW9wYWNpdHk9IjAuMDYiLz4KPHBhdGggZD0iTTIzMy44NTggMzYuMTEzMUMyMzMuODU4IDM4LjY2MTEgMjMyLjc2OSA0MC4xMTcxIDIzMC4xMTYgNDAuMTE3MUgyMjEuMTUyQzIxNS45MzEgNDAuMTE3MSAyMTMuMDI2IDM3Ljg0OTEgMjEzLjAyNiAzMi4yNzcxVjE1Ljk1MzFIMjE2Ljg4VjMxLjU0OTFDMjE2Ljg4IDM0LjgyNTEgMjE4LjA4MSAzNy4wMDkxIDIyMS43MzkgMzcuMDA5MUgyMjguNjkyQzIyOS42MTQgMzcuMDA5MSAyMzAuMTQ0IDM2LjY0NTEgMjMwLjE0NCAzNS40NjkxVjE1Ljk1MzFIMjMzLjk5OEwyMzMuODU4IDM2LjExMzFaIiBmaWxsPSIjMzY2MzYzIiBmaWxsLW9wYWNpdHk9IjAuMDYiLz4KPHBhdGggZD0iTTIzOC40MSAyNC42MzNDMjM4LjQxIDE4LjY5NyAyNDEuMzQyIDE1Ljk4MSAyNDcuMjkgMTUuOTgxSDI0OS45NDNWMTkuMDg5SDI0OC4wMTZDMjQzLjc5OSAxOS4wODkgMjQyLjI2MyAyMS4yNzMgMjQyLjI2MyAyNS42NDFWNDAuMTQ1SDIzOC40MVYyNC42MzNaIiBmaWxsPSIjMzY2MzYzIiBmaWxsLW9wYWNpdHk9IjAuMDYiLz4KPHBhdGggZD0iTTI1OS4zODEgNDAuMDMyOUMyNTIuMTQ5IDQwLjAzMjkgMjUwLjY5NyAzNS4zMDA5IDI1MC42OTcgMjguMDc2OUMyNTAuNjk3IDE5LjIyODkgMjUzLjU0NSAxNS42NzI5IDI2MS43NTUgMTUuNjcyOUMyNjguMTQ5IDE1LjY3MjkgMjcyLjgxMyAxNy43NzI5IDI3Mi44MTMgMjUuMDUyOUMyNzIuODEzIDI3Ljc5NjkgMjcyLjAwMyAyOS4yNTI5IDI2OS4xNTUgMjkuMjUyOUgyNTQuNjlDMjU0LjY5IDMzLjE3MjkgMjU1LjQxNiAzNy4wMDg5IDI2MC4yNzUgMzcuMDA4OUgyNzIuMTdWNDAuMTE2OUwyNTkuMzgxIDQwLjAzMjlaTTI2Ny41MDcgMjYuMDg4OUMyNjguNDI5IDI2LjA4ODkgMjY4LjU5NiAyNS4zNjA5IDI2OC41OTYgMjQuOTEyOVYyNC43MTY5QzI2OC41OTYgMjAuMTUyOSAyNjUuNjY0IDE4LjY5NjkgMjYxLjY0MyAxOC42OTY5QzI1Ni43IDE4LjY5NjkgMjU0LjYwNiAyMC42MDA5IDI1NC42MDYgMjYuMDg4OUgyNjcuNTA3WiIgZmlsbD0iIzM2NjM2MyIgZmlsbC1vcGFjaXR5PSIwLjA2Ii8+CjxwYXRoIGQ9Ik0yNzUuODI5IDM2LjkyNTFIMjg5LjU0QzI5MS41NSAzNi45MjUxIDI5Mi40NzIgMzUuODMzMSAyOTIuNDcyIDMzLjkyOTFDMjkyLjQ3MiAzMS4zODExIDI5MC4yNjYgMzAuOTMzMSAyODYuNTI0IDMwLjAwOTFMMjgyLjA1NiAyOC45MTcxQzI3Ny40NzYgMjcuODI1MSAyNzUuMzgyIDI2LjAwNTEgMjc1LjM4MiAyMS44ODkxQzI3NS4zODIgMTcuNzczMSAyNzcuNjcyIDE1Ljg2OTEgMjgxLjk3MiAxNS44NjkxSDI5NS4wNDFWMTguOTc3MUgyODIuNDE5QzI4MC4yMTMgMTguOTc3MSAyNzkuMzE5IDE5LjcwNTEgMjc5LjMxOSAyMS44ODkxQzI3OS4zMTkgMjQuNTIxMSAyODEuMTYyIDI1LjI3NzEgMjgzLjc4NyAyNS44OTMxTDI4OC42NDYgMjcuMDY5MUMyOTMuNTA1IDI4LjI0NTEgMjk2LjUyMSAyOS4xNjkxIDI5Ni41MjEgMzMuODE3MUMyOTYuNTIxIDM3LjU2OTEgMjk1LjE1MiAzOS45MjExIDI5MC41NzMgMzkuOTIxMUgyNzUuODU3VjM2LjkyNTFIMjc1LjgyOVoiIGZpbGw9IiMzNjYzNjMiIGZpbGwtb3BhY2l0eT0iMC4wNiIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzQ5MDVfMTQwMDgiPgo8cmVjdCB3aWR0aD0iMjk2IiBoZWlnaHQ9IjU2IiBmaWxsPSJ3aGl0ZSIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMC41KSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=\")`;\n","import './index.less';\n\nexport const FundingLegend = (): JSX.Element => {\n return (\n
\n
\n \n \n \n {' '}\n Pay\n \n \n \n \n {' '}\n Receive\n \n
\n
\n );\n};\n","import { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport './index.less';\n\nimport moment from 'moment';\nimport { useTranslation } from 'react-i18next';\nimport { TooltipProps } from 'recharts';\nimport { NameType, ValueType } from 'recharts/types/component/DefaultTooltipContent';\ntype IProps = {\n interval: string;\n} & TooltipProps;\n\nexport default function FundingTooltip({ interval, payload }: IProps): JSX.Element {\n const { t } = useTranslation();\n const { isLongPay, payRateNum, receiveRateNum, timestamp } = payload?.[0]?.payload || {\n isLongPay: true,\n payRateNum: 0,\n receiveRateNum: 0,\n timestamp: 0,\n };\n return (\n
\n
\n {t(`common.tradePage.${interval}`)} {t('common.tradePage.fr')}\n
\n
\n
\n {isLongPay ? t('common.tradePage.longPay') : t('common.tradePage.shortPay')}\n {isLongPay ? t('common.tradePage.shortReceive') : t('common.tradePage.longReceive')}\n
\n
\n \n {WrappedBigNumber.from(payRateNum).abs().formatPriceNumberWithTooltip({\n colorShader: false,\n suffix: '%',\n })}\n \n \n {WrappedBigNumber.from(receiveRateNum).abs().formatPriceNumberWithTooltip({\n colorShader: false,\n suffix: '%',\n })}\n \n
\n
\n
{moment(new Date(timestamp)).format('YYYY MM-DD HH:mm')}
\n
\n );\n}\n","import './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport { FundingChartInterval, FundingRateData } from '@synfutures/sdks-perp-datasource';\nimport { ComponentProps, useMemo } from 'react';\nimport { Legend, Line, LineChart, ReferenceLine, ResponsiveContainer, Tooltip, XAxis, YAxis } from 'recharts';\n\nimport Loading from '@/components/Loading';\nimport { WrappedPair } from '@/entities/WrappedPair';\n\nimport { useMockDevTool } from '@/components/Mock';\nimport { useFuturesFundingChartsData, useIsFetchedFuturesFundingCharts } from '@/features/futures/hooks';\nimport { watemarkBase64 } from '../TradingView/assets/watemark_base64';\nimport { FundingLegend } from './FundingLegend/FundingLegend';\nimport FundingTooltip from './FundingTooltip';\n\ntype IProps = ComponentProps<'div'> & {\n chainId?: CHAIN_ID;\n currentPair?: WrappedPair;\n chartDuration: FundingChartInterval;\n data?: FundingRateData[];\n};\nconst lineProps = {\n type: 'monotone',\n strokeWidth: 1,\n dot: false,\n};\nexport default function FundingChart({ chainId, currentPair, chartDuration, ...others }: IProps): JSX.Element {\n // const dispatch = useAppDispatch();\n const fundingChartDataList = useFuturesFundingChartsData(\n chainId,\n currentPair?.instrumentAddr,\n currentPair?.expiry,\n chartDuration,\n );\n const isFetched = useIsFetchedFuturesFundingCharts(\n chainId,\n currentPair?.instrumentAddr,\n currentPair?.expiry,\n chartDuration,\n );\n // const fundingChartDataList = useFundingChartData(chainId, currentPair, chartDuration);\n // const fetchingStatus = useFundingChartFetchingStatus(chainId, currentPair?.id, chartDuration);\n const preprocessedData = useMemo(() => {\n return fundingChartDataList?.map(({ timestamp, payRate, receiveRate, isLongPay }) => ({\n timestamp: timestamp * 1000,\n receiveRateNum: receiveRate.times(100).toNumber(),\n payRateNum: payRate.times(100).toNumber(),\n isLongPay,\n }));\n }, [fundingChartDataList]);\n const { isMockSkeleton } = useMockDevTool();\n // useEffect(() => {\n // if (currentPair && chainId) {\n // try {\n // dispatch(\n // getPairFundingData({\n // chainId,\n // pair: currentPair,\n // interval: chartDuration,\n // }),\n // );\n // } catch (e) {\n // console.log('🚀 ~ file: index.tsx:139 ~ useEffect ~ e:', e);\n // }\n // }\n // }, [chainId, currentPair, dispatch, chartDuration]);\n return (\n \n {isMockSkeleton || !preprocessedData || !isFetched ? (\n \n ) : (\n <>\n
\n \n \n {\n if (value === 0) {\n return '';\n }\n return `${Number(value).toPrecision(2)}%`;\n }}\n mirror={true}\n />\n } />\n } />\n {\n return i === 2\n ? `${new Date(value).toLocaleString('default', { month: 'short' })}`\n : `${new Date(value).getDate()}`;\n }}\n dy={35}\n axisLine={false}\n dataKey=\"timestamp\"\n tickLine={false}\n tick={{ color: '#1F292E99', fontSize: 12 }}\n />\n \n \n \n \n \n \n )}\n
\n );\n}\n","/**\n * @description Component-CustomTooltip\n */\nimport './index.less';\n\nimport { DepthChartData } from '@synfutures/sdks-perp-datasource';\nimport classNames from 'classnames';\nimport * as d3Scale from 'd3-scale';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { formatPercentage } from '@/components/NumberFormat';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\ninterface IPropTypes {\n className?: string;\n data: DepthChartData | undefined;\n chartWidth: number;\n chartHeight: number;\n left?: boolean;\n show?: boolean;\n pair: WrappedPair | undefined;\n fairPrice: number | undefined;\n xScale: d3Scale.ScaleLinear;\n yScale: d3Scale.ScaleLinear;\n}\nconst CustomTooltip: FC = function ({\n data,\n className,\n left,\n xScale,\n yScale,\n chartHeight,\n show = true,\n fairPrice,\n chartWidth,\n pair,\n}) {\n const fairDis = xScale(fairPrice || chartWidth / 2);\n const leftDis = useMemo(() => (data ? xScale(data.price) : fairDis), [data, fairDis, xScale]);\n const top = useMemo(() => (data ? yScale(data.base) : chartHeight / 2), [chartHeight, data, yScale]);\n const translateX = useMemo(() => {\n if (left) {\n if (leftDis + 144 > fairDis) {\n return true;\n }\n } else {\n if (leftDis - 144 > fairDis) {\n return true;\n }\n }\n return false;\n }, [fairDis, left, leftDis]);\n const pi = useMemo(() => (data && fairPrice ? (fairPrice - data.price) / fairPrice : 0), [data, fairPrice]);\n const styles = useMemo(\n () => ({\n left: leftDis,\n top: top,\n opacity: 1,\n transform: `translate( ${translateX ? '-148px' : '2px'}, -100%)`,\n }),\n [leftDis, top, translateX],\n );\n const dotStyles = useMemo(\n () => ({\n left: leftDis,\n top: top,\n opacity: 1,\n }),\n [leftDis, top],\n );\n const { t } = useTranslation();\n if (!data || !show) {\n return null;\n }\n return (\n <>\n
\n \n
\n
\n
\n
{t('common.tradeFormDetails.pi')}
\n
{formatPercentage({ percentage: -pi, prefix: -pi > 0 ? '+' : '', colorShader: false })}
\n
\n
\n
{t('common.price')}
\n
{WrappedBigNumber.from(data.price).formatPriceNumberWithTooltip({ isShowTBMK: true })}
\n
\n
\n
{t('common.size')}
\n
\n {WrappedBigNumber.from(data.base).formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: pair?.rootInstrument.baseToken.symbol,\n })}{' '}\n
\n
\n
\n
\n
\n \n );\n};\n\nexport default CustomTooltip;\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * @description Component-PriceDepthChart\n */\n\nimport { DepthChartData } from '@synfutures/sdks-perp-datasource';\nimport classNames from 'classnames';\nimport { axisBottom, axisLeft } from 'd3-axis';\nimport { ScaleLinear, scaleLinear, scaleLog } from 'd3-scale';\nimport * as d3 from 'd3-selection';\nimport { area, curveStepAfter, line } from 'd3-shape';\nimport { zoom } from 'd3-zoom';\nimport _ from 'lodash';\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport './index.less';\n\nimport Loading from '@/components/Loading';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { formatDisplayNumber, reduceArrayByStep } from '@/utils/numberUtil';\n\nimport { useFuturesDepthChartsData, useIsFetchedFuturesDepthCharts } from '@/features/futures/hooks';\nimport { watemarkBase64 } from '../TradingView/assets/watemark_base64';\nimport CustomTooltip from './CustomTooltip';\ninterface IProps {\n isMobile?: boolean;\n pair: WrappedPair | undefined;\n}\n// let depthPolling: NodeJS.Timeout | undefined = undefined;\nfunction PriceDepthChart({ pair }: IProps): JSX.Element {\n const chainId = useChainId();\n // const sdkContext = useSDK(chainId);\n // const dispatch = useAppDispatch();\n // const stepRatios = usePairStepRatios(pair?.rootInstrument?.setting?.initialMarginRatio);\n // const stepRatio = useMemo(() => _.min(stepRatios), [stepRatios]);\n const depthDataFromApi = useFuturesDepthChartsData(chainId, pair?.rootInstrument.instrumentAddr, pair?.expiry);\n\n // const depthData = usePairDepthData(chainId, pair, stepRatio);\n\n // const fetchingStatus = usePairDepthDataStatus(chainId, pair?.id, stepRatio);\n const isFetched = useIsFetchedFuturesDepthCharts(chainId, pair?.rootInstrument.instrumentAddr, pair?.expiry);\n const contentRef = useRef(null);\n const [chartWidth, setChartWidth] = useState(760);\n const [leftWidth, setLeftWidth] = useState(0);\n const [rightWidth, setRightWidth] = useState(760);\n const chartHeight = 370;\n const kScale = scaleLog().domain([1.01, 20]).range([40, 98]).clamp(true);\n const [showTooltip, setShowTooltip] = useState(false);\n const [rightPriceData, setRightPriceData] = useState(undefined);\n const [leftPriceData, setLeftPriceData] = useState(undefined);\n const getDataByScale = useCallback(\n (data: DepthChartData[], scale: number, left?: boolean) => {\n const last = _.last(data);\n if (pair && last) {\n const fairPrice = pair.wrapAttribute('fairPrice');\n const gap = fairPrice.min(last.price).abs();\n const distance = gap.mul(100 - scale).dividedBy(100);\n const getStep = (length: number) => (length > 2000 ? 10 : 4);\n if (left) {\n const capPrice = fairPrice.min(distance);\n const filteredData = data.filter((d) => capPrice.lte(d.price));\n return reduceArrayByStep(filteredData, getStep(filteredData.length));\n } else {\n const capPrice = fairPrice.add(distance);\n const filteredData = data.filter((d) => capPrice.gte(d.price));\n return reduceArrayByStep(filteredData, getStep(filteredData.length));\n }\n }\n return data;\n },\n // only fairprice\n [pair?.fairPrice._hex],\n );\n\n const [scale, setScale] = useState(1);\n const leftData = useMemo(\n () => getDataByScale(depthDataFromApi?.left || [], scale, true),\n [depthDataFromApi?.left, getDataByScale, scale],\n );\n const rightData = useMemo(\n () => getDataByScale(depthDataFromApi?.right || [], scale),\n [depthDataFromApi?.right, getDataByScale, scale],\n );\n const xMinMax = useMemo(() => {\n return [_.last(leftData)?.price || 0, _.last(rightData)?.price || 10000];\n }, [leftData, rightData]);\n const yMinMax = useMemo(() => {\n return [0, _.max([_.last(leftData)?.base, _.last(rightData)?.base]) || 10000];\n }, [leftData, rightData]);\n const xAxisScale = useMemo(() => scaleLinear().domain(xMinMax).range([0, chartWidth]), [chartWidth, xMinMax]);\n const yAxisScale = useMemo(() => scaleLinear().domain(yMinMax).range([chartHeight, 0]), [yMinMax]);\n const fairPriceLeft = useMemo(\n () => (pair ? xAxisScale(pair?.wrapAttribute('fairPrice').toNumber()) : chartWidth / 2),\n [chartWidth, pair, xAxisScale],\n );\n const getNearestData = useCallback((price: number, datas: DepthChartData[]): DepthChartData => {\n const data = datas.reduce((prev, current) => {\n const aDiff = Math.abs(prev.price - price);\n const bDiff = Math.abs(current.price - price);\n if (aDiff == bDiff) {\n return prev.price > current.price ? prev : current;\n } else {\n return bDiff < aDiff ? current : prev;\n }\n }, datas[0]);\n return data;\n }, []);\n const setLeftRightPrices = useCallback(\n (rawPrice: number) => {\n if (pair && !!leftData.length && !!rightData.length) {\n const isRight = pair.wrapAttribute('fairPrice').lte(rawPrice);\n const data = getNearestData(rawPrice, (isRight ? rightData : leftData) || []);\n if (!data) {\n return;\n }\n const dataGap = pair.wrapAttribute('fairPrice').min(data.price).abs().toNumber();\n const symmetricalPrice = pair\n .wrapAttribute('fairPrice')\n .add(dataGap * (pair.wrapAttribute('fairPrice').gt(data.price) ? 1 : -1))\n .toNumber();\n let symmetricalData: DepthChartData | undefined = getNearestData(\n symmetricalPrice,\n (isRight ? leftData : rightData) || [],\n );\n if (symmetricalData.price === data.price) {\n symmetricalData = undefined;\n }\n const leftPriceData = pair.wrapAttribute('fairPrice').gt(data.price) ? data : symmetricalData;\n const rightPriceData = pair.wrapAttribute('fairPrice').lte(data.price) ? data : symmetricalData;\n setLeftWidth(leftPriceData ? xAxisScale(leftPriceData.price) : 0);\n setRightWidth(rightPriceData ? chartWidth - xAxisScale(rightPriceData.price) : 0);\n setLeftPriceData(leftPriceData);\n setRightPriceData(rightPriceData);\n }\n },\n [chartWidth, getNearestData, leftData, pair, rightData, xAxisScale],\n );\n const onMouseMove = useCallback(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n (event: MouseEvent) => {\n const mouse = d3.pointer(event);\n const price = xAxisScale.invert(mouse[0]);\n setLeftRightPrices(price);\n },\n [setLeftRightPrices, xAxisScale],\n );\n const updatePrices = useCallback(\n (axis: ScaleLinear) => {\n if (depthDataFromApi && showTooltip) {\n const leftPriceRaw = axis.invert(leftWidth);\n setLeftRightPrices(leftPriceRaw);\n }\n },\n [depthDataFromApi, leftWidth, setLeftRightPrices, showTooltip],\n );\n const areaFunc = useCallback(\n (axis: ScaleLinear) => {\n return area()\n .curve(curveStepAfter)\n .x((d) => axis(d.price))\n .y0(yAxisScale(0))\n .y1((d) => yAxisScale(d.base));\n },\n [yAxisScale],\n );\n const lineFunc = useCallback(\n (axis: ScaleLinear) =>\n line()\n .x((d) => axis(d.price))\n .y((d) => yAxisScale(d.base))\n .curve(curveStepAfter),\n [yAxisScale],\n );\n const xAxis = useCallback((x: ScaleLinear) => axisBottom(x).tickPadding(4).tickSize(0), []);\n const initSvg = useCallback(() => {\n const [min, max] = xMinMax;\n if (!min || !max || !pair) {\n return;\n }\n const svg = d3.select('.coin-price-chart__container svg').node()\n ? d3.select('.coin-price-chart__container svg')\n : d3\n .select('.coin-price-chart__container')\n .append('svg')\n .attr('viewBox', [0, 0, chartWidth, chartHeight + 24])\n .attr('width', chartWidth)\n .attr('height', chartHeight + 24);\n\n const gArea = svg.select('g.area').node()\n ? svg.select('g.area')\n : svg.append('g').attr('class', 'area').attr('transform', `translate(0,0)`);\n // areas\n const pathLeft = d3.select('#pathLeft').node()\n ? d3.select('#pathLeft')\n : gArea.append('path').attr('fill', '#14B84B33').attr('id', 'pathLeft');\n pathLeft.attr('d', areaFunc(xAxisScale)(leftData || []));\n const lineLeft = d3.select('#lineLeft').node()\n ? d3.select('#lineLeft')\n : gArea\n .append('path')\n .attr('fill', 'none')\n .attr('stroke', '#14B84B')\n .attr('stroke-width', 1)\n .attr('id', 'lineLeft');\n lineLeft.attr('d', lineFunc(xAxisScale)(leftData || []));\n const pathRight = d3.select('#pathRight').node()\n ? d3.select('#pathRight')\n : gArea.append('path').attr('fill', '#FF666633').attr('id', 'pathRight');\n pathRight.attr('d', areaFunc(xAxisScale)(rightData || []));\n const lineRight = d3.select('#lineRight').node()\n ? d3.select('#lineRight')\n : gArea\n .append('path')\n .attr('fill', 'none')\n .attr('stroke', '#FF6666')\n .attr('stroke-width', 1)\n .attr('id', 'lineRight');\n lineRight.attr('d', lineFunc(xAxisScale)(rightData || []));\n\n // axis X\n const axisX = d3.select('#axisX').node()\n ? d3.select('#axisX')\n : svg.append('g').attr('id', 'axisX').attr('transform', `translate(0,${chartHeight})`);\n axisX\n .call(\n xAxis(xAxisScale)\n .tickValues([min, pair?.wrapAttribute('fairPrice').toNumber(), max])\n .tickSizeInner(0)\n .tickFormat((v) => formatDisplayNumber({ num: v as number, type: 'price' }))\n .tickSizeOuter(0) as any,\n )\n .call((g) => g.select('.tick:last-of-type text').attr('x', -3).attr('text-anchor', 'end'))\n .call((g) => g.select('.tick:first-of-type text').attr('x', 3).attr('text-anchor', 'start'))\n .attr('class', 'axis');\n\n //Axis Y\n const axisY = d3.select('#axisY').node()\n ? d3.select('#axisY')\n : svg.append('g').attr('id', 'axisY').attr('transform', `translate(${chartWidth},0)`).attr('height', chartHeight);\n axisY\n .call(\n axisLeft(yAxisScale)\n .ticks(7)\n .tickSize(0)\n .tickFormat((v) => formatDisplayNumber({ num: v as number, isShowTBMK: true, type: 'price' }))\n .tickPadding(10)\n .tickSizeInner(0)\n .tickSizeOuter(0) as any,\n )\n .call((g) => g.select('.tick text').attr('y', -12).attr('text-anchor', 'end'))\n .attr('class', 'axis');\n\n //zoom\n const zoomFunc = zoom()\n .scaleExtent([1, 20])\n .extent([\n [0, 0],\n [chartWidth, chartHeight],\n ])\n .translateExtent([\n [0, -Infinity],\n [chartWidth, Infinity],\n ]);\n svg.call(zoomFunc as any);\n const zoomRect = d3.select('#zoomRect').node()\n ? d3.select('#zoomRect')\n : d3\n .select('.coin-price-chart__svg g')\n .append('rect')\n .attr('id', 'zoomRect')\n .attr('width', chartWidth)\n .attr('height', chartHeight)\n .attr('fill', 'none')\n .attr('pointer-events', 'all');\n zoomRect\n .on('mouseenter', () => {\n setShowTooltip(true);\n })\n .on('mouseout', () => {\n setShowTooltip(false);\n })\n .on('mousemove', onMouseMove)\n .call(\n zoomFunc.on('zoom', (event) => {\n const k = event.transform.k;\n const scale = k === 1 ? 0 : kScale(k);\n setScale(scale);\n }) as any,\n );\n }, [\n xMinMax,\n pair,\n chartWidth,\n areaFunc,\n xAxisScale,\n leftData,\n lineFunc,\n rightData,\n xAxis,\n yAxisScale,\n onMouseMove,\n kScale,\n ]);\n // const getDepthChartData = useCallback(() => {\n // if (pair && chainId && sdkContext) {\n // try {\n // dispatch(\n // getPairDepthChartData({\n // chainId,\n // instrumentAddr: pair?.rootInstrument.instrumentAddr,\n // expiry: pair.expiry,\n // sdkContext,\n // stepRatio,\n // isInverse: pair.isInverse,\n // }),\n // );\n // } catch (e) {\n // console.log('🚀 ~ file: index.tsx:196 ~ useEffect ~ e:', e);\n // }\n // }\n // }, [chainId, dispatch, pair, sdkContext, stepRatio]);\n\n useEffect(() => {\n if (!!leftData.length) {\n initSvg();\n updatePrices(xAxisScale);\n }\n // only dep on this\n }, [leftData]);\n\n useEffect(() => {\n setScale(1);\n }, [pair?.id]);\n\n // useEffect(() => {\n // if (pair && chainId && sdkContext && stepRatio) {\n // try {\n // clearInterval(depthPolling);\n // depthPolling = pollingFunc(() => {\n // getDepthChartData();\n // }, POLLING_ORDER_BOOK);\n // } catch (e) {\n // console.log('🚀 ~ file: index.tsx:220 ~ useEffect ~ e:', e);\n // }\n // }\n // return () => {\n // depthPolling && clearInterval(depthPolling);\n // };\n // // only these four\n // }, [chainId, pair?.id, pair?.fairPrice._hex, stepRatio]);\n\n // update chartWidth on resizing\n const updateChartWidth = useCallback(\n _.throttle(() => {\n setChartWidth(contentRef.current?.offsetWidth || 760);\n }, 150),\n [],\n );\n useEffect(() => {\n window.addEventListener('resize', updateChartWidth);\n setChartWidth(contentRef.current?.offsetWidth || 760);\n // no deps\n }, []);\n return (\n <>\n \n
\n {!isFetched && }\n
\n {depthDataFromApi && (\n <>\n \n \n \n \n \n \n
\n \n \n )}\n
\n \n );\n}\nexport default memo(PriceDepthChart);\n","import { Select as AntSelect, SelectProps } from 'antd';\nimport classNames from 'classnames';\n\nimport { ReactComponent as IconDown } from '@/assets/svg/icon_chevron_down.svg';\nimport { mockOpenDropdown } from '@/constants/mock';\n\n// import './select.less';\n\nexport function Select({ children, className, popupClassName, ...props }: SelectProps): JSX.Element {\n return (\n \n open={mockOpenDropdown ? mockOpenDropdown : undefined}\n suffixIcon={}\n {...props}\n className={classNames('syn-select', className)}\n popupClassName={classNames('syn-select-dropdown', popupClassName)}>\n {children}\n \n );\n}\n\nexport const { Option } = AntSelect;\n","var _path, _path2, _path3;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconRebateRound = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 26,\n height: 26,\n viewBox: \"0 0 26 26\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5.89165 6.73052C7.63064 4.76677 10.1667 3.52084 12.9999 3.52084C18.237 3.52084 22.4791 7.76295 22.4791 13C22.4791 18.2371 18.237 22.4792 12.9999 22.4792C8.57914 22.4792 4.87172 19.4568 3.81735 15.3696C3.70526 14.9351 3.96663 14.492 4.40114 14.3799C4.83565 14.2678 5.27875 14.5292 5.39084 14.9637C6.26481 18.3516 9.33905 20.8542 12.9999 20.8542C17.3395 20.8542 20.8541 17.3396 20.8541 13C20.8541 8.66041 17.3395 5.14584 12.9999 5.14584C10.6558 5.14584 8.55597 6.17406 7.11001 7.8058L4.94523 10.2845C4.65005 10.6225 4.13678 10.6572 3.7988 10.362C3.46082 10.0668 3.42612 9.55352 3.7213 9.21554L5.89165 6.73052Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.79167 10.8333C3.49251 10.8333 3.25 10.5908 3.25 10.2917L3.25 7.8077C3.25 7.32513 3.83345 7.08345 4.17468 7.42468L6.65865 9.90865C6.99988 10.2499 6.75821 10.8333 6.27563 10.8333H3.79167Z\",\n fill: \"#00BFBF\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.9999 18.4167C15.9915 18.4167 18.4166 15.9916 18.4166 13C18.4166 10.0085 15.9915 7.58334 12.9999 7.58334C10.0084 7.58334 7.58325 10.0085 7.58325 13C7.58325 15.9916 10.0084 18.4167 12.9999 18.4167ZM13.6499 10.4C13.6499 10.041 13.3589 9.75001 12.9999 9.75001C12.6409 9.75001 12.3499 10.041 12.3499 10.4V10.4328C12.04 10.4961 11.7528 10.649 11.5258 10.876C11.2211 11.1807 11.0499 11.594 11.0499 12.025C11.0499 12.456 11.2211 12.8693 11.5258 13.1741C11.8306 13.4788 12.2439 13.65 12.6749 13.65H13.3249C13.4111 13.65 13.4937 13.6843 13.5547 13.7452C13.6156 13.8062 13.6499 13.8888 13.6499 13.975C13.6499 14.0612 13.6156 14.1439 13.5547 14.2048C13.4937 14.2658 13.4111 14.3 13.3249 14.3H11.6999C11.3409 14.3 11.0499 14.591 11.0499 14.95C11.0499 15.309 11.3409 15.6 11.6999 15.6H12.3499C12.3499 15.959 12.6409 16.25 12.9999 16.25C13.3589 16.25 13.6499 15.959 13.6499 15.6V15.5672C13.9597 15.5039 14.2469 15.351 14.4739 15.1241C14.7787 14.8193 14.9499 14.406 14.9499 13.975C14.9499 13.544 14.7787 13.1307 14.4739 12.826C14.1692 12.5212 13.7558 12.35 13.3249 12.35H12.6749C12.5887 12.35 12.506 12.3158 12.4451 12.2548C12.3841 12.1939 12.3499 12.1112 12.3499 12.025C12.3499 11.9388 12.3841 11.8562 12.4451 11.7952C12.506 11.7343 12.5887 11.7 12.6749 11.7H14.2999C14.6589 11.7 14.9499 11.409 14.9499 11.05C14.9499 10.691 14.6589 10.4 14.2999 10.4H13.6499Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconRebateRound);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_rebate_round.6b76c5a8f5d9455df1a9060d1344ceee.svg\";","/**\n * @description Component-StepRatioSelector\n */\nimport './index.less';\n\nimport { FC, useEffect, useMemo, useState } from 'react';\n\nimport { Select } from '@/components/Select';\nimport { DEFAULT_STEP_RATIO } from '@/constants/trade';\nimport { usePairStepRatios } from '@/features/trade/hooks';\n\nimport { ReactComponent as DownIcon } from '@/assets/svg/dropdown.svg';\nimport { SelectProps } from 'antd/es/select';\ninterface IPropTypes {\n className?: string;\n imr: number | undefined;\n onChange: (value: number) => void;\n withBaseBPs?: boolean;\n numbersOverride?: number[];\n defaultStepRatioOverride?: number;\n}\n// base 10000\nconst StepRatioSelector: FC = function ({\n imr,\n dropdownStyle,\n onChange,\n dropdownAlign,\n withBaseBPs,\n numbersOverride,\n defaultStepRatioOverride,\n}) {\n const defaultStepRatio = defaultStepRatioOverride || DEFAULT_STEP_RATIO;\n const [value, setValue] = useState(defaultStepRatio);\n const numbers = usePairStepRatios(imr, withBaseBPs);\n const options = useMemo(() => {\n if (numbersOverride) {\n return numbersOverride.map((n: number) => ({ value: n, label: `${n / 100}%` }));\n }\n if (numbers) {\n return numbers.map((n: number) => ({ value: n, label: `${n / 100}%` }));\n }\n return [];\n }, [numbers, numbersOverride]);\n useEffect(() => {\n setValue(defaultStepRatio);\n onChange(defaultStepRatio);\n // only this\n }, [imr]);\n return (\n }\n options={options}\n value={value}\n popupClassName=\"syn-step-ratio-selector-popup\"\n onChange={(value) => {\n onChange(value);\n setValue(value);\n }}\n dropdownStyle={dropdownStyle}\n dropdownAlign={dropdownAlign}\n className=\"syn-step-ratio-selector\"\n />\n );\n};\n\nexport default StepRatioSelector;\n","/**\n * @description Component-CoinPriceChart\n */\nimport './index.less';\n\nimport { FundingChartInterval, KlineInterval } from '@synfutures/sdks-perp-datasource';\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Card from '@/components/Card';\nimport { FETCHING_STATUS } from '@/constants';\nimport { CHART_TYPE, DEFAULT_STEP_RATIO } from '@/constants/trade';\nimport { getPairKlineData } from '@/features/chart/actions';\nimport { useKlineChartData, useKlineChartFetchingStatus } from '@/features/chart/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { setFundingChartDuration, setPairChartDuration, setPairStepRatio } from '@/features/trade/actions';\nimport { useChartDuration, useFundingChartDuration, useStepRatio } from '@/features/trade/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\n\nimport ChartInfo from './ChartInfo';\nimport FundingChart from './FundingChart';\n// import CoinPriceDetail from './CoinPriceDetail';\nimport SynCircleTabs from '@/components/Tabs/SynCircleTabs';\nimport SynTitleTabs from '@/components/Tabs/SynTitleTabs';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport KLineChart from './KLineChart';\nimport OrderBook from './OrderBook';\nimport PriceDepthChart from './PriceDepthChart';\nimport StepRatioSelector from './StepRatioSelector';\n// import CoinPriceDepthChart from './CoinPriceDepthChart';\n// import PriceDepthChart from './PriceDepthChart';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst CoinPriceChart: FC = function ({ className = '' }) {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const dappConfig = useBackendChainConfig(chainId);\n const [tab, setTab] = useState(CHART_TYPE.PRICE);\n const chartDuration = useChartDuration(chainId);\n const fundingChartDuration = useFundingChartDuration(chainId);\n const setChartDuration = useCallback(\n (duration: KlineInterval) => {\n chainId && dispatch(setPairChartDuration({ chainId, chartDuration: duration }));\n },\n [chainId, dispatch],\n );\n const setFundingChartDurationCB = useCallback(\n (duration: FundingChartInterval) => {\n chainId && dispatch(setFundingChartDuration({ chainId, chartDuration: duration }));\n },\n [chainId, dispatch],\n );\n const stepRatio = useStepRatio(chainId);\n const setStepRatio = useCallback(\n (stepRatio: number) => {\n chainId && dispatch(setPairStepRatio({ chainId, stepRatio }));\n },\n [chainId, dispatch],\n );\n\n const currentPair = useCurrentPairFromUrl(chainId);\n const kLineDataList = useKlineChartData(chainId, currentPair, chartDuration);\n const fetchingStatus = useKlineChartFetchingStatus(chainId, currentPair?.id, chartDuration);\n const fetchingStatusForHour = useKlineChartFetchingStatus(chainId, currentPair?.id, KlineInterval.HOUR);\n const kLineDataListForHour = useKlineChartData(chainId, currentPair, KlineInterval.HOUR);\n const tabList = useMemo(\n () =>\n !kLineDataList?.length && fetchingStatus === FETCHING_STATUS.DONE\n ? [{ label: t('common.tradePage.info'), vale: CHART_TYPE.INFO, key: CHART_TYPE.INFO }]\n : [\n { label: t('common.tradePage.price'), vale: CHART_TYPE.PRICE, key: CHART_TYPE.PRICE },\n { label: t('common.tradePage.depth'), vale: CHART_TYPE.DEPTH, key: CHART_TYPE.DEPTH },\n { label: t('common.tradePage.funding'), vale: CHART_TYPE.FUNDING, key: CHART_TYPE.FUNDING },\n { label: t('common.tradePage.info'), vale: CHART_TYPE.INFO, key: CHART_TYPE.INFO },\n ],\n [fetchingStatus, kLineDataList?.length, t],\n );\n useEffect(() => {\n const defaultDuration =\n (dappConfig?.trade.fundingChartInterval.default as FundingChartInterval) || FundingChartInterval.HOUR;\n setFundingChartDurationCB(defaultDuration);\n return () => {\n setFundingChartDurationCB(defaultDuration);\n };\n }, [dappConfig?.trade.fundingChartInterval.default, setFundingChartDurationCB]);\n useEffect(() => {\n const defaultDuration = (dappConfig?.trade.klineInterval.default as KlineInterval) || KlineInterval.HOUR;\n setChartDuration(defaultDuration);\n return () => {\n const defaultDuration = (dappConfig?.trade.klineInterval.default as KlineInterval) || KlineInterval.HOUR;\n setChartDuration(defaultDuration);\n };\n }, [chainId, dappConfig?.trade.klineInterval.default, setChartDuration, currentPair]);\n\n useEffect(() => {\n return () => {\n setStepRatio(DEFAULT_STEP_RATIO);\n };\n }, [chainId, setStepRatio]);\n\n useEffect(() => {\n if (currentPair && chainId) {\n try {\n dispatch(\n getPairKlineData({\n chainId,\n instrumentAddr: currentPair.rootInstrument.id,\n expiry: currentPair.expiry,\n chartDuration,\n minTradeValue: currentPair?.rootInstrument?.minTradeValue,\n }),\n );\n } catch (e) {\n console.log('🚀 ~ file: index.tsx:122 ~ useEffect ~ e:', e);\n }\n }\n }, [currentPair?.id, chainId, chartDuration]);\n\n useEffect(() => {\n setTab(CHART_TYPE.PRICE);\n }, [chainId, currentPair?.id]);\n\n useEffect(() => {\n // set tab to info when no data\n if (fetchingStatusForHour === FETCHING_STATUS.DONE && !kLineDataListForHour?.length && tab !== CHART_TYPE.INFO) {\n setTab(CHART_TYPE.INFO);\n }\n }, [fetchingStatusForHour, kLineDataListForHour, tab]);\n\n return (\n \n <>\n
\n
\n <>\n
\n fetchingStatus === FETCHING_STATUS.DONE && setTab(key as CHART_TYPE)}\n items={tabList}\n />\n {tab === CHART_TYPE.PRICE && (\n {\n return {\n label: t(`common.tradePage.${interval}`),\n key: interval,\n };\n }) || []\n }\n activeKey={chartDuration}\n onClick={(key) => {\n setChartDuration(key as KlineInterval);\n }}\n />\n )}\n {tab === CHART_TYPE.FUNDING && (\n {\n return {\n label: t(`common.tradePage.${interval}`),\n key: interval,\n };\n }) || []\n }\n activeKey={fundingChartDuration}\n onClick={(key) => {\n setFundingChartDurationCB(key as FundingChartInterval);\n }}\n />\n )}\n
\n\n {/* {fetchingStatus === FETCHING_STATUS.DONE && !kLineDataList?.length && tab !== CHART_TYPE.INFO && (\n
{t('common.nodata')}
\n )} */}\n\n {tab === CHART_TYPE.PRICE && (\n \n )}\n {tab === CHART_TYPE.FUNDING && (\n \n )}\n {tab === CHART_TYPE.DEPTH && }\n\n {tab === CHART_TYPE.INFO && }\n \n
\n
\n
\n
\n {t('common.orderBook.orderB')}\n \n
\n \n
\n
\n
\n \n
\n );\n};\n\nexport default CoinPriceChart;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDistImg01 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 80,\n height: 36,\n viewBox: \"0 0 80 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16 22C17.8638 22 19.4299 20.7252 19.874 19H28.126C28.5701 20.7252 30.1362 22 32 22C33.8638 22 35.4299 20.7252 35.874 19H44.126C44.5701 20.7252 46.1362 22 48 22C49.8638 22 51.4299 20.7252 51.874 19H60.126C60.5701 20.7252 62.1362 22 64 22C66.2091 22 68 20.2091 68 18C68 15.7909 66.2091 14 64 14C62.1362 14 60.5701 15.2748 60.126 17H51.874C51.4299 15.2748 49.8638 14 48 14C46.1362 14 44.5701 15.2748 44.126 17H35.874C35.4299 15.2748 33.8638 14 32 14C30.1362 14 28.5701 15.2748 28.126 17H19.874C19.4299 15.2748 17.8638 14 16 14C13.7909 14 12 15.7909 12 18C12 20.2091 13.7909 22 16 22ZM16 20C17.1046 20 18 19.1046 18 18C18 16.8954 17.1046 16 16 16C14.8954 16 14 16.8954 14 18C14 19.1046 14.8954 20 16 20ZM34 18C34 19.1046 33.1046 20 32 20C30.8954 20 30 19.1046 30 18C30 16.8954 30.8954 16 32 16C33.1046 16 34 16.8954 34 18ZM48 20C49.1046 20 50 19.1046 50 18C50 16.8954 49.1046 16 48 16C46.8954 16 46 16.8954 46 18C46 19.1046 46.8954 20 48 20ZM66 18C66 19.1046 65.1046 20 64 20C62.8954 20 62 19.1046 62 18C62 16.8954 62.8954 16 64 16C65.1046 16 66 16.8954 66 18Z\",\n fill: \"#C3E7E7\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDistImg01);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/dist_img_01.fdf3aaa81f0427a033d6475fcdf15916.svg\";","/**\n * @description Component-TradeFormSide\n */\nimport './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport { Side } from '@synfutures/sdks-perp';\nimport React, { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Tabs from '@/components/Tabs';\nimport { useTradeSide } from '@/features/trade/hooks';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n disabled?: boolean;\n chainId: CHAIN_ID | undefined;\n onSideChange: (key: string) => void;\n}\nconst TradeFormSide: FC = function ({ chainId, onSideChange, disabled }) {\n const tradeSide = useTradeSide(chainId);\n const { t } = useTranslation();\n const tradeSides = useMemo(() => {\n return [\n { label: t('common.buyUpper'), key: Side.LONG.toString(), value: Side.LONG.toString(), tabClass: 'LONG' },\n { label: t('common.sellUpper'), key: Side.SHORT.toString(), value: Side.SHORT.toString(), tabClass: 'SHORT' },\n ];\n }, [t]);\n return (\n !disabled && onSideChange(key)}\n value={tradeSide.toString().trim()}\n tabList={tradeSides}\n />\n );\n};\n\nexport default TradeFormSide;\n","/**\n * @description Component-PriceInputSlider\n */\nimport { Slider } from 'antd';\nimport './index.less';\n\nimport { DEFAULT_ORDER_COUNT, DEFAULT_STEP_RATIO } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useScaleFormState } from '@/features/trade/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { ORDER_SPACING, Side } from '@synfutures/sdks-perp';\nimport classNames from 'classnames';\nimport { FC, useCallback, useEffect, useMemo, useRef } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n range: number[];\n tradeSide: Side;\n disabled?: boolean;\n onChange: (ticks: number[]) => void;\n decimals?: number;\n upperPrice: WrappedBigNumber | undefined;\n lowerPrice: WrappedBigNumber | undefined;\n isInverse?: boolean;\n setSlierFocused: (focused: boolean) => void;\n}\nconst PriceInputSlider: FC = function ({ range, upperPrice, lowerPrice, tradeSide, onChange, disabled }) {\n const [lowerTick, upperTick] = range;\n const sliderRef = useRef(null);\n const chainId = useChainId();\n const sliderContainerRef = useRef(null);\n const scaleLimitFormState = useScaleFormState(chainId);\n const handleWidth = useMemo(() => {\n let width = 15;\n if (scaleLimitFormState?.orderCount && scaleLimitFormState?.stepRatio && upperTick) {\n width =\n ((sliderRef.current?.offsetWidth || 0) * scaleLimitFormState.stepRatio * (scaleLimitFormState.orderCount - 1)) /\n (upperTick - lowerTick);\n }\n return width < 15 ? 15 : width;\n }, [lowerTick, scaleLimitFormState?.orderCount, scaleLimitFormState?.stepRatio, upperTick]);\n const sliderValue = useMemo(() => {\n if (scaleLimitFormState.lowerTick) {\n return (scaleLimitFormState.upperTick + scaleLimitFormState.lowerTick) / 2;\n }\n const defaultSpacing = DEFAULT_STEP_RATIO * DEFAULT_ORDER_COUNT;\n return tradeSide === Side.LONG ? upperTick - defaultSpacing : lowerTick + defaultSpacing;\n }, [lowerTick, scaleLimitFormState.lowerTick, scaleLimitFormState.upperTick, tradeSide, upperTick]);\n console.log('🚀 ~ scaleLimitFormState:', sliderValue, lowerTick, upperTick, handleWidth);\n\n const onDrag = useCallback(\n (value: number) => {\n const countTicksGap = scaleLimitFormState.stepRatio * (scaleLimitFormState.orderCount - 1);\n\n let newLowerTick = value - countTicksGap / 2;\n let newUpperTick = value + countTicksGap / 2;\n if (value > scaleLimitFormState.upperTick) {\n newUpperTick = value;\n newLowerTick = value - countTicksGap;\n }\n if (value < scaleLimitFormState.lowerTick) {\n newLowerTick = value;\n newUpperTick = value + countTicksGap;\n }\n if (newLowerTick < lowerTick) {\n newLowerTick = lowerTick;\n newUpperTick = lowerTick + countTicksGap;\n }\n if (newUpperTick > upperTick) {\n newUpperTick = upperTick;\n newLowerTick = upperTick - countTicksGap;\n }\n onChange([newLowerTick, newUpperTick]);\n },\n [\n lowerTick,\n onChange,\n scaleLimitFormState.lowerTick,\n scaleLimitFormState.orderCount,\n scaleLimitFormState.stepRatio,\n scaleLimitFormState.upperTick,\n upperTick,\n ],\n );\n\n useEffect(() => {\n const handles = document.querySelectorAll('.syn-price-input-slider .ant-slider-handle');\n if (handles.length > 0 && scaleLimitFormState.orderCount) {\n handles[0].textContent = scaleLimitFormState.orderCount.toString();\n }\n }, [scaleLimitFormState.orderCount, lowerTick, scaleLimitFormState.lowerTick]);\n\n return (\n
\n
\n {lowerPrice?.formatPriceNumberWithTooltip()}\n {/* {scaleLimitFormState.lowerPrice ? ( */}\n
\n sliderContainerRef.current || document.body,\n rootClassName: `syn-price-input-slider-tooltip ${Side[tradeSide]}`,\n formatter: () => (\n <>\n {WrappedBigNumber.from(scaleLimitFormState.lowerPrice).formatPriceString({})} ~{' '}\n {WrappedBigNumber.from(scaleLimitFormState.upperPrice).formatPriceString({})}\n \n ),\n open: !!scaleLimitFormState.lowerPrice,\n }}\n value={sliderValue}\n onChange={onDrag}\n />\n
\n {/* // ) : (\n //
\n // )} */}\n\n {upperPrice?.formatPriceNumberWithTooltip()}\n
\n
\n );\n};\n\nexport default PriceInputSlider;\n","/**\n * @description Component-ScaleOrderCount\n */\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport Alert from '@/components/Alert';\nimport { DEFAULT_ORDER_COUNT, DEFAULT_STEP_RATIO, MIN_ORDER_COUNT } from '@/constants/trade';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { setScaleFormAmount } from '@/features/trade/actions';\nimport { useScaleFormState, useUpdatePriceByTicks } from '@/features/trade/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport StepRatioSelector from '@/pages/trade/CoinPriceChart/StepRatioSelector';\nimport { Context } from '@derivation-tech/context';\nimport { Side } from '@synfutures/sdks-perp';\nimport classNames from 'classnames';\nimport { FC, memo, useCallback, useEffect, useMemo, useState } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n lowerLimitTick: number;\n upperLimitTick: number;\n tradeSide: Side;\n sdkContext: Context | undefined;\n pair: WrappedPair | undefined;\n}\nconst ScaleOrderCount: FC = function ({ tradeSide, pair, lowerLimitTick, upperLimitTick }) {\n const chainId = useChainId();\n const scaleFormState = useScaleFormState(chainId);\n const { t } = useTranslation();\n const [count, setCount] = useState(DEFAULT_ORDER_COUNT);\n const dispatch = useAppDispatch();\n const [stepRatio, setStepRatio] = useState(DEFAULT_STEP_RATIO);\n const items = [1, 2, 3, 4, 5, 6, 7, 8, 9];\n const gap = useMemo(() => upperLimitTick - lowerLimitTick, [lowerLimitTick, upperLimitTick]);\n const bgWidth = useMemo(() => count * 20 + (count - 1) * 8 + 4, [count]);\n const updatePricesByTicks = useUpdatePriceByTicks();\n\n const onOrderSelect = useCallback(\n (orderCount?: number, stepRatio?: number) => {\n if (!chainId || !scaleFormState.lowerTick) return;\n !!orderCount && setCount(orderCount);\n orderCount = orderCount || scaleFormState.orderCount;\n stepRatio = stepRatio || scaleFormState.stepRatio;\n const countTicksGap = (orderCount - 1) * stepRatio;\n let newLowerTick = scaleFormState.lowerTick;\n let newUpperTick = scaleFormState.upperTick;\n if (tradeSide === Side.LONG) {\n newLowerTick = newUpperTick - countTicksGap;\n if (newLowerTick < lowerLimitTick) {\n newLowerTick = lowerLimitTick;\n newUpperTick = newLowerTick + countTicksGap;\n }\n }\n if (tradeSide === Side.SHORT) {\n newUpperTick = newLowerTick + countTicksGap;\n if (newUpperTick > upperLimitTick) {\n newUpperTick = upperLimitTick;\n newLowerTick = newUpperTick - countTicksGap;\n }\n }\n pair && updatePricesByTicks(newLowerTick, newUpperTick, pair);\n },\n [\n chainId,\n lowerLimitTick,\n pair,\n scaleFormState.lowerTick,\n scaleFormState.orderCount,\n scaleFormState.stepRatio,\n scaleFormState.upperTick,\n tradeSide,\n updatePricesByTicks,\n upperLimitTick,\n ],\n );\n useEffect(() => {\n chainId &&\n count &&\n dispatch(\n setScaleFormAmount({\n chainId,\n orderCount: count,\n stepRatio,\n }),\n );\n }, [stepRatio, count, chainId, dispatch]);\n\n return (\n
\n
\n
{t('common.tradePage.orderCount')}
\n
\n \n {items.map((orderCount) => (\n {\n if (orderCount === 1 || (!isNaN(gap) && orderCount * stepRatio > gap)) return;\n onOrderSelect(orderCount, stepRatio);\n }}\n key={orderCount}\n className={classNames(\n 'syn-scale-limit-form-section-order-counts-item',\n {\n selected: count >= orderCount,\n disabled: orderCount === 1 || (!isNaN(gap) && orderCount * stepRatio > gap),\n },\n Side[tradeSide],\n )}>\n {orderCount}\n
\n ))}\n
\n
\n
\n
{t('common.tradePage.gap')}
\n {\n setStepRatio(stepRatio);\n let countFinal = count;\n let total = countFinal * stepRatio;\n if (total > gap) {\n let index = items.length - 1;\n while (total > gap) {\n index = index - 1;\n countFinal = items[index];\n total = countFinal * stepRatio;\n }\n }\n onOrderSelect(countFinal, stepRatio);\n }}\n dropdownStyle={{ width: 73 }}\n withBaseBPs={true}\n dropdownAlign={{ points: ['tl', 'bl'], offset: [0, 12] }}\n imr={pair?.rootInstrument.metaFutures.setting.initialMarginRatio}\n />\n
\n {count < MIN_ORDER_COUNT && (\n \n )}\n
\n );\n};\n\nexport default memo(ScaleOrderCount);\n","/**\n * @description Component-PriceInput\n */\nimport { FETCHING_STATUS } from '@/constants';\nimport './index.less';\n\nimport Alert from '@/components/Alert';\nimport { Tooltip } from '@/components/ToolTip';\nimport { DEFAULT_ORDER_COUNT, DEFAULT_STEP_RATIO } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useGetDefaultLimitPrice, usePairLimitPriceRangeTicks } from '@/features/pair/hook';\nimport { setTradeFormSide } from '@/features/trade/actions';\nimport { useScaleFormState, useScaleFormStateStatus, useUpdatePriceByTicks } from '@/features/trade/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { Side } from '@synfutures/sdks-perp';\nimport { useDebounceEffect, useDebounceFn } from 'ahooks';\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport TradeFormSide from '../TradeFormBase/TradeFormSide';\nimport PriceInputSlider from './PriceInputSlider';\nimport ScaleOrderCount from './ScaleOrderCount';\n\nimport { Context } from '@derivation-tech/context';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n currentPair: WrappedPair | undefined;\n sdkContext: Context | undefined;\n tradeSide: Side;\n lowerPrice: WrappedBigNumber | undefined;\n upperPrice: WrappedBigNumber | undefined;\n disabled?: boolean;\n}\nconst PriceInput: FC = function ({ currentPair, disabled, sdkContext, tradeSide, lowerPrice, upperPrice }) {\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const scaleLimitFormState = useScaleFormState(chainId);\n const scaleLimitFormStatus = useScaleFormStateStatus(chainId);\n const { t } = useTranslation();\n const [sliderFocused, setSlierFocused] = useState(false);\n const updatePricesByTicks = useUpdatePriceByTicks();\n const lowerUpperTicks = usePairLimitPriceRangeTicks(currentPair, tradeSide, sdkContext);\n // const changeLimitPriceWhenOutOfRange = useScaleLimitPriceChangeWhenOutOfRange(chainId, inputFocused);\n const warningMsg = useMemo(() => {\n const lowerTick = WrappedBigNumber.from(scaleLimitFormState.lowerTick);\n if (lowerTick.gte(scaleLimitFormState.upperTick)) {\n return t('common.tradePage.warningMsg.lowerMoreThanUpper');\n }\n }, [scaleLimitFormState.lowerTick, scaleLimitFormState.upperTick, t]);\n const showAlignInfo = useMemo(\n () =>\n !warningMsg &&\n lowerPrice?.lte(scaleLimitFormState.lowerPrice || 0) &&\n upperPrice?.gte(scaleLimitFormState.upperPrice || 0) &&\n scaleLimitFormState.lowerPrice &&\n scaleLimitFormState.upperPrice &&\n (WrappedBigNumber.from(scaleLimitFormState.alignedLowerPrice || 0)?.notEq(scaleLimitFormState.lowerPrice) ||\n WrappedBigNumber.from(scaleLimitFormState.alignedUpperPrice || 0)?.notEq(\n scaleLimitFormState.alignedUpperPrice,\n )),\n [\n lowerPrice,\n scaleLimitFormState.alignedLowerPrice,\n scaleLimitFormState.alignedUpperPrice,\n scaleLimitFormState.lowerPrice,\n scaleLimitFormState.upperPrice,\n upperPrice,\n warningMsg,\n ],\n );\n const getDefaultLimitPriceTick = useGetDefaultLimitPrice(currentPair, tradeSide, sdkContext);\n const setDefaultLimitPriceTicks = useCallback(\n async (tradeSide: Side) => {\n const defaultLimit = await getDefaultLimitPriceTick(tradeSide);\n let countTicksGap = (DEFAULT_ORDER_COUNT - 1) * DEFAULT_STEP_RATIO;\n if (scaleLimitFormState.orderCount && scaleLimitFormState.stepRatio) {\n countTicksGap = scaleLimitFormState.stepRatio * (scaleLimitFormState.orderCount - 1);\n }\n if (defaultLimit && currentPair) {\n const defaultTick = defaultLimit.tick * (currentPair?.isInverse ? -1 : 1);\n if (tradeSide === Side.LONG) {\n const lowerInitialTick = defaultTick - countTicksGap;\n updatePricesByTicks(lowerInitialTick, defaultTick, currentPair);\n } else {\n const upperInitialTick = defaultTick + countTicksGap;\n updatePricesByTicks(defaultTick, upperInitialTick, currentPair);\n }\n }\n },\n [\n currentPair,\n getDefaultLimitPriceTick,\n scaleLimitFormState.orderCount,\n scaleLimitFormState.stepRatio,\n updatePricesByTicks,\n ],\n );\n const { run: onUpperLowerTicksChange } = useDebounceFn(() => {\n if (sliderFocused || !currentPair) return;\n const [lowerTick, upperTick] = lowerUpperTicks;\n const countTicksGap = (scaleLimitFormState.orderCount - 1) * scaleLimitFormState.stepRatio;\n if (lowerTick > scaleLimitFormState.lowerTick) {\n updatePricesByTicks(lowerTick, lowerTick + countTicksGap, currentPair);\n }\n if (upperTick < scaleLimitFormState.upperTick) {\n updatePricesByTicks(upperTick - countTicksGap, upperTick, currentPair);\n }\n });\n\n useEffect(() => {\n onUpperLowerTicksChange();\n // only this dep\n }, [lowerUpperTicks]);\n useDebounceEffect(() => {\n !scaleLimitFormState.lowerTick && setDefaultLimitPriceTicks(tradeSide);\n }, [lowerUpperTicks, scaleLimitFormState.lowerTick]);\n\n return (\n <>\n {\n const tradeSide = Number(key) as Side;\n setDefaultLimitPriceTicks(tradeSide);\n chainId &&\n dispatch(\n setTradeFormSide({\n chainId,\n tradeSide,\n }),\n );\n }}\n />\n \n
\n
\n \n {t('common.priceR')}\n {/* ({lowerPrice?.formatLiqPriceNumberWithTooltip()} -{' '}\n {upperPrice?.formatLiqPriceNumberWithTooltip()}) */}\n \n
\n currentPair && updatePricesByTicks(values[0], values[1], currentPair)}\n />\n {warningMsg && }\n {showAlignInfo && (\n \n {t('common.tradePage.scaleLimitSub')}\n \n \n {WrappedBigNumber.from(scaleLimitFormState.alignedLowerPrice).formatNumberWithTooltip({\n showToolTip: false,\n })}{' '}\n ~{' '}\n {WrappedBigNumber.from(scaleLimitFormState.alignedUpperPrice).formatNumberWithTooltip({\n showToolTip: false,\n })}\n \n \n \n }\n />\n )}\n
\n \n );\n};\n\nexport default PriceInput;\n","/**\n * @description Component-ScaleFormDetail\n */\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport './index.less';\n\nimport { useScaleFormState, useScaleSimulation } from '@/features/trade/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { toBN } from '@/utils/numberUtil';\nimport { Side } from '@synfutures/sdks-perp';\nimport { FC } from 'react';\nimport { LimitFormDetail } from '../TradeLimitForm/LimitFormDetail';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n currentPair?: WrappedPair;\n tradeSide: Side;\n}\nconst ScaleFormDetail: FC = function ({ currentPair, tradeSide }) {\n const chainId = useChainId();\n const scaleFormState = useScaleFormState(chainId);\n const scaleSimulation = useScaleSimulation(chainId);\n return (\n <>\n {toBN(scaleFormState.baseAmount || 0).gt(0) && (\n \n )}\n \n );\n};\n\nexport default ScaleFormDetail;\n","/**\n * @description Component-LeverageAdjust\n */\nimport FormInput from '@/components/FormInput';\nimport './index.less';\n\nimport Alert from '@/components/Alert';\nimport Tabs from '@/components/Tabs';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { TradeLeverage } from '@/components/TradeLeverage/TradeLeverage';\nimport { ERROR_MSG_IMR } from '@/constants/simulation';\nimport { LEVERAGE_ADJUST_TYPE, TRADE_TYPE } from '@/constants/trade';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { clearMarketTradeSimulation, setTradeFormAmount } from '@/features/trade/actions';\nimport { useSimulationBalanceChange } from '@/features/trade/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { LEVERAGE_ADJUST } from '@/types/storage';\nimport { TokenInfo } from '@/types/token';\nimport { savePairLeverage } from '@/utils/localstorage';\nimport { inputNumChecker } from '@/utils/numberUtil';\nimport { FC, memo, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n tradeType: TRADE_TYPE;\n showLeverageSwitch?: boolean;\n pair: WrappedPair | undefined;\n leverage: string;\n leverageInputAmountStrChanged: (leverage: string) => void;\n marginInputAmountStrChanged?: (amount: string) => void;\n adjustTypeChanged?: () => void;\n disabled?: boolean;\n maxLeverage: number;\n quoteToken: TokenInfo | undefined;\n marginAmount?: string;\n leverageAdjustType: LEVERAGE_ADJUST_TYPE;\n simulationMessage?: string;\n simulationErrorData?: string;\n}\nconst LeverageAdjust: FC = function ({\n tradeType,\n showLeverageSwitch,\n pair,\n leverage,\n leverageAdjustType,\n leverageInputAmountStrChanged,\n marginInputAmountStrChanged,\n disabled,\n maxLeverage,\n quoteToken,\n marginAmount,\n adjustTypeChanged,\n simulationMessage,\n simulationErrorData,\n}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n const tabList = useMemo(\n () => [\n {\n label: t('common.byLeverage'),\n key: LEVERAGE_ADJUST_TYPE.BY_LEVERAGE,\n },\n {\n label: t('common.byAmount'),\n key: LEVERAGE_ADJUST_TYPE.BY_AMOUNT,\n },\n ],\n [t],\n );\n const { totalBalanceBefore } = useSimulationBalanceChange(chainId, pair?.rootInstrument?.quoteToken);\n useEffect(() => {\n if (leverageAdjustType === LEVERAGE_ADJUST_TYPE.BY_AMOUNT) {\n // set margin to 0 when amount initiated\n marginInputAmountStrChanged && marginInputAmountStrChanged('0');\n }\n }, [leverageAdjustType]);\n return (\n
\n
\n \n {showLeverageSwitch ? t('common.adjustM') : t('common.adjustLeverage')}\n \n {showLeverageSwitch && (\n
\n {t('common.by')}\n {\n chainId && dispatch(setTradeFormAmount({ chainId, leverageAdjustType: value as LEVERAGE_ADJUST_TYPE }));\n if (pair && userAddr && chainId) {\n savePairLeverage(userAddr, chainId, pair?.id, LEVERAGE_ADJUST, value);\n }\n chainId && dispatch(clearMarketTradeSimulation({ chainId }));\n if (value === LEVERAGE_ADJUST_TYPE.BY_LEVERAGE) {\n adjustTypeChanged && adjustTypeChanged();\n marginInputAmountStrChanged && marginInputAmountStrChanged('');\n }\n }}\n />\n
\n )}\n
\n {leverageAdjustType === LEVERAGE_ADJUST_TYPE.BY_LEVERAGE && (\n \n )}\n {leverageAdjustType === LEVERAGE_ADJUST_TYPE.BY_AMOUNT && (\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n }}\n max={inputNumChecker(totalBalanceBefore?.stringValue || '', quoteToken?.decimals)}\n disabled={disabled}\n tokenInfo={quoteToken}\n suffix={quoteToken?.symbol}\n inputAmountStr={marginAmount || ''}\n inputAmountStrChanged={(value: string) => marginInputAmountStrChanged && marginInputAmountStrChanged(value)}\n />\n )}\n {simulationErrorData === ERROR_MSG_IMR && (\n \n \n {t(simulationErrorData || simulationMessage || '')}\n {'. '}\n \n {/* {\n leverageInputAmountStrChanged(maxLeverage.toString());\n setLeverageAdjustType(true);\n setLeverageSwitchChecked(true);\n if (userAddr && chainId && pair) {\n savePairLeverage(\n userAddr,\n chainId,\n pair?.id,\n tradeType,\n TRADE_LEVERAGE_THRESHOLDS.MAX.toString(),\n );\n savePairLeverage(userAddr, chainId, pair?.id, DYNAMIC, '');\n }\n }}>\n {t('common.tradePage.enableLeverage')}\n */}\n
\n }\n type=\"error\"\n showIcon\n />\n )}\n \n );\n};\n\nexport default memo(LeverageAdjust);\n","/**\n * @description Component-ScaleLeverage\n */\nimport { LEVERAGE_ADJUST_TYPE, TRADE_TYPE } from '@/constants/trade';\nimport LeverageAdjust from '../LeverageAdjust/LeverageAdjust';\nimport './index.less';\n\nimport { TRADE_LEVERAGE_THRESHOLDS } from '@/constants/global';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { setTradeFormLeverage } from '@/features/trade/actions';\nimport { useScaleFormState, useTradeMaxLeverage } from '@/features/trade/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { getSavedPairLeverage } from '@/utils/localstorage';\nimport { FC, useCallback, useEffect } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n pair: WrappedPair | undefined;\n disabled?: boolean;\n}\nconst ScaleLeverage: FC = function ({ pair, disabled }) {\n const chainId = useChainId();\n const scaleFormState = useScaleFormState(chainId);\n const dispatch = useAppDispatch();\n const userAddr = useUserAddr();\n const maxLeverage = useTradeMaxLeverage(pair?.maxLeverage);\n const leverageInputAmountStrChanged = useCallback(\n (leverage: string) => {\n chainId &&\n dispatch(\n setTradeFormLeverage({\n chainId,\n leverage,\n }),\n );\n },\n [chainId],\n );\n useEffect(() => {\n const leverageInStorage = getSavedPairLeverage(userAddr, chainId, pair?.id, TRADE_TYPE.SCALE_LIMIT);\n chainId &&\n dispatch(\n setTradeFormLeverage({\n chainId,\n leverage: leverageInStorage || TRADE_LEVERAGE_THRESHOLDS.DEFAULT.toString(),\n }),\n );\n }, [chainId]);\n return (\n \n );\n};\n\nexport default ScaleLeverage;\n","/**\n * @description Component-ScaleLimitEffect\n */\nimport { useChainId } from '@/hooks/web3/useChain';\nimport './index.less';\n\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPortfolio } from '@/entities/WrappedPortfolio';\nimport { useAvailableTokenBalance } from '@/features/balance/hook';\nimport { simulateBatchPlaceScaledLimitOrder } from '@/features/trade/actions';\nimport { useScaleFormState } from '@/features/trade/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { Context } from '@derivation-tech/context';\nimport { Side } from '@synfutures/sdks-perp';\nimport { useDebounceFn } from 'ahooks';\nimport { FC, memo, useCallback, useEffect } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n sdkContext: Context | undefined;\n tradeSide: Side;\n portfolio: WrappedPortfolio | undefined;\n upperPrice: WrappedBigNumber | undefined;\n lowerPrice: WrappedBigNumber | undefined;\n}\nconst ScaleLimitEffect: FC = function ({ sdkContext, tradeSide, portfolio }) {\n const chainId = useChainId();\n const dispatch = useAppDispatch();\n const tokenBalance = useAvailableTokenBalance(portfolio?.rootInstrument.marginToken?.address, chainId);\n const scaleLimitState = useScaleFormState(chainId);\n const fetchSimulation = useCallback(() => {\n if (chainId && portfolio && sdkContext) {\n dispatch(\n simulateBatchPlaceScaledLimitOrder({\n chainId,\n sdkContext,\n tradeSide,\n portfolio,\n }),\n );\n }\n }, [chainId, portfolio, sdkContext, dispatch, tradeSide]);\n\n const { run: debouncedSimulateOrder } = useDebounceFn(\n () => {\n fetchSimulation();\n },\n { wait: 500 },\n );\n useEffect(() => {\n debouncedSimulateOrder();\n }, [\n scaleLimitState.orderCount,\n scaleLimitState.baseAmount,\n scaleLimitState.upperPrice,\n scaleLimitState.lowerPrice,\n tokenBalance?.stringValue,\n scaleLimitState.leverage,\n scaleLimitState.sizeDistribution,\n debouncedSimulateOrder,\n ]);\n return <>;\n};\nexport default memo(ScaleLimitEffect);\n","/**\n * @description Component-ScaleLimitPreviewRow\n */\nimport { ISimulationOrder } from '@/types/trade';\nimport './index.less';\n\nimport { IconToolTip } from '@/components/ToolTip';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedOrder } from '@/entities/WrappedOrder';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { ITokenPrice } from '@/features/global/type';\nimport classNames from 'classnames';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n order: ISimulationOrder;\n orderList: WrappedOrder[] | undefined;\n currentPair?: WrappedPair | undefined;\n tokenPriceInfo: ITokenPrice | undefined;\n}\nconst ScaleLimitPreviewRow: FC = function ({ order, orderList, currentPair, tokenPriceInfo }) {\n const isOrdered = useMemo(() => orderList?.some((o) => o.tick === order.tick), [order.tick, orderList]);\n const { t } = useTranslation();\n return (\n
\n \n {WrappedBigNumber.from(order.limitPrice || 0).formatPriceNumberWithTooltip({})}\n {isOrdered && }\n \n \n {WrappedBigNumber.from(order.size.base).formatNumberWithTooltip({\n suffix: currentPair?.rootInstrument.baseToken.symbol,\n })}\n \n \n {WrappedBigNumber.from(order.margin).formatNumberWithTooltip({\n suffix: currentPair?.rootInstrument.quoteToken.symbol,\n })}\n \n \n {WrappedBigNumber.from(order.tradeValue).formatNumberWithTooltip({\n suffix: currentPair?.rootInstrument.quoteToken.symbol,\n })}\n \n \n {WrappedBigNumber.from(order.minFeeRebate)\n .mul(tokenPriceInfo?.current || 1)\n .formatNumberWithTooltip({\n isShowApproximatelyEqualTo: true,\n prefix: '$',\n })}\n \n
\n );\n};\n\nexport default ScaleLimitPreviewRow;\n","/**\n * @description Component-ScaleLimitPreview\n */\nimport Modal from '@/components/Modal';\nimport './index.less';\n\nimport Alert from '@/components/Alert';\nimport { Button } from '@/components/Button';\nimport { FETCHING_STATUS, GlobalModalType } from '@/constants';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useWrappedOrderList } from '@/features/account/orderHook';\nimport { useGlobalConfig, useModalOpen, useToggleModal } from '@/features/global/hooks';\nimport { useTokenPrice } from '@/features/global/query';\nimport { useCurrentPairByDevice } from '@/features/pair/hook';\nimport { batchPlaceScaledLimitOrder } from '@/features/trade/actions';\nimport { useScaleFormState, useScaleFormStateStatus, useScaleSimulation, useTradeSide } from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useProvider, useUserAddr } from '@/hooks/web3/useChain';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { toWad } from '@/utils/numberUtil';\nimport { Side } from '@synfutures/sdks-perp';\nimport _ from 'lodash';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { LimitFormDetail } from '../../TradeLimitForm/LimitFormDetail';\nimport ScaleLimitPreviewRow from './ScaleLimitPreviewRow';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst ScaleLimitPreview: FC = function ({}) {\n const modalOpen = useModalOpen(GlobalModalType.ORDER_PREVIEW);\n const toggleModal = useToggleModal(GlobalModalType.ORDER_PREVIEW);\n const { t } = useTranslation();\n const signer = useWalletSigner();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const tradeSide = useTradeSide(chainId);\n const sdkContext = useSDK(chainId);\n const scaleFormState = useScaleFormState(chainId);\n const currentPair = useCurrentPairByDevice(chainId);\n const simulation = useScaleSimulation(chainId);\n const provider = useProvider();\n const dispatch = useAppDispatch();\n const openOrders = useWrappedOrderList(chainId, userAddr, currentPair?.id);\n const tokenPriceInfo = useTokenPrice({ chainId, tokenAddress: currentPair?.rootInstrument.marginToken?.address });\n const scaleLimitFormStatus = useScaleFormStateStatus(chainId);\n const scaleSimulation = useScaleSimulation(chainId);\n const simulatedOrders = useMemo(\n () =>\n _.orderBy(simulation?.data?.orders, [(order) => WrappedBigNumber.from(order.limitPrice).stringValue], ['desc']),\n [simulation?.data?.orders],\n );\n const globalConfig = useGlobalConfig(chainId);\n const tradeText = useMemo(() => {\n return scaleFormState.tradeSide === Side.LONG ? t('common.buyUpper') : t('common.sellUpper');\n }, [scaleFormState.tradeSide, t]);\n return (\n \n
\n {t('common.tradePage.orderView')}\n {t('common.tradePage.limitOrders', { number: simulation?.data?.orders.length })}\n
\n \n }\n className=\"syn-scale-limit-preview\"\n open={modalOpen}\n footer={\n
\n \n
\n \n {\n const baseAmountWad = toWad(scaleFormState?.baseAmount || 0);\n if (\n signer &&\n chainId &&\n userAddr &&\n sdkContext &&\n currentPair &&\n provider &&\n simulation?.data &&\n !baseAmountWad.eq(0) &&\n globalConfig.deadline &&\n scaleFormState.leverage\n ) {\n try {\n const result = await dispatch(\n batchPlaceScaledLimitOrder({\n signer,\n chainId,\n userAddr,\n sdkContext,\n pair: currentPair,\n provider,\n simulation: simulation.data,\n deadline: Number(globalConfig.deadline),\n side: tradeSide,\n leverageWad: toWad(scaleFormState.leverage),\n baseSizeWad: baseAmountWad,\n }),\n ).unwrap();\n if (result) {\n toggleModal();\n }\n } catch (e) {\n console.log('🚀 ~ e:', e);\n }\n }\n }}\n className={tradeSide === Side.SHORT ? 'short' : 'long'}\n chainIconProps={chainId && { chainId, width: 18, marginRight: 4 }}>\n {tradeText}\n \n
\n
\n }\n onCancel={() => toggleModal()}>\n
\n
\n {t('common.price')}\n {t('common.size')}\n {t('common.margin')}\n {t('common.table.tradeV')}\n {t('common.table.feeEarned')}\n
\n {simulatedOrders?.map((order) => (\n \n ))}\n
\n \n );\n};\n\nexport default ScaleLimitPreview;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDistImg01D = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 80,\n height: 36,\n viewBox: \"0 0 80 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16 22C17.8638 22 19.4299 20.7252 19.874 19H28.126C28.5701 20.7252 30.1362 22 32 22C33.8638 22 35.4299 20.7252 35.874 19H44.126C44.5701 20.7252 46.1362 22 48 22C49.8638 22 51.4299 20.7252 51.874 19H60.126C60.5701 20.7252 62.1362 22 64 22C66.2091 22 68 20.2091 68 18C68 15.7909 66.2091 14 64 14C62.1362 14 60.5701 15.2748 60.126 17H51.874C51.4299 15.2748 49.8638 14 48 14C46.1362 14 44.5701 15.2748 44.126 17H35.874C35.4299 15.2748 33.8638 14 32 14C30.1362 14 28.5701 15.2748 28.126 17H19.874C19.4299 15.2748 17.8638 14 16 14C13.7909 14 12 15.7909 12 18C12 20.2091 13.7909 22 16 22ZM16 20C17.1046 20 18 19.1046 18 18C18 16.8954 17.1046 16 16 16C14.8954 16 14 16.8954 14 18C14 19.1046 14.8954 20 16 20ZM34 18C34 19.1046 33.1046 20 32 20C30.8954 20 30 19.1046 30 18C30 16.8954 30.8954 16 32 16C33.1046 16 34 16.8954 34 18ZM48 20C49.1046 20 50 19.1046 50 18C50 16.8954 49.1046 16 48 16C46.8954 16 46 16.8954 46 18C46 19.1046 46.8954 20 48 20ZM66 18C66 19.1046 65.1046 20 64 20C62.8954 20 62 19.1046 62 18C62 16.8954 62.8954 16 64 16C65.1046 16 66 16.8954 66 18Z\",\n fill: \"#3D4F5C\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDistImg01D);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/dist_img_01_d.c6f83a486485a7abeeea639ae347adaf.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDistImg02 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 80,\n height: 36,\n viewBox: \"0 0 80 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M68 12C68 14.2091 66.2091 16 64 16C62.4825 16 61.1623 15.1549 60.4844 13.9097L51.9999 16.0308C51.9833 18.2258 50.1989 20 48 20C46.4825 20 45.1623 19.1549 44.4844 17.9097L35.9999 20.0308C35.9833 22.2258 34.1989 24 32 24C30.4825 24 29.1623 23.1549 28.4844 21.9097L19.9999 24.0308C19.9833 26.2258 18.1989 28 16 28C13.7909 28 12 26.2091 12 24C12 21.7909 13.7909 20 16 20C17.5176 20 18.8377 20.8451 19.5156 22.0903L28.0001 19.9692C28.0167 17.7742 29.8011 16 32 16C33.5176 16 34.8377 16.8451 35.5156 18.0903L44.0001 15.9692C44.0167 13.7742 45.8011 12 48 12C49.5176 12 50.8377 12.8451 51.5156 14.0903L60.0001 11.9692C60.0167 9.77424 61.8011 8 64 8C66.2091 8 68 9.79086 68 12ZM66 12C66 13.1046 65.1046 14 64 14C62.8954 14 62 13.1046 62 12C62 10.8954 62.8954 10 64 10C65.1046 10 66 10.8954 66 12ZM16 26C17.1046 26 18 25.1046 18 24C18 22.8954 17.1046 22 16 22C14.8954 22 14 22.8954 14 24C14 25.1046 14.8954 26 16 26ZM34 20C34 21.1046 33.1046 22 32 22C30.8954 22 30 21.1046 30 20C30 18.8954 30.8954 18 32 18C33.1046 18 34 18.8954 34 20ZM48 18C49.1046 18 50 17.1046 50 16C50 14.8954 49.1046 14 48 14C46.8954 14 46 14.8954 46 16C46 17.1046 46.8954 18 48 18Z\",\n fill: \"#C3E7E7\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDistImg02);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/dist_img_02.e862e01c8ab649e6bd0e9a91b3f6d04b.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDistImg02D = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 80,\n height: 36,\n viewBox: \"0 0 80 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M68 12C68 14.2091 66.2091 16 64 16C62.4825 16 61.1623 15.1549 60.4844 13.9097L51.9999 16.0308C51.9833 18.2258 50.1989 20 48 20C46.4825 20 45.1623 19.1549 44.4844 17.9097L35.9999 20.0308C35.9833 22.2258 34.1989 24 32 24C30.4825 24 29.1623 23.1549 28.4844 21.9097L19.9999 24.0308C19.9833 26.2258 18.1989 28 16 28C13.7909 28 12 26.2091 12 24C12 21.7909 13.7909 20 16 20C17.5176 20 18.8377 20.8451 19.5156 22.0903L28.0001 19.9692C28.0167 17.7742 29.8011 16 32 16C33.5176 16 34.8377 16.8451 35.5156 18.0903L44.0001 15.9692C44.0167 13.7742 45.8011 12 48 12C49.5176 12 50.8377 12.8451 51.5156 14.0903L60.0001 11.9692C60.0167 9.77424 61.8011 8 64 8C66.2091 8 68 9.79086 68 12ZM66 12C66 13.1046 65.1046 14 64 14C62.8954 14 62 13.1046 62 12C62 10.8954 62.8954 10 64 10C65.1046 10 66 10.8954 66 12ZM16 26C17.1046 26 18 25.1046 18 24C18 22.8954 17.1046 22 16 22C14.8954 22 14 22.8954 14 24C14 25.1046 14.8954 26 16 26ZM34 20C34 21.1046 33.1046 22 32 22C30.8954 22 30 21.1046 30 20C30 18.8954 30.8954 18 32 18C33.1046 18 34 18.8954 34 20ZM48 18C49.1046 18 50 17.1046 50 16C50 14.8954 49.1046 14 48 14C46.8954 14 46 14.8954 46 16C46 17.1046 46.8954 18 48 18Z\",\n fill: \"#3D4F5C\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDistImg02D);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/dist_img_02_d.48157d38e18767193b249c98cd429bd0.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDistImg03 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 80,\n height: 36,\n viewBox: \"0 0 80 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M68 24C68 21.7909 66.2091 20 64 20C62.4825 20 61.1623 20.8451 60.4844 22.0903L51.9999 19.9692C51.9833 17.7742 50.1989 16 48 16C46.4825 16 45.1623 16.8451 44.4844 18.0903L35.9999 15.9692C35.9833 13.7742 34.1989 12 32 12C30.4825 12 29.1623 12.8451 28.4844 14.0903L19.9999 11.9692C19.9833 9.77423 18.1989 8 16 8C13.7909 8 12 9.79086 12 12C12 14.2091 13.7909 16 16 16C17.5176 16 18.8377 15.1549 19.5156 13.9097L28.0001 16.0308C28.0167 18.2258 29.8011 20 32 20C33.5176 20 34.8377 19.1549 35.5156 17.9097L44.0001 20.0308C44.0167 22.2258 45.8011 24 48 24C49.5176 24 50.8377 23.1549 51.5156 21.9097L60.0001 24.0308C60.0167 26.2258 61.8011 28 64 28C66.2091 28 68 26.2091 68 24ZM66 24C66 22.8954 65.1046 22 64 22C62.8954 22 62 22.8954 62 24C62 25.1046 62.8954 26 64 26C65.1046 26 66 25.1046 66 24ZM16 10C17.1046 10 18 10.8954 18 12C18 13.1046 17.1046 14 16 14C14.8954 14 14 13.1046 14 12C14 10.8954 14.8954 10 16 10ZM34 16C34 14.8954 33.1046 14 32 14C30.8954 14 30 14.8954 30 16C30 17.1046 30.8954 18 32 18C33.1046 18 34 17.1046 34 16ZM48 18C49.1046 18 50 18.8954 50 20C50 21.1046 49.1046 22 48 22C46.8954 22 46 21.1046 46 20C46 18.8954 46.8954 18 48 18Z\",\n fill: \"#C3E7E7\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDistImg03);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/dist_img_03.57ca45a0a8afac7c5ce75a8602a8f4a6.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDistImg03D = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 80,\n height: 36,\n viewBox: \"0 0 80 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M68 24C68 21.7909 66.2091 20 64 20C62.4825 20 61.1623 20.8451 60.4844 22.0903L51.9999 19.9692C51.9833 17.7742 50.1989 16 48 16C46.4825 16 45.1623 16.8451 44.4844 18.0903L35.9999 15.9692C35.9833 13.7742 34.1989 12 32 12C30.4825 12 29.1623 12.8451 28.4844 14.0903L19.9999 11.9692C19.9833 9.77423 18.1989 8 16 8C13.7909 8 12 9.79086 12 12C12 14.2091 13.7909 16 16 16C17.5176 16 18.8377 15.1549 19.5156 13.9097L28.0001 16.0308C28.0167 18.2258 29.8011 20 32 20C33.5176 20 34.8377 19.1549 35.5156 17.9097L44.0001 20.0308C44.0167 22.2258 45.8011 24 48 24C49.5176 24 50.8377 23.1549 51.5156 21.9097L60.0001 24.0308C60.0167 26.2258 61.8011 28 64 28C66.2091 28 68 26.2091 68 24ZM66 24C66 22.8954 65.1046 22 64 22C62.8954 22 62 22.8954 62 24C62 25.1046 62.8954 26 64 26C65.1046 26 66 25.1046 66 24ZM16 10C17.1046 10 18 10.8954 18 12C18 13.1046 17.1046 14 16 14C14.8954 14 14 13.1046 14 12C14 10.8954 14.8954 10 16 10ZM34 16C34 14.8954 33.1046 14 32 14C30.8954 14 30 14.8954 30 16C30 17.1046 30.8954 18 32 18C33.1046 18 34 17.1046 34 16ZM48 18C49.1046 18 50 18.8954 50 20C50 21.1046 49.1046 22 48 22C46.8954 22 46 21.1046 46 20C46 18.8954 46.8954 18 48 18Z\",\n fill: \"#3D4F5C\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDistImg03D);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/dist_img_03_d.eabd4261c5f894a55c3dbd111e7c9ad2.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDistImg04 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 80,\n height: 36,\n viewBox: \"0 0 80 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M36 12C36 9.79086 34.2091 8 32 8C29.7909 8 28 9.79086 28 12C28 12.5398 28.1069 13.0546 28.3007 13.5244L18.4985 20.8761C17.8139 20.3279 16.9453 20 16 20C13.7909 20 12 21.7909 12 24C12 26.2091 13.7909 28 16 28C18.2091 28 20 26.2091 20 24C20 23.4602 19.8931 22.9454 19.6993 22.4756L29.5015 15.1239C30.1861 15.6721 31.0547 16 32 16C33.2039 16 34.2836 15.4681 35.0169 14.6265L44.0879 19.162C44.0303 19.4322 44 19.7126 44 20C44 22.2091 45.7909 24 48 24C50.1989 24 51.9833 22.2258 51.9999 20.0308L60.4844 17.9097C61.1623 19.1549 62.4824 20 64 20C66.2091 20 68 18.2091 68 16C68 13.7909 66.2091 12 64 12C61.8011 12 60.0167 13.7742 60.0001 15.9692L51.5156 18.0903C50.8377 16.8451 49.5175 16 48 16C46.7961 16 45.7164 16.5319 44.9831 17.3735L35.9121 12.838C35.9697 12.5678 36 12.2874 36 12ZM34 12C34 10.8954 33.1046 10 32 10C30.8954 10 30 10.8954 30 12C30 13.1046 30.8954 14 32 14C33.1046 14 34 13.1046 34 12ZM16 22C17.1046 22 18 22.8954 18 24C18 25.1046 17.1046 26 16 26C14.8954 26 14 25.1046 14 24C14 22.8954 14.8954 22 16 22ZM48 18C49.1046 18 50 18.8954 50 20C50 21.1046 49.1046 22 48 22C46.8954 22 46 21.1046 46 20C46 18.8954 46.8954 18 48 18ZM66 16C66 14.8954 65.1046 14 64 14C62.8954 14 62 14.8954 62 16C62 17.1046 62.8954 18 64 18C65.1046 18 66 17.1046 66 16Z\",\n fill: \"#C3E7E7\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDistImg04);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/dist_img_04.264b857ee279723df92669edd3e3b2ad.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgDistImg04D = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 80,\n height: 36,\n viewBox: \"0 0 80 36\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M36 12C36 9.79086 34.2091 8 32 8C29.7909 8 28 9.79086 28 12C28 12.5398 28.1069 13.0546 28.3007 13.5244L18.4985 20.8761C17.8139 20.3279 16.9453 20 16 20C13.7909 20 12 21.7909 12 24C12 26.2091 13.7909 28 16 28C18.2091 28 20 26.2091 20 24C20 23.4602 19.8931 22.9454 19.6993 22.4756L29.5015 15.1239C30.1861 15.6721 31.0547 16 32 16C33.2039 16 34.2836 15.4681 35.0169 14.6265L44.0879 19.162C44.0303 19.4322 44 19.7126 44 20C44 22.2091 45.7909 24 48 24C50.1989 24 51.9833 22.2258 51.9999 20.0308L60.4844 17.9097C61.1623 19.1549 62.4824 20 64 20C66.2091 20 68 18.2091 68 16C68 13.7909 66.2091 12 64 12C61.8011 12 60.0167 13.7742 60.0001 15.9692L51.5156 18.0903C50.8377 16.8451 49.5175 16 48 16C46.7961 16 45.7164 16.5319 44.9831 17.3735L35.9121 12.838C35.9697 12.5678 36 12.2874 36 12ZM34 12C34 10.8954 33.1046 10 32 10C30.8954 10 30 10.8954 30 12C30 13.1046 30.8954 14 32 14C33.1046 14 34 13.1046 34 12ZM16 22C17.1046 22 18 22.8954 18 24C18 25.1046 17.1046 26 16 26C14.8954 26 14 25.1046 14 24C14 22.8954 14.8954 22 16 22ZM48 18C49.1046 18 50 18.8954 50 20C50 21.1046 49.1046 22 48 22C46.8954 22 46 21.1046 46 20C46 18.8954 46.8954 18 48 18ZM66 16C66 14.8954 65.1046 14 64 14C62.8954 14 62 14.8954 62 16C62 17.1046 62.8954 18 64 18C65.1046 18 66 17.1046 66 16Z\",\n fill: \"#3D4F5C\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgDistImg04D);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/dist_img_04_d.ead3fb24ca51f8181811feccc140f062.svg\";","/**\n * @description Component-ScaleSizeDistribution\n */\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport { THEME_ENUM } from '@/constants';\nimport { useTheme } from '@/features/global/hooks';\nimport { setScaleFormAmount } from '@/features/trade/actions';\nimport { useScaleFormState } from '@/features/trade/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { BatchOrderSizeDistribution } from '@synfutures/sdks-perp';\nimport classNames from 'classnames';\nimport { FC, useCallback, useEffect, useMemo } from 'react';\nimport { ReactComponent as FlatIcon } from './assets/dist_img_01.svg';\nimport { ReactComponent as FlatIconD } from './assets/dist_img_01_d.svg';\nimport { ReactComponent as UpperIocn } from './assets/dist_img_02.svg';\nimport { ReactComponent as UpperIocnD } from './assets/dist_img_02_d.svg';\nimport { ReactComponent as LowerIocn } from './assets/dist_img_03.svg';\nimport { ReactComponent as LowerIocnD } from './assets/dist_img_03_d.svg';\nimport { ReactComponent as RandomIocn } from './assets/dist_img_04.svg';\nimport { ReactComponent as RandomIocnD } from './assets/dist_img_04_d.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst ScaleSizeDistribution: FC = function ({}) {\n const chainId = useChainId();\n const scaleFormState = useScaleFormState(chainId);\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const theme = useTheme();\n const items = useMemo(() => [0, 1, 2, 3], []);\n const setSizeDistribution = useCallback(\n (sizeDistribution: BatchOrderSizeDistribution) => {\n chainId &&\n dispatch(\n setScaleFormAmount({\n chainId,\n sizeDistribution,\n }),\n );\n },\n [chainId, dispatch],\n );\n const ICON_MAP = useMemo(\n () =>\n theme.dataTheme === THEME_ENUM.DARK\n ? {\n [BatchOrderSizeDistribution.FLAT]: ,\n [BatchOrderSizeDistribution.UPPER]: ,\n [BatchOrderSizeDistribution.LOWER]: ,\n [BatchOrderSizeDistribution.RANDOM]: ,\n }\n : {\n [BatchOrderSizeDistribution.FLAT]: ,\n [BatchOrderSizeDistribution.UPPER]: ,\n [BatchOrderSizeDistribution.LOWER]: ,\n [BatchOrderSizeDistribution.RANDOM]: ,\n },\n [theme.dataTheme],\n );\n useEffect(() => {\n setSizeDistribution(BatchOrderSizeDistribution.FLAT);\n }, [chainId]);\n return (\n
\n
{t('common.tradePage.sizeD')}
\n
\n {items.map((item) => (\n {\n setSizeDistribution(item);\n }}\n className={classNames('syn-scale-limit-form-section-distributions-item', {\n selected: item === scaleFormState.sizeDistribution,\n })}>\n {ICON_MAP[item as BatchOrderSizeDistribution]}\n
\n {t(`common.tradePage.sizeDistribution.${item}`)}\n
\n
\n ))}\n
\n \n );\n};\n\nexport default ScaleSizeDistribution;\n","/**\n * @description Component-ScaleSizeInput\n */\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport FormInput from '@/components/FormInput';\nimport { DEFAULT_DECIMALS } from '@/constants/global';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { setScaleFormAmount, updateSimulateError } from '@/features/trade/actions';\nimport { useScaleFormState } from '@/features/trade/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { parsedEthersError } from '@/utils/error';\nimport { inputNumChecker } from '@/utils/numberUtil';\nimport { calcBaseSizeByQuote, calcQuoteSizeByBase } from '@/utils/trade';\nimport { Context } from '@derivation-tech/context';\nimport { FC, useCallback } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n price: string | undefined;\n disabled?: boolean;\n pair: WrappedPair | undefined;\n sdkContext: Context | undefined;\n}\nconst ScaleSizeInput: FC = function ({ disabled, pair, sdkContext, price }) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const dispatch = useAppDispatch();\n const scaleFormState = useScaleFormState(chainId);\n\n const updateQuoteAmountByBase = useCallback(\n async (baseAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n try {\n let quoteAmount;\n if (baseAmountStr) {\n quoteAmount = calcQuoteSizeByBase(baseAmountStr, price || 1, pair.isInverse);\n }\n dispatch(\n setScaleFormAmount({\n chainId,\n quoteAmount: quoteAmount\n ? inputNumChecker(\n WrappedBigNumber.from(quoteAmount).stringValue,\n pair?.rootInstrument.marginToken.decimals,\n )\n : baseAmountStr,\n }),\n );\n } catch (e) {\n const parsedError = parsedEthersError(e);\n if (parsedError) {\n dispatch(\n updateSimulateError({\n type: TRADE_TYPE.SCALE_LIMIT,\n errMessage: parsedError?.errorMsg,\n chainId,\n }),\n );\n }\n }\n }\n },\n [chainId, sdkContext, pair, price, dispatch],\n );\n const baseInputAmountStrChanged = useCallback(\n (inputAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n dispatch(\n setScaleFormAmount({\n chainId,\n baseAmount: inputAmountStr,\n }),\n );\n updateQuoteAmountByBase(inputAmountStr);\n }\n },\n [chainId, sdkContext, pair, dispatch, updateQuoteAmountByBase],\n );\n const updateBaseAmountByQuote = useCallback(\n async (quoteAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n try {\n let baseAmount;\n if (quoteAmountStr) {\n baseAmount = calcBaseSizeByQuote(quoteAmountStr, price || 1, pair.isInverse);\n }\n const checkedBaseAmount = baseAmount\n ? inputNumChecker(\n WrappedBigNumber.from(baseAmount).stringValue,\n pair.rootInstrument.baseToken?.decimals || DEFAULT_DECIMALS,\n )\n : quoteAmountStr;\n\n dispatch(\n setScaleFormAmount({\n chainId,\n baseAmount: checkedBaseAmount,\n }),\n );\n } catch (e) {\n const parsedError = parsedEthersError(e);\n if (parsedError) {\n dispatch(\n updateSimulateError({\n type: TRADE_TYPE.SCALE_LIMIT,\n errMessage: parsedError?.errorMsg,\n chainId,\n }),\n );\n }\n }\n }\n },\n [chainId, sdkContext, pair, price, dispatch],\n );\n const quoteInputAmountStrChanged = useCallback(\n (inputAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n dispatch(\n setScaleFormAmount({\n chainId,\n quoteAmount: inputAmountStr,\n }),\n );\n updateBaseAmountByQuote(inputAmountStr);\n }\n },\n [chainId, pair, dispatch, sdkContext, updateBaseAmountByQuote],\n );\n\n return (\n
\n
{t('common.totalSize')}
\n
\n <>\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n }}\n disabled={disabled}\n suffix={pair?.rootInstrument.baseToken?.symbol}\n inputAmountStr={scaleFormState.baseAmount || ''}\n inputAmountStrChanged={baseInputAmountStrChanged}\n />\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n }}\n disabled={disabled}\n flexible=\"syn-scale-limit-form-amount-input\"\n inputAmountStr={scaleFormState.quoteAmount || ''}\n inputAmountStrChanged={quoteInputAmountStrChanged}\n suffix={pair?.rootInstrument.quoteToken?.symbol}\n />\n \n
\n
\n );\n};\n\nexport default ScaleSizeInput;\n","/**\n * @description Component-ScaleLimitForm\n */\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport './index.less';\n\nimport { AvailableBalance } from '@/components/ToolTip/AvailableBalanceToolTip';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { useWrappedPortfolioByPairId } from '@/features/account/portfolioHook';\nimport { useIsFetchedPairInfo } from '@/features/futures/hooks';\nimport { useCurrentPairFromUrl, usePairLimitPriceRange } from '@/features/pair/hook';\nimport { useTradeSide } from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { FC } from 'react';\nimport TradeFormAlert from '../TradeFormAlert';\nimport PriceInput from './PriceInput';\nimport ScaleFormDetail from './ScaleFormDetail';\nimport ScaleLeverage from './ScaleLeverage';\nimport ScaleLimitEffect from './ScaleLimitEffect';\nimport ScaleLimitPreview from './ScaleLimitPreview';\nimport ScaleSizeDistribution from './ScaleSizeDistribution';\nimport ScaleSizeInput from './ScaleSizeInput';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst ScaleLimitForm: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const tradeSide = useTradeSide(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const sdkContext = useSDK(chainId);\n const isFetchedPair = useIsFetchedPairInfo(chainId, currentPair?.instrumentAddr, currentPair?.expiry);\n const portfolio = useWrappedPortfolioByPairId(chainId, userAddr, currentPair?.id);\n const [lowerPrice, upperPrice] = usePairLimitPriceRange(currentPair, tradeSide, sdkContext);\n\n return (\n
\n \n \n \n \n
\n \n
\n \n \n \n \n
\n );\n};\n\nexport default ScaleLimitForm;\n","/**\n * @description Component-TradeFormBase\n */\nimport './index.less';\n\nimport { toBN } from '@derivation-tech/context';\nimport { Side } from '@synfutures/sdks-perp';\nimport { useDebounceEffect } from 'ahooks';\nimport React, { FC, useCallback, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/Alert';\nimport FormInput from '@/components/FormInput';\nimport { AvailableBalance } from '@/components/ToolTip/AvailableBalanceToolTip';\nimport { DEFAULT_DECIMALS } from '@/constants/global';\nimport { ERROR_MSG_IMR } from '@/constants/simulation';\nimport { LEVERAGE_ADJUST_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { clearMarketTradeSimulation, setTradeFormAmount, updateSimulateError } from '@/features/trade/actions';\nimport { useLeverageAdjustType, useTradeFormLeverage, useTradeMaxLeverage, useTradeType } from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { LEVERAGE_ADJUST } from '@/types/storage';\nimport { TokenInfo } from '@/types/token';\nimport { parsedEthersError } from '@/utils/error';\nimport { getSavedPairLeverage } from '@/utils/localstorage';\nimport { inputNumChecker } from '@/utils/numberUtil';\nimport { calcBaseSizeByQuote, calcQuoteSizeByBase } from '@/utils/trade';\nimport LeverageAdjust from '../LeverageAdjust/LeverageAdjust';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n tradeSide: Side;\n disabled?: boolean;\n state: {\n baseAmount: string | undefined;\n quoteAmount?: string | undefined;\n marginAmount?: string | undefined;\n };\n pair: WrappedPair | undefined;\n baseToken: TokenInfo | undefined;\n quoteToken: TokenInfo | undefined;\n marginToken: TokenInfo | undefined;\n price: string | undefined;\n amountStrChanged?: (val: string) => void;\n leverageChanged: (val: string) => void;\n isShowAmountWarning?: boolean;\n amountWarning?: JSX.Element;\n isShowInfoAlert?: boolean;\n infoAlert?: JSX.Element;\n showLeverageSwitch?: boolean;\n simulationMessage?: string;\n simulationErrorData?: string;\n adjustTypeChanged?: () => void;\n hideLeverage?: boolean;\n}\nconst TradeFormBase: FC = function ({\n state,\n baseToken,\n quoteToken,\n tradeSide,\n pair,\n disabled,\n hideLeverage,\n amountStrChanged,\n leverageChanged,\n isShowAmountWarning,\n amountWarning,\n price,\n showLeverageSwitch,\n simulationMessage,\n simulationErrorData,\n adjustTypeChanged,\n}) {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const tradeType = useTradeType(chainId);\n const sdkContext = useSDK(chainId);\n const leverage = useTradeFormLeverage(chainId, tradeType, pair?.maxLeverage);\n const userAddr = useUserAddr();\n const leverageType = useLeverageAdjustType(chainId);\n const maxLeverage = useTradeMaxLeverage(pair?.maxLeverage);\n const updateQuoteAmountByBase = useCallback(\n async (baseAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n try {\n let quoteAmount;\n if (baseAmountStr) {\n quoteAmount = calcQuoteSizeByBase(baseAmountStr, price || 1, pair.isInverse);\n }\n dispatch(\n setTradeFormAmount({\n chainId,\n quoteAmount: quoteAmount\n ? inputNumChecker(\n WrappedBigNumber.from(quoteAmount).stringValue,\n pair?.rootInstrument.marginToken.decimals,\n )\n : baseAmountStr,\n }),\n );\n } catch (e) {\n const parsedError = parsedEthersError(e);\n if (parsedError) {\n dispatch(\n updateSimulateError({\n type: tradeType,\n errMessage: parsedError?.errorMsg,\n chainId,\n }),\n );\n }\n }\n }\n },\n [chainId, sdkContext, pair, price, dispatch, tradeType],\n );\n const baseInputAmountStrChanged = useCallback(\n (inputAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n gtag('event', 'enter_limit_order_size', {\n enter_action: 'enter',\n });\n dispatch(\n setTradeFormAmount({\n chainId,\n baseAmount: inputAmountStr,\n }),\n );\n amountStrChanged && amountStrChanged(inputAmountStr);\n updateQuoteAmountByBase(inputAmountStr);\n }\n },\n [chainId, sdkContext, pair, dispatch, amountStrChanged, updateQuoteAmountByBase],\n );\n const marginInputAmountStrChanged = useCallback(\n (inputAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n gtag('event', 'enter_limit_order_size', {\n enter_action: 'enter',\n });\n dispatch(\n setTradeFormAmount({\n chainId,\n marginAmount: inputAmountStr,\n }),\n );\n if (!inputAmountStr.trim()) {\n dispatch(clearMarketTradeSimulation({ chainId }));\n } else {\n amountStrChanged && amountStrChanged(inputAmountStr);\n }\n }\n },\n [chainId, sdkContext, pair, dispatch, amountStrChanged],\n );\n const leverageInputAmountStrChanged = useCallback(\n async (inputAmountStr: string) => {\n leverageChanged && leverageChanged(inputAmountStr);\n },\n [leverageChanged],\n );\n const updateBaseAmountByQuote = useCallback(\n async (quoteAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n try {\n let baseAmount;\n if (quoteAmountStr) {\n baseAmount = calcBaseSizeByQuote(quoteAmountStr, price || 1, pair.isInverse);\n }\n const checkedBaseAmount = baseAmount\n ? inputNumChecker(WrappedBigNumber.from(baseAmount).stringValue, baseToken?.decimals || DEFAULT_DECIMALS)\n : quoteAmountStr;\n\n amountStrChanged && amountStrChanged(checkedBaseAmount);\n dispatch(\n setTradeFormAmount({\n chainId,\n baseAmount: checkedBaseAmount,\n }),\n );\n } catch (e) {\n const parsedError = parsedEthersError(e);\n if (parsedError) {\n dispatch(\n updateSimulateError({\n type: tradeType,\n errMessage: parsedError?.errorMsg,\n chainId,\n }),\n );\n }\n }\n }\n },\n [chainId, sdkContext, pair, tradeType, price, baseToken?.decimals, amountStrChanged, dispatch],\n );\n const quoteInputAmountStrChanged = useCallback(\n (inputAmountStr: string) => {\n if (chainId && sdkContext && pair) {\n gtag('event', 'enter_limit_order_size', {\n enter_action: 'enter',\n });\n dispatch(\n setTradeFormAmount({\n chainId,\n quoteAmount: inputAmountStr,\n }),\n );\n updateBaseAmountByQuote(inputAmountStr);\n }\n },\n [chainId, pair, dispatch, sdkContext, updateBaseAmountByQuote],\n );\n useDebounceEffect(\n () => {\n // always keep the base\n state.baseAmount && !toBN(state.baseAmount || 0).eq(0) && updateQuoteAmountByBase(state.baseAmount);\n // only depend on price\n },\n [price],\n { wait: 0 },\n );\n useEffect(() => {\n if (pair?.id && showLeverageSwitch) {\n const leverageAdjustSaved = getSavedPairLeverage(userAddr, chainId, pair?.id, LEVERAGE_ADJUST);\n chainId &&\n dispatch(\n setTradeFormAmount({\n chainId,\n leverageAdjustType: (leverageAdjustSaved as LEVERAGE_ADJUST_TYPE) || LEVERAGE_ADJUST_TYPE.BY_LEVERAGE,\n }),\n );\n }\n // at the begining\n }, [showLeverageSwitch, pair?.id]);\n useEffect(() => {\n if (pair?.isInverse) {\n state.quoteAmount && updateBaseAmountByQuote(state.quoteAmount);\n } else {\n state.baseAmount && updateQuoteAmountByBase(state.baseAmount);\n }\n }, [tradeSide]);\n return (\n
\n
\n
{t('common.size')}
\n
\n <>\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n }}\n disabled={disabled}\n tokenInfo={baseToken}\n suffix={baseToken?.symbol}\n inputAmountStr={state.baseAmount || ''}\n inputAmountStrChanged={baseInputAmountStrChanged}\n />\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n }}\n disabled={disabled}\n tokenInfo={quoteToken}\n flexible=\"syn-trade-form-base-amount-input\"\n inputAmountStr={state.quoteAmount || ''}\n inputAmountStrChanged={quoteInputAmountStrChanged}\n suffix={quoteToken?.symbol}\n />\n \n
\n
\n {isShowAmountWarning && amountWarning}\n\n {!hideLeverage && (\n
\n <>\n \n {simulationErrorData === ERROR_MSG_IMR && (\n \n \n {t(simulationErrorData || simulationMessage || '')}\n {'. '}\n \n {/* {\n leverageInputAmountStrChanged(maxLeverage.toString());\n setLeverageAdjustType(true);\n setLeverageSwitchChecked(true);\n if (userAddr && chainId && pair) {\n savePairLeverage(\n userAddr,\n chainId,\n pair?.id,\n tradeType,\n TRADE_LEVERAGE_THRESHOLDS.MAX.toString(),\n );\n savePairLeverage(userAddr, chainId, pair?.id, DYNAMIC, '');\n }\n }}>\n {t('common.tradePage.enableLeverage')}\n */}\n
\n }\n type=\"error\"\n showIcon\n />\n )}\n \n
\n )}\n
\n \n
\n \n );\n};\n\nexport default TradeFormBase;\n","/**\n * @description Component-CrossMarketCheckbox\n */\nimport Checkbox from '@/components/Checkbox';\nimport './index.less';\n\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { CHAIN_ID } from '@/constants/chain';\nimport { setIsTurnOnCrossMarket } from '@/features/trade/actions';\nimport { useLimitFormState } from '@/features/trade/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n chainId: CHAIN_ID | undefined;\n}\nconst CrossMarketCheckbox: FC = function ({ chainId }) {\n const dispatch = useAppDispatch();\n const { t } = useTranslation();\n const limitState = useLimitFormState(chainId);\n\n return (\n {\n const checked = e.target.checked;\n chainId && dispatch(setIsTurnOnCrossMarket({ chainId, isTurnOnCrossMarket: checked }));\n }}>\n \n {t('common.tradePage.allowCrossMarket')}\n \n \n );\n};\n\nexport default CrossMarketCheckbox;\n","/**\n * @description Component-LimitFormDetail\n */\nimport './index.less';\n\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport { Side } from '@synfutures/sdks-perp';\nimport { Spin } from 'antd';\nimport { FC, memo, useMemo } from 'react';\n// import IconToolTip from '@/components/ToolTip/IconToolTip';\n\nimport Alert from '@/components/Alert';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedQuote } from '@/entities/WrappedQuote';\nimport { useCrossMarketSimulation } from '@/features/trade/hooks';\nimport { TokenInfo } from '@/types/token';\nimport { Trans, useTranslation } from 'react-i18next';\nimport TradeFormDetails from '../../TradeDetail/TradeFormDetails';\nimport { LimitFormDetail } from '../LimitFormDetail';\n\ninterface IProps {\n isLoading: boolean;\n tradeSide?: Side;\n marginToken: WrappedQuote | undefined;\n baseToken?: TokenInfo;\n fairPrice?: WrappedBigNumber;\n chainId: CHAIN_ID | undefined;\n pairSymbol?: string;\n showSize?: boolean;\n isInverse?: boolean;\n}\nconst CrossMarketDetailComponent: FC = function ({\n marginToken,\n isLoading,\n chainId,\n fairPrice,\n tradeSide,\n pairSymbol,\n baseToken,\n}) {\n const { t } = useTranslation();\n const crossSimulation = useCrossMarketSimulation(chainId);\n const marketSimulation = useMemo(() => crossSimulation?.data?.tradeSimulation, [crossSimulation]);\n const limitSimulation = useMemo(() => crossSimulation?.data?.orderSimulation, [crossSimulation]);\n\n const marketDetailExtraTitle = useMemo(() => {\n return (\n
\n , span: }}\n values={{\n side: tradeSide === Side.LONG ? t('common.long') : t('common.short'),\n size: crossSimulation?.data?.tradeSize.formatDisplayNumber(),\n base: baseToken?.symbol,\n price: WrappedBigNumber.from(marketSimulation?.tradePrice || 0).formatPriceString(),\n }}\n />\n
\n );\n }, [t, tradeSide, crossSimulation?.data?.tradeSize, baseToken?.symbol, marketSimulation?.tradePrice]);\n\n const limitDetailExtraTitle = useMemo(() => {\n return (\n
\n , span: }}\n values={{\n side: tradeSide === Side.LONG ? t('common.long') : t('common.short'),\n size: crossSimulation?.data?.orderSize.formatDisplayNumber(),\n base: baseToken?.symbol,\n // price: getAdjustTradePrice(limitSimulation?.limitPrice || 0, isInverse || false).formatPriceString(),\n price: WrappedBigNumber.from(limitSimulation?.limitPrice || 0).formatPriceString(),\n }}\n />\n
\n );\n }, [t, tradeSide, crossSimulation?.data?.orderSize, baseToken?.symbol, limitSimulation?.limitPrice]);\n\n if (!crossSimulation?.data) {\n return null;\n }\n\n return (\n \n
\n
\n }} />}\n type=\"info\"\n showIcon\n />\n
\n {crossSimulation && crossSimulation.data?.tradeSize?.gt(0) && (\n
\n \n
\n )}\n {crossSimulation && crossSimulation.data?.orderSize?.gt(0) && (\n
\n \n
\n )}\n
\n
\n );\n};\n\nexport const CrossMarketDetail = memo(CrossMarketDetailComponent);\n","/**\n * @description Component-TradeLimitForm\n */\nimport './index.less';\n\nimport { PEARL_SPACING, Side, TickMath } from '@synfutures/sdks-perp';\nimport { useDebounceFn } from 'ahooks';\nimport { Form } from 'antd';\n// import BN from 'bignumber.js';\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/Alert';\nimport FormInput from '@/components/FormInput';\nimport SynInputNumber from '@/components/SynInputNumber';\nimport { FETCHING_STATUS } from '@/constants';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useWrappedPortfolioByPairId } from '@/features/account/portfolioHook';\nimport {\n useCurrentPairFromUrl,\n useGetAlignedPrice,\n useGetDefaultLimitPrice,\n usePairLimitPriceRange,\n} from '@/features/pair/hook';\nimport {\n orderSimulate,\n setLimitPrice,\n setTradeFormLeverage,\n setTradeFormSide,\n setTradeFormType,\n} from '@/features/trade/actions';\nimport {\n useCallSimulateCrossMarketOrder,\n useCanPlaceCrossMarketOrder,\n useLimitFormState,\n useLimitFormStatus,\n useLimitPriceChangeWhenOutOfRange,\n useLimitSimulation,\n useSimulateCrossMarketMinMarginAndAmount,\n // useLimitSimulationRaw,\n useTradeDefaultLeverage,\n useTradeSide,\n} from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n// import TradeMarginRequire from '@/pages/components/TradeMarginRequire';\nimport { getSavedPairLeverage } from '@/utils/localstorage';\nimport { formatNumber, inputNumChecker, toBN, toWad } from '@/utils/numberUtil';\nimport { getAdjustTradePrice } from '@/utils/pairs';\n\nimport { useWrappedOrderList } from '@/features/account/orderHook';\nimport { useAvailableTokenBalance } from '@/features/balance/hook';\nimport TradeFormAlert from '../TradeFormAlert';\nimport TradeFormBase from '../TradeFormBase';\nimport TradeFormSide from '../TradeFormBase/TradeFormSide';\nimport CrossMarketCheckbox from './CrossMarketCheckbox';\nimport { CrossMarketDetail } from './CrossMarketDetail';\nimport { LimitFormDetail } from './LimitFormDetail';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradeLimitForm: FC = function ({ className }) {\n const dispatch = useAppDispatch();\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const tradeSide = useTradeSide(chainId);\n const limitFormState = useLimitFormState(chainId);\n const limitFormStatus = useLimitFormStatus(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const [inputTouched, setInputTouched] = useState(false);\n const [priceInputFocused, setPriceInputFocused] = useState(false);\n const tokenBalance = useAvailableTokenBalance(currentPair?.rootInstrument.marginToken?.address, chainId);\n const sdkContext = useSDK(chainId);\n const orders = useWrappedOrderList(chainId, userAddr, currentPair?.id);\n const portfolio = useWrappedPortfolioByPairId(chainId, userAddr, currentPair?.id);\n const limitSimulation = useLimitSimulation(chainId);\n const callSimulateCrossMarketOrder = useCallSimulateCrossMarketOrder({\n chainId,\n userAddr,\n tradeSide,\n currentPair,\n baseAmount: WrappedBigNumber.from(limitFormState.baseAmount || 0),\n limitPrice: limitFormState.limitPrice,\n });\n const changelimitPriceWhenOutOfRange = useLimitPriceChangeWhenOutOfRange(\n chainId,\n priceInputFocused,\n limitFormState?.isTurnOnCrossMarket,\n );\n const defaultLeverage = useTradeDefaultLeverage(currentPair?.maxLeverage);\n const [lowerPrice, upperPrice] = usePairLimitPriceRange(\n currentPair,\n tradeSide,\n sdkContext,\n limitFormState?.isTurnOnCrossMarket,\n );\n const getDefaultLimitPrice = useGetDefaultLimitPrice(currentPair, tradeSide, sdkContext);\n const getAlignPriceWad = useGetAlignedPrice(sdkContext, currentPair);\n const canPlaceCrossMarketOrder = useCanPlaceCrossMarketOrder(chainId);\n const crossMarginMinMarginAndAmountSimulation = useSimulateCrossMarketMinMarginAndAmount(chainId);\n\n // const isCrossMarket = use();\n // const limitSimulation = useLimitSimulationRaw(chainId);\n const limitPriceStrChanged = useCallback(\n async (inputAmountStr: string) => {\n gtag('event', 'adjust_price', {\n adjust_price: 'enter', //plus_or_mins, enter, click_order_book\n });\n inputAmountStr = inputNumChecker(inputAmountStr, currentPair?.priceDecimal);\n const alignedPrice = await getAlignPriceWad(inputAmountStr, tradeSide);\n chainId &&\n dispatch(\n setLimitPrice({\n chainId,\n limitPrice: inputAmountStr,\n alignedPrice: inputNumChecker(alignedPrice?.adjustPrice.stringValue || '', currentPair?.priceDecimal),\n }),\n );\n },\n [chainId, dispatch, getAlignPriceWad, currentPair?.priceDecimal, tradeSide],\n );\n const setDefaultLimitPrice = useCallback(\n async (tradeSide?: Side) => {\n const defaultLimitPrice = await getDefaultLimitPrice(tradeSide);\n defaultLimitPrice &&\n limitPriceStrChanged(\n formatNumber(defaultLimitPrice?.adjustPrice.stringValue, currentPair?.priceDecimal, false),\n );\n },\n [currentPair?.priceDecimal, getDefaultLimitPrice, limitPriceStrChanged],\n );\n const bestBidAsk = useCallback(() => {\n const adjustSide = tradeSide;\n let price;\n if (adjustSide === Side.LONG && upperPrice) {\n price = upperPrice;\n }\n if (adjustSide === Side.SHORT && lowerPrice) {\n price = lowerPrice;\n }\n chainId &&\n price &&\n dispatch(\n setLimitPrice({\n chainId,\n limitPrice: price?.stringValue,\n alignedPrice: price?.stringValue,\n }),\n );\n }, [chainId, dispatch, lowerPrice, tradeSide, upperPrice]);\n const limitPercentageChanged = useCallback(\n async (multiple: number) => {\n try {\n if (currentPair && sdkContext) {\n const result = await getAlignPriceWad(limitFormState.limitPrice || 0, tradeSide);\n\n if (result) {\n const newPrice = getAdjustTradePrice(\n WrappedBigNumber.from(\n TickMath.getWadAtTick(result.tick + PEARL_SPACING * multiple * (currentPair.isInverse ? -1 : 1)),\n ),\n currentPair.isInverse,\n );\n const limitPrice = formatNumber(\n newPrice.stringValue,\n currentPair?.priceDecimal,\n false,\n // multiple > 0 ? BN.ROUND_DOWN : BN.ROUND_CEIL,\n );\n chainId &&\n dispatch(\n setLimitPrice({\n chainId,\n limitPrice,\n alignedPrice: limitPrice,\n }),\n );\n }\n }\n } catch (error) {\n console.log('🚀 ~ file: index.tsx:132 ~ error:', error);\n }\n },\n [\n chainId,\n currentPair,\n dispatch,\n getAlignPriceWad,\n limitFormState.limitPrice,\n currentPair?.priceDecimal,\n sdkContext,\n tradeSide,\n ],\n );\n\n const fetchOrderSimulation = useCallback(\n (leverage?: string) => {\n if (chainId && portfolio && sdkContext) {\n if (canPlaceCrossMarketOrder && leverage && WrappedBigNumber.from(limitFormState.baseAmount).gt(0)) {\n callSimulateCrossMarketOrder(leverage);\n } else {\n dispatch(\n orderSimulate({\n chainId,\n sdkContext,\n base: toWad(limitFormState.baseAmount?.trim() || 0),\n tradeSide,\n limitPrice: limitFormState.limitPrice,\n portfolio,\n leverage: leverage ? toWad(leverage) : undefined,\n }),\n );\n }\n }\n },\n [\n chainId,\n portfolio,\n sdkContext,\n canPlaceCrossMarketOrder,\n callSimulateCrossMarketOrder,\n dispatch,\n limitFormState.baseAmount,\n limitFormState.limitPrice,\n tradeSide,\n ],\n );\n\n const { run: debouncedSimulateOrder } = useDebounceFn(\n (leverage: string | undefined) => {\n fetchOrderSimulation(leverage);\n },\n { wait: 500 },\n );\n\n const leverageChanged = useCallback(\n (leverage: string) => {\n if (chainId) {\n const baseWad = toWad(limitFormState.baseAmount || 0);\n dispatch(\n setTradeFormLeverage({\n chainId,\n leverage: leverage,\n }),\n );\n // no simulation when base zero\n !baseWad.eq(0) && debouncedSimulateOrder(leverage);\n }\n },\n [chainId, debouncedSimulateOrder, dispatch, limitFormState.baseAmount],\n );\n\n useEffect(() => {\n debouncedSimulateOrder(limitFormState.leverage);\n // when limit price change or base amount change or order map change or token balance change\n }, [\n limitFormState.limitPrice,\n orders?.length,\n limitFormState.baseAmount,\n tokenBalance?.stringValue,\n debouncedSimulateOrder,\n ]);\n\n useEffect(() => {\n if (chainId && userAddr && currentPair?.id) {\n const leverageSaved = getSavedPairLeverage(userAddr, chainId, currentPair.id, TRADE_TYPE.LIMIT);\n\n dispatch(\n setTradeFormLeverage({\n chainId,\n leverage: leverageSaved || defaultLeverage.toString(),\n }),\n );\n }\n // only depend on chainId userAddr and currentPair.id\n }, [chainId, userAddr, currentPair?.id]);\n\n const onNativeTokenDepositClick = useCallback(() => {\n chainId &&\n dispatch(\n setTradeFormType({\n chainId,\n tradeType: TRADE_TYPE.DEPOSIT_NATIVE,\n }),\n );\n }, [chainId, dispatch]);\n\n const onMaxBalanceClick = useCallback(\n (balance: WrappedBigNumber) => {\n console.log('🚀 ~ balance:', balance);\n if (chainId && portfolio && sdkContext) {\n // TODO: adapt order simulate with margin\n // dispatch(\n // orderSimulate({\n // chainId,\n // sdkContext,\n // base: toWad(limitFormState.baseAmount || 0),\n // tradeSide,\n // limitPrice: limitFormState.limitPrice,\n // portfolio,\n // leverage: undefined,\n // // margin: balance.stringValue,\n // }),\n // );\n }\n },\n [chainId, dispatch, limitFormState.baseAmount, limitFormState.limitPrice, portfolio, sdkContext, tradeSide],\n );\n\n const adjustLimitPrice = useMemo(() => {\n return limitFormState?.limitPrice ? inputNumChecker(limitFormState?.limitPrice, currentPair?.priceDecimal) : '';\n }, [currentPair?.priceDecimal, limitFormState?.limitPrice]);\n\n const alignLimitPrice = useMemo(() => {\n return limitFormState?.limitPrice;\n }, [limitFormState?.limitPrice]);\n useEffect(() => {\n const crossMarket = document.querySelector('.syn-cross-market-checkbox-text');\n if (lowerPrice && lowerPrice?.formatLiqPriceString().length >= 9 && crossMarket) {\n crossMarket.classList.add('short');\n } else {\n crossMarket?.classList.remove('short');\n }\n // must depend on this\n }, [lowerPrice?.stringValue]);\n return (\n
\n {\n const tradeSide = Number(key) as Side;\n setInputTouched(false);\n setDefaultLimitPrice(tradeSide);\n chainId &&\n dispatch(\n setTradeFormSide({\n chainId,\n tradeSide,\n }),\n );\n }}\n />\n
\n
\n
\n \n {t('common.price')} ({lowerPrice?.formatLiqPriceNumberWithTooltip()} -{' '}\n {upperPrice?.formatLiqPriceNumberWithTooltip()})\n \n {!limitFormState?.isTurnOnCrossMarket && (\n
\n {tradeSide === Side.LONG ? t('common.tradePage.bestBid') : t('common.tradePage.bestAsk')}\n
\n )}\n
\n \n
\n
\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n }}\n onFocus={() => {\n setInputTouched(false);\n setPriceInputFocused(true);\n }}\n onBlur={() => {\n setInputTouched(true);\n setPriceInputFocused(false);\n changelimitPriceWhenOutOfRange();\n }}\n tokenInfo={currentPair?.rootInstrument.priceToken}\n inputAmountStr={adjustLimitPrice}\n inputAmountStrChanged={limitPriceStrChanged}\n suffix={currentPair?.rootInstrument.priceToken.symbol}\n />\n \n
\n {inputTouched &&\n lowerPrice?.lte(limitFormState.limitPrice || 0) &&\n upperPrice?.gte(limitFormState.limitPrice || 0) &&\n limitFormState.limitPrice &&\n WrappedBigNumber.from(limitFormState.alignedPrice || 0)?.notEq(limitFormState.limitPrice) && (\n ,\n }}\n values={{\n price: limitFormState.alignedPrice,\n }}\n />\n }\n />\n )}\n {canPlaceCrossMarketOrder && (\n ,\n }}\n values={{\n base: currentPair?.rootInstrument.baseToken.symbol,\n size: crossMarginMinMarginAndAmountSimulation?.data?.tradeSize?.formatDisplayNumber(),\n }}\n />\n }\n />\n )}\n
\n\n \n {/* */}\n\n {/* {toBN(limitFormState.baseAmount || 0).gt(0) && !limitSimulation?.message && ( */}\n {toBN(limitFormState.baseAmount || 0).gt(0) &&\n (canPlaceCrossMarketOrder ? (\n \n ) : (\n \n ))}\n\n \n \n );\n};\n\nexport default TradeLimitForm;\n","/**\n * @description Component-TradeMarketForm\n */\nimport // Trans,\n'react-i18next';\nimport './index.less';\n\nimport { Side } from '@synfutures/sdks-perp';\nimport { useDebounceFn } from 'ahooks';\nimport { Form } from 'antd';\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useEffect, useMemo } from 'react';\n\n// import Alert from '@/components/Alert';\n// import { ExternalLink } from '@/components/Link';\nimport { FETCHING_STATUS } from '@/constants';\nimport { TRADE_LEVERAGE_THRESHOLDS } from '@/constants/global';\n// import { FAQ_LINKS } from '@/constants/links';\nimport { LEVERAGE_ADJUST_TYPE, TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useAvailableTokenBalance } from '@/features/balance/hook';\nimport { useGlobalConfig } from '@/features/global/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport {\n clearMarketTradeSimulation,\n setTradeFormLeverage,\n setTradeFormLeverageAndMargin,\n setTradeFormSide,\n setTradeFormType,\n simulateMarketTrade,\n} from '@/features/trade/actions';\nimport {\n useMarketFormState,\n useMarketFormStateStatus,\n useMarketSimulation,\n useTradeDefaultLeverage,\n useTradeDefaultSide,\n useTradeMaxLeverage,\n useTradeSide,\n} from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n// import TradeMarginRequire from '@/pages/components/TradeMarginRequire';\nimport { getSavedPairLeverage, savePairLeverage } from '@/utils/localstorage';\n// import { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { toBN, toWad } from '@/utils/numberUtil';\n\nimport { useIsFetchedSinglePortfolio } from '@/features/portfolio/hook';\nimport { LEVERAGE_ADJUST } from '@/types/storage';\nimport TradeFormDetails from '../TradeDetail/TradeFormDetails';\nimport TradeFormAlert from '../TradeFormAlert';\nimport TradeFormBase from '../TradeFormBase';\nimport TradeFormSide from '../TradeFormBase/TradeFormSide';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\n\nconst TradeMarketForm: FC = function ({ className }) {\n const dispatch = useAppDispatch();\n // const { t } = useTranslation();\n const chainId = useChainId();\n const tradeSide = useTradeSide(chainId);\n const marketFormState = useMarketFormState(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const sdkContext = useSDK(chainId);\n useTradeDefaultSide(currentPair);\n const maxLeverage = useTradeMaxLeverage(currentPair?.maxLeverage);\n const defaultLeverage = useTradeDefaultLeverage(currentPair?.maxLeverage);\n const userAddr = useUserAddr();\n const marketFormStatus = useMarketFormStateStatus(chainId);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const tradeSimulation = useMarketSimulation(chainId);\n const { slippage } = useGlobalConfig(chainId);\n const isFetchedPortfolio = useIsFetchedSinglePortfolio(\n chainId,\n userAddr,\n currentPair?.instrumentAddr,\n currentPair?.expiry,\n );\n\n const availableBalance = useAvailableTokenBalance(currentPair?.rootInstrument?.marginToken?.address, chainId, true);\n const getIsClosing = useCallback(\n (amount?: string) => {\n amount = amount || marketFormState.baseAmount;\n if (currentPair && currentPosition) {\n const adjustTradeSide = tradeSide;\n return currentPosition?.side !== adjustTradeSide && currentPosition?.wrappedSize.abs().eq(amount);\n }\n },\n [currentPair, currentPosition, marketFormState.baseAmount, tradeSide],\n );\n const isClosing = useMemo(() => getIsClosing(), [getIsClosing]);\n\n // const isShowLeverageWarning = useMemo(() => {\n // return (tradeSimulation?.data?.exceedMaxLeverage && !tradeSimulation.data.leverage.eq(0)) || false;\n // }, [tradeSimulation?.data?.exceedMaxLeverage, tradeSimulation?.data?.leverage]);\n const fetchSimulation = useCallback(() => {\n if (chainId && currentPosition && sdkContext && userAddr) {\n if (WrappedBigNumber.from(marketFormState?.baseAmount).lte(0) || (!marketFormState.marginAmount && !isClosing)) {\n dispatch(clearMarketTradeSimulation({ chainId }));\n return;\n }\n\n dispatch(\n simulateMarketTrade({\n chainId,\n sdkContext,\n position: currentPosition,\n // base: marketFormState.baseAmount,\n tradeSide,\n margin: isClosing ? '0' : marketFormState.marginAmount || '0',\n slippage: Number(slippage),\n userAddr,\n maxLeverage,\n }),\n );\n }\n }, [\n chainId,\n currentPosition,\n sdkContext,\n userAddr,\n marketFormState?.baseAmount,\n marketFormState.marginAmount,\n isClosing,\n dispatch,\n tradeSide,\n slippage,\n maxLeverage,\n ]);\n const fetchSimulationWitLeverage = useCallback(\n (leverage?: string) => {\n if (chainId && currentPosition && sdkContext && userAddr) {\n if (WrappedBigNumber.from(marketFormState?.baseAmount).lte(0)) {\n dispatch(clearMarketTradeSimulation({ chainId }));\n\n return;\n }\n const savedLeverage = getSavedPairLeverage(userAddr, chainId, currentPair?.id, TRADE_TYPE.MARKET);\n\n dispatch(\n simulateMarketTrade({\n chainId,\n sdkContext,\n position: currentPosition,\n // base: marketFormState.baseAmount,\n leverage: leverage || savedLeverage || marketFormState.leverage,\n tradeSide,\n slippage: Number(slippage),\n userAddr,\n maxLeverage,\n }),\n );\n }\n },\n [\n chainId,\n currentPosition,\n sdkContext,\n userAddr,\n marketFormState.baseAmount,\n marketFormState.leverage,\n currentPair?.id,\n dispatch,\n tradeSide,\n slippage,\n maxLeverage,\n ],\n );\n const { run: simulateTradeDebounced } = useDebounceFn(\n () => {\n fetchSimulation();\n },\n { wait: 400 },\n );\n const { run: simulateTradeWithLeverageDebounced } = useDebounceFn(\n (leverage?: string) => {\n fetchSimulationWitLeverage(leverage);\n },\n { wait: 400 },\n );\n\n const leverageChanged = useCallback(\n (leverage: string) => {\n if (chainId) {\n const baseWad = toWad(marketFormState.baseAmount || 0);\n\n dispatch(\n setTradeFormLeverageAndMargin({\n chainId,\n leverage: leverage,\n marginAmount: undefined,\n }),\n );\n // no simulation when base zero\n !baseWad.eq(0) && simulateTradeWithLeverageDebounced(leverage);\n }\n },\n [chainId, dispatch, marketFormState.baseAmount, simulateTradeWithLeverageDebounced],\n );\n const simulateFn = useCallback(() => {\n if (!toBN(marketFormState.baseAmount || 0).eq(0)) {\n if (marketFormState.leverageAdjustType === LEVERAGE_ADJUST_TYPE.BY_AMOUNT || isClosing) {\n simulateTradeDebounced();\n } else {\n simulateTradeWithLeverageDebounced();\n }\n }\n }, [\n marketFormState.baseAmount,\n marketFormState.leverageAdjustType,\n isClosing,\n simulateTradeDebounced,\n simulateTradeWithLeverageDebounced,\n ]);\n const onSideChange = useCallback(\n (key: string) => {\n chainId &&\n dispatch(\n setTradeFormSide({\n chainId,\n tradeSide: Number(key) as Side,\n }),\n );\n // re simulate only when amount exists\n simulateFn();\n },\n [chainId, dispatch, simulateFn],\n );\n\n const amountStrChanged = useCallback(\n (amount?: string) => {\n // location storage is more accurate than slice when leverage adjust type changes\n const adjustType = getSavedPairLeverage(userAddr, chainId, currentPair?.id, LEVERAGE_ADJUST);\n if (adjustType === LEVERAGE_ADJUST_TYPE.BY_AMOUNT || getIsClosing(amount)) {\n simulateTradeDebounced();\n } else {\n simulateTradeWithLeverageDebounced();\n }\n },\n [chainId, currentPair?.id, getIsClosing, simulateTradeDebounced, simulateTradeWithLeverageDebounced, userAddr],\n );\n\n useEffect(() => {\n if (chainId && userAddr && currentPair?.id && isFetchedPortfolio) {\n const leverageSaved = getSavedPairLeverage(userAddr, chainId, currentPosition?.rootPair.id, TRADE_TYPE.MARKET);\n let leverage =\n leverageSaved ||\n (currentPosition?.hasPosition\n ? currentPosition?.wrapAttribute('leverageWad').formatNormalNumberString(1)\n : defaultLeverage.toString());\n // make sure leverage is normal number\n if (WrappedBigNumber.from(leverage).lt(TRADE_LEVERAGE_THRESHOLDS.MIN)) {\n leverage = TRADE_LEVERAGE_THRESHOLDS.MIN.toString();\n }\n if (leverage !== leverageSaved && currentPosition?.rootPair.id) {\n savePairLeverage(userAddr, chainId, currentPosition?.rootPair.id, TRADE_TYPE.MARKET, leverage);\n }\n dispatch(\n setTradeFormLeverage({\n chainId,\n leverage,\n }),\n );\n }\n // must dep on all three\n }, [chainId, currentPosition?.rootPair.id, currentPosition?.id, isFetchedPortfolio]);\n\n const onNativeTokenDepositClick = useCallback(() => {\n chainId &&\n dispatch(\n setTradeFormType({\n chainId,\n tradeType: TRADE_TYPE.DEPOSIT_NATIVE,\n }),\n );\n }, [chainId, dispatch]);\n\n const onMaxBalanceClick = useCallback(\n (balance: WrappedBigNumber) => {\n if (chainId && currentPosition && sdkContext && userAddr) {\n if (WrappedBigNumber.from(marketFormState?.baseAmount).lte(0)) {\n dispatch(clearMarketTradeSimulation({ chainId }));\n return;\n }\n dispatch(\n simulateMarketTrade({\n chainId,\n sdkContext,\n position: currentPosition,\n base: marketFormState.baseAmount,\n tradeSide,\n slippage: Number(slippage),\n userAddr,\n margin: balance.stringValue,\n maxLeverage,\n }),\n );\n }\n },\n [\n chainId,\n currentPosition,\n dispatch,\n marketFormState.baseAmount,\n sdkContext,\n slippage,\n tradeSide,\n userAddr,\n maxLeverage,\n ],\n );\n\n useEffect(() => {\n // re simulate only when amount exists\n if (marketFormStatus !== FETCHING_STATUS.FETCHING) {\n simulateFn();\n }\n }, [slippage]);\n\n useEffect(() => {\n // simulate when fairPrice change\n if (marketFormStatus !== FETCHING_STATUS.FETCHING) {\n simulateFn();\n }\n // only dep on this\n }, [currentPair?.fairPrice._hex]);\n\n useEffect(() => {\n if (marketFormStatus !== FETCHING_STATUS.FETCHING) {\n // simulate when balance change\n simulateFn();\n }\n }, [availableBalance?.stringValue]);\n\n return (\n
\n \n\n {\n amountStrChanged();\n }}\n marginToken={currentPair?.rootInstrument.marginToken}\n simulationMessage={tradeSimulation?.message}\n simulationErrorData={tradeSimulation?.errorData}\n />\n\n {/* {leverageSwitched && (\n \n )} */}\n\n {/* {toBN(marketFormState.baseAmount || 0).gt(0) && !tradeSimulation?.message && ( */}\n {toBN(marketFormState.baseAmount || 0).gt(0) && (\n \n )}\n {/* {isShowLeverageWarning && (\n \n }}\n />\n {t('common.learnMore')}\n \n }\n type=\"warning\"\n showIcon>\n )} */}\n \n \n );\n};\n\nexport default TradeMarketForm;\n","/**\n * @description Component-TradeForm\n */\nimport './index.less';\n\nimport { usePrevious } from 'ahooks';\nimport React, { FC, useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as LabelIcon } from '@/assets/svg/icon_rebate_round.svg';\nimport { Tooltip } from '@/components/ToolTip';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { useCurrentPairFromUrl, useGetDefaultLimitPrice, usePairDisabledForLimit } from '@/features/pair/hook';\nimport { resetFormByChainId, setLimitPrice, setTradeFormType } from '@/features/trade/actions';\nimport { useTradeSide, useTradeType } from '@/features/trade/hooks';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport DepositNativeCard from '@/pages/components/Portfolio/Vault/AccountButtons/Deposit/DepositModal/DepositNativeCard';\nimport WalletCardWrapper from '@/pages/components/WalletStatus/WalletCardWrapper';\nimport { formatNumber } from '@/utils/numberUtil';\nimport { isWrappedNativeToken } from '@/utils/token';\n\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport TradeEarnTabs from '@/pages/components/Tabs/TradeEarnTabs';\nimport classNames from 'classnames';\nimport { useLocation } from 'react-router-dom';\nimport ScaleLimitForm from './ScaleLimitForm';\nimport TradeAdjust from './TradeAdjust';\nimport TradeClose from './TradeClose';\nimport TradeLimitForm from './TradeLimitForm';\nimport TradeMarketForm from './TradeMarketForm';\nimport TradeFormFooter from './tradeformFooter';\ninterface IPropTypes {\n children?: React.ReactNode;\n}\nconst TradeForm: FC = function ({}) {\n const { state } = useLocation();\n const dispatch = useAppDispatch();\n const { t } = useTranslation();\n const chainId = useChainId();\n const tradeType = useTradeType(chainId);\n const tradeSide = useTradeSide(chainId);\n const sdkContext = useSDK(chainId);\n const dappConfig = useBackendChainConfig(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const tradeTypePrev = usePrevious(tradeType);\n const { inDisabledPairs, pairDisabledInLimit } = usePairDisabledForLimit(currentPair);\n const isWrappedNative = useMemo(\n () => chainId && isWrappedNativeToken(chainId, currentPair?.rootInstrument.marginToken?.address || ''),\n [chainId, currentPair?.rootInstrument.marginToken?.address],\n );\n const getDefaultLimitPrice = useGetDefaultLimitPrice(currentPair, tradeSide, sdkContext);\n const tabList = [\n {\n key: TRADE_TYPE.MARKET.toString(),\n tab:
{t('common.tradePage.market')}
,\n },\n {\n key: TRADE_TYPE.LIMIT.toString(),\n tab: dappConfig?.trade?.isDisableLimitOrder ? (\n \n {t('common.limit')}\n \n ) : (\n \n
\n {t('common.limit')}\n \n \n \n
\n
\n ),\n disabled: pairDisabledInLimit,\n },\n {\n key: TRADE_TYPE.SCALE_LIMIT.toString(),\n disabled: pairDisabledInLimit,\n tab: dappConfig?.trade?.isDisableLimitOrder ? (\n \n {t('common.limit')}\n \n ) : (\n \n
\n {t('common.tradePage.scaleLimit')}\n \n \n \n
\n
\n ),\n },\n ];\n\n const onTabChange = useCallback(\n async (key: string) => {\n const tradeType = key as TRADE_TYPE;\n if ([TRADE_TYPE.LIMIT, TRADE_TYPE.SCALE_LIMIT].includes(tradeType)) {\n }\n chainId &&\n dispatch(\n setTradeFormType({\n chainId,\n tradeType: key as TRADE_TYPE,\n }),\n );\n if (tradeType === TRADE_TYPE.LIMIT) {\n const defaultLimitPrice = await getDefaultLimitPrice();\n\n if (defaultLimitPrice) {\n const inputAmountStr = formatNumber(\n defaultLimitPrice.adjustPrice.stringValue,\n currentPair?.priceDecimal,\n false,\n );\n chainId &&\n dispatch(\n setLimitPrice({\n chainId,\n limitPrice: inputAmountStr,\n alignedPrice: inputAmountStr,\n }),\n );\n }\n }\n },\n [chainId, currentPair?.priceDecimal, dispatch, getDefaultLimitPrice],\n );\n const closeDepositNativeInTrade = useCallback(() => {\n if (chainId) {\n if (tradeTypePrev === TRADE_TYPE.ADJUST_MARGIN) {\n dispatch(\n setTradeFormType({\n chainId,\n tradeType: TRADE_TYPE.ADJUST_MARGIN,\n }),\n );\n } else {\n dispatch(\n resetFormByChainId({\n chainId,\n }),\n );\n }\n }\n }, [chainId, dispatch, tradeTypePrev]);\n\n useEffect(() => {\n if (state?.toLimitTab) {\n onTabChange(TRADE_TYPE.LIMIT);\n }\n // only depend on this\n }, [state?.toLimitTab]);\n\n return (\n
\n {[TRADE_TYPE.MARKET, TRADE_TYPE.LIMIT, TRADE_TYPE.SCALE_LIMIT].includes(tradeType as TRADE_TYPE) && (\n \n \n
\n }\n bordered={false}\n tabList={tabList}\n isWrappedNative={isWrappedNative}\n tabKey={tradeType.toString()}\n onTabChange={onTabChange}\n footer={}\n className=\"syn-trade-form\">\n {tradeType === TRADE_TYPE.MARKET && }\n {tradeType === TRADE_TYPE.LIMIT && }\n {tradeType === TRADE_TYPE.SCALE_LIMIT && }\n \n )}\n {tradeType === TRADE_TYPE.ADJUST_MARGIN && }\n {tradeType === TRADE_TYPE.CLOSE_POSITION && }\n {tradeType === TRADE_TYPE.DEPOSIT_NATIVE && (\n \n )}\n \n );\n};\n\nexport default TradeForm;\n","/**\n * @description Component-TradeForm\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport BuildOnNetworkCard from '@/pages/components/BuildOnNetworkCard';\nimport TradeForm from './TradeForm';\ninterface IPropTypes {\n children?: React.ReactNode;\n}\nconst TradeCard: FC = function ({}) {\n return (\n
\n \n \n {/* */}\n
\n );\n};\n\nexport default TradeCard;\n","/**\n * @description Component-EarnLiquidities\n */\nimport './index.less';\n\nimport React, { FC, useCallback } from 'react';\n\nimport { ReactComponent as ChevronRight } from '@/assets/svg/icon_chevron_right.svg';\nimport SkeletonTable, { SkeletonTableColumnsType } from '@/components/SkeletonTable';\nimport Table from '@/components/Table';\nimport { WrappedRange } from '@/entities/WrappedRange';\nimport { useCurrentRange, useWrappedRangeList } from '@/features/account/rangeHook';\nimport { usePairFromUrl } from '@/features/pair/hook';\n\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n\nimport { Button } from '@/components/Button';\nimport { useMockDevTool } from '@/components/Mock';\nimport { PORTFOLIO_TAB_ITEMS } from '@/constants/portfolio';\nimport { useIsFetchedSinglePortfolio } from '@/features/portfolio/hook';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router-dom';\nimport { useLiqTableColumns } from './tableTitles';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst EarnLiquidities: FC = function ({}) {\n const columnDefs = useLiqTableColumns();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const currentPair = usePairFromUrl(chainId);\n const currentRange = useCurrentRange(chainId, userAddr);\n const rangeList = useWrappedRangeList(chainId, userAddr, currentPair?.id);\n const isFetchedPortfolio = useIsFetchedSinglePortfolio(\n chainId,\n userAddr,\n currentPair?.instrumentAddr,\n currentPair?.expiry,\n );\n const { isMockSkeleton } = useMockDevTool();\n const navigate = useNavigate();\n const goToOrders = useCallback(() => {\n navigate(`/portfolio/${PORTFOLIO_TAB_ITEMS.PORTFOLIO}`);\n }, [navigate]);\n const { t } = useTranslation();\n if (isFetchedPortfolio && !rangeList?.length) {\n return null;\n }\n return (\n
\n
\n {t('common.myLiquidity')}\n \n
\n \n record.id}\n sticky\n // emptyDesc={t('common.empty.TradeNow')}\n // emptyDescLink={'/#/trade'}\n rowClassName={(record: WrappedRange) =>\n record.id === currentRange?.id ? 'syn-earn-liquidities-row-active' : ''\n }\n />\n \n
\n );\n};\n\nexport default EarnLiquidities;\n","import './index.less';\n\nimport { ColumnsType } from 'antd/es/table';\nimport { useCallback, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as CloseIcon } from '@/assets/svg/icon_close_24.svg';\nimport { Button } from '@/components/Button';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport LeanMoreToolTip from '@/components/ToolTip/LeanMoreToolTip';\nimport { FETCHING_STATUS } from '@/constants';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { WrappedRange } from '@/entities/WrappedRange';\nimport { useCurrentRange } from '@/features/account/rangeHook';\nimport { setCurrentRange, setEarnFormType } from '@/features/earn/action';\nimport { useEarnFormType, useRemoveLiquidityFormStateStatus } from '@/features/earn/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport LiquidationPrices from '@/pages/components/LiquidationPrices';\n\nimport { Tooltip } from '@/components/ToolTip';\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { TRADE_TYPE } from '@/constants/trade';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useIsIpBlocked } from '@/features/global/hooks';\nimport { setTradeFormType } from '@/features/trade/actions';\nimport { bigNumberSort } from '@/utils/numberUtil';\nimport { useNavigate } from 'react-router-dom';\nimport PriceRange from './PriceRange';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function useLiqTableColumns(): ColumnsType {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const ipBlocked = useIsIpBlocked();\n const currentRange = useCurrentRange(chainId, userAddr);\n const removeStatus = useRemoveLiquidityFormStateStatus(chainId);\n const earnType = useEarnFormType(chainId);\n const isDisableBtn = useMemo(() => {\n return earnType === EARN_TYPE.REMOVE_LIQ && removeStatus === FETCHING_STATUS.FETCHING;\n }, [earnType, removeStatus]);\n const navigate = useNavigate();\n //const setTradePortfolioTab = useSetTradePortfolioTab();\n const rowClicked = useCallback(\n async (range: WrappedRange) => {\n chainId &&\n dispatch(\n setCurrentRange({\n chainId,\n rangeId: range.id,\n }),\n );\n chainId &&\n dispatch(\n setEarnFormType({\n chainId,\n formType: EARN_TYPE.REMOVE_LIQ,\n }),\n );\n navigate(\n (chainId &&\n range.rootPair.symbol &&\n `/earn/${DAPP_CHAIN_CONFIGS[chainId]?.network?.shortName}/${range.rootPair.symbol}`) ||\n '',\n );\n\n chainId &&\n dispatch(\n setTradeFormType({\n chainId,\n tradeType: TRADE_TYPE.MARKET,\n }),\n );\n // Scroll the main-container to the top\n const mainContainer = document.querySelector('.main-container');\n if (mainContainer) {\n mainContainer.scrollTo({ top: 0, behavior: 'smooth' });\n }\n },\n [chainId, dispatch, navigate],\n );\n const unSelectRow = useCallback(() => {\n chainId &&\n dispatch(\n setCurrentRange({\n chainId,\n rangeId: '',\n }),\n );\n chainId &&\n dispatch(\n setEarnFormType({\n chainId,\n formType: EARN_TYPE.ADD_LIQ,\n }),\n );\n }, [chainId, dispatch]);\n\n const priceRange = useMemo(\n () => ({\n title: t('common.earn.priceR'),\n key: 'pr',\n width: 120,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_value: any, record: WrappedRange): JSX.Element | undefined => {\n return (\n \n );\n },\n }),\n [t],\n );\n\n const valueLocked = useMemo(\n () => ({\n title: (\n {t('common.earn.valueLocked')}\n ),\n key: 'vl',\n width: 80,\n sorter: (a: WrappedRange, b: WrappedRange): number => {\n // a.valueLock needs to be checked first when there is a default sorter\n return bigNumberSort(a.wrapAttribute('valueLocked'), b.wrapAttribute('valueLocked'));\n },\n sortDirections: ['ascend', 'descend'],\n className: 'rangeAmount',\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_value: any, record: WrappedRange): JSX.Element | undefined => {\n return (\n \n {record.wrapAttribute('valueLocked').formatNumberWithTooltip({\n suffix: record.rootInstrument.marginToken.symbol,\n showToolTip: true,\n })}\n \n );\n },\n }),\n [t],\n );\n\n // const fairPrice = useMemo(\n // () => ({\n // title: t('common.fairP'),\n // key: 'fairPrice',\n // width: 80,\n // // eslint-disable-next-line @typescript-eslint/no-unused-vars\n // shouldCellUpdate: (record: WrappedRange, prevRecord: WrappedRange): boolean => true,\n // // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n // render: (value: any, record: WrappedRange): JSX.Element | undefined => {\n // return (\n // \n // {record.rootPair.wrapAttribute('fairPrice').formatPriceNumberWithTooltip()}\n // \n // );\n // },\n // }),\n // [t],\n // );\n const entryPrice = useMemo(\n () => ({\n title: t('common.earn.entryPrice'),\n key: 'entryPrice',\n width: 80,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n shouldCellUpdate: (record: WrappedRange, prevRecord: WrappedRange): boolean => true,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: WrappedRange): JSX.Element | undefined => {\n return (\n \n {WrappedBigNumber.from(record.entryPrice || 0).formatPriceNumberWithTooltip()}\n \n );\n },\n }),\n [t],\n );\n const liquidationPrice = useMemo(\n () => ({\n title: t('common.liqPrice'),\n key: 'lp',\n width: 80,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_value: any, record: WrappedRange): JSX.Element | undefined => {\n return (\n \n );\n },\n }),\n [t],\n );\n\n const feesEarned = useMemo(\n () => ({\n title: t('common.earn.feesE'),\n key: 'fe',\n width: 80,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (_value: any, record: WrappedRange): JSX.Element | undefined => {\n return (\n \n {record.wrapAttribute('feeEarned').formatNumberWithTooltip({\n suffix: record.rootInstrument.marginToken.symbol,\n })}\n \n );\n },\n }),\n [t],\n );\n const action = useMemo(\n () => ({\n title: t('common.action'),\n key: 'action',\n width: 80,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: WrappedRange): JSX.Element | undefined => {\n return (\n
\n {currentRange?.id === record.id ? (\n \n ) : (\n \n rowClicked(record)}>\n {t('common.remove')}\n \n \n )}\n
\n );\n },\n }),\n [currentRange?.id, isDisableBtn, rowClicked, t, unSelectRow, ipBlocked],\n );\n\n const columnDefs = useMemo(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n () => [priceRange, entryPrice, valueLocked, feesEarned, liquidationPrice, action],\n [action, feesEarned, liquidationPrice, entryPrice, priceRange, valueLocked],\n );\n return columnDefs as ColumnsType;\n}\n","import { POLLING_HISTORY_POLLING } from '@/constants/polling';\nimport { usePollingHistoryTx } from '@/features/global/hooks';\nimport { PollingHistoryId } from '@/features/global/type';\nimport { useMemo } from 'react';\nimport { usePoller } from '../common/usePoller';\nimport { useChainId, useUserAddr } from '../web3/useChain';\n\nexport default function useHistoryPolling(\n pollingHistoryId: PollingHistoryId,\n histories: { txHash: string }[],\n refreshData: (page?: number, isPolling?: boolean) => void,\n) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const tx = usePollingHistoryTx(pollingHistoryId, chainId, userAddr);\n const isLatestTxFetched = useMemo(() => {\n if (!tx) return true;\n return histories.some((history) => tx && history.txHash.toLowerCase() === tx?.toLowerCase());\n }, [histories, tx]);\n usePoller(\n () => {\n if (!isLatestTxFetched) {\n refreshData(0, true);\n }\n },\n [refreshData, isLatestTxFetched],\n POLLING_HISTORY_POLLING,\n );\n}\n","/**\n * @description Component-EarnHistory\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport { HISTORY_TYPE } from '@/constants/history';\nimport { PollingHistoryId } from '@/features/global/type';\nimport { useHistoryRange, useInfiniteLiquidityHistory } from '@/features/graph/hooks';\nimport { usePairFromUrl } from '@/features/pair/hook';\nimport useHistoryPolling from '@/hooks/history/useHistoryPolling';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport HistoryTable from '@/pages/portfolio/AccountHistory/HistoryTable';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst EarnHistory: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const pair = usePairFromUrl(chainId);\n const timeRange = useHistoryRange();\n\n const {\n refreshData,\n histories: liquidityHistories,\n queryState: { isLoading, fetchNextPage },\n } = useInfiniteLiquidityHistory({ chainId, userAddr, pair, timeRange });\n\n useHistoryPolling(PollingHistoryId.liquidity, liquidityHistories, refreshData);\n\n return (\n
\n \n
\n );\n};\n\nexport default EarnHistory;\n","/**\n * @description Component-Fundings\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport { HISTORY_TYPE } from '@/constants/history';\nimport { POLLING_HISTORY_POLLING } from '@/constants/polling';\nimport { useHistoryRange, useInfiniteFundingHistory } from '@/features/graph/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { usePoller } from '@/hooks/common/usePoller';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport HistoryTable from '@/pages/portfolio/AccountHistory/HistoryTable';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst Fundings: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const pair = useCurrentPairFromUrl(chainId);\n const timeRange = useHistoryRange();\n const {\n refreshData,\n histories: fundingHistories,\n queryState: { isLoading, fetchNextPage },\n } = useInfiniteFundingHistory({ chainId, userAddr, pair, timeRange });\n\n usePoller(\n () => {\n refreshData();\n },\n [refreshData],\n POLLING_HISTORY_POLLING,\n );\n return (\n
\n \n
\n );\n};\n\nexport default Fundings;\n","/**\n * @description Component-OrderHistory\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport { HISTORY_TYPE } from '@/constants/history';\nimport { PollingHistoryId } from '@/features/global/type';\nimport { useHistoryRange, useInfiniteOrdersHistory } from '@/features/graph/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport useHistoryPolling from '@/hooks/history/useHistoryPolling';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport HistoryTable from '@/pages/portfolio/AccountHistory/HistoryTable';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst OrderHistory: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const pair = useCurrentPairFromUrl(chainId);\n const timeRange = useHistoryRange();\n\n const {\n refreshData,\n histories,\n queryState: { fetchNextPage: fetchNextOrderPage, isLoading: isLoadingOrder },\n } = useInfiniteOrdersHistory({ chainId, userAddr, pair, timeRange });\n\n useHistoryPolling(PollingHistoryId.order, histories, refreshData);\n\n return (\n
\n \n
\n );\n};\n\nexport default OrderHistory;\n","/**\n * @description Component-TradeHistory\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport { HISTORY_TYPE } from '@/constants/history';\nimport { PollingHistoryId } from '@/features/global/type';\nimport { useHistoryRange, useInfiniteVirtualTradeHistory } from '@/features/graph/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport useHistoryPolling from '@/hooks/history/useHistoryPolling';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport HistoryTable from '@/pages/portfolio/AccountHistory/HistoryTable';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradeHistory: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const timeRange = useHistoryRange();\n const pair = useCurrentPairFromUrl(chainId);\n const {\n refreshData,\n histories,\n queryState: { isLoading, fetchNextPage },\n } = useInfiniteVirtualTradeHistory({ chainId, userAddr, timeRange, pair });\n\n useHistoryPolling(PollingHistoryId.trade, histories, refreshData);\n return (\n
\n \n
\n );\n};\n\nexport default TradeHistory;\n","/**\n * @description Component-Transfers\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport { HISTORY_TYPE } from '@/constants/history';\nimport { PollingHistoryId } from '@/features/global/type';\nimport { useHistoryRange, useInfiniteTransferHistory } from '@/features/graph/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport useHistoryPolling from '@/hooks/history/useHistoryPolling';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport HistoryTable from '@/pages/portfolio/AccountHistory/HistoryTable';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst Transfers: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const timeRange = useHistoryRange();\n const pair = useCurrentPairFromUrl(chainId);\n const {\n refreshData,\n histories: transferHistories,\n queryState: { fetchNextPage, isLoading },\n } = useInfiniteTransferHistory({ chainId, userAddr, pair: 'all', timeRange });\n\n useHistoryPolling(PollingHistoryId.transfer, transferHistories, refreshData);\n return (\n
\n {/* */}\n \n
\n );\n};\n\nexport default Transfers;\n","import { TABLE_TYPES } from '@/constants/global';\nimport { useTradePortfolioTab } from '@/features/trade/hooks';\nimport { setTradePortfolioTab } from '@/features/trade/slice';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport EarnHistory from '@/pages/earn/EarnHistory';\nimport classNames from 'classnames';\nimport { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport Fundings from '../Fundings';\nimport OrderHistory from '../OrderHistory';\nimport TradeHistory from '../TradeHistory';\nimport Transfers from '../Transfers';\nimport './index.less';\n\nexport default function HistoryWrapper() {\n const tabPosition = useTradePortfolioTab();\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n const { t } = useTranslation();\n useEffect(() => {\n chainId && dispatch(setTradePortfolioTab({ tab: TABLE_TYPES.TRADE_HISTORY, chainId }));\n }, [chainId, dispatch]);\n return (\n
\n
{t('common.history')}
\n {tabPosition === TABLE_TYPES.TRADE_HISTORY && }\n {tabPosition === TABLE_TYPES.ORDER_HISTORY && }\n {tabPosition === TABLE_TYPES.FUNDING && }\n {tabPosition === TABLE_TYPES.LIQUIDITY_HISTORY && }\n {tabPosition === TABLE_TYPES.TRANSFERS && }\n
\n );\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconCheckboxOff = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.05469 15.5925C4.91202 15.5925 3.34069 15.5925 2.36402 14.6158C1.38802 13.6405 1.38802 12.0685 1.38802 8.92579C1.38802 5.78312 1.38802 4.21179 2.36402 3.23512C3.34136 2.25912 4.91202 2.25912 8.05469 2.25912C11.1974 2.25912 12.7687 2.25912 13.7447 3.23512C14.7214 4.21246 14.7214 5.78312 14.7214 8.92579C14.7214 12.0685 14.7214 13.6398 13.7447 14.6158C12.7694 15.5925 11.1974 15.5925 8.05469 15.5925Z\",\n fill: \"#E2E7E9\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconCheckboxOff);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_checkbox_off.36d888dd3070850c7d46f2ac6889be30.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconCheckboxOn = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 17,\n viewBox: \"0 0 17 17\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.05473 15.5924C4.91206 15.5924 3.34073 15.5924 2.36406 14.6158C1.38806 13.6404 1.38806 12.0684 1.38806 8.92576C1.38806 5.78309 1.38806 4.21176 2.36406 3.23509C3.34139 2.25909 4.91206 2.25909 8.05473 2.25909C11.1974 2.25909 12.7687 2.25909 13.7447 3.23509C14.7214 4.21243 14.7214 5.78309 14.7214 8.92576C14.7214 12.0684 14.7214 13.6398 13.7447 14.6158C12.7694 15.5924 11.1974 15.5924 8.05473 15.5924Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.9182 6.7287C11.2111 7.0216 11.2111 7.49647 10.9182 7.78936L7.58485 11.1227C7.29196 11.4156 6.81709 11.4156 6.52419 11.1227L5.19086 9.78936C4.89797 9.49647 4.89797 9.0216 5.19086 8.7287C5.48375 8.43581 5.95863 8.43581 6.25152 8.7287L7.05452 9.53171L9.85753 6.7287C10.1504 6.43581 10.6253 6.43581 10.9182 6.7287Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconCheckboxOn);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_checkbox_on.f7b941a70f1d9de3d5d1db444ee94087.svg\";","/**\n * @description Component-TradeOpenOrders\n */\nimport './index.less';\n\nimport { LoadingOutlined } from '@ant-design/icons';\nimport { Spin } from 'antd';\nimport _ from 'lodash';\nimport { FC, useCallback, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\nimport Table from '@/components/Table';\nimport { useTableColumns } from '@/components/TableCard/tableConfigs';\nimport { FETCHING_STATUS } from '@/constants';\nimport { TABLE_TYPES } from '@/constants/global';\nimport { WrappedOrder } from '@/entities/WrappedOrder';\nimport { useWrappedPortfolioByPairId } from '@/features/account/portfolioHook';\nimport { useGlobalConfig, useIsIpBlocked } from '@/features/global/hooks';\nimport { useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { cancelTradeOrders, fillLimitOrder, selectOrderToCancel, setIsChosenOrder } from '@/features/trade/actions';\nimport { useBulkCancelStatus, useCancelFormStatus, useCancelItems, useIsChosenOrder } from '@/features/trade/hooks';\nimport { useAppProvider, useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useDappChainConfig, useUserAddr } from '@/hooks/web3/useChain';\n\nimport { ReactComponent as ChevronRight } from '@/assets/svg/icon_chevron_right.svg';\nimport { useMockDevTool } from '@/components/Mock';\nimport { Tooltip } from '@/components/ToolTip';\nimport { PORTFOLIO_TAB_ITEMS } from '@/constants/portfolio';\nimport { tableWidthMap } from '@/constants/table';\n\nimport LeanMoreToolTip from '@/components/ToolTip/LeanMoreToolTip';\nimport { useWrappedOrderList } from '@/features/account/orderHook';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport useOpenOrderListWithCreateTime from '@/hooks/portfolio/useOpenOrderListWithCreateTime';\nimport { useSwitchNetwork } from '@/hooks/web3/useSwitchConnectorNetwork';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\nimport { useNavigate } from 'react-router-dom';\nimport { ReactComponent as CheckboxOff } from './assets/icon_checkbox_off.svg';\nimport { ReactComponent as CheckboxOn } from './assets/icon_checkbox_on.svg';\ninterface IPropTypes {\n isEditing?: boolean;\n}\nconst TradeOpenOrders: FC = function ({}) {\n const columnDefs = useTableColumns(TABLE_TYPES.OPEN_ORDERS);\n const ipBlocked = useIsIpBlocked();\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n const isChosenOrder = useIsChosenOrder();\n const currentPair = useCurrentPairFromUrl(chainId);\n const openOrders = useWrappedOrderList(chainId, userAddr, currentPair?.id);\n const openOrdersWithCreateTime = useOpenOrderListWithCreateTime(openOrders);\n const sdkContext = useSDK(chainId);\n const provider = useAppProvider();\n const { deadline } = useGlobalConfig(chainId);\n const signer = useWalletSigner();\n const portfolio = useWrappedPortfolioByPairId(chainId, userAddr, currentPair?.id);\n const cancelItems = useCancelItems(chainId, userAddr, currentPair?.id);\n const cancelStatuses = useCancelFormStatus(chainId);\n const walletStatus = useWalletConnectStatus();\n const { switchWalletNetwork } = useSwitchNetwork();\n const bulkCancelling = useBulkCancelStatus(chainId);\n const navigate = useNavigate();\n const dappConfig = useDappChainConfig(chainId);\n const allSelected = useMemo(\n () => cancelItems?.length && cancelItems?.length === openOrdersWithCreateTime?.length,\n [cancelItems, openOrdersWithCreateTime],\n );\n const goToOrders = useCallback(() => {\n navigate(`/portfolio/${PORTFOLIO_TAB_ITEMS.PORTFOLIO}`);\n }, [navigate]);\n const cancelOrders = useCallback(\n async (orders: WrappedOrder[], bulkCancelling?: boolean) => {\n if (chainId && userAddr && orders && sdkContext && signer && portfolio && deadline && provider) {\n if (walletStatus === WALLET_CONNECT_STATUS.WRONG_NETWORK) {\n await switchWalletNetwork(chainId);\n return;\n }\n dispatch(\n cancelTradeOrders({\n chainId,\n userAddr,\n sdkContext,\n signer,\n portfolio,\n orders: orders,\n deadline: Number(deadline),\n provider,\n bulkCancel: bulkCancelling,\n }),\n );\n }\n },\n [chainId, deadline, dispatch, portfolio, provider, sdkContext, signer, switchWalletNetwork, userAddr, walletStatus],\n );\n\n const fillOrder = useCallback(\n async (order: WrappedOrder) => {\n if (chainId && userAddr && sdkContext && signer && portfolio && deadline && provider) {\n if (walletStatus === WALLET_CONNECT_STATUS.WRONG_NETWORK) {\n await switchWalletNetwork(chainId);\n return;\n }\n dispatch(\n fillLimitOrder({\n chainId,\n userAddr,\n sdkContext,\n signer,\n portfolio,\n order: order,\n deadline: Number(deadline),\n provider,\n }),\n );\n }\n },\n [chainId, deadline, dispatch, portfolio, provider, sdkContext, signer, switchWalletNetwork, userAddr, walletStatus],\n );\n\n const selectRow = useCallback(\n (checked: boolean, id: string) => {\n const currentIds = cancelItems?.map((i) => i.id) || [];\n if (chainId && userAddr) {\n dispatch(\n selectOrderToCancel({\n chainId,\n userAddr,\n ids: checked ? [...currentIds, id] : _.without(currentIds, id),\n }),\n );\n }\n },\n [cancelItems, chainId, dispatch, userAddr],\n );\n const selectAll = useCallback(\n (checked: boolean) => {\n const currentIds = openOrdersWithCreateTime?.map((i) => i.id) || [];\n if (chainId && userAddr) {\n dispatch(\n selectOrderToCancel({\n chainId,\n userAddr,\n ids: checked ? currentIds : [],\n }),\n );\n }\n },\n [chainId, dispatch, openOrdersWithCreateTime, userAddr],\n );\n const colDefs = useMemo(() => {\n const orderAction = {\n title: t('common.action'),\n key: 'action',\n align: 'right' as const,\n width: tableWidthMap[TABLE_TYPES.OPEN_ORDERS].action,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: WrappedOrder): JSX.Element | undefined => {\n const cancelStatus = _.get(cancelStatuses, [record.id]);\n const isShowFill = record.size.abs().eq(record.taken.abs());\n return (\n
\n \n {\n isShowFill ? fillOrder(record) : cancelOrders([record]);\n }}>\n {t(\n walletStatus === WALLET_CONNECT_STATUS.WRONG_NETWORK\n ? 'common.switchToChain'\n : isShowFill\n ? 'common.fill'\n : 'common.cancel',\n {\n chainName: dappConfig?.network?.name || '',\n },\n )}\n \n \n
\n );\n },\n };\n\n const checkboxCol = {\n title: (\n
\n {allSelected ? (\n !bulkCancelling && selectAll(false)} />\n ) : (\n !bulkCancelling && selectAll(true)} />\n )}{' '}\n {t('common.tradePage.no')}\n
\n ),\n key: 'checkbox',\n width: tableWidthMap[TABLE_TYPES.OPEN_ORDERS].checkboxCol,\n // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\n render: (value: any, record: WrappedOrder, index: number): JSX.Element | undefined => {\n const cancelStatus = _.get(cancelStatuses, [record.id]);\n const checked = cancelItems?.some((item) => item.id === record.id);\n return (\n
\n {cancelStatus === FETCHING_STATUS.FETCHING ? (\n } />\n ) : (\n <>\n {' '}\n {checked ? (\n selectRow(false, record.id)} />\n ) : (\n !bulkCancelling && selectRow(true, record.id)}\n />\n )}\n \n )}\n {index + 1}\n
\n );\n },\n };\n if (isChosenOrder) {\n return [checkboxCol, ...columnDefs];\n } else {\n return [...columnDefs, orderAction];\n }\n }, [\n t,\n bulkCancelling,\n allSelected,\n isChosenOrder,\n cancelStatuses,\n ipBlocked,\n chainId,\n walletStatus,\n dappConfig?.network?.name,\n fillOrder,\n cancelOrders,\n selectAll,\n cancelItems,\n selectRow,\n columnDefs,\n ]);\n const rowClicked = useCallback(() => {\n //TODO\n }, []);\n const { isMockSkeleton } = useMockDevTool();\n useEffect(() => {\n if (chainId) {\n dispatch(setIsChosenOrder({ isChosenOrder: false, chainId }));\n }\n // only depend on these\n }, [dispatch, chainId]);\n if (!openOrdersWithCreateTime?.length) {\n return null;\n }\n return (\n
\n
\n {t('common.tradePage.openO')}\n
\n {isChosenOrder && openOrders?.length ? (\n <>\n \n cancelItems && cancelOrders(cancelItems, true)}\n type=\"primary\"\n disabled={ipBlocked}\n chainIconProps={\n chainId && {\n chainId,\n width: 13,\n marginRight: '0px',\n }\n }>\n {t(walletStatus === WALLET_CONNECT_STATUS.WRONG_NETWORK ? 'common.switchToChain' : 'common.confirm', {\n chainName: dappConfig?.network?.name || '',\n })}\n \n \n {!bulkCancelling && (\n {\n chainId && dispatch(setIsChosenOrder({ isChosenOrder: false, chainId }));\n chainId &&\n userAddr &&\n dispatch(\n selectOrderToCancel({\n chainId,\n userAddr,\n ids: [],\n }),\n );\n }}\n size=\"small\"\n ghost>\n {t('common.exit')}\n \n )}\n \n ) : (\n <>\n \n {!!openOrders?.length && (\n \n {\n chainId && dispatch(setIsChosenOrder({ isChosenOrder: true, chainId }));\n chainId &&\n userAddr &&\n dispatch(\n selectOrderToCancel({\n chainId,\n userAddr,\n ids: openOrders.map((o) => o.id),\n }),\n );\n }}\n ghost>\n {t('common.tradePage.bulkC')}\n \n \n \n )}\n \n )}\n
\n
\n record.id}\n onRow={() => ({\n onClick: rowClicked,\n })}\n />\n
\n );\n};\n\nexport default TradeOpenOrders;\n","/**\n * @description Component-TradePositions\n */\nimport './index.less';\n\nimport Card from '@/components/Card';\nimport { useIsChosenOrder } from '@/features/trade/hooks';\nimport { useStaticPinObserver } from '@/hooks/useStickyPin';\nimport classNames from 'classnames';\nimport React, { FC, useRef } from 'react';\n\nimport EarnLiquidities from '@/pages/earn/EarnLiquidities';\nimport HistoryWrapper from './HistoryWrapper';\nimport TradeOpenOrders from './TradeOpenOrders';\n// import Transfers from './Transfers';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradePortfolio: FC = function ({ className }) {\n const isChosenOrder = useIsChosenOrder();\n const tabsHeaderStickyRef = useRef(null);\n\n useStaticPinObserver(tabsHeaderStickyRef);\n\n return (\n \n
\n \n \n \n
\n
\n );\n};\n\nexport default TradePortfolio;\n","export default function ShareIcon({ color = '#1F292E' }: { color?: string }) {\n return (\n \n \n \n \n );\n}\n","/**\n * @description Component-TradePosition\n */\nimport './index.less';\n\nimport { ReactComponent as ArrowRight } from '@/assets/svg/arrow-right.svg';\nimport { ReactComponent as WarningYellow } from '@/assets/svg/icon_warning_yellow.svg';\nimport { SocialLossAlert } from '@/components/Alert/SocialLossAlert';\nimport Empty from '@/components/Empty';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { IconToolTip } from '@/components/ToolTip';\nimport LeanMoreToolTip from '@/components/ToolTip/LeanMoreToolTip';\nimport PnlTitleToolTip from '@/components/ToolTip/PnlTitleToolTip';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { UnrealizedPnlTooltip } from '@/components/ToolTip/UnrealizedPnlTooltip';\nimport { FAQ_LINKS } from '@/constants/links';\nimport { TRADE_TYPE } from '@/constants/trade';\n\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { usePnlShareModal, useTheme } from '@/features/global/hooks';\nimport { useCurrentPairFromUrl, usePairDisabledForLimit } from '@/features/pair/hook';\nimport { setTradeFormType } from '@/features/trade/actions';\nimport {\n useAdjustMarginSimulation,\n useCloseSimulation,\n useCrossMarketSimulation,\n useMarketFormState,\n useMarketSimulation,\n useTradeType,\n} from '@/features/trade/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { usePriceBasisForPnl } from '@/hooks/usePriceBasisForPnl';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { toBN } from '@/utils/numberUtil';\nimport { Side } from '@synfutures/sdks-perp';\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { useMediaQuery } from 'react-responsive';\n\nimport ShareIcon from '@/assets/svg/icons/share';\nimport { Button } from '@/components/Button';\nimport { WRAPPED_ZERO } from '@/constants/bigNumber';\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { EARN_TYPE } from '@/constants/earn';\nimport { MARK_FAIR_DEV_THRESHHOLD } from '@/constants/global';\nimport { resetLiquidityFormByChainId } from '@/features/earn/action';\nimport { useEarnFormType, useRemoveLiquidationSimulation } from '@/features/earn/hook';\nimport useReverseLimitOrderInput from '@/hooks/trade/useReverseLimitOrderInput';\nimport { Flex } from 'antd';\nimport { Link, useLocation } from 'react-router-dom';\ninterface IPropTypes {\n children?: React.ReactNode;\n}\nconst TradePosition: FC = function ({}) {\n const { pathname } = useLocation();\n const { priceBasisForPnl } = usePriceBasisForPnl();\n const { t } = useTranslation();\n const { dataTheme } = useTheme();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const tradeType = useTradeType(chainId);\n const earnType = useEarnFormType(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n const reverseLimitOrderInput = useReverseLimitOrderInput(currentPosition);\n // const positionFetchingStatus = usePositionStatus(chainId, userAddr, currentPair?.id);\n const adjustMarginSimulation = useAdjustMarginSimulation(chainId);\n const marketSimulation = useMarketSimulation(chainId);\n const closePositionSimulation = useCloseSimulation(chainId);\n const lessThan1440 = useMediaQuery({ maxWidth: 1440 });\n const marketState = useMarketFormState(chainId);\n const crossMarketSimulation = useCrossMarketSimulation(chainId);\n const removeLiquiditySimulation = useRemoveLiquidationSimulation(chainId);\n\n const { inDisabledPairs } = usePairDisabledForLimit(currentPair);\n const marketFairHighDerivation = useMemo(\n () =>\n currentPair\n ?.wrapAttribute('fairPrice')\n .min(currentPair.wrapAttribute('markPrice'))\n .abs()\n .div(currentPair.wrapAttribute('markPrice'))\n .gte(MARK_FAIR_DEV_THRESHHOLD),\n [currentPair],\n );\n\n const removedNetPositionHasSize = useMemo(() => {\n return (\n !removeLiquiditySimulation?.data?.simulationMainPosition?.size?.sub(currentPosition?.size || 0)?.eq(0) &&\n !removeLiquiditySimulation?.data?.simulationMainPosition?.size?.eq(0)\n );\n }, [currentPosition?.size, removeLiquiditySimulation?.data?.simulationMainPosition.size]);\n\n const simulationPositionAfter = useMemo(() => {\n if (pathname.includes('/earn')) {\n if (earnType === EARN_TYPE.REMOVE_LIQ && removedNetPositionHasSize)\n return removeLiquiditySimulation?.data?.simulationMainPosition;\n } else if (tradeType === TRADE_TYPE.MARKET) {\n if (WrappedBigNumber.from(marketState.baseAmount).notEq(0)) {\n return marketSimulation?.data?.simulationMainPosition;\n }\n } else if (tradeType === TRADE_TYPE.ADJUST_MARGIN) {\n return adjustMarginSimulation?.data?.simulationMainPosition;\n } else if (tradeType === TRADE_TYPE.CLOSE_POSITION) {\n return closePositionSimulation?.data?.simulationMainPosition;\n } else if (tradeType === TRADE_TYPE.LIMIT) {\n return crossMarketSimulation?.data?.tradeSimulation?.simulationMainPosition;\n }\n }, [\n adjustMarginSimulation?.data?.simulationMainPosition,\n closePositionSimulation?.data?.simulationMainPosition,\n crossMarketSimulation?.data?.tradeSimulation?.simulationMainPosition,\n earnType,\n marketSimulation?.data?.simulationMainPosition,\n marketState.baseAmount,\n pathname,\n removeLiquiditySimulation?.data?.simulationMainPosition,\n removedNetPositionHasSize,\n tradeType,\n ]);\n const leverage = useMemo(() => {\n if (pathname.includes('/earn')) {\n if (earnType === EARN_TYPE.REMOVE_LIQ && removedNetPositionHasSize)\n return WrappedBigNumber.from(removeLiquiditySimulation?.data?.simulationMainPosition?.leverageWad || 0);\n } else if (tradeType === TRADE_TYPE.MARKET) {\n return WrappedBigNumber.from(marketSimulation?.data?.leverage || 0);\n } else if (tradeType === TRADE_TYPE.ADJUST_MARGIN) {\n return WrappedBigNumber.from(adjustMarginSimulation?.data?.leverageWad || 0);\n } else if (tradeType === TRADE_TYPE.CLOSE_POSITION) {\n return WrappedBigNumber.from(closePositionSimulation?.data?.leverage || 0);\n } else if (tradeType === TRADE_TYPE.LIMIT) {\n return WrappedBigNumber.from(crossMarketSimulation?.data?.tradeSimulation?.leverage || 0);\n }\n }, [\n adjustMarginSimulation?.data?.leverageWad,\n closePositionSimulation?.data?.leverage,\n crossMarketSimulation?.data?.tradeSimulation?.leverage,\n earnType,\n marketSimulation?.data?.leverage,\n pathname,\n removeLiquiditySimulation,\n removedNetPositionHasSize,\n tradeType,\n ]);\n\n const marginAfterSimulation = useMemo(() => {\n if (pathname.includes('/earn')) {\n if (earnType === EARN_TYPE.REMOVE_LIQ && removedNetPositionHasSize)\n return removeLiquiditySimulation?.data?.simulationMainPosition.size.eq(0)\n ? WRAPPED_ZERO\n : removeLiquiditySimulation?.data?.simulationMainPosition?.equity;\n } else if (tradeType === TRADE_TYPE.MARKET) {\n return marketSimulation?.data?.simulationMainPosition.size.eq(0)\n ? WrappedBigNumber.ZERO\n : marketSimulation?.data?.margin.add(currentPosition?.equity || 0);\n } else if (tradeType === TRADE_TYPE.CLOSE_POSITION) {\n return closePositionSimulation?.data?.simulationMainPosition.size.eq(0)\n ? WrappedBigNumber.ZERO\n : closePositionSimulation?.data?.simulationMainPosition.equity;\n } else if (tradeType === TRADE_TYPE.ADJUST_MARGIN && adjustMarginSimulation?.data?.transferAmount) {\n return currentPosition?.equity.add(WrappedBigNumber.from(adjustMarginSimulation?.data?.transferAmount || 0));\n } else if (tradeType === TRADE_TYPE.LIMIT) {\n return crossMarketSimulation?.data?.tradeSimulation?.simulationMainPosition.size.eq(0)\n ? WrappedBigNumber.ZERO\n : crossMarketSimulation?.data?.tradeSimulation?.margin.add(currentPosition?.equity || 0);\n }\n return undefined;\n }, [\n pathname,\n tradeType,\n adjustMarginSimulation?.data?.transferAmount,\n earnType,\n removedNetPositionHasSize,\n removeLiquiditySimulation?.data?.simulationMainPosition.size,\n removeLiquiditySimulation?.data?.simulationMainPosition?.equity,\n marketSimulation?.data?.simulationMainPosition.size,\n marketSimulation?.data?.margin,\n currentPosition?.equity,\n closePositionSimulation?.data?.simulationMainPosition.size,\n closePositionSimulation?.data?.simulationMainPosition.equity,\n crossMarketSimulation?.data?.tradeSimulation?.simulationMainPosition.size,\n crossMarketSimulation?.data?.tradeSimulation?.margin,\n ]);\n\n const hasPosition = useMemo(() => {\n return currentPosition?.hasPosition;\n }, [currentPosition?.hasPosition]);\n\n const positionBgClass = useMemo(() => {\n if (simulationPositionAfter) {\n if (simulationPositionAfter?.wrappedSide === Side.LONG) {\n if (currentPosition?.wrappedSide === Side.SHORT) {\n return 'short-long';\n } else {\n return 'long';\n }\n } else if (simulationPositionAfter.wrappedSide === Side.FLAT) {\n if (currentPosition?.wrappedSide === Side.SHORT) {\n return 'short';\n }\n if (currentPosition?.wrappedSide === Side.LONG) {\n return 'long';\n }\n } else {\n if (currentPosition?.wrappedSide === Side.LONG) {\n return 'long-short';\n } else {\n return 'short';\n }\n }\n } else {\n if (currentPosition?.wrappedSide === Side.LONG) {\n return 'long';\n }\n if (currentPosition?.wrappedSide === Side.SHORT) {\n return 'short';\n }\n }\n\n return 'long';\n }, [currentPosition?.wrappedSide, simulationPositionAfter]);\n\n const sizeDisplay = useMemo(() => {\n if (simulationPositionAfter) {\n if (!simulationPositionAfter?.size.eq(currentPosition?.size || 0)) {\n return (\n
\n \n {currentPosition?.size.eq(0)\n ? t('common.tradePage.none')\n : currentPosition?.wrapAttribute('size').formatNumberWithTooltip({\n suffix: simulationPositionAfter?.wrapAttribute('size').notEq(0)\n ? undefined\n : currentPosition.rootInstrument.baseToken.symbol,\n isShowTBMK: true,\n })}\n {' '}\n \n \n {simulationPositionAfter?.wrapAttribute('size').eq(0)\n ? t('common.tradePage.none')\n : simulationPositionAfter?.wrapAttribute('size').formatNumberWithTooltip({\n suffix: simulationPositionAfter.rootInstrument.baseToken.symbol,\n isShowTBMK: true,\n })}\n \n
\n );\n }\n }\n\n return (\n
\n !inDisabledPairs && reverseLimitOrderInput()}>\n {currentPosition?.size?.eq(0)\n ? ''\n : currentPosition?.wrapAttribute('size').formatNumberWithTooltip({\n suffix: currentPosition.rootInstrument.baseToken.symbol,\n isShowTBMK: true,\n })}\n
\n \n {currentPosition?.size?.eq(0)\n ? ''\n : currentPosition?.sizeInQuoteToken.formatNumberWithTooltip({\n prefix: '≈ ',\n suffix: currentPosition.rootInstrument.quoteToken.symbol,\n isShowTBMK: true,\n })}\n \n \n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentPosition?.size, simulationPositionAfter?.size, t]);\n // const { isMockSkeleton } = useMockDevTool();\n // const loading = positionFetchingStatus !== FETCHING_STATUS.DONE || isMockSkeleton;\n return (\n
\n
\n {!simulationPositionAfter && !hasPosition ? (\n \n ) : (\n <>\n
\n \n
\n {currentPosition?.size?.eq(0) ? (\n {t('common.tradePage.none')}\n ) : (\n \n {Side[currentPosition?.wrappedSide || Side.FLAT].toString()}\n \n )}\n\n {simulationPositionAfter && simulationPositionAfter?.wrappedSide !== currentPosition?.wrappedSide && (\n <>\n {' '}\n {simulationPositionAfter.size.eq(0) ? (\n {t('common.tradePage.none')}\n ) : (\n \n {Side[simulationPositionAfter?.wrappedSide || Side.FLAT].toString()}\n \n )}\n \n )}\n
\n\n
{sizeDisplay}
\n
\n
\n
\n
\n
{t('common.leverage')}
\n
\n \n {!simulationPositionAfter\n ? currentPosition?.wrapAttribute('leverageWad').formatLeverageWithTooltip()\n : ''}\n {simulationPositionAfter && (\n <>\n \n {currentPosition?.wrapAttribute('leverageWad').formatLeverageWithTooltip()}\n \n \n {leverage?.formatLeverageWithTooltip()}\n {marketSimulation?.data?.exceedMaxLeverage && leverage?.notEq(0) && (\n }\n // link={LEVERAGE_LINK}\n title={t('tooltip.tradePage.leverageNotReached')}\n />\n )}\n \n )}\n \n
\n
\n
\n
\n \n {lessThan1440 ? t('common.liqPShort') : t('common.liqP')}\n \n
\n
\n \n {!simulationPositionAfter\n ? currentPosition?.wrapAttribute('liquidationPrice').formatLiqPriceNumberWithTooltip()\n : ''}\n {simulationPositionAfter && (\n <>\n \n {currentPosition?.wrapAttribute('liquidationPrice').formatLiqPriceNumberWithTooltip()}\n \n \n \n {simulationPositionAfter?.wrapAttribute('liquidationPrice').formatLiqPriceNumberWithTooltip()}\n \n \n )}\n \n
\n
\n\n
\n
{lessThan1440 ? t('common.avgPShort') : t('common.avgP')}
\n
\n \n {!simulationPositionAfter\n ? currentPosition?.wrapAttribute('entryPrice').formatPriceNumberWithTooltip()\n : ''}\n {simulationPositionAfter && (\n <>\n \n {currentPosition?.wrapAttribute('entryPrice').formatPriceNumberWithTooltip()}\n \n \n \n {simulationPositionAfter?.wrapAttribute('entryPrice').formatPriceNumberWithTooltip()}\n \n \n )}\n \n
\n
\n
\n
\n
\n
\n {t('common.margin')}\n
\n
\n \n {!marginAfterSimulation ? (\n \n {currentPosition?.equity.formatNumberWithTooltip({\n suffix: currentPosition.rootInstrument.marginToken.symbol,\n })}\n \n ) : (\n ''\n )}\n {marginAfterSimulation && (\n <>\n \n {' '}\n {currentPosition?.equity.formatNumberWithTooltip()}\n \n \n \n {marginAfterSimulation?.formatNumberWithTooltip({\n suffix: currentPosition?.rootInstrument.marginToken.symbol,\n })}\n \n \n )}\n \n
\n
\n
\n
\n {marketFairHighDerivation && }\n
\n
\n \n {currentPosition?.unrealizedSocialLoss.lte(0) ? (\n <>\n {currentPosition\n ?.getUnrealizedPositionPnlWithoutFunding(priceBasisForPnl)\n .formatNumberWithTooltip({\n suffix: currentPosition.rootInstrument.marginToken.symbol,\n isShowTBMK: true,\n colorShader: true,\n showPositive: true,\n colorSuffix: true,\n isShowApproximatelyEqualTo: false,\n })}\n {currentPosition?.equity.gt(0) &&\n currentPosition?.getUnrealizedPnlPercentage(priceBasisForPnl).formatPercentage({\n decimals: 2,\n suffix: ')',\n prefix: '(',\n isHiddenIfZero: true,\n })}\n \n ) : (\n }>\n {currentPosition\n ?.getUnrealizedPositionPnlWithoutFunding(priceBasisForPnl)\n .formatNumberWithTooltip({\n suffix: currentPosition.rootInstrument.marginToken.symbol,\n isShowTBMK: true,\n colorShader: true,\n showPositive: true,\n colorSuffix: true,\n isShowApproximatelyEqualTo: false,\n showToolTip: false,\n })}\n {currentPosition?.equity.gt(0) &&\n currentPosition?.getUnrealizedPnlPercentage(priceBasisForPnl).formatPercentage({\n decimals: 2,\n suffix: ')',\n prefix: '(',\n isHiddenIfZero: true,\n })}\n \n )}\n \n
\n
\n {currentPair?.isPerpetual && (\n
\n
\n }}\n />\n }>\n {t('common.unrealizedFunding')}\n {' '}\n
\n
\n \n {currentPosition?.wrapAttribute('unrealizedFundingFee').formatNumberWithTooltip({\n suffix: currentPosition.rootInstrument.marginToken.symbol,\n isShowTBMK: true,\n colorShader: true,\n showPositive: true,\n colorSuffix: true,\n isShowApproximatelyEqualTo: false,\n })}\n \n
\n
\n )}\n
\n \n )}\n
\n
\n \n
\n
\n );\n};\n\ninterface TradePositionCardPropTypes {\n children?: React.ReactNode;\n className?: string;\n pairSymbol?: string;\n}\nexport const TradePositionCard: FC = function ({ className, pairSymbol }) {\n const { t } = useTranslation();\n const { togglePnlShareModal, isOpenModal } = usePnlShareModal();\n const chainId = useChainId();\n const dispatch = useAppDispatch();\n const tradeType = useTradeType(chainId);\n const closePosition = useCallback(() => {\n if (tradeType !== TRADE_TYPE.CLOSE_POSITION) {\n chainId &&\n dispatch(\n setTradeFormType({\n chainId,\n tradeType: TRADE_TYPE.CLOSE_POSITION,\n }),\n );\n chainId && dispatch(resetLiquidityFormByChainId({ chainId }));\n }\n }, [chainId, dispatch, tradeType]);\n const userAddr = useUserAddr();\n const currentPair = useCurrentPairFromUrl(chainId);\n\n const adjustMargin = useCallback(() => {\n if (tradeType !== TRADE_TYPE.ADJUST_MARGIN) {\n chainId &&\n dispatch(\n setTradeFormType({\n chainId,\n tradeType: TRADE_TYPE.ADJUST_MARGIN,\n }),\n );\n chainId && dispatch(resetLiquidityFormByChainId({ chainId }));\n }\n }, [chainId, dispatch, tradeType]);\n const currentPosition = useMainPosition(chainId, userAddr, currentPair?.id);\n\n return (\n
\n
\n
{t('common.position')}
\n {!currentPosition?.size?.eq(0) && (\n
\n \n {t('common.adjust')}\n \n \n {t('common.close')}\n \n \n
\n )}\n
\n \n
\n );\n};\n\nexport default TradePosition;\n","/**\n * @description Component-TradePositionSkeleton\n */\nimport './index.less';\n\nimport { Skeleton as AntSkeleton } from 'antd';\nimport { FC } from 'react';\n\nimport { Skeleton } from '@/components/Skeleton';\n\nconst TradePositionSkeleton: FC = function () {\n return (\n
\n
\n
\n \n {/* */}\n
\n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n );\n};\n\nexport default TradePositionSkeleton;\n","/**\n * @description Component-trade\n */\nimport React, { FC, useEffect, useMemo } from 'react';\nimport '../earn/index.less';\nimport './index.less';\n\nimport { resetFormByChainId } from '@/features/trade/actions';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n\nimport BlockedAlert from '@/components/Alert/BlockedAlert';\nimport TradeYourOwnRiskAlert from '@/components/Alert/TradeYourOwnRiskAlert';\nimport { useMockDevTool } from '@/components/Mock';\nimport { PAIR_PAGE_TYPE } from '@/constants/global';\nimport { WrappedPair } from '@/entities/WrappedPair';\nimport { useMainPosition } from '@/features/account/positionHook';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useRemoveLiquidationSimulation } from '@/features/earn/hook';\nimport { useIsFetchedPairInfo } from '@/features/futures/hooks';\nimport { useCurrentMarketType } from '@/features/global/hooks';\nimport { useCurrentPairBaseInfoFromUrl, useCurrentPairFromUrl } from '@/features/pair/hook';\nimport { useIsFetchedSinglePortfolio } from '@/features/portfolio/hook';\nimport { useCrossMarketSimulation, useMarketSimulation } from '@/features/trade/hooks';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\nimport { useLocalStorageState } from 'ahooks';\nimport { useTranslation } from 'react-i18next';\nimport { useParams } from 'react-router-dom';\nimport PairInfo from '../components/PairInfo';\nimport ConnectWalletCard from '../components/WalletStatus/ConnectWalletCard';\nimport EarnCard from '../earn/EarnCard';\nimport EarnChart from '../earn/EarnChart';\nimport CoinPriceChart from './CoinPriceChart';\nimport TradeCard from './TradeCard';\nimport TradePortfolio from './TradePortfolio';\nimport { TradePositionCard } from './TradePortfolio/TradePosition';\nimport TradePositionSkeleton from './TradePortfolio/TradePosition/TradePositionSkeleton';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n}\nconst Trade: FC = function ({}) {\n const dispatch = useAppDispatch();\n const chainId = useChainId();\n\n const [, setLastFuturesToStorage] = useLocalStorageState('last_futures', {\n listenStorageChange: true,\n });\n const pairPageType = useCurrentMarketType();\n // clear form when change page\n useEffect(() => {\n return () => {\n chainId && dispatch(resetFormByChainId({ chainId }));\n };\n }, [chainId, dispatch]);\n\n useEffect(() => {\n if (pairPageType) {\n setLastFuturesToStorage(pairPageType);\n }\n }, [pairPageType, setLastFuturesToStorage]);\n\n const walletConnectStatus = useWalletConnectStatus();\n\n const { pairSymbol } = useParams();\n const { i18n } = useTranslation();\n const chainConfig = useBackendChainConfig(chainId);\n const currentPair = useCurrentPairFromUrl(chainId);\n const currentBaseInfo = useCurrentPairBaseInfoFromUrl(chainId);\n\n const { isMockSkeleton } = useMockDevTool();\n const marginCustomSelectorId = useMemo(\n () =>\n (chainConfig?.marketCustomPairs || []).find((item) => {\n return currentPair?.symbol && item.pairs.includes(currentPair.symbol);\n })?.id,\n [chainConfig?.marketCustomPairs, currentPair?.symbol],\n );\n const isFetchedPair = useIsFetchedPairInfo(\n chainId,\n currentBaseInfo?.instrumentAddr,\n currentBaseInfo?.expiry,\n pairPageType === PAIR_PAGE_TYPE.EARN,\n );\n const userAddr = useUserAddr();\n const pairFuturesAlertI18n = `common.pairFuturesAlert.${chainId}.${pairSymbol}`;\n const isPairFutureAlert = i18n.exists(pairFuturesAlertI18n);\n const currentPosition = useMainPosition(chainId, userAddr, currentBaseInfo?.id);\n const marketSimulation = useMarketSimulation(chainId);\n const crossMarketSimulation = useCrossMarketSimulation(chainId);\n const removeLiquiditySimulation = useRemoveLiquidationSimulation(chainId);\n const haveMarketSimulation = useMemo(() => {\n const haveRemoveLiqSimulation =\n !!removeLiquiditySimulation?.data &&\n !removeLiquiditySimulation?.data?.simulationMainPosition?.size?.eq(0) &&\n !removeLiquiditySimulation?.data?.simulationMainPosition?.size?.sub(currentPosition?.size || 0)?.eq(0);\n\n return haveRemoveLiqSimulation || !!marketSimulation?.data || !!crossMarketSimulation?.data;\n }, [crossMarketSimulation?.data, currentPosition?.size, marketSimulation?.data, removeLiquiditySimulation?.data]);\n const hasPosition = useMemo(() => {\n return haveMarketSimulation || currentPosition?.hasPosition;\n }, [currentPosition?.hasPosition, haveMarketSimulation]);\n const isNewPair = !(currentPair && currentPair instanceof WrappedPair);\n\n const isFetchedPortfolio = useIsFetchedSinglePortfolio(\n chainId,\n userAddr,\n currentBaseInfo?.instrumentAddr,\n currentBaseInfo?.expiry,\n );\n\n const accountPositionContent = useMemo(() => {\n if (walletConnectStatus === WALLET_CONNECT_STATUS.UN_CONNECT) {\n return ;\n }\n if (!isFetchedPortfolio || isMockSkeleton) {\n return ;\n }\n\n return (\n <>\n {hasPosition && }\n \n \n );\n }, [hasPosition, isFetchedPortfolio, isMockSkeleton, pairSymbol, walletConnectStatus]);\n\n return (\n
\n \n {!isFetchedPair && marginCustomSelectorId && (\n \n )}\n
\n
\n {pairPageType && }\n {isNewPair ? (\n \n ) : (\n <>\n \n {accountPositionContent}\n \n )}\n
\n
{pairPageType === PAIR_PAGE_TYPE.TRADE ? : }
\n
\n
\n );\n};\n\nexport default Trade;\n","import './index.less';\n\nimport { useEffect, useMemo, useState } from 'react';\n\nimport { useMockDevTool } from '@/components/Mock';\nimport { useConfigData } from '@/features/config/hook';\nimport { preload } from '@/utils/image';\nimport { Carousel } from 'antd';\nimport SkeletonButton from 'antd/es/skeleton/Button';\n\nexport default function MarketBanner(): JSX.Element | null {\n const { bannerConfig } = useConfigData();\n\n const [numberOfLoaded, setNumberOfLoaded] = useState(0);\n const { isMockSkeleton } = useMockDevTool();\n const allLoaded = useMemo(() => {\n if (isMockSkeleton) {\n return false;\n }\n return numberOfLoaded >= bannerConfig.length;\n }, [bannerConfig.length, isMockSkeleton, numberOfLoaded]);\n useEffect(() => {\n preload(\n bannerConfig?.map((config) => config.image),\n () => {\n setNumberOfLoaded((prev) => (prev += 1));\n },\n );\n }, [bannerConfig]);\n return (\n
\n {/* */}\n {/* {chainId === CHAIN_ID.BASE ? (\n \n ,\n text: t('common.banners.basedDeposit'),\n }}\n />\n \n \n \n ) : (\n \n \n \n \n \n )} */}\n {allLoaded ? (\n \n {bannerConfig?.map((config) => (\n \n {/*
{config.title}
\n
{config.subTitle}
*/}\n \n \n ))}\n \n ) : (\n \n )}\n
\n );\n}\n","/**\n * @description Component-MarketTrends\n */\nimport { useFetchMarketTrendList } from '@/features/market/query';\nimport './index.less';\n\nimport { Skeleton } from '@/components/Skeleton';\nimport { THEME_ENUM } from '@/constants';\nimport { useTheme } from '@/features/global/hooks';\nimport { FC } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst MarketTrends: FC = function ({}) {\n const { data: trendList, isFetched } = useFetchMarketTrendList();\n const { dataTheme } = useTheme();\n\n return (\n
\n

{`What's New`}

\n
\n {!isFetched && (\n
\n {Array.from({ length: 5 }).map((_, index) => (\n
\n \n \n \n
\n ))}\n
\n )}\n {isFetched &&\n trendList &&\n trendList?.map((trend) => (\n \n \"trend\n \n ))}\n
\n
\n );\n};\n\nexport default MarketTrends;\n","import './index.less';\n\nimport { CardProps, TablePaginationConfig, TableProps } from 'antd';\nimport { FilterValue, SorterResult, TableCurrentDataSource } from 'antd/es/table/interface';\nimport cls from 'classnames';\nimport { ReactNode } from 'react';\n\nimport Card from '../Card';\nimport SkeletonTable, { SkeletonTableColumnsType } from '../SkeletonTable';\nimport Table from '../Table';\nexport function TableCard({\n loadingItem,\n total,\n extra,\n rowCount = 6,\n loading,\n dataSource,\n onRow,\n className,\n cardTitle,\n columns,\n isFullLoading,\n rowKey,\n emptyDesc,\n emptyDescLink,\n tableChange,\n sticky,\n emptyType,\n emptyTitle,\n emptyIcon,\n showEmptyTitle = true,\n}: {\n rowCount?: number;\n} & CardProps & {\n total?: number;\n loadingItem?: boolean;\n cardTitle: ReactNode;\n emptyDesc?: string;\n emptyDescLink?: string;\n emptyTitle?: string;\n emptyType?: 'horizontal' | 'vertical';\n emptyIcon?: React.ReactNode;\n showEmptyTitle?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } & TableProps & {\n isFullLoading?: boolean;\n tableChange?: (\n pagination: TablePaginationConfig,\n filters: Record,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n sorter: SorterResult | SorterResult[],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n extra: TableCurrentDataSource,\n ) => void;\n }): JSX.Element {\n return (\n <>\n \n \n \n \n \n \n );\n}\n","import './index.less';\n\nimport classnames from 'classnames';\nimport React from 'react';\n\ninterface IContainerProps {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport default function Container(props: IContainerProps): JSX.Element {\n return (\n
\n
{props.children}
\n
\n );\n}\n","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconNetAll = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2 11.6C2 8.23969 2 6.55953 2.65396 5.27606C3.2292 4.14708 4.14708 3.2292 5.27606 2.65396C6.55953 2 8.23969 2 11.6 2H12.4C15.7603 2 17.4405 2 18.7239 2.65396C19.8529 3.2292 20.7708 4.14708 21.346 5.27606C22 6.55953 22 8.23969 22 11.6V12.4C22 15.7603 22 17.4405 21.346 18.7239C20.7708 19.8529 19.8529 20.7708 18.7239 21.346C17.4405 22 15.7603 22 12.4 22H11.6C8.23969 22 6.55953 22 5.27606 21.346C4.14708 20.7708 3.2292 19.8529 2.65396 18.7239C2 17.4405 2 15.7603 2 12.4V11.6Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 19C10.1435 19 8.36301 18.2625 7.05025 16.9497C5.7375 15.637 5 13.8565 5 12C5 10.1435 5.7375 8.36301 7.05025 7.05025C8.36301 5.7375 10.1435 5 12 5C13.8565 5 15.637 5.7375 16.9497 7.05025C18.2625 8.36301 19 10.1435 19 12C19 13.8565 18.2625 15.637 16.9497 16.9497C15.637 18.2625 13.8565 19 12 19ZM17.425 13.4C17.6621 12.4817 17.6621 11.5183 17.425 10.6H14.751C14.8154 11.5322 14.8154 12.4678 14.751 13.4H17.425ZM16.851 14.8H14.597C14.48 15.6438 14.2566 16.4694 13.932 17.257C15.1617 16.8034 16.1942 15.9343 16.851 14.8ZM10.656 13.4H13.344C13.42 12.4682 13.42 11.5318 13.344 10.6H10.656C10.58 11.5318 10.58 12.4682 10.656 13.4ZM10.831 14.8C11.118 16.48 11.622 17.6 12 17.6C12.378 17.6 12.882 16.48 13.169 14.8H10.831ZM6.575 13.4H9.249C9.18456 12.4678 9.18456 11.5322 9.249 10.6H6.575C6.3379 11.5183 6.3379 12.4817 6.575 13.4ZM7.149 14.8C7.80578 15.9343 8.8383 16.8034 10.068 17.257C9.774 16.585 9.55 15.745 9.403 14.8H7.149ZM16.851 9.2C16.1942 8.06572 15.1617 7.19663 13.932 6.743C14.226 7.415 14.45 8.255 14.597 9.2H16.851ZM10.831 9.2H13.169C12.882 7.52 12.378 6.4 12 6.4C11.622 6.4 11.118 7.52 10.831 9.2ZM7.149 9.2H9.403C9.543 8.255 9.774 7.415 10.068 6.743C8.8383 7.19663 7.80578 8.06572 7.149 9.2Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconNetAll);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_net_all.c11220c212dd4703320e3d387f794879.svg\";","/**\n * @description Page-MarginTypeSelector\n */\nimport cls from 'classnames';\nimport { FC, memo, useMemo } from 'react';\n\nimport { MARKET_FILTERS } from '@/constants/market';\nimport { useMarginSearch } from '@/features/market/hooks';\nimport { CUSTOM_SELECTOR } from '@/types/global';\n\nimport { DISPLAYABLE_CHAIN_ID } from '@/constants/chain';\nimport { useConfigData } from '@/features/config/hook';\nimport _ from 'lodash';\nimport './index.less';\n\nconst MarketCustomPairsSelector: FC = function () {\n const {\n marginSearchProps: { marginSelector, marginCustomSelectorId, search },\n goToSelectorWithFilter: goToSelector,\n } = useMarginSearch();\n const { backendChainsConfig } = useConfigData();\n const marketCustomPairs = useMemo(\n () =>\n _.uniqBy(\n _.flatMap(\n DISPLAYABLE_CHAIN_ID.map(\n (chainId) =>\n backendChainsConfig[chainId]?.marketCustomPairs?.map((p) => ({ id: p.id, title: p.title })) || [],\n ),\n ),\n 'id',\n ),\n [backendChainsConfig],\n );\n\n const items = useMemo(() => {\n return (marketCustomPairs || []).map((item, i) => (\n {\n goToSelector(CUSTOM_SELECTOR.CUSTOM, item.id, MARKET_FILTERS.PERPETUAL, search);\n }}>\n {item.title}\n \n ));\n }, [marketCustomPairs, goToSelector, marginCustomSelectorId, marginSelector, search]);\n\n return
{items}
;\n};\n\nexport default memo(MarketCustomPairsSelector);\n","const ClearIcon = ({ color1 = '#94b8bf' }: { color1?: string }) => (\n \n \n \n);\n\nexport default ClearIcon;\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgSearchEmpty = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 128,\n height: 128,\n viewBox: \"0 0 128 128\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M5 101.834C5.59787 101.56 6.24635 101.419 6.90232 101.419C7.55829 101.419 8.20674 101.56 8.80461 101.834C10.1198 102.396 11.2458 103.333 12.046 104.531C12.8463 105.729 13.2863 107.137 13.3127 108.584V119.109C13.3062 120.189 13.6539 121.24 14.3012 122.097C14.9484 122.954 15.8584 123.569 16.8879 123.844C17.4514 124.019 18.0495 124.047 18.6266 123.925C19.2036 123.803 19.7407 123.535 20.1878 123.145L79.1752 88.9055C79.1752 88.9055 80 75.1392 80 71.4183C80 64.1929 71.2017 63 71.2017 63L5 101.834Z\",\n fill: \"#033550\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M90.5003 33.1368L97.5002 29.1933C98.3283 28.7275 99 29.1323 99 30.0992V38.2682C98.9762 38.786 98.828 39.2909 98.5674 39.7419C98.3068 40.1929 97.9412 40.5773 97.5002 40.8637L90.5003 44.8066C89.6717 45.2725 89 44.8678 89 43.9013V35.7323C89.0237 35.2145 89.1719 34.7095 89.4327 34.2585C89.6934 33.8074 90.0592 33.4231 90.5003 33.1368Z\",\n fill: \"#6FD6D6\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M23.4912 37.999C22.2618 38.715 21.5054 39.993 21.5044 41.4157C21.4961 54.0317 21.4557 115.269 21.4557 117.891C21.4557 122.31 20 123 20 123L79.9419 88.6677C79.9419 88.6677 82 87.666 82 83.3122C82 79.4781 81.9093 29.5646 81.8752 10.9423C81.8696 7.85963 78.5259 5.94345 75.862 7.49501L23.4912 37.999Z\",\n fill: \"#00BFBF\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M64.6449 71.0769C61.4233 72.8961 58.8383 71.3684 59.0667 67.6529C59.2622 64.4756 61.5548 60.7197 64.354 58.9838C65.2528 58.3639 66.3292 58.0378 67.429 58.0523C67.5896 58.0158 67.7331 57.9278 67.8366 57.8023C67.9401 57.6768 67.9976 57.521 68 57.3598V49.2621C68 46.58 66.0174 45.5249 63.5715 46.9058L55.8509 51.2658C55.5796 51.4171 55.4171 51.175 55.5734 50.8442C56.285 49.427 56.6295 47.8604 56.5766 46.2824C56.3739 43.3885 54.1555 42.2139 51.4116 43.5479C48.1369 45.1401 45.4079 49.5183 45.4079 53.0547C45.3369 54.1327 45.7032 55.1946 46.4276 56.0102C46.4812 56.1447 46.4824 56.2938 46.431 56.4291C46.3795 56.5644 46.279 56.6764 46.1486 56.744L38.4285 61.103C35.9826 62.4844 34 65.7788 34 68.4609V96.0378C34 98.7159 35.9826 99.775 38.4285 98.3932L63.5715 84.1959C66.0174 82.814 68 79.5206 68 76.8365V68.7388C68 68.4165 67.6828 68.3888 67.428 68.6929C66.6533 69.6437 65.7107 70.4511 64.6449 71.0769Z\",\n fill: \"#6FD6D6\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M121.848 113.498C119.395 116.338 116.561 114.311 116.331 114.139C116.32 114.131 116.311 114.123 116.3 114.114L102.801 102.579C102.366 102.207 102.331 101.546 102.725 101.131L106.942 96.6886C107.309 96.3026 107.913 96.2712 108.318 96.6171L121.891 108.226C121.9 108.234 121.907 108.24 121.916 108.248C122.096 108.422 124.305 110.654 121.848 113.498Z\",\n fill: \"#00BFBF\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.193 102.23C103.237 103.119 105.268 102.447 106.729 100.73C108.19 99.0129 108.528 96.9008 107.484 96.0124C106.44 95.124 104.409 95.7957 102.948 97.5127C101.487 99.2297 101.149 101.342 102.193 102.23Z\",\n fill: \"#006A80\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M105.908 97.034C106.188 97.3306 105.807 98.2151 105.057 99.0058C104.366 99.7372 103.609 100.133 103.274 99.9597L97 93.9651L99.3279 91L105.899 97.0291C105.9 97.0308 105.901 97.0322 105.903 97.0331C105.905 97.034 105.906 97.0343 105.908 97.034Z\",\n fill: \"#CBE1E7\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M103.959 78.7064C104.673 89.9841 95.8681 99.9306 84.2926 100.92C72.717 101.91 62.7545 93.5717 62.0405 82.2941C61.3266 71.0165 70.1319 61.07 81.7074 60.0798C93.283 59.0896 103.246 67.4288 103.959 78.7064ZM98.6912 79.2013C99.2414 87.7077 92.6056 95.2047 83.8705 95.9371C75.1354 96.6695 67.6071 90.375 67.0565 81.8636C66.5058 73.3522 73.142 65.8606 81.8771 65.1248C90.6122 64.389 98.1405 70.6899 98.6912 79.2013Z\",\n fill: \"#FFAA00\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M104.959 79.7059C105.673 90.9838 96.8685 100.931 85.2928 101.92C73.7172 102.91 63.7545 94.5716 63.0405 83.2937C62.3266 72.0158 71.132 62.07 82.7077 61.0798C94.2833 60.0896 104.246 68.429 104.959 79.7059ZM99.6916 80.2008C100.242 88.7075 93.606 96.2046 84.8708 96.937C76.1356 97.6694 68.6067 91.3748 68.0565 82.8631C67.5063 74.3515 74.1422 66.8608 82.8774 66.1249C91.6125 65.3891 99.141 71.6901 99.6916 80.2008Z\",\n fill: \"#FFDA91\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgSearchEmpty);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/search_empty.18370cdc2680a32f69b3eceb1f5099fa.svg\";","/**\n * @description Component-p.underlyingSearch\n */\nimport { FC, memo, useEffect, useMemo, useRef, useState } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport Empty from '@/components/Empty';\nimport { Search } from '@/components/Input';\nimport TokenPair from '@/components/TokenPair';\nimport { CreativePair } from '@/types/pair';\n\nimport { Select } from '@/components/Select';\nimport UnderlineToolTip from '@/components/ToolTip/UnderlineToolTip';\nimport { DAPP_CHAIN_CONFIGS, DISPLAYABLE_CHAIN_ID } from '@/constants/chain';\nimport { SOCIAL_LINKS } from '@/constants/links';\nimport { useCreativePairList } from '@/features/market/hooks';\nimport { getChainName } from '@/utils/chain';\nimport _ from 'lodash';\nimport { ReactComponent as NetIcon } from './assets/icon_net_all.svg';\nimport './index.less';\n\ninterface IPropTypes {\n onSelected: (pair: CreativePair) => void;\n}\nconst CreativePairSearch: FC = function ({ onSelected }) {\n const [search, setSearch] = useState('');\n const searchRef = useRef(null);\n const [selectedChainId, setSelectedChainId] = useState(0);\n const futureList = useCreativePairList(selectedChainId);\n const { t } = useTranslation();\n const chainOptions = useMemo(() => {\n const chains = DISPLAYABLE_CHAIN_ID.map((chainId) => ({\n value: chainId,\n label: (\n
\n {' '}\n {getChainName(chainId)}\n
\n ),\n }));\n return [\n {\n value: 0,\n label: (\n
\n \n {t('common.poolList.allNet')}\n
\n ),\n },\n ...chains,\n ];\n }, [t]);\n const filteredPairList = useMemo(() => {\n let list = futureList;\n const searchStr = search.toUpperCase();\n if (searchStr.length > 0) {\n list = list?.filter((pair) => {\n const baseToken = pair?.rootInstrument?.baseToken;\n const quoteToken = pair?.rootInstrument?.quoteToken;\n if (baseToken?.symbol && quoteToken?.symbol) {\n const displayExpiry = pair.expiry;\n const pairString =\n pair.rootInstrument?.baseToken?.symbol + '' + pair.rootInstrument?.quoteToken?.symbol + '' + displayExpiry;\n const pairStringSlash =\n pair.rootInstrument?.baseToken?.symbol + '/' + pair.rootInstrument?.quoteToken?.symbol + '' + displayExpiry;\n return (\n pairString.toLowerCase().includes(searchStr.toLowerCase()) ||\n pairStringSlash.toLowerCase().includes(searchStr.toLowerCase())\n );\n }\n return false;\n });\n }\n\n return _.sortBy(list, [(pair) => pair.rootInstrument.displaySymbol], ['asc']);\n }, [futureList, search]);\n useEffect(() => {\n setTimeout(() => {\n searchRef.current?.querySelector('input')?.focus();\n });\n }, []);\n return (\n
\n
\n {\n setSearch(e.target.value.trim());\n }}\n />\n \n
\n
\n {filteredPairList.length > 0 && (\n <>\n
\n {\n \n ),\n }}\n />\n }>\n {t('common.pair')}\n \n }\n\n {t('common.margin')}\n
\n
\n {filteredPairList?.map((p: CreativePair) => (\n onSelected(p)}\n className={'syn-CreativePairSearch-list-item'}\n key={p.symbol + p.chainId.toString()}>\n
\n
\n {' '}\n \n
\n
\n
\n {p.rootInstrument?.quoteToken?.symbol}\n
\n
\n ))}\n
\n \n )}\n {!filteredPairList?.length && }\n
\n \n );\n};\n\nexport default memo(CreativePairSearch);\n","/**\n * @description Component-PoolCreatorForm\n */\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport classNames from 'classnames';\nimport { FC, memo, useCallback } from 'react';\n\nimport Modal from '@/components/Modal';\nimport { LIQUIDITY_FORM_TYPE, PAIR_PAGE_TYPE } from '@/constants/global';\nimport { WrappedPosition } from '@/entities/WrappedPosition';\nimport { useSideNavigate } from '@/hooks/useRouterNavigate';\nimport { CreativePair } from '@/types/pair';\nimport './index.less';\n\nimport CreativePairSearch from './CreativePairSearch';\n\ninterface IPropTypes {\n visible: boolean;\n onClose: () => void;\n position?: WrappedPosition;\n title: string;\n type: LIQUIDITY_FORM_TYPE;\n chainId: CHAIN_ID | undefined;\n}\nconst LiquidityFormModal: FC = function ({ visible, onClose, title, chainId }) {\n const { pairPageNavigate } = useSideNavigate(chainId);\n const itemSelected = useCallback(\n (pair: CreativePair) => {\n pairPageNavigate(pair?.symbol || '', PAIR_PAGE_TYPE.EARN, pair.chainId);\n },\n [pairPageNavigate],\n );\n return (\n <>\n {visible && (\n \n \n \n )}\n \n );\n};\n\nexport default memo(LiquidityFormModal);\n","/**\n * @description Component-CreatePoolBtn\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { FC, memo, useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\n// import { GlobalModalType } from '@/constants';\nimport { LIQUIDITY_FORM_TYPE } from '@/constants/global';\n// import { useToggleModal } from '@/features/global/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n\nimport { QUERY_KEYS } from '@/constants/query';\nimport { queryClient } from '@/pages/App';\nimport LiquidityFormModal from '../LiquidityFormModal';\ninterface IProps {\n white: boolean;\n}\nconst CreatePoolBtn: FC = function ({ white }) {\n const [createVisible, setCreateVisible] = useState(false);\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { t } = useTranslation();\n // const toggleSignUpModal = useToggleModal(GlobalModalType.CREATE_POOL);\n const onCloseCreateModal = useCallback(() => {\n setCreateVisible(false);\n }, [setCreateVisible]);\n useEffect(() => {\n setCreateVisible(false);\n }, [chainId, userAddr]);\n return (\n
\n {\n setCreateVisible(!createVisible);\n queryClient.invalidateQueries({ queryKey: QUERY_KEYS.MARKET.CREATIVE_PAIR_LIST() });\n }}\n className={'syn-CreatePoolBtn-btn'}>\n {t('common.newFutures')}\n \n \n
\n );\n};\n\nexport default memo(CreatePoolBtn);\n","/**\n * @description Component-PairSearch\n */\nimport { Search } from '@/components/Input';\nimport './index.less';\n\nimport ClearIcon from '@/assets/svg/icons/clear';\nimport { Button } from '@/components/Button';\nimport { useMarginSearch } from '@/features/market/hooks';\nimport CreatePoolBtn from '@/pages/PoolList/CreatePoolBtn';\nimport { ALL_SELECTOR } from '@/types/global';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PairSearch: FC = function ({}) {\n const { t } = useTranslation();\n const {\n marginSearchProps: { marginSelector, filter, marginCustomSelectorId, search },\n goToSelectorWithFilter,\n } = useMarginSearch();\n return (\n
\n \n goToSelectorWithFilter(\n marginSelector || ALL_SELECTOR.ALL,\n marginCustomSelectorId || undefined,\n filter,\n e.target.value,\n )\n }\n suffix={\n search && (\n {\n goToSelectorWithFilter(\n marginSelector || ALL_SELECTOR.ALL,\n marginCustomSelectorId || undefined,\n filter,\n '',\n );\n }}>\n \n \n )\n }\n />\n \n
\n );\n};\n\nexport default PairSearch;\n","import cls from 'classnames';\nimport { FC, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Container from '@/components/Container';\nimport { Default } from '@/components/MediaQuery';\nimport { MARKET_FILTERS } from '@/constants/market';\nimport { useMarginSearch, useMarketList } from '@/features/market/hooks';\nimport { ALL_SELECTOR, FAV_SELECTOR } from '@/types/global';\n\nimport './index.less';\n// import MarginTypeSelector from './MarginTypeSelector';\nimport { useFavMarketPairs } from '@/hooks/useFavorites';\nimport MarketCustomPairsSelector from './MarketCustomPairsSelector';\nimport PairSearch from './PairSearch';\n\nconst TableSearchBar: FC = () => {\n const { t } = useTranslation();\n const {\n marginSearchProps: { marginSelector, selectedChainIds, marginCustomSelectorId, filter, search },\n goToSelectorWithFilter,\n resetMarginSearch,\n } = useMarginSearch();\n const favorites = useFavMarketPairs(selectedChainIds);\n const { marketPairList: pairs } = useMarketList(selectedChainIds);\n // const status = useMarketListStatus();\n\n /**\n * @description if has favorite , show icon\n */\n const hasFavoritePair = useMemo(() => {\n return favorites && favorites.length > 0;\n }, [favorites]);\n\n // // switch to all if no favorite after first initiation\n // useEffect(() => {\n // if (!hasFavoritePair && marginSelector === FAV_SELECTOR.FAVORITE) {\n // goToSelectorWithFilter(ALL_SELECTOR.ALL, '', MARKET_FILTERS.PERPETUAL);\n // }\n // }, [hasFavoritePair, marginSelector]);\n\n // Initialize MARGIN_TYPE only when FETCHING_STATUS.DONE and chainId changed\n useEffect(() => {\n if (!!pairs?.length) {\n if (!hasFavoritePair) {\n goToSelectorWithFilter(ALL_SELECTOR.ALL, '', MARKET_FILTERS.PERPETUAL);\n } else if (!marginSelector) {\n goToSelectorWithFilter(FAV_SELECTOR.FAVORITE);\n }\n }\n }, [hasFavoritePair, !pairs?.length]);\n\n useEffect(() => {\n return () => {\n resetMarginSearch();\n };\n }, [resetMarginSearch]);\n\n const isPairMoreThanZero = useMemo(() => {\n return pairs && pairs.length > 0;\n }, [pairs]);\n return (\n
\n \n <>\n \n {isPairMoreThanZero && (\n
\n
\n {hasFavoritePair && (\n \n goToSelectorWithFilter(FAV_SELECTOR.FAVORITE, marginCustomSelectorId || '', filter, search)\n }>\n {t('common.favorite')}\n
\n )}\n {isPairMoreThanZero && (\n goToSelectorWithFilter(ALL_SELECTOR.ALL, '', MARKET_FILTERS.PERPETUAL, search)}>\n {t('common.all')}\n
\n )}\n {/* */}\n \n
\n\n {/* {marginSelector !== FAV_SELECTOR.FAVORITE && } */}\n
\n \n
\n \n )}\n \n \n \n \n );\n};\n\nexport default TableSearchBar;\n","/**\n * @description Component-MarketStats\n */\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport './index.less';\n\nimport { useMarginSearch, useMarketSummary } from '@/features/market/hooks';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst MarketStats: FC = function ({}) {\n const { t } = useTranslation();\n const {\n marginSearchProps: { selectedChainIds },\n } = useMarginSearch();\n // const status = useMarketListStatus();\n\n const summary = useMarketSummary(selectedChainIds);\n return (\n
\n
\n
\n
{t('common.24HTV')}
\n
\n \n {summary?.totalVolume24Usd.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n })}\n \n
\n
\n
\n
{t('common.effectLiq')}
\n
\n \n {summary?.totalEffectLiqTvlUsd.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n })}\n \n
\n
\n
\n
{t('common.topTVL')}
\n
\n \n {summary?.totalTvlUsd.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n })}\n \n
\n
\n
\n
\n );\n};\n\nexport default MarketStats;\n","/**\n * @description Component-TradingPairsHeader\n */\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport { DAPP_CHAIN_CONFIGS, DISPLAYABLE_CHAIN_ID } from '@/constants/chain';\nimport { useMarginSearch } from '@/features/market/hooks';\nimport { ALL_SELECTOR } from '@/types/global';\nimport classNames from 'classnames';\nimport { FC } from 'react';\nimport MarketStats from '../../MarketStats';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradingPairsHeader: FC = function ({}) {\n const { t } = useTranslation();\n const {\n marginSearchProps: { marginSelector, filter, marginCustomSelectorId, search, selectedChainIds },\n goToSelectorWithFilter,\n } = useMarginSearch();\n return (\n
\n
\n {t('common.markets')}\n
\n {DISPLAYABLE_CHAIN_ID.map((id) => (\n \n goToSelectorWithFilter(\n marginSelector || ALL_SELECTOR.ALL,\n marginCustomSelectorId || undefined,\n filter,\n search,\n selectedChainIds?.includes(id) ? [] : [id],\n )\n }\n className={classNames('syn-trading-pairs-header-left-chains-btn', {\n selected: selectedChainIds?.includes(id),\n })}>\n {DAPP_CHAIN_CONFIGS[id]?.network.icon && (\n \n )}\n
{DAPP_CHAIN_CONFIGS[id]?.network?.name}
\n
\n ))}\n {/* {!!selectedChainIds?.length && (\n \n goToSelectorWithFilter(\n marginSelector || ALL_SELECTOR.ALL,\n marginCustomSelectorId || undefined,\n filter,\n search,\n [],\n )\n }>\n {t('common.reset')}\n
\n )} */}\n
\n \n \n \n );\n};\n\nexport default TradingPairsHeader;\n","import _ from 'lodash';\nimport { useMemo, useState } from 'react';\n\nimport TradeYourOwnRiskAlert from '@/components/Alert/TradeYourOwnRiskAlert';\nimport { TableCard } from '@/components/TableCard';\nimport { useTableColumns } from '@/components/TableCard/tableConfigs';\nimport TableSearchBar from '@/components/TableSearchBar';\nimport { PAIR_PAGE_TYPE, TABLE_TYPES } from '@/constants/global';\nimport {\n useFilteredTradingPairs,\n useMarginSearch,\n useMarketList,\n useWatchMarketListChange,\n} from '@/features/market/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\n\nimport { ReactComponent as NoSearchResult } from '@/assets/svg/search_empty.svg';\nimport { useMockDevTool } from '@/components/Mock';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useSideNavigate } from '@/hooks/useRouterNavigate';\nimport { CUSTOM_SELECTOR } from '@/types/global';\nimport { IMarketPair } from '@/types/pair';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport TradingPairsHeader from './TradingPairsHeader';\nimport './index.less';\nimport { marketColumnRowKey } from './tableTitles';\n\nexport default function TradingPairs(): JSX.Element {\n const chainId = useChainId();\n const { t } = useTranslation();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const [sorter, setSorter] = useState();\n const chainConfig = useBackendChainConfig(chainId);\n const { pairPageNavigate } = useSideNavigate();\n const {\n marginSearchProps: { marginCustomSelectorId, search, selectedChainIds, marginSelector },\n } = useMarginSearch();\n const { marketPairList, isFetched } = useMarketList(selectedChainIds);\n const columnDefs = useTableColumns(TABLE_TYPES.TRADING_PAIR);\n\n const searchEmptyLine = useMemo(() => {\n return search ? t('common.market.noSearchResult') : undefined;\n }, [search, t]);\n\n const filteredPairs = useFilteredTradingPairs();\n\n const sortedPairs = useMemo(\n () =>\n chainConfig?.trendingPairs?.length && !_.get(sorter, ['column'])\n ? _.orderBy(\n filteredPairs,\n [\n (p) => {\n const index = chainConfig.trendingPairs?.indexOf(p.pairSymbol);\n return index === undefined || index < 0 ? filteredPairs?.length : index;\n },\n ],\n ['asc'],\n )\n : filteredPairs,\n [chainConfig?.trendingPairs, filteredPairs, sorter],\n );\n useWatchMarketListChange(chainId);\n const { isMockSkeleton } = useMockDevTool();\n return (\n
\n \n\n \n {marginSelector === CUSTOM_SELECTOR.CUSTOM && marginCustomSelectorId && (\n \n )}\n\n {\n return setSorter(s);\n }}\n emptyDesc={searchEmptyLine}\n emptyIcon={search ? : undefined}\n emptyType=\"vertical\"\n showEmptyTitle={!search}\n onRow={(record: IMarketPair) => ({\n onClick: (e) => {\n if ((e.target as HTMLElement).tagName === 'BUTTON') return;\n\n pairPageNavigate(record.pairSymbol || '', PAIR_PAGE_TYPE.TRADE, record.chainId);\n },\n })}\n rowKey={(record: IMarketPair) => `${record?.pairSymbol}-${marketColumnRowKey(record)}`}\n columns={columnDefs}\n dataSource={sortedPairs}\n />\n
\n );\n}\n","import { IMarketPair } from '@/types/pair';\n\nexport const marketColumnRowKey: (record: IMarketPair) => string = (record) => record.chainId?.toString();\n// record.fairPrice?._hex +\n// record.rootInstrument?.spotPrice._hex +\n// record.openInterests._hex +\n// record.rootInstrument?.marginToken?.price?.toString();\n","/**\n * @description Component-Market\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport BlockedAlert from '@/components/Alert/BlockedAlert';\nimport MarketBanner from '../components/Overview';\nimport MarketTrends from './MarketTrends';\nimport TradingPairs from './TradingPairs';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst Market: FC = function ({}) {\n return (\n
\n \n \n
\n \n \n
\n
\n );\n};\n\nexport default Market;\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgLogoDark = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 128,\n height: 24,\n viewBox: \"0 0 128 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_4227_64304)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.26 11.304C18.432 10.092 20.364 8.98803 20.364 8.98803L10.584 3.56403V14.268C10.932 14.148 11.808 13.716 12.9 13.152L16.284 15.108V11.304H16.26Z\",\n fill: \"url(#paint0_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.572 3.56403L0.780029 8.59203C0.780029 8.59203 9.33603 13.476 10.572 13.884V3.56403Z\",\n fill: \"url(#paint1_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.26 15.096L10.548 11.808L3.07202 16.128L10.56 20.46L18.06 16.128V14.04L16.26 15.096Z\",\n fill: \"url(#paint2_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.48798 8.448V16.224L10.572 18V10.236L7.48798 8.448Z\",\n fill: \"url(#paint3_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.584 10.236V18L13.668 16.224V8.448L10.584 10.236Z\",\n fill: \"url(#paint4_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.90402 12.048L3.07202 13.68V16.128L7.69202 13.464L5.90402 12.048Z\",\n fill: \"url(#paint5_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.04802 11.964L3.07202 13.68L0.0720215 11.952L3.04802 10.236L6.04802 11.964Z\",\n fill: \"url(#paint6_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 6.09601V9.62401L10.572 15.72V12.192L0 6.09601Z\",\n fill: \"url(#paint7_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.084 13.68L0 11.88V17.88L10.572 23.976V20.448L3.096 16.128L3.084 13.68Z\",\n fill: \"url(#paint8_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.572 0L0 6.096L3.084 7.872L10.56 3.552L16.26 6.828L19.344 5.052L10.572 0Z\",\n fill: \"url(#paint9_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.48798 8.44802L10.572 10.224L13.632 8.46002L10.548 6.68402L7.48798 8.44802Z\",\n fill: \"url(#paint10_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.26 6.84003V15.096L19.344 13.32V5.06403L16.26 6.84003Z\",\n fill: \"url(#paint11_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.548 12.192V15.72L18.024 11.4V16.152L10.548 20.472V24L21.12 17.904V6.09601L10.548 12.192Z\",\n fill: \"url(#paint12_linear_4227_64304)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.4409 15.669H38.1089C39.1649 15.669 39.5609 14.925 39.5609 13.749C39.5609 13.005 39.4049 12.297 38.0249 11.829L32.6009 10.029C30.9449 9.47703 30.2369 8.54103 30.2369 6.66903C30.2369 4.71303 31.1849 3.46503 33.3809 3.46503H40.8089V4.95303H33.6929C32.6369 4.95303 32.1209 5.42103 32.1209 6.71703C32.1209 7.46103 32.2049 8.16903 33.4169 8.58903L38.6009 10.305C40.4489 10.893 41.4689 11.589 41.4689 13.749C41.4689 15.621 40.7249 17.145 38.6009 17.145H30.4289L30.4409 15.669Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.9569 20.517H44.2289L45.8369 17.193L41.3249 6.83704H43.0529L46.7129 15.393L50.4809 6.83704H52.2089L45.9569 20.517Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.9529 8.48102C52.9529 7.38902 53.4209 6.76501 54.5609 6.76501H58.2929C60.5369 6.76501 61.7849 7.73701 61.7849 10.125V17.121H60.1529V10.473C60.1529 9.06902 59.6369 8.13302 58.0649 8.13302H55.1969C54.8009 8.13302 54.5729 8.28902 54.5729 8.79302V17.157H52.9169V8.48102H52.9529Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.0409 17.1571V5.39705C64.0409 3.94505 64.7849 3.47705 65.9609 3.47705H74.2529V4.96505H66.7529C65.9609 4.96505 65.8529 5.20505 65.8529 5.90105V9.57305H71.9849V11.0611H65.8529V17.1571H64.0409Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.0969 15.477C83.0969 16.569 82.6289 17.193 81.4889 17.193H77.6369C75.3929 17.193 74.1449 16.221 74.1449 13.833V6.83704H75.8009V13.521C75.8009 14.925 76.3169 15.861 77.8889 15.861H80.8769C81.2729 15.861 81.5009 15.705 81.5009 15.201V6.83704H83.1569V15.477C83.1449 15.477 83.0969 15.477 83.0969 15.477Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.0369 17.1571C86.4449 17.1571 85.7009 15.9091 85.7009 13.8331V8.12105H84.1649V6.78905H85.7009V3.47705H87.3569V6.80105H90.2609V8.13305H87.3569V13.7251C87.3569 15.3331 87.9809 15.8011 89.6009 15.8011H90.2729V17.1331L89.0369 17.1571Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.281 15.477C100.281 16.569 99.8129 17.193 98.6729 17.193H94.8209C92.5769 17.193 91.3289 16.221 91.3289 13.833V6.83704H92.9849V13.521C92.9849 14.925 93.5009 15.861 95.0729 15.861H98.0609C98.4569 15.861 98.6849 15.705 98.6849 15.201V6.83704H100.341L100.281 15.477Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.237 10.557C102.237 8.013 103.497 6.849 106.053 6.849H107.193V8.181H106.365C104.553 8.181 103.893 9.117 103.893 10.989V17.205H102.237V10.557Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.249 17.157C108.141 17.157 107.517 15.129 107.517 12.033C107.517 8.24104 108.741 6.71704 112.269 6.71704C115.017 6.71704 117.021 7.61704 117.021 10.737C117.021 11.913 116.673 12.537 115.449 12.537H109.233C109.233 14.217 109.545 15.861 111.633 15.861H116.745V17.193L111.249 17.157ZM114.741 11.181C115.137 11.181 115.209 10.869 115.209 10.677V10.593C115.209 8.63704 113.949 8.01304 112.221 8.01304C110.097 8.01304 109.197 8.82904 109.197 11.181H114.741Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M118.317 15.825H124.209C125.073 15.825 125.469 15.357 125.469 14.541C125.469 13.449 124.521 13.257 122.913 12.861L120.993 12.393C119.025 11.925 118.125 11.145 118.125 9.38103C118.125 7.61703 119.109 6.80103 120.957 6.80103H126.573V8.13303H121.149C120.201 8.13303 119.817 8.44503 119.817 9.38103C119.817 10.509 120.609 10.833 121.737 11.097L123.825 11.601C125.913 12.105 127.209 12.501 127.209 14.493C127.209 16.101 126.621 17.109 124.653 17.109H118.329L118.317 15.825Z\",\n fill: \"white\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_4227_64304\",\n x1: 15.638,\n y1: -3.13131,\n x2: 15.3118,\n y2: 15.5757,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_4227_64304\",\n x1: 5.67603,\n y1: 20.6742,\n x2: 5.67603,\n y2: -2.22849,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_4227_64304\",\n x1: 2.62381,\n y1: -0.0279641,\n x2: 13.9927,\n y2: 21.604,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.27,\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_4227_64304\",\n x1: 10.4419,\n y1: 5.64997,\n x2: 7.94696,\n y2: 19.0336,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint4_linear_4227_64304\",\n x1: 12.126,\n y1: -0.00530579,\n x2: 12.126,\n y2: 18.0312,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint5_linear_4227_64304\",\n x1: 13.1238,\n y1: 8.06034,\n x2: 1.09502,\n y2: 16.624,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.27,\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint6_linear_4227_64304\",\n x1: -1.34067,\n y1: 3.96906,\n x2: 11.696,\n y2: 27.6357,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.27,\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint7_linear_4227_64304\",\n x1: -5.90423,\n y1: 1.93767,\n x2: 28.0211,\n y2: 29.133,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.088,\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.39,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.994,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint8_linear_4227_64304\",\n x1: -9.26545,\n y1: 10.5408,\n x2: 31.6115,\n y2: 31.2925,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.098,\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.381,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.993,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint9_linear_4227_64304\",\n x1: 12.7732,\n y1: -6.65881,\n x2: 3.07289,\n y2: 31.6048,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.315,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint10_linear_4227_64304\",\n x1: 6.30928,\n y1: 16.6173,\n x2: 28.6935,\n y2: -26.3705,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.315,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint11_linear_4227_64304\",\n x1: 18.2233,\n y1: -0.97669,\n x2: 17.6357,\n y2: 14.4439,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint12_linear_4227_64304\",\n x1: -11.4087,\n y1: 19.8514,\n x2: 33.9473,\n y2: 11.8543,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.315,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_4227_64304\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 127.2,\n height: 24,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgLogoDark);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/logo_dark.9c6650ccd35bf542b46fc06c7b9e556b.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgLogoLight = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 128,\n height: 24,\n viewBox: \"0 0 128 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_4227_53964)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.26 11.304C18.432 10.092 20.364 8.98803 20.364 8.98803L10.584 3.56403V14.268C10.932 14.148 11.808 13.716 12.9 13.152L16.284 15.108V11.304H16.26Z\",\n fill: \"url(#paint0_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.572 3.56403L0.780029 8.59203C0.780029 8.59203 9.33603 13.476 10.572 13.884V3.56403Z\",\n fill: \"url(#paint1_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.26 15.096L10.548 11.808L3.07202 16.128L10.56 20.46L18.06 16.128V14.04L16.26 15.096Z\",\n fill: \"url(#paint2_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.48798 8.448V16.224L10.572 18V10.236L7.48798 8.448Z\",\n fill: \"url(#paint3_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.584 10.236V18L13.668 16.224V8.448L10.584 10.236Z\",\n fill: \"url(#paint4_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.90402 12.048L3.07202 13.68V16.128L7.69202 13.464L5.90402 12.048Z\",\n fill: \"url(#paint5_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.04802 11.964L3.07202 13.68L0.0720215 11.952L3.04802 10.236L6.04802 11.964Z\",\n fill: \"url(#paint6_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 6.09601V9.62401L10.572 15.72V12.192L0 6.09601Z\",\n fill: \"url(#paint7_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3.084 13.68L0 11.88V17.88L10.572 23.976V20.448L3.096 16.128L3.084 13.68Z\",\n fill: \"url(#paint8_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.572 0L0 6.096L3.084 7.872L10.56 3.552L16.26 6.828L19.344 5.052L10.572 0Z\",\n fill: \"url(#paint9_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.48798 8.44802L10.572 10.224L13.632 8.46002L10.548 6.68402L7.48798 8.44802Z\",\n fill: \"url(#paint10_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.26 6.84003V15.096L19.344 13.32V5.06403L16.26 6.84003Z\",\n fill: \"url(#paint11_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.548 12.192V15.72L18.024 11.4V16.152L10.548 20.472V24L21.12 17.904V6.09601L10.548 12.192Z\",\n fill: \"url(#paint12_linear_4227_53964)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M30.4409 15.669H38.1089C39.1649 15.669 39.5609 14.925 39.5609 13.749C39.5609 13.005 39.4049 12.297 38.0249 11.829L32.6009 10.029C30.9449 9.47703 30.2369 8.54103 30.2369 6.66903C30.2369 4.71303 31.1849 3.46503 33.3809 3.46503H40.8089V4.95303H33.6929C32.6369 4.95303 32.1209 5.42103 32.1209 6.71703C32.1209 7.46103 32.2049 8.16903 33.4169 8.58903L38.6009 10.305C40.4489 10.893 41.4689 11.589 41.4689 13.749C41.4689 15.621 40.7249 17.145 38.6009 17.145H30.4289L30.4409 15.669Z\",\n fill: \"#004D66\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M45.9569 20.517H44.2289L45.8369 17.193L41.3249 6.83704H43.0529L46.7129 15.393L50.4809 6.83704H52.2089L45.9569 20.517Z\",\n fill: \"#004D66\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M52.9529 8.48102C52.9529 7.38902 53.4209 6.76501 54.5609 6.76501H58.2929C60.5369 6.76501 61.7849 7.73701 61.7849 10.125V17.121H60.1529V10.473C60.1529 9.06902 59.6369 8.13302 58.0649 8.13302H55.1969C54.8009 8.13302 54.5729 8.28902 54.5729 8.79302V17.157H52.9169V8.48102H52.9529Z\",\n fill: \"#004D66\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M64.0409 17.1571V5.39705C64.0409 3.94505 64.7849 3.47705 65.9609 3.47705H74.2529V4.96505H66.7529C65.9609 4.96505 65.8529 5.20505 65.8529 5.90105V9.57305H71.9849V11.0611H65.8529V17.1571H64.0409Z\",\n fill: \"#004D66\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M83.0969 15.477C83.0969 16.569 82.6289 17.193 81.4889 17.193H77.6369C75.3929 17.193 74.1449 16.221 74.1449 13.833V6.83704H75.8009V13.521C75.8009 14.925 76.3169 15.861 77.8889 15.861H80.8769C81.2729 15.861 81.5009 15.705 81.5009 15.201V6.83704H83.1569V15.477C83.1449 15.477 83.0969 15.477 83.0969 15.477Z\",\n fill: \"#004D66\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M89.0369 17.1571C86.4449 17.1571 85.7009 15.9091 85.7009 13.8331V8.12105H84.1649V6.78905H85.7009V3.47705H87.3569V6.80105H90.2609V8.13305H87.3569V13.7251C87.3569 15.3331 87.9809 15.8011 89.6009 15.8011H90.2729V17.1331L89.0369 17.1571Z\",\n fill: \"#004D66\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M100.281 15.477C100.281 16.569 99.8129 17.193 98.6729 17.193H94.8209C92.5769 17.193 91.3289 16.221 91.3289 13.833V6.83704H92.9849V13.521C92.9849 14.925 93.5009 15.861 95.0729 15.861H98.0609C98.4569 15.861 98.6849 15.705 98.6849 15.201V6.83704H100.341L100.281 15.477Z\",\n fill: \"#004D66\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M102.237 10.557C102.237 8.013 103.497 6.849 106.053 6.849H107.193V8.181H106.365C104.553 8.181 103.893 9.117 103.893 10.989V17.205H102.237V10.557Z\",\n fill: \"#004D66\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M111.249 17.157C108.141 17.157 107.517 15.129 107.517 12.033C107.517 8.24104 108.741 6.71704 112.269 6.71704C115.017 6.71704 117.021 7.61704 117.021 10.737C117.021 11.913 116.673 12.537 115.449 12.537H109.233C109.233 14.217 109.545 15.861 111.633 15.861H116.745V17.193L111.249 17.157ZM114.741 11.181C115.137 11.181 115.209 10.869 115.209 10.677V10.593C115.209 8.63704 113.949 8.01304 112.221 8.01304C110.097 8.01304 109.197 8.82904 109.197 11.181H114.741Z\",\n fill: \"#004D66\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M118.317 15.825H124.209C125.073 15.825 125.469 15.357 125.469 14.541C125.469 13.449 124.521 13.257 122.913 12.861L120.993 12.393C119.025 11.925 118.125 11.145 118.125 9.38103C118.125 7.61703 119.109 6.80103 120.957 6.80103H126.573V8.13303H121.149C120.201 8.13303 119.817 8.44503 119.817 9.38103C119.817 10.509 120.609 10.833 121.737 11.097L123.825 11.601C125.913 12.105 127.209 12.501 127.209 14.493C127.209 16.101 126.621 17.109 124.653 17.109H118.329V15.825H118.317Z\",\n fill: \"#004D66\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_4227_53964\",\n x1: 15.638,\n y1: -3.13131,\n x2: 15.3118,\n y2: 15.5757,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_4227_53964\",\n x1: 5.67603,\n y1: 20.6742,\n x2: 5.67603,\n y2: -2.22849,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_4227_53964\",\n x1: 2.62381,\n y1: -0.0279638,\n x2: 13.9927,\n y2: 21.604,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.27,\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_4227_53964\",\n x1: 10.4419,\n y1: 5.64997,\n x2: 7.94696,\n y2: 19.0336,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint4_linear_4227_53964\",\n x1: 12.126,\n y1: -0.00530579,\n x2: 12.126,\n y2: 18.0312,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint5_linear_4227_53964\",\n x1: 13.1238,\n y1: 8.06034,\n x2: 1.09502,\n y2: 16.624,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.27,\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint6_linear_4227_53964\",\n x1: -1.34067,\n y1: 3.96906,\n x2: 11.696,\n y2: 27.6357,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.27,\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint7_linear_4227_53964\",\n x1: -5.90423,\n y1: 1.93767,\n x2: 28.0211,\n y2: 29.133,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.088,\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.39,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.994,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint8_linear_4227_53964\",\n x1: -9.26545,\n y1: 10.5408,\n x2: 31.6115,\n y2: 31.2925,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.098,\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.381,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.993,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint9_linear_4227_53964\",\n x1: 12.7732,\n y1: -6.65881,\n x2: 3.07289,\n y2: 31.6048,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.315,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint10_linear_4227_53964\",\n x1: 6.30928,\n y1: 16.6173,\n x2: 28.6935,\n y2: -26.3705,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.315,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint11_linear_4227_53964\",\n x1: 18.2233,\n y1: -0.97669,\n x2: 17.6357,\n y2: 14.4439,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint12_linear_4227_53964\",\n x1: -11.4087,\n y1: 19.8514,\n x2: 33.9473,\n y2: 11.8543,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.315,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_4227_53964\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 127.2,\n height: 24,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgLogoLight);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/logo_light.c9310cc6415c65ae5a605978310e4f56.svg\";","/**\n * @description Logo\n */\nimport { FC, useMemo } from 'react';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { THEME_ENUM } from '@/constants';\n\nimport { ReactComponent as LogoDark } from './assets/logo_dark.svg';\nimport { ReactComponent as LogoLight } from './assets/logo_light.svg';\n// import { ReactComponent as LogoMobile } from './assets/logo_mobile.svg';\n// import { ReactComponent as LogoMobileDark } from './assets/logo_moblie_dark.svg';\ninterface IPropTypes {\n dataTheme: THEME_ENUM;\n}\nconst Logo: FC = function ({ dataTheme }) {\n const { isMobile } = useMediaQueryDevice();\n const logo = useMemo(() => {\n return dataTheme === THEME_ENUM.DARK ? : ;\n }, [dataTheme]);\n const mobileLogo = useMemo(() => {\n return dataTheme === THEME_ENUM.DARK ? : ;\n }, [dataTheme]);\n return <> {isMobile ? mobileLogo : logo};\n};\n\nexport default Logo;\n","/**\n * @description Component-MobileBlocker\n */\nimport './index.less';\n\nimport { FC } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { useTheme } from '@/features/global/hooks';\nimport Logo from '@/layout/Header/Logo';\n\nimport blocker from './assets/moblie_blocker.png';\ninterface IPropTypes {\n className?: string;\n}\nconst MobileBlocker: FC = function () {\n const { t } = useTranslation();\n const theme = useTheme();\n\n return (\n
\n
\n \n
\n\n
\n
{t('common.blocker.title')}
\n
\n
{t('common.blocker.subtitle1')}
\n
\n }} />\n
\n
\n
\n \n \n \n
\n );\n};\n\nexport default MobileBlocker;\n","export const ArrowRight = () => (\n \n \n \n);\n\nexport const B1 = () => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport const B2 = () => (\n \n \n \n \n \n);\n\nexport const B3 = () => (\n \n \n \n \n \n \n \n \n \n \n \n);\n","import { B1, B2, B3 } from '@/pages/Odyssey/assets/svg';\nimport './index.less';\nexport default function BenefitCard() {\n return (\n
\n
\n
F Token Staking Benefits
\n
\n
\n \n Airdrop Boost\n
\n
\n \n Voting Power\n
\n
\n \n Fee Rebate\n
\n
\n
\n
\n );\n}\n","import { Button } from '@/components/Button';\nimport imgBgSrc from '../assets/images/end_bg.png';\nimport { ArrowRight } from '../assets/svg';\nimport BenefitCard from './components/BenefitCard';\nimport './index.less';\nexport default function OdysseyEnd() {\n return (\n
\n \n
\n

The Oyster Odyssey campaign has ended.

\n

Stay tuned for the Season 1 Airdrop.

\n \n \n \n
\n\n \n
\n );\n}\n","/**\n * @description Component-Odessy\n */\nimport './index.less';\n\nimport React, { FC, useEffect } from 'react';\n\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport OdysseyEnd from './OdysseyEnd';\n\n// import ClaimTokenModal from './components/ClaimTokenModal';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\n\nconst Odyssey: FC = function ({}) {\n // const dispatch = useAppDispatch();\n // const chainId = useChainId();\n const userAddr = useUserAddr();\n // const profile = useOdysseyProfile(userAddr, chainId);\n // const profileFetchingStatus = useOdysseyProfileStatus(userAddr, chainId);\n // useGetUserProfile(true);\n // useOdysseyReferralNetworkCheck();\n //const walletConnectStatus = useWalletConnectStatus();\n // const epochs = useEpochs(chainId);\n // useGetSharedCode(userAddr);\n // useHandleTwitterErrorMsg();\n\n // const { run: recordGtagEvent } = useDebounceFn(\n // () => {\n // if (walletConnectStatus === WALLET_CONNECT_STATUS.CONNECTED) {\n // gtag('event', 'connect_wallet_status', {\n // connect_wallet_status: userAddr ? 'connect' : 'not_connect', // connect, not_connect\n // });\n // } else {\n // gtag('event', 'connect_wallet_status', {\n // connect_wallet_status: 'not_connect', // connect, not_connect\n // });\n // }\n // },\n // { wait: 300 },\n // );\n\n // useEffect(() => {\n // // when no connected setTab to reward\n // // !userAddr && setTab(ODYSSEY_TABS.EARN_POINTS);\n // recordGtagEvent();\n // }, [userAddr]);\n\n // const loadImg = useMemo(() => {\n // return <>;\n // }, []);\n\n // useEffect(() => {\n // chainId && dispatch(getEpochs({ chainId }));\n // }, [dispatch, chainId]);\n\n // useEffect(() => {\n // userAddr && chainId && dispatch(getUserEpochDetails({ userAddr, chainId }));\n // }, [dispatch, epochs, userAddr, chainId]);\n\n useEffect(() => {\n if (userAddr) {\n gtag('event', 'enter_odyssey', {\n enter_odyssey_address: `@${userAddr}`,\n });\n }\n // only one\n }, [userAddr]);\n\n return (\n
\n \n {/* \n
\n {profileFetchingStatus !== FETCHING_STATUS.DONE && !profile ? (\n loadImg\n ) : (\n <>\n \n \n \n )}\n {}\n
\n \n \n \n \n \n */}\n {/* */}\n
\n );\n};\n\nexport default Odyssey;\n","import { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { RouteBasePath } from '@/pages/routers';\nimport { getChainIdByChainShortName } from '@/utils/chain';\nimport { useEffect } from 'react';\nimport { useLocation, useNavigate, useParams } from 'react-router-dom';\nimport { useChainId } from './web3/useChain';\nimport { useSwitchNetwork } from './web3/useSwitchConnectorNetwork';\n\nexport const getIsPageSupported = (chainId: number, page: RouteBasePath) => {\n const chainConfig = DAPP_CHAIN_CONFIGS[chainId];\n return chainConfig?.network.isPageSupported?.[page];\n};\n\nexport default function usePageSupported({ page }: { page: RouteBasePath }) {\n const navigate = useNavigate();\n const { switchAppNetwork } = useSwitchNetwork();\n const { chainShortName } = useParams();\n const chainId = useChainId();\n const location = useLocation();\n\n useEffect(() => {\n const chainConfig = chainId && DAPP_CHAIN_CONFIGS[chainId];\n\n if (!location.pathname.includes(page) || !chainConfig) return;\n if (!chainConfig.network.isPageSupported?.[page]) {\n navigate('/market', { replace: true });\n }\n }, [chainId, location.pathname, navigate, page, switchAppNetwork]);\n\n useEffect(() => {\n const chainIdFromShortName = chainShortName && getChainIdByChainShortName(chainShortName);\n const chainConfig = chainIdFromShortName && DAPP_CHAIN_CONFIGS[chainIdFromShortName];\n\n if (!location.pathname.includes(page) || !chainConfig) return;\n if (chainConfig.network.isPageSupported?.[page]) {\n chainIdFromShortName && switchAppNetwork(chainIdFromShortName);\n } else {\n navigate('/market', { replace: true });\n }\n }, [chainShortName, location.pathname, navigate, page, switchAppNetwork]);\n}\n","import { SPOT_BALANCE_BATCH_SIZE } from '@/constants/spot';\nimport usePageSupported from '@/hooks/usePageSupported';\nimport { useChainId, useSigner, useUserAddr } from '@/hooks/web3/useChain';\nimport { RouteBasePath } from '@/pages/routers';\nimport { WorkerEventNames } from '@/types/worker';\nimport { useEffect } from 'react';\nimport { useTokenSymbolQueryParamEffect } from './hooks';\nimport { useSpotTokens } from './query';\nimport { useSpotState } from './store';\n\nfunction SpotGlobalEffect(): null {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const signer = useSigner();\n const { setSellAmount } = useSpotState();\n const { data: tokens } = useSpotTokens({ chainId });\n usePageSupported({ page: RouteBasePath.spot });\n useEffect(() => {\n chainId &&\n userAddr &&\n signer &&\n tokens &&\n // Split tokens into chunks of 200 and make batch calls\n Array.from({ length: Math.ceil(tokens.length / SPOT_BALANCE_BATCH_SIZE) }, (_, i) =>\n window.userWorker.postMessage({\n eventName: WorkerEventNames.MulticallBalance,\n data: {\n chainId,\n userAddr,\n tokens: tokens.slice(i * SPOT_BALANCE_BATCH_SIZE, (i + 1) * SPOT_BALANCE_BATCH_SIZE),\n },\n }),\n );\n }, [tokens, chainId, userAddr, signer]);\n useEffect(() => {\n if (process.env.REACT_APP_AWS_ENV === 'dev' && tokens) {\n const duplicateSymbols = tokens.filter((token) => token.isSymbolDuplicated).map((token) => token.symbol);\n\n if (duplicateSymbols.length > 0) {\n console.log(`Duplicate token symbols found: ${duplicateSymbols.join(', ')}`);\n }\n }\n }, [tokens]);\n useEffect(() => {\n if (!userAddr) {\n setSellAmount('');\n }\n }, [setSellAmount, userAddr]);\n useTokenSymbolQueryParamEffect({ tokens });\n\n return null;\n}\n\nexport default SpotGlobalEffect;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconSwap = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.89438 1.78571C8.89438 1.35178 8.54092 1 8.1049 1C7.66889 1 7.31543 1.35178 7.31543 1.78571L7.31543 10.2147C7.31543 10.5325 7.50778 10.819 7.80278 10.9406C8.09779 11.0622 8.43736 10.995 8.66315 10.7703L10.7684 8.67507C11.0767 8.36823 11.0767 7.87075 10.7684 7.56391C10.4601 7.25707 9.96023 7.25707 9.65192 7.56391L8.89438 8.31785V1.78571ZM4.68421 1.78574C4.68421 1.46794 4.49186 1.18145 4.19686 1.05983C3.90185 0.938218 3.56228 1.00544 3.33649 1.23015L1.23123 3.32539C0.922923 3.63223 0.922923 4.12971 1.23123 4.43655C1.53954 4.74339 2.03941 4.74339 2.34772 4.43655L3.10526 3.68261L3.10526 10.2143C3.10526 10.6482 3.45872 11 3.89474 11C4.33075 11 4.68421 10.6482 4.68421 10.2143L4.68421 1.78574Z\",\n fill: \"black\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconSwap);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_swap.01f4c3bd5b169be97f43d1588d171ae1.svg\";","/**\n * @description Component-SpotChartInterval\n */\nimport { useSpotState } from '@/features/spot/store';\nimport './index.less';\n\nimport { SPOT_KLINE_INTERVAL } from '@/constants/spot';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { FC } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SpotChartInterval: FC = function ({}) {\n const { spotKlineInterval, setSpotKlineInterval } = useSpotState();\n return (\n
\n {_.values(SPOT_KLINE_INTERVAL).map((value) => (\n {\n setSpotKlineInterval(value);\n }}>\n {value.toUpperCase()}\n
\n ))}\n \n );\n};\n\nexport default SpotChartInterval;\n","/**\n * @description Component-SpotChart\n */\nimport {\n Area,\n AreaChart,\n ReferenceDot,\n ReferenceLine,\n ResponsiveContainer,\n Tooltip,\n TooltipProps,\n XAxis,\n YAxis,\n} from 'recharts';\nimport { NameType, ValueType } from 'recharts/types/component/DefaultTooltipContent';\n\nimport Loading from '@/components/Loading';\nimport { useMockDevTool } from '@/components/Mock';\nimport { SPOT_KLINE_INTERVAL } from '@/constants/spot';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useSpotKlinePoints, useSpotOrderBookDepth, useSpotPairPrice } from '@/features/spot/query';\nimport { useSpotState } from '@/features/spot/store';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { watemarkBase64 } from '@/pages/trade/CoinPriceChart/TradingView/assets/watemark_base64';\nimport { getSpotXAxisTickFormatter, getSpotXAxisTicks } from '@/utils/spot';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { FC, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport SpotChartInterval from '../SpotInfo/SpotChartInterval';\nimport tradeChartBg from './assets/trade_chart_bg.png';\nimport tradeChartLi from './assets/trade_chart_il.png';\nimport './index.less';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n isMobile?: boolean;\n defaultSpotKlineInterval?: SPOT_KLINE_INTERVAL;\n}\nconst SpotChart: FC = function ({ isMobile = false, defaultSpotKlineInterval }) {\n const chartHeight = isMobile ? 200 : 430;\n const chainId = useChainId();\n const { token0, token1, spotKlineInterval, stepRatio } = useSpotState();\n const { data } = useSpotOrderBookDepth(chainId, token0?.address, token1?.address, stepRatio);\n const chartWidth = useMemo(() => (isMobile ? '100%' : data?.isMultiple ? 952 : 692), [data?.isMultiple, isMobile]);\n const { data: pairPrice } = useSpotPairPrice(chainId, token0?.address, token1?.address);\n const finalSpotKlineInterval = useMemo(() => {\n return defaultSpotKlineInterval || spotKlineInterval;\n }, [defaultSpotKlineInterval, spotKlineInterval]);\n const { data: klinePoints, isFetched } = useSpotKlinePoints(\n chainId,\n token0?.address,\n token1?.address,\n finalSpotKlineInterval,\n );\n const { t } = useTranslation();\n const [labelY, setLabelY] = useState(0);\n\n const chartData = useMemo(() => {\n return (\n _.cloneDeep(klinePoints)\n ?.sort((a, b) => a.timestamp - b.timestamp)\n .map((point, index) => {\n const price =\n !!klinePoints?.length && index === klinePoints?.length - 1\n ? pairPrice?.price.toNumber() || point.price\n : point.price;\n\n return {\n date: point.timestamp,\n price,\n };\n }) || []\n );\n }, [klinePoints, pairPrice?.price]);\n const minDomain = useMemo(() => {\n const maxPrice = _.maxBy(chartData, 'price')?.price || 0;\n const minPrice = _.minBy(chartData, 'price')?.price || 0;\n const gap = maxPrice - minPrice;\n return minPrice ? minPrice - gap * 0.3 : 'auto';\n }, [chartData]);\n const maxDate = useMemo(() => _.maxBy(chartData, 'date')?.date, [chartData]);\n const width = WrappedBigNumber.from(chartData?.[0]?.price || 0).formatPriceString().length * 8;\n const ticks = useMemo(\n () =>\n getSpotXAxisTicks(\n _.first(chartData)?.date || Date.now(),\n _.last(chartData)?.date || Date.now(),\n spotKlineInterval,\n ),\n [chartData, spotKlineInterval],\n );\n\n const { isMockSkeleton } = useMockDevTool();\n const ToolTipContent = ({ payload }: TooltipProps) => {\n if (payload?.length) {\n const data = payload[0]?.payload;\n return (\n
\n
\n {t('common.price')}\n
{WrappedBigNumber.from(data?.price).formatPriceString()}
\n
\n
{moment(data?.date).format('YYYY MM-DD HH:mm')}
\n
\n );\n }\n return null;\n };\n if (isFetched && (klinePoints === null || klinePoints?.length === 0)) {\n return (\n
\n \"tradeChartBg\"\n \"tradeChartLi\"\n
\n );\n }\n if (!klinePoints || isMockSkeleton) {\n return ;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const CustomLabel = (props: any) => {\n const { y } = props.viewBox;\n setLabelY(y);\n return null;\n };\n return (\n \n {!isMobile && }\n
\n
\n {pairPrice?.price.formatPriceString()}\n
\n \n \n \n \n \n \n \n \n {\n return getSpotXAxisTickFormatter(value, i, spotKlineInterval);\n }}\n dy={1}\n axisLine={true}\n dataKey=\"date\"\n tickLine={false}\n tick={{ color: '#1F292E99', fontSize: 12 }}\n />\n WrappedBigNumber.from(value).formatPriceString()}\n width={width}\n\n //mirror={true}\n />\n }\n stroke=\"#00BFBF\"\n strokeWidth={1}\n strokeDasharray=\"3 3\"\n />\n \n } />\n\n \n \n \n
\n \n );\n};\n\nexport default SpotChart;\n","export const ArrowRightIcon = () => (\n \n \n \n);\n","/**\n * @description Component-SpotHistoryItem\n */\nimport { ArrowRightIcon } from '@/assets/svg/icons/arrow';\nimport './index.less';\n\nimport { ExternalLink } from '@/components/Link';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useEtherscanLink } from '@/hooks/web3/useChain';\nimport { OrderHistory } from '@synfutures/sdks-aggregator-datasource';\nimport { formatUnits } from 'ethers/lib/utils';\nimport moment from 'moment';\nimport { FC } from 'react';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n item: OrderHistory;\n}\nconst SpotHistoryItem: FC = function ({ item }) {\n const getEtherscanLink = useEtherscanLink();\n return (\n
\n
\n \n {moment(item.timestamp * 1000).format('MM-DD HH:mm:ss')}\n \n
\n
\n {WrappedBigNumber.from(formatUnits(item.fromAmount, item.fromToken.decimals)).formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: item.fromToken.symbol,\n isShowSuffixInTooltip: true,\n })}{' '}\n \n
\n
\n {WrappedBigNumber.from(formatUnits(item.returnAmount, item.toToken.decimals)).formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: item.toToken.symbol,\n isShowSuffixInTooltip: true,\n })}{' '}\n
\n
\n );\n};\n\nexport default SpotHistoryItem;\n","/**\n * @description Component-SpotHistorySkeleton\n */\nimport { ArrowRightIcon } from '@/assets/svg/icons/arrow';\nimport { Skeleton } from '@/components/Skeleton';\nimport './index.less';\n\nimport { FC } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SpotHistorySkeleton: FC = function ({}) {\n const items = new Array(5).fill(0);\n return (\n
\n {items.map((item, index) => (\n
\n
\n \n
\n
\n \n \n
\n
\n \n
\n
\n ))}\n
\n );\n};\n\nexport default SpotHistorySkeleton;\n","/**\n * @description Component-SpotHistory\n */\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport Empty from '@/components/Empty';\nimport { useMockDevTool } from '@/components/Mock';\nimport { useSpotHistory } from '@/features/spot/query';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useSDK } from '@/features/web3/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\nimport { FC } from 'react';\nimport SpotHistoryItem from './SpotHistoryItem';\nimport SpotHistorySkeleton from './SpotHistorySkeleton';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SpotHistory: FC = function ({}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const sdk = useSDK(chainId);\n const userAddr = useUserAddr();\n const walletConnectStatus = useWalletConnectStatus();\n const { data: histories, isFetched } = useSpotHistory(userAddr, sdk, chainId);\n const { isMockSkeleton } = useMockDevTool();\n return (\n
\n
{t('common.history')}
\n
\n
\n
{t('common.time')}
\n
{t('common.spot.sell')}
\n
{t('common.spot.buy')}
\n
\n
\n {!isMockSkeleton &&\n WALLET_CONNECT_STATUS.CONNECTED === walletConnectStatus &&\n histories?.map((h) => )}\n {(isMockSkeleton || (!isFetched && !!userAddr && !histories?.length)) && }\n {(WALLET_CONNECT_STATUS.CONNECTED !== walletConnectStatus || (isFetched && !histories?.length)) && (\n \n )}\n
\n
\n
\n );\n};\n\nexport default SpotHistory;\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconLinkAddress = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_44611_63319)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2.18748 2.5C2.18748 1.36091 3.1109 0.4375 4.24998 0.4375H9.49998C10.6391 0.4375 11.5625 1.36091 11.5625 2.5V7.75C11.5625 8.88909 10.6391 9.8125 9.49998 9.8125H4.24998C3.1109 9.8125 2.18748 8.88909 2.18748 7.75V2.5ZM4.24998 1.5625C3.73222 1.5625 3.31248 1.98223 3.31248 2.5V7.75C3.31248 8.26777 3.73222 8.6875 4.24998 8.6875H9.49998C10.0178 8.6875 10.4375 8.26777 10.4375 7.75V2.5C10.4375 1.98223 10.0178 1.5625 9.49998 1.5625H4.24998ZM1 3.68744C1.31066 3.68744 1.5625 3.93928 1.5625 4.24994V7.99994C1.5625 9.34613 2.65381 10.4374 4 10.4374H7C7.31066 10.4374 7.5625 10.6893 7.5625 10.9999C7.5625 11.3106 7.31066 11.5624 7 11.5624H4C2.03249 11.5624 0.4375 9.96745 0.4375 7.99994V4.24994C0.4375 3.93928 0.68934 3.68744 1 3.68744Z\",\n fill: \"#007580\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_44611_63319\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconLinkAddress);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_link_address.0e6bff4db412873f6605a7020a296b05.svg\";","/**\n * @description Component-SpotSwapDetail\n */\nimport { useSpotState } from '@/features/spot/store';\nimport './index.less';\n\nimport LoaderIcon from '@/assets/images/loader-s.png';\n// import { ReactComponent as ArrowIcon } from '@/assets/svg/icon_arrow.svg';\nimport { ReactComponent as SwapIcon } from '@/assets/svg/icon_swap.svg';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useSimulateBestAmount } from '@/features/spot/hooks';\nimport { useSimulateSwap } from '@/features/spot/query';\nimport { formatUnits } from 'ethers/lib/utils';\nimport { FC, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n// import Aero from '../assets/icon_aerodrome.png';\n// import ALB from '../assets/icon_crypto_alb.png';\n// import Uni from '../assets/icon_oracle_dexv2_uni.svg';\n// import Pancake from '../assets/icon_pancakeswap.svg';\n// import Sushi from '../assets/icon_sushiswap.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SpotSwapDetail: FC = function ({}) {\n const { sellAmount: amount, token1: buyToken, token0: sellToken } = useSpotState();\n const { t } = useTranslation();\n const [\n showContent,\n // setShowContent\n ] = useState(true);\n const [priceSwap, setPriceSwap] = useState(false);\n // const routeMap = {\n // [PoolType.AERODROME_V2]: Aero,\n // [PoolType.PANCAKE_V3]: Pancake,\n // [PoolType.UNISWAP_V2]: Uni,\n // [PoolType.AERODROME_V3]: Aero,\n // [PoolType.UNISWAP_V3]: Uni,\n // [PoolType.SUSHISWAP_V3]: Sushi,\n // [PoolType.ALB_V3]: ALB,\n // };\n // const { data: price } = useSpotPairPrice(chainId, sellToken?.address, buyToken?.address);\n const { bestAmount, isFetched } = useSimulateBestAmount();\n const price = useMemo(() => {\n return WrappedBigNumber.from(bestAmount || 0).div(amount);\n }, [amount, bestAmount]);\n\n const priceInverse = useMemo(\n () => (!priceSwap ? price : WrappedBigNumber.from(1).div(price || 1)),\n [price, priceSwap],\n );\n const { data: simulation } = useSimulateSwap();\n const detail = useMemo(() => simulation?.data || simulation?.nativeSwap, [simulation?.data, simulation?.nativeSwap]);\n\n // const uniquePools = useMemo(() => _.uniqBy(simulation?.route.flat(), 'poolType'), [simulation?.route]);\n if (WrappedBigNumber.from(amount || 0).eq(0) || simulation?.data?.route.length === 0) {\n return null;\n }\n if (!simulation) {\n return (\n
\n \n
\n );\n }\n if (!detail) {\n return null;\n }\n\n return (\n
\n {/* */}\n
\n
\n 1 {!priceSwap ? sellToken?.symbol : buyToken?.symbol} ≈{' '}\n {isFetched ? priceInverse?.formatPriceNumberWithTooltip() : '-'}{' '}\n {!priceSwap ? buyToken?.symbol : sellToken?.symbol}\n setPriceSwap(!priceSwap)} />\n
\n {/* setShowContent(!showContent)}\n /> */}\n
\n
\n
\n
{t('common.tradeFormDetails.pi')}
\n
\n
{WrappedBigNumber.from(detail?.priceImpact || 0).formatPercentage()}
\n
\n
\n
{t('common.spot.minReceived')}
\n
\n
\n {' '}\n {WrappedBigNumber.from(\n formatUnits(detail?.minReceivedAmount || '', buyToken.decimals),\n ).formatNumberWithTooltip({\n isShowTBMK: true,\n })}\n
\n
\n {/*
\n
{t('common.spot.eGF')}
\n
\n
{WrappedBigNumber.from(simulation.estimateGasFee).formatNumberWithTooltip({ isShowTBMK: true })}
\n
*/}\n {/*
\n
{t('common.spot.route')}
\n
\n
\n {uniquePools.length} {uniquePools.length > 1 ? t('common.spot.steams') : t('common.spot.steam')}\n \n {_.uniqBy(uniquePools, 'poolType')?.map((r) => (\n \n ))}\n \n
\n
*/}\n
\n {/* 1 ? simulation.tokens[1] : undefined}\n routesArray={simulation.route || []}\n /> */}\n
\n );\n};\n\nexport default SpotSwapDetail;\n","import copy from 'copy-to-clipboard';\nimport { useCallback, useEffect, useState } from 'react';\n\nexport default function useCopyClipboard(timeout = 500): [boolean, (toCopy: string) => void] {\n const [isCopied, setIsCopied] = useState(false);\n\n const staticCopy = useCallback((text: string) => {\n const didCopy = copy(text);\n setIsCopied(didCopy);\n }, []);\n\n useEffect(() => {\n if (isCopied) {\n const hide = setTimeout(() => {\n setIsCopied(false);\n }, timeout);\n\n return () => {\n clearTimeout(hide);\n };\n }\n return undefined;\n }, [isCopied, setIsCopied, timeout]);\n\n return [isCopied, staticCopy];\n}\n","/**\n * @description Component-USDPriceWrap\n */\nimport { CHAIN_ID } from '@derivation-tech/context';\nimport { FC, memo, useCallback, useEffect, useMemo } from 'react';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedQuote } from '@/entities/WrappedQuote';\nimport { useTokenPrice, useTokenPrices } from '@/features/global/query';\nimport { TokenInfo } from '@/types/token';\ninterface IPropTypes {\n chainId: CHAIN_ID | undefined;\n value: WrappedBigNumber | undefined;\n colorShader?: boolean;\n isShowTBMK?: boolean;\n prefix?: string;\n isLoading?: boolean;\n marginToken: TokenInfo;\n needTransfer?: boolean;\n}\nconst USDPriceWrap: FC = function ({\n chainId,\n value,\n colorShader,\n isShowTBMK,\n marginToken,\n prefix = '$',\n isLoading,\n needTransfer = true,\n}) {\n const { isLoading: isLoadingTokenPrices } = useTokenPrices({ chainId: marginToken?.chainId || chainId });\n const tokenPriceInfo = useTokenPrice({\n chainId: marginToken?.chainId || chainId,\n tokenAddress: marginToken?.address,\n });\n useEffect(() => {\n if (marginToken && marginToken instanceof WrappedQuote) {\n tokenPriceInfo && marginToken.setTokenPrice(tokenPriceInfo);\n }\n }, [marginToken, tokenPriceInfo]);\n\n const coinPriceBN = useMemo(() => {\n if (tokenPriceInfo?.current) {\n return WrappedBigNumber.from(tokenPriceInfo?.current);\n }\n return WrappedBigNumber.ZERO;\n }, [tokenPriceInfo]);\n\n const getUSDValue = useCallback(\n (value: WrappedBigNumber | undefined) => {\n if (coinPriceBN && value) {\n return value.mul(coinPriceBN);\n }\n\n return WrappedBigNumber.ZERO;\n },\n [coinPriceBN],\n );\n const usdPriceBN = useMemo(() => {\n return needTransfer ? getUSDValue(value) : WrappedBigNumber.from(value || 0);\n }, [getUSDValue, needTransfer, value]);\n\n return (\n \n \n {usdPriceBN.formatNumberWithTooltip({\n isShowTBMK,\n colorShader,\n prefix,\n isShowApproximatelyEqualTo: false,\n })}\n \n \n );\n};\n\nexport default memo(USDPriceWrap);\n","/**\n * @description Component-SpotTokenItem\n */\nimport classNames from 'classnames';\nimport './index.less';\n\nimport { ReactComponent as LinkIcon } from '@/assets/svg/icon_link_address.svg';\nimport TokenLogo from '@/components/TokenLogo';\nimport { Tooltip } from '@/components/ToolTip';\nimport { useTokenBalance } from '@/features/balance/hook';\nimport { TokenInfoInSpot } from '@/features/spot/types';\nimport useCopyClipboard from '@/hooks/useCopyClipboard';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport USDPriceWrap from '@/pages/components/USDPriceWrap';\nimport { shortenAddress } from '@/utils/address';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n token: TokenInfoInSpot;\n onTokenChange: (token: TokenInfoInSpot) => void;\n}\nconst SpotTokenItem: FC = function ({ onTokenChange, token }) {\n const chainId = useChainId();\n const { t } = useTranslation();\n const shortenedAddr = useMemo(() => shortenAddress(token.address), [token.address]);\n const [copied, setCopied] = useCopyClipboard();\n const tokenBalance = useTokenBalance(token.address, chainId);\n return (\n {\n onTokenChange(token);\n }}\n className={classNames('syn-spot-tokens-modal-list-item')}>\n
\n \n
\n
{token.symbol}
\n
\n {shortenedAddr}\n \n {\n e.stopPropagation();\n setCopied(token.address);\n }}\n />\n \n
\n
\n
\n
\n {tokenBalance?.gt(0) && (\n
\n
{tokenBalance.formatNumberWithTooltip({ isShowTBMK: true })}
\n
\n \n
\n
\n )}\n
\n \n );\n};\n\nexport default SpotTokenItem;\n","/**\n * @description Component-SpotTokensSkeleton\n */\nimport { Skeleton } from '@/components/Skeleton';\nimport './index.less';\n\nimport TokenLogo from '@/components/TokenLogo';\nimport { FC } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SpotTokensSkeleton: FC = function ({}) {\n const items = new Array(7).fill(0);\n return (\n
\n {/*
\n \n \n
*/}\n {items.map((_, index) => (\n
\n
\n \n
\n \n \n
\n
\n
\n \n \n
\n
\n ))}\n
\n );\n};\n\nexport default SpotTokensSkeleton;\n","/**\n * @description Component-SpotTokensModal\n */\nimport './index.less';\n\nimport Empty from '@/components/Empty';\nimport { Search } from '@/components/Input';\nimport { useSpotState } from '@/features/spot/store';\nimport { TokenInfoInSpot } from '@/features/spot/types';\nimport { List } from 'antd';\nimport classNames from 'classnames';\nimport VirtualList from 'rc-virtual-list';\nimport { Dispatch, ForwardRefRenderFunction, SetStateAction, forwardRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport SpotTokenItem from '../../SpotTokenItem';\nimport SpotTokensSkeleton from '../../SpotTokensSkeleton';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n search?: string;\n setSearch: (search: string) => void;\n isSell?: boolean;\n currentToken?: TokenInfoInSpot;\n isFetched: boolean;\n filteredTokens: TokenInfoInSpot[] | undefined;\n onTokenChange: (token: TokenInfoInSpot) => void;\n setOpen: Dispatch>;\n}\n\nconst SpotTokensModalContentBase: ForwardRefRenderFunction = function (\n { search, setSearch, isFetched, filteredTokens, onTokenChange, setOpen },\n ref,\n) {\n const { t } = useTranslation();\n const { setSellAmount: setAmount } = useSpotState();\n return (\n
\n {\n const value = e.target.value.trim();\n setSearch(value);\n }}\n />\n {(search?.length || 0) > 0 && (\n {t('spot.confirm-token-address')}\n )}\n {!isFetched && }\n {isFetched && filteredTokens?.length === 0 ? (\n filteredTokens?.length === 0 && \n ) : (\n
\n
\n \n \n {(v: TokenInfoInSpot) => (\n \n {\n onTokenChange(token);\n setOpen(false);\n setAmount('');\n }}\n />\n \n )}\n \n \n
\n
\n )}\n
\n );\n};\n\nexport const SpotTokensModalContent = forwardRef(SpotTokensModalContentBase);\n","/**\n * @description Component-SpotTokensModal\n */\nimport { ReactComponent as DropDownIcon } from '@/assets/svg/dropdown.svg';\nimport { Button } from '@/components/Button';\nimport Drawer from '@/components/Drawer';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport Modal from '@/components/Modal';\nimport TokenLogo from '@/components/TokenLogo';\nimport { mockOpenDropdown } from '@/constants/mock';\nimport { TokenInfoInSpot } from '@/features/spot/types';\nimport { useDebounceEffect } from 'ahooks';\nimport { FC, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport '../index.less';\nimport { SpotTokensModalContent } from './SpotTokensModalContent';\nimport './index.less';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n search?: string;\n setSearch: (search: string) => void;\n isSell?: boolean;\n currentToken?: TokenInfoInSpot;\n isFetched: boolean;\n filteredTokens: TokenInfoInSpot[] | undefined;\n onTokenChange: (token: TokenInfoInSpot) => void;\n}\nconst SpotTokensModal: FC = function ({\n search,\n setSearch,\n isSell,\n currentToken,\n isFetched,\n filteredTokens,\n onTokenChange,\n}) {\n const [open, setOpen] = useState(mockOpenDropdown);\n const searchRef = useRef(null);\n const { isMobile } = useMediaQueryDevice();\n const { t } = useTranslation();\n useDebounceEffect(() => {\n if (open) {\n searchRef.current?.querySelector('input')?.focus();\n }\n }, [open]);\n useEffect(() => {\n if (!open) {\n setSearch('');\n }\n }, [open, setSearch]);\n const contentNode = useMemo(() => {\n return (\n \n );\n }, [filteredTokens, isFetched, onTokenChange, search, setSearch]);\n return (\n
\n \n {open && isMobile ? (\n {\n setOpen(false);\n setSearch('');\n // setPage(1);\n }}\n destroyOnClose={true}\n className=\"syn-spot-tokens-drawer\">\n {contentNode}\n \n ) : (\n {\n setOpen(false);\n setSearch('');\n // setPage(1);\n }}\n onClose={() => {\n setOpen(false);\n setSearch('');\n // setPage(1);\n }}\n destroyOnClose={true}\n centered={true}\n className=\"syn-spot-tokens-modal\">\n {contentNode}\n \n )}\n
\n );\n};\n\nexport default SpotTokensModal;\n","/**\n * @description Component-SpotPairs\n */\nimport './index.less';\n\nimport { useFilteredSellSpotTokens } from '@/features/spot/hooks';\nimport { TokenInfoInSpot } from '@/features/spot/types';\nimport { FC, useState } from 'react';\nimport SpotTokensModal from './SpotTokensModal';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n currentToken: TokenInfoInSpot;\n onTokenChange: (token: TokenInfoInSpot) => void;\n}\nconst SpotSellTokens: FC = function ({ currentToken, onTokenChange }) {\n const [search, setSearch] = useState('');\n const { filteredTokens, isFetched } = useFilteredSellSpotTokens({ search });\n // const filteredFullTokens = useMemo(() => {\n // const tokenList = !!search\n // ? fullTokensWithNative\n // ?.filter((t) =>\n // search\n // ? t.symbol.toLowerCase().includes(search.toLowerCase()) ||\n // t.address.toLowerCase().includes(search.toLowerCase())\n // : true,\n // )\n // ?.filter((t) => !filteredTokens.some((ft) => ft.address === t.address))\n // : fullTokensWithNative\n // ?.slice(0, 200)\n // ?.filter((t) => !filteredTokens.some((ft) => ft.address === t.address))\n // .slice(0, 100);\n // const sortFuncs = [(token: TokenInfo) => token.symbol];\n // const sortDirecs = ['asc'];\n // return _.orderBy(tokenList, sortFuncs, sortDirecs as Many);\n // }, [search, fullTokensWithNative, filteredTokens]);\n\n return (\n \n );\n};\n\nexport default SpotSellTokens;\n","/**\n * @description Component-SpotPairs\n */\nimport './index.less';\n\nimport { useFilteredBuySpotTokens } from '@/features/spot/hooks';\nimport { TokenInfoInSpot } from '@/features/spot/types';\nimport { FC, useState } from 'react';\nimport SpotTokensModal from './SpotTokensModal';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n currentToken: TokenInfoInSpot;\n tokenToExclude: TokenInfoInSpot;\n onTokenChange: (token: TokenInfoInSpot) => void;\n}\nconst SpotBuyTokens: FC = function ({ currentToken, onTokenChange }) {\n const [search, setSearch] = useState('');\n\n const { filteredTokens, isFetched } = useFilteredBuySpotTokens({ search });\n\n return (\n \n );\n};\n\nexport default SpotBuyTokens;\n","var _g;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgWarning = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 12,\n viewBox: \"0 0 12 12\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"solar:danger-triangle-bold-duotone\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Subtract\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2.65588 5.3805C4.11488 2.7935 4.84488 1.5 5.99988 1.5C7.15538 1.5 7.88488 2.7935 9.34388 5.3805L9.52588 5.703L9.5268 5.70463C10.7387 7.85354 11.3447 8.9282 10.7969 9.714C10.2489 10.5 8.89288 10.5 6.18188 10.5H5.81788C3.10688 10.5 1.75088 10.5 1.20288 9.714C0.655015 8.9282 1.26107 7.85354 2.47296 5.70463L2.47388 5.703L2.65588 5.3805ZM6.39762 3.53975C6.29213 3.43426 6.14905 3.375 5.99987 3.375C5.85068 3.375 5.70761 3.43426 5.60212 3.53975C5.49663 3.64524 5.43736 3.78832 5.43736 3.9375V6.75C5.43736 6.89918 5.49663 7.04226 5.60212 7.14775C5.70761 7.25324 5.85068 7.3125 5.99987 7.3125C6.14905 7.3125 6.29213 7.25324 6.39762 7.14775C6.50311 7.04226 6.56237 6.89918 6.56237 6.75V3.9375C6.56237 3.78832 6.50311 3.64524 6.39762 3.53975ZM6.5302 9.15533C6.38955 9.29598 6.19878 9.375 5.99987 9.375C5.80095 9.375 5.61019 9.29598 5.46953 9.15533C5.32888 9.01468 5.24986 8.82391 5.24986 8.625C5.24986 8.42609 5.32888 8.23532 5.46953 8.09467C5.61019 7.95402 5.80095 7.875 5.99987 7.875C6.19878 7.875 6.38955 7.95402 6.5302 8.09467C6.67086 8.23532 6.74987 8.42609 6.74987 8.625C6.74987 8.82391 6.67086 9.01468 6.5302 9.15533Z\",\n fill: \"#FFAA00\"\n }))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgWarning);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/warning.7eb6bdd4225e0da613bcff3e4b5791df.svg\";","/**\n * @description Component-SpotSwap\n */\nimport '../index.less';\n\nimport { ReactComponent as SwapIcon } from '@/assets/svg/icon_swap.svg';\nimport { Button } from '@/components/Button';\nimport FormInput from '@/components/FormInput';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { Skeleton } from '@/components/Skeleton';\nimport { Tooltip } from '@/components/ToolTip';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useTokenBalance } from '@/features/balance/hook';\nimport { useTokenPrice } from '@/features/global/query';\nimport { useSetBuyToken, useSetSellToken, useSimulateBestAmount, useSwitchToken } from '@/features/spot/hooks';\nimport { useSimulateSwap } from '@/features/spot/query';\nimport { useSpotState } from '@/features/spot/store';\nimport { TokenInfoInSpot } from '@/features/spot/types';\nimport { useChainId, useEtherscanLink } from '@/hooks/web3/useChain';\nimport PercentageSelector from '@/pages/components/PercentageSelector/PercentageSelector';\nimport { formatDisplayNumber, inputNumChecker } from '@/utils/numberUtil';\nimport { useFocusWithin } from 'ahooks';\nimport classNames from 'classnames';\nimport { FC, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport SpotSellTokens from '../../SpotTokens/SpotSellTokens';\nimport SpotBuyTokens from '../../SpotTokens/SpotsBuyTokens';\nimport warningSrc from '../assets/warning.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst WarningAddressTooltip = ({ token }: { token: TokenInfoInSpot }) => {\n const { t } = useTranslation();\n const getEtherscanLink = useEtherscanLink();\n return (\n \n \n {token.address}\n \n
{t('spot.confirm-token-address')}
\n \n }\n className=\"syn-spot-swap-form-row-input-tip\">\n \"warning\"\n \n );\n};\nconst SpotSwapFormContent: FC = function ({}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const { sellAmount, setSellAmount, token1: buyToken, token0: sellToken } = useSpotState();\n const [isClickSellPercent, setIsClickSellPercent] = useState(false);\n const sellBalance = useTokenBalance(sellToken.address, chainId, true);\n const buyBalance = useTokenBalance(buyToken.address, chainId, true);\n const buyTokenPrice = useTokenPrice({ tokenAddress: buyToken.address, chainId });\n const sellTokenPrice = useTokenPrice({ tokenAddress: sellToken.address, chainId });\n const { bestAmount: buyAmount } = useSimulateBestAmount();\n const { setSellTokenFn } = useSetSellToken();\n const { setBuyTokenFn } = useSetBuyToken();\n const { switchToken } = useSwitchToken();\n const { data: simulation } = useSimulateSwap();\n const ref = useRef(null);\n const isFocusWithin = useFocusWithin(ref);\n const { deviceType } = useMediaQueryDevice();\n\n const sellUsd = useMemo(\n () => WrappedBigNumber.from(sellAmount || 0).mul(sellTokenPrice?.current || 1),\n [sellAmount, sellTokenPrice],\n );\n const buyUsd = useMemo(() => {\n const amount = WrappedBigNumber.from(buyAmount || 0).mul(buyTokenPrice?.current || 1);\n return amount.gt(sellUsd) ? sellUsd : amount;\n }, [buyAmount, buyTokenPrice, sellUsd]);\n const onRatioChanged = useCallback(\n (ratio: number) => {\n if (ratio === 100) {\n setIsClickSellPercent(false);\n } else {\n setIsClickSellPercent(true);\n }\n\n setSellAmount(inputNumChecker(sellBalance.mul(ratio / 100).stringValue, sellToken.decimals));\n },\n [sellBalance, sellToken.decimals, setSellAmount],\n );\n const sliderRatio = useMemo(\n () =>\n Number(\n WrappedBigNumber.from(sellAmount || 0)\n .div(sellBalance || 1)\n .mul(100)\n .toNumber()\n .toFixed(0),\n ),\n [sellAmount, sellBalance],\n );\n useEffect(() => {\n return () => {\n setSellAmount('');\n };\n }, [setSellAmount]);\n\n useEffect(() => {\n if (sellAmount?.length === 0) {\n setIsClickSellPercent(false);\n }\n }, [sellAmount]);\n\n return (\n
\n
\n
\n {t('common.spot.sell')}\n
\n {t('common.balance')}:{' '}\n {sellBalance?.formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: sellToken?.symbol,\n })}\n
\n
\n
\n
\n
\n
\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n }}\n tokenInfo={sellToken}\n maxCheckZero={true}\n placeHolder=\"0.00\"\n suffix={<>}\n inputAmountStr={isClickSellPercent ? formatDisplayNumber({ num: sellAmount }) : sellAmount}\n inputAmountStrChanged={(value) => {\n setIsClickSellPercent(false);\n setSellAmount(value);\n }}\n />\n
\n
\n
\n {sellToken.isSymbolDuplicated && }\n {\n setSellTokenFn(token);\n }}\n />\n
\n
\n
\n {sellAmount ? (\n \n ≈{' '}\n {sellUsd?.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n })}\n \n ) : (\n
\n ≈$0\n
\n )}\n
\n
\n\n \n
\n
\n
\n \n
\n
\n
\n {t('common.spot.buy')}{' '}\n
\n {t('common.balance')}:{' '}\n {buyBalance?.formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: buyToken?.symbol,\n })}\n
\n
\n
\n
\n
\n {(!WrappedBigNumber.from(sellAmount || 0).eq(0) && !simulation) ||\n !!simulation?.message ||\n simulation?.timeout ? (\n <>\n
\n \n
\n \n ) : (\n <>\n {' '}\n {buyAmount ? (\n <>\n
\n {WrappedBigNumber.from(buyAmount || '').formatNumberWithTooltip({\n minDecimalPlaces: 6,\n })}\n
\n \n ) : (\n
\n
0.00
\n
\n )}\n \n )}\n
\n
\n {buyToken.isSymbolDuplicated && }\n \n
\n
\n\n
\n {(!WrappedBigNumber.from(sellAmount || 0).eq(0) && !simulation) ||\n !!simulation?.message ||\n simulation?.timeout ? (\n <>\n \n \n ) : buyAmount ? (\n <>\n \n ≈\n {buyUsd.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n })}\n \n \n ) : (\n
\n ≈$0\n
\n )}\n
\n
\n
\n
\n );\n};\n\nexport default SpotSwapFormContent;\n","import { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { formatUnits } from 'ethers/lib/utils';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { useSpotState } from './store';\n\nimport { WRAPPED_ZERO } from '@/constants/bigNumber';\nimport { CHAIN_ID, DEFAULT_CHAIN_ID, SUPPORTED_CHAIN_ID } from '@/constants/chain';\nimport { QUERY_KEYS } from '@/constants/query';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useNativeToken } from '@/features/chain/hook';\nimport { queryClient } from '@/pages/App';\nimport { RouteBasePath } from '@/pages/routers';\nimport { TokenInfo } from '@/types/token';\nimport { getChainShortName } from '@/utils/chain';\nimport { bothNative, getSearchRanking } from '@/utils/spot';\nimport _ from 'lodash';\nimport { NavigateOptions, useNavigate, useParams } from 'react-router-dom';\nimport { useTokenBalanceMapState } from '../balance/hook';\nimport { useTokenPrices } from '../global/query';\nimport { useSimulateBestRoute, useSimulateSwap, useSpotPools, useSpotTokens } from './query';\nimport { SPOT_TYPE, TokenInfoInSpot } from './types';\nexport const useSwitchToken = () => {\n const {\n setSellAmount: setAmount,\n token1: buyToken,\n setToken1: setBuyToken,\n token0: sellToken,\n setToken0: setSellToken,\n } = useSpotState();\n const { goToSpot } = useSpotRouter();\n\n const switchToken = useCallback(() => {\n setSellToken(buyToken);\n setBuyToken(sellToken);\n goToSpot({ buyTokenAddr: sellToken.address, sellTokenAddr: buyToken.address });\n setAmount('');\n }, [buyToken, goToSpot, sellToken, setAmount, setBuyToken, setSellToken]);\n return { switchToken };\n};\nexport function useSimulateBestAmount() {\n const { token1: buyToken, token0: sellToken, sellAmount } = useSpotState();\n const { data: bestRoute, isFetching, isFetched } = useSimulateBestRoute();\n const nativeWrappedNative = useMemo(() => bothNative(buyToken, sellToken), [buyToken, sellToken]);\n const bestAmount = useMemo(() => {\n if (nativeWrappedNative) {\n return sellAmount;\n }\n if (bestRoute?.bestAmount) {\n return formatUnits(bestRoute.bestAmount, buyToken?.decimals);\n }\n return '';\n }, [bestRoute?.bestAmount, buyToken?.decimals, nativeWrappedNative, sellAmount]);\n return useMemo(\n () => ({\n ...(nativeWrappedNative ? {} : bestRoute),\n bestAmount,\n isFetching,\n isFetched,\n }),\n [bestAmount, bestRoute, isFetched, isFetching, nativeWrappedNative],\n );\n}\nexport function useSetSellToken() {\n const { setToken0: setSellToken, token1: buyToken, token0, setToken1: setBuyToken } = useSpotState();\n const { goToSpot } = useSpotRouter();\n const setSellTokenFn = useCallback(\n async (sellToken: TokenInfoInSpot) => {\n // Set the sell token in the state\n let buyTokenFinal = buyToken;\n if (sellToken.address === buyToken.address) {\n buyTokenFinal = token0;\n }\n setSellToken(sellToken);\n setBuyToken(buyTokenFinal);\n goToSpot({ buyTokenAddr: buyTokenFinal.address, sellTokenAddr: sellToken.address });\n },\n [buyToken, goToSpot, setBuyToken, setSellToken, token0],\n );\n\n return { setSellTokenFn };\n}\n\nexport function useSetBuyToken() {\n const { setToken1: setBuyToken, token0: sellToken, setToken0, token1 } = useSpotState();\n const { goToSpot } = useSpotRouter();\n // Function to set the buy token and determine the best sell token based on value\n const setBuyTokenFn = useCallback(\n async (buyToken: TokenInfoInSpot) => {\n // Set the selected buy token in the state\n let sellTokenFinal = sellToken;\n if (buyToken.address === sellToken.address) {\n sellTokenFinal = token1;\n }\n setBuyToken(buyToken);\n setToken0(sellTokenFinal);\n goToSpot({ buyTokenAddr: buyToken.address, sellTokenAddr: sellTokenFinal.address });\n },\n [goToSpot, sellToken, setBuyToken, setToken0, token1],\n );\n\n return { setBuyTokenFn };\n}\n\nexport const useTokenSymbolQueryParam = () => {\n const { token0, token1 } = useParams();\n const buySymbolOrAddr = token1;\n const sellSymbolOrAddr = token0;\n\n return { buySymbolOrAddr, sellSymbolOrAddr };\n};\n\nexport const useTokenSymbolQueryParamEffect = ({ tokens }: { tokens: TokenInfoInSpot[] | null | undefined }) => {\n const { buySymbolOrAddr, sellSymbolOrAddr } = useTokenSymbolQueryParam();\n const { token0, token1, setToken0, setToken1 } = useSpotState();\n const chainId = useChainId();\n const nativeToken = useNativeToken(chainId);\n // Fetch available sell tokens for the selected buy token\n const getBuyTokenInfoAndSetState = useCallback(async () => {\n if (tokens && nativeToken) {\n const sellTokenInfo: TokenInfoInSpot | undefined = [\n { ...nativeToken, isSymbolDuplicated: false },\n ...tokens,\n ].filter((t) => t.symbol === sellSymbolOrAddr || t.address.toLowerCase() === sellSymbolOrAddr?.toLowerCase())[0];\n const buyTokenInfo: TokenInfoInSpot | undefined = [\n { ...nativeToken, isSymbolDuplicated: false },\n ...tokens,\n ].filter((t) => t.symbol === buySymbolOrAddr || t.address.toLowerCase() === buySymbolOrAddr?.toLowerCase())[0];\n if (token0.symbol === sellSymbolOrAddr && token1.symbol === buySymbolOrAddr) {\n return;\n }\n if (sellTokenInfo?.address !== buyTokenInfo?.address) {\n if (sellTokenInfo) {\n setToken0(sellTokenInfo);\n }\n if (buyTokenInfo) {\n setToken1(buyTokenInfo);\n }\n }\n }\n }, [buySymbolOrAddr, nativeToken, sellSymbolOrAddr, setToken0, setToken1, token0.symbol, token1.symbol, tokens]);\n useEffect(() => {\n getBuyTokenInfoAndSetState();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [buySymbolOrAddr, sellSymbolOrAddr, tokens]);\n};\n\nexport const getSpotLink = ({\n chainId,\n buySymbolOrAddr,\n sellSymbolOrAddr,\n}: {\n chainId?: CHAIN_ID;\n buySymbolOrAddr?: string;\n sellSymbolOrAddr?: string;\n}) => {\n const theChainId = chainId || DEFAULT_CHAIN_ID;\n const finalChainId = SUPPORTED_CHAIN_ID.includes(theChainId) ? theChainId : DEFAULT_CHAIN_ID;\n const chainShortName = getChainShortName(finalChainId);\n if (buySymbolOrAddr && sellSymbolOrAddr) {\n return `/${RouteBasePath.spot}/${SPOT_TYPE.SWAP}/${chainShortName}/${sellSymbolOrAddr}/${buySymbolOrAddr}`;\n }\n return `/${RouteBasePath.spot}/${SPOT_TYPE.SWAP}/${chainShortName}`;\n};\nexport default function useSpotRouter() {\n const navigate = useNavigate();\n const chainId = useChainId();\n const { data: tokens } = useSpotTokens({ chainId, includeNativeToken: true });\n const goToSpot = useCallback(\n ({ buyTokenAddr, sellTokenAddr }: { buyTokenAddr?: string; sellTokenAddr?: string }, options?: NavigateOptions) => {\n const buyToken = tokens?.find((t) => t.address.toLowerCase() === buyTokenAddr?.toLowerCase());\n const sellToken = tokens?.find((t) => t.address.toLowerCase() === sellTokenAddr?.toLowerCase());\n const buySymbolOrAddr = buyToken?.isSymbolDuplicated ? buyToken.address : buyToken?.symbol;\n const sellSymbolOrAddr = sellToken?.isSymbolDuplicated ? sellToken.address : sellToken?.symbol;\n navigate(getSpotLink({ buySymbolOrAddr, sellSymbolOrAddr, chainId }), options);\n },\n [chainId, navigate, tokens],\n );\n\n return { goToSpot, getSpotLink };\n}\n\nexport const useFilteredSpotPools = (\n chainId: number | undefined,\n token0: TokenInfo | undefined,\n token1: TokenInfo | undefined,\n) => {\n const { data: simulation } = useSimulateSwap();\n const queryStates = useSpotPools(chainId, token0?.address, token1?.address);\n const { data: tokens } = useSpotTokens({ chainId, includeNativeToken: true });\n const allTokens = useMemo(() => [token0, token1, ...(tokens || [])], [token0, token1, tokens]);\n const filteredPools = useMemo(() => {\n const newFilteredPools: {\n token0Info: TokenInfo | undefined;\n token1Info: TokenInfo | undefined;\n fee: number;\n tvl: number;\n type: number;\n address: string;\n token0: number;\n token1: number;\n address0: string;\n address1: string;\n price: number;\n }[] = [];\n if (simulation?.data) {\n for (let i = 0; i < simulation.data.route.length; i++) {\n const route = simulation.data.route[i];\n for (let j = 0; j < route.length; j++) {\n const item = route[j];\n const fee = item.fee;\n const poolType = item.poolType;\n const pool = queryStates.data?.find(\n (pool) =>\n pool.type === poolType &&\n WrappedBigNumber.from(fee).eq(pool.fee / 1000000) &&\n pool.address0.toLowerCase() === simulation.data?.tokens[i]?.toLowerCase() &&\n pool.address1.toLowerCase() === simulation.data?.tokens[i + 1]?.toLowerCase(),\n );\n const token0Info = allTokens?.find(\n (t) => t?.address.toLowerCase() === simulation.data?.tokens[i]?.toLowerCase(),\n );\n const token1Info = allTokens?.find(\n (t) => t?.address.toLowerCase() === simulation.data?.tokens[i + 1].toLowerCase(),\n );\n\n if (pool) {\n newFilteredPools.push({\n ...pool,\n token0Info,\n token1Info,\n });\n }\n }\n }\n }\n\n return newFilteredPools;\n }, [simulation, queryStates.data, allTokens]);\n return { ...queryStates, data: filteredPools };\n};\n\nconst useFilteredSpotTokens = ({\n search,\n}: // tokenToExclude,\n{\n search: string;\n tokenToExclude: TokenInfo | undefined;\n}) => {\n const chainId = useChainId();\n const { data: fullTokensWithNative, isFetched } = useSpotTokens({ chainId, includeNativeToken: true });\n const tokenBalanceMap = useTokenBalanceMapState(chainId);\n const { data: tokenPriceMap } = useTokenPrices({ chainId });\n const displayTokensSource = useMemo(() => {\n let tokens = fullTokensWithNative;\n // 1. Filter by search\n if (search?.toLowerCase()?.trim()?.length) {\n tokens = fullTokensWithNative?.filter((t) =>\n search.toLowerCase().startsWith('0x')\n ? t.address.toLowerCase().includes(search.toLowerCase())\n : t.symbol.toLowerCase().includes(search.toLowerCase()),\n );\n } else {\n // 2. Filter by balance and top 100\n const top100Tokens = fullTokensWithNative?.slice(0, 100) || [];\n const hasBalanceTokens = fullTokensWithNative?.filter((t) => tokenBalanceMap[t.address]?.balance?.gt(0)) || [];\n tokens = [...hasBalanceTokens, ...top100Tokens.filter((t) => !hasBalanceTokens.includes(t))];\n }\n return tokens;\n // return tokens?.filter((t) => {\n // if (tokenToExclude?.address === nativeToken?.address) {\n // return t.address !== wrappedNativeToken?.address;\n // }\n // if (tokenToExclude?.address === wrappedNativeToken?.address) {\n // return t.address !== nativeToken?.address;\n // }\n // return true;\n // });\n }, [\n fullTokensWithNative,\n // nativeToken?.address,\n search,\n tokenBalanceMap,\n // tokenToExclude?.address,\n // wrappedNativeToken?.address,\n ]);\n\n const filteredTokens = useMemo(() => {\n // Combine and sort by search ranking, balance, price, and symbol\n const result = _.orderBy(\n displayTokensSource,\n [\n (token) => getSearchRanking(search, token.symbol),\n (token) => {\n const balance = _.get(tokenBalanceMap, [token.address.toLowerCase()])?.balance || WRAPPED_ZERO;\n return balance.mul(_.get(tokenPriceMap, [token.address.toLowerCase(), 'current'], 0)).toNumber();\n },\n (token) => {\n const balance = _.get(tokenBalanceMap, [token.address.toLowerCase()])?.balance || WRAPPED_ZERO;\n return balance.toNumber();\n },\n (token) => token.symbol,\n ],\n ['asc', 'desc', 'desc', 'asc'],\n );\n\n return result;\n }, [displayTokensSource, search, tokenBalanceMap, tokenPriceMap]);\n\n return { filteredTokens, isFetched };\n};\n\nexport const useFilteredSellSpotTokens = ({ search }: { search: string }) => {\n const { token1: buyToken } = useSpotState();\n return useFilteredSpotTokens({ search, tokenToExclude: buyToken });\n};\n\nexport const useFilteredBuySpotTokens = ({ search }: { search: string }) => {\n const { token0: sellToken } = useSpotState();\n return useFilteredSpotTokens({ search, tokenToExclude: sellToken });\n};\n\nexport const useSwapRefresh = () => {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { sellAmount, token1: buyToken, token0: sellToken } = useSpotState();\n\n const handleRefresh = useCallback(() => {\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.SPOT.SIMULATE_SWAP(chainId, userAddr, sellAmount, sellToken?.address, buyToken?.address),\n });\n queryClient.invalidateQueries({\n queryKey: QUERY_KEYS.SPOT.SIMULATE_BEST_ROUTE(\n chainId,\n userAddr,\n sellAmount,\n sellToken?.address,\n buyToken?.address,\n ),\n });\n }, [buyToken?.address, chainId, sellAmount, sellToken?.address, userAddr]);\n return { handleRefresh };\n};\n","/**\n * @description Component-TradeFormAlert\n */\n\nimport { useMemo } from 'react';\n\nimport { useTokenBalance } from '@/features/balance/hook';\nimport { useSimulateSwap } from '@/features/spot/query';\nimport { useSpotState } from '@/features/spot/store';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { AlertProps } from 'antd';\nexport enum MsgId {\n InsufficientBalance = 'InsufficientBalance',\n RouteNotFound = 'RouteNotFound',\n TryDamount = 'TryDamount',\n SimulTimeout = 'SimulTimeout',\n}\n\nexport const MsgInfo: {\n [id in MsgId]: {\n type: AlertProps['type'] | 'warning';\n i18nId: string;\n i18nIdInRoute?: string;\n shownInRoute: boolean;\n };\n} = {\n [MsgId.InsufficientBalance]: {\n type: 'error',\n i18nId: 'common.spot.insufficientSb',\n shownInRoute: false,\n },\n [MsgId.RouteNotFound]: {\n type: 'error',\n i18nId: 'spot.not-found-swap',\n i18nIdInRoute: 'spot.not-found',\n shownInRoute: true,\n },\n [MsgId.TryDamount]: {\n type: 'warning',\n i18nId: 'common.spot.tryDamount',\n shownInRoute: false,\n },\n [MsgId.SimulTimeout]: {\n type: 'warning',\n i18nId: 'common.spot.simulTimeout',\n i18nIdInRoute: 'common.spot.simulTimeout',\n shownInRoute: true,\n },\n};\n\nexport default function useMsgIds() {\n const { data: simulation } = useSimulateSwap();\n const { token0: sellToken, sellAmount } = useSpotState();\n const chainId = useChainId();\n const sellBalance = useTokenBalance(sellToken.address, chainId);\n\n const msgIds = useMemo(() => {\n const result: MsgId[] = [];\n\n if (sellBalance && sellBalance.lt(sellAmount || 0)) {\n result.push(MsgId.InsufficientBalance);\n }\n\n if (simulation?.data?.route.length === 0 && simulation?.timeout !== true) {\n result.push(MsgId.RouteNotFound);\n }\n\n if (simulation?.message && sellBalance.lt(sellAmount || 0)) {\n result.push(MsgId.TryDamount);\n }\n\n if (simulation?.timeout) {\n result.push(MsgId.SimulTimeout);\n }\n\n return result;\n }, [sellAmount, sellBalance, simulation?.data?.route.length, simulation?.message, simulation?.timeout]);\n\n return msgIds;\n}\n","/**\n * @description Component-TradeFormAlert\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/Alert';\nimport I18nTrans from '@/components/I18nTrans';\nimport { useSpotState } from '@/features/spot/store';\nimport useMsgIds, { MsgInfo } from '@/spot/useMsg';\n\ninterface IPropTypes {}\nconst SpotSwapAlert: FC = function ({}) {\n const { t } = useTranslation();\n const msgIds = useMsgIds();\n const { token0: sellToken } = useSpotState();\n\n if (msgIds.length === 0) return null;\n\n return (\n <>\n {msgIds.map((id) => {\n const { type, i18nId } = MsgInfo[id];\n const message = t(i18nId, { symbol: sellToken.symbol });\n\n return (\n
\n } type={type} showIcon>\n
\n );\n })}\n \n );\n};\n\nexport default React.memo(SpotSwapAlert);\n","/**\n * @description Component-SwapFooter\n */\nimport { ApproveWrapButton } from '@/pages/components/WalletStatus/ApproveButton';\nimport './index.less';\n\nimport { ZERO } from '@/constants';\nimport { OPERATION_TX_TYPE } from '@/constants/tx';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useGlobalConfig } from '@/features/global/hooks';\nimport { useSpotState } from '@/features/spot/store';\nimport { sendTransaction } from '@/features/transaction/actions';\nimport { useAppProvider, useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { parseSendingTxMessageMapping } from '@/utils/notification';\nimport { toWad } from '@/utils/numberUtil';\nimport { addedDeadline, perToTenThousands } from '@/utils/trade';\nimport { BigNumber, PopulatedTransaction, ethers } from 'ethers';\nimport { parseUnits } from 'ethers/lib/utils';\nimport { FC, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useSimulateBestAmount } from '@/features/spot/hooks';\nimport { useSimulateSwap } from '@/features/spot/query';\nimport { useUnConnectSubCard } from '@/pages/components/WalletStatus/UnconnectSubCard';\nimport { WorkerEventNames } from '@/types/worker';\nimport { bothNative } from '@/utils/spot';\nimport { OYSTER_AGGREGATOR_ADDRESS, SplitPathInfo } from '@synfutures/sdks-aggregator';\nimport SpotSwapAlert from '../SpotSwapDetail/SpotSwapAlert';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SwapFooter: FC = function ({}) {\n const chainId = useChainId();\n const {\n sellAmount,\n token0: sellToken,\n token1: buyToken,\n setSellAmount: setAmount,\n swapping,\n setSwapping,\n setNewTxHashForFetchingHistory: setNewTransactionHashForFetchingHistory,\n } = useSpotState();\n const dispatch = useAppDispatch();\n const signer = useWalletSigner();\n const sdk = useSDK(chainId);\n const provider = useAppProvider();\n const { deadline, slippage } = useGlobalConfig(chainId);\n const { data: simulation } = useSimulateSwap();\n const userAddr = useUserAddr();\n const bestAmountSimulation = useSimulateBestAmount();\n const swap = useCallback(async () => {\n if (WrappedBigNumber.from(sellAmount).eq(0)) {\n return;\n }\n const nativeWrapNativeSwap = bothNative(sellToken, buyToken);\n if (sellAmount && sellToken && buyToken && sdk && signer && chainId && provider && userAddr) {\n const sellAmountBN = parseUnits(sellAmount, sellToken.decimals);\n try {\n setSwapping(true);\n\n const result = await dispatch(\n sendTransaction({\n signer,\n sendFunc: async () => {\n let populatedTx;\n if (nativeWrapNativeSwap && !bestAmountSimulation.bestPathInfo) {\n populatedTx = (await sdk?.aggregator.wethConvert({\n fromTokenAddress: sellToken.address,\n toTokenAddress: buyToken.address,\n amount: sellAmountBN,\n })) as PopulatedTransaction;\n // imperative gas limit for this tx 63000gw\n populatedTx.gasLimit = BigNumber.from(63000);\n } else {\n populatedTx = await sdk?.aggregator.multiSwap(\n {\n fromTokenAddress: sellToken.address,\n toTokenAddress: buyToken.address,\n fromTokenAmount: sellAmountBN,\n bestPathInfo: bestAmountSimulation.bestPathInfo as SplitPathInfo,\n bestAmount: parseUnits(bestAmountSimulation.bestAmount, buyToken.decimals),\n slippageInBps: perToTenThousands(Number(slippage)),\n deadline: addedDeadline(Number(deadline)),\n broker: ethers.constants.AddressZero,\n brokerFeeRate: ZERO,\n },\n { from: userAddr },\n );\n }\n return signer.sendTransaction(populatedTx);\n },\n chainId,\n userAddr,\n txParams: {\n type: nativeWrapNativeSwap ? OPERATION_TX_TYPE.NATIVE_SWAP : OPERATION_TX_TYPE.SWAP,\n instrument: {\n baseSymbol: buyToken.symbol,\n quoteSymbol: sellToken.symbol,\n isInverse: false,\n quoteDecimal: sellToken.decimals,\n baseDecimal: buyToken.decimals,\n },\n sendingTemplate: parseSendingTxMessageMapping[OPERATION_TX_TYPE.SWAP]?.(\n WrappedBigNumber.from(sellAmount),\n buyToken.symbol,\n sellToken.symbol,\n WrappedBigNumber.from(bestAmountSimulation.bestAmount),\n ),\n },\n wssProvider: provider,\n }),\n ).unwrap();\n if (result?.status) {\n // need update balance\n }\n if (result?.transactionHash) {\n }\n\n window.userWorker.postMessage({\n eventName: WorkerEventNames.MulticallBalance,\n data: {\n chainId,\n userAddr,\n tokens: [sellToken, buyToken],\n },\n });\n result?.transactionHash && setNewTransactionHashForFetchingHistory(result?.transactionHash);\n setSwapping(false);\n if (result?.status === 1) {\n setAmount('');\n }\n return result;\n } catch (e) {\n console.log('🚀 ~ swap ~ e:', e);\n setSwapping(false);\n }\n }\n }, [\n sellAmount,\n sellToken,\n buyToken,\n sdk,\n signer,\n chainId,\n provider,\n userAddr,\n setSwapping,\n dispatch,\n bestAmountSimulation.bestAmount,\n bestAmountSimulation.bestPathInfo,\n setNewTransactionHashForFetchingHistory,\n slippage,\n deadline,\n setAmount,\n ]);\n const { t } = useTranslation();\n const res = useUnConnectSubCard(\n undefined,\n () => {\n return;\n },\n true,\n t('common.connectWal'),\n );\n return (\n
\n \n {res !== undefined ? (\n res.footer\n ) : (\n \n {t('common.swap')}\n \n )}\n
\n );\n};\n\nexport default SwapFooter;\n","/**\n * @description Component-SpotRanges\n */\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport SkeletonTable, { SkeletonTableColumnsType } from '@/components/SkeletonTable';\nimport Table from '@/components/Table';\nimport { spotDexInfos } from '@/constants/spot';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useSpotState } from '@/features/spot/store';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { ISpotPool } from '@/types/spot';\nimport { ColumnType } from 'antd/es/table';\n\nimport { useMockDevTool } from '@/components/Mock';\nimport { useFilteredSpotPools } from '@/features/spot/hooks';\nimport { TokenInfo } from '@/types/token';\nimport { FC, useMemo } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SpotMobileDexTable: FC = function ({}) {\n const { token0, token1 } = useSpotState();\n const chainId = useChainId();\n const { isLoading, data } = useFilteredSpotPools(chainId, token0, token1);\n const { isMockSkeleton } = useMockDevTool();\n const { t } = useTranslation();\n const loading = isMockSkeleton || isLoading;\n const columns: ColumnType[] = useMemo(\n () => [\n {\n title: t('common.spot.dex'),\n dataIndex: 'dex',\n width: 100,\n align: 'left',\n render: (_, record): JSX.Element | undefined => (\n \n \n
\n
{`${spotDexInfos[record.type]?.name}`}
\n
{`${record?.token0Info?.symbol} ${' / '}${\n record?.token1Info?.symbol\n }`}
\n
\n
\n ),\n },\n {\n title: t('common.fee'),\n dataIndex: 'fee',\n width: 50,\n align: 'center',\n render: (_, record): JSX.Element | undefined => {record.fee / 10000}%,\n },\n\n {\n title: t('common.tvl'),\n dataIndex: 'tvl',\n width: 80,\n align: 'right',\n sorter: (a: ISpotPool, b: ISpotPool): number => {\n return a.tvl > b.tvl ? 1 : -1;\n },\n render: (_, record): JSX.Element | undefined => (\n <>\n \n {WrappedBigNumber.from(record.tvl).formatPriceNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n })}\n \n \n ),\n },\n ],\n [t],\n );\n return (\n <>\n {data.length > 0 && (\n
\n
{t('common.supportPoolsDetails')}
\n \n `pool-${record.type}`}\n className=\"syn-spot-mobile-dex-table-table\"\n rowKey={(record) => {\n return `${record.poolAddr}-${record.tvl}-${record?.token0Info?.symbol}-${record?.token1Info?.symbol}`;\n }}\n pagination={false}\n />\n \n
\n )}\n \n );\n};\n\nexport default SpotMobileDexTable;\n","/**\n * @description Component-SpotRoute\n */\nimport './index.less';\n\nimport { spotDexInfos } from '@/constants/spot';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { Route } from '@synfutures/sdks-aggregator';\nimport BN from 'bignumber.js';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nexport default function SpotMobilePool({ route }: { route: Route }) {\n return (\n \n {WrappedBigNumber.from(route.ratio).formatPercentageString(true, 0, BN.ROUND_UP)}\n
\n \n {_.get(spotDexInfos, [route.poolType])?.version}({WrappedBigNumber.from(route.fee).formatPercentageString()})\n
\n
\n );\n}\n","import TokenLogo from '@/components/TokenLogo';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { TokenInfoInSpot } from '@/features/spot/types';\nimport classNames from 'classnames';\nimport './index.less';\nexport default function SpotToken({\n token,\n amountBn,\n type,\n}: {\n token: TokenInfoInSpot;\n amountBn?: WrappedBigNumber;\n type: 'from' | 'to' | 'middle';\n}) {\n return (\n
\n {token && }\n
\n {amountBn && !amountBn.eq(0) && {amountBn.formatNumberWithTooltip({ isShowTBMK: true })}}\n {token?.symbol}\n
\n
\n );\n}\n","var _path, _path2, _path3, _path4, _path5;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconEmpty = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.72 5.4C6.96301 5.4 7.16 5.59699 7.16 5.84V18.16C7.16 18.403 6.96301 18.6 6.72 18.6C6.47699 18.6 6.28 18.403 6.28 18.16V5.84C6.28 5.59699 6.47699 5.4 6.72 5.4Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.44 8.92C1.68301 8.92 1.88 9.11699 1.88 9.36V14.64C1.88 14.883 1.68301 15.08 1.44 15.08C1.19699 15.08 1 14.883 1 14.64V9.36C1 9.11699 1.19699 8.92 1.44 8.92Z\",\n fill: \"#00BFBF\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 1C12.243 1 12.44 1.19699 12.44 1.44V22.56C12.44 22.803 12.243 23 12 23C11.757 23 11.56 22.803 11.56 22.56V1.44C11.56 1.19699 11.757 1 12 1Z\",\n fill: \"#00BFBF\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17.28 5.4C17.523 5.4 17.72 5.59699 17.72 5.84V18.16C17.72 18.403 17.523 18.6 17.28 18.6C17.037 18.6 16.84 18.403 16.84 18.16V5.84C16.84 5.59699 17.037 5.4 17.28 5.4Z\",\n fill: \"#00BFBF\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M22.56 8.92C22.803 8.92 23 9.11699 23 9.36V14.64C23 14.883 22.803 15.08 22.56 15.08C22.317 15.08 22.12 14.883 22.12 14.64V9.36C22.12 9.11699 22.317 8.92 22.56 8.92Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconEmpty);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_empty.07f6a56cf52d09686a011a101fcbd7c4.svg\";","/**\n * @description Component-SpotRoute\n */\nimport './index.less';\n\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useSimulateBestAmount } from '@/features/spot/hooks';\nimport { useSimulateSwap, useSpotTokens } from '@/features/spot/query';\nimport { useSpotState } from '@/features/spot/store';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport useMsgIds, { MsgInfo } from '@/spot/useMsg';\nimport { bothNative } from '@/utils/spot';\nimport { Route } from '@synfutures/sdks-aggregator';\nimport { Flex } from 'antd';\nimport classNames from 'classnames';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport SpotMobilePool from './SpotPool';\nimport SpotToken from './SpotToken';\nimport routeArrow from './assets/icon_empty.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n middleTokenAddr?: string;\n routesArray?: Route[][];\n}\nconst SpotMobileRoute: FC = function () {\n const { data: simulation } = useSimulateSwap();\n const { t } = useTranslation();\n const middleTokenAddr =\n simulation?.data?.tokens && simulation?.data?.tokens?.length > 1 ? simulation?.data?.tokens[1] : undefined;\n const routesArray = useMemo(() => simulation?.data?.route || [], [simulation]);\n const { sellAmount, token1: buyToken, token0: sellToken } = useSpotState();\n const chainId = useChainId();\n const { bestAmount: simulatedBuyAmount } = useSimulateBestAmount();\n const fromAmountBn = useMemo(() => WrappedBigNumber.from(sellAmount || 0), [sellAmount]);\n const buyAmountBn = useMemo(() => WrappedBigNumber.from(simulatedBuyAmount || 0), [simulatedBuyAmount]);\n const { data: fullTokens } = useSpotTokens({ chainId });\n const nativeWrappedNativePair = useMemo(() => bothNative(sellToken, buyToken), [buyToken, sellToken]);\n const middleToken = useMemo(() => {\n return routesArray.length > 1\n ? fullTokens?.find((t) => t.address.toLowerCase() === middleTokenAddr?.toLowerCase())\n : undefined;\n }, [fullTokens, middleTokenAddr, routesArray]);\n const msgIds = useMsgIds();\n const msgIdsShownInRoute = useMemo(() => msgIds.filter((id) => MsgInfo[id].shownInRoute), [msgIds]);\n return (\n
\n
\n \n {nativeWrappedNativePair &&
}\n \n
\n {msgIdsShownInRoute.length > 0 ? (\n msgIdsShownInRoute.map((id) => {\n const { i18nIdInRoute, i18nId } = MsgInfo[id];\n return (\n
\n {t(i18nIdInRoute || i18nId)}\n
\n );\n })\n ) : (\n <>\n {routesArray?.length === 0 && !nativeWrappedNativePair && (\n
\n \"route-arrow\"\n
\n )}\n {/* sigle route */}\n {routesArray?.length === 1 && (\n \n {routesArray?.[0]?.map((route, index) => (\n \n \n
\n ))}\n
\n )}\n {/* two route */}\n {/* && routesArray?.length === 2 */}\n {middleToken && routesArray?.length === 2 && (\n \n \n
\n {routesArray[0]?.map((route, index) => (\n
\n \n
\n ))}\n
\n
\n {routesArray[1]?.map((route, index) => (\n
\n \n
\n ))}\n
\n
\n
\n \n
\n \n )}\n \n )}\n \n );\n};\n\nexport default SpotMobileRoute;\n","import Drawer from '@/components/Drawer';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { useSpotState } from '@/features/spot/store';\nimport { GlobalFormSetting } from '@/pages/components/GlobalFormSettings';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nexport default function SpotMobileSettings() {\n const { settingsOpen, setSettingsOpen } = useSpotState();\n const { isMobile } = useMediaQueryDevice();\n const { t } = useTranslation();\n return (\n <>\n {isMobile && settingsOpen && (\n {\n setSettingsOpen(false);\n }}\n destroyOnClose={true}\n className=\"syn-spot-settings-drawer\">\n {\n // Add any additional logic after settings are saved\n setSettingsOpen(false);\n }}\n />\n \n )}\n \n );\n}\n","export const GraphSvg = ({ color = 'var(--icon-black)', isOpen = false }: { color?: string; isOpen?: boolean }) =>\n isOpen ? (\n \n \n \n \n \n \n ) : (\n \n \n \n \n );\n\nexport const RefreshSvg = ({ color = 'var(--icon-black)' }: { color?: string }) => (\n \n \n \n \n);\n\nexport const SettingSvg = ({ color = 'var(--icon-black)' }: { color?: string }) => (\n \n \n \n \n);\n","import { useSwapRefresh } from '@/features/spot/hooks';\nimport { useSpotState } from '@/features/spot/store';\nimport { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport SpotMobileSettings from './SpotMobileSettings';\nimport { GraphSvg, RefreshSvg, SettingSvg } from './assets';\nimport './index.less';\n\nexport default function SpotMobileTitle() {\n const { t } = useTranslation();\n const { mobileGraphOpen, setMobileGraphOpen, setSettingsOpen } = useSpotState();\n const { handleRefresh } = useSwapRefresh();\n useEffect(() => {\n return () => {\n setSettingsOpen(false);\n setMobileGraphOpen(false);\n };\n }, [setSettingsOpen, setMobileGraphOpen]);\n return (\n
\n
{t('common.swap')}
\n
\n setMobileGraphOpen(!mobileGraphOpen)}>\n \n \n \n \n \n setSettingsOpen(true)}>\n \n \n
\n \n
\n );\n}\n","import { SPOT_KLINE_INTERVAL } from '@/constants/spot';\nimport { useSpotState } from '@/features/spot/store';\nimport SpotChart from '../SpotChart';\nimport SpotHistory from '../SpotHistory';\nimport SpotSwapDetail from '../SpotSwap/SpotSwapDetail';\nimport SpotSwapFormContent from '../SpotSwap/SpotSwapFormContent';\nimport SwapFooter from '../SpotSwap/SwapFooter';\nimport SpotMobileDexTable from './SpotMobileDexTable';\nimport SpotMobileRoute from './SpotMobileRoute';\nimport SpotMobileTitle from './SpotMobileTitle';\nimport './index.less';\nexport default function SpotMobile() {\n const { mobileGraphOpen } = useSpotState();\n\n return (\n
\n
\n \n {mobileGraphOpen && }\n \n \n \n \n
\n
\n \n \n
\n
\n );\n}\n","var _path, _path2, _path3, _path4, _path5;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconEmpty = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.72 5.4C6.96301 5.4 7.16 5.59699 7.16 5.84V18.16C7.16 18.403 6.96301 18.6 6.72 18.6C6.47699 18.6 6.28 18.403 6.28 18.16V5.84C6.28 5.59699 6.47699 5.4 6.72 5.4Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.44 8.92C1.68301 8.92 1.88 9.11699 1.88 9.36V14.64C1.88 14.883 1.68301 15.08 1.44 15.08C1.19699 15.08 1 14.883 1 14.64V9.36C1 9.11699 1.19699 8.92 1.44 8.92Z\",\n fill: \"#00BFBF\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 1C12.243 1 12.44 1.19699 12.44 1.44V22.56C12.44 22.803 12.243 23 12 23C11.757 23 11.56 22.803 11.56 22.56V1.44C11.56 1.19699 11.757 1 12 1Z\",\n fill: \"#00BFBF\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M17.28 5.4C17.523 5.4 17.72 5.59699 17.72 5.84V18.16C17.72 18.403 17.523 18.6 17.28 18.6C17.037 18.6 16.84 18.403 16.84 18.16V5.84C16.84 5.59699 17.037 5.4 17.28 5.4Z\",\n fill: \"#00BFBF\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M22.56 8.92C22.803 8.92 23 9.11699 23 9.36V14.64C23 14.883 22.803 15.08 22.56 15.08C22.317 15.08 22.12 14.883 22.12 14.64V9.36C22.12 9.11699 22.317 8.92 22.56 8.92Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconEmpty);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_empty.07f6a56cf52d09686a011a101fcbd7c4.svg\";","/**\n * @description Component-SpotRanges\n */\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport SkeletonTable, { SkeletonTableColumnsType } from '@/components/SkeletonTable';\nimport Table from '@/components/Table';\nimport { spotDexInfos } from '@/constants/spot';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useSpotState } from '@/features/spot/store';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { ISpotPool } from '@/types/spot';\nimport { ColumnType } from 'antd/es/table';\n\nimport { useMockDevTool } from '@/components/Mock';\nimport { useFilteredSpotPools } from '@/features/spot/hooks';\nimport { TokenInfo } from '@/types/token';\nimport { FC, useMemo } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SpotDexTable: FC = function ({}) {\n const { token0, token1 } = useSpotState();\n const chainId = useChainId();\n const { isLoading, data } = useFilteredSpotPools(chainId, token0, token1);\n const { isMockSkeleton } = useMockDevTool();\n const { t } = useTranslation();\n const loading = isMockSkeleton || isLoading;\n const columns: ColumnType[] = useMemo(\n () => [\n {\n title: t('common.spot.dex'),\n dataIndex: 'dex',\n width: 240,\n align: 'left',\n render: (_, record): JSX.Element | undefined => (\n \n \n {`${spotDexInfos[record.type]?.name} - ${record?.token0Info?.symbol} ${' / '}${record?.token1Info?.symbol}`}\n \n ),\n },\n {\n title: t('common.fee'),\n dataIndex: 'fee',\n width: 60,\n align: 'left',\n render: (_, record): JSX.Element | undefined => {record.fee / 10000}%,\n },\n {\n title: t('common.price'),\n dataIndex: 'price',\n width: 220,\n\n align: 'left',\n render: (_, record): JSX.Element | undefined => (\n <>\n \n {`1 `}\n {record?.token0Info?.symbol}\n {` = `}\n \n {WrappedBigNumber.from(record.price).formatPriceNumberWithTooltip({\n isShowTBMK: true,\n suffix: record?.token1Info?.symbol,\n })}\n \n \n \n ),\n },\n {\n title: t('common.poolBalance'),\n dataIndex: 'poolBalance',\n width: 220,\n align: 'left',\n render: (_, record): JSX.Element | undefined => (\n <>\n \n {WrappedBigNumber.from(record.token0).formatPriceNumberWithTooltip({\n isShowTBMK: true,\n suffix: record?.token0Info?.symbol,\n })}{' '}\n {` / `}\n {WrappedBigNumber.from(record.token1).formatPriceNumberWithTooltip({\n isShowTBMK: true,\n suffix: record?.token1Info?.symbol,\n })}{' '}\n \n \n ),\n },\n {\n title: t('common.tvl'),\n dataIndex: 'tvl',\n width: 110,\n sorter: (a: ISpotPool, b: ISpotPool): number => {\n return a.tvl > b.tvl ? 1 : -1;\n },\n render: (_, record): JSX.Element | undefined => (\n <>\n \n {WrappedBigNumber.from(record.tvl).formatPriceNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n })}\n \n \n ),\n },\n ],\n [t],\n );\n return (\n <>\n {data.length > 0 && (\n
\n
\n
\n
{t('common.supportPoolsDetails')}
\n
\n
\n \n `pool-${record.type}`}\n className=\"syn-spot-dex-table-table\"\n rowKey={(record) => {\n return `${record.poolAddr}-${record.tvl}-${record?.token0Info?.symbol}-${record?.token1Info?.symbol}`;\n }}\n pagination={false}\n />\n \n
\n )}\n \n );\n};\n\nexport default SpotDexTable;\n","/**\n * @description Component-SpotPair\n */\nimport { TokenInfo } from '@/types/token';\nimport './index.less';\n\nimport TokenLogo from '@/components/TokenLogo';\nimport { FC } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n baseToken?: TokenInfo;\n quoteToken?: TokenInfo;\n size?: number;\n}\nconst SpotPair: FC = function ({ baseToken, quoteToken, size }) {\n return (\n
\n \n \n {baseToken?.symbol}-{quoteToken?.symbol}\n
\n );\n};\n\nexport default SpotPair;\n","/**\n * @description Component-SpotInfo\n */\nimport './index.less';\n\nimport { ReactComponent as SwapIcon } from '@/assets/svg/icon_swap.svg';\nimport { useMockDevTool } from '@/components/Mock';\nimport { SkeletonButton } from '@/components/Skeleton';\nimport { useSwitchToken } from '@/features/spot/hooks';\nimport { useSpotPairPrice } from '@/features/spot/query';\nimport { useSpotState } from '@/features/spot/store';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { Flex } from 'antd';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport SpotPair from './SpotPair';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SpotInfo: FC = function ({}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const { token1, token0 } = useSpotState();\n const { data: pairPrice, isLoading } = useSpotPairPrice(chainId, token0?.address, token1?.address);\n const { isMockSkeleton } = useMockDevTool();\n const loading = isLoading || isMockSkeleton;\n const { switchToken } = useSwitchToken();\n return (\n
\n
\n \n \n
\n\n
\n {loading ? (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ) : (\n !!pairPrice && (\n
\n
\n
\n
{t('common.price')}
\n
{pairPrice?.price.formatPriceNumberWithTooltip()}
\n
\n
\n
{t('common.24HC')}
\n
\n {pairPrice?._24hChanged.formatPercentage({\n decimals: 2,\n isColorShaderWhiteIfZero: true,\n })}\n
\n
\n
\n
{t('common.24HH')}
\n
{pairPrice?._24hHigh.formatPriceNumberWithTooltip()}
\n
\n
\n
{t('common.24HL')}
\n
{pairPrice?._24hLow.formatPriceNumberWithTooltip()}
\n
\n
\n
\n )\n )}\n
\n
\n );\n};\n\nexport default SpotInfo;\n","/**\n * @description Component-SpotOrderbook\n */\nimport { ReactComponent as IconArrowFall } from '@/assets/svg/icon_arrow_fall_16.svg';\nimport { ReactComponent as IconArrowRise } from '@/assets/svg/icon_arrow_rise_16.svg';\nimport { ReactComponent as SwapIcon } from '@/assets/svg/icon_swap.svg';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { useMockDevTool } from '@/components/Mock';\nimport { defaultStepRatioOverride, spotDexInfos, spotStepRatio } from '@/constants/spot';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useSpotOrderBookDepth } from '@/features/spot/query';\nimport { useSpotState } from '@/features/spot/store';\nimport { useTrend } from '@/hooks/trade/useTrend';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport OrderBookSkeleton from '@/pages/trade/CoinPriceChart/OrderBook/OrderBookSkeleton';\nimport StepRatioSelector from '@/pages/trade/CoinPriceChart/StepRatioSelector';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { FC, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SpotOrderbook: FC = function ({}) {\n const { t } = useTranslation();\n const { setStepRatio, token0, token1, stepRatio } = useSpotState();\n const chainId = useChainId();\n const { isMockSkeleton } = useMockDevTool();\n const { data } = useSpotOrderBookDepth(chainId, token0?.address, token1?.address, stepRatio);\n const trend = useTrend(data?.midPrice);\n const [isToken0, setIsToken0] = useState(true);\n const loading = isMockSkeleton || !data;\n\n const dexNames = _.cloneDeep(data?.left[0]?.dexes.map((dex) => spotDexInfos[dex.type]?.name) || []).reverse();\n const largestTokenSum = useMemo(() => {\n return Math.max(\n (isToken0 ? _.get(data?.right, [0])?.token0Sum : _.get(data?.right, [0])?.token1Sum) || 0,\n (isToken0\n ? _.get(data?.left, [(data?.left.length || 1) - 1])?.token0Sum\n : _.get(data?.left, [(data?.left.length || 1) - 1])?.token1Sum) || 0,\n );\n }, [data?.left, data?.right, isToken0]);\n const redColors = ['red', 'medium-red', 'dark-red'];\n const greenColors = ['green', 'medium-green', 'dark-green'];\n if (data?.isMultiple) {\n return null;\n }\n return (\n
\n
\n
{t('common.orderBook.orderB')}
\n\n
\n \n
\n
\n
\n
\n
{t('common.orderBook.price')}
\n
\n {t('common.orderBook.size')}\n {\n setIsToken0((prev) => !prev);\n }}\n className=\"swap\">\n  (\n {isToken0 ? token0?.symbol : token1?.symbol}\n \n )\n \n
\n
{t('common.orderBook.sum')}
\n
\n {!loading && (\n
\n {dexNames?.map((item, i) => (\n
\n
\n {item}\n
\n ))}\n
\n )}\n \n
\n {_.cloneDeep(data?.right)\n ?.sort((a, b) => b.price - a.price)\n .map((item, index) => {\n const tokenSize = isToken0 ? item.token0Size : item.token1Size;\n const tokenSum = isToken0 ? item.token0Sum : item.token1Sum;\n const bodyPercent = tokenSum / largestTokenSum;\n return (\n
\n
\n \n {WrappedBigNumber.from(item.price).formatPriceNumberWithTooltip()}\n \n
\n
\n \n {WrappedBigNumber.from(tokenSize).formatNumberWithTooltip({\n isShowTBMK: true,\n })}\n \n
\n
\n \n {WrappedBigNumber.from(tokenSum).formatNumberWithTooltip({\n isShowTBMK: true,\n })}\n \n
\n
\n {[...item.dexes].reverse().map((item, i) => (\n \n ))}\n
\n
\n );\n })}\n
\n
\n {WrappedBigNumber.from(data?.midPrice || '').formatPriceNumberWithTooltip()}{' '}\n {trend === 'up' ? : }\n
\n
\n {_.cloneDeep(data?.left)\n ?.sort((a, b) => b.price - a.price)\n .map((item, index) => {\n const tokenSize = isToken0 ? item.token0Sum : item.token1Sum;\n const tokenSum = isToken0 ? item.token0Sum : item.token1Sum;\n const bodyPercent = tokenSum / largestTokenSum;\n\n return (\n
\n
\n \n {WrappedBigNumber.from(item.price).formatPriceNumberWithTooltip()}\n \n
\n
\n \n {WrappedBigNumber.from(tokenSize).formatNumberWithTooltip({\n isShowTBMK: true,\n })}\n \n
\n
\n \n {WrappedBigNumber.from(tokenSum).formatNumberWithTooltip({\n isShowTBMK: true,\n })}\n \n
\n
\n
\n {[...item.dexes].reverse().map((item, i) => (\n \n ))}\n
\n
\n
\n );\n })}\n
\n
\n {!loading && (\n
\n {dexNames?.map((item, i) => (\n
\n
\n {item}\n
\n ))}\n
\n )}\n
\n
\n );\n};\nexport default SpotOrderbook;\n","import { usePrevious } from 'ahooks';\nimport { useEffect, useState } from 'react';\n\nexport const useTrend = (value: number | undefined) => {\n const [_value, set_Value] = useState(undefined);\n\n const prevValue = usePrevious(_value);\n useEffect(() => {\n if (_value !== value) {\n set_Value(value);\n }\n }, [_value, value]);\n if (prevValue === undefined || value === undefined) {\n return 'up';\n }\n return value > prevValue ? 'up' : 'down';\n};\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconEmptyDash = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 387,\n height: 2,\n viewBox: \"0 0 387 2\",\n fill: \"none\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 1H387\",\n stroke: \"#00BFBF\",\n strokeDasharray: \"2 2\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconEmptyDash);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_empty_dash.9025a02bebf15a22280cc3890151bd73.svg\";","var _path, _path2, _path3, _path4, _path5, _path6;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconClick24 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 20,\n viewBox: \"0 0 20 20\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.2599 15.0036C11.9691 15.5464 11.6632 16.1143 11.3422 16.7074C11.2087 16.9545 10.9275 17.1566 10.641 17.1976C10.2406 17.2549 9.75562 16.9408 9.66871 16.5404C9.13876 14.0933 8.60273 11.6138 8.06063 9.10191C8.02613 8.94208 8.06226 8.76044 8.14071 8.61981C8.34058 8.26076 8.73186 8.04397 9.14397 8.12925C11.519 8.62166 13.9322 9.12133 16.3836 9.62828C16.5765 9.66821 16.7146 9.71389 16.7979 9.76532C16.977 9.87622 17.1 10.0419 17.1671 10.2624C17.3067 10.7214 17.099 11.1214 16.6925 11.35C16.1686 11.6447 15.6307 11.9458 15.0789 12.2533C15.0775 12.2541 15.0763 12.2551 15.0754 12.2565C15.0745 12.2578 15.0739 12.2593 15.0737 12.2609C15.0735 12.2625 15.0737 12.2641 15.0743 12.2656C15.0748 12.2671 15.0757 12.2685 15.0769 12.2696C15.9079 13.0417 16.7634 13.8329 17.6436 14.6433C17.7504 14.7416 17.826 14.8321 17.8705 14.9147C18.032 15.2162 18.0196 15.6114 17.8149 15.8946C17.7715 15.9545 17.6852 16.0478 17.5561 16.1745C17.1105 16.6111 16.6783 17.0435 16.2592 17.4717C16.1249 17.6089 16.007 17.7022 15.9057 17.7517C15.6326 17.8851 15.2833 17.874 15.0193 17.7126C14.9509 17.6707 14.8589 17.5915 14.7433 17.475C13.9206 16.6466 13.0969 15.8222 12.2722 15.0017C12.2714 15.0008 12.2703 15.0002 12.2691 14.9998C12.268 14.9994 12.2667 14.9993 12.2655 14.9995C12.2643 14.9997 12.2632 15.0002 12.2622 15.0009C12.2612 15.0016 12.2604 15.0025 12.2599 15.0036Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.95809 2H8.90535C8.55352 2 8.26831 2.28521 8.26831 2.63704V4.68457C8.26831 5.0364 8.55352 5.32161 8.90535 5.32161H8.95809C9.30992 5.32161 9.59513 5.0364 9.59513 4.68457V2.63704C9.59513 2.28521 9.30992 2 8.95809 2Z\",\n fill: \"#13ECC8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.4796 3.73665C14.0769 3.83008 14.2442 4.53223 13.8487 4.94661C13.3954 5.42144 12.9367 5.90061 12.4728 6.38411C12.2328 6.63444 11.8686 6.64323 11.6013 6.45443C11.4907 6.3763 11.3605 6.22493 11.3162 6.09473C11.2116 5.787 11.2684 5.5243 11.4868 5.30664C11.7997 4.99501 12.2425 4.55154 12.8152 3.97624C13.0056 3.78483 13.2172 3.69564 13.4796 3.73665Z\",\n fill: \"#13ECC8\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.38421 6.31414C5.62608 6.55795 6.02712 6.60125 6.31032 6.3991C6.3815 6.34832 6.44487 6.29667 6.50042 6.24415C6.75335 6.00522 6.67881 5.59799 6.43988 5.36948C5.99066 4.94044 5.52582 4.49676 5.04535 4.03842C5.01279 4.00717 4.98089 3.97484 4.94964 3.94142C4.84743 3.83204 4.72167 3.76824 4.57236 3.75001C4.29372 3.71551 4.06683 3.87273 3.91742 4.09344C3.78243 4.29265 3.76182 4.50207 3.85557 4.72169C3.88986 4.80177 3.9746 4.90854 4.1098 5.042C4.52299 5.44934 4.9478 5.87338 5.38421 6.31414Z\",\n fill: \"#13ECC8\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.67912 9.52867C2.36337 9.52867 2.0896 9.31773 2.01799 9.01695C1.94149 8.69469 2.11499 8.35842 2.42391 8.23798C2.50334 8.20716 2.60816 8.19197 2.73837 8.19241C3.33277 8.19436 3.96536 8.19469 4.63615 8.19338C4.88973 8.19306 5.10458 8.33401 5.23739 8.54853C5.36955 8.76109 5.35751 8.99937 5.22795 9.21259C5.09904 9.42396 4.89538 9.52943 4.61695 9.529C3.95288 9.52813 3.30694 9.52802 2.67912 9.52867Z\",\n fill: \"#13ECC8\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.45714 12.4037C6.72342 12.1374 6.74783 11.6247 6.44151 11.3779C6.14529 11.139 5.73839 11.1218 5.45844 11.4014C4.97841 11.881 4.514 12.3457 4.06521 12.7956C3.75369 13.1081 3.81684 13.6442 4.17622 13.8812C4.45616 14.0658 4.84093 14.0192 5.08116 13.7793L6.45714 12.4037Z\",\n fill: \"#13ECC8\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconClick24);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_click_24.9063ea751dc7e30398c5660b7c8afb2e.svg\";","/**\n * @description Component-SpotRoute\n */\nimport './index.less';\n\nimport Loading from '@/components/Loading';\nimport TokenLogo from '@/components/TokenLogo';\nimport { spotDexInfos } from '@/constants/spot';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useSimulateBestAmount } from '@/features/spot/hooks';\nimport { useSimulateSwap, useSpotTokens } from '@/features/spot/query';\nimport { useSpotState } from '@/features/spot/store';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { Route } from '@synfutures/sdks-aggregator';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport useMsgIds, { MsgInfo } from '@/spot/useMsg';\nimport { bothNative } from '@/utils/spot';\nimport BN from 'bignumber.js';\nimport { ReactComponent as IconEmpty } from './assets/icon_empty.svg';\nimport { ReactComponent as IconEmptyDash } from './assets/icon_empty_dash.svg';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n middleTokenAddr?: string;\n routesArray?: Route[][];\n}\nconst SpotRoute: FC = function () {\n const { data: simulation, isLoading } = useSimulateSwap();\n const middleTokenAddr =\n simulation?.data?.tokens && simulation?.data?.tokens?.length > 1 ? simulation?.data?.tokens[1] : undefined;\n const routesArray = useMemo(() => simulation?.data?.route || [], [simulation]);\n const { sellAmount, token1: buyToken, token0: sellToken } = useSpotState();\n const chainId = useChainId();\n const { bestAmount: simulatedBuyAmount, isFetched } = useSimulateBestAmount();\n const amountBn = useMemo(() => WrappedBigNumber.from(sellAmount || 0), [sellAmount]);\n const buyAmountBn = useMemo(() => WrappedBigNumber.from(simulatedBuyAmount || 0), [simulatedBuyAmount]);\n const { data: fullTokens } = useSpotTokens({ chainId });\n const nativeWrappedNativePair = useMemo(() => bothNative(sellToken, buyToken), [buyToken, sellToken]);\n const middleToken = useMemo(() => {\n return routesArray.length > 1\n ? fullTokens?.find((t) => t.address.toLowerCase() === middleTokenAddr?.toLowerCase())\n : undefined;\n }, [fullTokens, middleTokenAddr, routesArray]);\n const msgIds = useMsgIds();\n const msgIdsShownInRoute = useMemo(() => msgIds.filter((id) => MsgInfo[id].shownInRoute), [msgIds]);\n const hasSplitRoute = useMemo(() => routesArray?.some((a) => a.length > 1), [routesArray]);\n\n const { t } = useTranslation();\n\n return (\n // }\n // className=\"syn-spot-route\"\n // onCancel={() => setSimulationModalOpen(false)}\n // onClose={() => setSim0ulationModalOpen(false)}\n // open={open}>\n
\n
{t('common.spot.route')}
\n 1, split: hasSplitRoute })}>\n
\n {sellToken && }\n
\n {!amountBn.eq(0) && {amountBn.formatNumberWithTooltip({ isShowTBMK: true })}}\n {sellToken?.symbol}\n
\n
\n {/* */}\n {routesArray?.map((routes, index) => {\n const formatRoutes = routes\n .map((route) => ({\n ...route,\n formatRatio: WrappedBigNumber.from(route.ratio).formatNormalNumberString(2, true, BN.ROUND_HALF_UP),\n }))\n .sort((a, b) => WrappedBigNumber.from(b.formatRatio).comparedTo(WrappedBigNumber.from(a.formatRatio)));\n const totalRatio = _.reduce(\n formatRoutes,\n (current, route) => WrappedBigNumber.from(route.formatRatio).add(current),\n WrappedBigNumber.from(0),\n );\n\n // if total ratio is not 1, add the difference to the last route\n if (totalRatio.notEq(1)) {\n const difference = WrappedBigNumber.from(1).min(totalRatio);\n formatRoutes[0].formatRatio = WrappedBigNumber.from(formatRoutes[0].formatRatio)\n .add(difference)\n .formatNormalNumberString(2, true, BN.ROUND_HALF_UP);\n }\n\n // if there is a route with 0 value, set it to 1 and the max value to the min of 1\n const zeroValueIndex = formatRoutes.findIndex((route) => WrappedBigNumber.from(route.formatRatio).eq(0));\n if (zeroValueIndex !== -1) {\n // const newRoutes = _.cloneDeep(formatRoutes);\n const maxValueIndex = formatRoutes.reduce(\n (maxIndex, route, currentIndex, array) =>\n WrappedBigNumber.from(route.formatRatio).gt(WrappedBigNumber.from(array[maxIndex].formatRatio))\n ? currentIndex\n : maxIndex,\n 0,\n );\n formatRoutes[maxValueIndex].formatRatio = WrappedBigNumber.from(formatRoutes[maxValueIndex].formatRatio)\n .min(0.01)\n .formatNormalNumberString(2, true, BN.ROUND_HALF_UP);\n formatRoutes[zeroValueIndex].formatRatio = WrappedBigNumber.from(0.01).formatNormalNumberString(\n 2,\n true,\n BN.ROUND_HALF_UP,\n );\n }\n\n return (\n \n {formatRoutes.map((route, index) => (\n
\n \n \n {WrappedBigNumber.from(route.formatRatio).formatPercentageString(true, 0)}\n \n
\n \n {_.get(spotDexInfos, [route.poolType])?.name}(\n {WrappedBigNumber.from(route.fee).formatPercentageString()})\n
\n
\n {((index !== 0 && index !== routes.length - 1) || routes?.length === 1) && (\n \n )}\n
\n ))}\n
\n );\n })}\n {isLoading ? (\n
\n
\n
\n \n
\n
\n ) : (\n WrappedBigNumber.from(sellAmount || 0).eq(0) && (\n
\n {/* */}\n \n \n \n
\n )\n )}\n {nativeWrappedNativePair && simulation?.nativeSwap &&
}\n {msgIdsShownInRoute.length > 0 &&\n msgIdsShownInRoute.map((id) => {\n const { i18nId, i18nIdInRoute } = MsgInfo[id];\n return (\n
\n {t(i18nIdInRoute || i18nId)}\n
\n );\n })}\n {middleToken && routesArray?.length > 1 && (\n
\n \n {middleToken?.symbol}\n
\n )}\n
\n {buyToken && }\n
\n {!buyAmountBn.eq(0) && isFetched && (\n {buyAmountBn?.formatNumberWithTooltip({ isShowTBMK: true })}\n )}\n {buyToken?.symbol}\n
\n
\n
\n
\n // \n );\n};\n\nexport default SpotRoute;\n","/**\n * @description Component-SpotSwap\n */\nimport './index.less';\n\nimport { useSwapRefresh } from '@/features/spot/hooks';\nimport WalletCardWrapper from '@/pages/components/WalletStatus/WalletCardWrapper';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport SpotSwapDetail from './SpotSwapDetail';\nimport SpotSwapFormContent from './SpotSwapFormContent';\nimport SwapFooter from './SwapFooter';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\n\nconst SpotSwap: FC = function ({}) {\n const { t } = useTranslation();\n const { handleRefresh } = useSwapRefresh();\n return (\n
\n }>\n \n \n \n
\n );\n};\n\nexport default SpotSwap;\n","/**\n * @description Component-Spot\n */\nimport './index.less';\n\nimport { Default, Mobile } from '@/components/MediaQuery';\nimport SpotGlobalEffect from '@/features/spot/globalEffect';\nimport { FC } from 'react';\nimport SpotMobile from './Mobile';\nimport SpotChart from './SpotChart';\nimport SpotDexTable from './SpotDexTable';\nimport SpotHistory from './SpotHistory';\nimport SpotInfo from './SpotInfo';\nimport SpotOrderbook from './SpotOrderbook';\nimport SpotRoute from './SpotRoute';\nimport SpotSwap from './SpotSwap';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst Spot: FC = function ({}) {\n return (\n
\n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n \n \n
\n );\n};\n\nexport default Spot;\n","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconCalendar20 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 20,\n height: 21,\n viewBox: \"0 0 20 21\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.66667 12.1667C6.20643 12.1667 5.83333 12.5398 5.83333 13V14.6667C5.83333 15.1269 6.20643 15.5 6.66667 15.5H8.33333C8.79357 15.5 9.16667 15.1269 9.16667 14.6667V13C9.16667 12.5398 8.79357 12.1667 8.33333 12.1667H6.66667Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.5 3C7.5 2.53976 7.1269 2.16666 6.66667 2.16666C6.20643 2.16666 5.83333 2.53976 5.83333 3V3.83333H5C4.33696 3.83333 3.70107 4.09672 3.23223 4.56556C2.76339 5.0344 2.5 5.67029 2.5 6.33333V16.3333C2.5 16.9964 2.76339 17.6323 3.23223 18.1011C3.70107 18.5699 4.33696 18.8333 5 18.8333H15C15.663 18.8333 16.2989 18.5699 16.7678 18.1011C17.2366 17.6323 17.5 16.9964 17.5 16.3333V6.33333C17.5 5.67029 17.2366 5.0344 16.7678 4.56556C16.2989 4.09672 15.663 3.83333 15 3.83333H14.1667V3C14.1667 2.53976 13.7936 2.16666 13.3333 2.16666C12.8731 2.16666 12.5 2.53976 12.5 3V3.83333H7.5V3ZM5 5.5H5.83333V6.33333C5.83333 6.79357 6.20643 7.16666 6.66667 7.16666C7.1269 7.16666 7.5 6.79357 7.5 6.33333V5.5H12.5V6.33333C12.5 6.79357 12.8731 7.16666 13.3333 7.16666C13.7936 7.16666 14.1667 6.79357 14.1667 6.33333V5.5H15C15.221 5.5 15.433 5.5878 15.5893 5.74408C15.7455 5.90036 15.8333 6.11232 15.8333 6.33333V8.83333H4.16667V6.33333C4.16667 6.11232 4.25446 5.90036 4.41074 5.74408C4.56702 5.5878 4.77899 5.5 5 5.5ZM4.16667 10.5H15.8333V16.3333C15.8333 16.5543 15.7455 16.7663 15.5893 16.9226C15.433 17.0789 15.221 17.1667 15 17.1667H5C4.77899 17.1667 4.56702 17.0789 4.41074 16.9226C4.25446 16.7663 4.16667 16.5543 4.16667 16.3333V10.5Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconCalendar20);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_calendar_20.c8e4ce20e60d6fdc13149baf4598bcf3.svg\";","/**\n * @description Component-TGPBannerCorner\n */\nimport './index.less';\n\nimport { useDebounceFn } from 'ahooks';\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { FETCHING_STATUS, GlobalModalType } from '@/constants';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { getTGPLuckyDrawTicket } from '@/features/tgp/actions';\nimport {\n useCurrentTGPWeek,\n useIsMaster,\n useTGPTwitterLink,\n useTGPUserStatus,\n useTGPWeekState,\n useUserJWTToken,\n} from '@/features/tgp/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n\nimport { ReactComponent as IconClick_24 } from './assets/icon_click_24.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPBannerCorner: FC = function ({}) {\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const toggleModal = useToggleModal(GlobalModalType.LUCK_TICKET);\n const currentWeek = useCurrentTGPWeek();\n const userAddr = useUserAddr();\n const weekState = useTGPWeekState(userAddr, currentWeek);\n const isMaster = useIsMaster(userAddr);\n const twitterLink = useTGPTwitterLink(currentWeek, 'luckyDraw', 'shareToGetTicket', isMaster);\n const jwt = useUserJWTToken(userAddr);\n const userStatus = useTGPUserStatus(userAddr);\n const chainId = useChainId();\n\n const { run: onBtnClick } = useDebounceFn(\n async () => {\n window.open(twitterLink, '_blank');\n if (!weekState?.ticket && userAddr) {\n console.log('🚀 ~ weekState:', weekState);\n await dispatch(getTGPLuckyDrawTicket({ userAddr, chainId }));\n setTimeout(() => {\n toggleModal(true);\n }, 500);\n }\n },\n {\n wait: 200,\n },\n );\n\n if (!jwt || userStatus === FETCHING_STATUS.INIT) return null;\n return (\n
\n
\n
\n {t('tgp.banner.shareToWin')}\n {t('tgp.banner.luckyDraw')}\n
\n
\n \n
\n
\n
\n );\n};\n\nexport default TGPBannerCorner;\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconTrophy24 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 25,\n viewBox: \"0 0 24 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_134_1686)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.8889 3.61115H8.11112C7.19098 3.61115 6.44098 4.36809 6.47571 5.28475C6.48265 5.46878 6.48959 5.65281 6.50001 5.83336H2.83335C2.37155 5.83336 2.00002 6.20489 2.00002 6.66669C2.00002 9.88196 3.16321 12.1181 4.72571 13.6354C6.2639 15.1319 8.1389 15.8854 9.52084 16.2674C10.3333 16.4931 10.8889 17.1701 10.8889 17.8507C10.8889 18.5764 10.2986 19.1667 9.57292 19.1667H8.66667C8.05209 19.1667 7.55556 19.6632 7.55556 20.2778C7.55556 20.8924 8.05209 21.3889 8.66667 21.3889H15.3333C15.9479 21.3889 16.4444 20.8924 16.4444 20.2778C16.4444 19.6632 15.9479 19.1667 15.3333 19.1667H14.4271C13.7014 19.1667 13.1111 18.5764 13.1111 17.8507C13.1111 17.1701 13.6632 16.4896 14.4792 16.2674C15.8646 15.8854 17.7396 15.1319 19.2778 13.6354C20.8368 12.1181 22 9.88196 22 6.66669C22 6.20489 21.6284 5.83336 21.1666 5.83336H17.5C17.5104 5.65281 17.5173 5.47225 17.5243 5.28475C17.559 4.36809 16.809 3.61115 15.8889 3.61115ZM3.69794 7.50002H6.62848C6.94446 10.6285 7.64237 12.7188 8.43056 14.1181C7.56598 13.7361 6.66668 13.1979 5.8889 12.441C4.77779 11.3611 3.87502 9.8021 3.70141 7.50002H3.69794ZM18.1146 12.441C17.3368 13.1979 16.4375 13.7361 15.5729 14.1181C16.3611 12.7188 17.059 10.6285 17.375 7.50002H20.3055C20.1285 9.8021 19.2257 11.3611 18.118 12.441H18.1146Z\",\n fill: \"white\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_134_1686\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 20,\n height: 17.7777,\n fill: \"white\",\n transform: \"translate(2.00002 3.61115)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconTrophy24);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_trophy_24.652950a6ee74116ad9b543fd9744ccbc.svg\";","/**\n * @description Component-TGPBannerLeft\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useTGPDappConfig } from '@/features/tgp/hooks';\n\nimport { CHAIN_ID } from '@/constants/chain';\nimport { useDappChainConfig } from '@/hooks/web3/useChain';\nimport { ReactComponent as IconCalendar_20 } from './assets/icon_calendar_20.svg';\nimport { ReactComponent as IconTrophy_24 } from './assets/icon_trophy_24.svg';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPBannerLeft: FC = function ({}) {\n const { t } = useTranslation();\n const config = useTGPDappConfig();\n const dappConfig = useDappChainConfig(CHAIN_ID.BLAST);\n return (\n
\n
\n

\n {t('tgp.banner.title1')}\n \n \n {t('tgp.banner.title2')}\n \n

\n

\n \n {' '}\n \n {t('tgp.banner.leftPrize')}\n \n {config.prize}\n

\n
\n \n {t('tgp.banner.competitionPeriod')}\n \n {t('tgp.banner.time')}\n \n
\n
\n
\n );\n};\n\nexport default TGPBannerLeft;\n","import moment from 'moment';\nimport { useTranslation } from 'react-i18next';\n\nimport { TGP_SHARED_JOIN_STATUS } from '@/constants/storage';\nimport { useTGPDappConfig } from '@/features/tgp/hooks';\n\nexport function useTGPWeek(week: number | undefined):\n | {\n weekStr: string;\n weekDates: string;\n }\n | undefined {\n const { t } = useTranslation();\n const config = useTGPDappConfig();\n if (!week || !config) return;\n const weekStr = t(`tgp.week.week${week}`);\n let weekDates = '';\n const weekConfig = config.weeks.find((w) => w.week === week);\n if (weekConfig) {\n weekDates = `${moment.utc(weekConfig.startTs).local().format('MM/DD')}~${moment\n .utc(weekConfig.endTs)\n .local()\n .format('MM/DD')}`;\n }\n return { weekStr, weekDates };\n}\n\nexport function getWeekNumByWeekStr(weekStr: string): number {\n return parseInt(weekStr.replace('week', ''), 10);\n}\n\nexport function getShareStorageKey(\n type: 'luckyDraw' | 'rank',\n isMaster: boolean,\n week: number,\n userAddr: string,\n modalStatus: 'claim' | 'shareToGetTicket' = 'claim',\n): string {\n return `${TGP_SHARED_JOIN_STATUS}-${type}-${isMaster ? 'master' : 'open'}-week${week}-${modalStatus}-${userAddr}`;\n}\n\nexport function getRandomTwitterClientId(ids: string[]): string {\n const randomIndex = Math.floor(Math.random() * ids.length);\n return ids[randomIndex];\n}\n","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconClose32 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 11.3137C0 9.19198 0.842852 7.15715 2.34314 5.65686L5.65685 2.34315C7.15715 0.842855 9.19198 0 11.3137 0H28C30.2091 0 32 1.79086 32 4V20.6863C32 22.808 31.1571 24.8429 29.6569 26.3431L26.3431 29.6569C24.8429 31.1571 22.808 32 20.6863 32H4C1.79086 32 0 30.2091 0 28V11.3137Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.275 11.6083C22.7958 11.0875 22.7958 10.2417 22.275 9.72083C21.7542 9.19999 20.9083 9.19999 20.3875 9.72083L16 14.1125L11.6083 9.72499C11.0875 9.20416 10.2417 9.20416 9.72083 9.72499C9.19999 10.2458 9.19999 11.0917 9.72083 11.6125L14.1125 16L9.72499 20.3917C9.20416 20.9125 9.20416 21.7583 9.72499 22.2792C10.2458 22.8 11.0917 22.8 11.6125 22.2792L16 17.8875L20.3917 22.275C20.9125 22.7958 21.7583 22.7958 22.2792 22.275C22.8 21.7542 22.8 20.9083 22.2792 20.3875L17.8875 16L22.275 11.6083Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconClose32);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_close_32.49f08be6dbfe8ed54dc3185aa929edf6.svg\";","var _path, _path2, _path3;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgPopupDecorLeft = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 144,\n height: 64,\n viewBox: \"0 0 144 64\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M67.1716 64C68.9534 64 69.8457 61.8457 68.5858 60.5858L58.3431 50.3431C56.8428 48.8429 54.808 48 52.6863 48H0V64H67.1716Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M106.343 50.3431C104.843 48.8429 102.808 48 100.686 48L76.8284 48C75.0466 48 74.1543 50.1543 75.4142 51.4142L85.6569 61.6569C87.1571 63.1572 89.192 64 91.3137 64H115.172C116.953 64 117.846 61.8457 116.586 60.5858L106.343 50.3431Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.92172e-05 32C9.53041e-05 21.3333 3.03615e-05 10.6667 0 0H112L140.586 28.5858C141.846 29.8457 140.953 32 139.172 32H5.92172e-05Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgPopupDecorLeft);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/popup_decor_left.78858c3ad417c69db012e3321936942d.svg\";","var _path, _path2, _path3;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgPopupDecorRight = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 144,\n height: 64,\n viewBox: \"0 0 144 64\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M84.8284 64C83.0466 64 82.1543 61.8457 83.4142 60.5858L93.6569 50.3431C95.1572 48.8429 97.192 48 99.3137 48H144V64H84.8284Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M37.6569 50.3431C39.1571 48.8429 41.192 48 43.3137 48L67.1716 48C68.9534 48 69.8457 50.1543 68.5858 51.4142L58.3431 61.6569C56.8429 63.1572 54.808 64 52.6863 64H28.8284C27.0466 64 26.1543 61.8457 27.4142 60.5858L37.6569 50.3431Z\",\n fill: \"white\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M144 0H32L3.41426 28.5858C2.15433 29.8457 3.04667 32 4.82848 32H144V0Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgPopupDecorRight);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/popup_decor_right.9fec23839ee53be77574c240327cff2b.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconShare16 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 12,\n height: 13,\n viewBox: \"0 0 12 13\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_111_2005)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.99609 2.1797C6.77149 2.27931 6.625 2.50392 6.625 2.75002V4.00001H4.43751C2.53907 4.00001 1.00002 5.53907 1.00002 7.4375C1.00002 9.65039 2.59181 10.6387 2.95704 10.8379C3.00587 10.8652 3.06056 10.875 3.11524 10.875C3.32813 10.875 3.50001 10.7012 3.50001 10.4902C3.50001 10.3437 3.41602 10.209 3.3086 10.1094C3.12501 9.93555 2.87501 9.59375 2.87501 9C2.87501 7.96485 3.71485 7.12501 4.75001 7.12501H6.625V8.375C6.625 8.6211 6.76953 8.8457 6.99609 8.94531C7.22266 9.04492 7.48437 9.00391 7.66797 8.83984L10.793 6.02735C10.9238 5.90821 11 5.74024 11 5.56251C11 5.38477 10.9258 5.21681 10.793 5.09767L7.66797 2.28517C7.57841 2.20407 7.46713 2.15089 7.34777 2.13215C7.22842 2.11342 7.10619 2.12994 6.99609 2.1797Z\",\n fill: \"#36717D\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_111_2005\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 9.99998,\n height: 9.99998,\n fill: \"white\",\n transform: \"translate(1.00002 1.50002)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconShare16);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_share_16.ed927ade3fb1086d9afeeffc3e0d56b3.svg\";","/**\n * @description Component-TGPModal\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\n\nimport Modal from '@/components/Modal';\nimport { ReactComponent as CloseIcon } from '@/pages/Odyssey/assets/svg/icon_close_32.svg';\n\nimport { ReactComponent as DecorLeft } from './assets/popup_decor_left.svg';\nimport { ReactComponent as DecorRight } from './assets/popup_decor_right.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n open: boolean;\n onCancel: () => void;\n title: React.ReactNode;\n desc?: React.ReactNode;\n centerTitle: string;\n centerNum: string;\n}\nconst TGPModal: FC = function ({\n open,\n onCancel,\n title,\n children,\n className,\n desc,\n centerTitle,\n centerNum,\n}) {\n return (\n onCancel()}\n className={classNames('syn-tgp-modal', className)}>\n
\n
\n
{title}
\n onCancel()} />\n
\n {desc &&
{desc}
}\n
\n
\n \n
\n
\n

{centerTitle}

\n

{centerNum}

\n
\n
\n \n
\n
\n
{children}
\n
\n \n );\n};\n\nexport default TGPModal;\n","/**\n * @description Component-TGPModalDiscordJoin\n */\nimport './index.less';\n\n// import { Button } from 'antd';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { TGP_LUCK_USER_STATUS } from '@/constants/tgp';\nimport { useTGPDappConfig } from '@/features/tgp/hooks';\n// import { useUserAddr } from '@/hooks/web3/useChain';\nimport OdysseyButton from '@/pages/Odyssey/components/OdysseyButton';\n// import { ReactComponent as IconRefresh } from '@/pages/TGP/assets/svg/icon_refresh_24.svg';\n// import { getShareStorageKey } from '@/utils/tgp';\ninterface IPropTypes {\n className?: string;\n onConfirm: () => void;\n type?: 'luckyDraw' | 'rank';\n status: TGP_LUCK_USER_STATUS | undefined;\n statusChange: (status: TGP_LUCK_USER_STATUS) => void;\n week: number;\n modalStatus: 'claim' | 'shareToGetTicket';\n isMaster: boolean;\n}\nconst TGPModalDiscordJoin: FC = function ({\n // onConfirm,\n status,\n // statusChange,\n // type = 'luckyDraw',\n // week,\n // isMaster,\n}) {\n // const userAddr = useUserAddr();\n const tgpConfig = useTGPDappConfig();\n const { t } = useTranslation();\n if (!status || status < TGP_LUCK_USER_STATUS.CONFIRMED) {\n return null;\n }\n return (\n
\n
\n {t('tgp.modal.joinTitle')}\n
{t('tgp.modal.joinSubtitle')}
\n
\n
\n {status === TGP_LUCK_USER_STATUS.CONFIRMED && (\n {\n // if (userAddr) {\n // const storageKey = getShareStorageKey(type, isMaster, week, userAddr);\n // statusChange(TGP_LUCK_USER_STATUS.DISCORD_CONFIRMED);\n // localStorage.setItem(storageKey, TGP_LUCK_USER_STATUS.JOINED.toString());\n // }\n // }}\n href={tgpConfig.telegramGroup}\n target=\"_blank\"\n className=\"primary golden\">\n {t('tgp.modal.join')}\n \n )}\n {/* {status > TGP_LUCK_USER_STATUS.CONFIRMED && (\n <>\n {\n statusChange(TGP_LUCK_USER_STATUS.CONFIRMED);\n }}\n type=\"text\"\n icon={}\n />\n\n {\n if (userAddr) {\n statusChange(TGP_LUCK_USER_STATUS.DISCORD_CONFIRMED);\n\n const storageKey = getShareStorageKey(type, isMaster, week, userAddr);\n localStorage.setItem(storageKey, TGP_LUCK_USER_STATUS.DISCORD_CONFIRMED.toString());\n onConfirm();\n }\n }}\n className=\"primary\">\n {t('tgp.modal.confirm')}\n \n \n )} */}\n
\n
\n );\n};\n\nexport default TGPModalDiscordJoin;\n","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconHandshake32 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M27.2002 15.6475V15.8125L30.6852 12.3275C31.7802 11.2325 31.7802 9.46249 30.6852 8.36749L26.7802 4.46749C25.6852 3.37249 23.9152 3.37249 22.8202 4.46749L20.8152 6.47249C20.6802 6.45749 20.5402 6.44749 20.4002 6.44749H14.8002C12.9452 6.44749 11.4202 7.84749 11.2202 9.64749H11.2002V15.6475C11.2002 16.7525 12.0952 17.6475 13.2002 17.6475C14.3052 17.6475 15.2002 16.7525 15.2002 15.6475V11.2475H23.2002C25.4102 11.2475 27.2002 13.0375 27.2002 15.2475V15.6475Z\",\n fill: \"#E5B85C\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.7999 15.6475V12.8525H22.7999C24.3449 12.8525 25.5949 14.1025 25.5999 15.6425V15.6625C25.5949 17.0225 24.6249 18.1525 23.3399 18.4025C23.7499 18.8325 23.9999 19.4125 23.9999 20.0525C23.9999 21.3775 22.9249 22.4525 21.5999 22.4525H21.4649C21.5499 22.7025 21.5999 22.9725 21.5999 23.2525C21.5999 24.5775 20.5249 25.6525 19.1999 25.6525H11.1999C11.1549 25.6525 11.1099 25.6475 11.0649 25.6475L9.1799 27.5325C8.0849 28.6275 6.3149 28.6275 5.2199 27.5325L1.3149 23.6275C0.219902 22.5325 0.219902 20.7625 1.3149 19.6675L4.9749 16.0075L5.7999 13.1275C6.3099 11.3325 7.8049 10.0275 9.5999 9.71747V15.6475C9.5999 17.6375 11.2099 19.2475 13.1999 19.2475C15.1899 19.2475 16.7999 17.6375 16.7999 15.6475Z\",\n fill: \"#D6855C\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconHandshake32);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_handshake_32.b125a9709f52024b31680d388887e6dc.svg\";","/**\n * @description Component-TGPModalTwitterShare\n */\nimport './index.less';\n\n// import { Button } from 'antd';\nimport { FC, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { TGP_LUCK_USER_STATUS, TGP_WAIT_TIME } from '@/constants/tgp';\nimport { useTGPTwitterLink } from '@/features/tgp/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport OdysseyButton from '@/pages/Odyssey/components/OdysseyButton';\n// import { ReactComponent as IconRefresh } from '@/pages/TGP/assets/svg/icon_refresh_24.svg';\nimport { ReactComponent as IconShare } from '@/pages/TGP/assets/svg/icon_share_16.svg';\nimport { getShareStorageKey } from '@/utils/tgp';\ninterface IPropTypes {\n className?: string;\n type: 'luckyDraw' | 'rank';\n status: TGP_LUCK_USER_STATUS | undefined;\n statusChange: (status: TGP_LUCK_USER_STATUS) => void;\n week: number;\n modalStatus: 'claim' | 'shareToGetTicket';\n isMaster: boolean;\n}\nconst TGPModalTwitterShare: FC = function ({\n status,\n statusChange,\n type = 'luckyDraw',\n week,\n modalStatus,\n isMaster,\n}) {\n const { t } = useTranslation();\n const userAddr = useUserAddr();\n const twitterLink = useTGPTwitterLink(week, type, modalStatus, isMaster);\n const [isSharing, setIsSharing] = useState(false);\n console.log('🚀 ~ twitterLink:', { twitterLink, week, type, modalStatus, isMaster });\n if (status && status >= TGP_LUCK_USER_STATUS.CONFIRMED) {\n return null;\n }\n return (\n
\n {t('tgp.modal.shareLine')}\n
\n {status === TGP_LUCK_USER_STATUS.INIT && (\n {\n if (userAddr) {\n const storageKey = getShareStorageKey(type, isMaster, week, userAddr);\n setIsSharing(true);\n setTimeout(() => {\n setIsSharing(false);\n statusChange(TGP_LUCK_USER_STATUS.CONFIRMED);\n localStorage.setItem(storageKey, TGP_LUCK_USER_STATUS.CONFIRMED.toString());\n }, TGP_WAIT_TIME);\n }\n }}\n href={twitterLink}\n target=\"_blank\"\n className=\"primary golden\">\n {!isSharing && }\n {isSharing ? t('tgp.modal.sharing') : t('tgp.modal.share')}\n \n )}\n {/* {status === TGP_LUCK_USER_STATUS.SHARED && (\n <>\n {\n statusChange(TGP_LUCK_USER_STATUS.INIT);\n }}\n type=\"text\"\n icon={}\n />\n {\n if (userAddr) {\n const storageKey = getShareStorageKey(type, isMaster, week, userAddr);\n statusChange(TGP_LUCK_USER_STATUS.CONFIRMED);\n localStorage.setItem(storageKey, TGP_LUCK_USER_STATUS.CONFIRMED.toString());\n }\n }}\n className=\"primary\">\n {t('tgp.modal.confirm')}\n \n \n )} */}\n
\n
\n );\n};\n\nexport default TGPModalTwitterShare;\n","/**\n * @description Component-TGPTwitterDiscord\n */\n\nimport React, { FC, useEffect, useState } from 'react';\n\nimport { TGP_LUCK_USER_STATUS } from '@/constants/tgp';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { getShareStorageKey } from '@/utils/tgp';\n\nimport TGPModalDiscordJoin from '../TGPModalDiscordJoin';\nimport TGPModalTwitterShare from '../TGPModalTwitterShare';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n type: 'luckyDraw' | 'rank';\n onConfirm: () => void;\n week: number;\n modalStatus: 'claim' | 'shareToGetTicket';\n isMaster: boolean;\n}\nconst TGPTwitterDiscord: FC = function ({\n type = 'luckyDraw',\n onConfirm,\n week,\n modalStatus = 'claim',\n isMaster,\n}) {\n const userAddr = useUserAddr();\n const [status, setStatus] = useState();\n useEffect(() => {\n if (userAddr && week) {\n const storageKey = getShareStorageKey(type, isMaster, week, userAddr);\n const userStatus = localStorage.getItem(storageKey);\n setStatus(Number(userStatus || 1) as TGP_LUCK_USER_STATUS);\n }\n }, [userAddr]);\n return (\n <>\n \n \n \n );\n};\n\nexport default TGPTwitterDiscord;\n","/**\n * @description Component-TGPClaimModal\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { TGP_LUCK_USER_STATUS } from '@/constants/tgp';\nimport { useTGPDappConfig } from '@/features/tgp/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { formatNumber } from '@/utils/numberUtil';\nimport { getShareStorageKey, useTGPWeek } from '@/utils/tgp';\n\nimport TGPModal from '..';\nimport TGPTwitterDiscord from '../TGPTwitterDiscord';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n open: boolean;\n toggleModal: (isOpen: boolean) => void;\n isMaster: boolean;\n week: number;\n rank?: number;\n prize?: number;\n}\nconst TGPRankClaimModal: FC = function ({ open, toggleModal, isMaster, week, rank, prize }) {\n const { t } = useTranslation();\n const userAddr = useUserAddr();\n const weekI18n = useTGPWeek(week);\n const tgpConfig = useTGPDappConfig();\n console.log('🚀 ~ tgpConfig:', tgpConfig);\n const type = 'rank';\n return (\n {\n if (userAddr) {\n const storageKey = getShareStorageKey(type, isMaster, week, userAddr);\n const status = Number(localStorage.getItem(storageKey) || 0);\n if (status === TGP_LUCK_USER_STATUS.JOINED) {\n localStorage.setItem(storageKey, TGP_LUCK_USER_STATUS.DISCORD_CONFIRMED.toString());\n }\n toggleModal(false);\n }\n }}\n desc={\n , span: }}\n />\n }\n title={t('tgp.modal.congrat')}\n centerTitle={t('tgp.modal.luckyDraw.centerTitle')}\n centerNum={`${formatNumber(prize || 0, 0)} ${tgpConfig.prizeCurrency}`}>\n
\n toggleModal(false)}\n type={type}\n week={week}\n isMaster={isMaster}\n modalStatus={'claim'}\n />\n
\n \n );\n};\n\nexport default TGPRankClaimModal;\n","/**\n * @description Component-Text\n */\nimport './index.less';\n\nimport { Typography } from 'antd';\nimport { TextProps } from 'antd/es/typography/Text';\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\n\nconst { Text: AntText } = Typography;\ninterface IPropTypes extends TextProps, React.RefAttributes {\n children?: React.ReactNode;\n className?: string;\n}\nconst SynText: FC = function (props) {\n return ;\n};\n\nexport default SynText;\n","/**\n * @description Component-TGPName\n */\nimport './index.less';\n\nimport { Jazzicon } from '@uktvs/jazzicon-react';\nimport React, { FC, useMemo } from 'react';\n\nimport SynText from '@/components/Text';\nimport { Tooltip } from '@/components/ToolTip';\nimport { useTGPMasterByAddr } from '@/features/tgp/hooks';\nimport { shortenAddress } from '@/utils/address';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n userAddr: string | undefined;\n size?: number;\n showTooltip?: boolean;\n ellipsisWidth?: number;\n}\nconst TGPName: FC = function ({ userAddr, size = 24, ellipsisWidth, showTooltip = true }) {\n const masterInfo = useTGPMasterByAddr(userAddr);\n\n const name = useMemo(() => {\n if (masterInfo?.twitterUsername) {\n return `@${masterInfo?.twitterUsername}`;\n }\n return userAddr;\n }, [masterInfo?.twitterUsername, userAddr]);\n\n if (!userAddr) {\n return null;\n }\n return (\n
\n {masterInfo?.twitterUsername ? (\n \n ) : (\n
\n \n
\n )}\n {masterInfo?.twitterUsername ? (\n \n {name}\n \n ) : (\n \n {shortenAddress(userAddr)}\n \n )}\n
\n );\n};\n\nexport default TGPName;\n","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgBtnSmallOff = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 80,\n height: 32,\n viewBox: \"0 0 80 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.3137 0C9.19199 0 7.15715 0.842863 5.65685 2.34317L2.34312 5.65694C0.842843 7.15723 0 9.19205 0 11.3138V24C0 28.4183 3.58172 32 8 32H68.6863C70.808 32 72.8429 31.1571 74.3431 29.6568L77.6569 26.3431C79.1572 24.8428 80 22.808 80 20.6862V8C80 3.58172 76.4183 0 72 0H11.3137Z\",\n fill: \"var(--step-btn-bg)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 28L46.3431 27.9998C47.404 27.9998 48.4214 27.5783 49.1716 26.8282L50.8284 25.1713C51.5786 24.4212 52.596 23.9998 53.6569 23.9998L71 24C73.2091 24 75 25.7909 75 28V29L74.3431 29.6568C72.8429 31.1571 70.808 32 68.6863 32H8C3.58172 32 0 28.4183 0 24V22C0 25.3137 2.68629 28 6 28Z\",\n fill: \"var(--step-btn-bar)\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgBtnSmallOff);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/btn_small_off.e8004275a51f58c16e2e003baa1a9d8c.svg\";","var _path, _path2, _path3;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconCheck32 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 11.3137C0 9.19198 0.842852 7.15715 2.34314 5.65686L5.65685 2.34315C7.15715 0.842855 9.19198 0 11.3137 0H24C28.4183 0 32 3.58172 32 8V20.6863C32 22.808 31.1571 24.8429 29.6569 26.3431L26.3431 29.6569C24.8429 31.1571 22.808 32 20.6863 32H8C3.58172 32 0 28.4183 0 24V11.3137Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.93692 31.9998C5.00208 31.9771 2.44349 30.3741 1.07012 27.9998H10.3431C11.404 27.9998 12.4214 27.5783 13.1716 26.8282L14.8284 25.1713C15.5786 24.4212 16.596 23.9998 17.6569 23.9998H23C25.2091 23.9998 27 25.7906 27 27.9998V29L26.3431 29.6569C24.8576 31.1424 22.848 31.9834 20.7488 31.9998L7.93692 31.9998Z\",\n fill: \"#13ECC8\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.75 8.38C23.75 8.64666 23.6567 8.87333 23.47 9.06L16.23 16.3L14.87 17.66C14.6833 17.8467 14.4567 17.94 14.19 17.94C13.9233 17.94 13.6967 17.8467 13.51 17.66L12.15 16.3L8.53 12.68C8.34333 12.4933 8.25 12.2667 8.25 12C8.25 11.7333 8.34333 11.5067 8.53 11.32L9.89 9.96C10.0767 9.77333 10.3033 9.68 10.57 9.68C10.8367 9.68 11.0633 9.77333 11.25 9.96L14.19 12.91L20.75 6.34C20.9367 6.15333 21.1633 6.06 21.43 6.06C21.6967 6.06 21.9233 6.15333 22.11 6.34L23.47 7.7C23.6567 7.88666 23.75 8.11333 23.75 8.38Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconCheck32);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_check_32.8c6c03eedb88739b4efe0dbd47d489ae.svg\";","/**\n * @description Component-ConnectStepBtn\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\n\nimport { ReactComponent as ImgBtnSmallOff } from './assets/btn_small_off.svg';\nimport { ReactComponent as ImgIconCheck_32 } from './assets/icon_check_32.svg';\n// import { ReactComponent as ImgBtnSmallOn } from './assets/btn_small_on.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n onClick?: () => void;\n isActivated?: boolean;\n isCurrent?: boolean;\n disabled?: boolean;\n}\nconst ConnectStepBtn: FC = function ({ className, children, onClick, isActivated, isCurrent, disabled }) {\n return (\n \n
{isActivated ? : }
\n {!isActivated && {children}}\n \n );\n};\n\nexport default ConnectStepBtn;\n","/**\n * @description Component-ConnectSteps\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\n\nimport { ReactComponent as IconHandShake } from './assets/icon_handshake_32.svg';\nimport ConnectStepBtn from './ConnectStepBtn';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n stepNumber: string;\n isCurrent?: boolean;\n isActivated?: boolean;\n content?: React.ReactNode;\n btnName: React.ReactNode;\n rightExtra?: React.ReactNode;\n onBtnClick?: () => void;\n}\nconst ConnectSteps: FC = function ({\n className,\n isCurrent,\n content,\n btnName,\n rightExtra,\n isActivated = false,\n onBtnClick,\n}) {\n return (\n \n
\n
\n
\n \n
\n
{content}
\n
\n
\n {rightExtra}\n
\n \n {btnName}\n \n
\n
\n
\n
\n );\n};\n\nexport default ConnectSteps;\n","/**\n * @description Component-SignUpWithWallet\n */\nimport './index.less';\n\nimport { useDebounceFn } from 'ahooks';\nimport React, { FC, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport { toast } from 'react-toastify';\n\nimport { GlobalModalType } from '@/constants';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { signTGPMsg } from '@/features/tgp/actions';\nimport { useTGPDappConfig } from '@/features/tgp/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useWalletAccount, useWalletSigner } from '@/hooks/web3/useWalletNetwork';\nimport { ODYSSEY_STEP } from '@/types/odyssey';\n\n// import { saveOdysseyJWTToken, saveOdysseySignatureToLocalForage } from '@/utils/storage';\nimport ConnectSteps from '../ConnectSteps';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n currentStep: ODYSSEY_STEP;\n isMaster: boolean;\n}\nconst SignUpWithWallet: FC = function ({ currentStep, isMaster }) {\n const { t } = useTranslation();\n\n const toggleModal = useToggleModal(GlobalModalType.Wallet);\n const userAddr = useWalletAccount();\n const dispatch = useAppDispatch();\n const signer = useWalletSigner();\n const tgpConfig = useTGPDappConfig();\n\n const isCurrent = useMemo(() => {\n return currentStep === ODYSSEY_STEP.INIT;\n }, [currentStep]);\n const isActivated = useMemo(() => {\n return currentStep > ODYSSEY_STEP.INIT;\n }, [currentStep]);\n\n const { run: onBtnClick } = useDebounceFn(\n async () => {\n if (currentStep !== ODYSSEY_STEP.INIT) return;\n if (userAddr) {\n try {\n if (signer) {\n const response = await dispatch(signTGPMsg({ userAddr, signer, isMaster })).unwrap();\n if (response) {\n // response.data && saveOdysseySignatureToLocalForage(response.data);\n }\n }\n } catch (error) {\n toast.error(\n
\n
{t('odyssey.signUp.step1.error')}
\n
,\n );\n }\n } else {\n toggleModal(true);\n }\n },\n { wait: 200 },\n );\n\n return (\n
\n \n

\n ,\n }}\n />\n

\n
\n }\n btnName={userAddr ? t('tgp.banner.agree') : t('odyssey.signUp.Connect')}\n onBtnClick={onBtnClick}\n />\n \n );\n};\n\nexport default SignUpWithWallet;\n","/**\n * @description Component-TGPBannerStep\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { useIsMaster, useTGPCurrentStep } from '@/features/tgp/hooks';\nimport { useWalletAccount } from '@/hooks/web3/useWalletNetwork';\n\nimport SignUpWithWallet from './SignUpWithWallet';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPBannerSteps: FC = function ({}) {\n const { t } = useTranslation();\n const userAddr = useWalletAccount();\n const currentStep = useTGPCurrentStep(userAddr);\n const isMaster = useIsMaster(userAddr);\n return (\n
\n
\n \n {' '}\n }}\n />\n \n
\n
\n \n
\n
\n );\n};\n\nexport default TGPBannerSteps;\n","/**\n * @description Component-TGPConnectBtn\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n isConnect: boolean;\n onClick: () => void;\n}\nconst TGPConnectBtn: FC = function ({ isConnect, onClick }) {\n const { t } = useTranslation();\n return (\n \n );\n};\n\nexport default TGPConnectBtn;\n","/**\n * @description Component-TGPBannerWalletConnect\n */\nimport './index.less';\n\nimport { useDebounceFn } from 'ahooks';\n// import { useDebounceFn } from 'ahooks';\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { toast } from 'react-toastify';\n\nimport { GlobalModalType } from '@/constants';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { signTGPMsg } from '@/features/tgp/actions';\nimport { useAppDispatch } from '@/hooks';\nimport { useWalletAccount, useWalletSigner } from '@/hooks/web3/useWalletNetwork';\n\nimport TGPBannerSteps from '../TGPBannerRight/TGPBannerSteps';\nimport TGPConnectBtn from './TGPConnectBtn';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n jwtToken: string | undefined;\n isMaster: boolean;\n}\nconst TGPBannerWalletConnect: FC = function ({ isMaster }) {\n const userAddr = useWalletAccount();\n const toggleModal = useToggleModal(GlobalModalType.Wallet);\n const dispatch = useAppDispatch();\n const { t } = useTranslation();\n const signer = useWalletSigner();\n\n const { run: onBtnClick } = useDebounceFn(\n async () => {\n if (userAddr) {\n try {\n if (signer) {\n console.log('🚀 ~ signer:', signer);\n const response = await dispatch(signTGPMsg({ userAddr, isMaster, signer })).unwrap();\n if (response) {\n // response.data && saveOdysseySignatureToLocalForage(response.data);\n }\n }\n } catch (error) {\n toast.error(\n
\n
{t('odyssey.signUp.step1.error')}
\n
,\n );\n }\n } else {\n toggleModal(true);\n }\n },\n { wait: 200 },\n );\n\n return (\n
\n {!userAddr ? (\n <>\n
\n {t('tgp.banner.joinNow')}\n
\n
\n {\n onBtnClick();\n }}\n />\n
\n \n ) : (\n
\n \n
\n )}\n
\n );\n};\n\nexport default TGPBannerWalletConnect;\n","var _path, _path2, _rect, _path3, _path4, _rect2, _path5, _path6, _path7;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgBtnClaim = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 144,\n height: 32,\n viewBox: \"0 0 144 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M132.686 32.0002C134.808 32.0002 136.843 31.1574 138.343 29.6571L141.657 26.3433C143.157 24.843 144 22.8082 144 20.6865V8.00024C144 3.58197 140.418 0.000244141 136 0.000244141H132V32.0002H132.686Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M138.343 29.6571C136.843 31.1574 134.808 32.0002 132.686 32.0002H132V24.0002H135C137.209 24.0002 139 25.7911 139 28.0002V29.0002L138.343 29.6571Z\",\n fill: \"#13ECC8\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 120,\n height: 23.9998,\n transform: \"translate(12 0.000244141)\",\n fill: \"#00BFBF\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 24H110V28H12V24Z\",\n fill: \"#00BFBF\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 28H110V32H12V28Z\",\n fill: \"#13ECC8\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 22,\n height: 8,\n transform: \"translate(110 24)\",\n fill: \"#00BFBF\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M114.828 25.1716C115.579 24.4214 116.596 24 117.657 24H132V32H110V28H110.343C111.404 28 112.421 27.5786 113.172 26.8284L114.828 25.1716Z\",\n fill: \"#13ECC8\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.3137 0.000244141C9.19199 0.000244141 7.15715 0.843107 5.65685 2.34342L2.34312 5.65719C0.842843 7.15747 0 9.19229 0 11.314L0 24.0002C0 28.4185 3.58172 32.0002 8 32.0002H12V0.000244141H11.3137Z\",\n fill: \"#00BFBF\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 28.0002H6C2.68629 28.0002 0 25.314 0 22.0002V24.0002C0 28.4185 3.58172 32.0002 8 32.0002H12V28.0002Z\",\n fill: \"#13ECC8\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgBtnClaim);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/btn_claim.cdb8ce868cd7a69867a491cc1797ffe6.svg\";","var _path, _path2, _rect, _path3, _path4, _rect2, _path5, _path6, _path7;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgBtnDisable = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 80,\n height: 32,\n viewBox: \"0 0 80 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.6863 32.0002C70.808 32.0002 72.8429 31.1574 74.3431 29.6571L77.6569 26.3433C79.1572 24.843 80 22.8082 80 20.6865V8.00024C80 3.58197 76.4183 0.000244141 72 0.000244141H68V32.0002H68.6863Z\",\n fill: \"#1A444D\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M74.3431 29.6571C72.8429 31.1574 70.808 32.0002 68.6863 32.0002H68V24.0002H71C73.2091 24.0002 75 25.7911 75 28.0002V29.0002L74.3431 29.6571Z\",\n fill: \"#00BFBF\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 56,\n height: 23.9998,\n transform: \"translate(12 0.000244141)\",\n fill: \"#1A444D\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 24H46V28H12V24Z\",\n fill: \"#1A444D\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 28H46V32H12V28Z\",\n fill: \"#00BFBF\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n width: 22,\n height: 8,\n transform: \"translate(46 24)\",\n fill: \"#1A444D\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M50.8284 25.1716C51.5786 24.4214 52.596 24 53.6569 24H68V32H46V28H46.3431C47.404 28 48.4214 27.5786 49.1716 26.8284L50.8284 25.1716Z\",\n fill: \"#00BFBF\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.3137 0.000244141C9.19199 0.000244141 7.15715 0.843107 5.65685 2.34342L2.34312 5.65719C0.842843 7.15747 0 9.19229 0 11.314L0 24.0002C0 28.4185 3.58172 32.0002 8 32.0002H12V0.000244141H11.3137Z\",\n fill: \"#1A444D\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 28.0002H6C2.68629 28.0002 0 25.314 0 22.0002V24.0002C0 28.4185 3.58172 32.0002 8 32.0002H12V28.0002Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgBtnDisable);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/btn_disable.d374b3b165282f4d9ee7269fd022c069.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgBtnTrade = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 104,\n height: 32,\n viewBox: \"0 0 104 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1782_16051)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.65685 2.34317C7.15715 0.842863 9.19199 0 11.3137 0H96C100.418 0 104 3.58172 104 8V20.6862C104 22.808 103.157 24.8428 101.657 26.3431L98.3431 29.6568C96.8429 31.1571 94.808 32 92.6863 32L70 31.9999L12 32H8C3.58172 32 0 28.4183 0 24V11.3138C0 9.19205 0.842843 7.15723 2.34312 5.65694L5.65685 2.34317Z\",\n fill: \"#D6855C\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6 28L70.3431 27.9999C71.404 27.9999 72.4214 27.5785 73.1716 26.8283L74.8284 25.1714C75.5786 24.4213 76.596 23.9999 77.6569 23.9999L95 24C97.2091 24 99 25.7909 99 28V29L98.3431 29.6568C96.8429 31.1571 94.808 32 92.6863 32H8C3.58172 32 0 28.4183 0 24V22C0 25.3137 2.68629 28 6 28Z\",\n fill: \"#E6B85C\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1782_16051\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 104,\n height: 32,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgBtnTrade);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/btn_trade.b9a7ad0890cd722f9ebb53e537c861a4.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconEnded48 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 48,\n height: 48,\n viewBox: \"0 0 48 48\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1991_17239)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M45 3H3V27H45V3ZM10.6522 9.19048L11.3043 9H15.1242L15.5901 9.09524L16.0559 9.47619L16.4286 10.0476V10.8095L16.3354 11L15.8696 11.5714L15.1242 11.8571H12.7019V13.5714H14.8447L15.3106 13.6667L15.7764 14.0476L16.1491 14.619V15.381L16.0559 15.5714L15.4969 16.2381L14.8447 16.4286H12.7019V18.1429H15.1242L15.5901 18.2381L16.0559 18.619L16.4286 19.1905V19.9524L16.3354 20.1429L15.8696 20.7143L15.1242 21H11.3043L10.8385 20.9048L10.3727 20.619L10 19.9524V10.0476L10.1863 9.66667L10.6522 9.19048ZM31.7081 9.28571L32.4534 9H35.1553L36.4596 9.19048L37.9503 9.95238L38.882 10.9048L39.6273 12.3333L40 13.8571V16.0476L39.8137 17L39.3478 18.1429L38.7888 19.0952L37.9503 19.9524L37.0186 20.5238L35.9006 20.9048L32.5466 21L31.8944 20.8095L31.4286 20.3333L31.1491 19.6667V10.2381L31.3354 9.7619L31.7081 9.28571ZM35.7143 11.8571H33.8509V16.4286L33.9441 18.1429H35.6211L35.9006 18.0476L36.4596 17.6667L37.0186 16.9048L37.2981 15.9524V14.0476L37.0186 13.0952L36.4596 12.2381L35.7143 11.8571ZM20.2484 9.09524L19.6894 9.47619L19.3168 10.1429V19.8571L19.5963 20.4286L20.0621 20.8095L20.7143 21L21.4596 20.7143L21.9255 20.1429L22.0186 19.9524V15H22.205L22.3913 15.4762L23.5093 17.0952L24.7205 18.9048L25.6522 20.2381L26.118 20.7143L26.3975 20.8095H27.3292L27.9814 20.3333L28.2609 19.7619V10.619L28.0745 9.7619L27.6087 9.28571L27.3292 9.09524H26.3975L25.8385 9.47619L25.559 9.95238L25.4658 10.5238L25.559 15.0952H25.3727L25.1863 14.619L24.0683 13L23.0435 11.4762L21.7391 9.57143L21.2733 9.19048L21.087 9.09524H20.2484Z\",\n fill: \"#00BFBF\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n width: 3,\n height: 48,\n rx: 1.5,\n fill: \"black\"\n }), /*#__PURE__*/React.createElement(\"rect\", {\n x: 45,\n width: 3,\n height: 48,\n rx: 1.5,\n fill: \"black\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1991_17239\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 48,\n height: 48,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconEnded48);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_ended_48.ad48dd4073dd676d3fc7e088c693d8c8.svg\";","/**\n * @description Component-RankClaimBtn\n */\nimport './index.less';\n\nimport moment from 'moment';\nimport React, { FC, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useTGPDappConfig } from '@/features/tgp/hooks';\nimport TGPRankClaimModal from '@/pages/TGP/components/TGPModal/TGPClaimModal';\nimport { ITGPBannerScore } from '@/types/tgp';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n showClaim: boolean;\n allHide?: boolean;\n item?: ITGPBannerScore;\n week: number;\n}\nconst RankClaimBtn: FC = function ({ showClaim, allHide, item, week }) {\n const { t } = useTranslation();\n const [open, setOpen] = useState(false);\n const tgpConfig = useTGPDappConfig();\n const isShowClaim = useMemo(() => {\n if (!showClaim) return false;\n if (tgpConfig) {\n const weekC = tgpConfig.weeks.find((w) => w.week === week);\n return weekC?.endTs && moment().utc().isAfter(moment.utc(weekC?.endTs));\n }\n return true;\n }, [showClaim, tgpConfig, week]);\n if (allHide) return null;\n if (!isShowClaim) return
;\n return (\n <>\n {\n setOpen(true);\n }}>\n {t('tgp.Claim')}\n \n {\n setOpen(open);\n }}\n isMaster={false}\n week={week}\n prize={item?.prize}\n />\n \n );\n};\n\nexport default RankClaimBtn;\n","/**\n * @description Component-TGPBannerRank\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport React, { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { formatNumberWithTooltip } from '@/components/NumberFormat';\nimport { Tooltip } from '@/components/ToolTip';\nimport { TGP_SEASON } from '@/constants/tgp';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useCurrentTGPWeek, useTGPDappConfig, useTGPSeason, useTGPUser } from '@/features/tgp/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { ITGPBannerScore, ITGPUserMasterRank, ITGPUserOpenRank } from '@/types/tgp';\nimport { formatNumber } from '@/utils/numberUtil';\n\nimport RankClaimBtn from './RankClaimBtn';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n isMaster: boolean;\n}\nconst TGPBannerRank: FC = function ({ isMaster }) {\n const { t } = useTranslation();\n const userAddr = useUserAddr();\n const tgpUser = useTGPUser(userAddr);\n const tgpConfig = useTGPDappConfig();\n const season = useTGPSeason();\n const tgpWeek = useCurrentTGPWeek();\n\n const isSeason2 = useMemo(() => {\n return season === TGP_SEASON.SECOND;\n }, [season]);\n\n const dataList: ITGPBannerScore[] = useMemo(() => {\n // if (!tgpUser?.rankings?.open && !tgpUser?.rankings?.master) return [];\n if (isMaster) {\n const weeks = 4;\n const masters = _.get(tgpUser, ['rankings', 'master']);\n return new Array(weeks).fill('').map((__, week) => {\n const weekInfo: ITGPUserMasterRank | undefined = _.get(masters, [`week${week + 1}`], {});\n return {\n ...weekInfo,\n week: week + 1,\n prize: undefined,\n claimed: false,\n rank: weekInfo?.rank,\n score: weekInfo?.scores,\n pnl: weekInfo?.PnL,\n } as ITGPBannerScore;\n });\n } else {\n const weeks = 4;\n const weekNum = isSeason2 ? 5 : 0 + 1;\n const opens = _.get(tgpUser, ['rankings', 'open']);\n return new Array(weeks).fill('').map((__, week) => {\n const weekInfo: ITGPUserOpenRank | undefined = _.get(opens, [`week${weekNum + week}`], {});\n return {\n ...weekInfo,\n week: weekNum + week,\n rank: weekInfo?.rank,\n prize: weekInfo?.prize,\n pnl: weekInfo?.PnL,\n volume: weekInfo?.volume,\n claimed: weekInfo?.claimed,\n } as ITGPBannerScore;\n });\n }\n\n return [];\n }, [isMaster, isSeason2, tgpUser?.rankings?.master, tgpUser?.rankings?.open]);\n\n const allHide = useMemo(() => {\n return dataList.every((item) => item.prize && item.claimed);\n }, [dataList]);\n\n const masterRanking = useMemo(() => {\n return tgpUser?.rankings?.master;\n }, [tgpUser?.rankings?.master]);\n\n return (\n
\n
\n
\n
\n
\n
{t('tgp.banner.rank.Rank')}
\n {isMaster &&
{t('tgp.banner.rank.Score')}
}\n
\n {isMaster\n ? t('tgp.banner.rank.P&L(ETH)')\n : isSeason2\n ? t('tgp.banner.rank.Volume')\n : t('tgp.banner.rank.P&L')}\n
\n {!isMaster &&
{t('tgp.banner.Prize')}
}\n
\n
\n
\n {tgpUser && (\n
\n {isMaster && !!dataList.length && (\n
\n
\n {t(`tgp.banner.rank.Standings`)}\n
\n
\n \n {masterRanking?.rank}\n \n
\n {isMaster && (\n
\n \n {masterRanking?.totalScores}\n \n
\n )}\n
-
\n
\n )}\n {dataList.map((item) => {\n return (\n
\n
\n {t(`tgp.week.weekTitle`, { week: item.week })}\n
\n
\n \n {item.rank}\n \n
\n {isMaster && (\n
\n \n {item.score}\n \n
\n )}\n
\n {isSeason2 ? (\n \n \n {formatNumberWithTooltip({\n num: item.volume || 0,\n prefix: isMaster ? undefined : '$',\n })}{' '}\n \n \n ) : (\n \n \n {formatNumberWithTooltip({\n num: item?.pnl ? (item?.pnl || 0) / 1e18 : '',\n prefix: isMaster ? undefined : '$',\n })}{' '}\n \n \n )}\n
\n {!isMaster && (\n
\n \n \n {formatNumber(item?.prize || 0, 0)} {tgpConfig.prizeCurrency}\n \n \n {item?.claimed ? (\n \n
{t('tgp.Claimed')}
\n
\n ) : (\n \n )}\n
\n )}\n
\n );\n })}\n {/* {!dataList?.length && } */}\n
\n )}\n
\n
\n
\n );\n};\n\nexport default TGPBannerRank;\n","/**\n * @description Component-TGPBannerRightSeasons\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { Tooltip } from '@/components/ToolTip';\nimport { TGP_SEASON } from '@/constants/tgp';\nimport { setTGPSeason } from '@/features/tgp/actions';\nimport { useTGPDappConfig, useTGPSeason } from '@/features/tgp/hooks';\nimport { useAppDispatch } from '@/hooks';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPBannerRightSeasons: FC = function ({}) {\n const dispatch = useAppDispatch();\n const season = useTGPSeason();\n const { t } = useTranslation();\n const config = useTGPDappConfig();\n return (\n
\n dispatch(setTGPSeason(TGP_SEASON.FIRST))}\n className={classNames('syn-tgp-banner-right-seasons-item', { active: season === TGP_SEASON.FIRST })}>\n
{t('tgp.Open1')}\n
\n
/
\n \n {\n if (config.isShowSeasonTwoComingSoon) return;\n dispatch(setTGPSeason(TGP_SEASON.SECOND));\n }}\n className={classNames('syn-tgp-banner-right-seasons-item', {\n active: season === TGP_SEASON.SECOND,\n disabled: config.isShowSeasonTwoComingSoon,\n })}>\n
{t('tgp.Open2')}\n
\n
\n\n
\n
\n );\n};\n\nexport default TGPBannerRightSeasons;\n","/**\n * @description Component-TGPBannerRule\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useIsMaster, useTGPDappConfig } from '@/features/tgp/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPBannerRule: FC = function ({}) {\n const { t } = useTranslation();\n const tgpConfig = useTGPDappConfig();\n const userAddr = useUserAddr();\n const isMaster = useIsMaster(userAddr);\n return (\n
\n \n {t('tgp.banner.rank.learnRules')}\n \n
\n );\n};\n\nexport default TGPBannerRule;\n","/**\n * @description Component-TGPBannerSkeleton\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport { Skeleton } from '@/components/Skeleton';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPBannerSkeleton: FC = function ({}) {\n return (\n
\n \n \n \n
\n );\n};\n\nexport default TGPBannerSkeleton;\n","/**\n * @description Component-TGPBannerRight\n */\nimport './index.less';\n\nimport moment from 'moment';\nimport React, { FC, useCallback, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router-dom';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport {\n useCurrentTGPWeek,\n useIsMaster,\n useTGPDappConfig,\n useTGPUser,\n useTGPUserStatus,\n useUserCheckStatus,\n useUserJWTToken,\n useUserJWTTokenStatus,\n} from '@/features/tgp/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { TGP_USER_STATUS } from '@/types/tgp';\nimport { getChainShortName } from '@/utils/chain';\n\nimport TGPRankClaimModal from '../../components/TGPModal/TGPClaimModal';\nimport TGPName from '../../components/TGPName';\nimport TGPBannerWalletConnect from '../TGPBannerWalletConnect';\nimport TGPBannerBtn from './TGPBannerBtn';\nimport TGPBannerRank from './TGPBannerRank';\nimport TGPBannerRightSeasons from './TGPBannerRightSeasons';\nimport TGPBannerRule from './TGPBannerRule';\nimport TGPBannerSkeleton from './TGPBannerSkeleton';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPBannerRight: FC = function ({}) {\n const { t } = useTranslation();\n const userAddr = useUserAddr();\n const jwtToken = useUserJWTToken(userAddr);\n\n const jwtTokenStatus = useUserJWTTokenStatus(userAddr);\n const tgpUser = useTGPUser(userAddr);\n const dappConfig = useTGPDappConfig();\n const navigate = useNavigate();\n const [openMaster, setOpenMaster] = useState(false);\n const isMaster = useIsMaster(userAddr);\n const tgpUserStatus = useTGPUserStatus(userAddr);\n const isMasterStatus = useUserCheckStatus(userAddr);\n const hasJoinTGP = useMemo(() => {\n return !!tgpUser && tgpUser.status >= TGP_USER_STATUS.DEFAULT;\n }, [tgpUser]);\n\n const claimValue = useMemo(() => {\n return tgpUser && tgpUser?.rankings?.master?.prize;\n }, [tgpUser]);\n\n const showClaim = useMemo(() => {\n const res =\n isMaster &&\n tgpUser?.rankings?.master?.claimed !== true &&\n WrappedBigNumber.from(tgpUser?.rankings?.master?.prize || 0).gt(0);\n if (dappConfig.weeks.length) {\n const lastWeek = isMaster ? dappConfig.weeks[3] : dappConfig.weeks[dappConfig.weeks.length - 1];\n\n if (moment().utc().isBefore(moment.utc(lastWeek?.endTs))) {\n return false;\n }\n }\n return res;\n }, [dappConfig.weeks, isMaster, tgpUser?.rankings?.master?.claimed, tgpUser?.rankings?.master?.prize]);\n\n const onClickTradeNow = useCallback(() => {\n if (dappConfig) {\n const defaultPair = dappConfig.trade?.defaultPair;\n const defaultChainId = dappConfig.trade?.defaultChainId;\n const chainShortName = getChainShortName(defaultChainId);\n navigate(`/trade/${chainShortName}/${defaultPair}`);\n }\n }, [dappConfig, navigate]);\n\n const currentWeek = useCurrentTGPWeek();\n\n const isShowSkeleton = useMemo(() => {\n return (\n jwtTokenStatus !== FETCHING_STATUS.DONE ||\n isMasterStatus !== FETCHING_STATUS.DONE ||\n (jwtToken && tgpUserStatus === FETCHING_STATUS.INIT)\n );\n }, [isMasterStatus, jwtToken, jwtTokenStatus, tgpUserStatus]);\n\n const isShowUserInfo = useMemo(() => {\n return userAddr && jwtToken && hasJoinTGP && tgpUserStatus !== FETCHING_STATUS.INIT;\n }, [hasJoinTGP, jwtToken, tgpUserStatus, userAddr]);\n\n const hasClaimed = useMemo(() => {\n if (isMaster) {\n return tgpUser?.rankings?.master?.claimed;\n }\n return false;\n }, [isMaster, tgpUser?.rankings?.master?.claimed]);\n\n const showTrade = useMemo(() => {\n return !isMaster || !showClaim;\n }, [isMaster, showClaim]);\n\n return (\n
\n
\n {isShowSkeleton ? (\n \n ) : (\n <>\n {isShowUserInfo ? (\n <>\n \n
\n
\n {isMaster ? t('tgp.banner.rank.rankMaster') : t('tgp.banner.rank.rankOpen')}\n \n
\n
\n {false && (\n {\n if (hasClaimed) return;\n if (showTrade) {\n onClickTradeNow();\n } else {\n // show claim modal\n setOpenMaster(true);\n }\n }}\n />\n )}\n
\n
\n {!isMaster && }\n \n \n ) : (\n \n )}\n \n )}\n\n {isMaster && showClaim && (\n {\n setOpenMaster(open);\n }}\n isMaster={isMaster}\n prize={claimValue}\n week={currentWeek}\n />\n )}\n
\n
\n );\n};\n\nexport default TGPBannerRight;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconSocialDiscord = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19.27 5.32602C17.94 4.70602 16.5 4.25602 15 3.99602C14.9868 3.9956 14.9738 3.99806 14.9617 4.00325C14.9496 4.00843 14.9388 4.0162 14.93 4.02602C14.75 4.35602 14.54 4.78602 14.4 5.11602C12.809 4.87602 11.191 4.87602 9.6 5.11602C9.46 4.77602 9.25 4.35602 9.06 4.02602C9.05 4.00602 9.02 3.99602 8.99 3.99602C7.49 4.25602 6.06 4.70602 4.72 5.32602C4.71 5.32602 4.7 5.33602 4.69 5.34602C1.97 9.41602 1.22 13.376 1.59 17.296C1.59 17.316 1.6 17.336 1.62 17.346C3.42 18.666 5.15 19.466 6.86 19.996C6.89 20.006 6.91999 19.996 6.93 19.976C7.33 19.426 7.69 18.846 8 18.236C8.02 18.196 8 18.156 7.96 18.146C7.39 17.926 6.85 17.666 6.32 17.366C6.28 17.346 6.27999 17.286 6.31 17.256C6.42 17.176 6.52999 17.086 6.64 17.006C6.66 16.986 6.69 16.986 6.71 16.996C10.15 18.566 13.86 18.566 17.26 16.996C17.28 16.986 17.31 16.986 17.33 17.006C17.44 17.096 17.55 17.176 17.66 17.266C17.7 17.296 17.7 17.356 17.65 17.376C17.13 17.686 16.58 17.936 16.01 18.156C15.97 18.166 15.96 18.216 15.97 18.246C16.29 18.856 16.65 19.436 17.04 19.986C17.07 19.996 17.1 20.006 17.13 19.996C18.85 19.466 20.58 18.666 22.38 17.346C22.4 17.336 22.41 17.316 22.41 17.296C22.85 12.766 21.68 8.83602 19.31 5.34602C19.3 5.33602 19.29 5.32602 19.27 5.32602ZM8.52 14.906C7.49 14.906 6.63 13.956 6.63 12.786C6.63 11.616 7.47 10.666 8.52 10.666C9.58 10.666 10.42 11.626 10.41 12.786C10.41 13.956 9.57 14.906 8.52 14.906ZM15.49 14.906C14.46 14.906 13.6 13.956 13.6 12.786C13.6 11.616 14.44 10.666 15.49 10.666C16.55 10.666 17.39 11.626 17.38 12.786C17.38 13.956 16.55 14.906 15.49 14.906Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconSocialDiscord);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_social_discord.a635f33355ac1ff9a53fead026c54aee.svg\";","/**\n * @description Component-TGPEnded\n */\nimport './index.less';\n\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as EndIcon } from '@/pages/TGP/assets/svg/icon_ended_48.svg';\ninterface IPropTypes {\n className?: string;\n}\nconst TGPEnded: FC = function ({}) {\n const { t } = useTranslation();\n return (\n
\n \n
\n
{t('tgp.endTitle')}
\n
{t('tgp.endSubtitle')}
\n
\n
\n );\n};\n\nexport default TGPEnded;\n","/**\n * @description Component-TGPBanner\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport { FETCHING_STATUS } from '@/constants';\nimport { useIsRegistered, useIsTGPEnded, useTGPSeason, useTGPUser, useUserCheckStatus } from '@/features/tgp/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { TGP_USER_STATUS } from '@/types/tgp';\n\nimport { useTheme } from '@/features/global/hooks';\nimport classNames from 'classnames';\nimport TGPBannerCorner from './TGPBannerCorner';\nimport TGPBannerLeft from './TGPBannerLeft';\nimport TGPBannerRight from './TGPBannerRight';\nimport TGPEnded from './TGPEnded';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPBanner: FC = function ({}) {\n const season = useTGPSeason();\n const userAddr = useUserAddr();\n const isTGPEnded = useIsTGPEnded(season, userAddr);\n const tgpUser = useTGPUser(userAddr);\n const isRegistered = useIsRegistered(userAddr);\n const checkStatus = useUserCheckStatus(userAddr);\n const theme = useTheme();\n return (\n
\n
\n \n {isTGPEnded && !isRegistered && checkStatus === FETCHING_STATUS.DONE ? : }\n {!isTGPEnded && tgpUser && tgpUser.status >= TGP_USER_STATUS.DEFAULT && }\n
\n
\n );\n};\n\nexport default TGPBanner;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconSocialMedium = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.5375 11.996C13.5375 15.7235 10.5075 18.746 6.768 18.746C5.8804 18.7472 5.00125 18.5735 4.18076 18.235C3.36026 17.8964 2.61449 17.3995 1.98603 16.7727C1.35756 16.1459 0.858704 15.4015 0.517941 14.5819C0.177178 13.7623 0.00118111 12.8836 0 11.996C0 8.26698 3.03 5.24598 6.768 5.24598C7.65573 5.2446 8.53504 5.41811 9.3557 5.7566C10.1764 6.09509 10.9223 6.59193 11.5509 7.21875C12.1796 7.84556 12.6786 8.59007 13.0194 9.40976C13.3603 10.2295 13.5363 11.1083 13.5375 11.996ZM20.9625 11.996C20.9625 15.506 19.4475 18.35 17.5785 18.35C15.7095 18.35 14.1945 15.5045 14.1945 11.996C14.1945 8.48598 15.7095 5.64198 17.5785 5.64198C19.4475 5.64198 20.9625 8.48748 20.9625 11.996ZM24 11.996C24 15.14 23.4675 17.6885 22.809 17.6885C22.152 17.6885 21.6195 15.1385 21.6195 11.996C21.6195 8.85198 22.152 6.30348 22.8105 6.30348C23.4675 6.30348 24 8.85198 24 11.996Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconSocialMedium);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_social_medium.416c00c21a94ce6593008b2d8c7a4ba2.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconSocialTelegram = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.665 3.71291L2.93497 10.5499C1.72497 11.0359 1.73197 11.7109 2.71297 12.0119L7.26497 13.4319L17.797 6.78691C18.295 6.48391 18.75 6.64691 18.376 6.97891L9.84297 14.6799H9.84097L9.84297 14.6809L9.52897 19.3729C9.98897 19.3729 10.192 19.1619 10.45 18.9129L12.661 16.7629L17.26 20.1599C18.108 20.6269 18.717 20.3869 18.928 19.3749L21.947 5.14691C22.256 3.90791 21.474 3.34691 20.665 3.71291Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconSocialTelegram);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_social_telegram.6a9be30574e3e14fafe16337d629ec03.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconSocialTwitter = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.10027 20.6013C5.67953 20.6013 3.42299 19.8973 1.52368 18.6824C3.13626 18.7868 5.98209 18.5369 7.75219 16.8485C5.08938 16.7263 3.8885 14.684 3.73186 13.8113C3.95811 13.8985 5.03716 14.0033 5.64631 13.7589C2.58319 12.9909 2.11329 10.3028 2.21771 9.48237C2.79204 9.88384 3.76667 10.0235 4.14956 9.98857C1.2953 7.94631 2.32213 4.8742 2.82685 4.2109C4.87517 7.04868 7.94497 8.64248 11.7427 8.73113C11.6711 8.41709 11.6333 8.09013 11.6333 7.75431C11.6333 5.34424 13.5813 3.3905 15.9843 3.3905C17.2398 3.3905 18.3712 3.92385 19.1653 4.77698C20.0043 4.58037 21.267 4.12014 21.8843 3.72215C21.5731 4.83929 20.6045 5.7712 20.0185 6.11661C20.0234 6.12836 20.0138 6.10481 20.0185 6.11661C20.5332 6.03875 21.9259 5.77111 22.476 5.39785C22.2039 6.02545 21.177 7.06893 20.3342 7.65312C20.491 14.5686 15.1999 20.6013 8.10027 20.6013Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconSocialTwitter);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_social_twitter.1bff1271b08df82bd48da3b23507770b.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconSocialYoutube = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.09922 4.38507C2.5431 4.46217 1.2931 5.68063 1.19211 7.23538C1.09536 8.72495 1 10.5578 1 11.9959C1 13.4341 1.09536 15.2669 1.19211 16.7565C1.2931 18.3112 2.5431 19.5297 4.09922 19.6068C6.35259 19.7184 9.5733 19.8531 12 19.8531C14.4267 19.8531 17.6474 19.7184 19.9008 19.6068C21.4569 19.5297 22.7069 18.3112 22.8079 16.7565C22.9046 15.2669 23 13.4341 23 11.9959C23 10.5578 22.9046 8.72495 22.8079 7.23538C22.7069 5.68063 21.4569 4.46217 19.9008 4.38507C17.6474 4.27344 14.4267 4.13879 12 4.13879C9.5733 4.13879 6.35259 4.27344 4.09922 4.38507ZM15.9289 11.9959L9.64317 15.1388V8.85304L15.9289 11.9959Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconSocialYoutube);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_social_youtube.f21affe39c864dd8bd0f3a0429ffe082.svg\";","var _path, _path2, _path3, _path4;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconTitleLeaderboard = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.83357 1.62147C5.97616 2.05966 6.17285 3.04526 7.24125 3.6648C8.4579 4.37032 9.50487 3.87019 9.19861 2.72976C9.00632 2.01374 7.47246 1.29499 6.83357 1.62147ZM15.417 1.6621C15.2034 1.78623 15.1067 1.94338 14.4996 3.15313L13.821 4.50551L12.8339 4.64776C10.7294 4.95115 10.6229 4.98674 10.3783 5.46748C10.0554 6.10208 10.2003 6.3949 11.4558 7.64503L12.4822 8.6671L12.2401 10.0867C11.9422 11.8339 11.9719 12.0427 12.5711 12.4089C13.0234 12.6855 13.3071 12.6167 14.6801 11.8976C16.1546 11.1255 15.8434 11.1255 17.3199 11.8976C18.6924 12.6154 18.951 12.6783 19.4259 12.4108C20.0181 12.077 20.0587 11.788 19.7569 10.0559L19.5151 8.66822L20.5421 7.64559C21.798 6.39482 21.9429 6.10208 21.6201 5.46748C21.3751 4.98601 21.1751 4.92175 18.9706 4.61562L18.1645 4.50367L17.5522 3.24689C17.2154 2.55563 16.9033 1.94434 16.8586 1.88841C16.5571 1.51104 15.8642 1.4023 15.417 1.6621ZM24.022 1.68494C22.6274 2.4206 22.329 3.26123 23.2414 3.88389C23.9619 4.37561 25.6772 3.41662 25.6772 2.52221C25.6772 1.69592 24.8217 1.2631 24.022 1.68494ZM5.46203 6.6539C4.84599 7.03054 4.84599 8.03097 5.46203 8.40761C5.76485 8.59273 7.25204 8.59273 7.55486 8.40761C8.1709 8.03097 8.1709 7.03054 7.55486 6.6539C7.25204 6.46878 5.76485 6.46878 5.46203 6.6539ZM24.4435 6.6539C24.0008 6.92452 23.8398 7.62516 24.1159 8.07913C24.5245 8.75108 26.4552 8.75108 26.8639 8.07913C27.1399 7.62516 26.9789 6.92452 26.5363 6.6539C26.2335 6.46878 24.7463 6.46878 24.4435 6.6539ZM7.22646 11.4054C6.15655 12.0349 5.97744 13.0269 6.8581 13.4459C7.50819 13.7551 9.00808 13.0412 9.19861 12.3318C9.50671 11.1844 8.44759 10.6869 7.22646 11.4054ZM23.3357 11.1097C22.4168 11.618 22.562 12.5153 23.6705 13.1784C24.7517 13.8251 25.6772 13.5211 25.6772 12.5193C25.6772 11.7197 24.0279 10.7268 23.3357 11.1097Z\",\n fill: \"#006A80\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.96002 20.56C2.96002 19.8531 3.5331 19.28 4.24002 19.28H8.72002C9.42695 19.28 10 19.8531 10 20.56V29.04C10 29.747 9.42695 30.32 8.72002 30.32H4.24002C3.5331 30.32 2.96002 29.747 2.96002 29.04V20.56Z\",\n fill: \"#00BFBF\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 16.56C12 15.8531 12.5731 15.28 13.28 15.28H18.72C19.4269 15.28 20 15.8531 20 16.56V29.04C20 29.747 19.4269 30.32 18.72 30.32H13.28C12.5731 30.32 12 29.747 12 29.04V16.56Z\",\n fill: \"#00BFBF\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22 21.68C22 20.9731 22.5731 20.4 23.28 20.4H27.76C28.4669 20.4 29.04 20.9731 29.04 21.68V29.04C29.04 29.747 28.4669 30.32 27.76 30.32H23.28C22.5731 30.32 22 29.747 22 29.04V21.68Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconTitleLeaderboard);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_title_leaderboard.3c1b2a21310801017a8b1fd3addfecc3.svg\";","/**\n * @description Component-TGPCommunity\n */\nimport './index.less';\n\nimport { FC, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useTheme } from '@/features/global/hooks';\nimport classNames from 'classnames';\nimport { ReactComponent as IconDiscord } from './assets/icon_social_discord.svg';\nimport { ReactComponent as IconMedium } from './assets/icon_social_medium.svg';\nimport { ReactComponent as IconTelegram } from './assets/icon_social_telegram.svg';\nimport { ReactComponent as IconTwitter } from './assets/icon_social_twitter.svg';\nimport { ReactComponent as IconYoutube } from './assets/icon_social_youtube.svg';\ninterface IPropTypes {\n className?: string;\n}\nconst TGPCommunity: FC = function ({}) {\n const { t } = useTranslation();\n const theme = useTheme();\n const onMenuClick = useCallback((menuKey: string) => {\n console.log('🚀 ~ menuKey:', menuKey);\n // gaEvent({ category: GaCategory.HEADER, action: `Community-Click on${menuKey}` });\n }, []);\n return (\n
\n
{t('tgp.community.title')}
\n
\n onMenuClick('Twitter')}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-tgp-community-social\">\n \n \n onMenuClick('Medium')}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-tgp-community-social medium\">\n \n \n onMenuClick('Discord')}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-tgp-community-social\">\n \n \n onMenuClick('Youtube')}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-tgp-community-social\">\n \n \n onMenuClick('Telegram')}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-tgp-community-social\">\n \n \n
\n
\n );\n};\n\nexport default TGPCommunity;\n","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgListSelfLeft = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 56,\n viewBox: \"0 0 16 56\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 12C0 5.37258 5.37258 0 12 0H16V56H12C5.37258 56 0 50.6274 0 44V12Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 12C0 5.37258 5.37258 0 12 0H16V1H12C5.92487 1 1 5.92487 1 12V14.126C2.72523 14.5701 4 16.1362 4 18V38C4 39.8638 2.72523 41.4299 1 41.874V44C1 50.0751 5.92487 55 12 55H16V56H12C5.37258 56 0 50.6274 0 44V12Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgListSelfLeft);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/list_self_left.e95b6dcb9be0dc2bdf6aadf53926e58a.svg\";","/**\n * @description Component-TGPLeaderBoardHeader\n */\nimport './index.less';\n\nimport { Tabs } from 'antd';\nimport classNames from 'classnames';\nimport React, { FC, useEffect, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { Tooltip } from '@/components/ToolTip';\nimport { TGP_SEASON, TGP_TYPE } from '@/constants/tgp';\nimport { useTheme } from '@/features/global/hooks';\nimport { setTGPType } from '@/features/tgp/actions';\nimport { useTGPDappConfig, useTGPLeaderBoardHeader, useTGPType } from '@/features/tgp/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { ReactComponent as LeaderboardIcon } from '@/pages/TGP/assets/svg/icon_title_leaderboard.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPLeaderBoardHeader: FC = function ({}) {\n const { t } = useTranslation();\n const tpgType = useTGPType();\n const config = useTGPDappConfig();\n const leaderboard = useTGPLeaderBoardHeader();\n const tgpConfig = useTGPDappConfig();\n const dispatch = useAppDispatch();\n const theme = useTheme();\n const tabItems = useMemo(\n () => [\n {\n key: TGP_TYPE.MASTER,\n label: t('tgp.Master'),\n },\n {\n key: TGP_TYPE.OPEN_1,\n label: (\n \n {t('tgp.Open1')}\n \n ),\n disabled: config.isShowSeasonOneComingSoon,\n },\n {\n key: TGP_TYPE.OPEN_2,\n label: (\n \n {t('tgp.Open2')}\n \n ),\n disabled: config.isShowSeasonTwoComingSoon,\n },\n ],\n [config.isShowSeasonOneComingSoon, config.isShowSeasonTwoComingSoon, t],\n );\n useEffect(() => {\n dispatch(setTGPType(tgpConfig.currentSeason === TGP_SEASON.FIRST ? TGP_TYPE.MASTER : TGP_TYPE.OPEN_2));\n }, [dispatch, tgpConfig.currentSeason]);\n return (\n
\n
\n {t('tgp.leaderboard.leaderboard')}\n
\n
\n dispatch(setTGPType(activeKey as TGP_TYPE))}\n activeKey={tpgType}\n items={tabItems}\n />\n
\n
\n
\n
{t('tgp.leaderboard.totalContestant')}
\n
\n {' '}\n {leaderboard?.totalParticipants}\n
\n
\n
\n
\n );\n};\n\nexport default TGPLeaderBoardHeader;\n","/**\n * @description Component-EpochRank\n */\nimport './index.less';\n\nimport { FC, useMemo } from 'react';\n\nimport { rankSrcList } from '@/utils/image';\nimport { formatNumber } from '@/utils/numberUtil';\nimport classNames from 'classnames';\n\ninterface IPropTypes {\n className?: string;\n rank: number;\n}\nconst EpochRank: FC = function ({ rank }) {\n const rankIcon = useMemo(() => rankSrcList[rank - 1], [rank]);\n return (\n
\n {rankIcon ? (\n \n ) : (\n {!rank || rank < 1000 ? formatNumber(rank, 0) : '-'}\n )}\n
\n );\n};\n\nexport default EpochRank;\n","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgListSelfLeftDark = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 56,\n viewBox: \"0 0 16 56\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 12C0 5.37258 5.37258 0 12 0H16V56H12C5.37258 56 0 50.6274 0 44V12Z\",\n fill: \"#044953\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 12C0 5.37258 5.37258 0 12 0H16V1H12C5.92487 1 1 5.92487 1 12V14.126C2.72523 14.5701 4 16.1362 4 18V38C4 39.8638 2.72523 41.4299 1 41.874V44C1 50.0751 5.92487 55 12 55H16V56H12C5.37258 56 0 50.6274 0 44V12Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgListSelfLeftDark);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/list_self_left_dark.f21fa7acc9310e3bb61ec8190905d2d8.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgListSelfRight = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 56,\n viewBox: \"0 0 16 56\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0H4C10.6274 0 16 5.37258 16 12V44C16 50.6274 10.6274 56 4 56H0V0Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 0C10.6274 0 16 5.37258 16 12V44C16 50.6274 10.6274 56 4 56H0V55H4C10.0751 55 15 50.0751 15 44V41.874C13.2748 41.4299 12 39.8638 12 38V18C12 16.1362 13.2748 14.5701 15 14.126V12C15 5.92487 10.0751 1 4 1H0V0H4Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgListSelfRight);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/list_self_right.c8b54ff45aa0d525cbd5e572f8a5bfc8.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgListSelfRightDark = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 56,\n viewBox: \"0 0 16 56\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 0H4C10.6274 0 16 5.37258 16 12V44C16 50.6274 10.6274 56 4 56H0V0Z\",\n fill: \"#044953\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4 0C10.6274 0 16 5.37258 16 12V44C16 50.6274 10.6274 56 4 56H0V55H4C10.0751 55 15 50.0751 15 44V41.874C13.2748 41.4299 12 39.8638 12 38V18C12 16.1362 13.2748 14.5701 15 14.126V12C15 5.92487 10.0751 1 4 1H0V0H4Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgListSelfRightDark);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/list_self_right_dark.a4ba376aeee683bc73d9c8a7f5ca8bdf.svg\";","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgLogoSymbol = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.5999 19.488L15.9999 15.12L6.04785 21.504L16.0319 27.28L26.0159 21.504V18.72L23.5999 19.488Z\",\n fill: \"url(#paint0_linear_2029_271)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.77574 15.648L6.03174 18.224V21.52L12.1757 17.968L9.77574 15.648Z\",\n fill: \"url(#paint1_linear_2029_271)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.0158 15.968L6.06377 18.24L1.96777 15.856L6.03177 13.648L10.0158 15.968Z\",\n fill: \"url(#paint2_linear_2029_271)\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M29.0561 11.984L16.0001 4.76801L15.6001 12.352L16.0001 19.04C16.4481 18.896 17.6161 18.32 19.0881 17.536L23.5841 20.128L29.0561 11.984Z\",\n fill: \"url(#paint3_linear_2029_271)\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 4.76801L2.95996 11.424C2.95996 11.424 14.352 17.952 16 18.48V4.76801Z\",\n fill: \"url(#paint4_linear_2029_271)\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M23.6001 9.11996V20.144L27.7121 17.76V6.73596L23.6001 9.11996Z\",\n fill: \"url(#paint5_linear_2029_271)\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.9038 11.264V21.6L16.0318 24L16.2718 18.752L16.0318 13.632L11.9038 11.264Z\",\n fill: \"url(#paint6_linear_2029_271)\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.0161 13.616V23.952L20.1441 21.568V11.264L16.0161 13.616Z\",\n fill: \"url(#paint7_linear_2029_271)\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.9999 0L1.91992 8.128L3.71192 9.712L6.03192 10.512L15.9999 4.768L23.5839 9.152L27.7119 6.768L15.9999 0Z\",\n fill: \"url(#paint8_linear_2029_271)\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.9038 11.264L16.0318 13.648L20.1118 11.28L16.0158 8.88L11.9038 11.264Z\",\n fill: \"url(#paint9_linear_2029_271)\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.91992 8.12799V12.832L15.9999 20.96L16.4959 18.592L15.9999 16.256L1.91992 8.12799Z\",\n fill: \"url(#paint10_linear_2029_271)\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.06404 18.24L1.93604 15.84V23.84L16.016 31.952L16.496 29.568L16.016 27.248L6.06404 21.504C6.06404 21.52 6.06404 18.24 6.06404 18.24Z\",\n fill: \"url(#paint11_linear_2029_271)\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16 16.256V20.96L25.952 15.216V21.536L16 27.28V32L30.08 23.872V8.12799L16 16.256Z\",\n fill: \"url(#paint12_linear_2029_271)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_2029_271\",\n x1: -7.60748,\n y1: 5.06922,\n x2: 8.35043,\n y2: 35.4367,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.27,\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_2029_271\",\n x1: 20.1483,\n y1: 11.7637,\n x2: 4.09902,\n y2: 23.1881,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.27,\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_2029_271\",\n x1: -6.02953,\n y1: 8.63934,\n x2: 11.4145,\n y2: 40.3049,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.27,\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_2029_271\",\n x1: 22.5358,\n y1: -4.18568,\n x2: 22.1026,\n y2: 20.7633,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint4_linear_2029_271\",\n x1: 9.47944,\n y1: 27.5673,\n x2: 9.47944,\n y2: -2.97884,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint5_linear_2029_271\",\n x1: 25.7097,\n y1: -1.32826,\n x2: 24.9295,\n y2: 19.2393,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint6_linear_2029_271\",\n x1: 14.2388,\n y1: 7.22788,\n x2: 10.9208,\n y2: 25.0849,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint7_linear_2029_271\",\n x1: 18.0809,\n y1: -0.0133131,\n x2: 18.0809,\n y2: 24.0431,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0098A6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#002D4D\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint8_linear_2029_271\",\n x1: 33.9452,\n y1: -5.08185,\n x2: 21.011,\n y2: 45.9376,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.315,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint9_linear_2029_271\",\n x1: 4.08191,\n y1: 18.9058,\n x2: 33.9374,\n y2: -38.4285,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.315,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint10_linear_2029_271\",\n x1: -6.99655,\n y1: 3.90578,\n x2: 38.2112,\n y2: 40.1497,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.088,\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.39,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.994,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint11_linear_2029_271\",\n x1: -9.42224,\n y1: 12.0914,\n x2: 45.0522,\n y2: 39.7449,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.098,\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.381,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.993,\n stopColor: \"#006499\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint12_linear_2029_271\",\n x1: -11.3374,\n y1: 37.4898,\n x2: 49.0932,\n y2: 26.8371,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#26FFED\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.315,\n stopColor: \"#18C4CD\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#0B90B1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#0370A0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#006499\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgLogoSymbol);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/logo_symbol.c163c1a52e9945110d1291f6b61cb08f.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgTriangleTopLeft = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.00049 9.39858e-06C0.89573 1.12928e-05 0.000223232 0.895734 0.00048834 2.00049L0.00327198 13.5898C0.00348559 14.4807 1.08074 14.9266 1.71055 14.2965L14.2939 1.70694C14.9236 1.0769 14.4774 1.06225e-08 13.5866 0L2.00049 9.39858e-06Z\",\n fill: \"#94B8BF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgTriangleTopLeft);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/triangle_top_left.2773efe1654643d8e46651e66877ec2c.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgTriangleTopRight = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.002 2.00247C16.002 0.897714 15.1063 0.00220686 14.0015 0.00247198L2.41222 0.00525576C1.52132 0.00546938 1.07541 1.08272 1.70553 1.71254L14.2951 14.2959C14.9251 14.9256 16.002 14.4794 16.002 13.5886L16.002 2.00247Z\",\n fill: \"#94B8BF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgTriangleTopRight);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/triangle_top_right.08d4b65a8cb3a8a08a134ac2ad254141.svg\";","var _g;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconChevronLeft = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n opacity: 0.4\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.99268 12.6661C8.62647 12.2999 8.62647 11.7052 8.99268 11.339L13.6802 6.65149C14.0464 6.28528 14.6411 6.28528 15.0073 6.65149C15.3735 7.0177 15.3735 7.61243 15.0073 7.97864L10.9819 12.004L15.0044 16.0294C15.3706 16.3956 15.3706 16.9904 15.0044 17.3566C14.6382 17.7228 14.0435 17.7228 13.6772 17.3566L8.98975 12.6691L8.99268 12.6661Z\",\n fill: \"black\"\n }))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconChevronLeft);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_chevron_left.341e51e1db688f20bcb375d00d8524a0.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconChevronRight = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M15.0073 12.6661C15.3735 12.2999 15.3735 11.7052 15.0073 11.339L10.3198 6.65149C9.95361 6.28528 9.35889 6.28528 8.99268 6.65149C8.62646 7.0177 8.62646 7.61243 8.99268 7.97864L13.0181 12.004L8.99561 16.0294C8.62939 16.3956 8.62939 16.9904 8.99561 17.3566C9.36182 17.7228 9.95654 17.7228 10.3228 17.3566L15.0103 12.6691L15.0073 12.6661Z\",\n fill: \"black\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconChevronRight);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_chevron_right.56e55edcdec6d1537f9d0e270a8c1d89.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconTitleRecent = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.61276 5.28933C4.61089 5.29225 4.6112 5.29486 4.6137 5.29715C4.82974 5.49173 5.04474 5.67954 5.2587 5.86058C5.40287 5.98246 5.49391 6.07819 5.53182 6.14777C5.72901 6.50871 5.46745 6.93621 5.0537 6.9359C4.41224 6.93527 3.73047 6.93621 3.00839 6.93871C2.88755 6.93913 2.79287 6.92434 2.72432 6.89433C2.48964 6.79183 2.39745 6.58996 2.39807 6.3334C2.39974 5.71986 2.40016 5.13173 2.39932 4.56902C2.39839 4.08933 2.93182 3.84808 3.29776 4.16121C3.47755 4.31496 3.64318 4.4559 3.79464 4.58402C3.7986 4.58736 3.80214 4.58694 3.80526 4.58277C4.57693 3.52048 5.57162 2.79538 6.78932 2.40746C9.65276 1.49558 12.7271 2.9384 13.9174 5.66746C15.0265 8.2109 14.1824 11.2121 11.919 12.7981C8.7087 15.0478 4.28307 13.6012 2.99214 9.91527C2.86432 9.55027 3.16682 9.2009 3.53245 9.21934C3.76714 9.2309 3.93401 9.38777 4.01089 9.60309C5.0987 12.6612 8.8612 13.8025 11.4546 11.8134C13.4265 10.3012 13.9234 7.52371 12.5824 5.42152C11.2484 3.32965 8.51245 2.5909 6.31276 3.75808C5.62526 4.12288 5.0586 4.63329 4.61276 5.28933Z\",\n fill: \"#006A80\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.54248 8.20997C9.16039 8.52142 9.77143 8.82809 10.3756 9.12997C10.5153 9.19965 10.6328 9.35465 10.6547 9.50965C10.6878 9.74611 10.6064 9.92809 10.4106 10.0556C10.2537 10.1578 10.059 10.1609 9.89279 10.0772C9.19654 9.72736 8.48914 9.37444 7.7706 9.0184C7.57716 8.92278 7.46716 8.73622 7.46716 8.51497C7.46779 7.61643 7.46779 6.73642 7.46716 5.87497C7.46685 5.42028 7.99748 5.16747 8.34685 5.46684C8.48466 5.58465 8.53435 5.7359 8.53404 5.91778C8.53195 6.71674 8.53164 7.4757 8.5331 8.19465C8.5331 8.19785 8.53398 8.20098 8.53563 8.20369C8.53729 8.20639 8.53966 8.20857 8.54248 8.20997Z\",\n fill: \"#006A80\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconTitleRecent);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_title_recent.435a876411b38d03f12e5c6491607aa8.svg\";","var _path, _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconEmpty24 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 25,\n viewBox: \"0 0 24 25\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.75 3.5C3.55109 3.5 3.36032 3.57902 3.21967 3.71967C3.07902 3.86032 3 4.05109 3 4.25V17.75C3 17.9489 3.07902 18.1397 3.21967 18.2803C3.36032 18.421 3.55109 18.5 3.75 18.5H7.5C7.91421 18.5 8.25 18.8358 8.25 19.25C8.25 19.6642 7.91421 20 7.5 20H3.75C3.15326 20 2.58097 19.7629 2.15901 19.341C1.73705 18.919 1.5 18.3467 1.5 17.75V4.25C1.5 3.65326 1.73705 3.08097 2.15901 2.65901C2.58097 2.23705 3.15326 2 3.75 2H12.75C12.9489 2 13.1397 2.07902 13.2803 2.21967L17.7803 6.71967C17.921 6.86032 18 7.05109 18 7.25V8.75C18 9.16421 17.6642 9.5 17.25 9.5C16.8358 9.5 16.5 9.16421 16.5 8.75V7.56066L12.4393 3.5H3.75Z\",\n fill: \"#1A444D\"\n })), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_415_10563)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M21.5 17C21.5 20.3137 18.8137 23 15.5 23C12.1863 23 9.5 20.3137 9.5 17C9.5 13.6863 12.1863 11 15.5 11C18.8137 11 21.5 13.6863 21.5 17ZM16.5287 20.1723C16.5287 20.4449 16.4205 20.7063 16.2277 20.899C16.035 21.0917 15.7736 21.2 15.5011 21.2C15.2285 21.2 14.9671 21.0917 14.7744 20.899C14.5817 20.7063 14.4734 20.4449 14.4734 20.1723C14.4734 19.8998 14.5817 19.6384 14.7744 19.4457C14.9671 19.253 15.2285 19.1447 15.5011 19.1447C15.7736 19.1447 16.035 19.253 16.2277 19.4457C16.4205 19.6384 16.5287 19.8998 16.5287 20.1723ZM14.6384 14.5398C14.8465 14.3929 15.1419 14.2901 15.4862 14.2901C16.3047 14.2901 16.6721 14.7947 16.6721 15.0896C16.6721 15.2736 16.5626 15.5022 16.2698 15.6815C16.259 15.6881 16.2484 15.695 16.238 15.7021L15.1034 16.3814C14.949 16.4738 14.8338 16.6187 14.7782 16.7885C14.7623 16.8369 14.7512 16.8874 14.7455 16.9396C14.7427 16.9659 14.7412 16.9923 14.7411 17.0186C14.7411 17.0194 14.7411 17.0202 14.7411 17.0211V17.7928C14.7411 17.9904 14.8196 18.1799 14.9593 18.3197C15.0991 18.4594 15.2886 18.5379 15.4862 18.5379C15.6838 18.5379 15.8733 18.4594 16.013 18.3197C16.1527 18.1799 16.2312 17.9904 16.2312 17.7928V17.443L17.0426 16.9574C17.0601 16.9469 17.0771 16.9357 17.0937 16.9239C17.7001 16.5349 18.1622 15.8865 18.1622 15.0896C18.1622 13.6786 16.8 12.8 15.4862 12.8C14.8511 12.8 14.252 12.9881 13.7792 13.322C13.325 13.6432 12.9664 14.1154 12.8497 14.694C12.8151 14.8858 12.857 15.0836 12.9665 15.2449C13.076 15.4062 13.2443 15.5181 13.4354 15.5567C13.6265 15.5953 13.8251 15.5575 13.9886 15.4513C14.1521 15.3452 14.2675 15.1791 14.31 14.9889C14.3388 14.8466 14.438 14.6816 14.6384 14.5398Z\",\n fill: \"#1A444D\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_415_10563\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 12,\n height: 12,\n fill: \"white\",\n transform: \"translate(9.5 11)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconEmpty24);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_empty_24.aedd1c91611a21cbf51ef045634630ce.svg\";","/**\n * @description Component-LeaderTablePagination\n */\nimport './index.less';\n\nimport { Pagination } from 'antd';\nimport classNames from 'classnames';\nimport moment from 'moment';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { TGP_PAGE_SIZE, TGP_TYPE } from '@/constants/tgp';\nimport { useTGPType } from '@/features/tgp/hooks';\nimport { ReactComponent as ChevronLeft } from '@/pages/TGP/assets/svg/icon_chevron_left.svg';\nimport { ReactComponent as ChevronRight } from '@/pages/TGP/assets/svg/icon_chevron_right.svg';\nimport { ReactComponent as IconRecent } from '@/pages/TGP/assets/svg/icon_title_recent.svg';\ninterface IPropTypes {\n className?: string;\n total: number;\n page: number;\n pageSize?: number;\n onPageChange: (page: number) => void;\n updatedAt: string;\n}\nconst LeaderTablePagination: FC = function ({\n total,\n onPageChange,\n updatedAt,\n page,\n pageSize = TGP_PAGE_SIZE,\n}) {\n const { t } = useTranslation();\n // const [startNumber, setStartNumber] = useState(1);\n // const [endNumber, setEndNumber] = useState(TGP_PAGE_SIZE);\n const tgpType = useTGPType();\n return (\n
\n {tgpType !== TGP_TYPE.MASTER && (\n <>\n {/*
\n {total === 0\n ? t('tgp.leaderboard.zeroPagination')\n : t('tgp.leaderboard.paginationLine', {\n startNumber,\n endNumber,\n total,\n })}\n
*/}\n }\n nextIcon={}\n pageSize={pageSize}\n total={total}\n current={page}\n showSizeChanger={false}\n defaultCurrent={1}\n showTotal={(_, range) => {\n return (\n
\n {total === 0\n ? t('tgp.leaderboard.zeroPagination')\n : t('tgp.leaderboard.paginationLine', {\n startNumber: range[0] || 1,\n endNumber: range[1] || TGP_PAGE_SIZE,\n total,\n })}\n
\n );\n // setStartNumber(range[0]);\n // setEndNumber(range[1]);\n // return null;\n }}\n onChange={onPageChange}\n />\n \n )}\n
\n \n {t('tgp.leaderboard.lastUpdated', {\n lastUpdated: moment.utc(updatedAt).local().format('MM/DD/YYYY HH:mm'),\n })}\n
\n
\n );\n};\n\nexport default LeaderTablePagination;\n","/**\n * @description Component-TGPLeaderBoardTableSkeleton\n */\nimport './index.less';\n\nimport { Skeleton as AntSkeleton } from 'antd';\nimport classNames from 'classnames';\nimport { FC } from 'react';\n\nimport { Skeleton } from '@/components/Skeleton';\nimport { TGP_TYPE } from '@/constants/tgp';\nimport { useTGPType } from '@/features/tgp/hooks';\ninterface IPropTypes {\n className?: string;\n}\nconst TGPLeaderBoardTableSkeleton: FC = function ({}) {\n const type = useTGPType();\n const list = new Array(10).fill(0);\n return (\n
\n {list.map((_, index) => (\n
\n \n {type === TGP_TYPE.MASTER && (\n
\n \n \n
\n )}\n \n \n \n \n \n
\n ))}\n
\n );\n};\n\nexport default TGPLeaderBoardTableSkeleton;\n","/**\n * @description Component-TGPLeaderBoardTable\n */\nimport './index.less';\n\nimport { Watermark } from 'antd';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport moment from 'moment';\nimport { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { FETCHING_STATUS, THEME_ENUM } from '@/constants';\nimport { TGP_MASTER_PAGE_SIZE, TGP_PAGE_SIZE, TGP_POLLING_INTERVAL, TGP_SEASON, TGP_TYPE } from '@/constants/tgp';\nimport { getTGPMasterLeaderBoard, getTGPOpenLeaderBoard, getTGPStats } from '@/features/tgp/actions';\nimport {\n useCurrentTGPWeek,\n useTGPDappConfig,\n useTGPLeaderBoard,\n useTGPLeaderBoardStatus,\n useTGPSeasonWeeks,\n useTGPType,\n} from '@/features/tgp/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport EpochRank from '@/pages/Odyssey/OdysseyLeaderboard/Epoch/EpochRank';\nimport { ReactComponent as ListLeftIcon } from '@/pages/TGP/assets/svg/list_self_left.svg';\nimport { ReactComponent as ListLeftIconD } from '@/pages/TGP/assets/svg/list_self_left_dark.svg';\nimport { ReactComponent as ListRightIcon } from '@/pages/TGP/assets/svg/list_self_right.svg';\nimport { ReactComponent as ListRightIconD } from '@/pages/TGP/assets/svg/list_self_right_dark.svg';\nimport { ReactComponent as LogoIcon } from '@/pages/TGP/assets/svg/logo_symbol.svg';\nimport { ReactComponent as TopLeftIcon } from '@/pages/TGP/assets/svg/triangle_top_left.svg';\nimport { ReactComponent as TopRightIcon } from '@/pages/TGP/assets/svg/triangle_top_right.svg';\nimport { IMasterWeek, IOpenWeek, ITGPDashboardMasterRanking } from '@/types/tgp';\nimport { pollingFunc } from '@/utils';\nimport { formatNumber } from '@/utils/numberUtil';\n\nimport { useTheme } from '@/features/global/hooks';\nimport Logo from '@/layout/Header/Logo';\nimport LeaderTablePagination from './LeaderTablePagination';\nimport TGPLeaderBoardTableSkeleton from './TGPLeaderBoardTableSkeleton';\nimport TGPLeaderTableEmpty from './TGPLeaderTableEmpty';\nimport TGPMasterTrader from './TGPMasterTrader';\nimport TGPMasterWeek from './TGPMasterWeek';\nimport TGPOpenWeek from './TGPOpenWeek';\ninterface IPropTypes {\n className?: string;\n}\nlet polling: NodeJS.Timeout;\nconst TGPLeaderBoardTable: FC = function ({}) {\n const tgpType = useTGPType();\n const { t } = useTranslation();\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n const tgpConfig = useTGPDappConfig();\n const [page, setPage] = useState(1);\n const leaderboard = useTGPLeaderBoard();\n const currentSeasonWeeks = useTGPSeasonWeeks(\n tgpType === TGP_TYPE.OPEN_2 ? TGP_SEASON.SECOND : TGP_SEASON.FIRST,\n userAddr,\n );\n const theme = useTheme();\n const currentWeek = useCurrentTGPWeek();\n const rankBase = useMemo(() => (page > 0 ? (page - 1) * TGP_PAGE_SIZE : 0), [page]);\n const leaderboardStatus = useTGPLeaderBoardStatus();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const getLeaderBoard = useCallback(\n (page?: number) => {\n page = page || 1;\n if (userAddr) {\n tgpType === TGP_TYPE.MASTER &&\n dispatch(getTGPMasterLeaderBoard({ page, userAddr, pageSize: TGP_MASTER_PAGE_SIZE }));\n tgpType === TGP_TYPE.OPEN_1 && dispatch(getTGPOpenLeaderBoard({ page, userAddr, tgpType }));\n tgpType === TGP_TYPE.OPEN_2 && dispatch(getTGPOpenLeaderBoard({ page, userAddr, tgpType }));\n }\n },\n [dispatch, tgpType, userAddr],\n );\n useEffect(() => {\n getLeaderBoard();\n setPage(1);\n dispatch(getTGPStats({}));\n }, [tgpType]);\n useEffect(() => {\n if (polling) {\n clearInterval(polling);\n }\n polling = pollingFunc(() => {\n getLeaderBoard(page);\n }, TGP_POLLING_INTERVAL);\n return () => polling && clearInterval(polling);\n }, [getLeaderBoard, page]);\n return (\n
\n
\n
\n {tgpType === TGP_TYPE.MASTER ? : }\n {t('tgp.leaderboard.rank')}\n
\n {tgpType === TGP_TYPE.MASTER && (\n
\n
\n \n {t('tgp.leaderboard.masterEth')}\n
\n
\n
{t('tgp.leaderboard.trader')}
\n
{t('tgp.leaderboard.totalScore')}
\n
\n
\n )}\n\n {currentSeasonWeeks?.map((week) => (\n \n
\n
{t(`tgp.week.weekTitle`, { week: week.week })}
\n {moment.utc(week.startTs).local().format('MM/DD')}~{moment.utc(week.endTs).local().format('MM/DD')}\n
\n
\n
{tgpType === TGP_TYPE.MASTER ? t('tgp.leaderboard.score') : t('tgp.leaderboard.trader')}
\n
\n {tgpType === TGP_TYPE.MASTER\n ? t('tgp.leaderboard.pnl', { symbol: tgpConfig.masterToken })\n : tgpType === TGP_TYPE.OPEN_1\n ? t('tgp.leaderboard.pnlShort')\n : t('tgp.leaderboard.volume')}\n
\n
\n
\n ))}\n
\n \n {tgpType === TGP_TYPE.MASTER ? t('tgp.leaderboard.prize') : t('tgp.leaderboard.weeklyP')}\n
\n
\n \n
\n {leaderboardStatus !== FETCHING_STATUS.DONE && !leaderboard?.list ? (\n \n ) : (\n <>\n {leaderboard?.list?.map((ranking, index) => (\n \n {tgpType === TGP_TYPE.MASTER &&\n (theme.dataTheme === THEME_ENUM.DARK ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n ))}\n
\n \n
\n {tgpType === TGP_TYPE.MASTER && (\n \n )}\n {tgpType === TGP_TYPE.MASTER && (\n <>\n \n \n \n \n \n )}\n {tgpType === TGP_TYPE.OPEN_1 && (\n <>\n \n \n \n \n \n )}\n {tgpType === TGP_TYPE.OPEN_2 && (\n <>\n \n \n \n \n \n )}\n
\n \n {/* {WrappedBigNumber.from(ranking.prize).formatNumberWithTooltip({\n suffix: tgpConfig.prizeCurrency,\n })} */}\n {formatNumber(ranking.prize, 0)} {tgpConfig.prizeCurrency}\n \n
\n
\n ))}\n {leaderboard?.list.length === 0 && }\n \n )}\n
\n \n\n {\n setPage(page);\n getLeaderBoard(page);\n }}\n total={leaderboard?.totals || 0}\n />\n \n );\n};\n\nexport default TGPLeaderBoardTable;\n","var _path, _path2, _path3;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconTitleLucky = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M11.8286 3.14055C9.98948 3.74804 8.98816 5.55425 9.46905 7.39657C9.68518 8.22441 9.89023 8.4668 13.031 11.607L15.9985 14.5738L18.966 11.607C22.1068 8.4668 22.3118 8.22441 22.5279 7.39657C23.4547 3.84658 19.2937 1.58353 16.5981 4.17143L15.9985 4.74702L15.3989 4.17143C14.3591 3.17309 12.9562 2.76805 11.8286 3.14055ZM12.9444 20.5139C9.7388 23.7363 9.65335 23.8387 9.44863 24.7075C8.61683 28.2363 12.7326 30.4106 15.3989 27.8508L15.9985 27.2752L16.5981 27.8508C17.8008 29.0055 19.3153 29.3154 20.6473 28.6794C22.4513 27.818 23.178 25.6586 22.2552 23.9015C22.0913 23.5895 16.1388 17.4829 15.9985 17.4829C15.9772 17.4829 14.6028 18.8469 12.9444 20.5139Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.12546 15.3984C2.13893 13.3312 2.88933 10.1569 5.53243 9.44686C6.36829 9.22234 7.47545 9.37752 8.20988 9.82221C8.46969 9.97946 9.60308 11.06 11.5735 13.0289L14.5453 15.9983L11.5735 18.9678C8.03416 22.5044 7.83909 22.6444 6.43491 22.6567C3.26973 22.6846 1.85159 18.9645 4.12546 16.5983L4.70202 15.9983L4.12546 15.3984Z\",\n fill: \"#006A80\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M20.3966 13.0289C23.5421 9.88591 23.7849 9.68073 24.6141 9.46444C26.2815 9.02961 27.9333 9.79516 28.6746 11.3464C29.3117 12.6793 29.0013 14.1948 27.8447 15.3984L27.2681 15.9983L27.8447 16.5983C30.4369 19.2958 28.1701 23.4596 24.6141 22.5323C23.7849 22.316 23.5421 22.1108 20.3966 18.9678L17.4248 15.9983L20.3966 13.0289Z\",\n fill: \"#006A80\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconTitleLucky);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_title_lucky.4e16bbcef71340b1ac8dfbe59a34e2c8.svg\";","/**\n * @description Component-TGPLeaderTableEmpty\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as EmptyIcon } from '@/pages/TGP/assets/svg/icon_empty_24.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPLeaderTableEmpty: FC = function ({}) {\n const { t } = useTranslation();\n return (\n
\n \n {t('tgp.noRecord')}\n
\n );\n};\n\nexport default TGPLeaderTableEmpty;\n","/**\n * @description Component-Ellipsis\n */\nimport './index.less';\n\nimport React, { FC, useEffect, useRef, useState } from 'react';\n\nimport { Tooltip } from '@/components/ToolTip';\ninterface IPropTypes {\n children?: React.ReactNode;\n tooltip?: boolean;\n length?: number;\n}\nconst Ellipsis: FC = function ({ tooltip, length, children }) {\n const ref = useRef(null);\n const [isOverFlowed, setIsOverFlowed] = useState(false);\n useEffect(() => {\n const myDiv = ref.current;\n setIsOverFlowed(myDiv ? myDiv.scrollWidth > myDiv.clientWidth : false);\n }, [children]);\n return (\n \n
\n {children}\n
\n
\n );\n};\n\nexport default Ellipsis;\n","/**\n * @description Component-RankProfileImg\n */\nimport './index.less';\n\nimport { Jazzicon } from '@uktvs/jazzicon-react';\nimport _ from 'lodash';\nimport { FC, useMemo } from 'react';\n\nimport bronzeRing from '@/pages/TGP/assets/images/avatar_frame_bronze.png';\nimport goldRing from '@/pages/TGP/assets/images/avatar_frame_gold.png';\nimport silverRing from '@/pages/TGP/assets/images/avatar_frame_silver.png';\ninterface IPropTypes {\n realRank: number;\n className?: string;\n imgUrl: string | undefined;\n isOpen?: boolean;\n userId: string | undefined;\n}\nconst rankMap = { 1: goldRing, 2: silverRing, 3: bronzeRing };\nconst RankProfileImg: FC = function ({ realRank, imgUrl, isOpen, userId }) {\n const rankImg = useMemo(() => _.get(rankMap, [realRank]), [realRank]);\n return (\n
\n {rankImg && }\n {isOpen ? (\n
\n \n
\n ) : (\n \n )}\n
\n );\n};\n\nexport default RankProfileImg;\n","/**\n * @description Component-TGPMasteTrader\n */\nimport './index.less';\n\nimport { FC } from 'react';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { ITGPDashboardMasterRanking } from '@/types/tgp';\n\nimport Ellipsis from '../../components/Ellipsis';\nimport RankProfileImg from '../../components/RankProfileImg';\ninterface IPropTypes {\n ranking: ITGPDashboardMasterRanking;\n className?: string;\n realRank: number;\n}\nconst TGPMasterTrader: FC = function ({ ranking, realRank }) {\n return (\n
\n
\n \n
\n \n {ranking.twitterUsername || ranking.username || ranking.userId}\n \n
\n
\n \n {ranking.totalScores}\n \n
\n );\n};\n\nexport default TGPMasterTrader;\n","/**\n * @description Component-TGPMasterWeek\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { formatNumberWithTooltip } from '@/components/NumberFormat';\nimport { useCurrentTGPWeek } from '@/features/tgp/hooks';\nimport { IMasterWeek } from '@/types/tgp';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n week: IMasterWeek | undefined;\n index: number;\n}\nconst TGPMasterWeek: FC = function ({ week, index }) {\n const currentWeek = useCurrentTGPWeek();\n return (\n \n <>\n {week?.scores || 0}\n \n {formatNumberWithTooltip({\n num: week?.PnL ? (week?.PnL || 0) / 1e18 : '',\n })}\n \n \n \n );\n};\n\nexport default TGPMasterWeek;\n","/**\n * @description Component-ITGPOpenWeek\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { isNil } from 'lodash';\nimport React, { FC } from 'react';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { formatNumberWithTooltip } from '@/components/NumberFormat';\nimport { Tooltip } from '@/components/ToolTip';\nimport { TGP_TYPE } from '@/constants/tgp';\nimport { useCurrentTGPWeek, useTGPType } from '@/features/tgp/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { ReactComponent as ListLeftIcon } from '@/pages/TGP/assets/svg/list_self_left.svg';\nimport { ReactComponent as ListLeftIconD } from '@/pages/TGP/assets/svg/list_self_left_dark.svg';\nimport { ReactComponent as ListRightIcon } from '@/pages/TGP/assets/svg/list_self_right.svg';\nimport { ReactComponent as ListRightIconD } from '@/pages/TGP/assets/svg/list_self_right_dark.svg';\nimport { IOpenWeek } from '@/types/tgp';\nimport { shortenAddress } from '@/utils/address';\n\nimport { THEME_ENUM } from '@/constants';\nimport { useTheme } from '@/features/global/hooks';\nimport RankProfileImg from '../../components/RankProfileImg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n week: IOpenWeek | undefined;\n index: number;\n realRank: number;\n}\nconst TGPOpenWeek: FC = function ({ week, index, realRank }) {\n const userAddr = useUserAddr();\n const tgpType = useTGPType();\n const currentWeek = useCurrentTGPWeek();\n const theme = useTheme();\n return (\n \n {theme.dataTheme === THEME_ENUM.DARK ? (\n <>\n \n \n \n ) : (\n <>\n \n \n \n )}\n
\n \n \n
\n {shortenAddress(week?.userId || '', true)}\n
\n
\n
\n
\n \n {formatNumberWithTooltip({\n num: (tgpType === TGP_TYPE.OPEN_1 ? (week?.PnL ? (week?.PnL || 0) / 1e18 : '') : week?.volume) || '',\n isShowTBMK: tgpType === TGP_TYPE.OPEN_2,\n prefix: '$',\n })}\n \n
\n \n );\n};\n\nexport default TGPOpenWeek;\n","/**\n * @description Component-TGPLeaderBoard\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\n\nimport TGPLeaderBoardHeader from './TGPLeaderBoardHeader';\nimport TGPLeaderBoardTable from './TGPLeaderBoardTable';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPLeaderBoard: FC = function ({}) {\n return (\n
\n \n
\n \n
\n );\n};\n\nexport default TGPLeaderBoard;\n","var _path, _path2, _path3, _path4;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgTitleDecor = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 87,\n height: 24,\n viewBox: \"0 0 87 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M57 21.004L75 3.00403H84L66 21.004H57Z\",\n fill: \"#00BFBF\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M39 21.004L57 3.00403H66L48 21.004H39Z\",\n fill: \"#00BFBF\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21 21.004L39 3.00403H48L30 21.004H21Z\",\n fill: \"#006A80\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 21.004L21 3.00403H30L12 21.004H3Z\",\n fill: \"#006A80\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgTitleDecor);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/title_decor.49b44ce805ae18e59e6ba4658f2ee4de.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconArrowLeft = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 24.004C18.6274 24.004 24 18.6314 24 12.004C24 5.37661 18.6274 0.00402832 12 0.00402832C5.37258 0.00402832 0 5.37661 0 12.004C0 18.6314 5.37258 24.004 12 24.004ZM19.3672 12.6056C19.4453 12.4181 19.4844 12.2176 19.4844 12.004C19.4792 11.7853 19.4375 11.5848 19.3594 11.4025C19.2812 11.2202 19.1719 11.0561 19.0312 10.9103C18.8906 10.7644 18.7266 10.6525 18.5391 10.5743C18.3516 10.4962 18.151 10.4572 17.9375 10.4572H9.78906L11.9844 8.26965C12.1302 8.12382 12.2422 7.95715 12.3203 7.76965C12.3984 7.58215 12.4375 7.38684 12.4375 7.18372C12.4375 6.97017 12.3958 6.76965 12.3125 6.58215C12.2292 6.39465 12.1198 6.23059 11.9844 6.08997C11.849 5.94934 11.6875 5.83736 11.5 5.75403C11.3125 5.67069 11.112 5.62903 10.8984 5.62903C10.6953 5.62903 10.4974 5.66809 10.3047 5.74622C10.112 5.82434 9.94271 5.93632 9.79688 6.08215L4.99219 10.8947C4.85156 11.0353 4.73698 11.1941 4.64844 11.3712C4.5599 11.5483 4.51562 11.7384 4.51562 11.9415C4.51562 12.1863 4.55208 12.3999 4.625 12.5822C4.69792 12.7644 4.82031 12.9415 4.99219 13.1134L9.79688 17.9259C9.94792 18.0717 10.1172 18.1837 10.3047 18.2618C10.4922 18.34 10.6875 18.379 10.8906 18.379C11.1094 18.3738 11.3099 18.3322 11.4922 18.254C11.6745 18.1759 11.8385 18.0665 11.9844 17.9259C12.1302 17.7853 12.2422 17.6212 12.3203 17.4337C12.3984 17.2462 12.4375 17.0457 12.4375 16.8322C12.4375 16.629 12.3984 16.4311 12.3203 16.2384C12.2422 16.0457 12.1302 15.879 11.9844 15.7384L9.78906 13.5509H17.9375C18.1562 13.5457 18.3568 13.504 18.5391 13.4259C18.7214 13.3478 18.8854 13.2384 19.0312 13.0978C19.1771 12.9572 19.2891 12.7931 19.3672 12.6056Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconArrowLeft);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_arrow_left.155cb2c21142d98b948fa07de090092f.svg\";","/**\n * @description Component-TGPLuckyDrawEmpty\n */\nimport './index.less';\n\nimport { FC, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport OdysseyButton from '@/pages/Odyssey/components/OdysseyButton';\ninterface IPropTypes {\n className?: string;\n}\nconst TGPLuckyDrawEmpty: FC = function ({}) {\n const { t } = useTranslation();\n const scrollToTop = useCallback(() => {\n const tgpEl = document.getElementById('tgp');\n if (tgpEl) {\n tgpEl.scrollTo({ top: 0, behavior: 'smooth' });\n }\n }, []);\n return (\n
\n
\n {t('tgp.luckydraw.joinAndShare')}\n \n {t('tgp.luckydraw.joinNow')}\n \n
\n
\n );\n};\n\nexport default TGPLuckyDrawEmpty;\n","/**\n * @description Component-TGPLuckyDrawModal\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { GlobalModalType } from '@/constants';\nimport { TGP_LUCK_USER_STATUS } from '@/constants/tgp';\nimport { useModalOpen, useToggleModal } from '@/features/global/hooks';\nimport { useIsMaster, useSelectedLuckyWeek, useTGPDappConfig, useTGPWeekState } from '@/features/tgp/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { getShareStorageKey, useTGPWeek } from '@/utils/tgp';\n\nimport TGPModal from '../../components/TGPModal';\nimport TGPTwitterDiscord from '../../components/TGPModal/TGPTwitterDiscord';\n// import { useCurrentLuckyWeek } from '@/features/tgp/hooks';\n// import moment from 'moment';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPLuckyDrawModal: FC = function ({}) {\n const modalOpen = useModalOpen(GlobalModalType.LUCKY_DRAW);\n const { t } = useTranslation();\n const userAddr = useUserAddr();\n const selectedWeek = useSelectedLuckyWeek();\n const week = useTGPWeek(selectedWeek);\n const tgpConfig = useTGPDappConfig();\n const weekWithState = useTGPWeekState(userAddr, selectedWeek);\n const toggleModal = useToggleModal(GlobalModalType.LUCKY_DRAW);\n const isMaster = useIsMaster(userAddr);\n const type = 'luckyDraw';\n return (\n {\n if (userAddr) {\n const storageKey = getShareStorageKey(type, isMaster, selectedWeek, userAddr);\n const status = Number(localStorage.getItem(storageKey) || 0);\n if (status === TGP_LUCK_USER_STATUS.JOINED) {\n localStorage.setItem(storageKey, TGP_LUCK_USER_STATUS.DISCORD_CONFIRMED.toString());\n }\n toggleModal(false);\n }\n }}\n title={t('tgp.modal.congrat')}\n centerTitle={t('tgp.modal.luckyDraw.centerTitle')}\n centerNum={`${weekWithState?.prize?.toString()} ${tgpConfig.prizeCurrency}`}>\n
\n
\n }}\n />\n
\n\n toggleModal(false)}\n />\n
\n \n );\n};\n\nexport default TGPLuckyDrawModal;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconArrowRight = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 24.004C18.6274 24.004 24 18.6314 24 12.004C24 5.37661 18.6274 0.00402832 12 0.00402832C5.37258 0.00402832 0 5.37661 0 12.004C0 18.6314 5.37258 24.004 12 24.004ZM4.63281 12.6056C4.55469 12.4181 4.51562 12.2176 4.51562 12.004C4.52083 11.7853 4.5625 11.5848 4.64062 11.4025C4.71875 11.2202 4.82812 11.0561 4.96875 10.9103C5.10938 10.7644 5.27344 10.6525 5.46094 10.5743C5.64844 10.4962 5.84896 10.4572 6.0625 10.4572H14.2109L12.0156 8.26965C11.8698 8.12382 11.7578 7.95715 11.6797 7.76965C11.6016 7.58215 11.5625 7.38684 11.5625 7.18372C11.5625 6.97017 11.6042 6.76965 11.6875 6.58215C11.7708 6.39465 11.8802 6.23059 12.0156 6.08997C12.151 5.94934 12.3125 5.83736 12.5 5.75403C12.6875 5.67069 12.888 5.62903 13.1016 5.62903C13.3047 5.62903 13.5026 5.66809 13.6953 5.74622C13.888 5.82434 14.0573 5.93632 14.2031 6.08215L19.0078 10.8947C19.1484 11.0353 19.263 11.1941 19.3516 11.3712C19.4401 11.5483 19.4844 11.7384 19.4844 11.9415C19.4844 12.1863 19.4479 12.3999 19.375 12.5822C19.3021 12.7644 19.1797 12.9415 19.0078 13.1134L14.2031 17.9259C14.0521 18.0717 13.8828 18.1837 13.6953 18.2618C13.5078 18.34 13.3125 18.379 13.1094 18.379C12.8906 18.3738 12.6901 18.3322 12.5078 18.254C12.3255 18.1759 12.1615 18.0665 12.0156 17.9259C11.8698 17.7853 11.7578 17.6212 11.6797 17.4337C11.6016 17.2462 11.5625 17.0457 11.5625 16.8322C11.5625 16.629 11.6016 16.4311 11.6797 16.2384C11.7578 16.0457 11.8698 15.879 12.0156 15.7384L14.2109 13.5509H6.0625C5.84375 13.5457 5.64323 13.504 5.46094 13.4259C5.27865 13.3478 5.11458 13.2384 4.96875 13.0978C4.82292 12.9572 4.71094 12.7931 4.63281 12.6056Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconArrowRight);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_arrow_right.00bf995f3d27d9a2080bba103e2b8a14.svg\";","var _rect, _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgLuckyDrawTriangle = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 16,\n viewBox: \"0 0 32 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, /*#__PURE__*/React.createElement(\"mask\", {\n id: \"mask0_2081_20178\",\n style: {\n maskType: \"alpha\"\n },\n maskUnits: \"userSpaceOnUse\",\n x: 0,\n y: 0,\n width: 32,\n height: 17\n }, _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n width: 32,\n height: 16,\n transform: \"matrix(1 0 0 -1 0 16.004)\",\n fill: \"#FF0000\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#mask0_2081_20178)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0.707107 16.004L16 0.711135L31.2929 16.004L16 31.2969L0.707107 16.004Z\",\n fill: \"url(#paint0_radial_2081_20178)\",\n stroke: \"#C3E7E7\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint0_radial_2081_20178\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(16 0.00402832) rotate(90) scale(32)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.5,\n stopColor: \"#C6ECEC\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#C6ECEC\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgLuckyDrawTriangle);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/lucky_draw_triangle.b974205bd6674c87b7e2a45f28c037ff.svg\";","/**\n * @description Component-TGPLuckyDrawPhases\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport moment from 'moment';\nimport React, { FC, useCallback, useEffect } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport { Button } from '@/components/Button';\nimport { Tooltip } from '@/components/ToolTip';\nimport { GlobalModalType } from '@/constants';\nimport { TGP_SEASON } from '@/constants/tgp';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { getTGPLuckyDrawTicket, setSelectedLuckyWeek, setTGPSelectedSeason } from '@/features/tgp/actions';\nimport {\n useCurrentTGPWeek,\n useIsMaster,\n useSelectedLuckyWeek,\n useTGPDappConfig,\n useTGPSeasonWeeks,\n useTGPSelectedSeason,\n useTGPTwitterLink,\n useTGPUser,\n} from '@/features/tgp/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { ReactComponent as ShareIcon } from '@/pages/TGP/assets/svg/icon_share_16.svg';\nimport { TGP_LUCK_DRAW_USER_STATUS, TGP_USER_STATUS } from '@/types/tgp';\n\nimport { ReactComponent as IconLeft } from './assets/icon_arrow_left.svg';\nimport { ReactComponent as IconRight } from './assets/icon_arrow_right.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPLuckyDrawPhases: FC = function ({}) {\n const { t } = useTranslation();\n const userAddr = useUserAddr();\n const currentWeek = useCurrentTGPWeek();\n const dispatch = useAppDispatch();\n const selectedWeek = useSelectedLuckyWeek();\n const isMaster = useIsMaster(userAddr);\n const tgpUser = useTGPUser(userAddr);\n const tgpConfig = useTGPDappConfig();\n const season = useTGPSelectedSeason();\n const chainId = useChainId();\n const weeksWithUserState = useTGPSeasonWeeks(season, userAddr);\n const twitterLink = useTGPTwitterLink(currentWeek, 'luckyDraw', 'shareToGetTicket', isMaster);\n\n const toggledDrawModal = useToggleModal(GlobalModalType.LUCKY_DRAW);\n const toggleTicketModal = useToggleModal(GlobalModalType.LUCK_TICKET);\n useEffect(() => {\n let selectedWeek = currentWeek ? currentWeek - 1 : 0;\n if (season === TGP_SEASON.SECOND && currentWeek === 5) {\n selectedWeek = 0;\n }\n dispatch(setSelectedLuckyWeek(selectedWeek));\n }, [currentWeek, dispatch]);\n const shareOnTwitter = useCallback(() => {\n if (userAddr) {\n dispatch(getTGPLuckyDrawTicket({ userAddr, chainId }));\n setTimeout(() => toggleTicketModal(true), 3000);\n }\n }, [dispatch, toggleTicketModal, userAddr, chainId]);\n return (\n
\n
\n {season !== TGP_SEASON.FIRST && (\n {\n dispatch(setTGPSelectedSeason(TGP_SEASON.FIRST));\n dispatch(setSelectedLuckyWeek(currentWeek < 5 ? currentWeek - 1 : 4));\n }}\n className={classNames('syn-t-gPLucky-draw-phases-weeks-icon left', {\n // disabled: season === TGP_SEASON.FIRST,\n })}\n />\n )}\n {season !== TGP_SEASON.SECOND && (\n {\n dispatch(setTGPSelectedSeason(TGP_SEASON.SECOND));\n if (currentWeek > 5) {\n dispatch(setSelectedLuckyWeek(currentWeek > 5 ? currentWeek - 1 : 5));\n } else {\n dispatch(setSelectedLuckyWeek(0));\n }\n }}\n className={classNames('syn-t-gPLucky-draw-phases-weeks-icon right', {\n // disabled: season === TGP_SEASON.SECOND,\n })}\n />\n )}\n {weeksWithUserState?.map((week, index) => (\n \n
\n
{t(`tgp.week.weekTitle`, { week: week.week })}
\n
\n {moment.utc(week.startTs).local().format('MM/DD')}~{moment.utc(week.endTs).local().format('MM/DD')}\n
\n
\n
\n ))}\n
\n {tgpUser && tgpUser.status >= TGP_USER_STATUS.DEFAULT && (\n
\n {weeksWithUserState?.map((week, index) => (\n {\n if (currentWeek && week.week < currentWeek && week.status !== TGP_LUCK_DRAW_USER_STATUS.NOT_OPEN) {\n dispatch(setSelectedLuckyWeek(week.week));\n }\n }}\n className={classNames('syn-t-gPLucky-draw-phases-tiles-item', {\n first: index === 0,\n last: index === 3,\n active: week.week === selectedWeek,\n off: week.week <= currentWeek,\n current: week.week === currentWeek,\n selectable: week.week < currentWeek,\n not_started: week.week > currentWeek,\n })}>\n {week.week > currentWeek &&
{t('tgp.luckydraw.notStarted')}
}\n {week.week === currentWeek && (\n
\n
{t('tgp.luckydraw.onGoing')}
\n
\n {week.ticket ? (\n <>\n {t('tgp.luckydraw.yourTicket')} #{week.ticket}\n \n ) : (\n \n {t('tgp.luckydraw.shareLine')}\n \n \n )}\n
\n
\n )}\n {week.week < currentWeek && (\n
\n
{t('tgp.luckydraw.ended')}
\n\n
\n {(week.status === TGP_LUCK_DRAW_USER_STATUS.OPEN_WINNER ||\n week.status === TGP_LUCK_DRAW_USER_STATUS.CLAIMED) && (\n <>\n }}\n />{' '}\n {week.status === TGP_LUCK_DRAW_USER_STATUS.CLAIMED ? (\n \n \n \n ) : (\n \n )}\n \n )}\n {week.status === TGP_LUCK_DRAW_USER_STATUS.OPEN_LOSER && (\n
{t('tgp.luckydraw.notwon')}
\n )}\n {!week.ticket &&
{t('tgp.luckydraw.notJoin')}
}\n {week.status === TGP_LUCK_DRAW_USER_STATUS.NOT_OPEN && week.ticket && (\n <>\n {t('tgp.luckydraw.yourTicket')} #{week.ticket}\n \n )}\n
\n
\n )}\n
\n ))}\n
\n )}\n
\n );\n};\n\nexport default TGPLuckyDrawPhases;\n","/**\n * @description Component-TGPLuckyDrawWinners\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { FC, useEffect, useMemo } from 'react';\n\nimport { getTGPLuckyDrawWinners } from '@/features/tgp/actions';\nimport { useCurrentLuckyWeekWinners, useSelectedLuckyWeek, useTGPUser } from '@/features/tgp/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { ReactComponent as TriangleIcon } from '@/pages/TGP/assets/svg/lucky_draw_triangle.svg';\n\nimport TGPName from '../../components/TGPName';\n\ninterface IPropTypes {\n className?: string;\n}\nconst TGPLuckyDrawWinners: FC = function ({}) {\n const selectedWeek = useSelectedLuckyWeek();\n const luckyWinners = useCurrentLuckyWeekWinners(selectedWeek);\n const dispatch = useAppDispatch();\n const userAddr = useUserAddr();\n const user = useTGPUser(userAddr);\n const currentWeekState = useMemo(\n () => _.find(user?.luckyDraws, (draw) => draw.week === selectedWeek),\n [selectedWeek, user?.luckyDraws],\n );\n useEffect(() => {\n userAddr && dispatch(getTGPLuckyDrawWinners({ userAddr }));\n }, [dispatch]);\n if (!luckyWinners?.length) {\n return null;\n }\n return (\n
\n \n {luckyWinners?.map((winner) => (\n \n
{winner.ticket}
\n
\n \n
\n
\n ))}\n
\n );\n};\n\nexport default TGPLuckyDrawWinners;\n","/**\n * @description Component-TGPLuckyDraw\n */\nimport './index.less';\n\nimport React, { FC, useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { getTGPLuckyDrawWinners } from '@/features/tgp/actions';\nimport { useTGPUser } from '@/features/tgp/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { ReactComponent as IconLucky } from '@/pages/TGP/assets/svg/icon_title_lucky.svg';\nimport { ReactComponent as IconDecor } from '@/pages/TGP/assets/svg/title_decor.svg';\nimport { TGP_USER_STATUS } from '@/types/tgp';\n\nimport TGPLuckyDrawEmpty from './TGPLuckyDrawEmpty';\nimport TGPLuckyDrawModal from './TGPLuckyDrawModal';\nimport TGPLuckyDrawPhases from './TGPLuckyDrawPhases';\nimport TGPLuckyDrawWinners from './TGPLuckyDrawWinners';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TGPLuckyDraw: FC = function ({}) {\n const { t } = useTranslation();\n const userAddr = useUserAddr();\n const dispatch = useAppDispatch();\n const tgpUser = useTGPUser(userAddr);\n useEffect(() => {\n userAddr && tgpUser && dispatch(getTGPLuckyDrawWinners({ userAddr }));\n }, [userAddr, tgpUser]);\n return (\n
\n
\n
\n \n {t('tgp.luckydraw.title')}\n
\n \n
\n
\n \n {tgpUser && tgpUser.status >= TGP_USER_STATUS.DEFAULT ? : }\n
\n \n
\n );\n};\n\nexport default TGPLuckyDraw;\n","/**\n * @description Component-OdysseySquareButton\n */\nimport './index.less';\n\nimport { FC } from 'react';\n\nimport { Button } from '@/components/Button';\nimport { IButtonProps } from '@/types/button';\n\nconst OdysseySquareButton: FC = function (props) {\n return \n );\n};\n","import { RightArrow } from '@/assets/svg';\nimport { Button } from '@/components/Button';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { CampaignData, getTagColor } from '@/constants/campaign';\nimport { setSelectedLeaderboardCampaignId } from '@/features/campaign/slice';\nimport { useAppDispatch } from '@/hooks';\nimport { useDappChainConfig } from '@/hooks/web3/useChain';\nimport SkeletonButton from 'antd/es/skeleton/Button';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { CampaignCardDescription } from '../elements/CampaignCardDescription';\nimport { CampaignCardPeriod } from '../elements/CampaignCardPeriod';\nimport { CampaignCardTitle } from '../elements/CampaignTitle';\nimport CampaignCardContainer, { CampaignCardTag, CampaignCardTags, CampaignLeaderboardBtn } from '../elements/common';\nimport './index.less';\nexport default function CampaignBannerCard({\n campaignData,\n className,\n isSkeleton = false,\n ...others\n}: ComponentProps<'div'> & { campaignData: CampaignData; btnRequired?: boolean; isSkeleton?: boolean }) {\n const { isMobile } = useMediaQueryDevice();\n const chainConfig = useDappChainConfig(campaignData.chainId || undefined);\n const dispatch = useAppDispatch();\n if (isSkeleton) {\n return (\n \n \n
\n {isMobile ? (\n <>\n \n \n \n
\n {new Array(3).fill(0).map((_, i) => {\n return (\n \n );\n })}\n
\n \n ) : (\n
\n \n \n \n
\n {new Array(3).fill(0).map((_, i) => {\n return (\n \n );\n })}\n
\n
\n )}\n \n \n
\n \n );\n }\n return (\n \n \n {campaignData.showLeaderBoard && (\n {\n dispatch(setSelectedLeaderboardCampaignId({ selectedLeaderboardCampaignId: campaignData.id }));\n }}\n />\n )}\n \n
\n {isMobile ? (\n <>\n {campaignData.title}\n {campaignData.description}\n \n {campaignData.tags.map(({ url, name: title }, i) => {\n return (\n \n {title}\n \n );\n })}\n \n \n ) : (\n
\n {campaignData.title}\n {campaignData.description}\n \n {campaignData.tags.map(({ url, name: title }, i) => {\n return (\n \n {title}\n \n );\n })}\n \n
\n )}\n\n \n \n
\n \n );\n}\n","import { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { CampaignData } from '@/constants/campaign';\nimport SkeletonButton from 'antd/es/skeleton/Button';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { CampaignCardDescription } from '../elements/CampaignCardDescription';\nimport { CampaignCardPeriod } from '../elements/CampaignCardPeriod';\nimport { CampaignCardTitle } from '../elements/CampaignTitle';\nimport CampaignCardContainer from '../elements/common';\nimport './index.less';\n\nexport const ExpiredCampaignCard = ({\n campaignData,\n className,\n isSkeleton = false,\n ...others\n}: ComponentProps<'div'> & { campaignData: CampaignData; isSkeleton?: boolean }) => {\n const { deviceType } = useMediaQueryDevice();\n\n if (isSkeleton) {\n return (\n \n {deviceType !== 'mobile' && (\n
\n \n
\n )}\n
\n
\n \n {deviceType !== 'mobile' && (\n \n )}\n
\n \n
\n \n );\n }\n\n return (\n \n {deviceType !== 'mobile' && (\n
\n
\n \n )}\n
\n
\n {campaignData.title}\n {deviceType !== 'mobile' && {campaignData.description}}\n
\n \n
\n \n );\n};\n","import { RightArrow } from '@/assets/svg';\nimport { Button } from '@/components/Button';\nimport { CampaignData, CampaignStatus, getTagColor } from '@/constants/campaign';\nimport { setSelectedLeaderboardCampaignId } from '@/features/campaign/slice';\nimport { useAppDispatch } from '@/hooks';\nimport { useDappChainConfig } from '@/hooks/web3/useChain';\nimport SkeletonButton from 'antd/es/skeleton/Button';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { CampaignCardDescription } from '../elements/CampaignCardDescription';\nimport { CampaignCardPeriod } from '../elements/CampaignCardPeriod';\nimport { CampaignCardTitle } from '../elements/CampaignTitle';\nimport CampaignCardContainer, { CampaignCardTag, CampaignCardTags, CampaignLeaderboardBtn } from '../elements/common';\nimport './index.less';\nexport default function CampaignDetailCard({\n campaignData,\n className,\n btnRequired = false,\n isSkeleton = false,\n ...others\n}: ComponentProps<'div'> & { campaignData: CampaignData; btnRequired?: boolean; isSkeleton?: boolean }) {\n const chainConfig = useDappChainConfig(campaignData.chainId || undefined);\n const dispatch = useAppDispatch();\n\n if (isSkeleton) {\n return (\n
\n \n \n \n
\n \n \n\n
\n {new Array(3).fill(0).map((_, i) => {\n return (\n \n );\n })}\n
\n \n
\n
\n \n \n );\n }\n return (\n
\n \n {/* */}\n \n {campaignData.showLeaderBoard && campaignData.status === CampaignStatus.Ongoing && (\n {\n dispatch(setSelectedLeaderboardCampaignId({ selectedLeaderboardCampaignId: campaignData.id }));\n }}\n />\n )}\n
\n \n
\n
\n {campaignData.title}\n {campaignData.description}\n
\n\n \n {campaignData.tags.map(({ url, name: title }, i) => {\n return (\n \n {title}\n \n );\n })}\n \n \n
\n \n \n {btnRequired && (\n \n )}\n \n );\n}\n","import { CampaignData } from '@/constants/campaign';\nimport SkeletonButton from 'antd/es/skeleton/Button';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { CampaignCardPeriod } from '../CampaignCardPeriod';\nimport { CampaignCardTitle } from '../CampaignTitle';\nimport CampaignCardContainer from '../common';\nimport './index.less';\nexport const OngoingUpcomingMobileCampaignCard = ({\n campaignData,\n className,\n isSkeleton = false,\n ...others\n}: ComponentProps<'div'> & { campaignData: CampaignData; isSkeleton?: boolean }) => {\n if (isSkeleton) {\n return (\n \n \n
\n \n \n \n
\n \n );\n }\n return (\n \n \n
\n {campaignData.title}\n \n
\n \n );\n};\n","import { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { CampaignData } from '@/constants/campaign';\nimport CampaignDetailCard from '../CampaignDetailCard';\nimport { OngoingUpcomingMobileCampaignCard } from '../elements/OngoingUpcomingMobileCampaignCard';\nimport './index.less';\nexport default function OngoingCampaignCard({\n campaignData,\n isSkeleton = false,\n}: {\n campaignData: CampaignData;\n isSkeleton?: boolean;\n}) {\n const { isMobile } = useMediaQueryDevice();\n return isMobile ? (\n \n ) : (\n \n );\n}\n","import { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { CampaignData } from '@/constants/campaign';\nimport CampaignDetailCard from '../CampaignDetailCard';\nimport { OngoingUpcomingMobileCampaignCard } from '../elements/OngoingUpcomingMobileCampaignCard';\nimport './index.less';\nexport default function UpcomingCampaignCard({\n campaignData,\n isSkeleton = false,\n}: {\n campaignData: CampaignData;\n isSkeleton?: boolean;\n}) {\n const { isMobile } = useMediaQueryDevice();\n return isMobile ? (\n \n ) : (\n \n );\n}\n","import { CampaignData, CampaignRawData, CampaignStatus } from '@/constants/campaign';\nimport { CHAIN_ID } from '@/constants/chain';\nimport moment from 'moment';\nexport const campaignRawToData = (rawData: CampaignRawData): CampaignData => {\n const isBanner = rawData.isBanner === 0 ? false : true;\n return {\n id: Number(rawData.id),\n title: rawData.title,\n description: rawData.description,\n tags: rawData.tags,\n bannerOrder: rawData.bannerOrder,\n chainId:\n rawData.chainId !== 'all' && Object.values(CHAIN_ID).includes(Number(rawData.chainId))\n ? Number(rawData.chainId)\n : null,\n isBanner,\n status: rawData.status as CampaignStatus,\n period: rawData.endTime\n ? `${moment(rawData.startTime).format('Do MMM')}~${moment(rawData.endTime).format('Do MMM YYYY')}, UTC`\n : `Start at ${moment(rawData.startTime).format('Do MMM YYYY')}, UTC`,\n button: { title: rawData.buttonTitle, url: rawData.buttonClickUrl },\n cardUrl: rawData.cardClickUrl,\n imgSrc: rawData.cardImageUrl,\n startTimestamp: rawData.startTime,\n endTimestamp: rawData.endTime,\n leaderboardDes: rawData.leadBoardDes,\n showLeaderBoard: rawData.showLeadBoard === 1 ? true : false,\n };\n};\n","import { CampaignLeaderboardData, CampaignRawData } from '@/constants/campaign';\nimport { axiosGet } from '@/utils/axios';\nimport { campaignRawToData } from '@/utils/campaign';\nimport _ from 'lodash';\n\nexport const campaignApiLeaderboardUrl = 'https://api.synfutures.com/v3/public/campaign/';\nexport const campaignApiUrl = 'https://api.synfutures.com/v3/public/campaign';\n//`https://api.synfutures.com/v3/api/campaign/dashboard/${campaignId}?address=${userAddress}`;\n\nexport const getCampaigns = async () => {\n const res = await axiosGet({\n url: campaignApiUrl,\n });\n const campaignsRawData = res.data?.data as CampaignRawData[];\n const campaignsData = campaignsRawData?.map((item) => campaignRawToData(item));\n\n return campaignsData;\n};\n\nexport const getCampaignLeaderboard = async (campaignId: number, userAddress: string) => {\n const res = await axiosGet({\n url: `${campaignApiLeaderboardUrl}${campaignId}`,\n config: {\n params: { address: userAddress },\n },\n });\n const campaignLeaderboardDataWithId = res.data?.data as CampaignLeaderboardData & { id: number };\n const campaignLeaderboardData = _.omit(campaignLeaderboardDataWithId, 'id');\n return campaignLeaderboardData as CampaignLeaderboardData;\n};\n","import { QUERY_KEYS } from '@/constants/query';\nimport { useQuery } from '@tanstack/react-query';\nimport { getCampaignLeaderboard, getCampaigns } from './api';\n\nexport const useCampaigns = () => {\n return useQuery({\n queryKey: QUERY_KEYS.CAMPAIGN.CAMPAIGNS(),\n queryFn: () => getCampaigns(),\n });\n};\n\nexport const useCampaignLeaderboard = (campaignId: number | undefined, userAddress: string | undefined) => {\n return useQuery({\n queryKey: QUERY_KEYS.CAMPAIGN.LEADERBOARD(campaignId, userAddress),\n queryFn: async () => {\n if (userAddress && campaignId) return getCampaignLeaderboard(campaignId, userAddress);\n },\n enabled: userAddress !== undefined && campaignId !== undefined && campaignId !== null,\n });\n};\n","import { Button } from '@/components/Button';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport Table from '@/components/Table';\nimport { CampaignLeaderboardData, CampaignLeaderboardDataItem, CampaignLeaderboardSubData } from '@/constants/campaign';\nimport { useWalletAccount, useWalletIsActive } from '@/hooks/web3/useWalletNetwork';\nimport { shortenAddress } from '@/utils/address';\nimport { rankSrcList } from '@/utils/image';\nimport { formatNumber } from '@/utils/numberUtil';\nimport { Flex } from 'antd';\nimport { ColumnType, ColumnsType } from 'antd/es/table';\nimport classNames from 'classnames';\nimport parse from 'html-react-parser';\nimport { useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nexport default function CampaignLeaderboardModalContent({\n description,\n campaignLeaderboardData,\n}: {\n description: string;\n campaignLeaderboardData: CampaignLeaderboardData;\n}) {\n const campaignLeaderboardCategoryIds = Object.keys(campaignLeaderboardData);\n const [activeCategoryId, setActiveCategoryId] = useState(campaignLeaderboardCategoryIds[0]);\n const { isNotMobile } = useMediaQueryDevice();\n const { t } = useTranslation();\n const columns: ColumnsType | undefined = useMemo(() => {\n const rank: ColumnType = {\n title: 'Rank',\n width: isNotMobile ? 86 : 86,\n align: 'center',\n dataIndex: 'rank',\n render: (_, record) => {\n return (\n
\n {record.rank > 3 ? record.rank : }\n
\n );\n },\n };\n\n const address: ColumnType = {\n title: 'Address',\n width: isNotMobile ? 'auto' : 'auto',\n align: 'left',\n dataIndex: 'address',\n render: (_, record) => {\n return
{shortenAddress(record.address)}
;\n },\n };\n const value: ColumnType = {\n title: t(`campaign.leaderboard.${activeCategoryId}`),\n dataIndex: 'value',\n width: isNotMobile ? 120 : 120,\n align: 'right',\n render: (_, record) => {\n // TODO: some category is not dollor\n return
${formatNumber(record.value || 0, 2)}
;\n },\n };\n return [rank, address, value];\n }, [activeCategoryId, isNotMobile, t]);\n const curCampaignLeaderboardData: CampaignLeaderboardSubData | undefined = campaignLeaderboardData[activeCategoryId];\n const isActive = useWalletIsActive();\n // const walletProvider = useWalletProvider();\n const account = useWalletAccount();\n const disconnected = !isActive || !account;\n return (\n curCampaignLeaderboardData && (\n
\n
{parse(description as string)}
\n {campaignLeaderboardCategoryIds?.length && campaignLeaderboardCategoryIds.length > 1 && (\n \n {campaignLeaderboardCategoryIds.map((key) => (\n {\n setActiveCategoryId(key);\n }}>\n {t(`campaign.leaderboard.${key}`)}\n \n ))}\n \n )}\n
\n {!disconnected && (\n
\n
\n {(curCampaignLeaderboardData.user?.value || 0) > 0 ? (\n <>\n {' '}\n {!curCampaignLeaderboardData.user?.complete && t('campaign.leaderboard.est')}{' '}\n {curCampaignLeaderboardData.user?.rank}\n \n ) : (\n <>-\n )}\n
\n
\n \n {curCampaignLeaderboardData.user?.address}\n
{t(`campaign.leaderboard.me`)}
\n
\n\n {!curCampaignLeaderboardData.user?.complete && (\n
\n {t(`campaign.leaderboard.notComplete`)}\n
\n )}\n
\n
${curCampaignLeaderboardData.user?.value}
\n
\n )}\n `${record.rank}-${record.address}-${record.value}`}\n className=\"syn-campaign-leaderboard-table\"\n columns={columns}\n pagination={false}\n dataSource={curCampaignLeaderboardData.rank}\n scroll={{ y: 370 }}\n />\n
\n
\n )\n );\n}\n","import Drawer from '@/components/Drawer';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport Modal from '@/components/Modal';\nimport { SecondGlobalModalType } from '@/constants';\nimport { useCampaignLeaderboard, useCampaigns } from '@/features/campaign/query';\nimport { useSecondModal } from '@/features/global/hooks';\nimport { useAppSelector } from '@/hooks';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport classNames from 'classnames';\nimport { useTranslation } from 'react-i18next';\nimport { zeroAddress } from 'viem';\nimport CampaignLeaderboardModalContent from './CampaignLeaderboardModalContent';\nimport './index.less';\n\nexport default function CampaignLeaderboardModal() {\n const { deviceType, isMobile } = useMediaQueryDevice();\n const { t } = useTranslation();\n const { isOpenModal, toggleModal } = useSecondModal(SecondGlobalModalType.CAMPAIGN_LEADERBOARD);\n const { data: campaigns } = useCampaigns();\n const userAddr = useUserAddr();\n const { description, selectedLeaderboardCampaignId } = useAppSelector((state) => {\n const campaignId = state.campaign.selectedLeaderboardCampaignId;\n if (campaignId) {\n return {\n selectedLeaderboardCampaignId: campaignId,\n description: campaigns?.find((item) => item.id === campaignId)?.leaderboardDes,\n };\n }\n return {\n campaignLeaderboardData: undefined,\n description: undefined,\n };\n });\n const { data: campaignLeaderboardData, isFetched } = useCampaignLeaderboard(\n selectedLeaderboardCampaignId,\n userAddr || zeroAddress,\n );\n if (!isFetched) return null;\n return isMobile ? (\n {\n toggleModal(false);\n }}\n open={isOpenModal}>\n {description && campaignLeaderboardData && (\n \n )}\n \n ) : (\n {\n toggleModal(false);\n }}\n closable={true}>\n {description && campaignLeaderboardData && (\n \n )}\n \n );\n}\n","import { CampaignStatus, CampaignStatusInfo } from '@/constants/campaign';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\nexport default function CampaignTitleText({\n campaignStatus,\n className,\n ...others\n}: ComponentProps<'div'> & { campaignStatus: CampaignStatus }) {\n const { t } = useTranslation();\n return (\n
\n {CampaignStatusInfo[campaignStatus].titleIcon}\n
{t(CampaignStatusInfo[campaignStatus].labelI18nKey)}
\n
\n
\n );\n}\n","import { useCampaigns } from '../query';\n\nexport const demoCampaignData = {\n leaderboardDes:\n 'Meme Perp Carinival Meme Perp Carinival Meme Perp Carinival Meme Perp Carinival Meme Perp Carinival Meme Perp Carinival',\n showLeaderBoard: true,\n id: 7,\n title:\n 'Meme Perp Carinival Meme Perp Carinival Meme Perp Carinival Meme Perp Carinival Meme Perp Carinival Meme Perp Carinival',\n description:\n 'Meme Perp Carnival is here with a $35,000 price pool! We are launching an exciting trading/LP competition with $BOOMER, $BUILD, $CONDO, $MIGGLES, $MOG,Meme Perp Carnival is here with a $35,000 price pool! We are launching an exciting trading/LP competition with $BOOMER, $BUILD, $CONDO, $MIGGLES, $MOG,Meme Perp Carnival is here with a $35,000 price pool! We are launching an exciting trading/LP competition with $BOOMER, $BUILD, $CONDO, $MIGGLES, $MOG',\n tagsTitle: 'BOOMER/WETH,BUILD/WETH,CONDO/WETH,MIGGLES/WETH,MOG/WETH',\n tagsUrl:\n 'https://oyster.synfutures.com/#/trade/base/WETH-BOOMER-DEXV2-Perpetual,https://oyster.synfutures.com/#/trade/base/BUILD-WETH-EMG-Perpetual,https://oyster.synfutures.com/#/trade/base/CONDO-WETH-DEXV2-Perpetual,https://oyster.synfutures.com/#/trade/base/MIGGLES-WETH-DEXV2-Perpetual,https://oyster.synfutures.com/#/trade/base/Mog-WETH-EMG-Perpetual',\n isBanner: false,\n status: 'Ongoing',\n period: '13th Aug - 31th Aug',\n startDate: '2024-8-15 00:00:00',\n endDate: '2024-9-15 11:00:00',\n cardUrl: '',\n\n buttonUrl: 'https://app.galxe.com/quest/synfutures/GCgebtv1z8',\n tags: [\n {\n url: 'https://oyster.synfutures.com/#/trade/base/WETH-BOOMER-DEXV2-Perpetual',\n title: 'BOOMER/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/BUILD-WETH-EMG-Perpetual',\n title: 'BUILD/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/CONDO-WETH-DEXV2-Perpetual',\n title: 'CONDO/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/MIGGLES-WETH-DEXV2-Perpetual',\n title: 'MIGGLES/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/Mog-WETH-EMG-Perpetual',\n title: 'MOG/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/CONDO-WETH-DEXV2-Perpetual',\n title: 'CONDO/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/MIGGLES-WETH-DEXV2-Perpetual',\n title: 'MIGGLES/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/Mog-WETH-EMG-Perpetual',\n title: 'MOG/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/CONDO-WETH-DEXV2-Perpetual',\n title: 'CONDO/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/MIGGLES-WETH-DEXV2-Perpetual',\n title: 'MIGGLES/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/Mog-WETH-EMG-Perpetual',\n title: 'MOG/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/CONDO-WETH-DEXV2-Perpetual',\n title: 'CONDO/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/MIGGLES-WETH-DEXV2-Perpetual',\n title: 'MIGGLES/WETH',\n },\n {\n url: 'https://oyster.synfutures.com/#/trade/base/Mog-WETH-EMG-Perpetual',\n title: 'MOG/WETH',\n },\n ],\n bannerOrder: 1,\n imgSrc: 'https://api.synfutures.com/ipfs/v2-config/v3/images/6.png',\n button: {\n title: '',\n url: 'https://app.galxe.com/quest/synfutures/GCgebtv1z8',\n },\n startTimestamp: 1723651200,\n endTimestamp: 1726369200,\n};\n\nexport default function CampaignGlobalEffect(): null {\n useCampaigns();\n return null;\n}\n","import CampaignBannerCard from '@/components/Card/CampaignCard/CampaignBannerCard';\nimport { ExpiredCampaignCard } from '@/components/Card/CampaignCard/ExpiredCampaignCard';\nimport { default as OngoingCampaignCard } from '@/components/Card/CampaignCard/OngoingCampaignCard';\nimport UpcomingCampaignCard from '@/components/Card/CampaignCard/UpcomingCampaignCard';\nimport { useMockDevTool } from '@/components/Mock';\nimport CampaignLeaderboardModal from '@/components/Modal/CampaignLeaderboardModal';\nimport CampaignTitleText from '@/components/Text/CampaignTitleText';\nimport { CampaignStatus } from '@/constants/campaign';\nimport { demoCampaignData } from '@/features/campaign/GlobalEffect';\nimport { useCampaignsData } from '@/features/campaign/hook';\nimport _ from 'lodash';\nimport { useMemo } from 'react';\nimport './index.less';\nexport default function CampaignPage() {\n const { groupedCampaignsData, isCampaignsDataFetched } = useCampaignsData();\n const { isMockSkeleton } = useMockDevTool();\n const isSkeleton = useMemo(() => {\n return !isCampaignsDataFetched || isMockSkeleton;\n }, [isCampaignsDataFetched, isMockSkeleton]);\n const { banner, upcoming, ongoing, expired } = useMemo(() => {\n if (isSkeleton) {\n return {\n banner: new Array(1).fill({ ...demoCampaignData, isBanner: true }).map((item, i) => {\n return {\n ...item,\n id: `${i}_mock_banner`,\n };\n }),\n ongoing: new Array(3).fill({ ...demoCampaignData, isBanner: false }).map((item, i) => {\n return {\n ...item,\n id: `${i}_mock_ongoing`,\n };\n }),\n upcoming: new Array(3).fill({ ...demoCampaignData, isBanner: false }).map((item, i) => {\n return {\n ...item,\n id: `${i}_mock_upcoming`,\n };\n }),\n expired: new Array(6).fill({ ...demoCampaignData, isBanner: false }).map((item, i) => {\n return {\n ...item,\n id: `${i}_mock_expired`,\n };\n }),\n };\n }\n return {\n banner: _.cloneDeep(\n groupedCampaignsData?.Ongoing?.filter((data) => data.isBanner)?.sort((a, b) => a.bannerOrder - b.bannerOrder),\n ),\n ongoing: _.cloneDeep(\n groupedCampaignsData?.Ongoing?.filter((data) => !data.isBanner).sort(\n (a, b) => (a?.endTimestamp || Infinity) - (b?.endTimestamp || Infinity),\n ),\n ),\n upcoming: _.cloneDeep(groupedCampaignsData?.Upcoming?.sort((a, b) => b.startTimestamp - a.startTimestamp)),\n expired: _.cloneDeep(\n groupedCampaignsData?.Expired?.sort((a, b) => (b.endTimestamp || 0) - (a.endTimestamp || 0)),\n ),\n };\n }, [groupedCampaignsData?.Expired, groupedCampaignsData?.Ongoing, groupedCampaignsData?.Upcoming, isSkeleton]);\n return (\n
\n
\n {banner?.map((data) => (\n \n ))}\n
\n {ongoing && ongoing?.length > 0 && (\n
\n \n
\n {ongoing?.map((data) => (\n \n ))}\n
\n
\n )}\n {upcoming && upcoming?.length > 0 && (\n
\n \n
\n {upcoming.map((data) => (\n \n ))}\n
\n
\n )}\n {expired && expired?.length > 0 && (\n
\n \n
\n {expired.map((data) => (\n \n ))}\n
\n
\n )}\n
\n \n
\n );\n}\n","import _ from 'lodash';\nimport { useCampaigns } from './query';\n\nexport function useCampaignsData() {\n const { data: campaigns, isFetched } = useCampaigns();\n const groupedCampaignsData = campaigns && _.groupBy(campaigns, ({ status }) => status);\n\n return { groupedCampaignsData, isCampaignsDataFetched: isFetched };\n}\n","/**\n * @description Component-Cosplay\n */\nimport { FC, useEffect } from 'react';\nimport { Navigate, useParams } from 'react-router-dom';\n\nimport { setImpostorAddress } from '@/features/user/userSlice';\nimport { useAppDispatch } from '@/hooks';\nimport { isAddress } from '@/utils/address';\nimport { getAddress } from 'ethers/lib/utils';\n\nconst Cosplay: FC = function () {\n const dispatch = useAppDispatch();\n const { impostorAddress } = useParams();\n\n useEffect(() => {\n if (impostorAddress && isAddress(impostorAddress)) {\n dispatch(setImpostorAddress({ account: getAddress(impostorAddress).toLowerCase() }));\n }\n }, [dispatch, impostorAddress]);\n\n return ;\n};\n\nexport default Cosplay;\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconOysterAmm = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 17,\n height: 16,\n viewBox: \"0 0 17 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#oyster-svg)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.0818 10.7968L12.1612 9.67735L14.454 7.59994C14.632 7.43854 14.7268 7.21657 14.7116 6.98961C14.5018 3.83387 11.5977 1.33325 8.04586 1.33325C4.49402 1.33325 1.59449 3.83055 1.3815 6.98339C1.36586 7.21449 1.4643 7.43978 1.64785 7.6016L4.00271 9.67777L2.01955 10.7984C1.80794 10.9179 1.6796 11.127 1.6796 11.3519V12.0045C1.6796 12.5891 2.02645 13.1293 2.58952 13.4194C3.61537 13.9479 5.48169 14.6666 8.04678 14.6666C10.6119 14.6666 12.4777 13.9479 13.504 13.4194C14.0671 13.1293 14.414 12.5891 14.414 12.0045V11.3457C14.414 11.1241 14.2893 10.9175 14.0828 10.7972L14.0818 10.7968Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.04641 12.6145C11.7225 12.6145 14.2963 10.9897 14.2963 10.9897C14.2963 10.9897 14.4141 11.1242 14.4141 11.3458V12.0047C14.4141 12.5893 14.0672 13.1295 13.5041 13.4195C12.4778 13.9481 10.612 14.6667 8.04687 14.6667C5.48178 14.6667 3.61547 13.9481 2.58961 13.4195C2.02655 13.1295 1.67969 12.5893 1.67969 12.0047V11.352C1.67969 11.1271 1.80068 10.9897 1.80068 10.9897C1.80068 10.9897 4.37037 12.6145 8.04641 12.6145Z\",\n fill: \"#ABB5BA\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.884616 6.95C1.11805 3.49457 4.27524 0.834961 8.04619 0.834961C11.817 0.834961 14.9791 3.49784 15.2092 6.95655C15.2353 7.34803 15.0703 7.7151 14.7885 7.97062L13.0024 9.58893L14.3244 10.3595L14.3333 10.3645C14.679 10.5659 14.9127 10.9292 14.9127 11.3449V12.0036C14.9127 12.7935 14.4445 13.4956 13.732 13.8626C12.6508 14.4194 10.7071 15.165 8.04711 15.165C5.38717 15.165 3.4431 14.4195 2.36225 13.8626C1.64968 13.4956 1.1815 12.7935 1.1815 12.0036V11.3511C1.1815 10.9291 1.42231 10.5619 1.77552 10.3624L3.14633 9.58778L1.3191 7.9768C1.0292 7.72122 0.857609 7.34904 0.884616 6.95ZM8.04619 1.83496C7.38443 1.83496 6.74993 1.92707 6.15646 2.09703L7.02236 4.45885C7.11741 4.71811 6.98429 5.00535 6.72502 5.1004C6.46575 5.19545 6.17852 5.06233 6.08347 4.80306L5.21887 2.44477C4.34468 2.84807 3.59586 3.432 3.0295 4.13747L4.74383 6.00808C4.9304 6.21166 4.91661 6.52794 4.71303 6.71451C4.50945 6.90109 4.19317 6.8873 4.0066 6.68372L2.46212 4.99845C2.13317 5.61982 1.93064 6.30245 1.88234 7.01746C1.87807 7.0805 1.90332 7.15872 1.98041 7.22669L4.33471 9.30236C4.45607 9.40936 4.51815 9.56846 4.50134 9.72937C4.48452 9.89029 4.39088 10.0331 4.25003 10.1127L2.78175 10.9424C3.03445 11.0611 3.34917 11.1969 3.71827 11.333C4.7795 11.7242 6.28156 12.1145 8.04673 12.1145C9.81192 12.1145 11.315 11.7241 12.3774 11.3329C12.7532 11.1945 13.0728 11.0564 13.328 10.9362L11.9088 10.109C11.771 10.0287 11.6798 9.88756 11.6633 9.72902C11.6467 9.57047 11.7067 9.41351 11.8248 9.30647L14.1169 7.22966C14.191 7.16246 14.2155 7.0854 14.2114 7.02309C14.1637 6.30618 13.9608 5.62178 13.6309 4.99886L12.0868 6.68372C11.9002 6.8873 11.5839 6.90109 11.3803 6.71451C11.1767 6.52794 11.163 6.21166 11.3495 6.00808L13.0633 4.13807C12.497 3.43295 11.7485 2.8492 10.8749 2.44582L10.0107 4.80306C9.91567 5.06233 9.62843 5.19545 9.36917 5.1004C9.1099 5.00535 8.97678 4.71811 9.07183 4.45885L9.93747 2.09771C9.34343 1.92732 8.70837 1.83496 8.04619 1.83496ZM13.9127 11.7647C13.6105 11.9128 13.2092 12.0923 12.723 12.2713C11.5794 12.6924 9.95758 13.1145 8.04673 13.1145C6.13585 13.1145 4.51503 12.6924 3.37241 12.2712C2.88539 12.0917 2.48368 11.9118 2.1815 11.7635V12.0036C2.1815 12.3826 2.40693 12.7607 2.82022 12.9736C3.79058 13.4736 5.57819 14.165 8.04711 14.165C10.516 14.165 12.3031 13.4736 13.2741 12.9736C13.6874 12.7607 13.9127 12.3826 13.9127 12.0036V11.7647Z\",\n fill: \"#1F292E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.04647 10.8C9.15082 10.8 10.0461 9.90462 10.0461 8.80005C10.0461 7.69548 9.15082 6.80005 8.04647 6.80005C6.94212 6.80005 6.04688 7.69548 6.04688 8.80005C6.04688 9.90462 6.94212 10.8 8.04647 10.8Z\",\n fill: \"#00BFBF\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"oyster-svg\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\",\n transform: \"translate(0.046875)\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconOysterAmm);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_oyster_amm.837fdca1f6c91797eb1e779076fc7994.svg\";","/**\n * @description Component-PageHelper\n */\nimport { FC, ReactNode } from 'react';\n\nimport { Default, Mobile } from '@/components/MediaQuery';\ninterface IPropTypes {\n mobileComponent: ReactNode;\n desktopComponent?: ReactNode;\n}\nconst PageHelper: FC = function ({ mobileComponent, desktopComponent }) {\n return (\n <>\n \n <>{desktopComponent}\n \n \n <>{mobileComponent}\n \n \n );\n};\n\nexport default PageHelper;\n","/**\n * @description Component-PortfolioMobileOrdersSkeleton\n */\nimport './index.less';\n\nimport { Skeleton as AntSkeleton } from 'antd';\nimport React, { FC, useMemo } from 'react';\n\nimport { Skeleton } from '@/components/Skeleton';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PortfolioMobileAccountSkeleton: FC = function () {\n const items = useMemo(() => new Array(12).fill(0), []);\n return (\n
\n {items.map((_value, index) => (\n
\n
\n \n \n
\n
\n \n \n
\n
\n ))}\n
\n );\n};\n\nexport default PortfolioMobileAccountSkeleton;\n","/**\n * @description Component-PortfolioMobileAccounts\n */\nimport './index.less';\n\nimport React, { FC, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\n\nimport Alert from '@/components/Alert';\nimport Empty from '@/components/Empty';\nimport TokenLogo from '@/components/TokenLogo';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useFetchWithdrawPendings, useUserAllPendingTokens } from '@/features/portfolio/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport DepositButton from '@/pages/components/Portfolio/Vault/AccountButtons/Deposit';\nimport WithdrawButton from '@/pages/components/Portfolio/Vault/AccountButtons/Withdraw';\nimport { useAssetsBalanceList } from '@/pages/portfolio/Assets/hooks/assetsHook';\n\nimport { useUserIsFetchedGateBalanceList } from '@/features/balance/hook';\nimport PortfolioMobileAccountSkeleton from './PortfolioMobileAccountSkeleton';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PortfolioMobileAccounts: FC = function () {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const filteredAssets = useAssetsBalanceList(chainId, userAddr, undefined, true);\n const pendingTokens = useUserAllPendingTokens(chainId, userAddr);\n const isFetchedGateBalance = useUserIsFetchedGateBalanceList(chainId, userAddr);\n\n useFetchWithdrawPendings(chainId, userAddr);\n\n const isShowWithdrawAlert = useMemo(() => {\n return pendingTokens && pendingTokens.length > 0 && pendingTokens.some((token) => token.pending?.amount?.gt(0));\n }, [pendingTokens]);\n\n const tokenAndAmounts = useMemo(() => {\n if (isShowWithdrawAlert) {\n if (pendingTokens && pendingTokens.length) {\n return pendingTokens\n .filter((asset) => asset.pending?.amount?.gt(0))\n .map((asset) => {\n return `${WrappedBigNumber.from(asset.pending.amount || 0)?.formatDisplayNumber()} ${asset.symbol}`;\n })\n .join(', ');\n }\n }\n\n return '';\n }, [pendingTokens, isShowWithdrawAlert]);\n\n return (\n
\n {!isFetchedGateBalance && !filteredAssets.length && }\n\n {filteredAssets.map((asset) => (\n
\n
\n \n
\n
{asset.quote.symbol}
\n
\n {asset.gateBalance?.formatPriceNumberWithTooltip({ isShowTBMK: true })}\n
\n
\n
\n
\n \n \n
\n
\n ))}\n {isShowWithdrawAlert && (\n
\n }}\n />\n }\n type=\"info\"\n showIcon\n />\n
\n )}\n {isFetchedGateBalance && !filteredAssets.length && }\n
\n );\n};\n\nexport default PortfolioMobileAccounts;\n","/**\n * @description Component-PortfolioMobileLiquidities\n */\nimport { useChainId, useChainShortName, useUserAddr } from '@/hooks/web3/useChain';\nimport './index.less';\n\nimport Empty from '@/components/Empty';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { Skeleton } from '@/components/Skeleton';\nimport TokenPair from '@/components/TokenPair';\nimport { GlobalModalType } from '@/constants';\nimport { useWrappedRangeListByUser } from '@/features/account/rangeHook';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { clickOpenSettledPairModal } from '@/features/portfolio/actions';\nimport { useIsFetchedPortfolioList } from '@/features/portfolio/hook';\nimport { useAppDispatch } from '@/hooks';\nimport LiquidationPrices from '@/pages/components/LiquidationPrices';\nimport PriceRange from '@/pages/earn/EarnLiquidities/PriceRange';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { useNavigate } from 'react-router-dom';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PortfolioMobileLiquidities: FC = function ({}) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const chainName = useChainShortName(chainId);\n const ranges = useWrappedRangeListByUser(chainId, userAddr, false);\n const isFetchedPortfolio = useIsFetchedPortfolioList(chainId, userAddr);\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const { t } = useTranslation();\n const items = useMemo(() => new Array(12).fill(0), []);\n const toggleModal = useToggleModal(GlobalModalType.MOBILE_EARN);\n if (!isFetchedPortfolio && !ranges?.length) {\n return (\n <>\n {items.map((i) => (\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n ))}\n \n );\n }\n return (\n
\n {ranges?.map((range) => (\n {\n if (!range.rootPair.isNormalPair) {\n chainId &&\n userAddr &&\n dispatch(clickOpenSettledPairModal({ chainId, userAddr, portfolio: range.rootPortfolio }));\n return;\n }\n toggleModal(true);\n navigate(`/trade/${chainName}/${range.rootPair.symbol}`);\n }}\n key={range.id}\n className=\"syn-portfolio-mobile-liquidities-item\">\n
\n \n \n
\n
\n
\n
{t('common.earn.valueLocked')}
\n
\n \n {range.wrapAttribute('valueLocked').formatNumberWithTooltip({\n suffix: range.rootInstrument.marginToken.symbol,\n showToolTip: true,\n })}\n \n
\n
\n
\n
{t('common.earn.feesE')}
\n
\n \n {range.wrapAttribute('feeEarned').formatNumberWithTooltip({\n suffix: range.rootInstrument.marginToken.symbol,\n })}\n \n
\n
\n
\n
{t('common.liqPrice')}
\n
\n \n
\n
\n
\n
\n ))}\n {!ranges?.length && }\n
\n );\n};\n\nexport default PortfolioMobileLiquidities;\n","/**\n * @description Component-PortfolioMobilePositionsSkeleton\n */\nimport './index.less';\n\nimport { Skeleton as AntSkeleton } from 'antd';\nimport React, { FC, useMemo } from 'react';\n\nimport { Skeleton } from '@/components/Skeleton';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PortfolioMobilePositionsSkeleton: FC = function () {\n const items = useMemo(() => new Array(12).fill(0), []);\n return (\n
\n {items.map((_val, index) => (\n
\n
\n
\n \n \n
\n \n
\n
\n \n \n \n
\n
\n ))}\n
\n );\n};\n\nexport default PortfolioMobilePositionsSkeleton;\n","/**\n * @description Component-PortfolioMobileOrders\n */\nimport './index.less';\n\nimport { MarketType } from '@synfutures/sdks-perp';\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport Empty from '@/components/Empty';\nimport TokenPair from '@/components/TokenPair';\nimport { GlobalModalType } from '@/constants';\nimport { OPEN_ORDER_QUERY_KEY } from '@/constants/trade';\nimport { useWrappedOrderListByUser } from '@/features/account/orderHook';\nimport { clickOpenSettledPairModal } from '@/features/portfolio/actions';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useChainShortName, useUserAddr } from '@/hooks/web3/useChain';\nimport TradeSide from '@/pages/components/TradeSide';\n\nimport { useToggleModal } from '@/features/global/hooks';\nimport { useIsFetchedPortfolioList } from '@/features/portfolio/hook';\nimport { useNavigate } from 'react-router-dom';\nimport PortfolioMobilePositionsSkeleton from '../PortfolioMobilePositions/PortfolioMobilePositionsSkeleton';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PortfolioMobileOrders: FC = function () {\n const chainId = useChainId();\n const { t } = useTranslation();\n const userAddr = useUserAddr();\n const chainName = useChainShortName(chainId);\n const orders = useWrappedOrderListByUser(chainId, userAddr, false);\n const isFetchedPortfolio = useIsFetchedPortfolioList(chainId, userAddr);\n const navigate = useNavigate();\n const dispatch = useAppDispatch();\n const toggleModal = useToggleModal(GlobalModalType.MOBILE_TRADE);\n return (\n
\n {!isFetchedPortfolio && !orders?.length && }\n {orders?.map((order) => (\n {\n if (!order.rootPair.isNormalPair) {\n chainId &&\n userAddr &&\n dispatch(clickOpenSettledPairModal({ chainId, userAddr, portfolio: order.rootPortfolio }));\n return;\n }\n toggleModal(true);\n navigate(`/trade/${chainName}/${order.rootPair.symbol}`);\n localStorage.setItem(OPEN_ORDER_QUERY_KEY, 'true');\n }}\n key={order.id}\n className={classNames(\n 'syn-portfolio-mobile-orders-order',\n order.rootInstrument.isNormalInstrument ? '' : 'emergency',\n )}>\n
\n \n {!order.rootPair?.isNormalPair && <>{order.rootInstrument.isNormalInstrument ? <>💰 : <>🚧 }}\n \n
\n
\n
\n
\n {t('mobile.filledSize')} ({order.rootInstrument.baseToken.symbol})\n
\n
\n {order.wrapAttribute('taken').abs().formatNumberWithTooltip()}\n
{` / `}
\n {order.wrapAttribute('size').abs().formatNumberWithTooltip({ isShowTBMK: true })}\n
\n
\n
\n
{t('mobile.price')}
\n
{order.wrapAttribute('limitPrice').formatPriceNumberWithTooltip()}
\n
\n
\n
{t('mobile.leverage')}
\n
{order.wrapAttribute('leverageWad').formatLeverageWithTooltip()}
\n
\n
\n
\n ))}\n {isFetchedPortfolio && !orders?.length && }\n \n );\n};\n\nexport default PortfolioMobileOrders;\n","/**\n * @description Component-PortfolioMobilePosiitions\n */\nimport './index.less';\n\nimport { MarketType } from '@synfutures/sdks-perp';\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { SocialLossAlert } from '@/components/Alert/SocialLossAlert';\nimport Empty from '@/components/Empty';\nimport TokenPair from '@/components/TokenPair';\nimport { GlobalModalType } from '@/constants';\nimport { usePositionListByUser } from '@/features/account/positionHook';\nimport { clickOpenSettledPairModal } from '@/features/portfolio/actions';\nimport { useAppDispatch } from '@/hooks';\nimport { usePriceBasisForPnl } from '@/hooks/usePriceBasisForPnl';\nimport { useChainId, useChainShortName, useUserAddr } from '@/hooks/web3/useChain';\nimport TradeSide from '@/pages/components/TradeSide';\n\nimport { useMockDevTool } from '@/components/Mock';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { useIsFetchedPortfolioList } from '@/features/portfolio/hook';\nimport { useNavigate } from 'react-router-dom';\nimport PortfolioMobilePositionsSkeleton from './PortfolioMobilePositionsSkeleton';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PortfolioMobilePositions: FC = function () {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const positions = usePositionListByUser(chainId, userAddr, false);\n const chainName = useChainShortName(chainId);\n const isFetchedPortfolio = useIsFetchedPortfolioList(chainId, userAddr);\n const { priceBasisForPnl } = usePriceBasisForPnl();\n const dispatch = useAppDispatch();\n const navigate = useNavigate();\n const { t } = useTranslation();\n const toggleModal = useToggleModal(GlobalModalType.MOBILE_TRADE);\n const { isMockSkeleton } = useMockDevTool();\n return (\n
\n {(isMockSkeleton || (!isFetchedPortfolio && !positions?.length)) && }\n {!isMockSkeleton &&\n positions?.map((position) => (\n {\n if (!position.rootPair.isNormalPair) {\n chainId &&\n userAddr &&\n dispatch(clickOpenSettledPairModal({ chainId, userAddr, portfolio: position.rootPortfolio }));\n return;\n }\n toggleModal(true);\n navigate(`/trade/${chainName}/${position.rootPair.symbol}`);\n }}>\n
\n
\n \n {!position.rootPair?.isNormalPair && (\n <>{position.rootInstrument.isNormalInstrument ? <>💰 : <>🚧 }\n )}\n
\n \n
\n
\n
\n
\n {t('mobile.size')} ({position.rootInstrument.baseToken.symbol})\n
\n
{position.wrapAttribute('size').formatNumberWithTooltip({ isShowTBMK: true })}
\n
\n
\n
{t('mobile.leverage')}
\n
{position.wrapAttribute('leverageWad').formatLeverageWithTooltip()}
\n
\n
\n
\n {t('mobile.unrealPnl')}\n {/* ({position.rootInstrument.marginToken.symbol}) */}\n
\n
\n {position.getUnrealizedPositionPnlWithoutFunding(priceBasisForPnl).formatNumberWithTooltip({\n colorShader: true,\n showPositive: true,\n })}\n {position.equity.gt(0) &&\n position.getUnrealizedPnlPercentage(priceBasisForPnl).formatPercentage({\n decimals: 2,\n suffix: ')',\n prefix: '(',\n isHiddenIfZero: true,\n })}\n
\n
\n
\n \n
\n ))}\n {(isMockSkeleton || (isFetchedPortfolio && !positions?.length)) && }\n \n );\n};\n\nexport default PortfolioMobilePositions;\n","/**\n * @description Component-PortfolioMobileTabs\n */\nimport './index.less';\n\nimport React, { FC, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport SynTitleTabs from '@/components/Tabs/SynTitleTabs';\nimport { PORTFOLIO_TAB_ITEMS } from '@/constants/portfolio';\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { useStaticPinObserver } from '@/hooks/useStickyPin';\nimport { useChainId } from '@/hooks/web3/useChain';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n onTabChange: (tab: PORTFOLIO_TAB_ITEMS) => void;\n}\nconst PortfolioMobileTabs: FC = function ({ onTabChange }) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const [value, setValue] = useState(PORTFOLIO_TAB_ITEMS.POSITION.toString());\n const tableHeaderStickyRef = useRef(null);\n const dappConfig = useBackendChainConfig(chainId);\n useStaticPinObserver(tableHeaderStickyRef);\n const tabList = useMemo(() => {\n return [\n {\n key: PORTFOLIO_TAB_ITEMS.POSITION.toString(),\n value: PORTFOLIO_TAB_ITEMS.POSITION.toString(),\n label:
{t('mobile.position')}
,\n },\n dappConfig?.trade?.isDisableLimitOrder\n ? undefined\n : {\n key: PORTFOLIO_TAB_ITEMS.ORDER.toString(),\n value: PORTFOLIO_TAB_ITEMS.ORDER.toString(),\n label:
{t('mobile.order')}
,\n },\n {\n key: PORTFOLIO_TAB_ITEMS.LIQUIDITY.toString(),\n value: PORTFOLIO_TAB_ITEMS.LIQUIDITY.toString(),\n label:
{t('mobile.liquidity')}
,\n },\n {\n key: PORTFOLIO_TAB_ITEMS.ACCOUNT.toString(),\n value: PORTFOLIO_TAB_ITEMS.ACCOUNT.toString(),\n label:
{t('mobile.account')}
,\n },\n ].filter((t) => t !== undefined) as {\n key: string;\n value: string;\n label: JSX.Element;\n }[];\n }, [dappConfig?.trade?.isDisableLimitOrder, t]);\n\n useEffect(() => {\n onTabChange(PORTFOLIO_TAB_ITEMS.POSITION);\n }, [onTabChange]);\n return (\n
\n {\n setValue(key);\n onTabChange(key as PORTFOLIO_TAB_ITEMS);\n }}\n activeKey={value}\n items={tabList}\n />\n
\n );\n};\n\nexport default PortfolioMobileTabs;\n","/**\n * @description Component-PortfolioMobileValueSkeleton\n */\n// eslint-disable-next-line simple-import-sort/imports\nimport { Skeleton } from '@/components/Skeleton';\nimport './index.less';\n\nimport React, { FC } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PortfolioMobileValueSkeleton: FC = function () {\n return (\n
\n \n \n
\n );\n};\n\nexport default PortfolioMobileValueSkeleton;\n","/**\n * @description Component-PortfolioMobileTotalValues\n */\nimport './index.less';\n\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { useAssetsTotalsInUsd } from '@/pages/portfolio/Assets/hooks/assetsHook';\n\nimport { useMockDevTool } from '@/components/Mock';\nimport { useUserIsFetchedGateBalanceList } from '@/features/balance/hook';\nimport { useIsFetchedPortfolioList } from '@/features/portfolio/hook';\nimport { useIsBlacklistedFromStore } from '@/features/user/hooks';\nimport PortfolioMobileValueSkeleton from './PortfolioMobileValueSkeleton';\ninterface IPropTypes {\n className?: string;\n}\nconst PortfolioMobileTotalValues: FC = function () {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const totals = useAssetsTotalsInUsd(chainId, userAddr);\n const isBlacklisted = useIsBlacklistedFromStore();\n const isFetchedPortfolio = useIsFetchedPortfolioList(chainId, userAddr);\n const isFetchedGateBalance = useUserIsFetchedGateBalanceList(chainId, userAddr);\n const { isMockSkeleton } = useMockDevTool();\n\n const statusIsLoading = useMemo(() => {\n return isMockSkeleton || !isFetchedPortfolio || !isFetchedGateBalance;\n }, [isFetchedGateBalance, isFetchedPortfolio, isMockSkeleton]);\n return (\n
\n {isBlacklisted &&
{t('common.violationAccount')}
}\n {statusIsLoading ? (\n \n ) : (\n
\n \n ≈ {totals.totalValue?.formatNumberWithTooltip({ prefix: '$', isShowTBMK: true })}\n \n
\n )}\n\n
{t('mobile.portfolio.totalV')}
\n
\n );\n};\n\nexport default PortfolioMobileTotalValues;\n","/**\n * @description Component-PortfolioMobile\n */\nimport './index.less';\n\nimport React, { FC, useState } from 'react';\n\nimport { PORTFOLIO_TAB_ITEMS } from '@/constants/portfolio';\nimport SettleModal from '@/pages/components/SettleModal';\n\nimport { useListenGateEvent } from '@/hooks/data/useListenEventOnWorker';\nimport { usePollingAccountsData } from '@/hooks/data/usePollingDataOnWorker';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport PortfolioMobileAccounts from './PortfolioMobileAccounts';\nimport PortfolioMobileLiquidities from './PortfolioMobileLiquidities';\nimport PortfolioMobileOrders from './PortfolioMobileOrders';\nimport PortfolioMobilePositions from './PortfolioMobilePositions';\nimport PortfolioMobileTabs from './PortfolioMobileTabs';\nimport PortfolioMobileTotalValues from './PortfolioMobileTotalValues';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PortfolioMobile: FC = function () {\n const [tab, setTab] = useState();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n usePollingAccountsData(chainId, userAddr);\n useListenGateEvent(chainId, userAddr);\n\n return (\n
\n \n \n {tab === PORTFOLIO_TAB_ITEMS.POSITION && }\n {tab === PORTFOLIO_TAB_ITEMS.ORDER && }\n {tab === PORTFOLIO_TAB_ITEMS.ACCOUNT && }\n {tab === PORTFOLIO_TAB_ITEMS.LIQUIDITY && }\n \n {/* */}\n
\n );\n};\n\nexport default PortfolioMobile;\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconOysterAmmD = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5840_67392)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M14.0353 10.7969L12.1147 9.67747L14.4075 7.60006C14.5855 7.43866 14.6803 7.21669 14.6651 6.98974C14.4553 3.83399 11.5512 1.33337 7.99935 1.33337C4.44751 1.33337 1.54798 3.83067 1.33499 6.98351C1.31935 7.21461 1.4178 7.43991 1.60135 7.60172L3.95621 9.67789L1.97304 10.7985C1.76143 10.918 1.63309 11.1271 1.63309 11.352V12.0047C1.63309 12.5893 1.97994 13.1295 2.54301 13.4195C3.56887 13.9481 5.43518 14.6667 8.00027 14.6667C10.5654 14.6667 12.4312 13.9481 13.4575 13.4195C14.0206 13.1295 14.3675 12.5893 14.3675 12.0047V11.3458C14.3675 11.1242 14.2428 10.9176 14.0362 10.7973L14.0353 10.7969Z\",\n fill: \"#09324D\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.99978 12.6145C11.6758 12.6145 14.2497 10.9897 14.2497 10.9897C14.2497 10.9897 14.3674 11.1242 14.3674 11.3458V12.0047C14.3674 12.5893 14.0206 13.1295 13.4575 13.4195C12.4312 13.9481 10.5653 14.6667 8.00024 14.6667C5.43515 14.6667 3.56884 13.9481 2.54298 13.4195C1.97991 13.1295 1.63306 12.5893 1.63306 12.0047V11.352C1.63306 11.1271 1.75404 10.9897 1.75404 10.9897C1.75404 10.9897 4.32374 12.6145 7.99978 12.6145Z\",\n fill: \"#8CBFD9\",\n fillOpacity: 0.8\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M0.837741 6.95003C1.07117 3.4946 4.22836 0.834991 7.99931 0.834991C11.7701 0.834991 14.9323 3.49787 15.1623 6.95658C15.1885 7.34806 15.0234 7.71513 14.7416 7.97065L12.9555 9.58896L14.2776 10.3595L14.2864 10.3645C14.6321 10.5659 14.8658 10.9293 14.8658 11.3449V12.0036C14.8658 12.7935 14.3977 13.4956 13.6851 13.8626C12.6039 14.4195 10.6603 15.165 8.00023 15.165C5.3403 15.165 3.39622 14.4195 2.31538 13.8626C1.60281 13.4956 1.13463 12.7935 1.13463 12.0036V11.3512C1.13463 10.9291 1.37543 10.5619 1.72865 10.3624L3.09945 9.58781L1.27223 7.97683C0.982325 7.72125 0.810734 7.34907 0.837741 6.95003ZM7.99931 1.83499C7.33756 1.83499 6.70306 1.9271 6.10959 2.09706L6.97548 4.45888C7.07053 4.71814 6.93741 5.00538 6.67814 5.10043C6.41888 5.19548 6.13164 5.06236 6.03659 4.80309L5.17199 2.4448C4.29781 2.8481 3.54899 3.43203 2.98262 4.1375L4.69695 6.00811C4.88353 6.21169 4.86974 6.52797 4.66616 6.71454C4.46258 6.90112 4.14629 6.88733 3.95972 6.68375L2.41525 4.99848C2.08629 5.61985 1.88377 6.30248 1.83546 7.01749C1.8312 7.08053 1.85644 7.15876 1.93354 7.22672L4.28783 9.30239C4.40919 9.40939 4.47128 9.56849 4.45446 9.72941C4.43765 9.89032 4.34401 10.0332 4.20315 10.1127L2.73488 10.9424C2.98757 11.0612 3.3023 11.1969 3.6714 11.333C4.73263 11.7242 6.23468 12.1145 7.99985 12.1145C9.76504 12.1145 11.2682 11.7242 12.3305 11.3329C12.7064 11.1945 13.026 11.0564 13.2812 10.9362L11.8619 10.109C11.7242 10.0287 11.633 9.8876 11.6164 9.72905C11.5998 9.5705 11.6598 9.41354 11.7779 9.3065L14.07 7.22969C14.1441 7.1625 14.1687 7.08543 14.1645 7.02312C14.1169 6.30621 13.914 5.62181 13.584 4.9989L12.0399 6.68375C11.8533 6.88733 11.537 6.90112 11.3334 6.71454C11.1299 6.52797 11.1161 6.21169 11.3027 6.00811L13.0164 4.1381C12.4501 3.43298 11.7016 2.84923 10.8281 2.44585L9.96384 4.80309C9.86879 5.06236 9.58156 5.19548 9.32229 5.10043C9.06302 5.00538 8.9299 4.71814 9.02495 4.45888L9.8906 2.09774C9.29656 1.92735 8.6615 1.83499 7.99931 1.83499ZM13.8658 11.7647C13.5636 11.9128 13.1623 12.0923 12.6761 12.2713C11.5325 12.6925 9.91071 13.1145 7.99985 13.1145C6.08897 13.1145 4.46816 12.6925 3.32553 12.2713C2.83852 12.0918 2.4368 11.9118 2.13463 11.7635V12.0036C2.13463 12.3827 2.36006 12.7608 2.77334 12.9736C3.74371 13.4736 5.53131 14.165 8.00023 14.165C10.4691 14.165 12.2563 13.4737 13.2272 12.9736C13.6405 12.7607 13.8658 12.3827 13.8658 12.0036V11.7647Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.00008 10.8C9.10443 10.8 9.99968 9.90456 9.99968 8.79999C9.99968 7.69542 9.10443 6.79999 8.00008 6.79999C6.89574 6.79999 6.00049 7.69542 6.00049 8.79999C6.00049 9.90456 6.89574 10.8 8.00008 10.8Z\",\n fill: \"#00BFBF\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5840_67392\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconOysterAmmD);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_oyster_amm_d.23d9138614a1210e861b083b9bb7cfd4.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconFilter = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.68051 1.75C3.6944 1.75 3.70832 1.75001 3.72228 1.75001L12.3197 1.75C12.716 1.74996 13.0809 1.74992 13.3779 1.78737C13.7018 1.82822 14.0574 1.92489 14.3554 2.20466C14.6607 2.49072 14.7732 2.8433 14.8201 3.16974C14.8614 3.4579 14.8614 3.80862 14.8613 4.17514C14.8613 4.18997 14.8613 4.20482 14.8613 4.21969L14.8613 4.67286C14.8613 4.96293 14.8613 5.23474 14.8374 5.46549C14.8108 5.7226 14.7502 5.98617 14.5944 6.24396C14.4405 6.4992 14.2363 6.6773 14.024 6.82465C13.8297 6.95947 13.5856 7.09667 13.3187 7.24674L11.513 8.26331C11.5128 8.2634 11.5126 8.2635 11.5125 8.26359C11.0894 8.50242 10.9803 8.56788 10.9135 8.62578L10.9086 8.63008L10.9036 8.6343C10.7521 8.76112 10.6473 8.93481 10.6057 9.12789L10.6051 9.13107L10.6043 9.13424C10.588 9.20715 10.5835 9.30934 10.5835 9.7552V11.3869C10.5835 11.4055 10.5835 11.4241 10.5835 11.4427C10.5835 11.9781 10.5836 12.4661 10.5233 12.8487C10.4571 13.2681 10.2931 13.7349 9.82239 14.0288C9.36617 14.3139 8.87687 14.2755 8.46442 14.1776C8.07493 14.0852 7.60329 13.9009 7.07094 13.6929C7.05468 13.6865 7.03836 13.6802 7.02198 13.6738L6.99058 13.6615C6.74341 13.5648 6.50721 13.4723 6.31643 13.3738C6.10386 13.2639 5.88204 13.1149 5.70937 12.8718C5.53414 12.6254 5.4688 12.3658 5.44099 12.126C5.41665 11.9161 5.4167 11.6696 5.41675 11.4203C5.41675 11.4094 5.41675 11.3984 5.41675 11.3875V9.75581C5.41675 9.30898 5.4122 9.20733 5.39599 9.1354L5.39571 9.13418L5.39544 9.13296C5.35078 8.93165 5.25972 8.77592 5.08752 8.6266L5.08709 8.62623C5.02009 8.56805 4.91088 8.50238 4.48801 8.26436L4.48796 8.26433L2.68972 7.25193C2.41868 7.09943 2.17176 6.9605 1.9754 6.82383C1.76282 6.67586 1.55969 6.49787 1.40602 6.24372C1.25016 5.98596 1.18949 5.72254 1.1628 5.46535C1.13886 5.23478 1.13889 4.96323 1.13892 4.67348C1.13893 4.663 1.13893 4.6525 1.13893 4.64197V4.2203C1.13893 4.20543 1.13892 4.19057 1.13892 4.17575C1.13885 3.80894 1.13879 3.45808 1.18014 3.16985C1.22698 2.84333 1.33953 2.4907 1.64488 2.20462C1.943 1.92499 2.29856 1.82826 2.62277 1.78737C2.91979 1.74992 3.28449 1.74996 3.68051 1.75ZM2.6598 3.30764C2.65692 3.30951 2.65512 3.3103 2.65494 3.31022C2.65477 3.31015 2.65621 3.30922 2.6598 3.30764ZM2.68081 3.30023C2.67624 3.3174 2.67053 3.34387 2.66494 3.38286C2.64074 3.55156 2.63893 3.79225 2.63893 4.2203V4.64197C2.63893 4.97415 2.63986 5.16669 2.65478 5.31049C2.66737 5.43174 2.68531 5.46064 2.68925 5.467C2.68939 5.46722 2.68951 5.46742 2.68962 5.46759L2.68973 5.46778C2.69513 5.47672 2.7165 5.51208 2.83234 5.59271C2.96084 5.68215 3.14174 5.78512 3.44351 5.95492L3.44359 5.95497L3.44366 5.95501L5.22379 6.95721C5.22381 6.95722 5.22383 6.95723 5.22385 6.95724C5.24738 6.97049 5.27059 6.98353 5.29347 6.99639C5.61503 7.1771 5.87264 7.32186 6.07019 7.49331C6.47703 7.84607 6.74277 8.28152 6.85958 8.80691C6.91729 9.06395 6.91706 9.3484 6.91679 9.68504C6.91677 9.70838 6.91675 9.73196 6.91675 9.75581V11.3875C6.91675 11.6826 6.91792 11.8403 6.93101 11.9532C6.9336 11.9756 6.93625 11.9918 6.93847 12.0031C6.95136 12.0116 6.97239 12.0243 7.00494 12.0411C7.11814 12.0996 7.28009 12.164 7.56777 12.2766C7.56784 12.2766 7.56791 12.2766 7.56798 12.2767C8.16373 12.5094 8.5361 12.653 8.81073 12.7181C8.9136 12.7425 8.97651 12.7492 9.01212 12.75C9.02059 12.7233 9.03126 12.6805 9.04158 12.6151C9.08123 12.3636 9.08346 11.9968 9.08346 11.3869V9.7552C9.08346 9.7315 9.08344 9.70807 9.08342 9.68488C9.08315 9.34927 9.08293 9.0658 9.14003 8.80901C9.25191 8.29292 9.53171 7.8285 9.93561 7.48839C10.1308 7.3204 10.3853 7.17697 10.7018 6.99868C10.726 6.98502 10.7507 6.97114 10.7756 6.95704L10.776 6.95684L12.5567 5.95429L12.5569 5.95419C12.8589 5.78439 13.0399 5.68177 13.1687 5.59235C13.2841 5.51224 13.3051 5.47741 13.3097 5.46961L13.3099 5.4693L13.3103 5.46875L13.3106 5.4682C13.3107 5.46803 13.3108 5.46784 13.3109 5.46762C13.3148 5.4614 13.3328 5.43245 13.3454 5.31081C13.3604 5.16672 13.3613 4.97382 13.3613 4.64136V4.21969C13.3613 3.79194 13.3595 3.55142 13.3353 3.38282C13.3297 3.34375 13.324 3.31726 13.3194 3.3001C13.2965 3.29325 13.2563 3.28392 13.1902 3.27559C12.9985 3.25141 12.7302 3.25001 12.2779 3.25001H3.72228C3.2703 3.25001 3.00214 3.25141 2.81045 3.27559C2.7441 3.28395 2.70373 3.29334 2.68081 3.30023ZM13.3451 3.31002C13.345 3.31009 13.3432 3.30931 13.3403 3.30747C13.3439 3.30902 13.3453 3.30994 13.3451 3.31002ZM13.3125 3.27825C13.3107 3.27513 13.3099 3.27318 13.31 3.27298C13.3101 3.27278 13.311 3.27435 13.3125 3.27825ZM8.99543 12.789C8.99525 12.7885 8.9969 12.785 9.00093 12.7799C8.99763 12.787 8.99561 12.7895 8.99543 12.789ZM9.04305 12.7489C9.04817 12.747 9.05131 12.7466 9.0516 12.7469C9.05189 12.7472 9.04933 12.7481 9.04305 12.7489ZM6.92076 11.99C6.92083 11.99 6.92159 11.9906 6.92285 11.9918C6.92133 11.9906 6.9207 11.99 6.92076 11.99ZM6.94304 12.0224C6.94363 12.0239 6.94389 12.0247 6.94387 12.0247C6.94385 12.0248 6.94355 12.0241 6.94304 12.0224ZM2.68771 3.27824C2.68923 3.27433 2.69015 3.27277 2.69022 3.27296C2.6903 3.27316 2.68953 3.27511 2.68771 3.27824Z\",\n fill: \"#94B8BF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconFilter);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_filter.1b4688e0116c0a22e92fe69f2549a847.svg\";","/**\n * @description Component-OysterAmm\n */\nimport './index.less';\n\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as OysterIcon } from '@/assets/svg/icon_oyster_amm.svg';\nimport { ReactComponent as OysterIconD } from '@/assets/svg/icon_oyster_amm_d.svg';\nimport { THEME_ENUM } from '@/constants';\nimport { useTheme } from '@/features/global/hooks';\ninterface IPropTypes {\n className?: string;\n}\nconst OysterAmm: FC = function () {\n const { t } = useTranslation();\n const { dataTheme } = useTheme();\n return (\n
\n {t('common.earn.poweredBy')}\n {dataTheme === THEME_ENUM.DARK ? : }\n\n {t('common.earn.oysterAmm')}\n
\n );\n};\n\nexport default OysterAmm;\n","/**\n * @description Component-DrawerSelector\n */\nimport './index.less';\n\nimport { DrawerProps } from 'antd';\nimport classNames from 'classnames';\nimport React from 'react';\n\nimport Drawer from '..';\n\nexport type DrawerSelectorOptionProps = {\n key: React.Key;\n value: ValueType;\n label: React.ReactNode | JSX.Element | string;\n className?: string;\n};\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ninterface IPropTypes extends DrawerProps {\n children?: React.ReactNode;\n className?: string;\n selectOptions: DrawerSelectorOptionProps[];\n onChange: (value: ValueType) => void;\n value: ValueType;\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype MyComponentI = React.FC>;\n\nconst DrawerSelector: MyComponentI = function ({\n selectOptions,\n value,\n onChange,\n className,\n children,\n ...props\n}: IPropTypes) {\n return (\n <>\n {children}\n \n
\n <>\n {selectOptions.map((selectOption) => (\n {\n onChange(selectOption.value);\n props.onClose && props.onClose(e);\n }}>\n {selectOption.label}\n
\n ))}\n \n \n
\n \n );\n};\n\nexport default DrawerSelector;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconFilterBold = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.6668 2H3.3335C2.39083 2 1.9195 2 1.62683 2.27467C1.3335 2.54933 1.3335 2.992 1.3335 3.87667V4.33667C1.3335 5.028 1.3335 5.374 1.50683 5.66067C1.68016 5.94733 1.9955 6.126 2.62816 6.482L4.57016 7.57533C4.99416 7.814 5.20683 7.93333 5.35883 8.06533C5.67483 8.33933 5.8695 8.662 5.9575 9.05867C6.00016 9.248 6.00016 9.47067 6.00016 9.91533V11.6953C6.00016 12.3013 6.00016 12.6047 6.16816 12.8407C6.33616 13.0773 6.63483 13.194 7.23083 13.4273C8.4835 13.9167 9.1095 14.1613 9.55483 13.8827C10.0002 13.6047 10.0002 12.968 10.0002 11.6947V9.91467C10.0002 9.47067 10.0002 9.248 10.0428 9.058C10.1266 8.66944 10.3375 8.31989 10.6422 8.06467C10.7935 7.93333 11.0062 7.814 11.4302 7.57467L13.3722 6.48133C14.0042 6.126 14.3208 5.948 14.4935 5.66133C14.6668 5.37467 14.6668 5.028 14.6668 4.336V3.876C14.6668 2.992 14.6668 2.54933 14.3735 2.27467C14.0815 2 13.6102 2 12.6668 2Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconFilterBold);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_filter_bold.84d193234a5c73c477b30082a16d3faa.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgGps = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 14,\n viewBox: \"0 0 14 14\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"Linear / Map & Location / GPS\",\n clipPath: \"url(#clip0_19344_132960)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Vector (Stroke)\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.99984 0.666504C7.27598 0.666504 7.49984 0.890362 7.49984 1.1665V1.85705C9.95417 2.09274 11.9069 4.04551 12.1426 6.49984H12.8332C13.1093 6.49984 13.3332 6.72369 13.3332 6.99984C13.3332 7.27598 13.1093 7.49984 12.8332 7.49984H12.1426C11.9069 9.95417 9.95417 11.9069 7.49984 12.1426V12.8332C7.49984 13.1093 7.27598 13.3332 6.99984 13.3332C6.72369 13.3332 6.49984 13.1093 6.49984 12.8332V12.1426C4.04551 11.9069 2.09274 9.95417 1.85705 7.49984H1.1665C0.890362 7.49984 0.666504 7.27598 0.666504 6.99984C0.666504 6.72369 0.890362 6.49984 1.1665 6.49984H1.85705C2.09274 4.04551 4.04551 2.09274 6.49984 1.85705V1.1665C6.49984 0.890362 6.72369 0.666504 6.99984 0.666504ZM6.99984 2.83317C4.69865 2.83317 2.83317 4.69865 2.83317 6.99984C2.83317 9.30102 4.69865 11.1665 6.99984 11.1665C9.30102 11.1665 11.1665 9.30102 11.1665 6.99984C11.1665 4.69865 9.30102 2.83317 6.99984 2.83317ZM6.99984 5.74984C6.30948 5.74984 5.74984 6.30948 5.74984 6.99984C5.74984 7.69019 6.30948 8.24984 6.99984 8.24984C7.69019 8.24984 8.24984 7.69019 8.24984 6.99984C8.24984 6.30948 7.69019 5.74984 6.99984 5.74984ZM4.74984 6.99984C4.74984 5.7572 5.7572 4.74984 6.99984 4.74984C8.24248 4.74984 9.24984 5.7572 9.24984 6.99984C9.24984 8.24248 8.24248 9.24984 6.99984 9.24984C5.7572 9.24984 4.74984 8.24248 4.74984 6.99984Z\",\n fill: \"#000000\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_19344_132960\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 14,\n height: 14,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgGps);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/GPS.cf970d007b96d9f77449a092da88c191.svg\";","/**\n * @description Component-MarginTypeSelector\n */\nimport './index.less';\n\nimport React, { FC, useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\n// import { ReactComponent as MarginIcon } from '@/assets/svg/margin_icon.svg';\nimport DrawerSelector, { DrawerSelectorOptionProps } from '@/components/Drawer/DrawerSelector';\nimport { MARKET_FILTERS } from '@/constants/market';\nimport { setPartialMarginSearchProps } from '@/features/market/actions';\nimport { useMarginSearch } from '@/features/market/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { ALL_SELECTOR, PAIR_DATE_TYPE, TPairTypeForMobile } from '@/types/global';\n\nimport { ReactComponent as FilterIcon } from '../assets/svg/icon_filter.svg';\nimport { ReactComponent as FilterIconBold } from '../assets/svg/icon_filter_bold.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst MarginTypeSelector: FC = function () {\n const [openDrawer, setOpenDrawer] = useState(false);\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const { goToSelectorWithFilter, pairTypeForMobile } = useMarginSearch();\n const marginLabels = useMemo(\n () => ({\n [PAIR_DATE_TYPE.PERPETUAL]: t('common.perpetual'),\n [PAIR_DATE_TYPE.DATED]: t('common.datedFutures'),\n }),\n [t],\n );\n const selectOptions = useMemo(() => {\n const res: DrawerSelectorOptionProps[] = [\n {\n label: t('mobile.all'),\n value: undefined,\n key: 'all',\n },\n {\n label: marginLabels[PAIR_DATE_TYPE.PERPETUAL],\n value: PAIR_DATE_TYPE.PERPETUAL,\n key: PAIR_DATE_TYPE.PERPETUAL,\n },\n {\n label: marginLabels[PAIR_DATE_TYPE.DATED],\n value: PAIR_DATE_TYPE.DATED,\n key: PAIR_DATE_TYPE.DATED,\n },\n ];\n\n return res;\n }, [marginLabels, t]);\n\n const marginClick = useCallback(\n (type: TPairTypeForMobile) => {\n // if (Object.values(MARGIN_TYPE).includes(type as MARGIN_TYPE)) {\n // goToSelectorWithFilter(type as MARGIN_TYPE);\n // }\n if (!type) {\n goToSelectorWithFilter(ALL_SELECTOR.ALL, '', MARKET_FILTERS.ALL);\n }\n if (Object.values(PAIR_DATE_TYPE).includes(type as PAIR_DATE_TYPE)) {\n dispatch(\n setPartialMarginSearchProps({\n filter: type as unknown as MARKET_FILTERS,\n }),\n );\n }\n },\n [dispatch, goToSelectorWithFilter],\n );\n\n useEffect(() => {\n marginClick(undefined);\n }, []);\n return (\n setOpenDrawer(false)}\n open={openDrawer}\n value={pairTypeForMobile}\n selectOptions={selectOptions}\n onChange={(value: TPairTypeForMobile) => {\n marginClick(value);\n }}>\n setOpenDrawer(true)}>\n {!pairTypeForMobile ? t('mobile.tradingPair') : marginLabels[pairTypeForMobile as PAIR_DATE_TYPE]}{' '}\n {pairTypeForMobile ? : }\n \n \n );\n};\n\nexport default MarginTypeSelector;\n","/**\n * @description Component-TradingPairSkeleton\n */\nimport './index.less';\n\nimport { Skeleton as AntSkeleton } from 'antd';\nimport { FC, useMemo } from 'react';\n\nimport { Skeleton } from '@/components/Skeleton';\ninterface IPropTypes {\n className?: string;\n}\nconst TradingPairSkeleton: FC = function () {\n const items = useMemo(() => new Array(12).fill(0), []);\n return (\n
\n {items.map((_value, index) => (\n
\n
\n \n \n
\n \n \n
\n ))}\n
\n );\n};\n\nexport default TradingPairSkeleton;\n","/**\n * @description Component-TradingPairsMobile\n */\nimport './index.less';\n\nimport Empty from '@/components/Empty';\nimport TokenPair from '@/components/TokenPair';\nimport { TVL_THRESHHOLD } from '@/constants/global';\nimport { useMarginSearch, useMarketList } from '@/features/market/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport OysterAmm from '@/pages/components/OysterAmm';\nimport { PAIR_DATE_TYPE } from '@/types/global';\nimport _ from 'lodash';\nimport React, { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport BlockedAlert from '@/components/Alert/BlockedAlert';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { useMockDevTool } from '@/components/Mock';\nimport TVLWarningIcon from '@/components/TVLWarningIcon';\nimport { getChainShortName } from '@/utils/chain';\nimport { getMarginTypeByFeeder } from '@/utils/pairs';\nimport { PERP_EXPIRY } from '@synfutures/sdks-perp';\nimport { useLocalStorageState } from 'ahooks';\nimport { useNavigate } from 'react-router-dom';\nimport MarginTypeSelector from './MarginTypeSelector';\nimport TradingPairSkeleton from './TradingPairSkeleton';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TradingPairsMobile: FC = function () {\n const chainId = useChainId();\n const { t } = useTranslation();\n const { marketPairList, isFetched } = useMarketList(chainId ? [chainId] : undefined, true);\n const navigate = useNavigate();\n const { pairTypeForMobile: pairType } = useMarginSearch();\n // const dispatch = useAppDispatch();\n const { isMockSkeleton } = useMockDevTool();\n const [lastFutures] = useLocalStorageState('last_futures', { defaultValue: 'trade', listenStorageChange: true });\n\n const filteredPairs = useMemo(() => {\n if (!marketPairList) return [];\n let pairsFiltered = marketPairList;\n if (pairType) {\n switch (pairType) {\n case PAIR_DATE_TYPE.PERPETUAL:\n pairsFiltered = marketPairList.filter((pair) => pair.expiry === PERP_EXPIRY);\n break;\n case PAIR_DATE_TYPE.DATED:\n pairsFiltered = marketPairList.filter((pair) => pair.expiry !== PERP_EXPIRY);\n break;\n default:\n pairsFiltered = marketPairList.filter((pair) => getMarginTypeByFeeder(pair.feederType) === pairType);\n break;\n }\n }\n return _.orderBy(\n pairsFiltered.filter((p) => p.tvlUsd.gte(TVL_THRESHHOLD)),\n [(p) => p?.volume24hUsd?.toNumber()],\n ['desc'],\n );\n }, [marketPairList, pairType]);\n\n // useEffect(() => {\n // if (marketPairList?.length && chainId) {\n // const fetchPairs = () => {\n // const params: FetchInstrumentParam[] = marketPairList.reduce((acc: FetchInstrumentParam[], pair) => {\n // const accI = acc.find((p) => p.instrument === pair.instrumentAddress);\n // if (!accI) {\n // acc.push({ instrument: pair.instrumentAddress, expiries: [pair.expiry] });\n // } else {\n // accI.expiries.push(pair.expiry);\n // }\n // return acc;\n // }, []);\n // // dispatch(batchPairsFromChain({ chainId, params: params }));\n // };\n\n // fetchPairs();\n // const intervalId = pollingFunc(fetchPairs, POLLING_ORDER_BOOK);\n\n // return () => intervalId && clearInterval(intervalId); // Cleanup on unmount\n // }\n // }, [marketPairList?.length, chainId]);\n\n return (\n
\n \n
\n
\n \n
\n
{t('mobile.price')}
\n
{t('mobile.tvlApy')}
\n
\n {isFetched && filteredPairs.length === 0 && }\n
\n {(!isFetched || isMockSkeleton) && }\n {/* {!isMockSkeleton && pairStatus !== FETCHING_STATUS.FETCHING && filteredPairs.length > 0 && ( */}\n {!isMockSkeleton && filteredPairs.length > 0 && (\n <>\n {filteredPairs.map((pair) => (\n {\n const routeRoot = lastFutures === 'earn' ? '/earn' : `/trade`;\n navigate(`${routeRoot}/${getChainShortName(pair.chainId)}/${pair.pairSymbol}`);\n }}\n key={pair.id}\n className=\"syn-trading-pairs-mobile-item\">\n \n
\n {pair.fairPrice.formatPriceNumberWithTooltip()}\n
\n \n {pair.fairPriceChange24h.formatPercentage({ requirePlusSymbol: true })}\n \n
\n
\n
\n
\n \n {pair.tvlUsd.formatNumberWithTooltip({ isShowTBMK: true, prefix: '$' })}\n
\n
{pair?.liquidityApy?.formatPercentage({ colorShader: false })}
\n
\n
\n ))}\n
\n \n
\n \n )}\n
\n \n );\n};\n\nexport default TradingPairsMobile;\n","/**\n * @description Component-VaultProgress\n */\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { ReactComponent as TargetIcon } from '@/pages/vault/assets/svg/GPS.svg';\n\nimport './index.less';\n\nimport { FormatNumberWithTooltipType } from '@/components/NumberFormat';\nimport { Flex, Progress } from 'antd';\nimport classNames from 'classnames';\nimport { FC, useMemo } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n targetTvl: WrappedBigNumber;\n tvl: WrappedBigNumber;\n vaultTokenSymbol?: string;\n type?: 'horizontal' | 'vertical';\n}\nconst VaultProgress: FC = function ({ targetTvl, tvl, type = 'horizontal' }) {\n const progress = useMemo(() => {\n return tvl.mul(100).div(targetTvl);\n }, [targetTvl, tvl]);\n return (\n \n {/*
\n {tvl.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: type === 'horizontal' ? '$' : undefined,\n suffix: type === 'vertical' ? vaultTokenSymbol : undefined,\n })}\n
*/}\n percent + '%'}\n percent={progress.toNumber()}\n />\n {/* \n \n {targetTvl.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: type === 'horizontal' ? '$' : undefined,\n suffix: type === 'vertical' ? vaultTokenSymbol : undefined,\n })}\n */}\n
\n );\n};\n\nexport const LaunchTarget: FC<\n IPropTypes & {\n targetDisplayProps?: Omit;\n }\n> = function ({ targetTvl, targetDisplayProps }) {\n // const progress = useMemo(() => {\n // return tvl.mul(100).div(targetTvl);\n // }, [targetTvl, tvl]);\n\n return (\n \n \n {targetTvl.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n ...targetDisplayProps,\n })}\n {/* \n {Math.floor(progress.toNumber())}% */}\n \n );\n};\n\nexport default VaultProgress;\n","import { WrappedVault } from '@/entities/WrappedVault';\nimport VaultProgress from '@/pages/vault/VaultList/VaultProgress';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport './index.less';\ntype ProgressCardProps = ComponentProps<'div'> & { vault: WrappedVault };\nexport default function ProgressCard({ className, vault, ...others }: ProgressCardProps) {\n const { t } = useTranslation();\n return (\n
\n
\n
\n {t('launchpad.launchProgress')}({vault.getLaunchProgressPercentage().formatPercentageString()})\n
\n
\n \n
\n
\n \n
\n );\n}\n","import { WrappedVault } from '@/entities/WrappedVault';\nimport { useTokenBalance } from '@/features/balance/hook';\nimport { useNativeToken, useTokenInfo, useWrappedNativeToken } from '@/features/chain/hook';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useChainId } from '../web3/useChain';\n\nexport const useVaultMarginToken = (vault: WrappedVault) => {\n const chainId = useChainId();\n const [marginTokenAddr, setMarginTokenAddr] = useState(vault.quoteToken.address);\n const nativeToken = useNativeToken(chainId);\n const wrappedMarginToken = useTokenInfo(chainId, vault.quoteToken.address);\n const { isMarginTokenNative, marginToken } = useMemo(() => {\n if (nativeToken?.address === marginTokenAddr) {\n return { marginToken: nativeToken, isMarginTokenNative: true };\n } else {\n return { marginToken: wrappedMarginToken, isMarginTokenNative: false };\n }\n }, [marginTokenAddr, nativeToken, wrappedMarginToken]);\n const tokenBalance = useTokenBalance(marginToken?.address, chainId);\n const wrappedNativeToken = useWrappedNativeToken(chainId);\n const isVaultCanBeNative = useMemo(\n () => wrappedNativeToken?.address === vault.quoteToken.address,\n [vault.quoteToken.address, wrappedNativeToken?.address],\n );\n useEffect(() => {\n if (!isVaultCanBeNative) {\n setMarginTokenAddr(vault.quoteToken.address);\n }\n }, [isVaultCanBeNative, vault.quoteToken.address]);\n return {\n tokenBalance,\n setMarginTokenAddr,\n marginToken,\n isMarginTokenNative,\n isVaultCanBeNative,\n };\n};\n","import { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedVault } from '@/entities/WrappedVault';\nimport { useDepositInputAmount, useVaultOperations } from '@/features/vault/hook';\nimport { setDepositAmount } from '@/features/vault/slice';\nimport { useAssetsBalanceMap } from '@/pages/portfolio/Assets/hooks/assetsHook';\nimport { useMutation } from '@tanstack/react-query';\nimport { useDebounce } from 'ahooks';\nimport { useCallback, useEffect, useMemo } from 'react';\nimport { useAppDispatch } from '..';\nimport { useChainId, useUserAddr } from '../web3/useChain';\nimport { useVaultMarginToken } from './useVaultMarginToken';\n\nexport default function useVaultDepositInput(vault: WrappedVault) {\n const chainId = useChainId();\n const { tokenBalance, setMarginTokenAddr, marginToken, isMarginTokenNative, isVaultCanBeNative } =\n useVaultMarginToken(vault);\n const userAddr = useUserAddr();\n const depositInputAmount = useDepositInputAmount();\n const debouncedDepositInputAmount = useDebounce(depositInputAmount, { wait: 500 });\n const { onDepositToVault } = useVaultOperations(chainId, vault.vaultAddress, marginToken);\n const dispatch = useAppDispatch();\n const accountBalanceMap = useAssetsBalanceMap(chainId, userAddr);\n const updateDepositInputAmount = useCallback(\n (amount: string) => {\n dispatch(setDepositAmount(amount));\n },\n [dispatch],\n );\n const handleDepositMutation = useMutation({\n mutationFn: async () => {\n const depositInputAmountBN = new WrappedBigNumber(depositInputAmount);\n if (depositInputAmountBN.gt(0)) {\n await onDepositToVault(depositInputAmountBN);\n }\n updateDepositInputAmount('0');\n },\n onMutate: () => {\n console.log('onMutate: before mutationFn');\n },\n onError: (error) => {\n throw error;\n },\n onSettled: () => {\n updateDepositInputAmount('0');\n },\n });\n\n const handleClickMax = useCallback(() => {\n updateDepositInputAmount(tokenBalance.toString());\n }, [tokenBalance, updateDepositInputAmount]);\n\n useEffect(() => {\n updateDepositInputAmount('');\n }, [updateDepositInputAmount, marginToken]);\n\n const isTokenBalanceLessThanMinDeposit = useMemo(() => {\n return tokenBalance.wadValue.lt(vault.minQuoteAmount.wadValue);\n }, [tokenBalance.wadValue, vault]);\n const isInputLessThanMinDeposit = useMemo(() => {\n return (\n depositInputAmount &&\n WrappedBigNumber.from(depositInputAmount)\n .add(vault.getUserDeposit(userAddr))\n .wadValue.lt(vault.minQuoteAmount.wadValue)\n );\n }, [depositInputAmount, userAddr, vault]);\n const isTokenPlusAccountBalanceGreaterMinDeposit = useMemo(() => {\n const accountBalance = accountBalanceMap[vault.quoteToken?.address]?.gateBalance;\n if (accountBalance) {\n const totalBalance = tokenBalance.add(accountBalance);\n return totalBalance.wadValue.gte(vault.minQuoteAmount.wadValue);\n } else {\n return false;\n }\n }, [accountBalanceMap, tokenBalance, vault.quoteToken?.address, vault?.minQuoteAmount]);\n\n return {\n depositInputAmount,\n updateDepositInputAmount,\n debouncedDepositInputAmount,\n handleClickMax,\n handleDeposit: () => handleDepositMutation.mutate(),\n isDepositing: handleDepositMutation.isPending,\n isVaultCanBeNative,\n setMarginTokenAddr,\n availableValue: tokenBalance,\n marginToken,\n isMarginTokenNative,\n isInputLessThanMinDeposit,\n isTokenBalanceLessThanMinDeposit,\n isTokenPlusAccountBalanceGreaterMinDeposit,\n };\n}\n","import { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedVault } from '@/entities/WrappedVault';\nimport {\n useShouldRequestWithdraw,\n useVaultOperations,\n useVaultUserPendingWithdrawInfo,\n useWithdrawInputAmount,\n} from '@/features/vault/hook';\nimport { setWithdrawAmount } from '@/features/vault/slice';\nimport { useDebounce } from 'ahooks';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useAppDispatch } from '..';\nimport { useChainId } from '../web3/useChain';\nimport { useVaultMarginToken } from './useVaultMarginToken';\n\nexport default function useVaultWithdrawInput(vault: WrappedVault, userAddr: string) {\n const { setMarginTokenAddr, marginToken, isVaultCanBeNative } = useVaultMarginToken(vault);\n const chainId = useChainId();\n const withdrawInputAmount = useWithdrawInputAmount();\n const debouncedWithdrawInputAmount = useDebounce(withdrawInputAmount, { wait: 500 });\n const [isRequestWithdraw, setIsRequestWithdraw] = useState(false);\n const [isWithdrawing, setIsWithdrawing] = useState(false);\n const { onWithdrawFromVault } = useVaultOperations(chainId, vault.vaultAddress, marginToken);\n const userPendingWithdrawInfo = useVaultUserPendingWithdrawInfo(\n vault.quoteToken.chainId,\n userAddr,\n vault.vaultAddress,\n );\n const haveArrear = useMemo(() => userPendingWithdrawInfo?.quantity.gt(0), [userPendingWithdrawInfo?.quantity]);\n const { checkShouldRequestWithdraw } = useShouldRequestWithdraw(chainId, vault.vaultAddress);\n const dispatch = useAppDispatch();\n\n const updateWithdrawInputAmount = useCallback(\n (amount: string) => {\n dispatch(setWithdrawAmount(amount));\n },\n [dispatch],\n );\n\n const updateIsRequestWithdraw = useCallback(async () => {\n const debouncedWithdrawInputAmountBN = new WrappedBigNumber(debouncedWithdrawInputAmount);\n if (debouncedWithdrawInputAmountBN.gt(0) && !haveArrear) {\n setIsRequestWithdraw(await checkShouldRequestWithdraw(new WrappedBigNumber(debouncedWithdrawInputAmount)));\n }\n }, [checkShouldRequestWithdraw, debouncedWithdrawInputAmount, haveArrear]);\n\n const handleClickMax = useCallback(() => {\n const maxValue = vault.getUserDeposit(userAddr);\n updateWithdrawInputAmount(maxValue.toString());\n }, [updateWithdrawInputAmount, userAddr, vault]);\n\n const handleWithdraw = useCallback(\n async (withdrawValue?: WrappedBigNumber) => {\n setIsWithdrawing(true);\n const withdrawInputAmountBN = withdrawValue || new WrappedBigNumber(withdrawInputAmount);\n if (withdrawInputAmountBN.gt(0)) {\n try {\n await onWithdrawFromVault(withdrawInputAmountBN, isRequestWithdraw);\n } catch (error) {\n updateWithdrawInputAmount('0');\n setIsWithdrawing(false);\n throw error;\n }\n }\n updateWithdrawInputAmount('0');\n setIsWithdrawing(false);\n },\n [isRequestWithdraw, onWithdrawFromVault, updateWithdrawInputAmount, withdrawInputAmount],\n );\n\n useEffect(() => {\n updateIsRequestWithdraw();\n }, [updateIsRequestWithdraw]);\n useEffect(() => {\n updateWithdrawInputAmount('');\n }, [updateWithdrawInputAmount, marginToken]);\n return {\n withdrawInputAmount,\n updateWithdrawInputAmount,\n debouncedWithdrawInputAmount,\n isRequestWithdraw,\n handleClickMax,\n isWithdrawing,\n handleWithdraw,\n setMarginTokenAddr,\n isVaultCanBeNative,\n marginToken,\n haveArrear,\n };\n}\n","import Alert from '@/components/Alert';\nimport { SwitchBtn } from '@/components/Button';\nimport FormInputComponent from '@/components/FormInput';\nimport I18nTrans from '@/components/I18nTrans';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { useMockDevTool } from '@/components/Mock';\nimport WrappedButton from '@/components/WrappedButton';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { WrappedVault } from '@/entities/WrappedVault';\nimport { useTokenBalance } from '@/features/balance/hook';\nimport { useNativeToken, useWrappedNativeToken } from '@/features/chain/hook';\nimport { useVaultUserPendingWithdraw } from '@/features/vault/hook';\nimport { AccountAction, useGoToAccountBalanceAction } from '@/hooks/portfolio/usePortfolioParams';\nimport useVaultDepositInput from '@/hooks/vault/useDepositInput';\nimport useVaultWithdrawInput from '@/hooks/vault/useWithdrawInput';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { useWalletAccount } from '@/hooks/web3/useWalletNetwork';\nimport NativeTokenSelector from '@/pages/components/Portfolio/Vault/AccountButtons/Deposit/DepositModal/DepositForm/NativeTokenSelector';\nimport { TokenInfo } from '@/types/token';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport classNames from 'classnames';\nimport { formatEther } from 'ethers/lib/utils';\nimport { ComponentProps, useMemo } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\nimport './element.less';\nexport enum VaultInputTabKey {\n DEPOSIT = 'DEPOSIT',\n WITHDRAW = 'WITHDRAW',\n}\ntype VaultInputBottomCardProps = {\n checkMinApprove?: boolean;\n spenderAddress: string;\n marginToken?: TokenInfo;\n activeTabKey: VaultInputTabKey;\n availableValue: WrappedBigNumber;\n loading?: boolean;\n noNeedApprove?: boolean;\n inputAmount: string;\n inputAmountStrChanged: (inputAmountStr: string) => void;\n afterApproved: () => void;\n isRequestWithdraw?: boolean;\n pendingWithdrawalAmount?: string;\n quoteSymbol?: string;\n onClickMax: () => void;\n prefixNode?: React.ReactNode;\n aboveButtonNode?: React.ReactNode;\n belowButtonNode?: React.ReactNode;\n belowInputNode?: React.ReactNode;\n min?: string;\n placeHolder?: string;\n disabledOverride?: boolean;\n};\n\nexport const MaxBtn = (props: ComponentProps<'span'>) => (\n \n MAX\n \n);\nexport function VaultInputBottomCard({\n marginToken,\n spenderAddress,\n activeTabKey,\n availableValue,\n inputAmount,\n loading,\n noNeedApprove,\n inputAmountStrChanged,\n afterApproved,\n pendingWithdrawalAmount,\n quoteSymbol,\n onClickMax,\n isRequestWithdraw,\n prefixNode,\n aboveButtonNode: abroveButtonNode,\n belowButtonNode,\n belowInputNode,\n checkMinApprove,\n min,\n placeHolder,\n disabledOverride: disabledOvervided,\n}: VaultInputBottomCardProps) {\n const { isMobile } = useMediaQueryDevice();\n const { t } = useTranslation();\n\n return (\n <>\n {prefixNode}\n
\n {t('launchpad.amount')}\n
\n ['e', 'E', '+', '-'].includes(e.key) && e.preventDefault(),\n step: 1e18,\n }}\n placeHolder={placeHolder || '0'}\n min={min}\n max={availableValue.stringValue}\n className=\"syn-vault-input-card-form-input-component\"\n inputAmountStr={inputAmount}\n inputAmountStrChanged={inputAmountStrChanged}\n tokenInfo={marginToken}\n />\n {belowInputNode}\n
\n \n {t(`launchpad.vaultInputTab.${activeTabKey}.available`)}\n \n \n \n {availableValue.formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: marginToken?.symbol,\n isShowApproximatelyEqualTo: false,\n showToolTip: true,\n })}\n \n
\n {abroveButtonNode}\n \n {isRequestWithdraw && pendingWithdrawalAmount\n ? t('launchpad.description.requestWithdraw', {\n withdrawalText: `${pendingWithdrawalAmount} ${quoteSymbol}`,\n })\n : t(`launchpad.vaultInputTab.${activeTabKey}.btn`)}\n \n {belowButtonNode}\n \n );\n}\n\nexport const VaultInputDepositBottomCard = ({ vault }: { vault: WrappedVault }) => {\n const chainId = vault.quoteToken.chainId;\n const {\n depositInputAmount,\n updateDepositInputAmount,\n handleClickMax,\n handleDeposit,\n isDepositing,\n isVaultCanBeNative,\n setMarginTokenAddr,\n availableValue,\n marginToken,\n isMarginTokenNative,\n isTokenBalanceLessThanMinDeposit,\n isInputLessThanMinDeposit,\n isTokenPlusAccountBalanceGreaterMinDeposit,\n } = useVaultDepositInput(vault);\n const wrappedTokenBalance = useTokenBalance(vault?.quoteToken.address, chainId);\n const { goToAccountBalanceAction } = useGoToAccountBalanceAction();\n const { t } = useTranslation();\n const account = useWalletAccount();\n const NativeTokenSelectorNode = useMemo(() => {\n if (isVaultCanBeNative) {\n return (\n {\n setMarginTokenAddr(address);\n }}\n />\n );\n }\n return null;\n }, [isVaultCanBeNative, setMarginTokenAddr, wrappedTokenBalance]);\n const minQuoteAmountStr = useMemo(() => {\n return formatEther(vault.minQuoteAmount.wadValue).toString();\n }, [vault.minQuoteAmount]);\n return (\n \n {isMarginTokenNative && (\n \n }\n type=\"info\"\n showIcon>\n )}\n {(isTokenBalanceLessThanMinDeposit || isInputLessThanMinDeposit) &&\n account &&\n vault.stageForUi !== Stage.SUSPENDED && (\n \n {t('launchpad.description.minDeposit', {\n amount: minQuoteAmountStr,\n tokenSymbol: marginToken?.symbol,\n })}\n {isTokenBalanceLessThanMinDeposit && (\n <>\n {' '}\n  \n {isTokenPlusAccountBalanceGreaterMinDeposit && (\n goToAccountBalanceAction(AccountAction.withdraw, vault.quoteToken.address)}\n className=\"syn-vidbc-underline\">\n {t('launchpad.withdrawFromAccount')}\n \n )}\n \n )}\n \n }\n showIcon\n />\n )}\n \n }\n belowButtonNode={\n
\n }}\n />\n
\n }\n />\n );\n};\n\nexport const VaultInputWithdrawBottomCard = ({\n vault,\n activeTabKey,\n}: {\n vault: WrappedVault;\n activeTabKey: VaultInputTabKey;\n}) => {\n const userAddr = useUserAddr();\n const chainId = useChainId();\n const {\n withdrawInputAmount,\n updateWithdrawInputAmount,\n isRequestWithdraw,\n handleClickMax,\n debouncedWithdrawInputAmount,\n handleWithdraw,\n isWithdrawing,\n isVaultCanBeNative,\n marginToken,\n setMarginTokenAddr,\n haveArrear,\n } = useVaultWithdrawInput(vault, userAddr || '');\n const { userPendingWithdrawInfo } = useVaultUserPendingWithdraw(chainId, userAddr, vault?.vaultAddress);\n const { isMockVaultShowWithdrawlRequest } = useMockDevTool();\n const pendingWithdrawalAmount = useMemo(() => {\n const num = userPendingWithdrawInfo?.quantity;\n const amount = WrappedBigNumber.from(num || debouncedWithdrawInputAmount || 0);\n return amount.notEq(0)\n ? amount.formatDisplayNumber({\n isShowTBMK: true,\n })\n : undefined;\n }, [debouncedWithdrawInputAmount, userPendingWithdrawInfo?.quantity]);\n const nativeToken = useNativeToken(vault.quoteToken.chainId);\n const wrappedNativeToken = useWrappedNativeToken(vault.quoteToken.chainId);\n const { t } = useTranslation();\n const availableValue = vault.getUserDeposit(userAddr);\n const aboveButtonNode = useMemo(() => {\n return (\n isVaultCanBeNative && (\n <>\n
\n \n {t('common.depositForm.withdrawNativeToken', {\n wrappedToken: wrappedNativeToken?.symbol,\n nativeToken: nativeToken?.symbol,\n })}\n \n {\n nativeToken && setMarginTokenAddr(checked ? nativeToken?.address : vault?.quoteToken.address);\n }}\n />\n
\n \n )\n );\n }, [\n isVaultCanBeNative,\n marginToken?.address,\n nativeToken,\n setMarginTokenAddr,\n t,\n vault?.quoteToken.address,\n wrappedNativeToken?.symbol,\n ]);\n const disabledBtn = useMemo(() => {\n return vault.stageForUi === Stage.SUSPENDED || haveArrear || !vault.getUserDeposit(userAddr)?.gt(0);\n }, [haveArrear, userAddr, vault]);\n return (\n \n {isMockVaultShowWithdrawlRequest || userPendingWithdrawInfo || isRequestWithdraw ? (\n t('launchpad.description.withdrawalTime')\n ) : (\n }}\n />\n )}\n \n }\n />\n );\n};\n","import { CardWrapper } from '@/components/CardWrapper';\nimport { WrappedVault } from '@/entities/WrappedVault';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport classNames from 'classnames';\nimport { ComponentProps, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { VaultInputDepositBottomCard, VaultInputTabKey, VaultInputWithdrawBottomCard } from './element';\nimport './index.less';\ntype VaultInputCardProps = ComponentProps<'div'> & { vault: WrappedVault };\n\nexport default function VaultInputCard({ className, vault, ...others }: VaultInputCardProps) {\n const [activeTabKey, setActiveTabKey] = useState(VaultInputTabKey.DEPOSIT);\n const { t } = useTranslation();\n\n return (\n
\n {\n setActiveTabKey(key as VaultInputTabKey);\n }}\n tabList={[\n {\n tab: t('launchpad.deposit'),\n key: VaultInputTabKey.DEPOSIT,\n disabled: vault.stageForUi === Stage.INVALID,\n },\n {\n tab: t('launchpad.withdraw'),\n key: VaultInputTabKey.WITHDRAW,\n },\n ]}>\n {activeTabKey === VaultInputTabKey.DEPOSIT && }\n {activeTabKey === VaultInputTabKey.WITHDRAW && (\n \n )}\n \n\n {/* {activeTabKey === VaultInputTabKey.WITHDRAW && } */}\n
\n );\n}\n","import { WrappedVault } from '@/entities/WrappedVault';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport classNames from 'classnames';\nimport { ComponentProps, ReactNode } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\ntype VaultMetaCardProps = ComponentProps<'div'> & { vault: WrappedVault; showTvl?: boolean };\n\n// const HorizontalText = ({ title, value }: { title: ReactNode; value: ReactNode }) => {\n// return (\n//
\n// {title}\n// {value}\n//
\n// );\n// };\nexport const VerticalText = ({\n title,\n value,\n usdValue,\n}: {\n title: ReactNode;\n value: ReactNode;\n usdValue?: ReactNode;\n}) => {\n return (\n
\n {title}\n \n {value}\n {usdValue && {usdValue}}\n \n
\n );\n};\nexport default function VaultMetaCard({ className, vault, showTvl = true, ...others }: VaultMetaCardProps) {\n const { t } = useTranslation();\n const userAddr = useUserAddr();\n if (vault.getUserDeposit(userAddr)?.eq(0) && vault.getUserAllTimeEarned(userAddr).lte(0)) {\n return null;\n }\n return (\n
\n {showTvl && (\n
\n \n
\n )}\n
\n {!vault.getUserDeposit(userAddr)?.eq(0) && (\n \n )}\n {/* {vault.getUserAllTimeEarned(userAddr).lte(0) ? null : (\n \n )}\n */}\n
\n
\n );\n}\n","import { WrappedVault } from '@/entities/WrappedVault';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './element.less';\ntype VaultYourDepositProps = ComponentProps<'div'> & { vault: WrappedVault };\nexport function VaultYourDeposit({ className, vault }: VaultYourDepositProps) {\n const { t } = useTranslation();\n const userAddr = useUserAddr();\n if (vault.getUserDeposit(userAddr).eq(0)) {\n return null;\n }\n return (\n
\n {t('launchpad.yourDeposit')}\n \n \n {vault.getUserDeposit(userAddr).formatNumberWithTooltip({\n isShowTBMK: true,\n suffix: ` ${vault.quoteToken.symbol}`,\n })}\n \n \n {vault.getUserDepositUSD(userAddr).formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n })}\n \n \n
\n );\n}\n","import Alert from '@/components/Alert';\nimport { WrappedVault } from '@/entities/WrappedVault';\nimport { useUserAddr } from '@/hooks/web3/useChain';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport classNames from 'classnames';\nimport { ComponentProps, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport ProgressCard from './ProgressCard';\nimport VaultInputCard from './VaultInputCard';\nimport VaultMetaCard from './VaultMetaCard';\nimport { VaultYourDeposit } from './element';\nimport './index.less';\n\ntype VaultCardProps = ComponentProps<'div'> & { vault: WrappedVault };\nexport default function VaultCard({ className, vault, ...others }: VaultCardProps) {\n const userAddr = useUserAddr();\n const { t } = useTranslation();\n\n const userDeposit = useMemo(() => {\n return vault && userAddr && vault.getUserDeposit(userAddr);\n }, [userAddr, vault]);\n\n return (\n
\n {vault.stageForUi === Stage.INVALID && (\n \n )}\n {/* {!haveNoPair && (\n
\n } />\n
\n )} */}\n {vault.stageForUi === Stage.UPCOMING && (\n <>\n \n
\n \n )}\n {vault.stageForUi === Stage.UPCOMING ? (\n \n ) : (\n \n )}\n {userDeposit && userDeposit.gt(0) &&
}\n \n
\n );\n}\n","/**\n * @description Component-VaultProjectName\n */\nimport './index.less';\n\nimport TokenLogo from '@/components/TokenLogo';\nimport { useVaultInfos } from '@/features/vault/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport MarketTag from '@/pages/Market/MarketTag';\nimport _ from 'lodash';\nimport { FC, useMemo } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n nameOnly?: boolean;\n vaultAddr: string;\n vaultName?: string;\n}\nconst VaultProjectName: FC = function ({ vaultAddr, nameOnly, vaultName }) {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n\n const { vaultInfos } = useVaultInfos(chainId, userAddr);\n const vaultInfo = useMemo(() => _.get(vaultInfos, [vaultAddr]), [vaultAddr, vaultInfos]);\n return nameOnly ? (\n <>{vaultInfo?.name}\n ) : (\n
\n \n
\n {vaultInfo?.name || vaultName}\n
\n ${vaultInfo?.tokenInfo.symbol}\n {vaultInfo.tags.map((tag, index) => (\n \n ))}\n
\n
\n
\n );\n};\n\nexport default VaultProjectName;\n","import { vaultStageInfos } from '@/constants/launchpad/vault';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\ntype TVaultStatusTextProps = ComponentProps<'div'> & {\n vaultStage: Stage;\n type?: 'default' | 'tag';\n};\nexport default function VaultStatusText({ vaultStage, type = 'default' }: TVaultStatusTextProps) {\n const { t } = useTranslation();\n const statusInfo = vaultStageInfos[vaultStage];\n if (!statusInfo) {\n return null;\n }\n const { color, bgColor, i18nId } = statusInfo;\n return (\n \n {type == 'tag' && vaultStage === Stage.LIVE && (\n \n )}\n {t(i18nId)}\n
\n );\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconScDiscord = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.0152 4.37977C12.0978 3.60401 10.9969 3.21614 9.83478 3.15149L9.65129 3.34543C10.691 3.60401 11.6085 4.12119 12.4647 4.8323C11.425 4.25048 10.2629 3.8626 9.03967 3.73331C8.6727 3.66866 8.36689 3.66866 7.99992 3.66866C7.63294 3.66866 7.32713 3.66866 6.96016 3.73331C5.73692 3.8626 4.57484 4.25048 3.53509 4.8323C4.39136 4.12119 5.30879 3.60401 6.34854 3.34543L6.16506 3.15149C5.00298 3.21614 3.90206 3.60401 2.98463 4.37977C1.94487 6.44846 1.39441 8.77573 1.33325 11.1676C2.25068 12.202 3.53509 12.8485 4.88065 12.8485C4.88065 12.8485 5.30879 12.3313 5.6146 11.8788C4.81949 11.6848 4.08554 11.2323 3.59625 10.5212C4.02438 10.7798 4.45252 11.0384 4.88065 11.2323C5.43111 11.4909 5.98157 11.6202 6.53203 11.7495C7.02132 11.8141 7.51062 11.8788 7.99992 11.8788C8.48921 11.8788 8.97851 11.8141 9.46781 11.7495C10.0183 11.6202 10.5687 11.4909 11.1192 11.2323C11.5473 11.0384 11.9755 10.7798 12.4036 10.5212C11.9143 11.2323 11.1803 11.6848 10.3852 11.8788C10.691 12.3313 11.1192 12.8485 11.1192 12.8485C12.4647 12.8485 13.7492 12.202 14.6666 11.1676C14.6054 8.77573 14.055 6.44846 13.0152 4.37977ZM5.98157 10.004C5.36995 10.004 4.81949 9.42219 4.81949 8.71108C4.81949 7.99997 5.36995 7.41815 5.98157 7.41815C6.59319 7.41815 7.14365 7.99997 7.14365 8.71108C7.14365 9.42219 6.59319 10.004 5.98157 10.004ZM10.0183 10.004C9.40664 10.004 8.85619 9.42219 8.85619 8.71108C8.85619 7.99997 9.40664 7.41815 10.0183 7.41815C10.6299 7.41815 11.1803 7.99997 11.1803 8.71108C11.1803 9.42219 10.6299 10.004 10.0183 10.004Z\",\n fill: \"#687EC9\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconScDiscord);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_sc_discord.c04e208f5ff53032ff6e12940adbb19e.svg\";","import { ExplorerIcon } from '@/assets/svg';\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport TokenLogo from '@/components/TokenLogo';\nimport { WrappedVault } from '@/entities/WrappedVault';\nimport { useChainId, useEtherscanLink } from '@/hooks/web3/useChain';\nimport VaultProjectName from '@/pages/vault/VaultProjectName';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport VaultStatusText from '../VaultStatusText';\nimport './index.less';\ntype TTokenVaultTextProps = ComponentProps<'div'> & {\n tokenLogoProps: ComponentProps;\n isLinkToExplorer?: boolean;\n vault?: WrappedVault;\n isShownPairs?: boolean;\n isShownPrice?: boolean;\n vaultStage?: {\n isShownStage?: boolean;\n vaultStage?: Stage;\n };\n};\n\nexport default function TokenVaultText({\n tokenLogoProps,\n className,\n onClick,\n vaultStage,\n vault,\n isLinkToExplorer = false,\n isShownPrice = true,\n ...others\n}: TTokenVaultTextProps) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const getEtherscanLink = useEtherscanLink();\n const handleClickEtherscanLink = () => {\n window.open(vault?.vaultAddress && getEtherscanLink(vault?.vaultAddress, 'address'));\n };\n\n return (\n {\n onClick?.(e);\n isLinkToExplorer && handleClickEtherscanLink();\n }}\n className={classNames('syn-token-vault-text', isLinkToExplorer && 'link-to-explorer', className)}\n {...others}>\n \n
\n
\n \n \n {vault && }\n \n \n {isLinkToExplorer && }\n {vaultStage?.isShownStage && vaultStage.vaultStage && (\n \n )}\n
\n {vault && isShownPrice && (\n
\n {vault.quoteToken.symbol} {t('common.price')}\n \n $\n \n {vault.quoteToken.price?.formatPriceNumberWithTooltip()}\n \n  \n \n \n {vault.quoteToken.price_change_percentage_24h?.formatPercentage({\n hundredfold: true,\n colorShader: true,\n })}\n \n
\n )}\n
\n
\n );\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconScFarcaster = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.00001 2.39996H12V3.99997H14L13.6 5.59996H13.2V12C13.421 12 13.6 12.179 13.6 12.4V12.8C13.821 12.8 14 12.979 14 13.2V13.6H10V13.2C10 12.979 10.179 12.8 10.4 12.8V12.4C10.4 12.179 10.579 12 10.8 12V8.76569C10.7988 7.22033 9.54564 5.96797 8 5.96797C6.45391 5.96797 5.20051 7.22105 5.2 8.76703V12C5.42099 12 5.6 12.179 5.6 12.4V12.8C5.82101 12.8 5.99999 12.979 5.99999 13.2V13.6H2V13.2C2 12.979 2.179 12.8 2.4 12.8V12.4C2.4 12.179 2.579 12 2.79999 12V5.59996H2.4L2 3.99997H4.00001V2.39996Z\",\n fill: \"#7C65C1\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconScFarcaster);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_sc_farcaster.565854f1187be53e0514bf18af2bb7a3.svg\";","var _path, _path2, _path3, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconScInstagram = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.00007 5.91718C6.8532 5.91718 5.91726 6.85311 5.91726 7.99999C5.91726 9.14686 6.8532 10.0828 8.00007 10.0828C9.14695 10.0828 10.0829 9.14686 10.0829 7.99999C10.0829 6.85311 9.14695 5.91718 8.00007 5.91718ZM14.2469 7.99999C14.2469 7.13749 14.2548 6.2828 14.2063 5.42186C14.1579 4.42186 13.9298 3.53436 13.1985 2.80311C12.4657 2.0703 11.5798 1.84374 10.5798 1.7953C9.71726 1.74686 8.86257 1.75468 8.00164 1.75468C7.13914 1.75468 6.28445 1.74686 5.42351 1.7953C4.42351 1.84374 3.53601 2.07186 2.80476 2.80311C2.07195 3.53593 1.84539 4.42186 1.79695 5.42186C1.74851 6.28436 1.75632 7.13905 1.75632 7.99999C1.75632 8.86093 1.74851 9.71718 1.79695 10.5781C1.84539 11.5781 2.07351 12.4656 2.80476 13.1969C3.53757 13.9297 4.42351 14.1562 5.42351 14.2047C6.28601 14.2531 7.1407 14.2453 8.00164 14.2453C8.86414 14.2453 9.71882 14.2531 10.5798 14.2047C11.5798 14.1562 12.4673 13.9281 13.1985 13.1969C13.9313 12.4641 14.1579 11.5781 14.2063 10.5781C14.2563 9.71718 14.2469 8.86249 14.2469 7.99999ZM8.00007 11.2047C6.22664 11.2047 4.79539 9.77343 4.79539 7.99999C4.79539 6.22655 6.22664 4.7953 8.00007 4.7953C9.77351 4.7953 11.2048 6.22655 11.2048 7.99999C11.2048 9.77343 9.77351 11.2047 8.00007 11.2047ZM11.336 5.41249C10.9219 5.41249 10.5876 5.07811 10.5876 4.66405C10.5876 4.24999 10.9219 3.91561 11.336 3.91561C11.7501 3.91561 12.0844 4.24999 12.0844 4.66405C12.0846 4.76237 12.0653 4.85975 12.0277 4.95061C11.9902 5.04147 11.935 5.12403 11.8655 5.19355C11.796 5.26307 11.7134 5.3182 11.6226 5.35577C11.5317 5.39334 11.4343 5.41261 11.336 5.41249Z\",\n fill: \"black\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.00007 5.91718C6.8532 5.91718 5.91726 6.85311 5.91726 7.99999C5.91726 9.14686 6.8532 10.0828 8.00007 10.0828C9.14695 10.0828 10.0829 9.14686 10.0829 7.99999C10.0829 6.85311 9.14695 5.91718 8.00007 5.91718ZM14.2469 7.99999C14.2469 7.13749 14.2548 6.2828 14.2063 5.42186C14.1579 4.42186 13.9298 3.53436 13.1985 2.80311C12.4657 2.0703 11.5798 1.84374 10.5798 1.7953C9.71726 1.74686 8.86257 1.75468 8.00164 1.75468C7.13914 1.75468 6.28445 1.74686 5.42351 1.7953C4.42351 1.84374 3.53601 2.07186 2.80476 2.80311C2.07195 3.53593 1.84539 4.42186 1.79695 5.42186C1.74851 6.28436 1.75632 7.13905 1.75632 7.99999C1.75632 8.86093 1.74851 9.71718 1.79695 10.5781C1.84539 11.5781 2.07351 12.4656 2.80476 13.1969C3.53757 13.9297 4.42351 14.1562 5.42351 14.2047C6.28601 14.2531 7.1407 14.2453 8.00164 14.2453C8.86414 14.2453 9.71882 14.2531 10.5798 14.2047C11.5798 14.1562 12.4673 13.9281 13.1985 13.1969C13.9313 12.4641 14.1579 11.5781 14.2063 10.5781C14.2563 9.71718 14.2469 8.86249 14.2469 7.99999ZM8.00007 11.2047C6.22664 11.2047 4.79539 9.77343 4.79539 7.99999C4.79539 6.22655 6.22664 4.7953 8.00007 4.7953C9.77351 4.7953 11.2048 6.22655 11.2048 7.99999C11.2048 9.77343 9.77351 11.2047 8.00007 11.2047ZM11.336 5.41249C10.9219 5.41249 10.5876 5.07811 10.5876 4.66405C10.5876 4.24999 10.9219 3.91561 11.336 3.91561C11.7501 3.91561 12.0844 4.24999 12.0844 4.66405C12.0846 4.76237 12.0653 4.85975 12.0277 4.95061C11.9902 5.04147 11.935 5.12403 11.8655 5.19355C11.796 5.26307 11.7134 5.3182 11.6226 5.35577C11.5317 5.39334 11.4343 5.41261 11.336 5.41249Z\",\n fill: \"url(#paint0_radial_33769_26952)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.00007 5.91718C6.8532 5.91718 5.91726 6.85311 5.91726 7.99999C5.91726 9.14686 6.8532 10.0828 8.00007 10.0828C9.14695 10.0828 10.0829 9.14686 10.0829 7.99999C10.0829 6.85311 9.14695 5.91718 8.00007 5.91718ZM14.2469 7.99999C14.2469 7.13749 14.2548 6.2828 14.2063 5.42186C14.1579 4.42186 13.9298 3.53436 13.1985 2.80311C12.4657 2.0703 11.5798 1.84374 10.5798 1.7953C9.71726 1.74686 8.86257 1.75468 8.00164 1.75468C7.13914 1.75468 6.28445 1.74686 5.42351 1.7953C4.42351 1.84374 3.53601 2.07186 2.80476 2.80311C2.07195 3.53593 1.84539 4.42186 1.79695 5.42186C1.74851 6.28436 1.75632 7.13905 1.75632 7.99999C1.75632 8.86093 1.74851 9.71718 1.79695 10.5781C1.84539 11.5781 2.07351 12.4656 2.80476 13.1969C3.53757 13.9297 4.42351 14.1562 5.42351 14.2047C6.28601 14.2531 7.1407 14.2453 8.00164 14.2453C8.86414 14.2453 9.71882 14.2531 10.5798 14.2047C11.5798 14.1562 12.4673 13.9281 13.1985 13.1969C13.9313 12.4641 14.1579 11.5781 14.2063 10.5781C14.2563 9.71718 14.2469 8.86249 14.2469 7.99999ZM8.00007 11.2047C6.22664 11.2047 4.79539 9.77343 4.79539 7.99999C4.79539 6.22655 6.22664 4.7953 8.00007 4.7953C9.77351 4.7953 11.2048 6.22655 11.2048 7.99999C11.2048 9.77343 9.77351 11.2047 8.00007 11.2047ZM11.336 5.41249C10.9219 5.41249 10.5876 5.07811 10.5876 4.66405C10.5876 4.24999 10.9219 3.91561 11.336 3.91561C11.7501 3.91561 12.0844 4.24999 12.0844 4.66405C12.0846 4.76237 12.0653 4.85975 12.0277 4.95061C11.9902 5.04147 11.935 5.12403 11.8655 5.19355C11.796 5.26307 11.7134 5.3182 11.6226 5.35577C11.5317 5.39334 11.4343 5.41261 11.336 5.41249Z\",\n fill: \"url(#paint1_radial_33769_26952)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint0_radial_33769_26952\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(5.07401 15.2079) rotate(-90) scale(12.3801 11.5146)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFDD55\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.1,\n stopColor: \"#FFDD55\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.5,\n stopColor: \"#FF543E\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#C837AB\"\n })), /*#__PURE__*/React.createElement(\"radialGradient\", {\n id: \"paint1_radial_33769_26952\",\n cx: 0,\n cy: 0,\n r: 1,\n gradientUnits: \"userSpaceOnUse\",\n gradientTransform: \"translate(-0.336581 2.65408) rotate(78.6804) scale(5.53394 22.8115)\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#3771C8\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.128,\n stopColor: \"#3771C8\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#6600FF\",\n stopOpacity: 0\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconScInstagram);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_sc_instagram.b51459dc9273492184c5c7e63e639db6.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconScTelegram = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.7766 2.478L1.95657 7.036C1.1499 7.36 1.15457 7.81 1.80857 8.01067L4.84323 8.95734L11.8646 4.52734C12.1966 4.32534 12.4999 4.434 12.2506 4.65534L6.5619 9.78934H6.56057L6.5619 9.79L6.35257 12.918C6.65923 12.918 6.79457 12.7773 6.96657 12.6113L8.44057 11.178L11.5066 13.4427C12.0719 13.754 12.4779 13.594 12.6186 12.9193L14.6312 3.434C14.8372 2.608 14.3159 2.234 13.7766 2.478V2.478Z\",\n fill: \"#0088CC\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconScTelegram);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_sc_telegram.9dcd3ee10e73e4954e646b1f77926c95.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconScTwitter = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.6423 2.3125H13.572L9.35626 7.13083L14.3158 13.6875H10.4325L7.39101 9.71092L3.91084 13.6875H1.98001L6.48917 8.53375L1.73151 2.3125H5.71334L8.46259 5.94725L11.6423 2.3125ZM10.9651 12.5325H12.0343L5.13234 3.40683H3.98492L10.9651 12.5325Z\",\n fill: \"black\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconScTwitter);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_sc_twitter.f49272a23896fa2eec7d5a73e5b3c6e7.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconScWebsite = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.54063 1.51624C5.9846 1.62642 4.51406 2.29355 3.40381 3.40381C2.18482 4.62279 1.5 6.27609 1.5 8C1.5 8.85359 1.66813 9.69883 1.99478 10.4874C2.32144 11.2761 2.80023 11.9926 3.40381 12.5962C4.00739 13.1998 4.72394 13.6786 5.51256 14.0052C6.15913 14.273 6.84376 14.4343 7.53985 14.4837C7.60467 14.5007 7.67281 14.5047 7.74003 14.4948C7.82657 14.4983 7.91324 14.5 8 14.5C8.08681 14.5 8.17354 14.4983 8.26013 14.4948C8.3274 14.5047 8.39558 14.5007 8.46044 14.4837C9.15643 14.4342 9.84096 14.273 10.4874 14.0052C11.2761 13.6786 11.9926 13.1998 12.5962 12.5962C13.1998 11.9926 13.6786 11.2761 14.0052 10.4874C14.3319 9.69883 14.5 8.85359 14.5 8C14.5 6.27609 13.8152 4.62279 12.5962 3.40381C11.486 2.29362 10.0156 1.6265 8.45966 1.51626C8.39528 1.49948 8.32764 1.49548 8.26088 1.50523C8.17413 1.50175 8.08716 1.5 8 1.5C7.9129 1.5 7.82598 1.50175 7.73928 1.50523C7.67257 1.49549 7.60497 1.49948 7.54063 1.51624ZM6.72708 2.64931C5.74454 2.88308 4.83674 3.38509 4.11091 4.11091C3.69978 4.52205 3.36045 4.99158 3.10101 5.5H5.71535C5.92884 4.51236 6.26838 3.5541 6.72708 2.64931ZM5.5437 6.5H2.70849C2.57133 6.98378 2.5 7.48821 2.5 8C2.5 8.50824 2.57044 9.01299 2.7085 9.5H5.54368C5.48033 9.00425 5.44824 8.50331 5.44824 8.00007C5.44824 7.49678 5.48034 6.9958 5.5437 6.5ZM6.55258 9.5C6.48335 9.00484 6.44824 8.50371 6.44824 8.00007C6.44824 7.49638 6.48336 6.9952 6.55259 6.5H9.44762C9.51685 6.9952 9.55197 7.49638 9.55197 8.00007C9.55197 8.50371 9.51686 9.00484 9.44764 9.5H6.55258ZM5.71532 10.5H3.10102C3.36243 11.0123 3.70299 11.4812 4.11091 11.8891C4.62164 12.3998 5.22795 12.8049 5.89524 13.0813C6.16554 13.1933 6.44369 13.2832 6.727 13.3507C6.26832 12.4459 5.92879 11.4876 5.71532 10.5ZM7.94806 13.4998C7.39564 12.5623 6.98981 11.5506 6.74063 10.5H9.25958C9.0104 11.5506 8.60457 12.5623 8.05215 13.4998C8.03477 13.4999 8.01739 13.5 8 13.5C7.98268 13.5 7.96537 13.4999 7.94806 13.4998ZM9.27324 13.3506C9.55646 13.2832 9.83454 13.1933 10.1048 13.0813C10.772 12.8049 11.3784 12.3998 11.8891 11.8891C12.297 11.4812 12.6376 11.0123 12.899 10.5H10.2849C10.0714 11.4876 9.73191 12.4458 9.27324 13.3506ZM10.4565 9.5H13.2915C13.4296 9.01299 13.5 8.50824 13.5 8C13.5 7.48821 13.4287 6.98378 13.2915 6.5H10.4565C10.5199 6.9958 10.552 7.49678 10.552 8.00007C10.552 8.50331 10.5199 9.00425 10.4565 9.5ZM10.2849 5.5H12.899C12.6395 4.99158 12.3002 4.52205 11.8891 4.11091C11.1633 3.38515 10.2556 2.88316 9.27316 2.64937C9.73184 3.55414 10.0714 4.51238 10.2849 5.5ZM7.94814 2.50024C7.96542 2.50008 7.9827 2.5 8 2.5C8.01737 2.5 8.03472 2.50008 8.05207 2.50025C8.60451 3.43774 9.01035 4.44937 9.25955 5.5H6.74066C6.98986 4.44936 7.3957 3.43774 7.94814 2.50024Z\",\n fill: \"black\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconScWebsite);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_sc_website.77766f99509d0b945eb2adec4a6dccc7.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconScYoutube = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_33731_33181)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.44968 5.11482C1.51089 4.17254 2.26846 3.43408 3.21157 3.38736C4.57724 3.3197 6.52919 3.2381 7.99992 3.2381C9.47064 3.2381 11.4226 3.3197 12.7883 3.38736C13.7314 3.43408 14.4889 4.17254 14.5502 5.11482C14.6088 6.01759 14.6666 7.12841 14.6666 8C14.6666 8.87159 14.6088 9.98242 14.5502 10.8852C14.4889 11.8275 13.7314 12.5659 12.7883 12.6126C11.4226 12.6803 9.47064 12.7619 7.99992 12.7619C6.52919 12.7619 4.57724 12.6803 3.21157 12.6126C2.26847 12.5659 1.51089 11.8275 1.44968 10.8852C1.39104 9.98242 1.33325 8.87159 1.33325 8C1.33325 7.12841 1.39104 6.01759 1.44968 5.11482Z\",\n fill: \"#FC0D1B\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.57129 6.58062V9.41933C6.57129 9.64234 6.80598 9.78739 7.00545 9.68766L9.84416 8.2683C10.0653 8.15775 10.0653 7.84221 9.84416 7.73165L7.00545 6.3123C6.80598 6.21256 6.57129 6.35761 6.57129 6.58062Z\",\n fill: \"white\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_33731_33181\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconScYoutube);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_sc_youtube.1d7eaf61b23a50cafb85039c1d545c8d.svg\";","/**\n * @description Component-VaultInfoCard\n */\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport { ExternalLink } from '@/components/Link';\nimport TokenVaultText from '@/components/Text/TokenVaultText';\nimport { WrappedVault } from '@/entities/WrappedVault';\nimport { useVaultInfo } from '@/features/vault/hook';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport classNames from 'classnames';\nimport { ComponentProps, FC, useEffect, useMemo, useRef, useState } from 'react';\nimport { ReactComponent as IconDiscord } from './assets/icon_sc_discord.svg';\nimport { ReactComponent as IconFarcaster } from './assets/icon_sc_farcaster.svg';\nimport { ReactComponent as IconInstagram } from './assets/icon_sc_instagram.svg';\nimport { ReactComponent as IconTelegram } from './assets/icon_sc_telegram.svg';\nimport { ReactComponent as IconTwitter } from './assets/icon_sc_twitter.svg';\nimport { ReactComponent as IconWebsite } from './assets/icon_sc_website.svg';\nimport { ReactComponent as IconYoutube } from './assets/icon_sc_youtube.svg';\n\ntype VaultCardProps = ComponentProps<'div'> & { vault: WrappedVault };\n\nconst VaultInfoCard: FC = function ({ vault, className, ...others }) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const vaultInfo = useVaultInfo(chainId, vault?.vaultAddress);\n\n const [isShowMore, setIsShowMore] = useState(false);\n\n const [showTrigger, setShowTrigger] = useState(false);\n const contentRef = useRef(null);\n\n useEffect(() => {\n if (contentRef.current) {\n const lineHeight = 16;\n const maxHeight = lineHeight * 3;\n setShowTrigger(contentRef.current.scrollHeight > maxHeight);\n }\n }, [vaultInfo?.describe]);\n\n const isShowSocials = useMemo(() => {\n return (\n vaultInfo?.website ||\n vaultInfo?.twitter ||\n vaultInfo?.discord ||\n vaultInfo?.youtube ||\n vaultInfo?.telegram ||\n vaultInfo?.instagram ||\n vaultInfo?.farcaster\n );\n }, [\n vaultInfo?.discord,\n vaultInfo?.farcaster,\n vaultInfo?.instagram,\n vaultInfo?.telegram,\n vaultInfo?.twitter,\n vaultInfo?.website,\n vaultInfo?.youtube,\n ]);\n return (\n
\n
\n
\n \n
\n
\n
\n {vaultInfo?.describe && (\n
\n
\n
\n
\n
{vaultInfo?.describe}
\n
\n {showTrigger && (\n setIsShowMore(!isShowMore)}>\n {isShowMore ? t('launchpad.vaultInfo.less') : t('launchpad.vaultInfo.more')}...\n \n )}\n
\n
\n
\n )}\n\n {isShowSocials && (\n
\n {vaultInfo?.website && (\n \n \n \n )}\n {vaultInfo?.twitter && (\n \n \n \n )}\n {vaultInfo?.discord && (\n \n \n \n )}\n {vaultInfo?.youtube && (\n \n \n \n )}\n {vaultInfo?.telegram && (\n \n \n \n )}\n {vaultInfo?.instagram && (\n \n \n \n )}\n {vaultInfo?.farcaster && (\n \n \n \n )}\n
\n )}\n
\n
\n );\n};\n\nexport default VaultInfoCard;\n","/**\n * @description Component-VaultCardSkeleton\n */\nimport { Input, Skeleton } from 'antd';\nimport './index.less';\n\nimport { Button } from '@/components/Button';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst VaultCardSkeleton: FC = function ({}) {\n const { t } = useTranslation();\n return (\n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n \n
\n
\n );\n};\n\nexport default VaultCardSkeleton;\n","import Empty from '@/components/Empty';\nimport { ExternalLink } from '@/components/Link';\nimport { VaultActionId } from '@/constants/launchpad/vault';\nimport { WrappedBigNumber } from '@/entities/WrappedBigNumber';\nimport { useNativeToken } from '@/features/chain/hook';\nimport { useChainId, useEtherscanLink } from '@/hooks/web3/useChain';\nimport { useWalletAccount } from '@/hooks/web3/useWalletNetwork';\nimport VaultProjectName from '@/pages/vault/VaultProjectName';\nimport { IVaultHistory } from '@/types/vault';\nimport { formatDate } from '@/utils/timeUtils';\nimport { fixBalanceNumberDecimalsTo18 } from '@/utils/token';\nimport SkeletonButton from 'antd/es/skeleton/Button';\nimport classNames from 'classnames';\nimport { ComponentProps } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\ntype TVaultHistoryCardProps = ComponentProps<'div'> & {\n isSkeleton?: boolean;\n data: IVaultHistory[];\n};\n\nexport const VaultHistoryCard = ({ className, data, isSkeleton = true, ...ospaners }: TVaultHistoryCardProps) => {\n const { t } = useTranslation();\n const getEtherscanLink = useEtherscanLink();\n const chainId = useChainId();\n const nativeToken = useNativeToken(chainId);\n const account = useWalletAccount();\n return (\n
\n
\n
\n {t('launchpad.time')}\n {t('launchpad.project')}\n {t('launchpad.valueChange')}\n
\n
\n {isSkeleton ? (\n [1, 2, 3, 4].map((item, i) => (\n
\n \n \n \n \n \n \n \n \n \n
\n ))\n ) : data.length === 0 || !account ? (\n \n ) : (\n data.map((item, i) => {\n const valueChangeAmount = WrappedBigNumber.from(\n fixBalanceNumberDecimalsTo18(\n item.type !== VaultActionId.withdrawal ? item.quoteAmount : item.quoteAmount.mul(-1),\n item.vault?.tokenInfo.decimals || 18,\n ),\n );\n return (\n
\n \n \n {formatDate(item.timestamp * 1000, 'MM-DD')}\n \n \n {item.vault && }\n \n {valueChangeAmount.formatNumberWithTooltip({\n isShowTBMK: true,\n colorShader: true,\n colorSuffix: true,\n suffix: item.isNative ? nativeToken?.symbol : item.vault?.tokenInfo.symbol,\n isShowApproximatelyEqualTo: false,\n showToolTip: true,\n })}\n \n
\n );\n })\n )}\n
\n
\n
\n );\n};\n","import { CrossIcon, HistoryIcon } from '@/assets/svg';\nimport { useMockDevTool } from '@/components/Mock';\nimport { FETCHING_STATUS } from '@/constants';\nimport { fetchVaultHistory } from '@/features/vault/action';\nimport { useSelectedVault, useUserVaultHistory, useUserVaultHistoryStatus } from '@/features/vault/hook';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport VaultCard from '../VaultCard';\nimport VaultInfoCard from '../VaultCard/VaultInfoCard';\nimport VaultCardSkeleton from '../VaultCardSkeleton';\nimport { VaultHistoryCard } from './VaultHistoryCard';\nimport './index.less';\nexport default function YourDepositsCard() {\n const [showHistory, setShowHistory] = useState(false);\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { selectedVault } = useSelectedVault();\n const dispatch = useAppDispatch();\n const vaultHistory = useUserVaultHistory(chainId, userAddr);\n const vaultHistoryStatus = useUserVaultHistoryStatus(chainId, userAddr);\n const { isMockSkeleton } = useMockDevTool();\n const sdk = useSDK(chainId);\n useEffect(() => {\n showHistory && chainId && userAddr && sdk && dispatch(fetchVaultHistory({ chainId, userAddr, sdk }));\n }, [chainId, dispatch, showHistory, userAddr, sdk]);\n\n return (\n
\n
\n {showHistory ? t('launchpad.history') : t('launchpad.project')}\n {\n setShowHistory((prev) => !prev);\n }}>\n {showHistory ? : }\n \n
\n\n {selectedVault ? (\n <>\n {' '}\n {showHistory ? (\n \n ) : (\n
\n \n \n
\n )}\n \n ) : (\n \n )}\n
\n );\n}\n","import { checkTokenAllowance } from '@/features/user/actions';\nimport { useSDK } from '@/features/web3/hook';\nimport { useAppDispatch } from '@/hooks';\nimport { usePoller } from '@/hooks/common/usePoller';\nimport usePageSupported from '@/hooks/usePageSupported';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { RouteBasePath } from '@/pages/routers';\nimport { useDebounceEffect } from 'ahooks';\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport { fetchUserDepositInfo, fetchVaultTokenHoldingValue, getUserPendingWithdraw } from '../action';\nimport { useSelectedVaultAddressSetter, useVaultInfos } from '../hook';\nconst vaultInterval = 5000;\nfunction useFetchVaultTokenList(): void {\n const chainId = useChainId();\n const dispatch = useAppDispatch();\n const userAddr = useUserAddr();\n useCheckTokenApprovalStatus(chainId, userAddr);\n const { vaultInfos } = useVaultInfos(chainId, userAddr);\n const sdk = useSDK(chainId);\n\n const fetchUserDepositInfoCB = useCallback(() => {\n if (chainId && userAddr && sdk) {\n dispatch(\n fetchUserDepositInfo({\n chainId,\n userAddr,\n sdk,\n }),\n );\n }\n }, [chainId, dispatch, sdk, userAddr]);\n\n const fetchVaultTokenHoldingValueCB = useCallback(() => {\n if (chainId && userAddr && vaultInfos && sdk) {\n dispatch(\n fetchVaultTokenHoldingValue({\n chainId,\n userAddr,\n vaultAddrs: Object.keys(vaultInfos),\n sdk,\n }),\n );\n }\n }, [chainId, dispatch, sdk, userAddr, vaultInfos]);\n\n // usePoller(\n // () => {\n // fetchVaultsInfoCB();\n // },\n // [fetchVaultsInfoCB],\n // vaultInterval,\n // );\n usePoller(\n () => {\n fetchUserDepositInfoCB();\n },\n [fetchUserDepositInfoCB],\n vaultInterval,\n );\n usePoller(\n () => {\n fetchVaultTokenHoldingValueCB();\n },\n [fetchVaultTokenHoldingValueCB],\n vaultInterval,\n );\n}\n\n// export function useFetchVaultOOPoints(): void {\n// const chainId = useChainId();\n// const vaults = useVaultList(chainId);\n// // const userAddr = useUserAddr();\n// const dispatch = useAppDispatch();\n// const fetchVaultOOPointsCB = useCallback(() => {\n// chainId && vaults?.length && dispatch(fetchVaultOOPoints({ chainId, wallets: vaults.map((v) => v.vaultAddr) }));\n// }, [chainId, dispatch, vaults]);\n// // const fetchUserVaultOOPointsCB = useCallback(() => {\n// // chainId && userAddr && dispatch(fetchUserVaultOOPoints({ chainId, userAddr }));\n// // }, [chainId, dispatch, userAddr]);\n\n// usePoller(\n// () => {\n// fetchVaultOOPointsCB();\n// },\n// [fetchVaultOOPointsCB],\n// vaultInterval,\n// );\n// // usePoller(\n// // () => {\n// // fetchUserVaultOOPointsCB();\n// // },\n// // [fetchUserVaultOOPointsCB],\n// // vaultInterval,\n// // );\n// }\n// export function useFetchVaultOOPointsDetail(): void {\n// const chainId = useChainId();\n// const userAddr = useUserAddr();\n// const depositInfo = useUserDepositInfo(chainId, userAddr);\n// const deposits = useMemo(() => _.values(depositInfo), [depositInfo]);\n// const dispatch = useAppDispatch();\n// const fetchVaultOOPointsDetail = useCallback(() => {\n// chainId &&\n// userAddr &&\n// !!deposits.length &&\n// deposits.forEach((d) => {\n// dispatch(\n// fetchUserOOPointsDetail({\n// chainId,\n// userAddr,\n// vaultAddr: d.vault,\n// }),\n// );\n// });\n// }, [chainId, deposits, dispatch, userAddr]);\n// useEffect(() => {\n// chainId && dispatch(getEpochs({ chainId }));\n// }, [chainId, deposits, dispatch, userAddr]);\n// usePoller(\n// () => {\n// fetchVaultOOPointsDetail();\n// },\n// [fetchVaultOOPointsDetail],\n// vaultInterval,\n// );\n// }\n\nconst useUpdateSelectedWrappedVaultToken = () => {\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const setSelectedVaultAddress = useSelectedVaultAddressSetter();\n useEffect(() => {\n chainId && userAddr && setSelectedVaultAddress(null);\n }, [chainId, setSelectedVaultAddress, userAddr]);\n};\nconst useFetchPendingWithdraw = () => {\n const chainId = useChainId();\n const dispatch = useAppDispatch();\n const userAddr = useUserAddr();\n const { vaultInfos } = useVaultInfos(chainId, userAddr);\n const vaultAddresses = useMemo(() => (vaultInfos ? Object.keys(vaultInfos) : []), [vaultInfos]);\n const sdk = useSDK(chainId);\n const fetchUserPendingWithdraw = useCallback(() => {\n if (chainId && userAddr && sdk) {\n vaultAddresses?.forEach((vaultAddr) => {\n const vault = vaultInfos?.[vaultAddr];\n vault &&\n vault?.tokenInfo &&\n dispatch(\n getUserPendingWithdraw({\n chainId,\n userAddr,\n vaultAddr: vaultAddr,\n sdk,\n quoteToken: vault?.tokenInfo,\n }),\n );\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [chainId, userAddr, JSON.stringify(vaultAddresses), dispatch]);\n useEffect(() => {\n fetchUserPendingWithdraw();\n }, [fetchUserPendingWithdraw]);\n};\n\nfunction useCheckTokenApprovalStatus(chainId: number | undefined, userAddr: string | undefined): void {\n const dispatch = useAppDispatch();\n const { vaultInfos } = useVaultInfos(chainId, userAddr);\n const vaultInfoKeys = useMemo(() => !!vaultInfos && Object.keys(vaultInfos), [vaultInfos]);\n const sdk = useSDK(chainId);\n // automatically check all margin tokens approval\n useDebounceEffect(\n () => {\n if (userAddr && chainId && vaultInfos && sdk) {\n Object.values(vaultInfos)?.forEach((vault) => {\n vault &&\n dispatch(\n checkTokenAllowance({\n userAddress: userAddr,\n chainId,\n marginToken: vault.tokenInfo,\n spenderAddress: vault.vaultAddress,\n sdk,\n }),\n );\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n },\n [userAddr, chainId, dispatch, sdk, vaultInfoKeys],\n { wait: 500 },\n );\n}\n\nfunction VaultGlobalEffect(): null {\n usePageSupported({ page: RouteBasePath.launchpad });\n // const fetchVaultsCB = useCallback(() => {\n // if (chainId && sdk) {\n // dispatch(\n // fetchVaults({\n // chainId,\n // sdk,\n // }),\n // );\n // }\n // }, [chainId, dispatch, sdk]);\n useFetchVaultTokenList();\n // useFetchVaultOOPoints();\n // useFetchVaultOOPointsDetail();\n useUpdateSelectedWrappedVaultToken();\n useFetchPendingWithdraw();\n return null;\n}\n\nexport default React.memo(VaultGlobalEffect);\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconWarningYellow = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_26665_7919)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M3.54117 7.174C5.4865 3.72467 6.45983 2 7.99983 2C9.5405 2 10.5132 3.72467 12.4585 7.174L12.7012 7.604L12.7024 7.60616C14.3182 10.4714 15.1263 11.9043 14.3958 12.952C13.6652 14 11.8572 14 8.2425 14H7.75717C4.1425 14 2.3345 14 1.60383 12.952C0.873352 11.9043 1.68143 10.4714 3.29728 7.60617L3.2985 7.604L3.54117 7.174ZM8.53016 4.71967C8.3895 4.57902 8.19874 4.5 7.99982 4.5C7.80091 4.5 7.61014 4.57902 7.46949 4.71967C7.32884 4.86032 7.24982 5.05109 7.24982 5.25V9C7.24982 9.19891 7.32884 9.38968 7.46949 9.53033C7.61014 9.67098 7.80091 9.75 7.99982 9.75C8.19874 9.75 8.3895 9.67098 8.53016 9.53033C8.67081 9.38968 8.74983 9.19891 8.74983 9V5.25C8.74983 5.05109 8.67081 4.86032 8.53016 4.71967ZM8.70694 12.2071C8.5194 12.3946 8.26504 12.5 7.99982 12.5C7.73461 12.5 7.48025 12.3946 7.29271 12.2071C7.10517 12.0196 6.99982 11.7652 6.99982 11.5C6.99982 11.2348 7.10517 10.9804 7.29271 10.7929C7.48025 10.6054 7.73461 10.5 7.99982 10.5C8.26504 10.5 8.5194 10.6054 8.70694 10.7929C8.89447 10.9804 8.99983 11.2348 8.99983 11.5C8.99983 11.7652 8.89447 12.0196 8.70694 12.2071Z\",\n fill: \"#FFAA00\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_26665_7919\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconWarningYellow);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_warning_yellow.04bf55c9d6bd2f6871fecd4036fadce0.svg\";","/**\n * @description Component-InvalidVaultCard\n */\nimport { WrappedVault } from '@/entities/WrappedVault';\nimport VaultMetaCard from '../VaultCard/VaultMetaCard';\nimport './index.less';\n\nimport { Button } from '@/components/Button';\nimport TokenLogo from '@/components/TokenLogo';\nimport { useVaultInfos } from '@/features/vault/hook';\nimport useVaultWithdrawInput from '@/hooks/vault/useWithdrawInput';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport _ from 'lodash';\nimport { FC } from 'react';\nimport { Trans, useTranslation } from 'react-i18next';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n vault: WrappedVault;\n}\nconst InvalidVaultCard: FC = function ({ vault }) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const { vaultInfos } = useVaultInfos(chainId, userAddr);\n const { handleWithdraw, isWithdrawing } = useVaultWithdrawInput(vault, userAddr || '');\n\n return (\n
\n
\n
\n \n ,\n }}\n values={{ project: _.get(vaultInfos, [vault.vaultAddress])?.name }}\n />\n
\n \n
\n \n
\n );\n};\n\nexport default InvalidVaultCard;\n","/**\n * @description Component-InvalidVaultCards\n */\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport './index.less';\n\nimport InvalidVaultCard from '@/components/Card/LaunchPadCard/InvalidVaultCard';\nimport { useWrappedVaults } from '@/features/vault/hook';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport { FC, useMemo } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst InvalidVaultCards: FC = function ({}) {\n const userAddr = useUserAddr();\n const chainId = useChainId();\n const vaults = useWrappedVaults(chainId, userAddr);\n const invalidVaults = useMemo(() => {\n return vaults.filter((v) => v.stageForUi === Stage.INVALID && v.getUserDeposit(userAddr).gt(0));\n // return _.take(vaults, 1).filter((v) => v.getUserDeposit(userAddr).gt(0));\n }, [userAddr, vaults]);\n return (\n
\n {invalidVaults.map((v) => (\n \n ))}\n
\n );\n};\n\nexport default InvalidVaultCards;\n","/**\n * @description Component-LegalDisclaimer\n */\nimport { LEGAL_DISCLAIMER } from '@/constants/launchpad/vault';\nimport { FC } from 'react';\nimport { Trans } from 'react-i18next';\nimport { ReactComponent as WarningIcon } from './assets/icon_warning_yellow.svg';\nimport './index.less';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst LegalDisclaimer: FC = function ({}) {\n return (\n
\n \n }} values={{ link: LEGAL_DISCLAIMER }} />\n
\n );\n};\n\nexport default LegalDisclaimer;\n","/**\n * @description Component-VaultBanner\n */\nimport { Trans, useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport { EmptyDataWrap } from '@/components/EmptyDataWrap';\nimport { ALL_TIME_EARNED_SHOW_LIMIT } from '@/constants/launchpad';\nimport { LAUNCHPAD_LINK } from '@/constants/links';\nimport { useFetchVaultSummary } from '@/features/vault/query';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { FC } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst VaultBanner: FC = function ({}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const { data: stats } = useFetchVaultSummary(chainId);\n\n return (\n
\n
\n
{t('launchpad.banner.title')}
\n
\n {' '}\n \n ),\n }}\n />\n
\n
\n
\n
\n
{t('launchpad.banner.pLaunched')}
\n
\n \n {stats?.count?.formatNumberWithTooltip?.({ minDecimalPlaces: 0 })}\n \n
\n
\n
\n
{t('common.tvl')}
\n
\n \n {stats?.totalTvlUsd?.formatNumberWithTooltip?.({\n prefix: '$',\n })}\n \n
\n
\n
\n
{t('launchpad.banner.tv')}
\n
\n \n {stats?.totalVolumeUsd?.formatNumberWithTooltip?.({\n prefix: '$',\n })}\n \n
\n
\n {stats?.allTimeEarnedUsd.gte(ALL_TIME_EARNED_SHOW_LIMIT) && (\n
\n
{t('launchpad.banner.ate')}
\n
\n \n {stats?.allTimeEarnedUsd?.formatNumberWithTooltip?.({\n prefix: '$',\n })}\n \n
\n
\n )}\n
\n
\n );\n};\n\nexport default VaultBanner;\n","export enum VaultCardId {\n YOUR_DESPOITS = 'YOUR_DESPOITS',\n VAULT = 'VAULT',\n}\nexport const ALL_TIME_EARNED_SHOW_LIMIT = 100000;\n","import { WrappedVault } from '@/entities/WrappedVault';\n\nexport const getVaultRowKey = (vault: WrappedVault) => `${vault.quoteToken.address}-${vault.vaultAddress}`;\n","/**\n * @description Component-AssetPair\n */\nimport { IVaultInfo } from '@/types/vault';\nimport './index.less';\n\nimport { FC } from 'react';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n vaultInfo?: IVaultInfo;\n}\nconst AssetPair: FC = function ({ vaultInfo }) {\n return vaultInfo ? (\n e.stopPropagation()}\n href={vaultInfo.assetPairLink}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-asset-pair\">\n {vaultInfo.assetPair}\n \n ) : null;\n};\n\nexport default AssetPair;\n","import { Flex } from 'antd';\nimport { ComponentProps, ReactNode } from 'react';\nimport './index.less';\nexport const UsdValueContainer = ({\n topNode,\n bottomNode,\n ...props\n}: Omit, 'children'> & {\n topNode: ReactNode;\n bottomNode: ReactNode;\n}) => {\n return (\n \n
{topNode}
\n
{bottomNode}
\n
\n );\n};\n","/**\n * @description Component-VaultListOngoing\n */\nimport { TableCard } from '@/components/TableCard';\nimport { useSelectedVault, useVaultInfos, useVaultListIsFetched, useWrappedVaults } from '@/features/vault/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { ColumnType } from 'antd/es/table';\nimport { useTranslation } from 'react-i18next';\nimport './index.less';\n\nimport { useMockDevTool } from '@/components/Mock';\nimport { colWidths } from '@/constants/launchpad/vault';\nimport { WrappedVault } from '@/entities/WrappedVault';\nimport useVaultRouter from '@/hooks/vault/useVaultRouter';\nimport { bigNumberSort } from '@/utils/numberUtil';\nimport { getVaultRowKey } from '@/utils/vault';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport _ from 'lodash';\nimport { FC, useEffect, useMemo } from 'react';\nimport { useParams } from 'react-router-dom';\nimport AssetPair from '../AssetPair';\nimport VaultProjectName from '../VaultProjectName';\nimport { UsdValueContainer } from '../common';\ninterface IPropTypes {\n className?: string;\n search: string;\n}\nconst VaultListOngoing: FC = function ({}) {\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const vaults = useWrappedVaults(chainId, userAddr);\n const vaultsIsFetched = useVaultListIsFetched(chainId, userAddr);\n const { isMockSkeleton } = useMockDevTool();\n const { goToVault } = useVaultRouter();\n const { selectedVault } = useSelectedVault();\n const { vaultInfos } = useVaultInfos(chainId, userAddr);\n const { vaultAddress: queryVaultAddress } = useParams();\n const vaultsFiltered = useMemo(\n () =>\n vaults.filter((v) => v.stageForUi === Stage.LIVE || (v.stageForUi === Stage.SUSPENDED && v.userDeposit.gt(0))),\n [vaults],\n );\n const columnDefs: ColumnType[] = useMemo(\n () =>\n [\n {\n title: t('launchpad.vaultListTable.project'),\n dataIndex: 'project',\n align: 'left',\n width: colWidths[0],\n render: (_value: unknown, record: WrappedVault) => (\n \n ),\n },\n {\n title: t('launchpad.vaultListTable.assetPair'),\n dataIndex: 'assetPair',\n align: 'left',\n width: colWidths[1],\n render: (_value: unknown, record: WrappedVault) => (\n \n ),\n },\n {\n title: t('common.tvl'),\n dataIndex: 'tvl',\n align: 'right',\n className: 'tvl',\n width: colWidths[2],\n sorter: (a, b) => {\n return a?.tvlUSD.gt(b?.tvlUSD) ? 1 : -1;\n },\n showSorterTooltip: false,\n render: (_value: unknown, record: WrappedVault) => (\n \n ),\n },\n {\n title: t('launchpad.vaultListTable.uDeposit'),\n align: 'right',\n sorter: (a, b) => {\n if (a.userDepositUSD && b.userDepositUSD) {\n return bigNumberSort(a.userDepositUSD, b.userDepositUSD);\n }\n return 0;\n },\n defaultSortOrder: 'descend',\n\n width: colWidths[4],\n render: (_value: unknown, record: WrappedVault) => (\n \n ),\n },\n ] as ColumnType[],\n [t, vaultInfos, userAddr],\n );\n useEffect(() => {\n if (vaultsIsFetched && !selectedVault && !!vaultsFiltered.length && !queryVaultAddress) {\n goToVault({ vaultAddress: _.first(vaultsFiltered)?.vaultAddress });\n }\n }, [goToVault, selectedVault, vaultsFiltered, vaultsIsFetched, queryVaultAddress]);\n return (\n
\n ({\n onClick: () => {\n goToVault({ vaultAddress: record.vaultAddress });\n },\n })}\n rowKey={(record: WrappedVault) => getVaultRowKey(record)}\n columns={columnDefs}\n dataSource={vaultsFiltered}\n />\n
\n );\n};\n\nexport default VaultListOngoing;\n","/**\n * @description Component-VaultListComing\n */\nimport { useVaultInfos, useVaultListIsFetched, useWrappedVaults } from '@/features/vault/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { ColumnType } from 'antd/es/table';\nimport { useTranslation } from 'react-i18next';\nimport { LaunchTarget } from '../VaultProgress';\nimport './index.less';\n\nimport { useMockDevTool } from '@/components/Mock';\nimport { TableCard } from '@/components/TableCard';\nimport { colWidths } from '@/constants/launchpad/vault';\nimport { WrappedVault } from '@/entities/WrappedVault';\nimport useVaultRouter from '@/hooks/vault/useVaultRouter';\nimport { getVaultRowKey } from '@/utils/vault';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport { FC, useMemo } from 'react';\nimport AssetPair from '../../AssetPair';\nimport VaultProjectName from '../../VaultProjectName';\nimport { UsdValueContainer } from '../../common';\ninterface IPropTypes {\n className?: string;\n search: string;\n}\nconst VaultListComing: FC = function ({}) {\n const { goToVault } = useVaultRouter();\n const { t } = useTranslation();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const vaults = useWrappedVaults(chainId, userAddr);\n const { isMockSkeleton } = useMockDevTool();\n\n const vaultsStatusIsFetched = useVaultListIsFetched(chainId, userAddr);\n const { vaultInfos } = useVaultInfos(chainId, userAddr);\n const vaultsFiltered = useMemo(\n () => vaults.filter((v) => v.stageForUi === Stage.UPCOMING),\n // .filter((v) => v.quoteToken.symbol.toLowerCase().includes(search.toLowerCase().trim())),\n [vaults],\n );\n const columnDefs: ColumnType[] = useMemo(\n () =>\n [\n {\n title: <>{t('launchpad.vaultListTable.project')},\n dataIndex: 'name',\n width: 200,\n align: 'left',\n render: (_value: unknown, record: WrappedVault) => (\n \n ),\n },\n {\n title: t('launchpad.vaultListTable.assetPair'),\n dataIndex: 'assetPair',\n align: 'left',\n width: colWidths[1],\n render: (_value: unknown, record: WrappedVault) => ,\n },\n {\n title: t('common.tvl'),\n dataIndex: 'tvl',\n align: 'right',\n className: 'tvl',\n width: colWidths[2],\n sorter: (a, b) => (a?.tvlUSD?.gt(b?.targetTvlUSD) ? 1 : -1),\n showSorterTooltip: false,\n defaultSortOrder: 'descend',\n render: (_value: unknown, record: WrappedVault) => (\n \n ),\n },\n {\n title: t('launchpad.launchTarget'),\n dataIndex: 'launchTarget',\n align: 'right',\n className: 'launchTarget',\n width: colWidths[3],\n sorter: (a, b) => (a?.targetTvl?.gt(b?.targetTvl) ? 1 : -1),\n showSorterTooltip: false,\n render: (_value: unknown, record: WrappedVault) => (\n \n }\n bottomNode={record.targetTvlUSD.formatNumberWithTooltip({\n isShowTBMK: true,\n prefix: '$',\n })}>\n ),\n },\n {\n title: t('launchpad.vaultListTable.uDeposit'),\n dataIndex: 'deposit',\n width: colWidths[4],\n align: 'right',\n sorter: (a, b) => {\n return a?.getUserDepositUSD(userAddr).gt(b?.getUserDepositUSD(userAddr)) ? 1 : -1;\n },\n render: (_value: unknown, record: WrappedVault) => (\n \n ),\n },\n ] as ColumnType[],\n [t, userAddr, vaultInfos],\n );\n\n return (\n
\n ({\n onClick: () => {\n goToVault({ vaultAddress: record.vaultAddress });\n },\n })}\n rowKey={(record: WrappedVault) => getVaultRowKey(record)}\n columns={columnDefs}\n dataSource={vaultsFiltered}\n />\n
\n );\n};\n\nexport default VaultListComing;\n","/**\n * @description Component-VaultList\n */\nimport bannerSrc from '@/assets/images/vault_coming_banner.png';\nimport { WrappedVault } from '@/entities/WrappedVault';\nimport { useSelectedVault, useWatchVaultListChange, useWrappedVaults } from '@/features/vault/hook';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { getVaultRowKey } from '@/utils/vault';\nimport { Stage } from '@synfutures/sdks-perp-launchpad';\nimport { FC, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport VaultListOngoing from '../VaultListOngoing';\nimport VaultListComing from './VaultListComing';\nimport './index.less';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst VaultList: FC = function ({}) {\n const { t } = useTranslation();\n //const [search, setSearch] = useState('');\n const { selectedVault } = useSelectedVault();\n const chainId = useChainId();\n const userAddr = useUserAddr();\n const [prevVault, setPrevVault] = useState(null);\n const vaults = useWrappedVaults(chainId, userAddr);\n // const haveNoUpcoming = useMemo(() => vaults.filter((v) => v.stageForUi === Stage.UPCOMING).length === 0, [vaults]);\n const haveNoUpcoming = useMemo(() => vaults.filter((v) => v.stageForUi === Stage.UPCOMING).length === 0, [vaults]);\n useWatchVaultListChange(chainId, userAddr);\n\n useEffect(() => {\n prevVault &&\n document\n .querySelector(`[data-row-key=\"${getVaultRowKey(prevVault)}\"]`)\n ?.classList.toggle('ant-table-row-active-vault');\n selectedVault &&\n document\n .querySelector(`[data-row-key=\"${getVaultRowKey(selectedVault)}\"]`)\n ?.classList.toggle('ant-table-row-active-vault');\n setPrevVault(selectedVault);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedVault]);\n return (\n
\n {\n <>\n

{t('launchpad.launchedVault')}

\n {/* setSearch(e.target.value)}\n prefix={}\n placeholder={t('launchpad.search')}\n /> */}\n \n \n }\n {!haveNoUpcoming && (\n <>\n
\n

{t('launchpad.boostToLaunch')}

\n {/* setSearch(e.target.value)}\n prefix={}\n placeholder={t('launchpad.search')}\n /> */}\n
\n \n \n )}\n {false && (\n <>\n

{t('launchpad.stayTuned')}

\n \n \n )}\n
\n );\n};\n\nexport default VaultList;\n","import YourDepositsCard from '@/components/Card/LaunchPadCard/YourDepositsCard';\nimport VaultGlobalEffect from '@/features/vault/GlobalEffect';\nimport { useVaultRouteSelectVault } from '@/hooks/vault/useVaultRouter';\nimport classNames from 'classnames';\nimport InvalidVaultCards from './InvalidVaultCards';\nimport LegalDisclaimer from './LegalDisclaimer';\nimport VaultBanner from './VaultBanner';\nimport VaultList from './VaultList';\nimport './index.less';\nexport default function VaultPage() {\n useVaultRouteSelectVault();\n\n return (\n
\n \n \n
\n
\n
\n \n
\n
\n\n
\n
\n \n \n
\n
\n
\n\n \n
\n );\n}\n","import { Suspense } from 'react';\nimport { Navigate, RouteProps } from 'react-router-dom';\nimport EarnMobileSubpage from './mobile/EarnMobileSubpage';\nimport TradeMobile from './mobile/TradeMobile';\nimport { DesktopTradeFallback } from './trade/Fallback';\n\nexport enum RouteBasePath {\n launchpad = 'launchpad',\n Year2024Summary = '2024-syn-score',\n spot = 'spot',\n earn = 'earn',\n portfolio = 'portfolio',\n trade = 'trade',\n market = 'market',\n}\n\n// Lazy load your components\nimport PortfolioPage from '@/pages/portfolio';\nimport ThemePage from '@/pages/theme';\nimport TradePage from '@/pages/trade';\nimport Market from './Market';\nimport MobileBlocker from './MobileBlocker';\nimport Odyssey from './Odyssey';\nimport SpotPage from './Spot';\nimport TGP from './TGP';\nimport CampaignPage from './campaign';\nimport Cosplay from './components/Cosplay';\nimport PageHelper from './components/PageHelper';\nimport PortfolioMobile from './mobile/PortfolioMobile';\nimport TradingPairsMobile from './mobile/TradingPairsMobile';\nimport VaultPage from './vault';\n\nconst routers: Array = [\n {\n path: 'cosplay/:impostorAddress',\n element: } desktopComponent={} />,\n },\n {\n path: 'theme',\n element: ,\n },\n // {\n // path: '/test',\n // element: (\n //
\n // \n //
\n // ),\n // },\n {\n path: '/trade',\n element: (\n }>\n \n \n ),\n },\n {\n path: '/odyssey',\n element: ,\n },\n {\n // token0 and token1 are address or symbol\n path: `/${RouteBasePath.spot}/:spotType?/:chainShortName?/:token0?/:token1?`,\n element: ,\n },\n {\n path: '/odyssey/:chainName/:referralCode',\n element: ,\n },\n {\n path: '/trade/:chainShortName/:pairSymbol?',\n element: (\n }>\n \n \n ),\n },\n {\n path: '/market',\n element: ,\n },\n {\n path: '/portfolio',\n element: ,\n },\n {\n path: '/portfolio/:tab',\n element: ,\n },\n {\n path: '/earn',\n element: (\n }>\n \n \n ),\n },\n {\n path: '/earn/:chainShortName/:pairSymbol?',\n element: (\n }>\n \n \n ),\n },\n {\n path: '/campaign',\n element: ,\n },\n {\n path: '/tgp',\n element: ,\n },\n {\n path: `/${RouteBasePath.launchpad}/:chainShortName/:vaultAddress?`,\n element: ,\n },\n];\n\nexport { routers };\n\nexport const mobileRouters: Array = [\n {\n path: 'cosplay/:impostorAddress',\n element: ,\n },\n {\n path: 'market',\n element: ,\n },\n {\n path: `${RouteBasePath.trade}/:chainShortName/:pairSymbol?`,\n element: ,\n },\n {\n path: `${RouteBasePath.earn}/:chainShortName/:pairSymbol?`,\n element: ,\n },\n {\n path: '/campaign',\n element: ,\n },\n {\n path: 'theme',\n element: ,\n },\n {\n path: 'portfolio',\n element: ,\n },\n {\n path: 'blocker',\n element: ,\n },\n {\n // token0 and token1 are address or symbol\n path: `/${RouteBasePath.spot}/:spotType?/:chainShortName?/:token0?/:token1?`,\n element: ,\n },\n];\n","import { TokenInfo } from '@/types/token';\n\nexport enum SPOT_TYPE {\n SWAP = 'swap',\n}\n\nexport type TokenInfoInSpot = TokenInfo & {\n isSymbolDuplicated: boolean;\n};\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconChevron = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.46967 12.5302C6.17678 12.2373 6.17678 11.7624 6.46967 11.4696L9.93934 7.99989L6.46967 4.53022C6.17678 4.23732 6.17678 3.76245 6.46967 3.46956C6.76256 3.17666 7.23744 3.17666 7.53033 3.46956L11.5303 7.46956C11.8232 7.76245 11.8232 8.23732 11.5303 8.53022L7.53033 12.5302C7.23744 12.8231 6.76256 12.8231 6.46967 12.5302Z\",\n fill: \"#A1A7B2\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconChevron);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_chevron.21f0ee173c5a0f33cbf2463a5730a5ce.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconDiscord = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 10,\n viewBox: \"0 0 14 10\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.0152 1.37989C11.0978 0.604136 9.99686 0.216258 8.83478 0.151611L8.65129 0.345551C9.69105 0.604136 10.6085 1.12131 11.4647 1.83242C10.425 1.2506 9.26291 0.862722 8.03967 0.733429C7.6727 0.668783 7.36689 0.668783 6.99992 0.668783C6.63294 0.668783 6.32713 0.668783 5.96016 0.733429C4.73692 0.862722 3.57484 1.2506 2.53509 1.83242C3.39136 1.12131 4.30879 0.604136 5.34854 0.345551L5.16506 0.151611C4.00298 0.216258 2.90206 0.604136 1.98463 1.37989C0.944873 3.44858 0.394414 5.77585 0.333252 8.16777C1.25068 9.20211 2.53509 9.84858 3.88065 9.84858C3.88065 9.84858 4.30879 9.33141 4.6146 8.87888C3.81949 8.68494 3.08555 8.23242 2.59625 7.52131C3.02438 7.77989 3.45252 8.03848 3.88065 8.23242C4.43111 8.491 4.98157 8.6203 5.53203 8.74959C6.02132 8.81424 6.51062 8.87888 6.99992 8.87888C7.48921 8.87888 7.97851 8.81424 8.46781 8.74959C9.01827 8.6203 9.56872 8.491 10.1192 8.23242C10.5473 8.03848 10.9755 7.77989 11.4036 7.52131C10.9143 8.23242 10.1803 8.68494 9.38524 8.87888C9.69105 9.33141 10.1192 9.84858 10.1192 9.84858C11.4647 9.84858 12.7492 9.20211 13.6666 8.16777C13.6054 5.77585 13.055 3.44858 12.0152 1.37989ZM4.98157 7.00414C4.36995 7.00414 3.81949 6.42232 3.81949 5.71121C3.81949 5.00009 4.36995 4.41828 4.98157 4.41828C5.59319 4.41828 6.14365 5.00009 6.14365 5.71121C6.14365 6.42232 5.59319 7.00414 4.98157 7.00414ZM9.01827 7.00414C8.40664 7.00414 7.85619 6.42232 7.85619 5.71121C7.85619 5.00009 8.40664 4.41828 9.01827 4.41828C9.62989 4.41828 10.1803 5.00009 10.1803 5.71121C10.1803 6.42232 9.62989 7.00414 9.01827 7.00414Z\",\n fill: \"#687EC9\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconDiscord);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_discord.11d787d06c934d05712d1d707108a3ab.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMedium = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 14,\n height: 8,\n viewBox: \"0 0 14 8\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.85408 4C7.85408 6.07084 6.17075 7.75 4.09325 7.75C3.60014 7.75066 3.11172 7.65418 2.65589 7.46608C2.20007 7.27799 1.78575 7.00195 1.4366 6.65373C1.08745 6.30551 0.81031 5.89193 0.620997 5.4366C0.431684 4.98127 0.333908 4.49312 0.333252 4C0.333252 1.92834 2.01658 0.250005 4.09325 0.250005C4.58643 0.249238 5.07494 0.345633 5.53086 0.533683C5.98679 0.721734 6.4012 0.997756 6.75044 1.34599C7.09968 1.69422 7.37689 2.10783 7.56626 2.56322C7.75562 3.0186 7.85343 3.50682 7.85408 4ZM11.9791 4C11.9791 5.95 11.1374 7.53 10.0991 7.53C9.06075 7.53 8.21908 5.94917 8.21908 4C8.21908 2.05 9.06075 0.470004 10.0991 0.470004C11.1374 0.470004 11.9791 2.05084 11.9791 4ZM13.6666 4C13.6666 5.74667 13.3707 7.1625 13.0049 7.1625C12.6399 7.1625 12.3441 5.74584 12.3441 4C12.3441 2.25334 12.6399 0.837504 13.0057 0.837504C13.3707 0.837504 13.6666 2.25334 13.6666 4Z\",\n fill: \"#12100E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMedium);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_medium.8b0eb8604d8350272e72f14977f56eeb.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconTelegram = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.7767 2.47788L1.95669 7.03588C1.15002 7.35988 1.15469 7.80988 1.80869 8.01055L4.84336 8.95721L11.8647 4.52721C12.1967 4.32521 12.5 4.43388 12.2507 4.65521L6.56202 9.78921H6.56069L6.56202 9.78988L6.35269 12.9179C6.65936 12.9179 6.79469 12.7772 6.96669 12.6112L8.44069 11.1779L11.5067 13.4425C12.072 13.7539 12.478 13.5939 12.6187 12.9192L14.6314 3.43388C14.8374 2.60788 14.316 2.23388 13.7767 2.47788Z\",\n fill: \"#0088CC\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconTelegram);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_telegram.ea74a74a1878e617bb4e62fda27907d2.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconTwitter = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M11.6423 2.3125H13.572L9.35626 7.13083L14.3158 13.6875H10.4325L7.39101 9.71092L3.91084 13.6875H1.98001L6.48917 8.53375L1.73151 2.3125H5.71334L8.46259 5.94725L11.6423 2.3125ZM10.9651 12.5325H12.0343L5.13234 3.40683H3.98492L10.9651 12.5325Z\",\n fill: \"black\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconTwitter);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_twitter.f49272a23896fa2eec7d5a73e5b3c6e7.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconYoutube = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.44968 5.11475C1.51089 4.17248 2.26846 3.43402 3.21157 3.3873C4.57724 3.31964 6.52919 3.23804 7.99992 3.23804C9.47064 3.23804 11.4226 3.31964 12.7883 3.3873C13.7314 3.43402 14.4889 4.17248 14.5502 5.11476C14.6088 6.01753 14.6666 7.12835 14.6666 7.99994C14.6666 8.87153 14.6088 9.98236 14.5502 10.8851C14.4889 11.8274 13.7314 12.5659 12.7883 12.6126C11.4226 12.6802 9.47064 12.7618 7.99992 12.7618C6.52919 12.7618 4.57724 12.6802 3.21157 12.6126C2.26847 12.5659 1.51089 11.8274 1.44968 10.8851C1.39104 9.98236 1.33325 8.87153 1.33325 7.99994C1.33325 7.12835 1.39104 6.01753 1.44968 5.11475Z\",\n fill: \"#FC0D1B\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"icon_youtube_middle\",\n d: \"M6.57135 6.09521V9.90474L10.3809 7.99998L6.57135 6.09521Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconYoutube);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_youtube.0705f6c61d83e1f4cf9da01f34d60af3.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconThemeMoon = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.7398 2.18451C12.7186 2.13015 12.6815 2.08346 12.6333 2.05053C12.5852 2.01761 12.5282 2 12.4698 2C12.4115 2 12.3545 2.01761 12.3063 2.05053C12.2582 2.08346 12.221 2.13015 12.1998 2.18451L11.9418 2.8415C11.9274 2.87863 11.9054 2.91239 11.8774 2.94067C11.8493 2.96895 11.8157 2.99116 11.7787 3.00589L11.1241 3.26509C11.0699 3.28668 11.0234 3.32404 10.9906 3.37233C10.9579 3.42062 10.9404 3.47763 10.9404 3.53598C10.9404 3.59433 10.9579 3.65133 10.9906 3.69963C11.0234 3.74792 11.0699 3.78528 11.1241 3.80687L11.7787 4.06606C11.8157 4.08061 11.8493 4.10267 11.8774 4.13087C11.9055 4.15906 11.9274 4.19276 11.9418 4.22986L12.1998 4.88624C12.297 5.13224 12.6438 5.13224 12.7398 4.88624L12.9978 4.22926C13.0124 4.19218 13.0345 4.1585 13.0627 4.13032C13.0909 4.10214 13.1245 4.08007 13.1616 4.06546L13.8162 3.80627C13.8704 3.78468 13.9169 3.74732 13.9496 3.69903C13.9824 3.65073 13.9999 3.59373 13.9999 3.53538C13.9999 3.47703 13.9824 3.42002 13.9496 3.37173C13.9169 3.32344 13.8704 3.28608 13.8162 3.26449L13.1616 3.00529C13.1245 2.99062 13.0908 2.96845 13.0626 2.94017C13.0344 2.91188 13.0124 2.87809 12.9978 2.8409L12.7398 2.18451ZM10.4197 5.67822C10.3985 5.62386 10.3614 5.57716 10.3132 5.54424C10.265 5.51132 10.208 5.49371 10.1497 5.49371C10.0913 5.49371 10.0344 5.51132 9.98619 5.54424C9.93801 5.57716 9.9009 5.62386 9.87971 5.67822L9.78551 5.91762C9.77097 5.95464 9.74899 5.98828 9.72091 6.01646C9.69284 6.04463 9.65928 6.06674 9.62231 6.08141L9.38352 6.17621C9.32931 6.1978 9.28283 6.23516 9.25008 6.28345C9.21733 6.33174 9.19983 6.38875 9.19983 6.4471C9.19983 6.50545 9.21733 6.56246 9.25008 6.61075C9.28283 6.65904 9.32931 6.6964 9.38352 6.71799L9.62231 6.81219C9.69731 6.84219 9.75611 6.90099 9.78551 6.97659L9.87971 7.21598C9.9763 7.46197 10.3231 7.46197 10.4197 7.21598L10.5139 6.97599C10.5284 6.93896 10.5504 6.90532 10.5785 6.87715C10.6066 6.84897 10.6401 6.82686 10.6771 6.81219L10.9159 6.71799C10.9701 6.6964 11.0166 6.65904 11.0493 6.61075C11.0821 6.56246 11.0996 6.50545 11.0996 6.4471C11.0996 6.38875 11.0821 6.33174 11.0493 6.28345C11.0166 6.23516 10.9701 6.1978 10.9159 6.17621L10.6771 6.08141C10.6401 6.06674 10.6066 6.04463 10.5785 6.01646C10.5504 5.98828 10.5284 5.95464 10.5139 5.91762L10.4197 5.67762V5.67822Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.99996 14.0002C11.3137 14.0002 13.9998 11.314 13.9998 8.00033C13.9998 7.72254 13.5834 7.67634 13.44 7.91453C13.1342 8.42112 12.7171 8.85147 12.2203 9.17298C11.7235 9.49449 11.16 9.69873 10.5726 9.77022C9.98517 9.84172 9.38918 9.7786 8.82977 9.58565C8.27035 9.3927 7.76218 9.07498 7.34375 8.65654C6.92532 8.23811 6.60759 7.72994 6.41464 7.17052C6.22169 6.61111 6.15857 6.01512 6.23007 5.4277C6.30157 4.84028 6.5058 4.27683 6.82731 3.78003C7.14882 3.28324 7.57917 2.86612 8.08576 2.56027C8.32395 2.41628 8.27776 2.00049 7.99996 2.00049C4.68625 2.00049 2.00012 4.68662 2.00012 8.00033C2.00012 11.314 4.68625 14.0002 7.99996 14.0002Z\",\n fill: \"white\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconThemeMoon);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_theme_moon.3b6ee548ec611e4ca61a3fd065e89168.svg\";","/**\n * @description Component-ClearCacheBtn\n */\nimport './index.less';\n\nimport { useDebounceFn } from 'ahooks';\nimport classNames from 'classnames';\nimport localforage from 'localforage';\nimport { FC, useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { toast } from 'react-toastify';\n\nimport { Button } from '@/components/Button';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { Tooltip } from '@/components/ToolTip';\nimport { useLoginInOrOutPrivyWallet } from '@/connectors/privy/usePrivyWallet';\nimport { queryClient } from '@/connectors/wagmi/config';\nimport { mockNotiDontClose } from '@/constants/mock';\nimport { useWagmiDisconnect } from '@/hooks/web3/useWagami';\nimport { IButtonProps } from '@/types/button';\nconst ClearCacheBtn: FC = function (props) {\n const [isCleared, setIsCleared] = useState(false);\n const { t } = useTranslation();\n const { deviceType } = useMediaQueryDevice();\n const disconnect = useWagmiDisconnect();\n const { logout } = useLoginInOrOutPrivyWallet();\n\n const deleteAllCookies = useCallback(() => {\n if (document?.cookie) {\n const cookies = document.cookie.split(';');\n\n for (let i = 0; i < cookies.length; i++) {\n const cookie = cookies[i];\n const eqPos = cookie.indexOf('=');\n const name = eqPos > -1 ? cookie.substring(0, eqPos) : cookie;\n document.cookie = name + '=;expires=Thu, 01 Jan 1970 00:00:00 GMT';\n }\n }\n }, []);\n const { run: onClickClearCache } = useDebounceFn(\n async () => {\n try {\n queryClient.clear();\n deleteAllCookies();\n localStorage.clear();\n await localforage.clear();\n disconnect();\n logout();\n\n setIsCleared(true);\n\n toast.info(\n
\n
{t('modal.userAddrModal.clearCacheBtn.title')}
\n
,\n {\n autoClose: mockNotiDontClose ? false : 2000,\n className: classNames(deviceType, 'syn-notification-toaster'),\n },\n );\n setTimeout(() => {\n setIsCleared(false);\n window.location.reload();\n }, 2000);\n } catch (error) {\n console.error('🚀 ~ file: GlobalConfig.tsx ~ line 94 ~ onClickClearCache ~ error', error);\n }\n },\n { wait: 500 },\n );\n return (\n \n \n {t('modal.userAddrModal.clearCacheBtn.clCache')}\n \n \n );\n};\n\nexport default ClearCacheBtn;\n","import { ContractTransaction } from 'ethers';\nimport { useCallback, useMemo } from 'react';\n\nimport { GlobalModalType, OPERATION_TX_TYPE } from '@/constants';\nimport { CHAIN_ID } from '@/constants/chain';\nimport { fetchTokenBalanceAction } from '@/features/balance/actions';\nimport { useWrappedQuoteMap } from '@/features/chain/hook';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { addTransaction } from '@/features/transaction/actions';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useSDK } from '@/features/web3/hook';\nimport { TokenInfo } from '@/types/token';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\nimport { isTestnet } from '@/utils/chain';\n\nimport { useAppDispatch } from '.';\nimport { useChainId, useDappChainConfig, useUserAddr } from './web3/useChain';\nimport { useErc20Contract } from './web3/useContract';\nimport { useSwitchNetwork } from './web3/useSwitchConnectorNetwork';\nimport { useWalletSigner } from './web3/useWalletNetwork';\n\nexport function useTestnetMint(tokenInfo: TokenInfo | undefined): {\n onClickMintToken: () => Promise;\n} {\n const dispatch = useAppDispatch();\n const userAddr = useUserAddr();\n const chainId = useChainId();\n const signer = useWalletSigner();\n const testNetErc20Contract = useErc20Contract(tokenInfo?.address, signer);\n const walletConnectStatus = useWalletConnectStatus();\n const sdk = useSDK(chainId);\n const toggleWalletModal = useToggleModal(GlobalModalType.Wallet);\n const { switchWalletNetwork } = useSwitchNetwork();\n const onClickMintToken = useCallback(async () => {\n if (testNetErc20Contract && chainId && userAddr) {\n try {\n if (walletConnectStatus === WALLET_CONNECT_STATUS.UN_CONNECT) {\n toggleWalletModal(true);\n return;\n } else if (walletConnectStatus === WALLET_CONNECT_STATUS.WRONG_NETWORK) {\n switchWalletNetwork && switchWalletNetwork(chainId);\n return;\n }\n const mintTx = await testNetErc20Contract.populateTransaction.mint();\n if (sdk && signer) {\n const response = (await sdk.tx.sendTx(mintTx, { signer: signer })) as ContractTransaction;\n console.record('tx', '[Erc20] [Mint] tx sent', response, {\n tokenInfo,\n userAddr,\n chainId,\n });\n dispatch(\n addTransaction({\n chainId,\n traderAddr: userAddr,\n txInfo: {\n type: OPERATION_TX_TYPE.MINT,\n chainId,\n from: userAddr,\n gasLimit: response.gasLimit.toString(),\n txHash: response.hash,\n transactionResponse: response,\n },\n }),\n );\n const receipt = await response.wait();\n if (receipt.status === 1) {\n tokenInfo &&\n dispatch(fetchTokenBalanceAction({ chainId, userAddr, token: tokenInfo, block: receipt.blockNumber }));\n }\n }\n } catch (error) {\n console.error('🚀 ~ file: index.tsx:49 ~ onClickMintToken ~ error:', error);\n }\n }\n }, [\n testNetErc20Contract,\n chainId,\n userAddr,\n walletConnectStatus,\n sdk,\n signer,\n toggleWalletModal,\n switchWalletNetwork,\n tokenInfo,\n dispatch,\n ]);\n\n return { onClickMintToken };\n}\n\nexport function useMintToken(\n chainId: CHAIN_ID | undefined,\n tokenInfo?: TokenInfo,\n): {\n onClickMintToken: () => Promise;\n tokenInfo: TokenInfo | undefined;\n} {\n const dappConfig = useDappChainConfig(chainId);\n const marginTokenMap = useWrappedQuoteMap(chainId);\n\n const token = useMemo(() => {\n if (marginTokenMap) {\n if (isTestnet(chainId)) {\n const tokens = Object.values(marginTokenMap);\n const token = tokens.find((t) => t.symbol === dappConfig?.network.testnet?.mintTokens[0]);\n if (token) return token;\n } else if (dappConfig?.network.mockTokenConfig?.mockTokenSymbol) {\n const tokens = Object.values(marginTokenMap);\n const token = tokens.find((t) => t.symbol === dappConfig?.network.mockTokenConfig?.mockTokenSymbol);\n if (token) return token;\n }\n }\n }, [\n chainId,\n dappConfig?.network.mockTokenConfig?.mockTokenSymbol,\n dappConfig?.network.testnet?.mintTokens,\n marginTokenMap,\n ]);\n const { onClickMintToken } = useTestnetMint(tokenInfo || token);\n return {\n onClickMintToken,\n tokenInfo: tokenInfo || token,\n };\n}\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport { ERC20, ERC20__factory } from '@derivation-tech/contracts';\nimport { JsonRpcProvider, JsonRpcSigner } from '@ethersproject/providers';\nimport { Instrument, Instrument__factory } from '@synfutures/sdks-perp/dist/typechain';\nimport { useMemo } from 'react';\n\nimport { isTestnet } from '@/utils/chain';\n\nimport { useProviderOrSigner } from './useChain';\n\nexport function useErc20Contract(tokenAddr: string | undefined, signer: JsonRpcSigner | undefined): ERC20 | undefined {\n return useMemo(() => {\n if (signer && tokenAddr) {\n return ERC20__factory.connect(tokenAddr, signer);\n }\n return undefined;\n }, [signer, tokenAddr]);\n}\n\nexport function useTestNetErc20Contract(\n tokenAddr: string | undefined,\n provider: JsonRpcProvider | undefined,\n account: string | null | undefined,\n chainId: CHAIN_ID | undefined,\n): ERC20 | undefined {\n const providerOrSigner = useProviderOrSigner(provider, account);\n return useMemo(() => {\n if (isTestnet(chainId)) {\n if (providerOrSigner && tokenAddr) {\n return ERC20__factory.connect(tokenAddr, providerOrSigner);\n }\n }\n\n return undefined;\n }, [chainId, providerOrSigner, tokenAddr]);\n}\n\nexport function useInstrumentContract(\n instrumentAddr: string | undefined,\n signer: JsonRpcSigner | undefined,\n): Instrument | undefined {\n return useMemo(() => {\n if (signer && instrumentAddr) {\n return Instrument__factory.connect(instrumentAddr, signer);\n }\n\n return undefined;\n }, [instrumentAddr, signer]);\n}\n","import { useCallback } from 'react';\n\nimport { DEFAULT_THEME, THEME_ENUM } from '@/constants';\nimport { LOCAL_THEME } from '@/constants/storage';\nimport { useTheme } from '@/features/global/hooks';\n\nexport function useSwitchTheme(): () => void {\n const { setDataTheme } = useTheme();\n const getTheme = () => {\n return (localStorage.getItem(LOCAL_THEME) || DEFAULT_THEME) as THEME_ENUM;\n };\n const onThemeToggle = useCallback(() => {\n const themeMap = {\n [THEME_ENUM.DARK]: THEME_ENUM.LIGHT,\n [THEME_ENUM.LIGHT]: THEME_ENUM.DARK,\n };\n const currTheme = themeMap[getTheme()];\n localStorage.setItem(LOCAL_THEME, currTheme);\n\n document.documentElement.setAttribute('data-theme', currTheme);\n setDataTheme(currTheme);\n }, [setDataTheme]);\n return onThemeToggle;\n}\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconThemeSun = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_29293_51766)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 8C12 9.06087 11.5786 10.0783 10.8284 10.8284C10.0783 11.5786 9.06087 12 8 12C6.93913 12 5.92172 11.5786 5.17157 10.8284C4.42143 10.0783 4 9.06087 4 8C4 6.93913 4.42143 5.92172 5.17157 5.17157C5.92172 4.42143 6.93913 4 8 4C9.06087 4 10.0783 4.42143 10.8284 5.17157C11.5786 5.92172 12 6.93913 12 8Z\",\n fill: \"#04606E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.00065 0.833496C8.13326 0.833496 8.26044 0.886175 8.3542 0.979943C8.44797 1.07371 8.50065 1.20089 8.50065 1.3335V2.00016C8.50065 2.13277 8.44797 2.25995 8.3542 2.35372C8.26044 2.44748 8.13326 2.50016 8.00065 2.50016C7.86804 2.50016 7.74087 2.44748 7.6471 2.35372C7.55333 2.25995 7.50065 2.13277 7.50065 2.00016V1.3335C7.50065 1.20089 7.55333 1.07371 7.6471 0.979943C7.74087 0.886175 7.86804 0.833496 8.00065 0.833496ZM2.93332 2.93283C3.02707 2.8392 3.15415 2.7866 3.28665 2.7866C3.41915 2.7866 3.54623 2.8392 3.63998 2.93283L3.90198 3.19416C3.99311 3.28842 4.04357 3.4147 4.04249 3.5458C4.04141 3.6769 3.98889 3.80233 3.89623 3.89508C3.80357 3.98782 3.67818 4.04047 3.54709 4.04167C3.41599 4.04287 3.28966 3.99253 3.19532 3.9015L2.93332 3.6395C2.83968 3.54575 2.78709 3.41866 2.78709 3.28616C2.78709 3.15366 2.83968 3.02658 2.93332 2.93283ZM13.068 2.93283C13.1616 3.02658 13.2142 3.15366 13.2142 3.28616C13.2142 3.41866 13.1616 3.54575 13.068 3.6395L12.806 3.9015C12.7112 3.98982 12.5858 4.0379 12.4563 4.03561C12.3268 4.03333 12.2032 3.98085 12.1116 3.88924C12.02 3.79764 11.9675 3.67405 11.9652 3.54451C11.9629 3.41498 12.011 3.28961 12.0993 3.19483L12.3613 2.93283C12.4551 2.8392 12.5821 2.7866 12.7147 2.7866C12.8471 2.7866 12.9742 2.8392 13.068 2.93283ZM0.833984 8.00016C0.833984 7.86755 0.886663 7.74038 0.980431 7.64661C1.0742 7.55284 1.20138 7.50016 1.33398 7.50016H2.00065C2.13326 7.50016 2.26044 7.55284 2.3542 7.64661C2.44797 7.74038 2.50065 7.86755 2.50065 8.00016C2.50065 8.13277 2.44797 8.25995 2.3542 8.35372C2.26044 8.44748 2.13326 8.50016 2.00065 8.50016H1.33398C1.20138 8.50016 1.0742 8.44748 0.980431 8.35372C0.886663 8.25995 0.833984 8.13277 0.833984 8.00016ZM13.5007 8.00016C13.5007 7.86755 13.5533 7.74038 13.6471 7.64661C13.7409 7.55284 13.868 7.50016 14.0007 7.50016H14.6673C14.7999 7.50016 14.9271 7.55284 15.0209 7.64661C15.1146 7.74038 15.1673 7.86755 15.1673 8.00016C15.1673 8.13277 15.1146 8.25995 15.0209 8.35372C14.9271 8.44748 14.7999 8.50016 14.6673 8.50016H14.0007C13.868 8.50016 13.7409 8.44748 13.6471 8.35372C13.5533 8.25995 13.5007 8.13277 13.5007 8.00016ZM12.0993 12.0988C12.1931 12.0052 12.3201 11.9526 12.4527 11.9526C12.5852 11.9526 12.7122 12.0052 12.806 12.0988L13.068 12.3608C13.1171 12.4066 13.1565 12.4618 13.1838 12.5231C13.2112 12.5845 13.2259 12.6507 13.227 12.7178C13.2282 12.7849 13.2159 12.8516 13.1907 12.9139C13.1656 12.9762 13.1282 13.0327 13.0807 13.0802C13.0332 13.1277 12.9766 13.1651 12.9144 13.1902C12.8521 13.2154 12.7854 13.2277 12.7183 13.2266C12.6512 13.2254 12.585 13.2107 12.5236 13.1833C12.4623 13.156 12.4071 13.1166 12.3613 13.0675L12.0993 12.8055C12.0057 12.7117 11.9531 12.5847 11.9531 12.4522C11.9531 12.3197 12.0057 12.1926 12.0993 12.0988ZM3.90198 12.0988C3.99562 12.1926 4.04821 12.3197 4.04821 12.4522C4.04821 12.5847 3.99562 12.7117 3.90198 12.8055L3.63998 13.0675C3.59421 13.1166 3.53901 13.156 3.47768 13.1833C3.41634 13.2107 3.35013 13.2254 3.283 13.2266C3.21586 13.2277 3.14918 13.2154 3.08692 13.1902C3.02466 13.1651 2.9681 13.1277 2.92063 13.0802C2.87315 13.0327 2.83572 12.9762 2.81057 12.9139C2.78542 12.8516 2.77307 12.7849 2.77426 12.7178C2.77544 12.6507 2.79014 12.5845 2.81746 12.5231C2.84479 12.4618 2.88419 12.4066 2.93332 12.3608L3.19465 12.0988C3.24108 12.0524 3.29622 12.0155 3.3569 11.9904C3.41759 11.9652 3.48263 11.9523 3.54832 11.9523C3.61401 11.9523 3.67905 11.9652 3.73973 11.9904C3.80042 12.0155 3.85555 12.0524 3.90198 12.0988ZM8.00065 13.5002C8.13326 13.5002 8.26044 13.5528 8.3542 13.6466C8.44797 13.7404 8.50065 13.8676 8.50065 14.0002V14.6668C8.50065 14.7994 8.44797 14.9266 8.3542 15.0204C8.26044 15.1142 8.13326 15.1668 8.00065 15.1668C7.86804 15.1668 7.74087 15.1142 7.6471 15.0204C7.55333 14.9266 7.50065 14.7994 7.50065 14.6668V14.0002C7.50065 13.8676 7.55333 13.7404 7.6471 13.6466C7.74087 13.5528 7.86804 13.5002 8.00065 13.5002Z\",\n fill: \"#04606E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_29293_51766\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconThemeSun);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_theme_sun.2bd4983d1a82d95ac30f844ffc94afb6.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconAcctMintLinear = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.2 0.375C7.82132 0.375 8.325 0.87868 8.325 1.5V4.87505H21C21.6213 4.87505 22.125 5.37873 22.125 6.00005V7.50005C22.125 8.12137 21.6213 8.62505 21 8.62505H8.325V11.25C8.325 11.8714 7.82132 12.375 7.2 12.375H3C2.37868 12.375 1.875 11.8714 1.875 11.25V6.75C1.875 3.76519 3.10169 2.07854 4.50375 1.20225C5.16942 0.78621 5.82744 0.582107 6.3143 0.480678C6.55956 0.429584 6.76733 0.403297 6.91948 0.389711C6.99576 0.382901 7.05866 0.379229 7.106 0.377257C7.12968 0.37627 7.14953 0.375706 7.16528 0.375389L7.1858 0.375075L7.1937 0.375016L7.19705 0.375004L7.2 0.375C7.20072 0.375 7.2 0.375 7.2 1.5V0.375ZM6.075 2.90873C5.95028 2.9646 5.82285 3.03112 5.69625 3.11025C4.99831 3.54646 4.125 4.48481 4.125 6.75V10.125H6.075V2.90873Z\",\n fill: \"#1F292E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.875 15C1.875 14.3787 2.37868 13.875 3 13.875H21C21.6213 13.875 22.125 14.3787 22.125 15H21C22.125 15 22.125 14.9996 22.125 15L22.125 15.0018L22.125 15.0039L22.125 15.0094L22.1248 15.025L22.124 15.0744C22.123 15.1151 22.1212 15.1711 22.1177 15.2404C22.1108 15.3785 22.0973 15.571 22.0705 15.8001C22.0178 16.2524 21.9105 16.8755 21.6868 17.5145C21.4656 18.1466 21.1069 18.8625 20.5102 19.4308C19.8875 20.0239 19.0501 20.4108 18 20.4108H16.0282L16.5742 22.1658C16.6805 22.5073 16.618 22.879 16.406 23.167C16.194 23.455 15.8576 23.625 15.5 23.625H6.5C6.14237 23.625 5.80604 23.455 5.59402 23.167C5.382 22.879 5.31955 22.5073 5.42579 22.1658L5.97181 20.4108H3C2.37868 20.4108 1.875 19.9071 1.875 19.2858V15ZM19.7408 16.125H4.125V18.1608H7.5C7.85763 18.1608 8.19396 18.3308 8.40598 18.6188C8.618 18.9068 8.68045 19.2785 8.57421 19.62L8.02819 21.375H13.9718L13.4258 19.62C13.3195 19.2785 13.382 18.9068 13.594 18.6188C13.806 18.3308 14.1424 18.1608 14.5 18.1608H18C18.4499 18.1608 18.7375 18.0119 18.9585 17.8015C19.2056 17.5661 19.4094 17.2106 19.5632 16.7713C19.6388 16.5551 19.6967 16.335 19.7408 16.125Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconAcctMintLinear);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_acct_mint_linear.a31188abf1835f5c0ff7c5f22e6d49ec.svg\";","/**\n * @description component switch theme\n */\nimport classNames from 'classnames';\nimport { FC, useEffect } from 'react';\nimport { animated, useSpring } from 'react-spring';\n\nimport { THEME_ENUM } from '@/constants';\nimport { useTheme } from '@/features/global/hooks';\nimport { useGa } from '@/hooks/useGa';\nimport { useSwitchTheme } from '@/hooks/useTheme';\nimport { GaCategory } from '@/utils/analytics';\n\nimport { ReactComponent as IconThemeMoon } from './assets/icon_theme_moon.svg';\nimport { ReactComponent as IconThemeSun } from './assets/icon_theme_sun.svg';\nimport './index.less';\n\nconst SwitchTheme: FC = function () {\n const { dataTheme } = useTheme();\n const gaEvent = useGa();\n const onThemeToggle = useSwitchTheme();\n const iconStyles = useSpring({\n paddingLeft: dataTheme === THEME_ENUM.DARK ? 20 : 4,\n });\n useEffect(() => {\n if (dataTheme) {\n document.documentElement.setAttribute('data-theme', dataTheme);\n }\n\n console.record('other', 'Theme init', dataTheme);\n }, [dataTheme]);\n return (\n {\n onThemeToggle();\n e.preventDefault();\n e.stopPropagation();\n gaEvent({\n category: GaCategory.HEADER,\n action: 'Others-Click on Mode',\n label: dataTheme === THEME_ENUM.DARK ? THEME_ENUM.LIGHT : THEME_ENUM.DARK,\n });\n }}>\n {dataTheme === THEME_ENUM.DARK ? : }\n \n );\n};\n\nexport default SwitchTheme;\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreAcademy = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.00004 2.75034C7.60003 2.75034 7.20502 2.83933 6.84366 3.01086L6.84042 3.0124L2.37975 5.10372C2.21905 5.17899 2.08337 5.37618 2.08337 5.66665C2.08337 5.95712 2.21881 6.1542 2.37951 6.22947L6.84373 8.32247C7.20517 8.49408 7.60026 8.58313 8.00037 8.58313C8.40048 8.58313 8.79558 8.49409 9.15702 8.32248L9.16029 8.32092L13.6203 6.2296C13.781 6.15433 13.9167 5.95712 13.9167 5.66665C13.9167 5.37618 13.7813 5.17911 13.6206 5.10384L9.15642 3.01087C8.79505 2.83933 8.40005 2.75034 8.00004 2.75034ZM0.583374 5.66665C0.583374 4.94253 0.933199 4.12503 1.743 3.74558L6.2021 1.65498C6.76402 1.38855 7.37814 1.25034 8.00004 1.25034C8.62194 1.25034 9.23606 1.38855 9.79799 1.65498C9.79854 1.65525 9.7991 1.65551 9.79966 1.65578L14.2568 3.74547C14.2568 3.74543 14.2569 3.74551 14.2568 3.74547C15.0666 4.12491 15.4167 4.94253 15.4167 5.66665C15.4167 6.39085 15.0668 7.20844 14.2568 7.58784L13.4167 7.98178V11.0833C13.4167 11.9998 12.957 12.8954 12.1068 13.366C11.5993 13.6476 10.9297 13.9876 10.222 14.259C9.52644 14.5258 8.7345 14.75 8.00004 14.75C7.26549 14.75 6.4735 14.5256 5.77804 14.2588C5.07035 13.9874 4.40066 13.6475 3.89354 13.3669C3.04517 12.896 2.58337 12.0007 2.58337 11.084V7.98172L2.08337 7.7473V9.33332C2.08337 9.74753 1.74759 10.0833 1.33337 10.0833C0.91916 10.0833 0.583374 9.74753 0.583374 9.33332L0.583374 5.66665ZM4.08337 8.68498V11.084C4.08337 11.5097 4.29416 11.8734 4.62015 12.0546C5.09232 12.3159 5.69552 12.6206 6.31521 12.8583C6.94725 13.1007 7.53725 13.25 8.00004 13.25C8.46292 13.25 9.05297 13.1008 9.68487 12.8585C10.3046 12.6208 10.9077 12.3159 11.3795 12.0542C11.7051 11.874 11.9167 11.5107 11.9167 11.0833V8.68515L9.8004 9.67749C9.79982 9.67777 9.79924 9.67804 9.79866 9.67832C9.23664 9.94485 8.6224 10.0831 8.00037 10.0831C7.37834 10.0831 6.76409 9.94485 6.20207 9.67831L4.08337 8.68498Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreAcademy);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_academy.53dfbdaf64e650fa796a9c138af264b8.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreDocs = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5474_63312)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13.3619 1.26236C14.5335 1.22155 15.4167 2.18305 15.4167 3.28887V10.7625C15.4167 11.9284 14.4749 12.8281 13.3703 12.8972C12.7347 12.9369 12.0355 13.0127 11.5247 13.1475C10.8927 13.3143 10.0957 13.6907 9.43789 14.0414C8.54219 14.5189 7.45789 14.5189 6.56219 14.0414C5.90433 13.6907 5.10742 13.3143 4.47535 13.1475C3.96461 13.0127 3.26541 12.9369 2.6298 12.8972C1.52514 12.8281 0.583374 11.9284 0.583374 10.7625V3.33194C0.583374 2.19884 1.50811 1.2281 2.70098 1.30141C3.36228 1.34206 4.19276 1.4243 4.85807 1.59986C5.64463 1.80742 6.5387 2.2348 7.20546 2.58737C7.68077 2.8387 8.26827 2.82594 8.74026 2.55278L9.10509 3.18317L8.74026 2.55278C9.32558 2.21403 10.0924 1.81386 10.7849 1.60654C11.5806 1.36834 12.5998 1.28891 13.3619 1.26236ZM13.9167 3.28887C13.9167 2.96477 13.6716 2.75248 13.4141 2.76145C12.6715 2.78732 11.8153 2.86385 11.2151 3.04353C10.6975 3.19851 10.0549 3.52503 9.49161 3.85104C9.25683 3.98692 9.00723 4.08986 8.75 4.15937V12.7083C9.4232 12.3503 10.3392 11.909 11.142 11.6971C11.8002 11.5235 12.6197 11.4412 13.2767 11.4001C13.6504 11.3767 13.9167 11.0779 13.9167 10.7625V3.28887ZM7.25 12.7083V4.1899C6.99331 4.13133 6.74244 4.03933 6.50429 3.9134C5.8562 3.5707 5.08773 3.21181 4.47535 3.05022C3.95864 2.91387 3.24949 2.83796 2.60897 2.79859C2.34037 2.78208 2.08337 3.00082 2.08337 3.33194V10.7625C2.08337 11.0779 2.34967 11.3767 2.72343 11.4001C3.38037 11.4412 4.19987 11.5235 4.85807 11.6971C5.66084 11.909 6.5768 12.3502 7.25 12.7083Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5474_63312\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreDocs);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_docs.81e3a0c0a7718b320aba83a1cf949358.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreFaq = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5474_63310)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.44262 2.19866C3.61842 2.30944 3.16584 2.51415 2.83966 2.83972C2.51423 3.16548 2.30949 3.6179 2.19869 4.44233C2.08497 5.28851 2.08337 6.40748 2.08337 8.00001C2.08337 9.59254 2.08497 10.7117 2.19869 11.5579C2.30953 12.3826 2.51434 12.8345 2.83952 13.1595L2.8397 13.1597C3.1655 13.4855 3.6179 13.6904 4.44243 13.8013C5.28857 13.9151 6.4075 13.9167 8.00004 13.9167C9.59258 13.9167 10.7117 13.9151 11.5578 13.8013C12.3824 13.6904 12.8344 13.4855 13.1593 13.16L13.1599 13.1595C13.4855 12.8341 13.6904 12.382 13.8013 11.5575C13.9151 10.7115 13.9167 9.59256 13.9167 8.00001C13.9167 6.40747 13.9151 5.2887 13.8013 4.44265C13.6905 3.61844 13.4856 3.16588 13.1597 2.83967C12.8343 2.51429 12.3822 2.30949 11.5576 2.19866C10.7115 2.08494 9.59257 2.08334 8.00004 2.08334C6.40751 2.08334 5.28871 2.08494 4.44262 2.19866ZM7.94457 0.583344H8.05551C9.57975 0.583325 10.7998 0.58331 11.7575 0.712029C12.7482 0.845201 13.5698 1.1284 14.2204 1.77901L14.2206 1.7792C14.8712 2.4303 15.1546 3.25173 15.2879 4.2427C15.4167 5.20039 15.4167 6.4203 15.4167 7.9445V8.05552C15.4167 9.57972 15.4167 10.7998 15.2879 11.7575C15.1547 12.7484 14.8712 13.5699 14.2202 14.2205C13.5699 14.8714 12.7484 15.1547 11.7578 15.2879C10.8 15.4167 9.57976 15.4167 8.05555 15.4167H7.94453C6.42033 15.4167 5.20025 15.4167 4.24249 15.2879C3.25161 15.1546 2.43007 14.8713 1.77923 14.2205C1.12841 13.5702 0.845219 12.7485 0.712058 11.7577C0.583341 10.7999 0.583356 9.57972 0.583374 8.05547V7.94455C0.583356 6.42031 0.583341 5.20026 0.712058 4.24253C0.845231 3.25164 1.12842 2.43008 1.77886 1.7792L1.77914 1.77892L1.77941 1.77865C2.43054 1.12841 3.25192 0.845213 4.2428 0.712029C5.20045 0.58331 6.42034 0.583325 7.94457 0.583344Z\",\n fill: \"#1F292E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.55801 4.89809C8.38692 4.80038 8.19316 4.74932 7.99613 4.75001C7.79911 4.7507 7.60571 4.80312 7.43531 4.90202C7.2649 5.00093 7.12345 5.14285 7.02512 5.31359C6.92679 5.48433 6.87503 5.6779 6.875 5.87493C6.87494 6.28914 6.53911 6.62488 6.1249 6.62483C5.71069 6.62477 5.37494 6.28894 5.375 5.87473C5.37506 5.41501 5.49585 4.96337 5.72528 4.56499C5.95471 4.16662 6.28473 3.83548 6.68233 3.60471C7.07993 3.37394 7.53116 3.25163 7.99087 3.25002C8.45059 3.2484 8.90267 3.36755 9.30187 3.59552C9.70108 3.8235 10.0334 4.15232 10.2656 4.54908C10.4979 4.94583 10.6218 5.39661 10.6251 5.85632C10.6284 6.31603 10.5109 6.76853 10.2844 7.16857C10.0579 7.56845 9.73047 7.90189 9.33476 8.13553C9.13846 8.25168 8.97619 8.37874 8.87041 8.50345C8.76761 8.62464 8.75008 8.70369 8.75008 8.74995L8.75008 9.5C8.75008 9.91421 8.41429 10.25 8.00008 10.25C7.58586 10.25 7.25008 9.91421 7.25008 9.5L7.25008 8.74995C7.25008 8.24419 7.47155 7.83371 7.72652 7.53314C7.97846 7.23612 8.29263 7.00922 8.57125 6.84439L8.57158 6.84419L8.57192 6.844C8.7416 6.74385 8.88201 6.6009 8.97909 6.42945C9.07618 6.258 9.12654 6.06406 9.12513 5.86704C9.12372 5.67002 9.0706 5.47681 8.97107 5.30677C8.87154 5.13672 8.72911 4.9958 8.55801 4.89809Z\",\n fill: \"#1F292E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 12.5C8.41421 12.5 8.75 12.1642 8.75 11.75C8.75 11.3358 8.41421 11 8 11C7.58579 11 7.25 11.3358 7.25 11.75C7.25 12.1642 7.58579 12.5 8 12.5Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5474_63310\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreFaq);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_faq.e62abfe73053374b1b406648e6913df1.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreGithub = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.60761 1.14402C2.40414 1.92396 2.37882 2.73424 2.53165 3.52173C2.0799 4.27249 1.86405 5.14474 1.91671 6.0244C1.92823 8.37979 3.60703 9.83892 5.47142 10.2769C5.43678 10.3706 5.40573 10.4657 5.37839 10.5622C5.29229 10.8661 5.24365 11.1786 5.23221 11.4924C4.81671 11.6246 4.51285 11.6402 4.28792 11.6106C3.99228 11.5716 3.75303 11.4442 3.50811 11.248C3.38154 11.1466 3.26 11.0323 3.12495 10.9014L3.06612 10.8443C2.95239 10.7336 2.82291 10.6077 2.6927 10.4951C2.38503 10.2291 1.94074 9.91668 1.33337 9.91668C0.91916 9.91668 0.583374 10.2525 0.583374 10.6667C0.583374 11.0809 0.91916 11.4167 1.33337 11.4167C1.39267 11.4167 1.48922 11.4375 1.71175 11.6299C1.80573 11.7111 1.89858 11.8014 2.01332 11.9129L2.08125 11.9788C2.22039 12.1136 2.38479 12.2701 2.5703 12.4187C2.94955 12.7225 3.43905 13.0117 4.09195 13.0977C4.45174 13.1452 4.83566 13.1276 5.24999 13.0386V14.6667C5.24999 15.0809 5.58577 15.4167 5.99999 15.4167C6.4142 15.4167 6.74999 15.0809 6.74999 14.6667V12.0186C6.75099 11.9789 6.74885 11.939 6.74342 11.8991C6.71029 11.5867 6.7367 11.2707 6.82158 10.9711C6.90726 10.6687 7.05403 10.3843 7.25347 10.1337C7.4328 9.90841 7.46729 9.60032 7.34223 9.34093C7.21716 9.08154 6.95462 8.91667 6.66665 8.91667C4.94702 8.91667 3.41665 7.79689 3.41665 6C3.41665 5.98363 3.41612 5.96726 3.41505 5.95093C3.37189 5.29266 3.55842 4.63981 3.94282 4.10371C4.07271 3.92256 4.1153 3.69303 4.05903 3.47735C3.96041 3.0993 3.91982 2.71187 3.93725 2.32609C4.18221 2.45258 4.49761 2.64405 4.88332 2.93333C5.05189 3.05976 5.26586 3.10944 5.47288 3.07023C7.14066 2.75437 8.85931 2.75437 10.5271 3.07023C10.7341 3.10944 10.9481 3.05976 11.1167 2.93333C11.4974 2.64777 11.8096 2.45753 12.0532 2.33101C12.0689 2.71921 12.0305 3.10905 11.9379 3.48924C11.8863 3.70142 11.9297 3.92558 12.0568 4.10316C12.4424 4.64198 12.6272 5.29073 12.5849 5.9521C12.5838 5.96804 12.5833 5.98402 12.5833 6C12.5833 7.79689 11.053 8.91667 9.33332 8.91667C9.04604 8.91667 8.784 9.08077 8.65857 9.33923C8.53315 9.59769 8.56639 9.90508 8.74415 10.1308C9.14224 10.6361 9.32558 11.2778 9.25457 11.9172C9.25152 11.9447 9.24999 11.9723 9.24999 12V14.6667C9.24999 15.0809 9.58577 15.4167 9.99999 15.4167C10.4142 15.4167 10.75 15.0809 10.75 14.6667V12.0393C10.8101 11.4375 10.7308 10.8356 10.5247 10.2778C12.3908 9.84087 14.072 8.38116 14.0833 6.02383C14.1349 5.14099 13.9197 4.26995 13.465 3.51645C13.6072 2.73461 13.584 1.93048 13.3954 1.15591C13.3275 0.877327 12.8474 0.562121 12.5654 0.588561C12.5214 0.592686 12.4674 0.599813 12.4034 0.611804C12.2754 0.63581 12.1086 0.679106 11.9033 0.756087C11.5457 0.890207 11.0727 1.12599 10.4842 1.53907C8.84091 1.26476 7.15906 1.26476 5.51579 1.53907C4.92727 1.12599 4.45432 0.890207 4.09666 0.756087C3.89138 0.679106 3.72456 0.63581 3.59654 0.611804C3.53258 0.599813 3.47857 0.592686 3.43458 0.588561C3.07906 0.555231 2.69991 0.790186 2.60761 1.14402Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreGithub);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_github.4d3641bb57c4cc099046773763d8db92.svg\";","var _path, _path2, _path3;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreTutorial = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.99982 5.87502C7.3785 5.87502 6.87482 6.3787 6.87482 7.00002C6.87482 7.62134 7.3785 8.12502 7.99982 8.12502H15.9998C16.6211 8.12502 17.1248 7.62134 17.1248 7.00002C17.1248 6.3787 16.6211 5.87502 15.9998 5.87502H7.99982Z\",\n fill: \"#1F292E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.99982 9.37502C7.3785 9.37502 6.87482 9.8787 6.87482 10.5C6.87482 11.1213 7.3785 11.625 7.99982 11.625H12.9998C13.6211 11.625 14.1248 11.1213 14.1248 10.5C14.1248 9.8787 13.6211 9.37502 12.9998 9.37502H7.99982Z\",\n fill: \"#1F292E\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.92189 0.875002H14.0779C15.4254 0.874959 16.5493 0.874924 17.4416 0.994918C18.3833 1.12156 19.2338 1.40017 19.9168 2.08396C20.6006 2.76697 20.8783 3.61663 21.005 4.55831C21.125 5.45055 21.1249 6.57447 21.1249 7.92196V16.078C21.1249 17.4255 21.125 18.5495 21.005 19.4417C20.8784 20.3832 20.5998 21.2336 19.9164 21.9165C19.2334 22.6 18.3831 22.8785 17.4416 23.0051C16.5493 23.1251 15.4254 23.125 14.078 23.125H9.92184C8.57437 23.125 7.45042 23.1251 6.55819 23.0051C5.6165 22.8785 4.76595 22.5998 4.08294 21.916C3.39915 21.233 3.12144 20.3834 2.9948 19.4417C2.8748 18.5495 2.87484 17.4255 2.87488 16.0781V7.92201C2.87484 6.57452 2.8748 5.45055 2.9948 4.55831C3.12144 3.61663 3.40005 2.76607 4.08384 2.08306C4.76685 1.39927 5.6165 1.12156 6.55819 0.994918C7.45043 0.874924 8.57439 0.874959 9.92189 0.875002ZM6.85808 3.22484C6.16576 3.31795 5.86982 3.47884 5.67483 3.67405C5.47962 3.86904 5.31783 4.16588 5.22472 4.8582C5.12727 5.58279 5.12488 6.5542 5.12488 8V15.2751C5.3505 15.1677 5.58628 15.0806 5.82952 15.0154C6.35778 14.8743 6.96553 14.8744 7.75171 14.8749L18.8749 14.875V8C18.8749 6.5542 18.8725 5.58279 18.775 4.8582C18.6819 4.16588 18.5211 3.86994 18.3258 3.67495C18.1309 3.47974 17.834 3.31795 17.1417 3.22484C16.4171 3.1274 15.4457 3.12501 13.9999 3.12501H9.99988C8.55407 3.12501 7.58267 3.1274 6.85808 3.22484ZM5.22472 19.1418C5.19162 18.8957 5.16949 18.6211 5.15469 18.3091C5.24865 18.0719 5.39033 17.8556 5.57176 17.6741C5.80431 17.4415 6.09397 17.2741 6.41167 17.1888C6.61508 17.1346 6.89671 17.125 7.8979 17.125H18.8722C18.8658 17.979 18.8447 18.6236 18.775 19.1418C18.6819 19.8341 18.5201 20.131 18.3249 20.326C18.1299 20.5212 17.834 20.6821 17.1417 20.7752C16.4171 20.8726 15.4457 20.875 13.9999 20.875H9.99988C8.55407 20.875 7.58267 20.8726 6.85808 20.7752C6.16576 20.6821 5.86891 20.5203 5.67393 20.3251C5.47871 20.1301 5.31783 19.8341 5.22472 19.1418Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreTutorial);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_tutorial.bcac189dc7795e7d100e767d67fe7f76.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreWhitepaper = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.50731 2.17432C3.86432 2.2608 3.5396 2.41688 3.31189 2.64478L3.31166 2.64501L3.31144 2.64523C3.08353 2.87295 2.92745 3.19766 2.84098 3.84065C2.7516 4.5052 2.75 5.38847 2.75 6.66668V9.33334C2.75 10.6116 2.7516 11.4948 2.84098 12.1594C2.92745 12.8024 3.08353 13.1271 3.31144 13.3548L3.31166 13.355L3.31189 13.3552C3.5396 13.5831 3.86432 13.7392 4.50731 13.8257C5.17186 13.9151 6.05513 13.9167 7.33334 13.9167H8.66667C9.94488 13.9167 10.8281 13.9151 11.4927 13.8257C12.1357 13.7392 12.4604 13.5831 12.6881 13.3552L12.6886 13.3548C12.9165 13.1271 13.0725 12.8024 13.159 12.1594C13.2484 11.4948 13.25 10.6116 13.25 9.33334V6.66668C13.25 5.38847 13.2484 4.5052 13.159 3.84065C13.0725 3.19766 12.9165 2.87295 12.6886 2.64523L12.6883 2.64501L12.6881 2.64478C12.4604 2.41688 12.1357 2.2608 11.4927 2.17432C10.8281 2.08494 9.94488 2.08334 8.66667 2.08334H7.33334C6.05513 2.08334 5.17186 2.08494 4.50731 2.17432ZM7.27919 0.583344H8.72081C9.93177 0.583321 10.9164 0.583303 11.6926 0.687704C12.5019 0.796553 13.1962 1.03113 13.7492 1.5845C13.7492 1.58452 13.7492 1.58455 13.7492 1.58457C14.3023 2.13746 14.5368 2.83158 14.6456 3.64071C14.75 4.41695 14.75 5.40157 14.75 6.61252V9.3875C14.75 10.5985 14.75 11.5831 14.6456 12.3593C14.5368 13.1684 14.3023 13.8626 13.7492 14.4154C13.1963 14.9689 12.502 15.2035 11.6926 15.3123C10.9164 15.4167 9.93176 15.4167 8.72078 15.4167H7.27922C6.06825 15.4167 5.08361 15.4167 4.30736 15.3123C3.49802 15.2035 2.80373 14.9689 2.25078 14.4154C1.69768 13.8626 1.46318 13.1684 1.35436 12.3593C1.24996 11.5831 1.24998 10.5984 1.25 9.38749V6.61253C1.24998 5.40157 1.24996 4.41695 1.35436 3.64071C1.4632 2.83148 1.69774 2.13728 2.25099 1.58436C2.80391 1.03109 3.49812 0.796544 4.30736 0.687704C5.08361 0.583303 6.06823 0.583321 7.27919 0.583344ZM4.58333 5.33334C4.58333 4.91913 4.91912 4.58334 5.33333 4.58334H10.6667C11.0809 4.58334 11.4167 4.91913 11.4167 5.33334C11.4167 5.74756 11.0809 6.08334 10.6667 6.08334H5.33333C4.91912 6.08334 4.58333 5.74756 4.58333 5.33334ZM4.58333 8.00001C4.58333 7.5858 4.91912 7.25001 5.33333 7.25001H10.6667C11.0809 7.25001 11.4167 7.5858 11.4167 8.00001C11.4167 8.41423 11.0809 8.75001 10.6667 8.75001H5.33333C4.91912 8.75001 4.58333 8.41423 4.58333 8.00001ZM4.58333 10.6667C4.58333 10.2525 4.91912 9.91668 5.33333 9.91668H8.66667C9.08088 9.91668 9.41667 10.2525 9.41667 10.6667C9.41667 11.0809 9.08088 11.4167 8.66667 11.4167H5.33333C4.91912 11.4167 4.58333 11.0809 4.58333 10.6667Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreWhitepaper);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_whitepaper.29498032a8163104353570773c563e29.svg\";","var _path, _path2, _path3, _path4;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconCheckLinear = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z\",\n stroke: \"#ABB5BA\",\n strokeWidth: 1.5\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.5 12.5L10.5 14.5L15.5 9.5\",\n stroke: \"#ABB5BA\",\n strokeWidth: 1.5,\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.0303 10.0303C16.3232 9.73744 16.3232 9.26256 16.0303 8.96967C15.7374 8.67678 15.2626 8.67678 14.9697 8.96967L10.5 13.4393L9.03033 11.9697C8.73744 11.6768 8.26256 11.6768 7.96967 11.9697C7.67678 12.2626 7.67678 12.7374 7.96967 13.0303L9.96967 15.0303C10.2626 15.3232 10.7374 15.3232 11.0303 15.0303L16.0303 10.0303Z\",\n fill: \"#ABB5BA\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12 1.25C6.06294 1.25 1.25 6.06294 1.25 12C1.25 17.9371 6.06294 22.75 12 22.75C17.9371 22.75 22.75 17.9371 22.75 12C22.75 6.06294 17.9371 1.25 12 1.25ZM2.75 12C2.75 6.89137 6.89137 2.75 12 2.75C17.1086 2.75 21.25 6.89137 21.25 12C21.25 17.1086 17.1086 21.25 12 21.25C6.89137 21.25 2.75 17.1086 2.75 12Z\",\n fill: \"#ABB5BA\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconCheckLinear);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_check_linear.0a4f0cb8fbce69ccadfa7cfc2f42f0d0.svg\";","/**\n * @description Component-MobileFooterDrawer\n */\nimport './index.less';\n\nimport { DrawerProps } from 'antd';\nimport classNames from 'classnames';\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as IconRight } from '@/assets/svg/icon_chevron.svg';\nimport { ReactComponent as IconDiscord } from '@/assets/svg/icon_discord.svg';\nimport { ReactComponent as IconMedium } from '@/assets/svg/icon_medium.svg';\n// import { ReactComponent as IconLang } from '@/assets/svg/icon_more_lang.svg';\nimport { ReactComponent as IconTelegram } from '@/assets/svg/icon_telegram.svg';\nimport { ReactComponent as IconTwitter } from '@/assets/svg/icon_twitter.svg';\nimport { ReactComponent as IconYoutube } from '@/assets/svg/icon_youtube.svg';\nimport Drawer from '@/components/Drawer';\nimport { GlobalModalType } from '@/constants';\nimport { CHAIN_ID, DAPP_CHAIN_CONFIGS } from '@/constants/chain';\nimport { FAQ_LINKS } from '@/constants/links';\nimport { useAccountWrap, useTheme, useToggleModal } from '@/features/global/hooks';\nimport ClearCacheBtn from '@/features/user/UserAddressModal/ClearCacheBtn';\nimport { useMintToken } from '@/hooks/useTestnet';\nimport { isTestnet } from '@/utils/chain';\n\nimport { CampaignIcon } from '@/assets/svg';\nimport SwitchTheme from '@/layout/Header/SwitchTheme';\nimport { ReactComponent as IconMint } from './assets/icon_acct_mint_linear.svg';\nimport { ReactComponent as IconAcademy } from './assets/icon_more_academy.svg';\nimport { ReactComponent as IconDocs } from './assets/icon_more_docs.svg';\nimport { ReactComponent as IconFaq } from './assets/icon_more_faq.svg';\nimport { ReactComponent as IconGithub } from './assets/icon_more_github.svg';\nimport { ReactComponent as IconMoreTutorial } from './assets/icon_more_tutorial.svg';\nimport { ReactComponent as IconWhitepaper } from './assets/icon_more_whitepaper.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n drawerProps?: DrawerProps;\n onClose: (res: boolean) => void;\n onMenuClick: (menuKey: string) => void;\n chainId: CHAIN_ID | undefined;\n openFooter: boolean;\n openLanguageDrawer: () => void;\n // mobileFooter: JSX.Element;\n}\nconst ExtraDrawer: FC = function ({\n drawerProps,\n onClose: onClose,\n onMenuClick,\n chainId,\n openFooter,\n children,\n}) {\n const toggleWalletModal = useToggleModal(GlobalModalType.Wallet);\n const userWrap = useAccountWrap();\n const { dataTheme } = useTheme();\n const { t } = useTranslation();\n const { onClickMintToken, tokenInfo } = useMintToken(chainId);\n\n // const footerDrawerHeight = useMemo(() => {\n // return isTestnet(chainId) ? 504 : 450;\n // }, [chainId]);\n return (\n {\n onClose(false);\n }}\n {...drawerProps}\n height={'auto'}\n open={openFooter}\n key={'footer-drawer'}>\n {children}\n
\n
\n onMenuClick('campaign')}>\n \n \n {t('common.campaign')}\n \n \n \n \n \n\n {chainId && (isTestnet(chainId) || DAPP_CHAIN_CONFIGS[chainId]?.network.mockTokenConfig) && tokenInfo && (\n {\n if (userWrap) onClickMintToken();\n else toggleWalletModal();\n onMenuClick('mint');\n onClose(false);\n }}>\n \n \n {t('header.menu.Mint')}\n {` ` + tokenInfo?.symbol}\n \n \n \n \n \n )}\n onMenuClick('tutorials')}>\n \n \n {t('header.menu.Tutorials')}\n \n \n \n \n \n\n onMenuClick('faq')} target=\"_blank\" rel=\"noreferrer\">\n \n \n {t('common.dropdownMenu.faq')}{' '}\n \n \n \n \n \n onMenuClick('docs')} target=\"_blank\" rel=\"noreferrer\">\n \n {' '}\n {t('common.dropdownMenu.docs')}\n \n \n \n \n \n onMenuClick('whitepaper')}\n target=\"_blank\"\n rel=\"noreferrer\">\n \n {' '}\n {t('common.dropdownMenu.whitepaper')}\n \n \n \n \n \n onMenuClick('github')}\n target=\"_blank\"\n rel=\"noreferrer\">\n \n {' '}\n {t('common.dropdownMenu.github')}\n \n \n \n \n \n onMenuClick('academy')}\n target=\"_blank\"\n rel=\"noreferrer\">\n \n \n {t('common.dropdownMenu.academy')}{' '}\n \n \n \n \n \n {/* openLanguageDrawer()}>\n \n \n {t('common.dropdownMenu.language')}{' '}\n \n \n {i18n.language} \n \n */}\n
\n
\n
\n \n
\n
\n {t('common.mobileFooter.theme')}\n \n
\n
\n
\n
\n onMenuClick('twitter')}\n target=\"_blank\"\n rel=\"noreferrer\">\n \n \n onMenuClick('medium')}\n target=\"_blank\"\n className={'medium'}\n rel=\"noreferrer\">\n \n \n onMenuClick('discord')}\n target=\"_blank\"\n rel=\"noreferrer\">\n \n \n onMenuClick('youtube')}\n target=\"_blank\"\n rel=\"noreferrer\">\n \n \n onMenuClick('telegram')}\n target=\"_blank\"\n rel=\"noreferrer\">\n \n \n
\n
\n
\n \n );\n};\n\nexport default ExtraDrawer;\n","var _circle, _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconCheckCircle = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 11.9999,\n cy: 11.9999,\n r: 9.6,\n fill: \"#10364D\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16.4485 10.4484C16.6671 10.2221 16.788 9.919 16.7853 9.60437C16.7826 9.28973 16.6564 8.98876 16.4339 8.76627C16.2114 8.54378 15.9104 8.41757 15.5958 8.41484C15.2811 8.41211 14.978 8.53306 14.7517 8.75165L10.8001 12.7032L9.2485 11.1516C9.02218 10.9331 8.71905 10.8121 8.40442 10.8148C8.08978 10.8176 7.78881 10.9438 7.56632 11.1663C7.34383 11.3888 7.21762 11.6897 7.21489 12.0044C7.21216 12.319 7.33311 12.6221 7.5517 12.8484L9.9517 15.2484C10.1767 15.4734 10.4819 15.5998 10.8001 15.5998C11.1183 15.5998 11.4235 15.4734 11.6485 15.2484L16.4485 10.4484Z\",\n fill: \"#47EBEB\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconCheckCircle);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_check_circle.d904cd77a54684ede80f27647688f87f.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconLangEn = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1782_5508)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V27.5H32V4.5Z\",\n fill: \"url(#paint0_linear_1782_5508)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M31.9971 4.5H-0.00292969V27.5H31.9971V4.5Z\",\n fill: \"url(#paint1_linear_1782_5508)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.62417 19.8333H-0.00296584V12.1667H7.62417L-3.17285 4.83847L-1.46864 2.29609L12.1875 11.5648V2.96667H19.8066V11.5648L33.4627 2.29609L35.1669 4.83847L24.3699 12.1667H31.997V19.8333H24.3699L35.1669 27.1615L33.4627 29.7039L19.8066 20.4351V29.0333H12.1875V20.4351L-1.46864 29.7039L-3.17285 27.1615L7.62417 19.8333Z\",\n fill: \"url(#paint2_linear_1782_5508)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.5415 12.1023L36.0162 2.52025C36.192 2.40389 36.2408 2.16619 36.1251 1.98932C36.0095 1.81245 35.7733 1.7634 35.5975 1.87975L21.1228 11.4618C20.947 11.5781 20.8983 11.8158 21.0139 11.9927C21.1295 12.1696 21.3658 12.2186 21.5415 12.1023Z\",\n fill: \"#DB1F35\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M22.6559 20.57L35.6317 29.3708C35.8061 29.4891 36.0429 29.4427 36.1605 29.2671C36.2781 29.0916 36.232 28.8534 36.0575 28.735L23.0817 19.9343C22.9072 19.8159 22.6705 19.8623 22.5529 20.0379C22.4353 20.2134 22.4814 20.4517 22.6559 20.57Z\",\n fill: \"#DB1F35\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.35924 11.4392L-4.17564 2.26049C-4.35011 2.14217 -4.58687 2.18858 -4.70445 2.36414C-4.82203 2.5397 -4.77591 2.77794 -4.60144 2.89625L8.93344 12.0749C9.10791 12.1932 9.34466 12.1468 9.46225 11.9713C9.57983 11.7957 9.53371 11.5575 9.35924 11.4392Z\",\n fill: \"#DB1F35\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.4038 19.8262L-4.59908 29.8376C-4.77442 29.9546 -4.8223 30.1925 -4.70602 30.3689C-4.58974 30.5453 -4.35334 30.5935 -4.178 30.4765L10.8249 20.4651C11.0002 20.3481 11.0481 20.1102 10.9318 19.9338C10.8156 19.7573 10.5791 19.7092 10.4038 19.8262Z\",\n fill: \"#DB1F35\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M-0.00292969 18.3H13.7114V27.5H18.2828V18.3H31.9971V13.7H18.2828V4.5H13.7114V13.7H-0.00292969V18.3Z\",\n fill: \"url(#paint3_linear_1782_5508)\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_1782_5508\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_1782_5508\",\n x1: 15.9971,\n y1: 4.5,\n x2: 15.9971,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#0A17A7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#030E88\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_1782_5508\",\n x1: 15.997,\n y1: 2.29609,\n x2: 15.997,\n y2: 29.7039,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_1782_5508\",\n x1: 15.9971,\n y1: 4.5,\n x2: 15.9971,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#E6273E\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#CF152B\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1782_5508\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n y: 4.5,\n width: 32,\n height: 23,\n rx: 4,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconLangEn);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_lang_en.43282fcac5f6358aca45a82e206f2d4f.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconLangEs = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1800_5694)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V27.5H32V4.5Z\",\n fill: \"url(#paint0_linear_1800_5694)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V10.6333H32V4.5Z\",\n fill: \"url(#paint1_linear_1800_5694)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 21.3667H0V27.5H32V21.3667Z\",\n fill: \"url(#paint2_linear_1800_5694)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 10.6333H0V21.3667H32V10.6333Z\",\n fill: \"url(#paint3_linear_1800_5694)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.38086 15.2333H9.90467V16H8.38086V15.2333Z\",\n fill: \"#FFEDB1\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7.48965 17.4713C7.52717 17.9243 7.93318 18.3 8.38103 18.3C8.82942 18.3 9.23504 17.9227 9.27242 17.4713L9.45776 15.2333H7.30431L7.48965 17.4713ZM6.53918 15.2263C6.50444 14.8068 6.82784 14.4667 7.24719 14.4667H9.51488C9.94065 14.4667 10.2584 14.7975 10.2229 15.2263L10.0317 17.5349C9.96164 18.3809 9.22848 19.0667 8.38103 19.0667C7.53946 19.0667 6.80101 18.3879 6.73037 17.5349L6.53918 15.2263Z\",\n fill: \"#A41517\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.85693 16H9.90455V16.7667H9.14265L8.38074 18.3L7.61884 16.7667H6.85693V16Z\",\n fill: \"#A41517\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M6.0951 13.7H4.57129V19.0667H6.0951V13.7Z\",\n fill: \"#A41517\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12.1903 13.7H10.6665V19.0667H12.1903V13.7Z\",\n fill: \"#A41517\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.85693 12.9333C6.85693 12.5099 7.18308 12.1667 7.62598 12.1667H9.13551C9.56024 12.1667 9.90455 12.5223 9.90455 12.9333V13.3131C9.90455 13.5268 9.7407 13.7 9.53085 13.7H7.23063C7.02424 13.7 6.85693 13.5359 6.85693 13.3131V12.9333Z\",\n fill: \"#A41517\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_1800_5694\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_1800_5694\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 10.6333,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#DD172C\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#C60B1F\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_1800_5694\",\n x1: 16,\n y1: 21.3667,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#DD172C\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#C60B1F\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_1800_5694\",\n x1: 16,\n y1: 10.6333,\n x2: 16,\n y2: 21.3667,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFD133\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFC500\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1800_5694\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n y: 4.5,\n width: 32,\n height: 23,\n rx: 4,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconLangEs);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_lang_es.387a321410736359755c133a6d96a3bf.svg\";","var _g, _g2, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconLangFr = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1800_5693)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V27.5H32V4.5Z\",\n fill: \"url(#paint0_linear_1800_5693)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V9.1H32V4.5Z\",\n fill: \"url(#paint1_linear_1800_5693)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 22.9H0V27.5H32V22.9Z\",\n fill: \"url(#paint2_linear_1800_5693)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 9.1H0V22.9H32V9.1Z\",\n fill: \"url(#paint3_linear_1800_5693)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 12.1667H0V19.8333H32V12.1667Z\",\n fill: \"url(#paint4_linear_1800_5693)\"\n }))), _g2 || (_g2 = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip1_1800_5693)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V27.5H32V4.5Z\",\n fill: \"url(#paint5_linear_1800_5693)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32.0002 4.5H15.2383V27.5H32.0002V4.5Z\",\n fill: \"url(#paint6_linear_1800_5693)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M10.6667 4.5H0V27.5H10.6667V4.5Z\",\n fill: \"url(#paint7_linear_1800_5693)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M21.3332 4.5H10.6665V27.5H21.3332V4.5Z\",\n fill: \"url(#paint8_linear_1800_5693)\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_1800_5693\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_1800_5693\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 9.1,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#F12532\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#EB212E\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_1800_5693\",\n x1: 16,\n y1: 22.9,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#F12532\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#EB212E\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_1800_5693\",\n x1: 16,\n y1: 9.1,\n x2: 16,\n y2: 22.9,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint4_linear_1800_5693\",\n x1: 16,\n y1: 12.1667,\n x2: 16,\n y2: 19.8333,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#322B6C\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#241F4E\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint5_linear_1800_5693\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint6_linear_1800_5693\",\n x1: 23.6192,\n y1: 4.5,\n x2: 23.6192,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#F44653\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#EE2A39\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint7_linear_1800_5693\",\n x1: 5.33333,\n y1: 4.5,\n x2: 5.33333,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#1035BB\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#042396\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint8_linear_1800_5693\",\n x1: 15.9998,\n y1: 4.5,\n x2: 15.9998,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1800_5693\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n y: 4.5,\n width: 32,\n height: 23,\n rx: 4,\n fill: \"white\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip1_1800_5693\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n y: 4.5,\n width: 32,\n height: 23,\n rx: 4,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconLangFr);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_lang_fr.b53eae1af4cb13bc4222ad1db82ac2c9.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconLangJp = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1800_5695)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V27.5H32V4.5Z\",\n fill: \"url(#paint0_linear_1800_5695)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M16.0002 22.9C19.7873 22.9 22.8574 19.8108 22.8574 16C22.8574 12.1892 19.7873 9.1 16.0002 9.1C12.2131 9.1 9.14307 12.1892 9.14307 16C9.14307 19.8108 12.2131 22.9 16.0002 22.9Z\",\n fill: \"url(#paint1_linear_1800_5695)\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_1800_5695\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_1800_5695\",\n x1: 16.0002,\n y1: 9.1,\n x2: 16.0002,\n y2: 22.9,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#D81441\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#BB0831\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1800_5695\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n y: 4.5,\n width: 32,\n height: 23,\n rx: 4,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconLangJp);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_lang_jp.fe729e5cea2fe33b6b62c61803ee3626.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconLangTh = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1782_5514)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V27.5H32V4.5Z\",\n fill: \"url(#paint0_linear_1782_5514)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V9.1H32V4.5Z\",\n fill: \"url(#paint1_linear_1782_5514)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 22.9H0V27.5H32V22.9Z\",\n fill: \"url(#paint2_linear_1782_5514)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 9.1H0V22.9H32V9.1Z\",\n fill: \"url(#paint3_linear_1782_5514)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 12.1667H0V19.8333H32V12.1667Z\",\n fill: \"url(#paint4_linear_1782_5514)\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_1782_5514\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_1782_5514\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 9.1,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#F12532\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#EB212E\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_1782_5514\",\n x1: 16,\n y1: 22.9,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#F12532\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#EB212E\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint3_linear_1782_5514\",\n x1: 16,\n y1: 9.1,\n x2: 16,\n y2: 22.9,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint4_linear_1782_5514\",\n x1: 16,\n y1: 12.1667,\n x2: 16,\n y2: 19.8333,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#322B6C\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#241F4E\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1782_5514\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n y: 4.5,\n width: 32,\n height: 23,\n rx: 4,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconLangTh);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_lang_th.2586f3f3b8c9c8185c027e562d0b460f.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconLangTr = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1782_5510)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V27.5H32V4.5Z\",\n fill: \"url(#paint0_linear_1782_5510)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V27.5H32V4.5Z\",\n fill: \"url(#paint1_linear_1782_5510)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M19.889 11.7633C18.9207 11.0551 17.7033 10.6333 16.381 10.6333C13.2251 10.6333 10.6668 13.0361 10.6668 16C10.6668 18.9639 13.2251 21.3667 16.381 21.3667C17.7033 21.3667 18.9207 20.9449 19.889 20.2367C18.6342 21.8575 16.6762 22.9 14.4763 22.9C10.6892 22.9 7.61914 19.8108 7.61914 16C7.61914 12.1892 10.6892 9.1 14.4763 9.1C16.6762 9.1 18.6342 10.1425 19.889 11.7633ZM21.7382 16.8836L20.3384 18.5913L20.4338 16.3798L18.3871 15.5679L20.5069 14.9757L20.6418 12.7662L21.8565 14.6118L23.9865 14.0581L22.6175 15.791L23.799 17.6583L21.7382 16.8836Z\",\n fill: \"url(#paint2_linear_1782_5510)\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_1782_5510\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_1782_5510\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#E92434\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#E11324\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_1782_5510\",\n x1: 15.8028,\n y1: 9.1,\n x2: 15.8028,\n y2: 22.9,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1782_5510\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n y: 4.5,\n width: 32,\n height: 23,\n rx: 4,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconLangTr);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_lang_tr.328c26707f934fc2a26e0474cf7b3e44.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconLangVn = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 32,\n height: 32,\n viewBox: \"0 0 32 32\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_1782_5512)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V27.5H32V4.5Z\",\n fill: \"url(#paint0_linear_1782_5512)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M32 4.5H0V27.5H32V4.5Z\",\n fill: \"url(#paint1_linear_1782_5512)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M16 18.691L11.9695 21.5822L13.4566 16.8316L9.47852 13.8678L14.4281 13.8229L16 9.1L17.572 13.8229L22.5216 13.8678L18.5434 16.8316L20.0306 21.5822L16 18.691Z\",\n fill: \"url(#paint2_linear_1782_5512)\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_1782_5512\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#F0F0F0\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_1782_5512\",\n x1: 16,\n y1: 4.5,\n x2: 16,\n y2: 27.5,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#EA403F\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D82827\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_1782_5512\",\n x1: 16,\n y1: 9.1,\n x2: 16,\n y2: 21.5822,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FFFE4E\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#FFFE38\"\n })), /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_1782_5512\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n y: 4.5,\n width: 32,\n height: 23,\n rx: 4,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconLangVn);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_lang_vn.25ce00967b74110f97c1e274cf65be0b.svg\";","import './index.less';\n\nimport { Menu, MenuProps } from 'antd';\nimport _ from 'lodash';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { AVAILABLE_LANGS, LANGUAGE_KEY } from '@/constants';\n\nimport { ReactComponent as IconCheckedCircle } from './assets/icon_check_circle.svg';\nimport iconEn from './assets/icon_lang_en.svg';\nimport iconEs from './assets/icon_lang_es.svg';\nimport iconFr from './assets/icon_lang_fr.svg';\nimport iconJp from './assets/icon_lang_jp.svg';\n// import iconKr from './assets/icon_lang_kr.svg';\nimport classNames from 'classnames';\nimport Dropdown from '../Dropdown';\nimport iconTh from './assets/icon_lang_th.svg';\nimport iconTr from './assets/icon_lang_tr.svg';\nimport iconVi from './assets/icon_lang_vn.svg';\n\nconst { SubMenu } = Menu;\n\nexport function useLangConfigs(): {\n [key: string]: { src: string; name: string; enName: string; enShortName: string };\n} {\n const langIconMap = useMemo(\n () => ({\n [AVAILABLE_LANGS.ENGLISH]: { src: iconEn, name: 'English', enName: 'ENGLISH', enShortName: 'en' },\n [AVAILABLE_LANGS.TURKEY]: { src: iconTr, name: 'Türkçe', enName: 'TURKEY', enShortName: 'tr' },\n // [AVAILABLE_LANGS.KOREAN]: { src: iconKr, name: '한국어', enName: 'VIETNAMESE', enShortName: 'kr' },\n [AVAILABLE_LANGS.VIETNAMESE]: { src: iconVi, name: 'Tiếng Việt', enName: 'KOREAN', enShortName: 'vi' },\n [AVAILABLE_LANGS.Spanish]: { src: iconEs, name: 'Español', enName: 'Spanish', enShortName: 'es' },\n [AVAILABLE_LANGS.French]: { src: iconFr, name: 'Français', enName: 'French', enShortName: 'fr' },\n [AVAILABLE_LANGS.Japanese]: { src: iconJp, name: '日本語', enName: 'Japanese', enShortName: 'ja' },\n [AVAILABLE_LANGS.Thai]: { src: iconTh, name: 'ภาษาไทย', enName: 'Thai', enShortName: 'th' },\n }),\n [],\n );\n return langIconMap;\n}\n\nfunction LanguageSelector(): JSX.Element | null {\n const { i18n } = useTranslation();\n const langConfigs = useLangConfigs();\n const [selectedKey, setSelectedKey] = useState(AVAILABLE_LANGS.ENGLISH);\n const dropdownOptions: MenuProps['items'] = useMemo(\n () =>\n _.values(langConfigs).map((langConfig, i: number) => {\n const langItem = langConfig;\n return {\n label: (\n
\n {langItem && \"Select}\n
{langItem.name}
\n
\n ),\n key: langConfig.enShortName,\n };\n }),\n [langConfigs, selectedKey],\n );\n const selectLang = useCallback(\n async (lang: string) => {\n await i18n.changeLanguage(lang);\n localStorage.setItem(LANGUAGE_KEY, lang);\n setSelectedKey(lang as AVAILABLE_LANGS);\n },\n [i18n],\n );\n useEffect(() => {\n setSelectedKey((localStorage.getItem(LANGUAGE_KEY) as AVAILABLE_LANGS) || AVAILABLE_LANGS.ENGLISH);\n }, []);\n\n return (\n <>\n {\n selectLang(info.key);\n },\n }}>\n
{selectedKey}
\n \n \n );\n}\n\nexport function MobileLangSubMenu(): JSX.Element {\n const { deviceType, isMobile } = useMediaQueryDevice();\n const { t, i18n } = useTranslation();\n const langConfigs = useLangConfigs();\n return (\n {\n // gtag('event', 'mobile_click_language', {});\n }}\n title={\n
\n {t('common.header.languages')}\n
\n \n {i18n.language.toUpperCase() || 'EN'}\n
\n
\n }>\n {_.values(langConfigs).map((langConfig) => {\n const langItem = langConfig;\n return (\n \n \n
\n {langItem.name}\n {langItem.name}\n
\n \n
\n \n );\n })}\n \n );\n}\n\nexport default LanguageSelector;\n","/**\n * @description Component-MobileLanguageSelector\n */\nimport './index.less';\n\nimport _ from 'lodash';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as IconCheck } from '@/assets/svg/icon_check_linear.svg';\nimport { ReactComponent as IconLeft } from '@/assets/svg/icon_chevron_left.svg';\nimport Drawer from '@/components/Drawer';\nimport { useLangConfigs } from '@/components/LanguageSelector';\nimport { LANGUAGE_KEY } from '@/constants';\nimport i18n from '@/i18n';\n\ninterface IPropTypes {\n open: boolean;\n className?: string;\n onClose: () => void;\n onLanguageSelect: () => void;\n}\nconst MobileLanguageSelector: FC = function ({ open, onClose, onLanguageSelect }) {\n const { t } = useTranslation();\n const langConfigs = useLangConfigs();\n return (\n \n {t('common.dropdownMenu.language')}\n \n }\n closeIcon={false}\n className=\"syn-mobile-language-selector reverse-header\"\n onClose={onClose}>\n {_.values(langConfigs)?.map((langConfig) => (\n {\n await i18n.changeLanguage(langConfig.enShortName);\n localStorage.setItem(LANGUAGE_KEY, langConfig.enShortName);\n onLanguageSelect();\n }}\n key={langConfig.enShortName}\n className=\"syn-mobile-language-selector-item\">\n
\n {langConfig && (\n \n )}\n {langConfig?.name}\n
\n {i18n.language === langConfig.enShortName && }\n \n ))}\n \n );\n};\n\nexport default MobileLanguageSelector;\n","/**\n * @description Component-MobileFooter\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport React, { FC, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useLocation } from 'react-router-dom';\n\nimport { GlobalModalType } from '@/constants';\nimport { useIsIpBlocked, useToggleModal } from '@/features/global/hooks';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\n\nimport BlockNumberTextMobile from '@/components/Text/BlockNumberText/BlockNumberTextMobile';\nimport { Tooltip } from '@/components/ToolTip';\nimport { getSpotLink } from '@/features/spot/hooks';\nimport { getIsPageSupported } from '@/hooks/usePageSupported';\nimport { RouteBasePath } from '@/pages/routers';\nimport MobileFooterDrawer from './MobileFooterDrawer';\nimport MobileLanguageSelector from './MobileLanguageSelector';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst MobileFooter: FC = function () {\n const { t } = useTranslation();\n const [openDrawer, setOpenDrawer] = useState(false);\n const [openLanguageDrawer, setOpenLanguageDrawer] = useState(false);\n\n const toggleWalletModal = useToggleModal(GlobalModalType.Wallet);\n const walletStatus = useWalletConnectStatus();\n const chainId = useChainId();\n const location = useLocation();\n const isIpBlocked = useIsIpBlocked();\n return (\n
\n \n
\n \n {t('mobile.footer.futures')}\n \n {chainId && getIsPageSupported(chainId, RouteBasePath.spot) && (\n \n {t('common.spot.spot')}\n \n )}\n \n {\n if (walletStatus === WALLET_CONNECT_STATUS.UN_CONNECT) {\n e.preventDefault();\n if (isIpBlocked) {\n return;\n }\n toggleWalletModal();\n }\n // gaEvent({ category: GaCategory.FOOTER, action: 'Menu-Click on portfolio' });\n }}>\n {t('mobile.footer.portfolio')}\n \n \n {\n setOpenLanguageDrawer(false);\n setOpenDrawer(true);\n }}>\n {t('common.more')}\n \n {\n setOpenDrawer(false);\n setOpenLanguageDrawer(true);\n }}\n onMenuClick={() => setOpenDrawer(false)}\n onClose={() => {\n setOpenDrawer(false);\n }}\n />\n {\n setOpenLanguageDrawer(false);\n }}\n onClose={() => {\n setOpenLanguageDrawer(false);\n setOpenDrawer(true);\n }}\n />\n
\n
\n );\n};\n\nexport default MobileFooter;\n","import { createSlice } from '@reduxjs/toolkit';\nimport _ from 'lodash';\n\nimport { ITransactionInfo, ITxError } from '@/types/transaction';\n\nimport { AppState } from '../store';\nimport {\n addTransaction,\n checkedTransaction,\n clearAllTransactions,\n clearLatestTransaction,\n clearLatestTxErrorMessage,\n deleteTransaction,\n finalizeTransaction,\n replaceTransaction,\n sendTransaction,\n} from './actions';\n\nexport interface ITransactionState {\n txList: {\n [chainId: number]: {\n [traderAddr: string]: {\n [txHash: string]: ITransactionInfo;\n };\n };\n };\n latestTx: ITransactionInfo | null;\n latestTxError: ITxError | null;\n txErrorMapping: {\n [chainId: number]: {\n [traderAddr: string]: {\n [txError: string]: ITxError;\n };\n };\n };\n}\n\nexport const initialState: ITransactionState = {\n txList: {},\n latestTx: null,\n latestTxError: null,\n txErrorMapping: {},\n};\n\nexport const transactionSlice = createSlice({\n name: 'transaction',\n initialState,\n reducers: {},\n extraReducers: (builder) => {\n builder\n\n .addCase(addTransaction, (state, { payload }) => {\n const tx = {\n addedTime: new Date().getTime(),\n ...payload.txInfo,\n };\n const txList = _.get(state.txList, [payload.txInfo.chainId, payload.traderAddr.toLowerCase()]);\n // remove old tx first\n if (txList && Object.values(txList).length >= 5) {\n const sortList = _.orderBy(Object.values(txList), ['addedTime'], ['asc']);\n if (sortList[0]) {\n _.unset(state.txList, [payload.txInfo.chainId, payload.traderAddr.toLowerCase(), sortList[0].txHash]);\n }\n }\n\n _.set(state.txList, [payload.txInfo.chainId, payload.traderAddr.toLowerCase(), payload.txInfo.txHash], tx);\n state.latestTx = tx;\n })\n\n .addCase(clearLatestTransaction, (state) => {\n state.latestTx = null;\n })\n .addCase(clearAllTransactions, (state, { payload }) => {\n _.set(state.txList, [payload.chainId, payload.traderAddr.toLowerCase()], {});\n })\n .addCase(checkedTransaction, (state, { payload: { chainId, hash, blockNumber, traderAddr } }) => {\n const tx = _.get(state.txList, [chainId, traderAddr, hash]);\n if (!tx) {\n return;\n }\n if (!tx.lastCheckedBlockNumber) {\n tx.lastCheckedBlockNumber = blockNumber;\n } else {\n tx.lastCheckedBlockNumber = Math.max(blockNumber, tx.lastCheckedBlockNumber);\n }\n })\n .addCase(deleteTransaction, (state, { payload: { chainId, hash, traderAddr } }) => {\n const tx = _.get(state.txList, [chainId, traderAddr, hash]);\n if (!tx) {\n return;\n }\n _.unset(state.txList, [chainId, traderAddr.toLowerCase(), hash]);\n })\n\n .addCase(finalizeTransaction, (state, { payload: { hash, chainId, receipt, traderAddr } }) => {\n const tx = _.get(state.txList, [chainId, traderAddr, hash]);\n if (!tx) {\n return;\n }\n tx.receipt = receipt;\n tx.confirmedTime = new Date().getTime();\n })\n .addCase(\n replaceTransaction,\n (state, { payload: { oldHash, newHash, chainId, receipt, traderAddr, transactionResponse } }) => {\n const oldTx = _.get(state.txList, [chainId, traderAddr, oldHash]) as ITransactionInfo;\n if (!oldTx) {\n return;\n }\n _.unset(state.txList, [chainId, traderAddr, oldHash]);\n const tx: ITransactionInfo = {\n ...oldTx,\n txHash: newHash,\n transactionResponse,\n };\n if (receipt) {\n tx.receipt = receipt;\n tx.confirmedTime = new Date().getTime();\n }\n _.set(state.txList, [chainId, traderAddr, newHash], tx);\n },\n )\n .addCase(sendTransaction.rejected, (state, { meta, error }) => {\n const { chainId, userAddr, txParams } = meta.arg;\n if (error?.code === 'ACTION_REJECTED' || error?.message?.toString().startsWith(`user rejected transaction`)) {\n return;\n }\n if (error.message) {\n const errorM = {\n msg: error.message,\n txType: txParams.type,\n };\n _.set(state.txErrorMapping, [chainId, userAddr, error.message], errorM);\n state.latestTxError = errorM;\n }\n })\n .addCase(clearLatestTxErrorMessage, (state) => {\n state.latestTxError = null;\n });\n },\n});\n\nexport const selectTransactionState = (state: AppState): ITransactionState => state.transaction;\nexport const selectLatestTxErrorState = (state: AppState): ITxError | null => state.transaction.latestTxError;\n\nexport const selectTxErrorMappingState =\n (chainId: number | undefined, account: string | undefined) =>\n (\n state: AppState,\n ):\n | {\n [txError: string]: ITxError;\n }\n | undefined =>\n _.get(state.transaction.txErrorMapping, [chainId || '', account || '']);\n\nexport default transactionSlice.reducer;\n","import { CHAIN_ID } from '@derivation-tech/context';\nimport _ from 'lodash';\nimport { useMemo } from 'react';\n\nimport { useAppSelector } from '@/hooks';\nimport { ITransactionInfo, ITxError } from '@/types/transaction';\n\nimport { ITransactionState, selectLatestTxErrorState, selectTransactionState } from './transactionSlice';\n\nexport function useTransactionState(): ITransactionState {\n const transactionState = useAppSelector(selectTransactionState);\n return transactionState;\n}\n\nexport function useLatestTransaction(): ITransactionInfo | null {\n const { latestTx } = useTransactionState();\n return latestTx;\n}\n\nexport function useAllTransactionMap(\n chainId: CHAIN_ID | undefined,\n traderAddr: string | undefined,\n):\n | {\n [txHash: string]: ITransactionInfo;\n }\n | undefined {\n const { txList } = useTransactionState();\n return useMemo(() => {\n return _.get(txList, [chainId || 0, traderAddr || '']);\n }, [chainId, traderAddr, txList]);\n}\n\nexport function useAllTransactionList(\n chainId: CHAIN_ID | undefined,\n traderAddr: string | undefined,\n): ITransactionInfo[] {\n const txMap = useAllTransactionMap(chainId, traderAddr);\n return useMemo(() => {\n return txMap ? (Object.values(txMap) || []).filter((tx) => !tx.isDisableNotification) : [];\n }, [txMap]);\n}\n\nexport function useSortedTransactionList(\n chainId: CHAIN_ID | undefined,\n traderAddr: string | undefined,\n): ITransactionInfo[] {\n const allTransactions = useAllTransactionList(chainId, traderAddr);\n const sortedRecentTransactions = useMemo(() => {\n return _.cloneDeep(allTransactions).sort((a, b) => b.addedTime - a.addedTime);\n }, [allTransactions]);\n return sortedRecentTransactions;\n}\n\nexport function usePendingTransactionList(\n chainId: CHAIN_ID | undefined,\n traderAddr: string | undefined,\n): ITransactionInfo[] {\n const allTransactions = useAllTransactionList(chainId, traderAddr);\n const pendingTransactions = useMemo(() => {\n return allTransactions.filter((tx) => !tx.receipt);\n }, [allTransactions]);\n return pendingTransactions;\n}\n\nexport function useLatestTxError(): ITxError | null {\n const latestError = useAppSelector(selectLatestTxErrorState);\n return latestError;\n}\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconRefreshSolid = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_26132_46214)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n opacity: 0.3,\n cx: 8,\n cy: 8,\n r: 8,\n fill: \"black\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.542 3.67936C9.58174 3.12357 8.4656 2.89945 7.36556 3.04166C6.26552 3.18387 5.24283 3.68447 4.45496 4.46614C3.66711 5.24779 3.15778 6.26713 3.0052 7.36707C2.96305 7.67099 3.17524 7.95154 3.47916 7.99369C3.78307 8.03585 4.06362 7.82365 4.10577 7.51974C4.22493 6.66071 4.62268 5.86492 5.23753 5.25491C5.85236 4.64491 6.65017 4.2545 7.50801 4.1436C8.36584 4.03271 9.23632 4.20744 9.98541 4.64101C10.479 4.92672 10.9019 5.31441 11.2282 5.77466H10.2222C9.91533 5.77466 9.6666 6.02339 9.6666 6.33021C9.6666 6.63704 9.91533 6.88577 10.2222 6.88577H12.1542C12.1626 6.88596 12.171 6.88596 12.1795 6.88577H12.4444C12.7512 6.88577 12.9999 6.63704 12.9999 6.33021V4.10383C12.9999 3.79701 12.7512 3.54828 12.4444 3.54828C12.1376 3.54828 11.8888 3.79701 11.8888 4.10383V4.81297C11.512 4.36215 11.0571 3.97749 10.542 3.67936ZM12.5207 8.00631C12.2168 7.96415 11.9362 8.17635 11.8941 8.48026C11.7749 9.33929 11.3772 10.1351 10.7623 10.7451C10.1475 11.3551 9.34969 11.7455 8.49186 11.8564C7.63403 11.9673 6.76354 11.7926 6.01445 11.359C5.52083 11.0733 5.09792 10.6856 4.77163 10.2253H5.77771C6.08454 10.2253 6.33327 9.97661 6.33327 9.66979C6.33327 9.36296 6.08454 9.11423 5.77771 9.11423H3.8457C3.83728 9.11404 3.82884 9.11404 3.82039 9.11423H3.55549C3.24866 9.11423 2.99993 9.36296 2.99993 9.66979V11.8962C2.99993 12.203 3.24866 12.4517 3.55549 12.4517C3.86231 12.4517 4.11104 12.203 4.11104 11.8962V11.187C4.4879 11.6378 4.94278 12.0225 5.45786 12.3206C6.41813 12.8764 7.53427 13.1005 8.63431 12.9583C9.73435 12.8161 10.757 12.3155 11.5449 11.5339C12.3328 10.7522 12.8421 9.73287 12.9947 8.63293C13.0368 8.32901 12.8246 8.04846 12.5207 8.00631Z\",\n fill: \"white\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_26132_46214\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconRefreshSolid);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_refresh_solid.d930ee6b16c5d4048f958ffc82a8713a.svg\";","import './PendingTx.less';\n\nimport classNames from 'classnames';\nimport { useMemo } from 'react';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\n\nimport { useSortedTransactionList } from '../hook';\nimport { ReactComponent as IconRefresh } from './assets/icon_refresh_solid.svg';\n\nexport default function PendingTx({ children }: { children?: JSX.Element }): JSX.Element | null {\n const chainId = useChainId();\n const { isMobile, deviceType } = useMediaQueryDevice();\n const account = useUserAddr();\n const txList = useSortedTransactionList(chainId, account);\n const pendingTxs = useMemo(() => {\n return txList.filter((tx) => !tx.receipt);\n }, [txList]);\n if (pendingTxs.length < 1) {\n return children || null;\n }\n return (\n
\n {!isMobile && {pendingTxs.length} Pending...}\n \n
\n );\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgWalletConnect = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40,\n height: 40,\n viewBox: \"0 0 40 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.18372 12.8494C14.6973 6.82794 25.3862 6.82794 31.8998 12.8494L32.7349 13.5185C33.0689 13.853 33.0689 14.3548 32.7349 14.6893L30.0626 17.1983C29.8956 17.3656 29.5616 17.3656 29.3946 17.1983L28.3925 16.1947C23.8831 12.0131 16.3674 12.0131 11.858 16.1947L10.6889 17.3656C10.5219 17.5328 10.1879 17.5328 10.0209 17.3656L7.34864 14.8566C7.01461 14.5221 7.01461 14.0203 7.34864 13.6858L8.18372 12.8494ZM37.4113 18.0346L39.7495 20.2091C40.0835 20.5436 40.0835 21.0454 39.7495 21.3799L28.8935 31.4158C28.5595 31.7503 28.0585 31.7503 27.7244 31.4158L20.0418 24.2234C20.0418 24.2234 19.8747 24.2234 19.7077 24.2234L12.0251 31.4158C11.691 31.7503 11.19 31.7503 10.856 31.4158L0 21.3799C0 21.2126 0 20.7109 0.167015 20.3763L2.50522 18.2019C2.83925 17.8674 3.34029 17.8674 3.67432 18.2019L11.357 25.3942C11.357 25.3942 11.524 25.3942 11.691 25.3942L19.3737 18.2019C19.7077 17.8674 20.2088 17.8674 20.5428 18.2019L28.2255 25.3942C28.2255 25.3942 28.3925 25.3942 28.5595 25.3942L36.2422 18.2019C36.5762 17.8674 37.0772 17.8674 37.4113 18.0346Z\",\n fill: \"#3B99FC\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgWalletConnect);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/wallet-connect.46421d5dce2bf8d4e6326c031700eaf6.svg\";","var _defs, _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconImpersonator = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n t: 1638347014229,\n className: \"icon\",\n viewBox: \"0 0 1024 1024\",\n xmlns: \"http://www.w3.org/2000/svg\",\n \"p-id\": 2065,\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 200,\n height: 200,\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z\",\n fill: \"#FCD063\",\n \"p-id\": 2066\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M840.512 119.488C915.008 208.416 960 322.912 960 448c0 282.752-229.248 512-512 512-125.088 0-239.584-44.992-328.512-119.488C213.408 952.64 354.304 1024 512 1024c282.752 0 512-229.248 512-512 0-157.696-71.36-298.592-183.488-392.512z\",\n fill: \"#F7B84E\",\n \"p-id\": 2067\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 512c0 10.784 0.96 21.344 1.6 32h1020.768c0.704-10.656 1.632-21.216 1.632-32 0-80.448-19.072-156.256-52.128-224H52.128C19.072 355.744 0 431.552 0 512z\",\n fill: \"#35495C\",\n \"p-id\": 2068\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M960 448c0 32.832-3.36 64.864-9.312 96h71.68c0.704-10.656 1.632-21.216 1.632-32 0-80.416-18.752-156.32-51.808-224h-38.24C950.56 338.368 960 392.032 960 448z\",\n fill: \"#123247\",\n \"p-id\": 2069\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M320 416m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z\",\n fill: \"#FCD063\",\n \"p-id\": 2070\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M704 416m-64 0a64 64 0 1 0 128 0 64 64 0 1 0-128 0Z\",\n fill: \"#FCD063\",\n \"p-id\": 2071\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M320 384c29.792 0 54.592 20.448 61.728 48 1.344-5.152 2.272-10.432 2.272-16 0-35.328-28.672-64-64-64s-64 28.672-64 64c0 5.568 0.928 10.848 2.272 16 7.136-27.552 31.936-48 61.728-48zM704 384c29.792 0 54.592 20.448 61.76 48 1.312-5.152 2.24-10.432 2.24-16 0-35.328-28.672-64-64-64s-64 28.672-64 64c0 5.568 0.928 10.848 2.24 16 7.168-27.552 31.968-48 61.76-48z\",\n fill: \"#F7B84E\",\n \"p-id\": 2072\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M372.448 640c9.216 0 18.528 2.24 27.008 6.944 59.968 33.184 165.184 33.184 225.12 0 24.736-13.728 56.96-6.432 71.936 16.288 14.944 22.72 6.976 52.256-17.792 65.984-93.472 51.744-239.936 51.744-333.408 0-24.736-13.728-32.704-43.264-17.76-65.984 9.824-14.944 27.136-23.232 44.896-23.232z\",\n fill: \"#C98E3F\",\n \"p-id\": 2073\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M327.552 695.2c9.824-14.944 27.136-23.2 44.896-23.2 9.216 0 18.528 2.208 27.008 6.912 59.968 33.216 165.184 33.216 225.12 0 24.736-13.728 56.96-6.4 71.936 16.288a43.422 43.422 0 0 1 4.384 8.576c4.928-13.024 4-27.808-4.384-40.544-14.976-22.72-47.2-30.016-71.936-16.288-59.936 33.184-165.152 33.184-225.12 0A55.578 55.578 0 0 0 372.448 640c-17.76 0-35.04 8.288-44.896 23.232-8.384 12.704-9.344 27.488-4.416 40.544a44.438 44.438 0 0 1 4.416-8.576z\",\n fill: \"#AB7934\",\n \"p-id\": 2074\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconImpersonator);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_impersonator.ee77e7db3622c2920e8819994da125b7.svg\";","import { Jazzicon } from '@uktvs/jazzicon-react';\nimport React from 'react';\n\nimport { useUserAddr } from '@/hooks/web3/useChain';\n\nfunction Identicon({ size = 16 }: { size?: number }): JSX.Element {\n const account = useUserAddr();\n\n return (\n
\n \n
\n );\n}\n\nexport default React.memo(Identicon);\n","import './index.less';\n\nimport WalletConnectIcon from '@/assets/images/wallets/wallet-connect.svg';\nimport { ReactComponent as IconImpersonator } from '@/assets/svg/icon_impersonator.svg';\nimport { useUserState } from '@/features/user/hooks';\nimport { useWalletType } from '@/features/wallet/hook';\nimport { WalletType } from '@/types/wallet';\n\nimport Identicon from './Identicon';\n\nexport function StatusIcon({ size = 16 }: { size?: number }): JSX.Element | null {\n const walletType = useWalletType();\n const { impostorAddress } = useUserState();\n if (!walletType) return null;\n if (impostorAddress) {\n return (\n
\n \n
\n );\n } else if (walletType === WalletType.WALLET_CONNECT) {\n return (\n
\n {'WalletConnect'}\n
\n );\n } else {\n return (\n
\n \n
\n );\n }\n return null;\n}\n","import './index.less';\n\nimport classNames from 'classnames';\nimport { useMemo } from 'react';\n\nimport { Desktop, useMediaQueryDevice } from '@/components/MediaQuery';\nimport { useSortedTransactionList } from '@/features/transaction/hook';\nimport PendingTx from '@/features/transaction/PendingTx';\nimport { useChainId, useUserAddr } from '@/hooks/web3/useChain';\nimport { shortenAddress } from '@/utils/address';\n\nimport { StatusIcon } from './StatusIcon';\n\nexport default function UserAddressStatus(): JSX.Element | null {\n const { deviceType, isMobile } = useMediaQueryDevice();\n const account = useUserAddr();\n const chainId = useChainId();\n const txList = useSortedTransactionList(chainId, account);\n const pendingTxs = useMemo(() => {\n return txList.filter((tx) => !tx.receipt);\n }, [txList]);\n return (\n
\n {!(isMobile && pendingTxs.length) && }\n \n \n {shortenAddress(account || '', true)}\n \n \n
\n );\n}\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconAcctMetamask = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5312_61130)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M5.2352 7.99995C5.2352 7.58108 5.57279 7.24152 5.98923 7.24152H7.24596V5.9775C7.24596 5.55863 7.58355 5.21907 7.99999 5.21907C8.41644 5.21907 8.75403 5.55863 8.75403 5.9775V7.24152H10.0108C10.4272 7.24152 10.7648 7.58108 10.7648 7.99995C10.7648 8.41882 10.4272 8.75838 10.0108 8.75838H8.75403V10.0225C8.75403 10.4413 8.41644 10.7809 7.99999 10.7809C7.58355 10.7809 7.24596 10.4413 7.24596 10.0225V8.75838H5.98923C5.57279 8.75838 5.2352 8.41882 5.2352 7.99995Z\",\n fill: \"#1F292E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.14459 0.574313C1.32908 0.485502 1.54152 0.475884 1.7332 0.547665L6.2207 2.22818L9.77914 2.22817L14.2608 0.547771C14.4522 0.476004 14.6644 0.485418 14.8488 0.573859C15.0332 0.6623 15.174 0.8222 15.239 1.01697L15.9608 3.1786C16.0034 3.30633 16.0115 3.44318 15.9841 3.57507L15.501 5.90211C15.4974 5.91942 15.4932 5.93661 15.4884 5.95363L14.9202 7.97326L15.8491 10.8453C15.8963 10.991 15.8984 11.1478 15.8552 11.2948L14.9289 14.4488C14.8125 14.845 14.4023 15.0746 14.0062 14.9653L11.1591 14.1792L10.8353 14.445C10.8197 14.4579 10.8035 14.4701 10.7869 14.4816L9.5139 15.3657C9.38795 15.4532 9.23853 15.5 9.08548 15.5H6.90886C6.75527 15.5 6.60535 15.4528 6.47915 15.3648L5.21182 14.4807C5.19569 14.4695 5.18 14.4576 5.16478 14.4451L4.84072 14.1791L1.99351 14.9653C1.59692 15.0748 1.18623 14.8444 1.07039 14.4475L0.149931 11.2935C0.107367 11.1476 0.109356 10.9923 0.15564 10.8476L1.07492 7.97361L0.511088 5.95194C0.506495 5.93547 0.502457 5.91885 0.498981 5.90211L0.015918 3.57507C-0.0113372 3.44378 -0.00348817 3.30756 0.0386647 3.18031L0.754735 1.01868C0.819389 0.823508 0.960096 0.663124 1.14459 0.574313ZM1.93868 2.24319L1.53377 3.46551L1.97 5.56696L2.58825 7.78373C2.62823 7.92709 2.62538 8.07912 2.58004 8.22086L1.66227 11.0901L2.30874 13.3053L4.81654 12.6128C5.05184 12.5478 5.30385 12.6014 5.4929 12.7566L6.09546 13.2512L7.14474 13.9831H8.85046L9.90513 13.2507L10.5068 12.7567C10.6958 12.6015 10.9479 12.5479 11.1832 12.6128L13.6922 13.3056L14.3427 11.0908L13.4151 8.22325C13.3689 8.08029 13.3659 7.92673 13.4067 7.78207L14.0302 5.5661L14.466 3.46646L14.0575 2.24284L10.1785 3.69725C10.0942 3.72884 10.005 3.74502 9.91512 3.74502L6.08489 3.74504C5.99507 3.74504 5.90597 3.72889 5.82179 3.69737L1.93868 2.24319Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5312_61130\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconAcctMetamask);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_acct_metamask.4b529c4c2972984a84378edebdbc7094.svg\";","import './index.less';\n\nimport { useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { useNativeToken } from '@/features/chain/hook';\nimport { TokenInfo } from '@/types/token';\n\nimport { useWagmiConnectorClient } from '@/hooks/web3/useWagami';\nimport { watchAsset } from 'viem/actions';\nimport { Tooltip } from '../ToolTip';\nimport { ReactComponent as IconWallet } from './assets/icon_acct_metamask.svg';\n\ninterface IAddQuotesButtonProps {\n tokenInfo: TokenInfo;\n}\n\nexport default function AddQuotesButton({ tokenInfo }: IAddQuotesButtonProps): JSX.Element {\n const nativeToken = useNativeToken(tokenInfo?.chainId);\n const { t } = useTranslation();\n const { data: connectorClient } = useWagmiConnectorClient();\n\n const onClickAddQuotes = useCallback(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (connectorClient) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n watchAsset(connectorClient as any, {\n /** Token type. */\n type: 'ERC20',\n options: tokenInfo,\n });\n }\n return;\n }, [connectorClient, tokenInfo]);\n if (tokenInfo.address === nativeToken?.address) {\n return <>;\n }\n return (\n \n \n \n \n \n );\n}\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconAcctFaucet = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_7458_52369)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M7.75 1.5C7.75 1.08579 8.08579 0.75 8.5 0.75H14.5C14.9142 0.75 15.25 1.08579 15.25 1.5C15.25 1.91421 14.9142 2.25 14.5 2.25H12.25V3.25H14.5C14.9142 3.25 15.25 3.58579 15.25 4V9C15.25 9.19891 15.171 9.38968 15.0303 9.53033C14.8897 9.67098 14.6989 9.75 14.5 9.75L7.25 9.75V12C7.25 12.4142 6.91421 12.75 6.5 12.75H1.5C1.08579 12.75 0.75 12.4142 0.75 12V6.95931C0.75 4.90792 2.41875 3.25 4.47102 3.25L10.75 3.25V2.25H8.5C8.08579 2.25 7.75 1.91421 7.75 1.5ZM11.4997 4.75L4.47102 4.75C3.24159 4.75 2.25 5.74193 2.25 6.95931V11.25H5.75V9.59186C5.75 8.84798 6.35462 8.25 7.0942 8.25L13.75 8.25V4.75H11.4997ZM0.75 14.5C0.75 14.0858 1.08579 13.75 1.5 13.75H6.5C6.91421 13.75 7.25 14.0858 7.25 14.5C7.25 14.9142 6.91421 15.25 6.5 15.25H1.5C1.08579 15.25 0.75 14.9142 0.75 14.5Z\",\n fill: \"#00BFBF\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_7458_52369\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconAcctFaucet);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_acct_faucet.dd22602888bd43eada4c46242e3b2511.svg\";","// import { ReactComponent as IconMint } from '@/assets/svg/icon_acct_mint.svg';\nimport './index.less';\n\nimport { useTranslation } from 'react-i18next';\n\nimport { Tooltip } from '@/components/ToolTip';\nimport { DAPP_CHAIN_CONFIGS } from '@/constants/chain';\n// import { useTestnetMint } from '@/hooks/useTestnet';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { TokenInfo } from '@/types/token';\nimport { isNativeTokenAddr } from '@/utils/token';\n\nimport { ReactComponent as FaucetToken } from './assets/icon_acct_faucet.svg';\n// import { ReactComponent as MintToken } from './assets/icon_acct_mint_linear.svg';\ninterface IMintTokenButtonProps {\n tokenInfo: TokenInfo;\n}\n\nexport default function MintTokenButton({ tokenInfo }: IMintTokenButtonProps): JSX.Element {\n const chainId = useChainId();\n const { t } = useTranslation();\n // const { onClickMintToken } = useTestnetMint(tokenInfo);\n\n if (chainId && isNativeTokenAddr(tokenInfo?.address)) {\n if (!DAPP_CHAIN_CONFIGS[chainId].network.testnet?.faucetLink) return <>;\n return (\n \n \n \n \n \n );\n }\n\n // if (chainId && DAPP_CHAIN_CONFIGS[chainId].network.testnet?.mintTokens.includes(tokenInfo.symbol)) {\n // return (\n // \n // \n // \n // \n // \n // );\n // }\n return <>;\n}\n","import './BalanceItem.less';\n\nimport classNames from 'classnames';\n\nimport AddQuotesButton from '@/components/AddQuotesButton';\nimport { ExternalLinkIconWithTooltip } from '@/components/Link';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport TokenLogo from '@/components/TokenLogo';\nimport { useNativeToken } from '@/features/chain/hook';\nimport { useChainId, useEtherscanLink, useUserAddr } from '@/hooks/web3/useChain';\nimport MintTokenButton from '@/pages/components/MintToken';\nimport USDPriceWrap from '@/pages/components/USDPriceWrap';\nimport { ITokenBalanceInfo } from '@/types/balance';\nimport { isTestnet } from '@/utils/chain';\nimport { isNativeTokenAddr } from '@/utils/token';\n\nexport type BalanceItemProps = {\n balanceInfo: ITokenBalanceInfo | undefined;\n};\n\nexport default function BalanceItem({ balanceInfo }: BalanceItemProps): JSX.Element {\n const chainId = useChainId();\n const account = useUserAddr();\n const nativeToken = useNativeToken(chainId);\n const getEtherscanLink = useEtherscanLink();\n const { deviceType } = useMediaQueryDevice();\n return balanceInfo ? (\n
\n
\n
\n \n {balanceInfo.symbol}\n
\n
\n {isTestnet(chainId) && }\n {isNativeTokenAddr(balanceInfo.address) ||\n (balanceInfo.address !== nativeToken?.address && )}\n\n \n
\n
\n
\n
\n {balanceInfo.balance?.formatNumberWithTooltip({ isShowTBMK: true })}\n
\n\n
\n \n
\n
\n
\n ) : (\n
\n );\n}\n","/**\n * @description Component-BalanceItemMobile\n */\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { FC } from 'react';\n\nimport AddQuotesButton from '@/components/AddQuotesButton';\nimport { ExternalLinkIconWithTooltip } from '@/components/Link';\nimport TokenLogo from '@/components/TokenLogo';\nimport { useNativeToken } from '@/features/chain/hook';\nimport { useChainId, useEtherscanLink, useUserAddr } from '@/hooks/web3/useChain';\nimport MintTokenButton from '@/pages/components/MintToken';\nimport USDPriceWrap from '@/pages/components/USDPriceWrap';\nimport { ITokenBalanceInfo } from '@/types/balance';\nimport { isTestnet } from '@/utils/chain';\nimport { isNativeTokenAddr } from '@/utils/token';\ninterface IPropTypes {\n balanceInfo: ITokenBalanceInfo | undefined;\n className?: string;\n}\nconst BalanceItemMobile: FC = function ({ balanceInfo }) {\n const chainId = useChainId();\n const nativeToken = useNativeToken(chainId);\n const getEtherscanLink = useEtherscanLink();\n const userAddr = useUserAddr();\n if (!balanceInfo) {\n return <>;\n }\n return (\n
\n
\n \n
\n {balanceInfo.balance?.formatNumberWithTooltip({ isShowTBMK: true })}\n
\n\n {balanceInfo.symbol}\n
\n
\n \n
\n \n {isTestnet(chainId) && }\n {isNativeTokenAddr(balanceInfo.address) ||\n (balanceInfo.address !== nativeToken?.address && )}\n\n \n
\n
\n );\n};\n\nexport default BalanceItemMobile;\n","import './index.less';\n\nimport classNames from 'classnames';\nimport { useMemo } from 'react';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { CHAIN_ID } from '@/constants/chain';\n\nimport { useBackendChainConfig } from '@/features/config/hook';\nimport { ITokenBalanceInfo } from '@/types/balance';\nimport { useTokenBalanceList } from '../hook';\nimport BalanceItem from './BalanceItem';\nimport BalanceItemMobile from './BalanceItemMobile';\ninterface IProps {\n chainId: CHAIN_ID | undefined;\n}\nexport default function BalanceList({ chainId }: IProps): JSX.Element {\n const tokenBalanceList = useTokenBalanceList(chainId);\n const dappChainConfig = useBackendChainConfig(chainId);\n const { isMobile, deviceType } = useMediaQueryDevice();\n const tokenListFiltered = useMemo(() => {\n const list = (dappChainConfig?.balanceDisplayList || []).reduce(\n (acc, symbol) => {\n const token = tokenBalanceList.find((token) => token.symbol === symbol);\n if (token) {\n acc.push(token);\n }\n return acc;\n },\n\n [] as ITokenBalanceInfo[],\n );\n\n return list.sort((a, b) => {\n if (a.balance.gt(0) && b.balance.eq(0)) return -1;\n if (a.balance.eq(0) && b.balance.gt(0)) return 1;\n return 0;\n });\n }, [dappChainConfig, tokenBalanceList]);\n return (\n
\n {tokenListFiltered.map((balanceInfo) =>\n isMobile ? (\n \n ) : (\n \n ),\n )}\n {!isMobile && tokenListFiltered.length % 2 !== 0 && }\n
\n );\n}\n","/**\n * @description Component-DisconnectBtn\n */\nimport classNames from 'classnames';\nimport './index.less';\n\nimport { Button } from '@/components/Button';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { useLoginInOrOutPrivyWallet } from '@/connectors/privy/usePrivyWallet';\nimport { GlobalModalType } from '@/constants';\nimport { WALLET_TYPE } from '@/constants/storage';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { useWalletType } from '@/features/wallet/hook';\nimport { useWagmiDisconnect } from '@/hooks/web3/useWagami';\nimport { IButtonProps } from '@/types/button';\nimport { WalletType } from '@/types/wallet';\nimport { FC, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nconst DisconnectBtn: FC = function (props) {\n const { t } = useTranslation();\n const walletType = useWalletType();\n const { logout } = useLoginInOrOutPrivyWallet();\n const disconnect = useWagmiDisconnect();\n const { deviceType } = useMediaQueryDevice();\n const openModal = useToggleModal(GlobalModalType.Wallet);\n\n const onClickDisconnect = useCallback(() => {\n // disconnect wallet\n if (walletType === WalletType.PRIVY) {\n logout();\n }\n localStorage.removeItem(WALLET_TYPE);\n disconnect();\n openModal(true);\n }, [disconnect, logout, openModal, walletType]);\n\n return (\n \n {t('modal.userAddrModal.disconnectBtn.btn')}\n \n );\n};\n\nexport default DisconnectBtn;\n","import './index.less';\n\n// import { disconnect } from '@wagmi/core';\nimport classnames from 'classnames';\nimport { useTranslation } from 'react-i18next';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\n\nimport DisconnectBtn from '@/features/user/UserAddressModal/DisconnectBtn';\nimport { useWagmiAccount } from '@/hooks/web3/useWagami';\nimport { WalletType } from '@/types/wallet';\nimport WalletBrand from '../WalletBrand';\nimport { useWalletType } from '../hook';\n\nexport default function SwitchWalletButton(): JSX.Element | null {\n const walletType = useWalletType();\n const { deviceType } = useMediaQueryDevice();\n const { t } = useTranslation();\n const { isConnected } = useWagmiAccount();\n\n if (!isConnected && walletType !== WalletType.PRIVY) return null;\n\n return (\n
\n
\n {t('modal.userAddrModal.switchWBtn.ConecWith')}\n {walletType && }\n
\n
\n {/* {isMobile && } */}\n {\n \n // \n }\n
\n
\n );\n}\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconAcctCopy = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5312_60964)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M2.91669 3.33337C2.91669 1.81459 4.1479 0.583374 5.66669 0.583374H12.6667C14.1855 0.583374 15.4167 1.81459 15.4167 3.33337V10.3334C15.4167 11.8522 14.1855 13.0834 12.6667 13.0834H5.66669C4.1479 13.0834 2.91669 11.8522 2.91669 10.3334V3.33337ZM5.66669 2.08337C4.97633 2.08337 4.41669 2.64302 4.41669 3.33337V10.3334C4.41669 11.0237 4.97633 11.5834 5.66669 11.5834H12.6667C13.357 11.5834 13.9167 11.0237 13.9167 10.3334V3.33337C13.9167 2.64302 13.357 2.08337 12.6667 2.08337H5.66669ZM1.33337 4.91663C1.74759 4.91663 2.08337 5.25241 2.08337 5.66663V10.6666C2.08337 12.4616 3.53845 13.9166 5.33337 13.9166H9.33337C9.74759 13.9166 10.0834 14.2524 10.0834 14.6666C10.0834 15.0808 9.74759 15.4166 9.33337 15.4166H5.33337C2.71002 15.4166 0.583374 13.29 0.583374 10.6666V5.66663C0.583374 5.25241 0.91916 4.91663 1.33337 4.91663Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5312_60964\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconAcctCopy);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_acct_copy.c75bdca30b2b90a149bec63203215fbc.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconExport16 = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.66659 2.75C4.51188 2.75 4.3635 2.81146 4.25411 2.92085C4.14471 3.03025 4.08325 3.17862 4.08325 3.33333V12.6667C4.08325 12.8214 4.14471 12.9697 4.25411 13.0791C4.3635 13.1885 4.51188 13.25 4.66659 13.25H6.66659C7.0808 13.25 7.41659 13.5858 7.41659 14C7.41659 14.4142 7.0808 14.75 6.66659 14.75H4.66659C4.11405 14.75 3.58415 14.5305 3.19345 14.1398C2.80275 13.7491 2.58325 13.2192 2.58325 12.6667V3.33333C2.58325 2.7808 2.80275 2.2509 3.19345 1.86019C3.58415 1.46949 4.11405 1.25 4.66659 1.25H9.33325C9.53216 1.25 9.72293 1.32902 9.86358 1.46967L13.1969 4.803C13.3376 4.94366 13.4166 5.13442 13.4166 5.33333V7.66667C13.4166 8.08088 13.0808 8.41667 12.6666 8.41667C12.2524 8.41667 11.9166 8.08088 11.9166 7.66667V5.64399L9.02259 2.75H4.66659ZM11.4696 10.1363C11.7625 9.84344 12.2374 9.84344 12.5302 10.1363L14.5302 12.1363C14.8231 12.4292 14.8231 12.9041 14.5302 13.197L12.5302 15.197C12.2374 15.4899 11.7625 15.4899 11.4696 15.197C11.1767 14.9041 11.1767 14.4292 11.4696 14.1363L12.1893 13.4167H9.33325C8.91904 13.4167 8.58325 13.0809 8.58325 12.6667C8.58325 12.2525 8.91904 11.9167 9.33325 11.9167H12.1893L11.4696 11.197C11.1767 10.9041 11.1767 10.4292 11.4696 10.1363Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconExport16);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_export_16.70f570fb29063aa449f0cc44543b5413.svg\";","/**\n * @description Component-Copied\n */\nimport './index.less';\n\nimport { FC } from 'react';\n\nimport useCopyClipboard from '@/hooks/useCopyClipboard';\nimport { isAddress } from '@/utils/address';\n\nimport classNames from 'classnames';\nimport { Tooltip } from '../ToolTip';\nimport { ReactComponent as IconAddrCopy } from './assets/icon_acct_copy.svg';\n\ninterface IPropTypes {\n title: string;\n copiedTitle: string;\n copyValue: string;\n showTitle?: boolean;\n checkAddress?: boolean;\n showTooltip?: boolean;\n onClicked?: () => void;\n className?: string;\n}\nconst Copied: FC = function ({\n title,\n copiedTitle,\n copyValue,\n showTitle,\n checkAddress = true,\n showTooltip = true,\n onClicked,\n className,\n}) {\n const [copied, setCopied] = useCopyClipboard(2000);\n\n return (\n
\n \n {\n setCopied(checkAddress ? isAddress(copyValue || '') || '' : copyValue);\n onClicked && onClicked();\n }}>\n \n {showTitle ? (copied ? copiedTitle : title) : ''}\n \n \n
\n );\n};\n\nexport default Copied;\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconAcctPrivyQr = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_19509_211154)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M1.04668 1.04729C1.34348 0.750303 1.74612 0.583374 2.16606 0.583374H3.83168C4.25162 0.583374 4.65427 0.750303 4.95107 1.04729C5.24785 1.34425 5.41449 1.74693 5.41449 2.16671V3.83337C5.41449 4.25314 5.24785 4.65582 4.95107 4.95279C4.65427 5.24977 4.25162 5.4167 3.83168 5.4167H2.16606C1.74612 5.4167 1.34348 5.24977 1.04668 4.95279C0.749899 4.65582 0.583252 4.25314 0.583252 3.83337V2.16671C0.583252 1.74693 0.749899 1.34425 1.04668 1.04729ZM2.16606 2.08337C2.14425 2.08337 2.12324 2.09204 2.10767 2.10762C2.09209 2.12321 2.08325 2.14445 2.08325 2.16671V3.83337C2.08325 3.85562 2.09209 3.87687 2.10767 3.89246C2.12324 3.90803 2.14425 3.9167 2.16606 3.9167H3.83168C3.8535 3.9167 3.87451 3.90803 3.89007 3.89246C3.90566 3.87687 3.91449 3.85562 3.91449 3.83337V2.16671C3.91449 2.14445 3.90566 2.12321 3.89007 2.10762C3.87451 2.09204 3.85349 2.08337 3.83168 2.08337H2.16606ZM7.99574 0.583374C8.40995 0.583374 8.74574 0.91916 8.74574 1.33337V2.16671C8.74574 2.58092 8.40995 2.91671 7.99574 2.91671C7.58152 2.91671 7.24574 2.58092 7.24574 2.16671V1.33337C7.24574 0.91916 7.58152 0.583374 7.99574 0.583374ZM11.0404 1.04729C11.3372 0.750303 11.7399 0.583374 12.1598 0.583374H13.8254C14.2453 0.583374 14.648 0.750303 14.9448 1.04729C15.2416 1.34426 15.4082 1.74693 15.4082 2.16671V3.83337C15.4082 4.25314 15.2416 4.65582 14.9448 4.95279C14.648 5.24977 14.2453 5.4167 13.8254 5.4167H12.1598C11.7399 5.4167 11.3372 5.24977 11.0404 4.95279C10.7436 4.65582 10.577 4.25314 10.577 3.83337V2.16671C10.577 1.74693 10.7436 1.34426 11.0404 1.04729ZM12.1598 2.08337C12.138 2.08337 12.117 2.09204 12.1014 2.10762C12.0858 2.12321 12.077 2.14445 12.077 2.16671V3.83337C12.077 3.85562 12.0858 3.87687 12.1014 3.89246C12.117 3.90803 12.138 3.9167 12.1598 3.9167H13.8254C13.8472 3.9167 13.8682 3.90803 13.8838 3.89246C13.8994 3.87687 13.9082 3.85562 13.9082 3.83337V2.16671C13.9082 2.14445 13.8994 2.12321 13.8838 2.10762C13.8682 2.09204 13.8472 2.08337 13.8254 2.08337H12.1598ZM7.99574 4.75003C8.40995 4.75003 8.74574 5.08582 8.74574 5.50003V7.25002H11.3353C11.7495 7.25002 12.0853 7.58581 12.0853 8.00002C12.0853 8.41424 11.7495 8.75002 11.3353 8.75002H7.99574C7.58152 8.75002 7.24574 8.41424 7.24574 8.00002V5.50003C7.24574 5.08582 7.58152 4.75003 7.99574 4.75003ZM0.583252 8.00002C0.583252 7.58581 0.919038 7.25002 1.33325 7.25002H4.66449C5.07871 7.25002 5.41449 7.58581 5.41449 8.00002C5.41449 8.41424 5.07871 8.75002 4.66449 8.75002H1.33325C0.919038 8.75002 0.583252 8.41424 0.583252 8.00002ZM13.9082 8.00002C13.9082 7.58581 14.244 7.25002 14.6582 7.25002H14.6666C15.0808 7.25002 15.4166 7.58581 15.4166 8.00002C15.4166 8.41424 15.0808 8.75002 14.6666 8.75002H14.6582C14.244 8.75002 13.9082 8.41424 13.9082 8.00002ZM1.04668 11.0473C1.34348 10.7503 1.74612 10.5833 2.16606 10.5833H3.83168C4.25162 10.5833 4.65427 10.7503 4.95107 11.0473C5.24785 11.3442 5.41449 11.7469 5.41449 12.1667V13.8333C5.41449 14.2531 5.24785 14.6558 4.95107 14.9528C4.65427 15.2497 4.25162 15.4167 3.83168 15.4167H2.16606C1.74612 15.4167 1.34348 15.2497 1.04668 14.9528C0.749898 14.6558 0.583252 14.2531 0.583252 13.8333V12.1667C0.583252 11.7469 0.749898 11.3442 1.04668 11.0473ZM2.16606 12.0833C2.14425 12.0833 2.12324 12.092 2.10767 12.1076C2.09209 12.1232 2.08325 12.1444 2.08325 12.1667V13.8333C2.08325 13.8556 2.09209 13.8768 2.10767 13.8924C2.12324 13.908 2.14425 13.9167 2.16606 13.9167H3.83168C3.8535 13.9167 3.87451 13.908 3.89007 13.8924C3.90566 13.8768 3.91449 13.8556 3.91449 13.8333V12.1667C3.91449 12.1444 3.90566 12.1232 3.89007 12.1076C3.87451 12.092 3.8535 12.0833 3.83168 12.0833H2.16606ZM7.24574 11.3333C7.24574 10.9191 7.58152 10.5833 7.99574 10.5833H9.66136C10.0756 10.5833 10.4114 10.9191 10.4114 11.3333C10.4114 11.7476 10.0756 12.0833 9.66136 12.0833H8.74574V14.6667C8.74574 15.0809 8.40995 15.4167 7.99574 15.4167C7.58152 15.4167 7.24574 15.0809 7.24574 14.6667V11.3333ZM12.2426 11.3333C12.2426 10.9191 12.5784 10.5833 12.9926 10.5833H14.6582C15.0724 10.5833 15.4082 10.9191 15.4082 11.3333C15.4082 11.7476 15.0724 12.0833 14.6582 12.0833H12.9926C12.5784 12.0833 12.2426 11.7476 12.2426 11.3333ZM10.577 14.6667C10.577 14.2525 10.9128 13.9167 11.327 13.9167H14.6582C15.0724 13.9167 15.4082 14.2525 15.4082 14.6667C15.4082 15.0809 15.0724 15.4167 14.6582 15.4167H11.327C10.9128 15.4167 10.577 15.0809 10.577 14.6667Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_19509_211154\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconAcctPrivyQr);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_acct_privy_qr.3c8e76666b9fd2e593a930f5f2df01a3.svg\";","/**\n * @description Component-PrivyAccountDetailModalConent\n */\nimport './index.less';\n\nimport './index.less';\n\nimport classnames from 'classnames';\n\nimport Copied from '@/components/Copied';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { usePrivy } from '@privy-io/react-auth';\nimport { QRCodeSVG } from 'qrcode.react';\nimport { FC, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { usePrivyUserInfo, usePrivyWalletAddress } from '../../usePrivyWallet';\nimport { ReactComponent as IconExport } from './assets/icon_export_16.svg';\n\nexport const PrivyAccountDetailModalContent: FC = function () {\n const user = usePrivyUserInfo();\n const { t } = useTranslation();\n const { deviceType } = useMediaQueryDevice();\n const privyAddr = usePrivyWalletAddress();\n const { exportWallet } = usePrivy();\n const privyEmail = useMemo(() => {\n const linkedAccounts = user?.linkedAccounts;\n if (linkedAccounts?.length) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const linkedAccount = linkedAccounts[0] as any;\n return linkedAccount?.address || linkedAccount?.email;\n }\n return user?.email?.address;\n }, [user?.email, user?.linkedAccounts]);\n\n if (!privyAddr) return null;\n return (\n
\n
\n

{privyEmail}

\n
\n {privyAddr}\n \n
\n
\n
\n \n
\n {\n try {\n exportWallet();\n } catch (error) {\n console.log('🚀 ~ onClick={ ~ error:', error);\n }\n }}>\n \n {'Export Embedded Wallet'}\n \n
\n );\n};\n","/**\n * @description Component-PrivyAccountDetailModal\n */\nimport Modal from '@/components/Modal';\nimport classnames from 'classnames';\nimport './index.less';\n\nimport Drawer from '@/components/Drawer';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { IModalProps } from '@/types/modal';\nimport _ from 'lodash';\nimport { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { PrivyAccountDetailModalContent } from './PrivyAccountDetailModalContent';\n\nconst PrivyAccountDetailModal: FC = function (props) {\n const { isMobile } = useMediaQueryDevice();\n const { t } = useTranslation();\n return isMobile ? (\n \n \n \n ) : (\n \n <>\n \n \n \n );\n};\n\nexport default PrivyAccountDetailModal;\n","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconAcctNew = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5312_60880)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.354 1.33331C10.354 0.919099 10.6897 0.583313 11.104 0.583313H14.6666C15.0808 0.583313 15.4166 0.919099 15.4166 1.33331V4.89598C15.4166 5.31019 15.0808 5.64598 14.6666 5.64598C14.2524 5.64598 13.9166 5.31019 13.9166 4.89598V3.14397L9.19696 7.86364C8.90406 8.15654 8.42919 8.15654 8.1363 7.86364C7.8434 7.57075 7.8434 7.09588 8.1363 6.80298L12.856 2.08331H11.104C10.6897 2.08331 10.354 1.74753 10.354 1.33331Z\",\n fill: \"#1F292E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.4425 2.19863C3.61827 2.30941 3.16568 2.51413 2.83949 2.83973C2.5141 3.16549 2.30937 3.61791 2.19857 4.4423C2.08484 5.28848 2.08325 6.40745 2.08325 7.99998C2.08325 9.59251 2.08484 10.7116 2.19857 11.5578C2.30941 12.3825 2.51422 12.8345 2.8394 13.1595L2.83958 13.1596C3.16538 13.4854 3.61778 13.6904 4.4423 13.8013C5.28844 13.9151 6.40738 13.9166 7.99992 13.9166C9.59246 13.9166 10.7116 13.9151 11.5577 13.8013C12.3823 13.6904 12.8342 13.4854 13.1592 13.16L13.1598 13.1595C13.4854 12.8341 13.6903 12.382 13.8012 11.5575C13.915 10.7115 13.9166 9.59253 13.9166 7.99998C13.9166 7.58577 14.2524 7.24998 14.6666 7.24998C15.0808 7.24998 15.4166 7.58577 15.4166 7.99998V8.0555C15.4166 9.5797 15.4166 10.7998 15.2878 11.7575C15.1545 12.7483 14.8711 13.5699 14.2201 14.2205C13.5698 14.8713 12.7482 15.1546 11.7576 15.2879C10.7999 15.4167 9.57964 15.4167 8.05544 15.4166H7.9444C6.4202 15.4167 5.20013 15.4167 4.24237 15.2879C3.25148 15.1546 2.42994 14.8712 1.7791 14.2205C1.12829 13.5701 0.845097 12.7484 0.711936 11.7576C0.583219 10.7999 0.583234 9.57969 0.583252 8.05544V7.94452C0.583234 6.42028 0.583219 5.20023 0.711936 4.2425C0.845109 3.25161 1.1283 2.43005 1.77874 1.77916L1.77928 1.77862C2.43041 1.12838 3.2518 0.845182 4.24268 0.711998C5.20033 0.58328 6.42022 0.583295 7.94445 0.583313L7.99992 0.583314C8.41413 0.583314 8.74992 0.9191 8.74992 1.33331C8.74992 1.74753 8.41413 2.08331 7.99992 2.08331C6.40739 2.08331 5.28859 2.08491 4.4425 2.19863Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5312_60880\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconAcctNew);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_acct_new.e6419135ddef66f1d0418e54c5e5509f.svg\";","/**\n * @description Component-PrivyAccountDetailBtn\n */\nimport './index.less';\n\nimport { FC, useState } from 'react';\n\nimport { useWalletType } from '@/features/wallet/hook';\nimport { WalletType } from '@/types/wallet';\nimport PrivyAccountDetailModal from '../PrivyAccountDetailModal';\nimport { ReactComponent as IconAcctPrivyQr } from './assets/icon_acct_privy_qr.svg';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst PrivyAccountDetailBtn: FC = function ({}) {\n const [isShowModal, setIsShowModal] = useState(false);\n const walletType = useWalletType();\n\n if (walletType !== WalletType.PRIVY) {\n return null;\n }\n\n return (\n <>\n {\n setIsShowModal(true);\n e.stopPropagation();\n }}>\n \n \n {\n setIsShowModal(false);\n }}\n onOk={() => {\n setIsShowModal(false);\n }}\n />\n \n );\n};\n\nexport default PrivyAccountDetailBtn;\n","import './UserAddress.less';\n\nimport { useTranslation } from 'react-i18next';\n\nimport Copied from '@/components/Copied';\nimport { ExternalLinkIconWithTooltip } from '@/components/Link';\nimport { useChainId, useEtherscanLink, useUserAddr } from '@/hooks/web3/useChain';\nimport { shortenAddress } from '@/utils/address';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport PrivyAccountDetailBtn from '@/connectors/privy/PrivyAccountDetailBtn';\nimport classNames from 'classnames';\nimport { StatusIcon } from '../UserAddressStatus/StatusIcon';\nimport { ReactComponent as IconAcctLink } from './assets/icon_acct_new.svg';\n\nexport default function UserAddress(): JSX.Element | null {\n const chainId = useChainId();\n const account = useUserAddr();\n const getEtherscanLink = useEtherscanLink();\n const { t } = useTranslation();\n const { deviceType, isMobile } = useMediaQueryDevice();\n return (\n
\n
\n \n {account && shortenAddress(account, true)} \n
\n
\n {account && (\n \n )}\n {chainId && account && (\n }\n href={chainId && getEtherscanLink(account || '', 'address')}\n />\n )}\n \n
\n
\n );\n}\n","/**\n * @description Component-UserAddressDrawer\n */\nimport './index.less';\n\nimport { FC } from 'react';\n\nimport Drawer from '@/components/Drawer';\nimport { GlobalModalType } from '@/constants';\nimport BalanceList from '@/features/balance/BalanceList';\nimport { useModalOpen, useToggleModal } from '@/features/global/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\n\nimport SwitchWalletButton from '@/features/wallet/SwitchWalletButton';\nimport UserAddress from '../../UserAddressModal/UserAddress';\ninterface IPropTypes {\n className?: string;\n}\nconst UserAddressDrawer: FC = function () {\n const chainId = useChainId();\n const isShowUserModal = useModalOpen(GlobalModalType.Account);\n const toggleUserAddressModal = useToggleModal(GlobalModalType.Account);\n return (\n \n \n \n }\n style={{ top: isShowUserModal ? 64 : 0, contentVisibility: isShowUserModal ? 'auto' : 'hidden' }}\n onClose={() => {\n toggleUserAddressModal(false);\n }}\n className=\"syn-user-address-drawer\"\n open={isShowUserModal}\n footer={\n
\n \n
\n }\n key={'header-drawer'}>\n \n \n );\n};\n\nexport default UserAddressDrawer;\n","import './index.less';\n\nimport classNames from 'classnames';\n\nimport { Button } from '@/components/Button';\nimport { Mobile, useMediaQueryDevice } from '@/components/MediaQuery';\nimport { GlobalModalType } from '@/constants';\nimport { useToggleModal } from '@/features/global/hooks';\nimport { useGa } from '@/hooks/useGa';\nimport { IButtonProps } from '@/types/button';\nimport { GaCategory } from '@/utils/analytics';\n\nimport { useDappChainConfig } from '@/hooks/web3/useChain';\nimport UserAddressStatus from '../UserAddressStatus';\nimport UserAddressDrawer from './UserAddressDrawer';\n\nexport default function UserAddressButton(props: IButtonProps): JSX.Element | null {\n const toggleUserAddressModal = useToggleModal(GlobalModalType.Account);\n const gaEvent = useGa();\n const config = useDappChainConfig();\n const { deviceType } = useMediaQueryDevice();\n return (\n <>\n {\n toggleUserAddressModal();\n gaEvent({\n category: GaCategory.HEADER,\n action: 'click user address status',\n });\n }}\n className={classNames('user-address-btn', deviceType)}>\n \n \n\n \n \n \n \n );\n}\n","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconWalletMobile = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M9.9183 2.875H13.0807C14.8972 2.87497 16.3741 2.87494 17.5385 3.03154C18.7525 3.19482 19.7939 3.54671 20.6233 4.37685C21.6017 5.35454 21.9221 6.63673 22.0429 8.17194C22.6327 8.50772 23.0659 9.10633 23.1196 9.85437L23.1204 9.86482C23.1247 9.9338 23.1246 10.0083 23.1245 10.0659C23.1245 10.0718 23.1245 10.0775 23.1245 10.083V13.917C23.1245 13.9225 23.1245 13.9282 23.1245 13.9341C23.1246 13.9917 23.1246 14.0662 23.1203 14.1352L23.1198 14.1434C23.0674 14.8935 22.6331 15.4922 22.0432 15.8279C21.9228 17.3638 21.6016 18.6456 20.6233 19.6232C19.7939 20.4533 18.7525 20.8052 17.5385 20.9685C16.3741 21.1251 14.8972 21.125 13.0807 21.125H9.91832C8.10187 21.125 6.62492 21.1251 5.46056 20.9685C4.24687 20.8052 3.20568 20.4535 2.37636 19.6238C1.54622 18.7944 1.19433 17.753 1.03105 16.539C0.87445 15.3746 0.874478 13.8977 0.874513 12.0812V11.9188C0.874478 10.1023 0.87445 8.62541 1.03105 7.46104C1.19431 6.24719 1.54612 5.20588 2.37602 4.37651C3.2054 3.54661 4.24671 3.1948 5.46056 3.03154C6.62492 2.87494 8.10186 2.87497 9.9183 2.875ZM19.7524 16.125H18.2295C15.9051 16.125 13.8745 14.3554 13.8745 12C13.8745 9.64464 15.9041 7.875 18.2305 7.875H19.7519C19.6264 6.84172 19.3936 6.32863 19.0325 5.96799C18.6909 5.62613 18.203 5.39118 17.2386 5.26146C16.2417 5.12739 14.9168 5.125 12.9995 5.125H9.99951C8.0822 5.125 6.7573 5.12739 5.76047 5.26146C4.79599 5.39118 4.30892 5.6253 3.96735 5.96716C3.62549 6.30872 3.39069 6.79648 3.26097 7.76096C3.1269 8.75779 3.12451 10.0827 3.12451 12C3.12451 13.9173 3.1269 15.2422 3.26097 16.239C3.39069 17.2035 3.62481 17.6906 3.96667 18.0322C4.30824 18.374 4.79599 18.6088 5.76047 18.7385C6.7573 18.8726 8.0822 18.875 9.99951 18.875H12.9995C14.9168 18.875 16.2417 18.8726 17.2386 18.7385C18.203 18.6088 18.6901 18.3747 19.0317 18.0328C19.3929 17.6721 19.6271 17.1579 19.7524 16.125ZM20.8745 10.1251L20.8325 10.125H18.2305C16.9869 10.125 16.1245 11.0414 16.1245 12C16.1245 12.9586 16.9879 13.875 18.2295 13.875H20.8325L20.8745 13.8749V10.1251ZM6.99951 7.875C7.62083 7.875 8.12451 8.37868 8.12451 9V15C8.12451 15.6213 7.62083 16.125 6.99951 16.125C6.37819 16.125 5.87451 15.6213 5.87451 15V9C5.87451 8.37868 6.37819 7.875 6.99951 7.875Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconWalletMobile);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_wallet_mobile.f8a6ee9e7d2606b2927dfcb80b877aca.svg\";","import './index.less';\n\nimport { ButtonProps } from 'antd';\n// import { ethers } from 'ethers';\nimport { useTranslation } from 'react-i18next';\n\nimport { ReactComponent as WalletIcon } from '@/assets/svg/icon_wallet_mobile.svg';\n// import { ReactComponent as IconLink } from '@/assets/svg/icon_link_16.svg';\nimport { Button } from '@/components/Button';\nimport { NetworkButtonBorder } from '@/components/Button/NetworkButton';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { Tooltip } from '@/components/ToolTip';\nimport { GlobalModalType } from '@/constants';\nimport { fetchIpIsBlocked } from '@/features/global/actions';\nimport { useIsIpBlocked, useModalOpen, useToggleModal } from '@/features/global/hooks';\nimport { useAppDispatch } from '@/hooks';\nimport { useGa } from '@/hooks/useGa';\nimport { GaCategory } from '@/utils/analytics';\nimport classNames from 'classnames';\n\nexport default function WalletConnectButton({\n desktopOnly,\n ...props\n}: ButtonProps & { disableIcon?: boolean; desktopOnly?: boolean }): JSX.Element {\n const isShowModal = useModalOpen(GlobalModalType.Wallet);\n const toggleModal = useToggleModal(GlobalModalType.Wallet);\n const gaEvent = useGa();\n const { isMobile } = useMediaQueryDevice();\n const { t } = useTranslation();\n const dispatch = useAppDispatch();\n const isIpBlocked = useIsIpBlocked();\n\n return isMobile && !desktopOnly ? (\n \n {\n const ipBlocked = await dispatch(fetchIpIsBlocked()).unwrap();\n if (ipBlocked) {\n return;\n }\n toggleModal();\n gaEvent({\n category: GaCategory.HEADER,\n action: 'Wallet-Click on Connect Wallet',\n label: {\n modalOpen: isShowModal,\n },\n });\n }}\n className={classNames('wallet-connect-btn-mobile', { disabled: isIpBlocked })}\n type=\"text\"\n icon={}\n />\n \n ) : (\n \n {\n const ipBlocked = await dispatch(fetchIpIsBlocked()).unwrap();\n if (ipBlocked) {\n return;\n }\n toggleModal();\n gaEvent({\n category: GaCategory.HEADER,\n action: 'Wallet-Click on Connect Wallet',\n label: {\n modalOpen: isShowModal,\n },\n });\n }}\n className=\"wallet-connect-btn\">\n {/* {!props.disableIcon && } */}\n {t('header.menu.connectWallet')}\n \n \n );\n}\n","// import { useAccountWrap } from '@/features/global/hooks';\nimport UserAddressButton from '@/features/user/UserAddressButton';\nimport WalletConnectButton from '@/features/wallet/WalletConnectButton';\nimport { useAppIsActive } from '@/features/web3/hook';\nimport { useWalletAccount, useWalletIsActive } from '@/hooks/web3/useWalletNetwork';\n\nfunction Web3StatusInner({ desktopOnly }: { desktopOnly?: boolean }) {\n // const isWrongNetwork = useWalletIsWrongNetwork();\n const isActive = useWalletIsActive();\n // const walletProvider = useWalletProvider();\n const account = useWalletAccount();\n\n // const walletConnector = useWalletConnector();\n // const { switchChain: switchNetwork } = useSwitchNetwork(walletConnector);\n // const appChainId = useAppChainId();\n // const accountWrap = useAccountWrap();\n\n // const toggleWalletModal = useWalletModalToggle();\n // const toggleWalletModal = () => {\n // // setIsShowUserModal(true);\n // };\n if (!isActive || !account) {\n return ;\n }\n // else if (isWrongNetwork) {\n // return (\n // {\n // walletProvider && appChainId && switchNetwork(appChainId);\n // }\n // : toggleWalletModal\n // }\n // />\n // );\n // }\n else if (account) {\n return ;\n }\n return null;\n}\n\nexport default function Web3Status({ desktopOnly }: { desktopOnly?: boolean }): JSX.Element | null {\n const isActive = useWalletIsActive();\n const appIsActive = useAppIsActive();\n\n if (!appIsActive && !isActive) {\n return null;\n }\n\n return (\n <>\n \n \n );\n}\n","var _circle, _path, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconIpBlcok = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 40,\n height: 40,\n viewBox: \"0 0 40 40\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 20,\n cy: 20,\n r: 19.5,\n fill: \"url(#paint0_linear_22480_154332)\",\n stroke: \"url(#paint1_linear_22480_154332)\"\n })), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M25.75 22.5C25.75 22.78 25.53 23 25.25 23C23.74 23 22.48 24.12 22.28 25.58C22.25 25.82 22.03 26 21.79 26C21.49 26 21.25 25.73 21.29 25.43C21.4193 24.5644 21.8269 23.7645 22.4511 23.1511C23.0754 22.5377 23.8823 22.1442 24.75 22.03V11.25C24.75 10.9185 24.6183 10.6005 24.3839 10.3661C24.1495 10.1317 23.8315 10 23.5 10C23.1685 10 22.8505 10.1317 22.6161 10.3661C22.3817 10.6005 22.25 10.9185 22.25 11.25V18.5C22.25 18.78 22.03 19 21.75 19C21.47 19 21.25 18.78 21.25 18.5V9.25C21.25 8.91848 21.1183 8.60054 20.8839 8.36612C20.6495 8.1317 20.3315 8 20 8C19.6685 8 19.3505 8.1317 19.1161 8.36612C18.8817 8.60054 18.75 8.91848 18.75 9.25V18.5C18.75 18.78 18.53 19 18.25 19C17.97 19 17.75 18.78 17.75 18.5V10.75C17.75 10.4185 17.6183 10.1005 17.3839 9.86612C17.1495 9.6317 16.8315 9.5 16.5 9.5C16.1685 9.5 15.8505 9.6317 15.6161 9.86612C15.3817 10.1005 15.25 10.4185 15.25 10.75V19.5C15.25 19.78 15.03 20 14.75 20C14.47 20 14.25 19.78 14.25 19.5V13.75C14.25 13.4185 14.1183 13.1005 13.8839 12.8661C13.6495 12.6317 13.3315 12.5 13 12.5C12.6685 12.5 12.3505 12.6317 12.1161 12.8661C11.8817 13.1005 11.75 13.4185 11.75 13.75V23.75C11.75 28.31 15.44 32 20 32C24.56 32 28.25 28.31 28.25 23.75V17.25C28.25 16.9185 28.1183 16.6005 27.8839 16.3661C27.6495 16.1317 27.3315 16 27 16C26.6685 16 26.3505 16.1317 26.1161 16.3661C25.8817 16.6005 25.75 16.9185 25.75 17.25V22.5Z\",\n fill: \"white\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_22480_154332\",\n x1: 0,\n y1: 0,\n x2: 40,\n y2: 40,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0.2\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_22480_154332\",\n x1: 0,\n y1: 0,\n x2: 40,\n y2: 40,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"white\",\n stopOpacity: 0.2\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"white\",\n stopOpacity: 0\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconIpBlcok);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_ip_blcok.83ba90241e4facb9d9f6d60a8a381d51.svg\";","/**\n * @description Component-IpBlockedModal\n */\nimport { useIsIpBlocked } from '@/features/global/hooks';\nimport './index.less';\n\nimport classNames from 'classnames';\nimport { FC } from 'react';\nimport { Trans } from 'react-i18next';\nimport { useMediaQueryDevice } from '../MediaQuery';\nimport { ReactComponent as BlockIcon } from './assets/icon_ip_blcok.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst IpBlocker: FC = function ({}) {\n const { isMobile, deviceType } = useMediaQueryDevice();\n const ipBlocked = useIsIpBlocked();\n if (!ipBlocked) {\n return null;\n }\n return (\n
\n {!isMobile && }\n
\n ,\n }}\n />\n
\n
\n // }\n // className=\"syn-ip-blocker\"\n // open={modalOpen}\n // onCancel={() => toggleModal()}>\n //
\n //
{t('common.ipBlocker.p1')}
\n //
{t('common.ipBlocker.p2')}
\n //
{t('common.ipBlocker.p3')}
\n //
\n // \n );\n};\n\nexport default IpBlocker;\n","/**\n * @description Component-NetwerkSwitchDrawer\n */\nimport './index.less';\n\nimport React, { FC, useMemo, useState } from 'react';\n\nimport { ReactComponent as DownIcon } from '@/assets/svg/icon_chevron_down.svg';\nimport { Button } from '@/components/Button';\nimport DrawerSelector from '@/components/Drawer/DrawerSelector';\nimport { CHAIN_ID, DAPP_CHAIN_CONFIGS, DISPLAYABLE_CHAIN_ID } from '@/constants/chain';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { useSwitchNetwork } from '@/hooks/web3/useSwitchConnectorNetwork';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst NetworkSwitchDrawer: FC = function () {\n const [openDrawer, setOpenDrawer] = useState(false);\n const chainId = useChainId();\n const { switchAppNetwork, switchWalletNetwork } = useSwitchNetwork();\n const selectOptions = useMemo(\n () =>\n DISPLAYABLE_CHAIN_ID.map((selectChainId: CHAIN_ID) => {\n return {\n key: selectChainId,\n value: selectChainId,\n className: 'syn-network-switch-drawer-item',\n label:
{DAPP_CHAIN_CONFIGS[selectChainId]?.network?.name}
,\n };\n }),\n [],\n );\n return (\n <>\n setOpenDrawer(false)}\n open={openDrawer}\n value={chainId}\n selectOptions={selectOptions}\n onChange={(selectChainId: CHAIN_ID) => {\n switchAppNetwork(selectChainId);\n switchWalletNetwork(selectChainId);\n }}>\n \n \n \n );\n};\n\nexport default NetworkSwitchDrawer;\n","/**\n * @description Component-MobileHeader\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { useTheme } from '@/features/global/hooks';\nimport Logo from '@/layout/Header/Logo';\nimport Web3Status from '@/layout/Header/Web3Status';\n\nimport IpBlocker from '@/components/IpBlocker';\nimport NetworkSwitchDrawer from './NetworkSwitchDrawer';\n\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst MobileHeader: FC = function () {\n const { dataTheme } = useTheme();\n return (\n <>\n {/* {} */}\n \n
\n \n \n \n
\n \n \n
\n
\n \n );\n};\n\nexport default MobileHeader;\n","import { SOCIAL_LINKS } from './links';\n\nimport { ReactComponent as IconDiscord } from '@/assets/svg/icon_discord.svg';\nimport { ReactComponent as IconTelegram } from '@/assets/svg/icon_telegram.svg';\nimport { ReactComponent as IconTwitter } from '@/assets/svg/icon_twitter.svg';\nimport { ReactComponent as IconYoutube } from '@/assets/svg/icon_youtube.svg';\ntype TSocialInfo = {\n icon: JSX.Element;\n href: string;\n};\n\nexport enum SocialId {\n TWITTER = 'TWITTER',\n // MEDIUM = 'MEDIUM',\n DISCORD = 'DISCORD',\n YOUTUBE = 'YOUTUBE',\n TELEGRAM = 'TELEGRAM',\n}\nexport const socialInfos: { [id in SocialId]: TSocialInfo } = {\n [SocialId.TWITTER]: {\n icon: ,\n href: SOCIAL_LINKS.TWITTER,\n },\n // [SocialId.MEDIUM]: {\n // icon: ,\n // href: 'https://medium.com/synfutures',\n // },\n [SocialId.DISCORD]: {\n icon: ,\n href: SOCIAL_LINKS.DISCORD,\n },\n [SocialId.YOUTUBE]: {\n icon: ,\n href: 'https://www.youtube.com/channel/UCRHA7TThDHr7hGxtvM5_3vQ',\n },\n [SocialId.TELEGRAM]: {\n icon: ,\n href: SOCIAL_LINKS.TELEGRAM,\n },\n};\n","import { socialInfos } from '@/constants/routes';\nimport { useGa } from '@/hooks/useGa';\nimport { GaCategory } from '@/utils/analytics';\nimport { useCallback } from 'react';\nimport './index.less';\nexport default function SocialList(): JSX.Element {\n const gaEvent = useGa();\n const onMenuClick = useCallback(\n (menuKey: string) => {\n gaEvent({ category: GaCategory.HEADER, action: `Community-Click on${menuKey}` });\n },\n [gaEvent],\n );\n return (\n
\n {Object.entries(socialInfos).map(([socialId, info]) => {\n return (\n onMenuClick(socialId)}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-social-list-link\">\n {info.icon}\n \n );\n })}\n
\n );\n}\n","/**\n * @description Page-Footer\n */\nimport { FC, memo, Suspense } from 'react';\n\nimport SocialList from '@/components/List/SocialList';\nimport { Default } from '@/components/MediaQuery';\nimport BlockNumberText from '@/components/Text/BlockNumberText';\nimport './index.less';\n\nconst Footer: FC = function () {\n return (\n \n \n
\n \n\n \n
\n
\n
\n );\n};\n\nexport default memo(Footer);\n","var _path, _path2, _path3, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgRocket = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 45,\n height: 18,\n viewBox: \"0 0 45 18\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M42.1331 1.2002C40.8461 1.2002 39.1205 2.0828 37.9613 3.6002H37.0001C36.3059 3.6002 35.9081 4.1186 35.6339 4.6664L35.2661 5.4002H37.0001L37.9001 6.3002L38.8001 7.2002V8.9336L39.5339 8.5664C40.0817 8.2928 40.6001 7.8944 40.6001 7.2002V6.239C42.1175 5.0798 43.0001 3.3536 43.0001 2.0672V1.2002H42.1331ZM40.6001 3.0002C40.7592 3.0002 40.9119 3.06341 41.0244 3.17593C41.1369 3.28845 41.2001 3.44107 41.2001 3.6002C41.2001 3.75933 41.1369 3.91194 41.0244 4.02446C40.9119 4.13698 40.7592 4.2002 40.6001 4.2002C40.441 4.2002 40.2884 4.13698 40.1758 4.02446C40.0633 3.91194 40.0001 3.75933 40.0001 3.6002C40.0001 3.44107 40.0633 3.28845 40.1758 3.17593C40.2884 3.06341 40.441 3.0002 40.6001 3.0002Z\",\n fill: \"url(#paint0_linear_46115_135528)\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n opacity: 0.4,\n d: \"M35.8843 7.45075C27.0072 16.1643 8.86117 16.422 0.547238 16.065C23.1752 17.6245 32.2311 11.5548 36.652 8.31787C36.9411 8.10621 36.9746 7.69613 36.7156 7.44858C36.4854 7.22857 36.1115 7.2277 35.8843 7.45075Z\",\n fill: \"url(#paint1_linear_46115_135528)\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M40.2002 12L40.7404 13.4598L42.2002 14L40.7404 14.5402L40.2002 16L39.66 14.5402L38.2002 14L39.66 13.4598L40.2002 12Z\",\n fill: \"url(#paint2_linear_46115_135528)\"\n })), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint0_linear_46115_135528\",\n x1: 35.2661,\n y1: 8.9336,\n x2: 43.0001,\n y2: 8.9336,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FF9999\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D982D9\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint1_linear_46115_135528\",\n x1: 0.579514,\n y1: 16.7449,\n x2: 37.5379,\n y2: 14.9906,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FF9999\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D982D9\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"paint2_linear_46115_135528\",\n x1: 38.2002,\n y1: 16,\n x2: 42.2002,\n y2: 16,\n gradientUnits: \"userSpaceOnUse\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n stopColor: \"#FF9999\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#D982D9\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgRocket);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/rocket.ae93990d0e9bd4e6692d0eb350b863e5.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreAnalytics = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_25_1597)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M13.1251 5.99999C13.1251 5.37866 12.6214 4.87499 12.0001 4.87499C11.3787 4.87499 10.8751 5.37866 10.8751 5.99999V18C10.8751 18.6213 11.3787 19.125 12.0001 19.125C12.6214 19.125 13.1251 18.6213 13.1251 18V5.99999Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8.12506 8.99998C8.12506 8.37866 7.62138 7.87498 7.00006 7.87498C6.37874 7.87498 5.87506 8.37866 5.87506 8.99998V18C5.87506 18.6213 6.37874 19.125 7.00006 19.125C7.62138 19.125 8.12506 18.6213 8.12506 18V8.99998Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M18.1251 13C18.1251 12.3787 17.6214 11.875 17.0001 11.875C16.3787 11.875 15.8751 12.3787 15.8751 13V18C15.8751 18.6213 16.3787 19.125 17.0001 19.125C17.6214 19.125 18.1251 18.6213 18.1251 18V13Z\",\n fill: \"white\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M12.0832 0.875001H11.9168C9.63046 0.874973 7.80061 0.874951 6.36414 1.06803C4.87782 1.2678 3.64574 1.6926 2.66905 2.66796C1.69338 3.6443 1.26779 4.87745 1.06803 6.36378C0.874951 7.80037 0.874973 9.63043 0.875001 11.9168V12.0832C0.874973 14.3695 0.874951 16.1999 1.06803 17.6365C1.26775 19.1225 1.69248 20.355 2.66851 21.3305C3.64481 22.3068 4.87721 22.7319 6.36367 22.9318C7.80033 23.125 9.63046 23.125 11.9168 23.125H12.0833C14.3696 23.125 16.1999 23.125 17.6366 22.9318C19.1228 22.732 20.3553 22.3069 21.3308 21.3302C22.3068 20.3544 22.732 19.1221 22.9318 17.6362C23.125 16.1997 23.125 14.3696 23.125 12.0833V11.9167C23.125 9.63044 23.125 7.80056 22.9318 6.36404C22.7319 4.87758 22.3068 3.64544 21.3308 2.66878C20.3548 1.69286 19.1223 1.26779 17.6361 1.06803C16.1996 0.874951 14.3695 0.874973 12.0832 0.875001ZM4.25927 4.25973C4.74855 3.77127 5.42744 3.46416 6.66387 3.29798C7.933 3.12739 9.61121 3.125 12 3.125C14.3888 3.125 16.0672 3.12739 17.3364 3.29798C18.5732 3.46422 19.2514 3.77141 19.7395 4.2595C20.2283 4.74881 20.5356 5.42765 20.7019 6.66397C20.8726 7.93304 20.875 9.61119 20.875 12C20.875 14.3888 20.8726 16.0672 20.7019 17.3363C20.5356 18.573 20.2282 19.2511 19.7398 19.7392C19.2523 20.2274 18.5736 20.5356 17.3367 20.7019C16.0675 20.8726 14.3888 20.875 12 20.875C9.61119 20.875 7.93279 20.8726 6.66358 20.7019C5.42679 20.5356 4.74819 20.2282 4.2595 19.7395C3.77172 19.2521 3.46424 18.5738 3.29798 17.3368C3.12739 16.0675 3.125 14.3888 3.125 12C3.125 9.61121 3.12739 7.93275 3.29798 6.66348C3.46416 5.42697 3.77122 4.74836 4.25927 4.25973Z\",\n fill: \"white\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_25_1597\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 24,\n height: 24,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreAnalytics);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_analytics.fb58eee7a9ee4d0789340da2042c3076.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreGithub = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M2.60761 1.14402C2.40414 1.92396 2.37882 2.73424 2.53165 3.52173C2.0799 4.27249 1.86405 5.14474 1.91671 6.0244C1.92823 8.37979 3.60703 9.83892 5.47142 10.2769C5.43678 10.3706 5.40573 10.4657 5.37839 10.5622C5.29229 10.8661 5.24365 11.1786 5.23221 11.4924C4.81671 11.6246 4.51285 11.6402 4.28792 11.6106C3.99228 11.5716 3.75303 11.4442 3.50811 11.248C3.38154 11.1466 3.26 11.0323 3.12495 10.9014L3.06612 10.8443C2.95239 10.7336 2.82291 10.6077 2.6927 10.4951C2.38503 10.2291 1.94074 9.91668 1.33337 9.91668C0.91916 9.91668 0.583374 10.2525 0.583374 10.6667C0.583374 11.0809 0.91916 11.4167 1.33337 11.4167C1.39267 11.4167 1.48922 11.4375 1.71175 11.6299C1.80573 11.7111 1.89858 11.8014 2.01332 11.9129L2.08125 11.9788C2.22039 12.1136 2.38479 12.2701 2.5703 12.4187C2.94955 12.7225 3.43905 13.0117 4.09195 13.0977C4.45174 13.1452 4.83566 13.1276 5.24999 13.0386V14.6667C5.24999 15.0809 5.58577 15.4167 5.99999 15.4167C6.4142 15.4167 6.74999 15.0809 6.74999 14.6667V12.0186C6.75099 11.9789 6.74885 11.939 6.74342 11.8991C6.71029 11.5867 6.7367 11.2707 6.82158 10.9711C6.90726 10.6687 7.05403 10.3843 7.25347 10.1337C7.4328 9.90841 7.46729 9.60032 7.34223 9.34093C7.21716 9.08154 6.95462 8.91667 6.66665 8.91667C4.94702 8.91667 3.41665 7.79689 3.41665 6C3.41665 5.98363 3.41612 5.96726 3.41505 5.95093C3.37189 5.29266 3.55842 4.63981 3.94282 4.10371C4.07271 3.92256 4.1153 3.69303 4.05903 3.47735C3.96041 3.0993 3.91982 2.71187 3.93725 2.32609C4.18221 2.45258 4.49761 2.64405 4.88332 2.93333C5.05189 3.05976 5.26586 3.10944 5.47288 3.07023C7.14066 2.75437 8.85931 2.75437 10.5271 3.07023C10.7341 3.10944 10.9481 3.05976 11.1167 2.93333C11.4974 2.64777 11.8096 2.45753 12.0532 2.33101C12.0689 2.71921 12.0305 3.10905 11.9379 3.48924C11.8863 3.70142 11.9297 3.92558 12.0568 4.10316C12.4424 4.64198 12.6272 5.29073 12.5849 5.9521C12.5838 5.96804 12.5833 5.98402 12.5833 6C12.5833 7.79689 11.053 8.91667 9.33332 8.91667C9.04604 8.91667 8.784 9.08077 8.65857 9.33923C8.53315 9.59769 8.56639 9.90508 8.74415 10.1308C9.14224 10.6361 9.32558 11.2778 9.25457 11.9172C9.25152 11.9447 9.24999 11.9723 9.24999 12V14.6667C9.24999 15.0809 9.58577 15.4167 9.99999 15.4167C10.4142 15.4167 10.75 15.0809 10.75 14.6667V12.0393C10.8101 11.4375 10.7308 10.8356 10.5247 10.2778C12.3908 9.84087 14.072 8.38116 14.0833 6.02383C14.1349 5.14099 13.9197 4.26995 13.465 3.51645C13.6072 2.73461 13.584 1.93048 13.3954 1.15591C13.3275 0.877327 12.8474 0.562121 12.5654 0.588561C12.5214 0.592686 12.4674 0.599813 12.4034 0.611804C12.2754 0.63581 12.1086 0.679106 11.9033 0.756087C11.5457 0.890207 11.0727 1.12599 10.4842 1.53907C8.84091 1.26476 7.15906 1.26476 5.51579 1.53907C4.92727 1.12599 4.45432 0.890207 4.09666 0.756087C3.89138 0.679106 3.72456 0.63581 3.59654 0.611804C3.53258 0.599813 3.47857 0.592686 3.43458 0.588561C3.07906 0.555231 2.69991 0.790186 2.60761 1.14402Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreGithub);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_github.4d3641bb57c4cc099046773763d8db92.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconAcctNew = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5462_67094)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M10.3533 1.33301C10.3533 0.918794 10.6891 0.583008 11.1033 0.583008H14.666C15.0802 0.583008 15.416 0.918794 15.416 1.33301V4.89567C15.416 5.30989 15.0802 5.64567 14.666 5.64567C14.2518 5.64567 13.916 5.30989 13.916 4.89567V3.14367L9.19635 7.86334C8.90345 8.15623 8.42858 8.15623 8.13569 7.86334C7.84279 7.57044 7.84279 7.09557 8.13569 6.80268L12.8554 2.08301H11.1033C10.6891 2.08301 10.3533 1.74722 10.3533 1.33301Z\",\n fill: \"#94B8BF\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.44225 2.19832C3.61802 2.30911 3.16543 2.51383 2.83925 2.83943C2.51385 3.16519 2.30912 3.6176 2.19833 4.44199C2.0846 5.28817 2.08301 6.40715 2.08301 7.99967C2.08301 9.5922 2.0846 10.7113 2.19833 11.5575C2.30916 12.3822 2.51397 12.8342 2.83916 13.1592L2.83934 13.1593C3.16514 13.4851 3.61753 13.6901 4.44206 13.801C5.2882 13.9147 6.40713 13.9163 7.99967 13.9163C9.59222 13.9163 10.7113 13.9147 11.5575 13.801C12.3821 13.69 12.834 13.4851 13.159 13.1597L13.1595 13.1592C13.4852 12.8338 13.6901 12.3817 13.801 11.5572C13.9147 10.7111 13.9163 9.59222 13.9163 7.99967C13.9163 7.58546 14.2521 7.24967 14.6663 7.24967C15.0806 7.24967 15.4163 7.58546 15.4163 7.99967V8.05519C15.4164 9.57939 15.4164 10.7995 15.2876 11.7572C15.1543 12.748 14.8709 13.5696 14.2198 14.2202C13.5696 14.871 12.748 15.1543 11.7574 15.2876C10.7996 15.4164 9.5794 15.4164 8.0552 15.4163H7.94415C6.41995 15.4164 5.19988 15.4164 4.24212 15.2876C3.25124 15.1543 2.4297 14.8709 1.77886 14.2202C1.12805 13.5698 0.844853 12.7481 0.711692 11.7573C0.582975 10.7996 0.58299 9.57938 0.583008 8.05514V7.94421C0.58299 6.41997 0.582975 5.19992 0.711692 4.24219C0.844865 3.25131 1.12805 2.42975 1.7785 1.77886L1.77904 1.77832C2.43017 1.12808 3.25156 0.844877 4.24243 0.711693C5.20008 0.582975 6.41997 0.58299 7.9442 0.583008L7.99967 0.583009C8.41389 0.583009 8.74967 0.918795 8.74967 1.33301C8.74967 1.74722 8.41389 2.08301 7.99967 2.08301C6.40715 2.08301 5.28834 2.0846 4.44225 2.19832Z\",\n fill: \"#94B8BF\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5462_67094\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconAcctNew);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_acct_new.7fee4177a533b81762f5dcf5b97516c2.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconChevronDDark = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.7045 9.7045C7.14384 9.26517 7.85616 9.26517 8.2955 9.7045L12 13.409L15.7045 9.7045C16.1438 9.26517 16.8562 9.26517 17.2955 9.7045C17.7348 10.1438 17.7348 10.8562 17.2955 11.2955L12.7955 15.7955C12.3562 16.2348 11.6438 16.2348 11.2045 15.7955L6.7045 11.2955C6.26517 10.8562 6.26517 10.1438 6.7045 9.7045Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconChevronDDark);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_chevron_d_dark.eaabc0cea49099264f60b82b8073d171.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreAcademy = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.00004 2.75034C7.60003 2.75034 7.20502 2.83933 6.84366 3.01086L6.84042 3.0124L2.37975 5.10372C2.21905 5.17899 2.08337 5.37618 2.08337 5.66665C2.08337 5.95712 2.21881 6.1542 2.37951 6.22947L6.84373 8.32247C7.20517 8.49408 7.60026 8.58313 8.00037 8.58313C8.40048 8.58313 8.79558 8.49409 9.15702 8.32248L9.16029 8.32092L13.6203 6.2296C13.781 6.15433 13.9167 5.95712 13.9167 5.66665C13.9167 5.37618 13.7813 5.17911 13.6206 5.10384L9.15642 3.01087C8.79505 2.83933 8.40005 2.75034 8.00004 2.75034ZM0.583374 5.66665C0.583374 4.94253 0.933199 4.12503 1.743 3.74558L6.2021 1.65498C6.76402 1.38855 7.37814 1.25034 8.00004 1.25034C8.62194 1.25034 9.23606 1.38855 9.79799 1.65498C9.79854 1.65525 9.7991 1.65551 9.79966 1.65578L14.2568 3.74547C14.2568 3.74543 14.2569 3.74551 14.2568 3.74547C15.0666 4.12491 15.4167 4.94253 15.4167 5.66665C15.4167 6.39085 15.0668 7.20844 14.2568 7.58784L13.4167 7.98178V11.0833C13.4167 11.9998 12.957 12.8954 12.1068 13.366C11.5993 13.6476 10.9297 13.9876 10.222 14.259C9.52644 14.5258 8.7345 14.75 8.00004 14.75C7.26549 14.75 6.4735 14.5256 5.77804 14.2588C5.07035 13.9874 4.40066 13.6475 3.89354 13.3669C3.04517 12.896 2.58337 12.0007 2.58337 11.084V7.98172L2.08337 7.7473V9.33332C2.08337 9.74753 1.74759 10.0833 1.33337 10.0833C0.91916 10.0833 0.583374 9.74753 0.583374 9.33332L0.583374 5.66665ZM4.08337 8.68498V11.084C4.08337 11.5097 4.29416 11.8734 4.62015 12.0546C5.09232 12.3159 5.69552 12.6206 6.31521 12.8583C6.94725 13.1007 7.53725 13.25 8.00004 13.25C8.46292 13.25 9.05297 13.1008 9.68487 12.8585C10.3046 12.6208 10.9077 12.3159 11.3795 12.0542C11.7051 11.874 11.9167 11.5107 11.9167 11.0833V8.68515L9.8004 9.67749C9.79982 9.67777 9.79924 9.67804 9.79866 9.67832C9.23664 9.94485 8.6224 10.0831 8.00037 10.0831C7.37834 10.0831 6.76409 9.94485 6.20207 9.67831L4.08337 8.68498Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreAcademy);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_academy.53dfbdaf64e650fa796a9c138af264b8.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreDocs = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5474_63312)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M13.3619 1.26236C14.5335 1.22155 15.4167 2.18305 15.4167 3.28887V10.7625C15.4167 11.9284 14.4749 12.8281 13.3703 12.8972C12.7347 12.9369 12.0355 13.0127 11.5247 13.1475C10.8927 13.3143 10.0957 13.6907 9.43789 14.0414C8.54219 14.5189 7.45789 14.5189 6.56219 14.0414C5.90433 13.6907 5.10742 13.3143 4.47535 13.1475C3.96461 13.0127 3.26541 12.9369 2.6298 12.8972C1.52514 12.8281 0.583374 11.9284 0.583374 10.7625V3.33194C0.583374 2.19884 1.50811 1.2281 2.70098 1.30141C3.36228 1.34206 4.19276 1.4243 4.85807 1.59986C5.64463 1.80742 6.5387 2.2348 7.20546 2.58737C7.68077 2.8387 8.26827 2.82594 8.74026 2.55278L9.10509 3.18317L8.74026 2.55278C9.32558 2.21403 10.0924 1.81386 10.7849 1.60654C11.5806 1.36834 12.5998 1.28891 13.3619 1.26236ZM13.9167 3.28887C13.9167 2.96477 13.6716 2.75248 13.4141 2.76145C12.6715 2.78732 11.8153 2.86385 11.2151 3.04353C10.6975 3.19851 10.0549 3.52503 9.49161 3.85104C9.25683 3.98692 9.00723 4.08986 8.75 4.15937V12.7083C9.4232 12.3503 10.3392 11.909 11.142 11.6971C11.8002 11.5235 12.6197 11.4412 13.2767 11.4001C13.6504 11.3767 13.9167 11.0779 13.9167 10.7625V3.28887ZM7.25 12.7083V4.1899C6.99331 4.13133 6.74244 4.03933 6.50429 3.9134C5.8562 3.5707 5.08773 3.21181 4.47535 3.05022C3.95864 2.91387 3.24949 2.83796 2.60897 2.79859C2.34037 2.78208 2.08337 3.00082 2.08337 3.33194V10.7625C2.08337 11.0779 2.34967 11.3767 2.72343 11.4001C3.38037 11.4412 4.19987 11.5235 4.85807 11.6971C5.66084 11.909 6.5768 12.3502 7.25 12.7083Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5474_63312\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreDocs);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_docs.81e3a0c0a7718b320aba83a1cf949358.svg\";","var _g, _defs;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreFaq = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n clipPath: \"url(#clip0_5474_63310)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.44262 2.19866C3.61842 2.30944 3.16584 2.51415 2.83966 2.83972C2.51423 3.16548 2.30949 3.6179 2.19869 4.44233C2.08497 5.28851 2.08337 6.40748 2.08337 8.00001C2.08337 9.59254 2.08497 10.7117 2.19869 11.5579C2.30953 12.3826 2.51434 12.8345 2.83952 13.1595L2.8397 13.1597C3.1655 13.4855 3.6179 13.6904 4.44243 13.8013C5.28857 13.9151 6.4075 13.9167 8.00004 13.9167C9.59258 13.9167 10.7117 13.9151 11.5578 13.8013C12.3824 13.6904 12.8344 13.4855 13.1593 13.16L13.1599 13.1595C13.4855 12.8341 13.6904 12.382 13.8013 11.5575C13.9151 10.7115 13.9167 9.59256 13.9167 8.00001C13.9167 6.40747 13.9151 5.2887 13.8013 4.44265C13.6905 3.61844 13.4856 3.16588 13.1597 2.83967C12.8343 2.51429 12.3822 2.30949 11.5576 2.19866C10.7115 2.08494 9.59257 2.08334 8.00004 2.08334C6.40751 2.08334 5.28871 2.08494 4.44262 2.19866ZM7.94457 0.583344H8.05551C9.57975 0.583325 10.7998 0.58331 11.7575 0.712029C12.7482 0.845201 13.5698 1.1284 14.2204 1.77901L14.2206 1.7792C14.8712 2.4303 15.1546 3.25173 15.2879 4.2427C15.4167 5.20039 15.4167 6.4203 15.4167 7.9445V8.05552C15.4167 9.57972 15.4167 10.7998 15.2879 11.7575C15.1547 12.7484 14.8712 13.5699 14.2202 14.2205C13.5699 14.8714 12.7484 15.1547 11.7578 15.2879C10.8 15.4167 9.57976 15.4167 8.05555 15.4167H7.94453C6.42033 15.4167 5.20025 15.4167 4.24249 15.2879C3.25161 15.1546 2.43007 14.8713 1.77923 14.2205C1.12841 13.5702 0.845219 12.7485 0.712058 11.7577C0.583341 10.7999 0.583356 9.57972 0.583374 8.05547V7.94455C0.583356 6.42031 0.583341 5.20026 0.712058 4.24253C0.845231 3.25164 1.12842 2.43008 1.77886 1.7792L1.77914 1.77892L1.77941 1.77865C2.43054 1.12841 3.25192 0.845213 4.2428 0.712029C5.20045 0.58331 6.42034 0.583325 7.94457 0.583344Z\",\n fill: \"#1F292E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M8.55801 4.89809C8.38692 4.80038 8.19316 4.74932 7.99613 4.75001C7.79911 4.7507 7.60571 4.80312 7.43531 4.90202C7.2649 5.00093 7.12345 5.14285 7.02512 5.31359C6.92679 5.48433 6.87503 5.6779 6.875 5.87493C6.87494 6.28914 6.53911 6.62488 6.1249 6.62483C5.71069 6.62477 5.37494 6.28894 5.375 5.87473C5.37506 5.41501 5.49585 4.96337 5.72528 4.56499C5.95471 4.16662 6.28473 3.83548 6.68233 3.60471C7.07993 3.37394 7.53116 3.25163 7.99087 3.25002C8.45059 3.2484 8.90267 3.36755 9.30187 3.59552C9.70108 3.8235 10.0334 4.15232 10.2656 4.54908C10.4979 4.94583 10.6218 5.39661 10.6251 5.85632C10.6284 6.31603 10.5109 6.76853 10.2844 7.16857C10.0579 7.56845 9.73047 7.90189 9.33476 8.13553C9.13846 8.25168 8.97619 8.37874 8.87041 8.50345C8.76761 8.62464 8.75008 8.70369 8.75008 8.74995L8.75008 9.5C8.75008 9.91421 8.41429 10.25 8.00008 10.25C7.58586 10.25 7.25008 9.91421 7.25008 9.5L7.25008 8.74995C7.25008 8.24419 7.47155 7.83371 7.72652 7.53314C7.97846 7.23612 8.29263 7.00922 8.57125 6.84439L8.57158 6.84419L8.57192 6.844C8.7416 6.74385 8.88201 6.6009 8.97909 6.42945C9.07618 6.258 9.12654 6.06406 9.12513 5.86704C9.12372 5.67002 9.0706 5.47681 8.97107 5.30677C8.87154 5.13672 8.72911 4.9958 8.55801 4.89809Z\",\n fill: \"#1F292E\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n d: \"M8 12.5C8.41421 12.5 8.75 12.1642 8.75 11.75C8.75 11.3358 8.41421 11 8 11C7.58579 11 7.25 11.3358 7.25 11.75C7.25 12.1642 7.58579 12.5 8 12.5Z\",\n fill: \"#1F292E\"\n }))), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"clip0_5474_63310\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n width: 16,\n height: 16,\n fill: \"white\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreFaq);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_faq.e62abfe73053374b1b406648e6913df1.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconMoreWhitepaper = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.50731 2.17432C3.86432 2.2608 3.5396 2.41688 3.31189 2.64478L3.31166 2.64501L3.31144 2.64523C3.08353 2.87295 2.92745 3.19766 2.84098 3.84065C2.7516 4.5052 2.75 5.38847 2.75 6.66668V9.33334C2.75 10.6116 2.7516 11.4948 2.84098 12.1594C2.92745 12.8024 3.08353 13.1271 3.31144 13.3548L3.31166 13.355L3.31189 13.3552C3.5396 13.5831 3.86432 13.7392 4.50731 13.8257C5.17186 13.9151 6.05513 13.9167 7.33334 13.9167H8.66667C9.94488 13.9167 10.8281 13.9151 11.4927 13.8257C12.1357 13.7392 12.4604 13.5831 12.6881 13.3552L12.6886 13.3548C12.9165 13.1271 13.0725 12.8024 13.159 12.1594C13.2484 11.4948 13.25 10.6116 13.25 9.33334V6.66668C13.25 5.38847 13.2484 4.5052 13.159 3.84065C13.0725 3.19766 12.9165 2.87295 12.6886 2.64523L12.6883 2.64501L12.6881 2.64478C12.4604 2.41688 12.1357 2.2608 11.4927 2.17432C10.8281 2.08494 9.94488 2.08334 8.66667 2.08334H7.33334C6.05513 2.08334 5.17186 2.08494 4.50731 2.17432ZM7.27919 0.583344H8.72081C9.93177 0.583321 10.9164 0.583303 11.6926 0.687704C12.5019 0.796553 13.1962 1.03113 13.7492 1.5845C13.7492 1.58452 13.7492 1.58455 13.7492 1.58457C14.3023 2.13746 14.5368 2.83158 14.6456 3.64071C14.75 4.41695 14.75 5.40157 14.75 6.61252V9.3875C14.75 10.5985 14.75 11.5831 14.6456 12.3593C14.5368 13.1684 14.3023 13.8626 13.7492 14.4154C13.1963 14.9689 12.502 15.2035 11.6926 15.3123C10.9164 15.4167 9.93176 15.4167 8.72078 15.4167H7.27922C6.06825 15.4167 5.08361 15.4167 4.30736 15.3123C3.49802 15.2035 2.80373 14.9689 2.25078 14.4154C1.69768 13.8626 1.46318 13.1684 1.35436 12.3593C1.24996 11.5831 1.24998 10.5984 1.25 9.38749V6.61253C1.24998 5.40157 1.24996 4.41695 1.35436 3.64071C1.4632 2.83148 1.69774 2.13728 2.25099 1.58436C2.80391 1.03109 3.49812 0.796544 4.30736 0.687704C5.08361 0.583303 6.06823 0.583321 7.27919 0.583344ZM4.58333 5.33334C4.58333 4.91913 4.91912 4.58334 5.33333 4.58334H10.6667C11.0809 4.58334 11.4167 4.91913 11.4167 5.33334C11.4167 5.74756 11.0809 6.08334 10.6667 6.08334H5.33333C4.91912 6.08334 4.58333 5.74756 4.58333 5.33334ZM4.58333 8.00001C4.58333 7.5858 4.91912 7.25001 5.33333 7.25001H10.6667C11.0809 7.25001 11.4167 7.5858 11.4167 8.00001C11.4167 8.41423 11.0809 8.75001 10.6667 8.75001H5.33333C4.91912 8.75001 4.58333 8.41423 4.58333 8.00001ZM4.58333 10.6667C4.58333 10.2525 4.91912 9.91668 5.33333 9.91668H8.66667C9.08088 9.91668 9.41667 10.2525 9.41667 10.6667C9.41667 11.0809 9.08088 11.4167 8.66667 11.4167H5.33333C4.91912 11.4167 4.58333 11.0809 4.58333 10.6667Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconMoreWhitepaper);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_more_whitepaper.29498032a8163104353570773c563e29.svg\";","/**\n * @description Component-HeaderMenuDropdown\n */\nimport './HeaderMenuDropdown.less';\n\nimport classNames from 'classnames';\nimport React, { FC, useCallback, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\n\n// import { Link } from 'react-router-dom';\nimport { TGPIcon } from '@/assets/svg';\nimport { ReactComponent as IconAnalysis } from '@/assets/svg/icon_more_analytics.svg';\nimport { ReactComponent as IconGithub } from '@/assets/svg/icon_more_github.svg';\nimport { Button } from '@/components/Button';\nimport { FAQ_LINKS, INFO_LINK } from '@/constants/links';\nimport { useTheme } from '@/features/global/hooks';\nimport { useGa } from '@/hooks/useGa';\nimport { GaCategory } from '@/utils/analytics';\nimport { ReactComponent as IconLink } from './assets/icon_acct_new.svg';\nimport { ReactComponent as IconChevron } from './assets/icon_chevron_d_dark.svg';\nimport { ReactComponent as IconAcademy } from './assets/icon_more_academy.svg';\n// import { ReactComponent as IconCampaign } from './assets/icon_more_campaigns.svg';\nimport Dropdown from '@/components/Dropdown';\nimport SocialList from '@/components/List/SocialList';\nimport { CHAIN_ID } from '@/constants/chain';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { ReactComponent as IconDocs } from './assets/icon_more_docs.svg';\nimport { ReactComponent as IconFaq } from './assets/icon_more_faq.svg';\nimport { ReactComponent as IconWhitepaper } from './assets/icon_more_whitepaper.svg';\n\nconst HeaderMenuDropdown: FC = function () {\n const [visible, setVisible] = useState(false);\n const chainId = useChainId();\n const gaEvent = useGa();\n const { t } = useTranslation();\n const onMenuClick = useCallback(\n (menuKey: string) => {\n gaEvent({ category: GaCategory.HEADER, action: `Community-Click on${menuKey}` });\n setVisible(false);\n },\n [gaEvent, setVisible],\n );\n const theme = useTheme();\n const menu = (\n
\n
\n {/* TODO: temp hide for new theme */}\n {chainId === CHAIN_ID.BLAST && process.env.REACT_APP_SHOW_TGP === 'true' && (\n onMenuClick('tgp')}\n rel=\"noreferrer\"\n className=\"syn-header-menu-dropdown_menu-top-row\">\n \n \n {t('header.menu.tgp')}{' '}\n \n \n \n )}\n onMenuClick('analysis')}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-header-menu-dropdown_menu-top-row\">\n \n \n {t('common.dropdownMenu.analysis')}{' '}\n \n \n \n {/* onMenuClick('academy')}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-header-menu-dropdown_menu-top-row\">\n \n \n {t('common.dropdownMenu.academy')}{' '}\n \n \n */}\n onMenuClick('blog')}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-header-menu-dropdown_menu-top-row\">\n \n \n {t('common.dropdownMenu.blog')}{' '}\n \n \n \n onMenuClick('FAQ')}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-header-menu-dropdown_menu-top-row\">\n \n \n {t('common.dropdownMenu.faq')}{' '}\n \n \n \n onMenuClick('docs')}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-header-menu-dropdown_menu-top-row\">\n \n {t('common.dropdownMenu.docs')}\n \n \n \n onMenuClick('Whitepaper')}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-header-menu-dropdown_menu-top-row\">\n \n {t('common.dropdownMenu.whitepaper')}\n \n \n \n onMenuClick('Github')}\n target=\"_blank\"\n rel=\"noreferrer\"\n className=\"syn-header-menu-dropdown_menu-top-row\">\n \n {t('common.dropdownMenu.github')}\n \n \n \n
\n
\n
{t('common.dropdownMenu.community')}
\n \n
\n
\n );\n return (\n
\n {\n return menu;\n }}\n onOpenChange={setVisible}\n align={{ offset: [0, 16] }}>\n \n \n
\n );\n};\n\nexport default React.memo(HeaderMenuDropdown);\n","import { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { TabType } from '@/constants';\nimport { setTabType } from '@/features/global/actions';\nimport { getSpotLink } from '@/features/spot/hooks';\nimport { useSpotState } from '@/features/spot/store';\nimport { useAppDispatch } from '@/hooks';\nimport { useGa } from '@/hooks/useGa';\nimport { getIsPageSupported } from '@/hooks/usePageSupported';\nimport { getVaultLink } from '@/hooks/vault/useVaultRouter';\nimport { useChainId, useChainShortName } from '@/hooks/web3/useChain';\nimport { RouteBasePath } from '@/pages/routers';\nimport { GaCategory } from '@/utils/analytics';\nimport { useLocalStorageState } from 'ahooks';\nimport classNames from 'classnames';\nimport _ from 'lodash';\nimport { useCallback, useEffect, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { Link, useLocation } from 'react-router-dom';\nimport './Menu.less';\nimport rocket from './assets/rocket.svg';\nimport HeaderMenuDropdown from './headerMenuDropdown/HeaderMenuDropdown';\n\nexport default function HeaderMenu(): JSX.Element {\n const { deviceType } = useMediaQueryDevice();\n const location = useLocation();\n const chainId = useChainId();\n const dispatch = useAppDispatch();\n const gaEvent = useGa();\n const { token0, token1 } = useSpotState();\n\n const [menuType, setMenuType] = useState('');\n const { t } = useTranslation();\n // const ooDappConfig = useOdysseyDappConfig();\n const [lastFutures] = useLocalStorageState('last_futures', { defaultValue: 'trade', listenStorageChange: true });\n const onMenuClick = useCallback(\n (menuKey: string, isExternalLink?: boolean) => {\n document.getElementById('pageLayout')?.scroll({ top: 0 });\n !isExternalLink && setMenuType(menuKey);\n },\n [setMenuType],\n );\n\n useEffect(() => {\n const urlType = _.get(location.pathname.split('/'), [1]) || '';\n if (urlType === 'trade' || urlType === 'earn') {\n setMenuType('futures');\n } else {\n setMenuType(urlType);\n }\n if (Object.values(TabType).includes(urlType as TabType)) {\n dispatch(setTabType({ type: urlType as TabType }));\n }\n }, [dispatch, location.pathname]);\n\n const chainShortName = useChainShortName();\n\n return (\n <>\n
    \n
  • \n {\n onMenuClick('market');\n gaEvent({ category: GaCategory.HEADER, action: 'Menu-Click on market' });\n }}>\n {t('header.menu.Market')}\n \n
  • \n
  • \n {\n onMenuClick('futures');\n gtag('event', 'enter_futures', {\n entrance: 'nav_bar', // link, nav_bar, market, portfolio, odyssey_place_limit_order\n });\n }}>\n {t('header.menu.Futures')}\n \n
  • \n {chainId && getIsPageSupported(chainId, RouteBasePath.spot) && (\n
  • \n {\n onMenuClick('spot');\n gaEvent({ category: GaCategory.HEADER, action: 'Menu-Click on spot' });\n }}>\n {t('header.menu.spot')}\n \"rocket\"\n \n
  • \n )}\n
  • \n {\n onMenuClick('portfolio');\n gaEvent({ category: GaCategory.HEADER, action: 'Menu-Click on Portfolio' });\n }}>\n {t('header.menu.Portfolio')}\n \n
  • \n {process.env.REACT_APP_HIDE_VAULT !== 'true' &&\n chainId &&\n getIsPageSupported(chainId, RouteBasePath.launchpad) && (\n
  • \n {\n onMenuClick(RouteBasePath.launchpad);\n gaEvent({ category: GaCategory.HEADER, action: 'Menu-Click on Launchpad' });\n }}>\n {t('launchpad.launchpadMenu')}\n \n
  • \n )}\n\n {/* {chainId && ooDappConfig.supportChains.includes(chainId) && (\n
  • \n {\n onMenuClick('odyssey');\n gtag('event', 'enter_odyssey', {\n entrance: 'nav_bar',\n });\n }}>\n {t('header.menu.odyssey')} \n \n
  • \n )} */}\n
  • \n {\n onMenuClick('airdrop', true);\n gtag('event', 'enter_airdrop', {\n entrance: 'nav_bar',\n });\n }}>\n {t('header.menu.airdrop')} 🔥\n \n
  • \n
  • \n {\n onMenuClick('campaign');\n gaEvent({ category: GaCategory.HEADER, action: 'Menu-Click on Portfolio' });\n }}>\n {t('common.campaign')}\n \n
  • \n
  • \n \n
  • \n
\n \n );\n}\n","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconNavTutorial = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.18063 1.40801C3.64063 1.47868 3.35529 1.60868 3.15129 1.80801C2.94796 2.00801 2.81529 2.28801 2.74263 2.81668C2.66796 3.36134 2.66663 4.08268 2.66663 5.11668V10.83C2.93043 10.6494 3.22338 10.5157 3.53263 10.4347C3.88463 10.342 4.29529 10.342 4.89729 10.3427H13.3333V5.11734C13.3333 4.08268 13.332 3.36134 13.2573 2.81668C13.1846 2.28801 13.052 2.00801 12.8486 1.80801C12.6446 1.60868 12.3593 1.47868 11.8193 1.40801C11.2633 1.33468 10.5273 1.33334 9.47129 1.33334H6.52863C5.47263 1.33334 4.73663 1.33468 4.18063 1.40801ZM4.50596 4.39668C4.50596 4.09801 4.75263 3.85601 5.05729 3.85601H10.9426C11.0873 3.85476 11.2265 3.9109 11.3298 4.01211C11.4332 4.11333 11.4922 4.25137 11.494 4.39601C11.4924 4.54076 11.4334 4.67898 11.3301 4.78034C11.2267 4.8817 11.0874 4.93792 10.9426 4.93668H5.05729C4.91265 4.93792 4.77341 4.88179 4.67007 4.78058C4.56673 4.67936 4.50772 4.54131 4.50596 4.39668ZM5.05729 6.37868C4.91265 6.37743 4.77341 6.43356 4.67007 6.53478C4.56673 6.63599 4.50772 6.77404 4.50596 6.91868C4.50596 7.21734 4.75263 7.45934 5.05729 7.45934H8.73529C8.88005 7.46077 9.01946 7.40471 9.12295 7.30348C9.22643 7.20224 9.28553 7.0641 9.28729 6.91934C9.28571 6.77447 9.22668 6.63615 9.12318 6.53478C9.01968 6.4334 8.88017 6.37725 8.73529 6.37868H5.05729Z\",\n fill: \"#1F292E\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.98198 11.4233H13.3333C13.3313 12.1767 13.3193 12.7393 13.258 13.1833C13.1853 13.712 13.0526 13.992 12.8493 14.192C12.6453 14.3913 12.36 14.5213 11.82 14.592C11.264 14.6653 10.528 14.6667 9.47198 14.6667H6.52865C5.47265 14.6667 4.73665 14.6653 4.18065 14.5927C3.64065 14.5213 3.35531 14.3913 3.15131 14.192C2.94798 13.992 2.81531 13.712 2.74265 13.1833C2.71531 12.9833 2.69731 12.7587 2.68665 12.5033C2.77822 12.2537 2.92901 12.0301 3.12607 11.8516C3.32313 11.6731 3.56056 11.5452 3.81798 11.4787C4.01131 11.428 4.26265 11.4233 4.98198 11.4233Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconNavTutorial);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_nav_tutorial.854b5d14f4bb396f59ad4a81cb0e91b9.svg\";","var _path, _path2;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconNavTutorialD = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 16,\n height: 16,\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M4.18063 1.40801C3.64063 1.47868 3.35529 1.60868 3.15129 1.80801C2.94796 2.00801 2.81529 2.28801 2.74263 2.81668C2.66796 3.36134 2.66663 4.08268 2.66663 5.11668V10.83C2.93043 10.6494 3.22338 10.5157 3.53263 10.4347C3.88463 10.342 4.29529 10.342 4.89729 10.3427H13.3333V5.11734C13.3333 4.08268 13.332 3.36134 13.2573 2.81668C13.1846 2.28801 13.052 2.00801 12.8486 1.80801C12.6446 1.60868 12.3593 1.47868 11.8193 1.40801C11.2633 1.33468 10.5273 1.33334 9.47129 1.33334H6.52863C5.47263 1.33334 4.73663 1.33468 4.18063 1.40801ZM4.50596 4.39668C4.50596 4.09801 4.75263 3.85601 5.05729 3.85601H10.9426C11.0873 3.85476 11.2265 3.9109 11.3298 4.01211C11.4332 4.11333 11.4922 4.25137 11.494 4.39601C11.4924 4.54076 11.4334 4.67898 11.3301 4.78034C11.2267 4.8817 11.0874 4.93792 10.9426 4.93668H5.05729C4.91265 4.93792 4.77341 4.88179 4.67007 4.78058C4.56673 4.67936 4.50772 4.54131 4.50596 4.39668ZM5.05729 6.37868C4.91265 6.37743 4.77341 6.43356 4.67007 6.53478C4.56673 6.63599 4.50772 6.77404 4.50596 6.91868C4.50596 7.21734 4.75263 7.45934 5.05729 7.45934H8.73529C8.88005 7.46077 9.01946 7.40471 9.12295 7.30348C9.22643 7.20224 9.28553 7.0641 9.28729 6.91934C9.28571 6.77447 9.22668 6.63615 9.12318 6.53478C9.01968 6.4334 8.88017 6.37725 8.73529 6.37868H5.05729Z\",\n fill: \"white\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M4.98198 11.4233H13.3333C13.3313 12.1767 13.3193 12.7393 13.258 13.1833C13.1853 13.712 13.0526 13.992 12.8493 14.192C12.6453 14.3913 12.36 14.5213 11.82 14.592C11.264 14.6653 10.528 14.6667 9.47198 14.6667H6.52865C5.47265 14.6667 4.73665 14.6653 4.18065 14.5927C3.64065 14.5213 3.35531 14.3913 3.15131 14.192C2.94798 13.992 2.81531 13.712 2.74265 13.1833C2.71531 12.9833 2.69731 12.7587 2.68665 12.5033C2.77822 12.2537 2.92901 12.0301 3.12607 11.8516C3.32313 11.6731 3.56056 11.5452 3.81798 11.4787C4.01131 11.428 4.26265 11.4233 4.98198 11.4233Z\",\n fill: \"#00BFBF\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconNavTutorialD);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_nav_tutorial_d.153a394be9a6fbda963021188a658ae7.svg\";","var _path;\nconst _excluded = [\"title\", \"titleId\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport * as React from \"react\";\nimport { forwardRef } from \"react\";\nconst SvgIconChevronDDark = (_ref, ref) => {\n let {\n title,\n titleId\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: ref,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M6.7045 9.7045C7.14384 9.26517 7.85616 9.26517 8.2955 9.7045L12 13.409L15.7045 9.7045C16.1438 9.26517 16.8562 9.26517 17.2955 9.7045C17.7348 10.1438 17.7348 10.8562 17.2955 11.2955L12.7955 15.7955C12.3562 16.2348 11.6438 16.2348 11.2045 15.7955L6.7045 11.2955C6.26517 10.8562 6.26517 10.1438 6.7045 9.7045Z\",\n fill: \"#1F292E\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/forwardRef(SvgIconChevronDDark);\nexport { ForwardRef as ReactComponent };\nexport default __webpack_public_path__ + \"static/media/icon_chevron_d_dark.eaabc0cea49099264f60b82b8073d171.svg\";","/**\n * @description Component-TutotialButton\n */\nimport './index.less';\n\nimport React, { FC } from 'react';\nimport { useTranslation } from 'react-i18next';\n\nimport { THEME_ENUM } from '@/constants';\nimport { FAQ_LINKS } from '@/constants/links';\nimport { useTheme } from '@/features/global/hooks';\n\nimport { ReactComponent as IconT } from './assets/icon_nav_tutorial.svg';\nimport { ReactComponent as IconTD } from './assets/icon_nav_tutorial_d.svg';\ninterface IPropTypes {\n children?: React.ReactNode;\n className?: string;\n}\nconst TutorialButton: FC = function () {\n const { t } = useTranslation();\n const { dataTheme } = useTheme();\n return (\n \n {dataTheme === THEME_ENUM.DARK ? : }\n {t('common.tutorials')}\n \n );\n};\n\nexport default TutorialButton;\n","import './Web3Network.less';\n\nimport { useMemo, useState } from 'react';\n\nimport { ReactComponent as IconChevron } from '@/assets/svg/icon_chevron_d_dark.svg';\nimport Button from '@/components/Button/Button';\nimport Dropdown from '@/components/Dropdown';\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { CHAIN_ID, DAPP_CHAIN_CONFIGS, DISPLAYABLE_CHAIN_ID } from '@/constants/chain';\nimport { useWalletConnectStatus } from '@/features/wallet/hook';\nimport { useGa } from '@/hooks/useGa';\nimport { useChainId } from '@/hooks/web3/useChain';\nimport { useSwitchNetwork } from '@/hooks/web3/useSwitchConnectorNetwork';\nimport { WALLET_CONNECT_STATUS } from '@/types/wallet';\nimport { GaCategory } from '@/utils/analytics';\nimport classNames from 'classnames';\n\nfunction Web3Network(): JSX.Element | null {\n const chainId = useChainId();\n const { isMobile } = useMediaQueryDevice();\n const gaEvent = useGa();\n const [open, setOpen] = useState(false);\n const { switchAppNetwork, switchWalletNetwork } = useSwitchNetwork();\n const connectStatus = useWalletConnectStatus();\n\n const dropdownOptions = useMemo(\n () => (\n
\n {DISPLAYABLE_CHAIN_ID.map((selectChainId: CHAIN_ID, i: number) => {\n // if (isTestnet(selectChainId) && !isMobile) {\n // return (\n // \n // );\n // }\n return (\n {\n // switch local and wallet network\n switchAppNetwork(selectChainId);\n connectStatus !== WALLET_CONNECT_STATUS.UN_CONNECT && switchWalletNetwork(selectChainId);\n gaEvent({\n category: GaCategory.HEADER,\n action: 'Trade-Click on Chains',\n value: selectChainId,\n label: DAPP_CHAIN_CONFIGS[selectChainId]?.network?.name,\n });\n }}>\n {DAPP_CHAIN_CONFIGS[selectChainId]?.network.icon && (\n \n )}\n
{DAPP_CHAIN_CONFIGS[selectChainId]?.network?.name}
\n
\n );\n })}\n \n ),\n\n [chainId, gaEvent, switchAppNetwork],\n );\n\n if (!chainId || chainId <= 0) return null;\n\n return (\n <>\n setOpen(open)}\n placement=\"bottom\"\n align={{ offset: [0, 4] }}\n dropdownRender={() => {\n return dropdownOptions;\n }}\n overlayStyle={isMobile ? { width: 52 } : {}}>\n \n \n \n );\n}\n\nexport default Web3Network;\n","import './header.less';\n\nimport { Col, Layout, Row } from 'antd';\nimport classNames from 'classnames';\nimport { Suspense } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport LanguageSelector from '@/components/LanguageSelector';\nimport { Default, Desktop, useMediaQueryDevice } from '@/components/MediaQuery';\nimport { useTheme } from '@/features/global/hooks';\nimport { useChainId } from '@/hooks/web3/useChain';\n\n// import { isTestnet } from '@/utils/chain';\n// import GoToMintButton from './GoToMintButton';\nimport IpBlocker from '@/components/IpBlocker';\nimport Logo from './Logo';\nimport HeaderMenu from './Menu';\nimport SwitchTheme from './SwitchTheme';\nimport TutorialButton from './TutorialButton';\nimport Web3Network from './Web3Network';\nimport Web3Status from './Web3Status';\n\nconst { Header: AntHeader } = Layout;\nexport default function Header({ className }: { className?: string }): JSX.Element {\n const { deviceType, isNotMobile } = useMediaQueryDevice();\n const chainId = useChainId();\n // const walletProvider = useWalletProvider();\n const { dataTheme } = useTheme();\n return (\n <>\n {/* {isNotMobile && } */}\n \n
\n \n \n \n {\n !isNotMobile && chainId;\n }}\n className=\"logo\"\n to=\"/\">\n \n \n \n <>\n \n \n \n \n \n <>\n \n <>\n \n \n \n \n {/* */}\n {/* */}\n {/* {!!chainId && isTestnet(chainId) && } */}\n {/* {!!walletProvider && walletProvider.provider.isMetaMask && } */}\n {/* */}\n {/* */}\n \n <>\n \n \n \n \n \n \n \n \n \n
\n \n );\n}\n","import './main.less';\n\n// import { useHideMobileFooter } from '@/features/mobile/hooks';\n// import WhiteListMask from '@/pages/components/WhitelistMask';\nimport { Layout as AntLayout } from 'antd';\nimport cls from 'classnames';\n\nimport { useMediaQueryDevice } from '@/components/MediaQuery';\nimport { useIsPlainBgPage } from '@/hooks';\n\nconst { Content } = AntLayout;\n\nexport default function Main({ children }: { children: JSX.Element }): JSX.Element {\n const { deviceType } = useMediaQueryDevice();\n const isPlainBg = useIsPlainBgPage();\n // const hideFooter = useHideMobileFooter();\n return (\n \n {/* */}\n {/* {!isPlainBg && !isMobile && (\n
\n \n
\n )} */}\n
\n
{children}
\n
\n \n );\n}\n","import './index.less';\n\nimport { Layout as AntLayout, App } from 'antd';\nimport classNames from 'classnames';\nimport React, { FC, useMemo } from 'react';\n// import Container from '@/components/Container';\nimport { useLocation } from 'react-router-dom';\n\nimport { Default, Mobile, useMediaQueryDevice } from '@/components/MediaQuery';\nimport { FULL_WIDTH_ROUTES } from '@/constants';\nimport { useAnnouncementConfig } from '@/features/global/hooks';\nimport { useIsEarnPage } from '@/hooks';\nimport MobileFooter from '@/pages/mobile/MobileFooter';\nimport MobileHeader from '@/pages/mobile/MobileHeader';\n\n// import Footer from './Footer';\nimport { RouteBasePath } from '@/pages/routers';\nimport Footer from './Footer';\nimport Header from './Header';\nimport Main from './main';\n\ninterface IProps {\n children?: React.ReactNode;\n}\n\nconst LayoutComponent: FC = function ({ children }) {\n const { deviceType } = useMediaQueryDevice();\n const location = useLocation();\n const currentRoute = location.pathname.split('/')[1];\n const announcementConfig = useAnnouncementConfig();\n const isEarnPage = useIsEarnPage();\n const hideMobileFooterHeader = useMemo(\n () => location.pathname.includes(RouteBasePath.earn) || location.pathname.includes(RouteBasePath.trade),\n [location.pathname],\n );\n return (\n \n \n \n
\n \n \n <>{!hideMobileFooterHeader && }\n \n
\n
\n
{children}
\n
\n
\n \n <>{!hideMobileFooterHeader && }\n \n