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
@@ -1,9 +1,23 @@
1
1
  "use strict";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
2
16
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WS_ERROR_ENUM = exports.WS_AUTH_ON_CONNECT_KEYS = exports.WS_KEY_URL_MAP = exports.WS_KEY_MAP = exports.WS_LOGGER_CATEGORY = void 0;
17
+ exports.WS_ERROR_ENUM = exports.WS_AUTH_ON_CONNECT_KEYS = exports.WS_KEY_URL_MAP = exports.WS_KEYS_FUTURES = exports.WS_KEYS_SPOT = exports.WS_KEY_MAP = exports.EVENT_TYPES_USER_DATA = exports.WS_LOGGER_CATEGORY = void 0;
4
18
  exports.getWsURLSuffix = getWsURLSuffix;
5
19
  exports.isPrivateWsTopic = isPrivateWsTopic;
6
- exports.getWsKeyForTopic = getWsKeyForTopic;
20
+ exports.getTestnetWsKey = getTestnetWsKey;
7
21
  exports.getWsUrl = getWsUrl;
8
22
  exports.getMaxTopicsPerSubscribeEvent = getMaxTopicsPerSubscribeEvent;
9
23
  exports.safeTerminateWs = safeTerminateWs;
@@ -13,14 +27,32 @@ exports.getTopicsPerWSKey = getTopicsPerWSKey;
13
27
  exports.parseEventTypeFromMessage = parseEventTypeFromMessage;
14
28
  exports.resolveUserDataMarketForWsKey = resolveUserDataMarketForWsKey;
15
29
  exports.resolveWsKeyForLegacyMarket = resolveWsKeyForLegacyMarket;
30
+ exports.parseRawWsMessageLegacy = parseRawWsMessageLegacy;
16
31
  exports.parseRawWsMessage = parseRawWsMessage;
17
32
  exports.getContextFromWsKey = getContextFromWsKey;
18
33
  exports.getLegacyWsStoreKeyWithContext = getLegacyWsStoreKeyWithContext;
19
34
  exports.getLegacyWsKeyContext = getLegacyWsKeyContext;
20
35
  exports.getRealWsKeyFromDerivedWsKey = getRealWsKeyFromDerivedWsKey;
21
36
  exports.appendEventMarket = appendEventMarket;
37
+ exports.isWSPingFrameAvailable = isWSPingFrameAvailable;
38
+ exports.isWSPongFrameAvailable = isWSPongFrameAvailable;
39
+ /* eslint-disable @typescript-eslint/no-unused-vars */
40
+ const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
22
41
  const typeGuards_1 = require("../typeGuards");
23
42
  exports.WS_LOGGER_CATEGORY = { category: 'binance-ws' };
43
+ exports.EVENT_TYPES_USER_DATA = [
44
+ 'balanceUpdate',
45
+ 'executionReport',
46
+ 'listStatus',
47
+ 'listenKeyExpired',
48
+ 'outboundAccountPosition',
49
+ 'ACCOUNT_CONFIG_UPDATE',
50
+ 'ACCOUNT_UPDATE',
51
+ 'MARGIN_CALL',
52
+ 'ORDER_TRADE_UPDATE',
53
+ 'TRADE_LITE',
54
+ 'CONDITIONAL_ORDER_TRIGGER_REJECT',
55
+ ];
24
56
  exports.WS_KEY_MAP = {
25
57
  // https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams
26
58
  main: 'main', // spot, margin, isolated margin, user data
@@ -29,7 +61,7 @@ exports.WS_KEY_MAP = {
29
61
  // https://developers.binance.com/docs/binance-spot-api-docs/testnet/web-socket-streams#general-wss-information
30
62
  mainTestnetPublic: 'mainTestnetPublic',
31
63
  mainTestnetUserData: 'mainTestnetUserData',
32
- // https://developers.binance.com/docs/binance-spot-api-docs/web-socket-api/general-api-information
64
+ // https://developers.binance.com/docs/binance-spot-api-docs/websocket-api/general-api-information
33
65
  mainWSAPI: 'mainWSAPI', // trading over WS in spot, margin, isolated margin. User data supported too.
34
66
  mainWSAPI2: 'mainWSAPI2', // trading over WS in spot, margin, isolated margin. User data supported too.
35
67
  mainWSAPITestnet: 'mainWSAPITestnet', // trading over WS in spot, margin, isolated margin | TESTNET
@@ -50,6 +82,10 @@ exports.WS_KEY_MAP = {
50
82
  coinm2: 'coinm2',
51
83
  // https://developers.binance.com/docs/derivatives/coin-margined-futures/general-info
52
84
  coinmTestnet: 'coinmTestnet',
85
+ // https://developers.binance.com/docs/derivatives/coin-margined-futures/websocket-api-general-info
86
+ // ONLY WS API | NO USER DATA
87
+ coinmWSAPI: 'coinmWSAPI',
88
+ coinmWSAPITestnet: 'coinmWSAPITestnet',
53
89
  eoptions: 'eoptions',
54
90
  // optionsTestnet: 'optionsTestnet',
55
91
  // https://developers.binance.com/docs/derivatives/portfolio-margin/user-data-streams
@@ -57,19 +93,40 @@ exports.WS_KEY_MAP = {
57
93
  // https://developers.binance.com/docs/derivatives/portfolio-margin-pro/portfolio-margin-pro-user-data-stream
58
94
  portfolioMarginProUserData: 'portfolioMarginProUserData',
59
95
  };
96
+ exports.WS_KEYS_SPOT = [
97
+ exports.WS_KEY_MAP.main,
98
+ exports.WS_KEY_MAP.main2,
99
+ exports.WS_KEY_MAP.main3,
100
+ exports.WS_KEY_MAP.mainTestnetPublic,
101
+ exports.WS_KEY_MAP.mainTestnetUserData,
102
+ exports.WS_KEY_MAP.mainWSAPI,
103
+ exports.WS_KEY_MAP.mainWSAPI2,
104
+ exports.WS_KEY_MAP.mainWSAPITestnet,
105
+ exports.WS_KEY_MAP.marginRiskUserData,
106
+ ];
107
+ exports.WS_KEYS_FUTURES = [
108
+ exports.WS_KEY_MAP.usdm,
109
+ exports.WS_KEY_MAP.usdmTestnet,
110
+ exports.WS_KEY_MAP.usdmWSAPI,
111
+ exports.WS_KEY_MAP.usdmWSAPITestnet,
112
+ exports.WS_KEY_MAP.coinm,
113
+ exports.WS_KEY_MAP.coinm2,
114
+ exports.WS_KEY_MAP.coinmTestnet,
115
+ exports.WS_KEY_MAP.coinmWSAPI,
116
+ exports.WS_KEY_MAP.coinmWSAPITestnet,
117
+ ];
60
118
  exports.WS_KEY_URL_MAP = {
61
119
  // https://developers.binance.com/docs/binance-spot-api-docs/web-socket-streams
62
120
  main: 'wss://stream.binance.com:9443', // spot, margin, isolated margin, user data
63
121
  main2: 'wss://stream.binance.com:443', // spot, margin, isolated margin, user data | alternative
64
122
  main3: 'wss://data-stream.binance.vision', // spot, margin, isolated margin | alternative | MARKET DATA ONLY | NO USER DATA
65
123
  // https://developers.binance.com/docs/binance-spot-api-docs/testnet/web-socket-streams#general-wss-information
66
- mainTestnetPublic: 'wss://testnet.binance.vision',
124
+ mainTestnetPublic: 'wss://stream.testnet.binance.vision',
67
125
  mainTestnetUserData: 'wss://stream.testnet.binance.vision:9443',
68
- // https://developers.binance.com/docs/binance-spot-api-docs/web-socket-api/general-api-information
69
- // TODO:
126
+ // https://developers.binance.com/docs/binance-spot-api-docs/websocket-api/general-api-information
70
127
  mainWSAPI: 'wss://ws-api.binance.com:443',
71
128
  mainWSAPI2: 'wss://ws-api.binance.com:9443',
72
- mainWSAPITestnet: 'wss://testnet.binance.vision',
129
+ mainWSAPITestnet: 'wss://ws-api.testnet.binance.vision',
73
130
  // https://developers.binance.com/docs/margin_trading/risk-data-stream
74
131
  // Margin websocket only support Cross Margin Accounts
75
132
  marginRiskUserData: 'wss://margin-stream.binance.com',
@@ -80,7 +137,7 @@ exports.WS_KEY_URL_MAP = {
80
137
  usdmTestnet: 'wss://stream.binancefuture.com',
81
138
  // https://developers.binance.com/docs/derivatives/usds-margined-futures/websocket-api-general-info
82
139
  // ONLY WS API
83
- // TODO:
140
+ // Suffix is handled in getWsURLSuffix
84
141
  usdmWSAPI: 'wss://ws-fapi.binance.com',
85
142
  usdmWSAPITestnet: 'wss://testnet.binancefuture.com',
86
143
  // https://developers.binance.com/docs/derivatives/coin-margined-futures/websocket-market-streams
@@ -89,6 +146,11 @@ exports.WS_KEY_URL_MAP = {
89
146
  coinm2: 'wss://dstream-auth.binance.com', // Warning, coinm2 requires a listenkey
90
147
  // https://developers.binance.com/docs/derivatives/coin-margined-futures/general-info
91
148
  coinmTestnet: 'wss://dstream.binancefuture.com',
149
+ // https://developers.binance.com/docs/derivatives/coin-margined-futures/websocket-api-general-info
150
+ // ONLY WS API | NO USER DATA
151
+ // Suffix is handled in getWsURLSuffix
152
+ coinmWSAPI: 'wss://ws-dapi.binance.com',
153
+ coinmWSAPITestnet: 'coinmWSAPITestnet',
92
154
  // https://developers.binance.com/docs/derivatives/option/websocket-market-streams
93
155
  // https://developers.binance.com/docs/derivatives/option/user-data-streams
94
156
  eoptions: 'wss://nbstream.binance.com/eoptions',
@@ -105,20 +167,18 @@ function getWsURLSuffix(wsKey, connectionType) {
105
167
  case 'main3':
106
168
  case 'marginRiskUserData':
107
169
  case 'mainTestnetPublic':
108
- case 'mainTestnetUserData':
109
- case 'mainWSAPITestnet': {
170
+ case 'mainTestnetUserData': {
110
171
  switch (connectionType) {
111
172
  case 'market':
112
173
  return '/stream';
113
174
  case 'userData':
114
175
  return '/ws';
115
- case 'wsAPI':
116
- return '/ws-api/v3';
117
176
  default: {
118
177
  throw (0, typeGuards_1.neverGuard)(connectionType, `Unhandled connectionType "${wsKey}/${connectionType}"`);
119
178
  }
120
179
  }
121
180
  }
181
+ case 'mainWSAPITestnet':
122
182
  case 'mainWSAPI':
123
183
  case 'mainWSAPI2': {
124
184
  return '/ws-api/v3';
@@ -130,8 +190,6 @@ function getWsURLSuffix(wsKey, connectionType) {
130
190
  return '/stream';
131
191
  case 'userData':
132
192
  return '/ws';
133
- case 'wsAPI':
134
- return '/ws-fapi/v1';
135
193
  default: {
136
194
  throw (0, typeGuards_1.neverGuard)(connectionType, `Unhandled connectionType "${wsKey}/${connectionType}"`);
137
195
  }
@@ -141,6 +199,10 @@ function getWsURLSuffix(wsKey, connectionType) {
141
199
  case 'usdmWSAPITestnet': {
142
200
  return '/ws-fapi/v1';
143
201
  }
202
+ case 'coinmWSAPI':
203
+ case 'coinmWSAPITestnet': {
204
+ return '/ws-dapi/v1';
205
+ }
144
206
  case 'coinm':
145
207
  case 'coinmTestnet':
146
208
  case 'eoptions':
@@ -149,8 +211,6 @@ function getWsURLSuffix(wsKey, connectionType) {
149
211
  return '/stream';
150
212
  case 'userData':
151
213
  return '/ws';
152
- case 'wsAPI':
153
- return '/ws-capi/v1';
154
214
  default: {
155
215
  throw (0, typeGuards_1.neverGuard)(connectionType, `Unhandled connectionType "${wsKey}/${connectionType}"`);
156
216
  }
@@ -185,19 +245,47 @@ const PRIVATE_TOPICS = [];
185
245
  function isPrivateWsTopic(topic) {
186
246
  return PRIVATE_TOPICS.includes(topic);
187
247
  }
188
- function getWsKeyForTopic(wsKey) {
189
- // const isPrivateTopic = isPrivate === true || PRIVATE_TOPICS.includes(topic);
248
+ function getTestnetWsKey(wsKey) {
190
249
  switch (wsKey) {
191
- // case 'v5': {
192
- // if (isPrivateTopic) {
193
- // return WS_KEY_MAP.main;
194
- // }
195
- // return WS_KEY_MAP.main;
196
- // }
197
- default: {
198
- return exports.WS_KEY_MAP.main;
199
- // throw neverGuard(wsKey, 'getWsKeyForTopic(): Unhandled market');
250
+ case exports.WS_KEY_MAP.mainTestnetPublic:
251
+ case exports.WS_KEY_MAP.mainTestnetUserData:
252
+ case exports.WS_KEY_MAP.coinmTestnet:
253
+ case exports.WS_KEY_MAP.usdmTestnet:
254
+ case exports.WS_KEY_MAP.mainWSAPITestnet:
255
+ case exports.WS_KEY_MAP.usdmWSAPITestnet:
256
+ case exports.WS_KEY_MAP.coinmWSAPITestnet: {
257
+ return wsKey;
258
+ }
259
+ case exports.WS_KEY_MAP.main:
260
+ case exports.WS_KEY_MAP.main2:
261
+ case exports.WS_KEY_MAP.main3: {
262
+ return exports.WS_KEY_MAP.mainTestnetUserData;
263
+ }
264
+ case exports.WS_KEY_MAP.mainWSAPI:
265
+ case exports.WS_KEY_MAP.mainWSAPI2: {
266
+ return exports.WS_KEY_MAP.mainWSAPITestnet;
267
+ }
268
+ case exports.WS_KEY_MAP.usdm: {
269
+ return exports.WS_KEY_MAP.usdmTestnet;
270
+ }
271
+ case exports.WS_KEY_MAP.usdmWSAPI: {
272
+ return exports.WS_KEY_MAP.usdmWSAPITestnet;
273
+ }
274
+ case exports.WS_KEY_MAP.coinm:
275
+ case exports.WS_KEY_MAP.coinm2: {
276
+ return exports.WS_KEY_MAP.coinmTestnet;
277
+ }
278
+ case exports.WS_KEY_MAP.coinmWSAPI: {
279
+ return exports.WS_KEY_MAP.coinmWSAPITestnet;
280
+ }
281
+ case exports.WS_KEY_MAP.marginRiskUserData:
282
+ case exports.WS_KEY_MAP.eoptions:
283
+ case exports.WS_KEY_MAP.portfolioMarginUserData:
284
+ case exports.WS_KEY_MAP.portfolioMarginProUserData: {
285
+ throw new Error(`Testnet not supported for "${wsKey}"`);
200
286
  }
287
+ default:
288
+ throw (0, typeGuards_1.neverGuard)(wsKey, `Unhandled wsKey "${wsKey}"`);
201
289
  }
202
290
  }
203
291
  function getWsUrl(wsKey, wsClientOptions, logger) {
@@ -205,43 +293,9 @@ function getWsUrl(wsKey, wsClientOptions, logger) {
205
293
  if (wsUrl) {
206
294
  return wsUrl;
207
295
  }
208
- // https://bybit-exchange.github.io/docs/v5/demo
209
- // const isDemoTrading = wsClientOptions.demoTrading;
210
- // if (isDemoTrading) {
211
- // return 'wss://stream-demo.bybit.com/v5/private';
212
- // }
213
- // TODO:
214
- // const isTestnet = wsClientOptions.testnet;
215
- // const networkKey = isTestnet ? 'testnet' : 'livenet';
216
- const resolvedUrl = exports.WS_KEY_URL_MAP[wsKey];
296
+ const isTestnet = !!wsClientOptions.testnet;
297
+ const resolvedUrl = exports.WS_KEY_URL_MAP[isTestnet ? getTestnetWsKey(wsKey) : wsKey];
217
298
  return resolvedUrl;
218
- // switch (wsKey) {
219
- // case WS_KEY_MAP.v5Private: {
220
- // return WS_BASE_URL_MAP.v5.private[networkKey];
221
- // }
222
- // case WS_KEY_MAP.v5PrivateTrade: {
223
- // return WS_BASE_URL_MAP[wsKey].private[networkKey];
224
- // }
225
- // case WS_KEY_MAP.v5SpotPublic: {
226
- // return WS_BASE_URL_MAP.v5SpotPublic.public[networkKey];
227
- // }
228
- // case WS_KEY_MAP.v5LinearPublic: {
229
- // return WS_BASE_URL_MAP.v5LinearPublic.public[networkKey];
230
- // }
231
- // case WS_KEY_MAP.v5InversePublic: {
232
- // return WS_BASE_URL_MAP.v5InversePublic.public[networkKey];
233
- // }
234
- // case WS_KEY_MAP.v5OptionPublic: {
235
- // return WS_BASE_URL_MAP.v5OptionPublic.public[networkKey];
236
- // }
237
- // default: {
238
- // logger.error('getWsUrl(): Unhandled wsKey: ', {
239
- // category: 'bybit-ws',
240
- // wsKey,
241
- // });
242
- // throw neverGuard(wsKey, 'getWsUrl(): Unhandled wsKey');
243
- // }
244
- // }
245
299
  }
246
300
  function getMaxTopicsPerSubscribeEvent(wsKey) {
247
301
  switch (wsKey) {
@@ -253,7 +307,7 @@ function getMaxTopicsPerSubscribeEvent(wsKey) {
253
307
  // }
254
308
  default: {
255
309
  return null;
256
- // throw neverGuard(market, 'getWsKeyForTopic(): Unhandled market');
310
+ // throw neverGuard(wsKey, 'getMaxTopicsPerSubscribeEvent(): Unhandled wsKey');
257
311
  }
258
312
  }
259
313
  }
@@ -324,8 +378,6 @@ function getTopicsPerWSKey(normalisedTopicRequests, wsKey) {
324
378
  const perWsKeyTopics = {};
325
379
  // Sort into per wsKey arrays, in case topics are mixed together for different wsKeys
326
380
  for (const topicRequest of normalisedTopicRequests) {
327
- // const derivedWsKey =
328
- // wsKey || getWsKeyForTopic(market, topicRequest.topic, isPrivateTopic);
329
381
  const derivedWsKey = wsKey;
330
382
  if (!perWsKeyTopics[derivedWsKey] ||
331
383
  !Array.isArray(perWsKeyTopics[derivedWsKey])) {
@@ -335,12 +387,18 @@ function getTopicsPerWSKey(normalisedTopicRequests, wsKey) {
335
387
  }
336
388
  return perWsKeyTopics;
337
389
  }
390
+ /**
391
+ * Some of the newer multiplex websocket topics don't include an eventType ("e") property.
392
+ *
393
+ * This attempts to extract that from the streamName, which is included with these incoming events.
394
+ */
338
395
  function parseEventTypeFromMessage(wsKey, parsedMsg) {
396
+ // console.log(`parseEventTypeFromMessage(${wsKey})`, parsedMsg);
339
397
  if (parsedMsg === null || parsedMsg === void 0 ? void 0 : parsedMsg.e) {
340
398
  return parsedMsg.e;
341
399
  }
342
- if ((parsedMsg === null || parsedMsg === void 0 ? void 0 : parsedMsg.stream) && typeof (parsedMsg === null || parsedMsg === void 0 ? void 0 : parsedMsg.stream) === 'string') {
343
- const streamName = parsedMsg.stream;
400
+ const streamName = (parsedMsg === null || parsedMsg === void 0 ? void 0 : parsedMsg.stream) || (parsedMsg === null || parsedMsg === void 0 ? void 0 : parsedMsg.streamName);
401
+ if (streamName && typeof streamName === 'string') {
344
402
  // console.log(`parseEventTypeFromMessage(${wsKey}) `, streamName, parsedMsg);
345
403
  const eventType = streamName.split('@');
346
404
  // All symbol streams can be returned as is, just need to extract the left-most text before any @ or _
@@ -390,8 +448,10 @@ function resolveUserDataMarketForWsKey(wsKey) {
390
448
  return 'usdmTestnet';
391
449
  case 'coinm':
392
450
  case 'coinm2':
451
+ case 'coinmWSAPI':
393
452
  return 'coinm';
394
453
  case 'coinmTestnet':
454
+ case 'coinmWSAPITestnet':
395
455
  return 'coinmTestnet';
396
456
  case 'eoptions':
397
457
  return 'options';
@@ -419,24 +479,52 @@ function resolveWsKeyForLegacyMarket(market) {
419
479
  }
420
480
  }
421
481
  }
422
- /**
423
- * Try to resolve event.data. Example circumstance: {"stream":"!forceOrder@arr","data":{"e":"forceOrder","E":1634653599186,"o":{"s":"IOTXUSDT","S":"SELL","o":"LIMIT","f":"IOC","q":"3661","p":"0.06606","ap":"0.06669","X":"FILLED","l":"962","z":"3661","T":1634653599180}}}
424
- */
425
- function parseRawWsMessage(event) {
482
+ function parseRawWsMessageLegacy(event) {
426
483
  if (typeof event === 'string') {
427
484
  const parsedEvent = JSON.parse(event);
485
+ // WS events are wrapped into "data"
428
486
  if (parsedEvent.data) {
429
487
  if (typeof parsedEvent.data === 'string') {
430
- return parseRawWsMessage(parsedEvent.data);
488
+ return parseRawWsMessageLegacy(parsedEvent.data);
431
489
  }
432
490
  return parsedEvent.data;
433
491
  }
492
+ // WS API wraps responses in "event"
493
+ if (parsedEvent.event) {
494
+ const { event } = parsedEvent, other = __rest(parsedEvent, ["event"]);
495
+ return Object.assign(Object.assign({}, other), event);
496
+ }
497
+ return parsedEvent;
434
498
  }
435
499
  if (event === null || event === void 0 ? void 0 : event.data) {
436
- return JSON.parse(event.data);
500
+ return parseRawWsMessageLegacy(event.data);
501
+ }
502
+ return event;
503
+ }
504
+ /**
505
+ * One simple purpose - extract JSON event from raw WS Message.
506
+ *
507
+ * Any mapping or additonal handling should not be done here.
508
+ */
509
+ function parseRawWsMessage(event) {
510
+ // WS MessageLike->data (contains JSON as a string)
511
+ if (event === null || event === void 0 ? void 0 : event.data) {
512
+ return parseRawWsMessage(event.data);
513
+ }
514
+ if (typeof event === 'string') {
515
+ // For:
516
+ // - multiplex subscriptions, as of v3
517
+ // - user data, dedicated listen key connection
518
+ // - user data, via ws api (Without listen key)
519
+ // - ws api responses
520
+ const parsedEvent = JSON.parse(event);
521
+ return parsedEvent;
437
522
  }
438
523
  return event;
439
524
  }
525
+ /**
526
+ * @deprecated Only works for legacy WS client, where one connection exists per key
527
+ */
440
528
  function getContextFromWsKey(legacyWsKey) {
441
529
  const [market, streamName, symbol, listenKey, wsKey, ...otherParams] = legacyWsKey.split('_');
442
530
  return {
@@ -478,4 +566,18 @@ function appendEventMarket(wsMsg, wsKey) {
478
566
  wsMsg.wsMarket = market;
479
567
  wsMsg.wsKey = wsKey;
480
568
  }
569
+ /**
570
+ * WebSocket.ping() is not available in browsers. This is a simple check used to
571
+ * disable heartbeats in browers, for exchanges that use native WebSocket ping/pong frames.
572
+ */
573
+ function isWSPingFrameAvailable() {
574
+ return typeof isomorphic_ws_1.default.prototype['ping'] === 'function';
575
+ }
576
+ /**
577
+ * WebSocket.pong() is not available in browsers. This is a simple check used to
578
+ * disable heartbeats in browers, for exchanges that use native WebSocket ping/pong frames.
579
+ */
580
+ function isWSPongFrameAvailable() {
581
+ return typeof isomorphic_ws_1.default.prototype['pong'] === 'function';
582
+ }
481
583
  //# sourceMappingURL=websocket-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-util.js","sourceRoot":"","sources":["../../../src/util/websockets/websocket-util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-util.js","sourceRoot":"","sources":["../../../src/util/websockets/websocket-util.ts"],"names":[],"mappings":"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"}