ccxt 4.4.15 → 4.4.17

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 (211) hide show
  1. package/README.md +3 -3
  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 -2
  5. package/dist/cjs/src/base/Exchange.js +14 -1
  6. package/dist/cjs/src/bigone.js +4 -2
  7. package/dist/cjs/src/binance.js +72 -8
  8. package/dist/cjs/src/bingx.js +62 -2
  9. package/dist/cjs/src/bit2c.js +3 -1
  10. package/dist/cjs/src/bitbank.js +4 -2
  11. package/dist/cjs/src/bitbns.js +4 -2
  12. package/dist/cjs/src/bitfinex.js +2 -0
  13. package/dist/cjs/src/bitfinex2.js +2 -0
  14. package/dist/cjs/src/bitget.js +3 -2
  15. package/dist/cjs/src/bitmart.js +2 -1
  16. package/dist/cjs/src/bitmex.js +2 -2
  17. package/dist/cjs/src/bitso.js +3 -2
  18. package/dist/cjs/src/bitstamp.js +4 -2
  19. package/dist/cjs/src/bitvavo.js +6 -4
  20. package/dist/cjs/src/blockchaincom.js +9 -7
  21. package/dist/cjs/src/blofin.js +23 -0
  22. package/dist/cjs/src/bybit.js +9 -5
  23. package/dist/cjs/src/cex.js +3 -2
  24. package/dist/cjs/src/coinbase.js +1 -1
  25. package/dist/cjs/src/coinbaseinternational.js +3 -8
  26. package/dist/cjs/src/coinex.js +2 -2
  27. package/dist/cjs/src/coinone.js +4 -1
  28. package/dist/cjs/src/coinsph.js +2 -2
  29. package/dist/cjs/src/cryptocom.js +2 -1
  30. package/dist/cjs/src/currencycom.js +2 -2
  31. package/dist/cjs/src/delta.js +4 -2
  32. package/dist/cjs/src/deribit.js +4 -2
  33. package/dist/cjs/src/digifinex.js +3 -1
  34. package/dist/cjs/src/exmo.js +4 -2
  35. package/dist/cjs/src/gate.js +3 -2
  36. package/dist/cjs/src/gemini.js +1 -0
  37. package/dist/cjs/src/hashkey.js +4 -2
  38. package/dist/cjs/src/hitbtc.js +4 -3
  39. package/dist/cjs/src/hollaex.js +3 -2
  40. package/dist/cjs/src/htx.js +12 -2
  41. package/dist/cjs/src/hyperliquid.js +8 -7
  42. package/dist/cjs/src/idex.js +1 -1
  43. package/dist/cjs/src/independentreserve.js +1 -1
  44. package/dist/cjs/src/indodax.js +1 -1
  45. package/dist/cjs/src/kraken.js +4 -2
  46. package/dist/cjs/src/kucoin.js +2 -1
  47. package/dist/cjs/src/kucoinfutures.js +3 -1
  48. package/dist/cjs/src/kuna.js +5 -12
  49. package/dist/cjs/src/lbank.js +11 -9
  50. package/dist/cjs/src/lykke.js +4 -2
  51. package/dist/cjs/src/mexc.js +3 -2
  52. package/dist/cjs/src/ndax.js +30 -2
  53. package/dist/cjs/src/oceanex.js +1 -1
  54. package/dist/cjs/src/okcoin.js +6 -4
  55. package/dist/cjs/src/okx.js +48 -3
  56. package/dist/cjs/src/onetrading.js +3 -2
  57. package/dist/cjs/src/oxfun.js +3 -3
  58. package/dist/cjs/src/paymium.js +2 -1
  59. package/dist/cjs/src/phemex.js +6 -4
  60. package/dist/cjs/src/poloniex.js +4 -2
  61. package/dist/cjs/src/probit.js +3 -2
  62. package/dist/cjs/src/timex.js +4 -9
  63. package/dist/cjs/src/tokocrypto.js +3 -3
  64. package/dist/cjs/src/upbit.js +3 -2
  65. package/dist/cjs/src/wavesexchange.js +7 -7
  66. package/dist/cjs/src/wazirx.js +22 -2
  67. package/dist/cjs/src/whitebit.js +4 -2
  68. package/dist/cjs/src/woo.js +4 -2
  69. package/dist/cjs/src/xt.js +4 -2
  70. package/dist/cjs/src/yobit.js +30 -21
  71. package/dist/cjs/src/zonda.js +27 -2
  72. package/js/ccxt.d.ts +1 -1
  73. package/js/ccxt.js +1 -1
  74. package/js/src/abstract/mexc.d.ts +1 -0
  75. package/js/src/ascendex.d.ts +3 -9
  76. package/js/src/ascendex.js +2 -2
  77. package/js/src/base/Exchange.d.ts +9 -7
  78. package/js/src/base/Exchange.js +14 -1
  79. package/js/src/base/types.d.ts +4 -3
  80. package/js/src/bigone.d.ts +2 -8
  81. package/js/src/bigone.js +4 -2
  82. package/js/src/binance.d.ts +4 -8
  83. package/js/src/binance.js +72 -8
  84. package/js/src/bingx.d.ts +5 -10
  85. package/js/src/bingx.js +62 -2
  86. package/js/src/bit2c.d.ts +3 -15
  87. package/js/src/bit2c.js +3 -1
  88. package/js/src/bitbank.d.ts +2 -8
  89. package/js/src/bitbank.js +4 -2
  90. package/js/src/bitbns.d.ts +2 -8
  91. package/js/src/bitbns.js +4 -2
  92. package/js/src/bitfinex.d.ts +3 -15
  93. package/js/src/bitfinex.js +2 -0
  94. package/js/src/bitfinex2.d.ts +3 -15
  95. package/js/src/bitfinex2.js +2 -0
  96. package/js/src/bitget.d.ts +3 -15
  97. package/js/src/bitget.js +3 -2
  98. package/js/src/bitmart.d.ts +3 -15
  99. package/js/src/bitmart.js +2 -1
  100. package/js/src/bitmex.d.ts +2 -8
  101. package/js/src/bitmex.js +2 -2
  102. package/js/src/bitso.d.ts +2 -8
  103. package/js/src/bitso.js +3 -2
  104. package/js/src/bitstamp.d.ts +2 -8
  105. package/js/src/bitstamp.js +4 -2
  106. package/js/src/bitvavo.d.ts +3 -9
  107. package/js/src/bitvavo.js +6 -4
  108. package/js/src/blockchaincom.d.ts +2 -2
  109. package/js/src/blockchaincom.js +9 -7
  110. package/js/src/blofin.d.ts +1 -0
  111. package/js/src/blofin.js +23 -0
  112. package/js/src/bybit.d.ts +4 -16
  113. package/js/src/bybit.js +9 -5
  114. package/js/src/cex.d.ts +2 -8
  115. package/js/src/cex.js +3 -2
  116. package/js/src/coinbase.d.ts +3 -9
  117. package/js/src/coinbase.js +1 -1
  118. package/js/src/coinbaseinternational.d.ts +1 -19
  119. package/js/src/coinbaseinternational.js +3 -8
  120. package/js/src/coinex.d.ts +4 -22
  121. package/js/src/coinex.js +2 -2
  122. package/js/src/coinone.d.ts +2 -2
  123. package/js/src/coinone.js +4 -1
  124. package/js/src/coinsph.d.ts +3 -15
  125. package/js/src/coinsph.js +2 -2
  126. package/js/src/cryptocom.d.ts +3 -3
  127. package/js/src/cryptocom.js +2 -1
  128. package/js/src/currencycom.d.ts +3 -15
  129. package/js/src/currencycom.js +2 -2
  130. package/js/src/delta.d.ts +3 -15
  131. package/js/src/delta.js +4 -2
  132. package/js/src/deribit.d.ts +2 -8
  133. package/js/src/deribit.js +4 -2
  134. package/js/src/digifinex.d.ts +3 -9
  135. package/js/src/digifinex.js +3 -1
  136. package/js/src/exmo.d.ts +2 -8
  137. package/js/src/exmo.js +4 -2
  138. package/js/src/gate.d.ts +2 -9
  139. package/js/src/gate.js +3 -2
  140. package/js/src/gemini.d.ts +3 -3
  141. package/js/src/gemini.js +1 -0
  142. package/js/src/hashkey.d.ts +3 -15
  143. package/js/src/hashkey.js +4 -2
  144. package/js/src/hitbtc.d.ts +2 -9
  145. package/js/src/hitbtc.js +4 -3
  146. package/js/src/hollaex.d.ts +3 -9
  147. package/js/src/hollaex.js +3 -2
  148. package/js/src/htx.d.ts +3 -3
  149. package/js/src/htx.js +12 -2
  150. package/js/src/hyperliquid.js +8 -7
  151. package/js/src/idex.d.ts +3 -15
  152. package/js/src/idex.js +1 -1
  153. package/js/src/independentreserve.d.ts +3 -15
  154. package/js/src/independentreserve.js +1 -1
  155. package/js/src/indodax.d.ts +2 -2
  156. package/js/src/indodax.js +1 -1
  157. package/js/src/kraken.d.ts +4 -22
  158. package/js/src/kraken.js +4 -2
  159. package/js/src/kucoin.d.ts +5 -23
  160. package/js/src/kucoin.js +2 -1
  161. package/js/src/kucoinfutures.d.ts +2 -8
  162. package/js/src/kucoinfutures.js +3 -1
  163. package/js/src/kuna.d.ts +5 -47
  164. package/js/src/kuna.js +5 -12
  165. package/js/src/lbank.d.ts +4 -16
  166. package/js/src/lbank.js +11 -9
  167. package/js/src/lykke.d.ts +2 -8
  168. package/js/src/lykke.js +4 -2
  169. package/js/src/mexc.d.ts +5 -17
  170. package/js/src/mexc.js +3 -2
  171. package/js/src/ndax.d.ts +4 -22
  172. package/js/src/ndax.js +30 -2
  173. package/js/src/oceanex.d.ts +3 -9
  174. package/js/src/oceanex.js +1 -1
  175. package/js/src/okcoin.d.ts +4 -10
  176. package/js/src/okcoin.js +6 -4
  177. package/js/src/okx.d.ts +5 -10
  178. package/js/src/okx.js +48 -3
  179. package/js/src/onetrading.d.ts +4 -22
  180. package/js/src/onetrading.js +3 -2
  181. package/js/src/oxfun.d.ts +3 -15
  182. package/js/src/oxfun.js +3 -3
  183. package/js/src/paymium.d.ts +5 -23
  184. package/js/src/paymium.js +2 -1
  185. package/js/src/phemex.d.ts +2 -8
  186. package/js/src/phemex.js +6 -4
  187. package/js/src/poloniex.d.ts +2 -8
  188. package/js/src/poloniex.js +4 -2
  189. package/js/src/probit.d.ts +4 -16
  190. package/js/src/probit.js +3 -2
  191. package/js/src/timex.d.ts +4 -38
  192. package/js/src/timex.js +4 -9
  193. package/js/src/tokocrypto.d.ts +2 -8
  194. package/js/src/tokocrypto.js +3 -3
  195. package/js/src/upbit.d.ts +5 -23
  196. package/js/src/upbit.js +3 -2
  197. package/js/src/wavesexchange.d.ts +2 -9
  198. package/js/src/wavesexchange.js +7 -7
  199. package/js/src/wazirx.d.ts +2 -8
  200. package/js/src/wazirx.js +22 -2
  201. package/js/src/whitebit.d.ts +2 -8
  202. package/js/src/whitebit.js +4 -2
  203. package/js/src/woo.d.ts +2 -8
  204. package/js/src/woo.js +4 -2
  205. package/js/src/xt.d.ts +3 -15
  206. package/js/src/xt.js +4 -2
  207. package/js/src/yobit.d.ts +2 -26
  208. package/js/src/yobit.js +30 -21
  209. package/js/src/zonda.d.ts +4 -16
  210. package/js/src/zonda.js +27 -2
  211. package/package.json +1 -1
package/js/src/binance.js CHANGED
@@ -114,6 +114,7 @@ export default class binance extends Exchange {
114
114
  'fetchMarketLeverageTiers': 'emulated',
115
115
  'fetchMarkets': true,
116
116
  'fetchMarkOHLCV': true,
117
+ 'fetchMarkPrice': true,
117
118
  'fetchMarkPrices': true,
118
119
  'fetchMyLiquidations': true,
119
120
  'fetchMySettlementHistory': true,
@@ -2675,11 +2676,18 @@ export default class binance extends Exchange {
2675
2676
  if (apiBackup !== undefined) {
2676
2677
  return undefined;
2677
2678
  }
2678
- const promises = [this.sapiGetCapitalConfigGetall(params), this.sapiGetMarginAllAssets(params)];
2679
+ const promises = [this.sapiGetCapitalConfigGetall(params)];
2680
+ const fetchMargins = this.safeBool(this.options, 'fetchMargins', false);
2681
+ if (fetchMargins) {
2682
+ promises.push(this.sapiGetMarginAllPairs(params));
2683
+ }
2679
2684
  const results = await Promise.all(promises);
2680
2685
  const responseCurrencies = results[0];
2681
- const responseMarginables = results[1];
2682
- const marginablesById = this.indexBy(responseMarginables, 'assetName');
2686
+ let marginablesById = undefined;
2687
+ if (fetchMargins) {
2688
+ const responseMarginables = results[1];
2689
+ marginablesById = this.indexBy(responseMarginables, 'assetName');
2690
+ }
2683
2691
  const result = {};
2684
2692
  for (let i = 0; i < responseCurrencies.length; i++) {
2685
2693
  //
@@ -4244,12 +4252,49 @@ export default class binance extends Exchange {
4244
4252
  }
4245
4253
  return this.parseTickers(response, symbols);
4246
4254
  }
4255
+ async fetchMarkPrice(symbol, params = {}) {
4256
+ /**
4257
+ * @method
4258
+ * @name binance#fetchMarkPrice
4259
+ * @description fetches mark price for the market
4260
+ * @see https://binance-docs.github.io/apidocs/futures/en/#mark-price
4261
+ * @see https://binance-docs.github.io/apidocs/delivery/en/#index-price-and-mark-price
4262
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
4263
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
4264
+ * @param {string} [params.subType] "linear" or "inverse"
4265
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
4266
+ */
4267
+ await this.loadMarkets();
4268
+ const market = this.market(symbol);
4269
+ let type = undefined;
4270
+ [type, params] = this.handleMarketTypeAndParams('fetchMarkPrice', market, params, 'swap');
4271
+ let subType = undefined;
4272
+ [subType, params] = this.handleSubTypeAndParams('fetchMarkPrice', market, params, 'linear');
4273
+ const request = {
4274
+ 'symbol': market['id'],
4275
+ };
4276
+ let response = undefined;
4277
+ if (this.isLinear(type, subType)) {
4278
+ response = await this.fapiPublicGetPremiumIndex(this.extend(request, params));
4279
+ }
4280
+ else if (this.isInverse(type, subType)) {
4281
+ response = await this.dapiPublicGetPremiumIndex(this.extend(request, params));
4282
+ }
4283
+ else {
4284
+ throw new NotSupported(this.id + ' fetchMarkPrice() does not support ' + type + ' markets yet');
4285
+ }
4286
+ if (Array.isArray(response)) {
4287
+ return this.parseTicker(this.safeDict(response, 0, {}), market);
4288
+ }
4289
+ return this.parseTicker(response, market);
4290
+ }
4247
4291
  async fetchMarkPrices(symbols = undefined, params = {}) {
4248
4292
  /**
4249
4293
  * @method
4250
4294
  * @name binance#fetchMarkPrices
4251
4295
  * @description fetches mark prices for multiple markets
4252
4296
  * @see https://binance-docs.github.io/apidocs/futures/en/#mark-price
4297
+ * @see https://binance-docs.github.io/apidocs/delivery/en/#index-price-and-mark-price
4253
4298
  * @param {string[]} [symbols] unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
4254
4299
  * @param {object} [params] extra parameters specific to the exchange API endpoint
4255
4300
  * @param {string} [params.subType] "linear" or "inverse"
@@ -4259,9 +4304,9 @@ export default class binance extends Exchange {
4259
4304
  symbols = this.marketSymbols(symbols, undefined, true, true, true);
4260
4305
  const market = this.getMarketFromSymbols(symbols);
4261
4306
  let type = undefined;
4262
- [type, params] = this.handleMarketTypeAndParams('fetchTickers', market, params, 'swap');
4307
+ [type, params] = this.handleMarketTypeAndParams('fetchMarkPrices', market, params, 'swap');
4263
4308
  let subType = undefined;
4264
- [subType, params] = this.handleSubTypeAndParams('fetchTickers', market, params, 'linear');
4309
+ [subType, params] = this.handleSubTypeAndParams('fetchMarkPrices', market, params, 'linear');
4265
4310
  let response = undefined;
4266
4311
  if (this.isLinear(type, subType)) {
4267
4312
  response = await this.fapiPublicGetPremiumIndex(params);
@@ -8724,8 +8769,27 @@ export default class binance extends Exchange {
8724
8769
  // }
8725
8770
  // }
8726
8771
  //
8772
+ return this.parseDepositAddress(response, currency);
8773
+ }
8774
+ parseDepositAddress(response, currency = undefined) {
8775
+ //
8776
+ // {
8777
+ // "currency": "XRP",
8778
+ // "address": "rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh",
8779
+ // "tag": "108618262",
8780
+ // "info": {
8781
+ // "coin": "XRP",
8782
+ // "address": "rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh",
8783
+ // "tag": "108618262",
8784
+ // "url": "https://bithomp.com/explorer/rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh"
8785
+ // }
8786
+ // }
8787
+ //
8788
+ const info = this.safeDict(response, 'info', {});
8789
+ const url = this.safeString(info, 'url');
8727
8790
  const address = this.safeString(response, 'address');
8728
- const url = this.safeString(response, 'url');
8791
+ const currencyId = this.safeString(response, 'currency');
8792
+ const code = this.safeCurrencyCode(currencyId, currency);
8729
8793
  let impliedNetwork = undefined;
8730
8794
  if (url !== undefined) {
8731
8795
  const reverseNetworks = this.safeDict(this.options, 'reverseNetworks', {});
@@ -8753,11 +8817,11 @@ export default class binance extends Exchange {
8753
8817
  }
8754
8818
  this.checkAddress(address);
8755
8819
  return {
8820
+ 'info': response,
8756
8821
  'currency': code,
8822
+ 'network': impliedNetwork,
8757
8823
  'address': address,
8758
8824
  'tag': tag,
8759
- 'network': impliedNetwork,
8760
- 'info': response,
8761
8825
  };
8762
8826
  }
8763
8827
  async fetchTransactionFees(codes = undefined, params = {}) {
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, FundingRate, FundingRates } 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, DepositAddress } from './base/types.js';
3
3
  /**
4
4
  * @class bingx
5
5
  * @augments Exchange
@@ -26,6 +26,7 @@ export default class bingx extends Exchange {
26
26
  parseOpenInterest(interest: any, market?: Market): import("./base/types.js").OpenInterest;
27
27
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
28
28
  fetchTickers(symbols?: Strings, params?: {}): Promise<Tickers>;
29
+ fetchMarkPrice(symbol: string, params?: {}): Promise<Ticker>;
29
30
  fetchMarkPrices(symbols?: Strings, params?: {}): Promise<Tickers>;
30
31
  parseTicker(ticker: Dict, market?: Market): Ticker;
31
32
  fetchBalance(params?: {}): Promise<Balances>;
@@ -56,15 +57,9 @@ export default class bingx extends Exchange {
56
57
  transfer(code: string, amount: number, fromAccount: string, toAccount: string, params?: {}): Promise<TransferEntry>;
57
58
  fetchTransfers(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<TransferEntry[]>;
58
59
  parseTransfer(transfer: Dict, currency?: Currency): TransferEntry;
59
- fetchDepositAddressesByNetwork(code: string, params?: {}): Promise<import("./base/types.js").Dictionary<any>>;
60
- fetchDepositAddress(code: string, params?: {}): Promise<import("./base/types.js").Dictionary<any>>;
61
- parseDepositAddress(depositAddress: any, currency?: Currency): {
62
- currency: string;
63
- address: string;
64
- tag: string;
65
- network: string;
66
- info: any;
67
- };
60
+ fetchDepositAddressesByNetwork(code: string, params?: {}): Promise<DepositAddress[]>;
61
+ fetchDepositAddress(code: string, params?: {}): Promise<DepositAddress>;
62
+ parseDepositAddress(depositAddress: any, currency?: Currency): DepositAddress;
68
63
  fetchDeposits(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
69
64
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
70
65
  parseTransaction(transaction: Dict, currency?: Currency): Transaction;
package/js/src/bingx.js CHANGED
@@ -55,6 +55,7 @@ export default class bingx extends Exchange {
55
55
  'fetchClosedOrders': true,
56
56
  'fetchCurrencies': true,
57
57
  'fetchDepositAddress': true,
58
+ 'fetchDepositAddresses': false,
58
59
  'fetchDepositAddressesByNetwork': true,
59
60
  'fetchDeposits': true,
60
61
  'fetchDepositWithdrawFee': 'emulated',
@@ -68,6 +69,7 @@ export default class bingx extends Exchange {
68
69
  'fetchMarginMode': true,
69
70
  'fetchMarkets': true,
70
71
  'fetchMarkOHLCV': true,
72
+ 'fetchMarkPrice': true,
71
73
  'fetchMarkPrices': true,
72
74
  'fetchMyLiquidations': true,
73
75
  'fetchOHLCV': true,
@@ -1733,6 +1735,64 @@ export default class bingx extends Exchange {
1733
1735
  const tickers = this.safeList(response, 'data');
1734
1736
  return this.parseTickers(tickers, symbols);
1735
1737
  }
1738
+ async fetchMarkPrice(symbol, params = {}) {
1739
+ /**
1740
+ * @method
1741
+ * @name bingx#fetchMarkPrice
1742
+ * @description fetches mark prices for the market
1743
+ * @see https://bingx-api.github.io/docs/#/en-us/swapV2/market-api.html#Mark%20Price%20and%20Funding%20Rate
1744
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
1745
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
1746
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
1747
+ */
1748
+ await this.loadMarkets();
1749
+ const market = this.market(symbol);
1750
+ let subType = undefined;
1751
+ [subType, params] = this.handleSubTypeAndParams('fetchMarkPrice', market, params, 'linear');
1752
+ const request = {
1753
+ 'symbol': market['id'],
1754
+ };
1755
+ let response = undefined;
1756
+ if (subType === 'inverse') {
1757
+ response = await this.cswapV1PublicGetMarketPremiumIndex(this.extend(request, params));
1758
+ //
1759
+ // {
1760
+ // "code": 0,
1761
+ // "msg": "",
1762
+ // "timestamp": 1728577213289,
1763
+ // "data": [
1764
+ // {
1765
+ // "symbol": "ETH-USD",
1766
+ // "lastFundingRate": "0.0001",
1767
+ // "markPrice": "2402.68",
1768
+ // "indexPrice": "2404.92",
1769
+ // "nextFundingTime": 1728604800000
1770
+ // }
1771
+ // ]
1772
+ // }
1773
+ //
1774
+ }
1775
+ else {
1776
+ response = await this.swapV2PublicGetQuotePremiumIndex(this.extend(request, params));
1777
+ //
1778
+ // {
1779
+ // "code": 0,
1780
+ // "msg": "",
1781
+ // "data": {
1782
+ // "symbol": "ETH-USDT",
1783
+ // "markPrice": "2408.40",
1784
+ // "indexPrice": "2409.62",
1785
+ // "lastFundingRate": "0.00009900",
1786
+ // "nextFundingTime": 1728604800000
1787
+ // }
1788
+ // }
1789
+ //
1790
+ }
1791
+ if (Array.isArray(response['data'])) {
1792
+ return this.parseTicker(this.safeDict(response['data'], 0, {}), market);
1793
+ }
1794
+ return this.parseTicker(response['data'], market);
1795
+ }
1736
1796
  async fetchMarkPrices(symbols = undefined, params = {}) {
1737
1797
  /**
1738
1798
  * @method
@@ -4548,11 +4608,11 @@ export default class bingx extends Exchange {
4548
4608
  }
4549
4609
  this.checkAddress(address);
4550
4610
  return {
4611
+ 'info': depositAddress,
4551
4612
  'currency': code,
4613
+ 'network': networkCode,
4552
4614
  'address': address,
4553
4615
  'tag': tag,
4554
- 'network': networkCode,
4555
- 'info': depositAddress,
4556
4616
  };
4557
4617
  }
4558
4618
  async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
package/js/src/bit2c.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bit2c.js';
2
- import type { Balances, Currency, Dict, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, TradingFees, int } from './base/types.js';
2
+ import type { Balances, Currency, Dict, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, TradingFees, int, DepositAddress } from './base/types.js';
3
3
  /**
4
4
  * @class bit2c
5
5
  * @augments Exchange
@@ -22,20 +22,8 @@ export default class bit2c extends Exchange {
22
22
  removeCommaFromValue(str: any): string;
23
23
  parseTrade(trade: Dict, market?: Market): Trade;
24
24
  isFiat(code: any): boolean;
25
- fetchDepositAddress(code: string, params?: {}): Promise<{
26
- currency: string;
27
- network: any;
28
- address: string;
29
- tag: any;
30
- info: any;
31
- }>;
32
- parseDepositAddress(depositAddress: any, currency?: Currency): {
33
- currency: string;
34
- network: any;
35
- address: string;
36
- tag: any;
37
- info: any;
38
- };
25
+ fetchDepositAddress(code: string, params?: {}): Promise<DepositAddress>;
26
+ parseDepositAddress(depositAddress: any, currency?: Currency): DepositAddress;
39
27
  nonce(): number;
40
28
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
41
29
  url: string;
package/js/src/bit2c.js CHANGED
@@ -43,6 +43,8 @@ export default class bit2c extends Exchange {
43
43
  'fetchCrossBorrowRate': false,
44
44
  'fetchCrossBorrowRates': false,
45
45
  'fetchDepositAddress': true,
46
+ 'fetchDepositAddresses': false,
47
+ 'fetchDepositAddressesByNetwork': false,
46
48
  'fetchFundingHistory': false,
47
49
  'fetchFundingRate': false,
48
50
  'fetchFundingRateHistory': false,
@@ -869,11 +871,11 @@ export default class bit2c extends Exchange {
869
871
  this.checkAddress(address);
870
872
  const code = this.safeCurrencyCode(undefined, currency);
871
873
  return {
874
+ 'info': depositAddress,
872
875
  'currency': code,
873
876
  'network': undefined,
874
877
  'address': address,
875
878
  'tag': undefined,
876
- 'info': depositAddress,
877
879
  };
878
880
  }
879
881
  nonce() {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitbank.js';
2
- import type { Balances, Currency, Dict, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, TradingFees, Transaction, int } from './base/types.js';
2
+ import type { Balances, Currency, Dict, Int, Market, Num, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Ticker, Trade, TradingFees, Transaction, int, DepositAddress } from './base/types.js';
3
3
  /**
4
4
  * @class bitbank
5
5
  * @augments Exchange
@@ -25,13 +25,7 @@ export default class bitbank extends Exchange {
25
25
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
26
26
  fetchOpenOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
27
27
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
28
- fetchDepositAddress(code: string, params?: {}): Promise<{
29
- currency: any;
30
- address: string;
31
- tag: any;
32
- network: any;
33
- info: any;
34
- }>;
28
+ fetchDepositAddress(code: string, params?: {}): Promise<DepositAddress>;
35
29
  withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<Transaction>;
36
30
  parseTransaction(transaction: Dict, currency?: Currency): Transaction;
37
31
  nonce(): number;
package/js/src/bitbank.js CHANGED
@@ -41,6 +41,8 @@ export default class bitbank extends Exchange {
41
41
  'fetchCrossBorrowRate': false,
42
42
  'fetchCrossBorrowRates': false,
43
43
  'fetchDepositAddress': true,
44
+ 'fetchDepositAddresses': false,
45
+ 'fetchDepositAddressesByNetwork': false,
44
46
  'fetchFundingHistory': false,
45
47
  'fetchFundingRate': false,
46
48
  'fetchFundingRateHistory': false,
@@ -837,11 +839,11 @@ export default class bitbank extends Exchange {
837
839
  const firstAccount = this.safeValue(accounts, 0, {});
838
840
  const address = this.safeString(firstAccount, 'address');
839
841
  return {
842
+ 'info': response,
840
843
  'currency': currency,
844
+ 'network': undefined,
841
845
  'address': address,
842
846
  'tag': undefined,
843
- 'network': undefined,
844
- 'info': response,
845
847
  };
846
848
  }
847
849
  async withdraw(code, amount, address, tag = undefined, params = {}) {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitbns.js';
2
- import type { Balances, Currency, Dict, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, int } from './base/types.js';
2
+ import type { Balances, Currency, Dict, Int, Market, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, int, DepositAddress } from './base/types.js';
3
3
  /**
4
4
  * @class bitbns
5
5
  * @augments Exchange
@@ -32,13 +32,7 @@ export default class bitbns extends Exchange {
32
32
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
33
33
  parseTransactionStatusByType(status: any, type?: any): string;
34
34
  parseTransaction(transaction: Dict, currency?: Currency): Transaction;
35
- fetchDepositAddress(code: string, params?: {}): Promise<{
36
- currency: string;
37
- address: string;
38
- tag: string;
39
- network: any;
40
- info: any;
41
- }>;
35
+ fetchDepositAddress(code: string, params?: {}): Promise<DepositAddress>;
42
36
  nonce(): number;
43
37
  sign(path: any, api?: string, method?: string, params?: {}, headers?: any, body?: any): {
44
38
  url: string;
package/js/src/bitbns.js CHANGED
@@ -37,6 +37,8 @@ export default class bitbns extends Exchange {
37
37
  'createOrder': true,
38
38
  'fetchBalance': true,
39
39
  'fetchDepositAddress': true,
40
+ 'fetchDepositAddresses': false,
41
+ 'fetchDepositAddressesByNetwork': false,
40
42
  'fetchDeposits': true,
41
43
  'fetchFundingHistory': false,
42
44
  'fetchFundingRate': false,
@@ -1150,11 +1152,11 @@ export default class bitbns extends Exchange {
1150
1152
  const tag = this.safeString(data, 'tag');
1151
1153
  this.checkAddress(address);
1152
1154
  return {
1155
+ 'info': response,
1153
1156
  'currency': code,
1157
+ 'network': undefined,
1154
1158
  'address': address,
1155
1159
  'tag': tag,
1156
- 'network': undefined,
1157
- 'info': response,
1158
1160
  };
1159
1161
  }
1160
1162
  nonce() {
@@ -1,5 +1,5 @@
1
1
  import Exchange from './abstract/bitfinex.js';
2
- import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, Num, TradingFees, Dict, int } from './base/types.js';
2
+ import type { TransferEntry, Balances, Currency, Int, Market, OHLCV, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, Num, TradingFees, Dict, int, DepositAddress } from './base/types.js';
3
3
  /**
4
4
  * @class bitfinex
5
5
  * @augments Exchange
@@ -47,20 +47,8 @@ export default class bitfinex extends Exchange {
47
47
  parseOHLCV(ohlcv: any, market?: Market): OHLCV;
48
48
  fetchOHLCV(symbol: string, timeframe?: string, since?: Int, limit?: Int, params?: {}): Promise<OHLCV[]>;
49
49
  getCurrencyName(code: any): any;
50
- createDepositAddress(code: string, params?: {}): Promise<{
51
- currency: string;
52
- address: any;
53
- tag: any;
54
- network: any;
55
- info: any;
56
- }>;
57
- fetchDepositAddress(code: string, params?: {}): Promise<{
58
- currency: string;
59
- address: any;
60
- tag: any;
61
- network: any;
62
- info: any;
63
- }>;
50
+ createDepositAddress(code: string, params?: {}): Promise<DepositAddress>;
51
+ fetchDepositAddress(code: string, params?: {}): Promise<DepositAddress>;
64
52
  fetchDepositsWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
65
53
  parseTransaction(transaction: Dict, currency?: Currency): Transaction;
66
54
  parseTransactionStatus(status: Str): string;
@@ -41,6 +41,8 @@ export default class bitfinex extends Exchange {
41
41
  'fetchBalance': true,
42
42
  'fetchClosedOrders': true,
43
43
  'fetchDepositAddress': true,
44
+ 'fetchDepositAddresses': false,
45
+ 'fetchDepositAddressesByNetwork': false,
44
46
  'fetchDeposits': false,
45
47
  'fetchDepositsWithdrawals': true,
46
48
  'fetchDepositWithdrawFee': 'emulated',
@@ -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, FundingRate, FundingRates } 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, DepositAddress } from './base/types.js';
3
3
  /**
4
4
  * @class bitfinex2
5
5
  * @augments Exchange
@@ -49,20 +49,8 @@ export default class bitfinex2 extends Exchange {
49
49
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
50
50
  fetchOrderTrades(id: string, symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
51
51
  fetchMyTrades(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Trade[]>;
52
- createDepositAddress(code: string, params?: {}): Promise<{
53
- currency: string;
54
- address: string;
55
- tag: string;
56
- network: any;
57
- info: any;
58
- }>;
59
- fetchDepositAddress(code: string, params?: {}): Promise<{
60
- currency: string;
61
- address: string;
62
- tag: string;
63
- network: any;
64
- info: any;
65
- }>;
52
+ createDepositAddress(code: string, params?: {}): Promise<DepositAddress>;
53
+ fetchDepositAddress(code: string, params?: {}): Promise<DepositAddress>;
66
54
  parseTransactionStatus(status: Str): string;
67
55
  parseTransaction(transaction: Dict, currency?: Currency): Transaction;
68
56
  fetchTradingFees(params?: {}): Promise<TradingFees>;
@@ -64,6 +64,8 @@ export default class bitfinex2 extends Exchange {
64
64
  'fetchCrossBorrowRates': false,
65
65
  'fetchCurrencies': true,
66
66
  'fetchDepositAddress': true,
67
+ 'fetchDepositAddresses': false,
68
+ 'fetchDepositAddressesByNetwork': false,
67
69
  'fetchDepositsWithdrawals': true,
68
70
  'fetchFundingHistory': false,
69
71
  'fetchFundingRate': 'emulated',
@@ -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, FundingRate } 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, DepositAddress } from './base/types.js';
3
3
  /**
4
4
  * @class bitget
5
5
  * @augments Exchange
@@ -20,20 +20,8 @@ export default class bitget extends Exchange {
20
20
  fetchWithdrawals(code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
21
21
  parseTransaction(transaction: Dict, currency?: Currency): Transaction;
22
22
  parseTransactionStatus(status: Str): string;
23
- fetchDepositAddress(code: string, params?: {}): Promise<{
24
- currency: string;
25
- address: string;
26
- tag: string;
27
- network: any;
28
- info: any;
29
- }>;
30
- parseDepositAddress(depositAddress: any, currency?: Currency): {
31
- currency: string;
32
- address: string;
33
- tag: string;
34
- network: any;
35
- info: any;
36
- };
23
+ fetchDepositAddress(code: string, params?: {}): Promise<DepositAddress>;
24
+ parseDepositAddress(depositAddress: any, currency?: Currency): DepositAddress;
37
25
  fetchOrderBook(symbol: string, limit?: Int, params?: {}): Promise<OrderBook>;
38
26
  parseTicker(ticker: Dict, market?: Market): Ticker;
39
27
  fetchTicker(symbol: string, params?: {}): Promise<Ticker>;
package/js/src/bitget.js CHANGED
@@ -77,6 +77,7 @@ export default class bitget extends Exchange {
77
77
  'fetchDeposit': false,
78
78
  'fetchDepositAddress': true,
79
79
  'fetchDepositAddresses': false,
80
+ 'fetchDepositAddressesByNetwork': false,
80
81
  'fetchDeposits': true,
81
82
  'fetchDepositsWithdrawals': false,
82
83
  'fetchDepositWithdrawFee': 'emulated',
@@ -2478,11 +2479,11 @@ export default class bitget extends Exchange {
2478
2479
  network = this.networkIdToCode(networkId, parsedCurrency);
2479
2480
  }
2480
2481
  return {
2482
+ 'info': depositAddress,
2481
2483
  'currency': parsedCurrency,
2484
+ 'network': network,
2482
2485
  'address': this.safeString(depositAddress, 'address'),
2483
2486
  'tag': this.safeString(depositAddress, 'tag'),
2484
- 'network': network,
2485
- 'info': depositAddress,
2486
2487
  };
2487
2488
  }
2488
2489
  async fetchOrderBook(symbol, 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, FundingRate } 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, DepositAddress } from './base/types.js';
3
3
  /**
4
4
  * @class bitmart
5
5
  * @augments Exchange
@@ -67,20 +67,8 @@ export default class bitmart extends Exchange {
67
67
  fetchClosedOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
68
68
  fetchCanceledOrders(symbol?: Str, since?: Int, limit?: Int, params?: {}): Promise<Order[]>;
69
69
  fetchOrder(id: string, symbol?: Str, params?: {}): Promise<Order>;
70
- fetchDepositAddress(code: string, params?: {}): Promise<{
71
- info: any;
72
- currency: string;
73
- address: string;
74
- tag: string;
75
- network: any;
76
- }>;
77
- parseDepositAddress(depositAddress: any, currency?: any): {
78
- info: any;
79
- currency: string;
80
- address: string;
81
- tag: string;
82
- network: any;
83
- };
70
+ fetchDepositAddress(code: string, params?: {}): Promise<DepositAddress>;
71
+ parseDepositAddress(depositAddress: any, currency?: any): DepositAddress;
84
72
  withdraw(code: string, amount: number, address: string, tag?: any, params?: {}): Promise<any>;
85
73
  fetchTransactionsByType(type: any, code?: Str, since?: Int, limit?: Int, params?: {}): Promise<Transaction[]>;
86
74
  fetchDeposit(id: string, code?: Str, params?: {}): Promise<Transaction>;
package/js/src/bitmart.js CHANGED
@@ -1302,6 +1302,7 @@ export default class bitmart extends Exchange {
1302
1302
  'average': average,
1303
1303
  'baseVolume': baseVolume,
1304
1304
  'quoteVolume': quoteVolume,
1305
+ 'indexPrice': this.safeString(ticker, 'index_price'),
1305
1306
  'info': ticker,
1306
1307
  }, market);
1307
1308
  }
@@ -3510,9 +3511,9 @@ export default class bitmart extends Exchange {
3510
3511
  return {
3511
3512
  'info': depositAddress,
3512
3513
  'currency': this.safeString(currency, 'code'),
3514
+ 'network': network,
3513
3515
  'address': address,
3514
3516
  'tag': this.safeString(depositAddress, 'address_memo'),
3515
- 'network': network,
3516
3517
  };
3517
3518
  }
3518
3519
  async withdraw(code, amount, address, tag = undefined, 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, FundingRate, FundingRates } 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, DepositAddress } from './base/types.js';
3
3
  /**
4
4
  * @class bitmex
5
5
  * @augments Exchange
@@ -61,13 +61,7 @@ export default class bitmex extends Exchange {
61
61
  };
62
62
  setLeverage(leverage: Int, symbol?: Str, params?: {}): Promise<any>;
63
63
  setMarginMode(marginMode: string, symbol?: Str, params?: {}): Promise<any>;
64
- fetchDepositAddress(code: string, params?: {}): Promise<{
65
- currency: string;
66
- address: any;
67
- tag: any;
68
- network: any;
69
- info: any;
70
- }>;
64
+ fetchDepositAddress(code: string, params?: {}): Promise<DepositAddress>;
71
65
  parseDepositWithdrawFee(fee: any, currency?: Currency): Dict;
72
66
  fetchDepositWithdrawFees(codes?: Strings, params?: {}): Promise<any>;
73
67
  calculateRateLimiterCost(api: any, method: any, path: any, params: any, config?: {}): any;
package/js/src/bitmex.js CHANGED
@@ -2710,11 +2710,11 @@ export default class bitmex extends Exchange {
2710
2710
  // '"bc1qmex3puyrzn2gduqcnlu70c2uscpyaa9nm2l2j9le2lt2wkgmw33sy7ndjg"'
2711
2711
  //
2712
2712
  return {
2713
+ 'info': response,
2713
2714
  'currency': code,
2715
+ 'network': networkCode,
2714
2716
  'address': response.replace('"', '').replace('"', ''),
2715
2717
  'tag': undefined,
2716
- 'network': networkCode,
2717
- 'info': response,
2718
2718
  };
2719
2719
  }
2720
2720
  parseDepositWithdrawFee(fee, currency = undefined) {