ccxt 4.5.56 → 4.5.57

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 (261) hide show
  1. package/README.md +10 -9
  2. package/dist/ccxt.browser.min.js +10 -10
  3. package/dist/cjs/ccxt.js +6 -11
  4. package/dist/cjs/src/apex.js +1 -1
  5. package/dist/cjs/src/arkham.js +3 -3
  6. package/dist/cjs/src/ascendex.js +2 -2
  7. package/dist/cjs/src/aster.js +7 -4
  8. package/dist/cjs/src/backpack.js +4 -4
  9. package/dist/cjs/src/base/Exchange.js +69 -32
  10. package/dist/cjs/src/base/functions/io.js +25 -0
  11. package/dist/cjs/src/base/functions.js +1 -0
  12. package/dist/cjs/src/bigone.js +3 -3
  13. package/dist/cjs/src/binance.js +192 -194
  14. package/dist/cjs/src/bingx.js +3 -3
  15. package/dist/cjs/src/bitfinex.js +71 -58
  16. package/dist/cjs/src/bitget.js +2 -2
  17. package/dist/cjs/src/bitmart.js +13 -6
  18. package/dist/cjs/src/bitmex.js +1 -1
  19. package/dist/cjs/src/bitopro.js +1 -1
  20. package/dist/cjs/src/bitrue.js +2 -2
  21. package/dist/cjs/src/bitso.js +1 -1
  22. package/dist/cjs/src/bitstamp.js +2 -1
  23. package/dist/cjs/src/bitteam.js +1 -1
  24. package/dist/cjs/src/bittrade.js +0 -1
  25. package/dist/cjs/src/bitvavo.js +457 -34
  26. package/dist/cjs/src/blofin.js +26 -3
  27. package/dist/cjs/src/bullish.js +6 -5
  28. package/dist/cjs/src/bydfi.js +1 -1
  29. package/dist/cjs/src/cex.js +3 -3
  30. package/dist/cjs/src/coinbase.js +75 -65
  31. package/dist/cjs/src/coinbaseexchange.js +2 -2
  32. package/dist/cjs/src/coinbaseinternational.js +2 -1
  33. package/dist/cjs/src/coinex.js +74 -74
  34. package/dist/cjs/src/coinmetro.js +1 -1
  35. package/dist/cjs/src/coinsph.js +1 -1
  36. package/dist/cjs/src/cryptocom.js +46 -48
  37. package/dist/cjs/src/cryptomus.js +43 -39
  38. package/dist/cjs/src/deepcoin.js +3 -2
  39. package/dist/cjs/src/delta.js +51 -52
  40. package/dist/cjs/src/deribit.js +31 -33
  41. package/dist/cjs/src/derive.js +26 -28
  42. package/dist/cjs/src/digifinex.js +43 -44
  43. package/dist/cjs/src/exmo.js +92 -83
  44. package/dist/cjs/src/extended.js +3497 -0
  45. package/dist/cjs/src/foxbit.js +71 -75
  46. package/dist/cjs/src/gate.js +53 -53
  47. package/dist/cjs/src/gemini.js +41 -43
  48. package/dist/cjs/src/grvt.js +4 -4
  49. package/dist/cjs/src/hashkey.js +52 -54
  50. package/dist/cjs/src/hitbtc.js +3 -13
  51. package/dist/cjs/src/hollaex.js +51 -54
  52. package/dist/cjs/src/htx.js +75 -67
  53. package/dist/cjs/src/hyperliquid.js +41 -42
  54. package/dist/cjs/src/indodax.js +2 -2
  55. package/dist/cjs/src/kraken.js +57 -58
  56. package/dist/cjs/src/kucoin.js +3 -2
  57. package/dist/cjs/src/latoken.js +30 -32
  58. package/dist/cjs/src/lbank.js +56 -56
  59. package/dist/cjs/src/lighter.js +35 -37
  60. package/dist/cjs/src/luno.js +35 -43
  61. package/dist/cjs/src/mexc.js +48 -49
  62. package/dist/cjs/src/modetrade.js +50 -52
  63. package/dist/cjs/src/ndax.js +35 -37
  64. package/dist/cjs/src/okx.js +17 -2
  65. package/dist/cjs/src/onetrading.js +21 -23
  66. package/dist/cjs/src/phemex.js +43 -45
  67. package/dist/cjs/src/poloniex.js +17 -12
  68. package/dist/cjs/src/pro/alpaca.js +1 -1
  69. package/dist/cjs/src/pro/apex.js +1 -1
  70. package/dist/cjs/src/pro/arkham.js +1 -1
  71. package/dist/cjs/src/pro/backpack.js +1 -1
  72. package/dist/cjs/src/pro/binance.js +3 -3
  73. package/dist/cjs/src/pro/bitget.js +1 -1
  74. package/dist/cjs/src/pro/bithumb.js +1 -1
  75. package/dist/cjs/src/pro/bitstamp.js +1 -1
  76. package/dist/cjs/src/pro/blockchaincom.js +1 -1
  77. package/dist/cjs/src/pro/bybit.js +1 -1
  78. package/dist/cjs/src/pro/cex.js +1 -1
  79. package/dist/cjs/src/pro/coinex.js +1 -1
  80. package/dist/cjs/src/pro/coinone.js +1 -1
  81. package/dist/cjs/src/pro/cryptocom.js +3 -1
  82. package/dist/cjs/src/pro/dydx.js +1 -1
  83. package/dist/cjs/src/pro/exmo.js +1 -1
  84. package/dist/cjs/src/pro/extended.js +865 -0
  85. package/dist/cjs/src/pro/gate.js +1 -1
  86. package/dist/cjs/src/pro/independentreserve.js +1 -1
  87. package/dist/cjs/src/pro/kucoin.js +1 -1
  88. package/dist/cjs/src/pro/luno.js +3 -3
  89. package/dist/cjs/src/pro/onetrading.js +1 -1
  90. package/dist/cjs/src/pro/toobit.js +1 -1
  91. package/dist/cjs/src/pro/weex.js +1 -1
  92. package/dist/cjs/src/static_dependencies/starknet/utils/hash/classHash.js +7 -7
  93. package/dist/cjs/src/tokocrypto.js +1 -1
  94. package/dist/cjs/src/toobit.js +2 -2
  95. package/dist/cjs/src/upbit.js +3 -3
  96. package/dist/cjs/src/weex.js +57 -62
  97. package/dist/cjs/src/whitebit.js +61 -63
  98. package/dist/cjs/src/woo.js +65 -54
  99. package/dist/cjs/src/woofipro.js +53 -47
  100. package/dist/cjs/src/xt.js +1 -1
  101. package/dist/cjs/src/zebpay.js +70 -72
  102. package/js/ccxt.d.ts +8 -14
  103. package/js/ccxt.js +6 -10
  104. package/js/src/abstract/bitvavo.d.ts +15 -7
  105. package/js/src/abstract/extended.d.ts +58 -0
  106. package/js/src/apex.js +1 -1
  107. package/js/src/arkham.js +3 -3
  108. package/js/src/ascendex.js +2 -2
  109. package/js/src/aster.js +7 -4
  110. package/js/src/backpack.js +4 -4
  111. package/js/src/base/Exchange.d.ts +10 -6
  112. package/js/src/base/Exchange.js +69 -32
  113. package/js/src/base/functions/io.d.ts +7 -0
  114. package/js/src/base/functions/io.js +24 -0
  115. package/js/src/bigone.js +3 -3
  116. package/js/src/binance.d.ts +2 -0
  117. package/js/src/binance.js +196 -198
  118. package/js/src/bingx.js +3 -3
  119. package/js/src/bitfinex.d.ts +2 -0
  120. package/js/src/bitfinex.js +71 -58
  121. package/js/src/bitget.js +2 -2
  122. package/js/src/bitmart.js +13 -6
  123. package/js/src/bitmex.js +1 -1
  124. package/js/src/bitopro.js +1 -1
  125. package/js/src/bitrue.js +2 -2
  126. package/js/src/bitso.js +1 -1
  127. package/js/src/bitstamp.js +2 -1
  128. package/js/src/bitteam.js +1 -1
  129. package/js/src/bittrade.js +0 -1
  130. package/js/src/bitvavo.d.ts +114 -21
  131. package/js/src/bitvavo.js +457 -34
  132. package/js/src/blofin.d.ts +1 -0
  133. package/js/src/blofin.js +26 -3
  134. package/js/src/bullish.js +6 -5
  135. package/js/src/bydfi.js +1 -1
  136. package/js/src/cex.js +3 -3
  137. package/js/src/coinbase.d.ts +63 -56
  138. package/js/src/coinbase.js +75 -65
  139. package/js/src/coinbaseexchange.js +2 -2
  140. package/js/src/coinbaseinternational.js +2 -1
  141. package/js/src/coinex.d.ts +1 -0
  142. package/js/src/coinex.js +74 -74
  143. package/js/src/coinmetro.d.ts +1 -1
  144. package/js/src/coinmetro.js +1 -1
  145. package/js/src/coinsph.js +1 -1
  146. package/js/src/cryptocom.d.ts +1 -0
  147. package/js/src/cryptocom.js +46 -48
  148. package/js/src/cryptomus.d.ts +2 -1
  149. package/js/src/cryptomus.js +43 -39
  150. package/js/src/deepcoin.js +3 -2
  151. package/js/src/delta.d.ts +1 -0
  152. package/js/src/delta.js +51 -52
  153. package/js/src/deribit.d.ts +1 -0
  154. package/js/src/deribit.js +31 -33
  155. package/js/src/derive.d.ts +1 -0
  156. package/js/src/derive.js +26 -28
  157. package/js/src/digifinex.d.ts +1 -0
  158. package/js/src/digifinex.js +43 -44
  159. package/js/src/exmo.d.ts +1 -0
  160. package/js/src/exmo.js +92 -83
  161. package/js/src/extended.d.ts +554 -0
  162. package/js/src/extended.js +3490 -0
  163. package/js/src/foxbit.d.ts +1 -0
  164. package/js/src/foxbit.js +71 -75
  165. package/js/src/gate.d.ts +1 -0
  166. package/js/src/gate.js +53 -53
  167. package/js/src/gemini.d.ts +2 -1
  168. package/js/src/gemini.js +41 -43
  169. package/js/src/grvt.js +4 -4
  170. package/js/src/hashkey.d.ts +1 -0
  171. package/js/src/hashkey.js +52 -54
  172. package/js/src/hitbtc.d.ts +0 -1
  173. package/js/src/hitbtc.js +3 -13
  174. package/js/src/hollaex.d.ts +1 -0
  175. package/js/src/hollaex.js +51 -54
  176. package/js/src/htx.d.ts +1 -0
  177. package/js/src/htx.js +75 -67
  178. package/js/src/hyperliquid.d.ts +1 -0
  179. package/js/src/hyperliquid.js +41 -42
  180. package/js/src/indodax.js +2 -2
  181. package/js/src/kraken.d.ts +2 -1
  182. package/js/src/kraken.js +57 -58
  183. package/js/src/kucoin.js +3 -2
  184. package/js/src/latoken.d.ts +1 -0
  185. package/js/src/latoken.js +30 -32
  186. package/js/src/lbank.d.ts +1 -0
  187. package/js/src/lbank.js +56 -56
  188. package/js/src/lighter.d.ts +1 -0
  189. package/js/src/lighter.js +35 -37
  190. package/js/src/luno.d.ts +1 -0
  191. package/js/src/luno.js +35 -43
  192. package/js/src/mexc.d.ts +2 -1
  193. package/js/src/mexc.js +48 -49
  194. package/js/src/modetrade.d.ts +1 -0
  195. package/js/src/modetrade.js +50 -52
  196. package/js/src/ndax.d.ts +1 -0
  197. package/js/src/ndax.js +35 -37
  198. package/js/src/okx.js +17 -2
  199. package/js/src/onetrading.d.ts +2 -1
  200. package/js/src/onetrading.js +21 -23
  201. package/js/src/phemex.d.ts +1 -0
  202. package/js/src/phemex.js +43 -45
  203. package/js/src/poloniex.js +17 -12
  204. package/js/src/pro/alpaca.js +1 -1
  205. package/js/src/pro/apex.js +1 -1
  206. package/js/src/pro/arkham.js +1 -1
  207. package/js/src/pro/backpack.js +1 -1
  208. package/js/src/pro/binance.js +3 -3
  209. package/js/src/pro/bitget.js +1 -1
  210. package/js/src/pro/bithumb.js +1 -1
  211. package/js/src/pro/bitstamp.js +1 -1
  212. package/js/src/pro/blockchaincom.js +1 -1
  213. package/js/src/pro/bybit.js +1 -1
  214. package/js/src/pro/cex.js +1 -1
  215. package/js/src/pro/coinex.js +1 -1
  216. package/js/src/pro/coinone.js +1 -1
  217. package/js/src/pro/cryptocom.js +3 -1
  218. package/js/src/pro/dydx.js +1 -1
  219. package/js/src/pro/exmo.js +1 -1
  220. package/js/src/pro/extended.d.ts +126 -0
  221. package/js/src/pro/extended.js +858 -0
  222. package/js/src/pro/gate.js +1 -1
  223. package/js/src/pro/independentreserve.js +1 -1
  224. package/js/src/pro/kucoin.js +1 -1
  225. package/js/src/pro/luno.d.ts +1 -1
  226. package/js/src/pro/luno.js +3 -3
  227. package/js/src/pro/onetrading.js +1 -1
  228. package/js/src/pro/toobit.js +1 -1
  229. package/js/src/pro/weex.js +1 -1
  230. package/js/src/tokocrypto.js +1 -1
  231. package/js/src/toobit.js +2 -2
  232. package/js/src/upbit.js +3 -3
  233. package/js/src/weex.d.ts +1 -0
  234. package/js/src/weex.js +57 -62
  235. package/js/src/whitebit.d.ts +1 -0
  236. package/js/src/whitebit.js +61 -63
  237. package/js/src/woo.d.ts +1 -0
  238. package/js/src/woo.js +65 -54
  239. package/js/src/woofipro.d.ts +1 -0
  240. package/js/src/woofipro.js +53 -47
  241. package/js/src/xt.js +1 -1
  242. package/js/src/zebpay.d.ts +2 -1
  243. package/js/src/zebpay.js +70 -72
  244. package/package.json +7 -7
  245. package/dist/cjs/src/gateio.js +0 -18
  246. package/dist/cjs/src/oxfun.js +0 -2933
  247. package/dist/cjs/src/pro/gateio.js +0 -18
  248. package/dist/cjs/src/pro/oxfun.js +0 -1113
  249. package/js/src/abstract/gateio.d.ts +0 -346
  250. package/js/src/abstract/gateio.js +0 -5
  251. package/js/src/abstract/oxfun.d.ts +0 -37
  252. package/js/src/gateio.d.ts +0 -4
  253. package/js/src/gateio.js +0 -11
  254. package/js/src/oxfun.d.ts +0 -442
  255. package/js/src/oxfun.js +0 -2926
  256. package/js/src/pro/gateio.d.ts +0 -4
  257. package/js/src/pro/gateio.js +0 -11
  258. package/js/src/pro/oxfun.d.ts +0 -234
  259. package/js/src/pro/oxfun.js +0 -1106
  260. /package/dist/cjs/src/abstract/{oxfun.js → extended.js} +0 -0
  261. /package/js/src/abstract/{oxfun.js → extended.js} +0 -0
@@ -2773,14 +2773,23 @@ export default class poloniex extends Exchange {
2773
2773
  async withdraw(code, amount, address, tag = undefined, params = {}) {
2774
2774
  [tag, params] = this.handleWithdrawTagAndParams(tag, params);
2775
2775
  this.checkAddress(address);
2776
- const [request, extraParams, currency, networkEntry] = this.prepareRequestForDepositAddress(code, params);
2777
- params = extraParams;
2778
- request['amount'] = this.currencyToPrecision(code, amount);
2779
- request['address'] = address;
2776
+ const currency = this.currency(code);
2777
+ const request = {
2778
+ 'coin': currency['id'],
2779
+ 'amount': this.currencyToPrecision(code, amount),
2780
+ 'address': address,
2781
+ };
2782
+ let networkCode = undefined;
2783
+ [networkCode, params] = this.handleNetworkCodeAndParams(params);
2784
+ if (networkCode === undefined) {
2785
+ // we need to know the network to find out the currency-junction
2786
+ throw new ArgumentsRequired(this.id + ' withdraw requires a network parameter for ' + code + '.');
2787
+ }
2788
+ request['network'] = this.networkCodeToId(networkCode, code);
2780
2789
  if (tag !== undefined) {
2781
2790
  request['paymentId'] = tag;
2782
2791
  }
2783
- const response = await this.privatePostWalletsWithdraw(this.extend(request, params));
2792
+ const response = await this.privatePostV2WalletsWithdraw(this.extend(request, params));
2784
2793
  //
2785
2794
  // {
2786
2795
  // "response": "Withdrew 1.00000000 USDT.",
@@ -2788,11 +2797,7 @@ export default class poloniex extends Exchange {
2788
2797
  // "withdrawalNumber": 13449869
2789
2798
  // }
2790
2799
  //
2791
- const withdrawResponse = {
2792
- 'response': response,
2793
- 'withdrawNetworkEntry': networkEntry,
2794
- };
2795
- return this.parseTransaction(withdrawResponse, currency);
2800
+ return this.parseTransaction(response, currency);
2796
2801
  }
2797
2802
  async fetchTransactionsHelper(code = undefined, since = undefined, limit = undefined, params = {}) {
2798
2803
  await this.loadMarkets();
@@ -3005,7 +3010,7 @@ export default class poloniex extends Exchange {
3005
3010
  for (let j = 0; j < childChains.length; j++) {
3006
3011
  let networkId = childChains[j];
3007
3012
  networkId = networkId.replace(code, '');
3008
- const networkCode = this.networkIdToCode(networkId);
3013
+ const networkCode = this.networkIdToCode(networkId, currency['code']);
3009
3014
  const networkInfo = this.safeValue(response, networkId);
3010
3015
  const networkObject = {};
3011
3016
  const withdrawFee = this.safeNumber(networkInfo, 'withdrawalFee');
@@ -3041,7 +3046,7 @@ export default class poloniex extends Exchange {
3041
3046
  };
3042
3047
  depositWithdrawFee['withdraw'] = withdrawResult;
3043
3048
  depositWithdrawFee['deposit'] = depositResult;
3044
- const networkCode = this.networkIdToCode(networkId);
3049
+ const networkCode = this.networkIdToCode(networkId, this.safeString(currency, 'code'));
3045
3050
  depositWithdrawFee['networks'][networkCode] = {
3046
3051
  'withdraw': withdrawResult,
3047
3052
  'deposit': depositResult,
@@ -262,7 +262,7 @@ export default class alpaca extends alpacaRest {
262
262
  client.resolve(orderbook, messageHash);
263
263
  }
264
264
  handleDelta(bookside, delta) {
265
- const bidAsk = this.parseBidAsk(delta, 'p', 's');
265
+ const bidAsk = this.parseOrderBookBidAsk(delta, 'p', 's');
266
266
  bookside.storeArray(bidAsk);
267
267
  }
268
268
  handleDeltas(bookside, deltas) {
@@ -336,7 +336,7 @@ export default class apex extends apexRest {
336
336
  client.resolve(orderbook, messageHash);
337
337
  }
338
338
  handleDelta(bookside, delta) {
339
- const bidAsk = this.parseBidAsk(delta, 0, 1);
339
+ const bidAsk = this.parseOrderBookBidAsk(delta, 0, 1);
340
340
  bookside.storeArray(bidAsk);
341
341
  }
342
342
  handleDeltas(bookside, deltas) {
@@ -292,7 +292,7 @@ export default class arkham extends arkhamRest {
292
292
  client.resolve(this.orderbooks[symbol], messageHash);
293
293
  }
294
294
  handleDelta(bookside, delta) {
295
- const bidAsk = this.parseBidAsk(delta, 'price', 'size');
295
+ const bidAsk = this.parseOrderBookBidAsk(delta, 'price', 'size');
296
296
  bookside.storeArray(bidAsk);
297
297
  }
298
298
  /**
@@ -889,7 +889,7 @@ export default class backpack extends backpackRest {
889
889
  }
890
890
  handleBidAsks(bookSide, bidAsks) {
891
891
  for (let i = 0; i < bidAsks.length; i++) {
892
- const bidAsk = this.parseBidAsk(bidAsks[i]);
892
+ const bidAsk = this.parseOrderBookBidAsk(bidAsks[i]);
893
893
  bookSide.storeArray(bidAsk);
894
894
  }
895
895
  }
@@ -2239,7 +2239,7 @@ export default class binance extends binanceRest {
2239
2239
  // "status":200,
2240
2240
  // "result":{
2241
2241
  // "symbol":"BTCUSDT",
2242
- // "price":"73178.50",
2242
+ // "price":"73178.60",
2243
2243
  // "time":1712527052374
2244
2244
  // }
2245
2245
  // }
@@ -3674,8 +3674,8 @@ export default class binance extends binanceRest {
3674
3674
  await this.loadMarkets();
3675
3675
  const market = this.market(symbol);
3676
3676
  const type = this.getMarketType('fetchOpenOrdersWs', market, params);
3677
- if (type !== 'spot' && type !== 'future') {
3678
- throw new BadRequest(this.id + ' fetchOpenOrdersWs only supports spot or swap markets');
3677
+ if (type !== 'spot') {
3678
+ throw new BadRequest(this.id + ' fetchOpenOrdersWs only supports spot markets');
3679
3679
  }
3680
3680
  const url = this.urls['api']['ws']['ws-api'][type];
3681
3681
  const requestId = this.requestId(url);
@@ -943,7 +943,7 @@ export default class bitget extends bitgetRest {
943
943
  client.reject(error, messageHash);
944
944
  }
945
945
  handleDelta(bookside, delta) {
946
- const bidAsk = this.parseBidAsk(delta, 0, 1);
946
+ const bidAsk = this.parseOrderBookBidAsk(delta, 0, 1);
947
947
  // we store the string representations in the orderbook for checksum calculation
948
948
  // this simplifies the code for generating checksums as we do not need to do any complex number transformations
949
949
  bidAsk.push(delta);
@@ -247,7 +247,7 @@ export default class bithumb extends bithumbRest {
247
247
  //
248
248
  const sideId = this.safeString(delta, 'orderType');
249
249
  const side = (sideId === 'bid') ? 'bids' : 'asks';
250
- const bidAsk = this.parseBidAsk(delta, 'price', 'quantity');
250
+ const bidAsk = this.parseOrderBookBidAsk(delta, 'price', 'quantity');
251
251
  const orderbookSide = orderbook[side];
252
252
  orderbookSide.storeArray(bidAsk);
253
253
  }
@@ -130,7 +130,7 @@ export default class bitstamp extends bitstampRest {
130
130
  }
131
131
  handleBidAsks(bookSide, bidAsks) {
132
132
  for (let i = 0; i < bidAsks.length; i++) {
133
- const bidAsk = this.parseBidAsk(bidAsks[i]);
133
+ const bidAsk = this.parseOrderBookBidAsk(bidAsks[i]);
134
134
  bookSide.storeArray(bidAsk);
135
135
  }
136
136
  }
@@ -706,7 +706,7 @@ export default class blockchaincom extends blockchaincomRest {
706
706
  client.resolve(orderbook, messageHash);
707
707
  }
708
708
  handleDelta(bookside, delta) {
709
- const bookArray = this.parseBidAsk(delta, 'px', 'qty', 'num');
709
+ const bookArray = this.parseOrderBookBidAsk(delta, 'px', 'qty', 'num');
710
710
  bookside.storeArray(bookArray);
711
711
  }
712
712
  handleDeltas(bookside, deltas) {
@@ -1019,7 +1019,7 @@ export default class bybit extends bybitRest {
1019
1019
  }
1020
1020
  }
1021
1021
  handleDelta(bookside, delta) {
1022
- const bidAsk = this.parseBidAsk(delta, 0, 1);
1022
+ const bidAsk = this.parseOrderBookBidAsk(delta, 0, 1);
1023
1023
  bookside.storeArray(bidAsk);
1024
1024
  }
1025
1025
  handleDeltas(bookside, deltas) {
package/js/src/pro/cex.js CHANGED
@@ -1029,7 +1029,7 @@ export default class cex extends cexRest {
1029
1029
  client.resolve(storedOrderBook, messageHash);
1030
1030
  }
1031
1031
  handleDelta(bookside, delta) {
1032
- const bidAsk = this.parseBidAsk(delta, 0, 1);
1032
+ const bidAsk = this.parseOrderBookBidAsk(delta, 0, 1);
1033
1033
  bookside.storeArray(bidAsk);
1034
1034
  }
1035
1035
  handleDeltas(bookside, deltas) {
@@ -809,7 +809,7 @@ export default class coinex extends coinexRest {
809
809
  return await this.watchOrderBookForSymbols([symbol], limit, params);
810
810
  }
811
811
  handleDelta(bookside, delta) {
812
- const bidAsk = this.parseBidAsk(delta, 0, 1);
812
+ const bidAsk = this.parseOrderBookBidAsk(delta, 0, 1);
813
813
  bookside.storeArray(bidAsk);
814
814
  }
815
815
  handleDeltas(bookside, deltas) {
@@ -121,7 +121,7 @@ export default class coinone extends coinoneRest {
121
121
  client.resolve(orderbook, messageHash);
122
122
  }
123
123
  handleDelta(bookside, delta) {
124
- const bidAsk = this.parseBidAsk(delta, 'price', 'qty');
124
+ const bidAsk = this.parseOrderBookBidAsk(delta, 'price', 'qty');
125
125
  bookside.storeArray(bidAsk);
126
126
  }
127
127
  /**
@@ -1034,7 +1034,9 @@ export default class cryptocom extends cryptocomRest {
1034
1034
  }
1035
1035
  client.resolve(this.balance, messageHash);
1036
1036
  const messageHashRequest = this.safeString(message, 'id');
1037
- client.resolve(this.balance, messageHashRequest);
1037
+ if (messageHashRequest !== undefined) {
1038
+ client.resolve(this.balance, messageHashRequest);
1039
+ }
1038
1040
  }
1039
1041
  /**
1040
1042
  * @method
@@ -240,7 +240,7 @@ export default class dydx extends dydxRest {
240
240
  bookside.store(price, amount);
241
241
  }
242
242
  else {
243
- const bidAsk = this.parseBidAsk(delta, 'price', 'size');
243
+ const bidAsk = this.parseOrderBookBidAsk(delta, 'price', 'size');
244
244
  bookside.storeArray(bidAsk);
245
245
  }
246
246
  }
@@ -561,7 +561,7 @@ export default class exmo extends exmoRest {
561
561
  client.resolve(orderbook, messageHash);
562
562
  }
563
563
  handleDelta(bookside, delta) {
564
- const bidAsk = this.parseBidAsk(delta, 0, 1);
564
+ const bidAsk = this.parseOrderBookBidAsk(delta, 0, 1);
565
565
  bookside.storeArray(bidAsk);
566
566
  }
567
567
  handleDeltas(bookside, deltas) {
@@ -0,0 +1,126 @@
1
+ import extendedRest from '../extended.js';
2
+ import type { Balances, Bool, FundingRate, Int, OHLCV, Order, OrderBook, Position, Str, Strings, Ticker, Trade } from '../base/types.js';
3
+ import Client from '../base/ws/Client.js';
4
+ export default class extended extends extendedRest {
5
+ describe(): any;
6
+ /**
7
+ * @method
8
+ * @name extended#watchOrderBook
9
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
10
+ * @see https://api.docs.extended.exchange/#order-book-stream
11
+ * @param {string} symbol unified symbol of the market to fetch the order book for
12
+ * @param {int} [limit] the maximum amount of order book entries to return
13
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
14
+ * @param {string} [params.depth] set to '1' to receive best bid and ask snapshots only
15
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/?id=order-book-structure} indexed by market symbols
16
+ */
17
+ watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
18
+ handleOrderBook(client: Client, message: any): void;
19
+ handleDelta(bookside: any, delta: any): void;
20
+ handleDeltas(bookside: any, deltas: any): void;
21
+ watchPrivate(messageHash: string, subscription?: any): Promise<any>;
22
+ /**
23
+ * @method
24
+ * @name extended#watchOrders
25
+ * @description watches information on multiple orders made by the user
26
+ * @see https://api.docs.extended.exchange/#account-updates-stream
27
+ * @param {string} symbol unified market symbol of the market orders were made in
28
+ * @param {int} [since] the earliest time in ms to fetch orders for
29
+ * @param {int} [limit] the maximum number of order structures to retrieve
30
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
31
+ * @returns {object[]} a list of [order structures]{@link https://docs.ccxt.com/?id=order-structure}
32
+ */
33
+ watchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
34
+ /**
35
+ * @method
36
+ * @name extended#watchBalance
37
+ * @description watches balance updates
38
+ * @see https://api.docs.extended.exchange/#account-updates-stream
39
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
40
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/?id=balance-structure}
41
+ */
42
+ watchBalance(params?: {}): Promise<Balances>;
43
+ handleBalance(client: Client, message: any): void;
44
+ /**
45
+ * @method
46
+ * @name extended#watchMyTrades
47
+ * @description watches information on multiple trades made by the user
48
+ * @see https://api.docs.extended.exchange/#account-updates-stream
49
+ * @param {string} [symbol] unified market symbol of the trades
50
+ * @param {int} [since] the earliest time in ms to fetch trades for
51
+ * @param {int} [limit] the maximum number of trade structures to retrieve
52
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
53
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=trade-structure}
54
+ */
55
+ watchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
56
+ handleMyTrades(client: Client, message: any): void;
57
+ /**
58
+ * @method
59
+ * @name extended#watchPositions
60
+ * @description watches information on multiple positions
61
+ * @see https://api.docs.extended.exchange/#account-updates-stream
62
+ * @param {string[]} [symbols] unified market symbols
63
+ * @param {int} [since] the earliest time in ms to fetch positions for
64
+ * @param {int} [limit] the maximum number of position structures to retrieve
65
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
66
+ * @returns {object[]} a list of [position structures]{@link https://docs.ccxt.com/#/?id=position-structure}
67
+ */
68
+ watchPositions(symbols?: Strings, since?: Int, limit?: Int, params?: {}): Promise<Position[]>;
69
+ handlePositions(client: Client, message: any): void;
70
+ handleOrders(client: Client, message: any): void;
71
+ /**
72
+ * @method
73
+ * @name extended#watchFundingRate
74
+ * @description watch the current funding rate
75
+ * @see https://api.docs.extended.exchange/#funding-rates-stream
76
+ * @param {string} symbol unified market symbol
77
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
78
+ * @returns {object} a [funding rate structure]{@link https://docs.ccxt.com/?id=funding-rate-structure}
79
+ */
80
+ watchFundingRate(symbol: string, params?: {}): Promise<FundingRate>;
81
+ handleFundingRate(client: Client, message: any): void;
82
+ parseWsFundingRate(fundingRate: any, market?: any, message?: any): FundingRate;
83
+ /**
84
+ * @method
85
+ * @name extended#watchMarkPrice
86
+ * @description watches a mark price for a specific market
87
+ * @see https://api.docs.extended.exchange/#mark-price-stream
88
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
89
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
90
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/?id=ticker-structure}
91
+ */
92
+ watchMarkPrice(symbol: string, params?: {}): Promise<Ticker>;
93
+ handleMarkPrice(client: Client, message: any): void;
94
+ /**
95
+ * @method
96
+ * @name extended#watchTrades
97
+ * @description get the list of most recent trades for a particular symbol
98
+ * @see https://api.docs.extended.exchange/#trades-stream
99
+ * @param {string} symbol unified symbol of the market to fetch trades for
100
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
101
+ * @param {int} [limit] the maximum amount of trades to fetch
102
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
103
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/?id=public-trades}
104
+ */
105
+ watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
106
+ handleTrades(client: Client, message: any): void;
107
+ /**
108
+ * @method
109
+ * @name extended#watchOHLCV
110
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
111
+ * @see https://api.docs.extended.exchange/#candles-stream
112
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
113
+ * @param {string} timeframe the length of time each candle represents
114
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
115
+ * @param {int} [limit] the maximum amount of candles to fetch
116
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
117
+ * @param {string} [params.candleType] candle type: 'trades' (default), 'mark-prices', or 'index-prices'
118
+ * @param {string} [params.price] *ignored if params.candleType is set* 'mark' or 'index' for mark price and index price candles
119
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
120
+ */
121
+ watchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
122
+ handleOHLCV(client: Client, message: any): void;
123
+ findSubscription(client: Client, name: string): import("../base/types.js").Dictionary<any>;
124
+ handleErrorMessage(client: Client, message: any): Bool;
125
+ handleMessage(client: Client, message: any): void;
126
+ }