ccxt 4.3.86__py2.py3-none-any.whl → 4.3.88__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.
Files changed (57) hide show
  1. ccxt/__init__.py +2 -1
  2. ccxt/abstract/kucoin.py +1 -0
  3. ccxt/abstract/kucoinfutures.py +1 -0
  4. ccxt/async_support/__init__.py +2 -1
  5. ccxt/async_support/base/exchange.py +3 -3
  6. ccxt/async_support/bingx.py +5 -1
  7. ccxt/async_support/coinex.py +1 -1
  8. ccxt/async_support/hashkey.py +1 -2
  9. ccxt/async_support/kraken.py +32 -5
  10. ccxt/async_support/kucoin.py +2 -0
  11. ccxt/async_support/upbit.py +1 -1
  12. ccxt/base/errors.py +7 -1
  13. ccxt/base/exchange.py +3 -3
  14. ccxt/bingx.py +5 -1
  15. ccxt/coinex.py +1 -1
  16. ccxt/hashkey.py +1 -2
  17. ccxt/kraken.py +32 -5
  18. ccxt/kucoin.py +2 -0
  19. ccxt/pro/__init__.py +1 -1
  20. ccxt/pro/bitfinex.py +1 -0
  21. ccxt/pro/bitfinex2.py +1 -0
  22. ccxt/pro/bitget.py +143 -16
  23. ccxt/pro/bitopro.py +1 -0
  24. ccxt/pro/bitstamp.py +1 -0
  25. ccxt/pro/blockchaincom.py +1 -0
  26. ccxt/pro/cex.py +1 -0
  27. ccxt/pro/coincheck.py +1 -0
  28. ccxt/pro/coinone.py +1 -0
  29. ccxt/pro/hashkey.py +1 -0
  30. ccxt/pro/hitbtc.py +1 -0
  31. ccxt/pro/hollaex.py +1 -0
  32. ccxt/pro/htx.py +1 -0
  33. ccxt/pro/huobijp.py +1 -0
  34. ccxt/pro/hyperliquid.py +7 -0
  35. ccxt/pro/independentreserve.py +1 -0
  36. ccxt/pro/lbank.py +1 -0
  37. ccxt/pro/luno.py +1 -0
  38. ccxt/pro/ndax.py +5 -0
  39. ccxt/pro/okcoin.py +7 -0
  40. ccxt/pro/onetrading.py +1 -0
  41. ccxt/pro/p2b.py +30 -7
  42. ccxt/pro/paradex.py +1 -0
  43. ccxt/pro/poloniex.py +32 -3
  44. ccxt/pro/poloniexfutures.py +1 -0
  45. ccxt/pro/probit.py +2 -0
  46. ccxt/pro/upbit.py +44 -3
  47. ccxt/pro/vertex.py +1 -0
  48. ccxt/pro/wazirx.py +3 -0
  49. ccxt/pro/whitebit.py +9 -0
  50. ccxt/test/tests_async.py +18 -1
  51. ccxt/test/tests_sync.py +18 -1
  52. ccxt/upbit.py +1 -1
  53. {ccxt-4.3.86.dist-info → ccxt-4.3.88.dist-info}/METADATA +7 -6
  54. {ccxt-4.3.86.dist-info → ccxt-4.3.88.dist-info}/RECORD +57 -57
  55. {ccxt-4.3.86.dist-info → ccxt-4.3.88.dist-info}/LICENSE.txt +0 -0
  56. {ccxt-4.3.86.dist-info → ccxt-4.3.88.dist-info}/WHEEL +0 -0
  57. {ccxt-4.3.86.dist-info → ccxt-4.3.88.dist-info}/top_level.txt +0 -0
ccxt/pro/upbit.py CHANGED
@@ -19,6 +19,7 @@ class upbit(ccxt.async_support.upbit):
19
19
  'watchOrderBook': True,
20
20
  'watchTicker': True,
21
21
  'watchTrades': True,
22
+ 'watchTradesForSymbols': True,
22
23
  'watchOrders': True,
23
24
  'watchMyTrades': True,
24
25
  'watchBalance': True,
@@ -79,11 +80,51 @@ class upbit(ccxt.async_support.upbit):
79
80
  :param dict [params]: extra parameters specific to the exchange API endpoint
80
81
  :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
81
82
  """
83
+ return await self.watch_trades_for_symbols([symbol], since, limit, params)
84
+
85
+ async def watch_trades_for_symbols(self, symbols: List[str], since: Int = None, limit: Int = None, params={}) -> List[Trade]:
86
+ """
87
+ get the list of most recent trades for a list of symbols
88
+ :see: https://global-docs.upbit.com/reference/websocket-trade
89
+ :param str[] symbols: unified symbol of the market to fetch trades for
90
+ :param int [since]: timestamp in ms of the earliest trade to fetch
91
+ :param int [limit]: the maximum amount of trades to fetch
92
+ :param dict [params]: extra parameters specific to the exchange API endpoint
93
+ :returns dict[]: a list of `trade structures <https://docs.ccxt.com/#/?id=public-trades>`
94
+ """
82
95
  await self.load_markets()
83
- symbol = self.symbol(symbol)
84
- trades = await self.watch_public(symbol, 'trade')
96
+ symbols = self.market_symbols(symbols, None, False, True, True)
97
+ channel = 'trade'
98
+ messageHashes = []
99
+ url = self.implode_params(self.urls['api']['ws'], {
100
+ 'hostname': self.hostname,
101
+ })
102
+ if symbols is not None:
103
+ for i in range(0, len(symbols)):
104
+ market = self.market(symbols[i])
105
+ marketId = market['id']
106
+ symbol = market['symbol']
107
+ self.options[channel] = self.safe_value(self.options, channel, {})
108
+ self.options[channel][symbol] = True
109
+ messageHashes.append(channel + ':' + marketId)
110
+ optionSymbols = list(self.options[channel].keys())
111
+ marketIds = self.market_ids(optionSymbols)
112
+ request = [
113
+ {
114
+ 'ticket': self.uuid(),
115
+ },
116
+ {
117
+ 'type': channel,
118
+ 'codes': marketIds,
119
+ # 'isOnlySnapshot': False,
120
+ # 'isOnlyRealtime': False,
121
+ },
122
+ ]
123
+ trades = await self.watch_multiple(url, messageHashes, request, messageHashes)
85
124
  if self.newUpdates:
86
- limit = trades.getLimit(symbol, limit)
125
+ first = self.safe_value(trades, 0)
126
+ tradeSymbol = self.safe_string(first, 'symbol')
127
+ limit = trades.getLimit(tradeSymbol, limit)
87
128
  return self.filter_by_since_limit(trades, since, limit, 'timestamp', True)
88
129
 
89
130
  async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
ccxt/pro/vertex.py CHANGED
@@ -28,6 +28,7 @@ class vertex(ccxt.async_support.vertex):
28
28
  'watchTicker': True,
29
29
  'watchTickers': False,
30
30
  'watchTrades': True,
31
+ 'watchTradesForSymbols': False,
31
32
  'watchPositions': True,
32
33
  },
33
34
  'urls': {
ccxt/pro/wazirx.py CHANGED
@@ -22,6 +22,7 @@ class wazirx(ccxt.async_support.wazirx):
22
22
  'watchTicker': True,
23
23
  'watchTickers': True,
24
24
  'watchTrades': True,
25
+ 'watchTradesForSymbols': False,
25
26
  'watchMyTrades': True,
26
27
  'watchOrders': True,
27
28
  'watchOrderBook': True,
@@ -283,6 +284,7 @@ class wazirx(ccxt.async_support.wazirx):
283
284
  async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
284
285
  """
285
286
  get the list of most recent trades for a particular symbol
287
+ :see: https://docs.wazirx.com/#trade-streams
286
288
  :param str symbol: unified symbol of the market to fetch trades for
287
289
  :param int [since]: timestamp in ms of the earliest trade to fetch
288
290
  :param int [limit]: the maximum amount of trades to fetch
@@ -371,6 +373,7 @@ class wazirx(ccxt.async_support.wazirx):
371
373
  async def watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
372
374
  """
373
375
  watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
376
+ :see: https://docs.wazirx.com/#kline-candlestick-stream
374
377
  :param str symbol: unified symbol of the market to fetch OHLCV data for
375
378
  :param str timeframe: the length of time each candle represents
376
379
  :param int [since]: timestamp in ms of the earliest candle to fetch
ccxt/pro/whitebit.py CHANGED
@@ -27,6 +27,7 @@ class whitebit(ccxt.async_support.whitebit):
27
27
  'watchOrders': True,
28
28
  'watchTicker': True,
29
29
  'watchTrades': True,
30
+ 'watchTradesForSymbols': False,
30
31
  },
31
32
  'urls': {
32
33
  'api': {
@@ -67,6 +68,7 @@ class whitebit(ccxt.async_support.whitebit):
67
68
  async def watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={}) -> List[list]:
68
69
  """
69
70
  watches historical candlestick data containing the open, high, low, and close price, and the volume of a market
71
+ :see: https://docs.whitebit.com/public/websocket/#kline
70
72
  :param str symbol: unified symbol of the market to fetch OHLCV data for
71
73
  :param str timeframe: the length of time each candle represents
72
74
  :param int [since]: timestamp in ms of the earliest candle to fetch
@@ -135,6 +137,7 @@ class whitebit(ccxt.async_support.whitebit):
135
137
  async def watch_order_book(self, symbol: str, limit: Int = None, params={}) -> OrderBook:
136
138
  """
137
139
  watches information on open orders with bid(buy) and ask(sell) prices, volumes and other data
140
+ :see: https://docs.whitebit.com/public/websocket/#market-depth
138
141
  :param str symbol: unified symbol of the market to fetch the order book for
139
142
  :param int [limit]: the maximum amount of order book entries to return
140
143
  :param dict [params]: extra parameters specific to the exchange API endpoint
@@ -233,6 +236,7 @@ class whitebit(ccxt.async_support.whitebit):
233
236
  async def watch_ticker(self, symbol: str, params={}) -> Ticker:
234
237
  """
235
238
  watches a price ticker, a statistical calculation with the information calculated over the past 24 hours for a specific market
239
+ :see: https://docs.whitebit.com/public/websocket/#market-statistics
236
240
  :param str symbol: unified symbol of the market to fetch the ticker for
237
241
  :param dict [params]: extra parameters specific to the exchange API endpoint
238
242
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
@@ -295,6 +299,7 @@ class whitebit(ccxt.async_support.whitebit):
295
299
  async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
296
300
  """
297
301
  get the list of most recent trades for a particular symbol
302
+ :see: https://docs.whitebit.com/public/websocket/#market-trades
298
303
  :param str symbol: unified symbol of the market to fetch trades for
299
304
  :param int [since]: timestamp in ms of the earliest trade to fetch
300
305
  :param int [limit]: the maximum amount of trades to fetch
@@ -356,6 +361,7 @@ class whitebit(ccxt.async_support.whitebit):
356
361
  async def watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
357
362
  """
358
363
  watches trades made by the user
364
+ :see: https://docs.whitebit.com/private/websocket/#deals
359
365
  :param str symbol: unified market symbol
360
366
  :param int [since]: the earliest time in ms to fetch trades for
361
367
  :param int [limit]: the maximum number of trades structures to retrieve
@@ -449,6 +455,7 @@ class whitebit(ccxt.async_support.whitebit):
449
455
  async def watch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={}) -> List[Order]:
450
456
  """
451
457
  watches information on multiple orders made by the user
458
+ :see: https://docs.whitebit.com/private/websocket/#orders-pending
452
459
  :param str symbol: unified market symbol of the market orders were made in
453
460
  :param int [since]: the earliest time in ms to fetch orders for
454
461
  :param int [limit]: the maximum number of order structures to retrieve
@@ -612,6 +619,8 @@ class whitebit(ccxt.async_support.whitebit):
612
619
  async def watch_balance(self, params={}) -> Balances:
613
620
  """
614
621
  watch balance and get the amount of funds available for trading or funds locked in orders
622
+ :see: https://docs.whitebit.com/private/websocket/#balance-spot
623
+ :see: https://docs.whitebit.com/private/websocket/#balance-margin
615
624
  :param dict [params]: extra parameters specific to the exchange API endpoint
616
625
  :param str [params.type]: spot or contract if not provided self.options['defaultType'] is used
617
626
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
ccxt/test/tests_async.py CHANGED
@@ -920,6 +920,9 @@ class testMainClass(baseMainTestClass):
920
920
  is_disabled = exchange.safe_bool(result, 'disabled', False)
921
921
  if is_disabled:
922
922
  continue
923
+ is_disabled_c_sharp = exchange.safe_bool(result, 'disabledCS', False)
924
+ if is_disabled_c_sharp and (self.lang == 'C#'):
925
+ continue
923
926
  type = exchange.safe_string(exchange_data, 'outputType')
924
927
  skip_keys = exchange.safe_value(exchange_data, 'skipKeys', [])
925
928
  await self.test_request_statically(exchange, method, result, type, skip_keys)
@@ -1036,7 +1039,7 @@ class testMainClass(baseMainTestClass):
1036
1039
  # -----------------------------------------------------------------------------
1037
1040
  # --- Init of brokerId tests functions-----------------------------------------
1038
1041
  # -----------------------------------------------------------------------------
1039
- promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex()]
1042
+ promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex(), self.test_hashkey()]
1040
1043
  await asyncio.gather(*promises)
1041
1044
  success_message = '[' + self.lang + '][TEST_SUCCESS] brokerId tests passed.'
1042
1045
  dump('[INFO]' + success_message)
@@ -1484,3 +1487,17 @@ class testMainClass(baseMainTestClass):
1484
1487
  if not self.is_synchronous:
1485
1488
  await close(exchange)
1486
1489
  return True
1490
+
1491
+ async def test_hashkey(self):
1492
+ exchange = self.init_offline_exchange('hashkey')
1493
+ req_headers = None
1494
+ id = '10000700011'
1495
+ try:
1496
+ await exchange.create_order('BTC/USDT', 'limit', 'buy', 1, 20000)
1497
+ except Exception as e:
1498
+ # we expect an error here, we're only interested in the headers
1499
+ req_headers = exchange.last_request_headers
1500
+ assert req_headers['INPUT-SOURCE'] == id, 'hashkey - id: ' + id + ' not in headers.'
1501
+ if not self.is_synchronous:
1502
+ await close(exchange)
1503
+ return True
ccxt/test/tests_sync.py CHANGED
@@ -917,6 +917,9 @@ class testMainClass(baseMainTestClass):
917
917
  is_disabled = exchange.safe_bool(result, 'disabled', False)
918
918
  if is_disabled:
919
919
  continue
920
+ is_disabled_c_sharp = exchange.safe_bool(result, 'disabledCS', False)
921
+ if is_disabled_c_sharp and (self.lang == 'C#'):
922
+ continue
920
923
  type = exchange.safe_string(exchange_data, 'outputType')
921
924
  skip_keys = exchange.safe_value(exchange_data, 'skipKeys', [])
922
925
  self.test_request_statically(exchange, method, result, type, skip_keys)
@@ -1033,7 +1036,7 @@ class testMainClass(baseMainTestClass):
1033
1036
  # -----------------------------------------------------------------------------
1034
1037
  # --- Init of brokerId tests functions-----------------------------------------
1035
1038
  # -----------------------------------------------------------------------------
1036
- promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex()]
1039
+ promises = [self.test_binance(), self.test_okx(), self.test_cryptocom(), self.test_bybit(), self.test_kucoin(), self.test_kucoinfutures(), self.test_bitget(), self.test_mexc(), self.test_htx(), self.test_woo(), self.test_bitmart(), self.test_coinex(), self.test_bingx(), self.test_phemex(), self.test_blofin(), self.test_hyperliquid(), self.test_coinbaseinternational(), self.test_coinbase_advanced(), self.test_woofi_pro(), self.test_oxfun(), self.test_xt(), self.test_vertex(), self.test_paradex(), self.test_hashkey()]
1037
1040
  (promises)
1038
1041
  success_message = '[' + self.lang + '][TEST_SUCCESS] brokerId tests passed.'
1039
1042
  dump('[INFO]' + success_message)
@@ -1481,3 +1484,17 @@ class testMainClass(baseMainTestClass):
1481
1484
  if not self.is_synchronous:
1482
1485
  close(exchange)
1483
1486
  return True
1487
+
1488
+ def test_hashkey(self):
1489
+ exchange = self.init_offline_exchange('hashkey')
1490
+ req_headers = None
1491
+ id = '10000700011'
1492
+ try:
1493
+ exchange.create_order('BTC/USDT', 'limit', 'buy', 1, 20000)
1494
+ except Exception as e:
1495
+ # we expect an error here, we're only interested in the headers
1496
+ req_headers = exchange.last_request_headers
1497
+ assert req_headers['INPUT-SOURCE'] == id, 'hashkey - id: ' + id + ' not in headers.'
1498
+ if not self.is_synchronous:
1499
+ close(exchange)
1500
+ return True
ccxt/upbit.py CHANGED
@@ -1891,7 +1891,7 @@ class upbit(Exchange, ImplicitAPI):
1891
1891
  body = self.json(params)
1892
1892
  headers['Content-Type'] = 'application/json'
1893
1893
  if hasQuery:
1894
- auth = self.urlencode(query)
1894
+ auth = self.rawencode(query)
1895
1895
  if auth is not None:
1896
1896
  hash = self.hash(self.encode(auth), 'sha512')
1897
1897
  request['query_hash'] = hash
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.86
3
+ Version: 4.3.88
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
@@ -70,6 +70,7 @@ Current feature list:
70
70
 
71
71
 
72
72
  ## Sponsored Promotion
73
+ [![hashkey-campaign](https://github.com/user-attachments/assets/1622ba7d-637d-41e3-9ad4-d61a6ea69881)](https://support.global.hashkey.com/hc/en-us/articles/15485543021468-Trade-Through-CCXT-to-Grab-up-to-1-000-USDT-30-Day-VIP5-Trial)
73
74
 
74
75
  ## See Also
75
76
 
@@ -96,7 +97,7 @@ Current feature list:
96
97
  | [![coinex](https://user-images.githubusercontent.com/51840849/87182089-1e05fa00-c2ec-11ea-8da9-cc73b45abbbc.jpg)](https://www.coinex.com/register?refer_code=yw5fz) | coinex | [CoinEx](https://www.coinex.com/register?refer_code=yw5fz) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://docs.coinex.com/api/v2) | cex | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
97
98
  | [![cryptocom](https://user-images.githubusercontent.com/1294454/147792121-38ed5e36-c229-48d6-b49a-48d05fc19ed4.jpeg)](https://crypto.com/exch/kdacthrnxt) | cryptocom | [Crypto.com](https://crypto.com/exch/kdacthrnxt) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://exchange-docs.crypto.com/exchange/v1/rest-ws/index.html) | cex | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with Crypto.com using CCXT's referral link for a 15% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d15%25&color=orange)](https://crypto.com/exch/kdacthrnxt) |
98
99
  | [![gate](https://user-images.githubusercontent.com/1294454/31784029-0313c702-b509-11e7-9ccc-bc0da6a0e435.jpg)](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [![API Version 4](https://img.shields.io/badge/4-lightgray)](https://www.gate.io/docs/developers/apiv4/en/) | cex | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with Gate.io using CCXT's referral link for a 20% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d20%25&color=orange)](https://www.gate.io/signup/2436035) |
99
- | [![hashkey](https://github.com/user-attachments/assets/6dd6127b-cc19-4a13-9b29-a98d81f80e98)](https://global.hashkey.com/) | hashkey | [HashKey Global](https://global.hashkey.com/) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://hashkeyglobal-apidoc.readme.io/) | cex | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
100
+ | [![hashkey](https://github.com/user-attachments/assets/6dd6127b-cc19-4a13-9b29-a98d81f80e98)](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | hashkey | [HashKey Global](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://hashkeyglobal-apidoc.readme.io/) | cex | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
100
101
  | [![htx](https://user-images.githubusercontent.com/1294454/76137448-22748a80-604e-11ea-8069-6e389271911d.jpg)](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | htx | [HTX](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://huobiapi.github.io/docs/spot/v1/en/) | cex | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | [![Sign up with HTX using CCXT's referral link for a 15% discount!](https://img.shields.io/static/v1?label=Fee&message=%2d15%25&color=orange)](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) |
101
102
  | [![kucoin](https://user-images.githubusercontent.com/51840849/87295558-132aaf80-c50e-11ea-9801-a2fb0c57c799.jpg)](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | kucoin | [KuCoin](https://www.kucoin.com/ucenter/signup?rcode=E5wkqe) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://docs.kucoin.com) | cex | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
102
103
  | [![kucoinfutures](https://user-images.githubusercontent.com/1294454/147508995-9e35030a-d046-43a1-a006-6fabd981b554.jpg)](https://futures.kucoin.com/?rcode=E5wkqe) | kucoinfutures | [KuCoin Futures](https://futures.kucoin.com/?rcode=E5wkqe) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.kucoin.com/futures) | cex | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) | |
@@ -166,7 +167,7 @@ The CCXT library currently supports the following 103 cryptocurrency exchange ma
166
167
  | [![fmfwio](https://user-images.githubusercontent.com/1294454/159177712-b685b40c-5269-4cea-ac83-f7894c49525d.jpg)](https://fmfw.io/referral/da948b21d6c92d69) | fmfwio | [FMFW.io](https://fmfw.io/referral/da948b21d6c92d69) | [![API Version 3](https://img.shields.io/badge/3-lightgray)](https://api.fmfw.io/) | cex | | |
167
168
  | [![gate](https://user-images.githubusercontent.com/1294454/31784029-0313c702-b509-11e7-9ccc-bc0da6a0e435.jpg)](https://www.gate.io/signup/2436035) | gate | [Gate.io](https://www.gate.io/signup/2436035) | [![API Version 4](https://img.shields.io/badge/4-lightgray)](https://www.gate.io/docs/developers/apiv4/en/) | cex | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
168
169
  | [![gemini](https://user-images.githubusercontent.com/1294454/27816857-ce7be644-6096-11e7-82d6-3c257263229c.jpg)](https://gemini.com/) | gemini | [Gemini](https://gemini.com/) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.gemini.com/rest-api) | cex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
169
- | [![hashkey](https://github.com/user-attachments/assets/6dd6127b-cc19-4a13-9b29-a98d81f80e98)](https://global.hashkey.com/) | hashkey | [HashKey Global](https://global.hashkey.com/) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://hashkeyglobal-apidoc.readme.io/) | cex | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
170
+ | [![hashkey](https://github.com/user-attachments/assets/6dd6127b-cc19-4a13-9b29-a98d81f80e98)](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | hashkey | [HashKey Global](https://global.hashkey.com/en-US/register/invite?invite_code=82FQUN) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://hashkeyglobal-apidoc.readme.io/) | cex | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
170
171
  | [![hitbtc](https://user-images.githubusercontent.com/1294454/27766555-8eaec20e-5edc-11e7-9c5b-6dc69fc42f5e.jpg)](https://hitbtc.com/?ref_id=5a5d39a65d466) | hitbtc | [HitBTC](https://hitbtc.com/?ref_id=5a5d39a65d466) | [![API Version 3](https://img.shields.io/badge/3-lightgray)](https://api.hitbtc.com) | cex | | |
171
172
  | [![hollaex](https://user-images.githubusercontent.com/1294454/75841031-ca375180-5ddd-11ea-8417-b975674c23cb.jpg)](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | hollaex | [HollaEx](https://pro.hollaex.com/signup?affiliation_code=QSWA6G) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://apidocs.hollaex.com) | cex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
172
173
  | [![htx](https://user-images.githubusercontent.com/1294454/76137448-22748a80-604e-11ea-8069-6e389271911d.jpg)](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | htx | [HTX](https://www.huobi.com/en-us/v/register/double-invite/?inviter_id=11343840&invite_code=6rmm2223) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://huobiapi.github.io/docs/spot/v1/en/) | cex | [![CCXT Certified](https://img.shields.io/badge/CCXT-Certified-green.svg)](https://github.com/ccxt/ccxt/wiki/Certification) | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
@@ -271,13 +272,13 @@ console.log(version, Object.keys(exchanges));
271
272
 
272
273
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
273
274
 
274
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.86/dist/ccxt.browser.min.js
275
- * unpkg: https://unpkg.com/ccxt@4.3.86/dist/ccxt.browser.min.js
275
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.88/dist/ccxt.browser.min.js
276
+ * unpkg: https://unpkg.com/ccxt@4.3.88/dist/ccxt.browser.min.js
276
277
 
277
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.
278
279
 
279
280
  ```HTML
280
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.86/dist/ccxt.browser.min.js"></script>
281
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.88/dist/ccxt.browser.min.js"></script>
281
282
  ```
282
283
 
283
284
  Creates a global `ccxt` object:
@@ -1,4 +1,4 @@
1
- ccxt/__init__.py,sha256=Ezv2iybn70-8xK2_MfT2d-_ptoVvjmslqim9t9hoJww,16598
1
+ ccxt/__init__.py,sha256=23FgTf8AUXhOkBQjYQ8GKJp5wv8AkSxfag9E7WUp790,16681
2
2
  ccxt/ace.py,sha256=Gee4ymA83iAuBFm3J8NaTb7qmu9buV2trA676KCtSVg,42383
3
3
  ccxt/alpaca.py,sha256=HQuhQZSFGRlT-BaCUSEZmxpzYp6tll2zn63qn3gTmoU,47470
4
4
  ccxt/ascendex.py,sha256=4aEwibO_me6khr66z8JFqDBxe2gtFOWIFBE7ulBEJPs,151933
@@ -8,7 +8,7 @@ ccxt/binance.py,sha256=234uj97QAqu_-AqxFaFczbV4jnXyhemCsq_RxJQgwjw,641408
8
8
  ccxt/binancecoinm.py,sha256=arFnEh8mErSyi23eVPWE4iwoT7PWQyxGGVJCKCy6UJY,1702
9
9
  ccxt/binanceus.py,sha256=hdcT4OnadcdFFFjF3GtM0nWv90jqojqwdVS3xWGuW40,9163
10
10
  ccxt/binanceusdm.py,sha256=bAPcJj5HLxoCdPolriM8sJpoTBwbV78vBTbKRmWhNP4,2632
11
- ccxt/bingx.py,sha256=dYb2tADqgxTglhSBNypxpd9pkLzekejQ1ISvgy3yeYQ,244207
11
+ ccxt/bingx.py,sha256=yTClKbMVv9rh30l0sRuzZJMRyYSjsxO2bzlFztfylBo,244475
12
12
  ccxt/bit2c.py,sha256=KwHefm2dfgcSR5LeGbHpFQlSI3LNot8tmDEgRJc2gBc,37061
13
13
  ccxt/bitbank.py,sha256=bHLOW6EAbNsjK2nXCtmxj23f2geW_-E_xfHXAvARMtw,43534
14
14
  ccxt/bitbay.py,sha256=xAIjzGRDVGwoy-Gygd99H0YN4wiaz_0lR0Z14oxaaxc,478
@@ -42,7 +42,7 @@ ccxt/coinbaseadvanced.py,sha256=d5g6nRx-NCcCwZDdtp8FsI2D-pRjSvnAP9ISSKY_nCQ,538
42
42
  ccxt/coinbaseexchange.py,sha256=DK8GJ5Xb6G6Hf-UkxG1j09RMeQRqeZlXIMwTum-Xu4w,78907
43
43
  ccxt/coinbaseinternational.py,sha256=86zQOXD8CLDI3MpBtmpbQsmtUzk-pBdrg8HM_NCCer4,97440
44
44
  ccxt/coincheck.py,sha256=SeNvZm_3p01IsW8y6b3rw67qiMu29S59HHPG6Jma_T4,35942
45
- ccxt/coinex.py,sha256=MsYFij5e3QRJJVAu6Blmeadr71Scfms5TYYpCF1lrmY,257421
45
+ ccxt/coinex.py,sha256=1m9hSsd9-pIzCeH579yMlioSrSJVbpvX_Diw3FjTf8c,257427
46
46
  ccxt/coinlist.py,sha256=Z2v-sn9_K3JUt42tQX5Naq3p55fH2giM2-fnSx--O2k,104123
47
47
  ccxt/coinmate.py,sha256=BkPcT92OQFeUQtnLDIkl-Sg0PcLrQ87RfHMFIybJoWk,46190
48
48
  ccxt/coinmetro.py,sha256=1HqUu4ScH4oZbloodvn0l25y7DaUMl_5MjBf5v8z_cA,80591
@@ -59,7 +59,7 @@ ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
59
59
  ccxt/gate.py,sha256=dlKwcUQOvriaUmopMaF4BiziBTFdIoaEgt3-LKS8lk8,327645
60
60
  ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
61
61
  ccxt/gemini.py,sha256=ddoOnPZzu-l899JGVw4b9wwT9HI20mVqLz7iihhZxng,80876
62
- ccxt/hashkey.py,sha256=J0xlmi_N_fShOAbXMIZqq8Xy42brzzyMpeVlH6-HPEM,191707
62
+ ccxt/hashkey.py,sha256=AfbhV_QCW31jzy8BFPnmGdhWfXz4WILIl-qh3jB4ZMc,191738
63
63
  ccxt/hitbtc.py,sha256=iqyd0otbWmIHUJiJ6gzIfe34IOa8PCEeS8nG6s6Ogc0,153398
64
64
  ccxt/hitbtc3.py,sha256=qRAr4Zvaju9IQWRZUohdoN7xRnzIMPq8AyYb3gPv-Is,455
65
65
  ccxt/hollaex.py,sha256=2KIbenZ3vcBDN_rs2CxG5_foKLaYxJd73vVV7M8n_8E,76140
@@ -70,9 +70,9 @@ ccxt/hyperliquid.py,sha256=ZHqoPUgMHPRsfEP3TaHhPHSFniAVZj7RBSHcfUxbUwQ,110702
70
70
  ccxt/idex.py,sha256=P2jNsxiwIlMgrfPKbtmjLJQrzFcWp_TjgJaLq793oco,73255
71
71
  ccxt/independentreserve.py,sha256=ChkSnahGsn0aN_cfaAonSk-V2Aa1UB-0cPTa1d3AdI4,37713
72
72
  ccxt/indodax.py,sha256=VdTGxm49I6s-DhT0H1NLFVJ1XYaDWpq51jP2tyK68Ks,54580
73
- ccxt/kraken.py,sha256=67FEfEmLONiFIHGIKKqlGInGHEtj-E1tMJPhuIU3ytM,131190
73
+ ccxt/kraken.py,sha256=G-ZCciNlUz1us3Q9O5HTdJ0qqX-pZuKeJQ_pRScdqpA,132889
74
74
  ccxt/krakenfutures.py,sha256=_-bbgzshifKnbyOB1pSs_bRfRepkRAdiDlsLDRiAw9w,119597
75
- ccxt/kucoin.py,sha256=rwv5bdlaeFAMbo2vYpT3_mX_keeJmz5Nk5HF26Br3vA,226576
75
+ ccxt/kucoin.py,sha256=QJc-itNiyyNNt5R7MIgKPv-Qj6FZgIth0JqvqQrkbZA,226699
76
76
  ccxt/kucoinfutures.py,sha256=bINtr0EBupNmE_IufzwRy7GuWHa5JtBmtrPk-WjhCno,124756
77
77
  ccxt/kuna.py,sha256=GnIMk8R_IL84FTUHDNP6jHxd2FKNX9YwfoCXoYG83uA,96157
78
78
  ccxt/latoken.py,sha256=JkfGMFYEQqE_2BG3EHQozelw6yxbHXu1TPebg4a3Cgg,79462
@@ -98,7 +98,7 @@ ccxt/probit.py,sha256=MFA0bFG-xEx3ZDQIWebUKaP83mCjYKVcztk3e61Zx8Y,76165
98
98
  ccxt/timex.py,sha256=Un10iGNwAHPifpQftyXdUwoqS-10ho6ZIesz2Ts_Iqg,72068
99
99
  ccxt/tokocrypto.py,sha256=aV-98hzr75iQO3GEmiUyTNufDqHfoze04Z2Fk195B3Q,123192
100
100
  ccxt/tradeogre.py,sha256=DCxTLjtGW7ADRA-jekCkGAn81-GIgdOAxbJFcBLYOFU,24211
101
- ccxt/upbit.py,sha256=W_W8aETJyopwhYfZd2tWvhPvi7BjQ4KSIOdn8nzyWv8,85413
101
+ ccxt/upbit.py,sha256=d03xZjLdhtMrqTVm3VYmvQoT7inmq05bjrUNrJLi_7U,85413
102
102
  ccxt/vertex.py,sha256=YoKnzxhem56C19SckA6yHUPH1bk86PfZ4Z-T01TFygg,121761
103
103
  ccxt/wavesexchange.py,sha256=vmzv9h1QjthvpKUGajQn_tdCJ5tWmzEA6r7ow_y6ASY,114980
104
104
  ccxt/wazirx.py,sha256=LVHNdononi8FrZpT0pYiJoS-NrNi7_uIZ6Qbu8dJRPc,52405
@@ -183,8 +183,8 @@ ccxt/abstract/independentreserve.py,sha256=Cue0hud5acRs2Q6oSvQ7Rx-YWS_fuACs6uV3a
183
183
  ccxt/abstract/indodax.py,sha256=E16v8W6Ac9kmV9hFEqf_kwV6VQmK74lc1LEUEkuDpYg,2488
184
184
  ccxt/abstract/kraken.py,sha256=AUpdQHWHZFXseHNx1-cuLqRutYwYEUVqQ7mjc0TQR_s,5883
185
185
  ccxt/abstract/krakenfutures.py,sha256=pu81cKhQgBkQd8F9-Ly3b7xQD-qQ8WLi8EUMfmAUJcM,4080
186
- ccxt/abstract/kucoin.py,sha256=IoPbxQ9p5pBot_wFTbwlmDerthGg4S03XGYVhCJvPE4,27951
187
- ccxt/abstract/kucoinfutures.py,sha256=8L1ek3YnBLBRjcz_yEx8I4we-tOpGGVZQDQJOwecua0,30921
186
+ ccxt/abstract/kucoin.py,sha256=7R8BIrjg7MWwhPyASYocz0xm_iQseedlnnHQWPNTpf8,28099
187
+ ccxt/abstract/kucoinfutures.py,sha256=DOjys-FXHlGN2Rxy9gXIHB7FR9CF5Csq7IwNgxFbh9E,31069
188
188
  ccxt/abstract/kuna.py,sha256=IsaLq8A4DUOlQ8Esyk0WqBU6hHm5Q4sIqhgnMIvDGX0,24579
189
189
  ccxt/abstract/latoken.py,sha256=1GqE9WxrubgZILnYvg7W_dGyui-FKeIv0bU4z1dQj1k,7168
190
190
  ccxt/abstract/lbank.py,sha256=pdut_cIcwcUhN_ZCyWJxixBc4dgeQqvENYqFCrUYrvA,8675
@@ -220,7 +220,7 @@ ccxt/abstract/xt.py,sha256=JkWvsic3L2O968BCr9H5Wd5NIbRE9aTT2A-9WbAtl0c,27146
220
220
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
221
221
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
222
222
  ccxt/abstract/zonda.py,sha256=X-hCW0SdX3YKZWixDyW-O2211M58Rno8kKJ6quY7rw4,7183
223
- ccxt/async_support/__init__.py,sha256=OTMV5dl0WDvk5khviRCYlf1X8txFz3TdcU9btAFysGo,16421
223
+ ccxt/async_support/__init__.py,sha256=M3oRw_D1I2bHirUbebT9HPxtfcZfLIZdcpDBvMoG6oc,16504
224
224
  ccxt/async_support/ace.py,sha256=zBmLUKH691a2BH1sPzlJPg-uO7lD6Ys92Rv8WSzNtoo,42607
225
225
  ccxt/async_support/alpaca.py,sha256=495vDvdF1IWlsh9QhUnMtkMuINdD0EzeFGlUVqCf8TE,47682
226
226
  ccxt/async_support/ascendex.py,sha256=LK259BdUqU0_STGRH6DmTgaR-7lXqFpZHFVACf2um5c,152721
@@ -230,7 +230,7 @@ ccxt/async_support/binance.py,sha256=pzuysonW4qV1Q2_bIbNVWqm6SWgkCgKrGolvgqlfOEg
230
230
  ccxt/async_support/binancecoinm.py,sha256=yeE73xG5UXD_X3VPul6DMGnV_mgJfWYskpas1BUDdCU,1740
231
231
  ccxt/async_support/binanceus.py,sha256=c-K3Tk7LaRJjmYdCx8vBOqsx01uXrtvt0PC2ekBiD0g,9177
232
232
  ccxt/async_support/binanceusdm.py,sha256=8ugRkx7vyYmn67wdkEEf2f-DFMGAoC4t09usKlPVNyw,2670
233
- ccxt/async_support/bingx.py,sha256=U6ZHlGHPwJDMjitnXE5SOXFnLeKW-_ac-rJ1KdaT798,245477
233
+ ccxt/async_support/bingx.py,sha256=W9SEVvwqG75vY3mkSnsP1kAWB-aRq-lNWsL-nET8-6w,245745
234
234
  ccxt/async_support/bit2c.py,sha256=1s8GGFqdk9FHfG6-fCmJGePppIpHDHZkjN7u6gPekP8,37273
235
235
  ccxt/async_support/bitbank.py,sha256=To1wSMT8i2bVRZABSXIuB2pyeLhmKkE6CHP4i9LMQQU,43794
236
236
  ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
@@ -264,7 +264,7 @@ ccxt/async_support/coinbaseadvanced.py,sha256=Kupwnuxiu_qTjwCNV2asacoDUNFQvcaHNA
264
264
  ccxt/async_support/coinbaseexchange.py,sha256=oJKFrv_bwjwyOGnTprrOoTsUToavrH4f0sTwQlEqZgc,79413
265
265
  ccxt/async_support/coinbaseinternational.py,sha256=d_xWWicD-Zya2BT0YaKmr9Nrl4XbUfWOUe1FWUIXnQo,98054
266
266
  ccxt/async_support/coincheck.py,sha256=N_0cDMAiFRC4G--QgOmSH8esKDr_lEVZUpukc4QoHk8,36148
267
- ccxt/async_support/coinex.py,sha256=cNcLwZSSvSvHiNIb7ot_ohZguk57SmR3OtT_89e11XE,258679
267
+ ccxt/async_support/coinex.py,sha256=PjfFGPesoM1d9POYPDFCZINi72MTLeRxyoKPnKCrjsk,258685
268
268
  ccxt/async_support/coinlist.py,sha256=NTN-W6Jm4fcwvBHRcSB6yj4QTeNrMg5IyZiYpkKUGZ0,104611
269
269
  ccxt/async_support/coinmate.py,sha256=NI58zYMkuOL9lB3UFzyjUNbuFZGrtjZbb4PBFTOsbz4,46456
270
270
  ccxt/async_support/coinmetro.py,sha256=BloSsFuLoLTt_lnaZL051g75Yn1M2LIf7kMCZLOiYTc,80911
@@ -281,7 +281,7 @@ ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,
281
281
  ccxt/async_support/gate.py,sha256=Y4dVM0if4e3a3uG_Wgj10t4oWRBHdjt-0Sp0v3yIWNg,329365
282
282
  ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
283
283
  ccxt/async_support/gemini.py,sha256=7X5-PE3rPrPycUVXu3FtAcDFjNR3QUwYd6lPRQYQeEw,81389
284
- ccxt/async_support/hashkey.py,sha256=6URrypB6H5FFlV09t_qIorXRK983x2I274kr4qgCvqc,192549
284
+ ccxt/async_support/hashkey.py,sha256=bwQsEvhGU60iy_vlAbLvtx1blhDxS4L3cqoTpk6JNQ8,192580
285
285
  ccxt/async_support/hitbtc.py,sha256=jWmyRAy_wkpEidgjCxU0gWur99YJjYHPjD9CN4vJbUE,154444
286
286
  ccxt/async_support/hitbtc3.py,sha256=dmSYoD2o4av_zzbZI8HNIoj8BWxA7QozsVpy8JaOXzU,469
287
287
  ccxt/async_support/hollaex.py,sha256=msUnnbWLNeCxFW77BnfLoFWBdvQIDwV7Rtbi9TA4TYY,76574
@@ -292,9 +292,9 @@ ccxt/async_support/hyperliquid.py,sha256=Ct1KjpC9j4l-ul0r8RWpeeX-6bCdcXrNrrHpdNz
292
292
  ccxt/async_support/idex.py,sha256=UcAvdMc2CP_6E8lET4rmQiIP-RaUfZHSo6pQeA17v-g,73731
293
293
  ccxt/async_support/independentreserve.py,sha256=fCTAQ1U74KOZHIoYbDxzEly1xSgykcYcdpeiJiCEXkU,37991
294
294
  ccxt/async_support/indodax.py,sha256=S4qV7w3gMTRLnzahoCKR70oeRlpxOV3mXDdJw8XpIo8,54888
295
- ccxt/async_support/kraken.py,sha256=mOu4Ur2r2fs0HX61_SW5cG-IBNXcnDxHpBPDy0uJpz0,131840
295
+ ccxt/async_support/kraken.py,sha256=jSho6sFS0oWj4thiAy5AUENYwv2PUWCrXhv8QTZQicA,133539
296
296
  ccxt/async_support/krakenfutures.py,sha256=stPhBne9pFVlgFkw4mwqtaaI6NTZCAcmOIFVlQSbl8I,120085
297
- ccxt/async_support/kucoin.py,sha256=XAOfLEyRUeHfS3pB5elec6F1M_ryPyaEKZle2rPFZDM,227677
297
+ ccxt/async_support/kucoin.py,sha256=yUpyvMjHLy3Vf4yFGENe5CnbWjLly1PNL8v576NCg0o,227800
298
298
  ccxt/async_support/kucoinfutures.py,sha256=X6TMi-Bjv2mijE8xGbg-qp9Ha8Nl7o1Z5LjEiDgxaJ8,125394
299
299
  ccxt/async_support/kuna.py,sha256=QtzLgqgv8mLXECN2drWNVtdvm_vy-bawdxKvozDzbVE,96573
300
300
  ccxt/async_support/latoken.py,sha256=iLypvfxDSW3PGHWLraibz0hBZV4ch5LYH5D24VOnIqk,79938
@@ -320,7 +320,7 @@ ccxt/async_support/probit.py,sha256=8XCtYbAIIQNjfdLfMVwjaJ9vM_7QWnEQ86yYZYPlS8M,
320
320
  ccxt/async_support/timex.py,sha256=vRHjqc-6uMgZTY-sFTBApU_QBnrUri8gaHPNw_Na3Jo,72430
321
321
  ccxt/async_support/tokocrypto.py,sha256=nzJhrGTCTWMbbjI4P_IKfO1O84td8pSssCgZhTqQ7o4,123554
322
322
  ccxt/async_support/tradeogre.py,sha256=A4DEbbRL_g_5WAp7WOB96s08-zgXfGQ9lYZnDX5H1eI,24405
323
- ccxt/async_support/upbit.py,sha256=GmhV24xdjd5NSCronYkqLCM8rr_hNdpt4NEDA5jEkLw,85895
323
+ ccxt/async_support/upbit.py,sha256=r-7J61DYPXfCOa2-iks16MIiqF4IjfuIWQURyximwZ4,85895
324
324
  ccxt/async_support/vertex.py,sha256=_KDPAVq5Bew-w77wiGQpivZCGRs6yGKoW9HGh8PhOLc,122261
325
325
  ccxt/async_support/wavesexchange.py,sha256=wHxvsBQydDEYRgeAZKI9WO4TLBKmmSPTLm0eT0pKB5g,115530
326
326
  ccxt/async_support/wazirx.py,sha256=bnUpw9be3o4l2Hxm3jcfNXn5bMyZlgqoG8BGPusuIzs,52707
@@ -332,7 +332,7 @@ ccxt/async_support/yobit.py,sha256=GQhvYrsGHQrVdTrNHQxx9isEGqUABexlllzao9HL3f8,5
332
332
  ccxt/async_support/zaif.py,sha256=-ZTr8M2JaIRCL90VrbCDXBMAsZwbiwsFChSQ2rWODuQ,29044
333
333
  ccxt/async_support/zonda.py,sha256=jncr6Wg12S72CTpu6mCKCse1pm1f8oefVQurQSrFvP0,81733
334
334
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
335
- ccxt/async_support/base/exchange.py,sha256=7InrcsiQ_iziBYFQeaz3jh5uQVO91wOQYNEdGLxRSoY,110829
335
+ ccxt/async_support/base/exchange.py,sha256=5gYwEWsGfJ-E_hGw5Cd6WA8jshD6tOScctIv3qwPifg,110810
336
336
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
337
337
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
338
338
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=5IEiT0elWI9a7Vr-KV0jgmlbpLJWBzIlrLaCkTKGaqY,5752
@@ -345,11 +345,11 @@ ccxt/async_support/base/ws/order_book.py,sha256=uBUaIHhzMRykpmo4BCsdJ-t_HozS6Vxh
345
345
  ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmBJLCI5FHIRdMz1O-g,6551
346
346
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
347
347
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
348
- ccxt/base/errors.py,sha256=khy0rlaZGU93pATGenSfHSdYk4f-HCMJpJz3VOTfw0E,4508
349
- ccxt/base/exchange.py,sha256=S-nlGv6bfr6QBro6qnCWVk5w-qiJMvgfM0xEXdco-8o,295934
348
+ ccxt/base/errors.py,sha256=Pad-6ugvGUwhoYuKUliX-N7FTrcnKCQGFjsaq2tMn0I,4610
349
+ ccxt/base/exchange.py,sha256=5Taus_1UzI7oNC5LUC4AAOs1T2pL1jOmBneMLwblCuE,295915
350
350
  ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
351
351
  ccxt/base/types.py,sha256=TaP_RElKjGEZWuzyp4o4u2YhREyTG3rUeVT6gDffY9A,9613
352
- ccxt/pro/__init__.py,sha256=-TNPFwOmeOBAXR6pKevUnTc5BGNPtSwONwD-L1BPr5U,7710
352
+ ccxt/pro/__init__.py,sha256=TgfvbDadi5Tx5MypGJ8Luws6Vh0YJQiG5VNXCruz0Fc,7710
353
353
  ccxt/pro/alpaca.py,sha256=xh1yg1Ok-Zh_Mfx-MBjNrfJDs6MUU0exFfEj3GuQPC4,27631
354
354
  ccxt/pro/ascendex.py,sha256=QueLgISoIxgGSOta2W7En4pwAsEXbTP5q5ef4UjpTQQ,37524
355
355
  ccxt/pro/bequant.py,sha256=33OEUWBi4D9-2w8CmkwN3aF1qS-AlLqX3pxrWwNbXPY,1552
@@ -359,27 +359,27 @@ ccxt/pro/binanceus.py,sha256=_IXpS_wyH0nEtsLR7cJLtrUlsNQoG0MSUVo3PV0RDDc,1946
359
359
  ccxt/pro/binanceusdm.py,sha256=lLdOv0d-lM-1wfCc_y_POb6GdmVIiX7PFzmKTWsVyNw,1512
360
360
  ccxt/pro/bingx.py,sha256=Ji6EBezDtGbL2en15Syb2G1Ra9RcuJyaef5GxSHho20,54046
361
361
  ccxt/pro/bitcoincom.py,sha256=zAX6hiz4hS6Un8dSGp88rpnvItxQHfNmsfF0IZ2xIVA,1181
362
- ccxt/pro/bitfinex.py,sha256=m4ERTUt7QIZhAYu8NP818wOHSLRi2vK-_Z5-LXD8zjA,25257
363
- ccxt/pro/bitfinex2.py,sha256=kZVHZwfu1_E27p9Cx55uDVGcEPA6Oy-BQk8t2fbwOmg,43058
364
- ccxt/pro/bitget.py,sha256=r_c6hVH1fwVKLpxgRTZ9r9arIPEr3uRGBgHeI_6ZAtk,78915
362
+ ccxt/pro/bitfinex.py,sha256=BlgNy4_TUPggvfcfpfl7309Phons-2lFp73OdDbQHpw,25305
363
+ ccxt/pro/bitfinex2.py,sha256=H2evIdXrXaHpmvlqoPCOqADYjiHqvZVLf9EnbYHBOj8,43106
364
+ ccxt/pro/bitget.py,sha256=-sK8WqkT1ddS6HLwp0Hr6kGKZ2ELqeW-FOt8IqCStnE,85233
365
365
  ccxt/pro/bithumb.py,sha256=dqYKWebxFg4rsP7jg3oBnCUBcpZAoqAmZsozAU9pYds,16835
366
366
  ccxt/pro/bitmart.py,sha256=LxcP6aiCdwN-euseCMhsXZkhqesPJM-eLh549sGHHfo,62556
367
367
  ccxt/pro/bitmex.py,sha256=dNQf2EAim7kxgCM6I1TgFDl-e2zrXa2veicTEqu8WbQ,73949
368
- ccxt/pro/bitopro.py,sha256=2pCutMnav21uVEkqjUhrI80opxW5NWUkn2IK9-Y2hNQ,18750
368
+ ccxt/pro/bitopro.py,sha256=eGge1vzVXPx1FGZc1cm5i_MzBKlRkWH2ZKuIzrR3G2Q,18798
369
369
  ccxt/pro/bitpanda.py,sha256=ELrhfFKN9YJJdmm9wBf-vpk6WsXGWGf-SyJdqm-E_Lg,415
370
370
  ccxt/pro/bitrue.py,sha256=0-aa3Q8oGLnq71fJQYLyy0jI3NHHTFJuMQAyM0XRLFY,16246
371
- ccxt/pro/bitstamp.py,sha256=P8Td5HqWiO6GMdLj-cKqPTZD28fltWlZQ7Z-omDbO60,20916
371
+ ccxt/pro/bitstamp.py,sha256=tysJpRxfVnZKp-_xgfIhsOVh3ilnQQhXjV-grzqz3QM,20964
372
372
  ccxt/pro/bitvavo.py,sha256=POivGXYmz8GqYc_uErpS6BdG2Gv087BStiJ3lQwod-A,56219
373
- ccxt/pro/blockchaincom.py,sha256=LtCL3habcuB2IRXXK_oeqdzqpnkj01Gr79X82nK8Mnk,29600
373
+ ccxt/pro/blockchaincom.py,sha256=yRJ4m0mTG5FSbkdH4QvuXNnBvLv9kDMGbAMwpcJnyDI,29648
374
374
  ccxt/pro/blofin.py,sha256=Wjw0coQ4TO1qdVVnBGSdRDVtADsl-t-hkOo-uEDZTbc,28659
375
375
  ccxt/pro/bybit.py,sha256=p4YRpTqU3nuCiW2ma1h2Lii0V8S8HX1FmU8t62UTg6A,92054
376
- ccxt/pro/cex.py,sha256=SFgOQmXEfuKodIzN_dISZ_iqU46B2TbVPFSXNbO7cY4,58493
376
+ ccxt/pro/cex.py,sha256=8HgAOhMNU_2hiklxVZTNZVDHcWDXDjuzwSrimdCaMeI,58541
377
377
  ccxt/pro/coinbase.py,sha256=hwd8lUuaW8WyQQOh9WvBVuiuOJTpmlCXU0hL3UE8UFQ,31411
378
378
  ccxt/pro/coinbaseexchange.py,sha256=eoDBwYvGK__zGtC0yNRk2evWwQAD6XpjMHcpubjBt2U,39027
379
379
  ccxt/pro/coinbaseinternational.py,sha256=1ykwnp6XaOqvH0HILlZvrJdgvscF2lnZfIyn5U9tqWY,32250
380
- ccxt/pro/coincheck.py,sha256=7krhoxpI5RoHTyeP9tHz-o_EXlhytIxHZ4Ld7ZK29CE,7803
380
+ ccxt/pro/coincheck.py,sha256=zzZcPmL4Vibh_Sjont-3D8z-E11ugVQVqPakHQxpgKs,7851
381
381
  ccxt/pro/coinex.py,sha256=GkW0duPzwNXppQxHPTaa1QIjnVXa3NXr-BhwocwNYF0,45164
382
- ccxt/pro/coinone.py,sha256=8tnd60CfPzy6n74Ninxa1BhMIvNfCdqgRn_om3zUwLk,15686
382
+ ccxt/pro/coinone.py,sha256=XxJeMDbg3tSDoC3H8p9y7MB_yBR3ZN6PiQyEGaziAZs,15734
383
383
  ccxt/pro/cryptocom.py,sha256=Zrh6noBvrMIcSLgVUuzxW7SPcJzUQDlcqMFU4JsnwLE,43318
384
384
  ccxt/pro/currencycom.py,sha256=8B9pSuPyO0ROCWOROUFoNbJBeOU3bRmlKXSj1CBMkPI,22459
385
385
  ccxt/pro/deribit.py,sha256=DG3UJE8VWuydP64_CJzDqmRC0vqc9ViBvQr28gW_nhY,41094
@@ -387,37 +387,37 @@ ccxt/pro/exmo.py,sha256=n44MqOwY-tSt0TFNhQKydjxRJoSbrMVBzL4NNswOZm4,24542
387
387
  ccxt/pro/gate.py,sha256=PhhmAgeY2IcSIpCdeQcZlhc19neXJkYrRL4W8Bocs84,79322
388
388
  ccxt/pro/gateio.py,sha256=_uBWXYQbmsHRivKnZOJDmxJ9tWLO_0HAxmOjAEUy9nE,391
389
389
  ccxt/pro/gemini.py,sha256=8B8dbYPbKbZb3lzhlt8-x0oybQxOHr8Q4R_f5edLwbU,36899
390
- ccxt/pro/hashkey.py,sha256=_1XC6sOGsMeqwJs-7lxgXAgAoGl2rXYnusWEYFC2Btk,34017
391
- ccxt/pro/hitbtc.py,sha256=hhzNO9qGnALrRlMc7Bw0acIGHhFXVA6sUsTRGrWwYkc,56889
392
- ccxt/pro/hollaex.py,sha256=qb8mnhZ6jK1iv0Ji2O8SSWcxfJMeVWAPBO0pjI-usic,21997
393
- ccxt/pro/htx.py,sha256=NgdEA7O9vIZsQJ-gfB1VevfDYnAljQs0Zst1heKXekk,96281
390
+ ccxt/pro/hashkey.py,sha256=F-NAOAeNSEjHyuZnvGiIYHQow5RAKcwgyb23cGwOiJs,34065
391
+ ccxt/pro/hitbtc.py,sha256=i-6bu6fNu5O19lXxgpbdP8C3DgUzpepfrBDmcOZrqOg,56937
392
+ ccxt/pro/hollaex.py,sha256=la302Z6BMjcqZQhTaj4PQXSfhgFH6m7o3u7Ts5JkHbY,22045
393
+ ccxt/pro/htx.py,sha256=mt-Bh5U6W6MRrpPp5xm6ayhkIcdaS8YCczczw9_1yx4,96329
394
394
  ccxt/pro/huobi.py,sha256=rKZVgYqEr-MmZzTqAk4FoJt8qWFjCi_FY0ci_mWZrL0,385
395
- ccxt/pro/huobijp.py,sha256=aL6wEqAfnZp15mvfxbCsKI5OJqeCLN5IM5QO0OvJRSk,23270
396
- ccxt/pro/hyperliquid.py,sha256=SNRdaYeUXAHjuauI-KfNB6CLECovyzlz4pciS3XWpss,31822
395
+ ccxt/pro/huobijp.py,sha256=urnktXqCIJTccup0oQJPJsM32XR09dDP6qGP1kvBtfg,23318
396
+ ccxt/pro/hyperliquid.py,sha256=B-bV58Jw20AL4C2LGaj11cPp3osZRRr3T5WjfPXwc5Y,32500
397
397
  ccxt/pro/idex.py,sha256=WAY58yMHFUPoqZUGFvzxqcKizvMuFXqdZ6BD0WgstQA,28361
398
- ccxt/pro/independentreserve.py,sha256=wLONq1yDOV-92ZaKaBLZwUxopu0MZR-Z-AjvPN-_fuY,11308
398
+ ccxt/pro/independentreserve.py,sha256=JWMjJ0FUs4LhybAZ4rjHMQIWeOu5Njaj8aVimA7kf30,11356
399
399
  ccxt/pro/kraken.py,sha256=hrYXzL-CLCgm0BbQBjNOoiAfC57Ca5JTiD_24eIvikM,63840
400
400
  ccxt/pro/krakenfutures.py,sha256=Y9vqrxNbr7OJ0BIMZqrVtMedUzk7XtOZuF_OGQ2tUJc,64033
401
401
  ccxt/pro/kucoin.py,sha256=Vsbt5k8zDSve31LiRlPQgdp1AxVtosT1c9nSCUCF364,54296
402
402
  ccxt/pro/kucoinfutures.py,sha256=gMRflEtuO_S_cuhhVOtIwarL_Nk9ThAmGqyvUncVqHc,50331
403
- ccxt/pro/lbank.py,sha256=ip7zjZFvGKufpu30WN2_lFQ-ODcJVNkcJQHbz-uLfHo,35203
404
- ccxt/pro/luno.py,sha256=AzLK0_C0Hu25ukMNkMLP_sY3D4UG9FT38oawpo4jzTg,12336
403
+ ccxt/pro/lbank.py,sha256=nBTAs75zokS5hwdFTgA6NJelk7n0FGBsznbxebLm8QM,35251
404
+ ccxt/pro/luno.py,sha256=ThXkXNrLvp9BW8XXxRcbpRaw9QcLCS2f2tCqbF6qpEU,12384
405
405
  ccxt/pro/mexc.py,sha256=XWizOaMEHWdl0FU7XO_gxxGeTiMFoZxxaBQ1aQ7OrjU,43764
406
- ccxt/pro/ndax.py,sha256=fQsoYtrTEsCZB3hl-pavQytwQAaiMAiTyaCiOy1sVTg,22715
407
- ccxt/pro/okcoin.py,sha256=elwHzrWUSuU7Edp1oisxAnvst5IpxjyzgqLVMEHZWIU,30429
406
+ ccxt/pro/ndax.py,sha256=De7ohX5Dp2PSfFmt50mGH9cB9Me53Wb-B8S6N4_Flvk,22979
407
+ ccxt/pro/okcoin.py,sha256=h8niyeq67h-oBmxiMMy2JdNgOI0fBQuEC3QdUW4-NFs,31048
408
408
  ccxt/pro/okx.py,sha256=rKAUOmT-BfnNzd7IPzgkgbeLJN2e29SOdLfrHboFbeM,85537
409
- ccxt/pro/onetrading.py,sha256=Qlr6LRRqO8te7QyTIhCk5nXJnupH8MtRWhQnH3Zc9yE,54769
409
+ ccxt/pro/onetrading.py,sha256=2LP1LvwbQrwsyXDPRU6_ez4fWR3htKFuzC-4CenHzhU,54817
410
410
  ccxt/pro/oxfun.py,sha256=gcmnoD0pzEDVIaiHyuU2ABoQBrxi0CTP62H2xZD0T7g,43943
411
- ccxt/pro/p2b.py,sha256=qulHrptdJ48MtOQ0bOZH3h_An8Ybu14cU6cJrySV5KQ,17897
412
- ccxt/pro/paradex.py,sha256=9SkO-QV08sGeh5e349hL36u4snxAYuqjdVvJlKgQhH0,14299
411
+ ccxt/pro/p2b.py,sha256=K0aQNKqOWCgju0t-Am7mcIcAFXjIxYXiYft1gEOfw10,19227
412
+ ccxt/pro/paradex.py,sha256=kXWCs_o5GBAoAhsn7P5HQ2_L_B8tz9WsLHPnJ5j4usI,14347
413
413
  ccxt/pro/phemex.py,sha256=ZFQLhlrFKxzoFziHAvM2G1pzf-goRYjdZ-ikVGfeNXw,61107
414
- ccxt/pro/poloniex.py,sha256=e81Vkvg2oRW51nXECf6lF7Cjj5CbHv7Np2QSy6z0h3k,52108
415
- ccxt/pro/poloniexfutures.py,sha256=Iy8Q_Z8I3rUtNcZoxwVzMK2C1qLIiHjFXdZd_rr3Sww,41972
416
- ccxt/pro/probit.py,sha256=ngY30aRwNClc_q_Pirajg4-K-mJ3bvipgD2-jBuPs6g,23110
417
- ccxt/pro/upbit.py,sha256=M3RwAXlK7Mbu8zduZK7eprLOfNgJax_xSPUhzXQ2zfY,22094
418
- ccxt/pro/vertex.py,sha256=sPo6hijgzFUIPqv3OcGuc6gf-MqdmXRRU8Zs13Zskl4,40532
419
- ccxt/pro/wazirx.py,sha256=LXpotTduk3fhtcJP2TWpssiOOAZGxhou5_MTK-0G7n0,30082
420
- ccxt/pro/whitebit.py,sha256=lpIDFgmVXtL77680Rz9hVTEXd3M6TsizhlFb0ruKfEM,35073
414
+ ccxt/pro/poloniex.py,sha256=QKpKOTW73iUQxaFXFZ_0KbyPFJhXtMWNNsfgP-CBeXU,53574
415
+ ccxt/pro/poloniexfutures.py,sha256=a3u8CIc7CuK04jU4PTLPVtGsw7omJ80KRopshziShYU,42020
416
+ ccxt/pro/probit.py,sha256=_oX1OHOd9M5D_fT2w3-zqACXouoUOFsbKxb6Ew3sNOk,23223
417
+ ccxt/pro/upbit.py,sha256=ViN4k89UDZykSOhSF_D0-Lt3ZwYDoBmzITC3oEyUA0s,24055
418
+ ccxt/pro/vertex.py,sha256=n0BFW9So4VxSsjv5vJbFCqeaq8cy-IVe_bw-zB1pC48,40580
419
+ ccxt/pro/wazirx.py,sha256=St9GkOg3vFZ4o3NySL_izzbrs4Kes2-1iS7iznDxZ6o,30247
420
+ ccxt/pro/whitebit.py,sha256=YZw5_BGvLFnadRDjOr5ELW2J6cok83nN77ctfBzfD1I,35689
421
421
  ccxt/pro/woo.py,sha256=TtGZVRdh0IDYICHYTBEgGMBsWm1SoX6aCokw-CMoKy0,48845
422
422
  ccxt/pro/woofipro.py,sha256=T4F82FqZ7BUISorgDVpQlRG5DsKjQ9augsk4Y4uLB4g,49102
423
423
  ccxt/pro/xt.py,sha256=AkO1NpgcKp6RAnB_asqMeYxoIE4psUsNiTHJtKuPxUU,48417
@@ -648,12 +648,12 @@ ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4wer
648
648
  ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
649
649
  ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
650
650
  ccxt/test/__init__.py,sha256=GKPbEcj0Rrz5HG-GUm-iY1IHhDYmlvcBXZAGk6-m2CI,141
651
- ccxt/test/tests_async.py,sha256=HhP5BucP8hMg70-nacdBoln-hRNgcHCCWYLLYnwgKFk,83640
651
+ ccxt/test/tests_async.py,sha256=yVoLZLPkB-_ay0ab_oCyYOSwkLQkLXkPFj5jHTE3esw,84423
652
652
  ccxt/test/tests_helpers.py,sha256=xhOILoZ_x3RSfQjtKt6AQlkp9DkOtpTQe8GAUUZoM6s,10069
653
653
  ccxt/test/tests_init.py,sha256=eVwwUHujX9t4rjgo4TqEeg7DDhR1Hb_e2SJN8NVGyl0,998
654
- ccxt/test/tests_sync.py,sha256=wPQtbdsGyDh3wlgLCUDbIwQo2S32u2YZXXolvhZWNnU,82720
655
- ccxt-4.3.86.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
656
- ccxt-4.3.86.dist-info/METADATA,sha256=xnU6DYeVs6iB9CTp3PLK9ICEreAHNALZ17kZigjeWR4,118108
657
- ccxt-4.3.86.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
658
- ccxt-4.3.86.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
659
- ccxt-4.3.86.dist-info/RECORD,,
654
+ ccxt/test/tests_sync.py,sha256=uu0QsWOuEpkmtV12nIffsiZZFUpM-f1k6W9nlgCDqXs,83485
655
+ ccxt-4.3.88.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
656
+ ccxt-4.3.88.dist-info/METADATA,sha256=hpC47jQKet0SsrfW-SRiZW4eBVtKe1YWNMxjWIWNomQ,118342
657
+ ccxt-4.3.88.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
658
+ ccxt-4.3.88.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
659
+ ccxt-4.3.88.dist-info/RECORD,,
File without changes