UNPKG

@moonwell-fi/moonwell-sdk

Version:

TypeScript Interface for Moonwell

67 lines 3 kB
/** * Lunar Indexer Response Transformers * * Transforms Lunar Indexer API responses to match the SDK's internal types. */ import type { MarketSnapshot } from "../types/market.js"; import type { MorphoVaultStakingSnapshot } from "../types/morphoVault.js"; import type { StakingSnapshot } from "../types/staking.js"; import type { UserPositionSnapshot } from "../types/userPosition.js"; import type { LunarMarketSnapshot, LunarPortfolio, LunarStakingSnapshot, LunarVaultStakingSnapshot } from "./lunar-indexer-client.js"; /** * Transform a Lunar market snapshot to SDK MarketSnapshot format * * Key differences: * - Lunar uses decimal numbers, SDK uses numbers * - Lunar has timeInterval field (not needed in SDK) * - Field name mapping: totalSupplies → totalSupply, totalBorrows → totalBorrows */ export declare function transformMarketSnapshot(lunar: LunarMarketSnapshot, chainId: number): MarketSnapshot; /** * Transform an array of Lunar market snapshots */ export declare function transformMarketSnapshots(snapshots: LunarMarketSnapshot[], chainId: number): MarketSnapshot[]; /** * Transform Lunar portfolio to SDK UserPositionSnapshot array * * Key transformation: * - Aggregate per-market USD balances across all markets per timestamp * - Sum supplyBalanceUsd → totalSupplyUsd * - Sum borrowBalanceUsd → totalBorrowsUsd * - Assume totalCollateralUsd = totalSupplyUsd (all supplies are collateral) */ export declare function transformPortfolioToSnapshots(lunarPortfolio: LunarPortfolio, chainId: number): UserPositionSnapshot[]; /** * Transform a Lunar staking snapshot to SDK StakingSnapshot format * * Key differences: * - Lunar returns totalStaked/totalStakedUSD as decimal strings * - Lunar timestamp is already in Unix seconds (same as SDK) */ export declare function transformStakingSnapshot(snapshot: LunarStakingSnapshot): StakingSnapshot; /** * Transform an array of Lunar staking snapshots */ export declare function transformStakingSnapshots(snapshots: LunarStakingSnapshot[]): StakingSnapshot[]; /** * Transform a Lunar vault staking snapshot to SDK MorphoVaultStakingSnapshot format * * Key differences: * - Lunar returns totalStaked/totalStakedUSD as decimal strings * - Lunar timestamp is in Unix seconds; SDK expects milliseconds * - Lunar field is totalStakedUSD (uppercase); SDK type is totalStakedUsd (mixed case) */ export declare function transformVaultStakingSnapshot(snapshot: LunarVaultStakingSnapshot): MorphoVaultStakingSnapshot; /** * Transform an array of Lunar vault staking snapshots */ export declare function transformVaultStakingSnapshots(snapshots: LunarVaultStakingSnapshot[]): MorphoVaultStakingSnapshot[]; /** * Check if there are more pages available */ export declare function hasMorePages(nextCursor: string | null): boolean; /** * Extract cursor for next page */ export declare function getNextCursor(nextCursor: string | null): string | undefined; //# sourceMappingURL=lunar-indexer-transformers.d.ts.map