ccxt 4.2.82 → 4.2.83

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 (126) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.js +794 -183
  3. package/dist/ccxt.browser.min.js +2 -2
  4. package/dist/cjs/ccxt.js +3 -1
  5. package/dist/cjs/src/bitget.js +1 -0
  6. package/dist/cjs/src/bithumb.js +1 -0
  7. package/dist/cjs/src/bitstamp.js +42 -15
  8. package/dist/cjs/src/deribit.js +19 -1
  9. package/dist/cjs/src/gemini.js +2 -1
  10. package/dist/cjs/src/hyperliquid.js +5 -4
  11. package/dist/cjs/src/kucoinfutures.js +147 -8
  12. package/dist/cjs/src/pro/bithumb.js +388 -0
  13. package/dist/cjs/src/pro/bitmart.js +1 -1
  14. package/dist/cjs/src/pro/bybit.js +1 -1
  15. package/dist/cjs/src/pro/cex.js +18 -5
  16. package/dist/cjs/src/pro/okx.js +2 -1
  17. package/dist/cjs/src/pro/p2b.js +14 -4
  18. package/dist/cjs/src/pro/woo.js +1 -1
  19. package/js/ccxt.d.ts +4 -1
  20. package/js/ccxt.js +3 -1
  21. package/js/src/abstract/bitstamp.d.ts +1 -1
  22. package/js/src/ace.d.ts +1 -1
  23. package/js/src/alpaca.d.ts +1 -1
  24. package/js/src/ascendex.d.ts +1 -1
  25. package/js/src/bigone.d.ts +1 -1
  26. package/js/src/binance.d.ts +1 -1
  27. package/js/src/bingx.d.ts +1 -1
  28. package/js/src/bitbank.d.ts +1 -1
  29. package/js/src/bitbns.d.ts +1 -1
  30. package/js/src/bitfinex.d.ts +1 -1
  31. package/js/src/bitfinex2.d.ts +1 -1
  32. package/js/src/bitflyer.d.ts +1 -1
  33. package/js/src/bitget.d.ts +1 -1
  34. package/js/src/bitget.js +1 -0
  35. package/js/src/bithumb.d.ts +1 -1
  36. package/js/src/bithumb.js +1 -0
  37. package/js/src/bitmart.d.ts +1 -1
  38. package/js/src/bitmex.d.ts +1 -1
  39. package/js/src/bitopro.d.ts +1 -1
  40. package/js/src/bitrue.d.ts +1 -1
  41. package/js/src/bitso.d.ts +1 -1
  42. package/js/src/bitstamp.d.ts +1 -1
  43. package/js/src/bitstamp.js +42 -15
  44. package/js/src/bitteam.d.ts +1 -1
  45. package/js/src/bitvavo.d.ts +1 -1
  46. package/js/src/blockchaincom.d.ts +1 -1
  47. package/js/src/blofin.d.ts +1 -1
  48. package/js/src/btcalpha.d.ts +1 -1
  49. package/js/src/btcmarkets.d.ts +1 -1
  50. package/js/src/btcturk.d.ts +1 -1
  51. package/js/src/bybit.d.ts +1 -1
  52. package/js/src/cex.d.ts +1 -1
  53. package/js/src/coinbase.d.ts +1 -1
  54. package/js/src/coinbaseinternational.d.ts +1 -1
  55. package/js/src/coinbasepro.d.ts +1 -1
  56. package/js/src/coinex.d.ts +1 -1
  57. package/js/src/coinlist.d.ts +1 -1
  58. package/js/src/coinmate.d.ts +1 -1
  59. package/js/src/coinmetro.d.ts +1 -1
  60. package/js/src/coinone.d.ts +1 -1
  61. package/js/src/coinsph.d.ts +1 -1
  62. package/js/src/cryptocom.d.ts +1 -1
  63. package/js/src/currencycom.d.ts +1 -1
  64. package/js/src/delta.d.ts +1 -1
  65. package/js/src/deribit.d.ts +1 -1
  66. package/js/src/deribit.js +19 -1
  67. package/js/src/digifinex.d.ts +1 -1
  68. package/js/src/exmo.d.ts +1 -1
  69. package/js/src/gate.d.ts +1 -1
  70. package/js/src/gemini.d.ts +1 -1
  71. package/js/src/gemini.js +2 -1
  72. package/js/src/hitbtc.d.ts +1 -1
  73. package/js/src/hollaex.d.ts +1 -1
  74. package/js/src/htx.d.ts +1 -1
  75. package/js/src/huobijp.d.ts +1 -1
  76. package/js/src/hyperliquid.d.ts +1 -1
  77. package/js/src/hyperliquid.js +5 -4
  78. package/js/src/idex.d.ts +1 -1
  79. package/js/src/independentreserve.d.ts +1 -1
  80. package/js/src/indodax.d.ts +1 -1
  81. package/js/src/kraken.d.ts +1 -1
  82. package/js/src/krakenfutures.d.ts +1 -1
  83. package/js/src/kucoin.d.ts +1 -1
  84. package/js/src/kucoinfutures.d.ts +3 -2
  85. package/js/src/kucoinfutures.js +147 -8
  86. package/js/src/kuna.d.ts +1 -1
  87. package/js/src/latoken.d.ts +1 -1
  88. package/js/src/lbank.d.ts +1 -1
  89. package/js/src/luno.d.ts +1 -1
  90. package/js/src/lykke.d.ts +1 -1
  91. package/js/src/mercado.d.ts +1 -1
  92. package/js/src/mexc.d.ts +1 -1
  93. package/js/src/ndax.d.ts +1 -1
  94. package/js/src/novadax.d.ts +1 -1
  95. package/js/src/oceanex.d.ts +1 -1
  96. package/js/src/okcoin.d.ts +1 -1
  97. package/js/src/okx.d.ts +1 -1
  98. package/js/src/onetrading.d.ts +1 -1
  99. package/js/src/p2b.d.ts +1 -1
  100. package/js/src/phemex.d.ts +1 -1
  101. package/js/src/poloniex.d.ts +1 -1
  102. package/js/src/poloniexfutures.d.ts +1 -1
  103. package/js/src/pro/bithumb.d.ts +19 -0
  104. package/js/src/pro/bithumb.js +389 -0
  105. package/js/src/pro/bitmart.js +1 -1
  106. package/js/src/pro/bybit.js +1 -1
  107. package/js/src/pro/cex.js +18 -5
  108. package/js/src/pro/okx.js +2 -1
  109. package/js/src/pro/p2b.d.ts +2 -0
  110. package/js/src/pro/p2b.js +14 -4
  111. package/js/src/pro/woo.js +1 -1
  112. package/js/src/probit.d.ts +1 -1
  113. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  114. package/js/src/timex.d.ts +1 -1
  115. package/js/src/tokocrypto.d.ts +1 -1
  116. package/js/src/tradeogre.d.ts +1 -1
  117. package/js/src/upbit.d.ts +1 -1
  118. package/js/src/wavesexchange.d.ts +1 -1
  119. package/js/src/wazirx.d.ts +1 -1
  120. package/js/src/whitebit.d.ts +1 -1
  121. package/js/src/woo.d.ts +1 -1
  122. package/js/src/yobit.d.ts +1 -1
  123. package/js/src/zaif.d.ts +1 -1
  124. package/js/src/zonda.d.ts +1 -1
  125. package/package.json +1 -1
  126. 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': {
@@ -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/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;
@@ -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;
package/js/src/exmo.d.ts CHANGED
@@ -50,7 +50,7 @@ export default class exmo extends Exchange {
50
50
  fetchDepositWithdrawFees(codes?: Strings, params?: {}): Promise<any>;
51
51
  parseDepositWithdrawFee(fee: any, currency?: Currency): any;
52
52
  fetchCurrencies(params?: {}): Promise<{}>;
53
- fetchMarkets(params?: {}): Promise<any[]>;
53
+ fetchMarkets(params?: {}): Promise<Market[]>;
54
54
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
55
55
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
56
56
  parseBalance(response: any): Balances;
package/js/src/gate.d.ts CHANGED
@@ -10,7 +10,7 @@ export default class gate extends Exchange {
10
10
  convertExpireDate(date: any): string;
11
11
  createExpiredOptionMarket(symbol: string): MarketInterface;
12
12
  safeMarket(marketId?: Str, market?: Market, delimiter?: Str, marketType?: Str): MarketInterface;
13
- fetchMarkets(params?: {}): Promise<any>;
13
+ fetchMarkets(params?: {}): Promise<Market[]>;
14
14
  fetchSpotMarkets(params?: {}): Promise<any[]>;
15
15
  fetchContractMarkets(params?: {}): Promise<any[]>;
16
16
  parseContractMarket(market: any, settleId: any): {
@@ -8,7 +8,7 @@ export default class gemini extends Exchange {
8
8
  describe(): any;
9
9
  fetchCurrencies(params?: {}): Promise<{}>;
10
10
  fetchCurrenciesFromWeb(params?: {}): Promise<{}>;
11
- fetchMarkets(params?: {}): Promise<any>;
11
+ fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  fetchMarketsFromWeb(params?: {}): Promise<any[]>;
13
13
  parseMarketActive(status: any): boolean;
14
14
  fetchUSDTMarkets(params?: {}): Promise<any[]>;
package/js/src/gemini.js CHANGED
@@ -251,7 +251,8 @@ export default class gemini extends Exchange {
251
251
  },
252
252
  'broad': {
253
253
  'The Gemini Exchange is currently undergoing maintenance.': OnMaintenance,
254
- 'We are investigating technical issues with the Gemini Exchange.': ExchangeNotAvailable, // We are investigating technical issues with the Gemini Exchange. Please check https://status.gemini.com/ for more information.
254
+ 'We are investigating technical issues with the Gemini Exchange.': ExchangeNotAvailable,
255
+ 'Internal Server Error': ExchangeNotAvailable,
255
256
  },
256
257
  },
257
258
  'options': {
@@ -7,7 +7,7 @@ import type { TransferEntry, Int, OrderSide, OrderType, FundingRateHistory, OHLC
7
7
  export default class hitbtc extends Exchange {
8
8
  describe(): any;
9
9
  nonce(): number;
10
- fetchMarkets(params?: {}): Promise<any[]>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  fetchCurrencies(params?: {}): Promise<{}>;
12
12
  safeNetwork(networkId: any): any;
13
13
  createDepositAddress(code: string, params?: {}): Promise<{
@@ -6,7 +6,7 @@ import type { Balances, Currency, Dictionary, Int, Market, Num, OHLCV, Order, Or
6
6
  */
7
7
  export default class hollaex extends Exchange {
8
8
  describe(): any;
9
- fetchMarkets(params?: {}): Promise<any[]>;
9
+ fetchMarkets(params?: {}): Promise<Market[]>;
10
10
  fetchCurrencies(params?: {}): Promise<{}>;
11
11
  fetchOrderBooks(symbols?: Strings, limit?: Int, params?: {}): Promise<Dictionary<OrderBook>>;
12
12
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;