ccxt 4.2.31 → 4.2.34

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 (298) hide show
  1. package/.gitattributes +1 -0
  2. package/CONTRIBUTING.md +20 -1
  3. package/README.md +8 -7
  4. package/build.sh +9 -2
  5. package/cleanup.sh +3 -0
  6. package/dist/ccxt.browser.js +639 -483
  7. package/dist/ccxt.browser.min.js +3 -3
  8. package/dist/cjs/ccxt.js +1 -1
  9. package/dist/cjs/src/ace.js +3 -2
  10. package/dist/cjs/src/ascendex.js +1 -1
  11. package/dist/cjs/src/base/Exchange.js +54 -20
  12. package/dist/cjs/src/bigone.js +21 -1
  13. package/dist/cjs/src/binance.js +5 -4
  14. package/dist/cjs/src/bingx.js +4 -3
  15. package/dist/cjs/src/bit2c.js +12 -0
  16. package/dist/cjs/src/bitget.js +3 -3
  17. package/dist/cjs/src/bitmart.js +1 -1
  18. package/dist/cjs/src/bitrue.js +3 -3
  19. package/dist/cjs/src/blockchaincom.js +1 -1
  20. package/dist/cjs/src/bybit.js +1 -1
  21. package/dist/cjs/src/coinbase.js +2 -2
  22. package/dist/cjs/src/coinex.js +1 -1
  23. package/dist/cjs/src/cryptocom.js +10 -10
  24. package/dist/cjs/src/gate.js +34 -29
  25. package/dist/cjs/src/kraken.js +39 -0
  26. package/dist/cjs/src/kucoin.js +1 -1
  27. package/dist/cjs/src/mexc.js +2 -1
  28. package/dist/cjs/src/okx.js +4 -3
  29. package/dist/cjs/src/phemex.js +8 -8
  30. package/dist/cjs/src/pro/alpaca.js +8 -4
  31. package/dist/cjs/src/pro/ascendex.js +1 -2
  32. package/dist/cjs/src/pro/binance.js +14 -10
  33. package/dist/cjs/src/pro/bingx.js +1 -1
  34. package/dist/cjs/src/pro/bitfinex.js +21 -24
  35. package/dist/cjs/src/pro/bitfinex2.js +13 -17
  36. package/dist/cjs/src/pro/bitget.js +3 -1
  37. package/dist/cjs/src/pro/bitmart.js +3 -8
  38. package/dist/cjs/src/pro/bitmex.js +4 -7
  39. package/dist/cjs/src/pro/bitopro.js +2 -5
  40. package/dist/cjs/src/pro/bitrue.js +1 -1
  41. package/dist/cjs/src/pro/bitstamp.js +2 -3
  42. package/dist/cjs/src/pro/bitvavo.js +12 -5
  43. package/dist/cjs/src/pro/blockchaincom.js +22 -23
  44. package/dist/cjs/src/pro/bybit.js +5 -5
  45. package/dist/cjs/src/pro/cex.js +7 -7
  46. package/dist/cjs/src/pro/coinbase.js +3 -2
  47. package/dist/cjs/src/pro/coinbasepro.js +1 -1
  48. package/dist/cjs/src/pro/coinex.js +15 -13
  49. package/dist/cjs/src/pro/currencycom.js +5 -7
  50. package/dist/cjs/src/pro/deribit.js +4 -4
  51. package/dist/cjs/src/pro/exmo.js +15 -13
  52. package/dist/cjs/src/pro/gate.js +1 -1
  53. package/dist/cjs/src/pro/gemini.js +4 -2
  54. package/dist/cjs/src/pro/hitbtc.js +9 -8
  55. package/dist/cjs/src/pro/hollaex.js +2 -2
  56. package/dist/cjs/src/pro/htx.js +6 -7
  57. package/dist/cjs/src/pro/huobijp.js +3 -5
  58. package/dist/cjs/src/pro/idex.js +1 -1
  59. package/dist/cjs/src/pro/independentreserve.js +14 -13
  60. package/dist/cjs/src/pro/kraken.js +10 -16
  61. package/dist/cjs/src/pro/krakenfutures.js +10 -6
  62. package/dist/cjs/src/pro/kucoin.js +10 -11
  63. package/dist/cjs/src/pro/kucoinfutures.js +12 -11
  64. package/dist/cjs/src/pro/lbank.js +10 -10
  65. package/dist/cjs/src/pro/luno.js +12 -14
  66. package/dist/cjs/src/pro/mexc.js +3 -2
  67. package/dist/cjs/src/pro/ndax.js +7 -13
  68. package/dist/cjs/src/pro/okcoin.js +7 -12
  69. package/dist/cjs/src/pro/okx.js +6 -11
  70. package/dist/cjs/src/pro/onetrading.js +16 -15
  71. package/dist/cjs/src/pro/p2b.js +5 -3
  72. package/dist/cjs/src/pro/phemex.js +16 -11
  73. package/dist/cjs/src/pro/poloniex.js +6 -4
  74. package/dist/cjs/src/pro/poloniexfutures.js +14 -9
  75. package/dist/cjs/src/pro/probit.js +15 -11
  76. package/dist/cjs/src/pro/upbit.js +8 -8
  77. package/dist/cjs/src/pro/wazirx.js +6 -3
  78. package/dist/cjs/src/pro/woo.js +8 -6
  79. package/dist/cjs/src/probit.js +3 -3
  80. package/dist/cjs/src/tokocrypto.js +2 -2
  81. package/dist/cjs/src/wavesexchange.js +2 -1
  82. package/dist/cjs/src/woo.js +1 -1
  83. package/dist/cjs/src/yobit.js +39 -0
  84. package/js/ccxt.d.ts +1 -1
  85. package/js/ccxt.js +1 -1
  86. package/js/src/ace.d.ts +1 -1
  87. package/js/src/ace.js +3 -2
  88. package/js/src/alpaca.d.ts +1 -1
  89. package/js/src/ascendex.d.ts +5 -15
  90. package/js/src/ascendex.js +1 -1
  91. package/js/src/base/Exchange.d.ts +87 -78
  92. package/js/src/base/Exchange.js +54 -20
  93. package/js/src/base/types.d.ts +90 -6
  94. package/js/src/bigone.d.ts +5 -15
  95. package/js/src/bigone.js +21 -1
  96. package/js/src/binance.d.ts +13 -23
  97. package/js/src/binance.js +5 -4
  98. package/js/src/bingx.d.ts +6 -16
  99. package/js/src/bingx.js +4 -3
  100. package/js/src/bit2c.d.ts +1 -1
  101. package/js/src/bit2c.js +12 -0
  102. package/js/src/bitbank.d.ts +2 -2
  103. package/js/src/bitbns.d.ts +1 -1
  104. package/js/src/bitfinex.d.ts +5 -5
  105. package/js/src/bitfinex2.d.ts +7 -17
  106. package/js/src/bitflyer.d.ts +5 -5
  107. package/js/src/bitforex.d.ts +1 -1
  108. package/js/src/bitget.d.ts +8 -38
  109. package/js/src/bitget.js +3 -3
  110. package/js/src/bithumb.d.ts +2 -2
  111. package/js/src/bitmart.d.ts +10 -21
  112. package/js/src/bitmart.js +1 -1
  113. package/js/src/bitmex.d.ts +3 -3
  114. package/js/src/bitopro.d.ts +2 -2
  115. package/js/src/bitrue.d.ts +5 -15
  116. package/js/src/bitrue.js +3 -3
  117. package/js/src/bitso.d.ts +4 -4
  118. package/js/src/bitstamp.d.ts +2 -2
  119. package/js/src/bitteam.d.ts +1 -1
  120. package/js/src/bitvavo.d.ts +3 -3
  121. package/js/src/bl3p.d.ts +1 -1
  122. package/js/src/blockchaincom.d.ts +2 -2
  123. package/js/src/blockchaincom.js +1 -1
  124. package/js/src/btcalpha.d.ts +1 -1
  125. package/js/src/btcbox.d.ts +1 -1
  126. package/js/src/btcmarkets.d.ts +3 -3
  127. package/js/src/btcturk.d.ts +1 -1
  128. package/js/src/bybit.d.ts +8 -8
  129. package/js/src/bybit.js +1 -1
  130. package/js/src/cex.d.ts +1 -1
  131. package/js/src/coinbase.d.ts +6 -50
  132. package/js/src/coinbase.js +2 -2
  133. package/js/src/coinbasepro.d.ts +2 -2
  134. package/js/src/coincheck.d.ts +1 -1
  135. package/js/src/coinex.d.ts +8 -8
  136. package/js/src/coinex.js +1 -1
  137. package/js/src/coinlist.d.ts +4 -14
  138. package/js/src/coinmate.d.ts +2 -2
  139. package/js/src/coinmetro.d.ts +2 -2
  140. package/js/src/coinone.d.ts +1 -1
  141. package/js/src/coinsph.d.ts +2 -2
  142. package/js/src/coinspot.d.ts +1 -1
  143. package/js/src/cryptocom.d.ts +4 -4
  144. package/js/src/cryptocom.js +10 -10
  145. package/js/src/currencycom.d.ts +2 -2
  146. package/js/src/delta.d.ts +2 -2
  147. package/js/src/deribit.d.ts +4 -14
  148. package/js/src/digifinex.d.ts +10 -38
  149. package/js/src/exmo.d.ts +2 -2
  150. package/js/src/gate.d.ts +8 -18
  151. package/js/src/gate.js +34 -29
  152. package/js/src/gemini.d.ts +2 -2
  153. package/js/src/hitbtc.d.ts +6 -16
  154. package/js/src/hollaex.d.ts +2 -2
  155. package/js/src/htx.d.ts +11 -21
  156. package/js/src/huobijp.d.ts +4 -4
  157. package/js/src/idex.d.ts +3 -3
  158. package/js/src/independentreserve.d.ts +2 -2
  159. package/js/src/indodax.d.ts +2 -2
  160. package/js/src/kraken.d.ts +5 -5
  161. package/js/src/kraken.js +39 -0
  162. package/js/src/krakenfutures.d.ts +7 -7
  163. package/js/src/kucoin.d.ts +8 -29
  164. package/js/src/kucoin.js +1 -1
  165. package/js/src/kucoinfutures.d.ts +4 -4
  166. package/js/src/kuna.d.ts +2 -2
  167. package/js/src/latoken.d.ts +4 -14
  168. package/js/src/lbank.d.ts +2 -5
  169. package/js/src/luno.d.ts +1 -1
  170. package/js/src/lykke.d.ts +2 -2
  171. package/js/src/mercado.d.ts +2 -2
  172. package/js/src/mexc.d.ts +6 -6
  173. package/js/src/mexc.js +2 -1
  174. package/js/src/ndax.d.ts +2 -2
  175. package/js/src/novadax.d.ts +4 -15
  176. package/js/src/oceanex.d.ts +1 -1
  177. package/js/src/okcoin.d.ts +5 -15
  178. package/js/src/okx.d.ts +8 -18
  179. package/js/src/okx.js +4 -3
  180. package/js/src/onetrading.d.ts +2 -2
  181. package/js/src/p2b.d.ts +1 -1
  182. package/js/src/paymium.d.ts +3 -13
  183. package/js/src/phemex.d.ts +5 -5
  184. package/js/src/phemex.js +8 -8
  185. package/js/src/poloniex.d.ts +4 -14
  186. package/js/src/poloniexfutures.d.ts +1 -1
  187. package/js/src/pro/alpaca.d.ts +2 -2
  188. package/js/src/pro/alpaca.js +8 -4
  189. package/js/src/pro/ascendex.d.ts +2 -2
  190. package/js/src/pro/ascendex.js +1 -2
  191. package/js/src/pro/binance.d.ts +3 -3
  192. package/js/src/pro/binance.js +14 -10
  193. package/js/src/pro/bingx.d.ts +1 -1
  194. package/js/src/pro/bingx.js +1 -1
  195. package/js/src/pro/bitfinex.d.ts +2 -2
  196. package/js/src/pro/bitfinex.js +21 -24
  197. package/js/src/pro/bitfinex2.d.ts +2 -2
  198. package/js/src/pro/bitfinex2.js +13 -17
  199. package/js/src/pro/bitget.js +3 -1
  200. package/js/src/pro/bitmart.d.ts +3 -3
  201. package/js/src/pro/bitmart.js +3 -8
  202. package/js/src/pro/bitmex.d.ts +1 -1
  203. package/js/src/pro/bitmex.js +4 -7
  204. package/js/src/pro/bitopro.d.ts +1 -1
  205. package/js/src/pro/bitopro.js +2 -5
  206. package/js/src/pro/bitrue.js +1 -1
  207. package/js/src/pro/bitstamp.d.ts +1 -1
  208. package/js/src/pro/bitstamp.js +2 -3
  209. package/js/src/pro/bitvavo.d.ts +3 -3
  210. package/js/src/pro/bitvavo.js +12 -5
  211. package/js/src/pro/blockchaincom.d.ts +8 -8
  212. package/js/src/pro/blockchaincom.js +22 -23
  213. package/js/src/pro/bybit.d.ts +2 -2
  214. package/js/src/pro/bybit.js +5 -5
  215. package/js/src/pro/cex.d.ts +1 -1
  216. package/js/src/pro/cex.js +7 -7
  217. package/js/src/pro/coinbase.d.ts +1 -1
  218. package/js/src/pro/coinbase.js +3 -2
  219. package/js/src/pro/coinbasepro.d.ts +1 -1
  220. package/js/src/pro/coinbasepro.js +1 -1
  221. package/js/src/pro/coinex.d.ts +2 -2
  222. package/js/src/pro/coinex.js +15 -13
  223. package/js/src/pro/currencycom.d.ts +1 -1
  224. package/js/src/pro/currencycom.js +5 -7
  225. package/js/src/pro/deribit.d.ts +2 -2
  226. package/js/src/pro/deribit.js +4 -4
  227. package/js/src/pro/exmo.d.ts +2 -2
  228. package/js/src/pro/exmo.js +15 -13
  229. package/js/src/pro/gate.js +1 -1
  230. package/js/src/pro/gemini.d.ts +1 -1
  231. package/js/src/pro/gemini.js +4 -2
  232. package/js/src/pro/hitbtc.d.ts +2 -2
  233. package/js/src/pro/hitbtc.js +9 -8
  234. package/js/src/pro/hollaex.d.ts +2 -2
  235. package/js/src/pro/hollaex.js +2 -2
  236. package/js/src/pro/htx.d.ts +2 -2
  237. package/js/src/pro/htx.js +6 -7
  238. package/js/src/pro/huobijp.d.ts +1 -1
  239. package/js/src/pro/huobijp.js +3 -5
  240. package/js/src/pro/idex.js +1 -1
  241. package/js/src/pro/independentreserve.d.ts +1 -1
  242. package/js/src/pro/independentreserve.js +14 -13
  243. package/js/src/pro/kraken.d.ts +2 -2
  244. package/js/src/pro/kraken.js +10 -16
  245. package/js/src/pro/krakenfutures.d.ts +1 -1
  246. package/js/src/pro/krakenfutures.js +10 -6
  247. package/js/src/pro/kucoin.d.ts +3 -3
  248. package/js/src/pro/kucoin.js +10 -11
  249. package/js/src/pro/kucoinfutures.d.ts +3 -3
  250. package/js/src/pro/kucoinfutures.js +12 -11
  251. package/js/src/pro/lbank.d.ts +1 -1
  252. package/js/src/pro/lbank.js +10 -10
  253. package/js/src/pro/luno.d.ts +2 -2
  254. package/js/src/pro/luno.js +12 -14
  255. package/js/src/pro/mexc.d.ts +2 -2
  256. package/js/src/pro/mexc.js +3 -2
  257. package/js/src/pro/ndax.d.ts +3 -3
  258. package/js/src/pro/ndax.js +7 -13
  259. package/js/src/pro/okcoin.d.ts +1 -1
  260. package/js/src/pro/okcoin.js +7 -12
  261. package/js/src/pro/okx.d.ts +1 -1
  262. package/js/src/pro/okx.js +6 -11
  263. package/js/src/pro/onetrading.d.ts +1 -1
  264. package/js/src/pro/onetrading.js +16 -15
  265. package/js/src/pro/p2b.d.ts +1 -1
  266. package/js/src/pro/p2b.js +5 -3
  267. package/js/src/pro/phemex.d.ts +3 -3
  268. package/js/src/pro/phemex.js +16 -11
  269. package/js/src/pro/poloniex.d.ts +1 -1
  270. package/js/src/pro/poloniex.js +6 -4
  271. package/js/src/pro/poloniexfutures.d.ts +4 -4
  272. package/js/src/pro/poloniexfutures.js +13 -10
  273. package/js/src/pro/probit.d.ts +1 -1
  274. package/js/src/pro/probit.js +14 -12
  275. package/js/src/pro/upbit.js +8 -8
  276. package/js/src/pro/wazirx.d.ts +1 -1
  277. package/js/src/pro/wazirx.js +6 -3
  278. package/js/src/pro/woo.d.ts +3 -3
  279. package/js/src/pro/woo.js +8 -6
  280. package/js/src/probit.d.ts +3 -3
  281. package/js/src/probit.js +3 -3
  282. package/js/src/timex.d.ts +1 -1
  283. package/js/src/tokocrypto.d.ts +3 -3
  284. package/js/src/tokocrypto.js +2 -2
  285. package/js/src/upbit.d.ts +2 -2
  286. package/js/src/wavesexchange.d.ts +3 -4
  287. package/js/src/wavesexchange.js +2 -1
  288. package/js/src/wazirx.d.ts +1 -1
  289. package/js/src/whitebit.d.ts +5 -15
  290. package/js/src/woo.d.ts +5 -15
  291. package/js/src/woo.js +1 -1
  292. package/js/src/yobit.d.ts +21 -6
  293. package/js/src/yobit.js +39 -0
  294. package/js/src/zaif.d.ts +2 -2
  295. package/js/src/zonda.d.ts +4 -14
  296. package/package.json +22 -8
  297. package/skip-tests.json +9 -1
  298. package/tests-manager.sh +1 -2
@@ -135,7 +135,6 @@ export default class bitfinex extends bitfinexRest {
135
135
  stored.append(trade);
136
136
  }
137
137
  client.resolve(stored, messageHash);
138
- return message;
139
138
  }
140
139
  parseTrade(trade, market = undefined) {
141
140
  //
@@ -325,8 +324,9 @@ export default class bitfinex extends bitfinexRest {
325
324
  const delta = deltas[i];
326
325
  const id = this.safeString(delta, 0);
327
326
  const price = this.safeFloat(delta, 1);
328
- const size = (delta[2] < 0) ? -delta[2] : delta[2];
329
- const side = (delta[2] < 0) ? 'asks' : 'bids';
327
+ const delta2Value = delta[2];
328
+ const size = (delta2Value < 0) ? -delta2Value : delta2Value;
329
+ const side = (delta2Value < 0) ? 'asks' : 'bids';
330
330
  const bookside = orderbook[side];
331
331
  bookside.store(price, size, id);
332
332
  }
@@ -335,10 +335,11 @@ export default class bitfinex extends bitfinexRest {
335
335
  const deltas = message[1];
336
336
  for (let i = 0; i < deltas.length; i++) {
337
337
  const delta = deltas[i];
338
- const size = (delta[2] < 0) ? -delta[2] : delta[2];
339
- const side = (delta[2] < 0) ? 'asks' : 'bids';
340
- const bookside = orderbook[side];
341
- bookside.store(delta[0], size, delta[1]);
338
+ const delta2 = delta[2];
339
+ const size = (delta2 < 0) ? -delta2 : delta2;
340
+ const side = (delta2 < 0) ? 'asks' : 'bids';
341
+ const countedBookSide = orderbook[side];
342
+ countedBookSide.store(delta[0], size, delta[1]);
342
343
  }
343
344
  }
344
345
  client.resolve(orderbook, messageHash);
@@ -348,18 +349,20 @@ export default class bitfinex extends bitfinexRest {
348
349
  if (isRaw) {
349
350
  const id = this.safeString(message, 1);
350
351
  const price = this.safeString(message, 2);
351
- const size = (message[3] < 0) ? -message[3] : message[3];
352
- const side = (message[3] < 0) ? 'asks' : 'bids';
352
+ const message3 = message[3];
353
+ const size = (message3 < 0) ? -message3 : message3;
354
+ const side = (message3 < 0) ? 'asks' : 'bids';
353
355
  const bookside = orderbook[side];
354
356
  // price = 0 means that you have to remove the order from your book
355
357
  const amount = Precise.stringGt(price, '0') ? size : '0';
356
358
  bookside.store(this.parseNumber(price), this.parseNumber(amount), id);
357
359
  }
358
360
  else {
359
- const size = (message[3] < 0) ? -message[3] : message[3];
360
- const side = (message[3] < 0) ? 'asks' : 'bids';
361
- const bookside = orderbook[side];
362
- bookside.store(message[1], size, message[2]);
361
+ const message3Value = message[3];
362
+ const size = (message3Value < 0) ? -message3Value : message3Value;
363
+ const side = (message3Value < 0) ? 'asks' : 'bids';
364
+ const countedBookSide = orderbook[side];
365
+ countedBookSide.store(message[1], size, message[2]);
363
366
  }
364
367
  client.resolve(orderbook, messageHash);
365
368
  }
@@ -620,7 +623,7 @@ export default class bitfinex extends bitfinexRest {
620
623
  // ]
621
624
  //
622
625
  if (message[1] === 'hb') {
623
- return message; // skip heartbeats within subscription channels for now
626
+ return; // skip heartbeats within subscription channels for now
624
627
  }
625
628
  const subscription = this.safeValue(client.subscriptions, channelId, {});
626
629
  const channel = this.safeString(subscription, 'channel');
@@ -635,11 +638,8 @@ export default class bitfinex extends bitfinexRest {
635
638
  'oc': this.handleOrders,
636
639
  };
637
640
  const method = this.safeValue2(methods, channel, name);
638
- if (method === undefined) {
639
- return message;
640
- }
641
- else {
642
- return method.call(this, client, message, subscription);
641
+ if (method !== undefined) {
642
+ method.call(this, client, message, subscription);
643
643
  }
644
644
  }
645
645
  else {
@@ -661,11 +661,8 @@ export default class bitfinex extends bitfinexRest {
661
661
  'auth': this.handleAuthenticationMessage,
662
662
  };
663
663
  const method = this.safeValue(methods, event);
664
- if (method === undefined) {
665
- return message;
666
- }
667
- else {
668
- return method.call(this, client, message);
664
+ if (method !== undefined) {
665
+ method.call(this, client, message);
669
666
  }
670
667
  }
671
668
  }
@@ -11,7 +11,7 @@ export default class bitfinex2 extends bitfinex2Rest {
11
11
  watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
12
12
  watchTicker(symbol: string, params?: {}): Promise<Ticker>;
13
13
  handleMyTrade(client: Client, message: any, subscription?: {}): void;
14
- handleTrades(client: Client, message: any, subscription: any): any;
14
+ handleTrades(client: Client, message: any, subscription: any): void;
15
15
  parseWsTrade(trade: any, market?: any): Trade;
16
16
  handleTicker(client: Client, message: any, subscription: any): void;
17
17
  parseWsTicker(ticker: any, market?: any): Ticker;
@@ -29,5 +29,5 @@ export default class bitfinex2 extends bitfinex2Rest {
29
29
  handleOrders(client: Client, message: any, subscription: any): void;
30
30
  parseWsOrderStatus(status: any): string;
31
31
  parseWsOrder(order: any, market?: any): Order;
32
- handleMessage(client: Client, message: any): any;
32
+ handleMessage(client: Client, message: any): void;
33
33
  }
@@ -342,7 +342,6 @@ export default class bitfinex2 extends bitfinex2Rest {
342
342
  stored.append(parsed);
343
343
  }
344
344
  client.resolve(stored, messageHash);
345
- return message;
346
345
  }
347
346
  parseWsTrade(trade, market = undefined) {
348
347
  //
@@ -594,8 +593,9 @@ export default class bitfinex2 extends bitfinex2Rest {
594
593
  const deltas = message[1];
595
594
  for (let i = 0; i < deltas.length; i++) {
596
595
  const delta = deltas[i];
597
- const size = (delta[2] < 0) ? -delta[2] : delta[2];
598
- const side = (delta[2] < 0) ? 'asks' : 'bids';
596
+ const delta2 = delta[2];
597
+ const size = (delta2 < 0) ? -delta2 : delta2;
598
+ const side = (delta2 < 0) ? 'asks' : 'bids';
599
599
  const bookside = orderbook[side];
600
600
  const idString = this.safeString(delta, 0);
601
601
  const price = this.safeFloat(delta, 1);
@@ -623,8 +623,9 @@ export default class bitfinex2 extends bitfinex2Rest {
623
623
  const orderbookItem = this.orderbooks[symbol];
624
624
  if (isRaw) {
625
625
  const price = this.safeString(deltas, 1);
626
- const size = (deltas[2] < 0) ? -deltas[2] : deltas[2];
627
- const side = (deltas[2] < 0) ? 'asks' : 'bids';
626
+ const deltas2 = deltas[2];
627
+ const size = (deltas2 < 0) ? -deltas2 : deltas2;
628
+ const side = (deltas2 < 0) ? 'asks' : 'bids';
628
629
  const bookside = orderbookItem[side];
629
630
  // price = 0 means that you have to remove the order from your book
630
631
  const amount = Precise.stringGt(price, '0') ? size : '0';
@@ -672,7 +673,8 @@ export default class bitfinex2 extends bitfinex2Rest {
672
673
  }
673
674
  if (ask !== undefined) {
674
675
  stringArray.push(this.numberToString(asks[i][idToCheck]));
675
- stringArray.push(this.numberToString(-asks[i][1]));
676
+ const aski1 = asks[i][1];
677
+ stringArray.push(this.numberToString(-aski1));
676
678
  }
677
679
  }
678
680
  const payload = stringArray.join(':');
@@ -1104,7 +1106,7 @@ export default class bitfinex2 extends bitfinex2Rest {
1104
1106
  //
1105
1107
  if (Array.isArray(message)) {
1106
1108
  if (message[1] === 'hb') {
1107
- return message; // skip heartbeats within subscription channels for now
1109
+ return; // skip heartbeats within subscription channels for now
1108
1110
  }
1109
1111
  const subscription = this.safeValue(client.subscriptions, channelId, {});
1110
1112
  const channel = this.safeString(subscription, 'channel');
@@ -1132,11 +1134,8 @@ export default class bitfinex2 extends bitfinex2Rest {
1132
1134
  else {
1133
1135
  method = this.safeValue2(publicMethods, name, channel);
1134
1136
  }
1135
- if (method === undefined) {
1136
- return message;
1137
- }
1138
- else {
1139
- return method.call(this, client, message, subscription);
1137
+ if (method !== undefined) {
1138
+ method.call(this, client, message, subscription);
1140
1139
  }
1141
1140
  }
1142
1141
  else {
@@ -1148,11 +1147,8 @@ export default class bitfinex2 extends bitfinex2Rest {
1148
1147
  'auth': this.handleAuthenticationMessage,
1149
1148
  };
1150
1149
  const method = this.safeValue(methods, event);
1151
- if (method === undefined) {
1152
- return message;
1153
- }
1154
- else {
1155
- return method.call(this, client, message);
1150
+ if (method !== undefined) {
1151
+ method.call(this, client, message);
1156
1152
  }
1157
1153
  }
1158
1154
  }
@@ -98,7 +98,9 @@ export default class bitget extends bitgetRest {
98
98
  else {
99
99
  instType = 'SPOT';
100
100
  }
101
- [instType, params] = this.handleOptionAndParams(params, 'getInstType', 'instType', instType);
101
+ let instypeAux = undefined;
102
+ [instypeAux, params] = this.handleOptionAndParams(params, 'getInstType', 'instType', instType);
103
+ instType = instypeAux;
102
104
  return [instType, params];
103
105
  }
104
106
  async watchTicker(symbol, params = {}) {
@@ -19,9 +19,9 @@ export default class bitmart extends bitmartRest {
19
19
  watchPositions(symbols?: Strings, since?: Int, limit?: Int, params?: {}): Promise<Position[]>;
20
20
  handlePositions(client: Client, message: any): void;
21
21
  parseWsPosition(position: any, market?: Market): Position;
22
- handleTrade(client: Client, message: any): any;
22
+ handleTrade(client: Client, message: any): void;
23
23
  parseWsTrade(trade: any, market?: Market): Trade;
24
- handleTicker(client: Client, message: any): any;
24
+ handleTicker(client: Client, message: any): void;
25
25
  resolveMessageHashesForSymbol(client: any, symbol: any, result: any, prexif: any): void;
26
26
  parseWsSwapTicker(ticker: any, market?: Market): Ticker;
27
27
  watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
@@ -35,5 +35,5 @@ export default class bitmart extends bitmartRest {
35
35
  handleSubscriptionStatus(client: Client, message: any): any;
36
36
  handleAuthenticate(client: Client, message: any): void;
37
37
  handleErrorMessage(client: Client, message: any): boolean;
38
- handleMessage(client: Client, message: any): any;
38
+ handleMessage(client: Client, message: any): void;
39
39
  }
@@ -819,7 +819,6 @@ export default class bitmart extends bitmartRest {
819
819
  messageHash += ':' + this.safeString(data[0], 'symbol');
820
820
  }
821
821
  client.resolve(stored, messageHash);
822
- return message;
823
822
  }
824
823
  parseWsTrade(trade, market = undefined) {
825
824
  // spot
@@ -921,7 +920,6 @@ export default class bitmart extends bitmartRest {
921
920
  client.resolve(ticker, 'tickers::swap');
922
921
  this.resolveMessageHashesForSymbol(client, symbol, ticker, 'tickers::');
923
922
  }
924
- return message;
925
923
  }
926
924
  resolveMessageHashesForSymbol(client, symbol, result, prexif) {
927
925
  const prefixSeparator = '::';
@@ -1455,11 +1453,8 @@ export default class bitmart extends bitmartRest {
1455
1453
  'subscribe': this.handleSubscriptionStatus,
1456
1454
  };
1457
1455
  const method = this.safeValue(methods, event);
1458
- if (method === undefined) {
1459
- return message;
1460
- }
1461
- else {
1462
- return method.call(this, client, message);
1456
+ if (method !== undefined) {
1457
+ method.call(this, client, message);
1463
1458
  }
1464
1459
  }
1465
1460
  }
@@ -1479,7 +1474,7 @@ export default class bitmart extends bitmartRest {
1479
1474
  const key = keys[i];
1480
1475
  if (channel.indexOf(key) >= 0) {
1481
1476
  const method = this.safeValue(methods, key);
1482
- return method.call(this, client, message);
1477
+ method.call(this, client, message);
1483
1478
  }
1484
1479
  }
1485
1480
  }
@@ -27,5 +27,5 @@ export default class bitmex extends bitmexRest {
27
27
  handleSystemStatus(client: Client, message: any): any;
28
28
  handleSubscriptionStatus(client: Client, message: any): any;
29
29
  handleErrorMessage(client: Client, message: any): boolean;
30
- handleMessage(client: Client, message: any): any;
30
+ handleMessage(client: Client, message: any): void;
31
31
  }
@@ -1527,7 +1527,7 @@ export default class bitmex extends bitmexRest {
1527
1527
  //
1528
1528
  // { "error": "Rate limit exceeded, retry in 29 seconds." }
1529
1529
  //
1530
- const error = this.safeValue(message, 'error');
1530
+ const error = this.safeString(message, 'error');
1531
1531
  if (error !== undefined) {
1532
1532
  const request = this.safeValue(message, 'request', {});
1533
1533
  const args = this.safeValue(request, 'args', []);
@@ -1538,7 +1538,7 @@ export default class bitmex extends bitmexRest {
1538
1538
  const broadKey = this.findBroadlyMatchedKey(broad, error);
1539
1539
  let exception = undefined;
1540
1540
  if (broadKey === undefined) {
1541
- exception = new ExchangeError(error);
1541
+ exception = new ExchangeError(error); // c# requirement for now
1542
1542
  }
1543
1543
  else {
1544
1544
  exception = new broad[broadKey](error);
@@ -1606,14 +1606,11 @@ export default class bitmex extends bitmexRest {
1606
1606
  const request = this.safeValue(message, 'request', {});
1607
1607
  const op = this.safeValue(request, 'op');
1608
1608
  if (op === 'authKeyExpires') {
1609
- return this.handleAuthenticationMessage.call(this, client, message);
1610
- }
1611
- else {
1612
- return message;
1609
+ this.handleAuthenticationMessage(client, message);
1613
1610
  }
1614
1611
  }
1615
1612
  else {
1616
- return method.call(this, client, message);
1613
+ method.call(this, client, message);
1617
1614
  }
1618
1615
  }
1619
1616
  }
@@ -16,5 +16,5 @@ export default class bitopro extends bitoproRest {
16
16
  authenticate(url: any): void;
17
17
  watchBalance(params?: {}): Promise<Balances>;
18
18
  handleBalance(client: Client, message: any): void;
19
- handleMessage(client: Client, message: any): any;
19
+ handleMessage(client: Client, message: any): void;
20
20
  }
@@ -467,11 +467,8 @@ export default class bitopro extends bitoproRest {
467
467
  };
468
468
  const event = this.safeString(message, 'event');
469
469
  const method = this.safeValue(methods, event);
470
- if (method === undefined) {
471
- return message;
472
- }
473
- else {
474
- return method.call(this, client, message);
470
+ if (method !== undefined) {
471
+ method.call(this, client, message);
475
472
  }
476
473
  }
477
474
  }
@@ -422,7 +422,7 @@ export default class bitrue extends bitrueRest {
422
422
  catch (error) {
423
423
  this.options['listenKey'] = undefined;
424
424
  this.options['listenKeyUrl'] = undefined;
425
- return;
425
+ return undefined;
426
426
  }
427
427
  //
428
428
  // {
@@ -19,6 +19,6 @@ export default class bitstamp extends bitstampRest {
19
19
  handleSubject(client: Client, message: any): void;
20
20
  handleErrorMessage(client: Client, message: any): any;
21
21
  handleMessage(client: Client, message: any): void;
22
- authenticate(params?: {}): Promise<any>;
22
+ authenticate(params?: {}): Promise<void>;
23
23
  subscribePrivate(subscription: any, messageHash: any, params?: {}): Promise<any>;
24
24
  }
@@ -501,10 +501,10 @@ export default class bitstamp extends bitstampRest {
501
501
  //
502
502
  const event = this.safeString(message, 'event');
503
503
  if (event === 'bts:subscription_succeeded') {
504
- return this.handleSubscriptionStatus(client, message);
504
+ this.handleSubscriptionStatus(client, message);
505
505
  }
506
506
  else {
507
- return this.handleSubject(client, message);
507
+ this.handleSubject(client, message);
508
508
  }
509
509
  }
510
510
  async authenticate(params = {}) {
@@ -527,7 +527,6 @@ export default class bitstamp extends bitstampRest {
527
527
  this.options['expiresIn'] = this.sum(time, validity);
528
528
  this.options['userId'] = userId;
529
529
  this.options['wsSessionToken'] = sessionToken;
530
- return response;
531
530
  }
532
531
  }
533
532
  }
@@ -17,12 +17,12 @@ export default class bitvavo extends bitvavoRest {
17
17
  handleOrderBookMessage(client: Client, message: any, orderbook: any): any;
18
18
  handleOrderBook(client: Client, message: any): void;
19
19
  watchOrderBookSnapshot(client: any, message: any, subscription: any): Promise<any>;
20
- handleOrderBookSnapshot(client: Client, message: any): any;
20
+ handleOrderBookSnapshot(client: Client, message: any): void;
21
21
  handleOrderBookSubscription(client: Client, message: any, subscription: any): void;
22
22
  handleOrderBookSubscriptions(client: Client, message: any, marketIds: any): void;
23
23
  watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
24
24
  watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
25
- createOrderWs(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
25
+ createOrderWs(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: number, params?: {}): Promise<Order>;
26
26
  editOrderWs(id: string, symbol: any, type: any, side: any, amount?: any, price?: any, params?: {}): Promise<Order>;
27
27
  cancelOrderWs(id: string, symbol?: string, params?: {}): Promise<any>;
28
28
  cancelAllOrdersWs(symbol?: string, params?: {}): Promise<any>;
@@ -56,7 +56,7 @@ export default class bitvavo extends bitvavoRest {
56
56
  handleOrder(client: Client, message: any): void;
57
57
  handleMyTrade(client: Client, message: any): void;
58
58
  handleSubscriptionStatus(client: Client, message: any): any;
59
- authenticate(params?: {}): any;
59
+ authenticate(params?: {}): Promise<any>;
60
60
  handleAuthenticationMessage(client: Client, message: any): void;
61
61
  handleErrorMessage(client: Client, message: any): void;
62
62
  handleMessage(client: Client, message: any): void;
@@ -415,7 +415,7 @@ export default class bitvavo extends bitvavoRest {
415
415
  //
416
416
  const response = this.safeValue(message, 'response');
417
417
  if (response === undefined) {
418
- return message;
418
+ return;
419
419
  }
420
420
  const marketId = this.safeString(response, 'market');
421
421
  const symbol = this.safeSymbol(marketId, undefined, '-');
@@ -1197,7 +1197,7 @@ export default class bitvavo extends bitvavoRest {
1197
1197
  }
1198
1198
  return message;
1199
1199
  }
1200
- authenticate(params = {}) {
1200
+ async authenticate(params = {}) {
1201
1201
  const url = this.urls['api']['ws'];
1202
1202
  const client = this.client(url);
1203
1203
  const messageHash = 'authenticated';
@@ -1342,9 +1342,16 @@ export default class bitvavo extends bitvavoRest {
1342
1342
  'getCandles': this.handleFetchOHLCV,
1343
1343
  'getMarkets': this.handleMarkets,
1344
1344
  };
1345
- const event = this.safeString2(message, 'event', 'action');
1346
- const method = this.safeValue(methods, event);
1347
- if (method !== undefined) {
1345
+ const event = this.safeString(message, 'event');
1346
+ let method = this.safeValue(methods, event);
1347
+ if (method === undefined) {
1348
+ const action = this.safeString(message, 'action');
1349
+ method = this.safeValue(methods, action);
1350
+ if (method !== undefined) {
1351
+ method.call(this, client, message);
1352
+ }
1353
+ }
1354
+ else {
1348
1355
  method.call(this, client, message);
1349
1356
  }
1350
1357
  }
@@ -4,25 +4,25 @@ import Client from '../base/ws/Client.js';
4
4
  export default class blockchaincom extends blockchaincomRest {
5
5
  describe(): any;
6
6
  watchBalance(params?: {}): Promise<Balances>;
7
- handleBalance(client: Client, message: any): any;
7
+ handleBalance(client: Client, message: any): void;
8
8
  watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
9
- handleOHLCV(client: Client, message: any): any;
9
+ handleOHLCV(client: Client, message: any): void;
10
10
  watchTicker(symbol: string, params?: {}): Promise<Ticker>;
11
- handleTicker(client: Client, message: any): any;
11
+ handleTicker(client: Client, message: any): void;
12
12
  parseWsUpdatedTicker(ticker: any, lastTicker?: any, market?: any): Ticker;
13
13
  watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
14
- handleTrades(client: Client, message: any): any;
14
+ handleTrades(client: Client, message: any): void;
15
15
  parseWsTrade(trade: any, market?: any): Trade;
16
16
  watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
17
- handleOrders(client: Client, message: any): any;
17
+ handleOrders(client: Client, message: any): void;
18
18
  parseWsOrder(order: any, market?: any): Order;
19
19
  parseWsOrderStatus(status: any): string;
20
20
  watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
21
- handleOrderBook(client: Client, message: any): any;
21
+ handleOrderBook(client: Client, message: any): void;
22
22
  handleDelta(bookside: any, delta: any): void;
23
23
  handleDeltas(bookside: any, deltas: any): void;
24
24
  checkSequenceNumber(client: Client, message: any): void;
25
- handleMessage(client: Client, message: any): any;
25
+ handleMessage(client: Client, message: any): void;
26
26
  handleAuthenticationMessage(client: Client, message: any): void;
27
- authenticate(params?: {}): any;
27
+ authenticate(params?: {}): Promise<any>;
28
28
  }
@@ -102,7 +102,7 @@ export default class blockchaincom extends blockchaincomRest {
102
102
  //
103
103
  const event = this.safeString(message, 'event');
104
104
  if (event === 'subscribed') {
105
- return message;
105
+ return;
106
106
  }
107
107
  const result = { 'info': message };
108
108
  const balances = this.safeValue(message, 'balances', []);
@@ -172,11 +172,9 @@ export default class blockchaincom extends blockchaincomRest {
172
172
  // }
173
173
  //
174
174
  const event = this.safeString(message, 'event');
175
- if (event === 'subscribed') {
176
- return message;
177
- }
178
- else if (event === 'rejected') {
179
- throw new ExchangeError(this.id + ' ' + this.json(message));
175
+ if (event === 'rejected') {
176
+ const jsonMessage = this.json(message);
177
+ throw new ExchangeError(this.id + ' ' + jsonMessage);
180
178
  }
181
179
  else if (event === 'updated') {
182
180
  const marketId = this.safeString(message, 'symbol');
@@ -196,7 +194,7 @@ export default class blockchaincom extends blockchaincomRest {
196
194
  stored.append(ohlcv);
197
195
  client.resolve(stored, messageHash);
198
196
  }
199
- else {
197
+ else if (event !== 'subscribed') {
200
198
  throw new NotSupported(this.id + ' ' + this.json(message));
201
199
  }
202
200
  }
@@ -258,7 +256,7 @@ export default class blockchaincom extends blockchaincomRest {
258
256
  const symbol = market['symbol'];
259
257
  let ticker = undefined;
260
258
  if (event === 'subscribed') {
261
- return message;
259
+ return;
262
260
  }
263
261
  else if (event === 'snapshot') {
264
262
  ticker = this.parseTicker(message, market);
@@ -357,7 +355,7 @@ export default class blockchaincom extends blockchaincomRest {
357
355
  //
358
356
  const event = this.safeString(message, 'event');
359
357
  if (event !== 'updated') {
360
- return message;
358
+ return;
361
359
  }
362
360
  const marketId = this.safeString(message, 'symbol');
363
361
  const symbol = this.safeSymbol(marketId);
@@ -519,7 +517,7 @@ export default class blockchaincom extends blockchaincomRest {
519
517
  this.orders = new ArrayCacheBySymbolById(limit);
520
518
  }
521
519
  if (event === 'subscribed') {
522
- return message;
520
+ return;
523
521
  }
524
522
  else if (event === 'rejected') {
525
523
  throw new ExchangeError(this.id + ' ' + this.json(message));
@@ -689,30 +687,30 @@ export default class blockchaincom extends blockchaincomRest {
689
687
  const messageHash = 'orderbook:' + symbol + ':' + type;
690
688
  const datetime = this.safeString(message, 'timestamp');
691
689
  const timestamp = this.parse8601(datetime);
692
- let storedOrderBook = this.safeValue(this.orderbooks, symbol);
693
- if (storedOrderBook === undefined) {
694
- storedOrderBook = this.countedOrderBook({});
695
- this.orderbooks[symbol] = storedOrderBook;
690
+ let orderbook = this.safeValue(this.orderbooks, symbol);
691
+ if (orderbook === undefined) {
692
+ orderbook = this.countedOrderBook({});
693
+ this.orderbooks[symbol] = orderbook;
696
694
  }
697
695
  if (event === 'subscribed') {
698
- return message;
696
+ return;
699
697
  }
700
698
  else if (event === 'snapshot') {
701
699
  const snapshot = this.parseOrderBook(message, symbol, timestamp, 'bids', 'asks', 'px', 'qty', 'num');
702
- storedOrderBook.reset(snapshot);
700
+ orderbook.reset(snapshot);
703
701
  }
704
702
  else if (event === 'updated') {
705
703
  const asks = this.safeValue(message, 'asks', []);
706
704
  const bids = this.safeValue(message, 'bids', []);
707
- this.handleDeltas(storedOrderBook['asks'], asks);
708
- this.handleDeltas(storedOrderBook['bids'], bids);
709
- storedOrderBook['timestamp'] = timestamp;
710
- storedOrderBook['datetime'] = datetime;
705
+ this.handleDeltas(orderbook['asks'], asks);
706
+ this.handleDeltas(orderbook['bids'], bids);
707
+ orderbook['timestamp'] = timestamp;
708
+ orderbook['datetime'] = datetime;
711
709
  }
712
710
  else {
713
711
  throw new NotSupported(this.id + ' watchOrderBook() does not support ' + event + ' yet');
714
712
  }
715
- client.resolve(storedOrderBook, messageHash);
713
+ client.resolve(orderbook, messageHash);
716
714
  }
717
715
  handleDelta(bookside, delta) {
718
716
  const bookArray = this.parseBidAsk(delta, 'px', 'qty', 'num');
@@ -753,7 +751,8 @@ export default class blockchaincom extends blockchaincomRest {
753
751
  };
754
752
  const handler = this.safeValue(handlers, channel);
755
753
  if (handler !== undefined) {
756
- return handler.call(this, client, message);
754
+ handler.call(this, client, message);
755
+ return;
757
756
  }
758
757
  throw new NotSupported(this.id + ' received an unsupported message: ' + this.json(message));
759
758
  }
@@ -775,7 +774,7 @@ export default class blockchaincom extends blockchaincomRest {
775
774
  future.resolve(true);
776
775
  }
777
776
  }
778
- authenticate(params = {}) {
777
+ async authenticate(params = {}) {
779
778
  const url = this.urls['api']['ws'];
780
779
  const client = this.client(url);
781
780
  const messageHash = 'authenticated';
@@ -25,11 +25,11 @@ export default class bybit extends bybitRest {
25
25
  watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
26
26
  handleMyTrades(client: Client, message: any): void;
27
27
  watchPositions(symbols?: Strings, since?: Int, limit?: Int, params?: {}): Promise<Position[]>;
28
- setPositionsCache(client: Client, symbols?: Strings): any;
28
+ setPositionsCache(client: Client, symbols?: Strings): void;
29
29
  loadPositionsSnapshot(client: any, messageHash: any): Promise<void>;
30
30
  handlePositions(client: any, message: any): void;
31
31
  watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
32
- handleOrder(client: Client, message: any, subscription?: any): void;
32
+ handleOrder(client: Client, message: any): void;
33
33
  parseWsSpotOrder(order: any, market?: any): Order;
34
34
  watchBalance(params?: {}): Promise<Balances>;
35
35
  handleBalance(client: Client, message: any): void;
@@ -909,7 +909,7 @@ export default class bybit extends bybitRest {
909
909
  * @name bybit#watchPositions
910
910
  * @see https://bybit-exchange.github.io/docs/v5/websocket/private/position
911
911
  * @description watch all open positions
912
- * @param {string[]|undefined} symbols list of unified market symbols
912
+ * @param {string[]} [symbols] list of unified market symbols
913
913
  * @param {object} params extra parameters specific to the exchange API endpoint
914
914
  * @returns {object[]} a list of [position structure]{@link https://docs.ccxt.com/en/latest/manual.html#position-structure}
915
915
  */
@@ -942,7 +942,7 @@ export default class bybit extends bybitRest {
942
942
  }
943
943
  setPositionsCache(client, symbols = undefined) {
944
944
  if (this.positions !== undefined) {
945
- return this.positions;
945
+ return;
946
946
  }
947
947
  const fetchPositionsSnapshot = this.handleOption('watchPositions', 'fetchPositionsSnapshot', true);
948
948
  if (fetchPositionsSnapshot) {
@@ -1075,7 +1075,7 @@ export default class bybit extends bybitRest {
1075
1075
  }
1076
1076
  return this.filterBySymbolSinceLimit(orders, symbol, since, limit, true);
1077
1077
  }
1078
- handleOrder(client, message, subscription = undefined) {
1078
+ handleOrder(client, message) {
1079
1079
  //
1080
1080
  // spot
1081
1081
  // {
@@ -1641,7 +1641,7 @@ export default class bybit extends bybitRest {
1641
1641
  const authenticated = this.safeValue(client.subscriptions, messageHash);
1642
1642
  if (authenticated === undefined) {
1643
1643
  const expiresInt = this.milliseconds() + 10000;
1644
- const expires = expiresInt.toString();
1644
+ const expires = this.numberToString(expiresInt);
1645
1645
  const path = 'GET/realtime';
1646
1646
  const auth = path + expires;
1647
1647
  const signature = this.hmac(this.encode(auth), this.encode(this.secret), sha256, 'hex');
@@ -1654,7 +1654,7 @@ export default class bybit extends bybitRest {
1654
1654
  const message = this.extend(request, params);
1655
1655
  this.watch(url, messageHash, message, messageHash);
1656
1656
  }
1657
- return future;
1657
+ return await future;
1658
1658
  }
1659
1659
  handleErrorMessage(client, message) {
1660
1660
  //