@drift-labs/sdk 2.136.0-beta.0 → 2.136.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.
Files changed (77) hide show
  1. package/VERSION +1 -1
  2. package/lib/browser/accounts/types.d.ts +2 -0
  3. package/lib/browser/accounts/webSocketAccountSubscriberV2.d.ts +76 -3
  4. package/lib/browser/accounts/webSocketAccountSubscriberV2.js +211 -39
  5. package/lib/browser/accounts/webSocketDriftClientAccountSubscriberV2.d.ts +87 -0
  6. package/lib/browser/accounts/webSocketDriftClientAccountSubscriberV2.js +444 -0
  7. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.d.ts +145 -0
  8. package/lib/browser/accounts/webSocketProgramAccountsSubscriberV2.js +744 -0
  9. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.d.ts +22 -0
  10. package/lib/browser/accounts/websocketProgramUserAccountSubscriber.js +54 -0
  11. package/lib/browser/driftClient.js +22 -18
  12. package/lib/browser/driftClientConfig.d.ts +7 -2
  13. package/lib/browser/factory/bigNum.d.ts +2 -2
  14. package/lib/browser/factory/bigNum.js +20 -5
  15. package/lib/browser/index.d.ts +4 -0
  16. package/lib/browser/index.js +9 -1
  17. package/lib/browser/memcmp.d.ts +2 -0
  18. package/lib/browser/memcmp.js +19 -1
  19. package/lib/browser/oracles/oracleId.d.ts +5 -0
  20. package/lib/browser/oracles/oracleId.js +46 -1
  21. package/lib/browser/user.js +12 -5
  22. package/lib/browser/userConfig.d.ts +3 -0
  23. package/lib/node/accounts/types.d.ts +2 -0
  24. package/lib/node/accounts/types.d.ts.map +1 -1
  25. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts +76 -3
  26. package/lib/node/accounts/webSocketAccountSubscriberV2.d.ts.map +1 -1
  27. package/lib/node/accounts/webSocketAccountSubscriberV2.js +211 -39
  28. package/lib/node/accounts/webSocketDriftClientAccountSubscriberV2.d.ts +88 -0
  29. package/lib/node/accounts/webSocketDriftClientAccountSubscriberV2.d.ts.map +1 -0
  30. package/lib/node/accounts/webSocketDriftClientAccountSubscriberV2.js +444 -0
  31. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts +146 -0
  32. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.d.ts.map +1 -0
  33. package/lib/node/accounts/webSocketProgramAccountsSubscriberV2.js +744 -0
  34. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts +23 -0
  35. package/lib/node/accounts/websocketProgramUserAccountSubscriber.d.ts.map +1 -0
  36. package/lib/node/accounts/websocketProgramUserAccountSubscriber.js +54 -0
  37. package/lib/node/driftClient.d.ts.map +1 -1
  38. package/lib/node/driftClient.js +22 -18
  39. package/lib/node/driftClientConfig.d.ts +7 -2
  40. package/lib/node/driftClientConfig.d.ts.map +1 -1
  41. package/lib/node/factory/bigNum.d.ts +2 -2
  42. package/lib/node/factory/bigNum.d.ts.map +1 -1
  43. package/lib/node/factory/bigNum.js +20 -5
  44. package/lib/node/index.d.ts +4 -0
  45. package/lib/node/index.d.ts.map +1 -1
  46. package/lib/node/index.js +9 -1
  47. package/lib/node/memcmp.d.ts +2 -0
  48. package/lib/node/memcmp.d.ts.map +1 -1
  49. package/lib/node/memcmp.js +19 -1
  50. package/lib/node/oracles/oracleId.d.ts +5 -0
  51. package/lib/node/oracles/oracleId.d.ts.map +1 -1
  52. package/lib/node/oracles/oracleId.js +46 -1
  53. package/lib/node/user.d.ts.map +1 -1
  54. package/lib/node/user.js +12 -5
  55. package/lib/node/userConfig.d.ts +3 -0
  56. package/lib/node/userConfig.d.ts.map +1 -1
  57. package/package.json +1 -1
  58. package/src/accounts/README_WebSocketAccountSubscriberV2.md +41 -0
  59. package/src/accounts/types.ts +3 -0
  60. package/src/accounts/webSocketAccountSubscriberV2.ts +243 -42
  61. package/src/accounts/webSocketDriftClientAccountSubscriberV2.ts +745 -0
  62. package/src/accounts/webSocketProgramAccountsSubscriberV2.ts +995 -0
  63. package/src/accounts/websocketProgramUserAccountSubscriber.ts +94 -0
  64. package/src/driftClient.ts +13 -7
  65. package/src/driftClientConfig.ts +15 -8
  66. package/src/factory/bigNum.ts +22 -5
  67. package/src/index.ts +4 -0
  68. package/src/memcmp.ts +17 -0
  69. package/src/oracles/oracleId.ts +34 -0
  70. package/src/user.ts +21 -9
  71. package/src/userConfig.ts +3 -0
  72. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.d.ts +0 -53
  73. package/lib/browser/accounts/webSocketProgramAccountSubscriberV2.js +0 -453
  74. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts +0 -54
  75. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.d.ts.map +0 -1
  76. package/lib/node/accounts/webSocketProgramAccountSubscriberV2.js +0 -453
  77. package/src/accounts/webSocketProgramAccountSubscriberV2.ts +0 -596
@@ -0,0 +1,22 @@
1
+ /// <reference types="node" />
2
+ import { DataAndSlot, UserAccountEvents, UserAccountSubscriber } from './types';
3
+ import { Program } from '@coral-xyz/anchor';
4
+ import StrictEventEmitter from 'strict-event-emitter-types';
5
+ import { EventEmitter } from 'events';
6
+ import { PublicKey } from '@solana/web3.js';
7
+ import { WebSocketProgramAccountSubscriber } from './webSocketProgramAccountSubscriber';
8
+ import { UserAccount } from '../types';
9
+ export declare class WebSocketProgramUserAccountSubscriber implements UserAccountSubscriber {
10
+ isSubscribed: boolean;
11
+ eventEmitter: StrictEventEmitter<EventEmitter, UserAccountEvents>;
12
+ private userAccountPublicKey;
13
+ private program;
14
+ private programSubscriber;
15
+ private userAccountAndSlot?;
16
+ constructor(program: Program, userAccountPublicKey: PublicKey, programSubscriber: WebSocketProgramAccountSubscriber<UserAccount>);
17
+ subscribe(userAccount?: UserAccount): Promise<boolean>;
18
+ fetch(): Promise<void>;
19
+ updateData(userAccount: UserAccount, slot: number): void;
20
+ unsubscribe(): Promise<void>;
21
+ getUserAccountAndSlot(): DataAndSlot<UserAccount>;
22
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WebSocketProgramUserAccountSubscriber = void 0;
4
+ const types_1 = require("./types");
5
+ const events_1 = require("events");
6
+ class WebSocketProgramUserAccountSubscriber {
7
+ constructor(program, userAccountPublicKey, programSubscriber) {
8
+ this.isSubscribed = false;
9
+ this.program = program;
10
+ this.userAccountPublicKey = userAccountPublicKey;
11
+ this.eventEmitter = new events_1.EventEmitter();
12
+ this.programSubscriber = programSubscriber;
13
+ }
14
+ async subscribe(userAccount) {
15
+ if (this.isSubscribed) {
16
+ return true;
17
+ }
18
+ if (userAccount) {
19
+ this.updateData(userAccount, 0);
20
+ }
21
+ this.programSubscriber.onChange = (accountId, data, context) => {
22
+ if (accountId.equals(this.userAccountPublicKey)) {
23
+ this.updateData(data, context.slot);
24
+ this.eventEmitter.emit('userAccountUpdate', data);
25
+ this.eventEmitter.emit('update');
26
+ }
27
+ };
28
+ this.isSubscribed = true;
29
+ return true;
30
+ }
31
+ async fetch() {
32
+ if (!this.isSubscribed) {
33
+ throw new types_1.NotSubscribedError('Must subscribe before fetching account updates');
34
+ }
35
+ const account = await this.program.account.user.fetch(this.userAccountPublicKey);
36
+ this.updateData(account, 0);
37
+ }
38
+ updateData(userAccount, slot) {
39
+ this.userAccountAndSlot = {
40
+ data: userAccount,
41
+ slot,
42
+ };
43
+ }
44
+ async unsubscribe() {
45
+ this.isSubscribed = false;
46
+ }
47
+ getUserAccountAndSlot() {
48
+ if (!this.userAccountAndSlot) {
49
+ throw new types_1.NotSubscribedError('Must subscribe before getting user account data');
50
+ }
51
+ return this.userAccountAndSlot;
52
+ }
53
+ }
54
+ exports.WebSocketProgramUserAccountSubscriber = WebSocketProgramUserAccountSubscriber;
@@ -42,7 +42,6 @@ const position_1 = require("./math/position");
42
42
  const spotBalance_1 = require("./math/spotBalance");
43
43
  const userName_1 = require("./userName");
44
44
  const pollingDriftClientAccountSubscriber_1 = require("./accounts/pollingDriftClientAccountSubscriber");
45
- const webSocketDriftClientAccountSubscriber_1 = require("./accounts/webSocketDriftClientAccountSubscriber");
46
45
  const retryTxSender_1 = require("./tx/retryTxSender");
47
46
  const user_1 = require("./user");
48
47
  const config_1 = require("./config");
@@ -72,6 +71,7 @@ const tweetnacl_1 = __importDefault(require("tweetnacl"));
72
71
  const oracleId_1 = require("./oracles/oracleId");
73
72
  const sha256_1 = require("@noble/hashes/sha256");
74
73
  const utils_3 = require("./oracles/utils");
74
+ const webSocketDriftClientAccountSubscriber_1 = require("./accounts/webSocketDriftClientAccountSubscriber");
75
75
  /**
76
76
  * # DriftClient
77
77
  * This class is the main way to interact with Drift Protocol. It allows you to subscribe to the various accounts where the Market's state is stored, as well as: opening positions, liquidating, settling funding, depositing & withdrawing, and more.
@@ -84,7 +84,7 @@ class DriftClient {
84
84
  this._isSubscribed = val;
85
85
  }
86
86
  constructor(config) {
87
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22;
87
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23;
88
88
  this.users = new Map();
89
89
  this._isSubscribed = false;
90
90
  this.perpMarketLastSlotCache = new Map();
@@ -174,12 +174,13 @@ class DriftClient {
174
174
  resubTimeoutMs: (_y = config.accountSubscription) === null || _y === void 0 ? void 0 : _y.resubTimeoutMs,
175
175
  logResubMessages: (_z = config.accountSubscription) === null || _z === void 0 ? void 0 : _z.logResubMessages,
176
176
  commitment: (_0 = config.accountSubscription) === null || _0 === void 0 ? void 0 : _0.commitment,
177
+ programUserAccountSubscriber: (_1 = config.accountSubscription) === null || _1 === void 0 ? void 0 : _1.programUserAccountSubscriber,
177
178
  };
178
179
  this.userStatsAccountSubscriptionConfig = {
179
180
  type: 'websocket',
180
- resubTimeoutMs: (_1 = config.accountSubscription) === null || _1 === void 0 ? void 0 : _1.resubTimeoutMs,
181
- logResubMessages: (_2 = config.accountSubscription) === null || _2 === void 0 ? void 0 : _2.logResubMessages,
182
- commitment: (_3 = config.accountSubscription) === null || _3 === void 0 ? void 0 : _3.commitment,
181
+ resubTimeoutMs: (_2 = config.accountSubscription) === null || _2 === void 0 ? void 0 : _2.resubTimeoutMs,
182
+ logResubMessages: (_3 = config.accountSubscription) === null || _3 === void 0 ? void 0 : _3.logResubMessages,
183
+ commitment: (_4 = config.accountSubscription) === null || _4 === void 0 ? void 0 : _4.commitment,
183
184
  };
184
185
  }
185
186
  if (config.userStats) {
@@ -201,20 +202,21 @@ class DriftClient {
201
202
  const noMarketsAndOraclesSpecified = config.perpMarketIndexes === undefined &&
202
203
  config.spotMarketIndexes === undefined &&
203
204
  config.oracleInfos === undefined;
204
- if (((_4 = config.accountSubscription) === null || _4 === void 0 ? void 0 : _4.type) === 'polling') {
205
- this.accountSubscriber = new pollingDriftClientAccountSubscriber_1.PollingDriftClientAccountSubscriber(this.program, config.accountSubscription.accountLoader, (_5 = config.perpMarketIndexes) !== null && _5 !== void 0 ? _5 : [], (_6 = config.spotMarketIndexes) !== null && _6 !== void 0 ? _6 : [], (_7 = config.oracleInfos) !== null && _7 !== void 0 ? _7 : [], noMarketsAndOraclesSpecified, delistedMarketSetting);
205
+ if (((_5 = config.accountSubscription) === null || _5 === void 0 ? void 0 : _5.type) === 'polling') {
206
+ this.accountSubscriber = new pollingDriftClientAccountSubscriber_1.PollingDriftClientAccountSubscriber(this.program, config.accountSubscription.accountLoader, (_6 = config.perpMarketIndexes) !== null && _6 !== void 0 ? _6 : [], (_7 = config.spotMarketIndexes) !== null && _7 !== void 0 ? _7 : [], (_8 = config.oracleInfos) !== null && _8 !== void 0 ? _8 : [], noMarketsAndOraclesSpecified, delistedMarketSetting);
206
207
  }
207
- else if (((_8 = config.accountSubscription) === null || _8 === void 0 ? void 0 : _8.type) === 'grpc') {
208
- this.accountSubscriber = new grpcDriftClientAccountSubscriber_1.gprcDriftClientAccountSubscriber(config.accountSubscription.grpcConfigs, this.program, (_9 = config.perpMarketIndexes) !== null && _9 !== void 0 ? _9 : [], (_10 = config.spotMarketIndexes) !== null && _10 !== void 0 ? _10 : [], (_11 = config.oracleInfos) !== null && _11 !== void 0 ? _11 : [], noMarketsAndOraclesSpecified, delistedMarketSetting, {
209
- resubTimeoutMs: (_12 = config.accountSubscription) === null || _12 === void 0 ? void 0 : _12.resubTimeoutMs,
210
- logResubMessages: (_13 = config.accountSubscription) === null || _13 === void 0 ? void 0 : _13.logResubMessages,
208
+ else if (((_9 = config.accountSubscription) === null || _9 === void 0 ? void 0 : _9.type) === 'grpc') {
209
+ this.accountSubscriber = new grpcDriftClientAccountSubscriber_1.gprcDriftClientAccountSubscriber(config.accountSubscription.grpcConfigs, this.program, (_10 = config.perpMarketIndexes) !== null && _10 !== void 0 ? _10 : [], (_11 = config.spotMarketIndexes) !== null && _11 !== void 0 ? _11 : [], (_12 = config.oracleInfos) !== null && _12 !== void 0 ? _12 : [], noMarketsAndOraclesSpecified, delistedMarketSetting, {
210
+ resubTimeoutMs: (_13 = config.accountSubscription) === null || _13 === void 0 ? void 0 : _13.resubTimeoutMs,
211
+ logResubMessages: (_14 = config.accountSubscription) === null || _14 === void 0 ? void 0 : _14.logResubMessages,
211
212
  });
212
213
  }
213
214
  else {
214
- this.accountSubscriber = new webSocketDriftClientAccountSubscriber_1.WebSocketDriftClientAccountSubscriber(this.program, (_14 = config.perpMarketIndexes) !== null && _14 !== void 0 ? _14 : [], (_15 = config.spotMarketIndexes) !== null && _15 !== void 0 ? _15 : [], (_16 = config.oracleInfos) !== null && _16 !== void 0 ? _16 : [], noMarketsAndOraclesSpecified, delistedMarketSetting, {
215
- resubTimeoutMs: (_17 = config.accountSubscription) === null || _17 === void 0 ? void 0 : _17.resubTimeoutMs,
216
- logResubMessages: (_18 = config.accountSubscription) === null || _18 === void 0 ? void 0 : _18.logResubMessages,
217
- }, (_19 = config.accountSubscription) === null || _19 === void 0 ? void 0 : _19.commitment, (_20 = config.accountSubscription) === null || _20 === void 0 ? void 0 : _20.perpMarketAccountSubscriber, (_21 = config.accountSubscription) === null || _21 === void 0 ? void 0 : _21.oracleAccountSubscriber);
215
+ const accountSubscriberClass = (_16 = (_15 = config.accountSubscription) === null || _15 === void 0 ? void 0 : _15.driftClientAccountSubscriber) !== null && _16 !== void 0 ? _16 : webSocketDriftClientAccountSubscriber_1.WebSocketDriftClientAccountSubscriber;
216
+ this.accountSubscriber = new accountSubscriberClass(this.program, (_17 = config.perpMarketIndexes) !== null && _17 !== void 0 ? _17 : [], (_18 = config.spotMarketIndexes) !== null && _18 !== void 0 ? _18 : [], (_19 = config.oracleInfos) !== null && _19 !== void 0 ? _19 : [], noMarketsAndOraclesSpecified, delistedMarketSetting, {
217
+ resubTimeoutMs: (_20 = config.accountSubscription) === null || _20 === void 0 ? void 0 : _20.resubTimeoutMs,
218
+ logResubMessages: (_21 = config.accountSubscription) === null || _21 === void 0 ? void 0 : _21.logResubMessages,
219
+ }, (_22 = config.accountSubscription) === null || _22 === void 0 ? void 0 : _22.commitment);
218
220
  }
219
221
  this.eventEmitter = this.accountSubscriber.eventEmitter;
220
222
  this.metricsEventEmitter = new events_1.EventEmitter();
@@ -222,7 +224,7 @@ class DriftClient {
222
224
  this.enableMetricsEvents = true;
223
225
  }
224
226
  this.txSender =
225
- (_22 = config.txSender) !== null && _22 !== void 0 ? _22 : new retryTxSender_1.RetryTxSender({
227
+ (_23 = config.txSender) !== null && _23 !== void 0 ? _23 : new retryTxSender_1.RetryTxSender({
226
228
  connection: this.connection,
227
229
  wallet: this.wallet,
228
230
  opts: this.opts,
@@ -326,15 +328,17 @@ class DriftClient {
326
328
  .map((value) => value.data);
327
329
  }
328
330
  getSpotMarketAccount(marketIndex) {
329
- return this.accountSubscriber.getSpotMarketAccountAndSlot(marketIndex).data;
331
+ var _a;
332
+ return (_a = this.accountSubscriber.getSpotMarketAccountAndSlot(marketIndex)) === null || _a === void 0 ? void 0 : _a.data;
330
333
  }
331
334
  /**
332
335
  * Forces a fetch to rpc before returning accounts. Useful for anchor tests.
333
336
  * @param marketIndex
334
337
  */
335
338
  async forceGetSpotMarketAccount(marketIndex) {
339
+ var _a;
336
340
  await this.accountSubscriber.fetch();
337
- return this.accountSubscriber.getSpotMarketAccountAndSlot(marketIndex).data;
341
+ return (_a = this.accountSubscriber.getSpotMarketAccountAndSlot(marketIndex)) === null || _a === void 0 ? void 0 : _a.data;
338
342
  }
339
343
  getSpotMarketAccounts() {
340
344
  return this.accountSubscriber
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  import { Commitment, ConfirmOptions, Connection, PublicKey, TransactionVersion } from '@solana/web3.js';
4
- import { IWallet, TxParams } from './types';
4
+ import { IWallet, TxParams, UserAccount } from './types';
5
5
  import { OracleInfo } from './oracles/types';
6
6
  import { BulkAccountLoader } from './accounts/bulkAccountLoader';
7
7
  import { DriftEnv } from './config';
@@ -11,6 +11,9 @@ import { GrpcConfigs, ResubOpts, DelistedMarketSetting } from './accounts/types'
11
11
  import { Coder, Program } from '@coral-xyz/anchor';
12
12
  import { WebSocketAccountSubscriber } from './accounts/webSocketAccountSubscriber';
13
13
  import { WebSocketAccountSubscriberV2 } from './accounts/webSocketAccountSubscriberV2';
14
+ import { WebSocketProgramAccountSubscriber } from './accounts/webSocketProgramAccountSubscriber';
15
+ import { WebSocketDriftClientAccountSubscriberV2 } from './accounts/webSocketDriftClientAccountSubscriberV2';
16
+ import { WebSocketDriftClientAccountSubscriber } from './accounts/webSocketDriftClientAccountSubscriber';
14
17
  export type DriftClientConfig = {
15
18
  connection: Connection;
16
19
  wallet: IWallet;
@@ -51,8 +54,10 @@ export type DriftClientSubscriptionConfig = {
51
54
  resubTimeoutMs?: number;
52
55
  logResubMessages?: boolean;
53
56
  commitment?: Commitment;
57
+ programUserAccountSubscriber?: WebSocketProgramAccountSubscriber<UserAccount>;
54
58
  perpMarketAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>;
55
- oracleAccountSubscriber?: new (accountName: string, program: Program, accountPublicKey: PublicKey, decodeBuffer?: (buffer: Buffer) => any, resubOpts?: ResubOpts, commitment?: Commitment) => WebSocketAccountSubscriberV2<any> | WebSocketAccountSubscriber<any>;
59
+ /** If you use V2 here, whatever you pass for perpMarketAccountSubscriber and oracleAccountSubscriber will be ignored and it will use v2 under the hood regardless */
60
+ driftClientAccountSubscriber?: new (program: Program, perpMarketIndexes: number[], spotMarketIndexes: number[], oracleInfos: OracleInfo[], shouldFindAllMarketsAndOracles: boolean, delistedMarketSetting: DelistedMarketSetting) => WebSocketDriftClientAccountSubscriber | WebSocketDriftClientAccountSubscriberV2;
56
61
  } | {
57
62
  type: 'polling';
58
63
  accountLoader: BulkAccountLoader;
@@ -57,7 +57,7 @@ export declare class BigNum {
57
57
  * @returns
58
58
  */
59
59
  print(): string;
60
- prettyPrint(useTradePrecision?: boolean, precisionOverride?: number): string;
60
+ prettyPrint(useTradePrecision?: boolean, precisionOverride?: number, decimalOverride?: number): string;
61
61
  /**
62
62
  * Print and remove unnecessary trailing zeroes
63
63
  * @returns
@@ -85,7 +85,7 @@ export declare class BigNum {
85
85
  * @param precisionOverride
86
86
  * @returns
87
87
  */
88
- toNotional(useTradePrecision?: boolean, precisionOverride?: number): string;
88
+ toNotional(useTradePrecision?: boolean, precisionOverride?: number, decimalOverride?: number): string;
89
89
  toMillified(precision?: number, rounded?: boolean, type?: 'financial' | 'scientific'): string;
90
90
  toJSON(): {
91
91
  val: string;
@@ -167,9 +167,24 @@ class BigNum {
167
167
  printString = printString.slice(0, printString.length - 1);
168
168
  return printString;
169
169
  }
170
- prettyPrint(useTradePrecision, precisionOverride) {
170
+ prettyPrint(useTradePrecision, precisionOverride, decimalOverride) {
171
171
  const [leftSide, rightSide] = this.printShort(useTradePrecision, precisionOverride).split(BigNum.delim);
172
172
  let formattedLeftSide = leftSide;
173
+ let formattedRightSide = rightSide;
174
+ // Apply decimal override if specified
175
+ if (decimalOverride !== undefined) {
176
+ if (decimalOverride === 0) {
177
+ formattedRightSide = undefined;
178
+ }
179
+ else {
180
+ // If no decimal part exists, create one with zeros
181
+ const currentRightSide = rightSide || '';
182
+ // Pad with zeros if needed or truncate if too long
183
+ formattedRightSide = currentRightSide
184
+ .padEnd(decimalOverride, '0')
185
+ .substring(0, decimalOverride);
186
+ }
187
+ }
173
188
  const isNeg = formattedLeftSide.includes('-');
174
189
  if (isNeg) {
175
190
  formattedLeftSide = formattedLeftSide.replace('-', '');
@@ -181,7 +196,7 @@ class BigNum {
181
196
  formattedLeftSide = formattedLeftSideArray.join('');
182
197
  index -= 3;
183
198
  }
184
- return `${isNeg ? '-' : ''}${formattedLeftSide}${rightSide ? `${BigNum.delim}${rightSide}` : ''}`;
199
+ return `${isNeg ? '-' : ''}${formattedLeftSide}${formattedRightSide ? `${BigNum.delim}${formattedRightSide}` : ''}`;
185
200
  }
186
201
  /**
187
202
  * Print and remove unnecessary trailing zeroes
@@ -338,12 +353,12 @@ class BigNum {
338
353
  * @param precisionOverride
339
354
  * @returns
340
355
  */
341
- toNotional(useTradePrecision, precisionOverride) {
356
+ toNotional(useTradePrecision, precisionOverride, decimalOverride) {
342
357
  var _a;
343
358
  const prefix = `${this.lt(BigNum.zero()) ? `-` : ``}$`;
344
- const usingCustomPrecision = true && (useTradePrecision || precisionOverride);
359
+ const usingCustomPrecision = true && (useTradePrecision || precisionOverride || decimalOverride);
345
360
  let val = usingCustomPrecision
346
- ? this.prettyPrint(useTradePrecision, precisionOverride)
361
+ ? this.prettyPrint(useTradePrecision, precisionOverride, decimalOverride)
347
362
  : BigNum.fromPrint(this.toFixed(2), new anchor_1.BN(2)).prettyPrint();
348
363
  // Append trailing zeroes out to 2 decimal places if not using custom precision
349
364
  if (!usingCustomPrecision) {
@@ -11,6 +11,10 @@ export * from './accounts/webSocketDriftClientAccountSubscriber';
11
11
  export * from './accounts/webSocketInsuranceFundStakeAccountSubscriber';
12
12
  export * from './accounts/webSocketHighLeverageModeConfigAccountSubscriber';
13
13
  export { WebSocketAccountSubscriberV2 } from './accounts/webSocketAccountSubscriberV2';
14
+ export { WebSocketProgramAccountSubscriber } from './accounts/webSocketProgramAccountSubscriber';
15
+ export { WebSocketProgramUserAccountSubscriber } from './accounts/websocketProgramUserAccountSubscriber';
16
+ export { WebSocketProgramAccountsSubscriberV2 } from './accounts/webSocketProgramAccountsSubscriberV2';
17
+ export { WebSocketDriftClientAccountSubscriberV2 } from './accounts/webSocketDriftClientAccountSubscriberV2';
14
18
  export * from './accounts/bulkAccountLoader';
15
19
  export * from './accounts/bulkUserSubscription';
16
20
  export * from './accounts/bulkUserStatsSubscription';
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.pyth = exports.PublicKey = exports.BN = exports.CustomizedCadenceBulkAccountLoader = exports.WebSocketAccountSubscriberV2 = void 0;
20
+ exports.pyth = exports.PublicKey = exports.BN = exports.CustomizedCadenceBulkAccountLoader = exports.WebSocketDriftClientAccountSubscriberV2 = exports.WebSocketProgramAccountsSubscriberV2 = exports.WebSocketProgramUserAccountSubscriber = exports.WebSocketProgramAccountSubscriber = exports.WebSocketAccountSubscriberV2 = void 0;
21
21
  const anchor_1 = require("@coral-xyz/anchor");
22
22
  Object.defineProperty(exports, "BN", { enumerable: true, get: function () { return anchor_1.BN; } });
23
23
  const web3_js_1 = require("@solana/web3.js");
@@ -35,6 +35,14 @@ __exportStar(require("./accounts/webSocketInsuranceFundStakeAccountSubscriber"),
35
35
  __exportStar(require("./accounts/webSocketHighLeverageModeConfigAccountSubscriber"), exports);
36
36
  var webSocketAccountSubscriberV2_1 = require("./accounts/webSocketAccountSubscriberV2");
37
37
  Object.defineProperty(exports, "WebSocketAccountSubscriberV2", { enumerable: true, get: function () { return webSocketAccountSubscriberV2_1.WebSocketAccountSubscriberV2; } });
38
+ var webSocketProgramAccountSubscriber_1 = require("./accounts/webSocketProgramAccountSubscriber");
39
+ Object.defineProperty(exports, "WebSocketProgramAccountSubscriber", { enumerable: true, get: function () { return webSocketProgramAccountSubscriber_1.WebSocketProgramAccountSubscriber; } });
40
+ var websocketProgramUserAccountSubscriber_1 = require("./accounts/websocketProgramUserAccountSubscriber");
41
+ Object.defineProperty(exports, "WebSocketProgramUserAccountSubscriber", { enumerable: true, get: function () { return websocketProgramUserAccountSubscriber_1.WebSocketProgramUserAccountSubscriber; } });
42
+ var webSocketProgramAccountsSubscriberV2_1 = require("./accounts/webSocketProgramAccountsSubscriberV2");
43
+ Object.defineProperty(exports, "WebSocketProgramAccountsSubscriberV2", { enumerable: true, get: function () { return webSocketProgramAccountsSubscriberV2_1.WebSocketProgramAccountsSubscriberV2; } });
44
+ var webSocketDriftClientAccountSubscriberV2_1 = require("./accounts/webSocketDriftClientAccountSubscriberV2");
45
+ Object.defineProperty(exports, "WebSocketDriftClientAccountSubscriberV2", { enumerable: true, get: function () { return webSocketDriftClientAccountSubscriberV2_1.WebSocketDriftClientAccountSubscriberV2; } });
38
46
  __exportStar(require("./accounts/bulkAccountLoader"), exports);
39
47
  __exportStar(require("./accounts/bulkUserSubscription"), exports);
40
48
  __exportStar(require("./accounts/bulkUserStatsSubscription"), exports);
@@ -11,3 +11,5 @@ export declare function getUserStatsFilter(): MemcmpFilter;
11
11
  export declare function getUserStatsIsReferredFilter(): MemcmpFilter;
12
12
  export declare function getUserStatsIsReferredOrReferrerFilter(): MemcmpFilter;
13
13
  export declare function getSignedMsgUserOrdersFilter(): MemcmpFilter;
14
+ export declare function getPerpMarketAccountsFilter(): MemcmpFilter;
15
+ export declare function getSpotMarketAccountsFilter(): MemcmpFilter;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getSignedMsgUserOrdersFilter = exports.getUserStatsIsReferredOrReferrerFilter = exports.getUserStatsIsReferredFilter = exports.getUserStatsFilter = exports.getUsersWithPoolId = exports.getUserWithName = exports.getUserThatHasBeenLP = exports.getUserWithAuctionFilter = exports.getUserWithoutOrderFilter = exports.getUserWithOrderFilter = exports.getNonIdleUserFilter = exports.getUserFilter = void 0;
6
+ exports.getSpotMarketAccountsFilter = exports.getPerpMarketAccountsFilter = exports.getSignedMsgUserOrdersFilter = exports.getUserStatsIsReferredOrReferrerFilter = exports.getUserStatsIsReferredFilter = exports.getUserStatsFilter = exports.getUsersWithPoolId = exports.getUserWithName = exports.getUserThatHasBeenLP = exports.getUserWithAuctionFilter = exports.getUserWithoutOrderFilter = exports.getUserWithOrderFilter = exports.getNonIdleUserFilter = exports.getUserFilter = void 0;
7
7
  const bs58_1 = __importDefault(require("bs58"));
8
8
  const anchor_1 = require("@coral-xyz/anchor");
9
9
  const userName_1 = require("./userName");
@@ -115,3 +115,21 @@ function getSignedMsgUserOrdersFilter() {
115
115
  };
116
116
  }
117
117
  exports.getSignedMsgUserOrdersFilter = getSignedMsgUserOrdersFilter;
118
+ function getPerpMarketAccountsFilter() {
119
+ return {
120
+ memcmp: {
121
+ offset: 0,
122
+ bytes: bs58_1.default.encode(anchor_1.BorshAccountsCoder.accountDiscriminator('PerpMarket')),
123
+ },
124
+ };
125
+ }
126
+ exports.getPerpMarketAccountsFilter = getPerpMarketAccountsFilter;
127
+ function getSpotMarketAccountsFilter() {
128
+ return {
129
+ memcmp: {
130
+ offset: 0,
131
+ bytes: bs58_1.default.encode(anchor_1.BorshAccountsCoder.accountDiscriminator('SpotMarket')),
132
+ },
133
+ };
134
+ }
135
+ exports.getSpotMarketAccountsFilter = getSpotMarketAccountsFilter;
@@ -1,4 +1,9 @@
1
1
  import { PublicKey } from '@solana/web3.js';
2
2
  import { OracleSource } from '../types';
3
3
  export declare function getOracleSourceNum(source: OracleSource): number;
4
+ export declare function getOracleSourceFromNum(sourceNum: number): OracleSource;
4
5
  export declare function getOracleId(publicKey: PublicKey, source: OracleSource): string;
6
+ export declare function getPublicKeyAndSourceFromOracleId(oracleId: string): {
7
+ publicKey: PublicKey;
8
+ source: OracleSource;
9
+ };
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getOracleId = exports.getOracleSourceNum = void 0;
3
+ exports.getPublicKeyAndSourceFromOracleId = exports.getOracleId = exports.getOracleSourceFromNum = exports.getOracleSourceNum = void 0;
4
+ const web3_js_1 = require("@solana/web3.js");
4
5
  const types_1 = require("../types");
5
6
  function getOracleSourceNum(source) {
6
7
  if ('pyth' in source)
@@ -38,7 +39,51 @@ function getOracleSourceNum(source) {
38
39
  throw new Error('Invalid oracle source');
39
40
  }
40
41
  exports.getOracleSourceNum = getOracleSourceNum;
42
+ function getOracleSourceFromNum(sourceNum) {
43
+ if (sourceNum === types_1.OracleSourceNum.PYTH)
44
+ return 'pyth';
45
+ if (sourceNum === types_1.OracleSourceNum.PYTH_1K)
46
+ return 'pyth1K';
47
+ if (sourceNum === types_1.OracleSourceNum.PYTH_1M)
48
+ return 'pyth1M';
49
+ if (sourceNum === types_1.OracleSourceNum.PYTH_PULL)
50
+ return 'pythPull';
51
+ if (sourceNum === types_1.OracleSourceNum.PYTH_1K_PULL)
52
+ return 'pyth1KPull';
53
+ if (sourceNum === types_1.OracleSourceNum.PYTH_1M_PULL)
54
+ return 'pyth1MPull';
55
+ if (sourceNum === types_1.OracleSourceNum.SWITCHBOARD)
56
+ return 'switchboard';
57
+ if (sourceNum === types_1.OracleSourceNum.QUOTE_ASSET)
58
+ return 'quoteAsset';
59
+ if (sourceNum === types_1.OracleSourceNum.PYTH_STABLE_COIN)
60
+ return 'pythStableCoin';
61
+ if (sourceNum === types_1.OracleSourceNum.PYTH_STABLE_COIN_PULL)
62
+ return 'pythStableCoinPull';
63
+ if (sourceNum === types_1.OracleSourceNum.PRELAUNCH)
64
+ return 'prelaunch';
65
+ if (sourceNum === types_1.OracleSourceNum.SWITCHBOARD_ON_DEMAND)
66
+ return 'switchboardOnDemand';
67
+ if (sourceNum === types_1.OracleSourceNum.PYTH_LAZER)
68
+ return 'pythLazer';
69
+ if (sourceNum === types_1.OracleSourceNum.PYTH_LAZER_1K)
70
+ return 'pythLazer1K';
71
+ if (sourceNum === types_1.OracleSourceNum.PYTH_LAZER_1M)
72
+ return 'pythLazer1M';
73
+ if (sourceNum === types_1.OracleSourceNum.PYTH_LAZER_STABLE_COIN)
74
+ return 'pythLazerStableCoin';
75
+ throw new Error('Invalid oracle source');
76
+ }
77
+ exports.getOracleSourceFromNum = getOracleSourceFromNum;
41
78
  function getOracleId(publicKey, source) {
42
79
  return `${publicKey.toBase58()}-${getOracleSourceNum(source)}`;
43
80
  }
44
81
  exports.getOracleId = getOracleId;
82
+ function getPublicKeyAndSourceFromOracleId(oracleId) {
83
+ const [publicKey, source] = oracleId.split('-');
84
+ return {
85
+ publicKey: new web3_js_1.PublicKey(publicKey),
86
+ source: getOracleSourceFromNum(parseInt(source)),
87
+ };
88
+ }
89
+ exports.getPublicKeyAndSourceFromOracleId = getPublicKeyAndSourceFromOracleId;
@@ -15,6 +15,7 @@ const spotBalance_1 = require("./math/spotBalance");
15
15
  const trade_1 = require("./math/trade");
16
16
  const types_2 = require("./types");
17
17
  const orders_1 = require("./math/orders");
18
+ const websocketProgramUserAccountSubscriber_1 = require("./accounts/websocketProgramUserAccountSubscriber");
18
19
  const spotBalance_2 = require("./math/spotBalance");
19
20
  const amm_1 = require("./math/amm");
20
21
  const margin_2 = require("./math/margin");
@@ -34,7 +35,7 @@ class User {
34
35
  this._isSubscribed = val;
35
36
  }
36
37
  constructor(config) {
37
- var _a, _b, _c, _d, _e, _f, _g, _h;
38
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
38
39
  this._isSubscribed = false;
39
40
  this.driftClient = config.driftClient;
40
41
  this.userAccountPublicKey = config.userAccountPublicKey;
@@ -51,10 +52,16 @@ class User {
51
52
  });
52
53
  }
53
54
  else {
54
- this.accountSubscriber = new webSocketUserAccountSubscriber_1.WebSocketUserAccountSubscriber(config.driftClient.program, config.userAccountPublicKey, {
55
- resubTimeoutMs: (_f = config.accountSubscription) === null || _f === void 0 ? void 0 : _f.resubTimeoutMs,
56
- logResubMessages: (_g = config.accountSubscription) === null || _g === void 0 ? void 0 : _g.logResubMessages,
57
- }, (_h = config.accountSubscription) === null || _h === void 0 ? void 0 : _h.commitment);
55
+ if (((_f = config.accountSubscription) === null || _f === void 0 ? void 0 : _f.type) === 'websocket' &&
56
+ ((_g = config.accountSubscription) === null || _g === void 0 ? void 0 : _g.programUserAccountSubscriber)) {
57
+ this.accountSubscriber = new websocketProgramUserAccountSubscriber_1.WebSocketProgramUserAccountSubscriber(config.driftClient.program, config.userAccountPublicKey, config.accountSubscription.programUserAccountSubscriber);
58
+ }
59
+ else {
60
+ this.accountSubscriber = new webSocketUserAccountSubscriber_1.WebSocketUserAccountSubscriber(config.driftClient.program, config.userAccountPublicKey, {
61
+ resubTimeoutMs: (_h = config.accountSubscription) === null || _h === void 0 ? void 0 : _h.resubTimeoutMs,
62
+ logResubMessages: (_j = config.accountSubscription) === null || _j === void 0 ? void 0 : _j.logResubMessages,
63
+ }, (_k = config.accountSubscription) === null || _k === void 0 ? void 0 : _k.commitment);
64
+ }
58
65
  }
59
66
  this.eventEmitter = this.accountSubscriber.eventEmitter;
60
67
  }
@@ -2,6 +2,8 @@ import { DriftClient } from './driftClient';
2
2
  import { Commitment, PublicKey } from '@solana/web3.js';
3
3
  import { BulkAccountLoader } from './accounts/bulkAccountLoader';
4
4
  import { GrpcConfigs, UserAccountSubscriber } from './accounts/types';
5
+ import { WebSocketProgramAccountSubscriber } from './accounts/webSocketProgramAccountSubscriber';
6
+ import { UserAccount } from './types';
5
7
  export type UserConfig = {
6
8
  accountSubscription?: UserSubscriptionConfig;
7
9
  driftClient: DriftClient;
@@ -17,6 +19,7 @@ export type UserSubscriptionConfig = {
17
19
  resubTimeoutMs?: number;
18
20
  logResubMessages?: boolean;
19
21
  commitment?: Commitment;
22
+ programUserAccountSubscriber?: WebSocketProgramAccountSubscriber<UserAccount>;
20
23
  } | {
21
24
  type: 'polling';
22
25
  accountLoader: BulkAccountLoader;
@@ -139,6 +139,8 @@ export type DataAndSlot<T> = {
139
139
  export type ResubOpts = {
140
140
  resubTimeoutMs?: number;
141
141
  logResubMessages?: boolean;
142
+ usePollingInsteadOfResub?: boolean;
143
+ pollingIntervalMs?: number;
142
144
  };
143
145
  export interface UserStatsAccountEvents {
144
146
  userStatsAccountUpdate: (payload: UserStatsAccount) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/accounts/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/accounts/types.ts"],"names":[],"mappings":"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"}