ccxt 4.3.4 → 4.3.6

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 (71) hide show
  1. package/README.md +3 -3
  2. package/dist/cjs/ccxt.js +1 -1
  3. package/dist/cjs/src/base/Exchange.js +299 -6
  4. package/dist/cjs/src/binance.js +24 -17
  5. package/dist/cjs/src/bingx.js +45 -0
  6. package/dist/cjs/src/bitmex.js +24 -0
  7. package/dist/cjs/src/bybit.js +86 -0
  8. package/dist/cjs/src/coinbase.js +5 -4
  9. package/dist/cjs/src/coinex.js +30 -32
  10. package/dist/cjs/src/cryptocom.js +32 -0
  11. package/dist/cjs/src/htx.js +28 -0
  12. package/dist/cjs/src/hyperliquid.js +40 -0
  13. package/dist/cjs/src/kraken.js +30 -0
  14. package/dist/cjs/src/krakenfutures.js +28 -0
  15. package/dist/cjs/src/kucoin.js +53 -3
  16. package/dist/cjs/src/kucoinfutures.js +2 -2
  17. package/dist/cjs/src/okx.js +113 -0
  18. package/dist/cjs/src/pro/binance.js +439 -75
  19. package/dist/cjs/src/pro/bitget.js +1 -1
  20. package/dist/cjs/src/pro/woo.js +0 -1
  21. package/dist/cjs/src/whitebit.js +174 -2
  22. package/dist/cjs/src/woo.js +29 -0
  23. package/js/ccxt.d.ts +1 -1
  24. package/js/ccxt.js +1 -1
  25. package/js/src/abstract/binance.d.ts +1 -0
  26. package/js/src/abstract/binancecoinm.d.ts +1 -0
  27. package/js/src/abstract/binanceus.d.ts +1 -0
  28. package/js/src/abstract/binanceusdm.d.ts +1 -0
  29. package/js/src/abstract/bingx.d.ts +1 -0
  30. package/js/src/abstract/whitebit.d.ts +21 -0
  31. package/js/src/abstract/woo.d.ts +1 -0
  32. package/js/src/base/Exchange.d.ts +52 -3
  33. package/js/src/base/Exchange.js +299 -6
  34. package/js/src/binance.d.ts +4 -0
  35. package/js/src/binance.js +24 -17
  36. package/js/src/bingx.d.ts +1 -0
  37. package/js/src/bingx.js +45 -0
  38. package/js/src/bitmex.d.ts +1 -0
  39. package/js/src/bitmex.js +24 -0
  40. package/js/src/bybit.d.ts +2 -1
  41. package/js/src/bybit.js +86 -0
  42. package/js/src/coinbase.js +5 -4
  43. package/js/src/coinex.js +30 -32
  44. package/js/src/cryptocom.d.ts +2 -1
  45. package/js/src/cryptocom.js +32 -0
  46. package/js/src/htx.d.ts +1 -0
  47. package/js/src/htx.js +28 -0
  48. package/js/src/hyperliquid.d.ts +1 -0
  49. package/js/src/hyperliquid.js +40 -0
  50. package/js/src/kraken.d.ts +1 -0
  51. package/js/src/kraken.js +30 -0
  52. package/js/src/krakenfutures.d.ts +1 -0
  53. package/js/src/krakenfutures.js +28 -0
  54. package/js/src/kucoin.d.ts +1 -0
  55. package/js/src/kucoin.js +53 -3
  56. package/js/src/kucoinfutures.js +2 -2
  57. package/js/src/okx.d.ts +3 -1
  58. package/js/src/okx.js +113 -0
  59. package/js/src/pro/binance.d.ts +9 -1
  60. package/js/src/pro/binance.js +439 -75
  61. package/js/src/pro/bitget.d.ts +1 -1
  62. package/js/src/pro/bitget.js +1 -1
  63. package/js/src/pro/cex.d.ts +1 -1
  64. package/js/src/pro/lbank.d.ts +1 -1
  65. package/js/src/pro/woo.js +0 -1
  66. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  67. package/js/src/whitebit.d.ts +3 -0
  68. package/js/src/whitebit.js +174 -2
  69. package/js/src/woo.d.ts +2 -1
  70. package/js/src/woo.js +29 -0
  71. package/package.json +1 -1
@@ -2195,8 +2195,8 @@ class kucoinfutures extends kucoinfutures$1 {
2195
2195
  // symbol (String) [optional] Symbol of the contract
2196
2196
  // side (String) [optional] buy or sell
2197
2197
  // type (String) [optional] limit, market, limit_stop or market_stop
2198
- // startAt (long) [optional] Start time (milisecond)
2199
- // endAt (long) [optional] End time (milisecond)
2198
+ // startAt (long) [optional] Start time (millisecond)
2199
+ // endAt (long) [optional] End time (millisecond)
2200
2200
  };
2201
2201
  let market = undefined;
2202
2202
  if (symbol !== undefined) {
@@ -31,8 +31,10 @@ class okx extends okx$1 {
31
31
  'option': true,
32
32
  'addMargin': true,
33
33
  'cancelAllOrders': false,
34
+ 'cancelAllOrdersAfter': true,
34
35
  'cancelOrder': true,
35
36
  'cancelOrders': true,
37
+ 'cancelOrdersForSymbols': true,
36
38
  'closeAllPositions': false,
37
39
  'closePosition': true,
38
40
  'createConvertTrade': true,
@@ -3282,6 +3284,117 @@ class okx extends okx$1 {
3282
3284
  const ordersData = this.safeList(response, 'data', []);
3283
3285
  return this.parseOrders(ordersData, market, undefined, undefined, params);
3284
3286
  }
3287
+ async cancelOrdersForSymbols(orders, params = {}) {
3288
+ /**
3289
+ * @method
3290
+ * @name okx#cancelOrdersForSymbols
3291
+ * @description cancel multiple orders for multiple symbols
3292
+ * @see https://www.okx.com/docs-v5/en/#order-book-trading-trade-post-cancel-multiple-orders
3293
+ * @see https://www.okx.com/docs-v5/en/#order-book-trading-algo-trading-post-cancel-algo-order
3294
+ * @param {CancellationRequest[]} orders each order should contain the parameters required by cancelOrder namely id and symbol
3295
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
3296
+ * @param {boolean} [params.trigger] whether the order is a stop/trigger order
3297
+ * @param {boolean} [params.trailing] set to true if you want to cancel trailing orders
3298
+ * @returns {object} an list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure}
3299
+ */
3300
+ await this.loadMarkets();
3301
+ const request = [];
3302
+ const options = this.safeDict(this.options, 'cancelOrders', {});
3303
+ const defaultMethod = this.safeString(options, 'method', 'privatePostTradeCancelBatchOrders');
3304
+ let method = this.safeString(params, 'method', defaultMethod);
3305
+ const stop = this.safeBool2(params, 'stop', 'trigger');
3306
+ const trailing = this.safeBool(params, 'trailing', false);
3307
+ const isStopOrTrailing = stop || trailing;
3308
+ if (isStopOrTrailing) {
3309
+ method = 'privatePostTradeCancelAlgos';
3310
+ }
3311
+ for (let i = 0; i < orders.length; i++) {
3312
+ const order = orders[i];
3313
+ const id = this.safeString(order, 'id');
3314
+ const clientOrderId = this.safeString2(order, 'clOrdId', 'clientOrderId');
3315
+ const symbol = this.safeString(order, 'symbol');
3316
+ const market = this.market(symbol);
3317
+ let idKey = 'ordId';
3318
+ if (isStopOrTrailing) {
3319
+ idKey = 'algoId';
3320
+ }
3321
+ else if (clientOrderId !== undefined) {
3322
+ idKey = 'clOrdId';
3323
+ }
3324
+ const requestItem = {
3325
+ 'instId': market['id'],
3326
+ };
3327
+ requestItem[idKey] = (clientOrderId !== undefined) ? clientOrderId : id;
3328
+ request.push(requestItem);
3329
+ }
3330
+ let response = undefined;
3331
+ if (method === 'privatePostTradeCancelAlgos') {
3332
+ response = await this.privatePostTradeCancelAlgos(request); // * dont extend with params, otherwise ARRAY will be turned into OBJECT
3333
+ }
3334
+ else {
3335
+ response = await this.privatePostTradeCancelBatchOrders(request); // * dont extend with params, otherwise ARRAY will be turned into OBJECT
3336
+ }
3337
+ //
3338
+ // {
3339
+ // "code": "0",
3340
+ // "data": [
3341
+ // {
3342
+ // "clOrdId": "e123456789ec4dBC1123456ba123b45e",
3343
+ // "ordId": "405071912345641543",
3344
+ // "sCode": "0",
3345
+ // "sMsg": ""
3346
+ // },
3347
+ // ...
3348
+ // ],
3349
+ // "msg": ""
3350
+ // }
3351
+ //
3352
+ // Algo order
3353
+ //
3354
+ // {
3355
+ // "code": "0",
3356
+ // "data": [
3357
+ // {
3358
+ // "algoId": "431375349042380800",
3359
+ // "sCode": "0",
3360
+ // "sMsg": ""
3361
+ // }
3362
+ // ],
3363
+ // "msg": ""
3364
+ // }
3365
+ //
3366
+ const ordersData = this.safeList(response, 'data', []);
3367
+ return this.parseOrders(ordersData, undefined, undefined, undefined, params);
3368
+ }
3369
+ async cancelAllOrdersAfter(timeout, params = {}) {
3370
+ /**
3371
+ * @method
3372
+ * @name okx#cancelAllOrdersAfter
3373
+ * @description dead man's switch, cancel all orders after the given timeout
3374
+ * @see https://www.okx.com/docs-v5/en/#order-book-trading-trade-post-cancel-all-after
3375
+ * @param {number} timeout time in milliseconds, 0 represents cancel the timer
3376
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
3377
+ * @returns {object} the api result
3378
+ */
3379
+ await this.loadMarkets();
3380
+ const request = {
3381
+ 'timeOut': (timeout > 0) ? this.parseToInt(timeout / 1000) : 0,
3382
+ };
3383
+ const response = await this.privatePostTradeCancelAllAfter(this.extend(request, params));
3384
+ //
3385
+ // {
3386
+ // "code":"0",
3387
+ // "msg":"",
3388
+ // "data":[
3389
+ // {
3390
+ // "triggerTime":"1587971460",
3391
+ // "ts":"1587971400"
3392
+ // }
3393
+ // ]
3394
+ // }
3395
+ //
3396
+ return response;
3397
+ }
3285
3398
  parseOrderStatus(status) {
3286
3399
  const statuses = {
3287
3400
  'canceled': 'canceled',