@moonwell-fi/moonwell-sdk
Version:
TypeScript Interface for Moonwell
76 lines • 3.08 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.transformMarketSnapshot = transformMarketSnapshot;
exports.transformMarketSnapshots = transformMarketSnapshots;
exports.transformPortfolioToSnapshots = transformPortfolioToSnapshots;
exports.transformStakingSnapshot = transformStakingSnapshot;
exports.transformStakingSnapshots = transformStakingSnapshots;
exports.transformVaultStakingSnapshot = transformVaultStakingSnapshot;
exports.transformVaultStakingSnapshots = transformVaultStakingSnapshots;
exports.hasMorePages = hasMorePages;
exports.getNextCursor = getNextCursor;
function transformMarketSnapshot(lunar, chainId) {
return {
chainId,
marketId: lunar.marketAddress,
totalSupply: Number(lunar.totalSupplies),
totalSupplyUsd: Number(lunar.totalSuppliesUSD),
totalBorrows: Number(lunar.totalBorrows),
totalBorrowsUsd: Number(lunar.totalBorrowsUSD),
totalLiquidity: Number(lunar.totalLiquidity),
totalLiquidityUsd: Number(lunar.totalLiquidityUSD),
totalReallocatableLiquidity: 0,
totalReallocatableLiquidityUsd: 0,
baseSupplyApy: Number(lunar.baseSupplyApy),
baseBorrowApy: Number(lunar.baseBorrowApy),
timestamp: Number(lunar.timestamp) * 1000,
loanTokenPrice: 0,
collateralTokenPrice: 0,
};
}
function transformMarketSnapshots(snapshots, chainId) {
return snapshots.map((snapshot) => transformMarketSnapshot(snapshot, chainId));
}
function transformPortfolioToSnapshots(lunarPortfolio, chainId) {
return lunarPortfolio.positions.map((position) => {
const totalSupplyUsd = position.markets.reduce((sum, market) => sum + Number.parseFloat(market.supplyBalanceUsd || "0"), 0);
const totalBorrowsUsd = position.markets.reduce((sum, market) => sum + Number.parseFloat(market.borrowBalanceUsd || "0"), 0);
return {
chainId,
timestamp: position.timestamp * 1000,
totalSupplyUsd,
totalBorrowsUsd,
totalCollateralUsd: totalSupplyUsd,
};
});
}
function transformStakingSnapshot(snapshot) {
return {
chainId: snapshot.chainId,
totalStaked: Number(snapshot.totalStaked),
totalStakedUSD: Number(snapshot.totalStakedUSD),
timestamp: snapshot.timestamp,
};
}
function transformStakingSnapshots(snapshots) {
return snapshots.map(transformStakingSnapshot);
}
function transformVaultStakingSnapshot(snapshot) {
return {
chainId: snapshot.chainId,
vaultAddress: snapshot.vaultAddress,
totalStaked: Number(snapshot.totalStaked),
totalStakedUsd: Number(snapshot.totalStakedUSD),
timestamp: snapshot.timestamp * 1000,
};
}
function transformVaultStakingSnapshots(snapshots) {
return snapshots.map(transformVaultStakingSnapshot);
}
function hasMorePages(nextCursor) {
return nextCursor !== null;
}
function getNextCursor(nextCursor) {
return nextCursor || undefined;
}
//# sourceMappingURL=lunar-indexer-transformers.js.map