UNPKG

@drift-labs/common

Version:

Common functions for Drift

87 lines (86 loc) 2.75 kB
import { DriftClient, DriftEnv, SpotMarketConfig } from '@drift-labs/sdk'; import { LstMetrics } from '../types/Superstake'; declare const getSuperstakeEstimatedApr: ({ lstSpotMarket, lstMetrics, initialLstDeposit, lstAmount, solAmount, driftClient, driftClientIsReady, driftEnv, includeBorrowRateDelta, }: { lstSpotMarket: SpotMarketConfig; lstAmount: number; initialLstDeposit: number; solAmount: number; lstMetrics: LstMetrics; driftClient: DriftClient; driftClientIsReady?: boolean; driftEnv?: DriftEnv; includeBorrowRateDelta?: boolean; }) => { solBorrowRate: number; lstDepositRate: number; lstApy: number; leveragedBorrowRate: number; leveragedDepositRate: number; leveragedLstApr: number; leveragedEmissionsApr: number; lstNetProjectedApr: number; totalNetProjectedApr: number; solBorrowAmount: number; projectedLiqRatio: number; unleveragedApr: number; loaded: boolean; } | { solBorrowRate: number; lstDepositRate: number; lstApy: number; leveragedLstApr: number; leveragedEmissionsApr: number; leveragedBorrowRate: number; leveragedDepositRate: number; lstNetProjectedApr: number; totalNetProjectedApr: number; solBorrowAmount: number; unleveragedApr: number; loaded: boolean; }; declare const getSuperstakeEstimatedLiquidationRatio: ({ driftEnv, driftClient, driftClientIsReady, lstAmount, lstMetrics, lstSpotMarket, solAmount, }: { driftEnv?: DriftEnv; driftClient: DriftClient; driftClientIsReady?: boolean; lstAmount: number; solAmount: number; lstSpotMarket: SpotMarketConfig; lstMetrics: LstMetrics; }) => number; /** * Fetches LST Metrics with a consistent return type for either msol, bsol, or jitosol * * @param lstSpotMarket * @returns */ declare const fetchLstMetrics: (lstSpotMarket: SpotMarketConfig) => Promise<{ lstPriceApy30d: number; priceInSol: number; loaded: boolean; emissionsApy?: undefined; driftEmissions?: undefined; } | { loaded: boolean; lstPriceApy30d: number; priceInSol: number; emissionsApy: number; driftEmissions: number; }>; /** * Returns estimated max spot leverage for a particular lst * * @param lst * @param driftClient * @param driftClientIsReady * @returns */ declare const getMaxLeverageForLst: ({ lstSpotMarket, solSpotMarket, driftClient, driftClientIsReady, }: { lstSpotMarket: SpotMarketConfig; solSpotMarket: SpotMarketConfig; driftClient: DriftClient; driftClientIsReady: boolean; }) => { maxLeverage: number; loaded: boolean; }; export { getMaxLeverageForLst, getSuperstakeEstimatedApr, getSuperstakeEstimatedLiquidationRatio, fetchLstMetrics, };