UNPKG

@dainprotocol/drift-sdk

Version:

SDK for Drift Protocol

41 lines 2.56 kB
/// <reference types="bn.js" /> import { BN } from '@coral-xyz/anchor'; import { PerpMarketAccount, PositionDirection, MarginCategory, SpotMarketAccount } from '../types'; import { OraclePriceData } from '../oracles/types'; import { DLOB } from '../dlob/DLOB'; /** * Calculates market mark price * * @param market * @return markPrice : Precision PRICE_PRECISION */ export declare function calculateReservePrice(market: PerpMarketAccount, oraclePriceData: OraclePriceData): BN; /** * Calculates market bid price * * @param market * @return bidPrice : Precision PRICE_PRECISION */ export declare function calculateBidPrice(market: PerpMarketAccount, oraclePriceData: OraclePriceData): BN; /** * Calculates market ask price * * @param market * @return askPrice : Precision PRICE_PRECISION */ export declare function calculateAskPrice(market: PerpMarketAccount, oraclePriceData: OraclePriceData): BN; export declare function calculateNewMarketAfterTrade(baseAssetAmount: BN, direction: PositionDirection, market: PerpMarketAccount): PerpMarketAccount; export declare function calculateOracleReserveSpread(market: PerpMarketAccount, oraclePriceData: OraclePriceData): BN; export declare function calculateOracleSpread(price: BN, oraclePriceData: OraclePriceData): BN; export declare function calculateMarketMarginRatio(market: PerpMarketAccount, size: BN, marginCategory: MarginCategory, customMarginRatio?: number, userHighLeverageMode?: boolean): number; export declare function calculateUnrealizedAssetWeight(market: PerpMarketAccount, quoteSpotMarket: SpotMarketAccount, unrealizedPnl: BN, marginCategory: MarginCategory, oraclePriceData: OraclePriceData): BN; export declare function calculateMarketAvailablePNL(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount): BN; export declare function calculateMarketMaxAvailableInsurance(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount): BN; export declare function calculateNetUserPnl(perpMarket: PerpMarketAccount, oraclePriceData: OraclePriceData): BN; export declare function calculateNetUserPnlImbalance(perpMarket: PerpMarketAccount, spotMarket: SpotMarketAccount, oraclePriceData: OraclePriceData, applyFeePoolDiscount?: boolean): BN; export declare function calculateAvailablePerpLiquidity(market: PerpMarketAccount, oraclePriceData: OraclePriceData, dlob: DLOB, slot: number): { bids: BN; asks: BN; }; export declare function calculatePerpMarketBaseLiquidatorFee(market: PerpMarketAccount, userHighLeverageMode: boolean): number; //# sourceMappingURL=market.d.ts.map