diff --git a/apps/web/src/hooks/useBestAMMTrade.ts b/apps/web/src/hooks/useBestAMMTrade.ts index 04268ead906d6..0689b891fe30f 100644 --- a/apps/web/src/hooks/useBestAMMTrade.ts +++ b/apps/web/src/hooks/useBestAMMTrade.ts @@ -40,13 +40,12 @@ import { useCommonPools as useCommonPoolsWithTicks, } from './useCommonPools' import { useCurrencyUsdPrice } from './useCurrencyUsdPrice' -import { useExperimentalFeatureEnabled } from './useExperimentalFeatureEnabled' +// import { useExperimentalFeatureEnabled } from './useExperimentalFeatureEnabled' import { useMulticallGasLimit } from './useMulticallGasLimit' import { useSpeedQuote } from './useSpeedQuote' import { useTokenFee } from './useTokenFee' import { useTradeVerifiedByQuoter } from './useTradeVerifiedByQuoter' import { useGlobalWorker } from './useWorker' -import { usePCSX } from './usePCSX' export class NoValidRouteError extends Error { constructor(message?: string) { @@ -139,17 +138,17 @@ export function useBestAMMTrade({ type = 'quoter', ...params }: useBestAMMTradeO [type, isWrapping], ) - const isPriceApiEnabled = useExperimentalFeatureEnabled(EXPERIMENTAL_FEATURES.PriceAPI) - const [isXEnabled] = usePCSX() + // const isPriceApiEnabled = useExperimentalFeatureEnabled(EXPERIMENTAL_FEATURES.PriceAPI) const isQuoterAPIEnabled = useMemo(() => Boolean(!isWrapping && type === 'api'), [isWrapping, type]) const apiAutoRevalidate = typeof autoRevalidate === 'boolean' ? autoRevalidate : isQuoterAPIEnabled - useBestTradeFromApi({ - ...params, - enabled: Boolean(enabled && isPriceApiEnabled && !isXEnabled), - autoRevalidate: apiAutoRevalidate, - }) + // TODO: re-enable after amm endpoint is ready + // useBestTradeFromApi({ + // ...params, + // enabled: Boolean(enabled && isPriceApiEnabled), + // autoRevalidate: apiAutoRevalidate, + // }) const bestTradeFromQuoterApi = useBestAMMTradeFromQuoterWorker2({ ...params, diff --git a/apps/web/src/views/Swap/V3Swap/hooks/useAllTypeBestTrade.ts b/apps/web/src/views/Swap/V3Swap/hooks/useAllTypeBestTrade.ts index 69532222ab4d9..e7ac7044c8c4d 100644 --- a/apps/web/src/views/Swap/V3Swap/hooks/useAllTypeBestTrade.ts +++ b/apps/web/src/views/Swap/V3Swap/hooks/useAllTypeBestTrade.ts @@ -1,17 +1,22 @@ import { OrderType } from '@pancakeswap/price-api-sdk' import { SmartRouterTrade, V4Router } from '@pancakeswap/smart-router' import { Currency, TradeType } from '@pancakeswap/swap-sdk-core' -import { useCallback, useMemo, useRef, useState } from 'react' +import { useCallback, useEffect, useMemo, useRef, useState } from 'react' +import { getLogger } from 'utils/datadog' import { useBetterQuote } from 'hooks/useBestAMMTrade' import { useThrottleFn } from 'hooks/useThrottleFn' import { InterfaceOrder } from 'views/Swap/utils' +import { usePCSX } from 'hooks/usePCSX' import { useSwapBestOrder, useSwapBestTrade } from './useSwapBestTrade' type Trade = SmartRouterTrade | V4Router.V4TradeWithoutGraph +const logger = getLogger('best-quote', { forwardErrorsToLogs: false }) + export const useAllTypeBestTrade = () => { + const [xEnabled] = usePCSX() const [isQuotingPaused, setIsQuotingPaused] = useState(false) const bestOrder = useSwapBestOrder() const { isLoading, trade, refresh, syncing, isStale, error } = useSwapBestTrade({ maxHops: 3 }) @@ -68,11 +73,25 @@ export const useAllTypeBestTrade = () => { }, [ammCurrentTrade, isLoading, error]) // TODO: switch to use classic amm by default before launch - const hasAvailableDutchOrder = bestOrder.enabled && bestOrder.order?.type === OrderType.DUTCH_LIMIT - const finalOrder = useBetterQuote( + const hasAvailableDutchOrder = bestOrder.order?.type === OrderType.DUTCH_LIMIT + const betterQuote = useBetterQuote( hasAvailableDutchOrder ? undefined : classicAmmOrder, hasAvailableDutchOrder ? currentOrder : undefined, ) + const finalOrder = xEnabled ? betterQuote : classicAmmOrder + + useEffect(() => { + if (betterQuote?.trade && !betterQuote.isLoading) { + console.log('[DEBUG ROUTE]: better quote update', betterQuote) + try { + logger.info('Best quote', { + quoteType: betterQuote.type, + }) + } catch (e) { + console.error(e) + } + } + }, [betterQuote]) return { bestOrder: finalOrder as InterfaceOrder, diff --git a/apps/web/src/views/Swap/V3Swap/hooks/useSwapBestTrade.ts b/apps/web/src/views/Swap/V3Swap/hooks/useSwapBestTrade.ts index 0cd6bd359a8e8..0079027062776 100644 --- a/apps/web/src/views/Swap/V3Swap/hooks/useSwapBestTrade.ts +++ b/apps/web/src/views/Swap/V3Swap/hooks/useSwapBestTrade.ts @@ -4,7 +4,6 @@ import { useUserSingleHopOnly } from '@pancakeswap/utils/user' import { useCurrency } from 'hooks/Tokens' import { useBestAMMTrade, useBestTradeFromApi } from 'hooks/useBestAMMTrade' -import { usePCSX } from 'hooks/usePCSX' import { useCallback, useDeferredValue, useMemo, useState } from 'react' import { Field } from 'state/swap/actions' import { useSwapState } from 'state/swap/hooks' @@ -44,10 +43,8 @@ export function useSwapBestOrder({ maxHops }: Options = {}) { return stableSwap && isExactIn }, [stableSwap, isExactIn]) - const [xEnabled] = usePCSX() - const { fetchStatus, data, isStale, error, refetch } = useBestTradeFromApi({ - enabled: xEnabled, + enabled: true, amount, currency: dependentCurrency, baseCurrency: independentCurrency, @@ -85,7 +82,7 @@ export function useSwapBestOrder({ maxHops }: Options = {}) { ) return { - enabled: xEnabled, + enabled: true, refresh, isStale, error,