UNPKG

@moonwell-fi/moonwell-sdk

Version:

TypeScript Interface for Moonwell

46 lines 2.04 kB
import { getEnvironmentsFromArgs } from "../../../common/index.js"; import * as logger from "../../../logger/console.js"; import { fetchLiquidStakingRewards, getMarketsData } from "./common.js"; export async function getMarkets(client, args) { const environments = getEnvironmentsFromArgs(client, args); const logId = logger.start("getMarkets", "Starting to get markets..."); const settlements = await Promise.allSettled(environments.map((environment) => getMarketsData(environment))); const result = settlements .filter((s) => s.status === "fulfilled") .map((s) => s.value); if (args?.includeLiquidStakingRewards === true) { const liquidStakingRewards = await fetchLiquidStakingRewards(); for (const item of result.flat()) { if (item.underlyingToken.symbol.toLowerCase() === "cbeth") { item.rewards.push({ token: item.underlyingToken, supplyApr: 0, borrowApr: 0, liquidStakingApr: liquidStakingRewards.cbETH, }); } if (item.underlyingToken.symbol.toLowerCase() === "reth") { item.rewards.push({ token: item.underlyingToken, supplyApr: 0, borrowApr: 0, liquidStakingApr: liquidStakingRewards.rETH, }); } if (item.underlyingToken.symbol.toLowerCase() === "wsteth") { item.rewards.push({ token: item.underlyingToken, supplyApr: 0, borrowApr: 0, liquidStakingApr: liquidStakingRewards.wstETH, }); } item.totalSupplyApr = item.baseSupplyApy + item.rewards.reduce((acc, reward) => acc + reward.supplyApr + reward.liquidStakingApr, 0); } } logger.end(logId); return result.flat(); } //# sourceMappingURL=getMarkets.js.map