@moonwell-fi/moonwell-sdk
Version:
TypeScript Interface for Moonwell
64 lines (59 loc) • 1.61 kB
text/typescript
import type { Amount } from "../common/amount.js";
import type { TokenConfig } from "../environments/index.js";
import type { MorphoReward } from "./morphoReward.js";
import type { MorphoStakingReward } from "./morphoStakingReward.js";
export type MorphoVault = {
chainId: number;
vaultKey: string;
vaultToken: TokenConfig;
underlyingToken: TokenConfig;
vaultSupply: Amount;
totalSupply: Amount;
totalSupplyUsd: number;
totalLiquidity: Amount;
totalLiquidityUsd: number;
totalStaked: Amount;
totalStakedUsd: number;
underlyingPrice: number;
baseApy: number;
rewardsApy: number;
totalApy: number;
stakingRewardsApr: number;
totalStakingApr: number;
performanceFee: number;
curators: string[];
timelock: number;
markets: MorphoVaultMarket[];
rewards: Omit<MorphoReward, "marketId">[];
stakingRewards: MorphoStakingReward[];
};
export type MorphoVaultMarket = {
allocation: number;
marketId: string;
marketCollateral: TokenConfig;
marketApy: number;
marketLiquidity: Amount;
marketLiquidityUsd: number;
marketLoanToValue: number;
totalSupplied: Amount;
totalSuppliedUsd: number;
rewards: Omit<MorphoReward, "marketId">[];
};
export type MorphoVaultSnapshot = {
chainId: number;
vaultAddress: string;
totalSupply: number;
totalSupplyUsd: number;
totalBorrows: number;
totalBorrowsUsd: number;
totalLiquidity: number;
totalLiquidityUsd: number;
timestamp: number;
};
export type MorphoVaultStakingSnapshot = {
chainId: number;
vaultAddress: string;
totalStaked: number;
totalStakedUsd: number;
timestamp: number;
};