ccxt 4.1.17 → 4.1.19

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 (216) hide show
  1. package/README.md +3 -3
  2. package/build.sh +2 -0
  3. package/dist/ccxt.browser.js +501 -261
  4. package/dist/ccxt.browser.min.js +3 -3
  5. package/dist/cjs/ccxt.js +1 -1
  6. package/dist/cjs/src/ace.js +2 -5
  7. package/dist/cjs/src/base/Exchange.js +100 -2
  8. package/dist/cjs/src/base/functions/type.js +1 -1
  9. package/dist/cjs/src/bigone.js +1 -1
  10. package/dist/cjs/src/binance.js +4 -3
  11. package/dist/cjs/src/bit2c.js +4 -4
  12. package/dist/cjs/src/bitfinex.js +1 -1
  13. package/dist/cjs/src/bitfinex2.js +1 -1
  14. package/dist/cjs/src/bitget.js +160 -27
  15. package/dist/cjs/src/bithumb.js +1 -1
  16. package/dist/cjs/src/bitmart.js +6 -7
  17. package/dist/cjs/src/bitmex.js +1 -1
  18. package/dist/cjs/src/bitpanda.js +1 -1
  19. package/dist/cjs/src/bitstamp.js +2 -3
  20. package/dist/cjs/src/bitstamp1.js +12 -12
  21. package/dist/cjs/src/bittrex.js +3 -3
  22. package/dist/cjs/src/bl3p.js +1 -1
  23. package/dist/cjs/src/btcalpha.js +2 -3
  24. package/dist/cjs/src/btcbox.js +4 -4
  25. package/dist/cjs/src/btctradeua.js +17 -17
  26. package/dist/cjs/src/bybit.js +1 -1
  27. package/dist/cjs/src/cex.js +1 -1
  28. package/dist/cjs/src/coinbase.js +5 -6
  29. package/dist/cjs/src/coinbasepro.js +1 -1
  30. package/dist/cjs/src/coincheck.js +5 -5
  31. package/dist/cjs/src/coinex.js +1 -1
  32. package/dist/cjs/src/coinfalcon.js +1 -1
  33. package/dist/cjs/src/coinmate.js +2 -2
  34. package/dist/cjs/src/coinone.js +1 -1
  35. package/dist/cjs/src/coinsph.js +1 -0
  36. package/dist/cjs/src/coinspot.js +15 -15
  37. package/dist/cjs/src/delta.js +1 -1
  38. package/dist/cjs/src/deribit.js +1 -1
  39. package/dist/cjs/src/digifinex.js +8 -9
  40. package/dist/cjs/src/exmo.js +3 -4
  41. package/dist/cjs/src/gate.js +2 -1
  42. package/dist/cjs/src/gemini.js +8 -1
  43. package/dist/cjs/src/hitbtc.js +1 -1
  44. package/dist/cjs/src/hollaex.js +1 -1
  45. package/dist/cjs/src/huobi.js +13 -19
  46. package/dist/cjs/src/huobijp.js +3 -3
  47. package/dist/cjs/src/indodax.js +2 -1
  48. package/dist/cjs/src/kraken.js +3 -2
  49. package/dist/cjs/src/krakenfutures.js +6 -6
  50. package/dist/cjs/src/kucoin.js +3 -2
  51. package/dist/cjs/src/kucoinfutures.js +2 -2
  52. package/dist/cjs/src/kuna.js +1 -1
  53. package/dist/cjs/src/lbank.js +2 -2
  54. package/dist/cjs/src/lbank2.js +11 -8
  55. package/dist/cjs/src/luno.js +1 -1
  56. package/dist/cjs/src/lykke.js +2 -2
  57. package/dist/cjs/src/mexc.js +7 -8
  58. package/dist/cjs/src/novadax.js +1 -1
  59. package/dist/cjs/src/oceanex.js +1 -1
  60. package/dist/cjs/src/okcoin.js +4 -5
  61. package/dist/cjs/src/okx.js +18 -10
  62. package/dist/cjs/src/paymium.js +1 -1
  63. package/dist/cjs/src/poloniex.js +5 -5
  64. package/dist/cjs/src/poloniexfutures.js +2 -2
  65. package/dist/cjs/src/tidex.js +1 -1
  66. package/dist/cjs/src/upbit.js +1 -1
  67. package/dist/cjs/src/wazirx.js +1 -1
  68. package/dist/cjs/src/whitebit.js +1 -1
  69. package/dist/cjs/src/woo.js +3 -1
  70. package/dist/cjs/src/yobit.js +1 -1
  71. package/js/ccxt.d.ts +1 -1
  72. package/js/ccxt.js +1 -1
  73. package/js/src/abstract/binance.d.ts +1 -0
  74. package/js/src/abstract/binancecoinm.d.ts +1 -0
  75. package/js/src/abstract/binanceus.d.ts +1 -0
  76. package/js/src/abstract/binanceusdm.d.ts +1 -0
  77. package/js/src/abstract/okex.d.ts +9 -0
  78. package/js/src/abstract/okex5.d.ts +9 -0
  79. package/js/src/abstract/okx.d.ts +9 -0
  80. package/js/src/ace.d.ts +2 -2
  81. package/js/src/ace.js +2 -5
  82. package/js/src/ascendex.d.ts +7 -7
  83. package/js/src/base/Exchange.d.ts +3 -0
  84. package/js/src/base/Exchange.js +100 -2
  85. package/js/src/base/functions/type.js +1 -1
  86. package/js/src/base/types.d.ts +3 -0
  87. package/js/src/bigone.d.ts +1 -1
  88. package/js/src/bigone.js +1 -1
  89. package/js/src/binance.d.ts +1 -1
  90. package/js/src/binance.js +4 -3
  91. package/js/src/bit2c.js +4 -4
  92. package/js/src/bitfinex.d.ts +1 -1
  93. package/js/src/bitfinex.js +1 -1
  94. package/js/src/bitfinex2.d.ts +3 -3
  95. package/js/src/bitfinex2.js +1 -1
  96. package/js/src/bitflyer.d.ts +7 -7
  97. package/js/src/bitget.d.ts +1 -1
  98. package/js/src/bitget.js +160 -27
  99. package/js/src/bithumb.d.ts +1 -1
  100. package/js/src/bithumb.js +1 -1
  101. package/js/src/bitmart.d.ts +2 -2
  102. package/js/src/bitmart.js +6 -7
  103. package/js/src/bitmex.d.ts +4 -4
  104. package/js/src/bitmex.js +1 -1
  105. package/js/src/bitopro.d.ts +2 -2
  106. package/js/src/bitpanda.d.ts +1 -1
  107. package/js/src/bitpanda.js +1 -1
  108. package/js/src/bitstamp.d.ts +1 -1
  109. package/js/src/bitstamp.js +2 -3
  110. package/js/src/bitstamp1.js +12 -12
  111. package/js/src/bittrex.d.ts +2 -2
  112. package/js/src/bittrex.js +3 -3
  113. package/js/src/bl3p.js +1 -1
  114. package/js/src/btcalpha.d.ts +1 -1
  115. package/js/src/btcalpha.js +2 -3
  116. package/js/src/btcbox.js +4 -4
  117. package/js/src/btcmarkets.d.ts +7 -7
  118. package/js/src/btctradeua.js +17 -17
  119. package/js/src/btcturk.d.ts +6 -6
  120. package/js/src/bybit.d.ts +2 -2
  121. package/js/src/bybit.js +1 -1
  122. package/js/src/cex.d.ts +9 -9
  123. package/js/src/cex.js +1 -1
  124. package/js/src/coinbase.d.ts +5 -5
  125. package/js/src/coinbase.js +5 -6
  126. package/js/src/coinbasepro.d.ts +1 -1
  127. package/js/src/coinbasepro.js +1 -1
  128. package/js/src/coincheck.d.ts +4 -4
  129. package/js/src/coincheck.js +5 -5
  130. package/js/src/coinex.d.ts +1 -1
  131. package/js/src/coinex.js +1 -1
  132. package/js/src/coinfalcon.d.ts +4 -4
  133. package/js/src/coinfalcon.js +1 -1
  134. package/js/src/coinmate.d.ts +1 -22
  135. package/js/src/coinmate.js +2 -2
  136. package/js/src/coinone.d.ts +1 -1
  137. package/js/src/coinone.js +1 -1
  138. package/js/src/coinsph.js +1 -0
  139. package/js/src/coinspot.d.ts +1 -1
  140. package/js/src/coinspot.js +15 -15
  141. package/js/src/cryptocom.d.ts +4 -4
  142. package/js/src/delta.d.ts +1 -1
  143. package/js/src/delta.js +1 -1
  144. package/js/src/deribit.d.ts +4 -4
  145. package/js/src/deribit.js +1 -1
  146. package/js/src/digifinex.d.ts +2 -2
  147. package/js/src/digifinex.js +8 -9
  148. package/js/src/exmo.d.ts +14 -14
  149. package/js/src/exmo.js +3 -4
  150. package/js/src/gate.d.ts +10 -12
  151. package/js/src/gate.js +2 -1
  152. package/js/src/gemini.d.ts +7 -7
  153. package/js/src/gemini.js +8 -1
  154. package/js/src/hitbtc.d.ts +23 -23
  155. package/js/src/hitbtc.js +1 -1
  156. package/js/src/hollaex.d.ts +5 -5
  157. package/js/src/hollaex.js +1 -1
  158. package/js/src/huobi.d.ts +8 -27
  159. package/js/src/huobi.js +13 -19
  160. package/js/src/huobijp.d.ts +15 -34
  161. package/js/src/huobijp.js +3 -3
  162. package/js/src/idex.d.ts +9 -9
  163. package/js/src/indodax.d.ts +6 -6
  164. package/js/src/indodax.js +2 -1
  165. package/js/src/kraken.d.ts +7 -7
  166. package/js/src/kraken.js +3 -2
  167. package/js/src/krakenfutures.d.ts +2 -2
  168. package/js/src/krakenfutures.js +6 -6
  169. package/js/src/kucoin.d.ts +3 -7
  170. package/js/src/kucoin.js +3 -2
  171. package/js/src/kucoinfutures.d.ts +1 -24
  172. package/js/src/kucoinfutures.js +2 -2
  173. package/js/src/kuna.d.ts +3 -3
  174. package/js/src/kuna.js +1 -1
  175. package/js/src/lbank.d.ts +7 -7
  176. package/js/src/lbank.js +3 -3
  177. package/js/src/lbank2.d.ts +6 -6
  178. package/js/src/lbank2.js +11 -8
  179. package/js/src/luno.d.ts +1 -1
  180. package/js/src/luno.js +1 -1
  181. package/js/src/lykke.d.ts +1 -20
  182. package/js/src/lykke.js +2 -2
  183. package/js/src/mercado.d.ts +4 -4
  184. package/js/src/mexc.d.ts +4 -4
  185. package/js/src/mexc.js +7 -8
  186. package/js/src/ndax.d.ts +3 -3
  187. package/js/src/novadax.d.ts +1 -1
  188. package/js/src/novadax.js +1 -1
  189. package/js/src/oceanex.d.ts +14 -14
  190. package/js/src/oceanex.js +1 -1
  191. package/js/src/okcoin.d.ts +10 -10
  192. package/js/src/okcoin.js +4 -5
  193. package/js/src/okx.d.ts +2 -2
  194. package/js/src/okx.js +18 -10
  195. package/js/src/paymium.js +1 -1
  196. package/js/src/phemex.d.ts +3 -8
  197. package/js/src/poloniex.d.ts +4 -4
  198. package/js/src/poloniex.js +5 -5
  199. package/js/src/poloniexfutures.d.ts +4 -26
  200. package/js/src/poloniexfutures.js +2 -2
  201. package/js/src/tidex.d.ts +6 -6
  202. package/js/src/tidex.js +1 -1
  203. package/js/src/upbit.d.ts +6 -6
  204. package/js/src/upbit.js +1 -1
  205. package/js/src/wavesexchange.d.ts +2 -2
  206. package/js/src/wazirx.d.ts +1 -1
  207. package/js/src/wazirx.js +1 -1
  208. package/js/src/whitebit.d.ts +10 -10
  209. package/js/src/whitebit.js +1 -1
  210. package/js/src/woo.d.ts +1 -1
  211. package/js/src/woo.js +3 -1
  212. package/js/src/yobit.d.ts +9 -9
  213. package/js/src/yobit.js +1 -1
  214. package/js/src/zonda.d.ts +5 -5
  215. package/package.json +4 -3
  216. package/skip-tests.json +10 -2
package/js/src/bitget.js CHANGED
@@ -2931,10 +2931,26 @@ export default class bitget extends Exchange {
2931
2931
  // "cTime": "1652745674488"
2932
2932
  // }
2933
2933
  //
2934
+ // swap, isolated and cross margin: cancelOrder
2935
+ //
2936
+ // {
2937
+ // "orderId": "1098749943604719616",
2938
+ // "clientOid": "0ec8d262b3d2436aa651095a745b9b8d"
2939
+ // }
2940
+ //
2941
+ // spot: cancelOrder
2942
+ //
2943
+ // {
2944
+ // "code": "00000",
2945
+ // "msg": "success",
2946
+ // "requestTime": 1697689270716,
2947
+ // "data": "1098753830701928448"
2948
+ // }
2949
+ //
2934
2950
  const marketId = this.safeString(order, 'symbol');
2935
2951
  market = this.safeMarket(marketId, market);
2936
2952
  const symbol = market['symbol'];
2937
- const id = this.safeString(order, 'orderId');
2953
+ const id = this.safeString2(order, 'orderId', 'data');
2938
2954
  const price = this.safeString2(order, 'price', 'executePrice');
2939
2955
  const amount = this.safeString2(order, 'quantity', 'size');
2940
2956
  const filled = this.safeString2(order, 'fillQuantity', 'filledQty');
@@ -3353,44 +3369,130 @@ export default class bitget extends Exchange {
3353
3369
  * @see https://bitgetlimited.github.io/apidoc/en/spot/#cancel-plan-order
3354
3370
  * @see https://bitgetlimited.github.io/apidoc/en/mix/#cancel-order
3355
3371
  * @see https://bitgetlimited.github.io/apidoc/en/mix/#cancel-plan-order-tpsl
3372
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#isolated-cancel-order
3373
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#cross-cancel-order
3356
3374
  * @param {string} id order id
3357
3375
  * @param {string} symbol unified symbol of the market the order was made in
3358
3376
  * @param {object} [params] extra parameters specific to the bitget api endpoint
3377
+ * @param {string} [params.marginMode] 'isolated' or 'cross' for spot margin trading
3359
3378
  * @returns {object} An [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
3360
3379
  */
3361
3380
  this.checkRequiredSymbol('cancelOrder', symbol);
3362
3381
  await this.loadMarkets();
3363
3382
  const market = this.market(symbol);
3364
- const [marketType, query] = this.handleMarketTypeAndParams('cancelOrder', market, params);
3365
- let method = this.getSupportedMapping(marketType, {
3366
- 'spot': 'privateSpotPostTradeCancelOrder',
3367
- 'swap': 'privateMixPostOrderCancelOrder',
3368
- 'future': 'privateMixPostOrderCancelOrder',
3369
- });
3383
+ let marketType = undefined;
3384
+ let marginMode = undefined;
3385
+ let response = undefined;
3386
+ [marketType, params] = this.handleMarketTypeAndParams('cancelOrder', market, params);
3387
+ [marginMode, params] = this.handleMarginModeAndParams('cancelOrder', params);
3388
+ const symbolRequest = (marginMode !== undefined) ? (market['info']['symbolName']) : (market['id']);
3370
3389
  const request = {
3371
- 'symbol': market['id'],
3390
+ 'symbol': symbolRequest,
3372
3391
  'orderId': id,
3373
3392
  };
3374
- const stop = this.safeValue(query, 'stop');
3375
- if (stop) {
3376
- if (marketType === 'spot') {
3377
- method = 'privateSpotPostPlanCancelPlan';
3378
- }
3379
- else {
3380
- const planType = this.safeString(params, 'planType');
3393
+ const stop = this.safeValue(params, 'stop');
3394
+ const planType = this.safeString(params, 'planType');
3395
+ params = this.omit(params, ['stop', 'planType']);
3396
+ if ((marketType === 'swap') || (marketType === 'future')) {
3397
+ request['marginCoin'] = market['settleId'];
3398
+ if (stop) {
3381
3399
  if (planType === undefined) {
3382
3400
  throw new ArgumentsRequired(this.id + ' cancelOrder() requires a planType parameter for stop orders, either normal_plan, profit_plan or loss_plan');
3383
3401
  }
3384
3402
  request['planType'] = planType;
3385
- method = 'privateMixPostPlanCancelPlan';
3403
+ response = await this.privateMixPostPlanCancelPlan(this.extend(request, params));
3404
+ }
3405
+ else {
3406
+ response = await this.privateMixPostOrderCancelOrder(this.extend(request, params));
3386
3407
  }
3387
3408
  }
3388
- if (marketType === 'swap') {
3389
- request['marginCoin'] = market['settleId'];
3409
+ else if (marketType === 'spot') {
3410
+ if (marginMode !== undefined) {
3411
+ if (marginMode === 'isolated') {
3412
+ response = await this.privateMarginPostIsolatedOrderCancelOrder(this.extend(request, params));
3413
+ }
3414
+ else if (marginMode === 'cross') {
3415
+ response = await this.privateMarginPostCrossOrderCancelOrder(this.extend(request, params));
3416
+ }
3417
+ }
3418
+ else {
3419
+ if (stop) {
3420
+ response = await this.privateSpotPostPlanCancelPlan(this.extend(request, params));
3421
+ }
3422
+ else {
3423
+ response = await this.privateSpotPostTradeCancelOrder(this.extend(request, params));
3424
+ }
3425
+ }
3426
+ }
3427
+ else {
3428
+ throw new NotSupported(this.id + ' cancelOrder() does not support ' + marketType + ' orders');
3429
+ }
3430
+ //
3431
+ // spot
3432
+ //
3433
+ // {
3434
+ // "code": "00000",
3435
+ // "msg": "success",
3436
+ // "requestTime": 1697689270716,
3437
+ // "data": "1098753830701928448"
3438
+ // }
3439
+ //
3440
+ // isolated margin
3441
+ //
3442
+ // {
3443
+ // "code": "00000",
3444
+ // "msg": "success",
3445
+ // "requestTime": 1697688367859,
3446
+ // "data": {
3447
+ // "resultList": [
3448
+ // {
3449
+ // "orderId": "1098749943604719616",
3450
+ // "clientOid": "0ec8d262b3d2436aa651095a745b9b8d"
3451
+ // }
3452
+ // ],
3453
+ // "failure": []
3454
+ // }
3455
+ // }
3456
+ //
3457
+ // cross margin
3458
+ //
3459
+ // {
3460
+ // "code": "00000",
3461
+ // "msg": "success",
3462
+ // "requestTime": :1697689028972,
3463
+ // "data": {
3464
+ // "resultList": [
3465
+ // {
3466
+ // "orderId": "1098751730051067906",
3467
+ // "clientOid": "ecb50ca373374c5bb814bc724e36b0eb"
3468
+ // }
3469
+ // ],
3470
+ // "failure": []
3471
+ // }
3472
+ // }
3473
+ //
3474
+ // swap
3475
+ //
3476
+ // {
3477
+ // "code": "00000",
3478
+ // "msg": "success",
3479
+ // "requestTime": 1697690413177,
3480
+ // "data": {
3481
+ // "orderId": "1098758604547850241",
3482
+ // "clientOid": "1098758604585598977"
3483
+ // }
3484
+ // }
3485
+ //
3486
+ let order = response;
3487
+ if ((marketType === 'swap') || (marketType === 'future')) {
3488
+ order = this.safeValue(response, 'data', {});
3489
+ }
3490
+ else if (marginMode !== undefined) {
3491
+ const data = this.safeValue(response, 'data', {});
3492
+ const resultList = this.safeValue(data, 'resultList', []);
3493
+ order = resultList[0];
3390
3494
  }
3391
- const ommitted = this.omit(query, ['stop', 'planType']);
3392
- const response = await this[method](this.extend(request, ommitted));
3393
- return this.parseOrder(response, market);
3495
+ return this.parseOrder(order, market);
3394
3496
  }
3395
3497
  async cancelOrders(ids, symbol = undefined, params = {}) {
3396
3498
  /**
@@ -3399,30 +3501,44 @@ export default class bitget extends Exchange {
3399
3501
  * @description cancel multiple orders
3400
3502
  * @see https://bitgetlimited.github.io/apidoc/en/spot/#cancel-order-in-batch-v2-single-instruments
3401
3503
  * @see https://bitgetlimited.github.io/apidoc/en/mix/#batch-cancel-order
3504
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#isolated-batch-cancel-orders
3505
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#cross-batch-cancel-order
3402
3506
  * @param {string[]} ids order ids
3403
3507
  * @param {string} symbol unified market symbol, default is undefined
3404
3508
  * @param {object} [params] extra parameters specific to the bitget api endpoint
3509
+ * @param {string} [params.marginMode] 'isolated' or 'cross' for spot margin trading
3405
3510
  * @returns {object} an list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
3406
3511
  */
3407
3512
  this.checkRequiredSymbol('cancelOrders', symbol);
3408
3513
  await this.loadMarkets();
3409
3514
  const market = this.market(symbol);
3410
3515
  let type = undefined;
3516
+ let marginMode = undefined;
3517
+ [marginMode, params] = this.handleMarginModeAndParams('cancelOrders', params);
3411
3518
  [type, params] = this.handleMarketTypeAndParams('cancelOrders', market, params);
3412
3519
  const request = {};
3413
- let method = undefined;
3520
+ let response = undefined;
3414
3521
  if (type === 'spot') {
3415
- method = 'privateSpotPostTradeCancelBatchOrdersV2';
3416
- request['symbol'] = market['id'];
3522
+ request['symbol'] = market['info']['symbolName']; // regular id like LTCUSDT_SPBL does not work here
3417
3523
  request['orderIds'] = ids;
3524
+ if (marginMode !== undefined) {
3525
+ if (marginMode === 'cross') {
3526
+ response = await this.privateMarginPostCrossOrderBatchCancelOrder(this.extend(request, params));
3527
+ }
3528
+ else {
3529
+ response = await this.privateMarginPostIsolatedOrderBatchCancelOrder(this.extend(request, params));
3530
+ }
3531
+ }
3532
+ else {
3533
+ response = await this.privateSpotPostTradeCancelBatchOrdersV2(this.extend(request, params));
3534
+ }
3418
3535
  }
3419
3536
  else {
3420
- method = 'privateMixPostOrderCancelBatchOrders';
3421
3537
  request['symbol'] = market['id'];
3422
3538
  request['marginCoin'] = market['quote'];
3423
3539
  request['orderIds'] = ids;
3540
+ response = await this.privateMixPostOrderCancelBatchOrders(this.extend(request, params));
3424
3541
  }
3425
- const response = await this[method](this.extend(request, params));
3426
3542
  //
3427
3543
  // spot
3428
3544
  //
@@ -3468,8 +3584,11 @@ export default class bitget extends Exchange {
3468
3584
  * @description cancel all open orders
3469
3585
  * @see https://bitgetlimited.github.io/apidoc/en/mix/#cancel-all-order
3470
3586
  * @see https://bitgetlimited.github.io/apidoc/en/mix/#cancel-all-trigger-order-tpsl
3587
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#isolated-batch-cancel-orders
3588
+ * @see https://bitgetlimited.github.io/apidoc/en/margin/#cross-batch-cancel-order
3471
3589
  * @param {string} symbol unified market symbol
3472
3590
  * @param {object} [params] extra parameters specific to the bitget api endpoint
3591
+ * @param {string} [params.marginMode] 'isolated' or 'cross' for spot margin trading
3473
3592
  * @returns {object[]} a list of [order structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
3474
3593
  */
3475
3594
  const sandboxMode = this.safeValue(this.options, 'sandboxMode', false);
@@ -3486,8 +3605,22 @@ export default class bitget extends Exchange {
3486
3605
  }
3487
3606
  let marketType = undefined;
3488
3607
  [marketType, params] = this.handleMarketTypeAndParams('cancelAllOrders', market, params);
3608
+ let marginMode = undefined;
3609
+ [marginMode, params] = this.handleMarginModeAndParams('cancelAllOrders', params);
3489
3610
  if (marketType === 'spot') {
3490
- throw new NotSupported(this.id + ' cancelAllOrders () does not support spot markets');
3611
+ if (marginMode === undefined) {
3612
+ throw new NotSupported(this.id + ' cancelAllOrders () does not support spot markets, only spot-margin');
3613
+ }
3614
+ this.checkRequiredSymbol('cancelAllOrders', symbol);
3615
+ const spotMarginRequest = {
3616
+ 'symbol': market['info']['symbolName'], // regular id like LTCUSDT_SPBL does not work here
3617
+ };
3618
+ if (marginMode === 'cross') {
3619
+ return await this.privateMarginPostCrossOrderBatchCancelOrder(this.extend(spotMarginRequest, params));
3620
+ }
3621
+ else {
3622
+ return await this.privateMarginPostIsolatedOrderBatchCancelOrder(this.extend(spotMarginRequest, params));
3623
+ }
3491
3624
  }
3492
3625
  const request = {
3493
3626
  'productType': productType,
@@ -13,7 +13,7 @@ export default class bithumb extends Exchange {
13
13
  fetchBalance(params?: {}): Promise<import("./base/types.js").Balances>;
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
15
15
  parseTicker(ticker: any, market?: any): import("./base/types.js").Ticker;
16
- fetchTickers(symbols?: string[], params?: {}): Promise<any>;
16
+ fetchTickers(symbols?: string[], params?: {}): Promise<import("./base/types.js").Dictionary<import("./base/types.js").Ticker>>;
17
17
  fetchTicker(symbol: string, params?: {}): Promise<import("./base/types.js").Ticker>;
18
18
  parseOHLCV(ohlcv: any, market?: any): number[];
19
19
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").OHLCV[]>;
package/js/src/bithumb.js CHANGED
@@ -447,7 +447,7 @@ export default class bithumb extends Exchange {
447
447
  result[symbol] = this.parseTicker(ticker, market);
448
448
  }
449
449
  }
450
- return this.filterByArray(result, 'symbol', symbols);
450
+ return this.filterByArrayTickers(result, 'symbol', symbols);
451
451
  }
452
452
  async fetchTicker(symbol, params = {}) {
453
453
  /**
@@ -49,7 +49,7 @@ export default class bitmart extends Exchange {
49
49
  }>;
50
50
  parseTicker(ticker: any, market?: any): import("./base/types.js").Ticker;
51
51
  fetchTicker(symbol: string, params?: {}): Promise<import("./base/types.js").Ticker>;
52
- fetchTickers(symbols?: string[], params?: {}): Promise<any>;
52
+ fetchTickers(symbols?: string[], params?: {}): Promise<import("./base/types.js").Dictionary<import("./base/types.js").Ticker>>;
53
53
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
54
54
  parseTrade(trade: any, market?: any): import("./base/types.js").Trade;
55
55
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Trade[]>;
@@ -75,7 +75,7 @@ export default class bitmart extends Exchange {
75
75
  parseOrder(order: any, market?: any): import("./base/types.js").Order;
76
76
  parseOrderSide(side: any): string;
77
77
  parseOrderStatusByType(type: any, status: any): string;
78
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<any>;
78
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<import("./base/types.js").Order>;
79
79
  cancelOrder(id: string, symbol?: string, params?: {}): Promise<any>;
80
80
  cancelAllOrders(symbol?: string, params?: {}): Promise<any>;
81
81
  fetchOrdersByStatus(status: any, symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Order[]>;
package/js/src/bitmart.js CHANGED
@@ -1230,7 +1230,7 @@ export default class bitmart extends Exchange {
1230
1230
  const symbol = ticker['symbol'];
1231
1231
  result[symbol] = ticker;
1232
1232
  }
1233
- return this.filterByArray(result, 'symbol', symbols);
1233
+ return this.filterByArrayTickers(result, 'symbol', symbols);
1234
1234
  }
1235
1235
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
1236
1236
  /**
@@ -2211,12 +2211,11 @@ export default class bitmart extends Exchange {
2211
2211
  //
2212
2212
  const data = this.safeValue(response, 'data', {});
2213
2213
  const order = this.parseOrder(data, market);
2214
- return this.extend(order, {
2215
- 'type': type,
2216
- 'side': side,
2217
- 'amount': amount,
2218
- 'price': price,
2219
- });
2214
+ order['type'] = type;
2215
+ order['side'] = side;
2216
+ order['amount'] = amount;
2217
+ order['price'] = price;
2218
+ return order;
2220
2219
  }
2221
2220
  async cancelOrder(id, symbol = undefined, params = {}) {
2222
2221
  /**
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitmex.js';
2
- import { Int, OrderSide, OrderType, Trade, OHLCV, Order, Liquidation } from './base/types.js';
2
+ import { Int, OrderSide, OrderType, Trade, OHLCV, Order, Liquidation, OrderBook } from './base/types.js';
3
3
  /**
4
4
  * @class bitmex
5
5
  * @extends Exchange
@@ -15,11 +15,11 @@ export default class bitmex extends Exchange {
15
15
  fetchMarkets(params?: {}): Promise<any[]>;
16
16
  parseBalance(response: any): import("./base/types.js").Balances;
17
17
  fetchBalance(params?: {}): Promise<import("./base/types.js").Balances>;
18
- fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<any>;
18
+ fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
19
19
  fetchOrder(id: string, symbol?: string, params?: {}): Promise<Order>;
20
20
  fetchOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
21
21
  fetchOpenOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
22
- fetchClosedOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<any[]>;
22
+ fetchClosedOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
23
23
  fetchMyTrades(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
24
24
  parseLedgerEntryType(type: any): string;
25
25
  parseLedgerEntry(item: any, currency?: any): {
@@ -71,7 +71,7 @@ export default class bitmex extends Exchange {
71
71
  };
72
72
  };
73
73
  fetchTicker(symbol: string, params?: {}): Promise<import("./base/types.js").Ticker>;
74
- fetchTickers(symbols?: string[], params?: {}): Promise<any>;
74
+ fetchTickers(symbols?: string[], params?: {}): Promise<import("./base/types.js").Dictionary<import("./base/types.js").Ticker>>;
75
75
  parseTicker(ticker: any, market?: any): import("./base/types.js").Ticker;
76
76
  parseOHLCV(ohlcv: any, market?: any): number[];
77
77
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
package/js/src/bitmex.js CHANGED
@@ -1356,7 +1356,7 @@ export default class bitmex extends Exchange {
1356
1356
  result[symbol] = ticker;
1357
1357
  }
1358
1358
  }
1359
- return this.filterByArray(result, 'symbol', symbols);
1359
+ return this.filterByArrayTickers(result, 'symbol', symbols);
1360
1360
  }
1361
1361
  parseTicker(ticker, market = undefined) {
1362
1362
  // see response sample under "fetchMarkets" because same endpoint is being used here
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitopro.js';
2
- import { Int, OrderSide, OrderType } from './base/types.js';
2
+ import { Int, OHLCV, OrderSide, OrderType } from './base/types.js';
3
3
  /**
4
4
  * @class bitopro
5
5
  * @extends Exchange
@@ -16,7 +16,7 @@ export default class bitopro extends Exchange {
16
16
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Trade[]>;
17
17
  fetchTradingFees(params?: {}): Promise<{}>;
18
18
  parseOHLCV(ohlcv: any, market?: any): number[];
19
- fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
19
+ fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
20
20
  insertMissingCandles(candles: any, distance: any, since: any, limit: any): any;
21
21
  parseBalance(response: any): import("./base/types.js").Balances;
22
22
  fetchBalance(params?: {}): Promise<import("./base/types.js").Balances>;
@@ -18,7 +18,7 @@ export default class bitpanda extends Exchange {
18
18
  };
19
19
  parseTicker(ticker: any, market?: any): import("./base/types.js").Ticker;
20
20
  fetchTicker(symbol: string, params?: {}): Promise<import("./base/types.js").Ticker>;
21
- fetchTickers(symbols?: string[], params?: {}): Promise<any>;
21
+ fetchTickers(symbols?: string[], params?: {}): Promise<import("./base/types.js").Dictionary<import("./base/types.js").Ticker>>;
22
22
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
23
23
  parseOHLCV(ohlcv: any, market?: any): number[];
24
24
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").OHLCV[]>;
@@ -685,7 +685,7 @@ export default class bitpanda extends Exchange {
685
685
  const symbol = ticker['symbol'];
686
686
  result[symbol] = ticker;
687
687
  }
688
- return this.filterByArray(result, 'symbol', symbols);
688
+ return this.filterByArrayTickers(result, 'symbol', symbols);
689
689
  }
690
690
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
691
691
  /**
@@ -74,7 +74,7 @@ export default class bitstamp extends Exchange {
74
74
  parseTransactionFees(response: any, codes?: any): {};
75
75
  fetchDepositWithdrawFees(codes?: string[], params?: {}): Promise<{}>;
76
76
  parseDepositWithdrawFees(response: any, codes?: any, currencyIdKey?: any): {};
77
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<any>;
77
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<import("./base/types.js").Order>;
78
78
  cancelOrder(id: string, symbol?: string, params?: {}): Promise<any>;
79
79
  cancelAllOrders(symbol?: string, params?: {}): Promise<any>;
80
80
  parseOrderStatus(status: any): string;
@@ -1351,9 +1351,8 @@ export default class bitstamp extends Exchange {
1351
1351
  }
1352
1352
  const response = await this[method](this.extend(request, params));
1353
1353
  const order = this.parseOrder(response, market);
1354
- return this.extend(order, {
1355
- 'type': type,
1356
- });
1354
+ order['type'] = type;
1355
+ return order;
1357
1356
  }
1358
1357
  async cancelOrder(id, symbol = undefined, params = {}) {
1359
1358
  /**
@@ -111,18 +111,18 @@ export default class bitstamp1 extends Exchange {
111
111
  },
112
112
  'precisionMode': TICK_SIZE,
113
113
  'markets': {
114
- 'BTC/USD': { 'id': 'btcusd', 'symbol': 'BTC/USD', 'base': 'BTC', 'quote': 'USD', 'baseId': 'btc', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
115
- 'BTC/EUR': { 'id': 'btceur', 'symbol': 'BTC/EUR', 'base': 'BTC', 'quote': 'EUR', 'baseId': 'btc', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
116
- 'EUR/USD': { 'id': 'eurusd', 'symbol': 'EUR/USD', 'base': 'EUR', 'quote': 'USD', 'baseId': 'eur', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
117
- 'XRP/USD': { 'id': 'xrpusd', 'symbol': 'XRP/USD', 'base': 'XRP', 'quote': 'USD', 'baseId': 'xrp', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
118
- 'XRP/EUR': { 'id': 'xrpeur', 'symbol': 'XRP/EUR', 'base': 'XRP', 'quote': 'EUR', 'baseId': 'xrp', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
119
- 'XRP/BTC': { 'id': 'xrpbtc', 'symbol': 'XRP/BTC', 'base': 'XRP', 'quote': 'BTC', 'baseId': 'xrp', 'quoteId': 'btc', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
120
- 'LTC/USD': { 'id': 'ltcusd', 'symbol': 'LTC/USD', 'base': 'LTC', 'quote': 'USD', 'baseId': 'ltc', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
121
- 'LTC/EUR': { 'id': 'ltceur', 'symbol': 'LTC/EUR', 'base': 'LTC', 'quote': 'EUR', 'baseId': 'ltc', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
122
- 'LTC/BTC': { 'id': 'ltcbtc', 'symbol': 'LTC/BTC', 'base': 'LTC', 'quote': 'BTC', 'baseId': 'ltc', 'quoteId': 'btc', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
123
- 'ETH/USD': { 'id': 'ethusd', 'symbol': 'ETH/USD', 'base': 'ETH', 'quote': 'USD', 'baseId': 'eth', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
124
- 'ETH/EUR': { 'id': 'etheur', 'symbol': 'ETH/EUR', 'base': 'ETH', 'quote': 'EUR', 'baseId': 'eth', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
125
- 'ETH/BTC': { 'id': 'ethbtc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true },
114
+ 'BTC/USD': this.safeMarketStructure({ 'id': 'btcusd', 'symbol': 'BTC/USD', 'base': 'BTC', 'quote': 'USD', 'baseId': 'btc', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
115
+ 'BTC/EUR': this.safeMarketStructure({ 'id': 'btceur', 'symbol': 'BTC/EUR', 'base': 'BTC', 'quote': 'EUR', 'baseId': 'btc', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
116
+ 'EUR/USD': this.safeMarketStructure({ 'id': 'eurusd', 'symbol': 'EUR/USD', 'base': 'EUR', 'quote': 'USD', 'baseId': 'eur', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
117
+ 'XRP/USD': this.safeMarketStructure({ 'id': 'xrpusd', 'symbol': 'XRP/USD', 'base': 'XRP', 'quote': 'USD', 'baseId': 'xrp', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
118
+ 'XRP/EUR': this.safeMarketStructure({ 'id': 'xrpeur', 'symbol': 'XRP/EUR', 'base': 'XRP', 'quote': 'EUR', 'baseId': 'xrp', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
119
+ 'XRP/BTC': this.safeMarketStructure({ 'id': 'xrpbtc', 'symbol': 'XRP/BTC', 'base': 'XRP', 'quote': 'BTC', 'baseId': 'xrp', 'quoteId': 'btc', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
120
+ 'LTC/USD': this.safeMarketStructure({ 'id': 'ltcusd', 'symbol': 'LTC/USD', 'base': 'LTC', 'quote': 'USD', 'baseId': 'ltc', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
121
+ 'LTC/EUR': this.safeMarketStructure({ 'id': 'ltceur', 'symbol': 'LTC/EUR', 'base': 'LTC', 'quote': 'EUR', 'baseId': 'ltc', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
122
+ 'LTC/BTC': this.safeMarketStructure({ 'id': 'ltcbtc', 'symbol': 'LTC/BTC', 'base': 'LTC', 'quote': 'BTC', 'baseId': 'ltc', 'quoteId': 'btc', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
123
+ 'ETH/USD': this.safeMarketStructure({ 'id': 'ethusd', 'symbol': 'ETH/USD', 'base': 'ETH', 'quote': 'USD', 'baseId': 'eth', 'quoteId': 'usd', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
124
+ 'ETH/EUR': this.safeMarketStructure({ 'id': 'etheur', 'symbol': 'ETH/EUR', 'base': 'ETH', 'quote': 'EUR', 'baseId': 'eth', 'quoteId': 'eur', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
125
+ 'ETH/BTC': this.safeMarketStructure({ 'id': 'ethbtc', 'symbol': 'ETH/BTC', 'base': 'ETH', 'quote': 'BTC', 'baseId': 'eth', 'quoteId': 'btc', 'maker': 0.005, 'taker': 0.005, 'type': 'spot', 'spot': true }),
126
126
  },
127
127
  });
128
128
  }
@@ -13,7 +13,7 @@ export default class bittrex extends Exchange {
13
13
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<import("./base/types.js").OrderBook>;
14
14
  fetchCurrencies(params?: {}): Promise<{}>;
15
15
  parseTicker(ticker: any, market?: any): import("./base/types.js").Ticker;
16
- fetchTickers(symbols?: string[], params?: {}): Promise<any>;
16
+ fetchTickers(symbols?: string[], params?: {}): Promise<import("./base/types.js").Dictionary<import("./base/types.js").Ticker>>;
17
17
  fetchTicker(symbol: string, params?: {}): Promise<import("./base/types.js").Ticker>;
18
18
  fetchBidsAsks(symbols?: string[], params?: {}): Promise<import("./base/types.js").Dictionary<import("./base/types.js").Ticker>>;
19
19
  parseTrade(trade: any, market?: any): import("./base/types.js").Trade;
@@ -78,7 +78,7 @@ export default class bittrex extends Exchange {
78
78
  parseOrders(orders: any, market?: any, since?: Int, limit?: Int, params?: {}): import("./base/types.js").Order[];
79
79
  parseOrderStatus(status: any): string;
80
80
  fetchOrder(id: string, symbol?: string, params?: {}): Promise<import("./base/types.js").Order>;
81
- fetchMyTrades(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
81
+ fetchMyTrades(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Trade[]>;
82
82
  fetchClosedOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Order[]>;
83
83
  createDepositAddress(code: string, params?: {}): Promise<{
84
84
  currency: string;
package/js/src/bittrex.js CHANGED
@@ -614,7 +614,7 @@ export default class bittrex extends Exchange {
614
614
  const ticker = this.parseTicker(response[i]);
615
615
  tickers.push(ticker);
616
616
  }
617
- return this.filterByArray(tickers, 'symbol', symbols);
617
+ return this.filterByArrayTickers(tickers, 'symbol', symbols);
618
618
  }
619
619
  async fetchTicker(symbol, params = {}) {
620
620
  /**
@@ -1903,8 +1903,8 @@ export default class bittrex extends Exchange {
1903
1903
  request['marketSymbol'] = market['id'];
1904
1904
  }
1905
1905
  const response = await this.privateGetExecutions(this.extend(request, params));
1906
- const trades = this.parseTrades(response, market);
1907
- return this.filterBySymbolSinceLimit(trades, symbol, since, limit);
1906
+ const trades = this.parseTrades(response, market, since, limit);
1907
+ return trades;
1908
1908
  }
1909
1909
  async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
1910
1910
  /**
package/js/src/bl3p.js CHANGED
@@ -110,7 +110,7 @@ export default class bl3p extends Exchange {
110
110
  },
111
111
  },
112
112
  'markets': {
113
- 'BTC/EUR': { 'id': 'BTCEUR', 'symbol': 'BTC/EUR', 'base': 'BTC', 'quote': 'EUR', 'baseId': 'BTC', 'quoteId': 'EUR', 'maker': 0.0025, 'taker': 0.0025, 'type': 'spot', 'spot': true },
113
+ 'BTC/EUR': this.safeMarketStructure({ 'id': 'BTCEUR', 'symbol': 'BTC/EUR', 'base': 'BTC', 'quote': 'EUR', 'baseId': 'BTC', 'quoteId': 'EUR', 'maker': 0.0025, 'taker': 0.0025, 'type': 'spot', 'spot': true }),
114
114
  },
115
115
  'precisionMode': TICK_SIZE,
116
116
  });
@@ -44,7 +44,7 @@ export default class btcalpha extends Exchange {
44
44
  fetchBalance(params?: {}): Promise<import("./base/types.js").Balances>;
45
45
  parseOrderStatus(status: any): string;
46
46
  parseOrder(order: any, market?: any): import("./base/types.js").Order;
47
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<any>;
47
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<import("./base/types.js").Order>;
48
48
  cancelOrder(id: string, symbol?: string, params?: {}): Promise<any>;
49
49
  fetchOrder(id: string, symbol?: string, params?: {}): Promise<import("./base/types.js").Order>;
50
50
  fetchOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Order[]>;
@@ -751,9 +751,8 @@ export default class btcalpha extends Exchange {
751
751
  const order = this.parseOrder(response, market);
752
752
  const orderAmount = order['amount'].toString();
753
753
  amount = Precise.stringGt(orderAmount, '0') ? order['amount'] : amount;
754
- return this.extend(order, {
755
- 'amount': this.parseNumber(amount),
756
- });
754
+ order['amount'] = this.parseNumber(amount);
755
+ return order;
757
756
  }
758
757
  async cancelOrder(id, symbol = undefined, params = {}) {
759
758
  /**
package/js/src/btcbox.js CHANGED
@@ -103,10 +103,10 @@ export default class btcbox extends Exchange {
103
103
  },
104
104
  },
105
105
  'markets': {
106
- 'BTC/JPY': { 'id': 'btc', 'symbol': 'BTC/JPY', 'base': 'BTC', 'quote': 'JPY', 'baseId': 'btc', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0005'), 'maker': this.parseNumber('0.0005'), 'type': 'spot', 'spot': true },
107
- 'ETH/JPY': { 'id': 'eth', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0010'), 'maker': this.parseNumber('0.0010'), 'type': 'spot', 'spot': true },
108
- 'LTC/JPY': { 'id': 'ltc', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0010'), 'maker': this.parseNumber('0.0010'), 'type': 'spot', 'spot': true },
109
- 'BCH/JPY': { 'id': 'bch', 'symbol': 'BCH/JPY', 'base': 'BCH', 'quote': 'JPY', 'baseId': 'bch', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0010'), 'maker': this.parseNumber('0.0010'), 'type': 'spot', 'spot': true },
106
+ 'BTC/JPY': this.safeMarketStructure({ 'id': 'btc', 'symbol': 'BTC/JPY', 'base': 'BTC', 'quote': 'JPY', 'baseId': 'btc', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0005'), 'maker': this.parseNumber('0.0005'), 'type': 'spot', 'spot': true }),
107
+ 'ETH/JPY': this.safeMarketStructure({ 'id': 'eth', 'symbol': 'ETH/JPY', 'base': 'ETH', 'quote': 'JPY', 'baseId': 'eth', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0010'), 'maker': this.parseNumber('0.0010'), 'type': 'spot', 'spot': true }),
108
+ 'LTC/JPY': this.safeMarketStructure({ 'id': 'ltc', 'symbol': 'LTC/JPY', 'base': 'LTC', 'quote': 'JPY', 'baseId': 'ltc', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0010'), 'maker': this.parseNumber('0.0010'), 'type': 'spot', 'spot': true }),
109
+ 'BCH/JPY': this.safeMarketStructure({ 'id': 'bch', 'symbol': 'BCH/JPY', 'base': 'BCH', 'quote': 'JPY', 'baseId': 'bch', 'quoteId': 'jpy', 'taker': this.parseNumber('0.0010'), 'maker': this.parseNumber('0.0010'), 'type': 'spot', 'spot': true }),
110
110
  },
111
111
  'precisionMode': TICK_SIZE,
112
112
  'exceptions': {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/btcmarkets.js';
2
- import { Int, OrderSide, OrderType } from './base/types.js';
2
+ import { Int, Order, OrderSide, OrderType } from './base/types.js';
3
3
  /**
4
4
  * @class btcmarkets
5
5
  * @extends Exchange
@@ -49,7 +49,7 @@ export default class btcmarkets extends Exchange {
49
49
  fetchTicker2(symbol: string, params?: {}): Promise<import("./base/types.js").Ticker>;
50
50
  parseTrade(trade: any, market?: any): import("./base/types.js").Trade;
51
51
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Trade[]>;
52
- createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<import("./base/types.js").Order>;
52
+ createOrder(symbol: string, type: OrderType, side: OrderSide, amount: any, price?: any, params?: {}): Promise<Order>;
53
53
  cancelOrders(ids: any, symbol?: string, params?: {}): Promise<any>;
54
54
  cancelOrder(id: string, symbol?: string, params?: {}): Promise<any>;
55
55
  calculateFee(symbol: any, type: any, side: any, amount: any, price: any, takerOrMaker?: string, params?: {}): {
@@ -59,11 +59,11 @@ export default class btcmarkets extends Exchange {
59
59
  cost: number;
60
60
  };
61
61
  parseOrderStatus(status: any): string;
62
- parseOrder(order: any, market?: any): import("./base/types.js").Order;
63
- fetchOrder(id: string, symbol?: string, params?: {}): Promise<import("./base/types.js").Order>;
64
- fetchOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Order[]>;
65
- fetchOpenOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Order[]>;
66
- fetchClosedOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<any[]>;
62
+ parseOrder(order: any, market?: any): Order;
63
+ fetchOrder(id: string, symbol?: string, params?: {}): Promise<Order>;
64
+ fetchOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
65
+ fetchOpenOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
66
+ fetchClosedOrders(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
67
67
  fetchMyTrades(symbol?: string, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").Trade[]>;
68
68
  withdraw(code: string, amount: any, address: any, tag?: any, params?: {}): Promise<{
69
69
  id: string;