UNPKG

@drift-labs/sdk

Version:
54 lines 2.44 kB
/// <reference types="node" /> /// <reference types="node" /> import { BufferAndSlot, ProgramAccountSubscriber, ResubOpts } from './types'; import { Program } from '@coral-xyz/anchor'; import { Commitment, Context, MemcmpFilter, PublicKey } from '@solana/web3.js'; import { AccountInfoBase, AccountInfoWithBase58EncodedData, AccountInfoWithBase64EncodedData } from 'gill'; export declare class WebSocketProgramAccountSubscriberV2<T> implements ProgramAccountSubscriber<T> { subscriptionName: string; accountDiscriminator: string; bufferAndSlot?: BufferAndSlot; bufferAndSlotMap: Map<string, BufferAndSlot>; program: Program; decodeBuffer: (accountName: string, ix: Buffer) => T; onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void; listenerId?: number; resubOpts?: ResubOpts; isUnsubscribing: boolean; timeoutId?: ReturnType<typeof setTimeout>; options: { filters: MemcmpFilter[]; commitment?: Commitment; }; receivingData: boolean; private rpc; private rpcSubscriptions; private abortController?; private accountsToMonitor; private pollingIntervalMs; private pollingTimeouts; private lastWsNotificationTime; private accountsCurrentlyPolling; private batchPollingTimeout?; constructor(subscriptionName: string, accountDiscriminator: string, program: Program, decodeBufferFn: (accountName: string, ix: Buffer) => T, options?: { filters: MemcmpFilter[]; commitment?: Commitment; }, resubOpts?: ResubOpts, accountsToMonitor?: PublicKey[]); subscribe(onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void): Promise<void>; protected setTimeout(): void; handleRpcResponse(context: { slot: bigint; }, accountInfo?: AccountInfoBase & (AccountInfoWithBase58EncodedData | AccountInfoWithBase64EncodedData)): void; private startMonitoringForAccounts; private startMonitoringForAccount; private startPollingForAccount; private startBatchPolling; private pollAllAccounts; private pollAccount; private clearPollingTimeouts; unsubscribe(onResub?: boolean): Promise<void>; addAccountToMonitor(accountId: PublicKey): void; removeAccountFromMonitor(accountId: PublicKey): void; setPollingInterval(intervalMs: number): void; } //# sourceMappingURL=webSocketProgramAccountSubscriberV2.d.ts.map