import useStakeRates from 'hooks/useStakeRates' import { formatTokenSymbol } from 'utils/tokens' import SheenLoader from './shared/SheenLoader' import { useMemo } from 'react' import Decimal from 'decimal.js' import useMangoGroup from 'hooks/useMangoGroup' import FormatNumericValue from './shared/FormatNumericValue' const AccountStats = ({ token }: { token: string }) => { const { data: stakeRates, isLoading: loadingRates } = useStakeRates() const { group } = useMangoGroup() const solBank = useMemo(() => { return group?.banksMapByName.get('SOL')?.[0] }, [group, token]) const tokenBank = useMemo(() => { return group?.banksMapByName.get(token)?.[0] }, [group, token]) const solDeposits = useMemo(() => { if (!solBank) return null return solBank.uiDeposits() }, [solBank]) const tokenDeposits = useMemo(() => { if (!tokenBank) return null return tokenBank.uiDeposits() }, [tokenBank]) const solAvailable = useMemo(() => { if (!solBank || !solDeposits) return 0 const availableVaultBalance = group ? group.getTokenVaultBalanceByMintUi(solBank.mint) - solDeposits * solBank.minVaultToDepositsRatio : 0 return Decimal.max(0, availableVaultBalance.toFixed(solBank.mintDecimals)) }, [solBank, solDeposits, group]) return ( <>

{`Boosted ${formatTokenSymbol(token)}`}

Max Est. APY

{loadingRates ? (
) : stakeRates?.[token.toLowerCase()] ? ( `${(stakeRates?.[token.toLowerCase()] * 100).toFixed(2)}%` ) : null}

Max Leverage

3x

Capacity Remaining

SOL

Total Staked

{' '} {formatTokenSymbol(token)}
) } export default AccountStats