@drift-labs/sdk
Version:
SDK for Drift Protocol
56 lines (53 loc) • 1.29 kB
text/typescript
import { Commitment, PublicKey } from '@solana/web3.js';
import { Order, UserAccount } from '../types';
import { DriftClient } from '../driftClient';
import { GrpcConfigs } from '../accounts/types';
export type OrderSubscriberConfig = {
driftClient: DriftClient;
subscriptionConfig:
| {
type: 'polling';
frequency: number;
commitment?: Commitment;
}
| {
type: 'websocket';
skipInitialLoad?: boolean;
resubTimeoutMs?: number;
logResubMessages?: boolean;
resyncIntervalMs?: number;
commitment?: Commitment;
}
| {
type: 'grpc';
grpcConfigs: GrpcConfigs;
skipInitialLoad?: boolean;
resubTimeoutMs?: number;
logResubMessages?: boolean;
resyncIntervalMs?: number;
commitment?: Commitment;
};
fastDecode?: boolean;
decodeData?: boolean;
fetchAllNonIdleUsers?: boolean;
};
export interface OrderSubscriberEvents {
orderCreated: (
account: UserAccount,
updatedOrders: Order[],
pubkey: PublicKey,
slot: number,
dataType: 'raw' | 'decoded' | 'buffer'
) => void;
userUpdated: (
account: UserAccount,
pubkey: PublicKey,
slot: number,
dataType: 'raw' | 'decoded' | 'buffer'
) => void;
updateReceived: (
pubkey: PublicKey,
slot: number,
dataType: 'raw' | 'decoded' | 'buffer'
) => void;
}