ccxt 4.4.9 → 4.4.11

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 (117) 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/binance.js +6 -9
  6. package/dist/cjs/src/bingx.js +19 -20
  7. package/dist/cjs/src/bitfinex2.js +5 -16
  8. package/dist/cjs/src/bitget.js +6 -5
  9. package/dist/cjs/src/bitmart.js +1 -0
  10. package/dist/cjs/src/bitmex.js +4 -3
  11. package/dist/cjs/src/blofin.js +4 -13
  12. package/dist/cjs/src/bybit.js +16 -14
  13. package/dist/cjs/src/coinex.js +15 -1
  14. package/dist/cjs/src/delta.js +2 -1
  15. package/dist/cjs/src/deribit.js +1 -0
  16. package/dist/cjs/src/digifinex.js +15 -1
  17. package/dist/cjs/src/gate.js +30 -9
  18. package/dist/cjs/src/hashkey.js +2 -2
  19. package/dist/cjs/src/hitbtc.js +2 -1
  20. package/dist/cjs/src/htx.js +26 -3
  21. package/dist/cjs/src/hyperliquid.js +6 -1
  22. package/dist/cjs/src/kraken.js +41 -13
  23. package/dist/cjs/src/krakenfutures.js +3 -2
  24. package/dist/cjs/src/kucoinfutures.js +11 -0
  25. package/dist/cjs/src/mexc.js +12 -4
  26. package/dist/cjs/src/oceanex.js +83 -3
  27. package/dist/cjs/src/okx.js +15 -0
  28. package/dist/cjs/src/oxfun.js +4 -4
  29. package/dist/cjs/src/phemex.js +1 -0
  30. package/dist/cjs/src/poloniexfutures.js +11 -0
  31. package/dist/cjs/src/pro/deribit.js +122 -1
  32. package/dist/cjs/src/pro/exmo.js +31 -1
  33. package/dist/cjs/src/pro/gate.js +1 -1
  34. package/dist/cjs/src/pro/okx.js +1 -1
  35. package/dist/cjs/src/vertex.js +2 -1
  36. package/dist/cjs/src/whitebit.js +10 -9
  37. package/dist/cjs/src/woo.js +42 -17
  38. package/dist/cjs/src/woofipro.js +15 -2
  39. package/dist/cjs/src/xt.js +2 -0
  40. package/js/ccxt.d.ts +1 -1
  41. package/js/ccxt.js +1 -1
  42. package/js/src/abstract/binance.d.ts +1 -0
  43. package/js/src/abstract/binancecoinm.d.ts +1 -0
  44. package/js/src/abstract/binanceus.d.ts +1 -0
  45. package/js/src/abstract/binanceusdm.d.ts +1 -0
  46. package/js/src/abstract/oceanex.d.ts +5 -0
  47. package/js/src/ascendex.d.ts +3 -21
  48. package/js/src/ascendex.js +2 -1
  49. package/js/src/base/Exchange.d.ts +3 -3
  50. package/js/src/base/types.d.ts +1 -0
  51. package/js/src/binance.d.ts +4 -40
  52. package/js/src/binance.js +6 -9
  53. package/js/src/bingx.d.ts +4 -40
  54. package/js/src/bingx.js +19 -20
  55. package/js/src/bitfinex2.d.ts +3 -22
  56. package/js/src/bitfinex2.js +5 -16
  57. package/js/src/bitget.d.ts +3 -39
  58. package/js/src/bitget.js +6 -5
  59. package/js/src/bitmart.d.ts +3 -39
  60. package/js/src/bitmart.js +1 -0
  61. package/js/src/bitmex.d.ts +3 -21
  62. package/js/src/bitmex.js +4 -3
  63. package/js/src/blofin.d.ts +3 -39
  64. package/js/src/blofin.js +4 -13
  65. package/js/src/bybit.d.ts +3 -21
  66. package/js/src/bybit.js +16 -14
  67. package/js/src/coinex.d.ts +5 -40
  68. package/js/src/coinex.js +15 -1
  69. package/js/src/delta.d.ts +4 -40
  70. package/js/src/delta.js +2 -1
  71. package/js/src/deribit.d.ts +3 -39
  72. package/js/src/deribit.js +1 -0
  73. package/js/src/digifinex.d.ts +4 -21
  74. package/js/src/digifinex.js +15 -1
  75. package/js/src/gate.d.ts +6 -41
  76. package/js/src/gate.js +30 -9
  77. package/js/src/hashkey.d.ts +4 -40
  78. package/js/src/hashkey.js +2 -2
  79. package/js/src/hitbtc.d.ts +4 -40
  80. package/js/src/hitbtc.js +2 -1
  81. package/js/src/htx.d.ts +5 -40
  82. package/js/src/htx.js +26 -3
  83. package/js/src/hyperliquid.js +6 -1
  84. package/js/src/kraken.js +41 -13
  85. package/js/src/krakenfutures.d.ts +3 -21
  86. package/js/src/krakenfutures.js +3 -2
  87. package/js/src/kucoinfutures.d.ts +3 -20
  88. package/js/src/kucoinfutures.js +11 -0
  89. package/js/src/mexc.d.ts +3 -39
  90. package/js/src/mexc.js +12 -4
  91. package/js/src/oceanex.d.ts +9 -1
  92. package/js/src/oceanex.js +83 -3
  93. package/js/src/okx.d.ts +4 -39
  94. package/js/src/okx.js +16 -1
  95. package/js/src/oxfun.d.ts +3 -21
  96. package/js/src/oxfun.js +4 -4
  97. package/js/src/phemex.d.ts +3 -39
  98. package/js/src/phemex.js +1 -0
  99. package/js/src/poloniexfutures.d.ts +3 -20
  100. package/js/src/poloniexfutures.js +11 -0
  101. package/js/src/pro/deribit.d.ts +5 -1
  102. package/js/src/pro/deribit.js +122 -1
  103. package/js/src/pro/exmo.d.ts +2 -1
  104. package/js/src/pro/exmo.js +31 -1
  105. package/js/src/pro/gate.js +1 -1
  106. package/js/src/pro/okx.js +1 -1
  107. package/js/src/vertex.d.ts +4 -40
  108. package/js/src/vertex.js +2 -1
  109. package/js/src/whitebit.d.ts +4 -21
  110. package/js/src/whitebit.js +10 -9
  111. package/js/src/woo.d.ts +4 -40
  112. package/js/src/woo.js +42 -17
  113. package/js/src/woofipro.d.ts +5 -40
  114. package/js/src/woofipro.js +15 -2
  115. package/js/src/xt.d.ts +3 -39
  116. package/js/src/xt.js +2 -0
  117. 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
@@ -1094,7 +1094,8 @@ export default class binance extends Exchange {
1094
1094
  'repay-futures-negative-balance': 150,
1095
1095
  'listenKey': 1,
1096
1096
  'asset-collection': 3,
1097
- 'margin/repay-debt': 0.4, // Weight(Order): 0.4 => (1000 / (50 * 0.4)) * 60 = 3000
1097
+ 'margin/repay-debt': 0.4,
1098
+ 'um/feeBurn': 1,
1098
1099
  },
1099
1100
  'put': {
1100
1101
  'listenKey': 1, // 1
@@ -9344,7 +9345,7 @@ export default class binance extends Exchange {
9344
9345
  * @param {int} [limit] the maximum amount of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rate-history-structure} to fetch
9345
9346
  * @param {object} [params] extra parameters specific to the exchange API endpoint
9346
9347
  * @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)
9348
+ * @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
9349
  * @param {string} [params.subType] "linear" or "inverse"
9349
9350
  * @returns {object[]} a list of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rate-history-structure}
9350
9351
  */
@@ -9420,7 +9421,7 @@ export default class binance extends Exchange {
9420
9421
  * @param {string[]|undefined} symbols list of unified market symbols
9421
9422
  * @param {object} [params] extra parameters specific to the exchange API endpoint
9422
9423
  * @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
9424
+ * @returns {object[]} a list of [funding rate structures]{@link https://docs.ccxt.com/#/?id=funding-rates-structure}, indexed by market symbols
9424
9425
  */
9425
9426
  await this.loadMarkets();
9426
9427
  symbols = this.marketSymbols(symbols);
@@ -9439,12 +9440,7 @@ export default class binance extends Exchange {
9439
9440
  else {
9440
9441
  throw new NotSupported(this.id + ' fetchFundingRates() supports linear and inverse contracts only');
9441
9442
  }
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
- }
9443
+ const result = this.parseFundingRates(response);
9448
9444
  return this.filterByArray(result, 'symbol', symbols);
9449
9445
  }
9450
9446
  parseFundingRate(contract, market = undefined) {
@@ -9488,6 +9484,7 @@ export default class binance extends Exchange {
9488
9484
  'previousFundingRate': undefined,
9489
9485
  'previousFundingTimestamp': undefined,
9490
9486
  'previousFundingDatetime': undefined,
9487
+ 'interval': undefined,
9491
9488
  };
9492
9489
  }
9493
9490
  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,
@@ -1380,27 +1386,19 @@ export default class bingx extends Exchange {
1380
1386
  async fetchFundingRates(symbols = undefined, params = {}) {
1381
1387
  /**
1382
1388
  * @method
1383
- * @name bingx#fetchFundingRate
1384
- * @description fetch the current funding rate
1389
+ * @name bingx#fetchFundingRates
1390
+ * @description fetch the current funding rate for multiple symbols
1385
1391
  * @see https://bingx-api.github.io/docs/#/swapV2/market-api.html#Current%20Funding%20Rate
1386
1392
  * @param {string[]} [symbols] list of unified market symbols
1387
1393
  * @param {object} [params] extra parameters specific to the exchange API endpoint
1388
- * @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}
1389
1395
  */
1390
1396
  await this.loadMarkets();
1391
1397
  symbols = this.marketSymbols(symbols, 'swap', true);
1392
1398
  const response = await this.swapV2PublicGetQuotePremiumIndex(this.extend(params));
1393
1399
  const data = this.safeList(response, 'data', []);
1394
- const filteredResponse = [];
1395
- for (let i = 0; i < data.length; i++) {
1396
- const item = data[i];
1397
- const marketId = this.safeString(item, 'symbol');
1398
- const market = this.safeMarket(marketId, undefined, undefined, 'swap');
1399
- if ((symbols === undefined) || this.inArray(market['symbol'], symbols)) {
1400
- filteredResponse.push(this.parseFundingRate(item, market));
1401
- }
1402
- }
1403
- return filteredResponse;
1400
+ const result = this.parseFundingRates(data);
1401
+ return this.filterByArray(result, 'symbol', symbols);
1404
1402
  }
1405
1403
  parseFundingRate(contract, market = undefined) {
1406
1404
  //
@@ -1432,6 +1430,7 @@ export default class bingx extends Exchange {
1432
1430
  'previousFundingRate': undefined,
1433
1431
  'previousFundingTimestamp': undefined,
1434
1432
  'previousFundingDatetime': undefined,
1433
+ 'interval': undefined,
1435
1434
  };
1436
1435
  }
1437
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
@@ -1416,16 +1416,16 @@ export default class bitget extends Exchange {
1416
1416
  },
1417
1417
  'sandboxMode': false,
1418
1418
  'networks': {
1419
- 'TRX': 'TRC20',
1420
- 'ETH': 'ERC20',
1419
+ 'TRC20': 'TRC20',
1420
+ 'ERC20': 'ERC20',
1421
1421
  'BEP20': 'BSC',
1422
+ 'ARB': 'ArbitrumOne',
1422
1423
  'ZKSYNC': 'zkSyncEra',
1423
1424
  'STARKNET': 'Starknet',
1424
- 'OPTIMISM': 'Optimism',
1425
- 'ARBITRUM': 'Arbitrum',
1426
1425
  'APT': 'APTOS',
1427
- 'MATIC': 'POLYGON',
1426
+ 'MATIC': 'Polygon',
1428
1427
  'VIC': 'VICTION',
1428
+ 'AVAXC': 'C-Chain',
1429
1429
  },
1430
1430
  'networksById': {},
1431
1431
  'fetchPositions': {
@@ -6820,6 +6820,7 @@ export default class bitget extends Exchange {
6820
6820
  'previousFundingRate': undefined,
6821
6821
  'previousFundingTimestamp': undefined,
6822
6822
  'previousFundingDatetime': undefined,
6823
+ 'interval': undefined,
6823
6824
  };
6824
6825
  }
6825
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;