UNPKG

@drift-labs/sdk-browser

Version:
38 lines (37 loc) 3.13 kB
/// <reference types="bn.js" /> import { User } from '../user'; import { PerpMarketAccount, AMM, Order, PositionDirection, ProtectedMakerParams, MarketTypeStr, StateAccount } from '../types'; import { BN } from '@coral-xyz/anchor'; import { MMOraclePriceData, OraclePriceData } from '../oracles/types'; export declare function isOrderRiskIncreasing(user: User, order: Order): boolean; export declare function isOrderRiskIncreasingInSameDirection(user: User, order: Order): boolean; export declare function isOrderReduceOnly(user: User, order: Order): boolean; export declare function standardizeBaseAssetAmount(baseAssetAmount: BN, stepSize: BN): BN; export declare function standardizePrice(price: BN, tickSize: BN, direction: PositionDirection): BN; export declare function getLimitPrice<T extends MarketTypeStr>(order: Order, oraclePriceData: T extends 'spot' ? OraclePriceData : MMOraclePriceData, slot: number, fallbackPrice?: BN, protectedMakerParams?: ProtectedMakerParams): BN | undefined; export declare function applyProtectedMakerParams(limitPrice: BN, direction: PositionDirection, protectedMakerParams: ProtectedMakerParams): BN; export declare function hasLimitPrice(order: Order, slot: number): boolean; export declare function hasAuctionPrice(order: Order, slot: number): boolean; export declare function isFillableByVAMM(order: Order, market: PerpMarketAccount, mmOraclePriceData: MMOraclePriceData, slot: number, ts: number, state: StateAccount): boolean; export declare function isLowRiskForAmm(order: Order, mmOraclePriceData: MMOraclePriceData, isLiquidation?: boolean): boolean; export declare function calculateBaseAssetAmountForAmmToFulfill(order: Order, market: PerpMarketAccount, mmOraclePriceData: MMOraclePriceData, slot: number): BN; export declare function calculateBaseAssetAmountToFillUpToLimitPrice(order: Order, amm: AMM, limitPrice: BN, mmOraclePriceData: MMOraclePriceData): BN; export declare function isOrderExpired(order: Order, ts: number, enforceBuffer?: boolean, bufferSeconds?: number): boolean; export declare function isMarketOrder(order: Order): boolean; export declare function isLimitOrder(order: Order): boolean; export declare function mustBeTriggered(order: Order): boolean; export declare function isTriggered(order: Order): boolean; export declare function isRestingLimitOrder(order: Order, slot: number): boolean; export declare function isTakingOrder(order: Order, slot: number): boolean; export declare function isSignedMsgOrder(order: Order): boolean; export declare function hasBuilder(order: Order): boolean; export declare function calculateOrderBaseAssetAmount(order: Order, existingBaseAssetAmount: BN): BN; /** * Invert the size-premium liability weight: given a target margin ratio (liability weight), * return the max `size` (AMM_RESERVE_PRECISION units) that still yields <= target. * * Returns: * - BN size (>=0) if bounded * - null if impossible (target < liabilityWeight) OR imfFactor == 0 (unbounded) */ export declare function maxSizeForTargetLiabilityWeightBN(target: BN, imfFactor: BN, liabilityWeight: BN, market: PerpMarketAccount): BN | null;