@moonwell-fi/moonwell-sdk
Version:
TypeScript Interface for Moonwell
46 lines • 2.04 kB
JavaScript
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