ccxt 4.1.36 → 4.1.37

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 (135) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.js +1447 -385
  3. package/dist/ccxt.browser.min.js +3 -3
  4. package/dist/cjs/ccxt.js +1 -1
  5. package/dist/cjs/src/base/Exchange.js +19 -0
  6. package/dist/cjs/src/base/errors.js +6 -6
  7. package/dist/cjs/src/binance.js +2 -2
  8. package/dist/cjs/src/bingx.js +106 -0
  9. package/dist/cjs/src/bitforex.js +1 -1
  10. package/dist/cjs/src/bitget.js +2 -2
  11. package/dist/cjs/src/bitmart.js +2 -2
  12. package/dist/cjs/src/bitmex.js +3 -3
  13. package/dist/cjs/src/deribit.js +2 -2
  14. package/dist/cjs/src/gate.js +2 -2
  15. package/dist/cjs/src/hollaex.js +7 -7
  16. package/dist/cjs/src/huobi.js +2 -2
  17. package/dist/cjs/src/kucoinfutures.js +0 -3
  18. package/dist/cjs/src/kuna.js +1284 -350
  19. package/dist/cjs/src/latoken.js +2 -2
  20. package/dist/cjs/src/wazirx.js +1 -1
  21. package/js/ccxt.d.ts +1 -1
  22. package/js/ccxt.js +1 -1
  23. package/js/src/abstract/kuna.d.ts +29 -27
  24. package/js/src/ace.d.ts +7 -7
  25. package/js/src/alpaca.d.ts +7 -7
  26. package/js/src/ascendex.d.ts +3 -3
  27. package/js/src/base/Exchange.d.ts +3 -2
  28. package/js/src/base/Exchange.js +19 -0
  29. package/js/src/base/errorHierarchy.d.ts +1 -1
  30. package/js/src/base/errorHierarchy.js +1 -1
  31. package/js/src/base/errors.d.ts +3 -3
  32. package/js/src/base/errors.js +6 -6
  33. package/js/src/bigone.d.ts +10 -10
  34. package/js/src/binance.d.ts +48 -15
  35. package/js/src/binance.js +2 -2
  36. package/js/src/bingx.d.ts +10 -8
  37. package/js/src/bingx.js +106 -0
  38. package/js/src/bit2c.d.ts +5 -5
  39. package/js/src/bitbank.d.ts +7 -7
  40. package/js/src/bitbns.d.ts +6 -6
  41. package/js/src/bitfinex.d.ts +9 -9
  42. package/js/src/bitfinex2.d.ts +1 -1
  43. package/js/src/bitforex.d.ts +8 -8
  44. package/js/src/bitforex.js +1 -1
  45. package/js/src/bitget.d.ts +2 -12
  46. package/js/src/bitget.js +2 -2
  47. package/js/src/bithumb.d.ts +7 -7
  48. package/js/src/bitmart.d.ts +11 -21
  49. package/js/src/bitmart.js +2 -2
  50. package/js/src/bitmex.d.ts +2 -12
  51. package/js/src/bitmex.js +3 -3
  52. package/js/src/bitopro.d.ts +9 -9
  53. package/js/src/bitpanda.d.ts +8 -8
  54. package/js/src/bitrue.d.ts +9 -9
  55. package/js/src/bitso.d.ts +7 -7
  56. package/js/src/bitstamp.d.ts +7 -7
  57. package/js/src/bittrex.d.ts +9 -9
  58. package/js/src/bitvavo.d.ts +1 -1
  59. package/js/src/blockchaincom.d.ts +8 -8
  60. package/js/src/btcalpha.d.ts +9 -9
  61. package/js/src/btcbox.d.ts +8 -8
  62. package/js/src/btcmarkets.d.ts +3 -3
  63. package/js/src/btctradeua.d.ts +3 -3
  64. package/js/src/btcturk.d.ts +6 -6
  65. package/js/src/bybit.d.ts +1 -1
  66. package/js/src/cex.d.ts +3 -3
  67. package/js/src/coinbase.d.ts +1 -1
  68. package/js/src/coinbasepro.d.ts +1 -1
  69. package/js/src/coinex.d.ts +11 -11
  70. package/js/src/coinfalcon.d.ts +6 -6
  71. package/js/src/coinmate.d.ts +6 -6
  72. package/js/src/coinone.d.ts +5 -5
  73. package/js/src/coinsph.d.ts +10 -10
  74. package/js/src/cryptocom.d.ts +1 -1
  75. package/js/src/currencycom.d.ts +8 -8
  76. package/js/src/delta.d.ts +10 -10
  77. package/js/src/deribit.d.ts +9 -19
  78. package/js/src/deribit.js +2 -2
  79. package/js/src/digifinex.d.ts +8 -8
  80. package/js/src/exmo.d.ts +3 -3
  81. package/js/src/gate.d.ts +2 -12
  82. package/js/src/gate.js +2 -2
  83. package/js/src/gemini.d.ts +6 -6
  84. package/js/src/hitbtc.d.ts +1 -1
  85. package/js/src/hollaex.d.ts +12 -12
  86. package/js/src/hollaex.js +7 -7
  87. package/js/src/huobi.d.ts +2 -12
  88. package/js/src/huobi.js +2 -2
  89. package/js/src/huobijp.d.ts +3 -3
  90. package/js/src/idex.d.ts +3 -3
  91. package/js/src/independentreserve.d.ts +6 -6
  92. package/js/src/kraken.d.ts +8 -8
  93. package/js/src/krakenfutures.d.ts +8 -8
  94. package/js/src/kucoin.d.ts +1 -1
  95. package/js/src/kucoinfutures.d.ts +4 -5
  96. package/js/src/kucoinfutures.js +0 -3
  97. package/js/src/kuna.d.ts +155 -7
  98. package/js/src/kuna.js +1290 -351
  99. package/js/src/latoken.d.ts +7 -7
  100. package/js/src/latoken.js +2 -2
  101. package/js/src/lbank.d.ts +3 -3
  102. package/js/src/lbank2.d.ts +10 -10
  103. package/js/src/luno.d.ts +8 -8
  104. package/js/src/lykke.d.ts +6 -6
  105. package/js/src/mercado.d.ts +9 -9
  106. package/js/src/mexc.d.ts +17 -17
  107. package/js/src/ndax.d.ts +9 -9
  108. package/js/src/novadax.d.ts +10 -10
  109. package/js/src/oceanex.d.ts +3 -3
  110. package/js/src/okcoin.d.ts +9 -9
  111. package/js/src/okx.d.ts +1 -1
  112. package/js/src/phemex.d.ts +13 -13
  113. package/js/src/poloniex.d.ts +9 -9
  114. package/js/src/poloniexfutures.d.ts +8 -8
  115. package/js/src/pro/bingx.d.ts +2 -2
  116. package/js/src/pro/bitget.d.ts +3 -3
  117. package/js/src/pro/bybit.d.ts +3 -3
  118. package/js/src/pro/hitbtc.d.ts +2 -2
  119. package/js/src/pro/mexc.d.ts +2 -2
  120. package/js/src/pro/poloniex.d.ts +2 -2
  121. package/js/src/pro/wazirx.d.ts +2 -2
  122. package/js/src/probit.d.ts +9 -9
  123. package/js/src/tidex.d.ts +5 -5
  124. package/js/src/timex.d.ts +9 -9
  125. package/js/src/tokocrypto.d.ts +10 -10
  126. package/js/src/upbit.d.ts +11 -11
  127. package/js/src/wavesexchange.d.ts +9 -9
  128. package/js/src/wazirx.d.ts +8 -8
  129. package/js/src/wazirx.js +1 -1
  130. package/js/src/whitebit.d.ts +3 -3
  131. package/js/src/woo.d.ts +8 -8
  132. package/js/src/yobit.d.ts +6 -6
  133. package/js/src/zaif.d.ts +5 -5
  134. package/js/src/zonda.d.ts +6 -6
  135. package/package.json +1 -1
package/dist/cjs/ccxt.js CHANGED
@@ -180,7 +180,7 @@ var woo$1 = require('./src/pro/woo.js');
180
180
 
181
181
  //-----------------------------------------------------------------------------
182
182
  // this is updated by vss.js when building
183
- const version = '4.1.36';
183
+ const version = '4.1.37';
184
184
  Exchange["default"].ccxtVersion = version;
185
185
  const exchanges = {
186
186
  'ace': ace,
@@ -2103,6 +2103,25 @@ class Exchange {
2103
2103
  'cost': this.parseNumber(cost),
2104
2104
  };
2105
2105
  }
2106
+ safeLiquidation(liquidation, market = undefined) {
2107
+ const contracts = this.safeString(liquidation, 'contracts');
2108
+ const contractSize = this.safeString(market, 'contractSize');
2109
+ const price = this.safeString(liquidation, 'price');
2110
+ let baseValue = this.safeString(liquidation, 'baseValue');
2111
+ let quoteValue = this.safeString(liquidation, 'quoteValue');
2112
+ if ((baseValue === undefined) && (contracts !== undefined) && (contractSize !== undefined) && (price !== undefined)) {
2113
+ baseValue = Precise["default"].stringMul(contracts, contractSize);
2114
+ }
2115
+ if ((quoteValue === undefined) && (baseValue !== undefined) && (price !== undefined)) {
2116
+ quoteValue = Precise["default"].stringMul(baseValue, price);
2117
+ }
2118
+ liquidation['contracts'] = this.parseNumber(contracts);
2119
+ liquidation['contractSize'] = this.parseNumber(contractSize);
2120
+ liquidation['price'] = this.parseNumber(price);
2121
+ liquidation['baseValue'] = this.parseNumber(baseValue);
2122
+ liquidation['quoteValue'] = this.parseNumber(quoteValue);
2123
+ return liquidation;
2124
+ }
2106
2125
  safeTrade(trade, market = undefined) {
2107
2126
  const amount = this.safeString(trade, 'amount');
2108
2127
  const price = this.safeString(trade, 'price');
@@ -46,12 +46,6 @@ class ExchangeError extends Error {
46
46
  this.name = 'ExchangeError';
47
47
  }
48
48
  }
49
- class OperationFailed extends ExchangeError {
50
- constructor(message) {
51
- super(message);
52
- this.name = 'OperationFailed';
53
- }
54
- }
55
49
  class AuthenticationError extends ExchangeError {
56
50
  constructor(message) {
57
51
  super(message);
@@ -239,6 +233,12 @@ class RequestTimeout extends NetworkError {
239
233
  this.name = 'RequestTimeout';
240
234
  }
241
235
  }
236
+ class OperationFailed extends NetworkError {
237
+ constructor(message) {
238
+ super(message);
239
+ this.name = 'OperationFailed';
240
+ }
241
+ }
242
242
  /* ------------------------------------------------------------------------ */
243
243
  // export default subclass (
244
244
  // // Root class
@@ -9521,7 +9521,7 @@ class binance extends binance$1 {
9521
9521
  //
9522
9522
  const marketId = this.safeString(liquidation, 'symbol');
9523
9523
  const timestamp = this.safeInteger2(liquidation, 'updatedTime', 'updateTime');
9524
- return {
9524
+ return this.safeLiquidation({
9525
9525
  'info': liquidation,
9526
9526
  'symbol': this.safeSymbol(marketId, market),
9527
9527
  'contracts': this.safeNumber(liquidation, 'executedQty'),
@@ -9531,7 +9531,7 @@ class binance extends binance$1 {
9531
9531
  'quoteValue': this.safeNumber(liquidation, 'cumQuote'),
9532
9532
  'timestamp': timestamp,
9533
9533
  'datetime': this.iso8601(timestamp),
9534
- };
9534
+ });
9535
9535
  }
9536
9536
  }
9537
9537
 
@@ -40,7 +40,9 @@ class bingx extends bingx$1 {
40
40
  'fetchFundingRate': true,
41
41
  'fetchFundingRateHistory': true,
42
42
  'fetchLeverage': true,
43
+ 'fetchLiquidations': false,
43
44
  'fetchMarkets': true,
45
+ 'fetchMyLiquidations': true,
44
46
  'fetchOHLCV': true,
45
47
  'fetchOpenInterest': true,
46
48
  'fetchOpenOrders': true,
@@ -3077,6 +3079,110 @@ class bingx extends bingx$1 {
3077
3079
  }
3078
3080
  return sortedParams;
3079
3081
  }
3082
+ async fetchMyLiquidations(symbol = undefined, since = undefined, limit = undefined, params = {}) {
3083
+ /**
3084
+ * @method
3085
+ * @name bingx#fetchMyLiquidations
3086
+ * @description retrieves the users liquidated positions
3087
+ * @see https://bingx-api.github.io/docs/#/swapV2/trade-api.html#User's%20Force%20Orders
3088
+ * @param {string} [symbol] unified CCXT market symbol
3089
+ * @param {int} [since] the earliest time in ms to fetch liquidations for
3090
+ * @param {int} [limit] the maximum number of liquidation structures to retrieve
3091
+ * @param {object} [params] exchange specific parameters for the bingx api endpoint
3092
+ * @param {int} [params.until] timestamp in ms of the latest liquidation
3093
+ * @returns {object} an array of [liquidation structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#liquidation-structure}
3094
+ */
3095
+ await this.loadMarkets();
3096
+ let request = {
3097
+ 'autoCloseType': 'LIQUIDATION',
3098
+ };
3099
+ [request, params] = this.handleUntilOption('endTime', request, params);
3100
+ let market = undefined;
3101
+ if (symbol !== undefined) {
3102
+ market = this.market(symbol);
3103
+ request['symbol'] = symbol;
3104
+ }
3105
+ if (since !== undefined) {
3106
+ request['startTime'] = since;
3107
+ }
3108
+ if (limit !== undefined) {
3109
+ request['limit'] = limit;
3110
+ }
3111
+ const response = await this.swapV2PrivateGetTradeForceOrders(this.extend(request, params));
3112
+ //
3113
+ // {
3114
+ // "code": 0,
3115
+ // "msg": "",
3116
+ // "data": {
3117
+ // "orders": [
3118
+ // {
3119
+ // "time": "int64",
3120
+ // "symbol": "string",
3121
+ // "side": "string",
3122
+ // "type": "string",
3123
+ // "positionSide": "string",
3124
+ // "cumQuote": "string",
3125
+ // "status": "string",
3126
+ // "stopPrice": "string",
3127
+ // "price": "string",
3128
+ // "origQty": "string",
3129
+ // "avgPrice": "string",
3130
+ // "executedQty": "string",
3131
+ // "orderId": "int64",
3132
+ // "profit": "string",
3133
+ // "commission": "string",
3134
+ // "workingType": "string",
3135
+ // "updateTime": "int64"
3136
+ // },
3137
+ // ]
3138
+ // }
3139
+ // }
3140
+ //
3141
+ const data = this.safeValue(response, 'data', {});
3142
+ const liquidations = this.safeValue(data, 'orders', []);
3143
+ return this.parseLiquidations(liquidations, market, since, limit);
3144
+ }
3145
+ parseLiquidation(liquidation, market = undefined) {
3146
+ //
3147
+ // {
3148
+ // "time": "int64",
3149
+ // "symbol": "string",
3150
+ // "side": "string",
3151
+ // "type": "string",
3152
+ // "positionSide": "string",
3153
+ // "cumQuote": "string",
3154
+ // "status": "string",
3155
+ // "stopPrice": "string",
3156
+ // "price": "string",
3157
+ // "origQty": "string",
3158
+ // "avgPrice": "string",
3159
+ // "executedQty": "string",
3160
+ // "orderId": "int64",
3161
+ // "profit": "string",
3162
+ // "commission": "string",
3163
+ // "workingType": "string",
3164
+ // "updateTime": "int64"
3165
+ // }
3166
+ //
3167
+ const marketId = this.safeString(liquidation, 'symbol');
3168
+ const timestamp = this.safeInteger(liquidation, 'time');
3169
+ const contractsString = this.safeString(liquidation, 'executedQty');
3170
+ const contractSizeString = this.safeString(market, 'contractSize');
3171
+ const priceString = this.safeString(liquidation, 'avgPrice');
3172
+ const baseValueString = Precise["default"].stringMul(contractsString, contractSizeString);
3173
+ const quoteValueString = Precise["default"].stringMul(baseValueString, priceString);
3174
+ return this.safeLiquidation({
3175
+ 'info': liquidation,
3176
+ 'symbol': this.safeSymbol(marketId, market),
3177
+ 'contracts': this.parseNumber(contractsString),
3178
+ 'contractSize': this.parseNumber(contractSizeString),
3179
+ 'price': this.parseNumber(priceString),
3180
+ 'baseValue': this.parseNumber(baseValueString),
3181
+ 'quoteValue': this.parseNumber(quoteValueString),
3182
+ 'timestamp': timestamp,
3183
+ 'datetime': this.iso8601(timestamp),
3184
+ });
3185
+ }
3080
3186
  sign(path, section = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
3081
3187
  const type = section[0];
3082
3188
  const version = section[1];
@@ -23,7 +23,7 @@ class bitforex extends bitforex$1 {
23
23
  'CORS': undefined,
24
24
  'spot': true,
25
25
  'margin': false,
26
- 'swap': undefined,
26
+ 'swap': false,
27
27
  'future': false,
28
28
  'option': false,
29
29
  'cancelOrder': true,
@@ -6312,7 +6312,7 @@ class bitget extends bitget$1 {
6312
6312
  const liquidationFee = this.safeString(liquidation, 'LiqFee');
6313
6313
  const totalDebt = this.safeString(liquidation, 'totalDebt');
6314
6314
  const quoteValueString = Precise["default"].stringAdd(liquidationFee, totalDebt);
6315
- return {
6315
+ return this.safeLiquidation({
6316
6316
  'info': liquidation,
6317
6317
  'symbol': this.safeSymbol(marketId, market),
6318
6318
  'contracts': undefined,
@@ -6322,7 +6322,7 @@ class bitget extends bitget$1 {
6322
6322
  'quoteValue': this.parseNumber(quoteValueString),
6323
6323
  'timestamp': timestamp,
6324
6324
  'datetime': this.iso8601(timestamp),
6325
- };
6325
+ });
6326
6326
  }
6327
6327
  async fetchBorrowRate(code, params = {}) {
6328
6328
  /**
@@ -4026,7 +4026,7 @@ class bitmart extends bitmart$1 {
4026
4026
  const priceString = this.safeString(liquidation, 'deal_avg_price');
4027
4027
  const baseValueString = Precise["default"].stringMul(contractsString, contractSizeString);
4028
4028
  const quoteValueString = Precise["default"].stringMul(baseValueString, priceString);
4029
- return {
4029
+ return this.safeLiquidation({
4030
4030
  'info': liquidation,
4031
4031
  'symbol': this.safeSymbol(marketId, market),
4032
4032
  'contracts': this.parseNumber(contractsString),
@@ -4036,7 +4036,7 @@ class bitmart extends bitmart$1 {
4036
4036
  'quoteValue': this.parseNumber(quoteValueString),
4037
4037
  'timestamp': timestamp,
4038
4038
  'datetime': this.iso8601(timestamp),
4039
- };
4039
+ });
4040
4040
  }
4041
4041
  nonce() {
4042
4042
  return this.milliseconds();
@@ -932,7 +932,7 @@ class bitmex extends bitmex$1 {
932
932
  */
933
933
  // Bitmex barfs if you set 'open': false in the filter...
934
934
  const orders = await this.fetchOrders(symbol, since, limit, params);
935
- return this.filterBy(orders, 'status', 'closed');
935
+ return this.filterByArray(orders, 'status', ['closed', 'canceled'], false);
936
936
  }
937
937
  async fetchMyTrades(symbol = undefined, since = undefined, limit = undefined, params = {}) {
938
938
  /**
@@ -2703,7 +2703,7 @@ class bitmex extends bitmex$1 {
2703
2703
  // }
2704
2704
  //
2705
2705
  const marketId = this.safeString(liquidation, 'symbol');
2706
- return {
2706
+ return this.safeLiquidation({
2707
2707
  'info': liquidation,
2708
2708
  'symbol': this.safeSymbol(marketId, market),
2709
2709
  'contracts': undefined,
@@ -2713,7 +2713,7 @@ class bitmex extends bitmex$1 {
2713
2713
  'quoteValue': undefined,
2714
2714
  'timestamp': undefined,
2715
2715
  'datetime': undefined,
2716
- };
2716
+ });
2717
2717
  }
2718
2718
  handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
2719
2719
  if (response === undefined) {
@@ -3066,7 +3066,7 @@ class deribit extends deribit$1 {
3066
3066
  // }
3067
3067
  //
3068
3068
  const timestamp = this.safeInteger(liquidation, 'timestamp');
3069
- return {
3069
+ return this.safeLiquidation({
3070
3070
  'info': liquidation,
3071
3071
  'symbol': this.safeSymbol(undefined, market),
3072
3072
  'contracts': undefined,
@@ -3076,7 +3076,7 @@ class deribit extends deribit$1 {
3076
3076
  'quoteValue': undefined,
3077
3077
  'timestamp': timestamp,
3078
3078
  'datetime': this.iso8601(timestamp),
3079
- };
3079
+ });
3080
3080
  }
3081
3081
  nonce() {
3082
3082
  return this.milliseconds();
@@ -6658,7 +6658,7 @@ class gate extends gate$1 {
6658
6658
  if (quoteValueString === undefined) {
6659
6659
  quoteValueString = Precise["default"].stringMul(baseValueString, priceString);
6660
6660
  }
6661
- return {
6661
+ return this.safeLiquidation({
6662
6662
  'info': liquidation,
6663
6663
  'symbol': this.safeSymbol(marketId, market),
6664
6664
  'contracts': this.parseNumber(contractsString),
@@ -6668,7 +6668,7 @@ class gate extends gate$1 {
6668
6668
  'quoteValue': this.parseNumber(Precise["default"].stringAbs(quoteValueString)),
6669
6669
  'timestamp': timestamp,
6670
6670
  'datetime': this.iso8601(timestamp),
6671
- };
6671
+ });
6672
6672
  }
6673
6673
  handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
6674
6674
  if (response === undefined) {
@@ -794,7 +794,7 @@ class hollaex extends hollaex$1 {
794
794
  //
795
795
  return this.parseOHLCVs(response, market, timeframe, since, limit);
796
796
  }
797
- parseOHLCV(response, market = undefined) {
797
+ parseOHLCV(ohlcv, market = undefined) {
798
798
  //
799
799
  // {
800
800
  // "time":"2020-03-02T20:00:00.000Z",
@@ -807,12 +807,12 @@ class hollaex extends hollaex$1 {
807
807
  // }
808
808
  //
809
809
  return [
810
- this.parse8601(this.safeString(response, 'time')),
811
- this.safeNumber(response, 'open'),
812
- this.safeNumber(response, 'high'),
813
- this.safeNumber(response, 'low'),
814
- this.safeNumber(response, 'close'),
815
- this.safeNumber(response, 'volume'),
810
+ this.parse8601(this.safeString(ohlcv, 'time')),
811
+ this.safeNumber(ohlcv, 'open'),
812
+ this.safeNumber(ohlcv, 'high'),
813
+ this.safeNumber(ohlcv, 'low'),
814
+ this.safeNumber(ohlcv, 'close'),
815
+ this.safeNumber(ohlcv, 'volume'),
816
816
  ];
817
817
  }
818
818
  parseBalance(response) {
@@ -8491,7 +8491,7 @@ class huobi extends huobi$1 {
8491
8491
  //
8492
8492
  const marketId = this.safeString(liquidation, 'contract_code');
8493
8493
  const timestamp = this.safeInteger(liquidation, 'created_at');
8494
- return {
8494
+ return this.safeLiquidation({
8495
8495
  'info': liquidation,
8496
8496
  'symbol': this.safeSymbol(marketId, market),
8497
8497
  'contracts': this.safeNumber(liquidation, 'volume'),
@@ -8501,7 +8501,7 @@ class huobi extends huobi$1 {
8501
8501
  'quoteValue': this.safeNumber(liquidation, 'trade_turnover'),
8502
8502
  'timestamp': timestamp,
8503
8503
  'datetime': this.iso8601(timestamp),
8504
- };
8504
+ });
8505
8505
  }
8506
8506
  }
8507
8507
 
@@ -741,9 +741,6 @@ class kucoinfutures extends kucoinfutures$1 {
741
741
  //
742
742
  return this.parseTicker(response['data'], market);
743
743
  }
744
- async fetchTickers(symbols = undefined, params = {}) {
745
- throw new errors.NotSupported(this.id + ' fetchTickers() is not supported yet');
746
- }
747
744
  parseTicker(ticker, market = undefined) {
748
745
  //
749
746
  // {