Skip to content

Commit

Permalink
chore: cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
garethfuller committed Dec 21, 2023
1 parent 192083d commit e41a609
Show file tree
Hide file tree
Showing 5 changed files with 26 additions and 12 deletions.
6 changes: 3 additions & 3 deletions lib/modules/pool/actions/add-liquidity/AddLiquidityForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ export function AddLiquidityForm() {
priceImpact,
isPriceImpactLoading,
bptOut,
isBptOutQueryLoading,
isPreviewQueryLoading,
isDisabled,
disabledReason,
} = useAddLiquidity()
Expand All @@ -50,7 +50,7 @@ export function AddLiquidityForm() {
return amountIn ? amountIn.humanAmount : ''
}

const bptOutUnits = safeTokenFormat(bptOut?.amount, BPT_DECIMALS)
const bptLabel = safeTokenFormat(bptOut?.amount, BPT_DECIMALS)
const formattedPriceImpact = priceImpact ? fNum('priceImpact', priceImpact) : '-'

return (
Expand Down Expand Up @@ -105,7 +105,7 @@ export function AddLiquidityForm() {
<Text color="GrayText">Bpt out</Text>
<HStack>
<NumberText color="GrayText">
{isBptOutQueryLoading ? <Skeleton w="12" h="full" /> : bptOutUnits}
{isPreviewQueryLoading ? <Skeleton w="12" h="full" /> : bptLabel}
</NumberText>
<Tooltip label="Bpt out" fontSize="sm">
<InfoOutlineIcon color="GrayText" />
Expand Down
16 changes: 13 additions & 3 deletions lib/modules/pool/actions/add-liquidity/AddLiquidityModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@ import { usePool } from '../../usePool'
import { AddLiquidityFlowButton, HumanAmountInWithTokenInfo } from './AddLiquidityFlowButton'
import { useAddLiquidity } from './useAddLiquidity'
import { BPT_DECIMALS } from '../../pool.constants'
import { formatUnits } from 'viem'
import { bptUsdValue } from '../../pool.helpers'

type Props = {
isOpen: boolean
Expand All @@ -44,17 +46,24 @@ function TokenAmountRow({
tokenAddress,
humanAmount,
symbol,
isBpt,
}: {
tokenAddress: Address
humanAmount: HumanAmount | ''
symbol?: string
isBpt?: boolean
}) {
const { pool } = usePool()
const { getToken, usdValueForToken } = useTokens()
const { toCurrency } = useCurrency()

const token = getToken(tokenAddress, pool.chain)
const usdValue = token ? usdValueForToken(token, humanAmount) : undefined
let usdValue: string | undefined
if (isBpt) {
usdValue = bptUsdValue(pool, humanAmount)
} else {
usdValue = token ? usdValueForToken(token, humanAmount) : undefined
}

return (
<HStack w="full" justify="space-between">
Expand Down Expand Up @@ -96,7 +105,7 @@ export function AddLiquidityModal({
}
)

const bptOutUnits = safeTokenFormat(bptOut?.amount, BPT_DECIMALS)
const bptOutLabel = bptOut ? formatUnits(bptOut.amount, BPT_DECIMALS) : '0'
const formattedPriceImpact = priceImpact ? fNum('priceImpact', priceImpact) : '-'

return (
Expand Down Expand Up @@ -138,8 +147,9 @@ export function AddLiquidityModal({
</HStack>
<TokenAmountRow
tokenAddress={pool.address as Address}
humanAmount={bptOutUnits as HumanAmount}
humanAmount={bptOutLabel as HumanAmount}
symbol="LP Token"
isBpt
/>
</VStack>
</Card>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@ export function useAddLiquidityPreviewQuery(
const { userAddress, isConnected } = useUserAccount()
const { slippage } = useUserSettings()
const [bptOut, setBptOut] = useState<TokenAmount | null>(null)
const [debouncedHumanAmountsIn] = useDebounce(humanAmountsIn, defaultDebounceMs)
const [debouncedHumanAmountsIn] = useDebounce([humanAmountsIn], defaultDebounceMs)

function queryKey(): string {
return generateAddLiquidityQueryKey({
userAddress,
poolId,
slippage,
humanAmountsIn: debouncedHumanAmountsIn,
humanAmountsIn: debouncedHumanAmountsIn as unknown as HumanAmountIn[],
})
}

Expand All @@ -47,7 +47,7 @@ export function useAddLiquidityPreviewQuery(
return await queryBptOut()
},
{
enabled: isConnected && hasValidHumanAmounts(debouncedHumanAmountsIn),
enabled: isConnected && hasValidHumanAmounts(humanAmountsIn),
// TODO: remove when finishing debugging
onError: error => console.log('Error in queryBptOut', error),
}
Expand Down
4 changes: 2 additions & 2 deletions lib/modules/pool/actions/add-liquidity/useAddLiquidity.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ export function _useAddLiquidity() {
pool.id
)

const { bptOut, isPreviewQueryLoading: isBptOutQueryLoading } = useAddLiquidityPreviewQuery(
const { bptOut, isPreviewQueryLoading } = useAddLiquidityPreviewQuery(
handler,
humanAmountsIn,
pool.id
Expand Down Expand Up @@ -115,7 +115,7 @@ export function _useAddLiquidity() {
isPriceImpactLoading,
priceImpact,
bptOut,
isBptOutQueryLoading,
isPreviewQueryLoading,
setHumanAmountIn,
useBuildTx,
isDisabled,
Expand Down
6 changes: 5 additions & 1 deletion lib/modules/pool/pool.helpers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
GqlPoolType,
} from '@/lib/shared/services/api/generated/graphql'
import { getAddressBlockExplorerLink, isSameAddress } from '@/lib/shared/utils/addresses'
import { bn } from '@/lib/shared/utils/numbers'
import { Numberish, bn } from '@/lib/shared/utils/numbers'
import { MinimalToken, PoolStateInput } from '@balancer/sdk'
import BigNumber from 'bignumber.js'
import { Address, Hex, getAddress } from 'viem'
Expand Down Expand Up @@ -110,6 +110,10 @@ export function calcBptPrice(pool: GetPoolQuery['pool']): string {
return bn(pool.dynamicData.totalLiquidity).div(pool.dynamicData.totalShares).toString()
}

export function bptUsdValue(pool: GetPoolQuery['pool'], bptAmount: Numberish): string {
return bn(bptAmount).times(calcBptPrice(pool)).toString()
}

export function createdAfterTimestamp(pool: GqlPoolBase): boolean {
// Pools should always have valid createTime so, for safety, we block the pool in case we don't get it
// (createTime should probably not be treated as optional in the SDK types)
Expand Down

0 comments on commit e41a609

Please sign in to comment.