@drift-labs/sdk 2.146.0-beta.1 → 2.146.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -406,6 +406,8 @@ export class DriftClient {
406
406
  resubTimeoutMs: config.accountSubscription?.resubTimeoutMs,
407
407
  logResubMessages: config.accountSubscription?.logResubMessages,
408
408
  commitment: config.accountSubscription?.commitment,
409
+ programUserAccountSubscriber:
410
+ config.accountSubscription?.programUserAccountSubscriber,
409
411
  };
410
412
  this.userStatsAccountSubscriptionConfig = {
411
413
  type: 'websocket',
@@ -474,7 +476,10 @@ export class DriftClient {
474
476
  }
475
477
  );
476
478
  } else {
477
- this.accountSubscriber = new WebSocketDriftClientAccountSubscriber(
479
+ const accountSubscriberClass =
480
+ config.accountSubscription?.driftClientAccountSubscriber ??
481
+ WebSocketDriftClientAccountSubscriber;
482
+ this.accountSubscriber = new accountSubscriberClass(
478
483
  this.program,
479
484
  config.perpMarketIndexes ?? [],
480
485
  config.spotMarketIndexes ?? [],
@@ -485,9 +490,7 @@ export class DriftClient {
485
490
  resubTimeoutMs: config.accountSubscription?.resubTimeoutMs,
486
491
  logResubMessages: config.accountSubscription?.logResubMessages,
487
492
  },
488
- config.accountSubscription?.commitment,
489
- config.accountSubscription?.perpMarketAccountSubscriber,
490
- config.accountSubscription?.oracleAccountSubscriber
493
+ config.accountSubscription?.commitment
491
494
  );
492
495
  }
493
496
  this.eventEmitter = this.accountSubscriber.eventEmitter;
@@ -5,7 +5,7 @@ import {
5
5
  PublicKey,
6
6
  TransactionVersion,
7
7
  } from '@solana/web3.js';
8
- import { IWallet, TxParams } from './types';
8
+ import { IWallet, TxParams, UserAccount } from './types';
9
9
  import { OracleInfo } from './oracles/types';
10
10
  import { BulkAccountLoader } from './accounts/bulkAccountLoader';
11
11
  import { DriftEnv } from './config';
@@ -22,6 +22,9 @@ import { WebSocketAccountSubscriberV2 } from './accounts/webSocketAccountSubscri
22
22
  import { grpcDriftClientAccountSubscriberV2 } from './accounts/grpcDriftClientAccountSubscriberV2';
23
23
  import { grpcDriftClientAccountSubscriber } from './accounts/grpcDriftClientAccountSubscriber';
24
24
  import { grpcMultiUserAccountSubscriber } from './accounts/grpcMultiUserAccountSubscriber';
25
+ import { WebSocketProgramAccountSubscriber } from './accounts/webSocketProgramAccountSubscriber';
26
+ import { WebSocketDriftClientAccountSubscriber } from './accounts/webSocketDriftClientAccountSubscriber';
27
+ import { WebSocketDriftClientAccountSubscriberV2 } from './accounts/webSocketDriftClientAccountSubscriberV2';
25
28
 
26
29
  export type DriftClientConfig = {
27
30
  connection: Connection;
@@ -78,6 +81,7 @@ export type DriftClientSubscriptionConfig =
78
81
  resubTimeoutMs?: number;
79
82
  logResubMessages?: boolean;
80
83
  commitment?: Commitment;
84
+ programUserAccountSubscriber?: WebSocketProgramAccountSubscriber<UserAccount>;
81
85
  perpMarketAccountSubscriber?: new (
82
86
  accountName: string,
83
87
  program: Program,
@@ -86,14 +90,17 @@ export type DriftClientSubscriptionConfig =
86
90
  resubOpts?: ResubOpts,
87
91
  commitment?: Commitment
88
92
  ) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>;
89
- oracleAccountSubscriber?: new (
90
- accountName: string,
93
+ /** If you use V2 here, whatever you pass for perpMarketAccountSubscriber will be ignored and it will use v2 under the hood regardless */
94
+ driftClientAccountSubscriber?: new (
91
95
  program: Program,
92
- accountPublicKey: PublicKey,
93
- decodeBuffer?: (buffer: Buffer) => any,
94
- resubOpts?: ResubOpts,
95
- commitment?: Commitment
96
- ) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>;
96
+ perpMarketIndexes: number[],
97
+ spotMarketIndexes: number[],
98
+ oracleInfos: OracleInfo[],
99
+ shouldFindAllMarketsAndOracles: boolean,
100
+ delistedMarketSetting: DelistedMarketSetting
101
+ ) =>
102
+ | WebSocketDriftClientAccountSubscriber
103
+ | WebSocketDriftClientAccountSubscriberV2;
97
104
  }
98
105
  | {
99
106
  type: 'polling';
package/src/index.ts CHANGED
@@ -12,6 +12,10 @@ export * from './accounts/webSocketDriftClientAccountSubscriber';
12
12
  export * from './accounts/webSocketInsuranceFundStakeAccountSubscriber';
13
13
  export * from './accounts/webSocketHighLeverageModeConfigAccountSubscriber';
14
14
  export { WebSocketAccountSubscriberV2 } from './accounts/webSocketAccountSubscriberV2';
15
+ export { WebSocketProgramAccountSubscriber } from './accounts/webSocketProgramAccountSubscriber';
16
+ export { WebSocketProgramUserAccountSubscriber } from './accounts/websocketProgramUserAccountSubscriber';
17
+ export { WebSocketProgramAccountsSubscriberV2 } from './accounts/webSocketProgramAccountsSubscriberV2';
18
+ export { WebSocketDriftClientAccountSubscriberV2 } from './accounts/webSocketDriftClientAccountSubscriberV2';
15
19
  export * from './accounts/bulkAccountLoader';
16
20
  export * from './accounts/bulkUserSubscription';
17
21
  export * from './accounts/bulkUserStatsSubscription';