UNPKG

@drift-labs/sdk

Version:
74 lines 5.23 kB
/// <reference types="node" /> /// <reference types="node" /> /// <reference types="node" /> import { AccountSubscriber, DataAndSlot, DelistedMarketSetting, DriftClientAccountEvents, DriftClientAccountSubscriber, ResubOpts } from './types'; import { PerpMarketAccount, SpotMarketAccount, StateAccount } from '../types'; import { Program } from '@coral-xyz/anchor'; import StrictEventEmitter from 'strict-event-emitter-types'; import { EventEmitter } from 'events'; import { WebSocketAccountSubscriber } from './webSocketAccountSubscriber'; import { Commitment, PublicKey } from '@solana/web3.js'; import { OracleInfo, OraclePriceData } from '../oracles/types'; import { OracleClientCache } from '../oracles/oracleClientCache'; import { WebSocketAccountSubscriberV2 } from './webSocketAccountSubscriberV2'; export declare class WebSocketDriftClientAccountSubscriber implements DriftClientAccountSubscriber { isSubscribed: boolean; program: Program; commitment?: Commitment; perpMarketIndexes: number[]; spotMarketIndexes: number[]; oracleInfos: OracleInfo[]; oracleClientCache: OracleClientCache; resubOpts?: ResubOpts; shouldFindAllMarketsAndOracles: boolean; eventEmitter: StrictEventEmitter<EventEmitter, DriftClientAccountEvents>; stateAccountSubscriber?: AccountSubscriber<StateAccount>; perpMarketAccountSubscribers: Map<number, AccountSubscriber<PerpMarketAccount>>; perpOracleMap: Map<number, PublicKey>; perpOracleStringMap: Map<number, string>; spotMarketAccountSubscribers: Map<number, AccountSubscriber<SpotMarketAccount>>; spotOracleMap: Map<number, PublicKey>; spotOracleStringMap: Map<number, string>; oracleSubscribers: Map<string, AccountSubscriber<OraclePriceData>>; delistedMarketSetting: DelistedMarketSetting; initialPerpMarketAccountData: Map<number, PerpMarketAccount>; initialSpotMarketAccountData: Map<number, SpotMarketAccount>; initialOraclePriceData: Map<string, OraclePriceData>; customPerpMarketAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => AccountSubscriber<any>; customOracleAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => AccountSubscriber<any>; protected isSubscribing: boolean; protected subscriptionPromise: Promise<boolean>; protected subscriptionPromiseResolver: (val: boolean) => void; constructor(program: Program, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting, resubOpts?: ResubOpts, commitment?: Commitment, customPerpMarketAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>, customOracleAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>); subscribe(): Promise<boolean>; chunks: <T>(array: readonly T[], size: number) => T[][]; setInitialData(): Promise<void>; removeInitialData(): void; subscribeToPerpMarketAccounts(): Promise<boolean>; subscribeToPerpMarketAccount(marketIndex: number): Promise<boolean>; subscribeToSpotMarketAccounts(): Promise<boolean>; subscribeToSpotMarketAccount(marketIndex: number): Promise<boolean>; subscribeToOracles(): Promise<boolean>; subscribeToOracle(oracleInfo: OracleInfo): Promise<boolean>; unsubscribeFromMarketAccounts(): Promise<void>; unsubscribeFromSpotMarketAccounts(): Promise<void>; unsubscribeFromOracles(): Promise<void>; fetch(): Promise<void>; unsubscribe(): Promise<void>; addSpotMarket(marketIndex: number): Promise<boolean>; addPerpMarket(marketIndex: number): Promise<boolean>; addOracle(oracleInfo: OracleInfo): Promise<boolean>; setPerpOracleMap(): Promise<void>; setSpotOracleMap(): Promise<void>; handleDelistedMarkets(): Promise<void>; assertIsSubscribed(): void; getStateAccountAndSlot(): DataAndSlot<StateAccount>; getMarketAccountAndSlot(marketIndex: number): DataAndSlot<PerpMarketAccount> | undefined; getMarketAccountsAndSlots(): DataAndSlot<PerpMarketAccount>[]; getSpotMarketAccountAndSlot(marketIndex: number): DataAndSlot<SpotMarketAccount> | undefined; getSpotMarketAccountsAndSlots(): DataAndSlot<SpotMarketAccount>[]; getOraclePriceDataAndSlot(oracleId: string): DataAndSlot<OraclePriceData> | undefined; getOraclePriceDataAndSlotForPerpMarket(marketIndex: number): DataAndSlot<OraclePriceData> | undefined; getOraclePriceDataAndSlotForSpotMarket(marketIndex: number): DataAndSlot<OraclePriceData> | undefined; } //# sourceMappingURL=webSocketDriftClientAccountSubscriber.d.ts.map