use tokenIndex
This commit is contained in:
parent
de255696f9
commit
4c8fb646f8
|
@ -9,6 +9,8 @@ import {
|
||||||
MangoClient,
|
MangoClient,
|
||||||
PerpMarket,
|
PerpMarket,
|
||||||
PerpMarketLayout,
|
PerpMarketLayout,
|
||||||
|
getMarketIndexBySymbol,
|
||||||
|
QUOTE_INDEX,
|
||||||
} from "@blockworks-foundation/mango-client"
|
} from "@blockworks-foundation/mango-client"
|
||||||
import PerpMarketStats from "../models/perp_market_stats"
|
import PerpMarketStats from "../models/perp_market_stats"
|
||||||
import SpotMarketStats from "../models/spot_market_stats"
|
import SpotMarketStats from "../models/spot_market_stats"
|
||||||
|
@ -55,21 +57,23 @@ async function fetchSpotStats() {
|
||||||
// TODO: reduce calls in loadRootBanks
|
// TODO: reduce calls in loadRootBanks
|
||||||
await mangoGroup.loadRootBanks(connection)
|
await mangoGroup.loadRootBanks(connection)
|
||||||
|
|
||||||
const spotMarketStats = groupConfig.spotMarkets.map((spotMarket, index) => {
|
const spotMarketStats = groupConfig.tokens.map((token) => {
|
||||||
const totalDeposits = mangoGroup.getUiTotalDeposit(index)
|
let tokenIndex = getMarketIndexBySymbol(groupConfig, token.symbol)
|
||||||
const totalBorrows = mangoGroup.getUiTotalBorrow(index)
|
tokenIndex = tokenIndex === -1 ? QUOTE_INDEX : tokenIndex
|
||||||
|
const totalDeposits = mangoGroup.getUiTotalDeposit(tokenIndex)
|
||||||
|
const totalBorrows = mangoGroup.getUiTotalBorrow(tokenIndex)
|
||||||
return {
|
return {
|
||||||
time: new Date(),
|
time: new Date(),
|
||||||
name: groupConfig.spotMarkets[index].name,
|
name: token.symbol,
|
||||||
mangoGroup: groupConfig.name,
|
mangoGroup: groupConfig.name,
|
||||||
totalDeposits: totalDeposits.toNumber(),
|
totalDeposits: totalDeposits.toNumber(),
|
||||||
totalBorrows: totalBorrows.toNumber(),
|
totalBorrows: totalBorrows.toNumber(),
|
||||||
depositRate: mangoGroup.getDepositRate(index).toNumber(),
|
depositRate: mangoGroup.getDepositRate(tokenIndex).toNumber(),
|
||||||
borrowRate: mangoGroup.getBorrowRate(index).toNumber(),
|
borrowRate: mangoGroup.getBorrowRate(tokenIndex).toNumber(),
|
||||||
depositIndex: mangoGroup.rootBankAccounts[index].depositIndex.toNumber(),
|
depositIndex: mangoGroup.rootBankAccounts[tokenIndex].depositIndex.toNumber(),
|
||||||
borrowIndex: mangoGroup.rootBankAccounts[index].borrowIndex.toNumber(),
|
borrowIndex: mangoGroup.rootBankAccounts[tokenIndex].borrowIndex.toNumber(),
|
||||||
utilization: totalDeposits.gt(I80F48.fromNumber(0)) ? totalBorrows.div(totalDeposits).toNumber() : 0,
|
utilization: totalDeposits.gt(I80F48.fromNumber(0)) ? totalBorrows.div(totalDeposits).toNumber() : 0,
|
||||||
baseOraclePrice: mangoGroup.getPrice(index, mangoCache).toNumber(),
|
baseOraclePrice: mangoGroup.getPrice(tokenIndex, mangoCache).toNumber(),
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
try {
|
try {
|
||||||
|
@ -95,9 +99,7 @@ async function fetchPerpStats() {
|
||||||
longFunding: perpMarket.longFunding.toNumber(),
|
longFunding: perpMarket.longFunding.toNumber(),
|
||||||
shortFunding: perpMarket.shortFunding.toNumber(),
|
shortFunding: perpMarket.shortFunding.toNumber(),
|
||||||
openInterest: perpMarket.openInterest.toNumber(),
|
openInterest: perpMarket.openInterest.toNumber(),
|
||||||
baseOraclePrice: mangoCache.priceCache[
|
baseOraclePrice: mangoCache.priceCache[groupConfig.perpMarkets[index].marketIndex].price.toNumber(),
|
||||||
groupConfig.perpMarkets[index].marketIndex
|
|
||||||
].price.toNumber(),
|
|
||||||
feesAccrued: perpMarket.feesAccrued.toNumber(),
|
feesAccrued: perpMarket.feesAccrued.toNumber(),
|
||||||
mngoLeft: perpMarket.liquidityMiningInfo.mngoLeft.toNumber(),
|
mngoLeft: perpMarket.liquidityMiningInfo.mngoLeft.toNumber(),
|
||||||
mngoPerPeriod: perpMarket.liquidityMiningInfo.mngoPerPeriod.toNumber(),
|
mngoPerPeriod: perpMarket.liquidityMiningInfo.mngoPerPeriod.toNumber(),
|
||||||
|
|
Loading…
Reference in New Issue