ccxt 4.2.81 → 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 (131) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/README.md +4 -4
  3. package/dist/ccxt.browser.js +1085 -188
  4. package/dist/ccxt.browser.min.js +2 -2
  5. package/dist/cjs/ccxt.js +3 -1
  6. package/dist/cjs/src/bitget.js +1 -0
  7. package/dist/cjs/src/bithumb.js +1 -0
  8. package/dist/cjs/src/bitstamp.js +42 -15
  9. package/dist/cjs/src/delta.js +147 -0
  10. package/dist/cjs/src/deribit.js +20 -2
  11. package/dist/cjs/src/gemini.js +2 -1
  12. package/dist/cjs/src/hyperliquid.js +9 -8
  13. package/dist/cjs/src/kucoinfutures.js +147 -8
  14. package/dist/cjs/src/okx.js +139 -0
  15. package/dist/cjs/src/pro/bithumb.js +388 -0
  16. package/dist/cjs/src/pro/bitmart.js +1 -1
  17. package/dist/cjs/src/pro/bybit.js +1 -1
  18. package/dist/cjs/src/pro/cex.js +18 -5
  19. package/dist/cjs/src/pro/okx.js +2 -1
  20. package/dist/cjs/src/pro/p2b.js +14 -4
  21. package/dist/cjs/src/pro/woo.js +1 -1
  22. package/js/ccxt.d.ts +4 -1
  23. package/js/ccxt.js +3 -1
  24. package/js/src/abstract/bitstamp.d.ts +1 -1
  25. package/js/src/ace.d.ts +1 -1
  26. package/js/src/alpaca.d.ts +1 -1
  27. package/js/src/ascendex.d.ts +1 -1
  28. package/js/src/bigone.d.ts +1 -1
  29. package/js/src/binance.d.ts +1 -1
  30. package/js/src/bingx.d.ts +1 -1
  31. package/js/src/bitbank.d.ts +1 -1
  32. package/js/src/bitbns.d.ts +1 -1
  33. package/js/src/bitfinex.d.ts +1 -1
  34. package/js/src/bitfinex2.d.ts +1 -1
  35. package/js/src/bitflyer.d.ts +1 -1
  36. package/js/src/bitget.d.ts +1 -1
  37. package/js/src/bitget.js +1 -0
  38. package/js/src/bithumb.d.ts +1 -1
  39. package/js/src/bithumb.js +1 -0
  40. package/js/src/bitmart.d.ts +1 -1
  41. package/js/src/bitmex.d.ts +1 -1
  42. package/js/src/bitopro.d.ts +1 -1
  43. package/js/src/bitrue.d.ts +1 -1
  44. package/js/src/bitso.d.ts +1 -1
  45. package/js/src/bitstamp.d.ts +1 -1
  46. package/js/src/bitstamp.js +42 -15
  47. package/js/src/bitteam.d.ts +1 -1
  48. package/js/src/bitvavo.d.ts +1 -1
  49. package/js/src/blockchaincom.d.ts +1 -1
  50. package/js/src/blofin.d.ts +1 -1
  51. package/js/src/btcalpha.d.ts +1 -1
  52. package/js/src/btcmarkets.d.ts +1 -1
  53. package/js/src/btcturk.d.ts +1 -1
  54. package/js/src/bybit.d.ts +1 -1
  55. package/js/src/cex.d.ts +1 -1
  56. package/js/src/coinbase.d.ts +1 -1
  57. package/js/src/coinbaseinternational.d.ts +1 -1
  58. package/js/src/coinbasepro.d.ts +1 -1
  59. package/js/src/coinex.d.ts +1 -1
  60. package/js/src/coinlist.d.ts +1 -1
  61. package/js/src/coinmate.d.ts +1 -1
  62. package/js/src/coinmetro.d.ts +1 -1
  63. package/js/src/coinone.d.ts +1 -1
  64. package/js/src/coinsph.d.ts +1 -1
  65. package/js/src/cryptocom.d.ts +1 -1
  66. package/js/src/currencycom.d.ts +1 -1
  67. package/js/src/delta.d.ts +22 -2
  68. package/js/src/delta.js +147 -0
  69. package/js/src/deribit.d.ts +2 -2
  70. package/js/src/deribit.js +20 -2
  71. package/js/src/digifinex.d.ts +1 -1
  72. package/js/src/exmo.d.ts +1 -1
  73. package/js/src/gate.d.ts +1 -1
  74. package/js/src/gemini.d.ts +1 -1
  75. package/js/src/gemini.js +2 -1
  76. package/js/src/hitbtc.d.ts +1 -1
  77. package/js/src/hollaex.d.ts +1 -1
  78. package/js/src/htx.d.ts +1 -1
  79. package/js/src/huobijp.d.ts +1 -1
  80. package/js/src/hyperliquid.d.ts +1 -1
  81. package/js/src/hyperliquid.js +9 -8
  82. package/js/src/idex.d.ts +1 -1
  83. package/js/src/independentreserve.d.ts +1 -1
  84. package/js/src/indodax.d.ts +1 -1
  85. package/js/src/kraken.d.ts +1 -1
  86. package/js/src/krakenfutures.d.ts +1 -1
  87. package/js/src/kucoin.d.ts +1 -1
  88. package/js/src/kucoinfutures.d.ts +3 -2
  89. package/js/src/kucoinfutures.js +147 -8
  90. package/js/src/kuna.d.ts +1 -1
  91. package/js/src/latoken.d.ts +1 -1
  92. package/js/src/lbank.d.ts +1 -1
  93. package/js/src/luno.d.ts +1 -1
  94. package/js/src/lykke.d.ts +1 -1
  95. package/js/src/mercado.d.ts +1 -1
  96. package/js/src/mexc.d.ts +1 -1
  97. package/js/src/ndax.d.ts +1 -1
  98. package/js/src/novadax.d.ts +1 -1
  99. package/js/src/oceanex.d.ts +1 -1
  100. package/js/src/okcoin.d.ts +1 -1
  101. package/js/src/okx.d.ts +23 -2
  102. package/js/src/okx.js +139 -0
  103. package/js/src/onetrading.d.ts +1 -1
  104. package/js/src/p2b.d.ts +1 -1
  105. package/js/src/phemex.d.ts +1 -1
  106. package/js/src/poloniex.d.ts +1 -1
  107. package/js/src/poloniexfutures.d.ts +1 -1
  108. package/js/src/pro/bithumb.d.ts +19 -0
  109. package/js/src/pro/bithumb.js +389 -0
  110. package/js/src/pro/bitmart.js +1 -1
  111. package/js/src/pro/bybit.js +1 -1
  112. package/js/src/pro/cex.js +18 -5
  113. package/js/src/pro/okx.js +2 -1
  114. package/js/src/pro/p2b.d.ts +2 -0
  115. package/js/src/pro/p2b.js +14 -4
  116. package/js/src/pro/woo.js +1 -1
  117. package/js/src/probit.d.ts +1 -1
  118. package/js/src/static_dependencies/jsencrypt/lib/jsbn/jsbn.d.ts +1 -1
  119. package/js/src/timex.d.ts +1 -1
  120. package/js/src/tokocrypto.d.ts +1 -1
  121. package/js/src/tradeogre.d.ts +1 -1
  122. package/js/src/upbit.d.ts +1 -1
  123. package/js/src/wavesexchange.d.ts +1 -1
  124. package/js/src/wazirx.d.ts +1 -1
  125. package/js/src/whitebit.d.ts +1 -1
  126. package/js/src/woo.d.ts +1 -1
  127. package/js/src/yobit.d.ts +1 -1
  128. package/js/src/zaif.d.ts +1 -1
  129. package/js/src/zonda.d.ts +1 -1
  130. package/package.json +1 -1
  131. package/skip-tests.json +17 -4
@@ -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
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/delta.js';
2
- import type { Balances, Currency, Greeks, Int, Market, MarketInterface, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Position, Leverage, MarginMode, Num } from './base/types.js';
2
+ import type { Balances, Currency, Greeks, Int, Market, MarketInterface, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Position, Leverage, MarginMode, Num, Option } from './base/types.js';
3
3
  /**
4
4
  * @class delta
5
5
  * @augments Exchange
@@ -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>;
@@ -191,6 +191,26 @@ export default class delta extends Exchange {
191
191
  closeAllPositions(params?: {}): Promise<Position[]>;
192
192
  fetchMarginMode(symbol: string, params?: {}): Promise<MarginMode>;
193
193
  parseMarginMode(marginMode: any, market?: any): MarginMode;
194
+ fetchOption(symbol: string, params?: {}): Promise<Option>;
195
+ parseOption(chain: any, currency?: Currency, market?: Market): {
196
+ info: any;
197
+ currency: any;
198
+ symbol: string;
199
+ timestamp: number;
200
+ datetime: string;
201
+ impliedVolatility: number;
202
+ openInterest: number;
203
+ bidPrice: number;
204
+ askPrice: number;
205
+ midPrice: number;
206
+ markPrice: number;
207
+ lastPrice: any;
208
+ underlyingPrice: number;
209
+ change: any;
210
+ percentage: any;
211
+ baseVolume: number;
212
+ quoteVolume: any;
213
+ };
194
214
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
195
215
  url: string;
196
216
  method: string;
package/js/src/delta.js CHANGED
@@ -64,6 +64,8 @@ export default class delta extends Exchange {
64
64
  'fetchOHLCV': true,
65
65
  'fetchOpenInterest': true,
66
66
  'fetchOpenOrders': true,
67
+ 'fetchOption': true,
68
+ 'fetchOptionChain': false,
67
69
  'fetchOrderBook': true,
68
70
  'fetchPosition': true,
69
71
  'fetchPositionMode': false,
@@ -3315,6 +3317,151 @@ export default class delta extends Exchange {
3315
3317
  'marginMode': this.safeString(marginMode, 'margin_mode'),
3316
3318
  };
3317
3319
  }
3320
+ async fetchOption(symbol, params = {}) {
3321
+ /**
3322
+ * @method
3323
+ * @name delta#fetchOption
3324
+ * @description fetches option data that is commonly found in an option chain
3325
+ * @see https://docs.delta.exchange/#get-ticker-for-a-product-by-symbol
3326
+ * @param {string} symbol unified market symbol
3327
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
3328
+ * @returns {object} an [option chain structure]{@link https://docs.ccxt.com/#/?id=option-chain-structure}
3329
+ */
3330
+ await this.loadMarkets();
3331
+ const market = this.market(symbol);
3332
+ const request = {
3333
+ 'symbol': market['id'],
3334
+ };
3335
+ const response = await this.publicGetTickersSymbol(this.extend(request, params));
3336
+ //
3337
+ // {
3338
+ // "result": {
3339
+ // "close": 6793.0,
3340
+ // "contract_type": "call_options",
3341
+ // "greeks": {
3342
+ // "delta": "0.94739174",
3343
+ // "gamma": "0.00002206",
3344
+ // "rho": "11.00890725",
3345
+ // "spot": "36839.58124652",
3346
+ // "theta": "-18.18365310",
3347
+ // "vega": "7.85209698"
3348
+ // },
3349
+ // "high": 7556.0,
3350
+ // "low": 6793.0,
3351
+ // "mark_price": "6955.70698909",
3352
+ // "mark_vol": "0.66916863",
3353
+ // "oi": "1.8980",
3354
+ // "oi_change_usd_6h": "110.4600",
3355
+ // "oi_contracts": "1898",
3356
+ // "oi_value": "1.8980",
3357
+ // "oi_value_symbol": "BTC",
3358
+ // "oi_value_usd": "69940.7319",
3359
+ // "open": 7.2e3,
3360
+ // "price_band": {
3361
+ // "lower_limit": "5533.89814767",
3362
+ // "upper_limit": "11691.37688371"
3363
+ // },
3364
+ // "product_id": 129508,
3365
+ // "quotes": {
3366
+ // "ask_iv": "0.90180438",
3367
+ // "ask_size": "1898",
3368
+ // "best_ask": "7210",
3369
+ // "best_bid": "6913",
3370
+ // "bid_iv": "0.60881706",
3371
+ // "bid_size": "3163",
3372
+ // "impact_mid_price": null,
3373
+ // "mark_iv": "0.66973549"
3374
+ // },
3375
+ // "size": 5,
3376
+ // "spot_price": "36839.58153868",
3377
+ // "strike_price": "30000",
3378
+ // "symbol": "C-BTC-30000-241123",
3379
+ // "timestamp": 1699584998504530,
3380
+ // "turnover": 184.41206804,
3381
+ // "turnover_symbol": "USDT",
3382
+ // "turnover_usd": 184.41206804,
3383
+ // "volume": 0.005
3384
+ // },
3385
+ // "success": true
3386
+ // }
3387
+ //
3388
+ const result = this.safeDict(response, 'result', {});
3389
+ return this.parseOption(result, undefined, market);
3390
+ }
3391
+ parseOption(chain, currency = undefined, market = undefined) {
3392
+ //
3393
+ // {
3394
+ // "close": 6793.0,
3395
+ // "contract_type": "call_options",
3396
+ // "greeks": {
3397
+ // "delta": "0.94739174",
3398
+ // "gamma": "0.00002206",
3399
+ // "rho": "11.00890725",
3400
+ // "spot": "36839.58124652",
3401
+ // "theta": "-18.18365310",
3402
+ // "vega": "7.85209698"
3403
+ // },
3404
+ // "high": 7556.0,
3405
+ // "low": 6793.0,
3406
+ // "mark_price": "6955.70698909",
3407
+ // "mark_vol": "0.66916863",
3408
+ // "oi": "1.8980",
3409
+ // "oi_change_usd_6h": "110.4600",
3410
+ // "oi_contracts": "1898",
3411
+ // "oi_value": "1.8980",
3412
+ // "oi_value_symbol": "BTC",
3413
+ // "oi_value_usd": "69940.7319",
3414
+ // "open": 7.2e3,
3415
+ // "price_band": {
3416
+ // "lower_limit": "5533.89814767",
3417
+ // "upper_limit": "11691.37688371"
3418
+ // },
3419
+ // "product_id": 129508,
3420
+ // "quotes": {
3421
+ // "ask_iv": "0.90180438",
3422
+ // "ask_size": "1898",
3423
+ // "best_ask": "7210",
3424
+ // "best_bid": "6913",
3425
+ // "bid_iv": "0.60881706",
3426
+ // "bid_size": "3163",
3427
+ // "impact_mid_price": null,
3428
+ // "mark_iv": "0.66973549"
3429
+ // },
3430
+ // "size": 5,
3431
+ // "spot_price": "36839.58153868",
3432
+ // "strike_price": "30000",
3433
+ // "symbol": "C-BTC-30000-241123",
3434
+ // "timestamp": 1699584998504530,
3435
+ // "turnover": 184.41206804,
3436
+ // "turnover_symbol": "USDT",
3437
+ // "turnover_usd": 184.41206804,
3438
+ // "volume": 0.005
3439
+ // }
3440
+ //
3441
+ const marketId = this.safeString(chain, 'symbol');
3442
+ market = this.safeMarket(marketId, market);
3443
+ const quotes = this.safeDict(chain, 'quotes', {});
3444
+ const timestamp = this.safeIntegerProduct(chain, 'timestamp', 0.001);
3445
+ return {
3446
+ 'info': chain,
3447
+ 'currency': undefined,
3448
+ 'symbol': market['symbol'],
3449
+ 'timestamp': timestamp,
3450
+ 'datetime': this.iso8601(timestamp),
3451
+ 'impliedVolatility': this.safeNumber(quotes, 'mark_iv'),
3452
+ 'openInterest': this.safeNumber(chain, 'oi'),
3453
+ 'bidPrice': this.safeNumber(quotes, 'best_bid'),
3454
+ 'askPrice': this.safeNumber(quotes, 'best_ask'),
3455
+ 'midPrice': this.safeNumber(quotes, 'impact_mid_price'),
3456
+ 'markPrice': this.safeNumber(chain, 'mark_price'),
3457
+ 'lastPrice': undefined,
3458
+ 'underlyingPrice': this.safeNumber(chain, 'spot_price'),
3459
+ 'change': undefined,
3460
+ 'percentage': undefined,
3461
+ 'baseVolume': this.safeNumber(chain, 'volume'),
3462
+ 'quoteVolume': undefined,
3463
+ };
3464
+ }
3318
3465
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
3319
3466
  const requestPath = '/' + this.version + '/' + this.implodeParams(path, params);
3320
3467
  let url = this.urls['api'][api] + requestPath;
@@ -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<{
@@ -171,7 +171,7 @@ export default class deribit extends Exchange {
171
171
  fetchOptionChain(code: string, params?: {}): Promise<OptionChain>;
172
172
  parseOption(chain: any, currency?: Currency, market?: Market): {
173
173
  info: any;
174
- currency: any;
174
+ currency: string;
175
175
  symbol: string;
176
176
  timestamp: number;
177
177
  datetime: string;
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 {
@@ -3596,7 +3614,7 @@ export default class deribit extends Exchange {
3596
3614
  const timestamp = this.safeInteger(chain, 'timestamp');
3597
3615
  return {
3598
3616
  'info': chain,
3599
- 'currency': code['code'],
3617
+ 'currency': code,
3600
3618
  'symbol': market['symbol'],
3601
3619
  'timestamp': timestamp,
3602
3620
  'datetime': this.iso8601(timestamp),
@@ -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>;
package/js/src/htx.d.ts CHANGED
@@ -46,7 +46,7 @@ export default class htx extends Exchange {
46
46
  };
47
47
  };
48
48
  costToPrecision(symbol: any, cost: any): any;
49
- fetchMarkets(params?: {}): Promise<any[]>;
49
+ fetchMarkets(params?: {}): Promise<Market[]>;
50
50
  fetchMarketsByTypeAndSubType(type: any, subType: any, params?: {}): Promise<any[]>;
51
51
  parseTicker(ticker: any, market?: Market): Ticker;
52
52
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -27,7 +27,7 @@ export default class huobijp extends Exchange {
27
27
  };
28
28
  };
29
29
  costToPrecision(symbol: any, cost: any): any;
30
- fetchMarkets(params?: {}): Promise<any[]>;
30
+ fetchMarkets(params?: {}): Promise<Market[]>;
31
31
  parseTicker(ticker: any, market?: Market): Ticker;
32
32
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
33
33
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
@@ -8,7 +8,7 @@ export default class hyperliquid extends Exchange {
8
8
  describe(): any;
9
9
  setSandboxMode(enabled: any): void;
10
10
  fetchCurrencies(params?: {}): Promise<{}>;
11
- fetchMarkets(params?: {}): Promise<import("./base/types.js").MarketInterface[]>;
11
+ fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  parseMarket(market: any): Market;
13
13
  fetchBalance(params?: {}): Promise<Balances>;
14
14
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
@@ -47,7 +47,7 @@ export default class hyperliquid extends Exchange {
47
47
  'createMarketSellOrderWithCost': false,
48
48
  'createOrder': true,
49
49
  'createOrders': true,
50
- 'createReduceOnlyOrder': false,
50
+ 'createReduceOnlyOrder': true,
51
51
  'editOrder': true,
52
52
  'fetchAccounts': false,
53
53
  'fetchBalance': true,
@@ -884,7 +884,7 @@ export default class hyperliquid extends Exchange {
884
884
  'tif': timeInForce,
885
885
  };
886
886
  }
887
- orderParams = this.omit(orderParams, ['clientOrderId', 'slippage', 'triggerPrice', 'stopPrice', 'stopLossPrice', 'takeProfitPrice', 'timeInForce', 'client_id']);
887
+ orderParams = this.omit(orderParams, ['clientOrderId', 'slippage', 'triggerPrice', 'stopPrice', 'stopLossPrice', 'takeProfitPrice', 'timeInForce', 'client_id', 'reduceOnly', 'postOnly']);
888
888
  const orderObj = {
889
889
  'a': this.parseToInt(market['baseId']),
890
890
  'b': isBuy,
@@ -1785,7 +1785,7 @@ export default class hyperliquid extends Exchange {
1785
1785
  throw new ArgumentsRequired(this.id + ' setMarginMode() requires a leverage parameter');
1786
1786
  }
1787
1787
  const asset = this.parseToInt(market['baseId']);
1788
- const isCross = (marginMode === 'isolated');
1788
+ const isCross = (marginMode === 'cross');
1789
1789
  const nonce = this.milliseconds();
1790
1790
  params = this.omit(params, ['leverage']);
1791
1791
  const updateAction = {
@@ -1801,9 +1801,10 @@ export default class hyperliquid extends Exchange {
1801
1801
  vaultAddress = vaultAddress.replace('0x', '');
1802
1802
  }
1803
1803
  }
1804
- const signature = this.signL1Action(updateAction, nonce, vaultAddress);
1804
+ const extendedAction = this.extend(updateAction, params);
1805
+ const signature = this.signL1Action(extendedAction, nonce, vaultAddress);
1805
1806
  const request = {
1806
- 'action': updateAction,
1807
+ 'action': extendedAction,
1807
1808
  'nonce': nonce,
1808
1809
  'signature': signature,
1809
1810
  // 'vaultAddress': vaultAddress,
@@ -1811,7 +1812,7 @@ export default class hyperliquid extends Exchange {
1811
1812
  if (vaultAddress !== undefined) {
1812
1813
  request['vaultAddress'] = vaultAddress;
1813
1814
  }
1814
- const response = await this.privatePostExchange(this.extend(request, params));
1815
+ const response = await this.privatePostExchange(request);
1815
1816
  //
1816
1817
  // {
1817
1818
  // 'response': {
@@ -2037,10 +2038,10 @@ export default class hyperliquid extends Exchange {
2037
2038
  [userAux, params] = this.handleOptionAndParams(params, methodName, 'user');
2038
2039
  let user = userAux;
2039
2040
  [user, params] = this.handleOptionAndParams(params, methodName, 'address', userAux);
2040
- if (user !== undefined) {
2041
+ if ((user !== undefined) && (user !== '')) {
2041
2042
  return [user, params];
2042
2043
  }
2043
- if (this.walletAddress !== undefined) {
2044
+ if ((this.walletAddress !== undefined) && (this.walletAddress !== '')) {
2044
2045
  return [this.walletAddress, params];
2045
2046
  }
2046
2047
  throw new ArgumentsRequired(this.id + ' ' + methodName + '() requires a user parameter inside \'params\' or the wallet address set');
package/js/src/idex.d.ts CHANGED
@@ -7,7 +7,7 @@ import type { Balances, Currency, Int, Market, Num, OHLCV, Order, OrderBook, Ord
7
7
  export default class idex extends Exchange {
8
8
  describe(): any;
9
9
  priceToPrecision(symbol: any, price: any): any;
10
- fetchMarkets(params?: {}): Promise<any[]>;
10
+ fetchMarkets(params?: {}): Promise<Market[]>;
11
11
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
12
12
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
13
13
  parseTicker(ticker: any, market?: Market): Ticker;
@@ -6,7 +6,7 @@ import type { Balances, Currency, Int, Market, Num, Order, OrderBook, OrderSide,
6
6
  */
7
7
  export default class independentreserve 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>;
@@ -8,7 +8,7 @@ export default class indodax extends Exchange {
8
8
  describe(): any;
9
9
  nonce(): number;
10
10
  fetchTime(params?: {}): Promise<number>;
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>;
@@ -8,7 +8,7 @@ import type { IndexType, Int, OrderSide, OrderType, OHLCV, Trade, Order, Balance
8
8
  export default class kraken extends Exchange {
9
9
  describe(): any;
10
10
  feeToPrecision(symbol: any, fee: any): any;
11
- fetchMarkets(params?: {}): Promise<any[]>;
11
+ fetchMarkets(params?: {}): Promise<Market[]>;
12
12
  safeCurrency(currencyId: any, currency?: Currency): import("./base/types.js").CurrencyInterface;
13
13
  appendInactiveMarkets(result: any): any;
14
14
  fetchCurrencies(params?: {}): Promise<{}>;
@@ -6,7 +6,7 @@ import type { TransferEntry, Int, OrderSide, OrderType, OHLCV, Trade, FundingRat
6
6
  */
7
7
  export default class krakenfutures 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
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
12
12
  parseTicker(ticker: any, market?: Market): Ticker;
@@ -15,7 +15,7 @@ export default class kucoin extends Exchange {
15
15
  url: any;
16
16
  info: any;
17
17
  }>;
18
- fetchMarkets(params?: {}): Promise<any[]>;
18
+ fetchMarkets(params?: {}): Promise<Market[]>;
19
19
  fetchCurrencies(params?: {}): Promise<{}>;
20
20
  fetchAccounts(params?: {}): Promise<Account[]>;
21
21
  fetchTransactionFee(code: string, params?: {}): Promise<{
@@ -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, 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 } from './base/types.js';
3
3
  /**
4
4
  * @class kucoinfutures
5
5
  * @augments Exchange
@@ -13,7 +13,7 @@ export default class kucoinfutures extends kucoin {
13
13
  url: any;
14
14
  info: any;
15
15
  }>;
16
- fetchMarkets(params?: {}): Promise<any[]>;
16
+ fetchMarkets(params?: {}): Promise<Market[]>;
17
17
  fetchTime(params?: {}): Promise<number>;
18
18
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
19
19
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
@@ -26,6 +26,7 @@ export default class kucoinfutures extends kucoin {
26
26
  }>;
27
27
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
28
28
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
29
+ fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
29
30
  parseTicker(ticker: any, market?: Market): Ticker;
30
31
  fetchFundingHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingHistory[]>;
31
32
  fetchPosition(symbol: string, params?: {}): Promise<import("./base/types.js").Position>;