UNPKG

@drift-labs/sdk-browser

Version:
60 lines (59 loc) 2.68 kB
/// <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>; }