Skip to content

Commit

Permalink
chore: enable x quote by default
Browse files Browse the repository at this point in the history
  • Loading branch information
chefjackson committed Sep 20, 2024
1 parent 57d0750 commit 3684ac5
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 17 deletions.
17 changes: 8 additions & 9 deletions apps/web/src/hooks/useBestAMMTrade.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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,
Expand Down
25 changes: 22 additions & 3 deletions apps/web/src/views/Swap/V3Swap/hooks/useAllTypeBestTrade.ts
Original file line number Diff line number Diff line change
@@ -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<TradeType> | V4Router.V4TradeWithoutGraph<TradeType>

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 })
Expand Down Expand Up @@ -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,
Expand Down
7 changes: 2 additions & 5 deletions apps/web/src/views/Swap/V3Swap/hooks/useSwapBestTrade.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down Expand Up @@ -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,
Expand Down Expand Up @@ -85,7 +82,7 @@ export function useSwapBestOrder({ maxHops }: Options = {}) {
)

return {
enabled: xEnabled,
enabled: true,
refresh,
isStale,
error,
Expand Down

0 comments on commit 3684ac5

Please sign in to comment.