@drift-labs/sdk
Version:
SDK for Drift Protocol
38 lines • 1.72 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { Commitment, PublicKey } from '@solana/web3.js';
import { BufferAndSlot } from './types';
import { Connection } from '../bankrun/bankrunConnection';
export type AccountToLoad = {
publicKey: PublicKey;
callbacks: Map<string, (buffer: Buffer, slot: number) => void>;
};
export declare class BulkAccountLoader {
connection: Connection;
commitment: Commitment;
pollingFrequency: number;
accountsToLoad: Map<string, AccountToLoad>;
bufferAndSlotMap: Map<string, BufferAndSlot>;
errorCallbacks: Map<string, (e: any) => void>;
intervalId?: ReturnType<typeof setTimeout>;
loadPromise?: Promise<void>;
loadPromiseResolver: () => void;
lastTimeLoadingPromiseCleared: number;
mostRecentSlot: number;
constructor(connection: Connection, commitment: Commitment, pollingFrequency: number);
addAccount(publicKey: PublicKey, callback: (buffer: Buffer, slot: number) => void): Promise<string>;
removeAccount(publicKey: PublicKey, callbackId: string): void;
addErrorCallbacks(callback: (error: Error) => void): string;
removeErrorCallbacks(callbackId: string): void;
chunks<T>(array: readonly T[], size: number): T[][];
load(): Promise<void>;
loadChunk(accountsToLoadChunks: AccountToLoad[][]): Promise<void>;
handleAccountCallbacks(accountToLoad: AccountToLoad, buffer: Buffer, slot: number): void;
getBufferAndSlot(publicKey: PublicKey): BufferAndSlot | undefined;
getSlot(): number;
startPolling(): void;
stopPolling(): void;
log(msg: string): void;
updatePollingFrequency(pollingFrequency: number): void;
}
//# sourceMappingURL=bulkAccountLoader.d.ts.map