@drift-labs/sdk 2.142.0-beta.16 → 2.142.0-beta.17
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 +1 -1
- package/lib/browser/accounts/grpcDriftClientAccountSubscriberV2.js +17 -4
- package/lib/browser/accounts/grpcMultiAccountSubscriber.js +4 -0
- package/lib/node/accounts/grpcDriftClientAccountSubscriberV2.d.ts.map +1 -1
- package/lib/node/accounts/grpcDriftClientAccountSubscriberV2.js +17 -4
- package/lib/node/accounts/grpcMultiAccountSubscriber.d.ts.map +1 -1
- package/lib/node/accounts/grpcMultiAccountSubscriber.js +4 -0
- package/package.json +1 -1
- package/scripts/client-test.ts +11 -1
- package/src/accounts/grpcDriftClientAccountSubscriberV2.ts +17 -4
- package/src/accounts/grpcMultiAccountSubscriber.ts +3 -0
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
2.142.0-beta.
|
|
1
|
+
2.142.0-beta.17
|
|
@@ -97,6 +97,10 @@ class grpcDriftClientAccountSubscriberV2 {
|
|
|
97
97
|
return true;
|
|
98
98
|
}
|
|
99
99
|
async addOracle(oracleInfo) {
|
|
100
|
+
var _a, _c;
|
|
101
|
+
if ((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.logResubMessages) {
|
|
102
|
+
console.log('[grpcDriftClientAccountSubscriberV2] addOracle');
|
|
103
|
+
}
|
|
100
104
|
if (oracleInfo.publicKey.equals(web3_js_1.PublicKey.default)) {
|
|
101
105
|
return true;
|
|
102
106
|
}
|
|
@@ -105,10 +109,7 @@ class grpcDriftClientAccountSubscriberV2 {
|
|
|
105
109
|
if (!exists) {
|
|
106
110
|
this.oracleInfos = this.oracleInfos.concat(oracleInfo);
|
|
107
111
|
}
|
|
108
|
-
|
|
109
|
-
await this.unsubscribeFromOracles();
|
|
110
|
-
await this.subscribeToOracles();
|
|
111
|
-
}
|
|
112
|
+
(_c = this.oracleMultiSubscriber) === null || _c === void 0 ? void 0 : _c.addAccounts([oracleInfo.publicKey]);
|
|
112
113
|
return true;
|
|
113
114
|
}
|
|
114
115
|
async subscribe() {
|
|
@@ -272,6 +273,10 @@ class grpcDriftClientAccountSubscriberV2 {
|
|
|
272
273
|
await Promise.all(addOraclePromises);
|
|
273
274
|
}
|
|
274
275
|
async subscribeToPerpMarketAccounts() {
|
|
276
|
+
var _a;
|
|
277
|
+
if ((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.logResubMessages) {
|
|
278
|
+
console.log('[grpcDriftClientAccountSubscriberV2] subscribeToPerpMarketAccounts');
|
|
279
|
+
}
|
|
275
280
|
const perpMarketIndexToAccountPubkeys = await Promise.all(this.perpMarketIndexes.map(async (marketIndex) => [
|
|
276
281
|
marketIndex,
|
|
277
282
|
await (0, pda_1.getPerpMarketPublicKey)(this.program.programId, marketIndex),
|
|
@@ -303,6 +308,10 @@ class grpcDriftClientAccountSubscriberV2 {
|
|
|
303
308
|
return true;
|
|
304
309
|
}
|
|
305
310
|
async subscribeToSpotMarketAccounts() {
|
|
311
|
+
var _a;
|
|
312
|
+
if ((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.logResubMessages) {
|
|
313
|
+
console.log('[grpcDriftClientAccountSubscriberV2] subscribeToSpotMarketAccounts');
|
|
314
|
+
}
|
|
306
315
|
const spotMarketIndexToAccountPubkeys = await Promise.all(this.spotMarketIndexes.map(async (marketIndex) => [
|
|
307
316
|
marketIndex,
|
|
308
317
|
await (0, pda_1.getSpotMarketPublicKey)(this.program.programId, marketIndex),
|
|
@@ -334,6 +343,10 @@ class grpcDriftClientAccountSubscriberV2 {
|
|
|
334
343
|
return true;
|
|
335
344
|
}
|
|
336
345
|
async subscribeToOracles() {
|
|
346
|
+
var _a;
|
|
347
|
+
if ((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.logResubMessages) {
|
|
348
|
+
console.log('grpcDriftClientAccountSubscriberV2 subscribeToOracles');
|
|
349
|
+
}
|
|
337
350
|
const oraclePubkeyToInfosMap = new Map();
|
|
338
351
|
for (const info of this.oracleInfos) {
|
|
339
352
|
const pubkey = info.publicKey.toBase58();
|
|
@@ -114,6 +114,10 @@ class grpcMultiAccountSubscriber {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
async subscribe(accounts, onChange) {
|
|
117
|
+
var _a;
|
|
118
|
+
if ((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.logResubMessages) {
|
|
119
|
+
console.log(`[${this.accountName}] grpcMultiAccountSubscriber subscribe`);
|
|
120
|
+
}
|
|
117
121
|
if (this.listenerId != null || this.isUnsubscribing) {
|
|
118
122
|
return;
|
|
119
123
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpcDriftClientAccountSubscriberV2.d.ts","sourceRoot":"","sources":["../../../src/accounts/grpcDriftClientAccountSubscriberV2.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"grpcDriftClientAccountSubscriberV2.d.ts","sourceRoot":"","sources":["../../../src/accounts/grpcDriftClientAccountSubscriberV2.ts"],"names":[],"mappings":"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"}
|
|
@@ -97,6 +97,10 @@ class grpcDriftClientAccountSubscriberV2 {
|
|
|
97
97
|
return true;
|
|
98
98
|
}
|
|
99
99
|
async addOracle(oracleInfo) {
|
|
100
|
+
var _a, _c;
|
|
101
|
+
if ((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.logResubMessages) {
|
|
102
|
+
console.log('[grpcDriftClientAccountSubscriberV2] addOracle');
|
|
103
|
+
}
|
|
100
104
|
if (oracleInfo.publicKey.equals(web3_js_1.PublicKey.default)) {
|
|
101
105
|
return true;
|
|
102
106
|
}
|
|
@@ -105,10 +109,7 @@ class grpcDriftClientAccountSubscriberV2 {
|
|
|
105
109
|
if (!exists) {
|
|
106
110
|
this.oracleInfos = this.oracleInfos.concat(oracleInfo);
|
|
107
111
|
}
|
|
108
|
-
|
|
109
|
-
await this.unsubscribeFromOracles();
|
|
110
|
-
await this.subscribeToOracles();
|
|
111
|
-
}
|
|
112
|
+
(_c = this.oracleMultiSubscriber) === null || _c === void 0 ? void 0 : _c.addAccounts([oracleInfo.publicKey]);
|
|
112
113
|
return true;
|
|
113
114
|
}
|
|
114
115
|
async subscribe() {
|
|
@@ -272,6 +273,10 @@ class grpcDriftClientAccountSubscriberV2 {
|
|
|
272
273
|
await Promise.all(addOraclePromises);
|
|
273
274
|
}
|
|
274
275
|
async subscribeToPerpMarketAccounts() {
|
|
276
|
+
var _a;
|
|
277
|
+
if ((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.logResubMessages) {
|
|
278
|
+
console.log('[grpcDriftClientAccountSubscriberV2] subscribeToPerpMarketAccounts');
|
|
279
|
+
}
|
|
275
280
|
const perpMarketIndexToAccountPubkeys = await Promise.all(this.perpMarketIndexes.map(async (marketIndex) => [
|
|
276
281
|
marketIndex,
|
|
277
282
|
await (0, pda_1.getPerpMarketPublicKey)(this.program.programId, marketIndex),
|
|
@@ -303,6 +308,10 @@ class grpcDriftClientAccountSubscriberV2 {
|
|
|
303
308
|
return true;
|
|
304
309
|
}
|
|
305
310
|
async subscribeToSpotMarketAccounts() {
|
|
311
|
+
var _a;
|
|
312
|
+
if ((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.logResubMessages) {
|
|
313
|
+
console.log('[grpcDriftClientAccountSubscriberV2] subscribeToSpotMarketAccounts');
|
|
314
|
+
}
|
|
306
315
|
const spotMarketIndexToAccountPubkeys = await Promise.all(this.spotMarketIndexes.map(async (marketIndex) => [
|
|
307
316
|
marketIndex,
|
|
308
317
|
await (0, pda_1.getSpotMarketPublicKey)(this.program.programId, marketIndex),
|
|
@@ -334,6 +343,10 @@ class grpcDriftClientAccountSubscriberV2 {
|
|
|
334
343
|
return true;
|
|
335
344
|
}
|
|
336
345
|
async subscribeToOracles() {
|
|
346
|
+
var _a;
|
|
347
|
+
if ((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.logResubMessages) {
|
|
348
|
+
console.log('grpcDriftClientAccountSubscriberV2 subscribeToOracles');
|
|
349
|
+
}
|
|
337
350
|
const oraclePubkeyToInfosMap = new Map();
|
|
338
351
|
for (const info of this.oracleInfos) {
|
|
339
352
|
const pubkey = info.publicKey.toBase58();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grpcMultiAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/grpcMultiAccountSubscriber.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAc,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjE,OAAO,EACN,MAAM,EAMN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAyB9D,qBAAa,0BAA0B,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS;IACvD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAwD;IACtE,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAIhB;IACP,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAsB;IAErC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,UAAS;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAgC;IAClD,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,WAAW,CAGf;IAEJ,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,eAAe,CAAmC;IAE1D,OAAO;WAoBa,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,EAC1C,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,EACvE,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACnC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GACzC,OAAO,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAwB5C,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAInE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS;IAIjE,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAI1C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkDtB,SAAS,CACd,QAAQ,EAAE,SAAS,EAAE,EACrB,QAAQ,EAAE,CACT,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,CAAC,KACX,IAAI,GACP,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"grpcMultiAccountSubscriber.d.ts","sourceRoot":"","sources":["../../../src/accounts/grpcMultiAccountSubscriber.ts"],"names":[],"mappings":";;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAc,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjE,OAAO,EACN,MAAM,EAMN,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAyB9D,qBAAa,0BAA0B,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS;IACvD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAwD;IACtE,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAC,CAIhB;IACP,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,aAAa,CAAC,CAAsB;IAErC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,UAAS;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAgC;IAClD,OAAO,CAAC,aAAa,CAAS;IAE9B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,WAAW,CAGf;IAEJ,OAAO,CAAC,OAAO,CAAqC;IACpD,OAAO,CAAC,eAAe,CAAmC;IAE1D,OAAO;WAoBa,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,SAAS,EAC1C,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,OAAO,EAChB,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,KAAK,CAAC,EACvE,SAAS,CAAC,EAAE,SAAS,EACrB,UAAU,CAAC,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,EACnC,eAAe,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,GACzC,OAAO,CAAC,0BAA0B,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAwB5C,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI;IAInE,cAAc,CAAC,aAAa,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,SAAS;IAIjE,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IAI1C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAkDtB,SAAS,CACd,QAAQ,EAAE,SAAS,EAAE,EACrB,QAAQ,EAAE,CACT,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,CAAC,EACP,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,CAAC,KACX,IAAI,GACP,OAAO,CAAC,IAAI,CAAC;IAkHV,WAAW,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCjD,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCpD,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IA4ClC,OAAO,CAAC,UAAU;IAelB,OAAO,CAAC,UAAU;CAIlB"}
|
|
@@ -114,6 +114,10 @@ class grpcMultiAccountSubscriber {
|
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
116
|
async subscribe(accounts, onChange) {
|
|
117
|
+
var _a;
|
|
118
|
+
if ((_a = this.resubOpts) === null || _a === void 0 ? void 0 : _a.logResubMessages) {
|
|
119
|
+
console.log(`[${this.accountName}] grpcMultiAccountSubscriber subscribe`);
|
|
120
|
+
}
|
|
117
121
|
if (this.listenerId != null || this.isUnsubscribing) {
|
|
118
122
|
return;
|
|
119
123
|
}
|
package/package.json
CHANGED
package/scripts/client-test.ts
CHANGED
|
@@ -24,7 +24,7 @@ const GRPC_ENDPOINT = process.env.GRPC_ENDPOINT;
|
|
|
24
24
|
const TOKEN = process.env.TOKEN;
|
|
25
25
|
|
|
26
26
|
async function initializeGrpcDriftClientV2VersusV1() {
|
|
27
|
-
const connection = new Connection('');
|
|
27
|
+
const connection = new Connection('https://api.mainnet-beta.solana.com');
|
|
28
28
|
const wallet = new Wallet(new Keypair());
|
|
29
29
|
dotenv.config({ path: '../' });
|
|
30
30
|
|
|
@@ -119,6 +119,7 @@ async function initializeGrpcDriftClientV2VersusV1() {
|
|
|
119
119
|
accountSubscription: {
|
|
120
120
|
...baseAccountSubscription,
|
|
121
121
|
driftClientAccountSubscriber: grpcDriftClientAccountSubscriberV2,
|
|
122
|
+
logResubMessages: true,
|
|
122
123
|
},
|
|
123
124
|
perpMarketIndexes,
|
|
124
125
|
spotMarketIndexes,
|
|
@@ -132,6 +133,7 @@ async function initializeGrpcDriftClientV2VersusV1() {
|
|
|
132
133
|
accountSubscription: {
|
|
133
134
|
...baseAccountSubscription,
|
|
134
135
|
driftClientAccountSubscriber: grpcDriftClientAccountSubscriber,
|
|
136
|
+
// logResubMessages: true,
|
|
135
137
|
},
|
|
136
138
|
perpMarketIndexes,
|
|
137
139
|
spotMarketIndexes,
|
|
@@ -142,6 +144,14 @@ async function initializeGrpcDriftClientV2VersusV1() {
|
|
|
142
144
|
const clientV1 = new DriftClient(configV1);
|
|
143
145
|
|
|
144
146
|
await Promise.all([clientV1.subscribe(), clientV2.subscribe()]);
|
|
147
|
+
|
|
148
|
+
clientV2.eventEmitter.on('oraclePriceUpdate', (pubkey, source, data) => {
|
|
149
|
+
const key = pubkey.toBase58();
|
|
150
|
+
const src = Object.keys(source ?? {})[0];
|
|
151
|
+
console.log(
|
|
152
|
+
`v2 oracle update ${key} (${src}) price ${data.price.toString()}`
|
|
153
|
+
);
|
|
154
|
+
});
|
|
145
155
|
const compare = () => {
|
|
146
156
|
for (const idx of perpMarketIndexes) {
|
|
147
157
|
const p1 = clientV1.getOracleDataForPerpMarket(idx).price;
|
|
@@ -215,6 +215,9 @@ export class grpcDriftClientAccountSubscriberV2
|
|
|
215
215
|
}
|
|
216
216
|
|
|
217
217
|
async addOracle(oracleInfo: OracleInfo): Promise<boolean> {
|
|
218
|
+
if (this.resubOpts?.logResubMessages) {
|
|
219
|
+
console.log('[grpcDriftClientAccountSubscriberV2] addOracle');
|
|
220
|
+
}
|
|
218
221
|
if (oracleInfo.publicKey.equals(PublicKey.default)) {
|
|
219
222
|
return true;
|
|
220
223
|
}
|
|
@@ -228,10 +231,7 @@ export class grpcDriftClientAccountSubscriberV2
|
|
|
228
231
|
this.oracleInfos = this.oracleInfos.concat(oracleInfo);
|
|
229
232
|
}
|
|
230
233
|
|
|
231
|
-
|
|
232
|
-
await this.unsubscribeFromOracles();
|
|
233
|
-
await this.subscribeToOracles();
|
|
234
|
-
}
|
|
234
|
+
this.oracleMultiSubscriber?.addAccounts([oracleInfo.publicKey]);
|
|
235
235
|
|
|
236
236
|
return true;
|
|
237
237
|
}
|
|
@@ -461,6 +461,11 @@ export class grpcDriftClientAccountSubscriberV2
|
|
|
461
461
|
}
|
|
462
462
|
|
|
463
463
|
async subscribeToPerpMarketAccounts(): Promise<boolean> {
|
|
464
|
+
if (this.resubOpts?.logResubMessages) {
|
|
465
|
+
console.log(
|
|
466
|
+
'[grpcDriftClientAccountSubscriberV2] subscribeToPerpMarketAccounts'
|
|
467
|
+
);
|
|
468
|
+
}
|
|
464
469
|
const perpMarketIndexToAccountPubkeys: Array<[number, PublicKey]> =
|
|
465
470
|
await Promise.all(
|
|
466
471
|
this.perpMarketIndexes.map(async (marketIndex) => [
|
|
@@ -523,6 +528,11 @@ export class grpcDriftClientAccountSubscriberV2
|
|
|
523
528
|
}
|
|
524
529
|
|
|
525
530
|
async subscribeToSpotMarketAccounts(): Promise<boolean> {
|
|
531
|
+
if (this.resubOpts?.logResubMessages) {
|
|
532
|
+
console.log(
|
|
533
|
+
'[grpcDriftClientAccountSubscriberV2] subscribeToSpotMarketAccounts'
|
|
534
|
+
);
|
|
535
|
+
}
|
|
526
536
|
const spotMarketIndexToAccountPubkeys: Array<[number, PublicKey]> =
|
|
527
537
|
await Promise.all(
|
|
528
538
|
this.spotMarketIndexes.map(async (marketIndex) => [
|
|
@@ -585,6 +595,9 @@ export class grpcDriftClientAccountSubscriberV2
|
|
|
585
595
|
}
|
|
586
596
|
|
|
587
597
|
async subscribeToOracles(): Promise<boolean> {
|
|
598
|
+
if (this.resubOpts?.logResubMessages) {
|
|
599
|
+
console.log('grpcDriftClientAccountSubscriberV2 subscribeToOracles');
|
|
600
|
+
}
|
|
588
601
|
const oraclePubkeyToInfosMap = new Map<string, OracleInfo[]>();
|
|
589
602
|
for (const info of this.oracleInfos) {
|
|
590
603
|
const pubkey = info.publicKey.toBase58();
|
|
@@ -189,6 +189,9 @@ export class grpcMultiAccountSubscriber<T, U = undefined> {
|
|
|
189
189
|
accountProps: U
|
|
190
190
|
) => void
|
|
191
191
|
): Promise<void> {
|
|
192
|
+
if (this.resubOpts?.logResubMessages) {
|
|
193
|
+
console.log(`[${this.accountName}] grpcMultiAccountSubscriber subscribe`);
|
|
194
|
+
}
|
|
192
195
|
if (this.listenerId != null || this.isUnsubscribing) {
|
|
193
196
|
return;
|
|
194
197
|
}
|