@drift-labs/common
Version:
Common functions for Drift
962 lines (961 loc) • 35.9 kB
TypeScript
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 {};