@drift-labs/sdk-browser
Version:
SDK for Drift Protocol
38 lines (37 loc) • 1.72 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { Program } from '@coral-xyz/anchor';
import { Context, PublicKey } from '@solana/web3.js';
import { Client } from '../isomorphic/grpc';
import { DataAndSlot, GrpcConfigs, ResubOpts } from './types';
export declare class grpcMultiAccountSubscriber<T, U = undefined> {
private client;
private stream;
private commitmentLevel;
private program;
private accountName;
private decodeBufferFn?;
private resubOpts?;
private onUnsubscribe?;
listenerId?: number;
isUnsubscribing: boolean;
private timeoutId?;
private receivingData;
private subscribedAccounts;
private onChangeMap;
private dataMap;
private accountPropsMap;
private bufferMap;
private constructor();
static create<T, U = undefined>(grpcConfigs: GrpcConfigs, accountName: string, program: Program, decodeBuffer?: (buffer: Buffer, pubkey?: string, accountProps?: U) => T, resubOpts?: ResubOpts, clientProp?: Client, onUnsubscribe?: () => Promise<void>, accountPropsMap?: Map<string, U | Array<U>>): Promise<grpcMultiAccountSubscriber<T, U>>;
setAccountData(accountPubkey: string, data: T, slot?: number): void;
getAccountData(accountPubkey: string): DataAndSlot<T> | undefined;
getAccountDataMap(): Map<string, DataAndSlot<T>>;
fetch(): Promise<void>;
subscribe(accounts: PublicKey[], onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer, accountProps: U) => void): Promise<void>;
addAccounts(accounts: PublicKey[]): Promise<void>;
removeAccounts(accounts: PublicKey[]): Promise<void>;
unsubscribe(): Promise<void>;
private setTimeout;
private capitalize;
}