@solsdk/keystone_sdk
Version:
SDK for Keystone Protocol
56 lines • 2.48 kB
TypeScript
/// <reference types="node" />
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';
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}
*/
getL2({ marketName, marketIndex, marketType, depth, includeVamm, numVammOrders, fallbackL2Generators, }: {
marketName?: string;
marketIndex?: number;
marketType?: MarketType;
depth?: number;
includeVamm?: boolean;
numVammOrders?: number;
fallbackL2Generators?: L2OrderBookGenerator[];
}): 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>;
}
//# sourceMappingURL=DLOBSubscriber.d.ts.map