diff --git a/src/app/liquidity/add-liquidity/__components__/main/addLiquidityV3.tsx b/src/app/liquidity/add-liquidity/__components__/main/addLiquidityV3.tsx index 5047fd4c..adc52d1a 100755 --- a/src/app/liquidity/add-liquidity/__components__/main/addLiquidityV3.tsx +++ b/src/app/liquidity/add-liquidity/__components__/main/addLiquidityV3.tsx @@ -728,7 +728,7 @@ export default function AddLiquidityV3() { if (!asset0) return 0; if (!pairExists || slot0Data[1] === 0) { return sqrtPriceX96ToPriceReadable( - Number(sqrtPriceX96Min), + Number(sqrtPriceX96Current), asset0.decimals, asset1?.decimals ); @@ -738,7 +738,7 @@ export default function AddLiquidityV3() { asset0.decimals, asset1?.decimals ); - }, [asset0, asset1?.decimals, pairExists, slot0Data, sqrtPriceX96Min]); + }, [asset0, asset1?.decimals, pairExists, slot0Data, sqrtPriceX96Current]); const priceYData = useMemo(() => { if (!QLToken0DailyAnalytics && !QLToken1DailyAnalytics) return []; @@ -769,11 +769,7 @@ export default function AddLiquidityV3() { pairExists, })); - if ( - !result.some((i) => i.matchesCurrentTick) && - multiplierPrice > 0 && - pairExists - ) { + if (!result.some((i) => i.matchesCurrentTick) && multiplierPrice > 0) { result.push({ priceX: multiplierPrice, matchesCurrentTick: true, @@ -896,6 +892,30 @@ export default function AddLiquidityV3() { // eslint-disable-next-line react-hooks/exhaustive-deps }, [slot0Data]); + useEffect(() => { + if (pairExists) return; + if (sqrtPriceX96Current > 0) { + const sqrtPrice = Number(sqrtPriceX96Current) / 2 ** 96; + const tick = sqrtPriceToTick( + sqrtPrice, + BASIS_POINT, + asset0?.decimals, + asset1?.decimals + ); + const nearestUT = nearestUsableTick(tickSpacing, tick); + const tL = nearestUT - tickSpacing; + const tU = nearestUT + tickSpacing; + setMinPrice(tickToPrice(tL, BASIS_POINT)); + setMaxPrice(tickToPrice(tU, BASIS_POINT)); + } + }, [ + asset0?.decimals, + asset1?.decimals, + pairExists, + sqrtPriceX96Current, + tickSpacing, + ]); + useEffect( () => setXDomain([