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.leverage')}
{t('fields.vaultCap')}
{t('fields.tooltips.name', { asset1: vault.symbols.primary, asset2: vault.symbols.secondary, ...getTimeAndUnit(vault.lockup), })}
) })}
) }