@drift-labs/common
Version:
Common functions for Drift
87 lines (86 loc) • 2.75 kB
TypeScript
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, };