@drift-labs/sdk-browser
Version:
SDK for Drift Protocol
60 lines (59 loc) • 2.68 kB
TypeScript
/// <reference types="node" />
/// <reference types="bn.js" />
import { DLOB } from './DLOB';
import { EventEmitter } from 'events';
import StrictEventEmitter from 'strict-event-emitter-types';
import { DLOBSource, DLOBSubscriberEvents, DLOBSubscriptionConfig, ProtectMakerParamsMap, SlotSource } from './types';
import { DriftClient } from '../driftClient';
import { MarketType } from '../types';
import { L2OrderBook, L2OrderBookGenerator, L3OrderBook } from './orderBookLevels';
import { BN } from '@coral-xyz/anchor';
export declare class DLOBSubscriber {
driftClient: DriftClient;
dlobSource: DLOBSource;
slotSource: SlotSource;
updateFrequency: number;
intervalId?: ReturnType<typeof setTimeout>;
dlob: DLOB;
eventEmitter: StrictEventEmitter<EventEmitter, DLOBSubscriberEvents>;
protectedMakerView: boolean;
constructor(config: DLOBSubscriptionConfig);
subscribe(): Promise<void>;
getProtectedMakerParamsMap(): ProtectMakerParamsMap | undefined;
updateDLOB(): Promise<void>;
getDLOB(): DLOB;
/**
* Get the L2 order book for a given market.
*
* @param marketName e.g. "SOL-PERP" or "SOL". If not provided, marketIndex and marketType must be provided.
* @param marketIndex
* @param marketType
* @param depth Number of orders to include in the order book. Defaults to 10.
* @param includeVamm Whether to include the VAMM orders in the order book. Defaults to false. If true, creates vAMM generator {@link getVammL2Generator} and adds it to fallbackL2Generators.
* @param fallbackL2Generators L2 generators for fallback liquidity e.g. vAMM {@link getVammL2Generator}, openbook {@link SerumSubscriber}
* @param latestSlot Latest slot observed via slot subscriber or similar for accuarate vamm quotes (if including the vAMM).
*/
getL2({ marketName, marketIndex, marketType, depth, includeVamm, numVammOrders, fallbackL2Generators, latestSlot, }: {
marketName?: string;
marketIndex?: number;
marketType?: MarketType;
depth?: number;
includeVamm?: boolean;
numVammOrders?: number;
fallbackL2Generators?: L2OrderBookGenerator[];
latestSlot?: BN;
}): L2OrderBook;
/**
* Get the L3 order book for a given market.
*
* @param marketName e.g. "SOL-PERP" or "SOL". If not provided, marketIndex and marketType must be provided.
* @param marketIndex
* @param marketType
*/
getL3({ marketName, marketIndex, marketType, }: {
marketName?: string;
marketIndex?: number;
marketType?: MarketType;
}): L3OrderBook;
unsubscribe(): Promise<void>;
}