ccxt 4.2.86 → 4.2.88

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 (103) hide show
  1. package/CHANGELOG.md +87 -0
  2. package/README.md +4 -5
  3. package/dist/ccxt.browser.js +748 -169
  4. package/dist/ccxt.browser.min.js +3 -3
  5. package/dist/cjs/ccxt.js +6 -1
  6. package/dist/cjs/src/ascendex.js +11 -1
  7. package/dist/cjs/src/base/Exchange.js +26 -2
  8. package/dist/cjs/src/binance.js +24 -7
  9. package/dist/cjs/src/bingx.js +37 -1
  10. package/dist/cjs/src/bitfinex.js +3 -0
  11. package/dist/cjs/src/bitfinex2.js +16 -1
  12. package/dist/cjs/src/bitflyer.js +19 -0
  13. package/dist/cjs/src/bitget.js +32 -17
  14. package/dist/cjs/src/bitopro.js +3 -0
  15. package/dist/cjs/src/bitrue.js +13 -7
  16. package/dist/cjs/src/bitvavo.js +3 -0
  17. package/dist/cjs/src/btcmarkets.js +1 -1
  18. package/dist/cjs/src/btcturk.js +2 -1
  19. package/dist/cjs/src/coinex.js +182 -54
  20. package/dist/cjs/src/cryptocom.js +1 -1
  21. package/dist/cjs/src/currencycom.js +1 -1
  22. package/dist/cjs/src/delta.js +3 -1
  23. package/dist/cjs/src/digifinex.js +4 -2
  24. package/dist/cjs/src/exmo.js +11 -12
  25. package/dist/cjs/src/gate.js +13 -10
  26. package/dist/cjs/src/hitbtc.js +26 -2
  27. package/dist/cjs/src/htx.js +2 -2
  28. package/dist/cjs/src/huobijp.js +1 -1
  29. package/dist/cjs/src/hyperliquid.js +249 -12
  30. package/dist/cjs/src/idex.js +1 -1
  31. package/dist/cjs/src/krakenfutures.js +4 -7
  32. package/dist/cjs/src/kucoin.js +7 -4
  33. package/dist/cjs/src/lbank.js +3 -0
  34. package/dist/cjs/src/mexc.js +1 -1
  35. package/dist/cjs/src/oceanex.js +1 -1
  36. package/dist/cjs/src/okx.js +24 -10
  37. package/dist/cjs/src/phemex.js +3 -1
  38. package/dist/cjs/src/pro/kucoin.js +11 -6
  39. package/dist/cjs/src/wazirx.js +1 -1
  40. package/dist/cjs/src/zonda.js +3 -0
  41. package/examples/js/benchmark.js +104 -0
  42. package/examples/js/cli.js +0 -2
  43. package/examples/ts/benchmark.ts +134 -0
  44. package/examples/ts/cli.ts +0 -2
  45. package/js/ccxt.d.ts +3 -3
  46. package/js/ccxt.js +3 -3
  47. package/js/src/ascendex.d.ts +5 -12
  48. package/js/src/ascendex.js +11 -1
  49. package/js/src/base/Exchange.d.ts +5 -4
  50. package/js/src/base/Exchange.js +26 -2
  51. package/js/src/base/types.d.ts +12 -1
  52. package/js/src/binance.d.ts +5 -12
  53. package/js/src/binance.js +24 -7
  54. package/js/src/bingx.d.ts +5 -2
  55. package/js/src/bingx.js +37 -1
  56. package/js/src/bitfinex.js +3 -0
  57. package/js/src/bitfinex2.d.ts +3 -17
  58. package/js/src/bitfinex2.js +16 -1
  59. package/js/src/bitflyer.d.ts +1 -0
  60. package/js/src/bitflyer.js +20 -1
  61. package/js/src/bitget.d.ts +5 -12
  62. package/js/src/bitget.js +32 -17
  63. package/js/src/bitopro.js +3 -0
  64. package/js/src/bitrue.d.ts +3 -17
  65. package/js/src/bitrue.js +13 -7
  66. package/js/src/bitvavo.js +3 -0
  67. package/js/src/btcmarkets.js +1 -1
  68. package/js/src/btcturk.js +2 -1
  69. package/js/src/coinex.d.ts +4 -11
  70. package/js/src/coinex.js +182 -54
  71. package/js/src/cryptocom.js +1 -1
  72. package/js/src/currencycom.js +1 -1
  73. package/js/src/delta.d.ts +5 -37
  74. package/js/src/delta.js +3 -1
  75. package/js/src/digifinex.d.ts +5 -13
  76. package/js/src/digifinex.js +4 -2
  77. package/js/src/exmo.d.ts +5 -37
  78. package/js/src/exmo.js +11 -12
  79. package/js/src/gate.d.ts +5 -33
  80. package/js/src/gate.js +13 -10
  81. package/js/src/hitbtc.d.ts +5 -12
  82. package/js/src/hitbtc.js +26 -2
  83. package/js/src/htx.js +2 -2
  84. package/js/src/huobijp.js +1 -1
  85. package/js/src/hyperliquid.d.ts +7 -4
  86. package/js/src/hyperliquid.js +249 -12
  87. package/js/src/idex.js +1 -1
  88. package/js/src/krakenfutures.js +4 -7
  89. package/js/src/kucoin.js +7 -4
  90. package/js/src/kucoinfutures.d.ts +2 -2
  91. package/js/src/lbank.js +3 -0
  92. package/js/src/mexc.d.ts +3 -3
  93. package/js/src/mexc.js +1 -1
  94. package/js/src/oceanex.js +1 -1
  95. package/js/src/okx.d.ts +5 -33
  96. package/js/src/okx.js +24 -10
  97. package/js/src/phemex.d.ts +3 -11
  98. package/js/src/phemex.js +3 -1
  99. package/js/src/pro/kucoin.js +11 -6
  100. package/js/src/wazirx.js +1 -1
  101. package/js/src/zonda.js +3 -0
  102. package/package.json +3 -2
  103. package/skip-tests.json +3 -3
package/js/src/kucoin.js CHANGED
@@ -3540,9 +3540,9 @@ export default class kucoin extends Exchange {
3540
3540
  * @method
3541
3541
  * @name kucoin#fetchBalance
3542
3542
  * @description query for balance and get the amount of funds available for trading or funds locked in orders
3543
- * @see https://docs.kucoin.com/#list-accounts
3544
3543
  * @see https://www.kucoin.com/docs/rest/account/basic-info/get-account-list-spot-margin-trade_hf
3545
- * @see https://docs.kucoin.com/#query-isolated-margin-account-info
3544
+ * @see https://www.kucoin.com/docs/rest/funding/funding-overview/get-account-detail-margin
3545
+ * @see https://www.kucoin.com/docs/rest/funding/funding-overview/get-account-detail-isolated-margin
3546
3546
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3547
3547
  * @param {object} [params.marginMode] 'cross' or 'isolated', margin type for fetching margin balance
3548
3548
  * @param {object} [params.type] extra parameters specific to the exchange API endpoint
@@ -3569,7 +3569,7 @@ export default class kucoin extends Exchange {
3569
3569
  let response = undefined;
3570
3570
  const request = {};
3571
3571
  const isolated = (marginMode === 'isolated') || (type === 'isolated');
3572
- const cross = (marginMode === 'cross') || (type === 'cross');
3572
+ const cross = (marginMode === 'cross') || (type === 'margin');
3573
3573
  if (isolated) {
3574
3574
  if (currency !== undefined) {
3575
3575
  request['balanceCurrency'] = currency['id'];
@@ -3639,13 +3639,14 @@ export default class kucoin extends Exchange {
3639
3639
  // }
3640
3640
  // }
3641
3641
  //
3642
- const data = this.safeList(response, 'data', []);
3642
+ let data = undefined;
3643
3643
  const result = {
3644
3644
  'info': response,
3645
3645
  'timestamp': undefined,
3646
3646
  'datetime': undefined,
3647
3647
  };
3648
3648
  if (isolated) {
3649
+ data = this.safeDict(response, 'data', {});
3649
3650
  const assets = this.safeValue(data, 'assets', data);
3650
3651
  for (let i = 0; i < assets.length; i++) {
3651
3652
  const entry = assets[i];
@@ -3662,6 +3663,7 @@ export default class kucoin extends Exchange {
3662
3663
  }
3663
3664
  }
3664
3665
  else if (cross) {
3666
+ data = this.safeDict(response, 'data', {});
3665
3667
  const accounts = this.safeList(data, 'accounts', []);
3666
3668
  for (let i = 0; i < accounts.length; i++) {
3667
3669
  const balance = accounts[i];
@@ -3671,6 +3673,7 @@ export default class kucoin extends Exchange {
3671
3673
  }
3672
3674
  }
3673
3675
  else {
3676
+ data = this.safeList(response, 'data', []);
3674
3677
  for (let i = 0; i < data.length; i++) {
3675
3678
  const balance = data[i];
3676
3679
  const balanceType = this.safeString(balance, 'type');
@@ -1,5 +1,5 @@
1
1
  import kucoin from './abstract/kucoinfutures.js';
2
- import type { TransferEntry, Int, OrderSide, OrderType, OHLCV, Order, Trade, OrderRequest, FundingHistory, Balances, Str, Ticker, Tickers, OrderBook, Transaction, Strings, Market, Currency, Num } from './base/types.js';
2
+ import type { TransferEntry, Int, OrderSide, OrderType, OHLCV, Order, Trade, OrderRequest, FundingHistory, Balances, Str, Ticker, Tickers, OrderBook, Transaction, Strings, Market, Currency, Num, MarginModification } from './base/types.js';
3
3
  /**
4
4
  * @class kucoinfutures
5
5
  * @augments Exchange
@@ -37,7 +37,7 @@ export default class kucoinfutures extends kucoin {
37
37
  createContractOrderRequest(symbol: string, type: OrderType, side: OrderSide, amount: number, price?: Num, params?: {}): any;
38
38
  cancelOrder(id: string, symbol?: Str, params?: {}): Promise<any>;
39
39
  cancelAllOrders(symbol?: Str, params?: {}): Promise<any>;
40
- addMargin(symbol: string, amount: any, params?: {}): Promise<any>;
40
+ addMargin(symbol: string, amount: any, params?: {}): Promise<MarginModification>;
41
41
  parseMarginModification(info: any, market?: Market): {
42
42
  info: any;
43
43
  direction: any;
package/js/src/lbank.js CHANGED
@@ -1003,6 +1003,9 @@ export default class lbank extends Exchange {
1003
1003
  if (limit === undefined) {
1004
1004
  limit = 100;
1005
1005
  }
1006
+ else {
1007
+ limit = Math.min(limit, 2000);
1008
+ }
1006
1009
  if (since === undefined) {
1007
1010
  const duration = this.parseTimeframe(timeframe);
1008
1011
  since = this.milliseconds() - duration * 1000 * limit;
package/js/src/mexc.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/mexc.js';
2
- import type { TransferEntry, IndexType, Int, OrderSide, Balances, OrderType, OHLCV, FundingRateHistory, Position, OrderBook, OrderRequest, FundingHistory, Order, Str, Trade, Transaction, Ticker, Tickers, Strings, Market, Currency, Leverage, Num, Account } from './base/types.js';
2
+ import type { TransferEntry, IndexType, Int, OrderSide, Balances, OrderType, OHLCV, FundingRateHistory, Position, OrderBook, OrderRequest, FundingHistory, Order, Str, Trade, Transaction, Ticker, Tickers, Strings, Market, Currency, Leverage, Num, Account, MarginModification } from './base/types.js';
3
3
  /**
4
4
  * @class mexc
5
5
  * @augments Exchange
@@ -59,8 +59,8 @@ export default class mexc extends Exchange {
59
59
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
60
60
  fetchOrderTrades(id: string, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
61
61
  modifyMarginHelper(symbol: string, amount: any, addOrReduce: any, params?: {}): Promise<any>;
62
- reduceMargin(symbol: string, amount: any, params?: {}): Promise<any>;
63
- addMargin(symbol: string, amount: any, params?: {}): Promise<any>;
62
+ reduceMargin(symbol: string, amount: any, params?: {}): Promise<MarginModification>;
63
+ addMargin(symbol: string, amount: any, params?: {}): Promise<MarginModification>;
64
64
  setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
65
65
  fetchFundingHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingHistory[]>;
66
66
  parseFundingRate(contract: any, market?: Market): {
package/js/src/mexc.js CHANGED
@@ -4515,7 +4515,7 @@ export default class mexc extends Exchange {
4515
4515
  }
4516
4516
  }
4517
4517
  if (result === undefined) {
4518
- throw new InvalidAddress(this.id + ' fetchDepositAddress() cannot find a deposit address for ' + code + ', and network' + network + 'consider creating one using the MEXC platform');
4518
+ throw new InvalidAddress(this.id + ' fetchDepositAddress() cannot find a deposit address for ' + code + ', and network' + network + 'consider creating one using .createDepositAddress() method or in MEXC website');
4519
4519
  }
4520
4520
  return result;
4521
4521
  }
package/js/src/oceanex.js CHANGED
@@ -797,7 +797,7 @@ export default class oceanex extends Exchange {
797
797
  request['timestamp'] = since;
798
798
  }
799
799
  if (limit !== undefined) {
800
- request['limit'] = limit;
800
+ request['limit'] = Math.min(limit, 10000);
801
801
  }
802
802
  const response = await this.publicPostK(this.extend(request, params));
803
803
  const ohlcvs = this.safeList(response, 'data', []);
package/js/src/okx.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/okx.js';
2
- import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Greeks, Strings, MarketInterface, Currency, Leverage, Num, Account, OptionChain, Option } from './base/types.js';
2
+ import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Greeks, Strings, MarketInterface, Currency, Leverage, Num, Account, OptionChain, Option, MarginModification } from './base/types.js';
3
3
  /**
4
4
  * @class okx
5
5
  * @augments Exchange
@@ -202,38 +202,10 @@ export default class okx extends Exchange {
202
202
  parseBorrowRateHistory(response: any, code: any, since: any, limit: any): any;
203
203
  fetchBorrowRateHistories(codes?: any, since?: Int, limit?: Int, params?: {}): Promise<{}>;
204
204
  fetchBorrowRateHistory(code: string, since?: Int, limit?: Int, params?: {}): Promise<any>;
205
- modifyMarginHelper(symbol: string, amount: any, type: any, params?: {}): Promise<{
206
- info: any;
207
- type: string;
208
- amount: number;
209
- code: string;
210
- symbol: string;
211
- status: string;
212
- }>;
213
- parseMarginModification(data: any, market?: Market): {
214
- info: any;
215
- type: string;
216
- amount: number;
217
- code: string;
218
- symbol: string;
219
- status: string;
220
- };
221
- reduceMargin(symbol: string, amount: any, params?: {}): Promise<{
222
- info: any;
223
- type: string;
224
- amount: number;
225
- code: string;
226
- symbol: string;
227
- status: string;
228
- }>;
229
- addMargin(symbol: string, amount: any, params?: {}): Promise<{
230
- info: any;
231
- type: string;
232
- amount: number;
233
- code: string;
234
- symbol: string;
235
- status: string;
236
- }>;
205
+ modifyMarginHelper(symbol: string, amount: any, type: any, params?: {}): Promise<MarginModification>;
206
+ parseMarginModification(data: any, market?: Market): MarginModification;
207
+ reduceMargin(symbol: string, amount: any, params?: {}): Promise<MarginModification>;
208
+ addMargin(symbol: string, amount: any, params?: {}): Promise<MarginModification>;
237
209
  fetchMarketLeverageTiers(symbol: string, params?: {}): Promise<any[]>;
238
210
  parseMarketLeverageTiers(info: any, market?: Market): any[];
239
211
  fetchBorrowInterest(code?: Str, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<any>;
package/js/src/okx.js CHANGED
@@ -6463,26 +6463,40 @@ export default class okx extends Exchange {
6463
6463
  // "msg": ""
6464
6464
  // }
6465
6465
  //
6466
- return this.parseMarginModification(response, market);
6466
+ const data = this.safeList(response, 'data', []);
6467
+ const errorCode = this.safeString(response, 'code');
6468
+ const item = this.safeDict(data, 0, {});
6469
+ return this.extend(this.parseMarginModification(item, market), {
6470
+ 'status': (errorCode === '0') ? 'ok' : 'failed',
6471
+ });
6467
6472
  }
6468
6473
  parseMarginModification(data, market = undefined) {
6469
- const innerData = this.safeValue(data, 'data', []);
6470
- const entry = this.safeValue(innerData, 0, {});
6471
- const errorCode = this.safeString(data, 'code');
6472
- const status = (errorCode === '0') ? 'ok' : 'failed';
6473
- const amountRaw = this.safeNumber(entry, 'amt');
6474
- const typeRaw = this.safeString(entry, 'type');
6474
+ //
6475
+ // addMargin/reduceMargin
6476
+ //
6477
+ // {
6478
+ // "amt": "0.01",
6479
+ // "instId": "ETH-USD-SWAP",
6480
+ // "posSide": "net",
6481
+ // "type": "reduce"
6482
+ // }
6483
+ //
6484
+ const amountRaw = this.safeNumber(data, 'amt');
6485
+ const typeRaw = this.safeString(data, 'type');
6475
6486
  const type = (typeRaw === 'reduce') ? 'reduce' : 'add';
6476
- const marketId = this.safeString(entry, 'instId');
6487
+ const marketId = this.safeString(data, 'instId');
6477
6488
  const responseMarket = this.safeMarket(marketId, market);
6478
6489
  const code = responseMarket['inverse'] ? responseMarket['base'] : responseMarket['quote'];
6479
6490
  return {
6480
6491
  'info': data,
6492
+ 'symbol': responseMarket['symbol'],
6481
6493
  'type': type,
6482
6494
  'amount': amountRaw,
6495
+ 'total': undefined,
6483
6496
  'code': code,
6484
- 'symbol': responseMarket['symbol'],
6485
- 'status': status,
6497
+ 'status': undefined,
6498
+ 'timestamp': undefined,
6499
+ 'datetime': undefined,
6486
6500
  };
6487
6501
  }
6488
6502
  async reduceMargin(symbol, amount, params = {}) {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/phemex.js';
2
- import type { TransferEntry, Balances, Currency, FundingHistory, FundingRateHistory, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction } from './base/types.js';
2
+ import type { TransferEntry, Balances, Currency, FundingHistory, FundingRateHistory, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, MarginModification } from './base/types.js';
3
3
  /**
4
4
  * @class phemex
5
5
  * @augments Exchange
@@ -99,17 +99,9 @@ export default class phemex extends Exchange {
99
99
  previousFundingTimestamp: any;
100
100
  previousFundingDatetime: any;
101
101
  };
102
- setMargin(symbol: string, amount: number, params?: {}): Promise<any>;
102
+ setMargin(symbol: string, amount: number, params?: {}): Promise<MarginModification>;
103
103
  parseMarginStatus(status: any): string;
104
- parseMarginModification(data: any, market?: Market): {
105
- info: any;
106
- type: string;
107
- amount: any;
108
- total: any;
109
- code: string;
110
- symbol: string;
111
- status: string;
112
- };
104
+ parseMarginModification(data: any, market?: Market): MarginModification;
113
105
  setMarginMode(marginMode: string, symbol?: Str, params?: {}): Promise<any>;
114
106
  setPositionMode(hedged: boolean, symbol?: Str, params?: {}): Promise<any>;
115
107
  fetchLeverageTiers(symbols?: Strings, params?: {}): Promise<{}>;
package/js/src/phemex.js CHANGED
@@ -4063,12 +4063,14 @@ export default class phemex extends Exchange {
4063
4063
  const codeCurrency = inverse ? 'base' : 'quote';
4064
4064
  return {
4065
4065
  'info': data,
4066
+ 'symbol': this.safeSymbol(undefined, market),
4066
4067
  'type': 'set',
4067
4068
  'amount': undefined,
4068
4069
  'total': undefined,
4069
4070
  'code': market[codeCurrency],
4070
- 'symbol': this.safeSymbol(undefined, market),
4071
4071
  'status': this.parseMarginStatus(this.safeString(data, 'code')),
4072
+ 'timestamp': undefined,
4073
+ 'datetime': undefined,
4072
4074
  };
4073
4075
  }
4074
4076
  async setMarginMode(marginMode, symbol = undefined, params = {}) {
@@ -573,17 +573,22 @@ export default class kucoin extends kucoinRest {
573
573
  const marketId = this.safeString(data, 'symbol', topicSymbol);
574
574
  const symbol = this.safeSymbol(marketId, undefined, '-');
575
575
  const messageHash = 'orderbook:' + symbol;
576
- let orderbook = this.safeDict(this.orderbooks, symbol);
576
+ // let orderbook = this.safeDict (this.orderbooks, symbol);
577
577
  if (subject === 'level2') {
578
- if (orderbook === undefined) {
579
- orderbook = this.orderBook();
578
+ if (!(symbol in this.orderbooks)) {
579
+ this.orderbooks[symbol] = this.orderBook();
580
580
  }
581
581
  else {
582
+ const orderbook = this.orderbooks[symbol];
582
583
  orderbook.reset();
583
584
  }
584
- orderbook['symbol'] = symbol;
585
+ this.orderbooks[symbol]['symbol'] = symbol;
585
586
  }
586
587
  else {
588
+ if (!(symbol in this.orderbooks)) {
589
+ this.orderbooks[symbol] = this.orderBook();
590
+ }
591
+ const orderbook = this.orderbooks[symbol];
587
592
  const nonce = this.safeInteger(orderbook, 'nonce');
588
593
  const deltaEnd = this.safeInteger2(data, 'sequenceEnd', 'timestamp');
589
594
  if (nonce === undefined) {
@@ -609,8 +614,8 @@ export default class kucoin extends kucoinRest {
609
614
  return;
610
615
  }
611
616
  }
612
- this.handleDelta(orderbook, data);
613
- client.resolve(orderbook, messageHash);
617
+ this.handleDelta(this.orderbooks[symbol], data);
618
+ client.resolve(this.orderbooks[symbol], messageHash);
614
619
  }
615
620
  getCacheIndex(orderbook, cache) {
616
621
  const firstDelta = this.safeValue(cache, 0);
package/js/src/wazirx.js CHANGED
@@ -322,7 +322,7 @@ export default class wazirx extends Exchange {
322
322
  'interval': this.safeString(this.timeframes, timeframe, timeframe),
323
323
  };
324
324
  if (limit !== undefined) {
325
- request['limit'] = limit;
325
+ request['limit'] = Math.min(limit, 2000);
326
326
  }
327
327
  const until = this.safeInteger(params, 'until');
328
328
  params = this.omit(params, ['until']);
package/js/src/zonda.js CHANGED
@@ -1204,6 +1204,9 @@ export default class zonda extends Exchange {
1204
1204
  if (limit === undefined) {
1205
1205
  limit = 100;
1206
1206
  }
1207
+ else {
1208
+ limit = Math.min(limit, 11000); // supports up to 11k candles diapason
1209
+ }
1207
1210
  const duration = this.parseTimeframe(timeframe);
1208
1211
  const timerange = limit * duration * 1000;
1209
1212
  if (since === undefined) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.2.86",
3
+ "version": "4.2.88",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.js",
6
6
  "type": "module",
@@ -136,7 +136,8 @@
136
136
  "id-tests-py": "python python/ccxt/test/test_async.py --idTests",
137
137
  "id-tests-php": "php php/test/test_async.php --idTests",
138
138
  "id-tests-cs": "dotnet run --project cs/tests/tests.csproj --idTests",
139
- "id-tests": "npm run id-tests-js && npm run id-tests-py && npm run id-tests-php && npm run id-tests-cs"
139
+ "id-tests": "npm run id-tests-js && npm run id-tests-py && npm run id-tests-php && npm run id-tests-cs",
140
+ "benchmark": "node --loader ts-node/esm examples/ts/benchmark.ts"
140
141
  },
141
142
  "types": "./js/ccxt.d.ts",
142
143
  "devDependencies": {
package/skip-tests.json CHANGED
@@ -290,7 +290,8 @@
290
290
  "high": "same",
291
291
  "previousClose": "same",
292
292
  "vwap": "same",
293
- "baseVolume":"temp"
293
+ "baseVolume":"temp",
294
+ "spread": "https://app.travis-ci.com/github/ccxt/ccxt/builds/269724413#L3725"
294
295
  },
295
296
  "fetchPositions": {
296
297
  "stopLossPrice": "undefined",
@@ -349,8 +350,7 @@
349
350
  }
350
351
  },
351
352
  "onetrading": {
352
- "skip": true,
353
- "until": "2024-03-28",
353
+ "skip": "Api changed, as mentioned https://github.com/ccxt/ccxt/pull/21991",
354
354
  "skipWs": true,
355
355
  "skipMethods": {
356
356
  "fetchCurrencies": {