Skip to content

Commit

Permalink
fix: V3 Apr Modal Max and Token amounts (#10741)
Browse files Browse the repository at this point in the history
<!--
Before opening a pull request, please read the [contributing
guidelines](https://github.com/pancakeswap/pancake-frontend/blob/develop/CONTRIBUTING.md)
first
-->

<!-- start pr-codex -->

---

## PR-Codex overview
This PR focuses on modifying the `V3PoolAprModal` component to
streamline the handling of position data by removing unnecessary
variables and adjusting calculations related to liquidity and prices.

### Detailed summary
- Removed `priceUpper` and `priceLower` from the destructured
`useExtraV3PositionInfo`.
- Updated `depositUsdAsBN` calculation to use `position?.amount0` and
`position?.amount1`.
- Changed `balanceA` and `balanceB` to reference `position` values.
- Updated `priceUpper` and `priceLower` to use
`position?.token0PriceUpper` and `position?.token0PriceLower`.

> ✨ Ask PR-Codex anything about this PR by commenting with `/codex {your
question}`

<!-- end pr-codex -->
  • Loading branch information
memoyil authored Sep 27, 2024
1 parent 049b929 commit 166bb4a
Showing 1 changed file with 11 additions and 10 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ export const V3PoolAprModal: React.FC<V3PoolAprModalProps> = ({ modal, ...props
const AprModal: React.FC<V3PoolAprModalProps> = ({ modal, poolInfo, userPosition, cakeApr }) => {
const { t } = useTranslation()
const cakePrice = useCakePrice()
const { priceUpper, priceLower, position } = useExtraV3PositionInfo(userPosition)
const { position } = useExtraV3PositionInfo(userPosition)
const { data: token0PriceUsd } = useCurrencyUsdPrice(poolInfo.token0, { enabled: !!poolInfo.token0 })
const { data: token1PriceUsd } = useCurrencyUsdPrice(poolInfo.token1, { enabled: !!poolInfo.token1 })
const formState = useV3FormState()
Expand All @@ -51,14 +51,17 @@ const AprModal: React.FC<V3PoolAprModalProps> = ({ modal, poolInfo, userPosition
const sqrtRatioX96 = price && encodeSqrtRatioX96(price.numerator, price.denominator)
const depositUsdAsBN = useMemo(
() =>
currencyBalances.CURRENCY_A &&
currencyBalances.CURRENCY_B &&
token0PriceUsd &&
token1PriceUsd &&
new BigNumber(currencyBalances.CURRENCY_A.toExact())
new BigNumber(position?.amount0?.toExact() ?? 0)
.times(token0PriceUsd)
.plus(new BigNumber(currencyBalances.CURRENCY_B.toExact()).times(token1PriceUsd)),
[currencyBalances.CURRENCY_A, currencyBalances.CURRENCY_B, token0PriceUsd, token1PriceUsd],
.plus(new BigNumber(position?.amount1?.toExact() ?? 0).times(token1PriceUsd))
.plus(
new BigNumber(currencyBalances?.CURRENCY_A?.toExact() ?? 0)
.times(token0PriceUsd)
.plus(new BigNumber(currencyBalances?.CURRENCY_B?.toExact() ?? 0).times(token1PriceUsd)),
),
[currencyBalances.CURRENCY_A, currencyBalances.CURRENCY_B, token0PriceUsd, token1PriceUsd, position],
)
const lmPoolLiquidity = useLmPoolLiquidity(poolInfo.lpAddress, poolInfo.chainId)
const cakeAprFactor = useMemo(() => {
Expand All @@ -84,8 +87,6 @@ const AprModal: React.FC<V3PoolAprModalProps> = ({ modal, poolInfo, userPosition
closeOnOverlayClick={false}
depositAmountInUsd={depositUsdAsBN?.toString()}
max={depositUsdAsBN?.toString()}
balanceA={position?.amount0 ?? currencyBalances.CURRENCY_A}
balanceB={position?.amount1 ?? currencyBalances.CURRENCY_B}
price={price}
currencyA={poolInfo.token0.wrapped}
currencyB={poolInfo.token1.wrapped}
Expand All @@ -97,8 +98,8 @@ const AprModal: React.FC<V3PoolAprModalProps> = ({ modal, poolInfo, userPosition
feeAmount={poolInfo.feeTier}
ticks={ticksData}
volume24H={Number(poolInfo.vol24hUsd) || 0}
priceUpper={priceUpper}
priceLower={priceLower}
priceUpper={position?.token0PriceUpper}
priceLower={position?.token0PriceLower}
cakePrice={cakePrice.toFixed(3)}
cakeAprFactor={cakeAprFactor}
prices={prices}
Expand Down

0 comments on commit 166bb4a

Please sign in to comment.