ccxt 4.1.54 → 4.1.55

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 (159) hide show
  1. package/README.md +3 -3
  2. package/dist/ccxt.browser.js +166 -199
  3. package/dist/ccxt.browser.min.js +2 -2
  4. package/dist/cjs/ccxt.js +1 -1
  5. package/dist/cjs/src/ace.js +2 -2
  6. package/dist/cjs/src/alpaca.js +1 -1
  7. package/dist/cjs/src/base/Exchange.js +15 -56
  8. package/dist/cjs/src/base/errors.js +1 -1
  9. package/dist/cjs/src/bigone.js +1 -6
  10. package/dist/cjs/src/binance.js +10 -3
  11. package/dist/cjs/src/bingx.js +1 -1
  12. package/dist/cjs/src/bitmart.js +29 -62
  13. package/dist/cjs/src/bitmex.js +2 -2
  14. package/dist/cjs/src/bittrex.js +1 -3
  15. package/dist/cjs/src/coinbase.js +53 -3
  16. package/dist/cjs/src/coinex.js +23 -33
  17. package/dist/cjs/src/coinone.js +2 -2
  18. package/dist/cjs/src/digifinex.js +2 -2
  19. package/dist/cjs/src/idex.js +2 -2
  20. package/dist/cjs/src/kuna.js +6 -0
  21. package/dist/cjs/src/phemex.js +8 -8
  22. package/dist/cjs/src/poloniex.js +3 -2
  23. package/dist/cjs/src/poloniexfutures.js +1 -1
  24. package/dist/cjs/src/pro/hitbtc.js +1 -1
  25. package/dist/cjs/src/tidex.js +2 -2
  26. package/dist/cjs/src/timex.js +1 -1
  27. package/dist/cjs/src/whitebit.js +2 -2
  28. package/js/ccxt.d.ts +1 -1
  29. package/js/ccxt.js +1 -1
  30. package/js/src/abstract/binance.d.ts +1 -0
  31. package/js/src/abstract/binancecoinm.d.ts +1 -0
  32. package/js/src/abstract/binanceus.d.ts +1 -0
  33. package/js/src/abstract/binanceusdm.d.ts +1 -0
  34. package/js/src/abstract/coinbase.d.ts +2 -0
  35. package/js/src/ace.d.ts +4 -4
  36. package/js/src/ace.js +2 -2
  37. package/js/src/alpaca.d.ts +3 -3
  38. package/js/src/alpaca.js +1 -1
  39. package/js/src/ascendex.d.ts +21 -21
  40. package/js/src/base/Exchange.d.ts +46 -46
  41. package/js/src/base/Exchange.js +15 -56
  42. package/js/src/base/Precise.d.ts +13 -12
  43. package/js/src/base/errorHierarchy.d.ts +10 -9
  44. package/js/src/base/errorHierarchy.js +10 -9
  45. package/js/src/base/errors.d.ts +1 -1
  46. package/js/src/base/errors.js +1 -1
  47. package/js/src/base/functions/type.d.ts +18 -18
  48. package/js/src/base/types.d.ts +16 -15
  49. package/js/src/bigone.d.ts +7 -7
  50. package/js/src/bigone.js +1 -6
  51. package/js/src/binance.d.ts +47 -90
  52. package/js/src/binance.js +10 -3
  53. package/js/src/binancecoinm.d.ts +2 -2
  54. package/js/src/binanceusdm.d.ts +2 -2
  55. package/js/src/bingx.d.ts +17 -17
  56. package/js/src/bingx.js +1 -1
  57. package/js/src/bit2c.d.ts +7 -7
  58. package/js/src/bitbank.d.ts +6 -6
  59. package/js/src/bitbns.d.ts +5 -5
  60. package/js/src/bitfinex.d.ts +9 -9
  61. package/js/src/bitfinex2.d.ts +16 -16
  62. package/js/src/bitflyer.d.ts +7 -7
  63. package/js/src/bitforex.d.ts +5 -5
  64. package/js/src/bitget.d.ts +40 -40
  65. package/js/src/bithumb.d.ts +7 -7
  66. package/js/src/bitmart.d.ts +39 -34
  67. package/js/src/bitmart.js +29 -62
  68. package/js/src/bitmex.d.ts +16 -16
  69. package/js/src/bitmex.js +2 -2
  70. package/js/src/bitopro.d.ts +7 -7
  71. package/js/src/bitpanda.d.ts +8 -8
  72. package/js/src/bitrue.d.ts +7 -7
  73. package/js/src/bitso.d.ts +7 -7
  74. package/js/src/bitstamp.d.ts +11 -11
  75. package/js/src/bittrex.d.ts +10 -10
  76. package/js/src/bittrex.js +1 -3
  77. package/js/src/bitvavo.d.ts +7 -7
  78. package/js/src/bl3p.d.ts +3 -3
  79. package/js/src/blockchaincom.d.ts +5 -5
  80. package/js/src/btcalpha.d.ts +6 -6
  81. package/js/src/btcbox.d.ts +4 -4
  82. package/js/src/btcmarkets.d.ts +6 -6
  83. package/js/src/btcturk.d.ts +4 -4
  84. package/js/src/bybit.d.ts +31 -74
  85. package/js/src/cex.d.ts +5 -5
  86. package/js/src/coinbase.d.ts +12 -11
  87. package/js/src/coinbase.js +53 -3
  88. package/js/src/coinbasepro.d.ts +9 -9
  89. package/js/src/coincheck.d.ts +5 -5
  90. package/js/src/coinex.d.ts +46 -40
  91. package/js/src/coinex.js +23 -33
  92. package/js/src/coinlist.d.ts +12 -12
  93. package/js/src/coinmate.d.ts +5 -5
  94. package/js/src/coinone.d.ts +4 -4
  95. package/js/src/coinone.js +2 -2
  96. package/js/src/coinsph.d.ts +12 -12
  97. package/js/src/coinspot.d.ts +3 -3
  98. package/js/src/cryptocom.d.ts +16 -16
  99. package/js/src/currencycom.d.ts +12 -12
  100. package/js/src/delta.d.ts +26 -69
  101. package/js/src/deribit.d.ts +18 -18
  102. package/js/src/digifinex.d.ts +34 -34
  103. package/js/src/digifinex.js +2 -2
  104. package/js/src/exmo.d.ts +12 -12
  105. package/js/src/gate.d.ts +41 -84
  106. package/js/src/gemini.d.ts +7 -7
  107. package/js/src/hitbtc.d.ts +23 -23
  108. package/js/src/hollaex.d.ts +9 -9
  109. package/js/src/htx.d.ts +31 -31
  110. package/js/src/huobijp.d.ts +8 -8
  111. package/js/src/idex.d.ts +6 -6
  112. package/js/src/idex.js +2 -2
  113. package/js/src/independentreserve.d.ts +4 -4
  114. package/js/src/indodax.d.ts +6 -6
  115. package/js/src/kraken.d.ts +15 -15
  116. package/js/src/krakenfutures.d.ts +10 -10
  117. package/js/src/kucoin.d.ts +22 -22
  118. package/js/src/kucoinfutures.d.ts +15 -15
  119. package/js/src/kuna.d.ts +10 -10
  120. package/js/src/kuna.js +2 -2
  121. package/js/src/latoken.d.ts +10 -10
  122. package/js/src/lbank.d.ts +9 -9
  123. package/js/src/luno.d.ts +6 -6
  124. package/js/src/lykke.d.ts +5 -5
  125. package/js/src/mercado.d.ts +6 -6
  126. package/js/src/mexc.d.ts +20 -20
  127. package/js/src/ndax.d.ts +9 -9
  128. package/js/src/novadax.d.ts +11 -11
  129. package/js/src/oceanex.d.ts +4 -4
  130. package/js/src/okcoin.d.ts +14 -14
  131. package/js/src/okx.d.ts +46 -89
  132. package/js/src/p2b.d.ts +5 -4
  133. package/js/src/paymium.d.ts +10 -10
  134. package/js/src/phemex.d.ts +31 -31
  135. package/js/src/phemex.js +8 -8
  136. package/js/src/poloniex.d.ts +10 -10
  137. package/js/src/poloniex.js +3 -2
  138. package/js/src/poloniexfutures.d.ts +6 -6
  139. package/js/src/poloniexfutures.js +1 -1
  140. package/js/src/pro/binance.d.ts +1 -1
  141. package/js/src/pro/currencycom.d.ts +1 -1
  142. package/js/src/pro/hitbtc.js +1 -1
  143. package/js/src/pro/poloniexfutures.d.ts +1 -1
  144. package/js/src/probit.d.ts +10 -10
  145. package/js/src/tidex.d.ts +5 -5
  146. package/js/src/tidex.js +2 -2
  147. package/js/src/timex.d.ts +11 -11
  148. package/js/src/timex.js +1 -1
  149. package/js/src/tokocrypto.d.ts +6 -6
  150. package/js/src/upbit.d.ts +18 -18
  151. package/js/src/wavesexchange.d.ts +7 -7
  152. package/js/src/wazirx.d.ts +4 -4
  153. package/js/src/whitebit.d.ts +13 -13
  154. package/js/src/whitebit.js +2 -2
  155. package/js/src/woo.d.ts +20 -20
  156. package/js/src/yobit.d.ts +4 -4
  157. package/js/src/zaif.d.ts +5 -5
  158. package/js/src/zonda.d.ts +14 -14
  159. package/package.json +11 -6
@@ -1947,7 +1947,7 @@ class ace extends _abstract_ace_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
1947
1947
  // "type": 1
1948
1948
  // }
1949
1949
  //
1950
- let id = undefined;
1950
+ let id;
1951
1951
  let timestamp = undefined;
1952
1952
  let symbol = undefined;
1953
1953
  let price = undefined;
@@ -2227,7 +2227,7 @@ class ace extends _abstract_ace_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
2227
2227
  symbol = baseId + '/' + quoteId;
2228
2228
  }
2229
2229
  let side = undefined;
2230
- const tradeSide = this.safeNumber(trade, 'buyOrSell');
2230
+ const tradeSide = this.safeInteger(trade, 'buyOrSell');
2231
2231
  if (tradeSide !== undefined) {
2232
2232
  side = (tradeSide === 1) ? 'buy' : 'sell';
2233
2233
  }
@@ -3257,7 +3257,7 @@ class alpaca extends _abstract_alpaca_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
3257
3257
  const datetime = this.safeString(trade, 't');
3258
3258
  const timestamp = this.parse8601(datetime);
3259
3259
  const alpacaSide = this.safeString(trade, 'tks');
3260
- let side = undefined;
3260
+ let side;
3261
3261
  if (alpacaSide === 'B') {
3262
3262
  side = 'buy';
3263
3263
  }
@@ -9727,53 +9727,14 @@ class Exchange {
9727
9727
  return {
9728
9728
  'id': currencyId,
9729
9729
  'code': code,
9730
+ 'precision': undefined,
9730
9731
  };
9731
9732
  }
9732
9733
  safeMarket(marketId, market = undefined, delimiter = undefined, marketType = undefined) {
9733
- const result = {
9734
- 'id': marketId,
9734
+ const result = this.safeMarketStructure({
9735
9735
  'symbol': marketId,
9736
- 'base': undefined,
9737
- 'quote': undefined,
9738
- 'baseId': undefined,
9739
- 'quoteId': undefined,
9740
- 'active': undefined,
9741
- 'type': undefined,
9742
- 'linear': undefined,
9743
- 'inverse': undefined,
9744
- 'spot': false,
9745
- 'swap': false,
9746
- 'future': false,
9747
- 'option': false,
9748
- 'margin': false,
9749
- 'contract': false,
9750
- 'contractSize': undefined,
9751
- 'expiry': undefined,
9752
- 'expiryDatetime': undefined,
9753
- 'optionType': undefined,
9754
- 'strike': undefined,
9755
- 'settle': undefined,
9756
- 'settleId': undefined,
9757
- 'precision': {
9758
- 'amount': undefined,
9759
- 'price': undefined,
9760
- },
9761
- 'limits': {
9762
- 'amount': {
9763
- 'min': undefined,
9764
- 'max': undefined,
9765
- },
9766
- 'price': {
9767
- 'min': undefined,
9768
- 'max': undefined,
9769
- },
9770
- 'cost': {
9771
- 'min': undefined,
9772
- 'max': undefined,
9773
- },
9774
- },
9775
- 'info': undefined,
9776
- };
9736
+ 'marketId': marketId,
9737
+ });
9777
9738
  if (marketId !== undefined) {
9778
9739
  if ((this.markets_by_id !== undefined) && (marketId in this.markets_by_id)) {
9779
9740
  const markets = this.markets_by_id[marketId];
@@ -10225,21 +10186,19 @@ class Exchange {
10225
10186
  if (this.markets === undefined) {
10226
10187
  throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.ExchangeError(this.id + ' markets not loaded');
10227
10188
  }
10228
- if (typeof symbol === 'string') {
10229
- if (symbol in this.markets) {
10230
- return this.markets[symbol];
10231
- }
10232
- else if (symbol in this.markets_by_id) {
10233
- const markets = this.markets_by_id[symbol];
10234
- const defaultType = this.safeString2(this.options, 'defaultType', 'defaultSubType', 'spot');
10235
- for (let i = 0; i < markets.length; i++) {
10236
- const market = markets[i];
10237
- if (market[defaultType]) {
10238
- return market;
10239
- }
10189
+ if (symbol in this.markets) {
10190
+ return this.markets[symbol];
10191
+ }
10192
+ else if (symbol in this.markets_by_id) {
10193
+ const markets = this.markets_by_id[symbol];
10194
+ const defaultType = this.safeString2(this.options, 'defaultType', 'defaultSubType', 'spot');
10195
+ for (let i = 0; i < markets.length; i++) {
10196
+ const market = markets[i];
10197
+ if (market[defaultType]) {
10198
+ return market;
10240
10199
  }
10241
- return markets[0];
10242
10200
  }
10201
+ return markets[0];
10243
10202
  }
10244
10203
  throw new _errors_js__WEBPACK_IMPORTED_MODULE_3__.BadSymbol(this.id + ' does not have market symbol ' + symbol);
10245
10204
  }
@@ -11859,7 +11818,7 @@ class RequestTimeout extends NetworkError {
11859
11818
  this.name = 'RequestTimeout';
11860
11819
  }
11861
11820
  }
11862
- class OperationFailed extends NetworkError {
11821
+ class OperationFailed extends BaseError {
11863
11822
  constructor(message) {
11864
11823
  super(message);
11865
11824
  this.name = 'OperationFailed';
@@ -15354,12 +15313,7 @@ class bigone extends _abstract_bigone_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
15354
15313
  const takerOrderId = this.safeString(trade, 'taker_order_id');
15355
15314
  let orderId = undefined;
15356
15315
  if (makerOrderId !== undefined) {
15357
- if (takerOrderId !== undefined) {
15358
- orderId = [makerOrderId, takerOrderId];
15359
- }
15360
- else {
15361
- orderId = makerOrderId;
15362
- }
15316
+ orderId = makerOrderId;
15363
15317
  }
15364
15318
  else if (takerOrderId !== undefined) {
15365
15319
  orderId = takerOrderId;
@@ -16605,6 +16559,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
16605
16559
  'dapiPrivate': 'https://testnet.binancefuture.com/dapi/v1',
16606
16560
  'dapiPrivateV2': 'https://testnet.binancefuture.com/dapi/v2',
16607
16561
  'fapiPublic': 'https://testnet.binancefuture.com/fapi/v1',
16562
+ 'fapiPublicV2': 'https://testnet.binancefuture.com/fapi/v2',
16608
16563
  'fapiPrivate': 'https://testnet.binancefuture.com/fapi/v1',
16609
16564
  'fapiPrivateV2': 'https://testnet.binancefuture.com/fapi/v2',
16610
16565
  'public': 'https://testnet.binance.vision/api/v3',
@@ -16623,6 +16578,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
16623
16578
  'dapiPrivateV2': 'https://dapi.binance.com/dapi/v2',
16624
16579
  'dapiData': 'https://dapi.binance.com/futures/data',
16625
16580
  'fapiPublic': 'https://fapi.binance.com/fapi/v1',
16581
+ 'fapiPublicV2': 'https://fapi.binance.com/fapi/v2',
16626
16582
  'fapiPrivate': 'https://fapi.binance.com/fapi/v1',
16627
16583
  'fapiData': 'https://fapi.binance.com/futures/data',
16628
16584
  'fapiPrivateV2': 'https://fapi.binance.com/fapi/v2',
@@ -17240,6 +17196,11 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
17240
17196
  'listenKey': 1,
17241
17197
  },
17242
17198
  },
17199
+ 'fapiPublicV2': {
17200
+ 'get': {
17201
+ 'ticker/price': 0,
17202
+ },
17203
+ },
17243
17204
  'fapiPrivateV2': {
17244
17205
  'get': {
17245
17206
  'account': 1,
@@ -19582,7 +19543,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
19582
19543
  [type, params] = this.handleMarketTypeAndParams('fetchLastPrices', market, params);
19583
19544
  let response = undefined;
19584
19545
  if (this.isLinear(type, subType)) {
19585
- response = await this.fapiPublicGetTickerPrice(params);
19546
+ response = await this.fapiPublicV2GetTickerPrice(params);
19586
19547
  //
19587
19548
  // [
19588
19549
  // {
@@ -25359,9 +25320,9 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
25359
25320
  // }
25360
25321
  //
25361
25322
  const timestamp = this.safeNumber(info, 'timestamp');
25362
- currency = this.safeString(info, 'asset');
25323
+ const currencyId = this.safeString(info, 'asset');
25363
25324
  return {
25364
- 'currency': this.safeCurrencyCode(currency),
25325
+ 'currency': this.safeCurrencyCode(currencyId, currency),
25365
25326
  'rate': this.safeNumber(info, 'dailyInterestRate'),
25366
25327
  'period': 86400000,
25367
25328
  'timestamp': timestamp,
@@ -26321,7 +26282,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
26321
26282
  'fetchTransfers': true,
26322
26283
  'fetchWithdrawals': true,
26323
26284
  'setLeverage': true,
26324
- 'setMagin': true,
26285
+ 'setMargin': true,
26325
26286
  'setMarginMode': true,
26326
26287
  'transfer': true,
26327
26288
  },
@@ -50855,7 +50816,7 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
50855
50816
  'info': info,
50856
50817
  };
50857
50818
  }
50858
- async fetchBorrowRate(code, params = {}) {
50819
+ async fetchIsolatedBorrowRate(symbol, params = {}) {
50859
50820
  /**
50860
50821
  * @method
50861
50822
  * @name bitmart#fetchBorrowRate
@@ -50867,17 +50828,8 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
50867
50828
  */
50868
50829
  await this.loadMarkets();
50869
50830
  let market = undefined;
50870
- if (code in this.markets) {
50871
- market = this.market(code);
50872
- }
50873
- else {
50874
- const defaultSettle = this.safeString(this.options, 'defaultSettle', 'USDT');
50875
- if (code === 'USDT') {
50876
- market = this.market('BTC' + '/' + defaultSettle);
50877
- }
50878
- else {
50879
- market = this.market(code + '/' + defaultSettle);
50880
- }
50831
+ if (symbol !== undefined) {
50832
+ market = this.market(symbol);
50881
50833
  }
50882
50834
  const request = {
50883
50835
  'symbol': market['id'],
@@ -50917,10 +50869,10 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
50917
50869
  //
50918
50870
  const data = this.safeValue(response, 'data', {});
50919
50871
  const symbols = this.safeValue(data, 'symbols', []);
50920
- const currency = (code === 'USDT') ? market['quote'] : market['base'];
50921
- return this.parseBorrowRate(symbols, currency);
50872
+ const borrowRate = this.safeValue(symbols, 0);
50873
+ return this.parseIsolatedBorrowRate(borrowRate, market);
50922
50874
  }
50923
- parseBorrowRate(info, currency = undefined) {
50875
+ parseIsolatedBorrowRate(info, market = undefined) {
50924
50876
  //
50925
50877
  // {
50926
50878
  // "symbol": "BTC_USDT",
@@ -50944,18 +50896,29 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
50944
50896
  // }
50945
50897
  // }
50946
50898
  //
50947
- const timestamp = this.milliseconds();
50948
- const currencyData = (currency === 'USDT') ? this.safeValue(info[0], 'quote', {}) : this.safeValue(info[0], 'base', {});
50899
+ const marketId = this.safeString(info, 'symbol');
50900
+ const symbol = this.safeSymbol(marketId, market);
50901
+ const baseData = this.safeValue(info, 'base');
50902
+ const quoteData = this.safeValue(info, 'quote');
50903
+ const baseId = this.safeString(baseData, 'currency');
50904
+ const quoteId = this.safeString(quoteData, 'currency');
50905
+ const base = this.safeCurrencyCode(baseId);
50906
+ const quote = this.safeCurrencyCode(quoteId);
50907
+ const baseRate = this.safeNumber(baseData, 'hourly_interest');
50908
+ const quoteRate = this.safeNumber(quoteData, 'hourly_interest');
50949
50909
  return {
50950
- 'currency': this.safeCurrencyCode(currency),
50951
- 'rate': this.safeNumber(currencyData, 'hourly_interest'),
50910
+ 'symbol': symbol,
50911
+ 'base': base,
50912
+ 'baseRate': baseRate,
50913
+ 'quote': quote,
50914
+ 'quoteRate': quoteRate,
50952
50915
  'period': 3600000,
50953
- 'timestamp': timestamp,
50954
- 'datetime': this.iso8601(timestamp),
50916
+ 'timestamp': undefined,
50917
+ 'datetime': undefined,
50955
50918
  'info': info,
50956
50919
  };
50957
50920
  }
50958
- async fetchBorrowRates(params = {}) {
50921
+ async fetchIsolatedBorrowRates(params = {}) {
50959
50922
  /**
50960
50923
  * @method
50961
50924
  * @name bitmart#fetchBorrowRates
@@ -51000,47 +50963,12 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
51000
50963
  //
51001
50964
  const data = this.safeValue(response, 'data', {});
51002
50965
  const symbols = this.safeValue(data, 'symbols', []);
51003
- return this.parseBorrowRates(symbols, undefined);
51004
- }
51005
- parseBorrowRates(info, codeKey) {
51006
- //
51007
- // {
51008
- // "symbol": "BTC_USDT",
51009
- // "max_leverage": "5",
51010
- // "symbol_enabled": true,
51011
- // "base": {
51012
- // "currency": "BTC",
51013
- // "daily_interest": "0.00055000",
51014
- // "hourly_interest": "0.00002291",
51015
- // "max_borrow_amount": "2.00000000",
51016
- // "min_borrow_amount": "0.00000001",
51017
- // "borrowable_amount": "0.00670810"
51018
- // },
51019
- // "quote": {
51020
- // "currency": "USDT",
51021
- // "daily_interest": "0.00055000",
51022
- // "hourly_interest": "0.00002291",
51023
- // "max_borrow_amount": "50000.00000000",
51024
- // "min_borrow_amount": "0.00000001",
51025
- // "borrowable_amount": "135.12575038"
51026
- // }
51027
- // }
51028
- //
51029
- const timestamp = this.milliseconds();
51030
- const rates = [];
51031
- for (let i = 0; i < info.length; i++) {
51032
- const entry = info[i];
51033
- const base = this.safeValue(entry, 'base', {});
51034
- rates.push({
51035
- 'currency': this.safeCurrencyCode(this.safeString(base, 'currency')),
51036
- 'rate': this.safeNumber(base, 'hourly_interest'),
51037
- 'period': 3600000,
51038
- 'timestamp': timestamp,
51039
- 'datetime': this.iso8601(timestamp),
51040
- 'info': entry,
51041
- });
50966
+ const result = [];
50967
+ for (let i = 0; i < symbols.length; i++) {
50968
+ const symbol = this.safeValue(symbols, i);
50969
+ result.push(this.parseIsolatedBorrowRate(symbol));
51042
50970
  }
51043
- return rates;
50971
+ return result;
51044
50972
  }
51045
50973
  async transfer(code, amount, fromAccount, toAccount, params = {}) {
51046
50974
  /**
@@ -51878,8 +51806,8 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
51878
51806
  'fetchDepositAddresses': false,
51879
51807
  'fetchDepositAddressesByNetwork': false,
51880
51808
  'fetchDepositsWithdrawals': 'emulated',
51881
- 'fetchDepositWithdrawalFee': 'emulated',
51882
- 'fetchDepositWithdrawalFees': true,
51809
+ 'fetchDepositWithdrawFee': 'emulated',
51810
+ 'fetchDepositWithdrawFees': true,
51883
51811
  'fetchFundingHistory': false,
51884
51812
  'fetchFundingRate': false,
51885
51813
  'fetchFundingRateHistory': true,
@@ -66242,12 +66170,10 @@ class bittrex extends _abstract_bittrex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
66242
66170
  let market = undefined;
66243
66171
  if (symbol !== undefined) {
66244
66172
  market = this.market(symbol);
66245
- symbol = market['symbol'];
66246
66173
  request['marketSymbol'] = market['id'];
66247
66174
  }
66248
66175
  const response = await this.privateGetExecutions(this.extend(request, params));
66249
- const trades = this.parseTrades(response, market, since, limit);
66250
- return trades;
66176
+ return this.parseTrades(response, market, since, limit);
66251
66177
  }
66252
66178
  async fetchClosedOrders(symbol = undefined, since = undefined, limit = undefined, params = {}) {
66253
66179
  /**
@@ -83169,6 +83095,7 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
83169
83095
  'createStopLimitOrder': true,
83170
83096
  'createStopMarketOrder': false,
83171
83097
  'createStopOrder': true,
83098
+ 'editOrder': true,
83172
83099
  'fetchAccounts': true,
83173
83100
  'fetchBalance': true,
83174
83101
  'fetchBidsAsks': true,
@@ -83320,6 +83247,8 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
83320
83247
  'post': [
83321
83248
  'brokerage/orders',
83322
83249
  'brokerage/orders/batch_cancel',
83250
+ 'brokerage/orders/edit',
83251
+ 'brokerage/orders/edit_preview',
83323
83252
  ],
83324
83253
  },
83325
83254
  },
@@ -83792,7 +83721,7 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
83792
83721
  };
83793
83722
  return this.safeString(statuses, status, status);
83794
83723
  }
83795
- parseTransaction(transaction, market = undefined) {
83724
+ parseTransaction(transaction, currency = undefined) {
83796
83725
  //
83797
83726
  // fiat deposit
83798
83727
  //
@@ -83864,7 +83793,7 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
83864
83793
  const type = this.safeString(transaction, 'resource');
83865
83794
  const amount = this.safeNumber(subtotalObject, 'amount');
83866
83795
  const currencyId = this.safeString(subtotalObject, 'currency');
83867
- const currency = this.safeCurrencyCode(currencyId);
83796
+ const code = this.safeCurrencyCode(currencyId, currency);
83868
83797
  const feeCost = this.safeNumber(feeObject, 'amount');
83869
83798
  const feeCurrencyId = this.safeString(feeObject, 'currency');
83870
83799
  const feeCurrency = this.safeCurrencyCode(feeCurrencyId);
@@ -83892,7 +83821,7 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
83892
83821
  'tagFrom': undefined,
83893
83822
  'type': type,
83894
83823
  'amount': amount,
83895
- 'currency': currency,
83824
+ 'currency': code,
83896
83825
  'status': status,
83897
83826
  'updated': updated,
83898
83827
  'fee': fee,
@@ -85483,6 +85412,53 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
85483
85412
  }
85484
85413
  return this.parseOrders(orders, market);
85485
85414
  }
85415
+ async editOrder(id, symbol, type, side, amount = undefined, price = undefined, params = {}) {
85416
+ /**
85417
+ * @method
85418
+ * @name coinbase#editOrder
85419
+ * @description edit a trade order
85420
+ * @see https://docs.cloud.coinbase.com/advanced-trade-api/reference/retailbrokerageapi_editorder
85421
+ * @param {string} id cancel order id
85422
+ * @param {string} symbol unified symbol of the market to create an order in
85423
+ * @param {string} type 'market' or 'limit'
85424
+ * @param {string} side 'buy' or 'sell'
85425
+ * @param {float} amount how much of currency you want to trade in units of base currency
85426
+ * @param {float} [price] the price at which the order is to be fullfilled, in units of the base currency, ignored in market orders
85427
+ * @param {object} [params] extra parameters specific to the coinbase api endpoint
85428
+ * @param {boolean} [params.preview] default to false, wether to use the test/preview endpoint or not
85429
+ * @returns {object} an [order structure]{@link https://github.com/ccxt/ccxt/wiki/Manual#order-structure}
85430
+ */
85431
+ await this.loadMarkets();
85432
+ const market = this.market(symbol);
85433
+ const request = {
85434
+ 'order_id': id,
85435
+ };
85436
+ if (amount !== undefined) {
85437
+ request['size'] = this.amountToPrecision(symbol, amount);
85438
+ }
85439
+ if (price !== undefined) {
85440
+ request['price'] = this.priceToPrecision(symbol, price);
85441
+ }
85442
+ const preview = this.safeValue2(params, 'preview', 'test', false);
85443
+ let response = undefined;
85444
+ if (preview) {
85445
+ params = this.omit(params, ['preview', 'test']);
85446
+ response = await this.v3PrivatePostBrokerageOrdersEditPreview(this.extend(request, params));
85447
+ }
85448
+ else {
85449
+ response = await this.v3PrivatePostBrokerageOrdersEdit(this.extend(request, params));
85450
+ }
85451
+ //
85452
+ // {
85453
+ // "success": true,
85454
+ // "errors": {
85455
+ // "edit_failure_reason": "UNKNOWN_EDIT_ORDER_FAILURE_REASON",
85456
+ // "preview_failure_reason": "UNKNOWN_PREVIEW_FAILURE_REASON"
85457
+ // }
85458
+ // }
85459
+ //
85460
+ return this.parseOrder(response, market);
85461
+ }
85486
85462
  async fetchOrder(id, symbol = undefined, params = {}) {
85487
85463
  /**
85488
85464
  * @method
@@ -89016,7 +88992,7 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
89016
88992
  'fetchDepositAddresses': false,
89017
88993
  'fetchDeposits': true,
89018
88994
  'fetchDepositWithdrawFees': true,
89019
- 'fetchDepsoitWithdrawFee': 'emulated',
88995
+ 'fetchDepositWithdrawFee': 'emulated',
89020
88996
  'fetchFundingHistory': true,
89021
88997
  'fetchFundingRate': true,
89022
88998
  'fetchFundingRateHistory': true,
@@ -93341,7 +93317,7 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
93341
93317
  }
93342
93318
  return this.parseTransactions(data, currency, since, limit);
93343
93319
  }
93344
- parseBorrowRate(info, currency = undefined) {
93320
+ parseBorrowRate(info, market = undefined) {
93345
93321
  //
93346
93322
  // {
93347
93323
  // "market": "BTCUSDT",
@@ -93358,18 +93334,25 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
93358
93334
  // }
93359
93335
  // },
93360
93336
  //
93361
- const timestamp = this.milliseconds();
93362
- const baseCurrencyData = this.safeValue(info, currency, {});
93337
+ const marketId = this.safeString(info, 'market');
93338
+ market = this.safeMarket(marketId, market, undefined, 'spot');
93339
+ const baseInfo = this.safeValue(info, market['baseId']);
93340
+ const baseRate = this.safeNumber(baseInfo, 'day_rate');
93341
+ const quoteInfo = this.safeValue(info, market['quoteId']);
93342
+ const quoteRate = this.safeNumber(quoteInfo, 'day_rate');
93363
93343
  return {
93364
- 'currency': this.safeCurrencyCode(currency),
93365
- 'rate': this.safeNumber(baseCurrencyData, 'day_rate'),
93344
+ 'symbol': market['symbol'],
93345
+ 'base': market['base'],
93346
+ 'baseRate': baseRate,
93347
+ 'quote': market['quote'],
93348
+ 'quoteRate': quoteRate,
93366
93349
  'period': 86400000,
93367
- 'timestamp': timestamp,
93368
- 'datetime': this.iso8601(timestamp),
93350
+ 'timestamp': undefined,
93351
+ 'datetime': undefined,
93369
93352
  'info': info,
93370
93353
  };
93371
93354
  }
93372
- async fetchBorrowRate(code, params = {}) {
93355
+ async fetchIsolatedBorrowRate(symbol, params = {}) {
93373
93356
  /**
93374
93357
  * @method
93375
93358
  * @name coinex#fetchBorrowRate
@@ -93380,16 +93363,11 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
93380
93363
  */
93381
93364
  await this.loadMarkets();
93382
93365
  let market = undefined;
93383
- if (code in this.markets) {
93384
- market = this.market(code);
93385
- }
93386
- else {
93387
- const defaultSettle = this.safeString(this.options, 'defaultSettle', 'USDT');
93388
- market = this.market(code + '/' + defaultSettle);
93366
+ const request = {};
93367
+ if (symbol !== undefined) {
93368
+ market = this.market(symbol);
93369
+ request['market'] = market['id'];
93389
93370
  }
93390
- const request = {
93391
- 'market': market['id'],
93392
- };
93393
93371
  const response = await this.privateGetMarginConfig(this.extend(request, params));
93394
93372
  //
93395
93373
  // {
@@ -93412,9 +93390,9 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
93412
93390
  // }
93413
93391
  //
93414
93392
  const data = this.safeValue(response, 'data', {});
93415
- return this.parseBorrowRate(data, market['base']);
93393
+ return this.parseBorrowRate(data, market);
93416
93394
  }
93417
- async fetchBorrowRates(params = {}) {
93395
+ async fetchIsolatedBorrowRates(params = {}) {
93418
93396
  /**
93419
93397
  * @method
93420
93398
  * @name coinex#fetchBorrowRates
@@ -93446,22 +93424,10 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
93446
93424
  // "message": "Success"
93447
93425
  // }
93448
93426
  //
93449
- const timestamp = this.milliseconds();
93450
93427
  const data = this.safeValue(response, 'data', {});
93451
93428
  const rates = [];
93452
93429
  for (let i = 0; i < data.length; i++) {
93453
- const entry = data[i];
93454
- const symbol = this.safeString(entry, 'market');
93455
- const market = this.safeMarket(symbol, undefined, undefined, 'spot');
93456
- const currencyData = this.safeValue(entry, market['base']);
93457
- rates.push({
93458
- 'currency': market['base'],
93459
- 'rate': this.safeNumber(currencyData, 'day_rate'),
93460
- 'period': 86400000,
93461
- 'timestamp': timestamp,
93462
- 'datetime': this.iso8601(timestamp),
93463
- 'info': entry,
93464
- });
93430
+ rates.push(this.parseBorrowRate(data[i]));
93465
93431
  }
93466
93432
  return rates;
93467
93433
  }
@@ -97820,10 +97786,10 @@ class coinone extends _abstract_coinone_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
97820
97786
  let base = undefined;
97821
97787
  let quote = undefined;
97822
97788
  if (baseId !== undefined) {
97823
- base = this.safeCurrencyCode(baseId, this.safeString(market, 'base'));
97789
+ base = this.safeCurrencyCode(baseId);
97824
97790
  }
97825
97791
  if (quoteId !== undefined) {
97826
- quote = this.safeCurrencyCode(quoteId, this.safeString(market, 'quote'));
97792
+ quote = this.safeCurrencyCode(quoteId);
97827
97793
  }
97828
97794
  let symbol = undefined;
97829
97795
  if ((base !== undefined) && (quote !== undefined)) {
@@ -115464,7 +115430,7 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
115464
115430
  result = entry;
115465
115431
  }
115466
115432
  }
115467
- const currency = this.safeString(result, 'currency');
115433
+ const currency = this.currency(code);
115468
115434
  return this.parseBorrowRate(result, currency);
115469
115435
  }
115470
115436
  async fetchBorrowRates(params = {}) {
@@ -115531,7 +115497,7 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
115531
115497
  const item = info[i];
115532
115498
  const currency = this.safeString(item, codeKey);
115533
115499
  const code = this.safeCurrencyCode(currency);
115534
- const borrowRate = this.parseBorrowRate(item, currency);
115500
+ const borrowRate = this.parseBorrowRate(item);
115535
115501
  result[code] = borrowRate;
115536
115502
  }
115537
115503
  return result;
@@ -145464,7 +145430,7 @@ class idex extends _abstract_idex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
145464
145430
  'depositId': id,
145465
145431
  };
145466
145432
  const response = await this.privateGetDeposits(this.extend(request, params));
145467
- return this.parseTransaction(response, code);
145433
+ return this.parseTransaction(response);
145468
145434
  }
145469
145435
  async fetchDeposits(code = undefined, since = undefined, limit = undefined, params = {}) {
145470
145436
  /**
@@ -145514,7 +145480,7 @@ class idex extends _abstract_idex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
145514
145480
  'withdrawalId': id,
145515
145481
  };
145516
145482
  const response = await this.privateGetWithdrawals(this.extend(request, params));
145517
- return this.parseTransaction(response, code);
145483
+ return this.parseTransaction(response);
145518
145484
  }
145519
145485
  async fetchWithdrawals(code = undefined, since = undefined, limit = undefined, params = {}) {
145520
145486
  /**
@@ -160886,7 +160852,7 @@ class kuna extends _abstract_kuna_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
160886
160852
  const until = this.safeInteger(params, 'until');
160887
160853
  params = this.omit(params, 'until');
160888
160854
  let currency = undefined;
160889
- if (currency !== undefined) {
160855
+ if (code !== undefined) {
160890
160856
  currency = this.currency(code);
160891
160857
  }
160892
160858
  const request = {};
@@ -161080,7 +161046,7 @@ class kuna extends _abstract_kuna_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
161080
161046
  const until = this.safeInteger(params, 'until');
161081
161047
  params = this.omit(params, 'until');
161082
161048
  let currency = undefined;
161083
- if (currency !== undefined) {
161049
+ if (code !== undefined) {
161084
161050
  currency = this.currency(code);
161085
161051
  }
161086
161052
  const request = {};
@@ -192165,7 +192131,7 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
192165
192131
  const contractSizeString = this.safeString(market, 'contractSize', ' ');
192166
192132
  let contractSize = undefined;
192167
192133
  if (settle === 'USDT') {
192168
- contractSize = 1;
192134
+ contractSize = this.parseNumber('1');
192169
192135
  }
192170
192136
  else if (contractSizeString.indexOf(' ')) {
192171
192137
  // "1 USD"
@@ -192710,7 +192676,7 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
192710
192676
  // 48759063370, // quote volume
192711
192677
  // ]
192712
192678
  //
192713
- let baseVolume = undefined;
192679
+ let baseVolume;
192714
192680
  if ((market !== undefined) && market['spot']) {
192715
192681
  baseVolume = this.parseNumber(this.fromEv(this.safeString(ohlcv, 7), market));
192716
192682
  }
@@ -193001,7 +192967,7 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
193001
192967
  let subType = undefined;
193002
192968
  [subType, params] = this.handleSubTypeAndParams('fetchTickers', market, params);
193003
192969
  const query = this.omit(params, 'type');
193004
- let defaultMethod = undefined;
192970
+ let defaultMethod;
193005
192971
  if (type === 'spot') {
193006
192972
  defaultMethod = 'v1GetMdSpotTicker24hrAll';
193007
192973
  }
@@ -193221,9 +193187,9 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
193221
193187
  // "execStatus": 6
193222
193188
  // }
193223
193189
  //
193224
- let priceString = undefined;
193225
- let amountString = undefined;
193226
- let timestamp = undefined;
193190
+ let priceString;
193191
+ let amountString;
193192
+ let timestamp;
193227
193193
  let id = undefined;
193228
193194
  let side = undefined;
193229
193195
  let costString = undefined;
@@ -193727,7 +193693,7 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
193727
193693
  };
193728
193694
  }
193729
193695
  const timeInForce = this.parseTimeInForce(this.safeString(order, 'timeInForce'));
193730
- const stopPrice = this.parseNumber(this.omitZero(this.fromEp(this.safeString(order, 'stopPxEp', market))));
193696
+ const stopPrice = this.parseNumber(this.omitZero(this.fromEp(this.safeString(order, 'stopPxEp'))));
193731
193697
  const postOnly = (timeInForce === 'PO');
193732
193698
  return this.safeOrder({
193733
193699
  'info': order,
@@ -195910,7 +195876,7 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
195910
195876
  const id = this.safeString(transfer, 'linkKey');
195911
195877
  const status = this.safeString(transfer, 'status');
195912
195878
  const amountEv = this.safeString(transfer, 'amountEv');
195913
- const amountTransfered = this.fromEv(amountEv, currency);
195879
+ const amountTransfered = this.fromEv(amountEv);
195914
195880
  const currencyId = this.safeString(transfer, 'currency');
195915
195881
  const code = this.safeCurrencyCode(currencyId, currency);
195916
195882
  const side = this.safeInteger(transfer, 'side');
@@ -198159,7 +198125,8 @@ class poloniex extends _abstract_poloniex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
198159
198125
  const code = this.safeCurrencyCode(currencyId);
198160
198126
  const feeInfo = response[currencyId];
198161
198127
  if ((codes === undefined) || (this.inArray(code, codes))) {
198162
- depositWithdrawFees[code] = this.parseDepositWithdrawFee(feeInfo, code);
198128
+ const currency = this.currency(code);
198129
+ depositWithdrawFees[code] = this.parseDepositWithdrawFee(feeInfo, currency);
198163
198130
  const childChains = this.safeValue(feeInfo, 'childChains');
198164
198131
  const chainsLength = childChains.length;
198165
198132
  if (chainsLength > 0) {
@@ -198189,7 +198156,7 @@ class poloniex extends _abstract_poloniex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
198189
198156
  }
198190
198157
  parseDepositWithdrawFee(fee, currency = undefined) {
198191
198158
  const depositWithdrawFee = this.depositWithdrawFee({});
198192
- depositWithdrawFee['info'][currency] = fee;
198159
+ depositWithdrawFee['info'][currency['code']] = fee;
198193
198160
  const networkId = this.safeString(fee, 'blockchain');
198194
198161
  const withdrawFee = this.safeNumber(fee, 'withdrawalFee');
198195
198162
  const withdrawResult = {
@@ -199461,7 +199428,7 @@ class poloniexfutures extends _abstract_poloniexfutures_js__WEBPACK_IMPORTED_MOD
199461
199428
  market = this.safeMarket(symbol, market);
199462
199429
  const timestamp = this.safeInteger(position, 'currentTimestamp');
199463
199430
  const size = this.safeString(position, 'currentQty');
199464
- let side = undefined;
199431
+ let side;
199465
199432
  if (_base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise.stringGt */ .O.stringGt(size, '0')) {
199466
199433
  side = 'long';
199467
199434
  }
@@ -228402,7 +228369,7 @@ class hitbtc extends _hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
228402
228369
  // }
228403
228370
  //
228404
228371
  const timestamp = this.safeString(order, 'created_at');
228405
- const marketId = this.safeSymbol(order, 'symbol');
228372
+ const marketId = this.safeString(order, 'symbol');
228406
228373
  market = this.safeMarket(marketId, market);
228407
228374
  const tradeId = this.safeString(order, 'trade_id');
228408
228375
  let trades = undefined;
@@ -260978,8 +260945,8 @@ class tidex extends _abstract_tidex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
260978
260945
  const timestamp = this.safeTimestamp(order, 'timestamp_created');
260979
260946
  const marketId = this.safeString(order, 'pair');
260980
260947
  const symbol = this.safeSymbol(marketId, market);
260981
- let remaining = undefined;
260982
- let amount = undefined;
260948
+ let remaining;
260949
+ let amount;
260983
260950
  const price = this.safeString(order, 'rate');
260984
260951
  if ('start_amount' in order) {
260985
260952
  amount = this.safeString(order, 'start_amount');
@@ -262801,7 +262768,7 @@ class timex extends _abstract_timex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
262801
262768
  const amount = this.safeString(order, 'quantity');
262802
262769
  const filled = this.safeString(order, 'filledQuantity');
262803
262770
  const canceledQuantity = this.omitZero(this.safeString(order, 'cancelledQuantity'));
262804
- let status = undefined;
262771
+ let status;
262805
262772
  if (_base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise.stringEquals */ .O.stringEquals(filled, amount)) {
262806
262773
  status = 'closed';
262807
262774
  }
@@ -271134,7 +271101,7 @@ class whitebit extends _abstract_whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
271134
271101
  const active = this.safeValue(market, 'tradesEnabled');
271135
271102
  const isCollateral = this.safeValue(market, 'isCollateral');
271136
271103
  const typeId = this.safeString(market, 'type');
271137
- let type = undefined;
271104
+ let type;
271138
271105
  let settle = undefined;
271139
271106
  let settleId = undefined;
271140
271107
  let symbol = base + '/' + quote;
@@ -272016,7 +271983,7 @@ class whitebit extends _abstract_whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
272016
271983
  if (postOnly) {
272017
271984
  request['postOnly'] = true;
272018
271985
  }
272019
- let method = undefined;
271986
+ let method;
272020
271987
  if (marginMode !== undefined && marginMode !== 'cross') {
272021
271988
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' createOrder() is only available for cross margin');
272022
271989
  }
@@ -285249,7 +285216,7 @@ SOFTWARE.
285249
285216
 
285250
285217
  //-----------------------------------------------------------------------------
285251
285218
  // this is updated by vss.js when building
285252
- const version = '4.1.54';
285219
+ const version = '4.1.55';
285253
285220
  _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange.ccxtVersion */ .e.ccxtVersion = version;
285254
285221
  //-----------------------------------------------------------------------------
285255
285222