@injectivelabs/sdk-ts 1.17.6 → 1.17.8

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 (81) hide show
  1. package/dist/cjs/{AbacusGrpcApi-QbGB8ZMB.cjs → AbacusGrpcApi-Da2mxc3z.cjs} +2 -2
  2. package/dist/cjs/{BaseGrpcConsumer-Db3sCC6b.cjs → BaseGrpcConsumer-B1hpRQJ-.cjs} +1 -1
  3. package/dist/cjs/{BaseIndexerGrpcConsumer-BBXxg_BR.cjs → BaseIndexerGrpcConsumer-rRYRp48i.cjs} +1 -1
  4. package/dist/cjs/{ChainGrpcExchangeApi-Xtflr7xp.cjs → ChainGrpcExchangeApi-5On5kown.cjs} +3 -3
  5. package/dist/cjs/{ChainRestTendermintApi-CyeoAmer.cjs → ChainRestTendermintApi-DILpgVDN.cjs} +2 -2
  6. package/dist/cjs/{DirectEthSecp256k1Wallet-BiAOoEd6.cjs → DirectEthSecp256k1Wallet-Bz_TABf8.cjs} +2 -2
  7. package/dist/cjs/{ExecArgNeptuneWithdraw-4esQ6Su-.cjs → ExecArgNeptuneWithdraw-TyUvdHsN.cjs} +2 -2
  8. package/dist/cjs/{IndexerGrpcWeb3GwApi-BxJoq1-k.cjs → IndexerGrpcWeb3GwApi-wpbu-sy0.cjs} +2 -2
  9. package/dist/cjs/{MsgBase-D_1CCpXQ.cjs → MsgBase-DknjeeDb.cjs} +1 -1
  10. package/dist/cjs/{MsgSetDenomMetadata-DzYvKtNj.cjs → MsgSetDenomMetadata-MOKVZiSF.cjs} +39 -8
  11. package/dist/cjs/{OLPGrpcApi-CoVqLaSC.cjs → OLPGrpcApi-DYU9vRNO.cjs} +2 -2
  12. package/dist/cjs/{QueryTradingStrategyContractTotalStrategies-DPrIH5Jb.cjs → QueryTradingStrategyContractTotalStrategies-CDeAJmZj.cjs} +3 -3
  13. package/dist/cjs/{StreamManagerV2-Dvfpwi5Z.cjs → StreamManagerV2-ocvGmGvp.cjs} +1034 -4
  14. package/dist/cjs/{accounts-HFzAaFRB.cjs → accounts-BPCUUwFm.cjs} +2 -2
  15. package/dist/cjs/{chain-CPs0kwL0.cjs → chain-DmIDW_8V.cjs} +3 -3
  16. package/dist/cjs/client/abacus.cjs +3 -3
  17. package/dist/cjs/client/chain.cjs +5 -5
  18. package/dist/cjs/client/chain.d.cts +2 -2
  19. package/dist/cjs/client/indexer.cjs +17 -5
  20. package/dist/cjs/client/indexer.d.cts +3 -3
  21. package/dist/cjs/client/olp.cjs +4 -4
  22. package/dist/cjs/client/wasm.cjs +8 -8
  23. package/dist/cjs/client/wasm.d.cts +1 -1
  24. package/dist/cjs/core/accounts.cjs +3 -3
  25. package/dist/cjs/core/accounts.d.cts +2 -2
  26. package/dist/cjs/core/modules.cjs +11 -11
  27. package/dist/cjs/core/modules.d.cts +2 -2
  28. package/dist/cjs/core/tx.cjs +8 -8
  29. package/dist/cjs/core/tx.d.cts +2 -2
  30. package/dist/cjs/cosmjs.cjs +9 -9
  31. package/dist/cjs/{defineProperty-dyr5BsvG.cjs → defineProperty-DAtJs5JQ.cjs} +4 -4
  32. package/dist/cjs/exports.cjs +9 -9
  33. package/dist/cjs/{index-Dz6elmkG.d.cts → index-CNxu0jEc.d.cts} +1312 -113
  34. package/dist/cjs/{index-CSWj2FPd.d.cts → index-COusnMLC.d.cts} +8 -5
  35. package/dist/cjs/index.cjs +29 -17
  36. package/dist/cjs/index.d.cts +3 -3
  37. package/dist/cjs/{service-C0DSVBn_.cjs → service-DmzN9jAl.cjs} +1 -1
  38. package/dist/cjs/service.cjs +2 -2
  39. package/dist/cjs/{tx-MgHAjEie.cjs → tx-CYMyLXlj.cjs} +5 -5
  40. package/dist/cjs/utils.d.cts +2 -2
  41. package/dist/esm/{AbacusGrpcApi-H-P0UiPh.js → AbacusGrpcApi-DG807S_D.js} +2 -2
  42. package/dist/esm/{BaseGrpcConsumer-a7fB9A_e.js → BaseGrpcConsumer-lUDP-V1I.js} +1 -1
  43. package/dist/esm/{BaseIndexerGrpcConsumer-CrwqSxDq.js → BaseIndexerGrpcConsumer-ByGqwnv0.js} +1 -1
  44. package/dist/esm/{ChainGrpcExchangeApi-Ko7rM6Df.js → ChainGrpcExchangeApi-dM8pIv3Q.js} +3 -3
  45. package/dist/esm/{ChainRestTendermintApi-BUV-cxVj.js → ChainRestTendermintApi-iiW50Z2J.js} +2 -2
  46. package/dist/esm/{DirectEthSecp256k1Wallet-CMxBvSTE.js → DirectEthSecp256k1Wallet-BV8ttcYH.js} +2 -2
  47. package/dist/esm/{ExecArgNeptuneWithdraw-BRJZq8Vb.js → ExecArgNeptuneWithdraw-DqIWmqJy.js} +2 -2
  48. package/dist/esm/{IndexerGrpcWeb3GwApi-CX4ohUOk.js → IndexerGrpcWeb3GwApi-OwqVZsKE.js} +2 -2
  49. package/dist/esm/{MsgBase-D4pO6org.js → MsgBase-BYNH7Kr5.js} +1 -1
  50. package/dist/esm/{MsgSetDenomMetadata-CeD0R82a.js → MsgSetDenomMetadata-CTyvXOGo.js} +39 -8
  51. package/dist/esm/{OLPGrpcApi-CX-m2wvC.js → OLPGrpcApi-CYVKwBCj.js} +2 -2
  52. package/dist/esm/{QueryTradingStrategyContractTotalStrategies-D9fMELJH.js → QueryTradingStrategyContractTotalStrategies-CCM0S67l.js} +3 -3
  53. package/dist/esm/{StreamManagerV2-B_6ctbMb.js → StreamManagerV2-CbZamzIn.js} +962 -5
  54. package/dist/esm/{accounts-CP_DVUou.js → accounts-DaSGlOcB.js} +2 -2
  55. package/dist/esm/{chain-CQczt2h3.js → chain-DqFxHeeE.js} +3 -3
  56. package/dist/esm/client/abacus.js +3 -3
  57. package/dist/esm/client/chain.d.ts +2 -2
  58. package/dist/esm/client/chain.js +5 -5
  59. package/dist/esm/client/indexer.d.ts +3 -3
  60. package/dist/esm/client/indexer.js +6 -6
  61. package/dist/esm/client/olp.js +4 -4
  62. package/dist/esm/client/wasm.d.ts +1 -1
  63. package/dist/esm/client/wasm.js +8 -8
  64. package/dist/esm/core/accounts.d.ts +2 -2
  65. package/dist/esm/core/accounts.js +3 -3
  66. package/dist/esm/core/modules.d.ts +2 -2
  67. package/dist/esm/core/modules.js +11 -11
  68. package/dist/esm/core/tx.d.ts +2 -2
  69. package/dist/esm/core/tx.js +8 -8
  70. package/dist/esm/cosmjs.js +9 -9
  71. package/dist/esm/{defineProperty-Bq6QU9Te.js → defineProperty-DuYPbdEg.js} +4 -4
  72. package/dist/esm/exports.js +9 -9
  73. package/dist/esm/{index-CvTpnDXx.d.ts → index-C32ydr8i.d.ts} +1313 -113
  74. package/dist/esm/{index-BbVYW9Fg.d.ts → index-M499Wbuy.d.ts} +8 -5
  75. package/dist/esm/index.d.ts +3 -3
  76. package/dist/esm/index.js +18 -18
  77. package/dist/esm/{service-CqKPnKgb.js → service-DcE3KfV9.js} +1 -1
  78. package/dist/esm/service.js +2 -2
  79. package/dist/esm/{tx-ZGcAWTaC.js → tx-CSkj2rce.js} +5 -5
  80. package/dist/esm/utils.d.ts +2 -2
  81. package/package.json +7 -6
@@ -1,13 +1,17 @@
1
1
  const require_chunk = require('./chunk-CbDLau6x.cjs');
2
2
  const require_utils = require('./utils-D3XFGv8y.cjs');
3
- const require_defineProperty = require('./defineProperty-dyr5BsvG.cjs');
4
- const require_BaseGrpcConsumer = require('./BaseGrpcConsumer-Db3sCC6b.cjs');
5
- const require_BaseIndexerGrpcConsumer = require('./BaseIndexerGrpcConsumer-BBXxg_BR.cjs');
3
+ const require_defineProperty = require('./defineProperty-DAtJs5JQ.cjs');
4
+ const require_BaseGrpcConsumer = require('./BaseGrpcConsumer-B1hpRQJ-.cjs');
5
+ const require_BaseIndexerGrpcConsumer = require('./BaseIndexerGrpcConsumer-rRYRp48i.cjs');
6
6
  const require_BaseRestConsumer = require('./BaseRestConsumer-CRkyjiSo.cjs');
7
- const require_IndexerGrpcWeb3GwApi = require('./IndexerGrpcWeb3GwApi-BxJoq1-k.cjs');
7
+ const require_IndexerGrpcWeb3GwApi = require('./IndexerGrpcWeb3GwApi-wpbu-sy0.cjs');
8
8
  const require_types = require('./types-BSrt7JzM.cjs');
9
9
  let __injectivelabs_utils = require("@injectivelabs/utils");
10
10
  let __injectivelabs_exceptions = require("@injectivelabs/exceptions");
11
+ let __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js = require("@injectivelabs/indexer-proto-ts-v2/generated/injective_rfqrpc_pb.js");
12
+ let __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb = require("@injectivelabs/indexer-proto-ts-v2/generated/injective_rfqrpc_pb");
13
+ __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb = require_chunk.__toESM(__injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb);
14
+ let __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_client = require("@injectivelabs/indexer-proto-ts-v2/generated/injective_rfqrpc_pb.client");
11
15
  let __injectivelabs_mito_proto_ts_v2_generated_goadesign_goagen_mito_api_pb_client = require("@injectivelabs/mito-proto-ts-v2/generated/goadesign_goagen_mito_api_pb.client");
12
16
  let __injectivelabs_mito_proto_ts_v2_generated_goadesign_goagen_mito_api_pb = require("@injectivelabs/mito-proto-ts-v2/generated/goadesign_goagen_mito_api_pb");
13
17
  __injectivelabs_mito_proto_ts_v2_generated_goadesign_goagen_mito_api_pb = require_chunk.__toESM(__injectivelabs_mito_proto_ts_v2_generated_goadesign_goagen_mito_api_pb);
@@ -55,6 +59,839 @@ __injectivelabs_indexer_proto_ts_v2_generated_injective_insurance_rpc_pb = requi
55
59
  let __injectivelabs_indexer_proto_ts_v2_generated_injective_insurance_rpc_pb_client = require("@injectivelabs/indexer-proto-ts-v2/generated/injective_insurance_rpc_pb.client");
56
60
  let eventemitter3 = require("eventemitter3");
57
61
 
62
+ //#region src/client/indexer/ws/types.ts
63
+ /**
64
+ * WebSocket connection states
65
+ */
66
+ const WsState = {
67
+ Idle: "idle",
68
+ Connecting: "connecting",
69
+ Connected: "connected",
70
+ Reconnecting: "reconnecting",
71
+ Disconnected: "disconnected"
72
+ };
73
+ /**
74
+ * Reasons for WebSocket disconnection
75
+ */
76
+ const WsDisconnectReason = {
77
+ UserStopped: "user-stopped",
78
+ ConnectionFailed: "connection-failed",
79
+ ConnectionTimeout: "connection-timeout",
80
+ ServerClosed: "server-closed",
81
+ MaxRetries: "max-retries",
82
+ Error: "error"
83
+ };
84
+ /**
85
+ * Default reconnection configuration
86
+ */
87
+ const DEFAULT_RECONNECT_CONFIG = {
88
+ enabled: true,
89
+ maxAttempts: 10,
90
+ initialDelayMs: 1e3,
91
+ maxDelayMs: 3e4,
92
+ backoffMultiplier: 2
93
+ };
94
+ /**
95
+ * Default transport configuration values
96
+ */
97
+ const DEFAULT_TRANSPORT_CONFIG = {
98
+ protocol: "grpc-ws",
99
+ connectionTimeoutMs: 1e4
100
+ };
101
+ /**
102
+ * gRPC service paths for RFQ streams
103
+ */
104
+ const RFQ_GRPC_PATHS = {
105
+ TakerStream: "/injective_rfqrpc.InjectiveRFQRPC/TakerStream",
106
+ MakerStream: "/injective_rfqrpc.InjectiveRFQRPC/MakerStream"
107
+ };
108
+ var GrpcDecodeError = class extends Error {
109
+ constructor(message) {
110
+ super(message);
111
+ this.name = "GrpcDecodeError";
112
+ }
113
+ };
114
+
115
+ //#endregion
116
+ //#region src/client/indexer/ws/GrpcWebSocketCodec.ts
117
+ const COMPRESSION_FLAG_NONE = 0;
118
+ const COMPRESSION_FLAG_TRAILER = 128;
119
+ const GRPC_HEADER_SIZE = 5;
120
+ /**
121
+ * Codec for encoding/decoding gRPC-over-WebSocket messages for RFQ streams.
122
+ */
123
+ const GrpcWebSocketCodec = {
124
+ encodeTakerPing() {
125
+ const message = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js.TakerStreamStreamingRequest.create({ messageType: "ping" });
126
+ return encodeGrpcFrame(__injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js.TakerStreamStreamingRequest.toBinary(message));
127
+ },
128
+ encodeTakerRequest(input) {
129
+ const request = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js.RFQRequestType.create({
130
+ rfqId: BigInt(input.rfqId),
131
+ marketId: input.marketId,
132
+ direction: input.direction,
133
+ margin: input.margin,
134
+ quantity: input.quantity,
135
+ worstPrice: input.worstPrice,
136
+ requestAddress: input.requestAddress,
137
+ expiry: BigInt(input.expiry),
138
+ status: input.status,
139
+ createdAt: 0n,
140
+ updatedAt: 0n,
141
+ transactionTime: 0n,
142
+ height: 0n
143
+ });
144
+ const message = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js.TakerStreamStreamingRequest.create({
145
+ messageType: "request",
146
+ request
147
+ });
148
+ return encodeGrpcFrame(__injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js.TakerStreamStreamingRequest.toBinary(message));
149
+ },
150
+ decodeTakerResponse(data) {
151
+ return decodeGrpcFrame(data instanceof ArrayBuffer ? new Uint8Array(data) : data, __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js.TakerStreamResponse);
152
+ },
153
+ encodeMakerPing() {
154
+ const message = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js.MakerStreamStreamingRequest.create({ messageType: "ping" });
155
+ return encodeGrpcFrame(__injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js.MakerStreamStreamingRequest.toBinary(message));
156
+ },
157
+ encodeMakerQuote(input) {
158
+ const quote = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js.RFQQuoteType.create({
159
+ chainId: input.chainId,
160
+ contractAddress: input.contractAddress,
161
+ marketId: input.marketId,
162
+ rfqId: BigInt(input.rfqId),
163
+ takerDirection: input.takerDirection,
164
+ margin: input.margin,
165
+ quantity: input.quantity,
166
+ price: input.price,
167
+ expiry: BigInt(input.expiry),
168
+ maker: input.maker,
169
+ taker: input.taker,
170
+ signature: input.signature,
171
+ status: input.status,
172
+ createdAt: 0n,
173
+ updatedAt: 0n,
174
+ height: 0n,
175
+ eventTime: 0n,
176
+ transactionTime: 0n
177
+ });
178
+ const message = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js.MakerStreamStreamingRequest.create({
179
+ messageType: "quote",
180
+ quote
181
+ });
182
+ return encodeGrpcFrame(__injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js.MakerStreamStreamingRequest.toBinary(message));
183
+ },
184
+ decodeMakerResponse(data) {
185
+ return decodeGrpcFrame(data instanceof ArrayBuffer ? new Uint8Array(data) : data, __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_js.MakerStreamResponse);
186
+ },
187
+ isTrailerFrame(data) {
188
+ const bytes = data instanceof ArrayBuffer ? new Uint8Array(data) : data;
189
+ if (bytes.length < 1) return false;
190
+ return (bytes[0] & COMPRESSION_FLAG_TRAILER) !== 0;
191
+ },
192
+ getPayloadLength(data) {
193
+ const bytes = data instanceof ArrayBuffer ? new Uint8Array(data) : data;
194
+ if (bytes.length < GRPC_HEADER_SIZE) return -1;
195
+ return bytes[1] << 24 | bytes[2] << 16 | bytes[3] << 8 | bytes[4];
196
+ },
197
+ isCompleteFrame(data) {
198
+ const bytes = data instanceof ArrayBuffer ? new Uint8Array(data) : data;
199
+ if (bytes.length < GRPC_HEADER_SIZE) return false;
200
+ const payloadLength = this.getPayloadLength(bytes);
201
+ return bytes.length >= GRPC_HEADER_SIZE + payloadLength;
202
+ },
203
+ HEADER_SIZE: GRPC_HEADER_SIZE
204
+ };
205
+ function encodeGrpcFrame(payload) {
206
+ const frame = new Uint8Array(GRPC_HEADER_SIZE + payload.length);
207
+ frame[0] = COMPRESSION_FLAG_NONE;
208
+ new DataView(frame.buffer).setUint32(1, payload.length, false);
209
+ frame.set(payload, GRPC_HEADER_SIZE);
210
+ return frame;
211
+ }
212
+ function decodeGrpcFrame(data, messageType) {
213
+ if (data.byteLength < GRPC_HEADER_SIZE) throw new GrpcDecodeError(`Frame too short: expected at least ${GRPC_HEADER_SIZE} bytes, got ${data.byteLength}`);
214
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
215
+ const compressionFlag = view.getUint8(0);
216
+ const isTrailer = (compressionFlag & COMPRESSION_FLAG_TRAILER) !== 0;
217
+ const totalLength = GRPC_HEADER_SIZE + view.getUint32(1, false);
218
+ if (data.byteLength < totalLength) throw new GrpcDecodeError(`Incomplete frame: expected ${totalLength} bytes, got ${data.byteLength}`);
219
+ const payload = data.subarray(GRPC_HEADER_SIZE, totalLength);
220
+ if (isTrailer) return {
221
+ isTrailer: true,
222
+ payload
223
+ };
224
+ if (compressionFlag !== COMPRESSION_FLAG_NONE) throw new GrpcDecodeError(`Unsupported compression flag: 0x${compressionFlag.toString(16)}`);
225
+ try {
226
+ return {
227
+ isTrailer: false,
228
+ message: messageType.fromBinary(payload),
229
+ payload
230
+ };
231
+ } catch (error) {
232
+ throw new GrpcDecodeError(`Failed to decode protobuf message: ${error instanceof Error ? error.message : String(error)}`);
233
+ }
234
+ }
235
+
236
+ //#endregion
237
+ //#region src/client/indexer/ws/GrpcWebSocketTransport.ts
238
+ /**
239
+ * Low-level gRPC-over-WebSocket transport layer.
240
+ *
241
+ * Handles:
242
+ * - WebSocket connection lifecycle
243
+ * - Reconnection with exponential backoff
244
+ * - State management
245
+ * - Binary message framing
246
+ *
247
+ * This class does NOT handle protobuf encoding/decoding - use GrpcWebSocketCodec for that.
248
+ */
249
+ var GrpcWebSocketTransport = class {
250
+ constructor(config) {
251
+ require_defineProperty._defineProperty(this, "config", void 0);
252
+ require_defineProperty._defineProperty(this, "ws", null);
253
+ require_defineProperty._defineProperty(this, "state", WsState.Idle);
254
+ require_defineProperty._defineProperty(this, "connectionTimeout", null);
255
+ require_defineProperty._defineProperty(this, "reconnectTimeout", null);
256
+ require_defineProperty._defineProperty(this, "reconnectAttempts", 0);
257
+ require_defineProperty._defineProperty(this, "currentReconnectDelay", void 0);
258
+ require_defineProperty._defineProperty(this, "isDestroyed", false);
259
+ require_defineProperty._defineProperty(this, "hasConnectedOnce", false);
260
+ require_defineProperty._defineProperty(this, "listeners", /* @__PURE__ */ new Map());
261
+ this.config = this.resolveConfig(config);
262
+ this.currentReconnectDelay = this.config.reconnect.initialDelayMs;
263
+ }
264
+ getState() {
265
+ return this.state;
266
+ }
267
+ /**
268
+ * Check if the transport is connected and ready to send
269
+ */
270
+ isConnected() {
271
+ var _this$ws;
272
+ return this.state === WsState.Connected && ((_this$ws = this.ws) === null || _this$ws === void 0 ? void 0 : _this$ws.readyState) === 1;
273
+ }
274
+ async connect() {
275
+ if (this.isDestroyed) throw new Error("Transport has been destroyed");
276
+ if (this.state === WsState.Connected || this.state === WsState.Connecting) return;
277
+ try {
278
+ await this.createConnection();
279
+ } catch (error) {
280
+ const reason = WsDisconnectReason.ConnectionFailed;
281
+ if (this.shouldAttemptReconnect(reason)) {
282
+ this.setState(WsState.Reconnecting);
283
+ this.emit("disconnect", {
284
+ reason,
285
+ willRetry: true
286
+ });
287
+ this.scheduleReconnect();
288
+ } else this.cleanup(reason, false);
289
+ throw error;
290
+ }
291
+ }
292
+ disconnect() {
293
+ this.cleanup(WsDisconnectReason.UserStopped, false);
294
+ }
295
+ destroy() {
296
+ this.isDestroyed = true;
297
+ this.cleanup(WsDisconnectReason.UserStopped, false);
298
+ this.listeners.clear();
299
+ }
300
+ send(data) {
301
+ if (!this.isConnected()) throw new Error("Cannot send: WebSocket is not connected");
302
+ this.ws.send(data);
303
+ }
304
+ on(event, listener) {
305
+ if (!this.listeners.has(event)) this.listeners.set(event, /* @__PURE__ */ new Set());
306
+ this.listeners.get(event).add(listener);
307
+ }
308
+ off(event, listener) {
309
+ var _this$listeners$get;
310
+ (_this$listeners$get = this.listeners.get(event)) === null || _this$listeners$get === void 0 || _this$listeners$get.delete(listener);
311
+ }
312
+ emit(event, data) {
313
+ var _this$listeners$get2;
314
+ (_this$listeners$get2 = this.listeners.get(event)) === null || _this$listeners$get2 === void 0 || _this$listeners$get2.forEach((listener) => {
315
+ try {
316
+ listener(data);
317
+ } catch (error) {
318
+ console.error(`Error in ${event} listener:`, error);
319
+ }
320
+ });
321
+ }
322
+ async createConnection() {
323
+ return new Promise(async (resolve, reject) => {
324
+ const url = this.config.url;
325
+ this.connectionTimeout = setTimeout(() => {
326
+ this.handleConnectionTimeout(reject);
327
+ }, this.config.connectionTimeoutMs);
328
+ try {
329
+ this.ws = await this.createWebSocket(url, this.config.protocol, this.config.metadata);
330
+ if ("binaryType" in this.ws) this.ws.binaryType = "arraybuffer";
331
+ this.ws.onopen = () => {
332
+ this.handleOpen(resolve);
333
+ };
334
+ this.ws.onclose = (event) => {
335
+ this.handleClose(event, reject);
336
+ };
337
+ this.ws.onerror = (error) => {
338
+ this.handleError(error, reject);
339
+ };
340
+ this.ws.onmessage = (event) => {
341
+ this.handleMessage(event);
342
+ };
343
+ } catch (error) {
344
+ this.clearConnectionTimeout();
345
+ reject(error);
346
+ }
347
+ });
348
+ }
349
+ async createWebSocket(url, protocol, metadata) {
350
+ if (typeof WebSocket !== "undefined") {
351
+ const urlWithMetadata = this.addMetadataToUrl(url, metadata);
352
+ return new WebSocket(urlWithMetadata, protocol);
353
+ }
354
+ return new (await (import("ws"))).default(url, protocol, { headers: metadata || {} });
355
+ }
356
+ addMetadataToUrl(url, metadata) {
357
+ if (!metadata || Object.keys(metadata).length === 0) return url;
358
+ const params = new URLSearchParams(metadata);
359
+ return `${url}${url.includes("?") ? "&" : "?"}${params.toString()}`;
360
+ }
361
+ /**
362
+ * Handle WebSocket open event
363
+ */
364
+ handleOpen(resolve) {
365
+ this.clearConnectionTimeout();
366
+ this.setState(WsState.Connected);
367
+ this.reconnectAttempts = 0;
368
+ this.currentReconnectDelay = this.config.reconnect.initialDelayMs;
369
+ const isReconnect = this.hasConnectedOnce;
370
+ this.hasConnectedOnce = true;
371
+ this.emit("connect", { isReconnect });
372
+ resolve();
373
+ }
374
+ handleClose(event, reject) {
375
+ if (this.state === WsState.Connecting) {
376
+ this.clearConnectionTimeout();
377
+ if (reject) reject(/* @__PURE__ */ new Error(`WebSocket closed before open: code=${event.code}, reason=${event.reason}`));
378
+ return;
379
+ }
380
+ if (this.state === WsState.Disconnected || this.isDestroyed) return;
381
+ const reason = this.determineDisconnectReason(event);
382
+ if (this.shouldAttemptReconnect(reason)) {
383
+ this.setState(WsState.Reconnecting);
384
+ this.scheduleReconnect();
385
+ this.emit("disconnect", {
386
+ reason,
387
+ willRetry: true
388
+ });
389
+ } else this.cleanup(reason, false);
390
+ }
391
+ handleError(error, reject) {
392
+ const errorObj = error instanceof Error ? error : /* @__PURE__ */ new Error("WebSocket error");
393
+ this.emit("error", errorObj);
394
+ if (this.state === WsState.Connecting && reject) {
395
+ this.clearConnectionTimeout();
396
+ reject(errorObj);
397
+ }
398
+ }
399
+ handleMessage(event) {
400
+ const data = event.data;
401
+ if (data instanceof ArrayBuffer) this.emit("message", data);
402
+ else if (typeof Blob !== "undefined" && data instanceof Blob) data.arrayBuffer().then((buffer) => {
403
+ this.emit("message", buffer);
404
+ });
405
+ else if (typeof Buffer !== "undefined" && Buffer.isBuffer(data)) {
406
+ const buffer = new Uint8Array(data).buffer;
407
+ this.emit("message", buffer);
408
+ }
409
+ }
410
+ handleConnectionTimeout(reject) {
411
+ var _this$ws2;
412
+ (_this$ws2 = this.ws) === null || _this$ws2 === void 0 || _this$ws2.close();
413
+ this.ws = null;
414
+ reject(/* @__PURE__ */ new Error("Connection timeout"));
415
+ if (this.shouldAttemptReconnect(WsDisconnectReason.ConnectionTimeout)) {
416
+ this.setState(WsState.Reconnecting);
417
+ this.scheduleReconnect();
418
+ } else this.cleanup(WsDisconnectReason.ConnectionTimeout, false);
419
+ }
420
+ clearConnectionTimeout() {
421
+ if (this.connectionTimeout) {
422
+ clearTimeout(this.connectionTimeout);
423
+ this.connectionTimeout = null;
424
+ }
425
+ }
426
+ clearReconnectTimeout() {
427
+ if (this.reconnectTimeout) {
428
+ clearTimeout(this.reconnectTimeout);
429
+ this.reconnectTimeout = null;
430
+ }
431
+ }
432
+ scheduleReconnect() {
433
+ this.clearReconnectTimeout();
434
+ this.reconnectTimeout = setTimeout(async () => {
435
+ if (this.isDestroyed || this.state === WsState.Disconnected) return;
436
+ this.reconnectAttempts++;
437
+ try {
438
+ await this.createConnection();
439
+ } catch (_unused) {}
440
+ this.currentReconnectDelay = Math.min(this.currentReconnectDelay * this.config.reconnect.backoffMultiplier, this.config.reconnect.maxDelayMs);
441
+ }, this.currentReconnectDelay);
442
+ }
443
+ shouldAttemptReconnect(reason) {
444
+ if (reason === WsDisconnectReason.UserStopped) return false;
445
+ if (!this.config.reconnect.enabled) return false;
446
+ if (this.config.reconnect.maxAttempts > 0 && this.reconnectAttempts >= this.config.reconnect.maxAttempts) return false;
447
+ return true;
448
+ }
449
+ determineDisconnectReason(event) {
450
+ if (event.code === 1e3) return WsDisconnectReason.ServerClosed;
451
+ if (event.code === 1001) return WsDisconnectReason.ServerClosed;
452
+ if (event.code === 1006) return WsDisconnectReason.ConnectionFailed;
453
+ return WsDisconnectReason.Error;
454
+ }
455
+ cleanup(reason, willRetry) {
456
+ this.clearConnectionTimeout();
457
+ this.clearReconnectTimeout();
458
+ if (this.ws) {
459
+ this.ws.onopen = null;
460
+ this.ws.onclose = null;
461
+ this.ws.onerror = null;
462
+ this.ws.onmessage = null;
463
+ if (this.ws.readyState === 0 || this.ws.readyState === 1) this.ws.close();
464
+ this.ws = null;
465
+ }
466
+ this.setState(WsState.Disconnected);
467
+ this.emit("disconnect", {
468
+ reason,
469
+ willRetry
470
+ });
471
+ }
472
+ setState(newState) {
473
+ if (this.state === newState) return;
474
+ const from = this.state;
475
+ this.state = newState;
476
+ this.emit("state_change", {
477
+ from,
478
+ to: newState
479
+ });
480
+ }
481
+ resolveConfig(config) {
482
+ var _config$protocol, _config$connectionTim;
483
+ const reconnect = {
484
+ ...DEFAULT_RECONNECT_CONFIG,
485
+ ...config.reconnect
486
+ };
487
+ return {
488
+ url: config.url,
489
+ protocol: (_config$protocol = config.protocol) !== null && _config$protocol !== void 0 ? _config$protocol : DEFAULT_TRANSPORT_CONFIG.protocol,
490
+ connectionTimeoutMs: (_config$connectionTim = config.connectionTimeoutMs) !== null && _config$connectionTim !== void 0 ? _config$connectionTim : DEFAULT_TRANSPORT_CONFIG.connectionTimeoutMs,
491
+ reconnect,
492
+ metadata: config.metadata
493
+ };
494
+ }
495
+ };
496
+
497
+ //#endregion
498
+ //#region src/client/indexer/transformers/IndexerGrpcRfqTransformer.ts
499
+ /**
500
+ * @category Indexer Grpc Transformer
501
+ */
502
+ var IndexerGrpcRfqTransformer = class IndexerGrpcRfqTransformer {
503
+ static grpcRfqRequestToRfqRequest(grpcRequest) {
504
+ return {
505
+ margin: grpcRequest.margin,
506
+ status: grpcRequest.status,
507
+ marketId: grpcRequest.marketId,
508
+ quantity: grpcRequest.quantity,
509
+ direction: grpcRequest.direction,
510
+ worstPrice: grpcRequest.worstPrice,
511
+ expiry: Number(grpcRequest.expiry),
512
+ height: Number(grpcRequest.height),
513
+ rfqId: grpcRequest.rfqId.toString(),
514
+ createdAt: Number(grpcRequest.createdAt),
515
+ updatedAt: Number(grpcRequest.updatedAt),
516
+ requestAddress: grpcRequest.requestAddress,
517
+ transactionTime: Number(grpcRequest.transactionTime)
518
+ };
519
+ }
520
+ static grpcRfqQuoteToRfqQuote(grpcQuote) {
521
+ return {
522
+ price: grpcQuote.price,
523
+ maker: grpcQuote.maker,
524
+ taker: grpcQuote.taker,
525
+ margin: grpcQuote.margin,
526
+ status: grpcQuote.status,
527
+ chainId: grpcQuote.chainId,
528
+ marketId: grpcQuote.marketId,
529
+ quantity: grpcQuote.quantity,
530
+ signature: grpcQuote.signature,
531
+ expiry: Number(grpcQuote.expiry),
532
+ height: Number(grpcQuote.height),
533
+ rfqId: grpcQuote.rfqId.toString(),
534
+ createdAt: Number(grpcQuote.createdAt),
535
+ updatedAt: Number(grpcQuote.updatedAt),
536
+ eventTime: Number(grpcQuote.eventTime),
537
+ takerDirection: grpcQuote.takerDirection,
538
+ contractAddress: grpcQuote.contractAddress,
539
+ transactionTime: Number(grpcQuote.transactionTime)
540
+ };
541
+ }
542
+ static grpcRfqSettlementToRfqSettlement(grpcSettlement) {
543
+ return {
544
+ taker: grpcSettlement.taker,
545
+ margin: grpcSettlement.margin,
546
+ marketId: grpcSettlement.marketId,
547
+ quantity: grpcSettlement.quantity,
548
+ direction: grpcSettlement.direction,
549
+ worstPrice: grpcSettlement.worstPrice,
550
+ height: Number(grpcSettlement.height),
551
+ rfqId: grpcSettlement.rfqId.toString(),
552
+ createdAt: Number(grpcSettlement.createdAt),
553
+ updatedAt: Number(grpcSettlement.updatedAt),
554
+ eventTime: Number(grpcSettlement.eventTime),
555
+ fallbackMargin: grpcSettlement.fallbackMargin,
556
+ fallbackQuantity: grpcSettlement.fallbackQuantity,
557
+ transactionTime: Number(grpcSettlement.transactionTime)
558
+ };
559
+ }
560
+ static openRequestsResponseToOpenRequests(response) {
561
+ return { requests: response.requests.map(IndexerGrpcRfqTransformer.grpcRfqRequestToRfqRequest) };
562
+ }
563
+ static pendingQuotesResponseToPendingQuotes(response) {
564
+ return { quotes: response.quotes.map(IndexerGrpcRfqTransformer.grpcRfqQuoteToRfqQuote) };
565
+ }
566
+ static listSettlementsResponseToSettlements(response) {
567
+ return {
568
+ settlements: response.settlements.map(IndexerGrpcRfqTransformer.grpcRfqSettlementToRfqSettlement),
569
+ total: Number(response.total)
570
+ };
571
+ }
572
+ };
573
+
574
+ //#endregion
575
+ //#region src/client/indexer/ws/rfq/IndexerWsTakerStream.ts
576
+ var IndexerWsTakerStream = class {
577
+ constructor(config) {
578
+ var _config$pingIntervalM;
579
+ require_defineProperty._defineProperty(this, "transport", void 0);
580
+ require_defineProperty._defineProperty(this, "pingInterval", null);
581
+ require_defineProperty._defineProperty(this, "listeners", /* @__PURE__ */ new Map());
582
+ require_defineProperty._defineProperty(this, "isDestroyed", false);
583
+ require_defineProperty._defineProperty(this, "pingIntervalMs", void 0);
584
+ const fullUrl = this.buildUrl(config.url, RFQ_GRPC_PATHS.TakerStream);
585
+ this.pingIntervalMs = (_config$pingIntervalM = config.pingIntervalMs) !== null && _config$pingIntervalM !== void 0 ? _config$pingIntervalM : 1e3;
586
+ this.transport = new GrpcWebSocketTransport({
587
+ url: fullUrl,
588
+ connectionTimeoutMs: config.connectionTimeoutMs,
589
+ reconnect: config.reconnect,
590
+ metadata: { request_address: config.requestAddress }
591
+ });
592
+ this.setupTransportHandlers();
593
+ }
594
+ getState() {
595
+ return this.transport.getState();
596
+ }
597
+ isConnected() {
598
+ return this.transport.isConnected();
599
+ }
600
+ async connect() {
601
+ if (this.isDestroyed) throw new Error("Stream has been destroyed");
602
+ await this.transport.connect();
603
+ }
604
+ disconnect() {
605
+ this.stopPingInterval();
606
+ this.transport.disconnect();
607
+ }
608
+ destroy() {
609
+ this.isDestroyed = true;
610
+ this.stopPingInterval();
611
+ this.transport.destroy();
612
+ this.listeners.clear();
613
+ }
614
+ sendRequest(request) {
615
+ if (!this.isConnected()) throw new Error("Cannot send request: stream is not connected");
616
+ const encoded = GrpcWebSocketCodec.encodeTakerRequest(request);
617
+ this.transport.send(encoded);
618
+ }
619
+ on(event, listener) {
620
+ if (!this.listeners.has(event)) this.listeners.set(event, /* @__PURE__ */ new Set());
621
+ this.listeners.get(event).add(listener);
622
+ }
623
+ off(event, listener) {
624
+ var _this$listeners$get;
625
+ (_this$listeners$get = this.listeners.get(event)) === null || _this$listeners$get === void 0 || _this$listeners$get.delete(listener);
626
+ }
627
+ emit(event, data) {
628
+ var _this$listeners$get2;
629
+ (_this$listeners$get2 = this.listeners.get(event)) === null || _this$listeners$get2 === void 0 || _this$listeners$get2.forEach((listener) => {
630
+ try {
631
+ listener(data);
632
+ } catch (error) {
633
+ console.error(`Error in ${event} listener:`, error);
634
+ }
635
+ });
636
+ }
637
+ setupTransportHandlers() {
638
+ this.transport.on("connect", ({ isReconnect }) => {
639
+ this.startPingInterval();
640
+ this.emit("connect", { isReconnect });
641
+ });
642
+ this.transport.on("disconnect", ({ reason, willRetry }) => {
643
+ this.stopPingInterval();
644
+ this.emit("disconnect", {
645
+ reason,
646
+ willRetry
647
+ });
648
+ });
649
+ this.transport.on("state_change", ({ from, to }) => {
650
+ this.emit("state_change", {
651
+ from,
652
+ to
653
+ });
654
+ });
655
+ this.transport.on("message", (data) => {
656
+ this.handleMessage(data);
657
+ });
658
+ this.transport.on("error", (error) => {
659
+ this.emit("error", {
660
+ code: "TRANSPORT_ERROR",
661
+ message: error.message
662
+ });
663
+ });
664
+ }
665
+ handleMessage(data) {
666
+ try {
667
+ const frame = GrpcWebSocketCodec.decodeTakerResponse(data);
668
+ if (frame.isTrailer) return;
669
+ const response = frame.message;
670
+ if (!response) return;
671
+ switch (response.messageType) {
672
+ case "pong":
673
+ this.emit("pong", void 0);
674
+ break;
675
+ case "quote":
676
+ if (response.quote) {
677
+ const quote = IndexerGrpcRfqTransformer.grpcRfqQuoteToRfqQuote(response.quote);
678
+ this.emit("quote", { quote });
679
+ }
680
+ break;
681
+ case "request_ack":
682
+ if (response.requestAck) {
683
+ const ack = {
684
+ rfqId: response.requestAck.rfqId.toString(),
685
+ status: response.requestAck.status
686
+ };
687
+ this.emit("request_ack", ack);
688
+ }
689
+ break;
690
+ case "error":
691
+ if (response.error) {
692
+ const error = {
693
+ code: response.error.code,
694
+ message: response.error.message
695
+ };
696
+ this.emit("error", error);
697
+ }
698
+ break;
699
+ default: console.warn(`Unknown taker stream message type: ${response.messageType}`);
700
+ }
701
+ } catch (error) {
702
+ if (error instanceof GrpcDecodeError) this.emit("error", {
703
+ code: "DECODE_ERROR",
704
+ message: error.message
705
+ });
706
+ else this.emit("error", {
707
+ code: "UNKNOWN_ERROR",
708
+ message: error instanceof Error ? error.message : String(error)
709
+ });
710
+ }
711
+ }
712
+ startPingInterval() {
713
+ this.stopPingInterval();
714
+ this.pingInterval = setInterval(() => {
715
+ if (this.isConnected()) try {
716
+ const pingMessage = GrpcWebSocketCodec.encodeTakerPing();
717
+ this.transport.send(pingMessage);
718
+ } catch (error) {
719
+ console.error("Failed to send ping:", error);
720
+ }
721
+ }, this.pingIntervalMs);
722
+ }
723
+ stopPingInterval() {
724
+ if (this.pingInterval) {
725
+ clearInterval(this.pingInterval);
726
+ this.pingInterval = null;
727
+ }
728
+ }
729
+ buildUrl(baseUrl, grpcPath) {
730
+ return `${baseUrl.replace(/\/$/, "")}${grpcPath.startsWith("/") ? grpcPath : `/${grpcPath}`}`;
731
+ }
732
+ };
733
+
734
+ //#endregion
735
+ //#region src/client/indexer/ws/rfq/IndexerWsMakerStream.ts
736
+ var IndexerWsMakerStream = class {
737
+ constructor(config) {
738
+ var _config$pingIntervalM;
739
+ require_defineProperty._defineProperty(this, "transport", void 0);
740
+ require_defineProperty._defineProperty(this, "pingInterval", null);
741
+ require_defineProperty._defineProperty(this, "listeners", /* @__PURE__ */ new Map());
742
+ require_defineProperty._defineProperty(this, "isDestroyed", false);
743
+ require_defineProperty._defineProperty(this, "pingIntervalMs", void 0);
744
+ const fullUrl = this.buildUrl(config.url, RFQ_GRPC_PATHS.MakerStream);
745
+ this.pingIntervalMs = (_config$pingIntervalM = config.pingIntervalMs) !== null && _config$pingIntervalM !== void 0 ? _config$pingIntervalM : 1e3;
746
+ this.transport = new GrpcWebSocketTransport({
747
+ url: fullUrl,
748
+ connectionTimeoutMs: config.connectionTimeoutMs,
749
+ reconnect: config.reconnect,
750
+ metadata: { maker_address: config.makerAddress }
751
+ });
752
+ this.setupTransportHandlers();
753
+ }
754
+ getState() {
755
+ return this.transport.getState();
756
+ }
757
+ isConnected() {
758
+ return this.transport.isConnected();
759
+ }
760
+ async connect() {
761
+ if (this.isDestroyed) throw new Error("Stream has been destroyed");
762
+ await this.transport.connect();
763
+ }
764
+ disconnect() {
765
+ this.stopPingInterval();
766
+ this.transport.disconnect();
767
+ }
768
+ destroy() {
769
+ this.isDestroyed = true;
770
+ this.stopPingInterval();
771
+ this.transport.destroy();
772
+ this.listeners.clear();
773
+ }
774
+ sendQuote(quote) {
775
+ if (!this.isConnected()) throw new Error("Cannot send quote: stream is not connected");
776
+ const encoded = GrpcWebSocketCodec.encodeMakerQuote(quote);
777
+ this.transport.send(encoded);
778
+ }
779
+ on(event, listener) {
780
+ if (!this.listeners.has(event)) this.listeners.set(event, /* @__PURE__ */ new Set());
781
+ this.listeners.get(event).add(listener);
782
+ }
783
+ off(event, listener) {
784
+ var _this$listeners$get;
785
+ (_this$listeners$get = this.listeners.get(event)) === null || _this$listeners$get === void 0 || _this$listeners$get.delete(listener);
786
+ }
787
+ emit(event, data) {
788
+ var _this$listeners$get2;
789
+ (_this$listeners$get2 = this.listeners.get(event)) === null || _this$listeners$get2 === void 0 || _this$listeners$get2.forEach((listener) => {
790
+ try {
791
+ listener(data);
792
+ } catch (error) {
793
+ console.error(`Error in ${event} listener:`, error);
794
+ }
795
+ });
796
+ }
797
+ setupTransportHandlers() {
798
+ this.transport.on("connect", ({ isReconnect }) => {
799
+ this.startPingInterval();
800
+ this.emit("connect", { isReconnect });
801
+ });
802
+ this.transport.on("disconnect", ({ reason, willRetry }) => {
803
+ this.stopPingInterval();
804
+ this.emit("disconnect", {
805
+ reason,
806
+ willRetry
807
+ });
808
+ });
809
+ this.transport.on("state_change", ({ from, to }) => {
810
+ this.emit("state_change", {
811
+ from,
812
+ to
813
+ });
814
+ });
815
+ this.transport.on("message", (data) => {
816
+ this.handleMessage(data);
817
+ });
818
+ this.transport.on("error", (error) => {
819
+ this.emit("error", {
820
+ code: "TRANSPORT_ERROR",
821
+ message: error.message
822
+ });
823
+ });
824
+ }
825
+ handleMessage(data) {
826
+ try {
827
+ const frame = GrpcWebSocketCodec.decodeMakerResponse(data);
828
+ if (frame.isTrailer) return;
829
+ const response = frame.message;
830
+ if (!response) return;
831
+ switch (response.messageType) {
832
+ case "pong":
833
+ this.emit("pong", void 0);
834
+ break;
835
+ case "request":
836
+ if (response.request) {
837
+ const request = IndexerGrpcRfqTransformer.grpcRfqRequestToRfqRequest(response.request);
838
+ this.emit("request", { request });
839
+ }
840
+ break;
841
+ case "quote_ack":
842
+ if (response.quoteAck) {
843
+ const ack = {
844
+ rfqId: response.quoteAck.rfqId.toString(),
845
+ status: response.quoteAck.status
846
+ };
847
+ this.emit("quote_ack", ack);
848
+ }
849
+ break;
850
+ case "error":
851
+ if (response.error) {
852
+ const error = {
853
+ code: response.error.code,
854
+ message: response.error.message
855
+ };
856
+ this.emit("error", error);
857
+ }
858
+ break;
859
+ default: console.warn(`Unknown maker stream message type: ${response.messageType}`);
860
+ }
861
+ } catch (error) {
862
+ if (error instanceof GrpcDecodeError) this.emit("error", {
863
+ code: "DECODE_ERROR",
864
+ message: error.message
865
+ });
866
+ else this.emit("error", {
867
+ code: "UNKNOWN_ERROR",
868
+ message: error instanceof Error ? error.message : String(error)
869
+ });
870
+ }
871
+ }
872
+ startPingInterval() {
873
+ this.stopPingInterval();
874
+ this.pingInterval = setInterval(() => {
875
+ if (this.isConnected()) try {
876
+ const pingMessage = GrpcWebSocketCodec.encodeMakerPing();
877
+ this.transport.send(pingMessage);
878
+ } catch (error) {
879
+ console.error("Failed to send ping:", error);
880
+ }
881
+ }, this.pingIntervalMs);
882
+ }
883
+ stopPingInterval() {
884
+ if (this.pingInterval) {
885
+ clearInterval(this.pingInterval);
886
+ this.pingInterval = null;
887
+ }
888
+ }
889
+ buildUrl(baseUrl, grpcPath) {
890
+ return `${baseUrl.replace(/\/$/, "")}${grpcPath.startsWith("/") ? grpcPath : `/${grpcPath}`}`;
891
+ }
892
+ };
893
+
894
+ //#endregion
58
895
  //#region src/client/indexer/transformers/IndexerCommonTransformer.ts
59
896
  var IndexerCommonTransformer = class {
60
897
  static grpcCoinToCoin(coin) {
@@ -852,6 +1689,25 @@ var IndexerCampaignTransformer = class IndexerCampaignTransformer {
852
1689
  }
853
1690
  };
854
1691
 
1692
+ //#endregion
1693
+ //#region src/client/indexer/transformers/IndexerRfqStreamTransformer.ts
1694
+ /**
1695
+ * @category Indexer Stream Transformer
1696
+ */
1697
+ var IndexerRfqStreamTransformer = class {};
1698
+ require_defineProperty._defineProperty(IndexerRfqStreamTransformer, "requestStreamCallback", (response) => {
1699
+ const request = response.request;
1700
+ return { request: request ? IndexerGrpcRfqTransformer.grpcRfqRequestToRfqRequest(request) : void 0 };
1701
+ });
1702
+ require_defineProperty._defineProperty(IndexerRfqStreamTransformer, "quoteStreamCallback", (response) => {
1703
+ const quote = response.quote;
1704
+ return { quote: quote ? IndexerGrpcRfqTransformer.grpcRfqQuoteToRfqQuote(quote) : void 0 };
1705
+ });
1706
+ require_defineProperty._defineProperty(IndexerRfqStreamTransformer, "settlementStreamCallback", (response) => {
1707
+ const settlement = response.settlement;
1708
+ return { settlement: settlement ? IndexerGrpcRfqTransformer.grpcRfqSettlementToRfqSettlement(settlement) : void 0 };
1709
+ });
1710
+
855
1711
  //#endregion
856
1712
  //#region src/client/indexer/transformers/IndexerGrpcOracleTransformer.ts
857
1713
  var IndexerGrpcOracleTransformer = class IndexerGrpcOracleTransformer {
@@ -2841,6 +3697,73 @@ require_defineProperty._defineProperty(IndexerAccountPortfolioStreamTransformer,
2841
3697
  };
2842
3698
  });
2843
3699
 
3700
+ //#endregion
3701
+ //#region src/client/indexer/grpc/IndexerGrpcRfqApi.ts
3702
+ /**
3703
+ * @category Indexer Grpc API
3704
+ */
3705
+ var IndexerGrpcRFQApi = class extends require_BaseIndexerGrpcConsumer.BaseIndexerGrpcConsumer {
3706
+ constructor(..._args) {
3707
+ super(..._args);
3708
+ require_defineProperty._defineProperty(this, "module", require_IndexerGrpcWeb3GwApi.IndexerModule.RFQ);
3709
+ }
3710
+ get client() {
3711
+ return this.initClient(__injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_client.InjectiveRFQRPCClient);
3712
+ }
3713
+ async submitRequest({ rfqId, margin, expiry, status, height, marketId, quantity, direction, createdAt, updatedAt, worstPrice, requestAddress, transactionTime }) {
3714
+ const request = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb.RFQRequestType.create();
3715
+ if (rfqId !== void 0) request.rfqId = rfqId;
3716
+ if (marketId) request.marketId = marketId;
3717
+ if (direction) request.direction = direction;
3718
+ if (margin) request.margin = margin;
3719
+ if (quantity) request.quantity = quantity;
3720
+ if (worstPrice) request.worstPrice = worstPrice;
3721
+ if (requestAddress) request.requestAddress = requestAddress;
3722
+ if (expiry) request.expiry = expiry;
3723
+ if (status) request.status = status;
3724
+ if (createdAt) request.createdAt = createdAt;
3725
+ if (updatedAt) request.updatedAt = updatedAt;
3726
+ if (transactionTime) request.transactionTime = transactionTime;
3727
+ if (height) request.height = height;
3728
+ const requestMessage = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb.RequestRequest.create();
3729
+ requestMessage.request = request;
3730
+ return { status: (await this.executeGrpcCall(requestMessage, this.client.request.bind(this.client))).status };
3731
+ }
3732
+ async submitQuote({ rfqId, price, maker, taker, margin, expiry, status, height, chainId, marketId, quantity, signature, createdAt, updatedAt, eventTime, takerDirection, contractAddress, transactionTime }) {
3733
+ const request = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb.RFQQuoteType.create();
3734
+ if (chainId) request.chainId = chainId;
3735
+ if (contractAddress) request.contractAddress = contractAddress;
3736
+ if (marketId) request.marketId = marketId;
3737
+ if (rfqId !== void 0) request.rfqId = rfqId;
3738
+ if (takerDirection) request.takerDirection = takerDirection;
3739
+ if (margin) request.margin = margin;
3740
+ if (quantity) request.quantity = quantity;
3741
+ if (price) request.price = price;
3742
+ if (expiry) request.expiry = expiry;
3743
+ if (maker) request.maker = maker;
3744
+ if (taker) request.taker = taker;
3745
+ if (signature) request.signature = signature;
3746
+ if (status) request.status = status;
3747
+ if (createdAt) request.createdAt = createdAt;
3748
+ if (updatedAt) request.updatedAt = updatedAt;
3749
+ if (height) request.height = height;
3750
+ if (eventTime) request.eventTime = eventTime;
3751
+ if (transactionTime) request.transactionTime = transactionTime;
3752
+ const quoteMessage = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb.QuoteRequest.create();
3753
+ quoteMessage.quote = request;
3754
+ return { status: (await this.executeGrpcCall(quoteMessage, this.client.quote.bind(this.client))).status };
3755
+ }
3756
+ async fetchSettlements(params) {
3757
+ const { addresses, pagination } = params || {};
3758
+ const request = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb.ListSettlementRequest.create();
3759
+ if (addresses && addresses.length > 0) request.addresses = addresses;
3760
+ if (pagination === null || pagination === void 0 ? void 0 : pagination.skip) request.skip = BigInt(pagination.skip);
3761
+ if (pagination === null || pagination === void 0 ? void 0 : pagination.limit) request.limit = BigInt(pagination.limit);
3762
+ const response = await this.executeGrpcCall(request, this.client.listSettlement.bind(this.client));
3763
+ return IndexerGrpcRfqTransformer.listSettlementsResponseToSettlements(response);
3764
+ }
3765
+ };
3766
+
2844
3767
  //#endregion
2845
3768
  //#region src/client/indexer/grpc/IndexerGrpcMitoApi.ts
2846
3769
  /**
@@ -5535,6 +6458,41 @@ function createStreamSubscriptionV2(stream, handleResponse) {
5535
6458
  return subscription;
5536
6459
  }
5537
6460
 
6461
+ //#endregion
6462
+ //#region src/client/indexer/grpc_stream/streamV2/IndexerGrpcRfqStreamV2.ts
6463
+ var IndexerGrpcRfqStreamV2 = class {
6464
+ constructor(endpoint, metadata) {
6465
+ require_defineProperty._defineProperty(this, "client", void 0);
6466
+ require_defineProperty._defineProperty(this, "transport", void 0);
6467
+ this.transport = new require_BaseGrpcConsumer.GrpcWebRpcTransport(endpoint, metadata);
6468
+ this.client = new __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb_client.InjectiveRFQRPCClient(this.transport);
6469
+ }
6470
+ streamRequests({ marketIds, callback }) {
6471
+ if (typeof callback !== "function") throw new Error("callback must be a function");
6472
+ const request = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb.StreamRequestRequest.create();
6473
+ if (marketIds && marketIds.length > 0) request.marketIds = marketIds;
6474
+ return createStreamSubscriptionV2(this.client.streamRequest(request), (response) => {
6475
+ callback(IndexerRfqStreamTransformer.requestStreamCallback(response));
6476
+ });
6477
+ }
6478
+ streamQuotes({ addresses, callback }) {
6479
+ if (typeof callback !== "function") throw new Error("callback must be a function");
6480
+ const request = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb.StreamQuoteRequest.create();
6481
+ if (addresses && addresses.length > 0) request.addresses = addresses;
6482
+ return createStreamSubscriptionV2(this.client.streamQuote(request), (response) => {
6483
+ callback(IndexerRfqStreamTransformer.quoteStreamCallback(response));
6484
+ });
6485
+ }
6486
+ streamSettlements({ addresses, callback }) {
6487
+ if (typeof callback !== "function") throw new Error("callback must be a function");
6488
+ const request = __injectivelabs_indexer_proto_ts_v2_generated_injective_rfqrpc_pb.StreamSettlementRequest.create();
6489
+ if (addresses && addresses.length > 0) request.addresses = addresses;
6490
+ return createStreamSubscriptionV2(this.client.streamSettlement(request), (response) => {
6491
+ callback(IndexerRfqStreamTransformer.settlementStreamCallback(response));
6492
+ });
6493
+ }
6494
+ };
6495
+
5538
6496
  //#endregion
5539
6497
  //#region src/client/indexer/grpc_stream/streamV2/IndexerGrpcSpotStreamV2.ts
5540
6498
  var IndexerGrpcSpotStreamV2 = class {
@@ -6343,12 +7301,36 @@ var StreamManagerV2 = class extends eventemitter3.EventEmitter {
6343
7301
  };
6344
7302
 
6345
7303
  //#endregion
7304
+ Object.defineProperty(exports, 'DEFAULT_RECONNECT_CONFIG', {
7305
+ enumerable: true,
7306
+ get: function () {
7307
+ return DEFAULT_RECONNECT_CONFIG;
7308
+ }
7309
+ });
7310
+ Object.defineProperty(exports, 'DEFAULT_TRANSPORT_CONFIG', {
7311
+ enumerable: true,
7312
+ get: function () {
7313
+ return DEFAULT_TRANSPORT_CONFIG;
7314
+ }
7315
+ });
6346
7316
  Object.defineProperty(exports, 'ExplorerStreamTransformer', {
6347
7317
  enumerable: true,
6348
7318
  get: function () {
6349
7319
  return ExplorerStreamTransformer;
6350
7320
  }
6351
7321
  });
7322
+ Object.defineProperty(exports, 'GrpcWebSocketCodec', {
7323
+ enumerable: true,
7324
+ get: function () {
7325
+ return GrpcWebSocketCodec;
7326
+ }
7327
+ });
7328
+ Object.defineProperty(exports, 'GrpcWebSocketTransport', {
7329
+ enumerable: true,
7330
+ get: function () {
7331
+ return GrpcWebSocketTransport;
7332
+ }
7333
+ });
6352
7334
  Object.defineProperty(exports, 'IndexerAccountPortfolioStreamTransformer', {
6353
7335
  enumerable: true,
6354
7336
  get: function () {
@@ -6619,6 +7601,12 @@ Object.defineProperty(exports, 'IndexerGrpcOracleTransformer', {
6619
7601
  return IndexerGrpcOracleTransformer;
6620
7602
  }
6621
7603
  });
7604
+ Object.defineProperty(exports, 'IndexerGrpcRFQApi', {
7605
+ enumerable: true,
7606
+ get: function () {
7607
+ return IndexerGrpcRFQApi;
7608
+ }
7609
+ });
6622
7610
  Object.defineProperty(exports, 'IndexerGrpcReferralApi', {
6623
7611
  enumerable: true,
6624
7612
  get: function () {
@@ -6631,6 +7619,18 @@ Object.defineProperty(exports, 'IndexerGrpcReferralTransformer', {
6631
7619
  return IndexerGrpcReferralTransformer;
6632
7620
  }
6633
7621
  });
7622
+ Object.defineProperty(exports, 'IndexerGrpcRfqStreamV2', {
7623
+ enumerable: true,
7624
+ get: function () {
7625
+ return IndexerGrpcRfqStreamV2;
7626
+ }
7627
+ });
7628
+ Object.defineProperty(exports, 'IndexerGrpcRfqTransformer', {
7629
+ enumerable: true,
7630
+ get: function () {
7631
+ return IndexerGrpcRfqTransformer;
7632
+ }
7633
+ });
6634
7634
  Object.defineProperty(exports, 'IndexerGrpcSpotApi', {
6635
7635
  enumerable: true,
6636
7636
  get: function () {
@@ -6715,12 +7715,30 @@ Object.defineProperty(exports, 'IndexerRestSpotChronosApi', {
6715
7715
  return IndexerRestSpotChronosApi;
6716
7716
  }
6717
7717
  });
7718
+ Object.defineProperty(exports, 'IndexerRfqStreamTransformer', {
7719
+ enumerable: true,
7720
+ get: function () {
7721
+ return IndexerRfqStreamTransformer;
7722
+ }
7723
+ });
6718
7724
  Object.defineProperty(exports, 'IndexerSpotStreamTransformer', {
6719
7725
  enumerable: true,
6720
7726
  get: function () {
6721
7727
  return IndexerSpotStreamTransformer;
6722
7728
  }
6723
7729
  });
7730
+ Object.defineProperty(exports, 'IndexerWsMakerStream', {
7731
+ enumerable: true,
7732
+ get: function () {
7733
+ return IndexerWsMakerStream;
7734
+ }
7735
+ });
7736
+ Object.defineProperty(exports, 'IndexerWsTakerStream', {
7737
+ enumerable: true,
7738
+ get: function () {
7739
+ return IndexerWsTakerStream;
7740
+ }
7741
+ });
6724
7742
  Object.defineProperty(exports, 'StreamManager', {
6725
7743
  enumerable: true,
6726
7744
  get: function () {
@@ -6733,6 +7751,18 @@ Object.defineProperty(exports, 'StreamManagerV2', {
6733
7751
  return StreamManagerV2;
6734
7752
  }
6735
7753
  });
7754
+ Object.defineProperty(exports, 'WsDisconnectReason', {
7755
+ enumerable: true,
7756
+ get: function () {
7757
+ return WsDisconnectReason;
7758
+ }
7759
+ });
7760
+ Object.defineProperty(exports, 'WsState', {
7761
+ enumerable: true,
7762
+ get: function () {
7763
+ return WsState;
7764
+ }
7765
+ });
6736
7766
  Object.defineProperty(exports, 'createStreamSubscription', {
6737
7767
  enumerable: true,
6738
7768
  get: function () {