ccxt 4.2.82 → 4.2.84

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 (133) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.js +823 -220
  3. package/dist/ccxt.browser.min.js +2 -2
  4. package/dist/cjs/ccxt.js +3 -1
  5. package/dist/cjs/src/bitget.js +11 -4
  6. package/dist/cjs/src/bithumb.js +1 -0
  7. package/dist/cjs/src/bitstamp.js +42 -15
  8. package/dist/cjs/src/bybit.js +3 -3
  9. package/dist/cjs/src/coinex.js +1 -2
  10. package/dist/cjs/src/deribit.js +19 -1
  11. package/dist/cjs/src/gemini.js +2 -1
  12. package/dist/cjs/src/htx.js +5 -27
  13. package/dist/cjs/src/hyperliquid.js +5 -4
  14. package/dist/cjs/src/kucoin.js +10 -1
  15. package/dist/cjs/src/kucoinfutures.js +147 -8
  16. package/dist/cjs/src/pro/bithumb.js +388 -0
  17. package/dist/cjs/src/pro/bitmart.js +1 -1
  18. package/dist/cjs/src/pro/bybit.js +1 -1
  19. package/dist/cjs/src/pro/cex.js +18 -5
  20. package/dist/cjs/src/pro/okx.js +2 -1
  21. package/dist/cjs/src/pro/p2b.js +14 -4
  22. package/dist/cjs/src/pro/woo.js +1 -1
  23. package/js/ccxt.d.ts +4 -1
  24. package/js/ccxt.js +3 -1
  25. package/js/src/abstract/bitstamp.d.ts +1 -1
  26. package/js/src/ace.d.ts +1 -1
  27. package/js/src/alpaca.d.ts +1 -1
  28. package/js/src/ascendex.d.ts +1 -1
  29. package/js/src/bigone.d.ts +1 -1
  30. package/js/src/binance.d.ts +1 -1
  31. package/js/src/bingx.d.ts +1 -1
  32. package/js/src/bitbank.d.ts +1 -1
  33. package/js/src/bitbns.d.ts +1 -1
  34. package/js/src/bitfinex.d.ts +1 -1
  35. package/js/src/bitfinex2.d.ts +1 -1
  36. package/js/src/bitflyer.d.ts +1 -1
  37. package/js/src/bitget.d.ts +1 -1
  38. package/js/src/bitget.js +11 -4
  39. package/js/src/bithumb.d.ts +1 -1
  40. package/js/src/bithumb.js +1 -0
  41. package/js/src/bitmart.d.ts +1 -1
  42. package/js/src/bitmex.d.ts +1 -1
  43. package/js/src/bitopro.d.ts +1 -1
  44. package/js/src/bitrue.d.ts +1 -1
  45. package/js/src/bitso.d.ts +1 -1
  46. package/js/src/bitstamp.d.ts +1 -1
  47. package/js/src/bitstamp.js +42 -15
  48. package/js/src/bitteam.d.ts +1 -1
  49. package/js/src/bitvavo.d.ts +1 -1
  50. package/js/src/blockchaincom.d.ts +1 -1
  51. package/js/src/blofin.d.ts +1 -1
  52. package/js/src/btcalpha.d.ts +1 -1
  53. package/js/src/btcmarkets.d.ts +1 -1
  54. package/js/src/btcturk.d.ts +1 -1
  55. package/js/src/bybit.d.ts +1 -1
  56. package/js/src/bybit.js +3 -3
  57. package/js/src/cex.d.ts +1 -1
  58. package/js/src/coinbase.d.ts +1 -1
  59. package/js/src/coinbaseinternational.d.ts +1 -1
  60. package/js/src/coinbasepro.d.ts +1 -1
  61. package/js/src/coinex.d.ts +1 -1
  62. package/js/src/coinex.js +1 -2
  63. package/js/src/coinlist.d.ts +1 -1
  64. package/js/src/coinmate.d.ts +1 -1
  65. package/js/src/coinmetro.d.ts +1 -1
  66. package/js/src/coinone.d.ts +1 -1
  67. package/js/src/coinsph.d.ts +1 -1
  68. package/js/src/cryptocom.d.ts +1 -1
  69. package/js/src/currencycom.d.ts +1 -1
  70. package/js/src/delta.d.ts +1 -1
  71. package/js/src/deribit.d.ts +1 -1
  72. package/js/src/deribit.js +19 -1
  73. package/js/src/digifinex.d.ts +1 -1
  74. package/js/src/exmo.d.ts +1 -1
  75. package/js/src/gate.d.ts +1 -1
  76. package/js/src/gemini.d.ts +1 -1
  77. package/js/src/gemini.js +2 -1
  78. package/js/src/hitbtc.d.ts +1 -1
  79. package/js/src/hollaex.d.ts +1 -1
  80. package/js/src/htx.d.ts +1 -1
  81. package/js/src/htx.js +5 -27
  82. package/js/src/huobijp.d.ts +1 -1
  83. package/js/src/hyperliquid.d.ts +1 -1
  84. package/js/src/hyperliquid.js +5 -4
  85. package/js/src/idex.d.ts +1 -1
  86. package/js/src/independentreserve.d.ts +1 -1
  87. package/js/src/indodax.d.ts +1 -1
  88. package/js/src/kraken.d.ts +1 -1
  89. package/js/src/krakenfutures.d.ts +1 -1
  90. package/js/src/kucoin.d.ts +2 -1
  91. package/js/src/kucoin.js +11 -2
  92. package/js/src/kucoinfutures.d.ts +3 -2
  93. package/js/src/kucoinfutures.js +147 -8
  94. package/js/src/kuna.d.ts +1 -1
  95. package/js/src/latoken.d.ts +1 -1
  96. package/js/src/lbank.d.ts +1 -1
  97. package/js/src/luno.d.ts +1 -1
  98. package/js/src/lykke.d.ts +1 -1
  99. package/js/src/mercado.d.ts +1 -1
  100. package/js/src/mexc.d.ts +1 -1
  101. package/js/src/ndax.d.ts +1 -1
  102. package/js/src/novadax.d.ts +1 -1
  103. package/js/src/oceanex.d.ts +1 -1
  104. package/js/src/okcoin.d.ts +1 -1
  105. package/js/src/okx.d.ts +1 -1
  106. package/js/src/onetrading.d.ts +1 -1
  107. package/js/src/p2b.d.ts +1 -1
  108. package/js/src/phemex.d.ts +1 -1
  109. package/js/src/poloniex.d.ts +1 -1
  110. package/js/src/poloniexfutures.d.ts +1 -1
  111. package/js/src/pro/bithumb.d.ts +19 -0
  112. package/js/src/pro/bithumb.js +389 -0
  113. package/js/src/pro/bitmart.js +1 -1
  114. package/js/src/pro/bybit.js +1 -1
  115. package/js/src/pro/cex.js +18 -5
  116. package/js/src/pro/okx.js +2 -1
  117. package/js/src/pro/p2b.d.ts +2 -0
  118. package/js/src/pro/p2b.js +14 -4
  119. package/js/src/pro/woo.js +1 -1
  120. package/js/src/probit.d.ts +1 -1
  121. package/js/src/timex.d.ts +1 -1
  122. package/js/src/tokocrypto.d.ts +1 -1
  123. package/js/src/tradeogre.d.ts +1 -1
  124. package/js/src/upbit.d.ts +1 -1
  125. package/js/src/wavesexchange.d.ts +1 -1
  126. package/js/src/wazirx.d.ts +1 -1
  127. package/js/src/whitebit.d.ts +1 -1
  128. package/js/src/woo.d.ts +1 -1
  129. package/js/src/yobit.d.ts +1 -1
  130. package/js/src/zaif.d.ts +1 -1
  131. package/js/src/zonda.d.ts +1 -1
  132. package/package.json +1 -1
  133. package/skip-tests.json +17 -4
@@ -18,7 +18,7 @@ export default class binance extends Exchange {
18
18
  nonce(): number;
19
19
  fetchTime(params?: {}): Promise<number>;
20
20
  fetchCurrencies(params?: {}): Promise<{}>;
21
- fetchMarkets(params?: {}): Promise<any[]>;
21
+ fetchMarkets(params?: {}): Promise<Market[]>;
22
22
  parseMarket(market: any): Market;
23
23
  parseBalanceHelper(entry: any): import("./base/types.js").BalanceAccount;
24
24
  parseBalanceCustom(response: any, type?: any, marginMode?: any, isPortfolioMargin?: boolean): Balances;
package/js/src/bingx.d.ts CHANGED
@@ -11,7 +11,7 @@ export default class bingx extends Exchange {
11
11
  fetchSpotMarkets(params: any): Promise<import("./base/types.js").MarketInterface[]>;
12
12
  fetchSwapMarkets(params: any): Promise<import("./base/types.js").MarketInterface[]>;
13
13
  parseMarket(market: any): Market;
14
- fetchMarkets(params?: {}): Promise<any>;
14
+ fetchMarkets(params?: {}): Promise<Market[]>;
15
15
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
16
16
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
17
17
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
@@ -6,7 +6,7 @@ import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, Ord
6
6
  */
7
7
  export default class bitbank extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  parseMarket(entry: any): Market;
11
11
  parseTicker(ticker: any, market?: Market): Ticker;
12
12
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -13,7 +13,7 @@ export default class bitbns extends Exchange {
13
13
  url: any;
14
14
  info: any;
15
15
  }>;
16
- fetchMarkets(params?: {}): Promise<any[]>;
16
+ fetchMarkets(params?: {}): Promise<Market[]>;
17
17
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
18
18
  parseTicker(ticker: any, market?: Market): Ticker;
19
19
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
@@ -21,7 +21,7 @@ export default class bitfinex extends Exchange {
21
21
  info: any;
22
22
  };
23
23
  fetchTradingFees(params?: {}): Promise<{}>;
24
- fetchMarkets(params?: {}): Promise<any[]>;
24
+ fetchMarkets(params?: {}): Promise<Market[]>;
25
25
  amountToPrecision(symbol: any, amount: any): any;
26
26
  priceToPrecision(symbol: any, price: any): any;
27
27
  fetchBalance(params?: {}): Promise<Balances>;
@@ -18,7 +18,7 @@ export default class bitfinex2 extends Exchange {
18
18
  url: any;
19
19
  info: any;
20
20
  }>;
21
- fetchMarkets(params?: {}): Promise<any[]>;
21
+ fetchMarkets(params?: {}): Promise<Market[]>;
22
22
  fetchCurrencies(params?: {}): Promise<{}>;
23
23
  safeNetwork(networkId: any): string;
24
24
  fetchBalance(params?: {}): Promise<Balances>;
@@ -8,7 +8,7 @@ export default class bitflyer extends Exchange {
8
8
  describe(): any;
9
9
  parseExpiryDate(expiry: any): number;
10
10
  safeMarket(marketId?: Str, market?: Market, delimiter?: Str, marketType?: Str): MarketInterface;
11
- fetchMarkets(params?: {}): Promise<any[]>;
11
+ fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  parseBalance(response: any): Balances;
13
13
  fetchBalance(params?: {}): Promise<Balances>;
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -10,7 +10,7 @@ export default class bitget extends Exchange {
10
10
  convertSymbolForSandbox(symbol: any): any;
11
11
  handleProductTypeAndParams(market?: any, params?: {}): {}[];
12
12
  fetchTime(params?: {}): Promise<number>;
13
- fetchMarkets(params?: {}): Promise<any>;
13
+ fetchMarkets(params?: {}): Promise<Market[]>;
14
14
  parseMarket(market: any): Market;
15
15
  fetchMarketsByType(type: any, params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
16
16
  fetchCurrencies(params?: {}): Promise<{}>;
package/js/src/bitget.js CHANGED
@@ -1296,6 +1296,7 @@ export default class bitget extends Exchange {
1296
1296
  'precisionMode': TICK_SIZE,
1297
1297
  'commonCurrencies': {
1298
1298
  'JADE': 'Jade Protocol',
1299
+ 'DEGEN': 'DegenReborn',
1299
1300
  },
1300
1301
  'options': {
1301
1302
  'timeframes': {
@@ -2770,6 +2771,7 @@ export default class bitget extends Exchange {
2770
2771
  * @see https://www.bitget.com/api-doc/contract/market/Get-All-Symbol-Ticker
2771
2772
  * @param {string[]|undefined} symbols unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
2772
2773
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2774
+ * @param {string} [params.subType] *contract only* 'linear', 'inverse'
2773
2775
  * @param {string} [params.productType] *contract only* 'USDT-FUTURES', 'USDC-FUTURES', 'COIN-FUTURES', 'SUSDT-FUTURES', 'SUSDC-FUTURES' or 'SCOIN-FUTURES'
2774
2776
  * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
2775
2777
  */
@@ -2786,16 +2788,21 @@ export default class bitget extends Exchange {
2786
2788
  market = this.market(symbol);
2787
2789
  }
2788
2790
  }
2791
+ let response = undefined;
2789
2792
  const request = {};
2790
2793
  let type = undefined;
2791
2794
  [type, params] = this.handleMarketTypeAndParams('fetchTickers', market, params);
2792
- let response = undefined;
2793
- if (type === 'spot') {
2795
+ // Calls like `.fetchTickers (undefined, {subType:'inverse'})` should be supported for this exchange, so
2796
+ // as "options.defaultSubType" is also set in exchange options, we should consider `params.subType`
2797
+ // with higher priority and only default to spot, if `subType` is not set in params
2798
+ const passedSubType = this.safeString(params, 'subType');
2799
+ let productType = undefined;
2800
+ [productType, params] = this.handleProductTypeAndParams(market, params);
2801
+ // only if passedSubType && productType is undefined, then use spot
2802
+ if (type === 'spot' && passedSubType === undefined) {
2794
2803
  response = await this.publicSpotGetV2SpotMarketTickers(this.extend(request, params));
2795
2804
  }
2796
2805
  else {
2797
- let productType = undefined;
2798
- [productType, params] = this.handleProductTypeAndParams(market, params);
2799
2806
  request['productType'] = productType;
2800
2807
  response = await this.publicMixGetV2MixMarketTickers(this.extend(request, params));
2801
2808
  }
@@ -8,7 +8,7 @@ export default class bithumb extends Exchange {
8
8
  describe(): any;
9
9
  safeMarket(marketId?: Str, market?: Market, delimiter?: Str, marketType?: Str): MarketInterface;
10
10
  amountToPrecision(symbol: any, amount: any): any;
11
- fetchMarkets(params?: {}): Promise<any[]>;
11
+ fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  parseBalance(response: any): Balances;
13
13
  fetchBalance(params?: {}): Promise<Balances>;
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
package/js/src/bithumb.js CHANGED
@@ -22,6 +22,7 @@ export default class bithumb extends Exchange {
22
22
  'name': 'Bithumb',
23
23
  'countries': ['KR'],
24
24
  'rateLimit': 500,
25
+ 'pro': true,
25
26
  'has': {
26
27
  'CORS': true,
27
28
  'spot': true,
@@ -16,7 +16,7 @@ export default class bitmart extends Exchange {
16
16
  }>;
17
17
  fetchSpotMarkets(params?: {}): Promise<any[]>;
18
18
  fetchContractMarkets(params?: {}): Promise<any[]>;
19
- fetchMarkets(params?: {}): Promise<any>;
19
+ fetchMarkets(params?: {}): Promise<Market[]>;
20
20
  fetchCurrencies(params?: {}): Promise<{}>;
21
21
  fetchTransactionFee(code: string, params?: {}): Promise<{
22
22
  info: any;
@@ -12,7 +12,7 @@ export default class bitmex extends Exchange {
12
12
  amountToPrecision(symbol: any, amount: any): any;
13
13
  convertFromRawQuantity(symbol: any, rawQuantity: any, currencySide?: string): number;
14
14
  convertFromRawCost(symbol: any, rawQuantity: any): number;
15
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
15
+ fetchMarkets(params?: {}): Promise<Market[]>;
16
16
  parseMarket(market: any): Market;
17
17
  parseBalance(response: any): Balances;
18
18
  fetchBalance(params?: {}): Promise<Balances>;
@@ -7,7 +7,7 @@ import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, Ord
7
7
  export default class bitopro extends Exchange {
8
8
  describe(): any;
9
9
  fetchCurrencies(params?: {}): Promise<{}>;
10
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  parseMarket(market: any): Market;
12
12
  parseTicker(ticker: any, market?: Market): Ticker;
13
13
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -18,7 +18,7 @@ export default class bitrue extends Exchange {
18
18
  fetchTime(params?: {}): Promise<number>;
19
19
  safeNetwork(networkId: any): string;
20
20
  fetchCurrencies(params?: {}): Promise<{}>;
21
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
21
+ fetchMarkets(params?: {}): Promise<Market[]>;
22
22
  parseMarket(market: any): Market;
23
23
  parseBalance(response: any): Balances;
24
24
  fetchBalance(params?: {}): Promise<Balances>;
package/js/src/bitso.d.ts CHANGED
@@ -25,7 +25,7 @@ export default class bitso extends Exchange {
25
25
  fee: any;
26
26
  info: import("./base/types.js").Dictionary<any>;
27
27
  };
28
- fetchMarkets(params?: {}): Promise<any[]>;
28
+ fetchMarkets(params?: {}): Promise<Market[]>;
29
29
  parseBalance(response: any): Balances;
30
30
  fetchBalance(params?: {}): Promise<Balances>;
31
31
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -6,7 +6,7 @@ import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, Ord
6
6
  */
7
7
  export default class bitstamp extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<any[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  constructCurrencyObject(id: any, code: any, name: any, precision: any, minCost: any, originalPayload: any): {
11
11
  id: any;
12
12
  code: any;
@@ -166,7 +166,7 @@ export default class bitstamp extends Exchange {
166
166
  'transfer-from-main/': 1,
167
167
  'my_trading_pairs/': 1,
168
168
  'fees/trading/': 1,
169
- 'fees/trading/{pair}': 1,
169
+ 'fees/trading/{market_symbol}': 1,
170
170
  'fees/withdrawal/': 1,
171
171
  'fees/withdrawal/{currency}/': 1,
172
172
  'withdrawal-requests/': 1,
@@ -1166,7 +1166,7 @@ export default class bitstamp extends Exchange {
1166
1166
  * @method
1167
1167
  * @name bitstamp#fetchTradingFee
1168
1168
  * @description fetch the trading fees for a market
1169
- * @see https://www.bitstamp.net/api/#tag/Fees/operation/GetAllTradingFees
1169
+ * @see https://www.bitstamp.net/api/#tag/Fees/operation/GetTradingFeesForCurrency
1170
1170
  * @param {string} symbol unified market symbol
1171
1171
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1172
1172
  * @returns {object} a [fee structure]{@link https://docs.ccxt.com/#/?id=fee-structure}
@@ -1174,21 +1174,35 @@ export default class bitstamp extends Exchange {
1174
1174
  await this.loadMarkets();
1175
1175
  const market = this.market(symbol);
1176
1176
  const request = {
1177
- 'pair': market['id'],
1177
+ 'market_symbol': market['id'],
1178
1178
  };
1179
- const response = await this.privatePostBalancePair(this.extend(request, params));
1180
- return this.parseTradingFee(response, market);
1179
+ const response = await this.privatePostFeesTrading(this.extend(request, params));
1180
+ //
1181
+ // [
1182
+ // {
1183
+ // "currency_pair": "btcusd",
1184
+ // "fees":
1185
+ // {
1186
+ // "maker": "0.15000",
1187
+ // "taker": "0.16000"
1188
+ // },
1189
+ // "market": "btcusd"
1190
+ // }
1191
+ // ...
1192
+ // ]
1193
+ //
1194
+ const tradingFeesByMarketId = this.indexBy(response, 'currency_pair');
1195
+ const tradingFee = this.safeDict(tradingFeesByMarketId, market['id']);
1196
+ return this.parseTradingFee(tradingFee, market);
1181
1197
  }
1182
1198
  parseTradingFee(fee, market = undefined) {
1183
- market = this.safeMarket(undefined, market);
1184
- const feeString = this.safeString(fee, market['id'] + '_fee');
1185
- const dividedFeeString = Precise.stringDiv(feeString, '100');
1186
- const tradeFee = this.parseNumber(dividedFeeString);
1199
+ const marketId = this.safeString(fee, 'market');
1200
+ const fees = this.safeDict(fee, 'fees', {});
1187
1201
  return {
1188
1202
  'info': fee,
1189
- 'symbol': market['symbol'],
1190
- 'maker': tradeFee,
1191
- 'taker': tradeFee,
1203
+ 'symbol': this.safeSymbol(marketId, market),
1204
+ 'maker': this.safeNumber(fees, 'maker'),
1205
+ 'taker': this.safeNumber(fees, 'taker'),
1192
1206
  };
1193
1207
  }
1194
1208
  parseTradingFees(fees) {
@@ -1196,8 +1210,7 @@ export default class bitstamp extends Exchange {
1196
1210
  const symbols = this.symbols;
1197
1211
  for (let i = 0; i < symbols.length; i++) {
1198
1212
  const symbol = symbols[i];
1199
- const market = this.market(symbol);
1200
- const fee = this.parseTradingFee(fees, market);
1213
+ const fee = this.parseTradingFee(fees[i]);
1201
1214
  result[symbol] = fee;
1202
1215
  }
1203
1216
  return result;
@@ -1212,7 +1225,21 @@ export default class bitstamp extends Exchange {
1212
1225
  * @returns {object} a dictionary of [fee structures]{@link https://docs.ccxt.com/#/?id=fee-structure} indexed by market symbols
1213
1226
  */
1214
1227
  await this.loadMarkets();
1215
- const response = await this.privatePostBalance(params);
1228
+ const response = await this.privatePostFeesTrading(params);
1229
+ //
1230
+ // [
1231
+ // {
1232
+ // "currency_pair": "btcusd",
1233
+ // "fees":
1234
+ // {
1235
+ // "maker": "0.15000",
1236
+ // "taker": "0.16000"
1237
+ // },
1238
+ // "market": "btcusd"
1239
+ // }
1240
+ // ...
1241
+ // ]
1242
+ //
1216
1243
  return this.parseTradingFees(response);
1217
1244
  }
1218
1245
  async fetchTransactionFees(codes = undefined, params = {}) {
@@ -6,7 +6,7 @@ import { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, OrderSid
6
6
  */
7
7
  export default class bitteam extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  parseMarket(market: any): Market;
11
11
  fetchCurrencies(params?: {}): Promise<{}>;
12
12
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
@@ -10,7 +10,7 @@ export default class bitvavo extends Exchange {
10
10
  amountToPrecision(symbol: any, amount: any): any;
11
11
  priceToPrecision(symbol: any, price: any): any;
12
12
  fetchTime(params?: {}): Promise<number>;
13
- fetchMarkets(params?: {}): Promise<any[]>;
13
+ fetchMarkets(params?: {}): Promise<Market[]>;
14
14
  parseMarkets(markets: any): any[];
15
15
  fetchCurrencies(params?: {}): Promise<{}>;
16
16
  parseCurrencies(currencies: any): {};
@@ -6,7 +6,7 @@ import type { Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide,
6
6
  */
7
7
  export default class blockchaincom extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<any[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
11
11
  fetchL3OrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
12
12
  fetchL2OrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -6,7 +6,7 @@ import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory
6
6
  */
7
7
  export default class blofin extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  parseMarket(market: any): Market;
11
11
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
12
12
  parseTicker(ticker: any, market?: Market): Ticker;
@@ -6,7 +6,7 @@ import type { IndexType, Balances, Currency, Int, Market, OHLCV, Order, OrderBoo
6
6
  */
7
7
  export default class btcalpha extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  parseMarket(market: any): Market;
11
11
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
12
12
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -13,7 +13,7 @@ export default class btcmarkets extends Exchange {
13
13
  parseTransactionStatus(status: any): string;
14
14
  parseTransactionType(type: any): string;
15
15
  parseTransaction(transaction: any, currency?: Currency): Transaction;
16
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
16
+ fetchMarkets(params?: {}): Promise<Market[]>;
17
17
  parseMarket(market: any): Market;
18
18
  fetchTime(params?: {}): Promise<number>;
19
19
  parseBalance(response: any): Balances;
@@ -6,7 +6,7 @@ import type { Balances, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, Or
6
6
  */
7
7
  export default class btcturk extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  parseMarket(entry: any): Market;
11
11
  parseBalance(response: any): Balances;
12
12
  fetchBalance(params?: {}): Promise<Balances>;
package/js/src/bybit.d.ts CHANGED
@@ -18,7 +18,7 @@ export default class bybit extends Exchange {
18
18
  getBybitType(method: any, market: any, params?: {}): any[];
19
19
  fetchTime(params?: {}): Promise<number>;
20
20
  fetchCurrencies(params?: {}): Promise<{}>;
21
- fetchMarkets(params?: {}): Promise<any>;
21
+ fetchMarkets(params?: {}): Promise<Market[]>;
22
22
  fetchSpotMarkets(params: any): Promise<any[]>;
23
23
  fetchFutureMarkets(params: any): Promise<any[]>;
24
24
  fetchOptionMarkets(params: any): Promise<any[]>;
package/js/src/bybit.js CHANGED
@@ -471,7 +471,7 @@ export default class bybit extends Exchange {
471
471
  'v5/account/mmp-modify': 5,
472
472
  'v5/account/mmp-reset': 5,
473
473
  // asset
474
- 'v5/asset/transfer/inter-transfer': 150,
474
+ 'v5/asset/transfer/inter-transfer': 50,
475
475
  'v5/asset/transfer/save-transfer-sub-member': 150,
476
476
  'v5/asset/transfer/universal-transfer': 10,
477
477
  'v5/asset/deposit/deposit-to-account': 5,
@@ -2843,11 +2843,11 @@ export default class bybit extends Exchange {
2843
2843
  request['category'] = 'option';
2844
2844
  }
2845
2845
  else if (market['linear']) {
2846
- // limit: [1, 200]. Default: 25
2846
+ // limit: [1, 500]. Default: 25
2847
2847
  request['category'] = 'linear';
2848
2848
  }
2849
2849
  else if (market['inverse']) {
2850
- // limit: [1, 200]. Default: 25
2850
+ // limit: [1, 500]. Default: 25
2851
2851
  request['category'] = 'inverse';
2852
2852
  }
2853
2853
  }
package/js/src/cex.d.ts CHANGED
@@ -8,7 +8,7 @@ export default class cex extends Exchange {
8
8
  describe(): any;
9
9
  fetchCurrenciesFromCache(params?: {}): Promise<any>;
10
10
  fetchCurrencies(params?: {}): Promise<{}>;
11
- fetchMarkets(params?: {}): Promise<any[]>;
11
+ fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  parseBalance(response: any): Balances;
13
13
  fetchBalance(params?: {}): Promise<Balances>;
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -30,7 +30,7 @@ export default class coinbase extends Exchange {
30
30
  parseTransactionStatus(status: any): string;
31
31
  parseTransaction(transaction: any, currency?: Currency): Transaction;
32
32
  parseTrade(trade: any, market?: Market): Trade;
33
- fetchMarkets(params?: {}): Promise<any[]>;
33
+ fetchMarkets(params?: {}): Promise<Market[]>;
34
34
  fetchMarketsV2(params?: {}): Promise<any[]>;
35
35
  fetchMarketsV3(params?: {}): Promise<any[]>;
36
36
  fetchCurrenciesFromCache(params?: {}): Promise<import("./base/types.js").Dictionary<any>>;
@@ -76,7 +76,7 @@ export default class coinbaseinternational extends Exchange {
76
76
  parseTransactionStatus(status: any): string;
77
77
  parseTransaction(transaction: any, currency?: Currency): Transaction;
78
78
  parseTrade(trade: any, market?: Market): Trade;
79
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
79
+ fetchMarkets(params?: {}): Promise<Market[]>;
80
80
  parseMarket(market: any): Market;
81
81
  fetchCurrencies(params?: {}): Promise<any>;
82
82
  parseCurrency(currency: any): {
@@ -7,7 +7,7 @@ import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, Balances, Str, Tra
7
7
  export default class coinbasepro extends Exchange {
8
8
  describe(): any;
9
9
  fetchCurrencies(params?: {}): Promise<{}>;
10
- fetchMarkets(params?: {}): Promise<any[]>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  fetchAccounts(params?: {}): Promise<Account[]>;
12
12
  parseAccount(account: any): {
13
13
  id: string;
@@ -7,7 +7,7 @@ import type { Balances, Currency, FundingHistory, FundingRateHistory, Int, Marke
7
7
  export default class coinex extends Exchange {
8
8
  describe(): any;
9
9
  fetchCurrencies(params?: {}): Promise<{}>;
10
- fetchMarkets(params?: {}): Promise<any>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  fetchSpotMarkets(params: any): Promise<any[]>;
12
12
  fetchContractMarkets(params: any): Promise<any[]>;
13
13
  parseTicker(ticker: any, market?: Market): Ticker;
package/js/src/coinex.js CHANGED
@@ -3763,8 +3763,7 @@ export default class coinex extends Exchange {
3763
3763
  // }
3764
3764
  //
3765
3765
  const marketId = this.safeString(position, 'market');
3766
- const defaultType = this.safeString(this.options, 'defaultType');
3767
- market = this.safeMarket(marketId, market, undefined, defaultType);
3766
+ market = this.safeMarket(marketId, market, undefined, 'swap');
3768
3767
  const symbol = market['symbol'];
3769
3768
  const positionId = this.safeInteger(position, 'position_id');
3770
3769
  const marginModeInteger = this.safeInteger(position, 'type');
@@ -9,7 +9,7 @@ export default class coinlist extends Exchange {
9
9
  calculateRateLimiterCost(api: any, method: any, path: any, params: any, config?: {}): number;
10
10
  fetchTime(params?: {}): Promise<number>;
11
11
  fetchCurrencies(params?: {}): Promise<{}>;
12
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
12
+ fetchMarkets(params?: {}): Promise<Market[]>;
13
13
  parseMarket(market: any): Market;
14
14
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
15
15
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -6,7 +6,7 @@ import type { Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide,
6
6
  */
7
7
  export default class coinmate extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<any[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  parseBalance(response: any): Balances;
11
11
  fetchBalance(params?: {}): Promise<Balances>;
12
12
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -7,7 +7,7 @@ import { Balances, Currency, IndexType, Int, Market, Num, OHLCV, Order, OrderBoo
7
7
  export default class coinmetro extends Exchange {
8
8
  describe(): any;
9
9
  fetchCurrencies(params?: {}): Promise<{}>;
10
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  parseMarket(market: any): Market;
12
12
  parseMarketId(marketId: any): {
13
13
  baseId: any;
@@ -7,7 +7,7 @@ import type { Balances, Int, Market, Num, Order, OrderBook, OrderSide, OrderType
7
7
  export default class coinone extends Exchange {
8
8
  describe(): any;
9
9
  fetchCurrencies(params?: {}): Promise<{}>;
10
- fetchMarkets(params?: {}): Promise<any[]>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  parseBalance(response: any): Balances;
12
12
  fetchBalance(params?: {}): Promise<Balances>;
13
13
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -15,7 +15,7 @@ export default class coinsph extends Exchange {
15
15
  info: any;
16
16
  }>;
17
17
  fetchTime(params?: {}): Promise<number>;
18
- fetchMarkets(params?: {}): Promise<any[]>;
18
+ fetchMarkets(params?: {}): Promise<Market[]>;
19
19
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
20
20
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
21
21
  parseTicker(ticker: any, market?: Market): Ticker;
@@ -6,7 +6,7 @@ import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory
6
6
  */
7
7
  export default class cryptocom extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<any[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
11
11
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
12
12
  fetchOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
@@ -9,7 +9,7 @@ export default class currencycom extends Exchange {
9
9
  nonce(): number;
10
10
  fetchTime(params?: {}): Promise<number>;
11
11
  fetchCurrencies(params?: {}): Promise<{}>;
12
- fetchMarkets(params?: {}): Promise<any[]>;
12
+ fetchMarkets(params?: {}): Promise<Market[]>;
13
13
  fetchAccounts(params?: {}): Promise<Account[]>;
14
14
  fetchTradingFees(params?: {}): Promise<{}>;
15
15
  parseBalance(response: any, type?: any): Balances;
package/js/src/delta.d.ts CHANGED
@@ -20,7 +20,7 @@ export default class delta extends Exchange {
20
20
  fetchCurrencies(params?: {}): Promise<{}>;
21
21
  loadMarkets(reload?: boolean, params?: {}): Promise<import("./base/types.js").Dictionary<MarketInterface>>;
22
22
  indexByStringifiedNumericId(input: any): {};
23
- fetchMarkets(params?: {}): Promise<any[]>;
23
+ fetchMarkets(params?: {}): Promise<Market[]>;
24
24
  parseTicker(ticker: any, market?: Market): Ticker;
25
25
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
26
26
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
@@ -28,7 +28,7 @@ export default class deribit extends Exchange {
28
28
  type: string;
29
29
  code: string;
30
30
  };
31
- fetchMarkets(params?: {}): Promise<any[]>;
31
+ fetchMarkets(params?: {}): Promise<Market[]>;
32
32
  parseBalance(balance: any): Balances;
33
33
  fetchBalance(params?: {}): Promise<Balances>;
34
34
  createDepositAddress(code: string, params?: {}): Promise<{
package/js/src/deribit.js CHANGED
@@ -1340,9 +1340,16 @@ export default class deribit extends Exchange {
1340
1340
  * @param {int} [since] timestamp in ms of the earliest candle to fetch
1341
1341
  * @param {int} [limit] the maximum amount of candles to fetch
1342
1342
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1343
+ * @param {boolean} [params.paginate] whether to paginate the results, set to false by default
1344
+ * @param {int} [params.until] the latest time in ms to fetch ohlcv for
1343
1345
  * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
1344
1346
  */
1345
1347
  await this.loadMarkets();
1348
+ let paginate = false;
1349
+ [paginate, params] = this.handleOptionAndParams(params, 'fetchOHLCV', 'paginate');
1350
+ if (paginate) {
1351
+ return await this.fetchPaginatedCallDeterministic('fetchOHLCV', symbol, since, limit, timeframe, params, 5000);
1352
+ }
1346
1353
  const market = this.market(symbol);
1347
1354
  const request = {
1348
1355
  'instrument_name': market['id'],
@@ -1367,6 +1374,11 @@ export default class deribit extends Exchange {
1367
1374
  request['end_timestamp'] = this.sum(since, limit * duration * 1000);
1368
1375
  }
1369
1376
  }
1377
+ const until = this.safeInteger(params, 'until');
1378
+ if (until !== undefined) {
1379
+ params = this.omit(params, 'until');
1380
+ request['end_timestamp'] = until;
1381
+ }
1370
1382
  const response = await this.publicGetGetTradingviewChartData(this.extend(request, params));
1371
1383
  //
1372
1384
  // {
@@ -1491,6 +1503,7 @@ export default class deribit extends Exchange {
1491
1503
  * @param {int} [since] timestamp in ms of the earliest trade to fetch
1492
1504
  * @param {int} [limit] the maximum amount of trades to fetch
1493
1505
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1506
+ * @param {int} [params.until] the latest time in ms to fetch trades for
1494
1507
  * @returns {Trade[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
1495
1508
  */
1496
1509
  await this.loadMarkets();
@@ -1505,8 +1518,13 @@ export default class deribit extends Exchange {
1505
1518
  if (limit !== undefined) {
1506
1519
  request['count'] = Math.min(limit, 1000); // default 10
1507
1520
  }
1521
+ const until = this.safeInteger2(params, 'until', 'end_timestamp');
1522
+ if (until !== undefined) {
1523
+ params = this.omit(params, ['until']);
1524
+ request['end_timestamp'] = until;
1525
+ }
1508
1526
  let response = undefined;
1509
- if (since === undefined) {
1527
+ if ((since === undefined) && !('end_timestamp' in request)) {
1510
1528
  response = await this.publicGetGetLastTradesByInstrument(this.extend(request, params));
1511
1529
  }
1512
1530
  else {
@@ -7,7 +7,7 @@ import type { FundingRateHistory, Int, OHLCV, Order, OrderSide, OrderType, Order
7
7
  export default class digifinex extends Exchange {
8
8
  describe(): any;
9
9
  fetchCurrencies(params?: {}): Promise<{}>;
10
- fetchMarkets(params?: {}): Promise<any[]>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  fetchMarketsV2(params?: {}): Promise<any[]>;
12
12
  fetchMarketsV1(params?: {}): Promise<any[]>;
13
13
  parseBalance(response: any): Balances;