@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.
- package/dist/cjs/{AbacusGrpcApi-QbGB8ZMB.cjs → AbacusGrpcApi-Da2mxc3z.cjs} +2 -2
- package/dist/cjs/{BaseGrpcConsumer-Db3sCC6b.cjs → BaseGrpcConsumer-B1hpRQJ-.cjs} +1 -1
- package/dist/cjs/{BaseIndexerGrpcConsumer-BBXxg_BR.cjs → BaseIndexerGrpcConsumer-rRYRp48i.cjs} +1 -1
- package/dist/cjs/{ChainGrpcExchangeApi-Xtflr7xp.cjs → ChainGrpcExchangeApi-5On5kown.cjs} +3 -3
- package/dist/cjs/{ChainRestTendermintApi-CyeoAmer.cjs → ChainRestTendermintApi-DILpgVDN.cjs} +2 -2
- package/dist/cjs/{DirectEthSecp256k1Wallet-BiAOoEd6.cjs → DirectEthSecp256k1Wallet-Bz_TABf8.cjs} +2 -2
- package/dist/cjs/{ExecArgNeptuneWithdraw-4esQ6Su-.cjs → ExecArgNeptuneWithdraw-TyUvdHsN.cjs} +2 -2
- package/dist/cjs/{IndexerGrpcWeb3GwApi-BxJoq1-k.cjs → IndexerGrpcWeb3GwApi-wpbu-sy0.cjs} +2 -2
- package/dist/cjs/{MsgBase-D_1CCpXQ.cjs → MsgBase-DknjeeDb.cjs} +1 -1
- package/dist/cjs/{MsgSetDenomMetadata-DzYvKtNj.cjs → MsgSetDenomMetadata-MOKVZiSF.cjs} +39 -8
- package/dist/cjs/{OLPGrpcApi-CoVqLaSC.cjs → OLPGrpcApi-DYU9vRNO.cjs} +2 -2
- package/dist/cjs/{QueryTradingStrategyContractTotalStrategies-DPrIH5Jb.cjs → QueryTradingStrategyContractTotalStrategies-CDeAJmZj.cjs} +3 -3
- package/dist/cjs/{StreamManagerV2-Dvfpwi5Z.cjs → StreamManagerV2-ocvGmGvp.cjs} +1034 -4
- package/dist/cjs/{accounts-HFzAaFRB.cjs → accounts-BPCUUwFm.cjs} +2 -2
- package/dist/cjs/{chain-CPs0kwL0.cjs → chain-DmIDW_8V.cjs} +3 -3
- package/dist/cjs/client/abacus.cjs +3 -3
- package/dist/cjs/client/chain.cjs +5 -5
- package/dist/cjs/client/chain.d.cts +2 -2
- package/dist/cjs/client/indexer.cjs +17 -5
- package/dist/cjs/client/indexer.d.cts +3 -3
- package/dist/cjs/client/olp.cjs +4 -4
- package/dist/cjs/client/wasm.cjs +8 -8
- package/dist/cjs/client/wasm.d.cts +1 -1
- package/dist/cjs/core/accounts.cjs +3 -3
- package/dist/cjs/core/accounts.d.cts +2 -2
- package/dist/cjs/core/modules.cjs +11 -11
- package/dist/cjs/core/modules.d.cts +2 -2
- package/dist/cjs/core/tx.cjs +8 -8
- package/dist/cjs/core/tx.d.cts +2 -2
- package/dist/cjs/cosmjs.cjs +9 -9
- package/dist/cjs/{defineProperty-dyr5BsvG.cjs → defineProperty-DAtJs5JQ.cjs} +4 -4
- package/dist/cjs/exports.cjs +9 -9
- package/dist/cjs/{index-Dz6elmkG.d.cts → index-CNxu0jEc.d.cts} +1312 -113
- package/dist/cjs/{index-CSWj2FPd.d.cts → index-COusnMLC.d.cts} +8 -5
- package/dist/cjs/index.cjs +29 -17
- package/dist/cjs/index.d.cts +3 -3
- package/dist/cjs/{service-C0DSVBn_.cjs → service-DmzN9jAl.cjs} +1 -1
- package/dist/cjs/service.cjs +2 -2
- package/dist/cjs/{tx-MgHAjEie.cjs → tx-CYMyLXlj.cjs} +5 -5
- package/dist/cjs/utils.d.cts +2 -2
- package/dist/esm/{AbacusGrpcApi-H-P0UiPh.js → AbacusGrpcApi-DG807S_D.js} +2 -2
- package/dist/esm/{BaseGrpcConsumer-a7fB9A_e.js → BaseGrpcConsumer-lUDP-V1I.js} +1 -1
- package/dist/esm/{BaseIndexerGrpcConsumer-CrwqSxDq.js → BaseIndexerGrpcConsumer-ByGqwnv0.js} +1 -1
- package/dist/esm/{ChainGrpcExchangeApi-Ko7rM6Df.js → ChainGrpcExchangeApi-dM8pIv3Q.js} +3 -3
- package/dist/esm/{ChainRestTendermintApi-BUV-cxVj.js → ChainRestTendermintApi-iiW50Z2J.js} +2 -2
- package/dist/esm/{DirectEthSecp256k1Wallet-CMxBvSTE.js → DirectEthSecp256k1Wallet-BV8ttcYH.js} +2 -2
- package/dist/esm/{ExecArgNeptuneWithdraw-BRJZq8Vb.js → ExecArgNeptuneWithdraw-DqIWmqJy.js} +2 -2
- package/dist/esm/{IndexerGrpcWeb3GwApi-CX4ohUOk.js → IndexerGrpcWeb3GwApi-OwqVZsKE.js} +2 -2
- package/dist/esm/{MsgBase-D4pO6org.js → MsgBase-BYNH7Kr5.js} +1 -1
- package/dist/esm/{MsgSetDenomMetadata-CeD0R82a.js → MsgSetDenomMetadata-CTyvXOGo.js} +39 -8
- package/dist/esm/{OLPGrpcApi-CX-m2wvC.js → OLPGrpcApi-CYVKwBCj.js} +2 -2
- package/dist/esm/{QueryTradingStrategyContractTotalStrategies-D9fMELJH.js → QueryTradingStrategyContractTotalStrategies-CCM0S67l.js} +3 -3
- package/dist/esm/{StreamManagerV2-B_6ctbMb.js → StreamManagerV2-CbZamzIn.js} +962 -5
- package/dist/esm/{accounts-CP_DVUou.js → accounts-DaSGlOcB.js} +2 -2
- package/dist/esm/{chain-CQczt2h3.js → chain-DqFxHeeE.js} +3 -3
- package/dist/esm/client/abacus.js +3 -3
- package/dist/esm/client/chain.d.ts +2 -2
- package/dist/esm/client/chain.js +5 -5
- package/dist/esm/client/indexer.d.ts +3 -3
- package/dist/esm/client/indexer.js +6 -6
- package/dist/esm/client/olp.js +4 -4
- package/dist/esm/client/wasm.d.ts +1 -1
- package/dist/esm/client/wasm.js +8 -8
- package/dist/esm/core/accounts.d.ts +2 -2
- package/dist/esm/core/accounts.js +3 -3
- package/dist/esm/core/modules.d.ts +2 -2
- package/dist/esm/core/modules.js +11 -11
- package/dist/esm/core/tx.d.ts +2 -2
- package/dist/esm/core/tx.js +8 -8
- package/dist/esm/cosmjs.js +9 -9
- package/dist/esm/{defineProperty-Bq6QU9Te.js → defineProperty-DuYPbdEg.js} +4 -4
- package/dist/esm/exports.js +9 -9
- package/dist/esm/{index-CvTpnDXx.d.ts → index-C32ydr8i.d.ts} +1313 -113
- package/dist/esm/{index-BbVYW9Fg.d.ts → index-M499Wbuy.d.ts} +8 -5
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.js +18 -18
- package/dist/esm/{service-CqKPnKgb.js → service-DcE3KfV9.js} +1 -1
- package/dist/esm/service.js +2 -2
- package/dist/esm/{tx-ZGcAWTaC.js → tx-CSkj2rce.js} +5 -5
- package/dist/esm/utils.d.ts +2 -2
- 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-
|
|
4
|
-
const require_BaseGrpcConsumer = require('./BaseGrpcConsumer-
|
|
5
|
-
const require_BaseIndexerGrpcConsumer = require('./BaseIndexerGrpcConsumer-
|
|
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-
|
|
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 () {
|