ccxt 4.3.98__py2.py3-none-any.whl → 4.4.1__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.
ccxt/__init__.py CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
  # ----------------------------------------------------------------------------
24
24
 
25
- __version__ = '4.3.98'
25
+ __version__ = '4.4.1'
26
26
 
27
27
  # ----------------------------------------------------------------------------
28
28
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.98'
7
+ __version__ = '4.4.1'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # -----------------------------------------------------------------------------
4
4
 
5
- __version__ = '4.3.98'
5
+ __version__ = '4.4.1'
6
6
 
7
7
  # -----------------------------------------------------------------------------
8
8
 
@@ -1330,10 +1330,11 @@ class bitget(Exchange, ImplicitAPI):
1330
1330
  },
1331
1331
  'precisionMode': TICK_SIZE,
1332
1332
  'commonCurrencies': {
1333
- 'JADE': 'Jade Protocol',
1333
+ 'APX': 'AstroPepeX',
1334
1334
  'DEGEN': 'DegenReborn',
1335
- 'TONCOIN': 'TON',
1335
+ 'JADE': 'Jade Protocol',
1336
1336
  'OMNI': 'omni', # conflict with Omni Network
1337
+ 'TONCOIN': 'TON',
1337
1338
  },
1338
1339
  'options': {
1339
1340
  'timeframes': {
@@ -626,6 +626,7 @@ class gate(Exchange, ImplicitAPI):
626
626
  'MPH': 'MORPHER', # conflict with 88MPH
627
627
  'POINT': 'GATEPOINT',
628
628
  'RAI': 'RAIREFLEXINDEX', # conflict with RAI Finance
629
+ 'RED': 'RedLang',
629
630
  'SBTC': 'SUPERBITCOIN',
630
631
  'TNC': 'TRINITYNETWORKCREDIT',
631
632
  'VAI': 'VAIOT',
ccxt/base/exchange.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.98'
7
+ __version__ = '4.4.1'
8
8
 
9
9
  # -----------------------------------------------------------------------------
10
10
 
ccxt/bitget.py CHANGED
@@ -1329,10 +1329,11 @@ class bitget(Exchange, ImplicitAPI):
1329
1329
  },
1330
1330
  'precisionMode': TICK_SIZE,
1331
1331
  'commonCurrencies': {
1332
- 'JADE': 'Jade Protocol',
1332
+ 'APX': 'AstroPepeX',
1333
1333
  'DEGEN': 'DegenReborn',
1334
- 'TONCOIN': 'TON',
1334
+ 'JADE': 'Jade Protocol',
1335
1335
  'OMNI': 'omni', # conflict with Omni Network
1336
+ 'TONCOIN': 'TON',
1336
1337
  },
1337
1338
  'options': {
1338
1339
  'timeframes': {
ccxt/gate.py CHANGED
@@ -625,6 +625,7 @@ class gate(Exchange, ImplicitAPI):
625
625
  'MPH': 'MORPHER', # conflict with 88MPH
626
626
  'POINT': 'GATEPOINT',
627
627
  'RAI': 'RAIREFLEXINDEX', # conflict with RAI Finance
628
+ 'RED': 'RedLang',
628
629
  'SBTC': 'SUPERBITCOIN',
629
630
  'TNC': 'TRINITYNETWORKCREDIT',
630
631
  'VAI': 'VAIOT',
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.98'
7
+ __version__ = '4.4.1'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
ccxt/pro/hyperliquid.py CHANGED
@@ -5,10 +5,12 @@
5
5
 
6
6
  import ccxt.async_support
7
7
  from ccxt.async_support.base.ws.cache import ArrayCache, ArrayCacheBySymbolById, ArrayCacheByTimestamp
8
- from ccxt.base.types import Any, Int, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
8
+ from ccxt.base.types import Int, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade
9
9
  from ccxt.async_support.base.ws.client import Client
10
10
  from typing import List
11
+ from typing import Any
11
12
  from ccxt.base.errors import ExchangeError
13
+ from ccxt.base.errors import UnsubscribeError
12
14
 
13
15
 
14
16
  class hyperliquid(ccxt.async_support.hyperliquid):
@@ -160,6 +162,32 @@ class hyperliquid(ccxt.async_support.hyperliquid):
160
162
  orderbook = await self.watch(url, messageHash, message, messageHash)
161
163
  return orderbook.limit()
162
164
 
165
+ async def un_watch_order_book(self, symbol: str, params={}) -> Any:
166
+ """
167
+ unWatches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
168
+ :see: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
169
+ :param str symbol: unified symbol of the market to fetch the order book for
170
+ :param dict [params]: extra parameters specific to the exchange API endpoint
171
+ :returns dict: A dictionary of `order book structures <https://docs.ccxt.com/#/?id=order-book-structure>` indexed by market symbols
172
+ """
173
+ await self.load_markets()
174
+ market = self.market(symbol)
175
+ symbol = market['symbol']
176
+ subMessageHash = 'orderbook:' + symbol
177
+ messageHash = 'unsubscribe:' + subMessageHash
178
+ url = self.urls['api']['ws']['public']
179
+ id = str(self.nonce())
180
+ request: dict = {
181
+ 'id': id,
182
+ 'method': 'unsubscribe',
183
+ 'subscription': {
184
+ 'type': 'l2Book',
185
+ 'coin': market['base'] if market['swap'] else market['id'],
186
+ },
187
+ }
188
+ message = self.extend(request, params)
189
+ return await self.watch(url, messageHash, message, messageHash)
190
+
163
191
  def handle_order_book(self, client, message):
164
192
  #
165
193
  # {
@@ -230,6 +258,28 @@ class hyperliquid(ccxt.async_support.hyperliquid):
230
258
  return self.filter_by_array_tickers(tickers, 'symbol', symbols)
231
259
  return self.tickers
232
260
 
261
+ async def un_watch_tickers(self, symbols: Strings = None, params={}) -> Any:
262
+ """
263
+ unWatches a price ticker, a statistical calculation with the information calculated over the past 24 hours for all markets of a specific list
264
+ :see: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
265
+ :param str[] symbols: unified symbol of the market to fetch the ticker for
266
+ :param dict [params]: extra parameters specific to the exchange API endpoint
267
+ :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
268
+ """
269
+ await self.load_markets()
270
+ symbols = self.market_symbols(symbols, None, True)
271
+ subMessageHash = 'tickers'
272
+ messageHash = 'unsubscribe:' + subMessageHash
273
+ url = self.urls['api']['ws']['public']
274
+ request: dict = {
275
+ 'method': 'unsubscribe',
276
+ 'subscription': {
277
+ 'type': 'webData2', # allMids
278
+ 'user': '0x0000000000000000000000000000000000000000',
279
+ },
280
+ }
281
+ return await self.watch(url, messageHash, self.extend(request, params), messageHash)
282
+
233
283
  async def watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
234
284
  """
235
285
  watches information on multiple trades made by the user
@@ -392,15 +442,17 @@ class hyperliquid(ccxt.async_support.hyperliquid):
392
442
  client.resolve(trades, messageHash)
393
443
 
394
444
  async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
395
- """
396
- watches information on multiple trades made in a market
397
- :see: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
398
- :param str symbol: unified market symbol of the market trades were made in
399
- :param int [since]: the earliest time in ms to fetch trades for
400
- :param int [limit]: the maximum number of trade structures to retrieve
401
- :param dict [params]: extra parameters specific to the exchange API endpoint
402
- :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
403
- """
445
+ # s
446
+ # @method
447
+ # @name hyperliquid#watchTrades
448
+ # @description watches information on multiple trades made in a market
449
+ # @see https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
450
+ # @param {string} symbol unified market symbol of the market trades were made in
451
+ # @param {int} [since] the earliest time in ms to fetch trades for
452
+ # @param {int} [limit] the maximum number of trade structures to retrieve
453
+ # @param {object} [params] extra parameters specific to the exchange API endpoint
454
+ # @returns {object[]} a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
455
+ #
404
456
  await self.load_markets()
405
457
  market = self.market(symbol)
406
458
  symbol = market['symbol']
@@ -419,6 +471,30 @@ class hyperliquid(ccxt.async_support.hyperliquid):
419
471
  limit = trades.getLimit(symbol, limit)
420
472
  return self.filter_by_since_limit(trades, since, limit, 'timestamp', True)
421
473
 
474
+ async def un_watch_trades(self, symbol: str, params={}) -> Any:
475
+ """
476
+ unWatches information on multiple trades made in a market
477
+ :see: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
478
+ :param str symbol: unified market symbol of the market trades were made in
479
+ :param dict [params]: extra parameters specific to the exchange API endpoint
480
+ :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=trade-structure>`
481
+ """
482
+ await self.load_markets()
483
+ market = self.market(symbol)
484
+ symbol = market['symbol']
485
+ subMessageHash = 'trade:' + symbol
486
+ messageHash = 'unsubscribe:' + subMessageHash
487
+ url = self.urls['api']['ws']['public']
488
+ request: dict = {
489
+ 'method': 'unsubscribe',
490
+ 'subscription': {
491
+ 'type': 'trades',
492
+ 'coin': market['base'] if market['swap'] else market['id'],
493
+ },
494
+ }
495
+ message = self.extend(request, params)
496
+ return await self.watch(url, messageHash, message, messageHash)
497
+
422
498
  def handle_trades(self, client: Client, message):
423
499
  #
424
500
  # {
@@ -546,6 +622,32 @@ class hyperliquid(ccxt.async_support.hyperliquid):
546
622
  limit = ohlcv.getLimit(symbol, limit)
547
623
  return self.filter_by_since_limit(ohlcv, since, limit, 0, True)
548
624
 
625
+ async def un_watch_ohlcv(self, symbol: str, timeframe='1m', params={}) -> Any:
626
+ """
627
+ watches historical candlestick data containing the open, high, low, close price, and the volume of a market
628
+ :see: https://hyperliquid.gitbook.io/hyperliquid-docs/for-developers/api/websocket/subscriptions
629
+ :param str symbol: unified symbol of the market to fetch OHLCV data for
630
+ :param str timeframe: the length of time each candle represents
631
+ :param dict [params]: extra parameters specific to the exchange API endpoint
632
+ :returns int[][]: A list of candles ordered, open, high, low, close, volume
633
+ """
634
+ await self.load_markets()
635
+ market = self.market(symbol)
636
+ symbol = market['symbol']
637
+ url = self.urls['api']['ws']['public']
638
+ request: dict = {
639
+ 'method': 'unsubscribe',
640
+ 'subscription': {
641
+ 'type': 'candle',
642
+ 'coin': market['base'] if market['swap'] else market['id'],
643
+ 'interval': timeframe,
644
+ },
645
+ }
646
+ subMessageHash = 'candles:' + timeframe + ':' + symbol
647
+ messagehash = 'unsubscribe:' + subMessageHash
648
+ message = self.extend(request, params)
649
+ return await self.watch(url, messagehash, message, messagehash)
650
+
549
651
  def handle_ohlcv(self, client: Client, message):
550
652
  #
551
653
  # {
@@ -581,7 +683,7 @@ class hyperliquid(ccxt.async_support.hyperliquid):
581
683
  messageHash = 'candles:' + timeframe + ':' + symbol
582
684
  client.resolve(ohlcv, messageHash)
583
685
 
584
- def handle_ws_post(self, client: Client, message: Any):
686
+ def handle_ws_post(self, client: Client, message: dict):
585
687
  # {
586
688
  # channel: "post",
587
689
  # data: {
@@ -689,7 +791,135 @@ class hyperliquid(ccxt.async_support.hyperliquid):
689
791
  else:
690
792
  return False
691
793
 
794
+ def handle_order_book_unsubscription(self, client: Client, subscription: dict):
795
+ #
796
+ # "subscription":{
797
+ # "type":"l2Book",
798
+ # "coin":"BTC",
799
+ # "nSigFigs":5,
800
+ # "mantissa":null
801
+ # }
802
+ #
803
+ coin = self.safe_string(subscription, 'coin')
804
+ marketId = self.coinToMarketId(coin)
805
+ symbol = self.safe_symbol(marketId)
806
+ subMessageHash = 'orderbook:' + symbol
807
+ messageHash = 'unsubscribe:' + subMessageHash
808
+ if messageHash in client.subscriptions:
809
+ del client.subscriptions[messageHash]
810
+ if subMessageHash in client.subscriptions:
811
+ del client.subscriptions[subMessageHash]
812
+ error = UnsubscribeError(self.id + ' ' + subMessageHash)
813
+ client.reject(error, subMessageHash)
814
+ client.resolve(True, messageHash)
815
+ if symbol in self.orderbooks:
816
+ del self.orderbooks[symbol]
817
+
818
+ def handle_trades_unsubscription(self, client: Client, subscription: dict):
819
+ #
820
+ coin = self.safe_string(subscription, 'coin')
821
+ marketId = self.coinToMarketId(coin)
822
+ symbol = self.safe_symbol(marketId)
823
+ subMessageHash = 'trade:' + symbol
824
+ messageHash = 'unsubscribe:' + subMessageHash
825
+ if messageHash in client.subscriptions:
826
+ del client.subscriptions[messageHash]
827
+ if subMessageHash in client.subscriptions:
828
+ del client.subscriptions[subMessageHash]
829
+ error = UnsubscribeError(self.id + ' ' + subMessageHash)
830
+ client.reject(error, subMessageHash)
831
+ client.resolve(True, messageHash)
832
+ if symbol in self.trades:
833
+ del self.trades[symbol]
834
+
835
+ def handle_tickers_unsubscription(self, client: Client, subscription: dict):
836
+ #
837
+ subMessageHash = 'tickers'
838
+ messageHash = 'unsubscribe:' + subMessageHash
839
+ if messageHash in client.subscriptions:
840
+ del client.subscriptions[messageHash]
841
+ if subMessageHash in client.subscriptions:
842
+ del client.subscriptions[subMessageHash]
843
+ error = UnsubscribeError(self.id + ' ' + subMessageHash)
844
+ client.reject(error, subMessageHash)
845
+ client.resolve(True, messageHash)
846
+ symbols = list(self.tickers.keys())
847
+ for i in range(0, len(symbols)):
848
+ del self.tickers[symbols[i]]
849
+
850
+ def handle_ohlcv_unsubscription(self, client: Client, subscription: dict):
851
+ coin = self.safe_string(subscription, 'coin')
852
+ marketId = self.coinToMarketId(coin)
853
+ symbol = self.safe_symbol(marketId)
854
+ interval = self.safe_string(subscription, 'interval')
855
+ timeframe = self.find_timeframe(interval)
856
+ subMessageHash = 'candles:' + timeframe + ':' + symbol
857
+ messageHash = 'unsubscribe:' + subMessageHash
858
+ if messageHash in client.subscriptions:
859
+ del client.subscriptions[messageHash]
860
+ if subMessageHash in client.subscriptions:
861
+ del client.subscriptions[subMessageHash]
862
+ error = UnsubscribeError(self.id + ' ' + subMessageHash)
863
+ client.reject(error, subMessageHash)
864
+ client.resolve(True, messageHash)
865
+ if symbol in self.ohlcvs:
866
+ if timeframe in self.ohlcvs[symbol]:
867
+ del self.ohlcvs[symbol][timeframe]
868
+
869
+ def handle_subscription_response(self, client: Client, message):
870
+ # {
871
+ # "channel":"subscriptionResponse",
872
+ # "data":{
873
+ # "method":"unsubscribe",
874
+ # "subscription":{
875
+ # "type":"l2Book",
876
+ # "coin":"BTC",
877
+ # "nSigFigs":5,
878
+ # "mantissa":null
879
+ # }
880
+ # }
881
+ # }
882
+ #
883
+ # {
884
+ # "channel":"subscriptionResponse",
885
+ # "data":{
886
+ # "method":"unsubscribe",
887
+ # "subscription":{
888
+ # "type":"trades",
889
+ # "coin":"PURR/USDC"
890
+ # }
891
+ # }
892
+ # }
893
+ #
894
+ data = self.safe_dict(message, 'data', {})
895
+ method = self.safe_string(data, 'method')
896
+ if method == 'unsubscribe':
897
+ subscription = self.safe_dict(data, 'subscription', {})
898
+ type = self.safe_string(subscription, 'type')
899
+ if type == 'l2Book':
900
+ self.handle_order_book_unsubscription(client, subscription)
901
+ elif type == 'trades':
902
+ self.handle_trades_unsubscription(client, subscription)
903
+ elif type == 'webData2':
904
+ self.handle_tickers_unsubscription(client, subscription)
905
+ elif type == 'candle':
906
+ self.handle_ohlcv_unsubscription(client, subscription)
907
+
692
908
  def handle_message(self, client: Client, message):
909
+ #
910
+ # {
911
+ # "channel":"subscriptionResponse",
912
+ # "data":{
913
+ # "method":"unsubscribe",
914
+ # "subscription":{
915
+ # "type":"l2Book",
916
+ # "coin":"BTC",
917
+ # "nSigFigs":5,
918
+ # "mantissa":null
919
+ # }
920
+ # }
921
+ # }
922
+ #
693
923
  if self.handle_error_message(client, message):
694
924
  return
695
925
  topic = self.safe_string(message, 'channel', '')
@@ -702,6 +932,7 @@ class hyperliquid(ccxt.async_support.hyperliquid):
702
932
  'userFills': self.handle_my_trades,
703
933
  'webData2': self.handle_ws_tickers,
704
934
  'post': self.handle_ws_post,
935
+ 'subscriptionResponse': self.handle_subscription_response,
705
936
  }
706
937
  exacMethod = self.safe_value(methods, topic)
707
938
  if exacMethod is not None:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.98
3
+ Version: 4.4.1
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
@@ -272,13 +272,13 @@ console.log(version, Object.keys(exchanges));
272
272
 
273
273
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
274
274
 
275
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.98/dist/ccxt.browser.min.js
276
- * unpkg: https://unpkg.com/ccxt@4.3.98/dist/ccxt.browser.min.js
275
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.1/dist/ccxt.browser.min.js
276
+ * unpkg: https://unpkg.com/ccxt@4.4.1/dist/ccxt.browser.min.js
277
277
 
278
278
  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.
279
279
 
280
280
  ```HTML
281
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.98/dist/ccxt.browser.min.js"></script>
281
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.1/dist/ccxt.browser.min.js"></script>
282
282
  ```
283
283
 
284
284
  Creates a global `ccxt` object:
@@ -1,4 +1,4 @@
1
- ccxt/__init__.py,sha256=vXYwL74aE9Vs_OAakppysSIZ3teIGfShjSC2-Z6Ea3g,16486
1
+ ccxt/__init__.py,sha256=5pHLDRlvaWLCFdbq7IcJkXl4oSrToseJYYQgHPgYGY4,16485
2
2
  ccxt/ace.py,sha256=3KFlbRm6N9hXsKUsgZbQCFPZT5WGLm4HOjR19Q3uPts,42419
3
3
  ccxt/alpaca.py,sha256=nVQJ8vG4JrjEvMlu_nPoyR2lBq41j9Z2smPq95nDhng,47504
4
4
  ccxt/ascendex.py,sha256=qYzddORwUgXBOuvuRi3AtaH2srPYr21MOT2THdrXyLE,151540
@@ -17,7 +17,7 @@ ccxt/bitcoincom.py,sha256=PyWIl4nC4jp5Uba2lI1At0N_hhNyWD0DoZC_MSyL_s4,502
17
17
  ccxt/bitfinex.py,sha256=w3t0YAwtOfCwLy5_w2wTq90qkTgUUyn0sqdO22zD-9U,73527
18
18
  ccxt/bitfinex2.py,sha256=a-mWVZfIiHIUOyXhjjyS9YYP5oDZAR22oPdvPqm2tU4,160875
19
19
  ccxt/bitflyer.py,sha256=A5Qtxec8uuhL0M2CIm908XFG_dauGoPetkGvglFUbrE,41719
20
- ccxt/bitget.py,sha256=qTZJor8cXIojk_0W5w4Z4Gb4mMW_RcOxcsWWNalyskA,424992
20
+ ccxt/bitget.py,sha256=GfD-EFU6ADutFKjgktMSCZzvQKKU6GnA5dZ30aQMSI4,425029
21
21
  ccxt/bithumb.py,sha256=8oTnFWi8Ai9fnm5FPXvNmaUAVJEOqYi-18VC23cWmXY,47935
22
22
  ccxt/bitmart.py,sha256=E8spf8q8jqlL41dlhwntz1WJzWQY0v9_IaIut1-r_y0,211807
23
23
  ccxt/bitmex.py,sha256=SoKTmrAKQ__SZzh1Fok1dOL7kUZjCIHl-qIHe9bO3Jc,126988
@@ -56,7 +56,7 @@ ccxt/deribit.py,sha256=hs6yUT8s7sfmO-GJ9RZ9nQC7Y9vnp_2puTRrd9r1Plw,161350
56
56
  ccxt/digifinex.py,sha256=pUPM7EEeRFoenX_jzNJM1RNuIUjATy6GB4J2osJJ4bY,169282
57
57
  ccxt/exmo.py,sha256=KlQqGZey31br-SVwhQg6mWIESyeM_wiIKRDOzIekuSs,114638
58
58
  ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
59
- ccxt/gate.py,sha256=JWn9RH_0AVQjnpdKC5puum_gDwvoTR6K8Po1Cdc-hms,327723
59
+ ccxt/gate.py,sha256=aLBLALozzREVkdc3UORV4b__lX_-rMn9XCgje5yWsqs,327757
60
60
  ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
61
61
  ccxt/gemini.py,sha256=qWLpJE-Ue3F-KhFfzhAteAMMJOr35duwdI-exBrRTEo,80950
62
62
  ccxt/hashkey.py,sha256=AfbhV_QCW31jzy8BFPnmGdhWfXz4WILIl-qh3jB4ZMc,191738
@@ -218,7 +218,7 @@ ccxt/abstract/xt.py,sha256=JkWvsic3L2O968BCr9H5Wd5NIbRE9aTT2A-9WbAtl0c,27146
218
218
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
219
219
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
220
220
  ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
221
- ccxt/async_support/__init__.py,sha256=v2qSXsDgehTFrItkXcTs0bBKqwNWuU5qaKBxX6UfnmU,16289
221
+ ccxt/async_support/__init__.py,sha256=Q88aJ0ejcU-nzNbtBrdSXkovgDeDJFd-uNn8nAkVbqw,16288
222
222
  ccxt/async_support/ace.py,sha256=ucCkKaWRkILAIK9g4iEi1Q_-zmn0V89-rX8Al4WdK8s,42643
223
223
  ccxt/async_support/alpaca.py,sha256=HxonsP_MzbE7Z9r6hZ1rgmf_jPcP4H7H3z1YQgCv4qc,47716
224
224
  ccxt/async_support/ascendex.py,sha256=Yj4_0UHGd-cYY8s3vqu_zEwa6BLmqPYy6ztKapkuEaw,152353
@@ -237,7 +237,7 @@ ccxt/async_support/bitcoincom.py,sha256=RiqwhK3RfxQ_PXTa860fphDCvwA8dalL-_rXlK85
237
237
  ccxt/async_support/bitfinex.py,sha256=pzyfQzUSxFYd6Ted0hNLgL545S8rFCrsoJc9Odk3zoo,73993
238
238
  ccxt/async_support/bitfinex2.py,sha256=Bw0d8dK5Ybp4_Aq9P-9DPJrtvzVJ6F28hHqX_BodLHM,161629
239
239
  ccxt/async_support/bitflyer.py,sha256=9tRLLI8tHyp0T1yj3-3F-MVoHB8Jq81qx_vQ-N00PJI,42027
240
- ccxt/async_support/bitget.py,sha256=aYGgpFSlW1D2QDh87QYJMSdGlYQQnjNQ0G1yi93D2I0,426616
240
+ ccxt/async_support/bitget.py,sha256=eefVDqYPND5EIPAKoNBe2KnCck2nrVOt0piRggcCF9A,426653
241
241
  ccxt/async_support/bithumb.py,sha256=Q0Cx_cRKZRfdpBAhQyINm63Qw3M6BRYQRiF0UqYzfis,48214
242
242
  ccxt/async_support/bitmart.py,sha256=DM-RMAL2itKyO_dTafBwQXnZ3NsDxy4LauDPucHT29M,212763
243
243
  ccxt/async_support/bitmex.py,sha256=bpaQ7pqan9JFj5AJxngtcuqeN9ReO76WbNkqfvBtyT0,127566
@@ -276,7 +276,7 @@ ccxt/async_support/deribit.py,sha256=JfdtFswWctlKE_GOjoxFIVKTNq-LUeuVik59MAx-u8s
276
276
  ccxt/async_support/digifinex.py,sha256=6fj4RPpxV8ArNSBXm5_y_Mt7fzjYxYOSO8mcxGKXpUU,170252
277
277
  ccxt/async_support/exmo.py,sha256=uVJsy3mfNLpfbY0ndl2EF9hipUylEw8J58J3wCGyyA0,115270
278
278
  ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,1250
279
- ccxt/async_support/gate.py,sha256=EsnqQ_V_hQUxe1vqRhUx9JIkPCqcCSVEwHkCks_RPxw,329454
279
+ ccxt/async_support/gate.py,sha256=KhWrVg1sy-R_ycPNGPYBYWhvtH_jTsMvL23oFiUNXXM,329488
280
280
  ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
281
281
  ccxt/async_support/gemini.py,sha256=nB8pdA9FAezRsRhF6_7w-T5keDtlahjPo9WPApEJbsY,81474
282
282
  ccxt/async_support/hashkey.py,sha256=bwQsEvhGU60iy_vlAbLvtx1blhDxS4L3cqoTpk6JNQ8,192580
@@ -330,7 +330,7 @@ ccxt/async_support/yobit.py,sha256=GQhvYrsGHQrVdTrNHQxx9isEGqUABexlllzao9HL3f8,5
330
330
  ccxt/async_support/zaif.py,sha256=-ZTr8M2JaIRCL90VrbCDXBMAsZwbiwsFChSQ2rWODuQ,29044
331
331
  ccxt/async_support/zonda.py,sha256=jncr6Wg12S72CTpu6mCKCse1pm1f8oefVQurQSrFvP0,81733
332
332
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
333
- ccxt/async_support/base/exchange.py,sha256=wIZY8rE6aLTzPur4pwEAIOCtnduhsLdcNEhku_BYvKg,110678
333
+ ccxt/async_support/base/exchange.py,sha256=K_idMkctnhYOPoxHd3YOM0IXMgqf57UZLyx3dluAkAs,110677
334
334
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
335
335
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
336
336
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=5IEiT0elWI9a7Vr-KV0jgmlbpLJWBzIlrLaCkTKGaqY,5752
@@ -344,10 +344,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
344
344
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
345
345
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
346
346
  ccxt/base/errors.py,sha256=Pad-6ugvGUwhoYuKUliX-N7FTrcnKCQGFjsaq2tMn0I,4610
347
- ccxt/base/exchange.py,sha256=bZjv1EMizBQEw17jjqeqCn_cb7rL4gjl9WxX8VaiKR0,295943
347
+ ccxt/base/exchange.py,sha256=wkgTfVaUfH9xmF6rrdYYXCd8FRLNVVrHov4k6MxNpa4,295942
348
348
  ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
349
349
  ccxt/base/types.py,sha256=TaP_RElKjGEZWuzyp4o4u2YhREyTG3rUeVT6gDffY9A,9613
350
- ccxt/pro/__init__.py,sha256=WAB-1ZYJjVTWvSxf9sGCj_1La0ENE86uLXtUopuv3VY,7710
350
+ ccxt/pro/__init__.py,sha256=aZkmQpsvZhvjzQFJe-1vFXu2hsuwOBLmJ7m2SSxEA28,7709
351
351
  ccxt/pro/alpaca.py,sha256=xh1yg1Ok-Zh_Mfx-MBjNrfJDs6MUU0exFfEj3GuQPC4,27631
352
352
  ccxt/pro/ascendex.py,sha256=QueLgISoIxgGSOta2W7En4pwAsEXbTP5q5ef4UjpTQQ,37524
353
353
  ccxt/pro/bequant.py,sha256=33OEUWBi4D9-2w8CmkwN3aF1qS-AlLqX3pxrWwNbXPY,1552
@@ -391,7 +391,7 @@ ccxt/pro/hollaex.py,sha256=la302Z6BMjcqZQhTaj4PQXSfhgFH6m7o3u7Ts5JkHbY,22045
391
391
  ccxt/pro/htx.py,sha256=mt-Bh5U6W6MRrpPp5xm6ayhkIcdaS8YCczczw9_1yx4,96329
392
392
  ccxt/pro/huobi.py,sha256=rKZVgYqEr-MmZzTqAk4FoJt8qWFjCi_FY0ci_mWZrL0,385
393
393
  ccxt/pro/huobijp.py,sha256=urnktXqCIJTccup0oQJPJsM32XR09dDP6qGP1kvBtfg,23318
394
- ccxt/pro/hyperliquid.py,sha256=B-bV58Jw20AL4C2LGaj11cPp3osZRRr3T5WjfPXwc5Y,32500
394
+ ccxt/pro/hyperliquid.py,sha256=GsRiT5cRUuB1e8XQN_ZByyEwJcVHpmW3h_QfjjJ4cS8,42727
395
395
  ccxt/pro/idex.py,sha256=WAY58yMHFUPoqZUGFvzxqcKizvMuFXqdZ6BD0WgstQA,28361
396
396
  ccxt/pro/independentreserve.py,sha256=JWMjJ0FUs4LhybAZ4rjHMQIWeOu5Njaj8aVimA7kf30,11356
397
397
  ccxt/pro/kraken.py,sha256=ITIUkUaC7AfLEhaQR7s3zkJnJBa_eQU5DEOn980QOW0,64129
@@ -650,8 +650,8 @@ ccxt/test/tests_async.py,sha256=f4Q7u2feejQp5rh3-4oB6XDNZ7_gkaZbkHqAu1wGyIU,8457
650
650
  ccxt/test/tests_helpers.py,sha256=xhOILoZ_x3RSfQjtKt6AQlkp9DkOtpTQe8GAUUZoM6s,10069
651
651
  ccxt/test/tests_init.py,sha256=eVwwUHujX9t4rjgo4TqEeg7DDhR1Hb_e2SJN8NVGyl0,998
652
652
  ccxt/test/tests_sync.py,sha256=ZFBHhpfH40I0VkpOdQo-8h2ccUMIEiKGppElvf1myK8,83635
653
- ccxt-4.3.98.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
654
- ccxt-4.3.98.dist-info/METADATA,sha256=C5Ov-x1xomtPh2YPcyBUEDYvbu0jpzqnNPgOuEdj9dU,118342
655
- ccxt-4.3.98.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
656
- ccxt-4.3.98.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
657
- ccxt-4.3.98.dist-info/RECORD,,
653
+ ccxt-4.4.1.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
654
+ ccxt-4.4.1.dist-info/METADATA,sha256=BjmN7DRZXUy6jvG-hZW2OdMVkgTOeyIv5NEabbvY32U,118338
655
+ ccxt-4.4.1.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
656
+ ccxt-4.4.1.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
657
+ ccxt-4.4.1.dist-info/RECORD,,
File without changes