UNPKG

@drift-labs/sdk

Version:
65 lines 3.27 kB
/// <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