@drift-labs/sdk-browser
Version:
SDK for Drift Protocol
44 lines (43 loc) • 1.56 kB
TypeScript
/// <reference types="bn.js" />
import { Connection, PublicKey } from '@solana/web3.js';
import { BulkAccountLoader } from '../accounts/bulkAccountLoader';
import { Client, Market } from '@ellipsis-labs/phoenix-sdk';
import { BN } from '@coral-xyz/anchor';
import { L2Level, L2OrderBookGenerator } from '../dlob/orderBookLevels';
export type PhoenixMarketSubscriberConfig = {
connection: Connection;
programId: PublicKey;
marketAddress: PublicKey;
accountSubscription: {
type: 'polling';
accountLoader: BulkAccountLoader;
} | {
type: 'websocket';
};
fastDecode?: boolean;
};
export declare class PhoenixSubscriber implements L2OrderBookGenerator {
connection: Connection;
client: Client;
programId: PublicKey;
marketAddress: PublicKey;
subscriptionType: 'polling' | 'websocket';
accountLoader: BulkAccountLoader | undefined;
market: Market;
marketCallbackId: string | number;
clockCallbackId: string | number;
fastDecode: boolean;
subscribed: boolean;
lastSlot: number;
lastUnixTimestamp: number;
constructor(config: PhoenixMarketSubscriberConfig);
subscribe(): Promise<void>;
getBestBid(): BN | undefined;
getBestAsk(): BN | undefined;
convertPriceInTicksToPricePrecision(priceInTicks: BN): BN;
convertSizeInBaseLotsToMarketPrecision(sizeInBaseLots: BN): BN;
getL2Bids(): Generator<L2Level>;
getL2Asks(): Generator<L2Level>;
getL2Levels(side: 'bids' | 'asks'): Generator<L2Level>;
unsubscribe(): Promise<void>;
}