@drift-labs/sdk-browser 2.155.0-beta.1 → 2.155.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.
package/VERSION CHANGED
@@ -1 +1 @@
1
- 2.155.0-beta.1
1
+ 2.155.0-beta.2
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
- import { LaserGrpcConfigs, ResubOpts } from './types';
3
+ import { GrpcConfigs, ResubOpts } from './types';
4
4
  import { Program } from '@coral-xyz/anchor';
5
5
  import { Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
6
6
  import { WebSocketProgramAccountSubscriber } from './webSocketProgramAccountSubscriber';
@@ -12,7 +12,7 @@ export declare class LaserstreamProgramAccountSubscriber<T> extends WebSocketPro
12
12
  listenerId?: number;
13
13
  private readonly laserConfig;
14
14
  private constructor();
15
- static create<U>(grpcConfigs: LaserGrpcConfigs, subscriptionName: string, accountDiscriminator: string, program: Program, decodeBufferFn: (accountName: string, ix: Buffer) => U, options?: {
15
+ static create<U>(grpcConfigs: GrpcConfigs, subscriptionName: string, accountDiscriminator: string, program: Program, decodeBufferFn: (accountName: string, ix: Buffer) => U, options?: {
16
16
  filters: MemcmpFilter[];
17
17
  }, resubOpts?: ResubOpts): Promise<LaserstreamProgramAccountSubscriber<U>>;
18
18
  subscribe(onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void): Promise<void>;
@@ -37,19 +37,17 @@ class LaserstreamProgramAccountSubscriber extends webSocketProgramAccountSubscri
37
37
  static async create(grpcConfigs, subscriptionName, accountDiscriminator, program, decodeBufferFn, options = {
38
38
  filters: [],
39
39
  }, resubOpts) {
40
- var _a, _b;
41
- const channelOptions = {
42
- 'grpc.default_compression_algorithm': grpc_1.CompressionAlgorithms.zstd,
43
- 'grpc.max_receive_message_length': 1000000000,
44
- ...((_a = grpcConfigs.channelOptions) !== null && _a !== void 0 ? _a : {}),
45
- };
40
+ var _a;
46
41
  const laserConfig = {
47
42
  apiKey: grpcConfigs.token,
48
43
  endpoint: grpcConfigs.endpoint,
49
44
  maxReconnectAttempts: grpcConfigs.enableReconnect ? 10 : 0,
50
- channelOptions,
45
+ channelOptions: {
46
+ 'grpc.default_compression_algorithm': grpc_1.CompressionAlgorithms.zstd,
47
+ 'grpc.max_receive_message_length': 1000000000,
48
+ },
51
49
  };
52
- const commitmentLevel = (_b = grpcConfigs.commitmentLevel) !== null && _b !== void 0 ? _b : grpc_1.CommitmentLevel.CONFIRMED;
50
+ const commitmentLevel = (_a = grpcConfigs.commitmentLevel) !== null && _a !== void 0 ? _a : grpc_1.CommitmentLevel.CONFIRMED;
53
51
  return new LaserstreamProgramAccountSubscriber(laserConfig, commitmentLevel, subscriptionName, accountDiscriminator, program, decodeBufferFn, options, resubOpts);
54
52
  }
55
53
  async subscribe(onChange) {
@@ -8,7 +8,7 @@ import { Context, PublicKey } from '@solana/web3.js';
8
8
  import { Account } from '@solana/spl-token';
9
9
  import { OracleInfo, OraclePriceData } from '../oracles/types';
10
10
  import { User } from '../user';
11
- import { Client, CommitmentLevel, LaserstreamConfig } from '../isomorphic/grpc';
11
+ import { ChannelOptions, CommitmentLevel } from '../isomorphic/grpc';
12
12
  export interface AccountSubscriber<T> {
13
13
  dataAndSlot?: DataAndSlot<T>;
14
14
  subscribe(onChange: (data: T) => void): Promise<void>;
@@ -155,25 +155,18 @@ export interface UserStatsAccountSubscriber {
155
155
  unsubscribe(): Promise<void>;
156
156
  getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount>;
157
157
  }
158
- type BaseGrpcConfigs = {
158
+ export type GrpcConfigs = {
159
159
  endpoint: string;
160
160
  token: string;
161
161
  commitmentLevel?: CommitmentLevel;
162
+ channelOptions?: ChannelOptions;
162
163
  /**
163
164
  * Whether to enable automatic reconnection on connection loss .
164
165
  * Defaults to false, will throw on connection loss.
165
166
  */
166
167
  enableReconnect?: boolean;
168
+ client?: 'yellowstone' | 'laser';
167
169
  };
168
- export type YellowstoneGrpcConfigs = BaseGrpcConfigs & {
169
- client?: 'yellowstone';
170
- channelOptions?: ConstructorParameters<typeof Client>[2];
171
- };
172
- export type LaserGrpcConfigs = BaseGrpcConfigs & {
173
- client: 'laser';
174
- channelOptions?: LaserstreamConfig['channelOptions'];
175
- };
176
- export type GrpcConfigs = YellowstoneGrpcConfigs | LaserGrpcConfigs;
177
170
  export interface HighLeverageModeConfigAccountSubscriber {
178
171
  eventEmitter: StrictEventEmitter<EventEmitter, HighLeverageModeConfigAccountEvents>;
179
172
  isSubscribed: boolean;
@@ -199,4 +192,3 @@ export interface ConstituentAccountEvents {
199
192
  update: void;
200
193
  error: (e: Error) => void;
201
194
  }
202
- export {};
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
- import { LaserGrpcConfigs, ResubOpts } from './types';
3
+ import { GrpcConfigs, ResubOpts } from './types';
4
4
  import { Program } from '@coral-xyz/anchor';
5
5
  import { Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
6
6
  import { WebSocketProgramAccountSubscriber } from './webSocketProgramAccountSubscriber';
@@ -12,7 +12,7 @@ export declare class LaserstreamProgramAccountSubscriber<T> extends WebSocketPro
12
12
  listenerId?: number;
13
13
  private readonly laserConfig;
14
14
  private constructor();
15
- static create<U>(grpcConfigs: LaserGrpcConfigs, subscriptionName: string, accountDiscriminator: string, program: Program, decodeBufferFn: (accountName: string, ix: Buffer) => U, options?: {
15
+ static create<U>(grpcConfigs: GrpcConfigs, subscriptionName: string, accountDiscriminator: string, program: Program, decodeBufferFn: (accountName: string, ix: Buffer) => U, options?: {
16
16
  filters: MemcmpFilter[];
17
17
  }, resubOpts?: ResubOpts): Promise<LaserstreamProgramAccountSubscriber<U>>;
18
18
  subscribe(onChange: (accountId: PublicKey, data: T, context: Context, buffer: Buffer) => void): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"laserProgramAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/laserProgramAccountSubscriber.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAExF,OAAO,EACN,oBAAoB,EAOpB,MAAM,oBAAoB,CAAC;AAE5B,KAAK,eAAe,GACnB,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAElE,qBAAa,mCAAmC,CAC/C,CAAC,CACA,SAAQ,iCAAiC,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,MAAM,CAMD;IAEb,OAAO,CAAC,eAAe,CAAkB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAEhD,OAAO;WAsBa,MAAM,CAAC,CAAC,EAC3B,WAAW,EAAE,gBAAgB,EAC7B,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,CAAC,EACtD,OAAO,GAAE;QAAE,OAAO,EAAE,YAAY,EAAE,CAAA;KAEjC,EACD,SAAS,CAAC,EAAE,SAAS,GACnB,OAAO,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC;IA6B5C,SAAS,CACd,QAAQ,EAAE,CACT,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,KACV,IAAI,GACP,OAAO,CAAC,IAAI,CAAC;IAmFH,WAAW,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjD,iBAAiB,CACvB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAChC,eAAe;CASlB"}
1
+ {"version":3,"file":"laserProgramAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/laserProgramAccountSubscriber.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,iCAAiC,EAAE,MAAM,qCAAqC,CAAC;AAExF,OAAO,EACN,oBAAoB,EAOpB,MAAM,oBAAoB,CAAC;AAE5B,KAAK,eAAe,GACnB,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,OAAO,oBAAoB,CAAC,CAAC;AAElE,qBAAa,mCAAmC,CAC/C,CAAC,CACA,SAAQ,iCAAiC,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,MAAM,CAMD;IAEb,OAAO,CAAC,eAAe,CAAkB;IAClC,UAAU,CAAC,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;IAEhD,OAAO;WAsBa,MAAM,CAAC,CAAC,EAC3B,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,MAAM,EACxB,oBAAoB,EAAE,MAAM,EAC5B,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,CAAC,EACtD,OAAO,GAAE;QAAE,OAAO,EAAE,YAAY,EAAE,CAAA;KAEjC,EACD,SAAS,CAAC,EAAE,SAAS,GACnB,OAAO,CAAC,mCAAmC,CAAC,CAAC,CAAC,CAAC;IA0B5C,SAAS,CACd,QAAQ,EAAE,CACT,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,KACV,IAAI,GACP,OAAO,CAAC,IAAI,CAAC;IAmFH,WAAW,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjD,iBAAiB,CACvB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAChC,eAAe;CASlB"}
@@ -37,19 +37,17 @@ class LaserstreamProgramAccountSubscriber extends webSocketProgramAccountSubscri
37
37
  static async create(grpcConfigs, subscriptionName, accountDiscriminator, program, decodeBufferFn, options = {
38
38
  filters: [],
39
39
  }, resubOpts) {
40
- var _a, _b;
41
- const channelOptions = {
42
- 'grpc.default_compression_algorithm': grpc_1.CompressionAlgorithms.zstd,
43
- 'grpc.max_receive_message_length': 1000000000,
44
- ...((_a = grpcConfigs.channelOptions) !== null && _a !== void 0 ? _a : {}),
45
- };
40
+ var _a;
46
41
  const laserConfig = {
47
42
  apiKey: grpcConfigs.token,
48
43
  endpoint: grpcConfigs.endpoint,
49
44
  maxReconnectAttempts: grpcConfigs.enableReconnect ? 10 : 0,
50
- channelOptions,
45
+ channelOptions: {
46
+ 'grpc.default_compression_algorithm': grpc_1.CompressionAlgorithms.zstd,
47
+ 'grpc.max_receive_message_length': 1000000000,
48
+ },
51
49
  };
52
- const commitmentLevel = (_b = grpcConfigs.commitmentLevel) !== null && _b !== void 0 ? _b : grpc_1.CommitmentLevel.CONFIRMED;
50
+ const commitmentLevel = (_a = grpcConfigs.commitmentLevel) !== null && _a !== void 0 ? _a : grpc_1.CommitmentLevel.CONFIRMED;
53
51
  return new LaserstreamProgramAccountSubscriber(laserConfig, commitmentLevel, subscriptionName, accountDiscriminator, program, decodeBufferFn, options, resubOpts);
54
52
  }
55
53
  async subscribe(onChange) {
@@ -8,7 +8,7 @@ import { Context, PublicKey } from '@solana/web3.js';
8
8
  import { Account } from '@solana/spl-token';
9
9
  import { OracleInfo, OraclePriceData } from '../oracles/types';
10
10
  import { User } from '../user';
11
- import { Client, CommitmentLevel, LaserstreamConfig } from '../isomorphic/grpc';
11
+ import { ChannelOptions, CommitmentLevel } from '../isomorphic/grpc';
12
12
  export interface AccountSubscriber<T> {
13
13
  dataAndSlot?: DataAndSlot<T>;
14
14
  subscribe(onChange: (data: T) => void): Promise<void>;
@@ -155,25 +155,18 @@ export interface UserStatsAccountSubscriber {
155
155
  unsubscribe(): Promise<void>;
156
156
  getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount>;
157
157
  }
158
- type BaseGrpcConfigs = {
158
+ export type GrpcConfigs = {
159
159
  endpoint: string;
160
160
  token: string;
161
161
  commitmentLevel?: CommitmentLevel;
162
+ channelOptions?: ChannelOptions;
162
163
  /**
163
164
  * Whether to enable automatic reconnection on connection loss .
164
165
  * Defaults to false, will throw on connection loss.
165
166
  */
166
167
  enableReconnect?: boolean;
168
+ client?: 'yellowstone' | 'laser';
167
169
  };
168
- export type YellowstoneGrpcConfigs = BaseGrpcConfigs & {
169
- client?: 'yellowstone';
170
- channelOptions?: ConstructorParameters<typeof Client>[2];
171
- };
172
- export type LaserGrpcConfigs = BaseGrpcConfigs & {
173
- client: 'laser';
174
- channelOptions?: LaserstreamConfig['channelOptions'];
175
- };
176
- export type GrpcConfigs = YellowstoneGrpcConfigs | LaserGrpcConfigs;
177
170
  export interface HighLeverageModeConfigAccountSubscriber {
178
171
  eventEmitter: StrictEventEmitter<EventEmitter, HighLeverageModeConfigAccountEvents>;
179
172
  isSubscribed: boolean;
@@ -199,5 +192,4 @@ export interface ConstituentAccountEvents {
199
192
  update: void;
200
193
  error: (e: Error) => void;
201
194
  }
202
- export {};
203
195
  //# sourceMappingURL=types.d.ts.map
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@drift-labs/sdk-browser",
3
- "version": "2.155.0-beta.1",
3
+ "version": "2.155.0-beta.2",
4
4
  "main": "lib/node/index.js",
5
5
  "types": "lib/node/index.d.ts",
6
6
  "module": "./lib/browser/index.js",
@@ -56,7 +56,7 @@
56
56
  "@solana/web3.js": "1.98.0",
57
57
  "@switchboard-xyz/common": "3.0.14",
58
58
  "@switchboard-xyz/on-demand": "2.4.1",
59
- "@triton-one/yellowstone-grpc": "5.0.1",
59
+ "@triton-one/yellowstone-grpc": "1.4.1",
60
60
  "anchor-bankrun": "0.3.0",
61
61
  "gill": "^0.10.2",
62
62
  "helius-laserstream": "0.1.8",
@@ -96,8 +96,9 @@ async function initializeGrpcDriftClientV2VersusV1() {
96
96
  token: TOKEN,
97
97
  commitmentLevel: CommitmentLevel.PROCESSED,
98
98
  channelOptions: {
99
- grpcKeepAliveTimeout: 1_000,
100
- grpcTcpKeepalive: 10_000,
99
+ 'grpc.keepalive_time_ms': 10_000,
100
+ 'grpc.keepalive_timeout_ms': 1_000,
101
+ 'grpc.keepalive_permit_without_calls': 1,
101
102
  },
102
103
  },
103
104
  };
@@ -13,146 +13,144 @@ const TOKEN = process.env.TOKEN;
13
13
  const RPC_ENDPOINT = process.env.RPC_ENDPOINT;
14
14
 
15
15
  const USER_ACCOUNT_PUBKEYS = [
16
- // Add user account public keys here, e.g.:
17
- // new PublicKey('...')
16
+ // Add user account public keys here, e.g.:
17
+ // new PublicKey('...')
18
18
  ];
19
19
 
20
20
  async function testGrpcUserAccountSubscriberV1VsV2() {
21
- console.log('šŸš€ Initializing User Account Subscriber V1 vs V2 Test...');
22
-
23
- if (USER_ACCOUNT_PUBKEYS.length === 0) {
24
- console.error(
25
- 'āŒ No user account public keys provided. Please add some to USER_ACCOUNT_PUBKEYS array.'
26
- );
27
- process.exit(1);
28
- }
29
-
30
- const connection = new Connection(RPC_ENDPOINT);
31
- const wallet = new Wallet(new Keypair());
32
-
33
- const programId = new PublicKey(DRIFT_PROGRAM_ID);
34
- const provider = new AnchorProvider(
35
- connection,
36
- // @ts-ignore
37
- wallet,
38
- {
39
- commitment: 'processed',
40
- }
41
- );
42
-
43
- const program = new Program(driftIDL as Idl, programId, provider);
44
-
45
- const grpcConfigs = {
46
- endpoint: GRPC_ENDPOINT,
47
- token: TOKEN,
48
- commitmentLevel: CommitmentLevel.PROCESSED,
49
- channelOptions: {
50
- grpcKeepAliveTimeout: 1_000,
51
- grpcTcpKeepalive: 10_000,
52
- },
53
- };
54
-
55
- console.log(`šŸ“Š Testing ${USER_ACCOUNT_PUBKEYS.length} user accounts...`);
56
-
57
- // V1: Create individual subscribers for each user account
58
- const v1Subscribers = USER_ACCOUNT_PUBKEYS.map(
59
- (pubkey) =>
60
- new grpcUserAccountSubscriber(grpcConfigs, program, pubkey, {
61
- logResubMessages: true,
62
- })
63
- );
64
-
65
- // V2: Create a single multi-subscriber and get per-user interfaces
66
- const v2MultiSubscriber = new grpcMultiUserAccountSubscriber(
67
- program,
68
- grpcConfigs,
69
- { logResubMessages: true }
70
- );
71
- const v2Subscribers = USER_ACCOUNT_PUBKEYS.map((pubkey) =>
72
- v2MultiSubscriber.forUser(pubkey)
73
- );
74
-
75
- // Subscribe all V1 subscribers
76
- console.log('šŸ”— Subscribing V1 subscribers...');
77
- await Promise.all(v1Subscribers.map((sub) => sub.subscribe()));
78
- console.log('āœ… V1 subscribers ready');
79
-
80
- // Subscribe all V2 subscribers
81
- console.log('šŸ”— Subscribing V2 subscribers...');
82
- await v2MultiSubscriber.subscribe();
83
- console.log('āœ… V2 subscribers ready');
84
-
85
- const compare = () => {
86
- try {
87
- let passedTests = 0;
88
- let totalTests = 0;
89
-
90
- // Test each user account
91
- for (let i = 0; i < USER_ACCOUNT_PUBKEYS.length; i++) {
92
- const pubkey = USER_ACCOUNT_PUBKEYS[i];
93
- const v1Sub = v1Subscribers[i];
94
- const v2Sub = v2Subscribers[i];
95
-
96
- totalTests++;
97
-
98
- // 1. Test isSubscribed
99
- assert.strictEqual(
100
- v1Sub.isSubscribed,
101
- v2Sub.isSubscribed,
102
- `User ${pubkey.toBase58()}: isSubscribed should match`
103
- );
104
-
105
- // 2. Test getUserAccountAndSlot
106
- const v1Data = v1Sub.getUserAccountAndSlot();
107
- const v2Data = v2Sub.getUserAccountAndSlot();
108
-
109
- // Compare the user account data
110
- assert.deepStrictEqual(
111
- v1Data.data,
112
- v2Data.data,
113
- `User ${pubkey.toBase58()}: account data should match`
114
- );
115
-
116
- // Slots might differ slightly due to timing, but let's check if they're close
117
- const slotDiff = Math.abs(v1Data.slot - v2Data.slot);
118
- if (slotDiff > 10) {
119
- console.warn(
120
- `āš ļø User ${pubkey.toBase58()}: slot difference is ${slotDiff} (v1: ${
121
- v1Data.slot
122
- }, v2: ${v2Data.slot})`
123
- );
124
- }
125
-
126
- passedTests++;
127
- }
128
-
129
- console.log(
130
- `āœ… All comparisons passed (${passedTests}/${totalTests} user accounts)`
131
- );
132
- } catch (error) {
133
- console.error('āŒ Comparison failed:', error);
134
- }
135
- };
136
-
137
- // Run initial comparison
138
- compare();
139
-
140
- // Run comparison every second to verify live updates
141
- const interval = setInterval(compare, 1000);
142
-
143
- const cleanup = async () => {
144
- clearInterval(interval);
145
- console.log('🧹 Cleaning up...');
146
- await Promise.all([
147
- ...v1Subscribers.map((sub) => sub.unsubscribe()),
148
- ...v2Subscribers.map((sub) => sub.unsubscribe()),
149
- ]);
150
- console.log('āœ… Cleanup complete');
151
- process.exit(0);
152
- };
153
-
154
- process.on('SIGINT', cleanup);
155
- process.on('SIGTERM', cleanup);
156
- }
157
-
158
- testGrpcUserAccountSubscriberV1VsV2().catch(console.error);
21
+ console.log('šŸš€ Initializing User Account Subscriber V1 vs V2 Test...');
22
+
23
+ if (USER_ACCOUNT_PUBKEYS.length === 0) {
24
+ console.error('āŒ No user account public keys provided. Please add some to USER_ACCOUNT_PUBKEYS array.');
25
+ process.exit(1);
26
+ }
27
+
28
+ const connection = new Connection(RPC_ENDPOINT);
29
+ const wallet = new Wallet(new Keypair());
30
+
31
+ const programId = new PublicKey(DRIFT_PROGRAM_ID);
32
+ const provider = new AnchorProvider(
33
+ connection,
34
+ // @ts-ignore
35
+ wallet,
36
+ {
37
+ commitment: 'processed',
38
+ }
39
+ );
40
+
41
+ const program = new Program(driftIDL as Idl, programId, provider);
42
+
43
+ const grpcConfigs = {
44
+ endpoint: GRPC_ENDPOINT,
45
+ token: TOKEN,
46
+ commitmentLevel: CommitmentLevel.PROCESSED,
47
+ channelOptions: {
48
+ 'grpc.keepalive_time_ms': 10_000,
49
+ 'grpc.keepalive_timeout_ms': 1_000,
50
+ 'grpc.keepalive_permit_without_calls': 1,
51
+ },
52
+ };
53
+
54
+ console.log(`šŸ“Š Testing ${USER_ACCOUNT_PUBKEYS.length} user accounts...`);
55
+
56
+ // V1: Create individual subscribers for each user account
57
+ const v1Subscribers = USER_ACCOUNT_PUBKEYS.map(
58
+ (pubkey) =>
59
+ new grpcUserAccountSubscriber(
60
+ grpcConfigs,
61
+ program,
62
+ pubkey,
63
+ { logResubMessages: true }
64
+ )
65
+ );
66
+
67
+ // V2: Create a single multi-subscriber and get per-user interfaces
68
+ const v2MultiSubscriber = new grpcMultiUserAccountSubscriber(
69
+ program,
70
+ grpcConfigs,
71
+ { logResubMessages: true }
72
+ );
73
+ const v2Subscribers = USER_ACCOUNT_PUBKEYS.map((pubkey) =>
74
+ v2MultiSubscriber.forUser(pubkey)
75
+ );
76
+
77
+ // Subscribe all V1 subscribers
78
+ console.log('šŸ”— Subscribing V1 subscribers...');
79
+ await Promise.all(v1Subscribers.map((sub) => sub.subscribe()));
80
+ console.log('āœ… V1 subscribers ready');
81
+
82
+ // Subscribe all V2 subscribers
83
+ console.log('šŸ”— Subscribing V2 subscribers...');
84
+ await v2MultiSubscriber.subscribe();
85
+ console.log('āœ… V2 subscribers ready');
86
+
87
+ const compare = () => {
88
+ try {
89
+ let passedTests = 0;
90
+ let totalTests = 0;
91
+
92
+ // Test each user account
93
+ for (let i = 0; i < USER_ACCOUNT_PUBKEYS.length; i++) {
94
+ const pubkey = USER_ACCOUNT_PUBKEYS[i];
95
+ const v1Sub = v1Subscribers[i];
96
+ const v2Sub = v2Subscribers[i];
97
+
98
+ totalTests++;
99
+
100
+ // 1. Test isSubscribed
101
+ assert.strictEqual(
102
+ v1Sub.isSubscribed,
103
+ v2Sub.isSubscribed,
104
+ `User ${pubkey.toBase58()}: isSubscribed should match`
105
+ );
106
+
107
+ // 2. Test getUserAccountAndSlot
108
+ const v1Data = v1Sub.getUserAccountAndSlot();
109
+ const v2Data = v2Sub.getUserAccountAndSlot();
110
+
111
+ // Compare the user account data
112
+ assert.deepStrictEqual(
113
+ v1Data.data,
114
+ v2Data.data,
115
+ `User ${pubkey.toBase58()}: account data should match`
116
+ );
117
+
118
+ // Slots might differ slightly due to timing, but let's check if they're close
119
+ const slotDiff = Math.abs(v1Data.slot - v2Data.slot);
120
+ if (slotDiff > 10) {
121
+ console.warn(
122
+ `āš ļø User ${pubkey.toBase58()}: slot difference is ${slotDiff} (v1: ${v1Data.slot}, v2: ${v2Data.slot})`
123
+ );
124
+ }
125
+
126
+ passedTests++;
127
+ }
128
+
129
+ console.log(`āœ… All comparisons passed (${passedTests}/${totalTests} user accounts)`);
130
+ } catch (error) {
131
+ console.error('āŒ Comparison failed:', error);
132
+ }
133
+ };
134
+
135
+ // Run initial comparison
136
+ compare();
137
+
138
+ // Run comparison every second to verify live updates
139
+ const interval = setInterval(compare, 1000);
140
+
141
+ const cleanup = async () => {
142
+ clearInterval(interval);
143
+ console.log('🧹 Cleaning up...');
144
+ await Promise.all([
145
+ ...v1Subscribers.map((sub) => sub.unsubscribe()),
146
+ ...v2Subscribers.map((sub) => sub.unsubscribe()),
147
+ ]);
148
+ console.log('āœ… Cleanup complete');
149
+ process.exit(0);
150
+ };
151
+
152
+ process.on('SIGINT', cleanup);
153
+ process.on('SIGTERM', cleanup);
154
+ }
155
+
156
+ testGrpcUserAccountSubscriberV1VsV2().catch(console.error);
@@ -94,18 +94,18 @@ async function initializeSingleGrpcClient() {
94
94
  }
95
95
  }
96
96
 
97
- console.log(
98
- `šŸ“Š Markets: ${perpMarketIndexes.length} perp, ${spotMarketIndexes.length} spot`
99
- );
97
+ console.log(`šŸ“Š Markets: ${perpMarketIndexes.length} perp, ${spotMarketIndexes.length} spot`);
100
98
  console.log(`šŸ”® Oracles: ${oracleInfos.length}`);
101
99
 
100
+
102
101
  const grpcConfigs = {
103
102
  endpoint: GRPC_ENDPOINT,
104
103
  token: TOKEN,
105
104
  commitmentLevel: CommitmentLevel.PROCESSED,
106
105
  channelOptions: {
107
- grpcKeepAliveTimeout: 1_000,
108
- grpcTcpKeepalive: 10_000,
106
+ 'grpc.keepalive_time_ms': 10_000,
107
+ 'grpc.keepalive_timeout_ms': 1_000,
108
+ 'grpc.keepalive_permit_without_calls': 1,
109
109
  },
110
110
  };
111
111
 
@@ -171,9 +171,7 @@ async function initializeSingleGrpcClient() {
171
171
  await client.subscribe();
172
172
 
173
173
  console.log('āœ… Client subscribed successfully!');
174
- console.log(
175
- 'šŸš€ Starting high-load testing (50 reads/sec per perp market)...'
176
- );
174
+ console.log('šŸš€ Starting high-load testing (50 reads/sec per perp market)...');
177
175
 
178
176
  // High-frequency load testing - 50 reads per second per perp market
179
177
  const loadTestInterval = setInterval(async () => {
@@ -181,35 +179,25 @@ async function initializeSingleGrpcClient() {
181
179
  // Test getPerpMarketAccount for each perp market (50 times per second per market)
182
180
  for (const marketIndex of perpMarketIndexes) {
183
181
  const perpMarketAccount = client.getPerpMarketAccount(marketIndex);
184
- console.log(
185
- 'perpMarketAccount name: ',
186
- decodeName(perpMarketAccount.name)
187
- );
188
- console.log(
189
- 'perpMarketAccount data: ',
190
- JSON.stringify({
191
- marketIndex: perpMarketAccount.marketIndex,
192
- name: decodeName(perpMarketAccount.name),
193
- baseAssetReserve: perpMarketAccount.amm.baseAssetReserve.toString(),
194
- quoteAssetReserve:
195
- perpMarketAccount.amm.quoteAssetReserve.toString(),
196
- })
197
- );
182
+ console.log("perpMarketAccount name: ", decodeName(perpMarketAccount.name));
183
+ console.log("perpMarketAccount data: ", JSON.stringify({
184
+ marketIndex: perpMarketAccount.marketIndex,
185
+ name: decodeName(perpMarketAccount.name),
186
+ baseAssetReserve: perpMarketAccount.amm.baseAssetReserve.toString(),
187
+ quoteAssetReserve: perpMarketAccount.amm.quoteAssetReserve.toString()
188
+ }));
198
189
  }
199
190
 
200
191
  // Test getMMOracleDataForPerpMarket for each perp market (50 times per second per market)
201
192
  for (const marketIndex of perpMarketIndexes) {
202
193
  try {
203
194
  const oracleData = client.getMMOracleDataForPerpMarket(marketIndex);
204
- console.log('oracleData price: ', oracleData.price.toString());
205
- console.log(
206
- 'oracleData: ',
207
- JSON.stringify({
208
- price: oracleData.price.toString(),
209
- confidence: oracleData.confidence?.toString(),
210
- slot: oracleData.slot?.toString(),
211
- })
212
- );
195
+ console.log("oracleData price: ", oracleData.price.toString());
196
+ console.log("oracleData: ", JSON.stringify({
197
+ price: oracleData.price.toString(),
198
+ confidence: oracleData.confidence?.toString(),
199
+ slot: oracleData.slot?.toString()
200
+ }));
213
201
  } catch (error) {
214
202
  // Ignore errors for load testing
215
203
  }
@@ -223,14 +211,8 @@ async function initializeSingleGrpcClient() {
223
211
  const statsInterval = setInterval(() => {
224
212
  console.log('\nšŸ“ˆ Event Counts:', eventCounts);
225
213
  console.log(`ā±ļø Client subscribed: ${client.isSubscribed}`);
226
- console.log(
227
- `šŸ”— Account subscriber subscribed: ${client.accountSubscriber.isSubscribed}`
228
- );
229
- console.log(
230
- `šŸ”„ Load: ${perpMarketIndexes.length * 50 * 2} reads/sec (${
231
- perpMarketIndexes.length
232
- } markets Ɨ 50 getPerpMarketAccount + 50 getMMOracleDataForPerpMarket)`
233
- );
214
+ console.log(`šŸ”— Account subscriber subscribed: ${client.accountSubscriber.isSubscribed}`);
215
+ console.log(`šŸ”„ Load: ${perpMarketIndexes.length * 50 * 2} reads/sec (${perpMarketIndexes.length} markets Ɨ 50 getPerpMarketAccount + 50 getMMOracleDataForPerpMarket)`);
234
216
  }, 5000);
235
217
 
236
218
  // Handle shutdown signals - just exit without cleanup since they never unsubscribe
@@ -1,4 +1,4 @@
1
- import { LaserGrpcConfigs, ResubOpts } from './types';
1
+ import { GrpcConfigs, ResubOpts } from './types';
2
2
  import { Program } from '@coral-xyz/anchor';
3
3
  import { Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
4
4
  import * as Buffer from 'buffer';
@@ -56,7 +56,7 @@ export class LaserstreamProgramAccountSubscriber<
56
56
  }
57
57
 
58
58
  public static async create<U>(
59
- grpcConfigs: LaserGrpcConfigs,
59
+ grpcConfigs: GrpcConfigs,
60
60
  subscriptionName: string,
61
61
  accountDiscriminator: string,
62
62
  program: Program,
@@ -66,17 +66,14 @@ export class LaserstreamProgramAccountSubscriber<
66
66
  },
67
67
  resubOpts?: ResubOpts
68
68
  ): Promise<LaserstreamProgramAccountSubscriber<U>> {
69
- const channelOptions = {
70
- 'grpc.default_compression_algorithm': CompressionAlgorithms.zstd,
71
- 'grpc.max_receive_message_length': 1_000_000_000,
72
- ...(grpcConfigs.channelOptions ?? {}),
73
- };
74
-
75
69
  const laserConfig: LaserstreamConfig = {
76
70
  apiKey: grpcConfigs.token,
77
71
  endpoint: grpcConfigs.endpoint,
78
72
  maxReconnectAttempts: grpcConfigs.enableReconnect ? 10 : 0,
79
- channelOptions,
73
+ channelOptions: {
74
+ 'grpc.default_compression_algorithm': CompressionAlgorithms.zstd,
75
+ 'grpc.max_receive_message_length': 1_000_000_000,
76
+ },
80
77
  };
81
78
 
82
79
  const commitmentLevel =
@@ -15,7 +15,7 @@ import { Context, PublicKey } from '@solana/web3.js';
15
15
  import { Account } from '@solana/spl-token';
16
16
  import { OracleInfo, OraclePriceData } from '../oracles/types';
17
17
  import { User } from '../user';
18
- import { Client, CommitmentLevel, LaserstreamConfig } from '../isomorphic/grpc';
18
+ import { ChannelOptions, CommitmentLevel } from '../isomorphic/grpc';
19
19
 
20
20
  export interface AccountSubscriber<T> {
21
21
  dataAndSlot?: DataAndSlot<T>;
@@ -225,29 +225,19 @@ export interface UserStatsAccountSubscriber {
225
225
  getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount>;
226
226
  }
227
227
 
228
- type BaseGrpcConfigs = {
228
+ export type GrpcConfigs = {
229
229
  endpoint: string;
230
230
  token: string;
231
231
  commitmentLevel?: CommitmentLevel;
232
+ channelOptions?: ChannelOptions;
232
233
  /**
233
234
  * Whether to enable automatic reconnection on connection loss .
234
235
  * Defaults to false, will throw on connection loss.
235
236
  */
236
237
  enableReconnect?: boolean;
238
+ client?: 'yellowstone' | 'laser';
237
239
  };
238
240
 
239
- export type YellowstoneGrpcConfigs = BaseGrpcConfigs & {
240
- client?: 'yellowstone';
241
- channelOptions?: ConstructorParameters<typeof Client>[2];
242
- };
243
-
244
- export type LaserGrpcConfigs = BaseGrpcConfigs & {
245
- client: 'laser';
246
- channelOptions?: LaserstreamConfig['channelOptions'];
247
- };
248
-
249
- export type GrpcConfigs = YellowstoneGrpcConfigs | LaserGrpcConfigs;
250
-
251
241
  export interface HighLeverageModeConfigAccountSubscriber {
252
242
  eventEmitter: StrictEventEmitter<
253
243
  EventEmitter,