@drift-labs/sdk-browser 2.157.0-beta.2 โ†’ 2.157.0-beta.3

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.157.0-beta.2
1
+ 2.157.0-beta.3
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { GrpcConfigs, ResubOpts } from './types';
2
+ import { LaserGrpcConfigs, ResubOpts } from './types';
3
3
  import { Program } from '@coral-xyz/anchor';
4
4
  import { Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
5
5
  import { WebSocketProgramAccountSubscriber } from './webSocketProgramAccountSubscriber';
@@ -12,7 +12,7 @@ export declare class LaserstreamProgramAccountSubscriber<T> extends WebSocketPro
12
12
  private readonly laserConfig;
13
13
  private readonly laserCommitmentLevel;
14
14
  private constructor();
15
- static create<U>(grpcConfigs: GrpcConfigs, subscriptionName: string, accountDiscriminator: string, program: Program, decodeBufferFn: (accountName: string, ix: Buffer) => U, options?: {
15
+ static create<U>(grpcConfigs: LaserGrpcConfigs, 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>;
@@ -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 { ChannelOptions, CommitmentLevel } from '../isomorphic/grpc';
11
+ import { Client, CommitmentLevel, LaserstreamConfig } from '../isomorphic/grpc';
12
12
  export interface AccountSubscriber<T> {
13
13
  dataAndSlot?: DataAndSlot<T>;
14
14
  subscribe(onChange: (data: T) => void): Promise<void>;
@@ -155,18 +155,25 @@ export interface UserStatsAccountSubscriber {
155
155
  unsubscribe(): Promise<void>;
156
156
  getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount>;
157
157
  }
158
- export type GrpcConfigs = {
158
+ type BaseGrpcConfigs = {
159
159
  endpoint: string;
160
160
  token: string;
161
161
  commitmentLevel?: CommitmentLevel;
162
- channelOptions?: ChannelOptions;
163
162
  /**
164
163
  * Whether to enable automatic reconnection on connection loss .
165
164
  * Defaults to false, will throw on connection loss.
166
165
  */
167
166
  enableReconnect?: boolean;
168
- client?: 'yellowstone' | 'laser';
169
167
  };
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;
170
177
  export interface HighLeverageModeConfigAccountSubscriber {
171
178
  eventEmitter: StrictEventEmitter<EventEmitter, HighLeverageModeConfigAccountEvents>;
172
179
  isSubscribed: boolean;
@@ -192,3 +199,4 @@ export interface ConstituentAccountEvents {
192
199
  update: void;
193
200
  error: (e: Error) => void;
194
201
  }
202
+ export {};
@@ -1,5 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { GrpcConfigs, ResubOpts } from './types';
2
+ import { LaserGrpcConfigs, ResubOpts } from './types';
3
3
  import { Program } from '@coral-xyz/anchor';
4
4
  import { Context, MemcmpFilter, PublicKey } from '@solana/web3.js';
5
5
  import { WebSocketProgramAccountSubscriber } from './webSocketProgramAccountSubscriber';
@@ -12,7 +12,7 @@ export declare class LaserstreamProgramAccountSubscriber<T> extends WebSocketPro
12
12
  private readonly laserConfig;
13
13
  private readonly laserCommitmentLevel;
14
14
  private constructor();
15
- static create<U>(grpcConfigs: GrpcConfigs, subscriptionName: string, accountDiscriminator: string, program: Program, decodeBufferFn: (accountName: string, ix: Buffer) => U, options?: {
15
+ static create<U>(grpcConfigs: LaserGrpcConfigs, 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,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,EAQpB,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;IAChD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8B;IAEnE,OAAO;WAwBa,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;IAiC5C,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;IAsFH,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,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,EAQpB,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;IAChD,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8B;IAEnE,OAAO;WAwBa,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;IAiC5C,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;IAsFH,WAAW,CAAC,OAAO,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBjD,iBAAiB,CACvB,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAChC,eAAe;CASlB"}
@@ -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 { ChannelOptions, CommitmentLevel } from '../isomorphic/grpc';
11
+ import { Client, CommitmentLevel, LaserstreamConfig } from '../isomorphic/grpc';
12
12
  export interface AccountSubscriber<T> {
13
13
  dataAndSlot?: DataAndSlot<T>;
14
14
  subscribe(onChange: (data: T) => void): Promise<void>;
@@ -155,18 +155,25 @@ export interface UserStatsAccountSubscriber {
155
155
  unsubscribe(): Promise<void>;
156
156
  getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount>;
157
157
  }
158
- export type GrpcConfigs = {
158
+ type BaseGrpcConfigs = {
159
159
  endpoint: string;
160
160
  token: string;
161
161
  commitmentLevel?: CommitmentLevel;
162
- channelOptions?: ChannelOptions;
163
162
  /**
164
163
  * Whether to enable automatic reconnection on connection loss .
165
164
  * Defaults to false, will throw on connection loss.
166
165
  */
167
166
  enableReconnect?: boolean;
168
- client?: 'yellowstone' | 'laser';
169
167
  };
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;
170
177
  export interface HighLeverageModeConfigAccountSubscriber {
171
178
  eventEmitter: StrictEventEmitter<EventEmitter, HighLeverageModeConfigAccountEvents>;
172
179
  isSubscribed: boolean;
@@ -192,4 +199,5 @@ export interface ConstituentAccountEvents {
192
199
  update: void;
193
200
  error: (e: Error) => void;
194
201
  }
202
+ export {};
195
203
  //# 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.157.0-beta.2",
3
+ "version": "2.157.0-beta.3",
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": "1.4.1",
59
+ "@triton-one/yellowstone-grpc": "5.0.2",
60
60
  "anchor-bankrun": "0.3.0",
61
61
  "gill": "^0.10.2",
62
62
  "nanoid": "3.3.4",
@@ -96,9 +96,8 @@ async function initializeGrpcDriftClientV2VersusV1() {
96
96
  token: TOKEN,
97
97
  commitmentLevel: CommitmentLevel.PROCESSED,
98
98
  channelOptions: {
99
- 'grpc.keepalive_time_ms': 10_000,
100
- 'grpc.keepalive_timeout_ms': 1_000,
101
- 'grpc.keepalive_permit_without_calls': 1,
99
+ grpcKeepAliveTimeout: 1_000,
100
+ grpcTcpKeepalive: 10_000,
102
101
  },
103
102
  },
104
103
  };
@@ -13,144 +13,146 @@ 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('โŒ 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);
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);
@@ -97,15 +97,13 @@ async function initializeSingleGrpcClient() {
97
97
  );
98
98
  console.log(`๐Ÿ”ฎ Oracles: ${oracleInfos.length}`);
99
99
 
100
-
101
100
  const grpcConfigs = {
102
101
  endpoint: GRPC_ENDPOINT,
103
102
  token: TOKEN,
104
103
  commitmentLevel: CommitmentLevel.PROCESSED,
105
104
  channelOptions: {
106
- 'grpc.keepalive_time_ms': 10_000,
107
- 'grpc.keepalive_timeout_ms': 1_000,
108
- 'grpc.keepalive_permit_without_calls': 1,
105
+ grpcKeepAliveTimeout: 1_000,
106
+ grpcTcpKeepalive: 10_000,
109
107
  },
110
108
  };
111
109
 
@@ -1,4 +1,4 @@
1
- import { GrpcConfigs, ResubOpts } from './types';
1
+ import { LaserGrpcConfigs, 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';
@@ -60,7 +60,7 @@ export class LaserstreamProgramAccountSubscriber<
60
60
  }
61
61
 
62
62
  public static async create<U>(
63
- grpcConfigs: GrpcConfigs,
63
+ grpcConfigs: LaserGrpcConfigs,
64
64
  subscriptionName: string,
65
65
  accountDiscriminator: string,
66
66
  program: Program,
@@ -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 { ChannelOptions, CommitmentLevel } from '../isomorphic/grpc';
18
+ import { Client, CommitmentLevel, LaserstreamConfig } from '../isomorphic/grpc';
19
19
 
20
20
  export interface AccountSubscriber<T> {
21
21
  dataAndSlot?: DataAndSlot<T>;
@@ -225,19 +225,29 @@ export interface UserStatsAccountSubscriber {
225
225
  getUserStatsAccountAndSlot(): DataAndSlot<UserStatsAccount>;
226
226
  }
227
227
 
228
- export type GrpcConfigs = {
228
+ type BaseGrpcConfigs = {
229
229
  endpoint: string;
230
230
  token: string;
231
231
  commitmentLevel?: CommitmentLevel;
232
- channelOptions?: ChannelOptions;
233
232
  /**
234
233
  * Whether to enable automatic reconnection on connection loss .
235
234
  * Defaults to false, will throw on connection loss.
236
235
  */
237
236
  enableReconnect?: boolean;
238
- client?: 'yellowstone' | 'laser';
239
237
  };
240
238
 
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
+
241
251
  export interface HighLeverageModeConfigAccountSubscriber {
242
252
  eventEmitter: StrictEventEmitter<
243
253
  EventEmitter,