@drift-labs/sdk
Version:
SDK for Drift Protocol
43 lines • 2.23 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
/// <reference types="node" />
import { WebSocketProgramAccountSubscriber } from '../accounts/webSocketProgramAccountSubscriber';
import { SignedMsgOrderId, SignedMsgUserOrdersAccount } from '../types';
import { Commitment, PublicKey } from '@solana/web3.js';
import { ResubOpts } from '../accounts/types';
import { DriftClient } from '../driftClient';
import StrictEventEmitter from 'strict-event-emitter-types';
import { EventEmitter } from 'events';
export interface SignedMsgUserOrdersAccountSubscriberEvents {
onAccountUpdate: (activeSignedMsgOrderIds: SignedMsgOrderId[], authorityPubkey: PublicKey, slot: number) => void;
newSignedMsgOrderIds: (newSignedMsgOrderIds: SignedMsgOrderId[], authorityPubkey: PublicKey, slot: number) => void;
}
export declare class SignedMsgUserOrdersAccountSubscriber {
protected driftClient: DriftClient;
protected commitment: Commitment;
protected resubOpts?: ResubOpts;
protected resyncTimeoutId?: ReturnType<typeof setTimeout>;
protected resyncIntervalMs?: number;
protected decodeFn: (name: string, data: Buffer) => SignedMsgUserOrdersAccount;
signedMsgUserOrderAccounts: Map<string, {
slot: number;
signedMsgUserOrdersAccount: SignedMsgUserOrdersAccount;
}>;
mostRecentSlot: number;
fetchPromise?: Promise<void>;
fetchPromiseResolver: () => void;
protected subscriber: WebSocketProgramAccountSubscriber<SignedMsgUserOrdersAccount>;
eventEmitter: StrictEventEmitter<EventEmitter, SignedMsgUserOrdersAccountSubscriberEvents>;
constructor({ driftClient, commitment, resubOpts, decodeFn, resyncIntervalMs, }: {
driftClient: DriftClient;
commitment?: Commitment;
resubOpts?: ResubOpts;
decodeFn?: (name: string, data: Buffer) => SignedMsgUserOrdersAccount;
resyncIntervalMs?: number;
});
subscribe(): Promise<void>;
fetch(): Promise<void>;
tryUpdateSignedMsgUserOrdersAccount(data: Buffer | SignedMsgUserOrdersAccount, dataType: 'buffer' | 'decoded', slot: number, skipEventEmitting?: boolean): void;
unsubscribe(): Promise<void>;
}
//# sourceMappingURL=signedMsgUserAccountSubscriber.d.ts.map