binance 3.0.0-beta.1 → 3.0.0-beta.11

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 (80) hide show
  1. package/README.md +305 -75
  2. package/index.js +1 -1
  3. package/lib/coinm-client.d.ts +40 -22
  4. package/lib/coinm-client.js +4 -16
  5. package/lib/coinm-client.js.map +1 -1
  6. package/lib/index.d.ts +2 -0
  7. package/lib/index.js +2 -0
  8. package/lib/index.js.map +1 -1
  9. package/lib/main-client.d.ts +94 -30
  10. package/lib/main-client.js +68 -36
  11. package/lib/main-client.js.map +1 -1
  12. package/lib/portfolio-client.js.map +1 -1
  13. package/lib/types/coin.d.ts +1 -0
  14. package/lib/types/futures.d.ts +15 -5
  15. package/lib/types/futures.js.map +1 -1
  16. package/lib/types/portfolio-margin.d.ts +0 -9
  17. package/lib/types/shared.d.ts +14 -13
  18. package/lib/types/spot.d.ts +174 -11
  19. package/lib/types/spot.js.map +1 -1
  20. package/lib/types/websockets/ws-api-requests.d.ts +480 -2
  21. package/lib/types/websockets/ws-api-responses.d.ts +565 -1
  22. package/lib/types/websockets/ws-api.d.ts +157 -60
  23. package/lib/types/websockets/ws-api.js +47 -3
  24. package/lib/types/websockets/ws-api.js.map +1 -1
  25. package/lib/types/websockets/ws-events-formatted.d.ts +18 -14
  26. package/lib/types/websockets/ws-events-raw.d.ts +4 -2
  27. package/lib/types/websockets/ws-general.d.ts +8 -18
  28. package/lib/usdm-client.d.ts +45 -27
  29. package/lib/usdm-client.js +7 -19
  30. package/lib/usdm-client.js.map +1 -1
  31. package/lib/util/BaseRestClient.js +20 -6
  32. package/lib/util/BaseRestClient.js.map +1 -1
  33. package/lib/util/BaseWSClient.d.ts +14 -3
  34. package/lib/util/BaseWSClient.js +87 -30
  35. package/lib/util/BaseWSClient.js.map +1 -1
  36. package/lib/util/beautifier-maps.d.ts +32 -0
  37. package/lib/util/beautifier-maps.js +41 -0
  38. package/lib/util/beautifier-maps.js.map +1 -1
  39. package/lib/util/beautifier.d.ts +1 -0
  40. package/lib/util/beautifier.js +44 -9
  41. package/lib/util/beautifier.js.map +1 -1
  42. package/lib/util/browser-support.d.ts +1 -1
  43. package/lib/util/browser-support.js +1 -41
  44. package/lib/util/browser-support.js.map +1 -1
  45. package/lib/util/node-support.js +7 -5
  46. package/lib/util/node-support.js.map +1 -1
  47. package/lib/util/requestUtils.d.ts +23 -5
  48. package/lib/util/requestUtils.js +130 -29
  49. package/lib/util/requestUtils.js.map +1 -1
  50. package/lib/util/rounding.d.ts +8 -0
  51. package/lib/util/rounding.js +41 -0
  52. package/lib/util/rounding.js.map +1 -0
  53. package/lib/util/typeGuards.d.ts +31 -3
  54. package/lib/util/typeGuards.js +105 -8
  55. package/lib/util/typeGuards.js.map +1 -1
  56. package/lib/util/webCryptoAPI.js +20 -45
  57. package/lib/util/webCryptoAPI.js.map +1 -1
  58. package/lib/util/websockets/WsStore.js +7 -2
  59. package/lib/util/websockets/WsStore.js.map +1 -1
  60. package/lib/util/websockets/enum.d.ts +11 -0
  61. package/lib/util/websockets/enum.js +24 -0
  62. package/lib/util/websockets/enum.js.map +1 -0
  63. package/lib/util/websockets/rest-client-cache.d.ts +3 -3
  64. package/lib/util/websockets/rest-client-cache.js +9 -9
  65. package/lib/util/websockets/rest-client-cache.js.map +1 -1
  66. package/lib/util/websockets/user-data-stream-manager.js +7 -8
  67. package/lib/util/websockets/user-data-stream-manager.js.map +1 -1
  68. package/lib/util/websockets/websocket-util.d.ts +36 -8
  69. package/lib/util/websockets/websocket-util.js +176 -74
  70. package/lib/util/websockets/websocket-util.js.map +1 -1
  71. package/lib/websocket-api-client.d.ts +401 -0
  72. package/lib/websocket-api-client.js +647 -0
  73. package/lib/websocket-api-client.js.map +1 -0
  74. package/lib/websocket-client-legacy.d.ts +5 -3
  75. package/lib/websocket-client-legacy.js +14 -13
  76. package/lib/websocket-client-legacy.js.map +1 -1
  77. package/lib/websocket-client.d.ts +26 -11
  78. package/lib/websocket-client.js +269 -174
  79. package/lib/websocket-client.js.map +1 -1
  80. package/package.json +3 -3
@@ -11,12 +11,13 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.getOrderIdPrefix = getOrderIdPrefix;
13
13
  exports.generateNewOrderId = generateNewOrderId;
14
- exports.requiresWSAPINewClientOID = requiresWSAPINewClientOID;
15
14
  exports.getBaseURLKeyForWsKey = getBaseURLKeyForWsKey;
15
+ exports.requiresWSAPINewClientOID = requiresWSAPINewClientOID;
16
16
  exports.validateWSAPINewClientOID = validateWSAPINewClientOID;
17
17
  exports.serialiseParams = serialiseParams;
18
18
  exports.getRequestSignature = getRequestSignature;
19
19
  exports.getServerTimeEndpoint = getServerTimeEndpoint;
20
+ exports.getTestnetBaseUrlKey = getTestnetBaseUrlKey;
20
21
  exports.getRestBaseUrl = getRestBaseUrl;
21
22
  exports.isPublicEndpoint = isPublicEndpoint;
22
23
  exports.isWsPong = isWsPong;
@@ -25,6 +26,7 @@ exports.appendEventIfMissing = appendEventIfMissing;
25
26
  exports.asArray = asArray;
26
27
  const nanoid_1 = require("nanoid");
27
28
  const node_support_1 = require("./node-support");
29
+ const typeGuards_1 = require("./typeGuards");
28
30
  const websocket_util_1 = require("./websockets/websocket-util");
29
31
  // function throwUnhandledSwitch(x: never, msg: string): never {
30
32
  // throw new Error(msg);
@@ -56,27 +58,6 @@ function generateNewOrderId(network) {
56
58
  const prefixedId = 'x-' + getOrderIdPrefix(network) + id;
57
59
  return prefixedId;
58
60
  }
59
- function requiresWSAPINewClientOID(request, wsKey) {
60
- switch (wsKey) {
61
- case websocket_util_1.WS_KEY_MAP.mainWSAPI:
62
- case websocket_util_1.WS_KEY_MAP.mainWSAPI2:
63
- case websocket_util_1.WS_KEY_MAP.mainWSAPITestnet:
64
- case websocket_util_1.WS_KEY_MAP.usdmWSAPI:
65
- case websocket_util_1.WS_KEY_MAP.usdmWSAPITestnet: {
66
- switch (request.method) {
67
- case 'order.place': {
68
- return true;
69
- }
70
- default: {
71
- return false;
72
- }
73
- }
74
- }
75
- default: {
76
- return false;
77
- }
78
- }
79
- }
80
61
  function getBaseURLKeyForWsKey(wsKey) {
81
62
  switch (wsKey) {
82
63
  case websocket_util_1.WS_KEY_MAP.mainWSAPI:
@@ -100,13 +81,37 @@ function getWSAPINewOrderIdProperties(operation, wsKey) {
100
81
  case websocket_util_1.WS_KEY_MAP.mainWSAPI2:
101
82
  case websocket_util_1.WS_KEY_MAP.mainWSAPITestnet:
102
83
  case websocket_util_1.WS_KEY_MAP.usdmWSAPI:
103
- case websocket_util_1.WS_KEY_MAP.usdmWSAPITestnet: {
104
- if (operation === 'order.place' || operation === 'sor.order.place') {
84
+ case websocket_util_1.WS_KEY_MAP.usdmWSAPITestnet:
85
+ case websocket_util_1.WS_KEY_MAP.coinmWSAPI:
86
+ case websocket_util_1.WS_KEY_MAP.coinmWSAPITestnet: {
87
+ if (['order.place', 'order.amend.keepPriority', 'sor.order.place'].includes(operation)) {
105
88
  return ['newClientOrderId'];
106
89
  }
107
90
  if (operation === 'orderList.place') {
108
91
  return ['listClientOrderId', 'limitClientOrderId', 'stopClientOrderId'];
109
92
  }
93
+ if (operation === 'orderList.place.oco') {
94
+ return [
95
+ 'listClientOrderId',
96
+ 'aboveClientOrderId',
97
+ 'belowClientOrderId',
98
+ ];
99
+ }
100
+ if (operation === 'orderList.place.oto') {
101
+ return [
102
+ 'listClientOrderId',
103
+ 'workingClientOrderId',
104
+ 'pendingClientOrderId',
105
+ ];
106
+ }
107
+ if (operation === 'orderList.place.otoco') {
108
+ return [
109
+ 'listClientOrderId',
110
+ 'workingClientOrderId',
111
+ 'pendingAboveClientOrderId',
112
+ 'pendingBelowClientOrderId',
113
+ ];
114
+ }
110
115
  return [];
111
116
  }
112
117
  default: {
@@ -114,6 +119,45 @@ function getWSAPINewOrderIdProperties(operation, wsKey) {
114
119
  }
115
120
  }
116
121
  }
122
+ function requiresWSAPINewClientOID(request, wsKey) {
123
+ switch (wsKey) {
124
+ case websocket_util_1.WS_KEY_MAP.mainWSAPI:
125
+ case websocket_util_1.WS_KEY_MAP.mainWSAPI2:
126
+ case websocket_util_1.WS_KEY_MAP.mainWSAPITestnet:
127
+ case websocket_util_1.WS_KEY_MAP.usdmWSAPI:
128
+ case websocket_util_1.WS_KEY_MAP.usdmWSAPITestnet:
129
+ case websocket_util_1.WS_KEY_MAP.coinmWSAPI:
130
+ case websocket_util_1.WS_KEY_MAP.coinmWSAPITestnet: {
131
+ return [
132
+ 'order.place',
133
+ 'order.amend.keepPriority',
134
+ 'sor.order.place',
135
+ 'orderList.place',
136
+ 'orderList.place.oco',
137
+ 'orderList.place.oto',
138
+ 'orderList.place.otoco',
139
+ ].includes(request.method);
140
+ }
141
+ case websocket_util_1.WS_KEY_MAP.main:
142
+ case websocket_util_1.WS_KEY_MAP.main2:
143
+ case websocket_util_1.WS_KEY_MAP.main3:
144
+ case websocket_util_1.WS_KEY_MAP.mainTestnetPublic:
145
+ case websocket_util_1.WS_KEY_MAP.mainTestnetUserData:
146
+ case websocket_util_1.WS_KEY_MAP.marginRiskUserData:
147
+ case websocket_util_1.WS_KEY_MAP.usdm:
148
+ case websocket_util_1.WS_KEY_MAP.usdmTestnet:
149
+ case websocket_util_1.WS_KEY_MAP.coinm:
150
+ case websocket_util_1.WS_KEY_MAP.coinm2:
151
+ case websocket_util_1.WS_KEY_MAP.coinmTestnet:
152
+ case websocket_util_1.WS_KEY_MAP.eoptions:
153
+ case websocket_util_1.WS_KEY_MAP.portfolioMarginUserData:
154
+ case websocket_util_1.WS_KEY_MAP.portfolioMarginProUserData:
155
+ return false;
156
+ default: {
157
+ throw (0, typeGuards_1.neverGuard)(wsKey, `Unhandled WsKey "${wsKey}"`);
158
+ }
159
+ }
160
+ }
117
161
  function validateWSAPINewClientOID(request, wsKey) {
118
162
  if (!requiresWSAPINewClientOID(request, wsKey) || !request.params) {
119
163
  return;
@@ -149,16 +193,24 @@ function serialiseParams(params = {}, strict_validation = false, encodeValues =
149
193
  })
150
194
  .join('&');
151
195
  }
152
- function getRequestSignature(data, key, secret, recvWindow, timestamp, strictParamValidation, filterUndefinedParams) {
196
+ function getRequestSignature(data, options, key, secret, timestamp) {
153
197
  return __awaiter(this, void 0, void 0, function* () {
154
198
  var _a, _b;
199
+ const { recvWindow, strictParamValidation, filterUndefinedParams } = options;
155
200
  // Optional, set to 5000 by default. Increase if timestamp/recvWindow errors are seen.
156
201
  const requestRecvWindow = (_b = (_a = data === null || data === void 0 ? void 0 : data.recvWindow) !== null && _a !== void 0 ? _a : recvWindow) !== null && _b !== void 0 ? _b : 5000;
157
202
  if (key && secret) {
158
203
  const requestParams = Object.assign(Object.assign({}, data), { timestamp, recvWindow: requestRecvWindow });
204
+ const signMethod = 'hex';
205
+ const signAlgorithm = 'SHA-256';
159
206
  const serialisedParams = serialiseParams(requestParams, strictParamValidation, true, filterUndefinedParams);
160
- // TODO:
161
- const signature = yield (0, node_support_1.signMessage)(serialisedParams, secret, 'hex', 'SHA-256');
207
+ let signature;
208
+ if (typeof options.customSignMessageFn === 'function') {
209
+ signature = yield options.customSignMessageFn(serialisedParams, secret);
210
+ }
211
+ else {
212
+ signature = yield (0, node_support_1.signMessage)(serialisedParams, secret, signMethod, signAlgorithm);
213
+ }
162
214
  requestParams.signature = signature;
163
215
  return {
164
216
  requestBody: Object.assign({}, data),
@@ -178,6 +230,7 @@ const BINANCE_BASE_URLS = {
178
230
  spot2: 'https://api1.binance.com',
179
231
  spot3: 'https://api2.binance.com',
180
232
  spot4: 'https://api3.binance.com',
233
+ spottest: 'https://testnet.binance.vision',
181
234
  // USDM Futures
182
235
  usdm: 'https://fapi.binance.com',
183
236
  usdmtest: 'https://testnet.binancefuture.com',
@@ -197,6 +250,7 @@ function getServerTimeEndpoint(urlKey) {
197
250
  case 'spot2':
198
251
  case 'spot3':
199
252
  case 'spot4':
253
+ case 'spottest':
200
254
  default:
201
255
  return 'api/v3/time';
202
256
  case 'usdm':
@@ -210,6 +264,27 @@ function getServerTimeEndpoint(urlKey) {
210
264
  return 'vapi/v1/time';
211
265
  }
212
266
  }
267
+ function getTestnetBaseUrlKey(urlKey) {
268
+ switch (urlKey) {
269
+ case 'spot':
270
+ case 'spot1':
271
+ case 'spot2':
272
+ case 'spot3':
273
+ case 'spot4':
274
+ case 'spottest':
275
+ default:
276
+ return 'spottest';
277
+ case 'usdm':
278
+ case 'usdmtest':
279
+ return 'usdmtest';
280
+ case 'coinm':
281
+ case 'coinmtest':
282
+ return 'coinmtest';
283
+ case 'voptions':
284
+ case 'voptionstest':
285
+ return 'voptionstest';
286
+ }
287
+ }
213
288
  function getRestBaseUrl(clientType, restClientOptions) {
214
289
  if (restClientOptions.baseUrl) {
215
290
  return restClientOptions.baseUrl;
@@ -245,10 +320,37 @@ function logInvalidOrderId(orderIdProperty, expectedOrderIdPrefix, params) {
245
320
  * - For the old WebsocketClient, this is extracted using the WsKey.
246
321
  * - For the new multiplex Websocketclient, this is extracted using the "stream" parameter.
247
322
  */
248
- function appendEventIfMissing(wsMsg, wsKey) {
323
+ function appendEventIfMissing(wsMsg, wsKey,
324
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
325
+ eventType) {
249
326
  if (wsMsg.e) {
250
327
  return;
251
328
  }
329
+ /**
330
+ *
331
+ * This is a mess right now, diff places parsing in diff levels, because
332
+ * there's convenient parse-to-child happening too early on, and the
333
+ * stream name is missing from the child data!
334
+ *
335
+ * First parse should be simple, extract json. All handling from there should be later on!!
336
+ *
337
+ * Maybe it's time to improve the type handling from the first part where an event is received!
338
+ *
339
+ * Also, stream or streamName? what's the right one here??
340
+ *
341
+ * TODO: review me and clean up
342
+ */
343
+ if (eventType) {
344
+ if (!Array.isArray(wsMsg)) {
345
+ wsMsg.e = eventType;
346
+ return;
347
+ }
348
+ for (const key in wsMsg) {
349
+ // wsMsg[key].streamName = wsMsg.stream;
350
+ wsMsg[key].e = eventType;
351
+ }
352
+ return;
353
+ }
252
354
  // Multiplex websockets include the eventType as the stream name
253
355
  if (wsMsg.stream && wsMsg.data) {
254
356
  const eventType = (0, websocket_util_1.parseEventTypeFromMessage)(wsKey, wsMsg);
@@ -260,7 +362,6 @@ function appendEventIfMissing(wsMsg, wsKey) {
260
362
  }
261
363
  return;
262
364
  }
263
- wsMsg.data = Object.assign({ streamName: wsMsg.stream, e: eventType }, wsMsg.data);
264
365
  }
265
366
  }
266
367
  if (wsKey.indexOf('bookTicker') !== -1) {
@@ -1 +1 @@
1
- {"version":3,"file":"requestUtils.js","sourceRoot":"","sources":["../../src/util/requestUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"requestUtils.js","sourceRoot":"","sources":["../../src/util/requestUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Rounds a price to the correct number of decimal places based on the symbol's tick size
3
+ */
4
+ export declare function roundToTickSize(price: number, tickSize: string): number;
5
+ /**
6
+ * Rounds a quantity to the correct step size
7
+ */
8
+ export declare function roundToStepSize(quantity: number, stepSize: string): number;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.roundToTickSize = roundToTickSize;
4
+ exports.roundToStepSize = roundToStepSize;
5
+ /**
6
+ * Rounds a price to the correct number of decimal places based on the symbol's tick size
7
+ */
8
+ function roundToTickSize(price, tickSize) {
9
+ if (!tickSize) {
10
+ return price;
11
+ }
12
+ // Calculate precision from tick size (e.g., 0.00010000 → 4 decimal places)
13
+ const precision = tickSize.indexOf('1') - 1;
14
+ if (precision < 0) {
15
+ return Math.floor(price);
16
+ }
17
+ // Round to the nearest tick
18
+ const tickSizeNum = parseFloat(tickSize);
19
+ const rounded = Math.floor(price / tickSizeNum) * tickSizeNum;
20
+ // Format with correct precision
21
+ return +rounded.toFixed(precision);
22
+ }
23
+ /**
24
+ * Rounds a quantity to the correct step size
25
+ */
26
+ function roundToStepSize(quantity, stepSize) {
27
+ if (!stepSize) {
28
+ return quantity;
29
+ }
30
+ // Calculate precision from step size
31
+ const precision = stepSize.indexOf('1') - 1;
32
+ if (precision < 0) {
33
+ return Math.floor(quantity);
34
+ }
35
+ // Round to the nearest step
36
+ const stepSizeNum = parseFloat(stepSize);
37
+ const rounded = Math.floor(quantity / stepSizeNum) * stepSizeNum;
38
+ // Format with correct precision
39
+ return +rounded.toFixed(precision);
40
+ }
41
+ //# sourceMappingURL=rounding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rounding.js","sourceRoot":"","sources":["../../src/util/rounding.ts"],"names":[],"mappings":";;AAGA,0CAiBC;AAKD,0CAiBC;AA1CD;;GAEG;AACH,SAAgB,eAAe,CAAC,KAAa,EAAE,QAAgB;IAC7D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2EAA2E;IAC3E,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC3B,CAAC;IAED,4BAA4B;IAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,WAAW,CAAC;IAE9D,gCAAgC;IAChC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,QAAgB,EAAE,QAAgB;IAChE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,qCAAqC;IACrC,MAAM,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QAClB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,4BAA4B;IAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,WAAW,CAAC;IAEjE,gCAAgC;IAChC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACrC,CAAC"}
@@ -1,5 +1,6 @@
1
- import { WsFormattedMessage, WsMessageMarkPriceUpdateEventFormatted, WsMessageTradeFormatted, WsMessageKlineFormatted, WsMessage24hrTickerFormatted, WsMessageForceOrderFormatted, WsMessageRollingWindowTickerFormatted, WsMessageAggTradeFormatted, WsMessagePartialBookDepthEventFormatted, WsUserDataEvents, WsMessageSpotUserDataEventFormatted, WsMessageFuturesUserDataEventFormatted, WsMessageSpotUserDataExecutionReportEventFormatted, WsMessageSpotOutboundAccountPositionFormatted, WsMessageSpotBalanceUpdateFormatted, WsMessageSpotUserDataListStatusEventFormatted, WsMessageFuturesUserDataAccountUpdateFormatted, WsMessageFuturesUserDataMarginCallFormatted, WsMessageFuturesUserDataTradeUpdateEventFormatted, WsMessageFuturesUserDataCondOrderTriggerRejectEventFormatted, WsMessageFuturesUserDataAccountConfigUpdateEventFormatted, WsMessageFuturesUserDataListenKeyExpiredFormatted } from '../types/websockets/ws-events-formatted';
2
- import { WsRawMessage, WsMessage24hrMiniTickerRaw, WsMessageRollingWindowTickerRaw, WsMessageKlineRaw, WsMessageFuturesUserDataOrderTradeUpdateEventRaw, WsMessageFuturesUserDataAccountConfigUpdateEventRaw, WsMessageFuturesUserDataAccountUpdateRaw } from '../types/websockets/ws-events-raw';
1
+ import { WsFormattedMessage, WsMessage24hrTickerFormatted, WsMessageAggTradeFormatted, WsMessageForceOrderFormatted, WsMessageFuturesUserDataAccountConfigUpdateEventFormatted, WsMessageFuturesUserDataAccountUpdateFormatted, WsMessageFuturesUserDataCondOrderTriggerRejectEventFormatted, WsMessageFuturesUserDataEventFormatted, WsMessageFuturesUserDataListenKeyExpiredFormatted, WsMessageFuturesUserDataMarginCallFormatted, WsMessageFuturesUserDataTradeUpdateEventFormatted, WsMessageKlineFormatted, WsMessageMarkPriceUpdateEventFormatted, WsMessagePartialBookDepthEventFormatted, WsMessageSpotBalanceUpdateFormatted, WsMessageSpotOutboundAccountPositionFormatted, WsMessageSpotUserDataEventFormatted, WsMessageSpotUserDataExecutionReportEventFormatted, WsMessageSpotUserDataListStatusEventFormatted, WsMessageTradeFormatted, WsUserDataEvents } from '../types/websockets/ws-events-formatted';
2
+ import { WsMessage24hrMiniTickerRaw, WsMessageFuturesUserDataAccountConfigUpdateEventRaw, WsMessageFuturesUserDataAccountUpdateRaw, WsMessageFuturesUserDataOrderTradeUpdateEventRaw, WsMessageKlineRaw, WsMessageRollingWindowTickerRaw, WsRawMessage } from '../types/websockets/ws-events-raw';
3
+ import { WSAPIWsKey, WsKey } from './websockets/websocket-util';
3
4
  export declare function neverGuard(x: never, msg: string): Error;
4
5
  /**
5
6
  * Use type guards to narrow down types with minimal efforts.
@@ -8,6 +9,9 @@ export declare function neverGuard(x: never, msg: string): Error;
8
9
  * and `WsRawMessage` typeguards in the second half.
9
10
  *
10
11
  */
12
+ export declare function isWsSpotConnection(data: WsFormattedMessage): boolean;
13
+ export declare function isWsFuturesConnection(data: WsFormattedMessage): boolean;
14
+ export declare function isWSAPIWsKey(wsKey: WsKey): wsKey is WSAPIWsKey;
11
15
  /**
12
16
  * Typeguards for WsFormattedMessage event types:
13
17
  */
@@ -19,13 +23,37 @@ export declare function isWsFormattedTrade(data: WsFormattedMessage): data is Ws
19
23
  export declare function isWsFormattedKline(data: WsFormattedMessage): data is WsMessageKlineFormatted;
20
24
  export declare function isWsFormatted24hrTicker(data: WsFormattedMessage): data is WsMessage24hrTickerFormatted;
21
25
  export declare function isWsFormattedForceOrder(data: WsFormattedMessage): data is WsMessageForceOrderFormatted;
26
+ /**
27
+ * !ticker@arr
28
+ * @param data
29
+ * @returns
30
+ */
22
31
  export declare function isWsFormatted24hrTickerArray(data: WsFormattedMessage): data is WsMessage24hrTickerFormatted[];
23
- export declare function isWsFormattedRollingWindowTickerArray(data: WsFormattedMessage): data is WsMessageRollingWindowTickerFormatted[];
32
+ /**
33
+ * !ticker_1h@arr
34
+ *
35
+ * @param data
36
+ * @returns
37
+ */
38
+ export declare function isWsFormattedRollingWindowTickerArray(data: WsFormattedMessage): data is WsMessage24hrTickerFormatted[];
24
39
  /**
25
40
  * Typeguard to validate a 'Compressed/Aggregate' trade
26
41
  */
27
42
  export declare function isWsAggTradeFormatted(data: WsFormattedMessage): data is WsMessageAggTradeFormatted;
43
+ /**
44
+ * <symbol>@depth<levels> OR <symbol>@depth<levels>@100ms
45
+ * @param data
46
+ * @returns
47
+ */
28
48
  export declare function isWsPartialBookDepthEventFormatted(data: WsFormattedMessage): data is WsMessagePartialBookDepthEventFormatted;
49
+ /**
50
+ * Works for both the listen key & WS API user data stream workflows.
51
+ *
52
+ * - For the listen key workflow, uses the wsKey to identify the connection dedicated
53
+ * to the user data stream.
54
+ * - For the WS API user data stream, uses the eventType to identify user data events
55
+ * from a known list (`EVENT_TYPES_USER_DATA`).
56
+ */
29
57
  export declare function isWsFormattedUserDataEvent(data: WsFormattedMessage): data is WsUserDataEvents;
30
58
  export declare function isWsFormattedSpotUserDataEvent(data: WsFormattedMessage): data is WsMessageSpotUserDataEventFormatted;
31
59
  export declare function isWsFormattedFuturesUserDataEvent(data: WsFormattedMessage): data is WsMessageFuturesUserDataEventFormatted;
@@ -1,6 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.neverGuard = neverGuard;
4
+ exports.isWsSpotConnection = isWsSpotConnection;
5
+ exports.isWsFuturesConnection = isWsFuturesConnection;
6
+ exports.isWSAPIWsKey = isWSAPIWsKey;
4
7
  exports.isWsFormattedMarkPriceUpdateEvent = isWsFormattedMarkPriceUpdateEvent;
5
8
  exports.isWsFormattedMarkPriceUpdateArray = isWsFormattedMarkPriceUpdateArray;
6
9
  exports.isWsFormattedMarkPriceUpdate = isWsFormattedMarkPriceUpdate;
@@ -34,6 +37,7 @@ exports.isAccountConfigUpdateRaw = isAccountConfigUpdateRaw;
34
37
  exports.isAccountUpdateRaw = isAccountUpdateRaw;
35
38
  exports.isTopicSubscriptionConfirmation = isTopicSubscriptionConfirmation;
36
39
  exports.isTopicSubscriptionSuccess = isTopicSubscriptionSuccess;
40
+ const websocket_util_1 = require("./websockets/websocket-util");
37
41
  function neverGuard(x, msg) {
38
42
  return new Error(`Unhandled value exception "${x}", ${msg}`);
39
43
  }
@@ -44,6 +48,44 @@ function neverGuard(x, msg) {
44
48
  * and `WsRawMessage` typeguards in the second half.
45
49
  *
46
50
  */
51
+ function isWsSpotConnection(data) {
52
+ return (!Array.isArray(data) && data.wsKey && websocket_util_1.WS_KEYS_SPOT.includes(data.wsKey));
53
+ }
54
+ function isWsFuturesConnection(data) {
55
+ return (!Array.isArray(data) && data.wsKey && websocket_util_1.WS_KEYS_FUTURES.includes(data.wsKey));
56
+ }
57
+ function isWSAPIWsKey(wsKey) {
58
+ switch (wsKey) {
59
+ case 'mainWSAPITestnet':
60
+ case 'mainWSAPI':
61
+ case 'mainWSAPI2':
62
+ case 'usdmWSAPI':
63
+ case 'usdmWSAPITestnet':
64
+ case 'coinmWSAPI':
65
+ case 'coinmWSAPITestnet': {
66
+ return true;
67
+ }
68
+ case 'main':
69
+ case 'main2':
70
+ case 'main3':
71
+ case 'marginRiskUserData':
72
+ case 'mainTestnetPublic':
73
+ case 'mainTestnetUserData':
74
+ case 'usdm':
75
+ case 'usdmTestnet':
76
+ case 'coinm':
77
+ case 'coinmTestnet':
78
+ case 'eoptions':
79
+ case 'coinm2':
80
+ case 'portfolioMarginUserData':
81
+ case 'portfolioMarginProUserData': {
82
+ return false;
83
+ }
84
+ default: {
85
+ throw neverGuard(wsKey, `Unhandled WsKey "${wsKey}"`);
86
+ }
87
+ }
88
+ }
47
89
  /**
48
90
  * Typeguards for WsFormattedMessage event types:
49
91
  */
@@ -53,7 +95,7 @@ function isWsFormattedMarkPriceUpdateEvent(data) {
53
95
  function isWsFormattedMarkPriceUpdateArray(data) {
54
96
  return (Array.isArray(data) &&
55
97
  data.length !== 0 &&
56
- data[0].eventType === 'markPriceUpdate');
98
+ ['markPriceUpdate', 'markPrice'].includes(data[0].eventType));
57
99
  }
58
100
  /** @deprecated, use isWsFormattedMarkPriceUpdateEvent or isWsFormattedMarkPriceUpdateArray */
59
101
  function isWsFormattedMarkPriceUpdate(data) {
@@ -71,15 +113,32 @@ function isWsFormatted24hrTicker(data) {
71
113
  function isWsFormattedForceOrder(data) {
72
114
  return !Array.isArray(data) && data.eventType === 'forceOrder';
73
115
  }
116
+ /**
117
+ * !ticker@arr
118
+ * @param data
119
+ * @returns
120
+ */
74
121
  function isWsFormatted24hrTickerArray(data) {
75
122
  return (Array.isArray(data) &&
76
123
  data.length !== 0 &&
77
- data[0].eventType === '24hrTicker');
124
+ // topic in ws url
125
+ (['24hrTicker'].includes(data[0].eventType) || // multiplex subscriptions
126
+ (!!data[0].streamName && ['!ticker@arr'].includes(data[0].streamName))));
78
127
  }
128
+ /**
129
+ * !ticker_1h@arr
130
+ *
131
+ * @param data
132
+ * @returns
133
+ */
79
134
  function isWsFormattedRollingWindowTickerArray(data) {
80
135
  return (Array.isArray(data) &&
81
136
  data.length !== 0 &&
82
- ['1hTicker', '4hTicker', '1dTicker'].includes(data[0].eventType));
137
+ // topic in ws url
138
+ (['1hTicker', '4hTicker', '1dTicker'].includes(data[0].eventType) ||
139
+ // multiplex subscriptions
140
+ (!!data[0].streamName &&
141
+ ['!ticker_1h@arr', '!ticker_4h@arr', '!ticker_1d@arr'].includes(data[0].streamName))));
83
142
  }
84
143
  /**
85
144
  * Typeguard to validate a 'Compressed/Aggregate' trade
@@ -87,20 +146,58 @@ function isWsFormattedRollingWindowTickerArray(data) {
87
146
  function isWsAggTradeFormatted(data) {
88
147
  return !Array.isArray(data) && data.eventType === 'aggTrade';
89
148
  }
149
+ const partialBookDepthEventTypeMap = new Map()
150
+ // For dedicated connection
151
+ .set('partialBookDepth', true)
152
+ // For multiplex connection
153
+ .set('depth5', true)
154
+ .set('depth10', true)
155
+ .set('depth20', true)
156
+ .set('depth5@100ms', true)
157
+ .set('depth10@100ms', true)
158
+ .set('depth20@100ms', true)
159
+ .set('depth5@1000ms', true)
160
+ .set('depth10@1000ms', true)
161
+ .set('depth20@1000ms', true);
162
+ /**
163
+ * <symbol>@depth<levels> OR <symbol>@depth<levels>@100ms
164
+ * @param data
165
+ * @returns
166
+ */
90
167
  function isWsPartialBookDepthEventFormatted(data) {
91
- return !Array.isArray(data) && data.eventType === 'partialBookDepth';
168
+ return (!Array.isArray(data) && partialBookDepthEventTypeMap.has(data.eventType));
92
169
  }
93
- // TODO: this won't work on multiplex! Can we make one that doesn't use wsKey?
170
+ /**
171
+ * Works for both the listen key & WS API user data stream workflows.
172
+ *
173
+ * - For the listen key workflow, uses the wsKey to identify the connection dedicated
174
+ * to the user data stream.
175
+ * - For the WS API user data stream, uses the eventType to identify user data events
176
+ * from a known list (`EVENT_TYPES_USER_DATA`).
177
+ */
94
178
  function isWsFormattedUserDataEvent(data) {
95
- return !Array.isArray(data) && data.wsKey.includes('userData');
179
+ if (Array.isArray(data)) {
180
+ return false;
181
+ }
182
+ // Old listenKey workflow has one dedicated connection per user data stream
183
+ // Won't work for new WS API user data stream without listen key
184
+ if (data.wsKey.includes('userData')) {
185
+ return true;
186
+ }
187
+ if ((data === null || data === void 0 ? void 0 : data.eventType) && websocket_util_1.EVENT_TYPES_USER_DATA.includes(data.eventType)) {
188
+ return true;
189
+ }
190
+ return false;
96
191
  }
97
192
  function isWsFormattedSpotUserDataEvent(data) {
98
193
  var _a;
99
- return isWsFormattedUserDataEvent(data) && ((_a = data.wsMarket) === null || _a === void 0 ? void 0 : _a.includes('spot'));
194
+ return (isWsFormattedUserDataEvent(data) &&
195
+ (((_a = data.wsMarket) === null || _a === void 0 ? void 0 : _a.includes('spot')) || isWsSpotConnection(data)));
100
196
  }
101
197
  function isWsFormattedFuturesUserDataEvent(data) {
102
198
  var _a;
103
- return isWsFormattedUserDataEvent(data) && ((_a = data.wsMarket) === null || _a === void 0 ? void 0 : _a.includes('usdm'));
199
+ return (isWsFormattedUserDataEvent(data) &&
200
+ (((_a = data.wsMarket) === null || _a === void 0 ? void 0 : _a.includes('usdm')) || isWsFuturesConnection(data)));
104
201
  }
105
202
  function isWsFormattedSpotUserDataExecutionReport(data) {
106
203
  return (isWsFormattedSpotUserDataEvent(data) && data.eventType === 'executionReport');
@@ -1 +1 @@
1
- {"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../src/util/typeGuards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"typeGuards.js","sourceRoot":"","sources":["../../src/util/typeGuards.ts"],"names":[],"mappings":"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"}