UNPKG

@drift-labs/common

Version:

Common functions for Drift

962 lines (961 loc) 35.9 kB
import { BigNum, BN, CandleResolution, CurveRecord, DepositExplanation, DepositRecord, Event, FundingPaymentRecord, FundingRateRecord, InsuranceFundRecord, InsuranceFundStakeRecord, LiquidateBorrowForPerpPnlRecord, LiquidatePerpPnlForDepositRecord, LiquidatePerpRecord, LiquidateSpotRecord, LiquidationRecord, LiquidationType, LPAction, LPRecord, MarketType, NewUserRecord, Order, OrderAction, OrderActionExplanation, OrderStatus, OrderTriggerCondition, OrderType, PerpBankruptcyRecord, PositionDirection, PublicKey, SettlePnlExplanation, SettlePnlRecord, SpotBalanceType, SpotBankruptcyRecord, SpotInterestRecord, StakeAction, SwapRecord, WrappedEvent } from '@drift-labs/sdk'; import { JsonObject } from 'cerializr'; import { AccountSnapshot, LeaderboardResult, LeaderBoardResultRow, PnlHistoryDataPoint, PnlSnapshotOrderOption, RollingPnlData, SnapshotEpochResolution, UIAccountSnapshot, UserPerpPositionSnapshot, UserSnapshotRecord, UserSpotPositionSnapshot } from './types/leaderboard'; export type OrderRecordEvent = WrappedEvent<'OrderRecord'>; export declare class SerializableOrder implements Order { status: OrderStatus; orderType: OrderType; ts: BN; orderId: number; userOrderId: number; marketIndex: number; price: BN; baseAssetAmount: BN; baseAssetAmountFilled: BN; quoteAssetAmount: BN; quoteAssetAmountFilled: BN; direction: PositionDirection; reduceOnly: boolean; triggerPrice: BN; triggerCondition: OrderTriggerCondition; postOnly: boolean; immediateOrCancel: boolean; oraclePriceOffset: number; auctionStartPrice: BN; auctionEndPrice: BN; existingPositionDirection: OrderStatus; slot: BN; auctionDuration: number; marketType: MarketType; maxTs: BN; bitFlags: number; postedSlotTail: number; } export declare class UISerializableOrder extends SerializableOrder { price: BigNum; baseAssetAmount: BigNum; baseAssetAmountFilled: BigNum; quoteAssetAmount: BigNum; quoteAssetAmountFilled: BigNum; triggerPrice: BigNum; oraclePriceOffset: BigNum; auctionStartPrice: BigNum; auctionEndPrice: BigNum; static onDeserialized(data: JsonObject, instance: UISerializableOrder): void; } export declare class SerializableOrderRecord implements OrderRecordEvent { eventType: 'OrderRecord'; txSig: string; txSigIndex: number; slot: number; ts: BN; user: PublicKey; order: Order; static onDeserialized(data: JsonObject, instance: SerializableOrderRecord): void; static onSerialized(json: JsonObject): void; } export declare class UISerializableOrderRecord extends SerializableOrderRecord { order: UISerializableOrder; static onDeserialized(data: JsonObject, instance: UISerializableOrderRecord): void; static onSerialized(json: JsonObject): void; } export declare class SerializableOrderActionRecord implements WrappedEvent<'OrderActionRecord'> { eventType: 'OrderActionRecord'; txSig: string; slot: number; txSigIndex: number; ts: BN; action: OrderAction; actionExplanation: OrderActionExplanation; marketIndex: number; marketType: MarketType; filler: PublicKey | null; fillerReward: BN | null; fillRecordId: BN | null; baseAssetAmountFilled: BN | null; quoteAssetAmountFilled: BN | null; takerFee: BN | null; makerRebate: BN | null; referrerReward: number | null; quoteAssetAmountSurplus: BN | null; taker: PublicKey | null; takerOrderId: number | null; takerOrderDirection: PositionDirection | null; takerOrderBaseAssetAmount: BN | null; takerOrderCumulativeBaseAssetAmountFilled: BN | null; takerOrderCumulativeQuoteAssetAmountFilled: BN | null; maker: PublicKey | null; makerOrderId: number | null; makerOrderDirection: PositionDirection | null; makerOrderBaseAssetAmount: BN | null; makerOrderCumulativeBaseAssetAmountFilled: BN | null; makerOrderCumulativeQuoteAssetAmountFilled: BN | null; oraclePrice: BN; makerFee: BN; spotFulfillmentMethodFee: BN | null; bitFlags: number; takerExistingQuoteEntryAmount: BN | null; takerExistingBaseAssetAmount: BN | null; makerExistingQuoteEntryAmount: BN | null; makerExistingBaseAssetAmount: BN | null; static onDeserialized(data: JsonObject, instance: SerializableOrderActionRecord): void; static onSerialized(json: JsonObject): void; } export declare class UISerializableOrderActionRecord extends SerializableOrderActionRecord { fillerReward: BigNum | null; baseAssetAmountFilled: BigNum | null; quoteAssetAmountFilled: BigNum | null; takerFee: BigNum | null; makerRebate: BigNum | null; referrerReward: number | null; quoteAssetAmountSurplus: BigNum | null; takerOrderBaseAssetAmount: BigNum | null; takerOrderCumulativeBaseAssetAmountFilled: BigNum | null; takerOrderCumulativeQuoteAssetAmountFilled: BigNum | null; makerOrderBaseAssetAmount: BigNum | null; makerOrderCumulativeBaseAssetAmountFilled: BigNum | null; makerOrderCumulativeQuoteAssetAmountFilled: BigNum | null; oraclePrice: BigNum; makerFee: BigNum | null; spotFulfillmentMethodFee: BigNum | null; takerExistingQuoteEntryAmount: BigNum | null; takerExistingBaseAssetAmount: BigNum | null; makerExistingQuoteEntryAmount: BigNum | null; makerExistingBaseAssetAmount: BigNum | null; static onDeserialized(data: JsonObject, instance: UISerializableOrderActionRecord): void; static onSerialized(json: JsonObject): void; } export declare class UISerializableOrderRecordV2 { ts: BN; txSig: string; txSigIndex: number; slot: number; user: PublicKey; orderType: OrderType; marketType: MarketType; orderId: number; userOrderId: number; marketIndex: number; price: BigNum; baseAssetAmount: BigNum; quoteAssetAmount: BigNum; baseAssetAmountFilled: BigNum; quoteAssetAmountFilled: BigNum; direction: PositionDirection; reduceOnly: boolean; triggerPrice: BigNum; triggerCondition: OrderTriggerCondition; existingPositionDirection: PositionDirection; postOnly: boolean; immediateOrCancel: boolean; oraclePriceOffset: BigNum; auctionDuration: number; auctionStartPrice: BigNum; auctionEndPrice: BigNum; maxTs: BN; symbol: string; lastUpdatedTs: BN; lastActionExplanation: OrderActionExplanation; lastActionStatus: string; status: string; static onDeserialized(data: JsonObject, instance: UISerializableOrderRecordV2): void; } export declare class UISerializableOrderActionRecordBase { ts: BN; txSig: string; txSigIndex: number; slot: number; marketIndex: number; marketType: MarketType; fillerReward: BigNum; baseAssetAmountFilled: BigNum; quoteAssetAmountFilled: BigNum; takerFee: BigNum; makerRebate: BigNum; referrerReward: number; quoteAssetAmountSurplus: BigNum; takerOrderBaseAssetAmount: BigNum; takerOrderCumulativeBaseAssetAmountFilled: BigNum; takerOrderCumulativeQuoteAssetAmountFilled: BigNum; makerOrderBaseAssetAmount: BigNum; makerOrderCumulativeBaseAssetAmountFilled: BigNum; makerOrderCumulativeQuoteAssetAmountFilled: BigNum; oraclePrice: BigNum; makerFee: BigNum; action: OrderAction; actionExplanation: OrderActionExplanation; filler: PublicKey; fillRecordId: BN; taker: PublicKey; takerOrderId: number; takerOrderDirection: PositionDirection; maker: PublicKey; makerOrderId: number; makerOrderDirection: PositionDirection; spotFulfillmentMethodFee: BigNum; user: PublicKey; symbol: string; bitFlags: number; takerExistingQuoteEntryAmount: BigNum | null; takerExistingBaseAssetAmount: BigNum | null; makerExistingQuoteEntryAmount: BigNum | null; makerExistingBaseAssetAmount: BigNum | null; } export declare class UISerializableOrderActionRecordV2 extends UISerializableOrderActionRecordBase { eventType: 'OrderActionRecord'; static onDeserialized(data: JsonObject, instance: UISerializableOrderActionRecordV2): void; static onSerialized(json: JsonObject): void; } export declare class UISerializablePositionHistoryRecord extends UISerializableOrderActionRecordBase { eventType: 'PositionHistoryRecord'; baseClosedForPnl: BigNum; userFee: BigNum; userExistingQuoteEntryAmount: BigNum; userExistingBaseAssetAmount: BigNum; static onDeserialized(data: JsonObject, instance: UISerializablePositionHistoryRecord): void; static onSerialized(json: JsonObject): void; } export type DepositRecordEvent = Event<DepositRecord>; export declare class SerializableDepositRecord implements DepositRecordEvent { id: number; txSig: string; txSigIndex: number; slot: number; ts: BN; depositRecordId: BN; userAuthority: PublicKey; user: PublicKey; direction: { deposit?: any; withdraw?: any; }; marketIndex: number; amount: BN; oraclePrice: BN; marketDepositBalance: BN; marketWithdrawBalance: BN; marketCumulativeDepositInterest: BN; marketCumulativeBorrowInterest: BN; transferUser?: PublicKey; totalDepositsAfter: BN; totalWithdrawsAfter: BN; explanation: DepositExplanation; } export declare class UISerializableDepositRecord extends SerializableDepositRecord { amount: BigNum; oraclePrice: BigNum; marketDepositBalance: BigNum; marketWithdrawBalance: BigNum; marketCumulativeDepositInterest: BigNum; marketCumulativeBorrowInterest: BigNum; totalDepositsAfter: BigNum; totalWithdrawsAfter: BigNum; static onDeserialized(data: JsonObject, instance: UISerializableDepositRecord): void; } export type SpotInterestRecordEvent = Event<SpotInterestRecord>; export declare class SerializableSpotInterestRecord implements SpotInterestRecordEvent { id: number; txSig: string; txSigIndex: number; slot: number; ts: BN; marketIndex: number; depositBalance: BN; cumulativeDepositInterest: BN; borrowBalance: BN; cumulativeBorrowInterest: BN; optimalUtilization: number; optimalBorrowRate: number; maxBorrowRate: number; } export type CurveRecordEvent = Event<CurveRecord>; export declare class SerializableCurveRecord implements CurveRecordEvent { id: number; txSig: string; txSigIndex: number; slot: number; ts: BN; recordId: BN; marketIndex: number; pegMultiplierBefore: BN; baseAssetReserveBefore: BN; quoteAssetReserveBefore: BN; sqrtKBefore: BN; pegMultiplierAfter: BN; baseAssetReserveAfter: BN; quoteAssetReserveAfter: BN; sqrtKAfter: BN; baseAssetAmountLong: BN; baseAssetAmountShort: BN; baseAssetAmountWithAmm: BN; totalFee: BN; totalFeeMinusDistributions: BN; adjustmentCost: BN; numberOfUsers: BN; oraclePrice: BN; fillRecord: BN; } export type SettlePnlRecordEvent = Event<SettlePnlRecord>; export declare class SerializableSettlePnlRecord implements SettlePnlRecordEvent { id: number; txSig: string; txSigIndex: number; slot: number; user: PublicKey; ts: BN; marketIndex: number; pnl: BN; baseAssetAmount: BN; quoteAssetAmountAfter: BN; quoteEntryAmount: BN; settlePrice: BN; oraclePrice: BN; explanation: SettlePnlExplanation; } export declare class UISerializableSettlePnlRecord extends SerializableSettlePnlRecord { pnl: BigNum; baseAssetAmount: BigNum; quoteAssetAmountAfter: BigNum; quoteEntryAmount: BigNum; settlePrice: BigNum; oraclePrice: BigNum; } export type FundingRateRecordEvent = Event<FundingRateRecord>; export declare class SerializableFundingRateRecord implements FundingRateRecordEvent { txSig: string; slot: number; ts: BN; recordId: BN; marketIndex: number; fundingRate: BN; cumulativeFundingRateLong: BN; cumulativeFundingRateShort: BN; oraclePriceTwap: BN; markPriceTwap: BN; fundingRateLong: BN; fundingRateShort: BN; periodRevenue: BN; baseAssetAmountWithAmm: BN; baseAssetAmountWithUnsettledLp: BN; } export declare class UISerializableFundingRateRecord extends SerializableFundingRateRecord { fundingRate: BigNum; cumulativeFundingRateLong: BigNum; cumulativeFundingRateShort: BigNum; oraclePriceTwap: BigNum; markPriceTwap: BigNum; fundingRateLong: BigNum; fundingRateShort: BigNum; periodRevenue: BigNum; baseAssetAmountWithAmm: BigNum; baseAssetAmountWithUnsettledLp: BigNum; } export type FundingPaymentRecordEvent = Event<FundingPaymentRecord>; export declare class SerializableFundingPaymentRecord implements FundingPaymentRecordEvent { id: number; txSig: string; txSigIndex: number; slot: number; ts: BN; userAuthority: PublicKey; user: PublicKey; marketIndex: number; fundingPayment: BN; baseAssetAmount: BN; userLastCumulativeFunding: BN; ammCumulativeFundingLong: BN; ammCumulativeFundingShort: BN; } export declare class UISerializableFundingPaymentRecord extends SerializableFundingPaymentRecord { fundingPayment: BigNum; baseAssetAmount: BigNum; userLastCumulativeFunding: BigNum; ammCumulativeFundingLong: BigNum; ammCumulativeFundingShort: BigNum; } export declare class SerializableLiquidatePerpRecord implements LiquidatePerpRecord { marketIndex: number; orderIds: BN[]; oraclePrice: BN; baseAssetAmount: BN; quoteAssetAmount: BN; userPnl: BN; liquidatorPnl: BN; canceledOrdersFee: BN; userOrderId: BN; liquidatorOrderId: BN; fillRecordId: BN; lpShares: BN; liquidatorFee: BN; ifFee: BN; } export declare class UISerializableLiquidatePerpRecord extends SerializableLiquidatePerpRecord { oraclePrice: BigNum; baseAssetAmount: BigNum; quoteAssetAmount: BigNum; userPnl: BigNum; liquidatorPnl: BigNum; canceledOrdersFee: BigNum; lpShares: BigNum; liquidatorFee: BigNum; ifFee: BigNum; } export declare class SerializableLiquidateSpotRecord implements LiquidateSpotRecord { assetMarketIndex: number; assetPrice: BN; assetTransfer: BN; liabilityMarketIndex: number; liabilityPrice: BN; liabilityTransfer: BN; ifFee: BN; } export declare class UISerializableLiquidateSpotRecord extends SerializableLiquidateSpotRecord { assetPrice: BigNum; assetTransfer: BigNum; liabilityPrice: BigNum; liabilityTransfer: BigNum; static onDeserialized(data: JsonObject, instance: UISerializableLiquidateSpotRecord): void; } export declare class SerializableLiquidateBorrowForPerpPnlRecord implements LiquidateBorrowForPerpPnlRecord { marketOraclePrice: BN; pnlTransfer: BN; liabilityMarketIndex: number; liabilityPrice: BN; liabilityTransfer: BN; perpMarketIndex: number; } export declare class UISerializableLiquidateBorrowForPerpPnlRecord extends SerializableLiquidateBorrowForPerpPnlRecord { marketOraclePrice: BigNum; pnlTransfer: BigNum; liabilityPrice: BigNum; liabilityTransfer: BigNum; static onDeserialized(data: JsonObject, instance: UISerializableLiquidateBorrowForPerpPnlRecord): void; } export declare class SerializableLiquidatePerpPnlForDepositRecord implements LiquidatePerpPnlForDepositRecord { marketOraclePrice: BN; pnlTransfer: BN; assetMarketIndex: number; assetPrice: BN; assetTransfer: BN; perpMarketIndex: number; } export declare class UISerializableLiquidatePerpPnlForDepositRecord extends SerializableLiquidatePerpPnlForDepositRecord { marketOraclePrice: BigNum; pnlTransfer: BigNum; assetPrice: BigNum; assetTransfer: BigNum; static onDeserialized(data: JsonObject, instance: UISerializableLiquidatePerpPnlForDepositRecord): void; } export type LiquidationRecordEvent = Event<LiquidationRecord>; export declare class SerializablePerpBankrupcyRecord implements PerpBankruptcyRecord { marketIndex: number; pnl: BN; cumulativeFundingRateDelta: BN; ifPayment: BN; clawbackUser: PublicKey; clawbackUserPayment: BN; } export declare class UISerializablePerpBankrupcyRecord extends SerializablePerpBankrupcyRecord { pnl: BigNum; cumulativeFundingRateDelta: BigNum; ifPayment: BigNum; clawbackUserPayment: BN; } export declare class SerializableSpotBankruptcyRecord implements SpotBankruptcyRecord { marketIndex: number; borrowAmount: BN; cumulativeDepositInterestDelta: BN; ifPayment: BN; } export declare class UISerializableSpotBankruptcyRecord extends SerializableSpotBankruptcyRecord { borrowAmount: BigNum; cumulativeDepositInterestDelta: BigNum; ifPayment: BigNum; static onDeserialized(data: JsonObject, instance: UISerializableSpotBankruptcyRecord): void; } export declare class SerializableLiquidationRecord implements LiquidationRecordEvent { liquidationId: number; txSig: string; txSigIndex: number; slot: number; ts: BN; user: PublicKey; liquidator: PublicKey; totalCollateral: BN; liquidationType: LiquidationType; marginRequirement: BN; liquidatePerp: LiquidatePerpRecord; liquidateSpot: LiquidateSpotRecord; liquidateBorrowForPerpPnl: LiquidateBorrowForPerpPnlRecord; liquidatePerpPnlForDeposit: LiquidatePerpPnlForDepositRecord; perpBankruptcy: PerpBankruptcyRecord; spotBankruptcy: SpotBankruptcyRecord; canceledOrderIds: BN[]; marginFreed: BN; bankrupt: boolean; } export declare class UISerializableLiquidationRecord extends SerializableLiquidationRecord { marginRequirement: BigNum; totalCollateral: BigNum; liquidatePerp: UISerializableLiquidatePerpRecord; liquidateSpot: UISerializableLiquidateSpotRecord; liquidateBorrowForPerpPnl: UISerializableLiquidateBorrowForPerpPnlRecord; liquidatePerpPnlForDeposit: UISerializableLiquidatePerpPnlForDepositRecord; } export declare class UISerializableLiquidationRecordV2 { ts: BN; txSig: string; txSigIndex: number; slot: number; liquidationType: LiquidationType; user: PublicKey; liquidator: PublicKey; marginRequirement: BigNum; totalCollateral: BigNum; marginFreed: BN; liquidationId: number; bankrupt: boolean; canceledOrderIds: BN[]; liquidatePerp_marketIndex: number; liquidatePerp_oraclePrice: BigNum; liquidatePerp_baseAssetAmount: BigNum; liquidatePerp_quoteAssetAmount: BigNum; liquidatePerp_lpShares: BigNum; liquidatePerp_fillRecordId: BN; liquidatePerp_userOrderId: BN; liquidatePerp_liquidatorOrderId: BN; liquidatePerp_liquidatorFee: BigNum; liquidatePerp_ifFee: BigNum; liquidateSpot_assetMarketIndex: number; liquidateSpot_assetPrice: BigNum; liquidateSpot_assetTransfer: BigNum; liquidateSpot_liabilityMarketIndex: number; liquidateSpot_liabilityPrice: BigNum; liquidateSpot_liabilityTransfer: BigNum; liquidateSpot_ifFee: BigNum; liquidateBorrowForPerpPnl_perpMarketIndex: number; liquidateBorrowForPerpPnl_marketOraclePrice: BigNum; liquidateBorrowForPerpPnl_pnlTransfer: BigNum; liquidateBorrowForPerpPnl_liabilityMarketIndex: number; liquidateBorrowForPerpPnl_liabilityPrice: BigNum; liquidateBorrowForPerpPnl_liabilityTransfer: BigNum; liquidatePerpPnlForDeposit_perpMarketIndex: number; liquidatePerpPnlForDeposit_marketOraclePrice: BigNum; liquidatePerpPnlForDeposit_pnlTransfer: BigNum; liquidatePerpPnlForDeposit_assetMarketIndex: number; liquidatePerpPnlForDeposit_assetPrice: BigNum; liquidatePerpPnlForDeposit_assetTransfer: BigNum; perpBankruptcy_marketIndex: number; perpBankruptcy_pnl: BigNum; perpBankruptcy_ifPayment: BigNum; perpBankruptcy_clawbackUser: PublicKey; perpBankruptcy_clawbackUserPayment: BigNum; perpBankruptcy_cumulativeFundingRateDelta: BigNum; spotBankruptcy_marketIndex: number; spotBankruptcy_borrowAmount: BigNum; spotBankruptcy_ifPayment: BigNum; spotBankruptcy_cumulativeDepositInterestDelta: BigNum; static onDeserialized(data: JsonObject, instance: UISerializableLiquidationRecordV2): void; } declare class SerializableUserPerpPositionSnapshot implements UserPerpPositionSnapshot { lpShares: BN; quoteAssetAmount: BN; baseAssetAmount: BN; marketIndex: number; } declare class SerializableUserSpotPositionSnapshot implements UserSpotPositionSnapshot { tokenValue: BN; tokenAmount: BN; cumulativeDeposits: BN; balanceInterestDelta: BN; marketIndex: number; type: SpotBalanceType; } export declare class SerializableUserSnapshotRecord implements UserSnapshotRecord { programId: PublicKey; authority: PublicKey; user: PublicKey; epochTs: number; ts: number; perpPositionUpnl: BN; totalAccountValue: BN; cumulativeDepositQuoteValue: BN; cumulativeWithdrawalQuoteValue: BN; cumulativeSettledPerpPnl: BN; cumulativeReferralReward: BN; cumulativeReferralVolume: BN; cumulativeReferralCount: number; } export declare class UISerializableUserSnapshotRecord extends SerializableUserSnapshotRecord { perpPositionUpnl: BigNum; totalAccountValue: BigNum; cumulativeDepositQuoteValue: BigNum; cumulativeWithdrawalQuoteValue: BigNum; cumulativeSettledPerpPnl: BigNum; cumulativeReferralReward: BigNum; cumulativeReferralVolume: BigNum; } export declare class SerializableCandle { fillOpen: BN; fillClose: BN; fillHigh: BN; fillLow: BN; oracleOpen: BN; oracleClose: BN; oracleHigh: BN; oracleLow: BN; quoteVolume: BN; baseVolume: BN; start: BN; resolution: CandleResolution; } export declare class UISerializableCandle extends SerializableCandle { fillOpen: BigNum; fillClose: BigNum; fillHigh: BigNum; fillLow: BigNum; oracleOpen: BigNum; oracleClose: BigNum; oracleHigh: BigNum; oracleLow: BigNum; quoteVolume: BigNum; baseVolume: BigNum; resolution: CandleResolution; } export declare class SerializableRollingPnlData implements RollingPnlData { spotPnlQuote: BN; spotPnlPct: BN; perpPnlQuote: BN; perpPnlPct: BN; totalPnlQuote: BN; totalPnlPct: BN; } export declare class SerializableAllTimePnlData extends SerializableRollingPnlData { epochTs: number; spotPnlQuote: BN; spotPnlPct: BN; perpPnlQuote: BN; perpPnlPct: BN; totalPnlQuote: BN; totalPnlPct: BN; } export declare class UISerializableRollingPnlData extends SerializableRollingPnlData { spotPnlQuote: BigNum; spotPnlPct: BigNum; perpPnlQuote: BigNum; perpPnlPct: BigNum; totalPnlQuote: BigNum; totalPnlPct: BigNum; } export declare class UISerializableAllTimePnlData extends UISerializableRollingPnlData { spotPnlQuote: BigNum; spotPnlPct: BigNum; perpPnlQuote: BigNum; perpPnlPct: BigNum; totalPnlQuote: BigNum; totalPnlPct: BigNum; epochTs: number; } export declare class UIMatchedOrderRecordAndAction { orderRecord: UISerializableOrderRecord; actionRecord: UISerializableOrderActionRecord; } declare class SerializablePnlDataPoint implements PnlHistoryDataPoint { ts: number; val: number; } declare class SerializableLeaderBoardResultRow implements LeaderBoardResultRow { user: PublicKey; authority: PublicKey; resolution: SnapshotEpochResolution; rollingValue: number; subaccountId: number; pnlHistoryPoints: SerializablePnlDataPoint[]; } export declare class SerializableLeaderboardResult implements LeaderboardResult { lastUpdateTs: number; ordering: PnlSnapshotOrderOption; results: SerializableLeaderBoardResultRow[]; } declare class UISerializableLeaderBoardResultRow extends SerializableLeaderBoardResultRow { } export declare class UISerializableLeaderboardResult extends SerializableLeaderboardResult { results: UISerializableLeaderBoardResultRow[]; } export declare class SerializableNewUserRecord implements NewUserRecord { txSig: string; slot: number; ts: BN; userAuthority: PublicKey; user: PublicKey; userId: number; name: number[]; referrer: PublicKey; subAccountId: number; } export declare class SerializableAccountSnapshot implements AccountSnapshot { authority: PublicKey; user: PublicKey; epochTs: number; totalAccountValue: BN; cumulativeDepositQuoteValue: BN; cumulativeWithdrawalQuoteValue: BN; allTimeTotalPnlPct: BN; allTimeTotalPnl: BN; cumulativeReferralReward: BN; cumulativeReferralVolume: BN; cumulativeReferralCount: number; cumulativeSettledPerpPnl: BN; } export declare class UISerializableAccountSnapshot implements UIAccountSnapshot { authority: PublicKey; user: PublicKey; epochTs: number; totalAccountValue: BigNum; cumulativeDepositQuoteValue: BigNum; cumulativeWithdrawalQuoteValue: BigNum; allTimeTotalPnlPct: BigNum; allTimeTotalPnl: BigNum; cumulativeReferralReward: BigNum; cumulativeReferralVolume: BigNum; cumulativeSettledPerpPnl: BigNum; cumulativeReferralCount: number; } export declare class SerializableDlobOrder { user: string; order: UISerializableOrder; } export declare class SerializableDlobOracleInfo { marketIndex: number; price: BigNum; slot: BN; confidence: BN; hasSufficientNumberOfDataPoints: boolean; twap: BN; twapConfidence: BN; maxPrice?: BN; } export declare class SerializableDLOBState { slot: number; oracles: SerializableDlobOracleInfo[]; orders: SerializableDlobOrder[]; } export declare class CompetitionResultEntry { wallet: PublicKey; value: number; rank: number; metadata?: any; } export declare class CompetitionResult { competitionName: string; lastUpdate: string; lastUpdateTs: number; startTs: number; endTs: number; results: CompetitionResultEntry[]; requestedAuthorityResult?: CompetitionResultEntry; } export type InsuranceFundRecordEvent = Event<InsuranceFundRecord>; export declare class SerializableInsuranceFundRecord implements InsuranceFundRecordEvent { ts: BN; txSig: string; txSigIndex: number; slot: number; spotMarketIndex: number; perpMarketIndex: number; userIfFactor: number; totalIfFactor: number; vaultAmountBefore: BN; insuranceVaultAmountBefore: BN; totalIfSharesBefore: BN; totalIfSharesAfter: BN; amount: BN; } export declare class UISerializableInsuranceFundRecord extends SerializableInsuranceFundRecord { vaultAmountBefore: BigNum; insuranceVaultAmountBefore: BigNum; totalIfSharesBefore: BigNum; totalIfSharesAfter: BigNum; amount: BigNum; static onDeserialized(_data: JsonObject, instance: UISerializableInsuranceFundRecord): void; } export type InsuranceFundStakeRecordEvent = Event<InsuranceFundStakeRecord>; export declare class SerializableInsuranceFundStakeRecord implements InsuranceFundStakeRecordEvent { ts: BN; txSig: string; txSigIndex: number; slot: number; userAuthority: PublicKey; action: StakeAction; amount: BN; marketIndex: number; insuranceVaultAmountBefore: BN; ifSharesBefore: BN; userIfSharesBefore: BN; totalIfSharesBefore: BN; ifSharesAfter: BN; userIfSharesAfter: BN; totalIfSharesAfter: BN; } export declare class UISerializableInsuranceFundStakeRecord extends SerializableInsuranceFundStakeRecord { amount: BigNum; insuranceVaultAmountBefore: BigNum; ifSharesBefore: BigNum; userIfSharesBefore: BigNum; totalIfSharesBefore: BigNum; ifSharesAfter: BigNum; userIfSharesAfter: BigNum; totalIfSharesAfter: BigNum; static onDeserialized(data: JsonObject, instance: UISerializableInsuranceFundStakeRecord): void; } export type LPRecordEvent = Event<LPRecord>; export declare class SerializableLPRecord implements LPRecordEvent { ts: BN; txSig: string; txSigIndex: number; slot: number; user: PublicKey; action: LPAction; nShares: BN; marketIndex: number; deltaBaseAssetAmount: BN; deltaQuoteAssetAmount: BN; pnl: BN; } export declare class UISerializableLPRecord extends SerializableLPRecord { nShares: BigNum; deltaBaseAssetAmount: BigNum; deltaQuoteAssetAmount: BigNum; pnl: BigNum; } export type SwapRecordEvent = Event<SwapRecord>; export declare class SerializableSwapRecord implements SwapRecordEvent { id: number; txSig: string; txSigIndex: number; slot: number; ts: BN; user: PublicKey; amountOut: BN; amountIn: BN; outMarketIndex: number; inMarketIndex: number; outOraclePrice: BN; inOraclePrice: BN; fee: BN; } export declare class UISerializableSwapRecord extends SerializableSwapRecord { amountOut: BigNum; amountIn: BigNum; outOraclePrice: BigNum; inOraclePrice: BigNum; fee: BigNum; static onDeserialized(_data: JsonObject, instance: UISerializableSwapRecord): void; } export declare function transformDataApiOrderRecordToUISerializableOrderRecord(v2Record: JsonObject): UISerializableOrderRecord; export declare function transformDataApiOrderRecordToSerializableOrderRecord(v2Record: JsonObject): SerializableOrderRecord; export declare function transformDataApiOrderActionRecordToUISerializableOrderActionRecord(v2Record: JsonObject): UISerializableOrderActionRecord; export declare function transformDataApiPositionHistoryRecordToUISerializablePositionHistoryRecord(v2Record: JsonObject): UISerializablePositionHistoryRecord; export declare function transformDataApiOrderActionRecordToSerializableOrderActionRecord(v2Record: JsonObject): SerializableOrderActionRecord; export declare const Serializer: { Serialize: { Order: (cls: any) => JsonObject; OrderRecord: (cls: any) => JsonObject; Deposit: (cls: any) => JsonObject; UIDeposit: (cls: any) => JsonObject; FundingRate: (cls: any) => JsonObject; UIFundingRate: (cls: any) => JsonObject; FundingPayment: (cls: any) => JsonObject; UIFundingPayment: (cls: any) => JsonObject; Liquidation: (cls: any) => JsonObject; UILiquidation: (cls: any) => JsonObject; UILiquidationV2: (cls: any) => JsonObject; SettlePnl: (cls: any) => JsonObject; UISettlePnl: (cls: any) => JsonObject; UIOrderRecord: (cls: any) => JsonObject; UIOrderRecordV2: (cls: any) => JsonObject; UIOrderActionRecordV2: (cls: any) => JsonObject; SpotInterestRecord: (cls: any) => JsonObject; CurveRecord: (cls: any) => JsonObject; Candle: (cls: any) => JsonObject; UICandle: (cls: any) => JsonObject; UIOrderActionRecord: (cls: any) => JsonObject; UIMatchedOrderAction: (cls: any) => JsonObject; OrderActionRecord: (cls: any) => JsonObject; UserSnapshot: (cls: any) => JsonObject; UIUserSnapshot: (cls: any) => JsonObject; UserSnapshotPerpPositions: (cls: any) => JsonObject; UserSnapshotSpotPositions: (cls: any) => JsonObject; LeaderboardResult: (cls: any) => JsonObject; AccountSnapshotHistory: (cls: any) => JsonObject; NewUser: (cls: any) => JsonObject; DLOBState: (cls: any) => JsonObject; CompetitionResult: (cls: any) => JsonObject; CompetitionResultEntry: (cls: any) => JsonObject; InsuranceFundRecord: (cls: any) => JsonObject; UIInsuranceFundRecord: (cls: any) => JsonObject; InsuranceFundStakeRecord: (cls: any) => JsonObject; UIInsuranceFundStakeRecord: (cls: any) => JsonObject; AllTimePnlData: (cls: any) => JsonObject; UIAllTimePnlData: (cls: any) => JsonObject; LPRecord: (cls: any) => JsonObject; UILPRecord: (cls: any) => JsonObject; SwapRecord: (cls: any) => JsonObject; UISwapRecord: (cls: any) => JsonObject; }; Deserialize: { Order: (cls: JsonObject) => Order; OrderRecord: (cls: JsonObject) => OrderRecordEvent; UIOrder: (cls: JsonObject) => UISerializableOrder; UIOrderRecord: (cls: JsonObject) => UISerializableOrderRecord; UIOrderRecordV2: (cls: JsonObject) => UISerializableOrderRecordV2; DataApiOrderRecord: (cls: JsonObject) => SerializableOrderRecord; DataApiUIOrderRecord: (cls: JsonObject) => UISerializableOrderRecord; UIOrderActionRecordV2: (cls: JsonObject) => UISerializableOrderActionRecordV2; DataApiOrderActionRecord: (cls: JsonObject) => SerializableOrderActionRecord; DataApiUIOrderActionRecord: (cls: JsonObject) => UISerializableOrderActionRecord; DataApiUISerializablePositionHistoryRecord: (cls: JsonObject) => UISerializablePositionHistoryRecord; Deposit: (cls: JsonObject) => DepositRecordEvent; UIDeposit: (cls: JsonObject) => UISerializableDepositRecord; FundingRate: (cls: JsonObject) => FundingRateRecordEvent; UIFundingRate: (cls: JsonObject) => UISerializableFundingRateRecord; FundingPayment: (cls: JsonObject) => FundingPaymentRecordEvent; UIFundingPayment: (cls: JsonObject) => UISerializableFundingPaymentRecord; Liquidation: (cls: JsonObject) => LiquidationRecordEvent; UILiquidation: (cls: JsonObject) => UISerializableLiquidationRecord; UILiquidationV2: (cls: JsonObject) => UISerializableLiquidationRecordV2; SettlePnl: (cls: JsonObject) => SettlePnlRecordEvent; SpotInterest: (cls: JsonObject) => SpotInterestRecordEvent; CurveRecord: (cls: JsonObject) => SerializableCurveRecord; UISettlePnl: (cls: JsonObject) => UISerializableSettlePnlRecord; Candle: (cls: JsonObject) => SerializableCandle; UICandle: (cls: JsonObject) => UISerializableCandle; OrderActionRecord: (cls: JsonObject) => SerializableOrderActionRecord; UIOrderActionRecord: (cls: JsonObject) => UISerializableOrderActionRecord; UIMatchedOrderAction: (cls: JsonObject) => UIMatchedOrderRecordAndAction; UserSnapshot: (cls: JsonObject) => SerializableUserSnapshotRecord; UIUserSnapshot: (cls: JsonObject) => UISerializableUserSnapshotRecord; UserSnapshotPerpPositions: (cls: JsonObject) => SerializableUserPerpPositionSnapshot; UserSnapshotSpotPositions: (cls: JsonObject) => SerializableUserSpotPositionSnapshot; LeaderboardResult: (cls: JsonObject) => SerializableLeaderboardResult; UISerializableLeaderboardResult: (cls: JsonObject) => UISerializableLeaderboardResult; UIAccountSnapshotHistory: (cls: JsonObject) => UISerializableAccountSnapshot; NewUser: (cls: JsonObject) => SerializableNewUserRecord; DLOBState: (cls: JsonObject) => SerializableDLOBState; CompetitionResult: (cls: JsonObject) => CompetitionResult; CompetitionResultEntry: (cls: JsonObject) => CompetitionResultEntry; InsuranceFundRecord: (cls: JsonObject) => InsuranceFundRecordEvent; UIInsuranceFundRecord: (cls: JsonObject) => UISerializableInsuranceFundRecord; InsuranceFundStakeRecord: (cls: JsonObject) => InsuranceFundStakeRecordEvent; UIInsuranceFundStakeRecord: (cls: JsonObject) => UISerializableInsuranceFundStakeRecord; AllTimePnlData: (cls: JsonObject) => SerializableAllTimePnlData; UIAllTimePnlData: (cls: JsonObject) => UISerializableAllTimePnlData; LPRecord: (cls: JsonObject) => LPRecordEvent; UILPRecord: (cls: JsonObject) => UISerializableLPRecord; SwapRecord: (cls: JsonObject) => SwapRecordEvent; UISwapRecord: (cls: JsonObject) => UISerializableSwapRecord; }; setDeserializeFromSnakeCase: () => void; setSerializeFromSnakeCase: () => void; }; export {};