packages/synapse-interface/utils/poolDataFuncs.ts
const getPriceMultiplier = ({ poolType, prices }) => {
switch (poolType) {
case 'ETH':
return prices.ethPrice
case 'AVAX':
return prices.avaxPrice
default:
return 1
}
}
export const getTokenBalanceInfo = ({ tokenBalances, poolType, prices }) => {
const tokenBalancesSum = tokenBalances.reduce(
(a, b) => Number(a) + Number(b),
0
)
const priceMultiplier = getPriceMultiplier({ prices, poolType })
const tokenBalancesUSD = tokenBalancesSum * (priceMultiplier ?? 0)
return {
tokenBalancesSum,
tokenBalancesUSD,
}
}
export const getPoolTokenInfoArr = ({
tokenBalances,
tokenBalancesSum,
}: {
tokenBalances: {
rawBalance: bigint
balance: string
token: any
isLP: boolean
}[]
tokenBalancesSum: number
}) => {
return tokenBalances.map((poolToken) => {
const {
balance,
token,
token: { symbol },
isLP,
rawBalance,
} = poolToken
const rawPercent = Number(balance) / tokenBalancesSum
const percent =
tokenBalancesSum !== 0 ? `${(100 * rawPercent).toFixed(2)}%` : '-'
return {
symbol,
percent,
balance,
balanceStr: balance,
token,
isLP,
rawBalance,
}
})
}