UNPKG

@drift-labs/sdk-browser

Version:
44 lines (43 loc) 1.56 kB
/// <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>; }