import BigNumber from 'bignumber.js'
import { AnimatedNumber, Apy, Card, DisplayCurrency, Loading, TextTooltip } from 'components/common'
import { VaultLogo, VaultName } from 'components/fields'
import { getTimeAndUnit, ltvToLeverage } from 'libs/parse'
import Link from 'next/link'
import React from 'react'
import { Trans, useTranslation } from 'react-i18next'
import useStore from 'store'
import styles from './AvailableVaultsTableMobile.module.scss'
export const AvailableVaultsTableMobile = () => {
const { t } = useTranslation()
const availableVaults = useStore((s) => s.availableVaults)
const redBankAssets = useStore((s) => s.redBankAssets)
if (!availableVaults?.length) return null
return (
}
>
{availableVaults.map((vault, i) => {
const primaryBorrowAsset = redBankAssets.find(
(asset) => asset.denom === vault.denoms.primary,
)
const secondaryBorrowAsset = redBankAssets.find(
(asset) => asset.denom === vault.denoms.secondary,
)
const borrowRate = Math.min(
Number(primaryBorrowAsset?.borrowRate ?? 0),
Number(secondaryBorrowAsset?.borrowRate ?? 0),
)
const maxBorrowRate = borrowRate * (ltvToLeverage(vault.ltv.contract) - 1)
const minAPY = new BigNumber(vault.apy || 0).toNumber()
const leverage = ltvToLeverage(vault.ltv.contract)
const maxAPY =
new BigNumber(minAPY).times(leverage).decimalPlaces(2).toNumber() - maxBorrowRate
const apyDataNoLev = { total: vault.apy || 0, borrow: 0 }
const apyDataLev = { total: vault.apy || 0, borrow: maxBorrowRate }
return (
e.preventDefault()} className='xl'>
{t('common.apy')}
{vault.apy !== null ? (
}
tooltip={}
/>
}
tooltip={
}
/>
) : (
)}
{t('fields.vaultCap')}
{t('fields.tooltips.name', {
asset1: vault.symbols.primary,
asset2: vault.symbols.secondary,
...getTimeAndUnit(vault.lockup),
})}
)
})}
)
}