ccxt 4.0.77 → 4.0.78

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.
package/README.md CHANGED
@@ -215,13 +215,13 @@ console.log(version, Object.keys(exchanges));
215
215
 
216
216
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
217
217
 
218
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.77/dist/ccxt.browser.js
219
- * unpkg: https://unpkg.com/ccxt@4.0.77/dist/ccxt.browser.js
218
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.78/dist/ccxt.browser.js
219
+ * unpkg: https://unpkg.com/ccxt@4.0.78/dist/ccxt.browser.js
220
220
 
221
221
  CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
222
222
 
223
223
  ```HTML
224
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.77/dist/ccxt.browser.js"></script>
224
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.78/dist/ccxt.browser.js"></script>
225
225
  ```
226
226
 
227
227
  Creates a global `ccxt` object:
@@ -9907,12 +9907,18 @@ class Exchange {
9907
9907
  precision = this.safeValue(networkItem, 'precision', precision);
9908
9908
  }
9909
9909
  if (precision === undefined) {
9910
- return fee;
9910
+ return this.forceString(fee);
9911
9911
  }
9912
9912
  else {
9913
9913
  return this.decimalToPrecision(fee, ROUND, precision, this.precisionMode, this.paddingMode);
9914
9914
  }
9915
9915
  }
9916
+ forceString(value) {
9917
+ if (typeof value !== 'string') {
9918
+ return this.numberToString(value);
9919
+ }
9920
+ return value;
9921
+ }
9916
9922
  isTickPrecision() {
9917
9923
  return this.precisionMode === TICK_SIZE;
9918
9924
  }
@@ -24646,6 +24652,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
24646
24652
  'market/trades': 3,
24647
24653
  'market/depth': 3,
24648
24654
  'market/kline': 3,
24655
+ 'ticker/24hr': 1,
24649
24656
  },
24650
24657
  },
24651
24658
  'private': {
@@ -24654,7 +24661,6 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
24654
24661
  'trade/openOrders': 3,
24655
24662
  'trade/historyOrders': 3,
24656
24663
  'account/balance': 3,
24657
- 'ticker/24hr': 1,
24658
24664
  },
24659
24665
  'post': {
24660
24666
  'trade/order': 3,
@@ -24811,6 +24817,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
24811
24817
  '500': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
24812
24818
  '504': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
24813
24819
  '100001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
24820
+ '100412': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
24814
24821
  '100202': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
24815
24822
  '100400': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
24816
24823
  '100440': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
@@ -25653,7 +25660,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
25653
25660
  };
25654
25661
  let response = undefined;
25655
25662
  if (market['spot']) {
25656
- response = await this.spotV1PrivateGetTicker24hr(this.extend(request, params));
25663
+ response = await this.spotV1PublicGetTicker24hr(this.extend(request, params));
25657
25664
  }
25658
25665
  else {
25659
25666
  response = await this.swapV2PublicGetQuoteTicker(this.extend(request, params));
@@ -25693,15 +25700,21 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
25693
25700
  * @returns {object} a dictionary of [ticker structures]{@link https://github.com/ccxt/ccxt/wiki/Manual#ticker-structure}
25694
25701
  */
25695
25702
  await this.loadMarkets();
25703
+ let market = undefined;
25696
25704
  if (symbols !== undefined) {
25697
25705
  symbols = this.marketSymbols(symbols);
25698
25706
  const firstSymbol = this.safeString(symbols, 0);
25699
- const market = this.market(firstSymbol);
25700
- if (!market['swap']) {
25701
- throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest(this.id + ' fetchTicker is only supported for swap markets.');
25702
- }
25707
+ market = this.market(firstSymbol);
25708
+ }
25709
+ let type = undefined;
25710
+ [type, params] = this.handleMarketTypeAndParams('fetchTickers', market, params);
25711
+ let response = undefined;
25712
+ if (type === 'spot') {
25713
+ response = await this.spotV1PublicGetTicker24hr(params);
25714
+ }
25715
+ else {
25716
+ response = await this.swapV2PublicGetQuoteTicker(params);
25703
25717
  }
25704
- const response = await this.swapV2PublicGetQuoteTicker(params);
25705
25718
  //
25706
25719
  // {
25707
25720
  // "code": 0,
@@ -27382,31 +27395,25 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
27382
27395
  this.parseTransaction(data);
27383
27396
  }
27384
27397
  parseParams(params) {
27385
- let result = '';
27386
27398
  const sortedParams = this.keysort(params);
27387
27399
  const keys = Object.keys(sortedParams);
27388
27400
  for (let i = 0; i < keys.length; i++) {
27389
27401
  const key = keys[i];
27390
- if (i > 0) {
27391
- result += '&';
27392
- }
27393
27402
  const value = sortedParams[key];
27394
27403
  if (Array.isArray(value)) {
27395
- result += key + '=[';
27404
+ let arrStr = '[';
27396
27405
  for (let j = 0; j < value.length; j++) {
27397
27406
  const arrayElement = value[j];
27398
27407
  if (j > 0) {
27399
- result += ',';
27408
+ arrStr += ',';
27400
27409
  }
27401
- result += arrayElement.toString();
27410
+ arrStr += arrayElement.toString();
27402
27411
  }
27403
- result += ']';
27404
- }
27405
- else {
27406
- result += key + '=' + value.toString();
27412
+ arrStr += ']';
27413
+ sortedParams[key] = arrStr;
27407
27414
  }
27408
27415
  }
27409
- return result;
27416
+ return sortedParams;
27410
27417
  }
27411
27418
  sign(path, section = 'public', method = 'GET', params = {}, headers = undefined, body = undefined) {
27412
27419
  const type = section[0];
@@ -27425,6 +27432,7 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
27425
27432
  params = this.omit(params, this.extractParams(path));
27426
27433
  params = this.keysort(params);
27427
27434
  if (access === 'public') {
27435
+ params['timestamp'] = this.nonce();
27428
27436
  if (Object.keys(params).length) {
27429
27437
  url += '?' + this.urlencode(params);
27430
27438
  }
@@ -27432,8 +27440,9 @@ class bingx extends _abstract_bingx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"
27432
27440
  else if (access === 'private') {
27433
27441
  this.checkRequiredCredentials();
27434
27442
  params['timestamp'] = this.nonce();
27435
- let query = this.parseParams(params);
27436
- const signature = this.hmac(this.encode(query), this.encode(this.secret), _static_dependencies_noble_hashes_sha256_js__WEBPACK_IMPORTED_MODULE_4__/* .sha256 */ .J);
27443
+ const parsedParams = this.parseParams(params);
27444
+ let query = this.urlencode(parsedParams);
27445
+ const signature = this.hmac(this.encode(this.rawencode(parsedParams)), this.encode(this.secret), _static_dependencies_noble_hashes_sha256_js__WEBPACK_IMPORTED_MODULE_4__/* .sha256 */ .J);
27437
27446
  if (Object.keys(params).length) {
27438
27447
  query = '?' + query + '&';
27439
27448
  }
@@ -177263,6 +177272,7 @@ class okx extends _abstract_okx_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
177263
177272
  'tradingBot/grid/ai-param': 1,
177264
177273
  'tradingBot/grid/min-investment': 1,
177265
177274
  'tradingBot/public/rsi-back-testing': 1,
177275
+ 'asset/exchange-list': 5 / 3,
177266
177276
  'finance/savings/lending-rate-summary': 5 / 3,
177267
177277
  'finance/savings/lending-rate-history': 5 / 3,
177268
177278
  // public broker
@@ -273434,7 +273444,7 @@ SOFTWARE.
273434
273444
 
273435
273445
  //-----------------------------------------------------------------------------
273436
273446
  // this is updated by vss.js when building
273437
- const version = '4.0.77';
273447
+ const version = '4.0.78';
273438
273448
  _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange.ccxtVersion */ .e.ccxtVersion = version;
273439
273449
  //-----------------------------------------------------------------------------
273440
273450