@drift-labs/sdk
Version:
SDK for Drift Protocol
30 lines (29 loc) • 1.3 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { DataAndSlot, BufferAndSlot, AccountSubscriber, ResubOpts } from './types';
import { Program } from '@coral-xyz/anchor';
import { AccountInfo, Commitment, Context, PublicKey } from '@solana/web3.js';
export declare class WebSocketAccountSubscriber<T> implements AccountSubscriber<T> {
dataAndSlot?: DataAndSlot<T>;
bufferAndSlot?: BufferAndSlot;
accountName: string;
logAccountName: string;
program: Program;
accountPublicKey: PublicKey;
decodeBufferFn: (buffer: Buffer) => T;
onChange: (data: T) => void;
listenerId?: number;
resubOpts?: ResubOpts;
commitment?: Commitment;
isUnsubscribing: boolean;
timeoutId?: ReturnType<typeof setTimeout>;
receivingData: boolean;
constructor(accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => T, resubOpts?: ResubOpts, commitment?: Commitment);
subscribe(onChange: (data: T) => void): Promise<void>;
setData(data: T, slot?: number): void;
protected setTimeout(): void;
fetch(): Promise<void>;
handleRpcResponse(context: Context, accountInfo?: AccountInfo<Buffer>): void;
decodeBuffer(buffer: Buffer): T;
unsubscribe(onResub?: boolean): Promise<void>;
}