ccxt 4.2.30 → 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 (318) hide show
  1. package/.gitattributes +1 -0
  2. package/CONTRIBUTING.md +20 -1
  3. package/README.md +9 -9
  4. package/build.sh +9 -2
  5. package/cleanup.sh +3 -0
  6. package/dist/ccxt.browser.js +1136 -561
  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 +66 -24
  12. package/dist/cjs/src/bigone.js +21 -1
  13. package/dist/cjs/src/binance.js +6 -5
  14. package/dist/cjs/src/bingx.js +4 -3
  15. package/dist/cjs/src/bit2c.js +12 -0
  16. package/dist/cjs/src/bitfinex2.js +415 -41
  17. package/dist/cjs/src/bitforex.js +3 -0
  18. package/dist/cjs/src/bitget.js +3 -3
  19. package/dist/cjs/src/bitmart.js +1 -1
  20. package/dist/cjs/src/bitrue.js +3 -3
  21. package/dist/cjs/src/blockchaincom.js +1 -1
  22. package/dist/cjs/src/bybit.js +1 -1
  23. package/dist/cjs/src/coinbase.js +12 -2
  24. package/dist/cjs/src/coinex.js +1 -1
  25. package/dist/cjs/src/cryptocom.js +10 -10
  26. package/dist/cjs/src/deribit.js +1 -0
  27. package/dist/cjs/src/gate.js +34 -29
  28. package/dist/cjs/src/htx.js +1 -1
  29. package/dist/cjs/src/kraken.js +42 -1
  30. package/dist/cjs/src/krakenfutures.js +3 -0
  31. package/dist/cjs/src/kucoin.js +1 -1
  32. package/dist/cjs/src/lbank.js +27 -26
  33. package/dist/cjs/src/mexc.js +2 -1
  34. package/dist/cjs/src/okx.js +20 -5
  35. package/dist/cjs/src/phemex.js +8 -8
  36. package/dist/cjs/src/poloniexfutures.js +3 -0
  37. package/dist/cjs/src/pro/alpaca.js +8 -4
  38. package/dist/cjs/src/pro/ascendex.js +1 -2
  39. package/dist/cjs/src/pro/binance.js +14 -10
  40. package/dist/cjs/src/pro/bingx.js +1 -1
  41. package/dist/cjs/src/pro/bitfinex.js +21 -24
  42. package/dist/cjs/src/pro/bitfinex2.js +13 -17
  43. package/dist/cjs/src/pro/bitget.js +3 -1
  44. package/dist/cjs/src/pro/bitmart.js +3 -8
  45. package/dist/cjs/src/pro/bitmex.js +4 -7
  46. package/dist/cjs/src/pro/bitopro.js +2 -5
  47. package/dist/cjs/src/pro/bitrue.js +1 -1
  48. package/dist/cjs/src/pro/bitstamp.js +2 -3
  49. package/dist/cjs/src/pro/bitvavo.js +12 -5
  50. package/dist/cjs/src/pro/blockchaincom.js +22 -23
  51. package/dist/cjs/src/pro/bybit.js +5 -5
  52. package/dist/cjs/src/pro/cex.js +7 -7
  53. package/dist/cjs/src/pro/coinbase.js +3 -2
  54. package/dist/cjs/src/pro/coinbasepro.js +1 -1
  55. package/dist/cjs/src/pro/coinex.js +15 -13
  56. package/dist/cjs/src/pro/currencycom.js +5 -7
  57. package/dist/cjs/src/pro/deribit.js +4 -4
  58. package/dist/cjs/src/pro/exmo.js +15 -13
  59. package/dist/cjs/src/pro/gate.js +1 -1
  60. package/dist/cjs/src/pro/gemini.js +4 -2
  61. package/dist/cjs/src/pro/hitbtc.js +9 -8
  62. package/dist/cjs/src/pro/hollaex.js +2 -2
  63. package/dist/cjs/src/pro/htx.js +6 -7
  64. package/dist/cjs/src/pro/huobijp.js +3 -5
  65. package/dist/cjs/src/pro/idex.js +1 -1
  66. package/dist/cjs/src/pro/independentreserve.js +14 -13
  67. package/dist/cjs/src/pro/kraken.js +10 -16
  68. package/dist/cjs/src/pro/krakenfutures.js +10 -6
  69. package/dist/cjs/src/pro/kucoin.js +10 -11
  70. package/dist/cjs/src/pro/kucoinfutures.js +12 -11
  71. package/dist/cjs/src/pro/lbank.js +10 -10
  72. package/dist/cjs/src/pro/luno.js +12 -14
  73. package/dist/cjs/src/pro/mexc.js +3 -2
  74. package/dist/cjs/src/pro/ndax.js +7 -13
  75. package/dist/cjs/src/pro/okcoin.js +7 -12
  76. package/dist/cjs/src/pro/okx.js +6 -11
  77. package/dist/cjs/src/pro/onetrading.js +16 -15
  78. package/dist/cjs/src/pro/p2b.js +5 -3
  79. package/dist/cjs/src/pro/phemex.js +16 -11
  80. package/dist/cjs/src/pro/poloniex.js +6 -4
  81. package/dist/cjs/src/pro/poloniexfutures.js +14 -9
  82. package/dist/cjs/src/pro/probit.js +15 -11
  83. package/dist/cjs/src/pro/upbit.js +8 -8
  84. package/dist/cjs/src/pro/wazirx.js +6 -3
  85. package/dist/cjs/src/pro/woo.js +8 -6
  86. package/dist/cjs/src/probit.js +3 -3
  87. package/dist/cjs/src/timex.js +1 -1
  88. package/dist/cjs/src/tokocrypto.js +2 -2
  89. package/dist/cjs/src/wavesexchange.js +2 -1
  90. package/dist/cjs/src/whitebit.js +1 -1
  91. package/dist/cjs/src/woo.js +1 -1
  92. package/dist/cjs/src/yobit.js +39 -0
  93. package/js/ccxt.d.ts +1 -1
  94. package/js/ccxt.js +1 -1
  95. package/js/src/abstract/coinbase.d.ts +10 -0
  96. package/js/src/abstract/okx.d.ts +12 -1
  97. package/js/src/ace.d.ts +1 -1
  98. package/js/src/ace.js +3 -2
  99. package/js/src/alpaca.d.ts +1 -1
  100. package/js/src/ascendex.d.ts +5 -15
  101. package/js/src/ascendex.js +1 -1
  102. package/js/src/base/Exchange.d.ts +88 -79
  103. package/js/src/base/Exchange.js +66 -24
  104. package/js/src/base/types.d.ts +90 -6
  105. package/js/src/bigone.d.ts +5 -15
  106. package/js/src/bigone.js +21 -1
  107. package/js/src/binance.d.ts +13 -23
  108. package/js/src/binance.js +6 -5
  109. package/js/src/bingx.d.ts +6 -16
  110. package/js/src/bingx.js +4 -3
  111. package/js/src/bit2c.d.ts +1 -1
  112. package/js/src/bit2c.js +12 -0
  113. package/js/src/bitbank.d.ts +2 -2
  114. package/js/src/bitbns.d.ts +1 -1
  115. package/js/src/bitfinex.d.ts +5 -5
  116. package/js/src/bitfinex2.d.ts +11 -16
  117. package/js/src/bitfinex2.js +415 -41
  118. package/js/src/bitflyer.d.ts +5 -5
  119. package/js/src/bitforex.d.ts +1 -1
  120. package/js/src/bitforex.js +3 -0
  121. package/js/src/bitget.d.ts +8 -38
  122. package/js/src/bitget.js +3 -3
  123. package/js/src/bithumb.d.ts +2 -2
  124. package/js/src/bitmart.d.ts +10 -21
  125. package/js/src/bitmart.js +1 -1
  126. package/js/src/bitmex.d.ts +3 -3
  127. package/js/src/bitopro.d.ts +2 -2
  128. package/js/src/bitrue.d.ts +5 -15
  129. package/js/src/bitrue.js +3 -3
  130. package/js/src/bitso.d.ts +4 -4
  131. package/js/src/bitstamp.d.ts +2 -2
  132. package/js/src/bitteam.d.ts +1 -1
  133. package/js/src/bitvavo.d.ts +3 -3
  134. package/js/src/bl3p.d.ts +1 -1
  135. package/js/src/blockchaincom.d.ts +2 -2
  136. package/js/src/blockchaincom.js +1 -1
  137. package/js/src/btcalpha.d.ts +1 -1
  138. package/js/src/btcbox.d.ts +1 -1
  139. package/js/src/btcmarkets.d.ts +3 -3
  140. package/js/src/btcturk.d.ts +1 -1
  141. package/js/src/bybit.d.ts +8 -8
  142. package/js/src/bybit.js +1 -1
  143. package/js/src/cex.d.ts +1 -1
  144. package/js/src/coinbase.d.ts +6 -50
  145. package/js/src/coinbase.js +12 -2
  146. package/js/src/coinbasepro.d.ts +2 -2
  147. package/js/src/coincheck.d.ts +1 -1
  148. package/js/src/coinex.d.ts +8 -8
  149. package/js/src/coinex.js +1 -1
  150. package/js/src/coinlist.d.ts +4 -14
  151. package/js/src/coinmate.d.ts +2 -2
  152. package/js/src/coinmetro.d.ts +2 -2
  153. package/js/src/coinone.d.ts +1 -1
  154. package/js/src/coinsph.d.ts +2 -2
  155. package/js/src/coinspot.d.ts +1 -1
  156. package/js/src/cryptocom.d.ts +4 -4
  157. package/js/src/cryptocom.js +10 -10
  158. package/js/src/currencycom.d.ts +2 -2
  159. package/js/src/delta.d.ts +2 -2
  160. package/js/src/deribit.d.ts +4 -14
  161. package/js/src/deribit.js +1 -0
  162. package/js/src/digifinex.d.ts +10 -38
  163. package/js/src/exmo.d.ts +2 -2
  164. package/js/src/gate.d.ts +8 -18
  165. package/js/src/gate.js +34 -29
  166. package/js/src/gemini.d.ts +2 -2
  167. package/js/src/hitbtc.d.ts +6 -16
  168. package/js/src/hollaex.d.ts +2 -2
  169. package/js/src/htx.d.ts +11 -21
  170. package/js/src/htx.js +1 -1
  171. package/js/src/huobijp.d.ts +4 -4
  172. package/js/src/idex.d.ts +3 -3
  173. package/js/src/independentreserve.d.ts +2 -2
  174. package/js/src/indodax.d.ts +2 -2
  175. package/js/src/kraken.d.ts +5 -5
  176. package/js/src/kraken.js +42 -1
  177. package/js/src/krakenfutures.d.ts +7 -7
  178. package/js/src/krakenfutures.js +3 -0
  179. package/js/src/kucoin.d.ts +8 -29
  180. package/js/src/kucoin.js +1 -1
  181. package/js/src/kucoinfutures.d.ts +4 -4
  182. package/js/src/kuna.d.ts +2 -2
  183. package/js/src/latoken.d.ts +4 -14
  184. package/js/src/lbank.d.ts +3 -6
  185. package/js/src/lbank.js +27 -26
  186. package/js/src/luno.d.ts +1 -1
  187. package/js/src/lykke.d.ts +2 -2
  188. package/js/src/mercado.d.ts +2 -2
  189. package/js/src/mexc.d.ts +6 -6
  190. package/js/src/mexc.js +2 -1
  191. package/js/src/ndax.d.ts +2 -2
  192. package/js/src/novadax.d.ts +4 -15
  193. package/js/src/oceanex.d.ts +1 -1
  194. package/js/src/okcoin.d.ts +5 -15
  195. package/js/src/okx.d.ts +8 -18
  196. package/js/src/okx.js +20 -5
  197. package/js/src/onetrading.d.ts +2 -2
  198. package/js/src/p2b.d.ts +1 -1
  199. package/js/src/paymium.d.ts +3 -13
  200. package/js/src/phemex.d.ts +5 -5
  201. package/js/src/phemex.js +8 -8
  202. package/js/src/poloniex.d.ts +4 -14
  203. package/js/src/poloniexfutures.d.ts +1 -1
  204. package/js/src/poloniexfutures.js +3 -0
  205. package/js/src/pro/alpaca.d.ts +2 -2
  206. package/js/src/pro/alpaca.js +8 -4
  207. package/js/src/pro/ascendex.d.ts +2 -2
  208. package/js/src/pro/ascendex.js +1 -2
  209. package/js/src/pro/binance.d.ts +3 -3
  210. package/js/src/pro/binance.js +14 -10
  211. package/js/src/pro/bingx.d.ts +1 -1
  212. package/js/src/pro/bingx.js +1 -1
  213. package/js/src/pro/bitfinex.d.ts +2 -2
  214. package/js/src/pro/bitfinex.js +21 -24
  215. package/js/src/pro/bitfinex2.d.ts +2 -2
  216. package/js/src/pro/bitfinex2.js +13 -17
  217. package/js/src/pro/bitget.js +3 -1
  218. package/js/src/pro/bitmart.d.ts +3 -3
  219. package/js/src/pro/bitmart.js +3 -8
  220. package/js/src/pro/bitmex.d.ts +1 -1
  221. package/js/src/pro/bitmex.js +4 -7
  222. package/js/src/pro/bitopro.d.ts +1 -1
  223. package/js/src/pro/bitopro.js +2 -5
  224. package/js/src/pro/bitrue.js +1 -1
  225. package/js/src/pro/bitstamp.d.ts +1 -1
  226. package/js/src/pro/bitstamp.js +2 -3
  227. package/js/src/pro/bitvavo.d.ts +3 -3
  228. package/js/src/pro/bitvavo.js +12 -5
  229. package/js/src/pro/blockchaincom.d.ts +8 -8
  230. package/js/src/pro/blockchaincom.js +22 -23
  231. package/js/src/pro/bybit.d.ts +2 -2
  232. package/js/src/pro/bybit.js +5 -5
  233. package/js/src/pro/cex.d.ts +1 -1
  234. package/js/src/pro/cex.js +7 -7
  235. package/js/src/pro/coinbase.d.ts +1 -1
  236. package/js/src/pro/coinbase.js +3 -2
  237. package/js/src/pro/coinbasepro.d.ts +1 -1
  238. package/js/src/pro/coinbasepro.js +1 -1
  239. package/js/src/pro/coinex.d.ts +2 -2
  240. package/js/src/pro/coinex.js +15 -13
  241. package/js/src/pro/currencycom.d.ts +1 -1
  242. package/js/src/pro/currencycom.js +5 -7
  243. package/js/src/pro/deribit.d.ts +2 -2
  244. package/js/src/pro/deribit.js +4 -4
  245. package/js/src/pro/exmo.d.ts +2 -2
  246. package/js/src/pro/exmo.js +15 -13
  247. package/js/src/pro/gate.js +1 -1
  248. package/js/src/pro/gemini.d.ts +1 -1
  249. package/js/src/pro/gemini.js +4 -2
  250. package/js/src/pro/hitbtc.d.ts +2 -2
  251. package/js/src/pro/hitbtc.js +9 -8
  252. package/js/src/pro/hollaex.d.ts +2 -2
  253. package/js/src/pro/hollaex.js +2 -2
  254. package/js/src/pro/htx.d.ts +2 -2
  255. package/js/src/pro/htx.js +6 -7
  256. package/js/src/pro/huobijp.d.ts +1 -1
  257. package/js/src/pro/huobijp.js +3 -5
  258. package/js/src/pro/idex.js +1 -1
  259. package/js/src/pro/independentreserve.d.ts +1 -1
  260. package/js/src/pro/independentreserve.js +14 -13
  261. package/js/src/pro/kraken.d.ts +2 -2
  262. package/js/src/pro/kraken.js +10 -16
  263. package/js/src/pro/krakenfutures.d.ts +1 -1
  264. package/js/src/pro/krakenfutures.js +10 -6
  265. package/js/src/pro/kucoin.d.ts +3 -3
  266. package/js/src/pro/kucoin.js +10 -11
  267. package/js/src/pro/kucoinfutures.d.ts +3 -3
  268. package/js/src/pro/kucoinfutures.js +12 -11
  269. package/js/src/pro/lbank.d.ts +1 -1
  270. package/js/src/pro/lbank.js +10 -10
  271. package/js/src/pro/luno.d.ts +2 -2
  272. package/js/src/pro/luno.js +12 -14
  273. package/js/src/pro/mexc.d.ts +2 -2
  274. package/js/src/pro/mexc.js +3 -2
  275. package/js/src/pro/ndax.d.ts +3 -3
  276. package/js/src/pro/ndax.js +7 -13
  277. package/js/src/pro/okcoin.d.ts +1 -1
  278. package/js/src/pro/okcoin.js +7 -12
  279. package/js/src/pro/okx.d.ts +1 -1
  280. package/js/src/pro/okx.js +6 -11
  281. package/js/src/pro/onetrading.d.ts +1 -1
  282. package/js/src/pro/onetrading.js +16 -15
  283. package/js/src/pro/p2b.d.ts +1 -1
  284. package/js/src/pro/p2b.js +5 -3
  285. package/js/src/pro/phemex.d.ts +3 -3
  286. package/js/src/pro/phemex.js +16 -11
  287. package/js/src/pro/poloniex.d.ts +1 -1
  288. package/js/src/pro/poloniex.js +6 -4
  289. package/js/src/pro/poloniexfutures.d.ts +4 -4
  290. package/js/src/pro/poloniexfutures.js +13 -10
  291. package/js/src/pro/probit.d.ts +1 -1
  292. package/js/src/pro/probit.js +14 -12
  293. package/js/src/pro/upbit.js +8 -8
  294. package/js/src/pro/wazirx.d.ts +1 -1
  295. package/js/src/pro/wazirx.js +6 -3
  296. package/js/src/pro/woo.d.ts +3 -3
  297. package/js/src/pro/woo.js +8 -6
  298. package/js/src/probit.d.ts +3 -3
  299. package/js/src/probit.js +3 -3
  300. package/js/src/timex.d.ts +1 -1
  301. package/js/src/timex.js +1 -1
  302. package/js/src/tokocrypto.d.ts +3 -3
  303. package/js/src/tokocrypto.js +2 -2
  304. package/js/src/upbit.d.ts +2 -2
  305. package/js/src/wavesexchange.d.ts +3 -4
  306. package/js/src/wavesexchange.js +2 -1
  307. package/js/src/wazirx.d.ts +1 -1
  308. package/js/src/whitebit.d.ts +5 -15
  309. package/js/src/whitebit.js +1 -1
  310. package/js/src/woo.d.ts +5 -15
  311. package/js/src/woo.js +1 -1
  312. package/js/src/yobit.d.ts +21 -6
  313. package/js/src/yobit.js +39 -0
  314. package/js/src/zaif.d.ts +2 -2
  315. package/js/src/zonda.d.ts +4 -14
  316. package/package.json +22 -8
  317. package/skip-tests.json +9 -1
  318. package/tests-manager.sh +1 -2
@@ -35,8 +35,8 @@ export default class mexc extends mexcRest {
35
35
  authenticate(subscriptionHash: any, params?: {}): Promise<string>;
36
36
  keepAliveListenKey(listenKey: any, params?: {}): Promise<void>;
37
37
  handlePong(client: Client, message: any): any;
38
- handleSubscriptionStatus(client: Client, message: any): any;
39
- handleMessage(client: Client, message: any): any;
38
+ handleSubscriptionStatus(client: Client, message: any): void;
39
+ handleMessage(client: Client, message: any): void;
40
40
  ping(client: any): {
41
41
  method: string;
42
42
  };
@@ -1109,7 +1109,7 @@ export default class mexc extends mexcRest {
1109
1109
  //
1110
1110
  const msg = this.safeString(message, 'msg');
1111
1111
  if (msg === 'PONG') {
1112
- return this.handlePong(client, message);
1112
+ this.handlePong(client, message);
1113
1113
  }
1114
1114
  else if (msg.indexOf('@') > -1) {
1115
1115
  const parts = msg.split('@');
@@ -1132,7 +1132,8 @@ export default class mexc extends mexcRest {
1132
1132
  return;
1133
1133
  }
1134
1134
  if ('msg' in message) {
1135
- return this.handleSubscriptionStatus(client, message);
1135
+ this.handleSubscriptionStatus(client, message);
1136
+ return;
1136
1137
  }
1137
1138
  const c = this.safeString(message, 'c');
1138
1139
  let channel = undefined;
@@ -11,8 +11,8 @@ export default class ndax extends ndaxRest {
11
11
  watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
12
12
  handleOHLCV(client: Client, message: any): void;
13
13
  watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
14
- handleOrderBook(client: Client, message: any): any;
14
+ handleOrderBook(client: Client, message: any): void;
15
15
  handleOrderBookSubscription(client: Client, message: any, subscription: any): void;
16
- handleSubscriptionStatus(client: Client, message: any): any;
17
- handleMessage(client: Client, message: any): any;
16
+ handleSubscriptionStatus(client: Client, message: any): void;
17
+ handleMessage(client: Client, message: any): void;
18
18
  }
@@ -388,13 +388,13 @@ export default class ndax extends ndaxRest {
388
388
  const firstBidAsk = this.safeValue(payload, 0, []);
389
389
  const marketId = this.safeString(firstBidAsk, 7);
390
390
  if (marketId === undefined) {
391
- return message;
391
+ return;
392
392
  }
393
393
  const market = this.safeMarket(marketId);
394
394
  const symbol = market['symbol'];
395
395
  const orderbook = this.safeValue(this.orderbooks, symbol);
396
396
  if (orderbook === undefined) {
397
- return message;
397
+ return;
398
398
  }
399
399
  let timestamp = undefined;
400
400
  let nonce = undefined;
@@ -488,11 +488,8 @@ export default class ndax extends ndaxRest {
488
488
  const subscription = this.safeValue(subscriptionsById, id);
489
489
  if (subscription !== undefined) {
490
490
  const method = this.safeValue(subscription, 'method');
491
- if (method === undefined) {
492
- return message;
493
- }
494
- else {
495
- return method.call(this, client, message, subscription);
491
+ if (method !== undefined) {
492
+ method.call(this, client, message, subscription);
496
493
  }
497
494
  }
498
495
  }
@@ -521,7 +518,7 @@ export default class ndax extends ndaxRest {
521
518
  //
522
519
  const payload = this.safeString(message, 'o');
523
520
  if (payload === undefined) {
524
- return message;
521
+ return;
525
522
  }
526
523
  message['o'] = JSON.parse(payload);
527
524
  const methods = {
@@ -536,11 +533,8 @@ export default class ndax extends ndaxRest {
536
533
  };
537
534
  const event = this.safeString(message, 'n');
538
535
  const method = this.safeValue(methods, event);
539
- if (method === undefined) {
540
- return message;
541
- }
542
- else {
543
- return method.call(this, client, message);
536
+ if (method !== undefined) {
537
+ method.call(this, client, message);
544
538
  }
545
539
  }
546
540
  }
@@ -26,5 +26,5 @@ export default class okcoin extends okcoinRest {
26
26
  ping(client: any): string;
27
27
  handlePong(client: Client, message: any): any;
28
28
  handleErrorMessage(client: Client, message: any): any;
29
- handleMessage(client: Client, message: any): any;
29
+ handleMessage(client: Client, message: any): void;
30
30
  }
@@ -478,7 +478,7 @@ export default class okcoin extends okcoinRest {
478
478
  };
479
479
  this.spawn(this.watch, url, messageHash, request, messageHash, future);
480
480
  }
481
- return await future;
481
+ return future;
482
482
  }
483
483
  async watchBalance(params = {}) {
484
484
  /**
@@ -711,7 +711,8 @@ export default class okcoin extends okcoinRest {
711
711
  // }
712
712
  //
713
713
  if (message === 'pong') {
714
- return this.handlePong(client, message);
714
+ this.handlePong(client, message);
715
+ return;
715
716
  }
716
717
  const table = this.safeString(message, 'table');
717
718
  if (table === undefined) {
@@ -724,11 +725,8 @@ export default class okcoin extends okcoinRest {
724
725
  'subscribe': this.handleSubscriptionStatus,
725
726
  };
726
727
  const method = this.safeValue(methods, event);
727
- if (method === undefined) {
728
- return message;
729
- }
730
- else {
731
- return method.call(this, client, message);
728
+ if (method !== undefined) {
729
+ method.call(this, client, message);
732
730
  }
733
731
  }
734
732
  }
@@ -750,11 +748,8 @@ export default class okcoin extends okcoinRest {
750
748
  if (name.indexOf('candle') >= 0) {
751
749
  method = this.handleOHLCV;
752
750
  }
753
- if (method === undefined) {
754
- return message;
755
- }
756
- else {
757
- return method.call(this, client, message);
751
+ if (method !== undefined) {
752
+ method.call(this, client, message);
758
753
  }
759
754
  }
760
755
  }
@@ -43,5 +43,5 @@ export default class okx extends okxRest {
43
43
  ping(client: any): string;
44
44
  handlePong(client: Client, message: any): any;
45
45
  handleErrorMessage(client: Client, message: any): any;
46
- handleMessage(client: Client, message: any): any;
46
+ handleMessage(client: Client, message: any): void;
47
47
  }
package/js/src/pro/okx.js CHANGED
@@ -758,7 +758,7 @@ export default class okx extends okxRest {
758
758
  const message = this.extend(request, params);
759
759
  this.watch(url, messageHash, message, messageHash);
760
760
  }
761
- return future;
761
+ return await future;
762
762
  }
763
763
  async watchBalance(params = {}) {
764
764
  /**
@@ -1564,7 +1564,8 @@ export default class okx extends okxRest {
1564
1564
  //
1565
1565
  //
1566
1566
  if (message === 'pong') {
1567
- return this.handlePong(client, message);
1567
+ this.handlePong(client, message);
1568
+ return;
1568
1569
  }
1569
1570
  // const table = this.safeString (message, 'table');
1570
1571
  // if (table === undefined) {
@@ -1583,11 +1584,8 @@ export default class okx extends okxRest {
1583
1584
  'mass-cancel': this.handleCancelAllOrders,
1584
1585
  };
1585
1586
  const method = this.safeValue(methods, event);
1586
- if (method === undefined) {
1587
- return message;
1588
- }
1589
- else {
1590
- return method.call(this, client, message);
1587
+ if (method !== undefined) {
1588
+ method.call(this, client, message);
1591
1589
  }
1592
1590
  }
1593
1591
  else {
@@ -1615,12 +1613,9 @@ export default class okx extends okxRest {
1615
1613
  if (channel.indexOf('candle') === 0) {
1616
1614
  this.handleOHLCV(client, message);
1617
1615
  }
1618
- else {
1619
- return message;
1620
- }
1621
1616
  }
1622
1617
  else {
1623
- return method.call(this, client, message);
1618
+ method.call(this, client, message);
1624
1619
  }
1625
1620
  }
1626
1621
  }
@@ -28,7 +28,7 @@ export default class onetrading extends onetradingRest {
28
28
  handleSubscriptions(client: Client, message: any): any;
29
29
  handleHeartbeat(client: Client, message: any): any;
30
30
  handleErrorMessage(client: Client, message: any): void;
31
- handleMessage(client: Client, message: any): any;
31
+ handleMessage(client: Client, message: any): void;
32
32
  handlePricePointUpdates(client: Client, message: any): any;
33
33
  handleAuthenticationMessage(client: Client, message: any): any;
34
34
  watchMany(messageHash: any, request: any, subscriptionHash: any, symbols?: Strings, params?: {}): Promise<any>;
@@ -365,26 +365,26 @@ export default class onetrading extends onetradingRest {
365
365
  const dateTime = this.safeString(message, 'time');
366
366
  const timestamp = this.parse8601(dateTime);
367
367
  const channel = 'book:' + symbol;
368
- let storedOrderBook = this.safeValue(this.orderbooks, symbol);
369
- if (storedOrderBook === undefined) {
370
- storedOrderBook = this.orderBook({});
368
+ let orderbook = this.safeValue(this.orderbooks, symbol);
369
+ if (orderbook === undefined) {
370
+ orderbook = this.orderBook({});
371
371
  }
372
372
  if (type === 'ORDER_BOOK_SNAPSHOT') {
373
373
  const snapshot = this.parseOrderBook(message, symbol, timestamp, 'bids', 'asks');
374
- storedOrderBook.reset(snapshot);
374
+ orderbook.reset(snapshot);
375
375
  }
376
376
  else if (type === 'ORDER_BOOK_UPDATE') {
377
377
  const changes = this.safeValue(message, 'changes', []);
378
- this.handleDeltas(storedOrderBook, changes);
378
+ this.handleDeltas(orderbook, changes);
379
379
  }
380
380
  else {
381
381
  throw new NotSupported(this.id + ' watchOrderBook() did not recognize message type ' + type);
382
382
  }
383
- storedOrderBook['nonce'] = timestamp;
384
- storedOrderBook['timestamp'] = timestamp;
385
- storedOrderBook['datetime'] = this.iso8601(timestamp);
386
- this.orderbooks[symbol] = storedOrderBook;
387
- client.resolve(storedOrderBook, channel);
383
+ orderbook['nonce'] = timestamp;
384
+ orderbook['timestamp'] = timestamp;
385
+ orderbook['datetime'] = this.iso8601(timestamp);
386
+ this.orderbooks[symbol] = orderbook;
387
+ client.resolve(orderbook, channel);
388
388
  }
389
389
  handleDelta(orderbook, delta) {
390
390
  //
@@ -970,13 +970,14 @@ export default class onetrading extends onetradingRest {
970
970
  if (updateType === 'ORDER_CLOSED' && filled === 0) {
971
971
  status = 'canceled';
972
972
  }
973
- orders.append({
973
+ const orderObject = {
974
974
  'id': orderId,
975
975
  'symbol': symbol,
976
976
  'status': status,
977
977
  'timestamp': this.parse8601(datetime),
978
978
  'datetime': datetime,
979
- });
979
+ };
980
+ orders.append(orderObject);
980
981
  }
981
982
  else {
982
983
  const parsed = this.parseOrder(update);
@@ -1213,7 +1214,8 @@ export default class onetrading extends onetradingRest {
1213
1214
  handleMessage(client, message) {
1214
1215
  const error = this.safeValue(message, 'error');
1215
1216
  if (error !== undefined) {
1216
- return this.handleErrorMessage(client, message);
1217
+ this.handleErrorMessage(client, message);
1218
+ return;
1217
1219
  }
1218
1220
  const type = this.safeValue(message, 'type');
1219
1221
  const handlers = {
@@ -1244,9 +1246,8 @@ export default class onetrading extends onetradingRest {
1244
1246
  };
1245
1247
  const handler = this.safeValue(handlers, type);
1246
1248
  if (handler !== undefined) {
1247
- return handler.call(this, client, message);
1249
+ handler.call(this, client, message);
1248
1250
  }
1249
- throw new NotSupported(this.id + ' no handler found for this message ' + this.json(message));
1250
1251
  }
1251
1252
  handlePricePointUpdates(client, message) {
1252
1253
  //
@@ -12,7 +12,7 @@ export default class p2b extends p2bRest {
12
12
  handleTrade(client: Client, message: any): any;
13
13
  handleTicker(client: Client, message: any): any;
14
14
  handleOrderBook(client: Client, message: any): void;
15
- handleMessage(client: Client, message: any): any;
15
+ handleMessage(client: Client, message: any): void;
16
16
  handleErrorMessage(client: Client, message: any): boolean;
17
17
  ping(client: any): {
18
18
  method: string;
package/js/src/pro/p2b.js CHANGED
@@ -365,7 +365,8 @@ export default class p2b extends p2bRest {
365
365
  const bid = this.safeValue(bids, i);
366
366
  const price = this.safeNumber(bid, 0);
367
367
  const amount = this.safeNumber(bid, 1);
368
- orderbook['bids'].store(price, amount);
368
+ const bookSide = orderbook['bids'];
369
+ bookSide.store(price, amount);
369
370
  }
370
371
  }
371
372
  if (asks !== undefined) {
@@ -373,7 +374,8 @@ export default class p2b extends p2bRest {
373
374
  const ask = this.safeValue(asks, i);
374
375
  const price = this.safeNumber(ask, 0);
375
376
  const amount = this.safeNumber(ask, 1);
376
- orderbook['asks'].store(price, amount);
377
+ const bookside = orderbook['asks'];
378
+ bookside.store(price, amount);
377
379
  }
378
380
  }
379
381
  orderbook['symbol'] = symbol;
@@ -398,7 +400,7 @@ export default class p2b extends p2bRest {
398
400
  };
399
401
  const endpoint = this.safeValue(methods, method);
400
402
  if (endpoint !== undefined) {
401
- return endpoint.call(this, client, message);
403
+ endpoint.call(this, client, message);
402
404
  }
403
405
  }
404
406
  handleErrorMessage(client, message) {
@@ -61,15 +61,15 @@ export default class phemex extends phemexRest {
61
61
  watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
62
62
  watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
63
63
  watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
64
- handleDelta(bookside: any, delta: any, market?: any): void;
65
- handleDeltas(bookside: any, deltas: any, market?: any): void;
64
+ customHandleDelta(bookside: any, delta: any, market?: any): void;
65
+ customHandleDeltas(bookside: any, deltas: any, market?: any): void;
66
66
  handleOrderBook(client: Client, message: any): void;
67
67
  watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
68
68
  handleMyTrades(client: Client, message: any): void;
69
69
  watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
70
70
  handleOrders(client: Client, message: any): void;
71
71
  parseWSSwapOrder(order: any, market?: any): Order;
72
- handleMessage(client: Client, message: any): any;
72
+ handleMessage(client: Client, message: any): void;
73
73
  handleAuthenticate(client: Client, message: any): void;
74
74
  subscribePrivate(type: any, messageHash: any, params?: {}): Promise<any>;
75
75
  authenticate(params?: {}): Promise<any>;
@@ -633,13 +633,13 @@ export default class phemex extends phemexRest {
633
633
  }
634
634
  return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
635
635
  }
636
- handleDelta(bookside, delta, market = undefined) {
636
+ customHandleDelta(bookside, delta, market = undefined) {
637
637
  const bidAsk = this.customParseBidAsk(delta, 0, 1, market);
638
638
  bookside.storeArray(bidAsk);
639
639
  }
640
- handleDeltas(bookside, deltas, market = undefined) {
640
+ customHandleDeltas(bookside, deltas, market = undefined) {
641
641
  for (let i = 0; i < deltas.length; i++) {
642
- this.handleDelta(bookside, deltas[i], market);
642
+ this.customHandleDelta(bookside, deltas[i], market);
643
643
  }
644
644
  }
645
645
  handleOrderBook(client, message) {
@@ -709,8 +709,8 @@ export default class phemex extends phemexRest {
709
709
  const changes = this.safeValue2(message, 'book', 'orderbook_p', {});
710
710
  const asks = this.safeValue(changes, 'asks', []);
711
711
  const bids = this.safeValue(changes, 'bids', []);
712
- this.handleDeltas(orderbook['asks'], asks, market);
713
- this.handleDeltas(orderbook['bids'], bids, market);
712
+ this.customHandleDeltas(orderbook['asks'], asks, market);
713
+ this.customHandleDeltas(orderbook['bids'], bids, market);
714
714
  orderbook['nonce'] = nonce;
715
715
  orderbook['timestamp'] = timestamp;
716
716
  orderbook['datetime'] = this.iso8601(timestamp);
@@ -1406,21 +1406,26 @@ export default class phemex extends phemexRest {
1406
1406
  const method = client.subscriptions[id];
1407
1407
  delete client.subscriptions[id];
1408
1408
  if (method !== true) {
1409
- return method.call(this, client, message);
1409
+ method.call(this, client, message);
1410
+ return;
1410
1411
  }
1411
1412
  }
1412
1413
  const methodName = this.safeString(message, 'method', '');
1413
1414
  if (('market24h' in message) || ('spot_market24h' in message) || (methodName.indexOf('perp_market24h_pack_p') >= 0)) {
1414
- return this.handleTicker(client, message);
1415
+ this.handleTicker(client, message);
1416
+ return;
1415
1417
  }
1416
1418
  else if (('trades' in message) || ('trades_p' in message)) {
1417
- return this.handleTrades(client, message);
1419
+ this.handleTrades(client, message);
1420
+ return;
1418
1421
  }
1419
1422
  else if (('kline' in message) || ('kline_p' in message)) {
1420
- return this.handleOHLCV(client, message);
1423
+ this.handleOHLCV(client, message);
1424
+ return;
1421
1425
  }
1422
1426
  else if (('book' in message) || ('orderbook_p' in message)) {
1423
- return this.handleOrderBook(client, message);
1427
+ this.handleOrderBook(client, message);
1428
+ return;
1424
1429
  }
1425
1430
  if (('orders' in message) || ('orders_p' in message)) {
1426
1431
  const orders = this.safeValue2(message, 'orders', 'orders_p', {});
@@ -1507,6 +1512,6 @@ export default class phemex extends phemexRest {
1507
1512
  future = this.watch(url, messageHash, message);
1508
1513
  client.subscriptions[messageHash] = future;
1509
1514
  }
1510
- return await future;
1515
+ return future;
1511
1516
  }
1512
1517
  }
@@ -33,7 +33,7 @@ export default class poloniex extends poloniexRest {
33
33
  parseWsBalance(response: any): Balances;
34
34
  handleMyTrades(client: Client, parsedTrade: any): void;
35
35
  handlePong(client: Client): void;
36
- handleMessage(client: Client, message: any): any;
36
+ handleMessage(client: Client, message: any): void;
37
37
  handleErrorMessage(client: Client, message: any): boolean;
38
38
  handleAuthenticate(client: Client, message: any): any;
39
39
  ping(client: any): {
@@ -1042,7 +1042,8 @@ export default class poloniex extends poloniexRest {
1042
1042
  const bid = this.safeValue(bids, j);
1043
1043
  const price = this.safeNumber(bid, 0);
1044
1044
  const amount = this.safeNumber(bid, 1);
1045
- orderbook['bids'].store(price, amount);
1045
+ const bidsSide = orderbook['bids'];
1046
+ bidsSide.store(price, amount);
1046
1047
  }
1047
1048
  }
1048
1049
  if (asks !== undefined) {
@@ -1050,7 +1051,8 @@ export default class poloniex extends poloniexRest {
1050
1051
  const ask = this.safeValue(asks, j);
1051
1052
  const price = this.safeNumber(ask, 0);
1052
1053
  const amount = this.safeNumber(ask, 1);
1053
- orderbook['asks'].store(price, amount);
1054
+ const asksSide = orderbook['asks'];
1055
+ asksSide.store(price, amount);
1054
1056
  }
1055
1057
  }
1056
1058
  orderbook['symbol'] = symbol;
@@ -1184,14 +1186,14 @@ export default class poloniex extends poloniexRest {
1184
1186
  this.handleErrorMessage(client, item);
1185
1187
  }
1186
1188
  else {
1187
- return this.handleOrderRequest(client, message);
1189
+ this.handleOrderRequest(client, message);
1188
1190
  }
1189
1191
  }
1190
1192
  else {
1191
1193
  const data = this.safeValue(message, 'data', []);
1192
1194
  const dataLength = data.length;
1193
1195
  if (dataLength > 0) {
1194
- return method.call(this, client, message);
1196
+ method.call(this, client, message);
1195
1197
  }
1196
1198
  }
1197
1199
  }
@@ -3,7 +3,7 @@ import type { Int, Str, OrderBook, Order, Trade, Ticker, Balances } from '../bas
3
3
  import Client from '../base/ws/Client.js';
4
4
  export default class poloniexfutures extends poloniexfuturesRest {
5
5
  describe(): any;
6
- negotiate(privateChannel: any, params?: {}): any;
6
+ negotiate(privateChannel: any, params?: {}): Promise<any>;
7
7
  negotiateHelper(privateChannel: any, params?: {}): Promise<string>;
8
8
  requestId(): any;
9
9
  subscribe(name: string, isPrivate: boolean, symbol?: Str, subscription?: any, params?: {}): Promise<any>;
@@ -24,7 +24,7 @@ export default class poloniexfutures extends poloniexfuturesRest {
24
24
  parseOrderStatus(status: string, type: string): string;
25
25
  parseWsOrder(order: any, market?: any): Order;
26
26
  handleTicker(client: Client, message: any): any;
27
- handleL3OrderBook(client: Client, message: any): any;
27
+ handleL3OrderBook(client: Client, message: any): void;
28
28
  handleLevel2(client: Client, message: any): void;
29
29
  handleL2OrderBook(client: Client, message: any): void;
30
30
  handeL2Snapshot(client: Client, message: any): void;
@@ -34,13 +34,13 @@ export default class poloniexfutures extends poloniexfuturesRest {
34
34
  handleBalance(client: Client, message: any): any;
35
35
  parseWsBalance(response: any): Balances;
36
36
  handleSystemStatus(client: Client, message: any): any;
37
- handleSubject(client: Client, message: any): any;
37
+ handleSubject(client: Client, message: any): void;
38
38
  ping(client: Client): {
39
39
  id: any;
40
40
  type: string;
41
41
  };
42
42
  handlePong(client: Client, message: any): any;
43
43
  handleErrorMessage(client: Client, message: any): void;
44
- handleMessage(client: Client, message: any): any;
44
+ handleMessage(client: Client, message: any): void;
45
45
  handleAuthenticate(client: any, message: any): any;
46
46
  }
@@ -4,7 +4,6 @@
4
4
  // https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
5
  // EDIT THE CORRESPONDENT .ts FILE INSTEAD
6
6
 
7
- 'use strict';
8
7
  // ---------------------------------------------------------------------------
9
8
  import poloniexfuturesRest from '../poloniexfutures.js';
10
9
  import { AuthenticationError, BadRequest, ExchangeError } from '../base/errors.js';
@@ -64,18 +63,21 @@ export default class poloniexfutures extends poloniexfuturesRest {
64
63
  },
65
64
  });
66
65
  }
67
- negotiate(privateChannel, params = {}) {
66
+ async negotiate(privateChannel, params = {}) {
68
67
  const connectId = privateChannel ? 'private' : 'public';
69
68
  const urls = this.safeValue(this.options, 'urls', {});
70
69
  if (connectId in urls) {
71
- return urls[connectId];
70
+ // return urls[connectId];
71
+ const storedFuture = urls[connectId];
72
+ return await storedFuture;
72
73
  }
73
74
  // we store an awaitable to the url
74
75
  // so that multiple calls don't asynchronously
75
76
  // fetch different urls and overwrite each other
76
77
  urls[connectId] = this.spawn(this.negotiateHelper, privateChannel, params);
77
78
  this.options['urls'] = urls;
78
- return urls[connectId];
79
+ const future = urls[connectId];
80
+ return await future;
79
81
  }
80
82
  async negotiateHelper(privateChannel, params = {}) {
81
83
  let response = undefined;
@@ -713,7 +715,7 @@ export default class poloniexfutures extends poloniexfuturesRest {
713
715
  const messageHash = this.safeString(message, 'topic');
714
716
  const subject = this.safeString(message, 'subject');
715
717
  if (subject === 'received') {
716
- return message;
718
+ return;
717
719
  }
718
720
  // At the time of writting this, there is no implementation to easily convert each order into the orderbook so raw messages are returned
719
721
  client.resolve(message, messageHash);
@@ -732,9 +734,10 @@ export default class poloniexfutures extends poloniexfuturesRest {
732
734
  const topic = this.safeString(message, 'topic');
733
735
  const isSnapshot = topic.indexOf('Depth') >= 0;
734
736
  if (isSnapshot) {
735
- return this.handeL2Snapshot(client, message);
737
+ this.handeL2Snapshot(client, message);
738
+ return;
736
739
  }
737
- return this.handleL2OrderBook(client, message);
740
+ this.handleL2OrderBook(client, message);
738
741
  }
739
742
  handleL2OrderBook(client, message) {
740
743
  //
@@ -771,7 +774,7 @@ export default class poloniexfutures extends poloniexfuturesRest {
771
774
  const snapshotDelay = this.handleOption('watchOrderBook', 'snapshotDelay', 5);
772
775
  if (cacheLength === snapshotDelay) {
773
776
  const limit = 0;
774
- this.spawn(this.loadOrderBook, client, messageHash, symbol, limit);
777
+ this.spawn(this.loadOrderBook, client, messageHash, symbol, limit, {});
775
778
  }
776
779
  orderBook.cache.push(data);
777
780
  return;
@@ -959,7 +962,7 @@ export default class poloniexfutures extends poloniexfuturesRest {
959
962
  };
960
963
  const method = this.safeValue(methods, subject);
961
964
  if (method !== undefined) {
962
- return method.call(this, client, message);
965
+ method.call(this, client, message);
963
966
  }
964
967
  }
965
968
  ping(client) {
@@ -995,7 +998,7 @@ export default class poloniexfutures extends poloniexfuturesRest {
995
998
  };
996
999
  const method = this.safeValue(methods, type);
997
1000
  if (method !== undefined) {
998
- return method.call(this, client, message);
1001
+ method.call(this, client, message);
999
1002
  }
1000
1003
  }
1001
1004
  handleAuthenticate(client, message) {
@@ -22,6 +22,6 @@ export default class probit extends probitRest {
22
22
  handleErrorMessage(client: Client, message: any): void;
23
23
  handleAuthenticate(client: Client, message: any): void;
24
24
  handleMarketData(client: Client, message: any): void;
25
- handleMessage(client: Client, message: any): any;
25
+ handleMessage(client: Client, message: any): void;
26
26
  authenticate(params?: {}): Promise<any>;
27
27
  }