ccxt 4.0.84 → 4.0.85

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/dist/cjs/ccxt.js CHANGED
@@ -180,7 +180,7 @@ var woo$1 = require('./src/pro/woo.js');
180
180
 
181
181
  //-----------------------------------------------------------------------------
182
182
  // this is updated by vss.js when building
183
- const version = '4.0.84';
183
+ const version = '4.0.85';
184
184
  Exchange["default"].ccxtVersion = version;
185
185
  const exchanges = {
186
186
  'ace': ace,
@@ -573,41 +573,47 @@ class latoken extends latoken$1 {
573
573
  }
574
574
  parseTicker(ticker, market = undefined) {
575
575
  //
576
- // {
577
- // "symbol":"620f2019-33c0-423b-8a9d-cde4d7f8ef7f/0c3a106d-bde3-4c13-a26e-3fd2394529e5",
578
- // "baseCurrency":"620f2019-33c0-423b-8a9d-cde4d7f8ef7f",
579
- // "quoteCurrency":"0c3a106d-bde3-4c13-a26e-3fd2394529e5",
580
- // "volume24h":"76411867.852585600000000000",
581
- // "volume7d":"637809926.759451100000000000",
582
- // "change24h":"2.5300",
583
- // "change7d":"5.1300",
584
- // "lastPrice":"4426.9"
585
- // }
576
+ // {
577
+ // symbol: '92151d82-df98-4d88-9a4d-284fa9eca49f/0c3a106d-bde3-4c13-a26e-3fd2394529e5',
578
+ // baseCurrency: '92151d82-df98-4d88-9a4d-284fa9eca49f',
579
+ // quoteCurrency: '0c3a106d-bde3-4c13-a26e-3fd2394529e5',
580
+ // volume24h: '165723597.189022176000000000',
581
+ // volume7d: '934505768.625109571000000000',
582
+ // change24h: '0.0200',
583
+ // change7d: '-6.4200',
584
+ // amount24h: '6438.457663100000000000',
585
+ // amount7d: '35657.785013800000000000',
586
+ // lastPrice: '25779.16',
587
+ // lastQuantity: '0.248403300000000000',
588
+ // bestBid: '25778.74',
589
+ // bestBidQuantity: '0.6520232',
590
+ // bestAsk: '25779.17',
591
+ // bestAskQuantity: '0.4956043',
592
+ // updateTimestamp: '1693965231406'
593
+ // }
586
594
  //
587
595
  const marketId = this.safeString(ticker, 'symbol');
588
- const symbol = this.safeSymbol(marketId, market);
589
596
  const last = this.safeString(ticker, 'lastPrice');
590
- const change = this.safeString(ticker, 'change24h');
591
- const timestamp = this.nonce();
597
+ const timestamp = this.safeInteger(ticker, 'updateTimestamp');
592
598
  return this.safeTicker({
593
- 'symbol': symbol,
599
+ 'symbol': this.safeSymbol(marketId, market),
594
600
  'timestamp': timestamp,
595
601
  'datetime': this.iso8601(timestamp),
596
- 'low': this.safeString(ticker, 'low'),
597
- 'high': this.safeString(ticker, 'high'),
598
- 'bid': undefined,
599
- 'bidVolume': undefined,
600
- 'ask': undefined,
601
- 'askVolume': undefined,
602
+ 'low': undefined,
603
+ 'high': undefined,
604
+ 'bid': this.safeString(ticker, 'bestBid'),
605
+ 'bidVolume': this.safeString(ticker, 'bestBidQuantity'),
606
+ 'ask': this.safeString(ticker, 'bestAsk'),
607
+ 'askVolume': this.safeString(ticker, 'bestAskQuantity'),
602
608
  'vwap': undefined,
603
609
  'open': undefined,
604
610
  'close': last,
605
611
  'last': last,
606
612
  'previousClose': undefined,
607
- 'change': change,
608
- 'percentage': undefined,
613
+ 'change': undefined,
614
+ 'percentage': this.safeString(ticker, 'change24h'),
609
615
  'average': undefined,
610
- 'baseVolume': undefined,
616
+ 'baseVolume': this.safeString(ticker, 'amount24h'),
611
617
  'quoteVolume': this.safeString(ticker, 'volume24h'),
612
618
  'info': ticker,
613
619
  }, market);
@@ -629,16 +635,24 @@ class latoken extends latoken$1 {
629
635
  };
630
636
  const response = await this.publicGetTickerBaseQuote(this.extend(request, params));
631
637
  //
632
- // {
633
- // "symbol":"620f2019-33c0-423b-8a9d-cde4d7f8ef7f/0c3a106d-bde3-4c13-a26e-3fd2394529e5",
634
- // "baseCurrency":"620f2019-33c0-423b-8a9d-cde4d7f8ef7f",
635
- // "quoteCurrency":"0c3a106d-bde3-4c13-a26e-3fd2394529e5",
636
- // "volume24h":"76411867.852585600000000000",
637
- // "volume7d":"637809926.759451100000000000",
638
- // "change24h":"2.5300",
639
- // "change7d":"5.1300",
640
- // "lastPrice":"4426.9"
641
- // }
638
+ // {
639
+ // symbol: '92151d82-df98-4d88-9a4d-284fa9eca49f/0c3a106d-bde3-4c13-a26e-3fd2394529e5',
640
+ // baseCurrency: '92151d82-df98-4d88-9a4d-284fa9eca49f',
641
+ // quoteCurrency: '0c3a106d-bde3-4c13-a26e-3fd2394529e5',
642
+ // volume24h: '165723597.189022176000000000',
643
+ // volume7d: '934505768.625109571000000000',
644
+ // change24h: '0.0200',
645
+ // change7d: '-6.4200',
646
+ // amount24h: '6438.457663100000000000',
647
+ // amount7d: '35657.785013800000000000',
648
+ // lastPrice: '25779.16',
649
+ // lastQuantity: '0.248403300000000000',
650
+ // bestBid: '25778.74',
651
+ // bestBidQuantity: '0.6520232',
652
+ // bestAsk: '25779.17',
653
+ // bestAskQuantity: '0.4956043',
654
+ // updateTimestamp: '1693965231406'
655
+ // }
642
656
  //
643
657
  return this.parseTicker(response, market);
644
658
  }
@@ -654,18 +668,26 @@ class latoken extends latoken$1 {
654
668
  await this.loadMarkets();
655
669
  const response = await this.publicGetTicker(params);
656
670
  //
657
- // [
658
- // {
659
- // "symbol":"DASH/BTC",
660
- // "baseCurrency":"ed75c263-4ab9-494b-8426-031dab1c7cc1",
661
- // "quoteCurrency":"92151d82-df98-4d88-9a4d-284fa9eca49f",
662
- // "volume24h":"1.977753278000000000",
663
- // "volume7d":"18.964342670000000000",
664
- // "change24h":"-1.4800",
665
- // "change7d":"-5.5200",
666
- // "lastPrice":"0.003066"
667
- // },
668
- // ]
671
+ // [
672
+ // {
673
+ // symbol: '92151d82-df98-4d88-9a4d-284fa9eca49f/0c3a106d-bde3-4c13-a26e-3fd2394529e5',
674
+ // baseCurrency: '92151d82-df98-4d88-9a4d-284fa9eca49f',
675
+ // quoteCurrency: '0c3a106d-bde3-4c13-a26e-3fd2394529e5',
676
+ // volume24h: '165723597.189022176000000000',
677
+ // volume7d: '934505768.625109571000000000',
678
+ // change24h: '0.0200',
679
+ // change7d: '-6.4200',
680
+ // amount24h: '6438.457663100000000000',
681
+ // amount7d: '35657.785013800000000000',
682
+ // lastPrice: '25779.16',
683
+ // lastQuantity: '0.248403300000000000',
684
+ // bestBid: '25778.74',
685
+ // bestBidQuantity: '0.6520232',
686
+ // bestAsk: '25779.17',
687
+ // bestAskQuantity: '0.4956043',
688
+ // updateTimestamp: '1693965231406'
689
+ // }
690
+ // ]
669
691
  //
670
692
  return this.parseTickers(response, symbols);
671
693
  }
@@ -977,7 +977,17 @@ class binance extends binance$1 {
977
977
  client.resolve(result, messageHash);
978
978
  if (event === 'bookTicker') {
979
979
  // watch bookTickers
980
- client.resolve([result], '!' + 'bookTicker@arr');
980
+ client.resolve(result, '!' + 'bookTicker@arr');
981
+ const messageHashes = this.findMessageHashes(client, 'tickers::');
982
+ for (let i = 0; i < messageHashes.length; i++) {
983
+ const messageHash = messageHashes[i];
984
+ const parts = messageHash.split('::');
985
+ const symbolsString = parts[1];
986
+ const symbols = symbolsString.split(',');
987
+ if (this.inArray(symbol, symbols)) {
988
+ client.resolve(result, messageHash);
989
+ }
990
+ }
981
991
  }
982
992
  }
983
993
  handleTickers(client, message) {
package/js/ccxt.d.ts CHANGED
@@ -4,7 +4,7 @@ import * as functions from './src/base/functions.js';
4
4
  import * as errors from './src/base/errors.js';
5
5
  import { Market, Trade, Fee, Ticker, OrderBook, Order, Transaction, Tickers, Currency, Balance, DepositAddress, WithdrawalResponse, DepositAddressResponse, OHLCV, Balances, PartialBalances, Dictionary, MinMax } from './src/base/types.js';
6
6
  import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending } from './src/base/errors.js';
7
- declare const version = "4.0.83";
7
+ declare const version = "4.0.84";
8
8
  import ace from './src/ace.js';
9
9
  import alpaca from './src/alpaca.js';
10
10
  import ascendex from './src/ascendex.js';
package/js/ccxt.js CHANGED
@@ -38,7 +38,7 @@ import * as errors from './src/base/errors.js';
38
38
  import { BaseError, ExchangeError, PermissionDenied, AccountNotEnabled, AccountSuspended, ArgumentsRequired, BadRequest, BadSymbol, MarginModeAlreadySet, BadResponse, NullResponse, InsufficientFunds, InvalidAddress, InvalidOrder, OrderNotFound, OrderNotCached, CancelPending, OrderImmediatelyFillable, OrderNotFillable, DuplicateOrderId, NotSupported, NetworkError, DDoSProtection, RateLimitExceeded, ExchangeNotAvailable, OnMaintenance, InvalidNonce, RequestTimeout, AuthenticationError, AddressPending } from './src/base/errors.js';
39
39
  //-----------------------------------------------------------------------------
40
40
  // this is updated by vss.js when building
41
- const version = '4.0.84';
41
+ const version = '4.0.85';
42
42
  Exchange.ccxtVersion = version;
43
43
  //-----------------------------------------------------------------------------
44
44
  import ace from './src/ace.js';
package/js/src/latoken.js CHANGED
@@ -576,41 +576,47 @@ export default class latoken extends Exchange {
576
576
  }
577
577
  parseTicker(ticker, market = undefined) {
578
578
  //
579
- // {
580
- // "symbol":"620f2019-33c0-423b-8a9d-cde4d7f8ef7f/0c3a106d-bde3-4c13-a26e-3fd2394529e5",
581
- // "baseCurrency":"620f2019-33c0-423b-8a9d-cde4d7f8ef7f",
582
- // "quoteCurrency":"0c3a106d-bde3-4c13-a26e-3fd2394529e5",
583
- // "volume24h":"76411867.852585600000000000",
584
- // "volume7d":"637809926.759451100000000000",
585
- // "change24h":"2.5300",
586
- // "change7d":"5.1300",
587
- // "lastPrice":"4426.9"
588
- // }
579
+ // {
580
+ // symbol: '92151d82-df98-4d88-9a4d-284fa9eca49f/0c3a106d-bde3-4c13-a26e-3fd2394529e5',
581
+ // baseCurrency: '92151d82-df98-4d88-9a4d-284fa9eca49f',
582
+ // quoteCurrency: '0c3a106d-bde3-4c13-a26e-3fd2394529e5',
583
+ // volume24h: '165723597.189022176000000000',
584
+ // volume7d: '934505768.625109571000000000',
585
+ // change24h: '0.0200',
586
+ // change7d: '-6.4200',
587
+ // amount24h: '6438.457663100000000000',
588
+ // amount7d: '35657.785013800000000000',
589
+ // lastPrice: '25779.16',
590
+ // lastQuantity: '0.248403300000000000',
591
+ // bestBid: '25778.74',
592
+ // bestBidQuantity: '0.6520232',
593
+ // bestAsk: '25779.17',
594
+ // bestAskQuantity: '0.4956043',
595
+ // updateTimestamp: '1693965231406'
596
+ // }
589
597
  //
590
598
  const marketId = this.safeString(ticker, 'symbol');
591
- const symbol = this.safeSymbol(marketId, market);
592
599
  const last = this.safeString(ticker, 'lastPrice');
593
- const change = this.safeString(ticker, 'change24h');
594
- const timestamp = this.nonce();
600
+ const timestamp = this.safeInteger(ticker, 'updateTimestamp');
595
601
  return this.safeTicker({
596
- 'symbol': symbol,
602
+ 'symbol': this.safeSymbol(marketId, market),
597
603
  'timestamp': timestamp,
598
604
  'datetime': this.iso8601(timestamp),
599
- 'low': this.safeString(ticker, 'low'),
600
- 'high': this.safeString(ticker, 'high'),
601
- 'bid': undefined,
602
- 'bidVolume': undefined,
603
- 'ask': undefined,
604
- 'askVolume': undefined,
605
+ 'low': undefined,
606
+ 'high': undefined,
607
+ 'bid': this.safeString(ticker, 'bestBid'),
608
+ 'bidVolume': this.safeString(ticker, 'bestBidQuantity'),
609
+ 'ask': this.safeString(ticker, 'bestAsk'),
610
+ 'askVolume': this.safeString(ticker, 'bestAskQuantity'),
605
611
  'vwap': undefined,
606
612
  'open': undefined,
607
613
  'close': last,
608
614
  'last': last,
609
615
  'previousClose': undefined,
610
- 'change': change,
611
- 'percentage': undefined,
616
+ 'change': undefined,
617
+ 'percentage': this.safeString(ticker, 'change24h'),
612
618
  'average': undefined,
613
- 'baseVolume': undefined,
619
+ 'baseVolume': this.safeString(ticker, 'amount24h'),
614
620
  'quoteVolume': this.safeString(ticker, 'volume24h'),
615
621
  'info': ticker,
616
622
  }, market);
@@ -632,16 +638,24 @@ export default class latoken extends Exchange {
632
638
  };
633
639
  const response = await this.publicGetTickerBaseQuote(this.extend(request, params));
634
640
  //
635
- // {
636
- // "symbol":"620f2019-33c0-423b-8a9d-cde4d7f8ef7f/0c3a106d-bde3-4c13-a26e-3fd2394529e5",
637
- // "baseCurrency":"620f2019-33c0-423b-8a9d-cde4d7f8ef7f",
638
- // "quoteCurrency":"0c3a106d-bde3-4c13-a26e-3fd2394529e5",
639
- // "volume24h":"76411867.852585600000000000",
640
- // "volume7d":"637809926.759451100000000000",
641
- // "change24h":"2.5300",
642
- // "change7d":"5.1300",
643
- // "lastPrice":"4426.9"
644
- // }
641
+ // {
642
+ // symbol: '92151d82-df98-4d88-9a4d-284fa9eca49f/0c3a106d-bde3-4c13-a26e-3fd2394529e5',
643
+ // baseCurrency: '92151d82-df98-4d88-9a4d-284fa9eca49f',
644
+ // quoteCurrency: '0c3a106d-bde3-4c13-a26e-3fd2394529e5',
645
+ // volume24h: '165723597.189022176000000000',
646
+ // volume7d: '934505768.625109571000000000',
647
+ // change24h: '0.0200',
648
+ // change7d: '-6.4200',
649
+ // amount24h: '6438.457663100000000000',
650
+ // amount7d: '35657.785013800000000000',
651
+ // lastPrice: '25779.16',
652
+ // lastQuantity: '0.248403300000000000',
653
+ // bestBid: '25778.74',
654
+ // bestBidQuantity: '0.6520232',
655
+ // bestAsk: '25779.17',
656
+ // bestAskQuantity: '0.4956043',
657
+ // updateTimestamp: '1693965231406'
658
+ // }
645
659
  //
646
660
  return this.parseTicker(response, market);
647
661
  }
@@ -657,18 +671,26 @@ export default class latoken extends Exchange {
657
671
  await this.loadMarkets();
658
672
  const response = await this.publicGetTicker(params);
659
673
  //
660
- // [
661
- // {
662
- // "symbol":"DASH/BTC",
663
- // "baseCurrency":"ed75c263-4ab9-494b-8426-031dab1c7cc1",
664
- // "quoteCurrency":"92151d82-df98-4d88-9a4d-284fa9eca49f",
665
- // "volume24h":"1.977753278000000000",
666
- // "volume7d":"18.964342670000000000",
667
- // "change24h":"-1.4800",
668
- // "change7d":"-5.5200",
669
- // "lastPrice":"0.003066"
670
- // },
671
- // ]
674
+ // [
675
+ // {
676
+ // symbol: '92151d82-df98-4d88-9a4d-284fa9eca49f/0c3a106d-bde3-4c13-a26e-3fd2394529e5',
677
+ // baseCurrency: '92151d82-df98-4d88-9a4d-284fa9eca49f',
678
+ // quoteCurrency: '0c3a106d-bde3-4c13-a26e-3fd2394529e5',
679
+ // volume24h: '165723597.189022176000000000',
680
+ // volume7d: '934505768.625109571000000000',
681
+ // change24h: '0.0200',
682
+ // change7d: '-6.4200',
683
+ // amount24h: '6438.457663100000000000',
684
+ // amount7d: '35657.785013800000000000',
685
+ // lastPrice: '25779.16',
686
+ // lastQuantity: '0.248403300000000000',
687
+ // bestBid: '25778.74',
688
+ // bestBidQuantity: '0.6520232',
689
+ // bestAsk: '25779.17',
690
+ // bestAskQuantity: '0.4956043',
691
+ // updateTimestamp: '1693965231406'
692
+ // }
693
+ // ]
672
694
  //
673
695
  return this.parseTickers(response, symbols);
674
696
  }
@@ -980,7 +980,17 @@ export default class binance extends binanceRest {
980
980
  client.resolve(result, messageHash);
981
981
  if (event === 'bookTicker') {
982
982
  // watch bookTickers
983
- client.resolve([result], '!' + 'bookTicker@arr');
983
+ client.resolve(result, '!' + 'bookTicker@arr');
984
+ const messageHashes = this.findMessageHashes(client, 'tickers::');
985
+ for (let i = 0; i < messageHashes.length; i++) {
986
+ const messageHash = messageHashes[i];
987
+ const parts = messageHash.split('::');
988
+ const symbolsString = parts[1];
989
+ const symbols = symbolsString.split(',');
990
+ if (this.inArray(symbol, symbols)) {
991
+ client.resolve(result, messageHash);
992
+ }
993
+ }
984
994
  }
985
995
  }
986
996
  handleTickers(client, message) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ccxt",
3
- "version": "4.0.84",
3
+ "version": "4.0.85",
4
4
  "description": "A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges",
5
5
  "unpkg": "dist/ccxt.browser.js",
6
6
  "type": "module",