ccxt 4.2.8 → 4.2.9

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
@@ -209,13 +209,13 @@ console.log(version, Object.keys(exchanges));
209
209
 
210
210
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
211
211
 
212
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.8/dist/ccxt.browser.js
213
- * unpkg: https://unpkg.com/ccxt@4.2.8/dist/ccxt.browser.js
212
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.2.9/dist/ccxt.browser.js
213
+ * unpkg: https://unpkg.com/ccxt@4.2.9/dist/ccxt.browser.js
214
214
 
215
215
  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.
216
216
 
217
217
  ```HTML
218
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.8/dist/ccxt.browser.js"></script>
218
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.2.9/dist/ccxt.browser.js"></script>
219
219
  ```
220
220
 
221
221
  Creates a global `ccxt` object:
package/build.sh CHANGED
@@ -176,12 +176,28 @@ if [ ${#REST_EXCHANGES[@]} -eq 0 ] && [ ${#WS_EXCHANGES[@]} -eq 0 ]; then
176
176
  exit
177
177
  fi
178
178
 
179
- # run base tests (base js,py,php, brokerId and static-tests)
180
- npm run test-base
179
+ # run base tests (base js,py,php, brokerId )
180
+ # npm run test-base
181
+ npm run test-js-base && npm run test-python-base && npm run test-php-base && npm run id-tests
181
182
 
182
183
  # rest_args=${REST_EXCHANGES[*]} || "skip"
183
184
  rest_args=$(IFS=" " ; echo "${REST_EXCHANGES[*]}") || "skip"
184
185
  # ws_args=${WS_EXCHANGES[*]} || "skip"
185
186
  ws_args=$(IFS=" " ; echo "${WS_EXCHANGES[*]}") || "skip"
186
187
 
188
+
189
+ #request static tests
190
+ for exchange in "${REST_EXCHANGES[@]}"; do
191
+ npm run request-js -- $exchange
192
+ npm run request-py -- $exchange
193
+ npm run request-php -- $exchange
194
+ done
195
+
196
+ #response static tests
197
+ for exchange in "${REST_EXCHANGES[@]}"; do
198
+ npm run response-js -- $exchange
199
+ npm run response-py -- $exchange
200
+ npm run response-php -- $exchange
201
+ done
202
+
187
203
  run_tests "$rest_args" "$ws_args"
@@ -50329,7 +50329,11 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
50329
50329
  '30012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AuthenticationError,
50330
50330
  '30013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
50331
50331
  '30014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
50332
- // funding account errors
50332
+ '30016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OnMaintenance,
50333
+ '30017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.RateLimitExceeded,
50334
+ '30018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50335
+ '30019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50336
+ // funding account & sub account errors
50333
50337
  '60000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50334
50338
  '60001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50335
50339
  '60002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
@@ -50346,13 +50350,31 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
50346
50350
  '60020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50347
50351
  '60021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50348
50352
  '60022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50353
+ '60026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50354
+ '60027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50355
+ '60028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
50356
+ '60029': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
50349
50357
  '60030': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50350
50358
  '60031': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50351
50359
  '60050': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50352
50360
  '60051': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50353
50361
  '61001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
50354
50362
  '61003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50355
- // spot errors
50363
+ '61004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50364
+ '61005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50365
+ '61006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.NotSupported,
50366
+ '61007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50367
+ '61008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50368
+ // spot public errors
50369
+ '70000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50370
+ '70001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50371
+ '70002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
50372
+ '71001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50373
+ '71002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50374
+ '71003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50375
+ '71004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50376
+ '71005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50377
+ // spot & margin errors
50356
50378
  '50000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50357
50379
  '50001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
50358
50380
  '50002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
@@ -50372,26 +50394,75 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
50372
50394
  '50016': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50373
50395
  '50017': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50374
50396
  '50018': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50375
- '50019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50376
- '51004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
50377
- // '50019': ExchangeError, // 400, Invalid status. validate status is [1=Failed, 2=Success, 3=Frozen Failed, 4=Frozen Success, 5=Partially Filled, 6=Fully Fulled, 7=Canceling, 8=Canceled
50397
+ '50019': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50378
50398
  '50020': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
50379
50399
  '50021': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50380
50400
  '50022': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeNotAvailable,
50381
50401
  '50023': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
50402
+ '50024': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50403
+ '50025': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50404
+ '50026': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50405
+ '50027': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50406
+ '50028': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50382
50407
  '50029': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50383
- '50030': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50408
+ '50030': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
50409
+ '50031': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
50384
50410
  '50032': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
50411
+ '50033': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50385
50412
  // below Error codes used interchangeably for both failed postOnly and IOC orders depending on market price and order side
50386
- '50035': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50387
50413
  '50034': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50414
+ '50035': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50415
+ '50036': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50416
+ '50037': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50417
+ '50038': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50418
+ '50039': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50419
+ '50040': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
50420
+ '50041': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50421
+ '50042': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50422
+ '51000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
50423
+ '51001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50424
+ '51002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50425
+ '51003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50426
+ '51004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
50427
+ '51005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50428
+ '51006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50429
+ '51007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50430
+ '51008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50431
+ '51009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50432
+ '51010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50388
50433
  '51011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50434
+ '51012': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50435
+ '51013': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50436
+ '51014': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50437
+ '51015': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50438
+ '52000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50439
+ '52001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50440
+ '52002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50441
+ '52003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50442
+ '52004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50389
50443
  '53000': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
50390
50444
  '53001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.AccountSuspended,
50445
+ '53002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50446
+ '53003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50447
+ '53005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50448
+ '53006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50449
+ '53007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50450
+ '53008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50451
+ '53009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50452
+ '53010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50391
50453
  '57001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50392
50454
  '58001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50393
50455
  '59001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50394
50456
  '59002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50457
+ '59003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50458
+ '59004': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50459
+ '59005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50460
+ '59006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50461
+ '59007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50462
+ '59008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50463
+ '59009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50464
+ '59010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InsufficientFunds,
50465
+ '59011': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50395
50466
  // contract errors
50396
50467
  '40001': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
50397
50468
  '40002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.ExchangeError,
@@ -50427,14 +50498,22 @@ class bitmart extends _abstract_bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["defa
50427
50498
  '40032': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50428
50499
  '40033': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50429
50500
  '40034': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadSymbol,
50430
- '53002': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50431
- '53003': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50432
- '53005': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50433
- '53006': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50434
- '53007': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50435
- '53008': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50436
- '53009': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50437
- '53010': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied, // 403 This account is restricted from borrowing
50501
+ '40035': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
50502
+ '40036': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50503
+ '40037': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.OrderNotFound,
50504
+ '40038': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50505
+ '40039': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50506
+ '40040': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50507
+ '40041': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50508
+ '40042': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50509
+ '40043': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50510
+ '40044': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50511
+ '40045': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder,
50512
+ '40046': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50513
+ '40047': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.PermissionDenied,
50514
+ '40048': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50515
+ '40049': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.BadRequest,
50516
+ '40050': _base_errors_js__WEBPACK_IMPORTED_MODULE_2__.InvalidOrder, // 403, Client OrderId duplicated with existing orders
50438
50517
  },
50439
50518
  'broad': {},
50440
50519
  },
@@ -209728,7 +209807,10 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
209728
209807
  name = this.safeString(params, 'name', name);
209729
209808
  params = this.omit(params, 'name');
209730
209809
  let wsParams = [];
209731
- const messageHash = 'tickers';
209810
+ let messageHash = 'tickers';
209811
+ if (symbols !== undefined) {
209812
+ messageHash = 'tickers::' + symbols.join(',');
209813
+ }
209732
209814
  if (name === 'bookTicker') {
209733
209815
  if (marketIds === undefined) {
209734
209816
  throw new _base_errors_js__WEBPACK_IMPORTED_MODULE_1__.ArgumentsRequired(this.id + ' watchTickers() requires symbols for bookTicker');
@@ -209921,6 +210003,19 @@ class binance extends _binance_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
209921
210003
  this.tickers[symbol] = result;
209922
210004
  newTickers.push(result);
209923
210005
  }
210006
+ const messageHashes = this.findMessageHashes(client, 'tickers::');
210007
+ for (let i = 0; i < messageHashes.length; i++) {
210008
+ const messageHash = messageHashes[i];
210009
+ const parts = messageHash.split('::');
210010
+ const symbolsString = parts[1];
210011
+ const symbols = symbolsString.split(',');
210012
+ const tickers = this.filterByArray(newTickers, 'symbol', symbols);
210013
+ const tickersSymbols = Object.keys(tickers);
210014
+ const numTickers = tickersSymbols.length;
210015
+ if (numTickers > 0) {
210016
+ client.resolve(tickers, messageHash);
210017
+ }
210018
+ }
209924
210019
  client.resolve(newTickers, 'tickers');
209925
210020
  }
209926
210021
  signParams(params = {}) {
@@ -214735,7 +214830,9 @@ class bitget extends _bitget_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z
214735
214830
  }
214736
214831
  const tickers = await this.watchPublicMultiple(messageHashes, topics, params);
214737
214832
  if (this.newUpdates) {
214738
- return tickers;
214833
+ const result = {};
214834
+ result[tickers['symbol']] = tickers;
214835
+ return result;
214739
214836
  }
214740
214837
  return this.filterByArray(this.tickers, 'symbol', symbols);
214741
214838
  }
@@ -216621,7 +216718,10 @@ class bitmart extends _bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
216621
216718
  if (type === 'swap') {
216622
216719
  type = 'futures';
216623
216720
  }
216624
- const messageHash = 'tickers';
216721
+ let messageHash = 'tickers';
216722
+ if (symbols !== undefined) {
216723
+ messageHash += '::' + symbols.join(',');
216724
+ }
216625
216725
  const request = {
216626
216726
  'action': 'subscribe',
216627
216727
  'args': ['futures/ticker'],
@@ -217027,7 +217127,7 @@ class bitmart extends _bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
217027
217127
  // }
217028
217128
  //
217029
217129
  const marketId = this.safeString(position, 'symbol');
217030
- market = this.safeMarket(marketId, market, '', 'swap');
217130
+ market = this.safeMarket(marketId, market, undefined, 'swap');
217031
217131
  const symbol = market['symbol'];
217032
217132
  const openTimestamp = this.safeInteger(position, 'create_time');
217033
217133
  const timestamp = this.safeInteger(position, 'update_time');
@@ -217220,6 +217320,18 @@ class bitmart extends _bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
217220
217320
  const symbol = this.safeString(ticker, 'symbol');
217221
217321
  this.tickers[symbol] = ticker;
217222
217322
  client.resolve(ticker, 'tickers');
217323
+ const messageHashes = this.findMessageHashes(client, 'tickers::');
217324
+ for (let i = 0; i < messageHashes.length; i++) {
217325
+ const messageHash = messageHashes[i];
217326
+ const parts = messageHash.split('::');
217327
+ const symbolsString = parts[1];
217328
+ const symbols = symbolsString.split(',');
217329
+ if (this.inArray(symbol, symbols)) {
217330
+ const response = {};
217331
+ response[symbol] = ticker;
217332
+ client.resolve(response, messageHash);
217333
+ }
217334
+ }
217223
217335
  }
217224
217336
  return message;
217225
217337
  }
@@ -217369,7 +217481,7 @@ class bitmart extends _bitmart_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */
217369
217481
  }
217370
217482
  else {
217371
217483
  const marketId = this.safeString(data, 'symbol');
217372
- const market = this.safeMarket(marketId, undefined, '', 'swap');
217484
+ const market = this.safeMarket(marketId, undefined, undefined, 'swap');
217373
217485
  const symbol = market['symbol'];
217374
217486
  const items = this.safeValue(data, 'items', []);
217375
217487
  this.ohlcvs[symbol] = this.safeValue(this.ohlcvs, symbol, {});
@@ -223838,7 +223950,9 @@ class bybit extends _bybit_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z {
223838
223950
  }
223839
223951
  const ticker = await this.watchTopics(url, messageHashes, topics, params);
223840
223952
  if (this.newUpdates) {
223841
- return ticker;
223953
+ const result = {};
223954
+ result[ticker['symbol']] = ticker;
223955
+ return result;
223842
223956
  }
223843
223957
  return this.filterByArray(this.tickers, 'symbol', symbols);
223844
223958
  }
@@ -292003,7 +292117,7 @@ SOFTWARE.
292003
292117
 
292004
292118
  //-----------------------------------------------------------------------------
292005
292119
  // this is updated by vss.js when building
292006
- const version = '4.2.8';
292120
+ const version = '4.2.9';
292007
292121
  _src_base_Exchange_js__WEBPACK_IMPORTED_MODULE_0__/* .Exchange */ .e.ccxtVersion = version;
292008
292122
  //-----------------------------------------------------------------------------
292009
292123