ccxt 4.4.8 → 4.4.10

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 (127) hide show
  1. package/README.md +131 -131
  2. package/dist/ccxt.browser.min.js +3 -3
  3. package/dist/cjs/ccxt.js +1 -1
  4. package/dist/cjs/src/ascendex.js +2 -1
  5. package/dist/cjs/src/bigone.js +35 -86
  6. package/dist/cjs/src/binance.js +4 -8
  7. package/dist/cjs/src/bingx.js +26 -22
  8. package/dist/cjs/src/bitfinex2.js +5 -16
  9. package/dist/cjs/src/bitget.js +7 -3
  10. package/dist/cjs/src/bitmart.js +1 -0
  11. package/dist/cjs/src/bitmex.js +4 -3
  12. package/dist/cjs/src/blofin.js +4 -13
  13. package/dist/cjs/src/bybit.js +21 -15
  14. package/dist/cjs/src/coinex.js +15 -1
  15. package/dist/cjs/src/delta.js +2 -1
  16. package/dist/cjs/src/deribit.js +1 -0
  17. package/dist/cjs/src/digifinex.js +15 -1
  18. package/dist/cjs/src/gate.js +64 -9
  19. package/dist/cjs/src/hashkey.js +2 -2
  20. package/dist/cjs/src/hitbtc.js +2 -1
  21. package/dist/cjs/src/htx.js +21 -2
  22. package/dist/cjs/src/hyperliquid.js +6 -1
  23. package/dist/cjs/src/krakenfutures.js +3 -2
  24. package/dist/cjs/src/kucoin.js +2 -1
  25. package/dist/cjs/src/kucoinfutures.js +173 -2
  26. package/dist/cjs/src/mexc.js +1 -0
  27. package/dist/cjs/src/oceanex.js +83 -3
  28. package/dist/cjs/src/okx.js +14 -0
  29. package/dist/cjs/src/oxfun.js +4 -4
  30. package/dist/cjs/src/phemex.js +1 -0
  31. package/dist/cjs/src/poloniexfutures.js +11 -0
  32. package/dist/cjs/src/pro/binance.js +4 -4
  33. package/dist/cjs/src/pro/deribit.js +43 -1
  34. package/dist/cjs/src/pro/gate.js +1 -1
  35. package/dist/cjs/src/pro/hitbtc.js +122 -48
  36. package/dist/cjs/src/pro/hollaex.js +5 -0
  37. package/dist/cjs/src/pro/okx.js +19 -3
  38. package/dist/cjs/src/pro/p2b.js +35 -1
  39. package/dist/cjs/src/pro/whitebit.js +31 -0
  40. package/dist/cjs/src/vertex.js +2 -1
  41. package/dist/cjs/src/whitebit.js +10 -9
  42. package/dist/cjs/src/woo.js +42 -17
  43. package/dist/cjs/src/woofipro.js +15 -2
  44. package/dist/cjs/src/xt.js +2 -0
  45. package/js/ccxt.d.ts +1 -1
  46. package/js/ccxt.js +1 -1
  47. package/js/src/abstract/bigone.d.ts +1 -1
  48. package/js/src/abstract/kucoinfutures.d.ts +5 -0
  49. package/js/src/abstract/oceanex.d.ts +5 -0
  50. package/js/src/ascendex.d.ts +3 -21
  51. package/js/src/ascendex.js +2 -1
  52. package/js/src/base/Exchange.d.ts +3 -3
  53. package/js/src/base/types.d.ts +1 -0
  54. package/js/src/bigone.js +35 -86
  55. package/js/src/binance.d.ts +4 -40
  56. package/js/src/binance.js +4 -8
  57. package/js/src/bingx.d.ts +4 -40
  58. package/js/src/bingx.js +26 -22
  59. package/js/src/bitfinex2.d.ts +3 -22
  60. package/js/src/bitfinex2.js +5 -16
  61. package/js/src/bitget.d.ts +3 -39
  62. package/js/src/bitget.js +7 -3
  63. package/js/src/bitmart.d.ts +3 -39
  64. package/js/src/bitmart.js +1 -0
  65. package/js/src/bitmex.d.ts +3 -21
  66. package/js/src/bitmex.js +4 -3
  67. package/js/src/blofin.d.ts +3 -39
  68. package/js/src/blofin.js +4 -13
  69. package/js/src/bybit.d.ts +3 -21
  70. package/js/src/bybit.js +21 -15
  71. package/js/src/coinex.d.ts +5 -40
  72. package/js/src/coinex.js +15 -1
  73. package/js/src/delta.d.ts +4 -40
  74. package/js/src/delta.js +2 -1
  75. package/js/src/deribit.d.ts +3 -39
  76. package/js/src/deribit.js +1 -0
  77. package/js/src/digifinex.d.ts +4 -21
  78. package/js/src/digifinex.js +15 -1
  79. package/js/src/gate.d.ts +6 -41
  80. package/js/src/gate.js +64 -9
  81. package/js/src/hashkey.d.ts +4 -40
  82. package/js/src/hashkey.js +2 -2
  83. package/js/src/hitbtc.d.ts +4 -40
  84. package/js/src/hitbtc.js +2 -1
  85. package/js/src/htx.d.ts +5 -40
  86. package/js/src/htx.js +21 -2
  87. package/js/src/hyperliquid.js +6 -1
  88. package/js/src/krakenfutures.d.ts +3 -21
  89. package/js/src/krakenfutures.js +3 -2
  90. package/js/src/kucoin.js +2 -1
  91. package/js/src/kucoinfutures.d.ts +9 -20
  92. package/js/src/kucoinfutures.js +173 -2
  93. package/js/src/mexc.d.ts +3 -39
  94. package/js/src/mexc.js +1 -0
  95. package/js/src/oceanex.d.ts +9 -1
  96. package/js/src/oceanex.js +83 -3
  97. package/js/src/okx.d.ts +4 -39
  98. package/js/src/okx.js +14 -0
  99. package/js/src/oxfun.d.ts +3 -21
  100. package/js/src/oxfun.js +4 -4
  101. package/js/src/phemex.d.ts +3 -39
  102. package/js/src/phemex.js +1 -0
  103. package/js/src/poloniexfutures.d.ts +3 -20
  104. package/js/src/poloniexfutures.js +11 -0
  105. package/js/src/pro/binance.js +4 -4
  106. package/js/src/pro/deribit.d.ts +2 -1
  107. package/js/src/pro/deribit.js +43 -1
  108. package/js/src/pro/gate.js +1 -1
  109. package/js/src/pro/hitbtc.d.ts +4 -1
  110. package/js/src/pro/hitbtc.js +122 -48
  111. package/js/src/pro/hollaex.js +5 -0
  112. package/js/src/pro/okx.js +19 -3
  113. package/js/src/pro/p2b.d.ts +2 -1
  114. package/js/src/pro/p2b.js +35 -1
  115. package/js/src/pro/whitebit.d.ts +2 -1
  116. package/js/src/pro/whitebit.js +31 -0
  117. package/js/src/vertex.d.ts +4 -40
  118. package/js/src/vertex.js +2 -1
  119. package/js/src/whitebit.d.ts +4 -21
  120. package/js/src/whitebit.js +10 -9
  121. package/js/src/woo.d.ts +4 -40
  122. package/js/src/woo.js +42 -17
  123. package/js/src/woofipro.d.ts +5 -40
  124. package/js/src/woofipro.js +15 -2
  125. package/js/src/xt.d.ts +3 -39
  126. package/js/src/xt.js +2 -0
  127. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/binance.js';
2
- import type { TransferEntry, Int, OrderSide, Balances, OrderType, Trade, OHLCV, Order, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, Str, Transaction, Ticker, OrderBook, Tickers, Market, Greeks, Strings, Currency, MarketInterface, MarginMode, MarginModes, Leverage, Leverages, Num, Option, MarginModification, TradingFeeInterface, Currencies, TradingFees, Conversion, CrossBorrowRate, IsolatedBorrowRates, IsolatedBorrowRate, Dict, LeverageTier, LeverageTiers, int, LedgerEntry } from './base/types.js';
2
+ import type { TransferEntry, Int, OrderSide, Balances, OrderType, Trade, OHLCV, Order, FundingRateHistory, OpenInterest, Liquidation, OrderRequest, Str, Transaction, Ticker, OrderBook, Tickers, Market, Greeks, Strings, Currency, MarketInterface, MarginMode, MarginModes, Leverage, Leverages, Num, Option, MarginModification, TradingFeeInterface, Currencies, TradingFees, Conversion, CrossBorrowRate, IsolatedBorrowRates, IsolatedBorrowRate, Dict, LeverageTier, LeverageTiers, int, LedgerEntry, FundingRate, FundingRates } from './base/types.js';
3
3
  /**
4
4
  * @class binance
5
5
  * @augments Exchange
@@ -127,46 +127,10 @@ export default class binance extends Exchange {
127
127
  fetchTradingFee(symbol: string, params?: {}): Promise<TradingFeeInterface>;
128
128
  fetchTradingFees(params?: {}): Promise<TradingFees>;
129
129
  futuresTransfer(code: string, amount: any, type: any, params?: {}): Promise<TransferEntry>;
130
- fetchFundingRate(symbol: string, params?: {}): Promise<{
131
- info: any;
132
- symbol: string;
133
- markPrice: number;
134
- indexPrice: number;
135
- interestRate: number;
136
- estimatedSettlePrice: number;
137
- timestamp: number;
138
- datetime: string;
139
- fundingRate: number;
140
- fundingTimestamp: number;
141
- fundingDatetime: string;
142
- nextFundingRate: any;
143
- nextFundingTimestamp: any;
144
- nextFundingDatetime: any;
145
- previousFundingRate: any;
146
- previousFundingTimestamp: any;
147
- previousFundingDatetime: any;
148
- }>;
130
+ fetchFundingRate(symbol: string, params?: {}): Promise<FundingRate>;
149
131
  fetchFundingRateHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingRateHistory[]>;
150
- fetchFundingRates(symbols?: Strings, params?: {}): Promise<any>;
151
- parseFundingRate(contract: any, market?: Market): {
152
- info: any;
153
- symbol: string;
154
- markPrice: number;
155
- indexPrice: number;
156
- interestRate: number;
157
- estimatedSettlePrice: number;
158
- timestamp: number;
159
- datetime: string;
160
- fundingRate: number;
161
- fundingTimestamp: number;
162
- fundingDatetime: string;
163
- nextFundingRate: any;
164
- nextFundingTimestamp: any;
165
- nextFundingDatetime: any;
166
- previousFundingRate: any;
167
- previousFundingTimestamp: any;
168
- previousFundingDatetime: any;
169
- };
132
+ fetchFundingRates(symbols?: Strings, params?: {}): Promise<FundingRates>;
133
+ parseFundingRate(contract: any, market?: Market): FundingRate;
170
134
  parseAccountPositions(account: any, filterClosed?: boolean): any[];
171
135
  parseAccountPosition(position: any, market?: Market): {
172
136
  info: any;
package/js/src/binance.js CHANGED
@@ -9344,7 +9344,7 @@ export default class binance extends Exchange {
9344
9344
  * @param {int} [limit] the maximum amount of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rate-history-structure} to fetch
9345
9345
  * @param {object} [params] extra parameters specific to the exchange API endpoint
9346
9346
  * @param {int} [params.until] timestamp in ms of the latest funding rate
9347
- * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [availble parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
9347
+ * @param {boolean} [params.paginate] default false, when true will automatically paginate by calling this endpoint multiple times. See in the docs all the [available parameters](https://github.com/ccxt/ccxt/wiki/Manual#pagination-params)
9348
9348
  * @param {string} [params.subType] "linear" or "inverse"
9349
9349
  * @returns {object[]} a list of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rate-history-structure}
9350
9350
  */
@@ -9420,7 +9420,7 @@ export default class binance extends Exchange {
9420
9420
  * @param {string[]|undefined} symbols list of unified market symbols
9421
9421
  * @param {object} [params] extra parameters specific to the exchange API endpoint
9422
9422
  * @param {string} [params.subType] "linear" or "inverse"
9423
- * @returns {object} a dictionary of [funding rates structures]{@link https://docs.ccxt.com/#/?id=funding-rates-structure}, indexe by market symbols
9423
+ * @returns {object[]} a list of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rates-structure}, indexed by market symbols
9424
9424
  */
9425
9425
  await this.loadMarkets();
9426
9426
  symbols = this.marketSymbols(symbols);
@@ -9439,12 +9439,7 @@ export default class binance extends Exchange {
9439
9439
  else {
9440
9440
  throw new NotSupported(this.id + ' fetchFundingRates() supports linear and inverse contracts only');
9441
9441
  }
9442
- const result = [];
9443
- for (let i = 0; i < response.length; i++) {
9444
- const entry = response[i];
9445
- const parsed = this.parseFundingRate(entry);
9446
- result.push(parsed);
9447
- }
9442
+ const result = this.parseFundingRates(response);
9448
9443
  return this.filterByArray(result, 'symbol', symbols);
9449
9444
  }
9450
9445
  parseFundingRate(contract, market = undefined) {
@@ -9488,6 +9483,7 @@ export default class binance extends Exchange {
9488
9483
  'previousFundingRate': undefined,
9489
9484
  'previousFundingTimestamp': undefined,
9490
9485
  'previousFundingDatetime': undefined,
9486
+ 'interval': undefined,
9491
9487
  };
9492
9488
  }
9493
9489
  parseAccountPositions(account, filterClosed = false) {
package/js/src/bingx.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bingx.js';
2
- import type { TransferEntry, Int, OrderSide, OHLCV, FundingRateHistory, Order, OrderType, OrderRequest, Str, Trade, Balances, Transaction, Ticker, OrderBook, Tickers, Market, Strings, Currency, Position, Dict, Leverage, MarginMode, Num, MarginModification, Currencies, int, TradingFeeInterface } from './base/types.js';
2
+ import type { TransferEntry, Int, OrderSide, OHLCV, FundingRateHistory, Order, OrderType, OrderRequest, Str, Trade, Balances, Transaction, Ticker, OrderBook, Tickers, Market, Strings, Currency, Position, Dict, Leverage, MarginMode, Num, MarginModification, Currencies, int, TradingFeeInterface, FundingRate, FundingRates } from './base/types.js';
3
3
  /**
4
4
  * @class bingx
5
5
  * @augments Exchange
@@ -18,45 +18,9 @@ export default class bingx extends Exchange {
18
18
  fetchTrades(symbol: string, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
19
19
  parseTrade(trade: Dict, market?: Market): Trade;
20
20
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
21
- fetchFundingRate(symbol: string, params?: {}): Promise<{
22
- info: any;
23
- symbol: string;
24
- markPrice: number;
25
- indexPrice: number;
26
- interestRate: any;
27
- estimatedSettlePrice: any;
28
- timestamp: any;
29
- datetime: any;
30
- fundingRate: number;
31
- fundingTimestamp: any;
32
- fundingDatetime: any;
33
- nextFundingRate: any;
34
- nextFundingTimestamp: number;
35
- nextFundingDatetime: string;
36
- previousFundingRate: any;
37
- previousFundingTimestamp: any;
38
- previousFundingDatetime: any;
39
- }>;
40
- fetchFundingRates(symbols?: Strings, params?: {}): Promise<any[]>;
41
- parseFundingRate(contract: any, market?: Market): {
42
- info: any;
43
- symbol: string;
44
- markPrice: number;
45
- indexPrice: number;
46
- interestRate: any;
47
- estimatedSettlePrice: any;
48
- timestamp: any;
49
- datetime: any;
50
- fundingRate: number;
51
- fundingTimestamp: any;
52
- fundingDatetime: any;
53
- nextFundingRate: any;
54
- nextFundingTimestamp: number;
55
- nextFundingDatetime: string;
56
- previousFundingRate: any;
57
- previousFundingTimestamp: any;
58
- previousFundingDatetime: any;
59
- };
21
+ fetchFundingRate(symbol: string, params?: {}): Promise<FundingRate>;
22
+ fetchFundingRates(symbols?: Strings, params?: {}): Promise<FundingRates>;
23
+ parseFundingRate(contract: any, market?: Market): FundingRate;
60
24
  fetchFundingRateHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingRateHistory[]>;
61
25
  fetchOpenInterest(symbol: string, params?: {}): Promise<import("./base/types.js").OpenInterest>;
62
26
  parseOpenInterest(interest: any, market?: Market): import("./base/types.js").OpenInterest;
package/js/src/bingx.js CHANGED
@@ -584,7 +584,6 @@ export default class bingx extends Exchange {
584
584
  const networkList = this.safeList(entry, 'networkList');
585
585
  const networks = {};
586
586
  let fee = undefined;
587
- let active = undefined;
588
587
  let depositEnabled = undefined;
589
588
  let withdrawEnabled = undefined;
590
589
  let defaultLimits = {};
@@ -593,8 +592,14 @@ export default class bingx extends Exchange {
593
592
  const network = this.safeString(rawNetwork, 'network');
594
593
  const networkCode = this.networkIdToCode(network);
595
594
  const isDefault = this.safeBool(rawNetwork, 'isDefault');
596
- depositEnabled = this.safeBool(rawNetwork, 'depositEnable');
597
- withdrawEnabled = this.safeBool(rawNetwork, 'withdrawEnable');
595
+ const networkDepositEnabled = this.safeBool(rawNetwork, 'depositEnable');
596
+ if (networkDepositEnabled) {
597
+ depositEnabled = true;
598
+ }
599
+ const networkWithdrawEnabled = this.safeBool(rawNetwork, 'withdrawEnable');
600
+ if (networkDepositEnabled) {
601
+ withdrawEnabled = true;
602
+ }
598
603
  const limits = {
599
604
  'withdraw': {
600
605
  'min': this.safeNumber(rawNetwork, 'withdrawMin'),
@@ -603,21 +608,22 @@ export default class bingx extends Exchange {
603
608
  };
604
609
  if (isDefault) {
605
610
  fee = this.safeNumber(rawNetwork, 'withdrawFee');
606
- active = depositEnabled || withdrawEnabled;
607
611
  defaultLimits = limits;
608
612
  }
613
+ const networkActive = networkDepositEnabled || networkWithdrawEnabled;
609
614
  networks[networkCode] = {
610
615
  'info': rawNetwork,
611
616
  'id': network,
612
617
  'network': networkCode,
613
618
  'fee': fee,
614
- 'active': active,
615
- 'deposit': depositEnabled,
616
- 'withdraw': withdrawEnabled,
619
+ 'active': networkActive,
620
+ 'deposit': networkDepositEnabled,
621
+ 'withdraw': networkWithdrawEnabled,
617
622
  'precision': undefined,
618
623
  'limits': limits,
619
624
  };
620
625
  }
626
+ const active = depositEnabled || withdrawEnabled;
621
627
  result[code] = {
622
628
  'info': entry,
623
629
  'code': code,
@@ -651,7 +657,12 @@ export default class bingx extends Exchange {
651
657
  // "maxNotional": 20000,
652
658
  // "status": 1,
653
659
  // "tickSize": 0.000001,
654
- // "stepSize": 1
660
+ // "stepSize": 1,
661
+ // "apiStateSell": true,
662
+ // "apiStateBuy": true,
663
+ // "timeOnline": 0,
664
+ // "offTime": 0,
665
+ // "maintainTime": 0
655
666
  // },
656
667
  // ...
657
668
  // ]
@@ -760,7 +771,7 @@ export default class bingx extends Exchange {
760
771
  if ((this.safeString(market, 'apiStateOpen') === 'true') && (this.safeString(market, 'apiStateClose') === 'true')) {
761
772
  isActive = true; // swap active
762
773
  }
763
- else if (this.safeBool(market, 'apiStateSell') && this.safeBool(market, 'apiStateBuy')) {
774
+ else if (this.safeBool(market, 'apiStateSell') && this.safeBool(market, 'apiStateBuy') && (this.safeNumber(market, 'status') === 1)) {
764
775
  isActive = true; // spot active
765
776
  }
766
777
  const isInverse = (spot) ? undefined : checkIsInverse;
@@ -1375,27 +1386,19 @@ export default class bingx extends Exchange {
1375
1386
  async fetchFundingRates(symbols = undefined, params = {}) {
1376
1387
  /**
1377
1388
  * @method
1378
- * @name bingx#fetchFundingRate
1379
- * @description fetch the current funding rate
1389
+ * @name bingx#fetchFundingRates
1390
+ * @description fetch the current funding rate for multiple symbols
1380
1391
  * @see https://bingx-api.github.io/docs/#/swapV2/market-api.html#Current%20Funding%20Rate
1381
1392
  * @param {string[]} [symbols] list of unified market symbols
1382
1393
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1383
- * @returns {object} a [funding rate structure]{@link https://docs.ccxt.com/#/?id=funding-rate-structure}
1394
+ * @returns {object[]} a list of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rate-structure}
1384
1395
  */
1385
1396
  await this.loadMarkets();
1386
1397
  symbols = this.marketSymbols(symbols, 'swap', true);
1387
1398
  const response = await this.swapV2PublicGetQuotePremiumIndex(this.extend(params));
1388
1399
  const data = this.safeList(response, 'data', []);
1389
- const filteredResponse = [];
1390
- for (let i = 0; i < data.length; i++) {
1391
- const item = data[i];
1392
- const marketId = this.safeString(item, 'symbol');
1393
- const market = this.safeMarket(marketId, undefined, undefined, 'swap');
1394
- if ((symbols === undefined) || this.inArray(market['symbol'], symbols)) {
1395
- filteredResponse.push(this.parseFundingRate(item, market));
1396
- }
1397
- }
1398
- return filteredResponse;
1400
+ const result = this.parseFundingRates(data);
1401
+ return this.filterByArray(result, 'symbol', symbols);
1399
1402
  }
1400
1403
  parseFundingRate(contract, market = undefined) {
1401
1404
  //
@@ -1427,6 +1430,7 @@ export default class bingx extends Exchange {
1427
1430
  'previousFundingRate': undefined,
1428
1431
  'previousFundingTimestamp': undefined,
1429
1432
  'previousFundingDatetime': undefined,
1433
+ 'interval': undefined,
1430
1434
  };
1431
1435
  }
1432
1436
  async fetchFundingRateHistory(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitfinex2.js';
2
- import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderBook, Str, Transaction, Ticker, Balances, Tickers, Strings, Currency, Market, OpenInterest, Liquidation, OrderRequest, Num, MarginModification, Currencies, TradingFees, Dict, LedgerEntry } from './base/types.js';
2
+ import type { TransferEntry, Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderBook, Str, Transaction, Ticker, Balances, Tickers, Strings, Currency, Market, OpenInterest, Liquidation, OrderRequest, Num, MarginModification, Currencies, TradingFees, Dict, LedgerEntry, FundingRate, FundingRates } from './base/types.js';
3
3
  /**
4
4
  * @class bitfinex2
5
5
  * @augments Exchange
@@ -81,28 +81,9 @@ export default class bitfinex2 extends Exchange {
81
81
  parseLedgerEntryType(type: Str): string;
82
82
  parseLedgerEntry(item: Dict, currency?: Currency): LedgerEntry;
83
83
  fetchLedger(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<LedgerEntry[]>;
84
- fetchFundingRate(symbol: string, params?: {}): Promise<any>;
85
- fetchFundingRates(symbols?: Strings, params?: {}): Promise<{}>;
84
+ fetchFundingRates(symbols?: Strings, params?: {}): Promise<FundingRates>;
86
85
  fetchFundingRateHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingRateHistory[]>;
87
- parseFundingRate(contract: any, market?: Market): {
88
- info: any;
89
- symbol: string;
90
- markPrice: number;
91
- indexPrice: number;
92
- interestRate: any;
93
- estimatedSettlePrice: any;
94
- timestamp: number;
95
- datetime: string;
96
- fundingRate: number;
97
- fundingTimestamp: any;
98
- fundingDatetime: any;
99
- nextFundingRate: number;
100
- nextFundingTimestamp: number;
101
- nextFundingDatetime: string;
102
- previousFundingRate: any;
103
- previousFundingTimestamp: any;
104
- previousFundingDatetime: any;
105
- };
86
+ parseFundingRate(contract: any, market?: Market): FundingRate;
106
87
  parseFundingRateHistory(contract: any, market?: Market): {
107
88
  info: any;
108
89
  symbol: string;
@@ -66,7 +66,7 @@ export default class bitfinex2 extends Exchange {
66
66
  'fetchDepositAddress': true,
67
67
  'fetchDepositsWithdrawals': true,
68
68
  'fetchFundingHistory': false,
69
- 'fetchFundingRate': true,
69
+ 'fetchFundingRate': 'emulated',
70
70
  'fetchFundingRateHistory': true,
71
71
  'fetchFundingRates': true,
72
72
  'fetchIndexOHLCV': false,
@@ -3008,27 +3008,15 @@ export default class bitfinex2 extends Exchange {
3008
3008
  }
3009
3009
  return this.parseLedger(ledgerObjects, currency, since, limit);
3010
3010
  }
3011
- async fetchFundingRate(symbol, params = {}) {
3012
- /**
3013
- * @method
3014
- * @name bitfinex2#fetchFundingRate
3015
- * @description fetch the current funding rate
3016
- * @see https://docs.bitfinex.com/reference/rest-public-derivatives-status
3017
- * @param {string} symbol unified market symbol
3018
- * @param {object} [params] extra parameters specific to the exchange API endpoint
3019
- * @returns {object} a [funding rate structure]{@link https://docs.ccxt.com/#/?id=funding-rate-structure}
3020
- */
3021
- return await this.fetchFundingRates([symbol], params);
3022
- }
3023
3011
  async fetchFundingRates(symbols = undefined, params = {}) {
3024
3012
  /**
3025
3013
  * @method
3026
- * @name bitfinex2#fetchFundingRate
3027
- * @description fetch the current funding rate
3014
+ * @name bitfinex2#fetchFundingRates
3015
+ * @description fetch the current funding rate for multiple symbols
3028
3016
  * @see https://docs.bitfinex.com/reference/rest-public-derivatives-status
3029
3017
  * @param {string[]} symbols list of unified market symbols
3030
3018
  * @param {object} [params] extra parameters specific to the exchange API endpoint
3031
- * @returns {object} a [funding rate structure]{@link https://docs.ccxt.com/#/?id=funding-rate-structure}
3019
+ * @returns {object[]} a list of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rate-structure}
3032
3020
  */
3033
3021
  if (symbols === undefined) {
3034
3022
  throw new ArgumentsRequired(this.id + ' fetchFundingRates() requires a symbols argument');
@@ -3199,6 +3187,7 @@ export default class bitfinex2 extends Exchange {
3199
3187
  'previousFundingRate': undefined,
3200
3188
  'previousFundingTimestamp': undefined,
3201
3189
  'previousFundingDatetime': undefined,
3190
+ 'interval': undefined,
3202
3191
  };
3203
3192
  }
3204
3193
  parseFundingRateHistory(contract, market = undefined) {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitget.js';
2
- import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Market, Strings, Currency, Position, Liquidation, TransferEntry, Leverage, MarginMode, Num, MarginModification, TradingFeeInterface, Currencies, TradingFees, Conversion, CrossBorrowRate, IsolatedBorrowRate, Dict, LeverageTier, int, LedgerEntry } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, FundingHistory, Balances, Str, Transaction, Ticker, OrderBook, Tickers, Market, Strings, Currency, Position, Liquidation, TransferEntry, Leverage, MarginMode, Num, MarginModification, TradingFeeInterface, Currencies, TradingFees, Conversion, CrossBorrowRate, IsolatedBorrowRate, Dict, LeverageTier, int, LedgerEntry, FundingRate } from './base/types.js';
3
3
  /**
4
4
  * @class bitget
5
5
  * @augments Exchange
@@ -77,44 +77,8 @@ export default class bitget extends Exchange {
77
77
  fetchPositions(symbols?: Strings, params?: {}): Promise<Position[]>;
78
78
  parsePosition(position: Dict, market?: Market): Position;
79
79
  fetchFundingRateHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingRateHistory[]>;
80
- fetchFundingRate(symbol: string, params?: {}): Promise<{
81
- info: any;
82
- symbol: string;
83
- markPrice: any;
84
- indexPrice: any;
85
- interestRate: any;
86
- estimatedSettlePrice: any;
87
- timestamp: any;
88
- datetime: any;
89
- fundingRate: number;
90
- fundingTimestamp: any;
91
- fundingDatetime: any;
92
- nextFundingRate: any;
93
- nextFundingTimestamp: any;
94
- nextFundingDatetime: any;
95
- previousFundingRate: any;
96
- previousFundingTimestamp: any;
97
- previousFundingDatetime: any;
98
- }>;
99
- parseFundingRate(contract: any, market?: Market): {
100
- info: any;
101
- symbol: string;
102
- markPrice: any;
103
- indexPrice: any;
104
- interestRate: any;
105
- estimatedSettlePrice: any;
106
- timestamp: any;
107
- datetime: any;
108
- fundingRate: number;
109
- fundingTimestamp: any;
110
- fundingDatetime: any;
111
- nextFundingRate: any;
112
- nextFundingTimestamp: any;
113
- nextFundingDatetime: any;
114
- previousFundingRate: any;
115
- previousFundingTimestamp: any;
116
- previousFundingDatetime: any;
117
- };
80
+ fetchFundingRate(symbol: string, params?: {}): Promise<FundingRate>;
81
+ parseFundingRate(contract: any, market?: Market): FundingRate;
118
82
  fetchFundingHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingHistory[]>;
119
83
  parseFundingHistory(contract: any, market?: Market): {
120
84
  info: any;
package/js/src/bitget.js CHANGED
@@ -1417,12 +1417,15 @@ export default class bitget extends Exchange {
1417
1417
  'sandboxMode': false,
1418
1418
  'networks': {
1419
1419
  'TRX': 'TRC20',
1420
- 'ETH': 'ERC20',
1420
+ 'ERC20': 'ERC20',
1421
1421
  'BEP20': 'BSC',
1422
+ 'ARB': 'ArbitrumOne',
1422
1423
  'ZKSYNC': 'zkSyncEra',
1423
1424
  'STARKNET': 'Starknet',
1424
- 'OPTIMISM': 'Optimism',
1425
- 'ARBITRUM': 'Arbitrum',
1425
+ 'APT': 'APTOS',
1426
+ 'MATIC': 'Polygon',
1427
+ 'VIC': 'VICTION',
1428
+ 'AVAXC': 'C-Chain',
1426
1429
  },
1427
1430
  'networksById': {},
1428
1431
  'fetchPositions': {
@@ -6817,6 +6820,7 @@ export default class bitget extends Exchange {
6817
6820
  'previousFundingRate': undefined,
6818
6821
  'previousFundingTimestamp': undefined,
6819
6822
  'previousFundingDatetime': undefined,
6823
+ 'interval': undefined,
6820
6824
  };
6821
6825
  }
6822
6826
  async fetchFundingHistory(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitmart.js';
2
- import type { Int, OrderSide, Balances, OrderType, OHLCV, Order, Str, Trade, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market, TransferEntry, Num, TradingFeeInterface, Currencies, IsolatedBorrowRates, IsolatedBorrowRate, Dict, OrderRequest, int } from './base/types.js';
2
+ import type { Int, OrderSide, Balances, OrderType, OHLCV, Order, Str, Trade, Transaction, Ticker, OrderBook, Tickers, Strings, Currency, Market, TransferEntry, Num, TradingFeeInterface, Currencies, IsolatedBorrowRates, IsolatedBorrowRate, Dict, OrderRequest, int, FundingRate } from './base/types.js';
3
3
  /**
4
4
  * @class bitmart
5
5
  * @augments Exchange
@@ -124,44 +124,8 @@ export default class bitmart extends Exchange {
124
124
  fetchOpenInterest(symbol: string, params?: {}): Promise<import("./base/types.js").OpenInterest>;
125
125
  parseOpenInterest(interest: any, market?: Market): import("./base/types.js").OpenInterest;
126
126
  setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
127
- fetchFundingRate(symbol: string, params?: {}): Promise<{
128
- info: any;
129
- symbol: string;
130
- markPrice: any;
131
- indexPrice: any;
132
- interestRate: any;
133
- estimatedSettlePrice: any;
134
- timestamp: number;
135
- datetime: string;
136
- fundingRate: number;
137
- fundingTimestamp: any;
138
- fundingDatetime: any;
139
- nextFundingRate: any;
140
- nextFundingTimestamp: any;
141
- nextFundingDatetime: any;
142
- previousFundingRate: number;
143
- previousFundingTimestamp: any;
144
- previousFundingDatetime: any;
145
- }>;
146
- parseFundingRate(contract: any, market?: Market): {
147
- info: any;
148
- symbol: string;
149
- markPrice: any;
150
- indexPrice: any;
151
- interestRate: any;
152
- estimatedSettlePrice: any;
153
- timestamp: number;
154
- datetime: string;
155
- fundingRate: number;
156
- fundingTimestamp: any;
157
- fundingDatetime: any;
158
- nextFundingRate: any;
159
- nextFundingTimestamp: any;
160
- nextFundingDatetime: any;
161
- previousFundingRate: number;
162
- previousFundingTimestamp: any;
163
- previousFundingDatetime: any;
164
- };
127
+ fetchFundingRate(symbol: string, params?: {}): Promise<FundingRate>;
128
+ parseFundingRate(contract: any, market?: Market): FundingRate;
165
129
  fetchPosition(symbol: string, params?: {}): Promise<import("./base/types.js").Position>;
166
130
  fetchPositions(symbols?: Strings, params?: {}): Promise<import("./base/types.js").Position[]>;
167
131
  parsePosition(position: Dict, market?: Market): import("./base/types.js").Position;
package/js/src/bitmart.js CHANGED
@@ -4499,6 +4499,7 @@ export default class bitmart extends Exchange {
4499
4499
  'previousFundingRate': this.safeNumber(contract, 'rate_value'),
4500
4500
  'previousFundingTimestamp': undefined,
4501
4501
  'previousFundingDatetime': undefined,
4502
+ 'interval': undefined,
4502
4503
  };
4503
4504
  }
4504
4505
  async fetchPosition(symbol, params = {}) {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitmex.js';
2
- import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, Liquidation, OrderBook, Balances, Str, Dict, Transaction, Ticker, Tickers, Market, Strings, Currency, Leverage, Leverages, Num, Currencies, int, LedgerEntry } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, Liquidation, OrderBook, Balances, Str, Dict, Transaction, Ticker, Tickers, Market, Strings, Currency, Leverage, Leverages, Num, Currencies, int, LedgerEntry, FundingRate, FundingRates } from './base/types.js';
3
3
  /**
4
4
  * @class bitmex
5
5
  * @augments Exchange
@@ -49,26 +49,8 @@ export default class bitmex extends Exchange {
49
49
  fetchPositions(symbols?: Strings, params?: {}): Promise<import("./base/types.js").Position[]>;
50
50
  parsePosition(position: Dict, market?: Market): import("./base/types.js").Position;
51
51
  withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<Transaction>;
52
- fetchFundingRates(symbols?: Strings, params?: {}): Promise<any>;
53
- parseFundingRate(contract: any, market?: Market): {
54
- info: any;
55
- symbol: string;
56
- markPrice: number;
57
- indexPrice: any;
58
- interestRate: any;
59
- estimatedSettlePrice: number;
60
- timestamp: number;
61
- datetime: string;
62
- fundingRate: number;
63
- fundingTimestamp: string;
64
- fundingDatetime: string;
65
- nextFundingRate: number;
66
- nextFundingTimestamp: any;
67
- nextFundingDatetime: any;
68
- previousFundingRate: any;
69
- previousFundingTimestamp: any;
70
- previousFundingDatetime: any;
71
- };
52
+ fetchFundingRates(symbols?: Strings, params?: {}): Promise<FundingRates>;
53
+ parseFundingRate(contract: any, market?: Market): FundingRate;
72
54
  fetchFundingRateHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<import("./base/types.js").FundingRateHistory[]>;
73
55
  parseFundingRateHistory(info: any, market?: Market): {
74
56
  info: any;
package/js/src/bitmex.js CHANGED
@@ -59,7 +59,7 @@ export default class bitmex extends Exchange {
59
59
  'fetchDepositWithdrawFee': 'emulated',
60
60
  'fetchDepositWithdrawFees': true,
61
61
  'fetchFundingHistory': false,
62
- 'fetchFundingRate': false,
62
+ 'fetchFundingRate': 'emulated',
63
63
  'fetchFundingRateHistory': true,
64
64
  'fetchFundingRates': true,
65
65
  'fetchIndexOHLCV': false,
@@ -2492,7 +2492,7 @@ export default class bitmex extends Exchange {
2492
2492
  * @see https://www.bitmex.com/api/explorer/#!/Instrument/Instrument_getActiveAndIndices
2493
2493
  * @param {string[]|undefined} symbols list of unified market symbols
2494
2494
  * @param {object} [params] extra parameters specific to the exchange API endpoint
2495
- * @returns {object} a dictionary of [funding rates structures]{@link https://docs.ccxt.com/#/?id=funding-rates-structure}, indexe by market symbols
2495
+ * @returns {object[]} a list of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rates-structure}, indexed by market symbols
2496
2496
  */
2497
2497
  await this.loadMarkets();
2498
2498
  const response = await this.publicGetInstrumentActiveAndIndices(params);
@@ -2526,7 +2526,7 @@ export default class bitmex extends Exchange {
2526
2526
  'timestamp': this.parse8601(datetime),
2527
2527
  'datetime': datetime,
2528
2528
  'fundingRate': this.safeNumber(contract, 'fundingRate'),
2529
- 'fundingTimestamp': this.iso8601(fundingDatetime),
2529
+ 'fundingTimestamp': this.parseToNumeric(this.iso8601(fundingDatetime)),
2530
2530
  'fundingDatetime': fundingDatetime,
2531
2531
  'nextFundingRate': this.safeNumber(contract, 'indicativeFundingRate'),
2532
2532
  'nextFundingTimestamp': undefined,
@@ -2534,6 +2534,7 @@ export default class bitmex extends Exchange {
2534
2534
  'previousFundingRate': undefined,
2535
2535
  'previousFundingTimestamp': undefined,
2536
2536
  'previousFundingDatetime': undefined,
2537
+ 'interval': undefined,
2537
2538
  };
2538
2539
  }
2539
2540
  async fetchFundingRateHistory(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/blofin.js';
2
- import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Strings, Currency, Position, TransferEntry, Leverage, Leverages, MarginMode, Num, TradingFeeInterface, Dict, int, LedgerEntry } from './base/types.js';
2
+ import type { Int, OrderSide, OrderType, Trade, OHLCV, Order, FundingRateHistory, OrderRequest, Str, Transaction, Ticker, OrderBook, Balances, Tickers, Market, Strings, Currency, Position, TransferEntry, Leverage, Leverages, MarginMode, Num, TradingFeeInterface, Dict, int, LedgerEntry, FundingRate } from './base/types.js';
3
3
  /**
4
4
  * @class blofin
5
5
  * @augments Exchange
@@ -17,44 +17,8 @@ export default class blofin extends Exchange {
17
17
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
18
18
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
19
19
  fetchFundingRateHistory(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<FundingRateHistory[]>;
20
- parseFundingRate(contract: any, market?: Market): {
21
- info: any;
22
- symbol: string;
23
- markPrice: any;
24
- indexPrice: any;
25
- interestRate: number;
26
- estimatedSettlePrice: any;
27
- timestamp: any;
28
- datetime: any;
29
- fundingRate: number;
30
- fundingTimestamp: number;
31
- fundingDatetime: string;
32
- nextFundingRate: number;
33
- nextFundingTimestamp: number;
34
- nextFundingDatetime: string;
35
- previousFundingRate: any;
36
- previousFundingTimestamp: any;
37
- previousFundingDatetime: any;
38
- };
39
- fetchFundingRate(symbol: string, params?: {}): Promise<{
40
- info: any;
41
- symbol: string;
42
- markPrice: any;
43
- indexPrice: any;
44
- interestRate: number;
45
- estimatedSettlePrice: any;
46
- timestamp: any;
47
- datetime: any;
48
- fundingRate: number;
49
- fundingTimestamp: number;
50
- fundingDatetime: string;
51
- nextFundingRate: number;
52
- nextFundingTimestamp: number;
53
- nextFundingDatetime: string;
54
- previousFundingRate: any;
55
- previousFundingTimestamp: any;
56
- previousFundingDatetime: any;
57
- }>;
20
+ parseFundingRate(contract: any, market?: Market): FundingRate;
21
+ fetchFundingRate(symbol: string, params?: {}): Promise<FundingRate>;
58
22
  parseBalanceByType(type: any, response: any): Balances;
59
23
  parseBalance(response: any): Balances;
60
24
  parseFundingBalance(response: any): Balances;