ccxt 4.2.29 → 4.2.30

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 (154) hide show
  1. package/README.md +4 -4
  2. package/dist/ccxt.browser.js +1709 -533
  3. package/dist/ccxt.browser.min.js +7 -7
  4. package/dist/cjs/ccxt.js +3 -1
  5. package/dist/cjs/src/ascendex.js +5 -5
  6. package/dist/cjs/src/base/Exchange.js +21 -21
  7. package/dist/cjs/src/base/errors.js +3 -3
  8. package/dist/cjs/src/base/functions/type.js +12 -0
  9. package/dist/cjs/src/bigone.js +2 -2
  10. package/dist/cjs/src/binance.js +896 -217
  11. package/dist/cjs/src/bingx.js +1 -1
  12. package/dist/cjs/src/bitfinex.js +1 -1
  13. package/dist/cjs/src/bitfinex2.js +52 -62
  14. package/dist/cjs/src/bitget.js +8 -4
  15. package/dist/cjs/src/bitmart.js +3 -3
  16. package/dist/cjs/src/bitmex.js +4 -4
  17. package/dist/cjs/src/bitrue.js +1 -1
  18. package/dist/cjs/src/bitso.js +1 -1
  19. package/dist/cjs/src/bitteam.js +2 -2
  20. package/dist/cjs/src/btcalpha.js +1 -1
  21. package/dist/cjs/src/bybit.js +3 -3
  22. package/dist/cjs/src/coinbase.js +12 -5
  23. package/dist/cjs/src/coincheck.js +1 -1
  24. package/dist/cjs/src/coinex.js +2 -2
  25. package/dist/cjs/src/coinlist.js +1 -1
  26. package/dist/cjs/src/coinmate.js +1 -1
  27. package/dist/cjs/src/coinmetro.js +2 -2
  28. package/dist/cjs/src/coinsph.js +1 -1
  29. package/dist/cjs/src/cryptocom.js +3 -3
  30. package/dist/cjs/src/digifinex.js +6 -4
  31. package/dist/cjs/src/exmo.js +2 -2
  32. package/dist/cjs/src/gate.js +5 -5
  33. package/dist/cjs/src/gemini.js +3 -3
  34. package/dist/cjs/src/hitbtc.js +14 -20
  35. package/dist/cjs/src/hollaex.js +2 -2
  36. package/dist/cjs/src/htx.js +5 -5
  37. package/dist/cjs/src/huobijp.js +1 -1
  38. package/dist/cjs/src/krakenfutures.js +1 -1
  39. package/dist/cjs/src/kucoin.js +17 -17
  40. package/dist/cjs/src/kucoinfutures.js +3 -3
  41. package/dist/cjs/src/lbank.js +1 -1
  42. package/dist/cjs/src/mexc.js +7 -7
  43. package/dist/cjs/src/novadax.js +1 -1
  44. package/dist/cjs/src/okcoin.js +2 -2
  45. package/dist/cjs/src/okx.js +7 -6
  46. package/dist/cjs/src/p2b.js +1 -0
  47. package/dist/cjs/src/phemex.js +3 -3
  48. package/dist/cjs/src/poloniexfutures.js +3 -3
  49. package/dist/cjs/src/pro/alpaca.js +1 -1
  50. package/dist/cjs/src/pro/binance.js +4 -4
  51. package/dist/cjs/src/pro/bitget.js +1 -1
  52. package/dist/cjs/src/pro/bitmart.js +1 -1
  53. package/dist/cjs/src/pro/bitmex.js +49 -6
  54. package/dist/cjs/src/pro/bitvavo.js +1 -1
  55. package/dist/cjs/src/pro/bybit.js +2 -2
  56. package/dist/cjs/src/pro/cex.js +2 -2
  57. package/dist/cjs/src/pro/independentreserve.js +1 -1
  58. package/dist/cjs/src/pro/okx.js +1 -1
  59. package/dist/cjs/src/pro/onetrading.js +2 -2
  60. package/dist/cjs/src/pro/p2b.js +432 -0
  61. package/dist/cjs/src/pro/probit.js +5 -5
  62. package/dist/cjs/src/pro/whitebit.js +1 -1
  63. package/dist/cjs/src/probit.js +1 -1
  64. package/dist/cjs/src/timex.js +1 -1
  65. package/dist/cjs/src/tokocrypto.js +3 -3
  66. package/dist/cjs/src/wavesexchange.js +2 -2
  67. package/dist/cjs/src/whitebit.js +2 -2
  68. package/dist/cjs/src/woo.js +3 -3
  69. package/dist/cjs/src/yobit.js +1 -1
  70. package/dist/cjs/src/zaif.js +1 -1
  71. package/dist/cjs/src/zonda.js +3 -3
  72. package/js/ccxt.d.ts +4 -1
  73. package/js/ccxt.js +3 -1
  74. package/js/src/abstract/bybit.d.ts +2 -2
  75. package/js/src/ascendex.js +5 -5
  76. package/js/src/base/Exchange.d.ts +1 -1
  77. package/js/src/base/Exchange.js +21 -21
  78. package/js/src/base/errorHierarchy.d.ts +7 -6
  79. package/js/src/base/errorHierarchy.js +7 -6
  80. package/js/src/base/errors.d.ts +3 -3
  81. package/js/src/base/errors.js +3 -3
  82. package/js/src/base/functions/type.js +12 -0
  83. package/js/src/bigone.js +2 -2
  84. package/js/src/binance.d.ts +1 -0
  85. package/js/src/binance.js +897 -218
  86. package/js/src/bingx.js +1 -1
  87. package/js/src/bitfinex.js +1 -1
  88. package/js/src/bitfinex2.js +52 -62
  89. package/js/src/bitget.js +8 -4
  90. package/js/src/bitmart.js +3 -3
  91. package/js/src/bitmex.js +4 -4
  92. package/js/src/bitrue.js +1 -1
  93. package/js/src/bitso.d.ts +1 -1
  94. package/js/src/bitso.js +1 -1
  95. package/js/src/bitteam.js +2 -2
  96. package/js/src/btcalpha.js +1 -1
  97. package/js/src/bybit.js +3 -3
  98. package/js/src/coinbase.js +12 -5
  99. package/js/src/coincheck.js +1 -1
  100. package/js/src/coinex.js +2 -2
  101. package/js/src/coinlist.js +1 -1
  102. package/js/src/coinmate.js +1 -1
  103. package/js/src/coinmetro.d.ts +1 -1
  104. package/js/src/coinmetro.js +2 -2
  105. package/js/src/coinsph.js +1 -1
  106. package/js/src/cryptocom.js +3 -3
  107. package/js/src/digifinex.js +6 -4
  108. package/js/src/exmo.js +2 -2
  109. package/js/src/gate.js +5 -5
  110. package/js/src/gemini.d.ts +1 -1
  111. package/js/src/gemini.js +3 -3
  112. package/js/src/hitbtc.js +14 -20
  113. package/js/src/hollaex.js +2 -2
  114. package/js/src/htx.js +5 -5
  115. package/js/src/huobijp.js +1 -1
  116. package/js/src/krakenfutures.js +1 -1
  117. package/js/src/kucoin.js +17 -17
  118. package/js/src/kucoinfutures.js +3 -3
  119. package/js/src/lbank.js +1 -1
  120. package/js/src/mexc.js +7 -7
  121. package/js/src/novadax.js +1 -1
  122. package/js/src/okcoin.js +2 -2
  123. package/js/src/okx.js +7 -6
  124. package/js/src/p2b.js +1 -0
  125. package/js/src/phemex.js +3 -3
  126. package/js/src/poloniexfutures.js +3 -3
  127. package/js/src/pro/alpaca.js +1 -1
  128. package/js/src/pro/binance.js +4 -4
  129. package/js/src/pro/bitget.js +1 -1
  130. package/js/src/pro/bitmart.js +1 -1
  131. package/js/src/pro/bitmex.d.ts +2 -1
  132. package/js/src/pro/bitmex.js +49 -6
  133. package/js/src/pro/bitvavo.js +1 -1
  134. package/js/src/pro/bybit.js +2 -2
  135. package/js/src/pro/cex.js +2 -2
  136. package/js/src/pro/independentreserve.js +1 -1
  137. package/js/src/pro/okx.js +1 -1
  138. package/js/src/pro/onetrading.js +2 -2
  139. package/js/src/pro/p2b.d.ts +23 -0
  140. package/js/src/pro/p2b.js +433 -0
  141. package/js/src/pro/probit.js +5 -5
  142. package/js/src/pro/whitebit.js +1 -1
  143. package/js/src/probit.js +1 -1
  144. package/js/src/timex.js +1 -1
  145. package/js/src/tokocrypto.js +3 -3
  146. package/js/src/wavesexchange.js +2 -2
  147. package/js/src/whitebit.js +2 -2
  148. package/js/src/woo.js +3 -3
  149. package/js/src/yobit.js +1 -1
  150. package/js/src/zaif.js +1 -1
  151. package/js/src/zonda.d.ts +1 -1
  152. package/js/src/zonda.js +3 -3
  153. package/package.json +1 -1
  154. package/skip-tests.json +3 -10
@@ -4256,7 +4256,7 @@ class ascendex extends _abstract_ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
4256
4256
  symbol = base + '/' + quote + ':' + settle;
4257
4257
  }
4258
4258
  const fee = this.safeNumber(market, 'commissionReserveRate');
4259
- const marginTradable = this.safeValue(market, 'marginTradable', false);
4259
+ const marginTradable = this.safeBool(market, 'marginTradable', false);
4260
4260
  result.push({
4261
4261
  'id': id,
4262
4262
  'symbol': symbol,
@@ -4451,7 +4451,7 @@ class ascendex extends _abstract_ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
4451
4451
  let marginMode = undefined;
4452
4452
  [marketType, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
4453
4453
  [marginMode, params] = this.handleMarginModeAndParams('fetchBalance', params);
4454
- const isMargin = this.safeValue(params, 'margin', false);
4454
+ const isMargin = this.safeBool(params, 'margin', false);
4455
4455
  const isCross = marginMode === 'cross';
4456
4456
  marketType = (isMargin || isCross) ? 'margin' : marketType;
4457
4457
  params = this.omit(params, 'margin');
@@ -4811,7 +4811,7 @@ class ascendex extends _abstract_ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
4811
4811
  const timestamp = this.safeInteger(trade, 'ts');
4812
4812
  const priceString = this.safeString2(trade, 'price', 'p');
4813
4813
  const amountString = this.safeString(trade, 'q');
4814
- const buyerIsMaker = this.safeValue(trade, 'bm', false);
4814
+ const buyerIsMaker = this.safeBool(trade, 'bm', false);
4815
4815
  const side = buyerIsMaker ? 'sell' : 'buy';
4816
4816
  market = this.safeMarket(undefined, market);
4817
4817
  return this.safeTrade({
@@ -5155,7 +5155,7 @@ class ascendex extends _abstract_ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
5155
5155
  const isLimitOrder = ((type === 'limit') || (type === 'stop_limit'));
5156
5156
  const timeInForce = this.safeString(params, 'timeInForce');
5157
5157
  const postOnly = this.isPostOnly(isMarketOrder, false, params);
5158
- const reduceOnly = this.safeValue(params, 'reduceOnly', false);
5158
+ const reduceOnly = this.safeBool(params, 'reduceOnly', false);
5159
5159
  const stopPrice = this.safeValue2(params, 'triggerPrice', 'stopPrice');
5160
5160
  if (isLimitOrder) {
5161
5161
  request['orderPrice'] = this.priceToPrecision(symbol, price);
@@ -6798,7 +6798,7 @@ class ascendex extends _abstract_ascendex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
6798
6798
  // { "code": "0" }
6799
6799
  //
6800
6800
  const transferOptions = this.safeValue(this.options, 'transfer', {});
6801
- const fillResponseFromRequest = this.safeValue(transferOptions, 'fillResponseFromRequest', true);
6801
+ const fillResponseFromRequest = this.safeBool(transferOptions, 'fillResponseFromRequest', true);
6802
6802
  const transfer = this.parseTransfer(response, currency);
6803
6803
  if (fillResponseFromRequest) {
6804
6804
  transfer['fromAccount'] = fromAccount;
@@ -8996,7 +8996,7 @@ class Exchange {
8996
8996
  fee['cost'] = this.safeNumber(fee, 'cost');
8997
8997
  }
8998
8998
  const timestamp = this.safeInteger(entry, 'timestamp');
8999
- const info = this.safeValue(entry, 'info', {});
8999
+ const info = this.safeDict(entry, 'info', {});
9000
9000
  return {
9001
9001
  'id': this.safeString(entry, 'id'),
9002
9002
  'timestamp': timestamp,
@@ -9168,7 +9168,7 @@ class Exchange {
9168
9168
  for (let i = 0; i < values.length; i++) {
9169
9169
  const market = values[i];
9170
9170
  const defaultCurrencyPrecision = (this.precisionMode === DECIMAL_PLACES) ? 8 : this.parseNumber('1e-8');
9171
- const marketPrecision = this.safeValue(market, 'precision', {});
9171
+ const marketPrecision = this.safeDict(market, 'precision', {});
9172
9172
  if ('base' in market) {
9173
9173
  const currency = this.safeCurrencyStructure({
9174
9174
  'id': this.safeString2(market, 'baseId', 'base'),
@@ -9198,7 +9198,7 @@ class Exchange {
9198
9198
  const resultingCurrencies = [];
9199
9199
  for (let i = 0; i < codes.length; i++) {
9200
9200
  const code = codes[i];
9201
- const groupedCurrenciesCode = this.safeValue(groupedCurrencies, code, []);
9201
+ const groupedCurrenciesCode = this.safeList(groupedCurrencies, code, []);
9202
9202
  let highestPrecisionCurrency = this.safeValue(groupedCurrenciesCode, 0);
9203
9203
  for (let j = 1; j < groupedCurrenciesCode.length; j++) {
9204
9204
  const currentCurrency = groupedCurrenciesCode[j];
@@ -9281,7 +9281,7 @@ class Exchange {
9281
9281
  const parseSymbol = symbol === undefined;
9282
9282
  const parseSide = side === undefined;
9283
9283
  const shouldParseFees = parseFee || parseFees;
9284
- const fees = this.safeValue(order, 'fees', []);
9284
+ const fees = this.safeList(order, 'fees', []);
9285
9285
  let trades = [];
9286
9286
  if (parseFilled || parseCost || shouldParseFees) {
9287
9287
  const rawTrades = this.safeValue(order, 'trades', trades);
@@ -9415,7 +9415,7 @@ class Exchange {
9415
9415
  }
9416
9416
  }
9417
9417
  // ensure that the average field is calculated correctly
9418
- const inverse = this.safeValue(market, 'inverse', false);
9418
+ const inverse = this.safeBool(market, 'inverse', false);
9419
9419
  const contractSize = this.numberToString(this.safeValue(market, 'contractSize', 1));
9420
9420
  // inverse
9421
9421
  // price = filled * contract size / cost
@@ -9469,12 +9469,12 @@ class Exchange {
9469
9469
  entry['amount'] = this.safeNumber(entry, 'amount');
9470
9470
  entry['price'] = this.safeNumber(entry, 'price');
9471
9471
  entry['cost'] = this.safeNumber(entry, 'cost');
9472
- const tradeFee = this.safeValue(entry, 'fee', {});
9472
+ const tradeFee = this.safeDict(entry, 'fee', {});
9473
9473
  tradeFee['cost'] = this.safeNumber(tradeFee, 'cost');
9474
9474
  if ('rate' in tradeFee) {
9475
9475
  tradeFee['rate'] = this.safeNumber(tradeFee, 'rate');
9476
9476
  }
9477
- const entryFees = this.safeValue(entry, 'fees', []);
9477
+ const entryFees = this.safeList(entry, 'fees', []);
9478
9478
  for (let j = 0; j < entryFees.length; j++) {
9479
9479
  entryFees[j]['cost'] = this.safeNumber(entryFees[j], 'cost');
9480
9480
  }
@@ -9649,7 +9649,7 @@ class Exchange {
9649
9649
  const contractSize = this.safeString(market, 'contractSize');
9650
9650
  let multiplyPrice = price;
9651
9651
  if (contractSize !== undefined) {
9652
- const inverse = this.safeValue(market, 'inverse', false);
9652
+ const inverse = this.safeBool(market, 'inverse', false);
9653
9653
  if (inverse) {
9654
9654
  multiplyPrice = _Precise_js__WEBPACK_IMPORTED_MODULE_8__/* .Precise */ .O.stringDiv('1', price);
9655
9655
  }
@@ -9892,12 +9892,12 @@ class Exchange {
9892
9892
  }
9893
9893
  convertTradingViewToOHLCV(ohlcvs, timestamp = 't', open = 'o', high = 'h', low = 'l', close = 'c', volume = 'v', ms = false) {
9894
9894
  const result = [];
9895
- const timestamps = this.safeValue(ohlcvs, timestamp, []);
9896
- const opens = this.safeValue(ohlcvs, open, []);
9897
- const highs = this.safeValue(ohlcvs, high, []);
9898
- const lows = this.safeValue(ohlcvs, low, []);
9899
- const closes = this.safeValue(ohlcvs, close, []);
9900
- const volumes = this.safeValue(ohlcvs, volume, []);
9895
+ const timestamps = this.safeList(ohlcvs, timestamp, []);
9896
+ const opens = this.safeList(ohlcvs, open, []);
9897
+ const highs = this.safeList(ohlcvs, high, []);
9898
+ const lows = this.safeList(ohlcvs, low, []);
9899
+ const closes = this.safeList(ohlcvs, close, []);
9900
+ const volumes = this.safeList(ohlcvs, volume, []);
9901
9901
  for (let i = 0; i < timestamps.length; i++) {
9902
9902
  result.push([
9903
9903
  ms ? this.safeInteger(timestamps, i) : this.safeTimestamp(timestamps, i),
@@ -9932,10 +9932,10 @@ class Exchange {
9932
9932
  async fetchWebEndpoint(method, endpointMethod, returnAsJson, startRegex = undefined, endRegex = undefined) {
9933
9933
  let errorMessage = '';
9934
9934
  const options = this.safeValue(this.options, method, {});
9935
- const muteOnFailure = this.safeValue(options, 'webApiMuteFailure', true);
9935
+ const muteOnFailure = this.safeBool(options, 'webApiMuteFailure', true);
9936
9936
  try {
9937
9937
  // if it was not explicitly disabled, then don't fetch
9938
- if (this.safeValue(options, 'webApiEnable', true) !== true) {
9938
+ if (this.safeBool(options, 'webApiEnable', true) !== true) {
9939
9939
  return undefined;
9940
9940
  }
9941
9941
  const maxRetries = this.safeValue(options, 'webApiRetries', 10);
@@ -10146,7 +10146,7 @@ class Exchange {
10146
10146
  if (currencyCode !== undefined) {
10147
10147
  const defaultNetworkCodeReplacements = this.safeValue(this.options, 'defaultNetworkCodeReplacements', {});
10148
10148
  if (currencyCode in defaultNetworkCodeReplacements) {
10149
- const replacementObject = this.safeValue(defaultNetworkCodeReplacements, currencyCode, {});
10149
+ const replacementObject = this.safeDict(defaultNetworkCodeReplacements, currencyCode, {});
10150
10150
  networkCode = this.safeString(replacementObject, networkCode, networkCode);
10151
10151
  }
10152
10152
  }
@@ -10248,7 +10248,7 @@ class Exchange {
10248
10248
  const id = this.safeString(item, marketIdKey);
10249
10249
  const market = this.safeMarket(id, undefined, undefined, 'swap');
10250
10250
  const symbol = market['symbol'];
10251
- const contract = this.safeValue(market, 'contract', false);
10251
+ const contract = this.safeBool(market, 'contract', false);
10252
10252
  if (contract && ((symbols === undefined) || this.inArray(symbol, symbols))) {
10253
10253
  tiers[symbol] = this.parseMarketLeverageTiers(item, market);
10254
10254
  }
@@ -11419,8 +11419,8 @@ class Exchange {
11419
11419
  const currency = this.currencies[code];
11420
11420
  let precision = this.safeValue(currency, 'precision');
11421
11421
  if (networkCode !== undefined) {
11422
- const networks = this.safeValue(currency, 'networks', {});
11423
- const networkItem = this.safeValue(networks, networkCode, {});
11422
+ const networks = this.safeDict(currency, 'networks', {});
11423
+ const networkItem = this.safeDict(networks, networkCode, {});
11424
11424
  precision = this.safeValue(networkItem, 'precision', precision);
11425
11425
  }
11426
11426
  if (precision === undefined) {
@@ -11722,7 +11722,7 @@ class Exchange {
11722
11722
  * @returns {Array}
11723
11723
  */
11724
11724
  const timeInForce = this.safeStringUpper(params, 'timeInForce');
11725
- let postOnly = this.safeValue(params, 'postOnly', false);
11725
+ let postOnly = this.safeBool(params, 'postOnly', false);
11726
11726
  const ioc = timeInForce === 'IOC';
11727
11727
  const fok = timeInForce === 'FOK';
11728
11728
  const po = timeInForce === 'PO';
@@ -12805,7 +12805,7 @@ class BadRequest extends ExchangeError {
12805
12805
  this.name = 'BadRequest';
12806
12806
  }
12807
12807
  }
12808
- class OperationRejected extends BadRequest {
12808
+ class OperationRejected extends ExchangeError {
12809
12809
  constructor(message) {
12810
12810
  super(message);
12811
12811
  this.name = 'OperationRejected';
@@ -12817,7 +12817,7 @@ class BadSymbol extends BadRequest {
12817
12817
  this.name = 'BadSymbol';
12818
12818
  }
12819
12819
  }
12820
- class NoChange extends BadRequest {
12820
+ class NoChange extends OperationRejected {
12821
12821
  constructor(message) {
12822
12822
  super(message);
12823
12823
  this.name = 'NoChange';
@@ -12938,7 +12938,7 @@ class DDoSProtection extends NetworkError {
12938
12938
  this.name = 'DDoSProtection';
12939
12939
  }
12940
12940
  }
12941
- class RateLimitExceeded extends DDoSProtection {
12941
+ class RateLimitExceeded extends NetworkError {
12942
12942
  constructor(message) {
12943
12943
  super(message);
12944
12944
  this.name = 'RateLimitExceeded';
@@ -14456,6 +14456,9 @@ const safeFloatN = (o, k, $default) => {
14456
14456
  return isNumber(n) ? n : $default;
14457
14457
  };
14458
14458
  const safeIntegerN = (o, k, $default) => {
14459
+ if (o === undefined) {
14460
+ return $default;
14461
+ }
14459
14462
  const n = asInteger(getValueFromKeysInArray(o, k));
14460
14463
  return isNumber(n) ? n : $default;
14461
14464
  };
@@ -14468,14 +14471,23 @@ const safeTimestampN = (o, k, $default) => {
14468
14471
  return isNumber(n) ? parseInt(n * 1000) : $default;
14469
14472
  };
14470
14473
  const safeValueN = (o, k, $default) => {
14474
+ if (o === undefined) {
14475
+ return $default;
14476
+ }
14471
14477
  const x = getValueFromKeysInArray(o, k);
14472
14478
  return hasProps(x) ? x : $default;
14473
14479
  };
14474
14480
  const safeStringN = (o, k, $default) => {
14481
+ if (o === undefined) {
14482
+ return $default;
14483
+ }
14475
14484
  const x = getValueFromKeysInArray(o, k);
14476
14485
  return isStringCoercible(x) ? String(x) : $default;
14477
14486
  };
14478
14487
  const safeStringLowerN = (o, k, $default) => {
14488
+ if (o === undefined) {
14489
+ return $default;
14490
+ }
14479
14491
  const x = getValueFromKeysInArray(o, k);
14480
14492
  return isStringCoercible(x) ? String(x).toLowerCase() : $default;
14481
14493
  };
@@ -17112,7 +17124,7 @@ class bigone extends _abstract_bigone_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
17112
17124
  const requestSide = isBuy ? 'BID' : 'ASK';
17113
17125
  let uppercaseType = type.toUpperCase();
17114
17126
  const isLimit = uppercaseType === 'LIMIT';
17115
- const exchangeSpecificParam = this.safeValue(params, 'post_only', false);
17127
+ const exchangeSpecificParam = this.safeBool(params, 'post_only', false);
17116
17128
  let postOnly = undefined;
17117
17129
  [postOnly, params] = this.handlePostOnly((uppercaseType === 'MARKET'), exchangeSpecificParam, params);
17118
17130
  const triggerPrice = this.safeStringN(params, ['triggerPrice', 'stopPrice', 'stop_price']);
@@ -17744,7 +17756,7 @@ class bigone extends _abstract_bigone_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
17744
17756
  //
17745
17757
  const transfer = this.parseTransfer(response, currency);
17746
17758
  const transferOptions = this.safeValue(this.options, 'transfer', {});
17747
- const fillResponseFromRequest = this.safeValue(transferOptions, 'fillResponseFromRequest', true);
17759
+ const fillResponseFromRequest = this.safeBool(transferOptions, 'fillResponseFromRequest', true);
17748
17760
  if (fillResponseFromRequest) {
17749
17761
  transfer['fromAccount'] = fromAccount;
17750
17762
  transfer['toAccount'] = toAccount;
@@ -19302,234 +19314,885 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
19302
19314
  'BUSD': 'USD',
19303
19315
  },
19304
19316
  },
19305
- // https://binance-docs.github.io/apidocs/spot/en/#error-codes-2
19306
19317
  'exceptions': {
19318
+ 'spot': {
19319
+ // https://binance-docs.github.io/apidocs/spot/en/#error-codes
19320
+ 'exact': {
19321
+ '-1000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19322
+ '-1001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19323
+ '-1002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19324
+ '-1003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19325
+ '-1004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19326
+ '-1006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19327
+ '-1007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RequestTimeout,
19328
+ '-1008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19329
+ '-1010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19330
+ '-1013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19331
+ '-1014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19332
+ '-1015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19333
+ '-1016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19334
+ '-1020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19335
+ '-1021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidNonce,
19336
+ '-1022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19337
+ '-1099': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19338
+ '-1100': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19339
+ '-1101': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19340
+ '-1102': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19341
+ '-1103': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19342
+ '-1104': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19343
+ '-1105': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19344
+ '-1106': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19345
+ '-1108': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19346
+ '-1111': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19347
+ '-1112': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19348
+ '-1114': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19349
+ '-1115': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19350
+ '-1116': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19351
+ '-1117': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19352
+ '-1118': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19353
+ '-1119': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19354
+ '-1120': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19355
+ '-1121': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19356
+ '-1125': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19357
+ '-1127': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19358
+ '-1128': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19359
+ '-1130': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19360
+ '-1131': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19361
+ '-1134': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19362
+ '-1135': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19363
+ '-1145': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19364
+ '-1151': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19365
+ '-2008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19366
+ '-2010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19367
+ '-2011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
19368
+ '-2013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
19369
+ '-2014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19370
+ '-2015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19371
+ '-2016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19372
+ '-2021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadResponse,
19373
+ '-2022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadResponse,
19374
+ '-2026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19375
+ // 3xxx errors are available only for spot
19376
+ '-3000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19377
+ '-3001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19378
+ '-3002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19379
+ '-3003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19380
+ '-3004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19381
+ '-3005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19382
+ '-3006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19383
+ '-3007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19384
+ '-3008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19385
+ '-3009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19386
+ '-3010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19387
+ '-3011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19388
+ '-3012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19389
+ '-3013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19390
+ '-3014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
19391
+ '-3015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19392
+ '-3016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19393
+ '-3017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19394
+ '-3018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
19395
+ '-3019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
19396
+ '-3020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19397
+ '-3021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19398
+ '-3022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
19399
+ '-3023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19400
+ '-3024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19401
+ '-3025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19402
+ '-3026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19403
+ '-3027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19404
+ '-3028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19405
+ '-3029': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19406
+ '-3036': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
19407
+ '-3037': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19408
+ '-3038': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19409
+ '-3041': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19410
+ '-3042': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19411
+ '-3043': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19412
+ '-3044': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19413
+ '-3045': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19414
+ '-3999': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19415
+ '-4001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19416
+ '-4002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19417
+ '-4003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19418
+ '-4004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19419
+ '-4005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19420
+ '-4006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19421
+ '-4007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19422
+ '-4008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19423
+ '-4009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19424
+ '-4010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19425
+ '-4011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19426
+ '-4012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19427
+ '-4013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19428
+ '-4014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19429
+ '-4015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19430
+ '-4016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19431
+ '-4017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19432
+ '-4018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19433
+ '-4019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19434
+ '-4021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19435
+ '-4022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19436
+ '-4023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19437
+ '-4024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19438
+ '-4025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19439
+ '-4026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19440
+ '-4027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19441
+ '-4028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19442
+ '-4029': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19443
+ '-4030': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadResponse,
19444
+ '-4031': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19445
+ '-4032': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19446
+ '-4033': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19447
+ '-4034': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19448
+ '-4035': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19449
+ '-4036': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19450
+ '-4037': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19451
+ '-4038': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19452
+ '-4039': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19453
+ '-4040': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19454
+ '-4041': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19455
+ '-4042': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19456
+ '-4043': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19457
+ '-4044': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19458
+ '-4045': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19459
+ '-4046': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19460
+ '-4047': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19461
+ '-4060': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19462
+ '-5001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19463
+ '-5002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19464
+ '-5003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19465
+ '-5004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19466
+ '-5005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19467
+ '-5006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19468
+ '-5007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19469
+ '-5008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19470
+ '-5009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19471
+ '-5010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19472
+ '-5011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19473
+ '-5012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19474
+ '-5013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19475
+ '-5021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19476
+ '-5022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19477
+ '-6001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19478
+ '-6003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19479
+ '-6004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19480
+ '-6005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19481
+ '-6006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19482
+ '-6007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19483
+ '-6008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19484
+ '-6009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19485
+ '-6011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19486
+ '-6012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19487
+ '-6013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadResponse,
19488
+ '-6014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19489
+ '-6015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19490
+ '-6016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19491
+ '-6017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19492
+ '-6018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19493
+ '-6019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19494
+ '-6020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19495
+ '-7001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19496
+ '-7002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19497
+ '-10001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19498
+ '-10002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19499
+ '-10005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadResponse,
19500
+ '-10007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19501
+ '-10008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19502
+ '-10009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19503
+ '-10010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19504
+ '-10011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19505
+ '-10012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19506
+ '-10013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19507
+ '-10015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19508
+ '-10016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19509
+ '-10017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19510
+ '-10018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19511
+ '-10019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19512
+ '-10020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19513
+ '-10021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19514
+ '-10022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19515
+ '-10023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19516
+ '-10024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19517
+ '-10025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19518
+ '-10026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19519
+ '-10028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19520
+ '-10029': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19521
+ '-10030': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19522
+ '-10031': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19523
+ '-10032': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19524
+ '-10034': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19525
+ '-10039': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19526
+ '-10040': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19527
+ '-10041': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19528
+ '-10042': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19529
+ '-10043': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19530
+ '-10044': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19531
+ '-10045': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19532
+ '-10046': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19533
+ '-10047': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19534
+ '-11008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19535
+ '-12014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19536
+ // BLVT
19537
+ '-13000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19538
+ '-13001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19539
+ '-13002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19540
+ '-13003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19541
+ '-13004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19542
+ '-13005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19543
+ '-13006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19544
+ '-13007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19545
+ // 18xxx - BINANCE CODE
19546
+ '-18002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19547
+ '-18003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19548
+ '-18004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19549
+ '-18005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19550
+ '-18006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19551
+ '-18007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19552
+ // spot & futures algo (TBD for OPTIONS & PORTFOLIO MARGIN)
19553
+ '-20121': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19554
+ '-20124': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19555
+ '-20130': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19556
+ '-20132': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19557
+ '-20194': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19558
+ '-20195': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19559
+ '-20196': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19560
+ '-20198': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19561
+ '-20204': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19562
+ // 21xxx - PORTFOLIO MARGIN
19563
+ '-21001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19564
+ '-21002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19565
+ '-21003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadResponse,
19566
+ '-21004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19567
+ '-21005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19568
+ '-21006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19569
+ '-21007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19570
+ '-32603': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19571
+ '400002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19572
+ '100001003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19573
+ '200003903': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError, // undocumented, {"code":200003903,"msg":"Your identity verification has been rejected. Please complete identity verification again."}
19574
+ },
19575
+ },
19576
+ 'linear': {
19577
+ // https://binance-docs.github.io/apidocs/futures/en/#error-codes
19578
+ 'exact': {
19579
+ '-1000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19580
+ '-1001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19581
+ '-1002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19582
+ '-1003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19583
+ '-1004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19584
+ '-1005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19585
+ '-1006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19586
+ '-1007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RequestTimeout,
19587
+ '-1008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19588
+ '-1010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19589
+ '-1011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19590
+ '-1013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19591
+ '-1014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19592
+ '-1015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19593
+ '-1016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19594
+ '-1020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19595
+ '-1021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidNonce,
19596
+ '-1022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19597
+ '-1023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19598
+ '-1099': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19599
+ '-1100': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19600
+ '-1101': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19601
+ '-1102': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19602
+ '-1103': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19603
+ '-1104': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19604
+ '-1105': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19605
+ '-1106': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19606
+ '-1108': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19607
+ '-1109': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19608
+ '-1110': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19609
+ '-1111': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19610
+ '-1112': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19611
+ '-1113': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19612
+ '-1114': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19613
+ '-1115': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19614
+ '-1116': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19615
+ '-1117': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19616
+ '-1118': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19617
+ '-1119': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19618
+ '-1120': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19619
+ '-1121': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19620
+ '-1122': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19621
+ '-1125': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19622
+ '-1126': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19623
+ '-1127': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19624
+ '-1128': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19625
+ '-1130': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19626
+ '-1136': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19627
+ '-2010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
19628
+ '-2011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
19629
+ '-2012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19630
+ '-2013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
19631
+ '-2014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19632
+ '-2015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19633
+ '-2016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19634
+ '-2017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19635
+ '-2018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19636
+ '-2019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19637
+ '-2020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19638
+ '-2021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderImmediatelyFillable,
19639
+ '-2022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19640
+ '-2023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19641
+ '-2024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19642
+ '-2025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19643
+ '-2026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19644
+ '-2027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19645
+ '-2028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19646
+ '-4000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19647
+ '-4001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19648
+ '-4002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19649
+ '-4003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19650
+ '-4004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19651
+ '-4005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19652
+ '-4006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19653
+ '-4007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19654
+ '-4008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19655
+ '-4009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19656
+ '-4010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19657
+ '-4011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19658
+ '-4012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19659
+ '-4013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19660
+ '-4014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19661
+ '-4015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19662
+ '-4016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19663
+ '-4017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19664
+ '-4018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19665
+ '-4019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19666
+ '-4020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19667
+ '-4021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19668
+ '-4022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19669
+ '-4023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19670
+ '-4024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19671
+ '-4025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19672
+ '-4026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19673
+ '-4027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19674
+ '-4028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19675
+ '-4029': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19676
+ '-4030': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19677
+ '-4031': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19678
+ '-4032': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19679
+ '-4033': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19680
+ '-4044': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19681
+ '-4045': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19682
+ '-4046': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19683
+ '-4047': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19684
+ '-4048': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19685
+ '-4049': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19686
+ '-4050': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19687
+ '-4051': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19688
+ '-4052': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19689
+ '-4053': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19690
+ '-4054': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19691
+ '-4055': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19692
+ '-4056': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19693
+ '-4057': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19694
+ '-4058': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19695
+ '-4059': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19696
+ '-4060': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19697
+ '-4061': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19698
+ '-4062': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19699
+ '-4063': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19700
+ '-4064': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19701
+ '-4065': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19702
+ '-4066': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19703
+ '-4067': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19704
+ '-4068': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19705
+ '-4069': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19706
+ '-4070': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19707
+ '-4071': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19708
+ '-4072': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19709
+ '-4073': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19710
+ '-4074': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19711
+ '-4075': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19712
+ '-4076': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19713
+ '-4077': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19714
+ '-4078': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19715
+ '-4079': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19716
+ '-4080': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19717
+ '-4081': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19718
+ '-4082': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19719
+ '-4083': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19720
+ '-4084': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19721
+ '-4085': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19722
+ '-4086': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19723
+ '-4087': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19724
+ '-4088': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19725
+ '-4104': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19726
+ '-4114': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19727
+ '-4115': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19728
+ '-4118': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19729
+ '-4131': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19730
+ '-4135': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19731
+ '-4137': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19732
+ '-4138': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19733
+ '-4139': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19734
+ '-4140': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19735
+ '-4141': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19736
+ '-4142': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderImmediatelyFillable,
19737
+ '-4144': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19738
+ '-4164': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19739
+ '-4165': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19740
+ '-4167': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19741
+ '-4168': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19742
+ '-4169': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19743
+ '-4170': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19744
+ '-4171': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19745
+ '-4172 ': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19746
+ '-4183': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19747
+ '-4184': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19748
+ '-4192': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19749
+ '-4202': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19750
+ '-4203': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19751
+ '-4205': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19752
+ '-4206': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19753
+ '-4208': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19754
+ '-4209': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19755
+ '-4210': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19756
+ '-4211': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19757
+ '-4400': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19758
+ '-4401': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19759
+ '-4402': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19760
+ '-4403': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19761
+ '-5021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFillable,
19762
+ '-5022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFillable,
19763
+ '-5024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19764
+ '-5025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19765
+ '-5026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19766
+ '-5027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19767
+ '-5028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19768
+ '-5037': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19769
+ '-5038': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19770
+ '-5039': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19771
+ '-5040': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19772
+ '-5041': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19773
+ //
19774
+ // spot & futures algo (TBD for OPTIONS & PORTFOLIO MARGIN)
19775
+ //
19776
+ '-20121': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19777
+ '-20124': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19778
+ '-20130': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19779
+ '-20132': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19780
+ '-20194': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19781
+ '-20195': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19782
+ '-20196': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19783
+ '-20198': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19784
+ '-20204': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest, // The notional of USD is less or more than the limit.
19785
+ },
19786
+ },
19787
+ 'inverse': {
19788
+ // https://binance-docs.github.io/apidocs/delivery/en/#error-codes
19789
+ 'exact': {
19790
+ '-1000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19791
+ '-1001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19792
+ '-1002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19793
+ '-1003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19794
+ '-1004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19795
+ '-1005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19796
+ '-1006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19797
+ '-1007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RequestTimeout,
19798
+ '-1010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19799
+ '-1011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19800
+ '-1013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19801
+ '-1014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19802
+ '-1015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19803
+ '-1016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19804
+ '-1020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19805
+ '-1021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidNonce,
19806
+ '-1022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19807
+ '-1023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19808
+ '-1100': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19809
+ '-1101': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19810
+ '-1102': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19811
+ '-1103': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19812
+ '-1104': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19813
+ '-1105': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19814
+ '-1106': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19815
+ '-1108': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19816
+ '-1109': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19817
+ '-1110': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19818
+ '-1111': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19819
+ '-1112': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19820
+ '-1113': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19821
+ '-1114': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19822
+ '-1115': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19823
+ '-1116': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19824
+ '-1117': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19825
+ '-1118': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19826
+ '-1119': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19827
+ '-1120': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19828
+ '-1121': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19829
+ '-1125': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19830
+ '-1127': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19831
+ '-1128': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19832
+ '-1130': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19833
+ '-1136': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19834
+ '-2010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19835
+ '-2011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
19836
+ '-2013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
19837
+ '-2014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19838
+ '-2015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19839
+ '-2016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19840
+ '-2018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19841
+ '-2019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19842
+ '-2020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19843
+ '-2021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderImmediatelyFillable,
19844
+ '-2022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19845
+ '-2023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19846
+ '-2024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19847
+ '-2025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19848
+ '-2026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19849
+ '-2027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19850
+ '-2028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19851
+ '-4000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19852
+ '-4001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19853
+ '-4002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19854
+ '-4003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19855
+ '-4004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19856
+ '-4005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19857
+ '-4006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19858
+ '-4007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19859
+ '-4008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19860
+ '-4009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19861
+ '-4010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19862
+ '-4011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19863
+ '-4012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19864
+ '-4013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19865
+ '-4014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19866
+ '-4015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19867
+ '-4016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19868
+ '-4017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19869
+ '-4018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19870
+ '-4019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19871
+ '-4020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19872
+ '-4021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19873
+ '-4022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19874
+ '-4023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19875
+ '-4024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19876
+ '-4025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19877
+ '-4026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19878
+ '-4027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19879
+ '-4028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19880
+ '-4029': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19881
+ '-4030': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19882
+ '-4031': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19883
+ '-4032': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19884
+ '-4033': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19885
+ '-4044': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19886
+ '-4045': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19887
+ '-4046': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19888
+ '-4047': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19889
+ '-4048': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19890
+ '-4049': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19891
+ '-4050': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19892
+ '-4051': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19893
+ '-4052': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19894
+ '-4053': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19895
+ '-4054': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19896
+ '-4055': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19897
+ '-4056': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19898
+ '-4057': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19899
+ '-4058': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19900
+ '-4059': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19901
+ '-4060': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19902
+ '-4061': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19903
+ '-4062': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19904
+ //
19905
+ '-4067': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19906
+ '-4068': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19907
+ '-4082': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19908
+ '-4083': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19909
+ '-4084': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19910
+ '-4086': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19911
+ '-4087': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19912
+ '-4088': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19913
+ '-4089': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19914
+ '-4090': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19915
+ '-4104': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19916
+ '-4110': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19917
+ '-4111': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19918
+ '-4112': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19919
+ '-4113': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19920
+ '-4135': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19921
+ '-4137': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19922
+ '-4138': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19923
+ '-4139': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19924
+ '-4142': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderImmediatelyFillable,
19925
+ '-4150': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19926
+ '-4151': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19927
+ '-4152': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19928
+ '-4154': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19929
+ '-4155': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19930
+ '-4178': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19931
+ '-4192': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19932
+ '-4194': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19933
+ '-4195': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19934
+ '-4196': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19935
+ '-4197': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19936
+ '-4198': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19937
+ '-4199': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19938
+ '-4200': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19939
+ '-4201': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19940
+ '-4202': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19941
+ '-4188': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19942
+ //
19943
+ // spot & futures algo
19944
+ //
19945
+ '-20121': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19946
+ '-20124': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19947
+ '-20130': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19948
+ '-20132': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19949
+ '-20194': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19950
+ '-20195': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19951
+ '-20196': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19952
+ '-20198': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19953
+ '-20204': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest, // The notional of USD is less or more than the limit.
19954
+ },
19955
+ },
19956
+ 'option': {
19957
+ // https://binance-docs.github.io/apidocs/voptions/en/#error-codes
19958
+ 'exact': {
19959
+ '-1000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19960
+ '-1001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19961
+ '-1002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19962
+ '-1008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19963
+ '-1014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19964
+ '-1015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19965
+ '-1016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19966
+ '-1020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19967
+ '-1021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidNonce,
19968
+ '-1022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19969
+ '-1100': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19970
+ '-1101': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19971
+ '-1102': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19972
+ '-1103': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19973
+ '-1104': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19974
+ '-1105': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19975
+ '-1106': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19976
+ '-1111': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19977
+ '-1115': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19978
+ '-1116': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19979
+ '-1117': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19980
+ '-1118': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19981
+ '-1119': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19982
+ '-1120': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19983
+ '-1121': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19984
+ '-1125': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19985
+ '-1127': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19986
+ '-1128': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19987
+ '-1129': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19988
+ '-1130': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19989
+ '-1131': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19990
+ '-2010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19991
+ '-2013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
19992
+ '-2014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19993
+ '-2015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19994
+ '-2018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19995
+ '-2027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19996
+ '-3029': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19997
+ '-4001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19998
+ '-4002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19999
+ '-4003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20000
+ '-4004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20001
+ '-4005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20002
+ '-4013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20003
+ '-4029': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20004
+ '-4030': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20005
+ '-4055': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest, // AMOUNT_MUST_BE_POSITIVE
20006
+ },
20007
+ },
20008
+ 'portfolioMargin': {
20009
+ 'exact': {
20010
+ '-1000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
20011
+ '-1001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
20012
+ '-1002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
20013
+ '-1003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
20014
+ '-1004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20015
+ '-1005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
20016
+ '-1006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
20017
+ '-1007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RequestTimeout,
20018
+ '-1010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
20019
+ '-1011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
20020
+ '-1013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
20021
+ '-1014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
20022
+ '-1015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
20023
+ '-1016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20024
+ '-1020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20025
+ '-1021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidNonce,
20026
+ '-1022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
20027
+ '-1023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20028
+ '-1100': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20029
+ '-1101': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20030
+ '-1102': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20031
+ '-1103': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20032
+ '-1104': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20033
+ '-1105': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20034
+ '-1106': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20035
+ '-1108': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
20036
+ '-1109': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20037
+ '-1110': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
20038
+ '-1111': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20039
+ '-1112': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
20040
+ '-1113': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20041
+ '-1114': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20042
+ '-1115': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20043
+ '-1116': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20044
+ '-1117': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20045
+ '-1118': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20046
+ '-1119': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20047
+ '-1120': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20048
+ '-1121': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
20049
+ '-1125': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
20050
+ '-1127': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20051
+ '-1128': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20052
+ '-1130': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20053
+ '-1136': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20054
+ '-2010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
20055
+ '-2011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
20056
+ '-2013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
20057
+ '-2014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
20058
+ '-2015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
20059
+ '-2016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20060
+ '-2018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
20061
+ '-2019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
20062
+ '-2020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFillable,
20063
+ '-2021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderImmediatelyFillable,
20064
+ '-2022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
20065
+ '-2023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
20066
+ '-2024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20067
+ '-2025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20068
+ '-2026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
20069
+ '-2027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20070
+ '-2028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20071
+ '-4000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
20072
+ '-4001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20073
+ '-4002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20074
+ '-4003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20075
+ '-4004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20076
+ '-4005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20077
+ '-4006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20078
+ '-4007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20079
+ '-4008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20080
+ '-4009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20081
+ '-4010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20082
+ '-4011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20083
+ '-4012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20084
+ '-4013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20085
+ '-4014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20086
+ '-4015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20087
+ '-4016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20088
+ '-4017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20089
+ '-4018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20090
+ '-4019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20091
+ '-4020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20092
+ '-4021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20093
+ '-4022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20094
+ '-4023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20095
+ '-4024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20096
+ '-4025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20097
+ '-4026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20098
+ '-4027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20099
+ '-4028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20100
+ '-4029': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20101
+ '-4030': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20102
+ '-4031': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20103
+ '-4032': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20104
+ '-4033': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20105
+ '-4044': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20106
+ '-4045': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20107
+ '-4046': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20108
+ '-4047': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20109
+ '-4048': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20110
+ '-4049': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20111
+ '-4050': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
20112
+ '-4051': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
20113
+ '-4052': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20114
+ '-4053': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20115
+ '-4054': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20116
+ '-4055': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20117
+ '-4056': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
20118
+ '-4057': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
20119
+ '-4058': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20120
+ '-4059': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20121
+ '-4060': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20122
+ '-4061': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20123
+ '-4062': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20124
+ '-4063': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20125
+ '-4064': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20126
+ '-4065': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20127
+ '-4066': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20128
+ '-4067': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20129
+ '-4068': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20130
+ '-4069': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20131
+ '-4070': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20132
+ '-4071': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20133
+ '-4072': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20134
+ '-4073': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20135
+ '-4074': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20136
+ '-4075': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20137
+ '-4076': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20138
+ '-4077': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20139
+ '-4078': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
20140
+ '-4079': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20141
+ '-4080': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
20142
+ '-4081': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20143
+ '-4082': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20144
+ '-4083': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
20145
+ '-4084': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20146
+ '-4085': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20147
+ '-4086': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20148
+ '-4087': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
20149
+ '-4088': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
20150
+ '-4104': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20151
+ '-4114': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20152
+ '-4115': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20153
+ '-4118': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20154
+ '-4131': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20155
+ '-4135': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20156
+ '-4137': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20157
+ '-4138': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20158
+ '-4139': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20159
+ '-4140': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20160
+ '-4141': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20161
+ '-4142': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderImmediatelyFillable,
20162
+ '-4144': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
20163
+ '-4161': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20164
+ '-4164': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20165
+ '-4165': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20166
+ '-4183': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20167
+ '-4184': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20168
+ '-5021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFillable,
20169
+ '-5022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFillable, // Due to the order could not be executed as maker, the Post Only order will be rejected.
20170
+ },
20171
+ },
19307
20172
  'exact': {
19308
20173
  'System is under maintenance.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OnMaintenance,
19309
- 'System abnormality': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
20174
+ 'System abnormality': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationFailed,
19310
20175
  'You are not authorized to execute this request.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19311
20176
  'API key does not exist': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19312
20177
  'Order would trigger immediately.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderImmediatelyFillable,
19313
20178
  'Stop price would trigger immediately.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderImmediatelyFillable,
19314
20179
  'Order would immediately match and take.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderImmediatelyFillable,
19315
20180
  'Account has insufficient balance for requested action.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19316
- 'Rest API trading is not enabled.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
19317
- 'This account may not place or cancel orders.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
20181
+ 'Rest API trading is not enabled.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
20182
+ 'This account may not place or cancel orders.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19318
20183
  "You don't have permission.": _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19319
- 'Market is closed.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
19320
- 'Too many requests. Please try again later.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.DDoSProtection,
20184
+ 'Market is closed.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
20185
+ 'Too many requests. Please try again later.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19321
20186
  'This action is disabled on this account.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
19322
20187
  'Limit orders require GTC for this phase.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19323
20188
  'This order type is not possible in this trading phase.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19324
- 'This type of sub-account exceeds the maximum number limit': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
20189
+ 'This type of sub-account exceeds the maximum number limit': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OperationRejected,
19325
20190
  'This symbol is restricted for this account.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19326
- 'This symbol is not permitted for this account.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19327
- '-1000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
19328
- '-1001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
19329
- '-1002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19330
- '-1003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19331
- '-1004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.DDoSProtection,
19332
- '-1005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19333
- '-1006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadResponse,
19334
- '-1007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RequestTimeout,
19335
- '-1010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadResponse,
19336
- '-1011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19337
- '-1013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19338
- '-1014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19339
- '-1015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19340
- '-1016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
19341
- '-1020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19342
- '-1021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidNonce,
19343
- '-1022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19344
- '-1023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19345
- '-1099': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19346
- '-1100': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19347
- '-1101': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19348
- '-1102': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19349
- '-1103': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19350
- '-1104': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19351
- '-1105': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19352
- '-1106': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19353
- '-1108': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19354
- '-1109': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19355
- '-1110': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19356
- '-1111': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19357
- '-1112': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19358
- '-1113': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19359
- '-1114': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19360
- '-1115': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19361
- '-1116': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19362
- '-1117': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19363
- '-1118': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19364
- '-1119': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19365
- '-1120': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19366
- '-1121': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19367
- '-1125': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19368
- '-1127': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19369
- '-1128': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19370
- '-1130': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19371
- '-1131': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19372
- '-1135': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19373
- '-1136': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19374
- '-2008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19375
- '-2010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19376
- '-2011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
19377
- '-2013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
19378
- '-2014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19379
- '-2015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19380
- '-2016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19381
- '-2018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19382
- '-2019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19383
- '-2020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFillable,
19384
- '-2021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderImmediatelyFillable,
19385
- '-2022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19386
- '-2023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19387
- '-2024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19388
- '-2025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19389
- '-2026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19390
- '-2027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19391
- '-2028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19392
- '-3000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19393
- '-3001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19394
- '-3002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19395
- '-3003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19396
- '-3004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19397
- '-3005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19398
- '-3006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19399
- '-3007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19400
- '-3008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19401
- '-3009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19402
- '-3010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19403
- '-3011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19404
- '-3012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19405
- '-3013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19406
- '-3014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
19407
- '-3015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19408
- '-3016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19409
- '-3017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19410
- '-3018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
19411
- '-3019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
19412
- '-3020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19413
- '-3021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19414
- '-3022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
19415
- '-3023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19416
- '-3024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19417
- '-3025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19418
- '-3026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19419
- '-3027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19420
- '-3028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19421
- '-3029': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19422
- '-3036': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
19423
- '-3037': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19424
- '-3038': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19425
- '-3041': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19426
- '-3042': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19427
- '-3043': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19428
- '-3044': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.DDoSProtection,
19429
- '-3045': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19430
- '-3999': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19431
- '-4001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19432
- '-4002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19433
- '-4003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19434
- '-4004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19435
- '-4005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19436
- '-4006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19437
- '-4007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19438
- '-4008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19439
- '-4010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19440
- '-4011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19441
- '-4012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19442
- '-4013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19443
- '-4014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19444
- '-4015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19445
- '-4016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19446
- '-4017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19447
- '-4018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19448
- '-4019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
19449
- '-4021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19450
- '-4022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19451
- '-4023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19452
- '-4024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19453
- '-4025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19454
- '-4026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19455
- '-4027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19456
- '-4028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19457
- '-4029': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19458
- '-4030': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19459
- '-4031': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19460
- '-4032': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19461
- '-4033': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19462
- '-4034': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19463
- '-4035': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19464
- '-4036': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19465
- '-4037': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19466
- '-4038': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19467
- '-4039': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19468
- '-4040': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19469
- '-4041': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19470
- '-4042': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19471
- '-4043': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19472
- '-4044': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19473
- '-4045': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19474
- '-4046': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19475
- '-4047': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19476
- '-4054': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19477
- '-4164': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19478
- '-5001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19479
- '-5002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19480
- '-5003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19481
- '-5004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19482
- '-5005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19483
- '-5006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19484
- '-5007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19485
- '-5008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19486
- '-5009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19487
- '-5010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19488
- '-5011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19489
- '-5012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19490
- '-5013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19491
- '-5021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19492
- '-6001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19493
- '-6003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19494
- '-6004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19495
- '-6005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19496
- '-6006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19497
- '-6007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19498
- '-6008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19499
- '-6009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19500
- '-6011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19501
- '-6012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19502
- '-6013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
19503
- '-6014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19504
- '-6015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19505
- '-6016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19506
- '-6017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19507
- '-6018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19508
- '-6019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19509
- '-6020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19510
- '-7001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19511
- '-7002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19512
- '-9000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19513
- '-10017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19514
- '-11008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
19515
- '-12014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
19516
- '-13000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19517
- '-13001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19518
- '-13002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19519
- '-13003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19520
- '-13004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19521
- '-13005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19522
- '-13006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
19523
- '-13007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19524
- '-21001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19525
- '-21002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19526
- '-21003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
19527
- '100001003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
19528
- '200003903': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError, // {"code":200003903,"msg":"Your identity verification has been rejected. Please complete identity verification again."}
20191
+ 'This symbol is not permitted for this account.': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied, // {"code":-2010,"msg":"This symbol is not permitted for this account."}
19529
20192
  },
19530
20193
  'broad': {
19531
20194
  'has no operation privilege': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
19532
- 'MAX_POSITION': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder, // {"code":-2010,"msg":"Filter failure: MAX_POSITION"}
20195
+ 'MAX_POSITION': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest, // {"code":-2010,"msg":"Filter failure: MAX_POSITION"}
19533
20196
  },
19534
20197
  },
19535
20198
  });
@@ -20242,7 +20905,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
20242
20905
  }
20243
20906
  }
20244
20907
  }
20245
- const isMarginTradingAllowed = this.safeValue(market, 'isMarginTradingAllowed', false);
20908
+ const isMarginTradingAllowed = this.safeBool(market, 'isMarginTradingAllowed', false);
20246
20909
  let unifiedType = undefined;
20247
20910
  if (spot) {
20248
20911
  unifiedType = 'spot';
@@ -20981,7 +21644,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
20981
21644
  response = await this.dapiPublicGetTicker24hr(this.extend(request, params));
20982
21645
  }
20983
21646
  else {
20984
- const rolling = this.safeValue(params, 'rolling', false);
21647
+ const rolling = this.safeBool(params, 'rolling', false);
20985
21648
  params = this.omit(params, 'rolling');
20986
21649
  if (rolling) {
20987
21650
  response = await this.publicGetTicker(this.extend(request, params));
@@ -22434,7 +23097,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
22434
23097
  }
22435
23098
  // support for testing orders
22436
23099
  if (market['spot'] || marketType === 'margin') {
22437
- const test = this.safeValue(query, 'test', false);
23100
+ const test = this.safeBool(query, 'test', false);
22438
23101
  if (test) {
22439
23102
  method += 'Test';
22440
23103
  }
@@ -23616,7 +24279,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
23616
24279
  let response = undefined;
23617
24280
  const request = {};
23618
24281
  const legalMoney = this.safeValue(this.options, 'legalMoney', {});
23619
- const fiatOnly = this.safeValue(params, 'fiat', false);
24282
+ const fiatOnly = this.safeBool(params, 'fiat', false);
23620
24283
  params = this.omit(params, 'fiatOnly');
23621
24284
  const until = this.safeInteger(params, 'until');
23622
24285
  params = this.omit(params, 'until');
@@ -23728,7 +24391,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
23728
24391
  return await this.fetchPaginatedCallDynamic('fetchWithdrawals', code, since, limit, params);
23729
24392
  }
23730
24393
  const legalMoney = this.safeValue(this.options, 'legalMoney', {});
23731
- const fiatOnly = this.safeValue(params, 'fiat', false);
24394
+ const fiatOnly = this.safeBool(params, 'fiat', false);
23732
24395
  params = this.omit(params, 'fiatOnly');
23733
24396
  const request = {};
23734
24397
  const until = this.safeInteger(params, 'until');
@@ -26667,6 +27330,30 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
26667
27330
  }
26668
27331
  return { 'url': url, 'method': method, 'body': body, 'headers': headers };
26669
27332
  }
27333
+ getExceptionsByUrl(url, exactOrBroad) {
27334
+ let marketType = undefined;
27335
+ const hostname = (this.hostname !== undefined) ? this.hostname : 'binance.com';
27336
+ if (url.startsWith('https://api.' + hostname + '/')) {
27337
+ marketType = 'spot';
27338
+ }
27339
+ else if (url.startsWith('https://dapi.' + hostname + '/')) {
27340
+ marketType = 'inverse';
27341
+ }
27342
+ else if (url.startsWith('https://fapi.' + hostname + '/')) {
27343
+ marketType = 'linear';
27344
+ }
27345
+ else if (url.startsWith('https://eapi.' + hostname + '/')) {
27346
+ marketType = 'option';
27347
+ }
27348
+ else if (url.startsWith('https://papi.' + hostname + '/')) {
27349
+ marketType = 'portfoliomargin';
27350
+ }
27351
+ if (marketType !== undefined) {
27352
+ const exceptionsForMarketType = this.safeValue(this.exceptions, marketType, {});
27353
+ return this.safeValue(exceptionsForMarketType, exactOrBroad, {});
27354
+ }
27355
+ return {};
27356
+ }
26670
27357
  handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
26671
27358
  if ((code === 418) || (code === 429)) {
26672
27359
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.DDoSProtection(this.id + ' ' + code.toString() + ' ' + reason + ' ' + body);
@@ -26689,7 +27376,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
26689
27376
  return undefined; // fallback to default error handler
26690
27377
  }
26691
27378
  // response in format {'msg': 'The coin does not exist.', 'success': true/false}
26692
- const success = this.safeValue(response, 'success', true);
27379
+ const success = this.safeBool(response, 'success', true);
26693
27380
  if (!success) {
26694
27381
  const messageNew = this.safeString(response, 'msg');
26695
27382
  let parsedMessage = undefined;
@@ -26708,7 +27395,9 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
26708
27395
  }
26709
27396
  const message = this.safeString(response, 'msg');
26710
27397
  if (message !== undefined) {
27398
+ this.throwExactlyMatchedException(this.getExceptionsByUrl(url, 'exact'), message, this.id + ' ' + message);
26711
27399
  this.throwExactlyMatchedException(this.exceptions['exact'], message, this.id + ' ' + message);
27400
+ this.throwBroadlyMatchedException(this.getExceptionsByUrl(url, 'broad'), message, this.id + ' ' + message);
26712
27401
  this.throwBroadlyMatchedException(this.exceptions['broad'], message, this.id + ' ' + message);
26713
27402
  }
26714
27403
  // checks against error codes
@@ -26734,6 +27423,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
26734
27423
  // binanceusdm {"code":-4046,"msg":"No need to change margin type."}
26735
27424
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.MarginModeAlreadySet(feedback);
26736
27425
  }
27426
+ this.throwExactlyMatchedException(this.getExceptionsByUrl(url, 'exact'), error, feedback);
26737
27427
  this.throwExactlyMatchedException(this.exceptions['exact'], error, feedback);
26738
27428
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(feedback);
26739
27429
  }
@@ -26747,6 +27437,7 @@ class binance extends _abstract_binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
26747
27437
  const element = response[0];
26748
27438
  const errorCode = this.safeString(element, 'code');
26749
27439
  if (errorCode !== undefined) {
27440
+ this.throwExactlyMatchedException(this.getExceptionsByUrl(url, 'exact'), errorCode, this.id + ' ' + body);
26750
27441
  this.throwExactlyMatchedException(this.exceptions['exact'], errorCode, this.id + ' ' + body);
26751
27442
  }
26752
27443
  }
@@ -29918,7 +30609,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
29918
30609
  if (((type === 'LIMIT') || (type === 'TRIGGER_LIMIT') || (type === 'STOP') || (type === 'TAKE_PROFIT')) && !isTrailing) {
29919
30610
  request['price'] = this.parseToNumeric(this.priceToPrecision(symbol, price));
29920
30611
  }
29921
- let reduceOnly = this.safeValue(params, 'reduceOnly', false);
30612
+ let reduceOnly = this.safeBool(params, 'reduceOnly', false);
29922
30613
  if (isTriggerOrder) {
29923
30614
  request['stopPrice'] = this.parseToNumeric(this.priceToPrecision(symbol, triggerPrice));
29924
30615
  if (isMarketOrder || (type === 'TRIGGER_MARKET')) {
@@ -36271,7 +36962,7 @@ class bitfinex extends _abstract_bitfinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
36271
36962
  */
36272
36963
  await this.loadMarkets();
36273
36964
  const market = this.market(symbol);
36274
- const postOnly = this.safeValue(params, 'postOnly', false);
36965
+ const postOnly = this.safeBool(params, 'postOnly', false);
36275
36966
  type = type.toLowerCase();
36276
36967
  params = this.omit(params, ['postOnly']);
36277
36968
  if (market['spot']) {
@@ -36932,9 +37623,13 @@ class bitfinex2 extends _abstract_bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["
36932
37623
  'createLimitOrder': true,
36933
37624
  'createMarketOrder': true,
36934
37625
  'createOrder': true,
37626
+ 'createReduceOnlyOrder': true,
36935
37627
  'createStopLimitOrder': true,
36936
37628
  'createStopMarketOrder': true,
36937
37629
  'createStopOrder': true,
37630
+ 'createTriggerOrder': true,
37631
+ 'createTrailingAmountOrder': true,
37632
+ 'createTrailingPercentOrder': false,
36938
37633
  'editOrder': false,
36939
37634
  'fetchBalance': true,
36940
37635
  'fetchClosedOrder': true,
@@ -38389,94 +39084,81 @@ class bitfinex2 extends _abstract_bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["
38389
39084
  /**
38390
39085
  * @method
38391
39086
  * @name bitfinex2#createOrder
38392
- * @description Create an order on the exchange
39087
+ * @description create an order on the exchange
38393
39088
  * @see https://docs.bitfinex.com/reference/rest-auth-submit-order
38394
- * @param {string} symbol Unified CCXT market symbol
39089
+ * @param {string} symbol unified CCXT market symbol
38395
39090
  * @param {string} type 'limit' or 'market'
38396
39091
  * @param {string} side 'buy' or 'sell'
38397
39092
  * @param {float} amount the amount of currency to trade
38398
- * @param {float} [price] price of order
38399
- * @param {object} [params] extra parameters specific to the exchange API endpoint
38400
- * @param {float} [params.stopPrice] The price at which a trigger order is triggered at
39093
+ * @param {float} [price] price of the order
39094
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
39095
+ * @param {float} [params.stopPrice] the price that triggers a trigger order
38401
39096
  * @param {string} [params.timeInForce] "GTC", "IOC", "FOK", or "PO"
38402
- * @param {bool} params.postOnly
38403
- * @param {bool} [params.reduceOnly] Ensures that the executed order does not flip the opened position.
39097
+ * @param {boolean} [params.postOnly] set to true if you want to make a post only order
39098
+ * @param {boolean} [params.reduceOnly] indicates that the order is to reduce the size of a position
38404
39099
  * @param {int} [params.flags] additional order parameters: 4096 (Post Only), 1024 (Reduce Only), 16384 (OCO), 64 (Hidden), 512 (Close), 524288 (No Var Rates)
38405
39100
  * @param {int} [params.lev] leverage for a derivative order, supported by derivative symbol orders only. The value should be between 1 and 100 inclusive.
38406
- * @param {string} [params.price_traling] The trailing price for a trailing stop order
38407
- * @param {string} [params.price_aux_limit] Order price for stop limit orders
39101
+ * @param {string} [params.price_aux_limit] order price for stop limit orders
38408
39102
  * @param {string} [params.price_oco_stop] OCO stop price
39103
+ * @param {string} [params.trailingAmount] *swap only* the quote amount to trail away from the current market price
38409
39104
  * @returns {object} an [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
38410
39105
  */
38411
39106
  await this.loadMarkets();
38412
39107
  const market = this.market(symbol);
38413
- // order types "limit" and "market" immediatley parsed "EXCHANGE LIMIT" and "EXCHANGE MARKET"
38414
- // note: same order types exist for margin orders without the EXCHANGE prefix
38415
- const orderTypes = this.safeValue(this.options, 'orderTypes', {});
38416
- let orderType = type.toUpperCase();
38417
- if (market['spot']) {
38418
- // although they claim that type needs to be 'exchange limit' or 'exchange market'
38419
- // in fact that's not the case for swap markets
38420
- orderType = this.safeStringUpper(orderTypes, type, type);
38421
- }
38422
- const stopPrice = this.safeString2(params, 'stopPrice', 'triggerPrice');
38423
- const timeInForce = this.safeString(params, 'timeInForce');
38424
- const postOnlyParam = this.safeValue(params, 'postOnly', false);
38425
- const reduceOnly = this.safeValue(params, 'reduceOnly', false);
38426
- const clientOrderId = this.safeValue2(params, 'cid', 'clientOrderId');
38427
- params = this.omit(params, ['triggerPrice', 'stopPrice', 'timeInForce', 'postOnly', 'reduceOnly', 'price_aux_limit']);
38428
39108
  let amountString = this.amountToPrecision(symbol, amount);
38429
39109
  amountString = (side === 'buy') ? amountString : _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise */ .O.stringNeg(amountString);
38430
39110
  const request = {
38431
- // 'gid': 0123456789, // int32, optional group id for the order
38432
- // 'cid': 0123456789, // int32 client order id
38433
- 'type': orderType,
38434
39111
  'symbol': market['id'],
38435
- // 'price': this.numberToString (price),
38436
39112
  'amount': amountString,
38437
- // 'flags': 0, // int32, https://docs.bitfinex.com/v2/docs/flag-values
38438
- // 'lev': 10, // leverage for a derivative orders, the value should be between 1 and 100 inclusive, optional, 10 by default
38439
- // 'price_trailing': this.numberToString (priceTrailing),
38440
- // 'price_aux_limit': this.numberToString (stopPrice),
38441
- // 'price_oco_stop': this.numberToString (ocoStopPrice),
38442
- // 'tif': '2020-01-01 10:45:23', // datetime for automatic order cancellation
38443
- // 'meta': {
38444
- // 'aff_code': 'AFF_CODE_HERE'
38445
- // },
38446
39113
  };
38447
- const stopLimit = ((orderType === 'EXCHANGE STOP LIMIT') || ((orderType === 'EXCHANGE LIMIT') && (stopPrice !== undefined)));
38448
- const exchangeStop = (orderType === 'EXCHANGE STOP');
38449
- const exchangeMarket = (orderType === 'EXCHANGE MARKET');
38450
- const stopMarket = (exchangeStop || (exchangeMarket && (stopPrice !== undefined)));
38451
- const ioc = ((orderType === 'EXCHANGE IOC') || (timeInForce === 'IOC'));
38452
- const fok = ((orderType === 'EXCHANGE FOK') || (timeInForce === 'FOK'));
39114
+ const stopPrice = this.safeString2(params, 'stopPrice', 'triggerPrice');
39115
+ const trailingAmount = this.safeString(params, 'trailingAmount');
39116
+ const timeInForce = this.safeString(params, 'timeInForce');
39117
+ const postOnlyParam = this.safeBool(params, 'postOnly', false);
39118
+ const reduceOnly = this.safeBool(params, 'reduceOnly', false);
39119
+ const clientOrderId = this.safeValue2(params, 'cid', 'clientOrderId');
39120
+ params = this.omit(params, ['triggerPrice', 'stopPrice', 'timeInForce', 'postOnly', 'reduceOnly', 'trailingAmount', 'clientOrderId']);
39121
+ let orderType = type.toUpperCase();
39122
+ if (trailingAmount !== undefined) {
39123
+ orderType = 'TRAILING STOP';
39124
+ request['price_trailing'] = trailingAmount;
39125
+ }
39126
+ else if (stopPrice !== undefined) {
39127
+ // request['price'] is taken as stopPrice for stop orders
39128
+ request['price'] = this.priceToPrecision(symbol, stopPrice);
39129
+ if (type === 'limit') {
39130
+ orderType = 'STOP LIMIT';
39131
+ request['price_aux_limit'] = this.priceToPrecision(symbol, price);
39132
+ }
39133
+ else {
39134
+ orderType = 'STOP';
39135
+ }
39136
+ }
39137
+ const ioc = (timeInForce === 'IOC');
39138
+ const fok = (timeInForce === 'FOK');
38453
39139
  const postOnly = (postOnlyParam || (timeInForce === 'PO'));
38454
39140
  if ((ioc || fok) && (price === undefined)) {
38455
39141
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder(this.id + ' createOrder() requires a price argument with IOC and FOK orders');
38456
39142
  }
38457
- if ((ioc || fok) && exchangeMarket) {
39143
+ if ((ioc || fok) && (type === 'market')) {
38458
39144
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder(this.id + ' createOrder() does not allow market IOC and FOK orders');
38459
39145
  }
38460
- if ((orderType !== 'MARKET') && (!exchangeMarket) && (!exchangeStop)) {
39146
+ if ((type !== 'market') && (stopPrice === undefined)) {
38461
39147
  request['price'] = this.priceToPrecision(symbol, price);
38462
39148
  }
38463
- if (stopLimit || stopMarket) {
38464
- // request['price'] is taken as stopPrice for stop orders
38465
- request['price'] = this.priceToPrecision(symbol, stopPrice);
38466
- if (stopMarket) {
38467
- request['type'] = 'EXCHANGE STOP';
38468
- }
38469
- else if (stopLimit) {
38470
- request['type'] = 'EXCHANGE STOP LIMIT';
38471
- request['price_aux_limit'] = this.priceToPrecision(symbol, price);
38472
- }
38473
- }
38474
39149
  if (ioc) {
38475
- request['type'] = 'EXCHANGE IOC';
39150
+ orderType = 'IOC';
38476
39151
  }
38477
39152
  else if (fok) {
38478
- request['type'] = 'EXCHANGE FOK';
39153
+ orderType = 'FOK';
39154
+ }
39155
+ let marginMode = undefined;
39156
+ [marginMode, params] = this.handleMarginModeAndParams('createOrder', params);
39157
+ if (market['spot'] && (marginMode === undefined)) {
39158
+ // The EXCHANGE prefix is only required for non margin spot markets
39159
+ orderType = 'EXCHANGE ' + orderType;
38479
39160
  }
39161
+ request['type'] = orderType;
38480
39162
  // flag values may be summed to combine flags
38481
39163
  let flags = 0;
38482
39164
  if (postOnly) {
@@ -38490,7 +39172,6 @@ class bitfinex2 extends _abstract_bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["
38490
39172
  }
38491
39173
  if (clientOrderId !== undefined) {
38492
39174
  request['cid'] = clientOrderId;
38493
- params = this.omit(params, ['cid', 'clientOrderId']);
38494
39175
  }
38495
39176
  const response = await this.privatePostAuthWOrderSubmit(this.extend(request, params));
38496
39177
  //
@@ -38546,8 +39227,8 @@ class bitfinex2 extends _abstract_bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["
38546
39227
  const errorText = response[7];
38547
39228
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(this.id + ' ' + response[6] + ': ' + errorText + ' (#' + errorCode + ')');
38548
39229
  }
38549
- const orders = this.safeValue(response, 4, []);
38550
- const order = this.safeValue(orders, 0);
39230
+ const orders = this.safeList(response, 4, []);
39231
+ const order = this.safeList(orders, 0);
38551
39232
  return this.parseOrder(order, market);
38552
39233
  }
38553
39234
  async cancelAllOrders(symbol = undefined, params = {}) {
@@ -39295,7 +39976,7 @@ class bitfinex2 extends _abstract_bitfinex2_js__WEBPACK_IMPORTED_MODULE_0__/* ["
39295
39976
  request['payment_id'] = tag;
39296
39977
  }
39297
39978
  const withdrawOptions = this.safeValue(this.options, 'withdraw', {});
39298
- const includeFee = this.safeValue(withdrawOptions, 'includeFee', false);
39979
+ const includeFee = this.safeBool(withdrawOptions, 'includeFee', false);
39299
39980
  if (includeFee) {
39300
39981
  request['fee_deduct'] = 1;
39301
39982
  }
@@ -42234,6 +42915,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
42234
42915
  'fetchCrossBorrowRate': true,
42235
42916
  'fetchCrossBorrowRates': false,
42236
42917
  'fetchCurrencies': true,
42918
+ 'fetchDeposit': false,
42237
42919
  'fetchDepositAddress': true,
42238
42920
  'fetchDepositAddresses': false,
42239
42921
  'fetchDeposits': true,
@@ -42263,6 +42945,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
42263
42945
  'fetchOpenOrders': true,
42264
42946
  'fetchOrder': true,
42265
42947
  'fetchOrderBook': true,
42948
+ 'fetchOrderBooks': false,
42266
42949
  'fetchOrders': false,
42267
42950
  'fetchOrderTrades': false,
42268
42951
  'fetchPosition': true,
@@ -42270,6 +42953,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
42270
42953
  'fetchPositions': true,
42271
42954
  'fetchPositionsRisk': false,
42272
42955
  'fetchPremiumIndexOHLCV': false,
42956
+ 'fetchStatus': false,
42273
42957
  'fetchTicker': true,
42274
42958
  'fetchTickers': true,
42275
42959
  'fetchTime': true,
@@ -42286,6 +42970,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
42286
42970
  'repayCrossMargin': true,
42287
42971
  'repayIsolatedMargin': true,
42288
42972
  'setLeverage': true,
42973
+ 'setMargin': false,
42289
42974
  'setMarginMode': true,
42290
42975
  'setPositionMode': true,
42291
42976
  'signIn': false,
@@ -44403,7 +45088,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
44403
45088
  'fee': undefined,
44404
45089
  };
44405
45090
  const withdrawOptions = this.safeValue(this.options, 'withdraw', {});
44406
- const fillResponseFromRequest = this.safeValue(withdrawOptions, 'fillResponseFromRequest', true);
45091
+ const fillResponseFromRequest = this.safeBool(withdrawOptions, 'fillResponseFromRequest', true);
44407
45092
  if (fillResponseFromRequest) {
44408
45093
  result['currency'] = code;
44409
45094
  result['timestamp'] = this.milliseconds();
@@ -45288,7 +45973,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
45288
45973
  [marginMode, params] = this.handleMarginModeAndParams('fetchTradingFees', params);
45289
45974
  [marketType, params] = this.handleMarketTypeAndParams('fetchTradingFees', undefined, params);
45290
45975
  if (marketType === 'spot') {
45291
- const margin = this.safeValue(params, 'margin', false);
45976
+ const margin = this.safeBool(params, 'margin', false);
45292
45977
  params = this.omit(params, 'margin');
45293
45978
  if ((marginMode !== undefined) || margin) {
45294
45979
  response = await this.publicMarginGetV2MarginCurrencies(params);
@@ -46309,7 +46994,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
46309
46994
  request['price'] = this.priceToPrecision(symbol, price);
46310
46995
  }
46311
46996
  const triggerType = this.safeString(params, 'triggerType', 'mark_price');
46312
- const reduceOnly = this.safeValue(params, 'reduceOnly', false);
46997
+ const reduceOnly = this.safeBool(params, 'reduceOnly', false);
46313
46998
  const clientOrderId = this.safeString2(params, 'clientOid', 'clientOrderId');
46314
46999
  const exchangeSpecificTifParam = this.safeString2(params, 'force', 'timeInForce');
46315
47000
  let postOnly = undefined;
@@ -46405,7 +47090,7 @@ class bitget extends _abstract_bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
46405
47090
  }
46406
47091
  const marginModeRequest = (marginMode === 'cross') ? 'crossed' : 'isolated';
46407
47092
  request['marginMode'] = marginModeRequest;
46408
- const oneWayMode = this.safeValue(params, 'oneWayMode', false);
47093
+ const oneWayMode = this.safeBool(params, 'oneWayMode', false);
46409
47094
  params = this.omit(params, 'oneWayMode');
46410
47095
  let requestSide = side;
46411
47096
  if (reduceOnly) {
@@ -53532,7 +54217,7 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
53532
54217
  let marketType = undefined;
53533
54218
  [marketType, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
53534
54219
  const marginMode = this.safeString(params, 'marginMode');
53535
- const isMargin = this.safeValue(params, 'margin', false);
54220
+ const isMargin = this.safeBool(params, 'margin', false);
53536
54221
  params = this.omit(params, ['margin', 'marginMode']);
53537
54222
  if (marginMode !== undefined || isMargin) {
53538
54223
  marketType = 'margin';
@@ -54406,7 +55091,7 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
54406
55091
  response = await this.privateGetContractPrivateCurrentPlanOrder(this.extend(request, params));
54407
55092
  }
54408
55093
  else {
54409
- const trailing = this.safeValue(params, 'trailing', false);
55094
+ const trailing = this.safeBool(params, 'trailing', false);
54410
55095
  let orderType = this.safeString(params, 'orderType');
54411
55096
  params = this.omit(params, ['orderType', 'trailing']);
54412
55097
  if (trailing) {
@@ -54586,7 +55271,7 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
54586
55271
  if (symbol === undefined) {
54587
55272
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchOrder() requires a symbol argument');
54588
55273
  }
54589
- const trailing = this.safeValue(params, 'trailing', false);
55274
+ const trailing = this.safeBool(params, 'trailing', false);
54590
55275
  let orderType = this.safeString(params, 'orderType');
54591
55276
  params = this.omit(params, ['orderType', 'trailing']);
54592
55277
  if (trailing) {
@@ -56399,8 +57084,8 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
56399
57084
  const network = this.networkIdToCode(networkId);
56400
57085
  const withdrawalFeeRaw = this.safeString(chain, 'withdrawalFee');
56401
57086
  const withdrawalFee = this.parseNumber(_base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise */ .O.stringMul(withdrawalFeeRaw, precisionString));
56402
- const isDepositEnabled = this.safeValue(chain, 'depositEnabled', false);
56403
- const isWithdrawEnabled = this.safeValue(chain, 'withdrawalEnabled', false);
57087
+ const isDepositEnabled = this.safeBool(chain, 'depositEnabled', false);
57088
+ const isWithdrawEnabled = this.safeBool(chain, 'withdrawalEnabled', false);
56404
57089
  const active = (isDepositEnabled && isWithdrawEnabled);
56405
57090
  if (isDepositEnabled) {
56406
57091
  depositEnabled = true;
@@ -57776,7 +58461,7 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
57776
58461
  isInverse = (defaultSubType === 'inverse');
57777
58462
  }
57778
58463
  else {
57779
- isInverse = this.safeValue(market, 'inverse', false);
58464
+ isInverse = this.safeBool(market, 'inverse', false);
57780
58465
  }
57781
58466
  if (isInverse) {
57782
58467
  cost = this.convertFromRawQuantity(symbol, qty);
@@ -58483,7 +59168,7 @@ class bitmex extends _abstract_bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
58483
59168
  const item = response[i];
58484
59169
  const marketId = this.safeString(item, 'symbol');
58485
59170
  const market = this.safeMarket(marketId);
58486
- const swap = this.safeValue(market, 'swap', false);
59171
+ const swap = this.safeBool(market, 'swap', false);
58487
59172
  if (swap) {
58488
59173
  filteredResponse.push(item);
58489
59174
  }
@@ -63898,7 +64583,7 @@ class bitrue extends _abstract_bitrue_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
63898
64583
  }
63899
64584
  // check success value for wapi endpoints
63900
64585
  // response in format {'msg': 'The coin does not exist.', 'success': true/false}
63901
- const success = this.safeValue(response, 'success', true);
64586
+ const success = this.safeBool(response, 'success', true);
63902
64587
  if (!success) {
63903
64588
  const messageInner = this.safeString(response, 'msg');
63904
64589
  let parsedMessage = undefined;
@@ -65700,7 +66385,7 @@ class bitso extends _abstract_bitso_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
65700
66385
  //
65701
66386
  // {"success":false,"error":{"code":104,"message":"Cannot perform request - nonce must be higher than 1520307203724237"}}
65702
66387
  //
65703
- let success = this.safeValue(response, 'success', false);
66388
+ let success = this.safeBool(response, 'success', false);
65704
66389
  if (typeof success === 'string') {
65705
66390
  if ((success === 'true') || (success === '1')) {
65706
66391
  success = true;
@@ -68295,7 +68980,7 @@ class bitteam extends _abstract_bitteam_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
68295
68980
  const created = this.parse8601(timeStart);
68296
68981
  let minCost = undefined;
68297
68982
  const currenciesValuedInUsd = this.safeValue(this.options, 'currenciesValuedInUsd', {});
68298
- const quoteInUsd = this.safeValue(currenciesValuedInUsd, quote, false);
68983
+ const quoteInUsd = this.safeBool(currenciesValuedInUsd, quote, false);
68299
68984
  if (quoteInUsd) {
68300
68985
  const settings = this.safeValue(market, 'settings', {});
68301
68986
  minCost = this.safeNumber(settings, 'limit_usd');
@@ -68482,7 +69167,7 @@ class bitteam extends _abstract_bitteam_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
68482
69167
  const id = this.safeString(currency, 'symbol');
68483
69168
  const numericId = this.safeInteger(currency, 'id');
68484
69169
  const code = this.safeCurrencyCode(id);
68485
- const active = this.safeValue(currency, 'active', false);
69170
+ const active = this.safeBool(currency, 'active', false);
68486
69171
  const precision = this.safeInteger(currency, 'precision');
68487
69172
  const txLimits = this.safeValue(currency, 'txLimits', {});
68488
69173
  const minWithdraw = this.safeString(txLimits, 'minWithdraw');
@@ -74642,7 +75327,7 @@ class btcalpha extends _abstract_btcalpha_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
74642
75327
  const marketId = this.safeString(order, 'pair');
74643
75328
  market = this.safeMarket(marketId, market, '_');
74644
75329
  const symbol = market['symbol'];
74645
- const success = this.safeValue(order, 'success', false);
75330
+ const success = this.safeBool(order, 'success', false);
74646
75331
  let timestamp = undefined;
74647
75332
  if (success) {
74648
75333
  timestamp = this.safeTimestamp(order, 'date');
@@ -77962,8 +78647,6 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
77962
78647
  // account
77963
78648
  'v5/account/wallet-balance': 1,
77964
78649
  'v5/account/borrow-history': 1,
77965
- 'v5/account/set-collateral-switch': 5,
77966
- 'v5/account/set-collateral-switch-batch': 5,
77967
78650
  'v5/account/collateral-info': 1,
77968
78651
  'v5/asset/coin-greeks': 1,
77969
78652
  'v5/account/fee-rate': 10,
@@ -78156,6 +78839,8 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
78156
78839
  'v5/lending/purchase': 5,
78157
78840
  'v5/lending/redeem': 5,
78158
78841
  'v5/lending/redeem-cancel': 5,
78842
+ 'v5/account/set-collateral-switch': 5,
78843
+ 'v5/account/set-collateral-switch-batch': 5,
78159
78844
  },
78160
78845
  },
78161
78846
  },
@@ -81125,7 +81810,7 @@ class bybit extends _abstract_bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
81125
81810
  const result = await this.fetchOrders(symbol, undefined, undefined, this.extend(request, params));
81126
81811
  const length = result.length;
81127
81812
  if (length === 0) {
81128
- const isTrigger = this.safeValueN(params, ['trigger', 'stop'], false);
81813
+ const isTrigger = this.safeBoolN(params, ['trigger', 'stop'], false);
81129
81814
  const extra = isTrigger ? '' : 'If you are trying to fetch SL/TP conditional order, you might try setting params["trigger"] = true';
81130
81815
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.OrderNotFound('Order ' + id.toString() + ' was not found.' + extra);
81131
81816
  }
@@ -88404,7 +89089,11 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
88404
89089
  async fetchTickersV3(symbols = undefined, params = {}) {
88405
89090
  await this.loadMarkets();
88406
89091
  symbols = this.marketSymbols(symbols);
88407
- const response = await this.v3PrivateGetBrokerageProducts(params);
89092
+ const request = {};
89093
+ if (symbols !== undefined) {
89094
+ request['product_ids'] = this.marketIds(symbols);
89095
+ }
89096
+ const response = await this.v3PrivateGetBrokerageProducts(this.extend(request, params));
88408
89097
  //
88409
89098
  // {
88410
89099
  // "products": [
@@ -88722,7 +89411,7 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
88722
89411
  'limit': 250,
88723
89412
  };
88724
89413
  let response = undefined;
88725
- const isV3 = this.safeValue(params, 'v3', false);
89414
+ const isV3 = this.safeBool(params, 'v3', false);
88726
89415
  params = this.omit(params, 'v3');
88727
89416
  const method = this.safeString(this.options, 'fetchBalance', 'v3PrivateGetBrokerageAccounts');
88728
89417
  if ((isV3) || (method === 'v3PrivateGetBrokerageAccounts')) {
@@ -90238,8 +90927,11 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
90238
90927
  */
90239
90928
  await this.loadMarkets();
90240
90929
  symbols = this.marketSymbols(symbols);
90241
- // the 'product_ids' param isn't working properly and returns {"pricebooks":[]} when defined
90242
- const response = await this.v3PrivateGetBrokerageBestBidAsk(params);
90930
+ const request = {};
90931
+ if (symbols !== undefined) {
90932
+ request['product_ids'] = this.marketIds(symbols);
90933
+ }
90934
+ const response = await this.v3PrivateGetBrokerageBestBidAsk(this.extend(request, params));
90243
90935
  //
90244
90936
  // {
90245
90937
  // "pricebooks": [
@@ -90368,7 +91060,7 @@ class coinbase extends _abstract_coinbase_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
90368
91060
  const savedPath = fullPath;
90369
91061
  if (method === 'GET') {
90370
91062
  if (Object.keys(query).length) {
90371
- fullPath += '?' + this.urlencode(query);
91063
+ fullPath += '?' + this.urlencodeWithArrayRepeat(query);
90372
91064
  }
90373
91065
  }
90374
91066
  const url = this.urls['api']['rest'] + fullPath;
@@ -93187,7 +93879,7 @@ class coincheck extends _abstract_coincheck_js__WEBPACK_IMPORTED_MODULE_0__/* ["
93187
93879
  // {"success":false,"error":"disabled API Key"}'
93188
93880
  // {"success":false,"error":"invalid authentication"}
93189
93881
  //
93190
- const success = this.safeValue(response, 'success', true);
93882
+ const success = this.safeBool(response, 'success', true);
93191
93883
  if (!success) {
93192
93884
  const error = this.safeString(response, 'error');
93193
93885
  const feedback = this.id + ' ' + this.json(response);
@@ -96537,7 +97229,7 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
96537
97229
  const data = this.safeValue(response, 'data', {});
96538
97230
  const depositAddress = this.parseDepositAddress(data, currency);
96539
97231
  const options = this.safeValue(this.options, 'fetchDepositAddress', {});
96540
- const fillResponseFromRequest = this.safeValue(options, 'fillResponseFromRequest', true);
97232
+ const fillResponseFromRequest = this.safeBool(options, 'fillResponseFromRequest', true);
96541
97233
  if (fillResponseFromRequest) {
96542
97234
  depositAddress['network'] = this.safeNetworkCode(network, currency);
96543
97235
  }
@@ -98564,7 +99256,7 @@ class coinex extends _abstract_coinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
98564
99256
  * @returns {Array} the marginMode in lowercase
98565
99257
  */
98566
99258
  const defaultType = this.safeString(this.options, 'defaultType');
98567
- const isMargin = this.safeValue(params, 'margin', false);
99259
+ const isMargin = this.safeBool(params, 'margin', false);
98568
99260
  let marginMode = undefined;
98569
99261
  [marginMode, params] = super.handleMarginModeAndParams(methodName, params, defaultValue);
98570
99262
  if (marginMode === undefined) {
@@ -99047,7 +99739,7 @@ class coinlist extends _abstract_coinlist_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
99047
99739
  const currency = currencies[i];
99048
99740
  const id = this.safeString(currency, 'asset');
99049
99741
  const code = this.safeCurrencyCode(id);
99050
- const isTransferable = this.safeValue(currency, 'is_transferable', false);
99742
+ const isTransferable = this.safeBool(currency, 'is_transferable', false);
99051
99743
  const withdrawEnabled = isTransferable;
99052
99744
  const depositEnabled = isTransferable;
99053
99745
  const active = isTransferable;
@@ -101574,7 +102266,7 @@ class coinmate extends _abstract_coinmate_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
101574
102266
  //
101575
102267
  const data = this.safeValue(response, 'data');
101576
102268
  const transaction = this.parseTransaction(data, currency);
101577
- const fillResponseFromRequest = this.safeValue(withdrawOptions, 'fillResponseFromRequest', true);
102269
+ const fillResponseFromRequest = this.safeBool(withdrawOptions, 'fillResponseFromRequest', true);
101578
102270
  if (fillResponseFromRequest) {
101579
102271
  transaction['amount'] = amount;
101580
102272
  transaction['currency'] = code;
@@ -102408,7 +103100,7 @@ class coinmetro extends _abstract_coinmetro_js__WEBPACK_IMPORTED_MODULE_0__/* ["
102408
103100
  const quote = this.safeCurrencyCode(quoteId);
102409
103101
  const basePrecisionAndLimits = this.parseMarketPrecisionAndLimits(baseId);
102410
103102
  const quotePrecisionAndLimits = this.parseMarketPrecisionAndLimits(quoteId);
102411
- const margin = this.safeValue(market, 'margin', false);
103103
+ const margin = this.safeBool(market, 'margin', false);
102412
103104
  const tradingFees = this.safeValue(this.fees, 'trading', {});
102413
103105
  return this.safeMarketStructure({
102414
103106
  'id': id,
@@ -103367,7 +104059,7 @@ class coinmetro extends _abstract_coinmetro_js__WEBPACK_IMPORTED_MODULE_0__/* ["
103367
104059
  };
103368
104060
  const marginMode = undefined;
103369
104061
  [params, params] = this.handleMarginModeAndParams('cancelOrder', params);
103370
- const isMargin = this.safeValue(params, 'margin', false);
104062
+ const isMargin = this.safeBool(params, 'margin', false);
103371
104063
  params = this.omit(params, 'margin');
103372
104064
  let response = undefined;
103373
104065
  if (isMargin || (marginMode !== undefined)) {
@@ -106710,7 +107402,7 @@ class coinsph extends _abstract_coinsph_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
106710
107402
  * @returns {object} a [transaction structure]{@link https://docs.ccxt.com/#/?id=transaction-structure}
106711
107403
  */
106712
107404
  const options = this.safeValue(this.options, 'withdraw');
106713
- const warning = this.safeValue(options, 'warning', true);
107405
+ const warning = this.safeBool(options, 'warning', true);
106714
107406
  if (warning) {
106715
107407
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidAddress(this.id + " withdraw() makes a withdrawals only to coins_ph account, add .options['withdraw']['warning'] = false to make a withdrawal to your coins_ph account");
106716
107408
  }
@@ -108706,7 +109398,7 @@ class cryptocom extends _abstract_cryptocom_js__WEBPACK_IMPORTED_MODULE_0__/* ["
108706
109398
  request['time_in_force'] = timeInForce;
108707
109399
  }
108708
109400
  }
108709
- const postOnly = this.safeValue(params, 'postOnly', false);
109401
+ const postOnly = this.safeBool(params, 'postOnly', false);
108710
109402
  if ((postOnly) || (timeInForce === 'PO')) {
108711
109403
  request['exec_inst'] = ['POST_ONLY'];
108712
109404
  request['time_in_force'] = 'GOOD_TILL_CANCEL';
@@ -108927,7 +109619,7 @@ class cryptocom extends _abstract_cryptocom_js__WEBPACK_IMPORTED_MODULE_0__/* ["
108927
109619
  request['time_in_force'] = timeInForce;
108928
109620
  }
108929
109621
  }
108930
- const postOnly = this.safeValue(params, 'postOnly', false);
109622
+ const postOnly = this.safeBool(params, 'postOnly', false);
108931
109623
  if ((postOnly) || (timeInForce === 'PO')) {
108932
109624
  request['exec_inst'] = ['POST_ONLY'];
108933
109625
  request['time_in_force'] = 'GOOD_TILL_CANCEL';
@@ -109898,7 +110590,7 @@ class cryptocom extends _abstract_cryptocom_js__WEBPACK_IMPORTED_MODULE_0__/* ["
109898
110590
  * @returns {Array} the marginMode in lowercase
109899
110591
  */
109900
110592
  const defaultType = this.safeString(this.options, 'defaultType');
109901
- const isMargin = this.safeValue(params, 'margin', false);
110593
+ const isMargin = this.safeBool(params, 'margin', false);
109902
110594
  params = this.omit(params, 'margin');
109903
110595
  let marginMode = undefined;
109904
110596
  [marginMode, params] = this.handleMarginModeAndParams(methodName, params);
@@ -120600,9 +121292,11 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
120600
121292
  // "timestamp": 1663221614998
120601
121293
  // }
120602
121294
  //
121295
+ const indexPrice = this.safeNumber(ticker, 'index_price');
121296
+ const marketType = (indexPrice !== undefined) ? 'contract' : 'spot';
120603
121297
  const marketId = this.safeStringUpper2(ticker, 'symbol', 'instrument_id');
120604
- const symbol = this.safeSymbol(marketId, market);
120605
- market = this.safeMarket(marketId);
121298
+ const symbol = this.safeSymbol(marketId, market, undefined, marketType);
121299
+ market = this.safeMarket(marketId, market, undefined, marketType);
120606
121300
  let timestamp = this.safeTimestamp(ticker, 'date');
120607
121301
  if (market['swap']) {
120608
121302
  timestamp = this.safeInteger(ticker, 'timestamp');
@@ -121189,7 +121883,7 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
121189
121883
  let postOnly = this.isPostOnly(isMarketOrder, false, params);
121190
121884
  let postOnlyParsed = undefined;
121191
121885
  if (swap) {
121192
- const reduceOnly = this.safeValue(params, 'reduceOnly', false);
121886
+ const reduceOnly = this.safeBool(params, 'reduceOnly', false);
121193
121887
  const timeInForce = this.safeString(params, 'timeInForce');
121194
121888
  let orderType = undefined;
121195
121889
  if (side === 'buy') {
@@ -123389,7 +124083,7 @@ class digifinex extends _abstract_digifinex_js__WEBPACK_IMPORTED_MODULE_0__/* ["
123389
124083
  * @returns {Array} the marginMode in lowercase
123390
124084
  */
123391
124085
  const defaultType = this.safeString(this.options, 'defaultType');
123392
- const isMargin = this.safeValue(params, 'margin', false);
124086
+ const isMargin = this.safeBool(params, 'margin', false);
123393
124087
  let marginMode = undefined;
123394
124088
  [marginMode, params] = super.handleMarginModeAndParams(methodName, params, defaultValue);
123395
124089
  if (marginMode !== undefined) {
@@ -124034,7 +124728,7 @@ class exmo extends _abstract_exmo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
124034
124728
  //
124035
124729
  const margin = this.parseMarginModification(response, market);
124036
124730
  const options = this.safeValue(this.options, 'margin', {});
124037
- const fillResponseFromRequest = this.safeValue(options, 'fillResponseFromRequest', true);
124731
+ const fillResponseFromRequest = this.safeBool(options, 'fillResponseFromRequest', true);
124038
124732
  if (fillResponseFromRequest) {
124039
124733
  margin['type'] = type;
124040
124734
  margin['amount'] = amount;
@@ -126398,7 +127092,7 @@ class exmo extends _abstract_exmo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
126398
127092
  // {"result":false,"error":"Error 50052: Insufficient funds"}
126399
127093
  // {"s":"error","errmsg":"strconv.ParseInt: parsing \"\": invalid syntax"}
126400
127094
  //
126401
- let success = this.safeValue(response, 'result', false);
127095
+ let success = this.safeBool(response, 'result', false);
126402
127096
  if (typeof success === 'string') {
126403
127097
  if ((success === 'true') || (success === '1')) {
126404
127098
  success = true;
@@ -128069,9 +128763,9 @@ class gate extends _abstract_gate_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
128069
128763
  const networkId = this.safeString(entry, 'chain');
128070
128764
  const networkCode = this.networkIdToCode(networkId, code);
128071
128765
  const delisted = this.safeValue(entry, 'delisted');
128072
- const withdrawDisabled = this.safeValue(entry, 'withdraw_disabled', false);
128073
- const depositDisabled = this.safeValue(entry, 'deposit_disabled', false);
128074
- const tradeDisabled = this.safeValue(entry, 'trade_disabled', false);
128766
+ const withdrawDisabled = this.safeBool(entry, 'withdraw_disabled', false);
128767
+ const depositDisabled = this.safeBool(entry, 'deposit_disabled', false);
128768
+ const tradeDisabled = this.safeBool(entry, 'trade_disabled', false);
128075
128769
  const withdrawEnabled = !withdrawDisabled;
128076
128770
  const depositEnabled = !depositDisabled;
128077
128771
  const tradeEnabled = !tradeDisabled;
@@ -130528,7 +131222,7 @@ class gate extends _abstract_gate_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
130528
131222
  }
130529
131223
  }
130530
131224
  let clientOrderId = this.safeString2(params, 'text', 'clientOrderId');
130531
- const textIsRequired = this.safeValue(params, 'textIsRequired', false);
131225
+ const textIsRequired = this.safeBool(params, 'textIsRequired', false);
130532
131226
  if (clientOrderId !== undefined) {
130533
131227
  // user-defined, must follow the rules if not empty
130534
131228
  // prefixed with t-
@@ -130900,7 +131594,7 @@ class gate extends _abstract_gate_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
130900
131594
  // "message": "Not enough balance"
130901
131595
  // }
130902
131596
  //
130903
- const succeeded = this.safeValue(order, 'succeeded', true);
131597
+ const succeeded = this.safeBool(order, 'succeeded', true);
130904
131598
  if (!succeeded) {
130905
131599
  // cancelOrders response
130906
131600
  return this.safeOrder({
@@ -134047,7 +134741,7 @@ class gemini extends _abstract_gemini_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
134047
134741
  'post_only': true,
134048
134742
  'limit_only': true,
134049
134743
  };
134050
- return this.safeValue(statuses, status, true);
134744
+ return this.safeBool(statuses, status, true);
134051
134745
  }
134052
134746
  async fetchUSDTMarkets(params = {}) {
134053
134747
  // these markets can't be scrapped and fetchMarketsFrom api does an extra call
@@ -134086,7 +134780,7 @@ class gemini extends _abstract_gemini_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
134086
134780
  result[marketId] = this.parseMarket(market);
134087
134781
  }
134088
134782
  const options = this.safeValue(this.options, 'fetchMarketsFromAPI', {});
134089
- const fetchDetailsForAllSymbols = this.safeValue(options, 'fetchDetailsForAllSymbols', false);
134783
+ const fetchDetailsForAllSymbols = this.safeBool(options, 'fetchDetailsForAllSymbols', false);
134090
134784
  const fetchDetailsForMarketIds = this.safeValue(options, 'fetchDetailsForMarketIds', []);
134091
134785
  let promises = [];
134092
134786
  let marketIds = [];
@@ -134903,7 +135597,7 @@ class gemini extends _abstract_gemini_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
134903
135597
  request['options'] = ['maker-or-cancel'];
134904
135598
  }
134905
135599
  }
134906
- const postOnly = this.safeValue(params, 'postOnly', false);
135600
+ const postOnly = this.safeBool(params, 'postOnly', false);
134907
135601
  params = this.omit(params, 'postOnly');
134908
135602
  if (postOnly) {
134909
135603
  request['options'] = ['maker-or-cancel'];
@@ -136036,7 +136730,7 @@ class hitbtc extends _abstract_hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
136036
136730
  const expiry = this.safeInteger(market, 'expiry');
136037
136731
  const contract = (marketType === 'futures');
136038
136732
  const spot = (marketType === 'spot');
136039
- const marginTrading = this.safeValue(market, 'margin_trading', false);
136733
+ const marginTrading = this.safeBool(market, 'margin_trading', false);
136040
136734
  const margin = spot && marginTrading;
136041
136735
  const future = (expiry !== undefined);
136042
136736
  const swap = (contract && !future);
@@ -136171,9 +136865,9 @@ class hitbtc extends _abstract_hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
136171
136865
  const entry = response[currencyId];
136172
136866
  const name = this.safeString(entry, 'full_name');
136173
136867
  const precision = this.safeNumber(entry, 'precision_transfer');
136174
- const payinEnabled = this.safeValue(entry, 'payin_enabled', false);
136175
- const payoutEnabled = this.safeValue(entry, 'payout_enabled', false);
136176
- const transferEnabled = this.safeValue(entry, 'transfer_enabled', false);
136868
+ const payinEnabled = this.safeBool(entry, 'payin_enabled', false);
136869
+ const payoutEnabled = this.safeBool(entry, 'payout_enabled', false);
136870
+ const transferEnabled = this.safeBool(entry, 'transfer_enabled', false);
136177
136871
  const active = payinEnabled && payoutEnabled && transferEnabled;
136178
136872
  const rawNetworks = this.safeValue(entry, 'networks', []);
136179
136873
  const networks = {};
@@ -136186,8 +136880,8 @@ class hitbtc extends _abstract_hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
136186
136880
  const network = this.safeNetwork(networkId);
136187
136881
  fee = this.safeNumber(rawNetwork, 'payout_fee');
136188
136882
  const networkPrecision = this.safeNumber(rawNetwork, 'precision_payout');
136189
- const payinEnabledNetwork = this.safeValue(entry, 'payin_enabled', false);
136190
- const payoutEnabledNetwork = this.safeValue(entry, 'payout_enabled', false);
136883
+ const payinEnabledNetwork = this.safeBool(entry, 'payin_enabled', false);
136884
+ const payoutEnabledNetwork = this.safeBool(entry, 'payout_enabled', false);
136191
136885
  const activeNetwork = payinEnabledNetwork && payoutEnabledNetwork;
136192
136886
  if (payinEnabledNetwork && !depositEnabled) {
136193
136887
  depositEnabled = true;
@@ -138051,7 +138745,7 @@ class hitbtc extends _abstract_hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
138051
138745
  params = this.omit(params, 'network');
138052
138746
  }
138053
138747
  const withdrawOptions = this.safeValue(this.options, 'withdraw', {});
138054
- const includeFee = this.safeValue(withdrawOptions, 'includeFee', false);
138748
+ const includeFee = this.safeBool(withdrawOptions, 'includeFee', false);
138055
138749
  if (includeFee) {
138056
138750
  request['include_fee'] = true;
138057
138751
  }
@@ -138573,7 +139267,7 @@ class hitbtc extends _abstract_hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
138573
139267
  await this.loadMarkets();
138574
139268
  const market = this.market(symbol);
138575
139269
  const leverage = this.safeString(params, 'leverage');
138576
- if (market['type'] === 'swap') {
139270
+ if (market['swap']) {
138577
139271
  if (leverage === undefined) {
138578
139272
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' modifyMarginHelper() requires a leverage parameter for swap markets');
138579
139273
  }
@@ -138597,21 +139291,15 @@ class hitbtc extends _abstract_hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
138597
139291
  let marginMode = undefined;
138598
139292
  [marketType, params] = this.handleMarketTypeAndParams('modifyMarginHelper', market, params);
138599
139293
  [marginMode, params] = this.handleMarginModeAndParams('modifyMarginHelper', params);
138600
- params = this.omit(params, ['marginMode', 'margin']);
138601
139294
  let response = undefined;
138602
- if (marginMode !== undefined) {
139295
+ if (marketType === 'swap') {
139296
+ response = await this.privatePutFuturesAccountIsolatedSymbol(this.extend(request, params));
139297
+ }
139298
+ else if ((marketType === 'margin') || (marketType === 'spot') || (marginMode === 'isolated')) {
138603
139299
  response = await this.privatePutMarginAccountIsolatedSymbol(this.extend(request, params));
138604
139300
  }
138605
139301
  else {
138606
- if (marketType === 'swap') {
138607
- response = await this.privatePutFuturesAccountIsolatedSymbol(this.extend(request, params));
138608
- }
138609
- else if (marketType === 'margin') {
138610
- response = await this.privatePutMarginAccountIsolatedSymbol(this.extend(request, params));
138611
- }
138612
- else {
138613
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' modifyMarginHelper() not support this market type');
138614
- }
139302
+ throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' modifyMarginHelper() not support this market type');
138615
139303
  }
138616
139304
  //
138617
139305
  // {
@@ -138923,7 +139611,7 @@ class hitbtc extends _abstract_hitbtc_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
138923
139611
  * @returns {Array} the marginMode in lowercase
138924
139612
  */
138925
139613
  const defaultType = this.safeString(this.options, 'defaultType');
138926
- const isMargin = this.safeValue(params, 'margin', false);
139614
+ const isMargin = this.safeBool(params, 'margin', false);
138927
139615
  let marginMode = undefined;
138928
139616
  [marginMode, params] = super.handleMarginModeAndParams(methodName, params, defaultValue);
138929
139617
  if (marginMode === undefined) {
@@ -140132,7 +140820,7 @@ class hollaex extends _abstract_hollaex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
140132
140820
  const filled = this.safeString(order, 'filled');
140133
140821
  const status = this.parseOrderStatus(this.safeString(order, 'status'));
140134
140822
  const meta = this.safeValue(order, 'meta', {});
140135
- const postOnly = this.safeValue(meta, 'post_only', false);
140823
+ const postOnly = this.safeBool(meta, 'post_only', false);
140136
140824
  return this.safeOrder({
140137
140825
  'id': id,
140138
140826
  'clientOrderId': undefined,
@@ -140186,7 +140874,7 @@ class hollaex extends _abstract_hollaex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
140186
140874
  };
140187
140875
  const stopPrice = this.safeNumberN(params, ['triggerPrice', 'stopPrice', 'stop']);
140188
140876
  const meta = this.safeValue(params, 'meta', {});
140189
- const exchangeSpecificParam = this.safeValue(meta, 'post_only', false);
140877
+ const exchangeSpecificParam = this.safeBool(meta, 'post_only', false);
140190
140878
  const isMarketOrder = type === 'market';
140191
140879
  const postOnly = this.isPostOnly(isMarketOrder, exchangeSpecificParam, params);
140192
140880
  if (!isMarketOrder) {
@@ -144914,7 +145602,7 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
144914
145602
  let response = undefined;
144915
145603
  const stop = this.safeValue(params, 'stop');
144916
145604
  const stopLossTakeProfit = this.safeValue(params, 'stopLossTakeProfit');
144917
- const trailing = this.safeValue(params, 'trailing', false);
145605
+ const trailing = this.safeBool(params, 'trailing', false);
144918
145606
  params = this.omit(params, ['stop', 'stopLossTakeProfit', 'trailing']);
144919
145607
  if (stop || stopLossTakeProfit || trailing) {
144920
145608
  if (limit !== undefined) {
@@ -145289,7 +145977,7 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
145289
145977
  request['contract_code'] = market['id'];
145290
145978
  const stop = this.safeValue(params, 'stop');
145291
145979
  const stopLossTakeProfit = this.safeValue(params, 'stopLossTakeProfit');
145292
- const trailing = this.safeValue(params, 'trailing', false);
145980
+ const trailing = this.safeBool(params, 'trailing', false);
145293
145981
  params = this.omit(params, ['stop', 'stopLossTakeProfit', 'trailing']);
145294
145982
  if (market['linear']) {
145295
145983
  let marginMode = undefined;
@@ -146668,7 +147356,7 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
146668
147356
  }
146669
147357
  const stop = this.safeValue(params, 'stop');
146670
147358
  const stopLossTakeProfit = this.safeValue(params, 'stopLossTakeProfit');
146671
- const trailing = this.safeValue(params, 'trailing', false);
147359
+ const trailing = this.safeBool(params, 'trailing', false);
146672
147360
  params = this.omit(params, ['stop', 'stopLossTakeProfit', 'trailing']);
146673
147361
  if (market['linear']) {
146674
147362
  let marginMode = undefined;
@@ -146993,7 +147681,7 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
146993
147681
  request['contract_code'] = market['id'];
146994
147682
  const stop = this.safeValue(params, 'stop');
146995
147683
  const stopLossTakeProfit = this.safeValue(params, 'stopLossTakeProfit');
146996
- const trailing = this.safeValue(params, 'trailing', false);
147684
+ const trailing = this.safeBool(params, 'trailing', false);
146997
147685
  params = this.omit(params, ['stop', 'stopLossTakeProfit', 'trailing']);
146998
147686
  if (market['linear']) {
146999
147687
  let marginMode = undefined;
@@ -147459,7 +148147,7 @@ class htx extends _abstract_htx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
147459
148147
  }
147460
148148
  amount = parseFloat(this.currencyToPrecision(code, amount, networkCode));
147461
148149
  const withdrawOptions = this.safeValue(this.options, 'withdraw', {});
147462
- if (this.safeValue(withdrawOptions, 'includeFee', false)) {
148150
+ if (this.safeBool(withdrawOptions, 'includeFee', false)) {
147463
148151
  let fee = this.safeNumber(params, 'fee');
147464
148152
  if (fee === undefined) {
147465
148153
  const currencies = await this.fetchCurrencies();
@@ -151185,7 +151873,7 @@ class huobijp extends _abstract_huobijp_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
151185
151873
  const depositEnabled = this.safeValue(currency, 'deposit-enabled');
151186
151874
  const withdrawEnabled = this.safeValue(currency, 'withdraw-enabled');
151187
151875
  const countryDisabled = this.safeValue(currency, 'country-disabled');
151188
- const visible = this.safeValue(currency, 'visible', false);
151876
+ const visible = this.safeBool(currency, 'visible', false);
151189
151877
  const state = this.safeString(currency, 'state');
151190
151878
  const active = visible && depositEnabled && withdrawEnabled && (state === 'online') && !countryDisabled;
151191
151879
  const name = this.safeString(currency, 'display-name');
@@ -159150,7 +159838,7 @@ class krakenfutures extends _abstract_krakenfutures_js__WEBPACK_IMPORTED_MODULE_
159150
159838
  const volume = this.safeString(ticker, 'vol24h');
159151
159839
  let baseVolume = undefined;
159152
159840
  let quoteVolume = undefined;
159153
- const isIndex = this.safeValue(market, 'index', false);
159841
+ const isIndex = this.safeBool(market, 'index', false);
159154
159842
  if (!isIndex) {
159155
159843
  if (market['linear']) {
159156
159844
  baseVolume = volume;
@@ -161962,7 +162650,7 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
161962
162650
  //
161963
162651
  const data = this.safeValue(response, 'data');
161964
162652
  const options = this.safeValue(this.options, 'fetchMarkets', {});
161965
- const fetchTickersFees = this.safeValue(options, 'fetchTickersFees', true);
162653
+ const fetchTickersFees = this.safeBool(options, 'fetchTickersFees', true);
161966
162654
  let tickersResponse = {};
161967
162655
  if (fetchTickersFees) {
161968
162656
  tickersResponse = await this.publicGetMarketAllTickers(params);
@@ -162170,14 +162858,14 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
162170
162858
  const chain = chains[j];
162171
162859
  const chainId = this.safeString(chain, 'chainId');
162172
162860
  const networkCode = this.networkIdToCode(chainId);
162173
- const chainWithdrawEnabled = this.safeValue(chain, 'isWithdrawEnabled', false);
162861
+ const chainWithdrawEnabled = this.safeBool(chain, 'isWithdrawEnabled', false);
162174
162862
  if (isWithdrawEnabled === undefined) {
162175
162863
  isWithdrawEnabled = chainWithdrawEnabled;
162176
162864
  }
162177
162865
  else {
162178
162866
  isWithdrawEnabled = isWithdrawEnabled || chainWithdrawEnabled;
162179
162867
  }
162180
- const chainDepositEnabled = this.safeValue(chain, 'isDepositEnabled', false);
162868
+ const chainDepositEnabled = this.safeBool(chain, 'isDepositEnabled', false);
162181
162869
  if (isDepositEnabled === undefined) {
162182
162870
  isDepositEnabled = chainDepositEnabled;
162183
162871
  }
@@ -162935,9 +163623,9 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
162935
163623
  */
162936
163624
  await this.loadMarkets();
162937
163625
  const market = this.market(symbol);
162938
- const testOrder = this.safeValue(params, 'test', false);
163626
+ const testOrder = this.safeBool(params, 'test', false);
162939
163627
  params = this.omit(params, 'test');
162940
- const isHf = this.safeValue(params, 'hf', false);
163628
+ const isHf = this.safeBool(params, 'hf', false);
162941
163629
  const [triggerPrice, stopLossPrice, takeProfitPrice] = this.handleTriggerPrices(params);
162942
163630
  const tradeType = this.safeString(params, 'tradeType'); // keep it for backward compatibility
162943
163631
  const isTriggerOrder = (triggerPrice || stopLossPrice || takeProfitPrice);
@@ -163064,7 +163752,7 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
163064
163752
  'symbol': market['id'],
163065
163753
  'orderList': ordersRequests,
163066
163754
  };
163067
- const hf = this.safeValue(params, 'hf', false);
163755
+ const hf = this.safeBool(params, 'hf', false);
163068
163756
  params = this.omit(params, 'hf');
163069
163757
  let response = undefined;
163070
163758
  if (hf) {
@@ -163246,7 +163934,7 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
163246
163934
  const request = {};
163247
163935
  const clientOrderId = this.safeString2(params, 'clientOid', 'clientOrderId');
163248
163936
  const stop = this.safeValue2(params, 'stop', 'trigger', false);
163249
- const hf = this.safeValue(params, 'hf', false);
163937
+ const hf = this.safeBool(params, 'hf', false);
163250
163938
  if (hf) {
163251
163939
  if (symbol === undefined) {
163252
163940
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' cancelOrder() requires a symbol parameter for hf orders');
@@ -163301,8 +163989,8 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
163301
163989
  */
163302
163990
  await this.loadMarkets();
163303
163991
  const request = {};
163304
- const stop = this.safeValue(params, 'stop', false);
163305
- const hf = this.safeValue(params, 'hf', false);
163992
+ const stop = this.safeBool(params, 'stop', false);
163993
+ const hf = this.safeBool(params, 'hf', false);
163306
163994
  params = this.omit(params, ['stop', 'hf']);
163307
163995
  const [marginMode, query] = this.handleMarginModeAndParams('cancelAllOrders', params);
163308
163996
  if (symbol !== undefined) {
@@ -163359,8 +164047,8 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
163359
164047
  await this.loadMarkets();
163360
164048
  let lowercaseStatus = status.toLowerCase();
163361
164049
  const until = this.safeInteger2(params, 'until', 'till');
163362
- const stop = this.safeValue(params, 'stop', false);
163363
- const hf = this.safeValue(params, 'hf', false);
164050
+ const stop = this.safeBool(params, 'stop', false);
164051
+ const hf = this.safeBool(params, 'hf', false);
163364
164052
  params = this.omit(params, ['stop', 'hf', 'till', 'until']);
163365
164053
  const [marginMode, query] = this.handleMarginModeAndParams('fetchOrdersByStatus', params);
163366
164054
  if (lowercaseStatus === 'open') {
@@ -163534,8 +164222,8 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
163534
164222
  await this.loadMarkets();
163535
164223
  const request = {};
163536
164224
  const clientOrderId = this.safeString2(params, 'clientOid', 'clientOrderId');
163537
- const stop = this.safeValue(params, 'stop', false);
163538
- const hf = this.safeValue(params, 'hf', false);
164225
+ const stop = this.safeBool(params, 'stop', false);
164226
+ const hf = this.safeBool(params, 'hf', false);
163539
164227
  let market = undefined;
163540
164228
  if (symbol !== undefined) {
163541
164229
  market = this.market(symbol);
@@ -163712,10 +164400,10 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
163712
164400
  const marketId = this.safeString(order, 'symbol');
163713
164401
  const timestamp = this.safeInteger(order, 'createdAt');
163714
164402
  const feeCurrencyId = this.safeString(order, 'feeCurrency');
163715
- const cancelExist = this.safeValue(order, 'cancelExist', false);
164403
+ const cancelExist = this.safeBool(order, 'cancelExist', false);
163716
164404
  const responseStop = this.safeString(order, 'stop');
163717
164405
  const stop = responseStop !== undefined;
163718
- const stopTriggered = this.safeValue(order, 'stopTriggered', false);
164406
+ const stopTriggered = this.safeBool(order, 'stopTriggered', false);
163719
164407
  const isActive = this.safeValue2(order, 'isActive', 'active');
163720
164408
  const responseStatus = this.safeString(order, 'status');
163721
164409
  let status = undefined;
@@ -163812,7 +164500,7 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
163812
164500
  return await this.fetchPaginatedCallDynamic('fetchMyTrades', symbol, since, limit, params);
163813
164501
  }
163814
164502
  let request = {};
163815
- const hf = this.safeValue(params, 'hf', false);
164503
+ const hf = this.safeBool(params, 'hf', false);
163816
164504
  if (hf && symbol === undefined) {
163817
164505
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' fetchMyTrades() requires a symbol parameter for hf orders');
163818
164506
  }
@@ -164491,7 +165179,7 @@ class kucoin extends _abstract_kucoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
164491
165179
  const accountsByType = this.safeValue(this.options, 'accountsByType');
164492
165180
  let type = this.safeString(accountsByType, requestedType, requestedType);
164493
165181
  params = this.omit(params, 'type');
164494
- const isHf = this.safeValue(params, 'hf', false);
165182
+ const isHf = this.safeBool(params, 'hf', false);
164495
165183
  if (isHf) {
164496
165184
  type = 'trade_hf';
164497
165185
  }
@@ -166646,7 +167334,7 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
166646
167334
  */
166647
167335
  await this.loadMarkets();
166648
167336
  const market = this.market(symbol);
166649
- const testOrder = this.safeValue(params, 'test', false);
167337
+ const testOrder = this.safeBool(params, 'test', false);
166650
167338
  params = this.omit(params, 'test');
166651
167339
  const orderRequest = this.createContractOrderRequest(symbol, type, side, amount, price, params);
166652
167340
  let response = undefined;
@@ -167309,7 +167997,7 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
167309
167997
  // const average = Precise.stringDiv (cost, Precise.stringMul (filled, market['contractSize']));
167310
167998
  // bool
167311
167999
  const isActive = this.safeValue(order, 'isActive');
167312
- const cancelExist = this.safeValue(order, 'cancelExist', false);
168000
+ const cancelExist = this.safeBool(order, 'cancelExist', false);
167313
168001
  let status = undefined;
167314
168002
  if (isActive !== undefined) {
167315
168003
  status = isActive ? 'open' : 'closed';
@@ -168033,7 +168721,7 @@ class kucoinfutures extends _abstract_kucoinfutures_js__WEBPACK_IMPORTED_MODULE_
168033
168721
  await this.loadMarkets();
168034
168722
  const market = this.market(symbol);
168035
168723
  let clientOrderId = this.safeString(params, 'clientOrderId');
168036
- const testOrder = this.safeValue(params, 'test', false);
168724
+ const testOrder = this.safeBool(params, 'test', false);
168037
168725
  params = this.omit(params, ['test', 'clientOrderId']);
168038
168726
  if (clientOrderId === undefined) {
168039
168727
  clientOrderId = this.numberToString(this.nonce());
@@ -173080,7 +173768,7 @@ class lbank extends _abstract_lbank_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
173080
173768
  await this.loadMarkets();
173081
173769
  const market = this.market(symbol);
173082
173770
  const clientOrderId = this.safeString2(params, 'custom_id', 'clientOrderId');
173083
- const postOnly = this.safeValue(params, 'postOnly', false);
173771
+ const postOnly = this.safeBool(params, 'postOnly', false);
173084
173772
  const timeInForce = this.safeStringUpper(params, 'timeInForce');
173085
173773
  params = this.omit(params, ['custom_id', 'clientOrderId', 'timeInForce', 'postOnly']);
173086
173774
  const request = {
@@ -178938,8 +179626,8 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
178938
179626
  const chain = chains[j];
178939
179627
  const networkId = this.safeString(chain, 'network');
178940
179628
  const network = this.safeNetwork(networkId);
178941
- const isDepositEnabled = this.safeValue(chain, 'depositEnable', false);
178942
- const isWithdrawEnabled = this.safeValue(chain, 'withdrawEnable', false);
179629
+ const isDepositEnabled = this.safeBool(chain, 'depositEnable', false);
179630
+ const isWithdrawEnabled = this.safeBool(chain, 'withdrawEnable', false);
178943
179631
  const active = (isDepositEnabled && isWithdrawEnabled);
178944
179632
  currencyActive = active || currencyActive;
178945
179633
  const withdrawMin = this.safeString(chain, 'withdrawMin');
@@ -180198,7 +180886,7 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
180198
180886
  await this.loadMarkets();
180199
180887
  const symbol = market['symbol'];
180200
180888
  const unavailableContracts = this.safeValue(this.options, 'unavailableContracts', {});
180201
- const isContractUnavaiable = this.safeValue(unavailableContracts, symbol, false);
180889
+ const isContractUnavaiable = this.safeBool(unavailableContracts, symbol, false);
180202
180890
  if (isContractUnavaiable) {
180203
180891
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported(this.id + ' createSwapOrder() does not support yet this symbol:' + symbol);
180204
180892
  }
@@ -180266,7 +180954,7 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
180266
180954
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ArgumentsRequired(this.id + ' createSwapOrder() requires a leverage parameter for isolated margin orders');
180267
180955
  }
180268
180956
  }
180269
- const reduceOnly = this.safeValue(params, 'reduceOnly', false);
180957
+ const reduceOnly = this.safeBool(params, 'reduceOnly', false);
180270
180958
  if (reduceOnly) {
180271
180959
  request['side'] = (side === 'buy') ? 2 : 4;
180272
180960
  }
@@ -181602,7 +182290,7 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
181602
182290
  const request = {};
181603
182291
  [marketType, params] = this.handleMarketTypeAndParams('fetchBalance', undefined, params);
181604
182292
  const marginMode = this.safeString(params, 'marginMode');
181605
- const isMargin = this.safeValue(params, 'margin', false);
182293
+ const isMargin = this.safeBool(params, 'margin', false);
181606
182294
  params = this.omit(params, ['margin', 'marginMode']);
181607
182295
  let response = undefined;
181608
182296
  if ((marginMode !== undefined) || (isMargin) || (marketType === 'margin')) {
@@ -183280,7 +183968,7 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
183280
183968
  * @returns {Array} the marginMode in lowercase
183281
183969
  */
183282
183970
  const defaultType = this.safeString(this.options, 'defaultType');
183283
- const isMargin = this.safeValue(params, 'margin', false);
183971
+ const isMargin = this.safeBool(params, 'margin', false);
183284
183972
  let marginMode = undefined;
183285
183973
  [marginMode, params] = super.handleMarginModeAndParams(methodName, params, defaultValue);
183286
183974
  if ((defaultType === 'margin') || (isMargin === true)) {
@@ -183372,7 +184060,7 @@ class mexc extends _abstract_mexc_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
183372
184060
  // {"code":10216,"msg":"No available deposit address"}
183373
184061
  // {"success":true, "code":0, "data":1634095541710}
183374
184062
  //
183375
- const success = this.safeValue(response, 'success', false); // v1
184063
+ const success = this.safeBool(response, 'success', false); // v1
183376
184064
  if (success === true) {
183377
184065
  return undefined;
183378
184066
  }
@@ -187024,7 +187712,7 @@ class novadax extends _abstract_novadax_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
187024
187712
  //
187025
187713
  const transfer = this.parseTransfer(response, currency);
187026
187714
  const transferOptions = this.safeValue(this.options, 'transfer', {});
187027
- const fillResponseFromRequest = this.safeValue(transferOptions, 'fillResponseFromRequest', true);
187715
+ const fillResponseFromRequest = this.safeBool(transferOptions, 'fillResponseFromRequest', true);
187028
187716
  if (fillResponseFromRequest) {
187029
187717
  transfer['fromAccount'] = fromAccount;
187030
187718
  transfer['toAccount'] = toAccount;
@@ -189263,7 +189951,7 @@ class okcoin extends _abstract_okcoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
189263
189951
  const symbol = market['symbol'];
189264
189952
  const last = this.safeString(ticker, 'last');
189265
189953
  const open = this.safeString(ticker, 'open24h');
189266
- const spot = this.safeValue(market, 'spot', false);
189954
+ const spot = this.safeBool(market, 'spot', false);
189267
189955
  const quoteVolume = spot ? this.safeString(ticker, 'volCcy24h') : undefined;
189268
189956
  const baseVolume = this.safeString(ticker, 'vol24h');
189269
189957
  const high = this.safeString(ticker, 'high24h');
@@ -189807,7 +190495,7 @@ class okcoin extends _abstract_okcoin_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
189807
190495
  }
189808
190496
  else {
189809
190497
  marginMode = defaultMarginMode;
189810
- margin = this.safeValue(params, 'margin', false);
190498
+ margin = this.safeBool(params, 'margin', false);
189811
190499
  }
189812
190500
  if (margin) {
189813
190501
  const defaultCurrency = (side === 'buy') ? market['quote'] : market['base'];
@@ -193672,7 +194360,8 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
193672
194360
  if (since < historyBorder) {
193673
194361
  defaultType = 'HistoryCandles';
193674
194362
  }
193675
- request['before'] = since;
194363
+ const startTime = Math.max(since - 1, 0);
194364
+ request['before'] = startTime;
193676
194365
  request['after'] = this.sum(since, durationInMilliseconds * limit);
193677
194366
  }
193678
194367
  const until = this.safeInteger(params, 'until');
@@ -194637,7 +195326,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
194637
195326
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' cancelOrder() requires a symbol argument');
194638
195327
  }
194639
195328
  const stop = this.safeValue2(params, 'stop', 'trigger');
194640
- const trailing = this.safeValue(params, 'trailing', false);
195329
+ const trailing = this.safeBool(params, 'trailing', false);
194641
195330
  if (stop || trailing) {
194642
195331
  const orderInner = await this.cancelOrders([id], symbol, params);
194643
195332
  return this.safeValue(orderInner, 0);
@@ -194705,7 +195394,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
194705
195394
  const clientOrderIds = this.parseIds(this.safeValue2(params, 'clOrdId', 'clientOrderId'));
194706
195395
  const algoIds = this.parseIds(this.safeValue(params, 'algoId'));
194707
195396
  const stop = this.safeValue2(params, 'stop', 'trigger');
194708
- const trailing = this.safeValue(params, 'trailing', false);
195397
+ const trailing = this.safeBool(params, 'trailing', false);
194709
195398
  if (stop || trailing) {
194710
195399
  method = 'privatePostTradeCancelAlgos';
194711
195400
  }
@@ -195204,7 +195893,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
195204
195893
  let method = this.safeString(params, 'method', defaultMethod);
195205
195894
  const ordType = this.safeString(params, 'ordType');
195206
195895
  const stop = this.safeValue2(params, 'stop', 'trigger');
195207
- const trailing = this.safeValue(params, 'trailing', false);
195896
+ const trailing = this.safeBool(params, 'trailing', false);
195208
195897
  if (trailing || stop || (ordType in algoOrderTypes)) {
195209
195898
  method = 'privateGetTradeOrdersAlgoPending';
195210
195899
  }
@@ -195373,7 +196062,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
195373
196062
  let method = this.safeString(params, 'method', defaultMethod);
195374
196063
  const ordType = this.safeString(params, 'ordType');
195375
196064
  const stop = this.safeValue2(params, 'stop', 'trigger');
195376
- const trailing = this.safeValue(params, 'trailing', false);
196065
+ const trailing = this.safeBool(params, 'trailing', false);
195377
196066
  if (trailing) {
195378
196067
  method = 'privateGetTradeOrdersAlgoHistory';
195379
196068
  request['ordType'] = 'move_order_stop';
@@ -195567,7 +196256,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
195567
196256
  let method = this.safeString(params, 'method', defaultMethod);
195568
196257
  const ordType = this.safeString(params, 'ordType');
195569
196258
  const stop = this.safeValue2(params, 'stop', 'trigger');
195570
- const trailing = this.safeValue(params, 'trailing', false);
196259
+ const trailing = this.safeBool(params, 'trailing', false);
195571
196260
  if (trailing || stop || (ordType in algoOrderTypes)) {
195572
196261
  method = 'privateGetTradeOrdersAlgoHistory';
195573
196262
  request['state'] = 'effective';
@@ -200949,6 +201638,7 @@ class p2b extends _abstract_p2b_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
200949
201638
  'countries': ['LT'],
200950
201639
  'rateLimit': 100,
200951
201640
  'version': 'v2',
201641
+ 'pro': true,
200952
201642
  'has': {
200953
201643
  'CORS': undefined,
200954
201644
  'spot': true,
@@ -205207,7 +205897,7 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
205207
205897
  });
205208
205898
  }
205209
205899
  parseOrder(order, market = undefined) {
205210
- const isSwap = this.safeValue(market, 'swap', false);
205900
+ const isSwap = this.safeBool(market, 'swap', false);
205211
205901
  const hasPnl = ('closedPnl' in order);
205212
205902
  if (isSwap || hasPnl) {
205213
205903
  return this.parseSwapOrder(order, market);
@@ -207119,7 +207809,7 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
207119
207809
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + ' setLeverage() leverage should be between -100 and 100');
207120
207810
  }
207121
207811
  await this.loadMarkets();
207122
- const isHedged = this.safeValue(params, 'hedged', false);
207812
+ const isHedged = this.safeBool(params, 'hedged', false);
207123
207813
  const longLeverageRr = this.safeInteger(params, 'longLeverageRr');
207124
207814
  const shortLeverageRr = this.safeInteger(params, 'shortLeverageRr');
207125
207815
  const market = this.market(symbol);
@@ -207215,7 +207905,7 @@ class phemex extends _abstract_phemex_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
207215
207905
  transfer = this.parseTransfer(response);
207216
207906
  }
207217
207907
  const transferOptions = this.safeValue(this.options, 'transfer', {});
207218
- const fillResponseFromRequest = this.safeValue(transferOptions, 'fillResponseFromRequest', true);
207908
+ const fillResponseFromRequest = this.safeBool(transferOptions, 'fillResponseFromRequest', true);
207219
207909
  if (fillResponseFromRequest) {
207220
207910
  if (transfer['fromAccount'] === undefined) {
207221
207911
  transfer['fromAccount'] = fromAccount;
@@ -210766,7 +211456,7 @@ class poloniexfutures extends _abstract_poloniexfutures_js__WEBPACK_IMPORTED_MOD
210766
211456
  request['timeInForce'] = timeInForce;
210767
211457
  }
210768
211458
  }
210769
- const postOnly = this.safeValue(params, 'postOnly', false);
211459
+ const postOnly = this.safeBool(params, 'postOnly', false);
210770
211460
  const hidden = this.safeValue(params, 'hidden');
210771
211461
  if (postOnly && (hidden !== undefined)) {
210772
211462
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + ' createOrder() does not support the postOnly parameter together with a hidden parameter');
@@ -211457,8 +212147,8 @@ class poloniexfutures extends _abstract_poloniexfutures_js__WEBPACK_IMPORTED_MOD
211457
212147
  // precision reported by their api is 8 d.p.
211458
212148
  // const average = Precise.stringDiv (rawCost, Precise.stringMul (filled, market['contractSize']));
211459
212149
  // bool
211460
- const isActive = this.safeValue(order, 'isActive', false);
211461
- const cancelExist = this.safeValue(order, 'cancelExist', false);
212150
+ const isActive = this.safeBool(order, 'isActive', false);
212151
+ const cancelExist = this.safeBool(order, 'cancelExist', false);
211462
212152
  const status = isActive ? 'open' : 'closed';
211463
212153
  let id = this.safeString(order, 'id');
211464
212154
  if ('cancelledOrderIds' in order) {
@@ -211932,7 +212622,7 @@ class alpaca extends _alpaca_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
211932
212622
  const symbol = this.safeSymbol(marketId);
211933
212623
  const datetime = this.safeString(message, 't');
211934
212624
  const timestamp = this.parse8601(datetime);
211935
- const isSnapshot = this.safeValue(message, 'r', false);
212625
+ const isSnapshot = this.safeBool(message, 'r', false);
211936
212626
  let orderbook = this.safeValue(this.orderbooks, symbol);
211937
212627
  if (orderbook === undefined) {
211938
212628
  orderbook = this.orderBook();
@@ -214716,7 +215406,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
214716
215406
  return undefined;
214717
215407
  }
214718
215408
  const options = this.safeValue(this.options, 'watchBalance');
214719
- const fetchBalanceSnapshot = this.safeValue(options, 'fetchBalanceSnapshot', false);
215409
+ const fetchBalanceSnapshot = this.safeBool(options, 'fetchBalanceSnapshot', false);
214720
215410
  if (fetchBalanceSnapshot) {
214721
215411
  const messageHash = type + ':fetchBalanceSnapshot';
214722
215412
  if (!(messageHash in client.futures)) {
@@ -214842,8 +215532,8 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
214842
215532
  this.setBalanceCache(client, type);
214843
215533
  this.setPositionsCache(client, type);
214844
215534
  const options = this.safeValue(this.options, 'watchBalance');
214845
- const fetchBalanceSnapshot = this.safeValue(options, 'fetchBalanceSnapshot', false);
214846
- const awaitBalanceSnapshot = this.safeValue(options, 'awaitBalanceSnapshot', true);
215535
+ const fetchBalanceSnapshot = this.safeBool(options, 'fetchBalanceSnapshot', false);
215536
+ const awaitBalanceSnapshot = this.safeBool(options, 'awaitBalanceSnapshot', true);
214847
215537
  if (fetchBalanceSnapshot && awaitBalanceSnapshot) {
214848
215538
  await client.future(type + ':fetchBalanceSnapshot');
214849
215539
  }
@@ -215004,7 +215694,7 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
215004
215694
  let returnRateLimits = false;
215005
215695
  [returnRateLimits, params] = this.handleOptionAndParams(params, 'createOrderWs', 'returnRateLimits', false);
215006
215696
  payload['returnRateLimits'] = returnRateLimits;
215007
- const test = this.safeValue(params, 'test', false);
215697
+ const test = this.safeBool(params, 'test', false);
215008
215698
  params = this.omit(params, 'test');
215009
215699
  const message = {
215010
215700
  'id': messageHash,
@@ -220288,7 +220978,7 @@ class bitget extends _bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
220288
220978
  await this.loadMarkets();
220289
220979
  let market = undefined;
220290
220980
  let marketId = undefined;
220291
- const isStop = this.safeValue(params, 'stop', false);
220981
+ const isStop = this.safeBool(params, 'stop', false);
220292
220982
  params = this.omit(params, 'stop');
220293
220983
  let messageHash = (isStop) ? 'triggerOrder' : 'order';
220294
220984
  let subscriptionHash = 'order:trades';
@@ -221282,7 +221972,7 @@ class bitmart extends _bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
221282
221972
  return;
221283
221973
  }
221284
221974
  const options = this.safeValue(this.options, 'watchBalance');
221285
- const snapshot = this.safeValue(options, 'fetchBalanceSnapshot', true);
221975
+ const snapshot = this.safeBool(options, 'fetchBalanceSnapshot', true);
221286
221976
  if (snapshot) {
221287
221977
  const messageHash = type + ':' + 'fetchBalanceSnapshot';
221288
221978
  if (!(messageHash in client.futures)) {
@@ -222654,7 +223344,7 @@ class bitmex extends _bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
222654
223344
  'watchOrders': true,
222655
223345
  'watchPostions': true,
222656
223346
  'watchTicker': true,
222657
- 'watchTickers': false,
223347
+ 'watchTickers': true,
222658
223348
  'watchTrades': true,
222659
223349
  'watchTradesForSymbols': true,
222660
223350
  },
@@ -222706,6 +223396,46 @@ class bitmex extends _bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
222706
223396
  };
222707
223397
  return await this.watch(url, messageHash, this.extend(request, params), messageHash);
222708
223398
  }
223399
+ async watchTickers(symbols = undefined, params = {}) {
223400
+ /**
223401
+ * @method
223402
+ * @name bitmex#watchTickers
223403
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
223404
+ * @param {string[]} symbols unified symbol of the market to fetch the ticker for
223405
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
223406
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
223407
+ */
223408
+ await this.loadMarkets();
223409
+ symbols = this.marketSymbols(symbols, undefined, true);
223410
+ const name = 'instrument';
223411
+ const url = this.urls['api']['ws'];
223412
+ const messageHashes = [];
223413
+ if (symbols !== undefined) {
223414
+ for (let i = 0; i < symbols.length; i++) {
223415
+ const symbol = symbols[i];
223416
+ const market = this.market(symbol);
223417
+ const hash = name + ':' + market['id'];
223418
+ messageHashes.push(hash);
223419
+ }
223420
+ }
223421
+ else {
223422
+ messageHashes.push(name);
223423
+ }
223424
+ const request = {
223425
+ 'op': 'subscribe',
223426
+ 'args': messageHashes,
223427
+ };
223428
+ const ticker = await this.watchMultiple(url, messageHashes, this.extend(request, params), messageHashes);
223429
+ if (this.newUpdates) {
223430
+ if (symbols === undefined) {
223431
+ return ticker;
223432
+ }
223433
+ const result = {};
223434
+ result[ticker['symbol']] = ticker;
223435
+ return result;
223436
+ }
223437
+ return this.filterByArray(this.tickers, 'symbol', symbols);
223438
+ }
222709
223439
  handleTicker(client, message) {
222710
223440
  //
222711
223441
  // {
@@ -222934,19 +223664,22 @@ class bitmex extends _bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
222934
223664
  // }
222935
223665
  //
222936
223666
  const table = this.safeString(message, 'table');
222937
- const data = this.safeValue(message, 'data', []);
223667
+ const data = this.safeList(message, 'data', []);
223668
+ const tickers = {};
222938
223669
  for (let i = 0; i < data.length; i++) {
222939
223670
  const update = data[i];
222940
- const marketId = this.safeValue(update, 'symbol');
223671
+ const marketId = this.safeString(update, 'symbol');
222941
223672
  const market = this.safeMarket(marketId);
222942
223673
  const symbol = market['symbol'];
222943
223674
  const messageHash = table + ':' + marketId;
222944
- let ticker = this.safeValue(this.tickers, symbol, {});
222945
- const info = this.safeValue(ticker, 'info', {});
223675
+ let ticker = this.safeDict(this.tickers, symbol, {});
223676
+ const info = this.safeDict(ticker, 'info', {});
222946
223677
  ticker = this.parseTicker(this.extend(info, update), market);
223678
+ tickers[symbol] = ticker;
222947
223679
  this.tickers[symbol] = ticker;
222948
223680
  client.resolve(ticker, messageHash);
222949
223681
  }
223682
+ client.resolve(tickers, 'instrument');
222950
223683
  return message;
222951
223684
  }
222952
223685
  async watchBalance(params = {}) {
@@ -223210,7 +223943,7 @@ class bitmex extends _bitmex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
223210
223943
  return future;
223211
223944
  }
223212
223945
  handleAuthenticationMessage(client, message) {
223213
- const authenticated = this.safeValue(message, 'success', false);
223946
+ const authenticated = this.safeBool(message, 'success', false);
223214
223947
  const messageHash = 'authenticated';
223215
223948
  if (authenticated) {
223216
223949
  // we resolve the future here permanently so authentication only happens once
@@ -226980,7 +227713,7 @@ class bitvavo extends _bitvavo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
226980
227713
  // }
226981
227714
  //
226982
227715
  const messageHash = 'authenticated';
226983
- const authenticated = this.safeValue(message, 'authenticated', false);
227716
+ const authenticated = this.safeBool(message, 'authenticated', false);
226984
227717
  if (authenticated) {
226985
227718
  // we resolve the future here permanently so authentication only happens once
226986
227719
  client.resolve(message, messageHash);
@@ -229258,8 +229991,8 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
229258
229991
  let subType = undefined;
229259
229992
  [subType, params] = this.handleSubTypeAndParams('watchBalance', undefined, params);
229260
229993
  const unified = await this.isUnifiedEnabled();
229261
- const isUnifiedMargin = this.safeValue(unified, 0, false);
229262
- const isUnifiedAccount = this.safeValue(unified, 1, false);
229994
+ const isUnifiedMargin = this.safeBool(unified, 0, false);
229995
+ const isUnifiedAccount = this.safeBool(unified, 1, false);
229263
229996
  const url = this.getUrlByMarketType(undefined, true, method, params);
229264
229997
  await this.authenticate(url);
229265
229998
  const topicByMarket = {
@@ -230486,7 +231219,7 @@ class cex extends _cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
230486
231219
  order = this.parseWsOrderUpdate(data, market);
230487
231220
  }
230488
231221
  order['remaining'] = remains;
230489
- const canceled = this.safeValue(data, 'cancel', false);
231222
+ const canceled = this.safeBool(data, 'cancel', false);
230490
231223
  if (canceled) {
230491
231224
  order['status'] = 'canceled';
230492
231225
  }
@@ -230575,7 +231308,7 @@ class cex extends _cex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
230575
231308
  if (isTransaction) {
230576
231309
  timestamp = this.parse8601(time);
230577
231310
  }
230578
- const canceled = this.safeValue(order, 'cancel', false);
231311
+ const canceled = this.safeBool(order, 'cancel', false);
230579
231312
  let status = 'open';
230580
231313
  if (canceled) {
230581
231314
  status = 'canceled';
@@ -245531,7 +246264,7 @@ class independentreserve extends _independentreserve_js__WEBPACK_IMPORTED_MODULE
245531
246264
  const orderBook = this.safeValue(message, 'Data', {});
245532
246265
  const messageHash = 'orderbook:' + symbol + ':' + depth;
245533
246266
  const subscription = this.safeValue(client.subscriptions, messageHash, {});
245534
- const receivedSnapshot = this.safeValue(subscription, 'receivedSnapshot', false);
246267
+ const receivedSnapshot = this.safeBool(subscription, 'receivedSnapshot', false);
245535
246268
  const timestamp = this.safeInteger(message, 'Time');
245536
246269
  let storedOrderBook = this.safeValue(this.orderbooks, symbol);
245537
246270
  if (storedOrderBook === undefined) {
@@ -255183,7 +255916,7 @@ class okx extends _okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
255183
255916
  // By default, receive order updates from any instrument type
255184
255917
  let type = undefined;
255185
255918
  [type, params] = this.handleOptionAndParams(params, 'watchMyTrades', 'type', 'ANY');
255186
- const isStop = this.safeValue(params, 'stop', false);
255919
+ const isStop = this.safeBool(params, 'stop', false);
255187
255920
  params = this.omit(params, ['stop']);
255188
255921
  await this.loadMarkets();
255189
255922
  await this.authenticate({ 'access': isStop ? 'business' : 'private' });
@@ -257010,7 +257743,7 @@ class onetrading extends _onetrading_js__WEBPACK_IMPORTED_MODULE_0__/* ["default
257010
257743
  subscription = this.safeValue(client.subscriptions, subscriptionHash);
257011
257744
  if (subscription !== undefined) {
257012
257745
  const ohlcvMarket = this.safeValue(subscription, marketId, {});
257013
- const marketSubscribed = this.safeValue(ohlcvMarket, timeframe, false);
257746
+ const marketSubscribed = this.safeBool(ohlcvMarket, timeframe, false);
257014
257747
  if (!marketSubscribed) {
257015
257748
  type = 'UPDATE_SUBSCRIPTION';
257016
257749
  client.subscriptions[subscriptionHash] = undefined;
@@ -257251,7 +257984,7 @@ class onetrading extends _onetrading_js__WEBPACK_IMPORTED_MODULE_0__/* ["default
257251
257984
  if (subscription !== undefined) {
257252
257985
  for (let i = 0; i < marketIds.length; i++) {
257253
257986
  const marketId = marketIds[i];
257254
- const marketSubscribed = this.safeValue(subscription, marketId, false);
257987
+ const marketSubscribed = this.safeBool(subscription, marketId, false);
257255
257988
  if (!marketSubscribed) {
257256
257989
  type = 'UPDATE_SUBSCRIPTION';
257257
257990
  client.subscriptions[subscriptionHash] = undefined;
@@ -257289,6 +258022,446 @@ class onetrading extends _onetrading_js__WEBPACK_IMPORTED_MODULE_0__/* ["default
257289
258022
  }
257290
258023
 
257291
258024
 
258025
+ /***/ }),
258026
+
258027
+ /***/ 8516:
258028
+ /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
258029
+
258030
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
258031
+ /* harmony export */ Z: () => (/* binding */ p2b)
258032
+ /* harmony export */ });
258033
+ /* harmony import */ var _p2b_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2466);
258034
+ /* harmony import */ var _base_errors_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6689);
258035
+ /* harmony import */ var _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3020);
258036
+ // ---------------------------------------------------------------------------
258037
+
258038
+
258039
+
258040
+ // ---------------------------------------------------------------------------
258041
+ class p2b extends _p2b_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
258042
+ describe() {
258043
+ return this.deepExtend(super.describe(), {
258044
+ 'has': {
258045
+ 'ws': true,
258046
+ 'cancelAllOrdersWs': false,
258047
+ 'cancelOrdersWs': false,
258048
+ 'cancelOrderWs': false,
258049
+ 'createOrderWs': false,
258050
+ 'editOrderWs': false,
258051
+ 'fetchBalanceWs': false,
258052
+ 'fetchOpenOrdersWs': false,
258053
+ 'fetchOrderWs': false,
258054
+ 'fetchTradesWs': false,
258055
+ 'watchBalance': false,
258056
+ 'watchMyTrades': false,
258057
+ 'watchOHLCV': true,
258058
+ 'watchOrderBook': true,
258059
+ 'watchOrders': false,
258060
+ // 'watchStatus': true,
258061
+ 'watchTicker': true,
258062
+ 'watchTickers': false,
258063
+ 'watchTrades': true,
258064
+ },
258065
+ 'urls': {
258066
+ 'api': {
258067
+ 'ws': 'wss://apiws.p2pb2b.com/',
258068
+ },
258069
+ },
258070
+ 'options': {
258071
+ 'OHLCVLimit': 1000,
258072
+ 'tradesLimit': 1000,
258073
+ 'timeframes': {
258074
+ '15m': 900,
258075
+ '30m': 1800,
258076
+ '1h': 3600,
258077
+ '1d': 86400,
258078
+ },
258079
+ 'watchTicker': {
258080
+ 'name': 'state', // or 'price'
258081
+ },
258082
+ 'watchTickers': {
258083
+ 'name': 'state', // or 'price'
258084
+ },
258085
+ },
258086
+ 'streaming': {
258087
+ 'ping': this.ping,
258088
+ },
258089
+ });
258090
+ }
258091
+ async subscribe(name, messageHash, request, params = {}) {
258092
+ /**
258093
+ * @ignore
258094
+ * @method
258095
+ * @description Connects to a websocket channel
258096
+ * @param {string} name name of the channel
258097
+ * @param {string} messageHash string to look up in handler
258098
+ * @param {string[]|float[]} request endpoint parameters
258099
+ * @param {object} [params] extra parameters specific to the p2b api
258100
+ * @returns {object} data from the websocket stream
258101
+ */
258102
+ const url = this.urls['api']['ws'];
258103
+ const subscribe = {
258104
+ 'method': name,
258105
+ 'params': request,
258106
+ 'id': this.milliseconds(),
258107
+ };
258108
+ const query = this.extend(subscribe, params);
258109
+ return await this.watch(url, messageHash, query, messageHash);
258110
+ }
258111
+ async watchOHLCV(symbol, timeframe = '15m', since = undefined, limit = undefined, params = {}) {
258112
+ /**
258113
+ * @method
258114
+ * @name p2b#watchOHLCV
258115
+ * @description watches historical candlestick data containing the open, high, low, and close price, and the volume of a market. Can only subscribe to one timeframe at a time for each symbol
258116
+ * @see https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#kline-candlestick
258117
+ * @param {string} symbol unified symbol of the market to fetch OHLCV data for
258118
+ * @param {string} timeframe 15m, 30m, 1h or 1d
258119
+ * @param {int} [since] timestamp in ms of the earliest candle to fetch
258120
+ * @param {int} [limit] the maximum amount of candles to fetch
258121
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
258122
+ * @returns {int[][]} A list of candles ordered as timestamp, open, high, low, close, volume
258123
+ */
258124
+ await this.loadMarkets();
258125
+ const timeframes = this.safeValue(this.options, 'timeframes', {});
258126
+ const channel = this.safeInteger(timeframes, timeframe);
258127
+ if (channel === undefined) {
258128
+ throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.BadRequest(this.id + ' watchOHLCV cannot take a timeframe of ' + timeframe);
258129
+ }
258130
+ const market = this.market(symbol);
258131
+ const request = [
258132
+ market['id'],
258133
+ channel,
258134
+ ];
258135
+ const messageHash = 'kline::' + market['symbol'];
258136
+ const ohlcv = await this.subscribe('kline.subscribe', messageHash, request, params);
258137
+ if (this.newUpdates) {
258138
+ limit = ohlcv.getLimit(symbol, limit);
258139
+ }
258140
+ return this.filterBySinceLimit(ohlcv, since, limit, 0, true);
258141
+ }
258142
+ async watchTicker(symbol, params = {}) {
258143
+ /**
258144
+ * @method
258145
+ * @name p2b#watchTicker
258146
+ * @description watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
258147
+ * @see https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#last-price
258148
+ * @see https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#market-status
258149
+ * @param {string} symbol unified symbol of the market to fetch the ticker for
258150
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
258151
+ * @param {object} [params.method] 'state' (default) or 'price'
258152
+ * @returns {object} a [ticker structure]{@link https://docs.ccxt.com/#/?id=ticker-structure}
258153
+ */
258154
+ await this.loadMarkets();
258155
+ const watchTickerOptions = this.safeValue(this.options, 'watchTicker');
258156
+ let name = this.safeString(watchTickerOptions, 'name', 'state'); // or price
258157
+ [name, params] = this.handleOptionAndParams(params, 'method', 'name', name);
258158
+ const market = this.market(symbol);
258159
+ const request = [
258160
+ market['id'],
258161
+ ];
258162
+ const messageHash = name + '::' + market['symbol'];
258163
+ return await this.subscribe(name + '.subscribe', messageHash, request, params);
258164
+ }
258165
+ async watchTrades(symbol, since = undefined, limit = undefined, params = {}) {
258166
+ /**
258167
+ * @method
258168
+ * @name p2b#watchTrades
258169
+ * @description get the list of most recent trades for a particular symbol
258170
+ * @see https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#deals
258171
+ * @param {string} symbol unified symbol of the market to fetch trades for
258172
+ * @param {int} [since] timestamp in ms of the earliest trade to fetch
258173
+ * @param {int} [limit] the maximum amount of trades to fetch
258174
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
258175
+ * @returns {object[]} a list of [trade structures]{@link https://docs.ccxt.com/#/?id=public-trades}
258176
+ */
258177
+ await this.loadMarkets();
258178
+ const market = this.market(symbol);
258179
+ const request = [
258180
+ market['id'],
258181
+ ];
258182
+ const messageHash = 'deals::' + market['symbol'];
258183
+ const trades = await this.subscribe('deals.subscribe', messageHash, request, params);
258184
+ if (this.newUpdates) {
258185
+ limit = trades.getLimit(symbol, limit);
258186
+ }
258187
+ return this.filterBySinceLimit(trades, since, limit, 'timestamp', true);
258188
+ }
258189
+ async watchOrderBook(symbol, limit = undefined, params = {}) {
258190
+ /**
258191
+ * @method
258192
+ * @name p2b#watchOrderBook
258193
+ * @description watches information on open orders with bid (buy) and ask (sell) prices, volumes and other data
258194
+ * @see https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#depth-of-market
258195
+ * @param {string} symbol unified symbol of the market to fetch the order book for
258196
+ * @param {int} [limit] 1-100, default=100
258197
+ * @param {object} [params] extra parameters specific to the exchange API endpoint
258198
+ * @param {float} [params.interval] 0, 0.00000001, 0.0000001, 0.000001, 0.00001, 0.0001, 0.001, 0.01, 0.1, interval of precision for order, default=0.001
258199
+ * @returns {object} A dictionary of [order book structures]{@link https://docs.ccxt.com/#/?id=order-book-structure} indexed by market symbols
258200
+ */
258201
+ await this.loadMarkets();
258202
+ const market = this.market(symbol);
258203
+ const name = 'depth.subscribe';
258204
+ const messageHash = 'orderbook::' + market['symbol'];
258205
+ const interval = this.safeString(params, 'interval', '0.001');
258206
+ if (limit === undefined) {
258207
+ limit = 100;
258208
+ }
258209
+ const request = [
258210
+ market['id'],
258211
+ limit,
258212
+ interval,
258213
+ ];
258214
+ const orderbook = await this.subscribe(name, messageHash, request, params);
258215
+ return orderbook.limit();
258216
+ }
258217
+ handleOHLCV(client, message) {
258218
+ //
258219
+ // {
258220
+ // "method": "kline.update",
258221
+ // "params": [
258222
+ // [
258223
+ // 1657648800, // Kline start time
258224
+ // "0.054146", // Kline open price
258225
+ // "0.053938", // Kline close price (current price)
258226
+ // "0.054146", // Kline high price
258227
+ // "0.053911", // Kline low price
258228
+ // "596.4674", // Volume for stock currency
258229
+ // "32.2298758767", // Volume for money currency
258230
+ // "ETH_BTC" // Market
258231
+ // ]
258232
+ // ],
258233
+ // "id": null
258234
+ // }
258235
+ //
258236
+ let data = this.safeList(message, 'params');
258237
+ data = this.safeList(data, 0);
258238
+ const method = this.safeString(message, 'method');
258239
+ const splitMethod = method.split('.');
258240
+ const channel = this.safeString(splitMethod, 0);
258241
+ const marketId = this.safeString(data, 7);
258242
+ const market = this.safeMarket(marketId);
258243
+ const timeframes = this.safeDict(this.options, 'timeframes', {});
258244
+ const timeframe = this.findTimeframe(channel, timeframes);
258245
+ const symbol = this.safeString(market, 'symbol');
258246
+ const messageHash = channel + '::' + symbol;
258247
+ const parsed = this.parseOHLCV(data, market);
258248
+ this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
258249
+ let stored = this.safeValue(this.ohlcvs[symbol], timeframe);
258250
+ if (symbol !== undefined) {
258251
+ if (stored === undefined) {
258252
+ const limit = this.safeInteger(this.options, 'OHLCVLimit', 1000);
258253
+ stored = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__/* .ArrayCacheByTimestamp */ .Py(limit);
258254
+ this.ohlcvs[symbol][timeframe] = stored;
258255
+ }
258256
+ stored.append(parsed);
258257
+ client.resolve(stored, messageHash);
258258
+ }
258259
+ return message;
258260
+ }
258261
+ handleTrade(client, message) {
258262
+ //
258263
+ // {
258264
+ // "method": "deals.update",
258265
+ // "params": [
258266
+ // "ETH_BTC",
258267
+ // [
258268
+ // {
258269
+ // "id": 4503032979, // Order_id
258270
+ // "amount": "0.103",
258271
+ // "type": "sell", // Side
258272
+ // "time": 1657661950.8487639, // Creation time
258273
+ // "price": "0.05361"
258274
+ // },
258275
+ // ...
258276
+ // ]
258277
+ // ],
258278
+ // "id": null
258279
+ // }
258280
+ //
258281
+ const data = this.safeList(message, 'params', []);
258282
+ const trades = this.safeList(data, 1);
258283
+ const marketId = this.safeString(data, 0);
258284
+ const market = this.safeMarket(marketId);
258285
+ const symbol = this.safeString(market, 'symbol');
258286
+ let tradesArray = this.safeValue(this.trades, symbol);
258287
+ if (tradesArray === undefined) {
258288
+ const tradesLimit = this.safeInteger(this.options, 'tradesLimit', 1000);
258289
+ tradesArray = new _base_ws_Cache_js__WEBPACK_IMPORTED_MODULE_2__/* .ArrayCache */ .ZL(tradesLimit);
258290
+ this.trades[symbol] = tradesArray;
258291
+ }
258292
+ for (let i = 0; i < trades.length; i++) {
258293
+ const item = trades[i];
258294
+ const trade = this.parseTrade(item, market);
258295
+ tradesArray.append(trade);
258296
+ }
258297
+ const messageHash = 'deals::' + symbol;
258298
+ client.resolve(tradesArray, messageHash);
258299
+ return message;
258300
+ }
258301
+ handleTicker(client, message) {
258302
+ //
258303
+ // state
258304
+ //
258305
+ // {
258306
+ // "method": "state.update",
258307
+ // "params": [
258308
+ // "ETH_BTC",
258309
+ // {
258310
+ // "high": "0.055774", // High price for the last 24h
258311
+ // "close": "0.053679", // Close price for the last 24h
258312
+ // "low": "0.053462", // Low price for the last 24h
258313
+ // "period": 86400, // Period 24h
258314
+ // "last": "0.053679", // Last price for the last 24h
258315
+ // "volume": "38463.6132", // Stock volume for the last 24h
258316
+ // "open": "0.055682", // Open price for the last 24h
258317
+ // "deal": "2091.0038055314" // Money volume for the last 24h
258318
+ // }
258319
+ // ],
258320
+ // "id": null
258321
+ // }
258322
+ //
258323
+ // price
258324
+ //
258325
+ // {
258326
+ // "method": "price.update",
258327
+ // "params": [
258328
+ // "ETH_BTC", // market
258329
+ // "0.053836" // last price
258330
+ // ],
258331
+ // "id": null
258332
+ // }
258333
+ //
258334
+ const data = this.safeList(message, 'params', []);
258335
+ const marketId = this.safeString(data, 0);
258336
+ const market = this.safeMarket(marketId);
258337
+ const method = this.safeString(message, 'method');
258338
+ const splitMethod = method.split('.');
258339
+ const messageHashStart = this.safeString(splitMethod, 0);
258340
+ const tickerData = this.safeDict(data, 1);
258341
+ let ticker = undefined;
258342
+ if (method === 'price.update') {
258343
+ const lastPrice = this.safeString(data, 1);
258344
+ ticker = this.safeTicker({
258345
+ 'last': lastPrice,
258346
+ 'close': lastPrice,
258347
+ 'symbol': market['symbol'],
258348
+ });
258349
+ }
258350
+ else {
258351
+ ticker = this.parseTicker(tickerData, market);
258352
+ }
258353
+ const symbol = ticker['symbol'];
258354
+ const messageHash = messageHashStart + '::' + symbol;
258355
+ client.resolve(ticker, messageHash);
258356
+ return message;
258357
+ }
258358
+ handleOrderBook(client, message) {
258359
+ //
258360
+ // {
258361
+ // "method": "depth.update",
258362
+ // "params": [
258363
+ // false, // true - all records, false - new records
258364
+ // {
258365
+ // "asks": [ // side
258366
+ // [
258367
+ // "19509.81", // price
258368
+ // "0.277" // amount
258369
+ // ]
258370
+ // ]
258371
+ // },
258372
+ // "BTC_USDT"
258373
+ // ],
258374
+ // "id": null
258375
+ // }
258376
+ //
258377
+ const params = this.safeList(message, 'params', []);
258378
+ const data = this.safeDict(params, 1);
258379
+ const asks = this.safeList(data, 'asks');
258380
+ const bids = this.safeList(data, 'bids');
258381
+ const marketId = this.safeString(params, 2);
258382
+ const market = this.safeMarket(marketId);
258383
+ const symbol = market['symbol'];
258384
+ const messageHash = 'orderbook::' + market['symbol'];
258385
+ const subscription = this.safeValue(client.subscriptions, messageHash, {});
258386
+ const limit = this.safeInteger(subscription, 'limit');
258387
+ let orderbook = this.safeValue(this.orderbooks, symbol);
258388
+ if (orderbook === undefined) {
258389
+ this.orderbooks[symbol] = this.orderBook({}, limit);
258390
+ orderbook = this.orderbooks[symbol];
258391
+ }
258392
+ if (bids !== undefined) {
258393
+ for (let i = 0; i < bids.length; i++) {
258394
+ const bid = this.safeValue(bids, i);
258395
+ const price = this.safeNumber(bid, 0);
258396
+ const amount = this.safeNumber(bid, 1);
258397
+ orderbook['bids'].store(price, amount);
258398
+ }
258399
+ }
258400
+ if (asks !== undefined) {
258401
+ for (let i = 0; i < asks.length; i++) {
258402
+ const ask = this.safeValue(asks, i);
258403
+ const price = this.safeNumber(ask, 0);
258404
+ const amount = this.safeNumber(ask, 1);
258405
+ orderbook['asks'].store(price, amount);
258406
+ }
258407
+ }
258408
+ orderbook['symbol'] = symbol;
258409
+ client.resolve(orderbook, messageHash);
258410
+ }
258411
+ handleMessage(client, message) {
258412
+ if (this.handleErrorMessage(client, message)) {
258413
+ return;
258414
+ }
258415
+ const result = this.safeString(message, 'result');
258416
+ if (result === 'pong') {
258417
+ this.handlePong(client, message);
258418
+ return;
258419
+ }
258420
+ const method = this.safeString(message, 'method');
258421
+ const methods = {
258422
+ 'depth.update': this.handleOrderBook,
258423
+ 'price.update': this.handleTicker,
258424
+ 'kline.update': this.handleOHLCV,
258425
+ 'state.update': this.handleTicker,
258426
+ 'deals.update': this.handleTrade,
258427
+ };
258428
+ const endpoint = this.safeValue(methods, method);
258429
+ if (endpoint !== undefined) {
258430
+ return endpoint.call(this, client, message);
258431
+ }
258432
+ }
258433
+ handleErrorMessage(client, message) {
258434
+ const error = this.safeString(message, 'error');
258435
+ if (error !== undefined) {
258436
+ throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ExchangeError(this.id + ' error: ' + this.json(error));
258437
+ }
258438
+ return false;
258439
+ }
258440
+ ping(client) {
258441
+ /**
258442
+ * @see https://github.com/P2B-team/P2B-WSS-Public/blob/main/wss_documentation.md#ping
258443
+ * @param client
258444
+ */
258445
+ return {
258446
+ 'method': 'server.ping',
258447
+ 'params': [],
258448
+ 'id': this.milliseconds(),
258449
+ };
258450
+ }
258451
+ handlePong(client, message) {
258452
+ //
258453
+ // {
258454
+ // error: null,
258455
+ // result: 'pong',
258456
+ // id: 1706539608030
258457
+ // }
258458
+ //
258459
+ client.lastPong = this.safeInteger(message, 'id');
258460
+ return message;
258461
+ }
258462
+ }
258463
+
258464
+
257292
258465
  /***/ }),
257293
258466
 
257294
258467
  /***/ 4360:
@@ -261212,7 +262385,7 @@ class probit extends _probit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
261212
262385
  // }
261213
262386
  // }
261214
262387
  //
261215
- const reset = this.safeValue(message, 'reset', false);
262388
+ const reset = this.safeBool(message, 'reset', false);
261216
262389
  const data = this.safeValue(message, 'data', {});
261217
262390
  const currencyIds = Object.keys(data);
261218
262391
  if (reset) {
@@ -261318,7 +262491,7 @@ class probit extends _probit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
261318
262491
  const symbol = this.safeSymbol(marketId);
261319
262492
  const market = this.safeMarket(marketId);
261320
262493
  const trades = this.safeValue(message, 'recent_trades', []);
261321
- const reset = this.safeValue(message, 'reset', false);
262494
+ const reset = this.safeBool(message, 'reset', false);
261322
262495
  const messageHash = 'trades:' + symbol;
261323
262496
  let stored = this.safeValue(this.trades, symbol);
261324
262497
  if (stored === undefined || reset) {
@@ -261391,7 +262564,7 @@ class probit extends _probit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
261391
262564
  if (length === 0) {
261392
262565
  return;
261393
262566
  }
261394
- const reset = this.safeValue(message, 'reset', false);
262567
+ const reset = this.safeBool(message, 'reset', false);
261395
262568
  const messageHash = 'myTrades';
261396
262569
  let stored = this.myTrades;
261397
262570
  if ((stored === undefined) || reset) {
@@ -261479,7 +262652,7 @@ class probit extends _probit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
261479
262652
  return;
261480
262653
  }
261481
262654
  const messageHash = 'orders';
261482
- const reset = this.safeValue(message, 'reset', false);
262655
+ const reset = this.safeBool(message, 'reset', false);
261483
262656
  let stored = this.orders;
261484
262657
  if (stored === undefined || reset) {
261485
262658
  const limit = this.safeInteger(this.options, 'ordersLimit', 1000);
@@ -261571,7 +262744,7 @@ class probit extends _probit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
261571
262744
  storedOrderBook = this.orderBook({});
261572
262745
  this.orderbooks[symbol] = storedOrderBook;
261573
262746
  }
261574
- const reset = this.safeValue(message, 'reset', false);
262747
+ const reset = this.safeBool(message, 'reset', false);
261575
262748
  if (reset) {
261576
262749
  const snapshot = this.parseOrderBook(dataBySide, symbol, undefined, 'buy', 'sell', 'price', 'quantity');
261577
262750
  storedOrderBook.reset(snapshot);
@@ -263475,7 +264648,7 @@ class whitebit extends _whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] *
263475
264648
  let hasSymbolSubscription = true;
263476
264649
  const market = this.market(symbol);
263477
264650
  const marketId = market['id'];
263478
- const isSubscribed = this.safeValue(subscription, marketId, false);
264651
+ const isSubscribed = this.safeBool(subscription, marketId, false);
263479
264652
  if (!isSubscribed) {
263480
264653
  subscription[marketId] = true;
263481
264654
  hasSymbolSubscription = false;
@@ -264862,7 +266035,7 @@ class probit extends _abstract_probit_js__WEBPACK_IMPORTED_MODULE_0__/* ["defaul
264862
266035
  const quoteId = this.safeString(market, 'quote_currency_id');
264863
266036
  const base = this.safeCurrencyCode(baseId);
264864
266037
  const quote = this.safeCurrencyCode(quoteId);
264865
- const closed = this.safeValue(market, 'closed', false);
266038
+ const closed = this.safeBool(market, 'closed', false);
264866
266039
  const takerFeeRate = this.safeString(market, 'taker_fee_rate');
264867
266040
  const taker = _base_Precise_js__WEBPACK_IMPORTED_MODULE_3__/* .Precise */ .O.stringDiv(takerFeeRate, '100');
264868
266041
  const makerFeeRate = this.safeString(market, 'maker_fee_rate');
@@ -276106,7 +277279,7 @@ class timex extends _abstract_timex_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
276106
277279
  const market = this.market(symbol);
276107
277280
  const uppercaseSide = side.toUpperCase();
276108
277281
  let uppercaseType = type.toUpperCase();
276109
- const postOnly = this.safeValue(params, 'postOnly', false);
277282
+ const postOnly = this.safeBool(params, 'postOnly', false);
276110
277283
  if (postOnly) {
276111
277284
  uppercaseType = 'POST_ONLY';
276112
277285
  params = this.omit(params, ['postOnly']);
@@ -277646,7 +278819,7 @@ class tokocrypto extends _abstract_tokocrypto_js__WEBPACK_IMPORTED_MODULE_0__/*
277646
278819
  break;
277647
278820
  }
277648
278821
  }
277649
- const isMarginTradingAllowed = this.safeValue(market, 'isMarginTradingAllowed', false);
278822
+ const isMarginTradingAllowed = this.safeBool(market, 'isMarginTradingAllowed', false);
277650
278823
  const entry = {
277651
278824
  'id': id,
277652
278825
  'lowercaseId': lowercaseId,
@@ -278545,7 +279718,7 @@ class tokocrypto extends _abstract_tokocrypto_js__WEBPACK_IMPORTED_MODULE_0__/*
278545
279718
  await this.loadMarkets();
278546
279719
  const market = this.market(symbol);
278547
279720
  const clientOrderId = this.safeString2(params, 'clientOrderId', 'clientId');
278548
- const postOnly = this.safeValue(params, 'postOnly', false);
279721
+ const postOnly = this.safeBool(params, 'postOnly', false);
278549
279722
  // only supported for spot/margin api
278550
279723
  if (postOnly) {
278551
279724
  type = 'LIMIT_MAKER';
@@ -279419,7 +280592,7 @@ class tokocrypto extends _abstract_tokocrypto_js__WEBPACK_IMPORTED_MODULE_0__/*
279419
280592
  }
279420
280593
  // check success value for wapi endpoints
279421
280594
  // response in format {'msg': 'The coin does not exist.', 'success': true/false}
279422
- const success = this.safeValue(response, 'success', true);
280595
+ const success = this.safeBool(response, 'success', true);
279423
280596
  if (!success) {
279424
280597
  const messageInner = this.safeString(response, 'msg');
279425
280598
  let parsedMessage = undefined;
@@ -281770,7 +282943,7 @@ class wavesexchange extends _abstract_wavesexchange_js__WEBPACK_IMPORTED_MODULE_
281770
282943
  // "matcherFee":"4077612"
281771
282944
  // }
281772
282945
  // }
281773
- const isDiscountFee = this.safeValue(params, 'isDiscountFee', false);
282946
+ const isDiscountFee = this.safeBool(params, 'isDiscountFee', false);
281774
282947
  let mode = undefined;
281775
282948
  if (isDiscountFee) {
281776
282949
  mode = this.safeValue(response, 'discount');
@@ -283787,7 +284960,7 @@ class wavesexchange extends _abstract_wavesexchange_js__WEBPACK_IMPORTED_MODULE_
283787
284960
  }
283788
284961
  handleErrors(code, reason, url, method, headers, body, response, requestHeaders, requestBody) {
283789
284962
  const errorCode = this.safeString(response, 'error');
283790
- const success = this.safeValue(response, 'success', true);
284963
+ const success = this.safeBool(response, 'success', true);
283791
284964
  const Exception = this.safeValue(this.exceptions, errorCode);
283792
284965
  if (Exception !== undefined) {
283793
284966
  const messageInner = this.safeString(response, 'message');
@@ -285377,8 +286550,8 @@ class whitebit extends _abstract_whitebit_js__WEBPACK_IMPORTED_MODULE_0__/* ["de
285377
286550
  const currency = response[id];
285378
286551
  // breaks down in Python due to utf8 encoding issues on the exchange side
285379
286552
  // const name = this.safeString (currency, 'name');
285380
- const canDeposit = this.safeValue(currency, 'can_deposit', true);
285381
- const canWithdraw = this.safeValue(currency, 'can_withdraw', true);
286553
+ const canDeposit = this.safeBool(currency, 'can_deposit', true);
286554
+ const canWithdraw = this.safeBool(currency, 'can_withdraw', true);
285382
286555
  const active = canDeposit && canWithdraw;
285383
286556
  const code = this.safeCurrencyCode(id);
285384
286557
  result[code] = {
@@ -288408,7 +289581,7 @@ class woo extends _abstract_woo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
288408
289581
  * @param {boolean} [params.stop] whether the order is a stop/algo order
288409
289582
  * @returns {object} An [order structure]{@link https://docs.ccxt.com/#/?id=order-structure}
288410
289583
  */
288411
- const stop = this.safeValue(params, 'stop', false);
289584
+ const stop = this.safeBool(params, 'stop', false);
288412
289585
  params = this.omit(params, 'stop');
288413
289586
  if (!stop && (symbol === undefined)) {
288414
289587
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' cancelOrder() requires a symbol argument');
@@ -288576,7 +289749,7 @@ class woo extends _abstract_woo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
288576
289749
  const request = {};
288577
289750
  let market = undefined;
288578
289751
  const stop = this.safeValue(params, 'stop');
288579
- const trailing = this.safeValue(params, 'trailing', false);
289752
+ const trailing = this.safeBool(params, 'trailing', false);
288580
289753
  params = this.omit(params, ['stop', 'trailing']);
288581
289754
  if (symbol !== undefined) {
288582
289755
  market = this.market(symbol);
@@ -289358,7 +290531,7 @@ class woo extends _abstract_woo_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
289358
290531
  //
289359
290532
  const transfer = this.parseTransfer(response, currency);
289360
290533
  const transferOptions = this.safeValue(this.options, 'transfer', {});
289361
- const fillResponseFromRequest = this.safeValue(transferOptions, 'fillResponseFromRequest', true);
290534
+ const fillResponseFromRequest = this.safeBool(transferOptions, 'fillResponseFromRequest', true);
289362
290535
  if (fillResponseFromRequest) {
289363
290536
  transfer['amount'] = amount;
289364
290537
  transfer['fromAccount'] = fromAccount;
@@ -291342,7 +292515,7 @@ class yobit extends _abstract_yobit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
291342
292515
  //
291343
292516
  // To cover points 1, 2, 3 and 4 combined this handler should work like this:
291344
292517
  //
291345
- let success = this.safeValue(response, 'success', false);
292518
+ let success = this.safeBool(response, 'success', false);
291346
292519
  if (typeof success === 'string') {
291347
292520
  if ((success === 'true') || (success === '1')) {
291348
292521
  success = true;
@@ -292103,7 +293276,7 @@ class zaif extends _abstract_zaif_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"]
292103
293276
  this.throwBroadlyMatchedException(this.exceptions['broad'], error, feedback);
292104
293277
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(feedback); // unknown message
292105
293278
  }
292106
- const success = this.safeValue(response, 'success', true);
293279
+ const success = this.safeBool(response, 'success', true);
292107
293280
  if (!success) {
292108
293281
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError(feedback);
292109
293282
  }
@@ -293560,7 +294733,7 @@ class zonda extends _abstract_zonda_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
293560
294733
  // }
293561
294734
  //
293562
294735
  const id = this.safeString2(response, 'offerId', 'stopOfferId');
293563
- const completed = this.safeValue(response, 'completed', false);
294736
+ const completed = this.safeBool(response, 'completed', false);
293564
294737
  const status = completed ? 'closed' : 'open';
293565
294738
  const transactions = this.safeValue(response, 'transactions');
293566
294739
  return this.safeOrder({
@@ -293622,7 +294795,7 @@ class zonda extends _abstract_zonda_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
293622
294795
  'EUR': true,
293623
294796
  'PLN': true,
293624
294797
  };
293625
- return this.safeValue(fiatCurrencies, currency, false);
294798
+ return this.safeBool(fiatCurrencies, currency, false);
293626
294799
  }
293627
294800
  parseDepositAddress(depositAddress, currency = undefined) {
293628
294801
  //
@@ -293759,7 +294932,7 @@ class zonda extends _abstract_zonda_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
293759
294932
  //
293760
294933
  const transfer = this.parseTransfer(response, currency);
293761
294934
  const transferOptions = this.safeValue(this.options, 'transfer', {});
293762
- const fillResponseFromRequest = this.safeValue(transferOptions, 'fillResponseFromRequest', true);
294935
+ const fillResponseFromRequest = this.safeBool(transferOptions, 'fillResponseFromRequest', true);
293763
294936
  if (fillResponseFromRequest) {
293764
294937
  transfer['amount'] = amount;
293765
294938
  }
@@ -299230,39 +300403,39 @@ var __webpack_exports__ = {};
299230
300403
  (() => {
299231
300404
  __webpack_require__.r(__webpack_exports__);
299232
300405
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
299233
- /* harmony export */ AccountNotEnabled: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.AccountNotEnabled),
299234
- /* harmony export */ AccountSuspended: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.AccountSuspended),
299235
- /* harmony export */ AddressPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.AddressPending),
299236
- /* harmony export */ ArgumentsRequired: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.ArgumentsRequired),
299237
- /* harmony export */ AuthenticationError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.AuthenticationError),
299238
- /* harmony export */ BadRequest: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.BadRequest),
299239
- /* harmony export */ BadResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.BadResponse),
299240
- /* harmony export */ BadSymbol: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.BadSymbol),
299241
- /* harmony export */ BaseError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.BaseError),
299242
- /* harmony export */ CancelPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.CancelPending),
299243
- /* harmony export */ DDoSProtection: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.DDoSProtection),
299244
- /* harmony export */ DuplicateOrderId: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.DuplicateOrderId),
300406
+ /* harmony export */ AccountNotEnabled: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.AccountNotEnabled),
300407
+ /* harmony export */ AccountSuspended: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.AccountSuspended),
300408
+ /* harmony export */ AddressPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.AddressPending),
300409
+ /* harmony export */ ArgumentsRequired: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.ArgumentsRequired),
300410
+ /* harmony export */ AuthenticationError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.AuthenticationError),
300411
+ /* harmony export */ BadRequest: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.BadRequest),
300412
+ /* harmony export */ BadResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.BadResponse),
300413
+ /* harmony export */ BadSymbol: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.BadSymbol),
300414
+ /* harmony export */ BaseError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.BaseError),
300415
+ /* harmony export */ CancelPending: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.CancelPending),
300416
+ /* harmony export */ DDoSProtection: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.DDoSProtection),
300417
+ /* harmony export */ DuplicateOrderId: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.DuplicateOrderId),
299245
300418
  /* harmony export */ Exchange: () => (/* reexport safe */ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__.e),
299246
- /* harmony export */ ExchangeError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.ExchangeError),
299247
- /* harmony export */ ExchangeNotAvailable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.ExchangeNotAvailable),
299248
- /* harmony export */ InsufficientFunds: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.InsufficientFunds),
299249
- /* harmony export */ InvalidAddress: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.InvalidAddress),
299250
- /* harmony export */ InvalidNonce: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.InvalidNonce),
299251
- /* harmony export */ InvalidOrder: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.InvalidOrder),
299252
- /* harmony export */ MarginModeAlreadySet: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.MarginModeAlreadySet),
299253
- /* harmony export */ NetworkError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.NetworkError),
299254
- /* harmony export */ NoChange: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.NoChange),
299255
- /* harmony export */ NotSupported: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.NotSupported),
299256
- /* harmony export */ NullResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.NullResponse),
299257
- /* harmony export */ OnMaintenance: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.OnMaintenance),
299258
- /* harmony export */ OrderImmediatelyFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.OrderImmediatelyFillable),
299259
- /* harmony export */ OrderNotCached: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.OrderNotCached),
299260
- /* harmony export */ OrderNotFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.OrderNotFillable),
299261
- /* harmony export */ OrderNotFound: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.OrderNotFound),
299262
- /* harmony export */ PermissionDenied: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.PermissionDenied),
299263
- /* harmony export */ Precise: () => (/* reexport safe */ _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_161__.O),
299264
- /* harmony export */ RateLimitExceeded: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.RateLimitExceeded),
299265
- /* harmony export */ RequestTimeout: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__.RequestTimeout),
300419
+ /* harmony export */ ExchangeError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.ExchangeError),
300420
+ /* harmony export */ ExchangeNotAvailable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.ExchangeNotAvailable),
300421
+ /* harmony export */ InsufficientFunds: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.InsufficientFunds),
300422
+ /* harmony export */ InvalidAddress: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.InvalidAddress),
300423
+ /* harmony export */ InvalidNonce: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.InvalidNonce),
300424
+ /* harmony export */ InvalidOrder: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.InvalidOrder),
300425
+ /* harmony export */ MarginModeAlreadySet: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.MarginModeAlreadySet),
300426
+ /* harmony export */ NetworkError: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.NetworkError),
300427
+ /* harmony export */ NoChange: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.NoChange),
300428
+ /* harmony export */ NotSupported: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.NotSupported),
300429
+ /* harmony export */ NullResponse: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.NullResponse),
300430
+ /* harmony export */ OnMaintenance: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.OnMaintenance),
300431
+ /* harmony export */ OrderImmediatelyFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.OrderImmediatelyFillable),
300432
+ /* harmony export */ OrderNotCached: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.OrderNotCached),
300433
+ /* harmony export */ OrderNotFillable: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.OrderNotFillable),
300434
+ /* harmony export */ OrderNotFound: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.OrderNotFound),
300435
+ /* harmony export */ PermissionDenied: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.PermissionDenied),
300436
+ /* harmony export */ Precise: () => (/* reexport safe */ _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_162__.O),
300437
+ /* harmony export */ RateLimitExceeded: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.RateLimitExceeded),
300438
+ /* harmony export */ RequestTimeout: () => (/* reexport safe */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__.RequestTimeout),
299266
300439
  /* harmony export */ ace: () => (/* reexport safe */ _src_ace_js__WEBPACK_IMPORTED_MODULE_1__.Z),
299267
300440
  /* harmony export */ alpaca: () => (/* reexport safe */ _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__.Z),
299268
300441
  /* harmony export */ ascendex: () => (/* reexport safe */ _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__.Z),
@@ -299317,11 +300490,11 @@ __webpack_require__.r(__webpack_exports__);
299317
300490
  /* harmony export */ delta: () => (/* reexport safe */ _src_delta_js__WEBPACK_IMPORTED_MODULE_51__.Z),
299318
300491
  /* harmony export */ deribit: () => (/* reexport safe */ _src_deribit_js__WEBPACK_IMPORTED_MODULE_52__.Z),
299319
300492
  /* harmony export */ digifinex: () => (/* reexport safe */ _src_digifinex_js__WEBPACK_IMPORTED_MODULE_53__.Z),
299320
- /* harmony export */ errors: () => (/* reexport module object */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__),
300493
+ /* harmony export */ errors: () => (/* reexport module object */ _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__),
299321
300494
  /* harmony export */ exchanges: () => (/* binding */ exchanges),
299322
300495
  /* harmony export */ exmo: () => (/* reexport safe */ _src_exmo_js__WEBPACK_IMPORTED_MODULE_54__.Z),
299323
300496
  /* harmony export */ fmfwio: () => (/* reexport safe */ _src_fmfwio_js__WEBPACK_IMPORTED_MODULE_55__.Z),
299324
- /* harmony export */ functions: () => (/* reexport module object */ _src_base_functions_js__WEBPACK_IMPORTED_MODULE_162__),
300497
+ /* harmony export */ functions: () => (/* reexport module object */ _src_base_functions_js__WEBPACK_IMPORTED_MODULE_163__),
299325
300498
  /* harmony export */ gate: () => (/* reexport safe */ _src_gate_js__WEBPACK_IMPORTED_MODULE_56__.Z),
299326
300499
  /* harmony export */ gateio: () => (/* reexport safe */ _src_gateio_js__WEBPACK_IMPORTED_MODULE_57__.Z),
299327
300500
  /* harmony export */ gemini: () => (/* reexport safe */ _src_gemini_js__WEBPACK_IMPORTED_MODULE_58__.Z),
@@ -299371,9 +300544,9 @@ __webpack_require__.r(__webpack_exports__);
299371
300544
  /* harmony export */ zonda: () => (/* reexport safe */ _src_zonda_js__WEBPACK_IMPORTED_MODULE_100__.Z)
299372
300545
  /* harmony export */ });
299373
300546
  /* harmony import */ var _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3043);
299374
- /* harmony import */ var _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(2194);
299375
- /* harmony import */ var _src_base_functions_js__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(7100);
299376
- /* harmony import */ var _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(6689);
300547
+ /* harmony import */ var _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_162__ = __webpack_require__(2194);
300548
+ /* harmony import */ var _src_base_functions_js__WEBPACK_IMPORTED_MODULE_163__ = __webpack_require__(7100);
300549
+ /* harmony import */ var _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__ = __webpack_require__(6689);
299377
300550
  /* harmony import */ var _src_ace_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9869);
299378
300551
  /* harmony import */ var _src_alpaca_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5660);
299379
300552
  /* harmony import */ var _src_ascendex_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9612);
@@ -299526,14 +300699,15 @@ __webpack_require__.r(__webpack_exports__);
299526
300699
  /* harmony import */ var _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_150__ = __webpack_require__(7105);
299527
300700
  /* harmony import */ var _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_151__ = __webpack_require__(2214);
299528
300701
  /* harmony import */ var _src_pro_onetrading_js__WEBPACK_IMPORTED_MODULE_152__ = __webpack_require__(9419);
299529
- /* harmony import */ var _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(4360);
299530
- /* harmony import */ var _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(7924);
299531
- /* harmony import */ var _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(3541);
299532
- /* harmony import */ var _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(9782);
299533
- /* harmony import */ var _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(7614);
299534
- /* harmony import */ var _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(4828);
299535
- /* harmony import */ var _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(5630);
299536
- /* harmony import */ var _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(3910);
300702
+ /* harmony import */ var _src_pro_p2b_js__WEBPACK_IMPORTED_MODULE_153__ = __webpack_require__(8516);
300703
+ /* harmony import */ var _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_154__ = __webpack_require__(4360);
300704
+ /* harmony import */ var _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_155__ = __webpack_require__(7924);
300705
+ /* harmony import */ var _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_156__ = __webpack_require__(3541);
300706
+ /* harmony import */ var _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_157__ = __webpack_require__(9782);
300707
+ /* harmony import */ var _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_158__ = __webpack_require__(7614);
300708
+ /* harmony import */ var _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_159__ = __webpack_require__(4828);
300709
+ /* harmony import */ var _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_160__ = __webpack_require__(5630);
300710
+ /* harmony import */ var _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_161__ = __webpack_require__(3910);
299537
300711
  /*
299538
300712
 
299539
300713
  MIT License
@@ -299568,7 +300742,7 @@ SOFTWARE.
299568
300742
 
299569
300743
  //-----------------------------------------------------------------------------
299570
300744
  // this is updated by vss.js when building
299571
- const version = '4.2.29';
300745
+ const version = '4.2.30';
299572
300746
  _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion = version;
299573
300747
  //-----------------------------------------------------------------------------
299574
300748
 
@@ -299730,6 +300904,7 @@ _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion
299730
300904
 
299731
300905
 
299732
300906
 
300907
+
299733
300908
 
299734
300909
 
299735
300910
  const exchanges = {
@@ -299887,14 +301062,15 @@ const pro = {
299887
301062
  'okcoin': _src_pro_okcoin_js__WEBPACK_IMPORTED_MODULE_150__/* ["default"] */ .Z,
299888
301063
  'okx': _src_pro_okx_js__WEBPACK_IMPORTED_MODULE_151__/* ["default"] */ .Z,
299889
301064
  'onetrading': _src_pro_onetrading_js__WEBPACK_IMPORTED_MODULE_152__/* ["default"] */ .Z,
299890
- 'phemex': _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_153__/* ["default"] */ .Z,
299891
- 'poloniex': _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_154__/* ["default"] */ .Z,
299892
- 'poloniexfutures': _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_155__/* ["default"] */ .Z,
299893
- 'probit': _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_156__/* ["default"] */ .Z,
299894
- 'upbit': _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_157__/* ["default"] */ .Z,
299895
- 'wazirx': _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_158__/* ["default"] */ .Z,
299896
- 'whitebit': _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_159__/* ["default"] */ .Z,
299897
- 'woo': _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_160__/* ["default"] */ .Z,
301065
+ 'p2b': _src_pro_p2b_js__WEBPACK_IMPORTED_MODULE_153__/* ["default"] */ .Z,
301066
+ 'phemex': _src_pro_phemex_js__WEBPACK_IMPORTED_MODULE_154__/* ["default"] */ .Z,
301067
+ 'poloniex': _src_pro_poloniex_js__WEBPACK_IMPORTED_MODULE_155__/* ["default"] */ .Z,
301068
+ 'poloniexfutures': _src_pro_poloniexfutures_js__WEBPACK_IMPORTED_MODULE_156__/* ["default"] */ .Z,
301069
+ 'probit': _src_pro_probit_js__WEBPACK_IMPORTED_MODULE_157__/* ["default"] */ .Z,
301070
+ 'upbit': _src_pro_upbit_js__WEBPACK_IMPORTED_MODULE_158__/* ["default"] */ .Z,
301071
+ 'wazirx': _src_pro_wazirx_js__WEBPACK_IMPORTED_MODULE_159__/* ["default"] */ .Z,
301072
+ 'whitebit': _src_pro_whitebit_js__WEBPACK_IMPORTED_MODULE_160__/* ["default"] */ .Z,
301073
+ 'woo': _src_pro_woo_js__WEBPACK_IMPORTED_MODULE_161__/* ["default"] */ .Z,
299898
301074
  };
299899
301075
  for (const exchange in pro) {
299900
301076
  // const ccxtExchange = exchanges[exchange]
@@ -299907,7 +301083,7 @@ for (const exchange in pro) {
299907
301083
  pro.exchanges = Object.keys(pro);
299908
301084
  pro['Exchange'] = _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e; // now the same for rest and ts
299909
301085
  //-----------------------------------------------------------------------------
299910
- const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise: _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_161__/* .Precise */ .O, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, _src_base_functions_js__WEBPACK_IMPORTED_MODULE_162__, _src_base_errors_js__WEBPACK_IMPORTED_MODULE_163__);
301086
+ const ccxt = Object.assign({ version, Exchange: _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e, Precise: _src_base_Precise_js__WEBPACK_IMPORTED_MODULE_162__/* .Precise */ .O, 'exchanges': Object.keys(exchanges), 'pro': pro }, exchanges, _src_base_functions_js__WEBPACK_IMPORTED_MODULE_163__, _src_base_errors_js__WEBPACK_IMPORTED_MODULE_164__);
299911
301087
 
299912
301088
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ccxt);
299913
301089
  //-----------------------------------------------------------------------------