Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

  • PerpMarket

Index

Constructors

  • new PerpMarket(publicKey: PublicKey, group: PublicKey, settleTokenIndex: TokenIndex, perpMarketIndex: PerpMarketIndex, groupInsuranceFund: boolean, baseDecimals: number, name: number[], bids: PublicKey, asks: PublicKey, eventQueue: PublicKey, oracle: PublicKey, oracleConfig: OracleConfigDto, stablePriceModel: StablePriceModel, quoteLotSize: BN, baseLotSize: BN, maintBaseAssetWeight: I80F48Dto, initBaseAssetWeight: I80F48Dto, maintBaseLiabWeight: I80F48Dto, initBaseLiabWeight: I80F48Dto, openInterest: BN, seqNum: BN, registrationTime: BN, minFunding: I80F48Dto, maxFunding: I80F48Dto, impactQuantity: BN, longFunding: I80F48Dto, shortFunding: I80F48Dto, fundingLastUpdated: BN, baseLiquidationFee: I80F48Dto, makerFee: I80F48Dto, takerFee: I80F48Dto, feesAccrued: I80F48Dto, feesSettled: I80F48Dto, feePenalty: number, settleFeeFlat: number, settleFeeAmountThreshold: number, settleFeeFractionLowHealth: number, settlePnlLimitFactor: number, settlePnlLimitWindowSizeTs: BN, reduceOnly: boolean, forceClose: boolean, maintOverallAssetWeight: I80F48Dto, initOverallAssetWeight: I80F48Dto, positivePnlLiquidationFee: I80F48Dto): PerpMarket

Properties

_asks: BookSide
_bids: BookSide
_oracleLastUpdatedSlot: number
_oracleProvider: OracleProvider
_price: I80F48
_uiPrice: number
asks: PublicKey
baseDecimals: number
baseLiquidationFee: I80F48
baseLotSize: BN
baseLotsToUiConverter: number
bids: PublicKey
eventQueue: PublicKey
feePenalty: number
feesAccrued: I80F48
feesSettled: I80F48
forceClose: boolean
fundingLastUpdated: BN
group: PublicKey
groupInsuranceFund: boolean
impactQuantity: BN
initBaseAssetWeight: I80F48
initBaseLiabWeight: I80F48
initOverallAssetWeight: I80F48
longFunding: I80F48
maintBaseAssetWeight: I80F48
maintBaseLiabWeight: I80F48
maintOverallAssetWeight: I80F48
makerFee: I80F48
maxFunding: I80F48
minFunding: I80F48
name: string
openInterest: BN
oracle: PublicKey
oracleConfig: OracleConfig
perpMarketIndex: PerpMarketIndex
positivePnlLiquidationFee: I80F48
priceLotsToUiConverter: number
publicKey: PublicKey
quoteLotSize: BN
quoteLotsToUiConverter: number
reduceOnly: boolean
registrationTime: BN
seqNum: BN
settleFeeAmountThreshold: number
settleFeeFlat: number
settleFeeFractionLowHealth: number
settlePnlLimitFactor: number
settlePnlLimitWindowSizeTs: BN
settleTokenIndex: TokenIndex
shortFunding: I80F48
stablePriceModel: StablePriceModel
takerFee: I80F48

Accessors

  • get minOrderSize(): number
  • get oracleLastUpdatedSlot(): number
  • get tickSize(): number
  • get uiPrice(): number

Methods

  • baseLotsToUi(quantity: BN): number
  • Returns instantaneous funding rate for the day. How is it actually applied - funding is continously applied on every interaction to a perp position. The rate is further multiplied by the time elapsed since it was last applied (capped to max. 1hr).

    Parameters

    Returns number

    returns instantaneous funding rate in % form

  • getSettlePnlCandidates(client: MangoClient, group: Group, direction: "negative" | "positive", count?: number): Promise<{ account: MangoAccount; settleablePnl: I80F48 }[]>
  • Returns a list of (upto count) accounts, and the pnl that is settle'able on this perp market, the list is sorted ascending for 'negative' direction and descending for 'positive' direction.

    NOTE: keep in sync with perp_pnl.rs:fetch_top

    TODO: replace with a more performant offchain service call

    Parameters

    • client: MangoClient
    • group: Group
    • direction: "negative" | "positive"
    • count: number = 2

    Returns Promise<{ account: MangoAccount; settleablePnl: I80F48 }[]>

  • insidePriceLimit(side: PerpOrderSide, orderPrice: number): boolean
  • priceLotsToUi(price: BN): number
  • priceNativeToUi(price: number): number
  • quoteLotsToUi(quantity: BN): number
  • toString(): string
  • uiBaseToLots(quantity: number): BN
  • uiPriceToLots(price: number): BN
  • uiQuoteToLots(uiQuote: number): BN
  • from(publicKey: PublicKey, obj: { asks: PublicKey; baseDecimals: number; baseLiquidationFee: I80F48Dto; baseLotSize: BN; bids: PublicKey; eventQueue: PublicKey; feePenalty: number; feesAccrued: I80F48Dto; feesSettled: I80F48Dto; forceClose: number; fundingLastUpdated: BN; group: PublicKey; groupInsuranceFund: number; impactQuantity: BN; initBaseAssetWeight: I80F48Dto; initBaseLiabWeight: I80F48Dto; initOverallAssetWeight: I80F48Dto; longFunding: I80F48Dto; maintBaseAssetWeight: I80F48Dto; maintBaseLiabWeight: I80F48Dto; maintOverallAssetWeight: I80F48Dto; makerFee: I80F48Dto; maxFunding: I80F48Dto; minFunding: I80F48Dto; name: number[]; openInterest: BN; oracle: PublicKey; oracleConfig: OracleConfigDto; perpMarketIndex: number; positivePnlLiquidationFee: I80F48Dto; quoteLotSize: BN; reduceOnly: number; registrationTime: BN; seqNum: BN; settleFeeAmountThreshold: number; settleFeeFlat: number; settleFeeFractionLowHealth: number; settlePnlLimitFactor: number; settlePnlLimitWindowSizeTs: BN; settleTokenIndex: number; shortFunding: I80F48Dto; stablePriceModel: StablePriceModel; takerFee: I80F48Dto }): PerpMarket
  • Parameters

    • publicKey: PublicKey
    • obj: { asks: PublicKey; baseDecimals: number; baseLiquidationFee: I80F48Dto; baseLotSize: BN; bids: PublicKey; eventQueue: PublicKey; feePenalty: number; feesAccrued: I80F48Dto; feesSettled: I80F48Dto; forceClose: number; fundingLastUpdated: BN; group: PublicKey; groupInsuranceFund: number; impactQuantity: BN; initBaseAssetWeight: I80F48Dto; initBaseLiabWeight: I80F48Dto; initOverallAssetWeight: I80F48Dto; longFunding: I80F48Dto; maintBaseAssetWeight: I80F48Dto; maintBaseLiabWeight: I80F48Dto; maintOverallAssetWeight: I80F48Dto; makerFee: I80F48Dto; maxFunding: I80F48Dto; minFunding: I80F48Dto; name: number[]; openInterest: BN; oracle: PublicKey; oracleConfig: OracleConfigDto; perpMarketIndex: number; positivePnlLiquidationFee: I80F48Dto; quoteLotSize: BN; reduceOnly: number; registrationTime: BN; seqNum: BN; settleFeeAmountThreshold: number; settleFeeFlat: number; settleFeeFractionLowHealth: number; settlePnlLimitFactor: number; settlePnlLimitWindowSizeTs: BN; settleTokenIndex: number; shortFunding: I80F48Dto; stablePriceModel: StablePriceModel; takerFee: I80F48Dto }
      • asks: PublicKey
      • baseDecimals: number
      • baseLiquidationFee: I80F48Dto
      • baseLotSize: BN
      • bids: PublicKey
      • eventQueue: PublicKey
      • feePenalty: number
      • feesAccrued: I80F48Dto
      • feesSettled: I80F48Dto
      • forceClose: number
      • fundingLastUpdated: BN
      • group: PublicKey
      • groupInsuranceFund: number
      • impactQuantity: BN
      • initBaseAssetWeight: I80F48Dto
      • initBaseLiabWeight: I80F48Dto
      • initOverallAssetWeight: I80F48Dto
      • longFunding: I80F48Dto
      • maintBaseAssetWeight: I80F48Dto
      • maintBaseLiabWeight: I80F48Dto
      • maintOverallAssetWeight: I80F48Dto
      • makerFee: I80F48Dto
      • maxFunding: I80F48Dto
      • minFunding: I80F48Dto
      • name: number[]
      • openInterest: BN
      • oracle: PublicKey
      • oracleConfig: OracleConfigDto
      • perpMarketIndex: number
      • positivePnlLiquidationFee: I80F48Dto
      • quoteLotSize: BN
      • reduceOnly: number
      • registrationTime: BN
      • seqNum: BN
      • settleFeeAmountThreshold: number
      • settleFeeFlat: number
      • settleFeeFractionLowHealth: number
      • settlePnlLimitFactor: number
      • settlePnlLimitWindowSizeTs: BN
      • settleTokenIndex: number
      • shortFunding: I80F48Dto
      • stablePriceModel: StablePriceModel
      • takerFee: I80F48Dto

    Returns PerpMarket

Generated using TypeDoc