ccxt 4.3.40 → 4.3.41

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 (76) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +1 -1
  4. package/dist/cjs/src/binance.js +3 -0
  5. package/dist/cjs/src/bitfinex2.js +1 -1
  6. package/dist/cjs/src/bithumb.js +9 -1
  7. package/dist/cjs/src/bitstamp.js +38 -2
  8. package/dist/cjs/src/coinlist.js +20 -1
  9. package/dist/cjs/src/coinmate.js +19 -3
  10. package/dist/cjs/src/coinone.js +1 -1
  11. package/dist/cjs/src/coinspot.js +13 -2
  12. package/dist/cjs/src/independentreserve.js +33 -1
  13. package/dist/cjs/src/indodax.js +43 -2
  14. package/dist/cjs/src/okx.js +7 -0
  15. package/dist/cjs/src/pro/alpaca.js +5 -5
  16. package/dist/cjs/src/pro/ascendex.js +3 -3
  17. package/dist/cjs/src/pro/bingx.js +293 -47
  18. package/dist/cjs/src/pro/bitget.js +6 -5
  19. package/dist/cjs/src/pro/bitrue.js +3 -4
  20. package/dist/cjs/src/pro/currencycom.js +6 -5
  21. package/dist/cjs/src/pro/exmo.js +5 -6
  22. package/dist/cjs/src/pro/gemini.js +4 -3
  23. package/dist/cjs/src/pro/independentreserve.js +7 -7
  24. package/dist/cjs/src/pro/lbank.js +4 -4
  25. package/dist/cjs/src/pro/phemex.js +5 -5
  26. package/dist/cjs/src/pro/probit.js +4 -4
  27. package/dist/cjs/src/pro/upbit.js +318 -2
  28. package/dist/cjs/src/pro/wazirx.js +12 -12
  29. package/dist/cjs/src/upbit.js +17 -9
  30. package/dist/cjs/src/woo.js +6 -2
  31. package/js/ccxt.d.ts +1 -1
  32. package/js/ccxt.js +1 -1
  33. package/js/src/abstract/binance.d.ts +2 -0
  34. package/js/src/abstract/binancecoinm.d.ts +2 -0
  35. package/js/src/abstract/binanceus.d.ts +2 -0
  36. package/js/src/abstract/binanceusdm.d.ts +2 -0
  37. package/js/src/abstract/okx.d.ts +7 -0
  38. package/js/src/binance.js +3 -0
  39. package/js/src/bitfinex2.js +1 -1
  40. package/js/src/bithumb.d.ts +2 -2
  41. package/js/src/bithumb.js +9 -1
  42. package/js/src/bitstamp.d.ts +2 -2
  43. package/js/src/bitstamp.js +38 -2
  44. package/js/src/coinlist.d.ts +1 -1
  45. package/js/src/coinlist.js +20 -1
  46. package/js/src/coinmate.d.ts +1 -3
  47. package/js/src/coinmate.js +19 -3
  48. package/js/src/coinone.d.ts +1 -1
  49. package/js/src/coinone.js +1 -1
  50. package/js/src/coinspot.d.ts +1 -1
  51. package/js/src/coinspot.js +13 -2
  52. package/js/src/independentreserve.d.ts +1 -1
  53. package/js/src/independentreserve.js +33 -1
  54. package/js/src/indodax.d.ts +1 -1
  55. package/js/src/indodax.js +43 -2
  56. package/js/src/okx.js +7 -0
  57. package/js/src/pro/alpaca.js +5 -5
  58. package/js/src/pro/ascendex.js +3 -3
  59. package/js/src/pro/bingx.d.ts +6 -1
  60. package/js/src/pro/bingx.js +294 -48
  61. package/js/src/pro/bitget.js +6 -5
  62. package/js/src/pro/bitrue.js +3 -4
  63. package/js/src/pro/currencycom.js +6 -5
  64. package/js/src/pro/exmo.js +5 -6
  65. package/js/src/pro/gemini.js +4 -3
  66. package/js/src/pro/independentreserve.js +7 -7
  67. package/js/src/pro/lbank.js +4 -4
  68. package/js/src/pro/phemex.js +5 -5
  69. package/js/src/pro/probit.js +4 -4
  70. package/js/src/pro/upbit.d.ts +13 -1
  71. package/js/src/pro/upbit.js +319 -3
  72. package/js/src/pro/wazirx.js +12 -12
  73. package/js/src/upbit.js +17 -9
  74. package/js/src/woo.d.ts +1 -1
  75. package/js/src/woo.js +6 -2
  76. package/package.json +1 -1
@@ -61,8 +61,8 @@ export default class bitstamp extends Exchange {
61
61
  fetchDepositWithdrawFees(codes?: any, params?: {}): Promise<any>;
62
62
  parseDepositWithdrawFee(fee: any, currency?: any): any;
63
63
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
64
- cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
65
- cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
64
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
65
+ cancelAllOrders(symbol?: Str, params?: {}): Promise<Order[]>;
66
66
  parseOrderStatus(status: Str): string;
67
67
  fetchOrderStatus(id: string, symbol?: Str, params?: {}): Promise<string>;
68
68
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
@@ -1446,7 +1446,17 @@ export default class bitstamp extends Exchange {
1446
1446
  const request = {
1447
1447
  'id': id,
1448
1448
  };
1449
- return await this.privatePostCancelOrder(this.extend(request, params));
1449
+ const response = await this.privatePostCancelOrder(this.extend(request, params));
1450
+ //
1451
+ // {
1452
+ // "id": 1453282316578816,
1453
+ // "amount": "0.02035278",
1454
+ // "price": "2100.45",
1455
+ // "type": 0,
1456
+ // "market": "BTC/USD"
1457
+ // }
1458
+ //
1459
+ return this.parseOrder(response);
1450
1460
  }
1451
1461
  async cancelAllOrders(symbol = undefined, params = {}) {
1452
1462
  /**
@@ -1471,7 +1481,23 @@ export default class bitstamp extends Exchange {
1471
1481
  else {
1472
1482
  response = await this.privatePostCancelAllOrders(this.extend(request, params));
1473
1483
  }
1474
- return response;
1484
+ //
1485
+ // {
1486
+ // "canceled": [
1487
+ // {
1488
+ // "id": 1453282316578816,
1489
+ // "amount": "0.02035278",
1490
+ // "price": "2100.45",
1491
+ // "type": 0,
1492
+ // "currency_pair": "BTC/USD",
1493
+ // "market": "BTC/USD"
1494
+ // }
1495
+ // ],
1496
+ // "success": true
1497
+ // }
1498
+ //
1499
+ const canceled = this.safeList(response, 'canceled');
1500
+ return this.parseOrders(canceled);
1475
1501
  }
1476
1502
  parseOrderStatus(status) {
1477
1503
  const statuses = {
@@ -1848,6 +1874,16 @@ export default class bitstamp extends Exchange {
1848
1874
  // "id": "2814205012"
1849
1875
  // }
1850
1876
  //
1877
+ // cancelOrder
1878
+ //
1879
+ // {
1880
+ // "id": 1453282316578816,
1881
+ // "amount": "0.02035278",
1882
+ // "price": "2100.45",
1883
+ // "type": 0,
1884
+ // "market": "BTC/USD"
1885
+ // }
1886
+ //
1851
1887
  const id = this.safeString(order, 'id');
1852
1888
  const clientOrderId = this.safeString(order, 'client_order_id');
1853
1889
  let side = this.safeString(order, 'type');
@@ -42,7 +42,7 @@ export default class coinlist extends Exchange {
42
42
  fetchCanceledOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
43
43
  cancelAllOrders(symbol?: Str, params?: {}): Promise<Order[]>;
44
44
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
45
- cancelOrders(ids: any, symbol?: Str, params?: {}): Promise<any>;
45
+ cancelOrders(ids: any, symbol?: Str, params?: {}): Promise<any[]>;
46
46
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
47
47
  editOrder(id: string, symbol: string, type: OrderType, side: OrderSide, amount?: Num, price?: Num, params?: {}): Promise<Order>;
48
48
  parseOrder(order: Dict, market?: Market): Order;
@@ -1458,7 +1458,26 @@ export default class coinlist extends Exchange {
1458
1458
  await this.loadMarkets();
1459
1459
  params = ids;
1460
1460
  const response = await this.privateDeleteV1OrdersBulk(params);
1461
- return response;
1461
+ //
1462
+ // {
1463
+ // "message": "Cancel order requests received.",
1464
+ // "order_ids": [
1465
+ // "ff132955-43bc-4fe5-9d9c-5ba226cc89a0"
1466
+ // ],
1467
+ // "timestamp": "2024-06-01T02:32:30.305Z"
1468
+ // }
1469
+ //
1470
+ const orderIds = this.safeList(response, 'order_ids', []);
1471
+ const orders = [];
1472
+ const datetime = this.safeString(response, 'timestamp');
1473
+ for (let i = 0; i < orderIds.length; i++) {
1474
+ orders.push(this.safeOrder({
1475
+ 'info': orderIds[i],
1476
+ 'id': orderIds[i],
1477
+ 'lastUpdateTimestamp': this.parse8601(datetime),
1478
+ }));
1479
+ }
1480
+ return orders;
1462
1481
  }
1463
1482
  async createOrder(symbol, type, side, amount, price = undefined, params = {}) {
1464
1483
  /**
@@ -28,9 +28,7 @@ export default class coinmate extends Exchange {
28
28
  parseOrder(order: Dict, market?: Market): Order;
29
29
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
30
30
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
31
- cancelOrder(id: string, symbol?: Str, params?: {}): Promise<{
32
- info: any;
33
- }>;
31
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
34
32
  nonce(): number;
35
33
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
36
34
  url: string;
@@ -929,6 +929,13 @@ export default class coinmate extends Exchange {
929
929
  // "trailing": false,
930
930
  // }
931
931
  //
932
+ // cancelOrder
933
+ //
934
+ // {
935
+ // "success": true,
936
+ // "remainingAmount": 0.1
937
+ // }
938
+ //
932
939
  const id = this.safeString(order, 'id');
933
940
  const timestamp = this.safeInteger(order, 'timestamp');
934
941
  const side = this.safeStringLower(order, 'type');
@@ -1048,9 +1055,18 @@ export default class coinmate extends Exchange {
1048
1055
  // {"error":false,"errorMessage":null,"data":{"success":true,"remainingAmount":0.01}}
1049
1056
  const request = { 'orderId': id };
1050
1057
  const response = await this.privatePostCancelOrderWithInfo(this.extend(request, params));
1051
- return {
1052
- 'info': response,
1053
- };
1058
+ //
1059
+ // {
1060
+ // "error": false,
1061
+ // "errorMessage": null,
1062
+ // "data": {
1063
+ // "success": true,
1064
+ // "remainingAmount": 0.1
1065
+ // }
1066
+ // }
1067
+ //
1068
+ const data = this.safeDict(response, 'data');
1069
+ return this.parseOrder(data);
1054
1070
  }
1055
1071
  nonce() {
1056
1072
  return this.milliseconds();
@@ -22,7 +22,7 @@ export default class coinone extends Exchange {
22
22
  parseOrder(order: Dict, market?: Market): Order;
23
23
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
24
24
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
25
- cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
25
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
26
26
  fetchDepositAddresses(codes?: Strings, params?: {}): Promise<Dict>;
27
27
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
28
28
  url: string;
package/js/src/coinone.js CHANGED
@@ -1064,7 +1064,7 @@ export default class coinone extends Exchange {
1064
1064
  // "errorCode": "0"
1065
1065
  // }
1066
1066
  //
1067
- return response;
1067
+ return this.safeOrder(response);
1068
1068
  }
1069
1069
  async fetchDepositAddresses(codes = undefined, params = {}) {
1070
1070
  /**
@@ -16,7 +16,7 @@ export default class coinspot extends Exchange {
16
16
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
17
17
  parseTrade(trade: Dict, market?: Market): Trade;
18
18
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<any>;
19
- cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
19
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<import("./base/types.js").Order>;
20
20
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
21
21
  url: string;
22
22
  method: string;
@@ -536,11 +536,22 @@ export default class coinspot extends Exchange {
536
536
  throw new ArgumentsRequired(this.id + ' cancelOrder() requires a side parameter, "buy" or "sell"');
537
537
  }
538
538
  params = this.omit(params, 'side');
539
- const method = 'privatePostMy' + this.capitalize(side) + 'Cancel';
540
539
  const request = {
541
540
  'id': id,
542
541
  };
543
- return await this[method](this.extend(request, params));
542
+ let response = undefined;
543
+ if (side === 'buy') {
544
+ response = await this.privatePostMyBuyCancel(this.extend(request, params));
545
+ }
546
+ else {
547
+ response = await this.privatePostMySellCancel(this.extend(request, params));
548
+ }
549
+ //
550
+ // status - ok, error
551
+ //
552
+ return this.safeOrder({
553
+ 'info': response,
554
+ });
544
555
  }
545
556
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
546
557
  const url = this.urls['api'][api] + '/' + path;
@@ -22,7 +22,7 @@ export default class independentreserve extends Exchange {
22
22
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
23
23
  fetchTradingFees(params?: {}): Promise<TradingFees>;
24
24
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
25
- cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
25
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
26
26
  fetchDepositAddress(code: string, params?: {}): Promise<{
27
27
  info: any;
28
28
  currency: string;
@@ -388,6 +388,21 @@ export default class independentreserve extends Exchange {
388
388
  // "FeePercent": 0.005,
389
389
  // }
390
390
  //
391
+ // cancelOrder
392
+ //
393
+ // {
394
+ // "AvgPrice": 455.48,
395
+ // "CreatedTimestampUtc": "2022-08-05T06:42:11.3032208Z",
396
+ // "OrderGuid": "719c495c-a39e-4884-93ac-280b37245037",
397
+ // "Price": 485.76,
398
+ // "PrimaryCurrencyCode": "Xbt",
399
+ // "ReservedAmount": 0.358,
400
+ // "SecondaryCurrencyCode": "Usd",
401
+ // "Status": "Cancelled",
402
+ // "Type": "LimitOffer",
403
+ // "VolumeFilled": 0,
404
+ // "VolumeOrdered": 0.358
405
+ // }
391
406
  let symbol = undefined;
392
407
  const baseId = this.safeString(order, 'PrimaryCurrencyCode');
393
408
  const quoteId = this.safeString(order, 'SecondaryCurrencyCode');
@@ -718,6 +733,7 @@ export default class independentreserve extends Exchange {
718
733
  * @method
719
734
  * @name independentreserve#cancelOrder
720
735
  * @description cancels an open order
736
+ * @see https://www.independentreserve.com/features/api#CancelOrder
721
737
  * @param {string} id order id
722
738
  * @param {string} symbol unified symbol of the market the order was made in
723
739
  * @param {object} [params] extra parameters specific to the exchange API endpoint
@@ -727,7 +743,23 @@ export default class independentreserve extends Exchange {
727
743
  const request = {
728
744
  'orderGuid': id,
729
745
  };
730
- return await this.privatePostCancelOrder(this.extend(request, params));
746
+ const response = await this.privatePostCancelOrder(this.extend(request, params));
747
+ //
748
+ // {
749
+ // "AvgPrice": 455.48,
750
+ // "CreatedTimestampUtc": "2022-08-05T06:42:11.3032208Z",
751
+ // "OrderGuid": "719c495c-a39e-4884-93ac-280b37245037",
752
+ // "Price": 485.76,
753
+ // "PrimaryCurrencyCode": "Xbt",
754
+ // "ReservedAmount": 0.358,
755
+ // "SecondaryCurrencyCode": "Usd",
756
+ // "Status": "Cancelled",
757
+ // "Type": "LimitOffer",
758
+ // "VolumeFilled": 0,
759
+ // "VolumeOrdered": 0.358
760
+ // }
761
+ //
762
+ return this.parseOrder(response);
731
763
  }
732
764
  async fetchDepositAddress(code, params = {}) {
733
765
  /**
@@ -25,7 +25,7 @@ export default class indodax extends Exchange {
25
25
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
26
26
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
27
27
  createOrder(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): Promise<Order>;
28
- cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
28
+ cancelOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
29
29
  fetchTransactionFee(code: string, params?: {}): Promise<{
30
30
  info: any;
31
31
  rate: number;
package/js/src/indodax.js CHANGED
@@ -656,6 +656,24 @@ export default class indodax extends Exchange {
656
656
  // "order_xrp": "30.45000000",
657
657
  // "remain_xrp": "0.00000000"
658
658
  // }
659
+ //
660
+ // cancelOrder
661
+ //
662
+ // {
663
+ // "order_id": 666883,
664
+ // "client_order_id": "clientx-sj82ks82j",
665
+ // "type": "sell",
666
+ // "pair": "btc_idr",
667
+ // "balance": {
668
+ // "idr": "33605800",
669
+ // "btc": "0.00000000",
670
+ // ...
671
+ // "frozen_idr": "0",
672
+ // "frozen_btc": "0.00000000",
673
+ // ...
674
+ // }
675
+ // }
676
+ //
659
677
  let side = undefined;
660
678
  if ('type' in order) {
661
679
  side = order['type'];
@@ -666,6 +684,8 @@ export default class indodax extends Exchange {
666
684
  const price = this.safeString(order, 'price');
667
685
  let amount = undefined;
668
686
  let remaining = undefined;
687
+ const marketId = this.safeString(order, 'pair');
688
+ market = this.safeMarket(marketId, market);
669
689
  if (market !== undefined) {
670
690
  symbol = market['symbol'];
671
691
  let quoteId = market['quoteId'];
@@ -688,7 +708,7 @@ export default class indodax extends Exchange {
688
708
  return this.safeOrder({
689
709
  'info': order,
690
710
  'id': id,
691
- 'clientOrderId': undefined,
711
+ 'clientOrderId': this.safeString(order, 'client_order_id'),
692
712
  'timestamp': timestamp,
693
713
  'datetime': this.iso8601(timestamp),
694
714
  'lastTradeTimestamp': undefined,
@@ -866,7 +886,28 @@ export default class indodax extends Exchange {
866
886
  'pair': market['id'],
867
887
  'type': side,
868
888
  };
869
- return await this.privatePostCancelOrder(this.extend(request, params));
889
+ const response = await this.privatePostCancelOrder(this.extend(request, params));
890
+ //
891
+ // {
892
+ // "success": 1,
893
+ // "return": {
894
+ // "order_id": 666883,
895
+ // "client_order_id": "clientx-sj82ks82j",
896
+ // "type": "sell",
897
+ // "pair": "btc_idr",
898
+ // "balance": {
899
+ // "idr": "33605800",
900
+ // "btc": "0.00000000",
901
+ // ...
902
+ // "frozen_idr": "0",
903
+ // "frozen_btc": "0.00000000",
904
+ // ...
905
+ // }
906
+ // }
907
+ // }
908
+ //
909
+ const data = this.safeDict(response, 'return');
910
+ return this.parseOrder(data);
870
911
  }
871
912
  async fetchTransactionFee(code, params = {}) {
872
913
  /**
package/js/src/okx.js CHANGED
@@ -348,6 +348,9 @@ export default class okx extends Exchange {
348
348
  'account/greeks': 2,
349
349
  'account/position-tiers': 2,
350
350
  'account/mmp-config': 4,
351
+ 'account/fixed-loan/borrowing-limit': 4,
352
+ 'account/fixed-loan/borrowing-quote': 5,
353
+ 'account/fixed-loan/borrowing-orders-list': 5,
351
354
  // subaccount
352
355
  'users/subaccount/list': 10,
353
356
  'account/subaccount/balances': 10 / 3,
@@ -473,6 +476,10 @@ export default class okx extends Exchange {
473
476
  'account/set-account-level': 4,
474
477
  'account/mmp-reset': 4,
475
478
  'account/mmp-config': 100,
479
+ 'account/fixed-loan/borrowing-order': 5,
480
+ 'account/fixed-loan/amend-borrowing-order': 5,
481
+ 'account/fixed-loan/manual-reborrow': 5,
482
+ 'account/fixed-loan/repay-borrowing-order': 5,
476
483
  // subaccount
477
484
  'users/subaccount/modify-apikey': 10,
478
485
  'asset/subaccount/transfer': 10,
@@ -228,17 +228,17 @@ export default class alpaca extends alpacaRest {
228
228
  const datetime = this.safeString(message, 't');
229
229
  const timestamp = this.parse8601(datetime);
230
230
  const isSnapshot = this.safeBool(message, 'r', false);
231
- let orderbook = this.safeValue(this.orderbooks, symbol);
232
- if (orderbook === undefined) {
233
- orderbook = this.orderBook();
231
+ if (!(symbol in this.orderbooks)) {
232
+ this.orderbooks[symbol] = this.orderBook();
234
233
  }
234
+ const orderbook = this.orderbooks[symbol];
235
235
  if (isSnapshot) {
236
236
  const snapshot = this.parseOrderBook(message, symbol, timestamp, 'b', 'a', 'p', 's');
237
237
  orderbook.reset(snapshot);
238
238
  }
239
239
  else {
240
- const asks = this.safeValue(message, 'a', []);
241
- const bids = this.safeValue(message, 'b', []);
240
+ const asks = this.safeList(message, 'a', []);
241
+ const bids = this.safeList(message, 'b', []);
242
242
  this.handleDeltas(orderbook['asks'], asks);
243
243
  this.handleDeltas(orderbook['bids'], bids);
244
244
  orderbook['timestamp'] = timestamp;
@@ -296,10 +296,10 @@ export default class ascendex extends ascendexRest {
296
296
  const marketId = this.safeString(message, 'symbol');
297
297
  const symbol = this.safeSymbol(marketId);
298
298
  const messageHash = channel + ':' + marketId;
299
- let orderbook = this.safeValue(this.orderbooks, symbol);
300
- if (orderbook === undefined) {
301
- orderbook = this.orderBook({});
299
+ if (!(symbol in this.orderbooks)) {
300
+ this.orderbooks[symbol] = this.orderBook({});
302
301
  }
302
+ const orderbook = this.orderbooks[symbol];
303
303
  if (orderbook['nonce'] === undefined) {
304
304
  orderbook.cache.push(message);
305
305
  }
@@ -1,11 +1,16 @@
1
1
  import bingxRest from '../bingx.js';
2
- import type { Int, OHLCV, Str, OrderBook, Order, Trade, Balances, Ticker } from '../base/types.js';
2
+ import type { Int, OHLCV, Str, Strings, OrderBook, Order, Trade, Balances, Ticker, Tickers } from '../base/types.js';
3
3
  import Client from '../base/ws/Client.js';
4
4
  export default class bingx extends bingxRest {
5
5
  describe(): any;
6
6
  watchTicker(symbol: string, params?: {}): Promise<Ticker>;
7
7
  handleTicker(client: Client, message: any): void;
8
8
  parseWsTicker(message: any, market?: any): Ticker;
9
+ watchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
10
+ watchOrderBookForSymbols(symbols: string[], limit?: Int, params?: {}): Promise<OrderBook>;
11
+ watchOHLCVForSymbols(symbolsAndTimeframes: string[][], since?: Int, limit?: Int, params?: {}): Promise<import("../base/types.js").Dictionary<import("../base/types.js").Dictionary<OHLCV[]>>>;
12
+ getOrderBookLimitByMarketType(marketType: string, limit?: Int): number;
13
+ getMessageHash(unifiedChannel: string, symbol?: Str, extra?: Str): string;
9
14
  watchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
10
15
  handleTrades(client: Client, message: any): void;
11
16
  watchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;