ccxt 4.3.20__py2.py3-none-any.whl → 4.3.22__py2.py3-none-any.whl

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.

Potentially problematic release.


This version of ccxt might be problematic. Click here for more details.

ccxt/pro/kucoinfutures.py CHANGED
@@ -4,7 +4,7 @@
4
4
  # https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code
5
5
 
6
6
  import ccxt.async_support
7
- from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById
7
+ from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
8
8
  from ccxt.base.types import Balances, Int, Order, OrderBook, Position, Str, Strings, Ticker, Tickers, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
@@ -22,6 +22,7 @@ class kucoinfutures(ccxt.async_support.kucoinfutures):
22
22
  'watchTickers': True,
23
23
  'watchBidsAsks': True,
24
24
  'watchTrades': True,
25
+ 'watchOHLCV': True,
25
26
  'watchOrderBook': True,
26
27
  'watchOrders': True,
27
28
  'watchBalance': True,
@@ -32,6 +33,21 @@ class kucoinfutures(ccxt.async_support.kucoinfutures):
32
33
  'watchOrderBookForSymbols': True,
33
34
  },
34
35
  'options': {
36
+ 'timeframes': {
37
+ '1m': '1min',
38
+ '3m': '1min',
39
+ '5m': '5min',
40
+ '15m': '15min',
41
+ '30m': '30min',
42
+ '1h': '1hour',
43
+ '2h': '2hour',
44
+ '4h': '4hour',
45
+ '8h': '8hour',
46
+ '12h': '12hour',
47
+ '1d': '1day',
48
+ '1w': '1week',
49
+ '1M': '1month',
50
+ },
35
51
  'accountsByType': {
36
52
  'swap': 'future',
37
53
  'cross': 'margin',
@@ -540,6 +556,77 @@ class kucoinfutures(ccxt.async_support.kucoinfutures):
540
556
  client.resolve(trades, messageHash)
541
557
  return message
542
558
 
559
+ async def watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
560
+ """
561
+ :see: https://www.kucoin.com/docs/websocket/futures-trading/public-channels/klines
562
+ watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
563
+ :param str symbol: unified symbol of the market to fetch OHLCV data for
564
+ :param str timeframe: the length of time each candle represents
565
+ :param int [since]: timestamp in ms of the earliest candle to fetch
566
+ :param int [limit]: the maximum amount of candles to fetch
567
+ :param dict [params]: extra parameters specific to the exchange API endpoint
568
+ :returns int[][]: A list of candles ordered, open, high, low, close, volume
569
+ """
570
+ await self.load_markets()
571
+ symbol = self.symbol(symbol)
572
+ url = await self.negotiate(False)
573
+ marketId = self.market_id(symbol)
574
+ timeframes = self.safe_dict(self.options, 'timeframes')
575
+ timeframeId = self.safe_string(timeframes, timeframe, timeframe)
576
+ topic = '/contractMarket/limitCandle:' + marketId + '_' + timeframeId
577
+ messageHash = 'ohlcv::' + symbol + '_' + timeframe
578
+ ohlcv = await self.subscribe(url, messageHash, topic, None, params)
579
+ if self.newUpdates:
580
+ limit = ohlcv.getLimit(symbol, limit)
581
+ return self.filter_by_since_limit(ohlcv, since, limit, 0, True)
582
+
583
+ def handle_ohlcv(self, client: Client, message):
584
+ #
585
+ # {
586
+ # "topic":"/contractMarket/limitCandle:LTCUSDTM_1min",
587
+ # "type":"message",
588
+ # "data":{
589
+ # "symbol":"LTCUSDTM",
590
+ # "candles":[
591
+ # "1715470980",
592
+ # "81.38",
593
+ # "81.38",
594
+ # "81.38",
595
+ # "81.38",
596
+ # "61.0",
597
+ # "61"
598
+ # ],
599
+ # "time":1715470994801
600
+ # },
601
+ # "subject":"candle.stick"
602
+ # }
603
+ #
604
+ topic = self.safe_string(message, 'topic')
605
+ parts = topic.split('_')
606
+ timeframeId = self.safe_string(parts, 1)
607
+ data = self.safe_dict(message, 'data')
608
+ timeframes = self.safe_dict(self.options, 'timeframes')
609
+ timeframe = self.find_timeframe(timeframeId, timeframes)
610
+ marketId = self.safe_string(data, 'symbol')
611
+ symbol = self.safe_symbol(marketId)
612
+ messageHash = 'ohlcv::' + symbol + '_' + timeframe
613
+ ohlcv = self.safe_list(data, 'candles')
614
+ parsed = [
615
+ self.safe_integer(ohlcv, 0),
616
+ self.safe_number(ohlcv, 1),
617
+ self.safe_number(ohlcv, 2),
618
+ self.safe_number(ohlcv, 3),
619
+ self.safe_number(ohlcv, 4),
620
+ self.safe_number(ohlcv, 6), # Note value 5 is incorrect and will be fixed in subsequent versions of kucoin
621
+ ]
622
+ self.ohlcvs[symbol] = self.safe_dict(self.ohlcvs, symbol, {})
623
+ if not (timeframe in self.ohlcvs[symbol]):
624
+ limit = self.safe_integer(self.options, 'OHLCVLimit', 1000)
625
+ self.ohlcvs[symbol][timeframe] = ArrayCacheByTimestamp(limit)
626
+ stored = self.ohlcvs[symbol][timeframe]
627
+ stored.append(parsed)
628
+ client.resolve(stored, messageHash)
629
+
543
630
  async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
544
631
  """
545
632
  watches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
@@ -923,6 +1010,7 @@ class kucoinfutures(ccxt.async_support.kucoinfutures):
923
1010
  methods = {
924
1011
  'level2': self.handle_order_book,
925
1012
  'ticker': self.handle_ticker,
1013
+ 'candle.stick': self.handle_ohlcv,
926
1014
  'tickerV2': self.handle_bid_ask,
927
1015
  'availableBalance.change': self.handle_balance,
928
1016
  'match': self.handle_trade,
ccxt/pro/woo.py CHANGED
@@ -531,6 +531,16 @@ class woo(ccxt.async_support.woo):
531
531
  request = self.extend(subscribe, message)
532
532
  return await self.watch(url, messageHash, request, messageHash, subscribe)
533
533
 
534
+ async def watch_private_multiple(self, messageHashes, message, params={}):
535
+ await self.authenticate(params)
536
+ url = self.urls['api']['ws']['private'] + '/' + self.uid
537
+ requestId = self.request_id(url)
538
+ subscribe = {
539
+ 'id': requestId,
540
+ }
541
+ request = self.extend(subscribe, message)
542
+ return await self.watch_multiple(url, messageHashes, request, messageHashes, subscribe)
543
+
534
544
  async def watch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
535
545
  """
536
546
  :see: https://docs.woo.org/#executionreport
@@ -540,10 +550,13 @@ class woo(ccxt.async_support.woo):
540
550
  :param int [since]: the earliest time in ms to fetch orders for
541
551
  :param int [limit]: the maximum number of order structures to retrieve
542
552
  :param dict [params]: extra parameters specific to the exchange API endpoint
553
+ :param bool [params.trigger]: True if trigger order
543
554
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
544
555
  """
545
556
  await self.load_markets()
546
- topic = 'executionreport'
557
+ trigger = self.safe_bool_2(params, 'stop', 'trigger', False)
558
+ topic = 'algoexecutionreportv2' if (trigger) else 'executionreport'
559
+ params = self.omit(params, ['stop', 'trigger'])
547
560
  messageHash = topic
548
561
  if symbol is not None:
549
562
  market = self.market(symbol)
@@ -562,15 +575,19 @@ class woo(ccxt.async_support.woo):
562
575
  async def watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
563
576
  """
564
577
  :see: https://docs.woo.org/#executionreport
578
+ :see: https://docs.woo.org/#algoexecutionreportv2
565
579
  watches information on multiple trades made by the user
566
580
  :param str symbol: unified market symbol of the market orders were made in
567
581
  :param int [since]: the earliest time in ms to fetch orders for
568
582
  :param int [limit]: the maximum number of order structures to retrieve
569
583
  :param dict [params]: extra parameters specific to the exchange API endpoint
584
+ :param bool [params.trigger]: True if trigger order
570
585
  :returns dict[]: a list of `order structures <https://docs.ccxt.com/#/?id=order-structure>`
571
586
  """
572
587
  await self.load_markets()
573
- topic = 'executionreport'
588
+ trigger = self.safe_bool_2(params, 'stop', 'trigger', False)
589
+ topic = 'algoexecutionreportv2' if (trigger) else 'executionreport'
590
+ params = self.omit(params, ['stop', 'trigger'])
574
591
  messageHash = 'myTrades'
575
592
  if symbol is not None:
576
593
  market = self.market(symbol)
@@ -692,14 +709,24 @@ class woo(ccxt.async_support.woo):
692
709
  # }
693
710
  # }
694
711
  #
695
- order = self.safe_dict(message, 'data')
696
- tradeId = self.safe_string(order, 'tradeId')
697
- if (tradeId is not None) and (tradeId != '0'):
698
- self.handle_my_trade(client, order)
699
- self.handle_order(client, order)
712
+ topic = self.safe_string(message, 'topic')
713
+ data = self.safe_value(message, 'data')
714
+ if isinstance(data, list):
715
+ # algoexecutionreportv2
716
+ for i in range(0, len(data)):
717
+ order = data[i]
718
+ tradeId = self.omit_zero(self.safe_string(data, 'tradeId'))
719
+ if tradeId is not None:
720
+ self.handle_my_trade(client, order)
721
+ self.handle_order(client, order, topic)
722
+ else:
723
+ # executionreport
724
+ tradeId = self.omit_zero(self.safe_string(data, 'tradeId'))
725
+ if tradeId is not None:
726
+ self.handle_my_trade(client, data)
727
+ self.handle_order(client, data, topic)
700
728
 
701
- def handle_order(self, client: Client, message):
702
- topic = 'executionreport'
729
+ def handle_order(self, client: Client, message, topic):
703
730
  parsed = self.parse_ws_order(message)
704
731
  symbol = self.safe_string(parsed, 'symbol')
705
732
  orderId = self.safe_string(parsed, 'id')
@@ -776,11 +803,14 @@ class woo(ccxt.async_support.woo):
776
803
  :returns dict[]: a list of `position structure <https://docs.ccxt.com/en/latest/manual.html#position-structure>`
777
804
  """
778
805
  await self.load_markets()
779
- messageHash = ''
806
+ messageHashes = []
780
807
  symbols = self.market_symbols(symbols)
781
808
  if not self.is_empty(symbols):
782
- messageHash = '::' + ','.join(symbols)
783
- messageHash = 'positions' + messageHash
809
+ for i in range(0, len(symbols)):
810
+ symbol = symbols[i]
811
+ messageHashes.append('positions::' + symbol)
812
+ else:
813
+ messageHashes.append('positions')
784
814
  url = self.urls['api']['ws']['private'] + '/' + self.uid
785
815
  client = self.client(url)
786
816
  self.set_positions_cache(client, symbols)
@@ -793,7 +823,7 @@ class woo(ccxt.async_support.woo):
793
823
  'event': 'subscribe',
794
824
  'topic': 'position',
795
825
  }
796
- newPositions = await self.watch_private(messageHash, request, params)
826
+ newPositions = await self.watch_private_multiple(messageHashes, request, params)
797
827
  if self.newUpdates:
798
828
  return newPositions
799
829
  return self.filter_by_symbols_since_limit(self.positions, symbols, since, limit, True)
@@ -862,15 +892,8 @@ class woo(ccxt.async_support.woo):
862
892
  position = self.parse_position(rawPosition, market)
863
893
  newPositions.append(position)
864
894
  cache.append(position)
865
- messageHashes = self.find_message_hashes(client, 'positions::')
866
- for i in range(0, len(messageHashes)):
867
- messageHash = messageHashes[i]
868
- parts = messageHash.split('::')
869
- symbolsString = parts[1]
870
- symbols = symbolsString.split(',')
871
- positions = self.filter_by_array(newPositions, 'symbol', symbols, False)
872
- if not self.is_empty(positions):
873
- client.resolve(positions, messageHash)
895
+ messageHash = 'positions::' + market['symbol']
896
+ client.resolve(position, messageHash)
874
897
  client.resolve(newPositions, 'positions')
875
898
 
876
899
  async def watch_balance(self, params={}) -> Balances:
@@ -978,6 +1001,7 @@ class woo(ccxt.async_support.woo):
978
1001
  'kline': self.handle_ohlcv,
979
1002
  'auth': self.handle_auth,
980
1003
  'executionreport': self.handle_order_update,
1004
+ 'algoexecutionreportv2': self.handle_order_update,
981
1005
  'trade': self.handle_trade,
982
1006
  'balance': self.handle_balance,
983
1007
  'position': self.handle_positions,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.20
3
+ Version: 4.3.22
4
4
  Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
5
5
  Home-page: https://ccxt.com
6
6
  Author: Igor Kroitor
@@ -264,13 +264,13 @@ console.log(version, Object.keys(exchanges));
264
264
 
265
265
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
266
266
 
267
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.20/dist/ccxt.browser.js
268
- * unpkg: https://unpkg.com/ccxt@4.3.20/dist/ccxt.browser.js
267
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.22/dist/ccxt.browser.js
268
+ * unpkg: https://unpkg.com/ccxt@4.3.22/dist/ccxt.browser.js
269
269
 
270
270
  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.
271
271
 
272
272
  ```HTML
273
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.20/dist/ccxt.browser.js"></script>
273
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.22/dist/ccxt.browser.js"></script>
274
274
  ```
275
275
 
276
276
  Creates a global `ccxt` object:
@@ -1,14 +1,14 @@
1
- ccxt/__init__.py,sha256=xvVPh6kYJGGz6AguCbHgKs_8ehqH9q21FsCrlvY2pvA,15838
1
+ ccxt/__init__.py,sha256=M4A2Cqt4oS1NFyEcRHnzWX7tN9APstM4kHYSQ4Ge7Ig,15838
2
2
  ccxt/ace.py,sha256=IAbVQ73OhU5xdTLO6dtedqa3bSuZ63Me55Se1zotYUY,41656
3
3
  ccxt/alpaca.py,sha256=NadHil-XkNFteqE7GwzIhKCCRjQ7m0xBQBCUlKxS6Sc,47215
4
- ccxt/ascendex.py,sha256=lAGf_eam_1VCVOlbdUyiSZjqwhHLA0aDKippHQBoPNo,151465
4
+ ccxt/ascendex.py,sha256=UjGRc4PgSi9ZNFl8greVZZZMTQxjEQRF8yF5SSUqeJM,151471
5
5
  ccxt/bequant.py,sha256=RBiAmaTbL35DgiV3Hl6uchLUd78V0z1T9riTlNsrpdc,1174
6
6
  ccxt/bigone.py,sha256=XyWou4LP3aF9QoA8tro4DfAmDNDwcIRp_L3J7pTNICc,92209
7
- ccxt/binance.py,sha256=OvDQmv3sG7WM3wFAyeBc-F8BJT1RHh0cw-4agEsbEoc,617154
7
+ ccxt/binance.py,sha256=97LXsFCutZkA5ZVscLOU8oJS1DLfCemEJ9Mb3ZQ-5PU,617552
8
8
  ccxt/binancecoinm.py,sha256=pncdw6Xw2X1Po-vEvAB4nL37scoS_axGAVxetPy1YQs,1645
9
9
  ccxt/binanceus.py,sha256=hdcT4OnadcdFFFjF3GtM0nWv90jqojqwdVS3xWGuW40,9163
10
10
  ccxt/binanceusdm.py,sha256=KPQGlCalQ0eGlPCs2tSanOxaP8O0zFRQjGntA16Yprw,2480
11
- ccxt/bingx.py,sha256=6f64nQOZJLbDk7g_bYSNFyaUCOwVauw6CA-AtgLMP2o,184827
11
+ ccxt/bingx.py,sha256=gQqCS6VQXYx8eGwYATJgBOxcBSaxXrSLu2uAz6SxOHM,184833
12
12
  ccxt/bit2c.py,sha256=cuqPGkIRA7k0nDLLkL2wFjQLi7SJPiO_IMw6kAckIHM,36907
13
13
  ccxt/bitbank.py,sha256=DcA2I_e1tLJyIeLqcDiFsfLuDJxFDUFfcQery4gn1lc,41845
14
14
  ccxt/bitbay.py,sha256=xAIjzGRDVGwoy-Gygd99H0YN4wiaz_0lR0Z14oxaaxc,478
@@ -17,10 +17,10 @@ ccxt/bitcoincom.py,sha256=PyWIl4nC4jp5Uba2lI1At0N_hhNyWD0DoZC_MSyL_s4,502
17
17
  ccxt/bitfinex.py,sha256=vxAmPp9rZKPLb1k8hkWjdv8r8lMx9WmdL5uRs-rZIgY,72278
18
18
  ccxt/bitfinex2.py,sha256=vM8zqvKqufDCcgXjNlUTrJf069f_-ZgLA6kdGFdlhuI,158515
19
19
  ccxt/bitflyer.py,sha256=xY72j19f0YM8CnU0UN_Kv-RteE1NdtMvs_kMxBimCVA,41397
20
- ccxt/bitget.py,sha256=TjoVIoIWhz4qGN_nBzk8ftdBzJhrKGoizLtNqCJpTYQ,422511
20
+ ccxt/bitget.py,sha256=0wBHCxNAniZ1SlxrYz9PiTK4FjvmXSFtGy1tAAyGLZk,422517
21
21
  ccxt/bithumb.py,sha256=JPlhrlnPGyvSztPiNVHSDIx5fjVoHvPGsD8vx1yFfF8,45534
22
22
  ccxt/bitmart.py,sha256=kM0SaiFm7LMGSSh-9iHSyexet0t7C9gLnKFfyORscEU,199137
23
- ccxt/bitmex.py,sha256=Pr96ieP5UyvsGMTjcUScE7zktX5M0zaaFmyWxFZXGfA,126453
23
+ ccxt/bitmex.py,sha256=PxRDGNFOToB2fFulw0Z3XEklLhFmKF_rRfx8LpDtgoo,126584
24
24
  ccxt/bitopro.py,sha256=Ph0uhgzUJzNKji_bIs9SxbY72U7Fu-6QWr2i6WMKB7M,68522
25
25
  ccxt/bitpanda.py,sha256=aiwPkx9lKbVzt4ggoYdq_mIbMGtg5ZtGl2yRHO5xyz8,471
26
26
  ccxt/bitrue.py,sha256=zxBvmkbP1EwfpptdAsMonEig-79p8q5hu_I3iEebQyo,136220
@@ -41,7 +41,7 @@ ccxt/coinbase.py,sha256=xZUHwSI_MTXGGzIlH1xFzD_G-Pcl4kaoX0BCcdhZjaQ,211999
41
41
  ccxt/coinbaseinternational.py,sha256=wieWUwsLsBYAgNpvnnrKseqAE7aOw__apSP6MQK9u9E,87240
42
42
  ccxt/coinbasepro.py,sha256=SFMlNzdnl_vbE_KqnopNmj-u8As_g2D9qFmrpicNsZw,78671
43
43
  ccxt/coincheck.py,sha256=jg8KHt_XUMPlbG1BYUiSHu9-DDBWdnQwV15P9IzKqbY,35664
44
- ccxt/coinex.py,sha256=-7mAEIgzv-KooaGvrLuJM9wcIqDQefwswZMuanxcJDU,260410
44
+ ccxt/coinex.py,sha256=tQJLIaUSjzYfQimyfkdz0mmQ3IhrdylTx3esKi9R1Rw,258783
45
45
  ccxt/coinlist.py,sha256=EU4jtqWALdcLG5X3m2q4xPbQ3-h5-H63Eeb_R3wW-5s,103140
46
46
  ccxt/coinmate.py,sha256=EsXu0mcAkVFwg2VOg47qr6g95a3bDPN2I9AuFQxgkQg,45946
47
47
  ccxt/coinmetro.py,sha256=tZjLAz5XufybO3BU3QGXMrLzinoY4UBhn0JIyXivnys,80700
@@ -50,21 +50,21 @@ ccxt/coinsph.py,sha256=4323ZHKyqZkhtFaQP11EzHC4g4xUJppfvOYK--AKJTE,90632
50
50
  ccxt/coinspot.py,sha256=v8cXXq0Cbv36819yRwXH_oq9clcKYeGnfuiKQdEPCbg,23614
51
51
  ccxt/cryptocom.py,sha256=F7XZh6E-TydWlKsC5UbOPOi-0OuRH3t32vHoPTr6SP0,129757
52
52
  ccxt/currencycom.py,sha256=6iqgt0WXkR0Sc2hH8uwbWe-EvS0Ex4k_gwaD2_Ao1-Q,86814
53
- ccxt/delta.py,sha256=WxVf7rPr93Jj5j0ZjhLyd3mZRbR-JqLa-V4rCNXW6yY,150505
53
+ ccxt/delta.py,sha256=MyWJ_Ss8CsDrJ7tTX_nZXbXJKQAxCqCvZ2t710mc6JA,150511
54
54
  ccxt/deribit.py,sha256=KzOIUrgTQqf_MLUtWZxcfRcB3C6-_A_IzPGmmKy_IJI,160599
55
- ccxt/digifinex.py,sha256=fZslEaCtJAvY3ZZUvvF8Givv6fnSUA_w5ua8h2NDDlg,168041
56
- ccxt/exmo.py,sha256=zP0Qcj5Xbmb6F7bHxHXw5kW0zc2YnCs2YMdQP2bnBmo,114449
55
+ ccxt/digifinex.py,sha256=M3P6gE3FdMMw_8cw1bOttrbHO2P1a-lb7SKuKnntJNY,168047
56
+ ccxt/exmo.py,sha256=f8Lt50PIzX30sfLIJPLJDgNqtZ7myzNy-RqlvU2J_bY,114455
57
57
  ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
58
- ccxt/gate.py,sha256=iuus_SzDxbgGobrqy7HmfgnB5LPXG1TcgTE9Qyh-w3s,319852
58
+ ccxt/gate.py,sha256=zBgQMJf47mAhExltjDfE_Jo7BJixGHH_NJ7VjMof-y4,319858
59
59
  ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
60
60
  ccxt/gemini.py,sha256=lM9wve3Qofl2Be-e3aI3w3qMhBxsrUGqqoldaNf52Jw,80658
61
- ccxt/hitbtc.py,sha256=69dxqtBhiv1iFQZUZ-C9j00fdjKsEsw47Jgsoptr9-Q,153042
61
+ ccxt/hitbtc.py,sha256=zxqgsAlQKBq-MLzjraRDife-eXlwSYwNdy_puqcyJHA,153048
62
62
  ccxt/hitbtc3.py,sha256=qRAr4Zvaju9IQWRZUohdoN7xRnzIMPq8AyYb3gPv-Is,455
63
63
  ccxt/hollaex.py,sha256=UuHM9K8REH3e_yqXVCD7rEMmoYu1p5Jd3EecroLmqLY,75945
64
64
  ccxt/htx.py,sha256=UXnQJXoti1fwf2-Vlma28IX7Z8RBgGonY0vsRL4_fPE,420457
65
65
  ccxt/huobi.py,sha256=4vaG7IRN7fyjaJ_ac6S-njlHOfSEN5de7aq0noznxYw,438
66
66
  ccxt/huobijp.py,sha256=9axVzp9j-nNsScEnmOGJpPahbcPbuMq6aoR1zq3iLvA,87968
67
- ccxt/hyperliquid.py,sha256=0trDGiIGIBB37T8zL457ygdT12nlgcfrPY5l7NzpySw,99839
67
+ ccxt/hyperliquid.py,sha256=11PVum5F0DV7y2n23KFbFSvInB2F7YYr0QTWfI-MHN0,100695
68
68
  ccxt/idex.py,sha256=yU8HDWBpXS3GREJFdYdGXcp18vj9RAB1E0R4BoXbWVQ,72998
69
69
  ccxt/independentreserve.py,sha256=iobtHiT8KlD1-mDJeoZCzPEPteSZz512mxgnrTnsECo,32175
70
70
  ccxt/indodax.py,sha256=ulvlP7-xpQWXrBfvRn-GWMoOXr_4MBBMrkTDDgM4fbQ,51921
@@ -83,11 +83,11 @@ ccxt/ndax.py,sha256=mkssvFTShijI-0CdVh9baMEWMz7cLCilzEcC-Ta5nJA,108601
83
83
  ccxt/novadax.py,sha256=40gU-jjUI0Gtpb7pqwuB2ZxZmCIyaaEn3y9dohCvJbs,64240
84
84
  ccxt/oceanex.py,sha256=YH3tUzegvfG0fUCjtmtb3USOQtlL1tlqQ40B_i-xx7w,37860
85
85
  ccxt/okcoin.py,sha256=Vjj3WQ_GS5WF0IUwJHcvo4SUF0uh55odGfkd1TfHlSA,151151
86
- ccxt/okx.py,sha256=CagRTsREwzicph-SCSZJtweWO9MoTolLFATlZFQK-tM,376894
86
+ ccxt/okx.py,sha256=C-RC8I5teheFdZ54ny3hC9zmjcYRmkpClrQQ1kgQ07s,377057
87
87
  ccxt/onetrading.py,sha256=MdzNJW9ViYhpx4S5cmoVu9SCX1nD3oZYfVfnPkhhfwE,88113
88
88
  ccxt/p2b.py,sha256=FYxL36KwtaLIIQ793frJEtqtHyzm39hNK0mJEzAAH0U,54213
89
89
  ccxt/paymium.py,sha256=kuMPTXyqU98kMpKeiSMicD51bSwprXHU0WrgLlAsxGY,24244
90
- ccxt/phemex.py,sha256=ocgoZUZjmNRQtg8CjCUoXziqddiGQHS7vh7dMpPX_Fc,219356
90
+ ccxt/phemex.py,sha256=oz-G8LbnP8op7NZgt5sC-NMdZmJfM3n1l6QQE6gawus,220593
91
91
  ccxt/poloniex.py,sha256=WfJ93JWxt5BiIidD2aiC09GSZI-EFhwdeBbJYZ47v1E,101991
92
92
  ccxt/poloniexfutures.py,sha256=3bxdkVWbe_T6r4IvekvM6x-Hd7cSng5SDaDjgPZSk8k,77799
93
93
  ccxt/probit.py,sha256=0WNy6ZsZq9qz7tt_V_h8lxOgvM5-PwNSJSDb3G4RUZ0,76379
@@ -109,10 +109,10 @@ ccxt/abstract/alpaca.py,sha256=vgzqnRTvEnAbLYgfDzGpmVUZxRLWC8BWA6nQ16m-xXY,10382
109
109
  ccxt/abstract/ascendex.py,sha256=5A8Zgq77jsdHlEzlTW_2nDybUUVfNVVOu6BgY3TWqRM,11394
110
110
  ccxt/abstract/bequant.py,sha256=OTBtNu3DQeAqAC_Lbi0NePUs-ZQQllcLrVDI2G04nwQ,15601
111
111
  ccxt/abstract/bigone.py,sha256=bQdIXCVkKgnZ7ZjpQ1widGDlXNe0PtP_12EQKoEN9z0,4895
112
- ccxt/abstract/binance.py,sha256=dwbtZqKhYz7kAYV0GhLzg4YXAWE3env2F1Rg4Xjmekg,92016
113
- ccxt/abstract/binancecoinm.py,sha256=dwbtZqKhYz7kAYV0GhLzg4YXAWE3env2F1Rg4Xjmekg,92016
114
- ccxt/abstract/binanceus.py,sha256=kz7rWWAzoFruY1Oj87NL80vWKnrukXJC-F6duaaej1c,98736
115
- ccxt/abstract/binanceusdm.py,sha256=dwbtZqKhYz7kAYV0GhLzg4YXAWE3env2F1Rg4Xjmekg,92016
112
+ ccxt/abstract/binance.py,sha256=wdQ66Fqofy60iO6EDa3QWIR-UmJJN9wAZrFAWZPvCBk,92208
113
+ ccxt/abstract/binancecoinm.py,sha256=wdQ66Fqofy60iO6EDa3QWIR-UmJJN9wAZrFAWZPvCBk,92208
114
+ ccxt/abstract/binanceus.py,sha256=44asjK9YYNkuskO5j_DEBwXE_-httynffOkyCAEV-L8,98928
115
+ ccxt/abstract/binanceusdm.py,sha256=wdQ66Fqofy60iO6EDa3QWIR-UmJJN9wAZrFAWZPvCBk,92208
116
116
  ccxt/abstract/bingx.py,sha256=ar7VFcqcjPNWwpjLMOpBqwb8cu7mUzeuUeBEvN6zgUQ,16032
117
117
  ccxt/abstract/bit2c.py,sha256=np6i756kSB5dO3Nj6POLKxkWkpYcsGg-4LS8BwPrizI,2830
118
118
  ccxt/abstract/bitbank.py,sha256=hrHsD7Uvtyy2o2lzCHau3-eNq16pnZ3-YDQ6Tq_sxYU,2735
@@ -146,7 +146,7 @@ ccxt/abstract/coinbase.py,sha256=GFXDh_Bf65Gsx_DmgOrRG2jpM3IdITE3Agqz_LZTJfo,155
146
146
  ccxt/abstract/coinbaseinternational.py,sha256=wf1fF31fQ1TAVSk1X4ju6LYQc7tHI1lN5nxRnhnzsbk,4770
147
147
  ccxt/abstract/coinbasepro.py,sha256=eQMtsIw94xJqQO_xXmrrHdc_YFmhVZNW4OXCWv4Nx1w,7162
148
148
  ccxt/abstract/coincheck.py,sha256=3IIVmryXmzxXqi6IleUmfDZIUMOn_L_4G9Iw8BuEEGo,3417
149
- ccxt/abstract/coinex.py,sha256=GMvaJaiMkjW0YnG5S85PxSo-8glEjv3w0e2sg6ScjwY,34678
149
+ ccxt/abstract/coinex.py,sha256=xPxsdMIhrtHfZO7w5cW-1RpR12H20u1tTPNFaNaeXOU,34678
150
150
  ccxt/abstract/coinlist.py,sha256=t4Xc9xyWNHgHAz7nyplj8PmgrX4knA3cnk2uEJCvkQk,6538
151
151
  ccxt/abstract/coinmate.py,sha256=LYCJZIWe3sidZUozM7jBTB-AiN3cMElFhYqO9d1QvfI,6842
152
152
  ccxt/abstract/coinmetro.py,sha256=W2eAbFInYZMm1BgfZMRuCX7i201hT4q6QCtie30-_AQ,3975
@@ -188,7 +188,7 @@ ccxt/abstract/ndax.py,sha256=M98Ys406KT6T19Y98dXriD6YjzfglHHbnfQw-PDYWtM,11878
188
188
  ccxt/abstract/novadax.py,sha256=IvQFP_v2Q-Sx0tK2bXx4oY81rtNwC7gkc75p_E2jhKw,3093
189
189
  ccxt/abstract/oceanex.py,sha256=a0xAelMYDY_J3QwwLyIX2tGQcv4z2gmX_yJyC6FqoFg,1721
190
190
  ccxt/abstract/okcoin.py,sha256=3NmYh-68W_4AXmkqjkf9dRaJcPgNYQG5mKZssJKT4gs,9414
191
- ccxt/abstract/okx.py,sha256=WA3r_-wLlzFsEyMV0cW09yO6Lm1EnBrtYFe-VvbGHp0,46063
191
+ ccxt/abstract/okx.py,sha256=DyQjXiMQfUnXWoUZHmykWVYDgt8VD0n3yxqAF4LT6a0,46458
192
192
  ccxt/abstract/onetrading.py,sha256=TtJq4d44lrutV8wcK0lX4v0EfQ72ly6fxR-zB7-FSuI,3859
193
193
  ccxt/abstract/p2b.py,sha256=XwaH1hLIi2T6RHltUwFj28Y5fbo6dc0jbjI01sVeOJw,2054
194
194
  ccxt/abstract/paymium.py,sha256=Bol6PEkHg_47betqBnL4aQQ4IhIp4owID_12VfDqn0E,2843
@@ -208,17 +208,17 @@ ccxt/abstract/woofipro.py,sha256=El50vWGAV-4QPIDhgSnd4egfvk246NB6vTC-8h722vs,160
208
208
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
209
209
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
210
210
  ccxt/abstract/zonda.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
211
- ccxt/async_support/__init__.py,sha256=FLH-v2mNsOmsPEBaRdXDO0sqmWJ-d8yugz2WmHd0TwQ,15601
211
+ ccxt/async_support/__init__.py,sha256=d2w0vWwfOJx4NTDsVwCnNvPReHr9CLXP9_dBtV9VaI4,15601
212
212
  ccxt/async_support/ace.py,sha256=xVxaTocpMapAIl4ApPApw69Rd-RDuU0_vleJnVt_qhI,41880
213
213
  ccxt/async_support/alpaca.py,sha256=rjD8PdQr1B5e9hvaoTQBKVtWwHLs04e6_-gooXl4eEE,47427
214
- ccxt/async_support/ascendex.py,sha256=Wx99HSSvYDOqOUvTkOLOHsq7-El9IATGEpt2lp-6uec,152253
214
+ ccxt/async_support/ascendex.py,sha256=w4GaR3Xm9fkIAdXostTsu0Pnw9VkRrT6ar57gU9HSHw,152259
215
215
  ccxt/async_support/bequant.py,sha256=1hTwHovo1bW1XTIc8ZKjvJ-Xg6LfmpGdzT7TepykaVM,1188
216
216
  ccxt/async_support/bigone.py,sha256=_uNS1hUzXNxkVJ227FHU1N0BeojYws-Fs0qNXpm4T_w,92663
217
- ccxt/async_support/binance.py,sha256=J9ivyvkqiunV-Q3_FWHCBMVVuempjkIk3W89-qClZ04,619852
217
+ ccxt/async_support/binance.py,sha256=rzAp7cFuu-inpl7D6qvjByl9StcZZc1XiTiXlUFkHJU,620262
218
218
  ccxt/async_support/binancecoinm.py,sha256=IY3RLZptQA2nmZaUYRGfTa5ZY4VMWBpFYfwHc8zTHw0,1683
219
219
  ccxt/async_support/binanceus.py,sha256=c-K3Tk7LaRJjmYdCx8vBOqsx01uXrtvt0PC2ekBiD0g,9177
220
220
  ccxt/async_support/binanceusdm.py,sha256=-1r4A4tmV2pCiLGO80hzq7MIIj4MTzOD7buZGv6JauA,2518
221
- ccxt/async_support/bingx.py,sha256=P2I7gzNUAYWddJrq0lWuA341IelT8t2XbwcK9cH7_iw,185863
221
+ ccxt/async_support/bingx.py,sha256=jrrnzvir-KfdvwPNA5ptXX7bsFEeAPhS-gdd2aMc8ZA,185869
222
222
  ccxt/async_support/bit2c.py,sha256=doMZLyPCUF4KPe-P3-MlXNxTr2GD7EAkmXqI7zM3frY,37119
223
223
  ccxt/async_support/bitbank.py,sha256=Vu3C5eHq9SndHeX_plwLdSSPFmrwpVVvUKSg7AI-c9A,42105
224
224
  ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
@@ -227,10 +227,10 @@ ccxt/async_support/bitcoincom.py,sha256=RiqwhK3RfxQ_PXTa860fphDCvwA8dalL-_rXlK85
227
227
  ccxt/async_support/bitfinex.py,sha256=oS5QBr6YaR5PKR2Lca0S8mEkz_mBczGfMuAIUKQ6kKU,72718
228
228
  ccxt/async_support/bitfinex2.py,sha256=aXWqz-Ub3HMd-eHyrAZEAV8FYkOX9ej-uBLG30Byn2E,159249
229
229
  ccxt/async_support/bitflyer.py,sha256=KNOVDnBONry4JUJiyPKXQvP_OkxKTluly7ZdtCl-_M0,41705
230
- ccxt/async_support/bitget.py,sha256=39hP1C8oT8BaAObhs7wrV4aTwnFgwr3iM0h2RlTIOng,424135
230
+ ccxt/async_support/bitget.py,sha256=DAm7jv8jQfQHB4JLnIL9-8T9FEjedXcvjLeTy_1q_jQ,424141
231
231
  ccxt/async_support/bithumb.py,sha256=gasefOqFJX0Aav2PWMILHS1kr1lcHhJf3OdKaXuVF6M,45764
232
232
  ccxt/async_support/bitmart.py,sha256=wKlX--oFHZI8rWzdrR8jeYvg4dWfuARfSZ67yO9JgFc,200057
233
- ccxt/async_support/bitmex.py,sha256=CfW7GjqbJh0dexI53Py1b2u5_EUD5IVVutY96VrRR30,127031
233
+ ccxt/async_support/bitmex.py,sha256=tnw76bg38oOvz-luU-c7K4A75MwSsfwJs9VrzRW5OHs,127162
234
234
  ccxt/async_support/bitopro.py,sha256=kIorVevTcOvIqfsCn0z-QXscJjIDcG3qq9_WzC6C_ks,68926
235
235
  ccxt/async_support/bitpanda.py,sha256=2k3URBWrpnh2xHa7JiYenI7_4MW5UeOPGzetlmRkR4U,485
236
236
  ccxt/async_support/bitrue.py,sha256=xJ3EQ_4Rgm428X4z1FyI0g9qK3Uzq8fcrEvhSubttV8,136878
@@ -251,7 +251,7 @@ ccxt/async_support/coinbase.py,sha256=vxeIN4tbnXWt6ihGSRhdwVmKtwmyI67Rk-nwoTGFUD
251
251
  ccxt/async_support/coinbaseinternational.py,sha256=fuU-h5UpO_nVs1j8KA7oGsQlP0kQefuPycZrc8ph6OQ,87794
252
252
  ccxt/async_support/coinbasepro.py,sha256=GnzjqgXso5wqAVZbkMcMjcpQ1BJ7um3BtBbhrM_X0rI,79177
253
253
  ccxt/async_support/coincheck.py,sha256=ThRQX8E3NZrGc9Z__UIb7p0AtHgnq_DBhe9GzE9SlaQ,35870
254
- ccxt/async_support/coinex.py,sha256=Dw4z9vwS-75nIOuD2VZaU8qlT6Xs0DEujKYuJy5JDCQ,261704
254
+ ccxt/async_support/coinex.py,sha256=NIGxG0CxJ1wtBGIis8ZLkxFSVABWZHkP67zDrqCBGSE,260077
255
255
  ccxt/async_support/coinlist.py,sha256=MKLhRyaw0DHkpRfR-Vj9NS0SwCpYUx8nOxZJ26swIMY,103628
256
256
  ccxt/async_support/coinmate.py,sha256=lc8p0aQXu-oSf2whiqvm0QoBhDVx9wf50CcFeucdXcY,46212
257
257
  ccxt/async_support/coinmetro.py,sha256=NLqNdcJ_zXcNqaxqkrloL9PqnogbQ6OzA5e_Gl4ACtk,81020
@@ -260,21 +260,21 @@ ccxt/async_support/coinsph.py,sha256=8Rr4UeSSN1EjDnFJXVtrecr3ftOAkM2f061dSGvpBW8
260
260
  ccxt/async_support/coinspot.py,sha256=O3qPXU4cJG4zq2-5Wz0xBMtVZ0q5vX5lJL5Rjv83TBk,23766
261
261
  ccxt/async_support/cryptocom.py,sha256=FtbBTSloewIbF7Yrd9FWzGtdar_MtpxWFC-AOO9_4ms,130329
262
262
  ccxt/async_support/currencycom.py,sha256=bx_u15TgEdIv1d5PYKd9MAywNDGa-xHKJDQalj94Xyk,87236
263
- ccxt/async_support/delta.py,sha256=BWQQTPTA75x-b78zPNqgdnDd027-iYM26dARt6VIflA,151113
263
+ ccxt/async_support/delta.py,sha256=d-QzbgCSSWFcFq8zz228ubSDFZoY5wLcTXgjhb0K8DQ,151119
264
264
  ccxt/async_support/deribit.py,sha256=aRvr1fiI-2yjtgpYbtD5bweMEe_UgC5mNJqHE21e3wg,161375
265
- ccxt/async_support/digifinex.py,sha256=R4sAL9noOId4cVVLzbI6eHGn1hTUrXQKyCmAVEmH3tk,169011
266
- ccxt/async_support/exmo.py,sha256=TlI9LiK9Lvyyuzv7V_fM9Z06Eb3Teyr-66-NsnITjNI,115081
265
+ ccxt/async_support/digifinex.py,sha256=Z2RHh5LoQ21sd6q9vI_N-Yv7-HTAwj31wg2NlXSNDt0,169017
266
+ ccxt/async_support/exmo.py,sha256=B5JTcYSNc5U6JRSQirXM-rS85okZPfwJVLllhzSQEqE,115087
267
267
  ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,1250
268
- ccxt/async_support/gate.py,sha256=uKSnD02KIBUL-DmvIVPoEiq0nUo_JQ73fLZFkqgchTU,321530
268
+ ccxt/async_support/gate.py,sha256=2kkkqjjS8YD02gAWVo5KNwpY0Pv-nNMK_ZVoV3imi_8,321536
269
269
  ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
270
270
  ccxt/async_support/gemini.py,sha256=C2dwqn6ivyYGKKAFx_V4RGJ68dduATbNTFDjmdgTWL4,81171
271
- ccxt/async_support/hitbtc.py,sha256=VyoG0goxk7-VZ051oTPfZiROwykIAkurW28NpkpjAKk,154088
271
+ ccxt/async_support/hitbtc.py,sha256=eC6JmRQWl2JLdqnMUXcOhwN44RvS6yJ_EtlHO1HVY9Y,154094
272
272
  ccxt/async_support/hitbtc3.py,sha256=dmSYoD2o4av_zzbZI8HNIoj8BWxA7QozsVpy8JaOXzU,469
273
273
  ccxt/async_support/hollaex.py,sha256=NNeoCHSMGa61XV1xHBIBl2uYhVQJeq8s7yPIX8LZv0k,76379
274
274
  ccxt/async_support/htx.py,sha256=VlWF83N1UYlMsAUI0wDjNsekeq5AkHlThkwLqOH5cXI,422813
275
275
  ccxt/async_support/huobi.py,sha256=fup0j6wQ1khAtfbb1H4CSyJAOzhxuoHMmrM6sgTuhr8,452
276
276
  ccxt/async_support/huobijp.py,sha256=ezxDkFv32LMgLVbrRmpaUT1oUZfl-lxHQ_hRSsq-8qg,88468
277
- ccxt/async_support/hyperliquid.py,sha256=3fhFF2T4QIlKV8kDcPrYN2DLVszlHZ2YnB1M5o2TD4g,100359
277
+ ccxt/async_support/hyperliquid.py,sha256=-DmuoRQd5mlkIAxZWbEp7ReWpR0N6e9Tdgdj0bLZ2hM,101215
278
278
  ccxt/async_support/idex.py,sha256=etgzMUryt3ssiJDmrNWh4Hmo_xP61V-TX1uShRWjXiU,73474
279
279
  ccxt/async_support/independentreserve.py,sha256=8UTpFWJtrfZTeMhRfNK8mGiOu0-p-JCbK13G6spPueY,32435
280
280
  ccxt/async_support/indodax.py,sha256=Duu0r6PCzPlQLNqj2v2smCh6xE65S9LpP7wwQWa5ygM,52229
@@ -293,11 +293,11 @@ ccxt/async_support/ndax.py,sha256=ibm_CfLsDJZAfV5dXv8DzMU-wcRuK0j-dD9r58WqSew,10
293
293
  ccxt/async_support/novadax.py,sha256=ccPzgcVRmpxljeU0T5nHkicaYDCAXONCGS5-i7tuXZs,64608
294
294
  ccxt/async_support/oceanex.py,sha256=aYdYRl42FDFpaPaoLaiGYxvDM_7aq0dEjAhUa0NsJQQ,38180
295
295
  ccxt/async_support/okcoin.py,sha256=ojFpb1obIUr7bJBUe3YuQPq-JHiYkFDe8BRfWkD7ths,151675
296
- ccxt/async_support/okx.py,sha256=iPJmMdxXbHO6Qv-uMFNMAgJt2rX-PB33Y5HWCrU1JHo,378481
296
+ ccxt/async_support/okx.py,sha256=smCT2Harj61L4dxsra9SFA70IJydH4EbOgSbjCabevg,378644
297
297
  ccxt/async_support/onetrading.py,sha256=Px7iH4HjaGmAVMNjLwZdD8RJwspUleMdABCGQvmoNbA,88565
298
298
  ccxt/async_support/p2b.py,sha256=KrNc3sLbHQCxbgShyqWytuQVaQfKa42Q6_HcUYNUaKI,54455
299
299
  ccxt/async_support/paymium.py,sha256=_YfQn6Xwy0k9VMVOqmDGCfI8FhN_WKmyE7Eo9jR5u9I,24432
300
- ccxt/async_support/phemex.py,sha256=-1fIw7CsP5OvF-QCZnwYC5o7GFS3Xeza7dfIVs2xRkg,220168
300
+ ccxt/async_support/phemex.py,sha256=GsBiRkNc72_j8pjzxjXI9V0RCQC8Yy7tZ2ypSqKCbUc,221405
301
301
  ccxt/async_support/poloniex.py,sha256=tGl5AoEd2P0K0Af6twI2uwcNV81WDe2PCN4VAPkb3nQ,102539
302
302
  ccxt/async_support/poloniexfutures.py,sha256=VL4oNy3YJXw-UsiixEsU7wzw4JTpICXu6GdFdpcAKrw,78185
303
303
  ccxt/async_support/probit.py,sha256=oRpeioq1soJtild3vH6QE7ufX1RLfyQUBCsmyQW-j3w,76771
@@ -314,7 +314,7 @@ ccxt/async_support/yobit.py,sha256=kvMIVVjf8XxE7cKt51iHtqH7zgmFKc5ZVhk1dKDtlxE,5
314
314
  ccxt/async_support/zaif.py,sha256=lzrmIYPlNJquYkK-fq9DjqS8EfiAtofXnPcTMf3XOMM,28161
315
315
  ccxt/async_support/zonda.py,sha256=bS_Oq8FVjbLxnxFVVg-_5ZlNS0CH9QxSUVKL91IR9rc,80912
316
316
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
317
- ccxt/async_support/base/exchange.py,sha256=CagmEBQISMvrDQ7DV4hDaCF2uLSRm7aUSaFxJZR-fq0,108636
317
+ ccxt/async_support/base/exchange.py,sha256=zRA1jhYuRj3hJKrYd-lktrn6kpczkGEPFt4F8cBsMrI,108636
318
318
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
319
319
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
320
320
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=Ed1765emEde2Hj8Ys6f5EjS54ZI1wQ0qIhd04eB7yhU,5751
@@ -328,10 +328,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=Pxrq22nCODckJ6G1OXkYEmUunIu
328
328
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
329
329
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
330
330
  ccxt/base/errors.py,sha256=FGdyULeNCNcl52gA_CNhe2dZmat9GJGkTdlIyDXAF_A,4213
331
- ccxt/base/exchange.py,sha256=_VrF3CssEBRD-OJ3UeMP2yAGCEr5sFVTkCjbXKHJBs0,278166
331
+ ccxt/base/exchange.py,sha256=_nSr69S9bP_CSZzyzxcid4CAX84qlHW4QsHvTEhl1GY,278172
332
332
  ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
333
333
  ccxt/base/types.py,sha256=3hBdiD2EO7W-pwmBrDeDYMEdFGcnT0QqQZa3l8ywTVM,9027
334
- ccxt/pro/__init__.py,sha256=GZ0d9pYzkdvH7XOZGD9-O9bloc1idCpdQSJU9z1jtEQ,7102
334
+ ccxt/pro/__init__.py,sha256=yel7b2yG0qyDXvCO1G2Ducfj64vBqmID_13VrSwlsSI,7102
335
335
  ccxt/pro/alpaca.py,sha256=7ePyWli0949ti5UheIn553xmnFpedrNc2W5CKauSZio,27167
336
336
  ccxt/pro/ascendex.py,sha256=fCM3EujSfJvtvffqI56UAstTtwjXFIocwukm15cF8rE,35432
337
337
  ccxt/pro/bequant.py,sha256=5zbsP8BHQTUZ8ZNL6uaACxDbUClgkOV4SYfXT_LfQVg,1351
@@ -379,7 +379,7 @@ ccxt/pro/independentreserve.py,sha256=39qWY0BpNoOfTpunMA9gwBePU8Ney6SO_zVuDy4uWL
379
379
  ccxt/pro/kraken.py,sha256=e4VgjQXUAJaWaCQf2r2PG8qBYjriDYhil-Enx8VTs5E,60764
380
380
  ccxt/pro/krakenfutures.py,sha256=QTeLsAXmM3CxLbDI6ktESj8LYQYhJISsB95Za1nFzh8,63917
381
381
  ccxt/pro/kucoin.py,sha256=wxUoyXjTV0iU5X4C2EdWRFFTzljICccpRJq4b9MWmmg,50705
382
- ccxt/pro/kucoinfutures.py,sha256=sjhdtLP8WMisETvXnl6TP1xVx7TK5iP0x0R4LE7M7gI,46006
382
+ ccxt/pro/kucoinfutures.py,sha256=2aro_LzQFD-U3Bb5C0V1q7nv7WUG4-kKhS7xQIGz9Wk,50026
383
383
  ccxt/pro/lbank.py,sha256=QnxR5n96itlssIk9_4Qv5kNeVgEsKOFua5UODFWnUes,35105
384
384
  ccxt/pro/luno.py,sha256=2Y-8IQrrmwX8Y1lLWVDtrFjZD3t3qtMZJQ_JjNwj65s,12348
385
385
  ccxt/pro/mexc.py,sha256=caL4b1Q1YEJsKKQG5mmscqacYfkbyUuN0xin00eYPoc,43183
@@ -395,7 +395,7 @@ ccxt/pro/probit.py,sha256=RLTnROQUmX31XQ3ymIZkiDkop3eiSVK70Yw81yDcde4,22822
395
395
  ccxt/pro/upbit.py,sha256=CSqwaNCxECo9FI7aq_7ege0c8IjWEmsoPZL06Kw9KDo,9654
396
396
  ccxt/pro/wazirx.py,sha256=icMUhtixMs5UvVOtqJLSJYMJ9hdNixipmT8bGs6Im7s,30043
397
397
  ccxt/pro/whitebit.py,sha256=7WNCZBD6ZY_bRU_BXBe-ei2D7NfDHwyoZtOVbfgcxYQ,35021
398
- ccxt/pro/woo.py,sha256=v50vbitTZ8EjGx0L8ckqs8UBjLB_KfCGC5ayVlxpkJo,42372
398
+ ccxt/pro/woo.py,sha256=tEWZJgzB6Wj0CQSJPIDF0osVgZ9CNqL1nZsHGmF5Oew,43584
399
399
  ccxt/pro/woofipro.py,sha256=4Nke9Va3a18QJo98P9yTGgKVW9F4BJ-7sI_vOK30oTw,48892
400
400
  ccxt/static_dependencies/__init__.py,sha256=GpOAh5lJ5Kyk1K1lWf9DzDZeZ-prHXXK38dVpW5GPfc,84
401
401
  ccxt/static_dependencies/ecdsa/__init__.py,sha256=Xaj0G79BLtBt2YZcOOMV8qOlQZ7fIJznNiHhiEEZfQA,594
@@ -531,7 +531,7 @@ ccxt/test/base/test_ticker.py,sha256=cMTIMb1oySNORUCmqI5ZzMswlEyCF6gJMah3vfvo8wQ
531
531
  ccxt/test/base/test_trade.py,sha256=PMtmB8V38dpaP-eb8h488xYMlR6D69yCOhsA1RuWrUA,2336
532
532
  ccxt/test/base/test_trading_fee.py,sha256=2aDCNJtqBkTC_AieO0l1HYGq5hz5qkWlkWb9Nv_fcwk,1066
533
533
  ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
534
- ccxt-4.3.20.dist-info/METADATA,sha256=wtc6qHer3HgDEF3aT7iFUTnu697rL3b2CtWp6GRO-CU,112795
535
- ccxt-4.3.20.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
536
- ccxt-4.3.20.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
537
- ccxt-4.3.20.dist-info/RECORD,,
534
+ ccxt-4.3.22.dist-info/METADATA,sha256=yR1OdMeoCar2UcRV99DGbcB20iIp6gYg2WkpHoLFPng,112795
535
+ ccxt-4.3.22.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
536
+ ccxt-4.3.22.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
537
+ ccxt-4.3.22.dist-info/RECORD,,
File without changes