ccxt 4.4.15 → 4.4.16

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 (207) 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 +1 -1
  6. package/dist/cjs/src/bigone.js +4 -2
  7. package/dist/cjs/src/binance.js +62 -5
  8. package/dist/cjs/src/bingx.js +3 -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 +4 -2
  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 +2 -2
  23. package/dist/cjs/src/cex.js +3 -2
  24. package/dist/cjs/src/coinbase.js +1 -1
  25. package/dist/cjs/src/coinex.js +2 -2
  26. package/dist/cjs/src/coinone.js +4 -1
  27. package/dist/cjs/src/coinsph.js +2 -2
  28. package/dist/cjs/src/cryptocom.js +2 -1
  29. package/dist/cjs/src/currencycom.js +2 -2
  30. package/dist/cjs/src/delta.js +4 -2
  31. package/dist/cjs/src/deribit.js +4 -2
  32. package/dist/cjs/src/digifinex.js +3 -1
  33. package/dist/cjs/src/exmo.js +4 -2
  34. package/dist/cjs/src/gate.js +3 -2
  35. package/dist/cjs/src/gemini.js +1 -0
  36. package/dist/cjs/src/hashkey.js +4 -2
  37. package/dist/cjs/src/hitbtc.js +4 -3
  38. package/dist/cjs/src/hollaex.js +3 -2
  39. package/dist/cjs/src/htx.js +12 -2
  40. package/dist/cjs/src/hyperliquid.js +8 -7
  41. package/dist/cjs/src/idex.js +1 -1
  42. package/dist/cjs/src/independentreserve.js +1 -1
  43. package/dist/cjs/src/indodax.js +1 -1
  44. package/dist/cjs/src/kraken.js +4 -2
  45. package/dist/cjs/src/kucoin.js +2 -1
  46. package/dist/cjs/src/kucoinfutures.js +3 -1
  47. package/dist/cjs/src/kuna.js +2 -0
  48. package/dist/cjs/src/lbank.js +11 -9
  49. package/dist/cjs/src/lykke.js +4 -2
  50. package/dist/cjs/src/mexc.js +2 -2
  51. package/dist/cjs/src/ndax.js +30 -2
  52. package/dist/cjs/src/oceanex.js +1 -1
  53. package/dist/cjs/src/okcoin.js +6 -4
  54. package/dist/cjs/src/okx.js +13 -2
  55. package/dist/cjs/src/onetrading.js +3 -2
  56. package/dist/cjs/src/oxfun.js +3 -3
  57. package/dist/cjs/src/paymium.js +2 -1
  58. package/dist/cjs/src/phemex.js +6 -4
  59. package/dist/cjs/src/poloniex.js +4 -2
  60. package/dist/cjs/src/probit.js +3 -2
  61. package/dist/cjs/src/timex.js +1 -1
  62. package/dist/cjs/src/tokocrypto.js +3 -3
  63. package/dist/cjs/src/upbit.js +3 -2
  64. package/dist/cjs/src/wavesexchange.js +7 -7
  65. package/dist/cjs/src/wazirx.js +22 -2
  66. package/dist/cjs/src/whitebit.js +4 -2
  67. package/dist/cjs/src/woo.js +4 -2
  68. package/dist/cjs/src/xt.js +4 -2
  69. package/dist/cjs/src/yobit.js +30 -21
  70. package/dist/cjs/src/zonda.js +27 -2
  71. package/js/ccxt.d.ts +1 -1
  72. package/js/ccxt.js +1 -1
  73. package/js/src/ascendex.d.ts +3 -9
  74. package/js/src/ascendex.js +2 -2
  75. package/js/src/base/Exchange.d.ts +7 -7
  76. package/js/src/base/Exchange.js +1 -1
  77. package/js/src/base/types.d.ts +4 -3
  78. package/js/src/bigone.d.ts +2 -8
  79. package/js/src/bigone.js +4 -2
  80. package/js/src/binance.d.ts +4 -8
  81. package/js/src/binance.js +62 -5
  82. package/js/src/bingx.d.ts +4 -10
  83. package/js/src/bingx.js +3 -2
  84. package/js/src/bit2c.d.ts +3 -15
  85. package/js/src/bit2c.js +3 -1
  86. package/js/src/bitbank.d.ts +2 -8
  87. package/js/src/bitbank.js +4 -2
  88. package/js/src/bitbns.d.ts +2 -8
  89. package/js/src/bitbns.js +4 -2
  90. package/js/src/bitfinex.d.ts +3 -15
  91. package/js/src/bitfinex.js +2 -0
  92. package/js/src/bitfinex2.d.ts +3 -15
  93. package/js/src/bitfinex2.js +2 -0
  94. package/js/src/bitget.d.ts +3 -15
  95. package/js/src/bitget.js +3 -2
  96. package/js/src/bitmart.d.ts +3 -15
  97. package/js/src/bitmart.js +2 -1
  98. package/js/src/bitmex.d.ts +2 -8
  99. package/js/src/bitmex.js +2 -2
  100. package/js/src/bitso.d.ts +2 -8
  101. package/js/src/bitso.js +3 -2
  102. package/js/src/bitstamp.d.ts +2 -8
  103. package/js/src/bitstamp.js +4 -2
  104. package/js/src/bitvavo.d.ts +2 -8
  105. package/js/src/bitvavo.js +4 -2
  106. package/js/src/blockchaincom.d.ts +2 -2
  107. package/js/src/blockchaincom.js +9 -7
  108. package/js/src/blofin.d.ts +1 -0
  109. package/js/src/blofin.js +23 -0
  110. package/js/src/bybit.d.ts +4 -16
  111. package/js/src/bybit.js +2 -2
  112. package/js/src/cex.d.ts +2 -8
  113. package/js/src/cex.js +3 -2
  114. package/js/src/coinbase.d.ts +3 -9
  115. package/js/src/coinbase.js +1 -1
  116. package/js/src/coinex.d.ts +4 -22
  117. package/js/src/coinex.js +2 -2
  118. package/js/src/coinone.d.ts +2 -2
  119. package/js/src/coinone.js +4 -1
  120. package/js/src/coinsph.d.ts +3 -15
  121. package/js/src/coinsph.js +2 -2
  122. package/js/src/cryptocom.d.ts +3 -3
  123. package/js/src/cryptocom.js +2 -1
  124. package/js/src/currencycom.d.ts +3 -15
  125. package/js/src/currencycom.js +2 -2
  126. package/js/src/delta.d.ts +3 -15
  127. package/js/src/delta.js +4 -2
  128. package/js/src/deribit.d.ts +2 -8
  129. package/js/src/deribit.js +4 -2
  130. package/js/src/digifinex.d.ts +3 -9
  131. package/js/src/digifinex.js +3 -1
  132. package/js/src/exmo.d.ts +2 -8
  133. package/js/src/exmo.js +4 -2
  134. package/js/src/gate.d.ts +2 -9
  135. package/js/src/gate.js +3 -2
  136. package/js/src/gemini.d.ts +3 -3
  137. package/js/src/gemini.js +1 -0
  138. package/js/src/hashkey.d.ts +3 -15
  139. package/js/src/hashkey.js +4 -2
  140. package/js/src/hitbtc.d.ts +2 -9
  141. package/js/src/hitbtc.js +4 -3
  142. package/js/src/hollaex.d.ts +3 -9
  143. package/js/src/hollaex.js +3 -2
  144. package/js/src/htx.d.ts +3 -3
  145. package/js/src/htx.js +12 -2
  146. package/js/src/hyperliquid.js +8 -7
  147. package/js/src/idex.d.ts +3 -15
  148. package/js/src/idex.js +1 -1
  149. package/js/src/independentreserve.d.ts +3 -15
  150. package/js/src/independentreserve.js +1 -1
  151. package/js/src/indodax.d.ts +2 -2
  152. package/js/src/indodax.js +1 -1
  153. package/js/src/kraken.d.ts +4 -22
  154. package/js/src/kraken.js +4 -2
  155. package/js/src/kucoin.d.ts +5 -23
  156. package/js/src/kucoin.js +2 -1
  157. package/js/src/kucoinfutures.d.ts +2 -8
  158. package/js/src/kucoinfutures.js +3 -1
  159. package/js/src/kuna.d.ts +4 -22
  160. package/js/src/kuna.js +2 -0
  161. package/js/src/lbank.d.ts +4 -16
  162. package/js/src/lbank.js +11 -9
  163. package/js/src/lykke.d.ts +2 -8
  164. package/js/src/lykke.js +4 -2
  165. package/js/src/mexc.d.ts +5 -17
  166. package/js/src/mexc.js +2 -2
  167. package/js/src/ndax.d.ts +4 -22
  168. package/js/src/ndax.js +30 -2
  169. package/js/src/oceanex.d.ts +3 -9
  170. package/js/src/oceanex.js +1 -1
  171. package/js/src/okcoin.d.ts +4 -10
  172. package/js/src/okcoin.js +6 -4
  173. package/js/src/okx.d.ts +4 -10
  174. package/js/src/okx.js +13 -2
  175. package/js/src/onetrading.d.ts +4 -22
  176. package/js/src/onetrading.js +3 -2
  177. package/js/src/oxfun.d.ts +3 -15
  178. package/js/src/oxfun.js +3 -3
  179. package/js/src/paymium.d.ts +5 -23
  180. package/js/src/paymium.js +2 -1
  181. package/js/src/phemex.d.ts +2 -8
  182. package/js/src/phemex.js +6 -4
  183. package/js/src/poloniex.d.ts +2 -8
  184. package/js/src/poloniex.js +4 -2
  185. package/js/src/probit.d.ts +4 -16
  186. package/js/src/probit.js +3 -2
  187. package/js/src/timex.d.ts +3 -15
  188. package/js/src/timex.js +1 -1
  189. package/js/src/tokocrypto.d.ts +2 -8
  190. package/js/src/tokocrypto.js +3 -3
  191. package/js/src/upbit.d.ts +5 -23
  192. package/js/src/upbit.js +3 -2
  193. package/js/src/wavesexchange.d.ts +2 -9
  194. package/js/src/wavesexchange.js +7 -7
  195. package/js/src/wazirx.d.ts +2 -8
  196. package/js/src/wazirx.js +22 -2
  197. package/js/src/whitebit.d.ts +2 -8
  198. package/js/src/whitebit.js +4 -2
  199. package/js/src/woo.d.ts +2 -8
  200. package/js/src/woo.js +4 -2
  201. package/js/src/xt.d.ts +3 -15
  202. package/js/src/xt.js +4 -2
  203. package/js/src/yobit.d.ts +2 -26
  204. package/js/src/yobit.js +30 -21
  205. package/js/src/zonda.d.ts +4 -16
  206. package/js/src/zonda.js +27 -2
  207. package/package.json +1 -1
package/dist/cjs/ccxt.js CHANGED
@@ -194,7 +194,7 @@ var xt$1 = require('./src/pro/xt.js');
194
194
 
195
195
  //-----------------------------------------------------------------------------
196
196
  // this is updated by vss.js when building
197
- const version = '4.4.15';
197
+ const version = '4.4.16';
198
198
  Exchange["default"].ccxtVersion = version;
199
199
  const exchanges = {
200
200
  'ace': ace,
@@ -2389,11 +2389,11 @@ class ascendex extends ascendex$1 {
2389
2389
  const chainName = this.safeString(depositAddress, 'blockchain');
2390
2390
  const network = this.networkIdToCode(chainName, code);
2391
2391
  return {
2392
+ 'info': depositAddress,
2392
2393
  'currency': code,
2394
+ 'network': network,
2393
2395
  'address': address,
2394
2396
  'tag': tag,
2395
- 'network': network,
2396
- 'info': depositAddress,
2397
2397
  };
2398
2398
  }
2399
2399
  async fetchDepositAddress(code, params = {}) {
@@ -5499,7 +5499,7 @@ class Exchange {
5499
5499
  result = this.filterByArray(result, 'currency', codes, false);
5500
5500
  }
5501
5501
  if (indexed) {
5502
- return this.indexBy(result, 'currency');
5502
+ result = this.filterByArray(result, 'currency', undefined, indexed);
5503
5503
  }
5504
5504
  return result;
5505
5505
  }
@@ -42,6 +42,8 @@ class bigone extends bigone$1 {
42
42
  'fetchClosedOrders': true,
43
43
  'fetchCurrencies': true,
44
44
  'fetchDepositAddress': true,
45
+ 'fetchDepositAddresses': false,
46
+ 'fetchDepositAddressesByNetwork': false,
45
47
  'fetchDeposits': true,
46
48
  'fetchFundingRate': false,
47
49
  'fetchMarkets': true,
@@ -1850,11 +1852,11 @@ class bigone extends bigone$1 {
1850
1852
  const tag = this.safeString(addressObject, 'memo');
1851
1853
  this.checkAddress(address);
1852
1854
  return {
1855
+ 'info': response,
1853
1856
  'currency': code,
1857
+ 'network': this.networkIdToCode(selectedNetworkId),
1854
1858
  'address': address,
1855
1859
  'tag': tag,
1856
- 'network': this.networkIdToCode(selectedNetworkId),
1857
- 'info': response,
1858
1860
  };
1859
1861
  }
1860
1862
  parseTransactionStatus(status) {
@@ -111,6 +111,7 @@ class binance extends binance$1 {
111
111
  'fetchMarketLeverageTiers': 'emulated',
112
112
  'fetchMarkets': true,
113
113
  'fetchMarkOHLCV': true,
114
+ 'fetchMarkPrice': true,
114
115
  'fetchMarkPrices': true,
115
116
  'fetchMyLiquidations': true,
116
117
  'fetchMySettlementHistory': true,
@@ -4241,12 +4242,49 @@ class binance extends binance$1 {
4241
4242
  }
4242
4243
  return this.parseTickers(response, symbols);
4243
4244
  }
4245
+ async fetchMarkPrice(symbol, params = {}) {
4246
+ /**
4247
+ * @method
4248
+ * @name binance#fetchMarkPrice
4249
+ * @description fetches mark price for the market
4250
+ * @see https://binance-docs.github.io/apidocs/futures/en/#mark-price
4251
+ * @see https://binance-docs.github.io/apidocs/delivery/en/#index-price-and-mark-price
4252
+ * @param {string[]} [symbols] unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
4253
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
4254
+ * @param {string} [params.subType] "linear" or "inverse"
4255
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
4256
+ */
4257
+ await this.loadMarkets();
4258
+ const market = this.market(symbol);
4259
+ let type = undefined;
4260
+ [type, params] = this.handleMarketTypeAndParams('fetchMarkPrice', market, params, 'swap');
4261
+ let subType = undefined;
4262
+ [subType, params] = this.handleSubTypeAndParams('fetchMarkPrice', market, params, 'linear');
4263
+ const request = {
4264
+ 'symbol': market['id'],
4265
+ };
4266
+ let response = undefined;
4267
+ if (this.isLinear(type, subType)) {
4268
+ response = await this.fapiPublicGetPremiumIndex(this.extend(request, params));
4269
+ }
4270
+ else if (this.isInverse(type, subType)) {
4271
+ response = await this.dapiPublicGetPremiumIndex(this.extend(request, params));
4272
+ }
4273
+ else {
4274
+ throw new errors.NotSupported(this.id + ' fetchMarkPrice() does not support ' + type + ' markets yet');
4275
+ }
4276
+ if (Array.isArray(response)) {
4277
+ return this.parseTicker(this.safeDict(response, 0, {}), market);
4278
+ }
4279
+ return this.parseTicker(response, market);
4280
+ }
4244
4281
  async fetchMarkPrices(symbols = undefined, params = {}) {
4245
4282
  /**
4246
4283
  * @method
4247
4284
  * @name binance#fetchMarkPrices
4248
4285
  * @description fetches mark prices for multiple markets
4249
4286
  * @see https://binance-docs.github.io/apidocs/futures/en/#mark-price
4287
+ * @see https://binance-docs.github.io/apidocs/delivery/en/#index-price-and-mark-price
4250
4288
  * @param {string[]} [symbols] unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
4251
4289
  * @param {object} [params] extra parameters specific to the exchange API endpoint
4252
4290
  * @param {string} [params.subType] "linear" or "inverse"
@@ -4256,9 +4294,9 @@ class binance extends binance$1 {
4256
4294
  symbols = this.marketSymbols(symbols, undefined, true, true, true);
4257
4295
  const market = this.getMarketFromSymbols(symbols);
4258
4296
  let type = undefined;
4259
- [type, params] = this.handleMarketTypeAndParams('fetchTickers', market, params, 'swap');
4297
+ [type, params] = this.handleMarketTypeAndParams('fetchMarkPrices', market, params, 'swap');
4260
4298
  let subType = undefined;
4261
- [subType, params] = this.handleSubTypeAndParams('fetchTickers', market, params, 'linear');
4299
+ [subType, params] = this.handleSubTypeAndParams('fetchMarkPrices', market, params, 'linear');
4262
4300
  let response = undefined;
4263
4301
  if (this.isLinear(type, subType)) {
4264
4302
  response = await this.fapiPublicGetPremiumIndex(params);
@@ -8721,8 +8759,27 @@ class binance extends binance$1 {
8721
8759
  // }
8722
8760
  // }
8723
8761
  //
8762
+ return this.parseDepositAddress(response, currency);
8763
+ }
8764
+ parseDepositAddress(response, currency = undefined) {
8765
+ //
8766
+ // {
8767
+ // "currency": "XRP",
8768
+ // "address": "rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh",
8769
+ // "tag": "108618262",
8770
+ // "info": {
8771
+ // "coin": "XRP",
8772
+ // "address": "rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh",
8773
+ // "tag": "108618262",
8774
+ // "url": "https://bithomp.com/explorer/rEb8TK3gBgk5auZkwc6sHnwrGVJH8DuaLh"
8775
+ // }
8776
+ // }
8777
+ //
8778
+ const info = this.safeDict(response, 'info', {});
8779
+ const url = this.safeString(info, 'url');
8724
8780
  const address = this.safeString(response, 'address');
8725
- const url = this.safeString(response, 'url');
8781
+ const currencyId = this.safeString(response, 'currency');
8782
+ const code = this.safeCurrencyCode(currencyId, currency);
8726
8783
  let impliedNetwork = undefined;
8727
8784
  if (url !== undefined) {
8728
8785
  const reverseNetworks = this.safeDict(this.options, 'reverseNetworks', {});
@@ -8750,11 +8807,11 @@ class binance extends binance$1 {
8750
8807
  }
8751
8808
  this.checkAddress(address);
8752
8809
  return {
8810
+ 'info': response,
8753
8811
  'currency': code,
8812
+ 'network': impliedNetwork,
8754
8813
  'address': address,
8755
8814
  'tag': tag,
8756
- 'network': impliedNetwork,
8757
- 'info': response,
8758
8815
  };
8759
8816
  }
8760
8817
  async fetchTransactionFees(codes = undefined, params = {}) {
@@ -52,6 +52,7 @@ class bingx extends bingx$1 {
52
52
  'fetchClosedOrders': true,
53
53
  'fetchCurrencies': true,
54
54
  'fetchDepositAddress': true,
55
+ 'fetchDepositAddresses': false,
55
56
  'fetchDepositAddressesByNetwork': true,
56
57
  'fetchDeposits': true,
57
58
  'fetchDepositWithdrawFee': 'emulated',
@@ -4545,11 +4546,11 @@ class bingx extends bingx$1 {
4545
4546
  }
4546
4547
  this.checkAddress(address);
4547
4548
  return {
4549
+ 'info': depositAddress,
4548
4550
  'currency': code,
4551
+ 'network': networkCode,
4549
4552
  'address': address,
4550
4553
  'tag': tag,
4551
- 'network': networkCode,
4552
- 'info': depositAddress,
4553
4554
  };
4554
4555
  }
4555
4556
  async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
@@ -40,6 +40,8 @@ class bit2c extends bit2c$1 {
40
40
  'fetchCrossBorrowRate': false,
41
41
  'fetchCrossBorrowRates': false,
42
42
  'fetchDepositAddress': true,
43
+ 'fetchDepositAddresses': false,
44
+ 'fetchDepositAddressesByNetwork': false,
43
45
  'fetchFundingHistory': false,
44
46
  'fetchFundingRate': false,
45
47
  'fetchFundingRateHistory': false,
@@ -866,11 +868,11 @@ class bit2c extends bit2c$1 {
866
868
  this.checkAddress(address);
867
869
  const code = this.safeCurrencyCode(undefined, currency);
868
870
  return {
871
+ 'info': depositAddress,
869
872
  'currency': code,
870
873
  'network': undefined,
871
874
  'address': address,
872
875
  'tag': undefined,
873
- 'info': depositAddress,
874
876
  };
875
877
  }
876
878
  nonce() {
@@ -38,6 +38,8 @@ class bitbank extends bitbank$1 {
38
38
  'fetchCrossBorrowRate': false,
39
39
  'fetchCrossBorrowRates': false,
40
40
  'fetchDepositAddress': true,
41
+ 'fetchDepositAddresses': false,
42
+ 'fetchDepositAddressesByNetwork': false,
41
43
  'fetchFundingHistory': false,
42
44
  'fetchFundingRate': false,
43
45
  'fetchFundingRateHistory': false,
@@ -834,11 +836,11 @@ class bitbank extends bitbank$1 {
834
836
  const firstAccount = this.safeValue(accounts, 0, {});
835
837
  const address = this.safeString(firstAccount, 'address');
836
838
  return {
839
+ 'info': response,
837
840
  'currency': currency,
841
+ 'network': undefined,
838
842
  'address': address,
839
843
  'tag': undefined,
840
- 'network': undefined,
841
- 'info': response,
842
844
  };
843
845
  }
844
846
  async withdraw(code, amount, address, tag = undefined, params = {}) {
@@ -34,6 +34,8 @@ class bitbns extends bitbns$1 {
34
34
  'createOrder': true,
35
35
  'fetchBalance': true,
36
36
  'fetchDepositAddress': true,
37
+ 'fetchDepositAddresses': false,
38
+ 'fetchDepositAddressesByNetwork': false,
37
39
  'fetchDeposits': true,
38
40
  'fetchFundingHistory': false,
39
41
  'fetchFundingRate': false,
@@ -1147,11 +1149,11 @@ class bitbns extends bitbns$1 {
1147
1149
  const tag = this.safeString(data, 'tag');
1148
1150
  this.checkAddress(address);
1149
1151
  return {
1152
+ 'info': response,
1150
1153
  'currency': code,
1154
+ 'network': undefined,
1151
1155
  'address': address,
1152
1156
  'tag': tag,
1153
- 'network': undefined,
1154
- 'info': response,
1155
1157
  };
1156
1158
  }
1157
1159
  nonce() {
@@ -38,6 +38,8 @@ class bitfinex extends bitfinex$1 {
38
38
  'fetchBalance': true,
39
39
  'fetchClosedOrders': true,
40
40
  'fetchDepositAddress': true,
41
+ 'fetchDepositAddresses': false,
42
+ 'fetchDepositAddressesByNetwork': false,
41
43
  'fetchDeposits': false,
42
44
  'fetchDepositsWithdrawals': true,
43
45
  'fetchDepositWithdrawFee': 'emulated',
@@ -61,6 +61,8 @@ class bitfinex2 extends bitfinex2$1 {
61
61
  'fetchCrossBorrowRates': false,
62
62
  'fetchCurrencies': true,
63
63
  'fetchDepositAddress': true,
64
+ 'fetchDepositAddresses': false,
65
+ 'fetchDepositAddressesByNetwork': false,
64
66
  'fetchDepositsWithdrawals': true,
65
67
  'fetchFundingHistory': false,
66
68
  'fetchFundingRate': 'emulated',
@@ -74,6 +74,7 @@ class bitget extends bitget$1 {
74
74
  'fetchDeposit': false,
75
75
  'fetchDepositAddress': true,
76
76
  'fetchDepositAddresses': false,
77
+ 'fetchDepositAddressesByNetwork': false,
77
78
  'fetchDeposits': true,
78
79
  'fetchDepositsWithdrawals': false,
79
80
  'fetchDepositWithdrawFee': 'emulated',
@@ -2475,11 +2476,11 @@ class bitget extends bitget$1 {
2475
2476
  network = this.networkIdToCode(networkId, parsedCurrency);
2476
2477
  }
2477
2478
  return {
2479
+ 'info': depositAddress,
2478
2480
  'currency': parsedCurrency,
2481
+ 'network': network,
2479
2482
  'address': this.safeString(depositAddress, 'address'),
2480
2483
  'tag': this.safeString(depositAddress, 'tag'),
2481
- 'network': network,
2482
- 'info': depositAddress,
2483
2484
  };
2484
2485
  }
2485
2486
  async fetchOrderBook(symbol, limit = undefined, params = {}) {
@@ -1299,6 +1299,7 @@ class bitmart extends bitmart$1 {
1299
1299
  'average': average,
1300
1300
  'baseVolume': baseVolume,
1301
1301
  'quoteVolume': quoteVolume,
1302
+ 'indexPrice': this.safeString(ticker, 'index_price'),
1302
1303
  'info': ticker,
1303
1304
  }, market);
1304
1305
  }
@@ -3507,9 +3508,9 @@ class bitmart extends bitmart$1 {
3507
3508
  return {
3508
3509
  'info': depositAddress,
3509
3510
  'currency': this.safeString(currency, 'code'),
3511
+ 'network': network,
3510
3512
  'address': address,
3511
3513
  'tag': this.safeString(depositAddress, 'address_memo'),
3512
- 'network': network,
3513
3514
  };
3514
3515
  }
3515
3516
  async withdraw(code, amount, address, tag = undefined, params = {}) {
@@ -2707,11 +2707,11 @@ class bitmex extends bitmex$1 {
2707
2707
  // '"bc1qmex3puyrzn2gduqcnlu70c2uscpyaa9nm2l2j9le2lt2wkgmw33sy7ndjg"'
2708
2708
  //
2709
2709
  return {
2710
+ 'info': response,
2710
2711
  'currency': code,
2712
+ 'network': networkCode,
2711
2713
  'address': response.replace('"', '').replace('"', ''),
2712
2714
  'tag': undefined,
2713
- 'network': networkCode,
2714
- 'info': response,
2715
2715
  };
2716
2716
  }
2717
2717
  parseDepositWithdrawFee(fee, currency = undefined) {
@@ -45,6 +45,7 @@ class bitso extends bitso$1 {
45
45
  'fetchDeposit': true,
46
46
  'fetchDepositAddress': true,
47
47
  'fetchDepositAddresses': false,
48
+ 'fetchDepositAddressesByNetwork': false,
48
49
  'fetchDeposits': true,
49
50
  'fetchDepositsWithdrawals': false,
50
51
  'fetchDepositWithdrawFee': 'emulated',
@@ -1337,11 +1338,11 @@ class bitso extends bitso$1 {
1337
1338
  }
1338
1339
  this.checkAddress(address);
1339
1340
  return {
1341
+ 'info': response,
1340
1342
  'currency': code,
1343
+ 'network': undefined,
1341
1344
  'address': address,
1342
1345
  'tag': tag,
1343
- 'network': undefined,
1344
- 'info': response,
1345
1346
  };
1346
1347
  }
1347
1348
  async fetchTransactionFees(codes = undefined, params = {}) {
@@ -47,6 +47,8 @@ class bitstamp extends bitstamp$1 {
47
47
  'fetchCrossBorrowRates': false,
48
48
  'fetchCurrencies': true,
49
49
  'fetchDepositAddress': true,
50
+ 'fetchDepositAddresses': false,
51
+ 'fetchDepositAddressesByNetwork': false,
50
52
  'fetchDepositsWithdrawals': true,
51
53
  'fetchDepositWithdrawFee': 'emulated',
52
54
  'fetchDepositWithdrawFees': true,
@@ -2121,11 +2123,11 @@ class bitstamp extends bitstamp$1 {
2121
2123
  const tag = this.safeString2(response, 'memo_id', 'destination_tag');
2122
2124
  this.checkAddress(address);
2123
2125
  return {
2126
+ 'info': response,
2124
2127
  'currency': code,
2128
+ 'network': undefined,
2125
2129
  'address': address,
2126
2130
  'tag': tag,
2127
- 'network': undefined,
2128
- 'info': response,
2129
2131
  };
2130
2132
  }
2131
2133
  async withdraw(code, amount, address, tag = undefined, params = {}) {
@@ -47,6 +47,8 @@ class bitvavo extends bitvavo$1 {
47
47
  'fetchCrossBorrowRates': false,
48
48
  'fetchCurrencies': true,
49
49
  'fetchDepositAddress': true,
50
+ 'fetchDepositAddresses': false,
51
+ 'fetchDepositAddressesByNetwork': false,
50
52
  'fetchDeposits': true,
51
53
  'fetchDepositWithdrawFee': 'emulated',
52
54
  'fetchDepositWithdrawFees': true,
@@ -1041,11 +1043,11 @@ class bitvavo extends bitvavo$1 {
1041
1043
  const tag = this.safeString(response, 'paymentId');
1042
1044
  this.checkAddress(address);
1043
1045
  return {
1046
+ 'info': response,
1044
1047
  'currency': code,
1048
+ 'network': undefined,
1045
1049
  'address': address,
1046
1050
  'tag': tag,
1047
- 'network': undefined,
1048
- 'info': response,
1049
1051
  };
1050
1052
  }
1051
1053
  createOrderRequest(symbol, type, side, amount, price = undefined, params = {}) {
@@ -39,6 +39,8 @@ class blockchaincom extends blockchaincom$1 {
39
39
  'fetchClosedOrders': true,
40
40
  'fetchDeposit': true,
41
41
  'fetchDepositAddress': true,
42
+ 'fetchDepositAddresses': false,
43
+ 'fetchDepositAddressesByNetwork': false,
42
44
  'fetchDeposits': true,
43
45
  'fetchFundingHistory': false,
44
46
  'fetchFundingRate': false,
@@ -837,13 +839,13 @@ class blockchaincom extends blockchaincom$1 {
837
839
  tag = this.safeString(addressParts, 0);
838
840
  address = this.safeString(addressParts, 1);
839
841
  }
840
- const result = { 'info': response };
841
- result['currency'] = currency['code'];
842
- result['address'] = address;
843
- if (tag !== undefined) {
844
- result['tag'] = tag;
845
- }
846
- return result;
842
+ return {
843
+ 'info': response,
844
+ 'currency': currency['code'],
845
+ 'network': undefined,
846
+ 'address': address,
847
+ 'tag': tag,
848
+ };
847
849
  }
848
850
  parseTransactionState(state) {
849
851
  const states = {
@@ -540,6 +540,8 @@ class blofin extends blofin$1 {
540
540
  'average': undefined,
541
541
  'baseVolume': baseVolume,
542
542
  'quoteVolume': quoteVolume,
543
+ 'indexPrice': this.safeString(ticker, 'indexPrice'),
544
+ 'markPrice': this.safeString(ticker, 'markPrice'),
543
545
  'info': ticker,
544
546
  }, market);
545
547
  }
@@ -563,6 +565,27 @@ class blofin extends blofin$1 {
563
565
  const first = this.safeDict(data, 0, {});
564
566
  return this.parseTicker(first, market);
565
567
  }
568
+ async fetchMarkPrice(symbol, params = {}) {
569
+ /**
570
+ * @method
571
+ * @name blofin#fetchMarkPrice
572
+ * @description fetches mark price for the market
573
+ * @see https://docs.blofin.com/index.html#get-mark-price
574
+ * @param {string[]} [symbols] unified symbols of the markets to fetch the ticker for, all market tickers are returned if not assigned
575
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
576
+ * @param {string} [params.subType] "linear" or "inverse"
577
+ * @returns {object} a dictionary of [ticker structures]{@link https://docs.ccxt.com/#/?id=ticker-structure}
578
+ */
579
+ await this.loadMarkets();
580
+ const market = this.market(symbol);
581
+ const request = {
582
+ 'symbol': market['id'],
583
+ };
584
+ const response = await this.publicGetMarketMarkPrice(this.extend(request, params));
585
+ const data = this.safeList(response, 'data', []);
586
+ const first = this.safeDict(data, 0, {});
587
+ return this.parseTicker(first, market);
588
+ }
566
589
  async fetchTickers(symbols = undefined, params = {}) {
567
590
  /**
568
591
  * @method
@@ -5670,11 +5670,11 @@ class bybit extends bybit$1 {
5670
5670
  const chain = this.safeString(depositAddress, 'chain');
5671
5671
  this.checkAddress(address);
5672
5672
  return {
5673
+ 'info': depositAddress,
5673
5674
  'currency': code,
5675
+ 'network': chain,
5674
5676
  'address': address,
5675
5677
  'tag': tag,
5676
- 'network': chain,
5677
- 'info': depositAddress,
5678
5678
  };
5679
5679
  }
5680
5680
  async fetchDepositAddressesByNetwork(code, params = {}) {
@@ -46,6 +46,7 @@ class cex extends cex$1 {
46
46
  'fetchDeposit': false,
47
47
  'fetchDepositAddress': true,
48
48
  'fetchDepositAddresses': false,
49
+ 'fetchDepositAddressesByNetwork': false,
49
50
  'fetchDeposits': false,
50
51
  'fetchDepositsWithdrawals': false,
51
52
  'fetchFundingHistory': false,
@@ -1635,11 +1636,11 @@ class cex extends cex$1 {
1635
1636
  const address = this.safeString2(addressObject, 'address', 'destination');
1636
1637
  this.checkAddress(address);
1637
1638
  return {
1639
+ 'info': data,
1638
1640
  'currency': code,
1641
+ 'network': this.networkIdToCode(selectedNetworkId),
1639
1642
  'address': address,
1640
1643
  'tag': this.safeString2(addressObject, 'destinationTag', 'memo'),
1641
- 'network': this.networkIdToCode(selectedNetworkId),
1642
- 'info': data,
1643
1644
  };
1644
1645
  }
1645
1646
  nonce() {
@@ -4071,9 +4071,9 @@ class coinbase extends coinbase$1 {
4071
4071
  return {
4072
4072
  'info': depositAddress,
4073
4073
  'currency': this.safeCurrencyCode(marketId, currency),
4074
+ 'network': this.networkIdToCode(networkId, code),
4074
4075
  'address': address,
4075
4076
  'tag': this.safeString(addressInfo, 'destination_tag'),
4076
- 'network': this.networkIdToCode(networkId, code),
4077
4077
  };
4078
4078
  }
4079
4079
  async deposit(code, amount, id, params = {}) {
@@ -65,8 +65,8 @@ class coinex extends coinex$1 {
65
65
  'fetchCrossBorrowRates': false,
66
66
  'fetchCurrencies': true,
67
67
  'fetchDepositAddress': true,
68
- 'fetchDepositAddressByNetwork': false,
69
68
  'fetchDepositAddresses': false,
69
+ 'fetchDepositAddressesByNetwork': false,
70
70
  'fetchDeposits': true,
71
71
  'fetchDepositWithdrawFee': true,
72
72
  'fetchDepositWithdrawFees': false,
@@ -3809,9 +3809,9 @@ class coinex extends coinex$1 {
3809
3809
  return {
3810
3810
  'info': depositAddress,
3811
3811
  'currency': this.safeCurrencyCode(undefined, currency),
3812
+ 'network': undefined,
3812
3813
  'address': address,
3813
3814
  'tag': tag,
3814
- 'network': undefined,
3815
3815
  };
3816
3816
  }
3817
3817
  async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
@@ -45,7 +45,9 @@ class coinone extends coinone$1 {
45
45
  'fetchCrossBorrowRate': false,
46
46
  'fetchCrossBorrowRates': false,
47
47
  'fetchCurrencies': true,
48
+ 'fetchDepositAddress': false,
48
49
  'fetchDepositAddresses': true,
50
+ 'fetchDepositAddressesByNetwork': false,
49
51
  'fetchFundingHistory': false,
50
52
  'fetchFundingRate': false,
51
53
  'fetchFundingRateHistory': false,
@@ -1103,10 +1105,11 @@ class coinone extends coinone$1 {
1103
1105
  let depositAddress = this.safeValue(result, code);
1104
1106
  if (depositAddress === undefined) {
1105
1107
  depositAddress = {
1108
+ 'info': value,
1106
1109
  'currency': code,
1110
+ 'network': undefined,
1107
1111
  'address': undefined,
1108
1112
  'tag': undefined,
1109
- 'info': value,
1110
1113
  };
1111
1114
  }
1112
1115
  const address = this.safeString(depositAddress, 'address', value);
@@ -1885,11 +1885,11 @@ class coinsph extends coinsph$1 {
1885
1885
  const currencyId = this.safeString(depositAddress, 'coin');
1886
1886
  const parsedCurrency = this.safeCurrencyCode(currencyId, currency);
1887
1887
  return {
1888
+ 'info': depositAddress,
1888
1889
  'currency': parsedCurrency,
1890
+ 'network': null,
1889
1891
  'address': this.safeString(depositAddress, 'address'),
1890
1892
  'tag': this.safeString(depositAddress, 'addressTag'),
1891
- 'network': null,
1892
- 'info': depositAddress,
1893
1893
  };
1894
1894
  }
1895
1895
  urlEncodeQuery(query = {}) {
@@ -51,6 +51,7 @@ class cryptocom extends cryptocom$1 {
51
51
  'fetchCrossBorrowRates': false,
52
52
  'fetchCurrencies': false,
53
53
  'fetchDepositAddress': true,
54
+ 'fetchDepositAddresses': false,
54
55
  'fetchDepositAddressesByNetwork': true,
55
56
  'fetchDeposits': true,
56
57
  'fetchDepositsWithdrawals': false,
@@ -1785,9 +1786,9 @@ class cryptocom extends cryptocom$1 {
1785
1786
  result[network] = {
1786
1787
  'info': value,
1787
1788
  'currency': responseCode,
1789
+ 'network': network,
1788
1790
  'address': address,
1789
1791
  'tag': tag,
1790
- 'network': network,
1791
1792
  };
1792
1793
  }
1793
1794
  return result;
@@ -1850,11 +1850,11 @@ class currencycom extends currencycom$1 {
1850
1850
  this.checkAddress(address);
1851
1851
  currency = this.safeCurrency(undefined, currency);
1852
1852
  return {
1853
+ 'info': depositAddress,
1853
1854
  'currency': currency['code'],
1855
+ 'network': undefined,
1854
1856
  'address': address,
1855
1857
  'tag': undefined,
1856
- 'network': undefined,
1857
- 'info': depositAddress,
1858
1858
  };
1859
1859
  }
1860
1860
  sign(path, api = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
@@ -41,6 +41,8 @@ class delta extends delta$1 {
41
41
  'fetchCurrencies': true,
42
42
  'fetchDeposit': undefined,
43
43
  'fetchDepositAddress': true,
44
+ 'fetchDepositAddresses': false,
45
+ 'fetchDepositAddressesByNetwork': false,
44
46
  'fetchDeposits': undefined,
45
47
  'fetchFundingHistory': false,
46
48
  'fetchFundingRate': true,
@@ -2372,11 +2374,11 @@ class delta extends delta$1 {
2372
2374
  const networkId = this.safeString(depositAddress, 'network');
2373
2375
  this.checkAddress(address);
2374
2376
  return {
2377
+ 'info': depositAddress,
2375
2378
  'currency': this.safeCurrencyCode(marketId, currency),
2379
+ 'network': this.networkIdToCode(networkId),
2376
2380
  'address': address,
2377
2381
  'tag': this.safeString(depositAddress, 'memo'),
2378
- 'network': this.networkIdToCode(networkId),
2379
- 'info': depositAddress,
2380
2382
  };
2381
2383
  }
2382
2384
  async fetchFundingRate(symbol, params = {}) {