diff --git a/src/api/incentives/calculateAssetIncentivesApy.ts b/src/api/incentives/calculateAssetIncentivesApy.ts index 5babe85c..d2c75c7c 100644 --- a/src/api/incentives/calculateAssetIncentivesApy.ts +++ b/src/api/incentives/calculateAssetIncentivesApy.ts @@ -1,11 +1,11 @@ -import getMarket from 'api/markets/getMarket' import getTotalActiveEmissionValue from 'api/incentives/getTotalActiveEmissionValue' +import getMarket from 'api/markets/getMarket' import getUnderlyingLiquidityAmount from 'api/markets/getMarketUnderlyingLiquidityAmount' -import { BN } from 'utils/helpers' -import { SECONDS_IN_A_YEAR } from 'utils/constants' import getPrice from 'api/prices/getPrice' import { ASSETS } from 'constants/assets' import { byDenom } from 'utils/array' +import { SECONDS_IN_A_YEAR } from 'utils/constants' +import { BN } from 'utils/helpers' export default async function calculateAssetIncentivesApy( denom: string, @@ -29,7 +29,7 @@ export default async function calculateAssetIncentivesApy( .shiftedBy(-assetDecimals) .multipliedBy(assetPrice) - const marketReturns = BN(market.liquidityRate).multipliedBy(marketLiquidityValue) + const marketReturns = BN(market.apy.deposit).multipliedBy(marketLiquidityValue) const annualEmission = totalActiveEmissionValue.multipliedBy(SECONDS_IN_A_YEAR) const totalAnnualReturnsValue = annualEmission.plus(marketReturns) diff --git a/src/api/markets/getMarketBorrowings.ts b/src/api/markets/getMarketBorrowings.ts index fa6b7f03..65cbdf1b 100644 --- a/src/api/markets/getMarketBorrowings.ts +++ b/src/api/markets/getMarketBorrowings.ts @@ -17,7 +17,7 @@ export default async function getMarketBorrowings(): Promise { return { ...asset, - borrowRate: market.borrowRate ?? 0, + borrowRate: market.apy.borrow ?? 0, liquidity: { amount: BN(amount), value: BN(amount).multipliedBy(price), diff --git a/src/components/Account/AccountBalancesTable/useAccountBalanceData.tsx b/src/components/Account/AccountBalancesTable/useAccountBalanceData.tsx index 630e1e45..6fd9b350 100644 --- a/src/components/Account/AccountBalancesTable/useAccountBalanceData.tsx +++ b/src/components/Account/AccountBalancesTable/useAccountBalanceData.tsx @@ -8,8 +8,6 @@ import { ASSETS } from 'constants/assets' import useHLSStakingAssets from 'hooks/useHLSStakingAssets' import usePrices from 'hooks/usePrices' import { byDenom } from 'utils/array' -import { convertLiquidityRateToAPR } from 'utils/formatters' -import { convertAprToApy } from 'utils/parsers' interface Props { account: Account @@ -45,11 +43,9 @@ export default function useAccountBalanceData(props: Props) { const lends = accountLends.map((lending) => { const asset = ASSETS.find(byDenom(lending.denom)) ?? ASSETS[0] - const apr = convertLiquidityRateToAPR( - lendingData.find((market) => market.asset.denom === lending.denom)?.marketLiquidityRate ?? - 0, - ) - const apy = convertAprToApy(apr, 365) + const apy = + lendingData.find((market) => market.asset.denom === lending.denom)?.apy.deposit ?? 0 + const prevLending = updatedAccount ? account?.lends.find((position) => position.denom === lending.denom) : lending @@ -66,7 +62,7 @@ export default function useAccountBalanceData(props: Props) { const debts = accountDebts.map((debt) => { const asset = ASSETS.find(byDenom(debt.denom)) ?? ASSETS[0] - const apy = borrowingData.find((market) => market.asset.denom === debt.denom)?.borrowRate ?? 0 + const apy = borrowingData.find((market) => market.asset.denom === debt.denom)?.apy.borrow ?? 0 const prevDebt = updatedAccount ? account?.debts.find((position) => position.denom === debt.denom) : debt diff --git a/src/components/Borrow/Borrowings.tsx b/src/components/Borrow/Borrowings.tsx index ca72ff0d..82535c55 100644 --- a/src/components/Borrow/Borrowings.tsx +++ b/src/components/Borrow/Borrowings.tsx @@ -1,5 +1,3 @@ -import React from 'react' - import AvailableBorrowingsTable from 'components/Borrow/Table/AvailableBorrowingsTable' import DepositedBorrowingsTable from 'components/Borrow/Table/DepositedBorrowingsTable' import { BN_ZERO } from 'constants/math' @@ -24,13 +22,18 @@ function Fallback() { const assets = getBorrowEnabledAssets() const data: BorrowMarketTableData[] = assets.map((asset) => ({ asset, - borrowRate: null, + apy: { + borrow: 0, + deposit: 0, + }, + ltv: { + max: 0, + liq: 0, + }, liquidity: null, - marketMaxLtv: 0, marketDepositAmount: BN_ZERO, marketLiquidityRate: 0, marketLiquidityAmount: BN_ZERO, - marketLiquidationThreshold: 0, })) return diff --git a/src/components/Borrow/Table/Columns/useAvailableColumns.tsx b/src/components/Borrow/Table/Columns/useAvailableColumns.tsx index 70413d5b..72822f67 100644 --- a/src/components/Borrow/Table/Columns/useAvailableColumns.tsx +++ b/src/components/Borrow/Table/Columns/useAvailableColumns.tsx @@ -18,7 +18,7 @@ export default function useAvailableColumns() { }, { ...BORROW_RATE_META, - cell: ({ row }) => , + cell: ({ row }) => , }, { ...LIQUIDITY_META, diff --git a/src/components/Borrow/Table/Columns/useDepositedColumns.tsx b/src/components/Borrow/Table/Columns/useDepositedColumns.tsx index bd3d66b6..1fe2e63b 100644 --- a/src/components/Borrow/Table/Columns/useDepositedColumns.tsx +++ b/src/components/Borrow/Table/Columns/useDepositedColumns.tsx @@ -24,7 +24,7 @@ export default function useDepositedColumns() { }, { ...BORROW_RATE_META, - cell: ({ row }) => , + cell: ({ row }) => , }, { ...LIQUIDITY_META, diff --git a/src/components/DepositCapCell.tsx b/src/components/DepositCapCell.tsx index 51ba0edb..feffa34c 100644 --- a/src/components/DepositCapCell.tsx +++ b/src/components/DepositCapCell.tsx @@ -12,7 +12,7 @@ export default function DepositCapCell(props: Props) { .dividedBy(props.depositCap.max.multipliedBy(VAULT_DEPOSIT_BUFFER)) .multipliedBy(100) .integerValue() - + const depositCapUsed = Math.min(percent.toNumber(), 100) const decimals = getAssetByDenom(props.depositCap.denom)?.decimals ?? 6 return ( @@ -27,7 +27,7 @@ export default function DepositCapCell(props: Props) { } sub={ diff --git a/src/components/Earn/Lend/Table/Columns/Apy.tsx b/src/components/Earn/Lend/Table/Columns/Apy.tsx index 62c9ab5e..483a36f6 100644 --- a/src/components/Earn/Lend/Table/Columns/Apy.tsx +++ b/src/components/Earn/Lend/Table/Columns/Apy.tsx @@ -1,11 +1,10 @@ import AssetRate from 'components/Asset/AssetRate' import Loading from 'components/Loading' -import { convertAprToApy } from 'utils/parsers' -export const APY_META = { accessorKey: 'marketLiquidityRate', header: 'APY' } +export const APY_META = { accessorKey: 'apy.deposit', header: 'APY' } interface Props { - marketLiquidityRate: number + apy: number borrowEnabled: boolean isLoading: boolean } @@ -14,7 +13,7 @@ export default function Apr(props: Props) { return ( { const assetA = a.original.asset const assetB = b.original.asset - if (!a.original.marketDepositCap || !b.original.marketDepositCap) return 0 + if (!a.original.cap.max || !b.original.cap.max) return 0 - const marketDepositCapA = demagnify(a.original.marketDepositCap, assetA) - const marketDepositCapB = demagnify(b.original.marketDepositCap, assetB) + const marketDepositCapA = demagnify(a.original.cap.max, assetA) + const marketDepositCapB = demagnify(b.original.cap.max, assetB) return marketDepositCapA - marketDepositCapB } @@ -30,22 +30,23 @@ interface Props { } export default function DepositCap(props: Props) { if (props.isLoading) return - const { marketDepositCap, marketDepositAmount, asset } = props.data - const percent = marketDepositAmount.dividedBy(marketDepositCap).multipliedBy(100) + const { cap, asset } = props.data + const percent = cap.used.dividedBy(cap.max).multipliedBy(100) + const depositCapUsed = Math.min(percent.toNumber(), 100) return ( } sub={ diff --git a/src/components/Earn/Lend/Table/Columns/useAvailableColumns.tsx b/src/components/Earn/Lend/Table/Columns/useAvailableColumns.tsx index 2fdf2269..43811b6f 100644 --- a/src/components/Earn/Lend/Table/Columns/useAvailableColumns.tsx +++ b/src/components/Earn/Lend/Table/Columns/useAvailableColumns.tsx @@ -26,7 +26,7 @@ export default function useAvailableColumns(props: Props) { ), }, diff --git a/src/components/Earn/Lend/Table/Columns/useDepositedColumns.tsx b/src/components/Earn/Lend/Table/Columns/useDepositedColumns.tsx index 73127ed3..c6ea5d50 100644 --- a/src/components/Earn/Lend/Table/Columns/useDepositedColumns.tsx +++ b/src/components/Earn/Lend/Table/Columns/useDepositedColumns.tsx @@ -37,7 +37,7 @@ export default function useDepositedColumns(props: Props) { ), }, diff --git a/src/components/MarketDetails.tsx b/src/components/MarketDetails.tsx index 607a8a65..0fb17a5c 100644 --- a/src/components/MarketDetails.tsx +++ b/src/components/MarketDetails.tsx @@ -23,13 +23,7 @@ export default function MarketDetails({ row, type }: Props) { symbol: displayCurrencySymbol, } = useDisplayCurrencyPrice() - const { - asset, - marketMaxLtv, - marketDepositAmount, - marketLiquidityAmount, - marketLiquidationThreshold, - } = row.original + const { asset, ltv, marketDepositAmount, marketLiquidityAmount } = row.original const totalBorrowed = marketDepositAmount.minus(marketLiquidityAmount) @@ -48,12 +42,12 @@ export default function MarketDetails({ row, type }: Props) { title: 'Total Supplied', }, { - amount: marketMaxLtv * 100, + amount: ltv.max * 100, options: { minDecimals: 2, maxDecimals: 2, suffix: '%' }, title: 'Max LTV', }, { - amount: marketLiquidationThreshold * 100, + amount: ltv.liq * 100, options: { minDecimals: 2, maxDecimals: 2, suffix: '%' }, title: 'Liquidation LTV', }, @@ -114,8 +108,7 @@ export default function MarketDetails({ row, type }: Props) { type, asset, marketDepositAmount, - marketMaxLtv, - marketLiquidationThreshold, + ltv, totalBorrowed, displayCurrencySymbol, convertAmount, diff --git a/src/components/Modals/AssetsSelect/useAssetTableColumns.tsx b/src/components/Modals/AssetsSelect/useAssetTableColumns.tsx index a49a3382..748c56b7 100644 --- a/src/components/Modals/AssetsSelect/useAssetTableColumns.tsx +++ b/src/components/Modals/AssetsSelect/useAssetTableColumns.tsx @@ -10,7 +10,6 @@ import Text from 'components/Text' import { BNCoin } from 'types/classes/BNCoin' import { getAssetByDenom } from 'utils/assets' import { demagnify, formatPercent } from 'utils/formatters' -import { convertAprToApy } from 'utils/parsers' function showBorrowRate(data: AssetTableRow[]) { const assetData = data.length && (data[0].asset as BorrowAsset) @@ -29,8 +28,7 @@ export default function useAssetTableColumns(isBorrow: boolean) { const market = row.original.market const borrowAsset = row.original.asset as BorrowAsset const showRate = !borrowAsset?.borrowRate - const rate = isBorrow ? market?.borrowRate : market?.liquidityRate - const apy = convertAprToApy(rate ?? 0, 365) + const apy = isBorrow ? market?.apy.borrow : market?.apy.deposit return (
@@ -47,7 +45,7 @@ export default function useAssetTableColumns(isBorrow: boolean) { {showRate && market ? ( getDebtAmountWithInterest(totalDebt, Number(apr)), - [totalDebt, apr], + () => getDebtAmountWithInterest(totalDebt, apy), + [totalDebt, apy], ) const maxRepayAmount = useMemo(() => { @@ -201,7 +201,7 @@ function BorrowModal(props: Props) { >
{totalDebt.isGreaterThan(0) && ( diff --git a/src/components/Modals/LendAndReclaim/DetailsHeader.tsx b/src/components/Modals/LendAndReclaim/DetailsHeader.tsx index e8f0e587..f2439db7 100644 --- a/src/components/Modals/LendAndReclaim/DetailsHeader.tsx +++ b/src/components/Modals/LendAndReclaim/DetailsHeader.tsx @@ -10,7 +10,7 @@ interface Props { } function DetailsHeader({ data }: Props) { - const { asset, marketDepositCap, accountLentAmount } = data + const { asset, cap, accountLentAmount } = data const { data: assetApy } = useAssetIncentivesApy(asset.denom) const balanceInWallet = useCurrentWalletBalance(asset.denom) @@ -59,9 +59,7 @@ function DetailsHeader({ data }: Props) { )} + } sub={'Deposit Cap'} /> diff --git a/src/components/Modals/Vault/VaultBorrowings.tsx b/src/components/Modals/Vault/VaultBorrowings.tsx index b8264742..d2ae0736 100644 --- a/src/components/Modals/Vault/VaultBorrowings.tsx +++ b/src/components/Modals/Vault/VaultBorrowings.tsx @@ -225,7 +225,7 @@ export default function VaultBorrowings(props: VaultBorrowingsProps) {
{props.borrowings.map((coin) => { const asset = getAssetByDenom(coin.denom) - const borrowRate = marketAssets?.find((market) => market.denom === coin.denom)?.borrowRate + const borrowRate = marketAssets?.find((market) => market.denom === coin.denom)?.apy.borrow if (!asset || !borrowRate) return diff --git a/src/components/Modals/WithdrawFromVaultsModal.tsx b/src/components/Modals/WithdrawFromVaultsModal.tsx index 33520898..18994c7c 100644 --- a/src/components/Modals/WithdrawFromVaultsModal.tsx +++ b/src/components/Modals/WithdrawFromVaultsModal.tsx @@ -7,18 +7,20 @@ import Modal from 'components/Modal' import Text from 'components/Text' import { DEFAULT_SETTINGS } from 'constants/defaultSettings' import { LocalStorageKeys } from 'constants/localStorageKeys' +import { ORACLE_DENOM } from 'constants/oracle' import useAccountId from 'hooks/useAccountId' import useLocalStorage from 'hooks/useLocalStorage' +import usePrices from 'hooks/usePrices' import useStore from 'store' import { BNCoin } from 'types/classes/BNCoin' +import { byDenom } from 'utils/array' import { getAssetByDenom } from 'utils/assets' -import { demagnify } from 'utils/formatters' export default function WithdrawFromVaultsModal() { const modal = useStore((s) => s.withdrawFromVaultsModal) const accountId = useAccountId() + const { data: prices } = usePrices() const withdrawFromVaults = useStore((s) => s.withdrawFromVaults) - const baseCurrency = useStore((s) => s.baseCurrency) const [slippage] = useLocalStorage(LocalStorageKeys.SLIPPAGE, DEFAULT_SETTINGS.slippage) function onClose() { @@ -52,12 +54,18 @@ export default function WithdrawFromVaultsModal() { {modal ? (
{modal.map((vault) => { - const positionValue = vault.values.primary.plus(vault.values.secondary) - const coin = BNCoin.fromDenomAndBigNumber(baseCurrency.denom, positionValue) + const positionValue = vault.values.unlocking + const coin = BNCoin.fromDenomAndBigNumber(ORACLE_DENOM, positionValue) const primaryAsset = getAssetByDenom(vault.denoms.primary) const secondaryAsset = getAssetByDenom(vault.denoms.secondary) if (!primaryAsset || !secondaryAsset) return null + const primaryAssetPrice = prices.find(byDenom(primaryAsset.denom))?.amount ?? 1 + const secondaryAssetPrice = prices.find(byDenom(secondaryAsset.denom))?.amount ?? 1 + + const primaryAssetAmount = positionValue.dividedBy(primaryAssetPrice).dividedBy(2) + const secondaryAssetAmount = positionValue.dividedBy(secondaryAssetPrice).dividedBy(2) + return (
diff --git a/src/components/Select/Option.tsx b/src/components/Select/Option.tsx index c82470a4..1162d9ac 100644 --- a/src/components/Select/Option.tsx +++ b/src/components/Select/Option.tsx @@ -11,7 +11,6 @@ import useMarketAssets from 'hooks/useMarketAssets' import { BNCoin } from 'types/classes/BNCoin' import { byDenom } from 'utils/array' import { formatValue } from 'utils/formatters' -import { convertAprToApy } from 'utils/parsers' interface Props extends SelectOption { isSelected?: boolean @@ -80,7 +79,7 @@ export default function Option(props: Props) { })} { + markets.forEach(({ denom, apy, ltv }) => { const asset = getAssetByDenom(denom) as Asset const borrow = borrowData.find((borrow) => borrow.denom === denom) const marketDepositAmount = BN(marketDeposits.find(byDenom(denom))?.amount ?? 0) @@ -41,9 +41,8 @@ export default function useBorrowMarketAssetsTableData(suspense = true) { debt: debt?.amount, marketDepositAmount, marketLiquidityAmount, - marketLiquidityRate: liquidityRate, - marketLiquidationThreshold: liquidationThreshold, - marketMaxLtv: maxLtv, + apy, + ltv, } ;(borrowMarketAsset.debt ? accountBorrowedAssets : availableAssets).push(borrowMarketAsset) }) diff --git a/src/hooks/useLendingMarketAssetsTableData.ts b/src/hooks/useLendingMarketAssetsTableData.ts index a80c5f47..2d1c6cc5 100644 --- a/src/hooks/useLendingMarketAssetsTableData.ts +++ b/src/hooks/useLendingMarketAssetsTableData.ts @@ -3,6 +3,7 @@ import { useMemo } from 'react' import useCurrentAccountLends from 'hooks/useCurrentAccountLends' import useDepositEnabledMarkets from 'hooks/useDepositEnabledMarkets' import useDisplayCurrencyPrice from 'hooks/useDisplayCurrencyPrice' +import useMarketDeposits from 'hooks/useMarketDeposits' import useMarketLiquidities from 'hooks/useMarketLiquidities' import { byDenom } from 'utils/array' import { getAssetByDenom } from 'utils/assets' @@ -16,46 +17,45 @@ function useLendingMarketAssetsTableData(): { const markets = useDepositEnabledMarkets() const accountLentAmounts = useCurrentAccountLends() const { data: marketLiquidities } = useMarketLiquidities() + const { data: marketDeposits } = useMarketDeposits() const { convertAmount } = useDisplayCurrencyPrice() return useMemo(() => { const accountLentAssets: LendingMarketTableData[] = [], availableAssets: LendingMarketTableData[] = [] - markets.forEach( - ({ denom, cap, liquidityRate, liquidationThreshold, maxLtv, borrowEnabled }) => { - const asset = getAssetByDenom(denom) as Asset - const marketLiquidityAmount = BN(marketLiquidities.find(byDenom(denom))?.amount ?? 0) - const accountLentAmount = accountLentAmounts.find(byDenom(denom))?.amount - const accountLentValue = accountLentAmount - ? convertAmount(asset, accountLentAmount) - : undefined + markets.forEach(({ denom, cap, ltv, apy, borrowEnabled }) => { + const asset = getAssetByDenom(denom) as Asset + const marketDepositAmount = BN(marketDeposits.find(byDenom(denom))?.amount ?? 0) + const marketLiquidityAmount = BN(marketLiquidities.find(byDenom(denom))?.amount ?? 0) + const accountLentAmount = accountLentAmounts.find(byDenom(denom))?.amount + const accountLentValue = accountLentAmount + ? convertAmount(asset, accountLentAmount) + : undefined - const lendingMarketAsset: LendingMarketTableData = { - asset, - marketDepositAmount: cap.used, - accountLentValue, - accountLentAmount, - marketLiquidityAmount, - marketDepositCap: cap.max, - marketLiquidityRate: liquidityRate, - marketLiquidationThreshold: liquidationThreshold, - marketMaxLtv: maxLtv, - borrowEnabled, - } + const lendingMarketAsset: LendingMarketTableData = { + asset, + marketDepositAmount, + accountLentValue, + accountLentAmount, + marketLiquidityAmount, + apy, + ltv, + borrowEnabled, + cap, + } - ;(lendingMarketAsset.accountLentValue ? accountLentAssets : availableAssets).push( - lendingMarketAsset, - ) - }, - ) + ;(lendingMarketAsset.accountLentValue ? accountLentAssets : availableAssets).push( + lendingMarketAsset, + ) + }) return { accountLentAssets, availableAssets, allAssets: [...accountLentAssets, ...availableAssets], } - }, [markets, marketLiquidities, accountLentAmounts, convertAmount]) + }, [markets, marketLiquidities, accountLentAmounts, marketDeposits, convertAmount]) } export default useLendingMarketAssetsTableData diff --git a/src/types/interfaces/asset.d.ts b/src/types/interfaces/asset.d.ts index 3f441f7f..16bbe89b 100644 --- a/src/types/interfaces/asset.d.ts +++ b/src/types/interfaces/asset.d.ts @@ -88,7 +88,6 @@ interface BigNumberCoin { } interface BorrowMarketTableData extends MarketTableData { - borrowRate: number | null liquidity: { amount: BigNumber value: BigNumber @@ -97,19 +96,24 @@ interface BorrowMarketTableData extends MarketTableData { } interface LendingMarketTableData extends MarketTableData { - marketDepositCap: BigNumber accountLentAmount?: string accountLentValue?: BigNumber borrowEnabled: boolean + cap: DepositCap } interface MarketTableData { asset: Asset - marketMaxLtv: number marketDepositAmount: BigNumber - marketLiquidityRate: number marketLiquidityAmount: BigNumber - marketLiquidationThreshold: number + apy: { + borrow: number + deposit: number + } + ltv: { + max: number + liq: number + } } interface HLSStrategy extends HLSStrategyNoCap { diff --git a/src/types/interfaces/market.d.ts b/src/types/interfaces/market.d.ts index d6e5523b..0dbd1e34 100644 --- a/src/types/interfaces/market.d.ts +++ b/src/types/interfaces/market.d.ts @@ -1,12 +1,16 @@ interface Market { denom: string - borrowRate: number debtTotalScaled: string collateralTotalScaled: string depositEnabled: boolean borrowEnabled: boolean cap: DepositCap - maxLtv: number - liquidityRate: number - liquidationThreshold: number + apy: { + borrow: number + deposit: number + } + ltv: { + max: number + liq: number + } } diff --git a/src/utils/accounts.ts b/src/utils/accounts.ts index 596add35..d0d07f24 100644 --- a/src/utils/accounts.ts +++ b/src/utils/accounts.ts @@ -107,10 +107,15 @@ export const calculateAccountApr = ( if (!asset) return BN_ZERO const price = prices.find(byDenom(lend.denom))?.amount ?? 0 const amount = BN(lend.amount).shiftedBy(-asset.decimals) - const apr = - lendingAssetsData.find((lendingAsset) => lendingAsset.asset.denom === lend.denom) - ?.marketLiquidityRate ?? 0 - const positionInterest = amount.multipliedBy(price).multipliedBy(apr).dividedBy(100) + const apy = lendingAssetsData.find((lendingAsset) => lendingAsset.asset.denom === lend.denom) + ?.apy.deposit + + if (!apy) return + + const positionInterest = amount + .multipliedBy(price) + .multipliedBy(convertApyToApr(apy, 365)) + .dividedBy(100) totalLendsInterestValue = totalLendsInterestValue.plus(positionInterest) }) @@ -125,9 +130,11 @@ export const calculateAccountApr = ( if (!asset) return BN_ZERO const price = prices.find(byDenom(debt.denom))?.amount ?? 0 const amount = BN(debt.amount).shiftedBy(-asset.decimals) - const apy = - borrowAssetsData.find((borrowAsset) => borrowAsset.asset.denom === debt.denom)?.borrowRate ?? - 0 + const apy = borrowAssetsData.find((borrowAsset) => borrowAsset.asset.denom === debt.denom)?.apy + .borrow + + if (!apy) return + const positionInterest = amount .multipliedBy(price) .multipliedBy(convertApyToApr(apy, 365)) diff --git a/src/utils/resolvers.ts b/src/utils/resolvers.ts index ac461986..856b3c5a 100644 --- a/src/utils/resolvers.ts +++ b/src/utils/resolvers.ts @@ -14,7 +14,10 @@ export function resolveMarketResponse( ): Market { return { denom: marketResponse.denom, - borrowRate: convertAprToApy(Number(marketResponse.borrow_rate), 365) * 100, + apy: { + borrow: convertAprToApy(Number(marketResponse.borrow_rate), 365) * 100, + deposit: convertAprToApy(Number(marketResponse.liquidity_rate), 365) * 100, + }, debtTotalScaled: marketResponse.debt_total_scaled, collateralTotalScaled: marketResponse.collateral_total_scaled, depositEnabled: assetParamsResponse.red_bank.deposit_enabled, @@ -24,9 +27,10 @@ export function resolveMarketResponse( used: BN(assetCapResponse.amount), max: BN(assetParamsResponse.deposit_cap), }, - maxLtv: Number(assetParamsResponse.max_loan_to_value), - liquidityRate: Number(marketResponse.liquidity_rate) * 100, - liquidationThreshold: Number(assetParamsResponse.liquidation_threshold), + ltv: { + max: Number(assetParamsResponse.max_loan_to_value), + liq: Number(assetParamsResponse.liquidation_threshold), + }, } }