ccxt 4.5.0 → 4.5.2

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 (82) hide show
  1. package/README.md +110 -112
  2. package/dist/ccxt.browser.min.js +5 -5
  3. package/dist/cjs/ccxt.js +1 -9
  4. package/dist/cjs/src/ascendex.js +1 -1
  5. package/dist/cjs/src/base/Exchange.js +13 -0
  6. package/dist/cjs/src/binance.js +20 -14
  7. package/dist/cjs/src/bitget.js +1 -1
  8. package/dist/cjs/src/coinbase.js +46 -34
  9. package/dist/cjs/src/gate.js +39 -18
  10. package/dist/cjs/src/gemini.js +1 -1
  11. package/dist/cjs/src/hibachi.js +1 -1
  12. package/dist/cjs/src/hyperliquid.js +16 -2
  13. package/dist/cjs/src/indodax.js +11 -12
  14. package/dist/cjs/src/kraken.js +1 -12
  15. package/dist/cjs/src/krakenfutures.js +25 -25
  16. package/dist/cjs/src/mexc.js +2 -1
  17. package/dist/cjs/src/okx.js +2 -2
  18. package/dist/cjs/src/poloniex.js +1 -1
  19. package/dist/cjs/src/pro/bitget.js +352 -75
  20. package/dist/cjs/src/pro/bitmart.js +1 -1
  21. package/dist/cjs/src/pro/bybit.js +8 -15
  22. package/dist/cjs/src/pro/gate.js +6 -1
  23. package/dist/cjs/src/pro/gemini.js +7 -2
  24. package/dist/cjs/src/pro/hyperliquid.js +9 -1
  25. package/dist/cjs/src/pro/kraken.js +5 -6
  26. package/dist/cjs/src/pro/lbank.js +55 -1
  27. package/dist/cjs/src/pro/mexc.js +1 -1
  28. package/dist/cjs/src/timex.js +35 -0
  29. package/dist/cjs/src/tradeogre.js +32 -0
  30. package/dist/cjs/src/wavesexchange.js +33 -0
  31. package/dist/cjs/src/zonda.js +12 -0
  32. package/js/ccxt.d.ts +2 -11
  33. package/js/ccxt.js +2 -8
  34. package/js/src/ascendex.js +1 -1
  35. package/js/src/base/Exchange.d.ts +1 -0
  36. package/js/src/base/Exchange.js +14 -1
  37. package/js/src/binance.d.ts +1 -1
  38. package/js/src/binance.js +20 -14
  39. package/js/src/bitget.js +1 -1
  40. package/js/src/coinbase.js +46 -34
  41. package/js/src/gate.d.ts +2 -1
  42. package/js/src/gate.js +39 -18
  43. package/js/src/gemini.js +1 -1
  44. package/js/src/hibachi.js +1 -1
  45. package/js/src/hyperliquid.d.ts +1 -0
  46. package/js/src/hyperliquid.js +16 -2
  47. package/js/src/indodax.js +11 -12
  48. package/js/src/kraken.d.ts +0 -1
  49. package/js/src/kraken.js +1 -12
  50. package/js/src/krakenfutures.d.ts +24 -24
  51. package/js/src/krakenfutures.js +25 -25
  52. package/js/src/mexc.js +2 -1
  53. package/js/src/okx.js +2 -2
  54. package/js/src/poloniex.js +1 -1
  55. package/js/src/pro/bitget.d.ts +12 -2
  56. package/js/src/pro/bitget.js +358 -75
  57. package/js/src/pro/bitmart.js +1 -1
  58. package/js/src/pro/bybit.js +8 -15
  59. package/js/src/pro/gate.d.ts +5 -0
  60. package/js/src/pro/gate.js +6 -1
  61. package/js/src/pro/gemini.d.ts +1 -1
  62. package/js/src/pro/gemini.js +7 -2
  63. package/js/src/pro/hyperliquid.js +9 -1
  64. package/js/src/pro/kraken.js +5 -6
  65. package/js/src/pro/lbank.d.ts +11 -1
  66. package/js/src/pro/lbank.js +55 -1
  67. package/js/src/pro/mexc.js +1 -1
  68. package/js/src/timex.js +35 -0
  69. package/js/src/tradeogre.js +32 -0
  70. package/js/src/wavesexchange.js +33 -0
  71. package/js/src/zonda.js +12 -0
  72. package/package.json +2 -1
  73. package/js/src/abstract/ellipx.d.ts +0 -28
  74. package/js/src/abstract/ellipx.js +0 -11
  75. package/js/src/abstract/vertex.d.ts +0 -22
  76. package/js/src/abstract/vertex.js +0 -11
  77. package/js/src/ellipx.d.ts +0 -237
  78. package/js/src/ellipx.js +0 -2071
  79. package/js/src/pro/vertex.d.ts +0 -104
  80. package/js/src/pro/vertex.js +0 -999
  81. package/js/src/vertex.d.ts +0 -346
  82. package/js/src/vertex.js +0 -3146
@@ -220,7 +220,7 @@ export default class bitmart extends bitmartRest {
220
220
  // "fz_bal":"0.100000000000000000000000000000"
221
221
  // }
222
222
  // ],
223
- // "event_time":"1701632345415",
223
+ // "event_time":"1701632345416",
224
224
  // "event_type":"TRANSACTION_COMPLETED"
225
225
  // }
226
226
  // ],
@@ -867,21 +867,14 @@ export default class bybit extends bybitRest {
867
867
  }
868
868
  }
869
869
  else {
870
- if (!market['spot']) {
871
- if (market['option']) {
872
- if ((limit !== 25) && (limit !== 100)) {
873
- throw new BadRequest(this.id + ' watchOrderBookForSymbols() can only use limit 25 and 100 for option markets.');
874
- }
875
- }
876
- else if ((limit !== 1) && (limit !== 50) && (limit !== 200) && (limit !== 500)) {
877
- // bybit only support limit 1, 50, 200, 500 for contract
878
- throw new BadRequest(this.id + ' watchOrderBookForSymbols() can only use limit 1, 50, 200 and 500 for swap and future markets.');
879
- }
880
- }
881
- else {
882
- if ((limit !== 1) && (limit !== 50) && (limit !== 200)) {
883
- throw new BadRequest(this.id + ' watchOrderBookForSymbols() can only use limit 1,50, and 200 for spot markets.');
884
- }
870
+ const limits = {
871
+ 'spot': [1, 50, 200, 1000],
872
+ 'option': [25, 100],
873
+ 'default': [1, 50, 200, 500, 1000],
874
+ };
875
+ const selectedLimits = this.safeList2(limits, market['type'], 'default');
876
+ if (!this.inArray(limit, selectedLimits)) {
877
+ throw new BadRequest(this.id + ' watchOrderBookForSymbols(): for ' + market['type'] + ' markets limit can be one of: ' + this.json(selectedLimits));
885
878
  }
886
879
  }
887
880
  const topics = [];
@@ -143,6 +143,11 @@ export default class gate extends gateRest {
143
143
  * @method
144
144
  * @name gate#watchOrderBook
145
145
  * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
146
+ * @see https://www.gate.com/docs/developers/apiv4/ws/en/#order-book-channel
147
+ * @see https://www.gate.com/docs/developers/apiv4/ws/en/#order-book-v2-api
148
+ * @see https://www.gate.com/docs/developers/futures/ws/en/#order-book-api
149
+ * @see https://www.gate.com/docs/developers/futures/ws/en/#order-book-v2-api
150
+ * @see https://www.gate.com/docs/developers/delivery/ws/en/#order-book-api
146
151
  * @param {string} symbol unified symbol of the market to fetch the order book for
147
152
  * @param {int} [limit] the maximum amount of order book entries to return
148
153
  * @param {object} [params] extra parameters specific to the exchange API endpoint
@@ -361,6 +361,11 @@ export default class gate extends gateRest {
361
361
  * @method
362
362
  * @name gate#watchOrderBook
363
363
  * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
364
+ * @see https://www.gate.com/docs/developers/apiv4/ws/en/#order-book-channel
365
+ * @see https://www.gate.com/docs/developers/apiv4/ws/en/#order-book-v2-api
366
+ * @see https://www.gate.com/docs/developers/futures/ws/en/#order-book-api
367
+ * @see https://www.gate.com/docs/developers/futures/ws/en/#order-book-v2-api
368
+ * @see https://www.gate.com/docs/developers/delivery/ws/en/#order-book-api
364
369
  * @param {string} symbol unified symbol of the market to fetch the order book for
365
370
  * @param {int} [limit] the maximum amount of order book entries to return
366
371
  * @param {object} [params] extra parameters specific to the exchange API endpoint
@@ -378,7 +383,7 @@ export default class gate extends gateRest {
378
383
  const url = this.getUrlByMarket(market);
379
384
  const payload = [marketId, interval];
380
385
  if (limit === undefined) {
381
- limit = 100;
386
+ limit = 100; // max 100 atm
382
387
  }
383
388
  if (market['contract']) {
384
389
  const stringLimit = limit.toString();
@@ -79,7 +79,7 @@ export default class gemini extends geminiRest {
79
79
  */
80
80
  watchBidsAsks(symbols?: Strings, params?: {}): Promise<Tickers>;
81
81
  handleBidsAsksForMultidata(client: Client, rawBidAskChanges: any, timestamp: Int, nonce: Int): void;
82
- helperForWatchMultipleConstruct(itemHashName: string, symbols: string[], params?: {}): Promise<any>;
82
+ helperForWatchMultipleConstruct(itemHashName: string, symbols?: string[], params?: {}): Promise<any>;
83
83
  handleOrderBookForMultidata(client: Client, rawOrderBookChanges: any, timestamp: Int, nonce: Int): void;
84
84
  handleL2Updates(client: Client, message: any): void;
85
85
  /**
@@ -491,11 +491,16 @@ export default class gemini extends geminiRest {
491
491
  currentBidAsk['timestamp'] = timestamp;
492
492
  currentBidAsk['datetime'] = this.iso8601(timestamp);
493
493
  currentBidAsk['info'] = rawBidAskChanges;
494
+ const bidsAsksDict = {};
495
+ bidsAsksDict[symbol] = currentBidAsk;
494
496
  this.bidsasks[symbol] = currentBidAsk;
495
- client.resolve(currentBidAsk, messageHash);
497
+ client.resolve(bidsAsksDict, messageHash);
496
498
  }
497
- async helperForWatchMultipleConstruct(itemHashName, symbols, params = {}) {
499
+ async helperForWatchMultipleConstruct(itemHashName, symbols = undefined, params = {}) {
498
500
  await this.loadMarkets();
501
+ if (symbols === undefined) {
502
+ throw new NotSupported(this.id + ' watchMultiple requires at least one symbol');
503
+ }
499
504
  symbols = this.marketSymbols(symbols, undefined, false, true, true);
500
505
  const firstMarket = this.market(symbols[0]);
501
506
  if (!firstMarket['spot'] && !firstMarket['linear']) {
@@ -99,6 +99,11 @@ export default class hyperliquid extends hyperliquidRest {
99
99
  await this.loadMarkets();
100
100
  const [order, globalParams] = this.parseCreateEditOrderArgs(undefined, symbol, type, side, amount, price, params);
101
101
  const orders = await this.createOrdersWs([order], globalParams);
102
+ const ordersLength = orders.length;
103
+ if (ordersLength === 0) {
104
+ // not sure why but it is happening sometimes
105
+ return this.safeOrder({});
106
+ }
102
107
  const parsedOrder = orders[0];
103
108
  return parsedOrder;
104
109
  }
@@ -921,7 +926,10 @@ export default class hyperliquid extends hyperliquidRest {
921
926
  return true;
922
927
  }
923
928
  const data = this.safeDict(message, 'data', {});
924
- const id = this.safeString(message, 'id');
929
+ let id = this.safeString(message, 'id');
930
+ if (id === undefined) {
931
+ id = this.safeString(data, 'id');
932
+ }
925
933
  const response = this.safeDict(data, 'response', {});
926
934
  const payload = this.safeDict(response, 'payload', {});
927
935
  const status = this.safeString(payload, 'status');
@@ -70,6 +70,7 @@ export default class kraken extends krakenRest {
70
70
  'broad': {
71
71
  'Already subscribed': BadRequest,
72
72
  'Currency pair not in ISO 4217-A3 format': BadSymbol,
73
+ 'Currency pair not supported': BadSymbol,
73
74
  'Malformed request': BadRequest,
74
75
  'Pair field must be an array': BadRequest,
75
76
  'Pair field unsupported for this subscription type': BadRequest,
@@ -1709,7 +1710,7 @@ export default class kraken extends krakenRest {
1709
1710
  //
1710
1711
  const errorMessage = this.safeString2(message, 'errorMessage', 'error');
1711
1712
  if (errorMessage !== undefined) {
1712
- // const requestId = this.safeValue2 (message, 'reqid', 'req_id');
1713
+ const requestId = this.safeString2(message, 'reqid', 'req_id');
1713
1714
  const broad = this.exceptions['ws']['broad'];
1714
1715
  const broadKey = this.findBroadlyMatchedKey(broad, errorMessage);
1715
1716
  let exception = undefined;
@@ -1719,11 +1720,9 @@ export default class kraken extends krakenRest {
1719
1720
  else {
1720
1721
  exception = new broad[broadKey](errorMessage);
1721
1722
  }
1722
- // if (requestId !== undefined) {
1723
- // client.reject (exception, requestId);
1724
- // } else {
1725
- client.reject(exception);
1726
- // }
1723
+ if (requestId !== undefined) {
1724
+ client.reject(exception, requestId);
1725
+ }
1727
1726
  return false;
1728
1727
  }
1729
1728
  return true;
@@ -1,5 +1,5 @@
1
1
  import lbankRest from '../lbank.js';
2
- import type { Int, Str, Trade, OrderBook, Order, OHLCV, Ticker } from '../base/types.js';
2
+ import type { Balances, Int, Str, Trade, OrderBook, Order, OHLCV, Ticker } from '../base/types.js';
3
3
  import Client from '../base/ws/Client.js';
4
4
  export default class lbank extends lbankRest {
5
5
  describe(): any;
@@ -94,6 +94,16 @@ export default class lbank extends lbankRest {
94
94
  handleOrders(client: any, message: any): void;
95
95
  parseWsOrder(order: any, market?: any): Order;
96
96
  parseWsOrderStatus(status: any): string;
97
+ /**
98
+ * @method
99
+ * @name lbank#watchBalance
100
+ * @description watch balance and get the amount of funds available for trading or funds locked in orders
101
+ * @see https://www.lbank.com/docs/index.html#update-subscribed-asset
102
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
103
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
104
+ */
105
+ watchBalance(params?: {}): Promise<Balances>;
106
+ handleBalance(client: Client, message: any): void;
97
107
  /**
98
108
  * @method
99
109
  * @name lbank#fetchOrderBookWs
@@ -17,7 +17,7 @@ export default class lbank extends lbankRest {
17
17
  'fetchOrderBookWs': true,
18
18
  'fetchTickerWs': true,
19
19
  'fetchTradesWs': true,
20
- 'watchBalance': false,
20
+ 'watchBalance': true,
21
21
  'watchTicker': true,
22
22
  'watchTickers': false,
23
23
  'watchTrades': true,
@@ -669,6 +669,59 @@ export default class lbank extends lbankRest {
669
669
  };
670
670
  return this.safeString(statuses, status, status);
671
671
  }
672
+ /**
673
+ * @method
674
+ * @name lbank#watchBalance
675
+ * @description watch balance and get the amount of funds available for trading or funds locked in orders
676
+ * @see https://www.lbank.com/docs/index.html#update-subscribed-asset
677
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
678
+ * @returns {object} a [balance structure]{@link https://docs.ccxt.com/#/?id=balance-structure}
679
+ */
680
+ async watchBalance(params = {}) {
681
+ await this.loadMarkets();
682
+ const key = await this.authenticate(params);
683
+ const url = this.urls['api']['ws'];
684
+ const messageHash = 'balance';
685
+ const message = {
686
+ 'action': 'subscribe',
687
+ 'subscribe': 'assetUpdate',
688
+ 'subscribeKey': key,
689
+ };
690
+ const request = this.deepExtend(message, params);
691
+ return await this.watch(url, messageHash, request, messageHash, request);
692
+ }
693
+ handleBalance(client, message) {
694
+ //
695
+ // {
696
+ // "data": {
697
+ // "asset": "114548.31881315",
698
+ // "assetCode": "usdt",
699
+ // "free": "97430.6739041",
700
+ // "freeze": "17117.64490905",
701
+ // "time": 1627300043270,
702
+ // "type": "ORDER_CREATE"
703
+ // },
704
+ // "SERVER": "V2",
705
+ // "type": "assetUpdate",
706
+ // "TS": "2021-07-26T19:48:03.548"
707
+ // }
708
+ //
709
+ const data = this.safeDict(message, 'data', {});
710
+ const timestamp = this.parse8601(this.safeString(message, 'TS'));
711
+ const datetime = this.iso8601(timestamp);
712
+ this.balance['info'] = data;
713
+ this.balance['timestamp'] = timestamp;
714
+ this.balance['datetime'] = datetime;
715
+ const currencyId = this.safeString(data, 'assetCode');
716
+ const code = this.safeCurrencyCode(currencyId);
717
+ const account = this.account();
718
+ account['free'] = this.safeString(data, 'free');
719
+ account['used'] = this.safeString(data, 'freeze');
720
+ account['total'] = this.safeString(data, 'asset');
721
+ this.balance[code] = account;
722
+ this.balance = this.safeBalance(this.balance);
723
+ client.resolve(this.balance, 'balance');
724
+ }
672
725
  /**
673
726
  * @method
674
727
  * @name lbank#fetchOrderBookWs
@@ -845,6 +898,7 @@ export default class lbank extends lbankRest {
845
898
  'trade': this.handleTrades,
846
899
  'tick': this.handleTicker,
847
900
  'orderUpdate': this.handleOrders,
901
+ 'assetUpdate': this.handleBalance,
848
902
  };
849
903
  const handler = this.safeValue(handlers, type);
850
904
  if (handler !== undefined) {
@@ -1422,7 +1422,7 @@ export default class mexc extends mexcRest {
1422
1422
  }
1423
1423
  return this.safeOrder({
1424
1424
  'id': this.safeString(order, 'id'),
1425
- 'clientOrderId': this.safeString(order, 'clientOrderId'),
1425
+ 'clientOrderId': this.safeString(order, 'clientId'),
1426
1426
  'timestamp': timestamp,
1427
1427
  'datetime': this.iso8601(timestamp),
1428
1428
  'lastTradeTimestamp': undefined,
package/js/src/timex.js CHANGED
@@ -28,17 +28,27 @@ export default class timex extends Exchange {
28
28
  'future': false,
29
29
  'option': false,
30
30
  'addMargin': false,
31
+ 'borrowCrossMargin': false,
32
+ 'borrowIsolatedMargin': false,
33
+ 'borrowMargin': false,
31
34
  'cancelOrder': true,
32
35
  'cancelOrders': true,
36
+ 'closeAllPositions': false,
37
+ 'closePosition': false,
33
38
  'createOrder': true,
34
39
  'createReduceOnlyOrder': false,
35
40
  'createStopLimitOrder': false,
36
41
  'createStopMarketOrder': false,
37
42
  'createStopOrder': false,
38
43
  'editOrder': true,
44
+ 'fetchAllGreeks': false,
39
45
  'fetchBalance': true,
46
+ 'fetchBorrowInterest': false,
47
+ 'fetchBorrowRate': false,
40
48
  'fetchBorrowRateHistories': false,
41
49
  'fetchBorrowRateHistory': false,
50
+ 'fetchBorrowRates': false,
51
+ 'fetchBorrowRatesPerSymbol': false,
42
52
  'fetchClosedOrders': true,
43
53
  'fetchCrossBorrowRate': false,
44
54
  'fetchCrossBorrowRates': false,
@@ -49,21 +59,40 @@ export default class timex extends Exchange {
49
59
  'fetchDepositAddressesByNetwork': false,
50
60
  'fetchDeposits': true,
51
61
  'fetchFundingHistory': false,
62
+ 'fetchFundingInterval': false,
63
+ 'fetchFundingIntervals': false,
52
64
  'fetchFundingRate': false,
53
65
  'fetchFundingRateHistory': false,
54
66
  'fetchFundingRates': false,
67
+ 'fetchGreeks': false,
55
68
  'fetchIndexOHLCV': false,
56
69
  'fetchIsolatedBorrowRate': false,
57
70
  'fetchIsolatedBorrowRates': false,
71
+ 'fetchIsolatedPositions': false,
58
72
  'fetchLeverage': false,
73
+ 'fetchLeverages': false,
59
74
  'fetchLeverageTiers': false,
75
+ 'fetchLiquidations': false,
76
+ 'fetchLongShortRatio': false,
77
+ 'fetchLongShortRatioHistory': false,
78
+ 'fetchMarginAdjustmentHistory': false,
60
79
  'fetchMarginMode': false,
80
+ 'fetchMarginModes': false,
81
+ 'fetchMarketLeverageTiers': false,
61
82
  'fetchMarkets': true,
62
83
  'fetchMarkOHLCV': false,
84
+ 'fetchMarkPrice': false,
85
+ 'fetchMarkPrices': false,
86
+ 'fetchMyLiquidations': false,
87
+ 'fetchMySettlementHistory': false,
63
88
  'fetchMyTrades': true,
64
89
  'fetchOHLCV': true,
90
+ 'fetchOpenInterest': false,
65
91
  'fetchOpenInterestHistory': false,
92
+ 'fetchOpenInterests': false,
66
93
  'fetchOpenOrders': true,
94
+ 'fetchOption': false,
95
+ 'fetchOptionChain': false,
67
96
  'fetchOrder': true,
68
97
  'fetchOrderBook': true,
69
98
  'fetchPosition': false,
@@ -74,15 +103,21 @@ export default class timex extends Exchange {
74
103
  'fetchPositionsHistory': false,
75
104
  'fetchPositionsRisk': false,
76
105
  'fetchPremiumIndexOHLCV': false,
106
+ 'fetchSettlementHistory': false,
77
107
  'fetchTicker': true,
78
108
  'fetchTickers': true,
79
109
  'fetchTime': true,
80
110
  'fetchTrades': true,
81
111
  'fetchTradingFee': true,
112
+ 'fetchUnderlyingAssets': false,
113
+ 'fetchVolatilityHistory': false,
82
114
  'fetchWithdrawal': false,
83
115
  'fetchWithdrawals': true,
84
116
  'reduceMargin': false,
117
+ 'repayCrossMargin': false,
118
+ 'repayIsolatedMargin': false,
85
119
  'setLeverage': false,
120
+ 'setMargin': false,
86
121
  'setMarginMode': false,
87
122
  'setPositionMode': false,
88
123
  },
@@ -30,6 +30,9 @@ export default class tradeogre extends Exchange {
30
30
  'future': false,
31
31
  'option': false,
32
32
  'addMargin': false,
33
+ 'borrowCrossMargin': false,
34
+ 'borrowIsolatedMargin': false,
35
+ 'borrowMargin': false,
33
36
  'cancelAllOrders': true,
34
37
  'cancelOrder': true,
35
38
  'cancelOrders': false,
@@ -45,9 +48,14 @@ export default class tradeogre extends Exchange {
45
48
  'createStopMarketOrder': false,
46
49
  'createStopOrder': false,
47
50
  'fetchAccounts': false,
51
+ 'fetchAllGreeks': false,
48
52
  'fetchBalance': true,
49
53
  'fetchBorrowInterest': false,
54
+ 'fetchBorrowRate': false,
55
+ 'fetchBorrowRateHistories': false,
50
56
  'fetchBorrowRateHistory': false,
57
+ 'fetchBorrowRates': false,
58
+ 'fetchBorrowRatesPerSymbol': false,
51
59
  'fetchClosedOrders': false,
52
60
  'fetchCrossBorrowRate': false,
53
61
  'fetchCrossBorrowRates': false,
@@ -58,23 +66,42 @@ export default class tradeogre extends Exchange {
58
66
  'fetchDeposits': false,
59
67
  'fetchDepositsWithdrawals': false,
60
68
  'fetchFundingHistory': false,
69
+ 'fetchFundingInterval': false,
70
+ 'fetchFundingIntervals': false,
61
71
  'fetchFundingRate': false,
62
72
  'fetchFundingRateHistory': false,
63
73
  'fetchFundingRates': false,
74
+ 'fetchGreeks': false,
64
75
  'fetchIndexOHLCV': false,
65
76
  'fetchIsolatedBorrowRate': false,
66
77
  'fetchIsolatedBorrowRates': false,
78
+ 'fetchIsolatedPositions': false,
67
79
  'fetchLedger': false,
68
80
  'fetchLedgerEntry': false,
81
+ 'fetchLeverage': false,
82
+ 'fetchLeverages': false,
69
83
  'fetchLeverageTiers': false,
84
+ 'fetchLiquidations': false,
85
+ 'fetchLongShortRatio': false,
86
+ 'fetchLongShortRatioHistory': false,
87
+ 'fetchMarginAdjustmentHistory': false,
88
+ 'fetchMarginMode': false,
89
+ 'fetchMarginModes': false,
70
90
  'fetchMarketLeverageTiers': false,
71
91
  'fetchMarkets': true,
72
92
  'fetchMarkOHLCV': false,
93
+ 'fetchMarkPrice': false,
94
+ 'fetchMarkPrices': false,
95
+ 'fetchMyLiquidations': false,
96
+ 'fetchMySettlementHistory': false,
73
97
  'fetchMyTrades': false,
74
98
  'fetchOHLCV': true,
75
99
  'fetchOpenInterest': false,
76
100
  'fetchOpenInterestHistory': false,
101
+ 'fetchOpenInterests': false,
77
102
  'fetchOpenOrders': true,
103
+ 'fetchOption': false,
104
+ 'fetchOptionChain': false,
78
105
  'fetchOrder': true,
79
106
  'fetchOrderBook': true,
80
107
  'fetchOrderBooks': false,
@@ -88,6 +115,7 @@ export default class tradeogre extends Exchange {
88
115
  'fetchPositionsHistory': false,
89
116
  'fetchPositionsRisk': false,
90
117
  'fetchPremiumIndexOHLCV': false,
118
+ 'fetchSettlementHistory': false,
91
119
  'fetchTicker': true,
92
120
  'fetchTickers': true,
93
121
  'fetchTrades': true,
@@ -96,10 +124,14 @@ export default class tradeogre extends Exchange {
96
124
  'fetchTransactionFees': false,
97
125
  'fetchTransactions': false,
98
126
  'fetchTransfers': false,
127
+ 'fetchUnderlyingAssets': false,
128
+ 'fetchVolatilityHistory': false,
99
129
  'fetchWithdrawAddresses': false,
100
130
  'fetchWithdrawal': false,
101
131
  'fetchWithdrawals': false,
102
132
  'reduceMargin': false,
133
+ 'repayCrossMargin': false,
134
+ 'repayIsolatedMargin': false,
103
135
  'setLeverage': false,
104
136
  'setMargin': false,
105
137
  'setMarginMode': false,
@@ -32,6 +32,9 @@ export default class wavesexchange extends Exchange {
32
32
  'future': false,
33
33
  'option': false,
34
34
  'addMargin': false,
35
+ 'borrowCrossMargin': false,
36
+ 'borrowIsolatedMargin': false,
37
+ 'borrowMargin': false,
35
38
  'cancelOrder': true,
36
39
  'closeAllPositions': false,
37
40
  'closePosition': false,
@@ -41,9 +44,14 @@ export default class wavesexchange extends Exchange {
41
44
  'createStopLimitOrder': false,
42
45
  'createStopMarketOrder': false,
43
46
  'createStopOrder': false,
47
+ 'fetchAllGreeks': false,
44
48
  'fetchBalance': true,
49
+ 'fetchBorrowInterest': false,
50
+ 'fetchBorrowRate': false,
45
51
  'fetchBorrowRateHistories': false,
46
52
  'fetchBorrowRateHistory': false,
53
+ 'fetchBorrowRates': false,
54
+ 'fetchBorrowRatesPerSymbol': false,
47
55
  'fetchClosedOrders': true,
48
56
  'fetchCrossBorrowRate': false,
49
57
  'fetchCrossBorrowRates': false,
@@ -53,21 +61,40 @@ export default class wavesexchange extends Exchange {
53
61
  'fetchDepositWithdrawFee': 'emulated',
54
62
  'fetchDepositWithdrawFees': true,
55
63
  'fetchFundingHistory': false,
64
+ 'fetchFundingInterval': false,
65
+ 'fetchFundingIntervals': false,
56
66
  'fetchFundingRate': false,
57
67
  'fetchFundingRateHistory': false,
58
68
  'fetchFundingRates': false,
69
+ 'fetchGreeks': false,
59
70
  'fetchIndexOHLCV': false,
60
71
  'fetchIsolatedBorrowRate': false,
61
72
  'fetchIsolatedBorrowRates': false,
73
+ 'fetchIsolatedPositions': false,
62
74
  'fetchLeverage': false,
75
+ 'fetchLeverages': false,
63
76
  'fetchLeverageTiers': false,
77
+ 'fetchLiquidations': false,
78
+ 'fetchLongShortRatio': false,
79
+ 'fetchLongShortRatioHistory': false,
80
+ 'fetchMarginAdjustmentHistory': false,
64
81
  'fetchMarginMode': false,
82
+ 'fetchMarginModes': false,
83
+ 'fetchMarketLeverageTiers': false,
65
84
  'fetchMarkets': true,
66
85
  'fetchMarkOHLCV': false,
86
+ 'fetchMarkPrice': false,
87
+ 'fetchMarkPrices': false,
88
+ 'fetchMyLiquidations': false,
89
+ 'fetchMySettlementHistory': false,
67
90
  'fetchMyTrades': true,
68
91
  'fetchOHLCV': true,
92
+ 'fetchOpenInterest': false,
69
93
  'fetchOpenInterestHistory': false,
94
+ 'fetchOpenInterests': false,
70
95
  'fetchOpenOrders': true,
96
+ 'fetchOption': false,
97
+ 'fetchOptionChain': false,
71
98
  'fetchOrder': true,
72
99
  'fetchOrderBook': true,
73
100
  'fetchOrders': true,
@@ -79,14 +106,20 @@ export default class wavesexchange extends Exchange {
79
106
  'fetchPositionsHistory': false,
80
107
  'fetchPositionsRisk': false,
81
108
  'fetchPremiumIndexOHLCV': false,
109
+ 'fetchSettlementHistory': false,
82
110
  'fetchTicker': true,
83
111
  'fetchTickers': true,
84
112
  'fetchTrades': true,
85
113
  'fetchTransfer': false,
86
114
  'fetchTransfers': false,
115
+ 'fetchUnderlyingAssets': false,
116
+ 'fetchVolatilityHistory': false,
87
117
  'reduceMargin': false,
118
+ 'repayCrossMargin': false,
119
+ 'repayIsolatedMargin': false,
88
120
  'sandbox': true,
89
121
  'setLeverage': false,
122
+ 'setMargin': false,
90
123
  'setMarginMode': false,
91
124
  'setPositionMode': false,
92
125
  'signIn': true,
package/js/src/zonda.js CHANGED
@@ -30,6 +30,9 @@ export default class zonda extends Exchange {
30
30
  'future': false,
31
31
  'option': false,
32
32
  'addMargin': false,
33
+ 'borrowCrossMargin': false,
34
+ 'borrowIsolatedMargin': false,
35
+ 'borrowMargin': false,
33
36
  'cancelAllOrders': false,
34
37
  'cancelOrder': true,
35
38
  'cancelOrders': false,
@@ -38,6 +41,7 @@ export default class zonda extends Exchange {
38
41
  'createDepositAddress': false,
39
42
  'createOrder': true,
40
43
  'createReduceOnlyOrder': false,
44
+ 'fetchAllGreeks': false,
41
45
  'fetchBalance': true,
42
46
  'fetchBorrowInterest': false,
43
47
  'fetchBorrowRate': false,
@@ -68,12 +72,15 @@ export default class zonda extends Exchange {
68
72
  'fetchLeverages': false,
69
73
  'fetchLeverageTiers': false,
70
74
  'fetchLiquidations': false,
75
+ 'fetchLongShortRatio': false,
76
+ 'fetchLongShortRatioHistory': false,
71
77
  'fetchMarginAdjustmentHistory': false,
72
78
  'fetchMarginMode': false,
73
79
  'fetchMarginModes': false,
74
80
  'fetchMarketLeverageTiers': false,
75
81
  'fetchMarkets': true,
76
82
  'fetchMarkOHLCV': false,
83
+ 'fetchMarkPrice': false,
77
84
  'fetchMarkPrices': false,
78
85
  'fetchMyLiquidations': false,
79
86
  'fetchMySettlementHistory': false,
@@ -81,6 +88,7 @@ export default class zonda extends Exchange {
81
88
  'fetchOHLCV': true,
82
89
  'fetchOpenInterest': false,
83
90
  'fetchOpenInterestHistory': false,
91
+ 'fetchOpenInterests': false,
84
92
  'fetchOpenOrder': false,
85
93
  'fetchOpenOrders': true,
86
94
  'fetchOption': false,
@@ -88,8 +96,11 @@ export default class zonda extends Exchange {
88
96
  'fetchOrderBook': true,
89
97
  'fetchOrderBooks': false,
90
98
  'fetchPosition': false,
99
+ 'fetchPositionHistory': false,
91
100
  'fetchPositionMode': false,
92
101
  'fetchPositions': false,
102
+ 'fetchPositionsForSymbol': false,
103
+ 'fetchPositionsHistory': false,
93
104
  'fetchPositionsRisk': false,
94
105
  'fetchPremiumIndexOHLCV': false,
95
106
  'fetchSettlementHistory': false,
@@ -110,6 +121,7 @@ export default class zonda extends Exchange {
110
121
  'reduceMargin': false,
111
122
  'repayCrossMargin': false,
112
123
  'repayIsolatedMargin': false,
124
+ 'repayMargin': false,
113
125
  'setLeverage': false,
114
126
  'setMargin': false,
115
127
  'setMarginMode': false,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.5.0",
3
+ "version": "4.5.2",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.min.js",
6
6
  "type": "module",
@@ -31,6 +31,7 @@
31
31
  "transpileCS": "tsx build/csharpTranspiler.ts --multi",
32
32
  "transpileCSWs": "tsx build/csharpTranspiler.ts --ws",
33
33
  "buildCS": "dotnet build cs/ccxt.sln",
34
+ "buildCSTests": "dotnet build cs/tests/tests.csproj",
34
35
  "buildGO": "go build -C go ./v4",
35
36
  "transpileGO": "tsx build/goTranspiler.ts",
36
37
  "buildCSRelease": "dotnet build cs --configuration Release",
@@ -1,28 +0,0 @@
1
- import { implicitReturnType } from '../base/types.js';
2
- import { Exchange as _Exchange } from '../base/Exchange.js';
3
- interface Exchange {
4
- _restGetMarket(params?: {}): Promise<implicitReturnType>;
5
- _restGetMarketCurrencyPair(params?: {}): Promise<implicitReturnType>;
6
- _restGetCryptoTokenInfo(params?: {}): Promise<implicitReturnType>;
7
- publicGetMarketCurrencyPairGetDepth(params?: {}): Promise<implicitReturnType>;
8
- publicGetMarketCurrencyPairTicker(params?: {}): Promise<implicitReturnType>;
9
- publicGetMarketCurrencyPairGetTrades(params?: {}): Promise<implicitReturnType>;
10
- publicGetMarketCurrencyPairGetGraph(params?: {}): Promise<implicitReturnType>;
11
- publicGetCMCSummary(params?: {}): Promise<implicitReturnType>;
12
- publicGetCMCCurrencyPairTicker(params?: {}): Promise<implicitReturnType>;
13
- privateGetUserWallet(params?: {}): Promise<implicitReturnType>;
14
- privateGetMarketCurrencyPairOrder(params?: {}): Promise<implicitReturnType>;
15
- privateGetMarketOrderOrderUuid(params?: {}): Promise<implicitReturnType>;
16
- privateGetMarketCurrencyPairTrade(params?: {}): Promise<implicitReturnType>;
17
- privateGetMarketTradeFeeQuery(params?: {}): Promise<implicitReturnType>;
18
- privateGetUnitCurrency(params?: {}): Promise<implicitReturnType>;
19
- privateGetCryptoTokenCurrency(params?: {}): Promise<implicitReturnType>;
20
- privateGetCryptoTokenCurrencyChains(params?: {}): Promise<implicitReturnType>;
21
- privatePostMarketCurrencyPairOrder(params?: {}): Promise<implicitReturnType>;
22
- privatePostCryptoAddressFetch(params?: {}): Promise<implicitReturnType>;
23
- privatePostCryptoDisbursementWithdraw(params?: {}): Promise<implicitReturnType>;
24
- privateDeleteMarketOrderOrderUuid(params?: {}): Promise<implicitReturnType>;
25
- }
26
- declare abstract class Exchange extends _Exchange {
27
- }
28
- export default Exchange;