@drift-labs/sdk
Version:
SDK for Drift Protocol
65 lines • 3.27 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import { Commitment, ConfirmOptions, Connection, PublicKey, TransactionVersion } from '@solana/web3.js';
import { IWallet, TxParams, UserAccount } from './types';
import { OracleInfo } from './oracles/types';
import { BulkAccountLoader } from './accounts/bulkAccountLoader';
import { DriftEnv } from './config';
import { TxSender } from './tx/types';
import { TxHandler, TxHandlerConfig } from './tx/txHandler';
import { GrpcConfigs, ResubOpts, DelistedMarketSetting } from './accounts/types';
import { Coder, Program } from '@coral-xyz/anchor';
import { WebSocketAccountSubscriber } from './accounts/webSocketAccountSubscriber';
import { WebSocketAccountSubscriberV2 } from './accounts/webSocketAccountSubscriberV2';
import { WebSocketProgramAccountSubscriber } from './accounts/webSocketProgramAccountSubscriber';
import { WebSocketDriftClientAccountSubscriberV2 } from './accounts/webSocketDriftClientAccountSubscriberV2';
import { WebSocketDriftClientAccountSubscriber } from './accounts/webSocketDriftClientAccountSubscriber';
export type DriftClientConfig = {
connection: Connection;
wallet: IWallet;
env?: DriftEnv;
programID?: PublicKey;
accountSubscription?: DriftClientSubscriptionConfig;
opts?: ConfirmOptions;
txSender?: TxSender;
txHandler?: TxHandler;
subAccountIds?: number[];
activeSubAccountId?: number;
perpMarketIndexes?: number[];
spotMarketIndexes?: number[];
/** @deprecated use marketLookupTables */
marketLookupTable?: PublicKey;
marketLookupTables?: PublicKey[];
oracleInfos?: OracleInfo[];
userStats?: boolean;
authority?: PublicKey;
includeDelegates?: boolean;
authoritySubAccountMap?: Map<string, number[]>;
skipLoadUsers?: boolean;
txVersion?: TransactionVersion;
txParams?: TxParams;
enableMetricsEvents?: boolean;
txHandlerConfig?: TxHandlerConfig;
delistedMarketSetting?: DelistedMarketSetting;
useHotWalletAdmin?: boolean;
coder?: Coder;
};
export type DriftClientSubscriptionConfig = {
type: 'grpc';
grpcConfigs: GrpcConfigs;
resubTimeoutMs?: number;
logResubMessages?: boolean;
} | {
type: 'websocket';
resubTimeoutMs?: number;
logResubMessages?: boolean;
commitment?: Commitment;
programUserAccountSubscriber?: WebSocketProgramAccountSubscriber<UserAccount>;
perpMarketAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>;
/** If you use V2 here, whatever you pass for perpMarketAccountSubscriber and oracleAccountSubscriber will be ignored and it will use v2 under the hood regardless */
driftClientAccountSubscriber?: new (program: Program, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting) => WebSocketDriftClientAccountSubscriber | WebSocketDriftClientAccountSubscriberV2;
} | {
type: 'polling';
accountLoader: BulkAccountLoader;
};
//# sourceMappingURL=driftClientConfig.d.ts.map