UNPKG

@drift-labs/sdk

Version:
71 lines 3.16 kB
/// <reference types="bn.js" /> import { BN } from '@coral-xyz/anchor'; import { MMOraclePriceData, OraclePriceData } from '../oracles/types'; import { PerpMarketAccount, PositionDirection, PerpPosition, SpotMarketAccount } from '../types'; /** * calculateBaseAssetValue * = market value of closing entire position * @param market * @param userPosition * @param oraclePriceData * @returns Base Asset Value. : Precision QUOTE_PRECISION */ export declare function calculateBaseAssetValue(market: PerpMarketAccount, userPosition: PerpPosition, mmOraclePriceData: MMOraclePriceData, useSpread?: boolean, skipUpdate?: boolean, latestSlot?: BN): BN; /** * calculatePositionPNL * = BaseAssetAmount * (Avg Exit Price - Avg Entry Price) * @param market * @param PerpPosition * @param withFunding (adds unrealized funding payment pnl to result) * @param oraclePriceData * @returns BaseAssetAmount : Precision QUOTE_PRECISION */ export declare function calculatePositionPNL(market: PerpMarketAccount, perpPosition: PerpPosition, withFunding: boolean, oraclePriceData: Pick<OraclePriceData, 'price'>): BN; export declare function calculateClaimablePnl(market: PerpMarketAccount, spotMarket: SpotMarketAccount, perpPosition: PerpPosition, oraclePriceData: Pick<OraclePriceData, 'price'>): BN; /** * Returns total fees and funding pnl for a position * * @param market * @param PerpPosition * @param includeUnsettled include unsettled funding in return value (default: true) * @returns — // QUOTE_PRECISION */ export declare function calculateFeesAndFundingPnl(market: PerpMarketAccount, perpPosition: PerpPosition, includeUnsettled?: boolean): BN; /** * Returns unsettled funding pnl for the position * * To calculate all fees and funding pnl including settled, use calculateFeesAndFundingPnl * * @param market * @param PerpPosition * @returns // QUOTE_PRECISION */ export declare function calculateUnsettledFundingPnl(market: PerpMarketAccount, perpPosition: PerpPosition): BN; /** * @deprecated use calculateUnsettledFundingPnl or calculateFeesAndFundingPnl instead */ export declare function calculatePositionFundingPNL(market: PerpMarketAccount, perpPosition: PerpPosition): BN; export declare function positionIsAvailable(position: PerpPosition): boolean; /** * * @param userPosition * @returns Precision: PRICE_PRECISION (10^6) */ export declare function calculateBreakEvenPrice(userPosition: PerpPosition): BN; /** * * @param userPosition * @returns Precision: PRICE_PRECISION (10^6) */ export declare function calculateEntryPrice(userPosition: PerpPosition): BN; /** * * @param userPosition * @returns Precision: PRICE_PRECISION (10^10) */ export declare function calculateCostBasis(userPosition: PerpPosition, includeSettledPnl?: boolean): BN; export declare function findDirectionToClose(userPosition: PerpPosition): PositionDirection; export declare function positionCurrentDirection(userPosition: PerpPosition): PositionDirection; export declare function isEmptyPosition(userPosition: PerpPosition): boolean; export declare function hasOpenOrders(position: PerpPosition): boolean; //# sourceMappingURL=position.d.ts.map