ccxt 4.4.20__py2.py3-none-any.whl → 4.4.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.
Files changed (52) hide show
  1. ccxt/__init__.py +1 -1
  2. ccxt/abstract/bitflyer.py +1 -0
  3. ccxt/abstract/bitget.py +3 -0
  4. ccxt/abstract/bybit.py +1 -0
  5. ccxt/abstract/cex.py +28 -29
  6. ccxt/abstract/gate.py +5 -0
  7. ccxt/abstract/gateio.py +5 -0
  8. ccxt/abstract/kucoin.py +2 -0
  9. ccxt/abstract/kucoinfutures.py +2 -0
  10. ccxt/abstract/okx.py +4 -0
  11. ccxt/alpaca.py +1 -0
  12. ccxt/async_support/__init__.py +1 -1
  13. ccxt/async_support/alpaca.py +1 -0
  14. ccxt/async_support/base/exchange.py +7 -1
  15. ccxt/async_support/bigone.py +3 -0
  16. ccxt/async_support/binance.py +96 -10
  17. ccxt/async_support/bingx.py +5 -1
  18. ccxt/async_support/bitflyer.py +56 -1
  19. ccxt/async_support/bitget.py +73 -1
  20. ccxt/async_support/bybit.py +135 -4
  21. ccxt/async_support/cex.py +1247 -1326
  22. ccxt/async_support/cryptocom.py +1 -1
  23. ccxt/async_support/gate.py +97 -2
  24. ccxt/async_support/htx.py +27 -7
  25. ccxt/async_support/hyperliquid.py +15 -12
  26. ccxt/async_support/kucoin.py +42 -88
  27. ccxt/async_support/kucoinfutures.py +2 -2
  28. ccxt/async_support/okx.py +76 -10
  29. ccxt/base/exchange.py +33 -1
  30. ccxt/base/types.py +9 -0
  31. ccxt/bigone.py +3 -0
  32. ccxt/binance.py +96 -10
  33. ccxt/bingx.py +5 -1
  34. ccxt/bitflyer.py +56 -1
  35. ccxt/bitget.py +73 -1
  36. ccxt/bybit.py +135 -4
  37. ccxt/cex.py +1246 -1326
  38. ccxt/cryptocom.py +1 -1
  39. ccxt/gate.py +97 -2
  40. ccxt/htx.py +27 -7
  41. ccxt/hyperliquid.py +15 -12
  42. ccxt/kucoin.py +42 -88
  43. ccxt/kucoinfutures.py +2 -2
  44. ccxt/okx.py +76 -10
  45. ccxt/pro/__init__.py +1 -1
  46. ccxt/test/tests_async.py +4 -4
  47. ccxt/test/tests_sync.py +4 -4
  48. {ccxt-4.4.20.dist-info → ccxt-4.4.22.dist-info}/METADATA +5 -5
  49. {ccxt-4.4.20.dist-info → ccxt-4.4.22.dist-info}/RECORD +52 -52
  50. {ccxt-4.4.20.dist-info → ccxt-4.4.22.dist-info}/LICENSE.txt +0 -0
  51. {ccxt-4.4.20.dist-info → ccxt-4.4.22.dist-info}/WHEEL +0 -0
  52. {ccxt-4.4.20.dist-info → ccxt-4.4.22.dist-info}/top_level.txt +0 -0
ccxt/okx.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.okx import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Account, Balances, Conversion, CrossBorrowRate, CrossBorrowRates, Currencies, Currency, DepositAddress, Greeks, Int, LedgerEntry, Leverage, LeverageTier, MarginModification, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, CancellationRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, Trade, TradingFeeInterface, Transaction, TransferEntry
9
+ from ccxt.base.types import Account, LongShortRatio, Balances, Conversion, CrossBorrowRate, CrossBorrowRates, Currencies, Currency, DepositAddress, Greeks, Int, LedgerEntry, Leverage, LeverageTier, MarginModification, Market, MarketInterface, Num, Option, OptionChain, Order, OrderBook, OrderRequest, CancellationRequest, OrderSide, OrderType, Position, Str, Strings, Ticker, Tickers, FundingRate, Trade, TradingFeeInterface, Transaction, TransferEntry
10
10
  from typing import List
11
11
  from typing import Any
12
12
  from ccxt.base.errors import ExchangeError
@@ -17,6 +17,7 @@ from ccxt.base.errors import AccountSuspended
17
17
  from ccxt.base.errors import ArgumentsRequired
18
18
  from ccxt.base.errors import BadRequest
19
19
  from ccxt.base.errors import BadSymbol
20
+ from ccxt.base.errors import OperationRejected
20
21
  from ccxt.base.errors import ManualInteractionNeeded
21
22
  from ccxt.base.errors import InsufficientFunds
22
23
  from ccxt.base.errors import InvalidAddress
@@ -118,6 +119,8 @@ class okx(Exchange, ImplicitAPI):
118
119
  'fetchLedgerEntry': None,
119
120
  'fetchLeverage': True,
120
121
  'fetchLeverageTiers': False,
122
+ 'fetchLongShortRatio': False,
123
+ 'fetchLongShortRatioHistory': True,
121
124
  'fetchMarginAdjustmentHistory': True,
122
125
  'fetchMarketLeverageTiers': True,
123
126
  'fetchMarkets': True,
@@ -260,6 +263,7 @@ class okx(Exchange, ImplicitAPI):
260
263
  'rubik/stat/margin/loan-ratio': 4,
261
264
  # long/short
262
265
  'rubik/stat/contracts/long-short-account-ratio': 4,
266
+ 'rubik/stat/contracts/long-short-account-ratio-contract': 4,
263
267
  'rubik/stat/contracts/open-interest-volume': 4,
264
268
  'rubik/stat/option/open-interest-volume': 4,
265
269
  # put/call
@@ -378,6 +382,9 @@ class okx(Exchange, ImplicitAPI):
378
382
  'account/fixed-loan/borrowing-limit': 4,
379
383
  'account/fixed-loan/borrowing-quote': 5,
380
384
  'account/fixed-loan/borrowing-orders-list': 5,
385
+ 'account/spot-manual-borrow-repay': 10,
386
+ 'account/set-auto-repay': 4,
387
+ 'account/spot-borrow-repay-history': 4,
381
388
  # subaccount
382
389
  'users/subaccount/list': 10,
383
390
  'account/subaccount/balances': 10 / 3,
@@ -909,6 +916,11 @@ class okx(Exchange, ImplicitAPI):
909
916
  '59301': ExchangeError, # Margin adjustment failed for exceeding the max limit
910
917
  '59313': ExchangeError, # Unable to repay. You haven't borrowed any {ccy} {ccyPair} in Quick margin mode.
911
918
  '59401': ExchangeError, # Holdings already reached the limit
919
+ '59410': OperationRejected, # You can only borrow self crypto if it supports borrowing and borrowing is enabled.
920
+ '59411': InsufficientFunds, # Manual borrowing failed. Your account's free margin is insufficient
921
+ '59412': OperationRejected, # Manual borrowing failed. The amount exceeds your borrowing limit.
922
+ '59413': OperationRejected, # You didn't borrow self crypto. No repayment needed.
923
+ '59414': BadRequest, # Manual borrowing failed. The minimum borrowing limit is {param0}.needed.
912
924
  '59500': ExchangeError, # Only the APIKey of the main account has permission
913
925
  '59501': ExchangeError, # Only 50 APIKeys can be created per account
914
926
  '59502': ExchangeError, # Note name cannot be duplicate with the currently created APIKey note name
@@ -6230,15 +6242,6 @@ class okx(Exchange, ImplicitAPI):
6230
6242
  borrowRateHistories[code] = self.filter_by_currency_since_limit(borrowRateHistories[code], code, since, limit)
6231
6243
  return borrowRateHistories
6232
6244
 
6233
- def parse_borrow_rate_history(self, response, code, since, limit):
6234
- result = []
6235
- for i in range(0, len(response)):
6236
- item = response[i]
6237
- borrowRate = self.parse_borrow_rate(item)
6238
- result.append(borrowRate)
6239
- sorted = self.sort_by(result, 'timestamp')
6240
- return self.filter_by_currency_since_limit(sorted, code, since, limit)
6241
-
6242
6245
  def fetch_borrow_rate_histories(self, codes=None, since: Int = None, limit: Int = None, params={}):
6243
6246
  """
6244
6247
  retrieves a history of a multiple currencies borrow interest rate at specific time slots, returns all currencies if no symbols passed, default is None
@@ -7929,3 +7932,66 @@ class okx(Exchange, ImplicitAPI):
7929
7932
  data = self.safe_list(response, 'data')
7930
7933
  positions = self.parse_positions(data, symbols, params)
7931
7934
  return self.filter_by_since_limit(positions, since, limit)
7935
+
7936
+ def fetch_long_short_ratio_history(self, symbol: Str = None, timeframe: Str = None, since: Int = None, limit: Int = None, params={}) -> List[LongShortRatio]:
7937
+ """
7938
+ fetches the long short ratio history for a unified market symbol
7939
+ :see: https://www.okx.com/docs-v5/en/#trading-statistics-rest-api-get-contract-long-short-ratio
7940
+ :param str symbol: unified symbol of the market to fetch the long short ratio for
7941
+ :param str [timeframe]: the period for the ratio
7942
+ :param int [since]: the earliest time in ms to fetch ratios for
7943
+ :param int [limit]: the maximum number of long short ratio structures to retrieve
7944
+ :param dict [params]: extra parameters specific to the exchange API endpoint
7945
+ :param int [params.until]: timestamp in ms of the latest ratio to fetch
7946
+ :returns dict[]: an array of `long short ratio structures <https://docs.ccxt.com/#/?id=long-short-ratio-structure>`
7947
+ """
7948
+ self.load_markets()
7949
+ market = self.market(symbol)
7950
+ request: dict = {
7951
+ 'instId': market['id'],
7952
+ }
7953
+ until = self.safe_string_2(params, 'until', 'end')
7954
+ params = self.omit(params, 'until')
7955
+ if until is not None:
7956
+ request['end'] = until
7957
+ if timeframe is not None:
7958
+ request['period'] = timeframe
7959
+ if since is not None:
7960
+ request['begin'] = since
7961
+ if limit is not None:
7962
+ request['limit'] = limit
7963
+ response = self.publicGetRubikStatContractsLongShortAccountRatioContract(self.extend(request, params))
7964
+ #
7965
+ # {
7966
+ # "code": "0",
7967
+ # "data": [
7968
+ # ["1729323600000", "0.9398602814619824"],
7969
+ # ["1729323300000", "0.9398602814619824"],
7970
+ # ["1729323000000", "0.9398602814619824"],
7971
+ # ],
7972
+ # "msg": ""
7973
+ # }
7974
+ #
7975
+ data = self.safe_list(response, 'data', [])
7976
+ result = []
7977
+ for i in range(0, len(data)):
7978
+ entry = data[i]
7979
+ result.append({
7980
+ 'timestamp': self.safe_string(entry, 0),
7981
+ 'longShortRatio': self.safe_string(entry, 1),
7982
+ })
7983
+ return self.parse_long_short_ratio_history(result, market)
7984
+
7985
+ def parse_long_short_ratio(self, info: dict, market: Market = None) -> LongShortRatio:
7986
+ timestamp = self.safe_integer(info, 'timestamp')
7987
+ symbol = None
7988
+ if market is not None:
7989
+ symbol = market['symbol']
7990
+ return {
7991
+ 'info': info,
7992
+ 'symbol': symbol,
7993
+ 'timestamp': timestamp,
7994
+ 'datetime': self.iso8601(timestamp),
7995
+ 'timeframe': None,
7996
+ 'longShortRatio': self.safe_number(info, 'longShortRatio'),
7997
+ }
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.4.20'
7
+ __version__ = '4.4.22'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
ccxt/test/tests_async.py CHANGED
@@ -31,9 +31,9 @@ class testMainClass:
31
31
  proxy_test_file_name = 'proxies'
32
32
 
33
33
  def parse_cli_args_and_props(self):
34
- self.response_tests = get_cli_arg_value('--responseTests')
34
+ self.response_tests = get_cli_arg_value('--responseTests') or get_cli_arg_value('--response')
35
35
  self.id_tests = get_cli_arg_value('--idTests')
36
- self.request_tests = get_cli_arg_value('--requestTests')
36
+ self.request_tests = get_cli_arg_value('--requestTests') or get_cli_arg_value('--request')
37
37
  self.info = get_cli_arg_value('--info')
38
38
  self.verbose = get_cli_arg_value('--verbose')
39
39
  self.debug = get_cli_arg_value('--debug')
@@ -858,7 +858,7 @@ class testMainClass:
858
858
  self.assert_static_request_output(exchange, type, skip_keys, data['url'], request_url, call_output, output)
859
859
  except Exception as e:
860
860
  self.request_tests_failed = True
861
- error_message = '[' + self.lang + '][STATIC_REQUEST_TEST_FAILURE]' + '[' + exchange.id + ']' + '[' + method + ']' + '[' + data['description'] + ']' + str(e)
861
+ error_message = '[' + self.lang + '][STATIC_REQUEST]' + '[' + exchange.id + ']' + '[' + method + ']' + '[' + data['description'] + ']' + str(e)
862
862
  dump('[TEST_FAILURE]' + error_message)
863
863
 
864
864
  async def test_response_statically(self, exchange, method, skip_keys, data):
@@ -873,7 +873,7 @@ class testMainClass:
873
873
  self.assert_static_response_output(mocked_exchange, skip_keys, unified_result_sync, expected_result)
874
874
  except Exception as e:
875
875
  self.response_tests_failed = True
876
- error_message = '[' + self.lang + '][STATIC_RESPONSE_TEST_FAILURE]' + '[' + exchange.id + ']' + '[' + method + ']' + '[' + data['description'] + ']' + str(e)
876
+ error_message = '[' + self.lang + '][STATIC_RESPONSE]' + '[' + exchange.id + ']' + '[' + method + ']' + '[' + data['description'] + ']' + str(e)
877
877
  dump('[TEST_FAILURE]' + error_message)
878
878
  set_fetch_response(exchange, None) # reset state
879
879
 
ccxt/test/tests_sync.py CHANGED
@@ -28,9 +28,9 @@ class testMainClass:
28
28
  proxy_test_file_name = 'proxies'
29
29
 
30
30
  def parse_cli_args_and_props(self):
31
- self.response_tests = get_cli_arg_value('--responseTests')
31
+ self.response_tests = get_cli_arg_value('--responseTests') or get_cli_arg_value('--response')
32
32
  self.id_tests = get_cli_arg_value('--idTests')
33
- self.request_tests = get_cli_arg_value('--requestTests')
33
+ self.request_tests = get_cli_arg_value('--requestTests') or get_cli_arg_value('--request')
34
34
  self.info = get_cli_arg_value('--info')
35
35
  self.verbose = get_cli_arg_value('--verbose')
36
36
  self.debug = get_cli_arg_value('--debug')
@@ -855,7 +855,7 @@ class testMainClass:
855
855
  self.assert_static_request_output(exchange, type, skip_keys, data['url'], request_url, call_output, output)
856
856
  except Exception as e:
857
857
  self.request_tests_failed = True
858
- error_message = '[' + self.lang + '][STATIC_REQUEST_TEST_FAILURE]' + '[' + exchange.id + ']' + '[' + method + ']' + '[' + data['description'] + ']' + str(e)
858
+ error_message = '[' + self.lang + '][STATIC_REQUEST]' + '[' + exchange.id + ']' + '[' + method + ']' + '[' + data['description'] + ']' + str(e)
859
859
  dump('[TEST_FAILURE]' + error_message)
860
860
 
861
861
  def test_response_statically(self, exchange, method, skip_keys, data):
@@ -870,7 +870,7 @@ class testMainClass:
870
870
  self.assert_static_response_output(mocked_exchange, skip_keys, unified_result_sync, expected_result)
871
871
  except Exception as e:
872
872
  self.response_tests_failed = True
873
- error_message = '[' + self.lang + '][STATIC_RESPONSE_TEST_FAILURE]' + '[' + exchange.id + ']' + '[' + method + ']' + '[' + data['description'] + ']' + str(e)
873
+ error_message = '[' + self.lang + '][STATIC_RESPONSE]' + '[' + exchange.id + ']' + '[' + method + ']' + '[' + data['description'] + ']' + str(e)
874
874
  dump('[TEST_FAILURE]' + error_message)
875
875
  set_fetch_response(exchange, None) # reset state
876
876
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.20
3
+ Version: 4.4.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
@@ -145,7 +145,7 @@ The CCXT library currently supports the following 103 cryptocurrency exchange ma
145
145
  | [![btcmarkets](https://user-images.githubusercontent.com/51840849/89731817-b3fb8480-da52-11ea-817f-783b08aaf32b.jpg)](https://btcmarkets.net) | btcmarkets | [BTC Markets](https://btcmarkets.net) | [![API Version 3](https://img.shields.io/badge/3-lightgray)](https://api.btcmarkets.net/doc/v3) | cex | | |
146
146
  | [![btcturk](https://user-images.githubusercontent.com/51840849/87153926-efbef500-c2c0-11ea-9842-05b63612c4b9.jpg)](https://www.btcturk.com) | btcturk | [BTCTurk](https://www.btcturk.com) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://github.com/BTCTrader/broker-api-docs) | cex | | |
147
147
  | [![bybit](https://user-images.githubusercontent.com/51840849/76547799-daff5b80-649e-11ea-87fb-3be9bac08954.jpg)](https://www.bybit.com/register?affiliate_id=35953) | bybit | [Bybit](https://www.bybit.com/register?affiliate_id=35953) | [![API Version 5](https://img.shields.io/badge/5-lightgray)](https://bybit-exchange.github.io/docs/inverse/) | 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) |
148
- | [![cex](https://user-images.githubusercontent.com/1294454/27766442-8ddc33b0-5ed8-11e7-8b98-f786aef0f3c9.jpg)](https://cex.io/r/0/up105393824/0/) | cex | [CEX.IO](https://cex.io/r/0/up105393824/0/) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://cex.io/cex-api) | cex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
148
+ | [![cex](https://user-images.githubusercontent.com/1294454/27766442-8ddc33b0-5ed8-11e7-8b98-f786aef0f3c9.jpg)](https://cex.io/r/0/up105393824/0/) | cex | [CEX.IO](https://cex.io/r/0/up105393824/0/) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://trade.cex.io/docs/) | cex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
149
149
  | [![coinbase](https://user-images.githubusercontent.com/1294454/40811661-b6eceae2-653a-11e8-829e-10bfadb078cf.jpg)](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | coinbase | [Coinbase Advanced](https://www.coinbase.com/join/58cbe25a355148797479dbd2) | [![API Version 2](https://img.shields.io/badge/2-lightgray)](https://developers.coinbase.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) |
150
150
  | [![coinbaseexchange](https://github.com/ccxt/ccxt/assets/43336371/34a65553-88aa-4a38-a714-064bd228b97e)](https://coinbase.com/) | coinbaseexchange | [Coinbase Exchange](https://coinbase.com/) | [![API Version *](https://img.shields.io/badge/*-lightgray)](https://docs.cloud.coinbase.com/exchange/docs/) | cex | | [![CCXT Pro](https://img.shields.io/badge/CCXT-Pro-black)](https://ccxt.pro) |
151
151
  | [![coinbaseinternational](https://github.com/ccxt/ccxt/assets/43336371/866ae638-6ab5-4ebf-ab2c-cdcce9545625)](https://international.coinbase.com) | coinbaseinternational | [Coinbase International](https://international.coinbase.com) | [![API Version 1](https://img.shields.io/badge/1-lightgray)](https://docs.cloud.coinbase.com/intx/docs) | 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 +271,13 @@ console.log(version, Object.keys(exchanges));
271
271
 
272
272
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
273
273
 
274
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.20/dist/ccxt.browser.min.js
275
- * unpkg: https://unpkg.com/ccxt@4.4.20/dist/ccxt.browser.min.js
274
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.22/dist/ccxt.browser.min.js
275
+ * unpkg: https://unpkg.com/ccxt@4.4.22/dist/ccxt.browser.min.js
276
276
 
277
277
  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
278
 
279
279
  ```HTML
280
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.20/dist/ccxt.browser.min.js"></script>
280
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.22/dist/ccxt.browser.min.js"></script>
281
281
  ```
282
282
 
283
283
  Creates a global `ccxt` object:
@@ -1,14 +1,14 @@
1
- ccxt/__init__.py,sha256=tKK1YYAQ5sGJE0BbbzQ2i8wYvSNeMF1ow5bzLZME--I,16486
1
+ ccxt/__init__.py,sha256=bzu0FQI8FRkcA626Gx7E9zLumKvQciqfHD-OyoQKqkg,16486
2
2
  ccxt/ace.py,sha256=3KFlbRm6N9hXsKUsgZbQCFPZT5WGLm4HOjR19Q3uPts,42419
3
- ccxt/alpaca.py,sha256=nVQJ8vG4JrjEvMlu_nPoyR2lBq41j9Z2smPq95nDhng,47504
3
+ ccxt/alpaca.py,sha256=yGBD1qwBx2lFjj_0D_4Fz9bjfmIWwGHnoApMhwaA1hc,47554
4
4
  ccxt/ascendex.py,sha256=aJ5_UysmRijYUvjenq5EDLldl2JUO6lXGofJ_NqPvJU,151676
5
5
  ccxt/bequant.py,sha256=RBiAmaTbL35DgiV3Hl6uchLUd78V0z1T9riTlNsrpdc,1174
6
- ccxt/bigone.py,sha256=mPYt5d9L4nCRnxwhVpwoBcpLLkt5E0ptOVzkveR_F28,91249
7
- ccxt/binance.py,sha256=LOW0PigowIqFQAD0tou4RQYjEYRFdp5xZH77AjWr26E,657204
6
+ ccxt/bigone.py,sha256=CoJwptGvb8j7GYeVh0F7rQoe4zW6nPealduMpSgkHQU,91389
7
+ ccxt/binance.py,sha256=_tR5w_b639UUqYLmMCBGAMbhxv0Y2Zkw36iapzjTFPQ,661015
8
8
  ccxt/binancecoinm.py,sha256=arFnEh8mErSyi23eVPWE4iwoT7PWQyxGGVJCKCy6UJY,1702
9
9
  ccxt/binanceus.py,sha256=HRsk0fIoi8AAFdzRCUMkkXUGLqBrf0guUOfUxupHFeY,9202
10
10
  ccxt/binanceusdm.py,sha256=bAPcJj5HLxoCdPolriM8sJpoTBwbV78vBTbKRmWhNP4,2632
11
- ccxt/bingx.py,sha256=qmG7fgs6ZmcsPSPjHrMcb5HLvONn1d6Z7DSJn9Q83Dg,252069
11
+ ccxt/bingx.py,sha256=zJffOn5jUmZ0ioEg4ur1G5icTuKEYWj8m-lsOR_vgXc,252247
12
12
  ccxt/bit2c.py,sha256=Y_YHvg90Sq3CayQ2lr1_wLYwz4wGR7G3NJARiv_jX8M,37254
13
13
  ccxt/bitbank.py,sha256=npoyV3c8uJ36nKofSzpMri590Yj_DIH0FAZg8o2EW6Y,43709
14
14
  ccxt/bitbay.py,sha256=xAIjzGRDVGwoy-Gygd99H0YN4wiaz_0lR0Z14oxaaxc,478
@@ -16,8 +16,8 @@ ccxt/bitbns.py,sha256=RE1-Smi0SftcjVXgK8JS8TPz94pfeFJmvW4qfy1WUsQ,48408
16
16
  ccxt/bitcoincom.py,sha256=PyWIl4nC4jp5Uba2lI1At0N_hhNyWD0DoZC_MSyL_s4,502
17
17
  ccxt/bitfinex.py,sha256=iJYewoNbVSB1UCfrTqzXBECMBhOc5IMECI3Ssuo3dN0,73666
18
18
  ccxt/bitfinex2.py,sha256=9ad6ebvgThHIBhFmfp0MZIhyYkGBoIrudoLyyiz8cQ4,160817
19
- ccxt/bitflyer.py,sha256=nh1EDzO66S-Ps9xBy-U4CErt6Q06E77wbWF_aTRw6RI,41663
20
- ccxt/bitget.py,sha256=pV31_03aZZhbyul8LOdOaCR00eC5bFRgBXUBta_SrPs,428677
19
+ ccxt/bitflyer.py,sha256=d-uAblYb1A2mMummdOFsc6VL9HuCTh4OlPs4C1-ncgo,43917
20
+ ccxt/bitget.py,sha256=qt8nxlCd4u6aIuTKPCY0gZL1s5yUjGlihBCAdJOs7jk,432060
21
21
  ccxt/bithumb.py,sha256=8oTnFWi8Ai9fnm5FPXvNmaUAVJEOqYi-18VC23cWmXY,47935
22
22
  ccxt/bitmart.py,sha256=8D8pFVsaEMJZ5PQuheTigQ_-BEfHyvieIxwlM9o1-Yw,222097
23
23
  ccxt/bitmex.py,sha256=w87ovaOQNJxtycsW4N7dpDzyh5AAPo5qnNS3TyBjppk,127407
@@ -35,8 +35,8 @@ ccxt/btcalpha.py,sha256=plU5SSsJn0ZMLW7I8sXb_L0Woc3-kamGMSlqPGujUzE,36751
35
35
  ccxt/btcbox.py,sha256=lvY7cgoe4tglaQiTJZ4vILmzvoEjAWxgswRuB2iYzmE,27780
36
36
  ccxt/btcmarkets.py,sha256=WDDbtbUQ9I0odVZp8nJdIjc4-zv4li49EDSt8EqQbRU,52733
37
37
  ccxt/btcturk.py,sha256=jSA4UnD1GiJu24gXNkfb94f-zXifP5By_Ptery_cMnY,37024
38
- ccxt/bybit.py,sha256=IkafXZJVGyn8SIYAuZtQ-0S1MhTLeFkzJ6o8R0rJWgs,441554
39
- ccxt/cex.py,sha256=C1j8Vk2duXt4TuKINJ7VWivVY54sOIo-FzE6dn_laWU,70211
38
+ ccxt/bybit.py,sha256=eFQg70MjH_F-Owk5ICDdcFfiwDJqF7x1Y18yZ4q4l5A,447547
39
+ ccxt/cex.py,sha256=uoPXeFJJ84llVGboF2ObdAz79PI6IdmY8x-_yjNrz6M,67743
40
40
  ccxt/coinbase.py,sha256=CNDpskULlvJ8PLjb0tXp_PifmYXYImX8ZjB4Kvx5NqY,218725
41
41
  ccxt/coinbaseadvanced.py,sha256=d5g6nRx-NCcCwZDdtp8FsI2D-pRjSvnAP9ISSKY_nCQ,538
42
42
  ccxt/coinbaseexchange.py,sha256=hSqkZw0y3EELtpsbJaMQXzc2nCbevVjHw6LDPcGH7_Y,79031
@@ -49,31 +49,31 @@ ccxt/coinmetro.py,sha256=sVDcyA3ZC3MBEvslnkOepbYGlnonbf8K5MRoLIIQ2-k,80647
49
49
  ccxt/coinone.py,sha256=WXbieDO3M8kBQ1ImKzH5wGXLzoCf9Hr1CDhXWueoW5E,46888
50
50
  ccxt/coinsph.py,sha256=HiDsqFOaNob4O4Cnl9zpQawvbB4Y8LIpeASUVzseEDM,90910
51
51
  ccxt/coinspot.py,sha256=-9oRdHdc6iWrkxXxcVF9zBashNcRJSoFORwHRa9scMc,23876
52
- ccxt/cryptocom.py,sha256=UtEMONtpChaG9qO02CuZkNms-QwUxeuUgRmLxpPe0YU,136802
52
+ ccxt/cryptocom.py,sha256=VfuucJ50VL8_atdCKDuKdJTHV259x-MUAL_qlBGfRIU,136807
53
53
  ccxt/currencycom.py,sha256=TxISX87ky2sqzmLMH9sm-OPyWxUaUPdiA9g9MOQcfD0,87180
54
54
  ccxt/delta.py,sha256=Q7AXfWe_gO6uln4UYjrCXWrl820hk_uZ_qX6bX93uEQ,151309
55
55
  ccxt/deribit.py,sha256=x1TVHGfPxm9jL1Woxb-sLWZ-UdeGMiuVy4bdQGNRBO8,161694
56
56
  ccxt/digifinex.py,sha256=HUxkYS2UbrAqiPuzPPMBMFLEahiIuiOElGDxRt4Gk7o,171005
57
57
  ccxt/exmo.py,sha256=uCv9bsFzelhAHi_tIQe75X30csJvYizuCK09vU3NC4g,114777
58
58
  ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
59
- ccxt/gate.py,sha256=_sbC6tMv7QCVFYuzdv6czz4x4TdMxfgCIVUKmQpfGd8,331621
59
+ ccxt/gate.py,sha256=jPWcyuY3zkfXi0egOTTfx2B4A9_wYqyFtPZbH6VbO88,335940
60
60
  ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
61
61
  ccxt/gemini.py,sha256=cFAHx-qA26A9WMJ3i6f_uQH83Q4k6UDwS8zBQcLI5Fs,81056
62
62
  ccxt/hashkey.py,sha256=LMV9wPTn2_qT2om74OdF-IfHreaySxNHOilsNDrgB7Q,192148
63
63
  ccxt/hitbtc.py,sha256=K9K0bcRffitBmnRgKKwRR09WCFE6Yj58FbwrJW6LlKU,153613
64
64
  ccxt/hitbtc3.py,sha256=qRAr4Zvaju9IQWRZUohdoN7xRnzIMPq8AyYb3gPv-Is,455
65
65
  ccxt/hollaex.py,sha256=bGaqSEwR42i1etwXgSYbluStoyKcIbuj4Qx-YQkVUhM,76255
66
- ccxt/htx.py,sha256=AtHi2kswFSP9NBSWSjIqQeDoBPDeyTsQPElnaGkTcaM,434498
66
+ ccxt/htx.py,sha256=dYbPoyLBhXd_VcR8H-e-0THSP05GRAEoNNpt40trjDI,435943
67
67
  ccxt/huobi.py,sha256=4vaG7IRN7fyjaJ_ac6S-njlHOfSEN5de7aq0noznxYw,438
68
68
  ccxt/huobijp.py,sha256=Kw1HQhoox1qp-bEiGpCcJSg1UAhPVLRRi-BRbQLMljI,89741
69
- ccxt/hyperliquid.py,sha256=SIdQrgUPv3FTAKCFADgys-_x7uS8AO9kWqHMtEILaPw,123150
69
+ ccxt/hyperliquid.py,sha256=ZTPRxBpHQn38I8rfJlWkwg1pAE6R4fql6xobtla39O4,123420
70
70
  ccxt/idex.py,sha256=2yiYt-w39o3gQs3-byp83GQYSD4DSlZTN1Ixieettt0,73307
71
71
  ccxt/independentreserve.py,sha256=q8wUCbDnhxc_JiOTS7xcGsLp_EdmZTMe3QvLVB6oB-0,37899
72
72
  ccxt/indodax.py,sha256=QPH7sQzhqOFwq6g_xCAMcgnrpVVRl49zf_uolywxuX8,54798
73
73
  ccxt/kraken.py,sha256=qOJz1jNl7wKqvonYdPCqWIbj7uKfsPY1qSVXllc5w6Y,135904
74
74
  ccxt/krakenfutures.py,sha256=dbreVGrjMD7AY6xai0eazuvnUpTXTD7wLDVT9VDD5Qk,119839
75
- ccxt/kucoin.py,sha256=Bfhrue_5ZiJNzetgqOJvsiOxDZwN4qAyXewZEepqtLE,231819
76
- ccxt/kucoinfutures.py,sha256=fgSjDKPyDixiQnmCpjTnBazjqWVg15ziKgBAp2Xq9kM,139376
75
+ ccxt/kucoin.py,sha256=czMTiiC21UymYN6m0KTM6s1rFOVwujeKKI3tXJUqRcQ,229222
76
+ ccxt/kucoinfutures.py,sha256=I6cladqgxS2lUfcxBPgt8wrbzF7DQjAFnTJJVe4eIFM,139433
77
77
  ccxt/kuna.py,sha256=wL4QciCkKXgOSnmMP2mkSq9HlL7Gsz-c2s75rH5YZkA,96074
78
78
  ccxt/latoken.py,sha256=wBhaMcTEsB316nFCxm_WbLRZ_G2Q0Vi1FK-850Q07D0,79516
79
79
  ccxt/lbank.py,sha256=zFByIRV1v23oknBPkLIN0ZGaewr-siQzv84aoQRFRNA,116266
@@ -85,7 +85,7 @@ ccxt/ndax.py,sha256=EHlxGEi6RKnz2IDLdEGj8V4yVt8exliTJiP46J40a_8,110430
85
85
  ccxt/novadax.py,sha256=_xFkuZ72vHhpJb1N9h_MQHRD05GDWlqUeLQQcOp43BM,64436
86
86
  ccxt/oceanex.py,sha256=NRL1VUBdpkAZj0qFov-HB_TEwmIX6lyz3RdCW53B66A,41178
87
87
  ccxt/okcoin.py,sha256=Dvn7kOe6pvFLqkq3zA7DTWPQB6HmzoNLZ5tAeZ8gWwA,151307
88
- ccxt/okx.py,sha256=VlbeY0W1PYhi9yxabPO29-aqcqm6p6CElR48OAtPv44,384469
88
+ ccxt/okx.py,sha256=wRAuk6UeqO3pS3vNjFyuGp2IuDlFqPXutngWtpetYMw,387914
89
89
  ccxt/onetrading.py,sha256=0yQ1MNVcTrHlWYVU_D3FmeHkK1FT35zFans6e9KeRxA,88480
90
90
  ccxt/oxfun.py,sha256=uFrS6oO6rvyXmocqPwAxVzczg0IG-BZeqRmNcNcTTig,124875
91
91
  ccxt/p2b.py,sha256=iPzHv663K8F1F0uTWEYpfQBcaqowY8MQ5tZt2ZNpoQE,54290
@@ -126,8 +126,8 @@ ccxt/abstract/bitbns.py,sha256=3T3cHS7SgzGipd6F8vzPnmM0x3XNfQXEPjoInD-C1Sw,4082
126
126
  ccxt/abstract/bitcoincom.py,sha256=OTBtNu3DQeAqAC_Lbi0NePUs-ZQQllcLrVDI2G04nwQ,15601
127
127
  ccxt/abstract/bitfinex.py,sha256=OLUXdJEycyN_qrBhPuTTOVlwu3jkqVWenoTmS-W3bOE,7605
128
128
  ccxt/abstract/bitfinex2.py,sha256=82sdkbjDb6D2JePGAa2yYwApDwdeF9Tvlo-hWB2ZUBs,19194
129
- ccxt/abstract/bitflyer.py,sha256=3ngG1GJJCNMzYMWoNXCEEgLxmTl7eRf7_JU4M0P2rqo,3576
130
- ccxt/abstract/bitget.py,sha256=ELBdc4MCJ1eOLDQKFCXhGlogRO_RgYU2YDS87Flv-5k,90490
129
+ ccxt/abstract/bitflyer.py,sha256=fcVd6Nm4o2Rn8MaSuclvNbBBrIL5JCnWcXoXsOxZFbw,3679
130
+ ccxt/abstract/bitget.py,sha256=jbL-2S9MlDloP2yACzptr6DkUwzoWH5ALpcjPCHInj0,91042
131
131
  ccxt/abstract/bithumb.py,sha256=GR7QJ6CwTBne59SaGRVj9Rdz_zecG-8imRWX7oe6MoQ,3443
132
132
  ccxt/abstract/bitmart.py,sha256=uGrEpJPawj5Kqyktdh01jRtd5Ou_lCRgLbh7X6k4pho,15676
133
133
  ccxt/abstract/bitmex.py,sha256=v15OP-vSO_eotD6KVf1BgKrbPxCPl2eXXYIuzWF1dl4,10774
@@ -145,8 +145,8 @@ ccxt/abstract/btcalpha.py,sha256=sbF4SAkTJq01QPQw4D2GMkKrPhKfFIsG-PNtMAC9WwU,138
145
145
  ccxt/abstract/btcbox.py,sha256=pifkHEayyfVN4lhO2s8oKg_wjQChwWo0g5-vw4rcm1s,931
146
146
  ccxt/abstract/btcmarkets.py,sha256=dQ2yTZ_8T2TEeAYIuKE0ATImbOLDLGSK7HbbBd8XVJQ,3690
147
147
  ccxt/abstract/btcturk.py,sha256=duM-QrB9MvGpopOtxkfbeYlY49bgvXQLiosRVmnQYFw,1777
148
- ccxt/abstract/bybit.py,sha256=LF6CubceoBU3HHAb17zz8uDIEDmJ9T_7bDrySao8txk,49941
149
- ccxt/abstract/cex.py,sha256=Q0NJeDuJ4Kn_mtokYqBenhXWvLIiMSVTqbgbfcLGgv4,3311
148
+ ccxt/abstract/bybit.py,sha256=6JXcw_zXMfCEjsmrflYnWBQHG5NJWkfwd79GB6b7B0A,50134
149
+ ccxt/abstract/cex.py,sha256=59oASCpeYdLPKnhD6Ih62I5FhjgwZDcU9BiHewUDoew,3600
150
150
  ccxt/abstract/coinbase.py,sha256=GFXDh_Bf65Gsx_DmgOrRG2jpM3IdITE3Agqz_LZTJfo,15507
151
151
  ccxt/abstract/coinbaseadvanced.py,sha256=GFXDh_Bf65Gsx_DmgOrRG2jpM3IdITE3Agqz_LZTJfo,15507
152
152
  ccxt/abstract/coinbaseexchange.py,sha256=eQMtsIw94xJqQO_xXmrrHdc_YFmhVZNW4OXCWv4Nx1w,7162
@@ -166,8 +166,8 @@ ccxt/abstract/deribit.py,sha256=rS_982u8dOVsh2vGSB5TO7K8Tye0Alq-Rg9fYZwz8hg,1549
166
166
  ccxt/abstract/digifinex.py,sha256=1JzOaqvLTgBuooJSVJ70riBgODfzZwxHwTmYHe_AnqU,11452
167
167
  ccxt/abstract/exmo.py,sha256=yq9zis5G9Qjsecs-YSHAghDjad6y52jFteWSBJZFg8o,6177
168
168
  ccxt/abstract/fmfwio.py,sha256=OTBtNu3DQeAqAC_Lbi0NePUs-ZQQllcLrVDI2G04nwQ,15601
169
- ccxt/abstract/gate.py,sha256=IbxOrYOb0dwsh4itELNcJXaF0jrwyPRcC3VX-BYmMjA,41994
170
- ccxt/abstract/gateio.py,sha256=IbxOrYOb0dwsh4itELNcJXaF0jrwyPRcC3VX-BYmMjA,41994
169
+ ccxt/abstract/gate.py,sha256=2Ps5bhFlTa4fG6P1DV32MAVUveVIHcV5guD-nwZxg2E,42794
170
+ ccxt/abstract/gateio.py,sha256=2Ps5bhFlTa4fG6P1DV32MAVUveVIHcV5guD-nwZxg2E,42794
171
171
  ccxt/abstract/gemini.py,sha256=xmvbbzRylYVFn6B7EvSAm5cO75IFRCHQI5v9jGyhgoM,7014
172
172
  ccxt/abstract/hashkey.py,sha256=EqAJjMUC8X2xjW0eYTnEvJO_VY5zVRppqDQx6Wsy97E,9016
173
173
  ccxt/abstract/hitbtc.py,sha256=OTBtNu3DQeAqAC_Lbi0NePUs-ZQQllcLrVDI2G04nwQ,15601
@@ -181,8 +181,8 @@ ccxt/abstract/independentreserve.py,sha256=Cue0hud5acRs2Q6oSvQ7Rx-YWS_fuACs6uV3a
181
181
  ccxt/abstract/indodax.py,sha256=E16v8W6Ac9kmV9hFEqf_kwV6VQmK74lc1LEUEkuDpYg,2488
182
182
  ccxt/abstract/kraken.py,sha256=AUpdQHWHZFXseHNx1-cuLqRutYwYEUVqQ7mjc0TQR_s,5883
183
183
  ccxt/abstract/krakenfutures.py,sha256=pu81cKhQgBkQd8F9-Ly3b7xQD-qQ8WLi8EUMfmAUJcM,4080
184
- ccxt/abstract/kucoin.py,sha256=4LLJ8vPaUZ18ZxlriZvI_t42r22TWy3EEG8BLUQUsWo,28250
185
- ccxt/abstract/kucoinfutures.py,sha256=y5NeiAz8NwovciY7PHBR0stCMGT1Ljbmd5GOxdDQdU4,32155
184
+ ccxt/abstract/kucoin.py,sha256=8oeEt9gZ-ZlfkhyafO9a4PDOANTiDwj7-Dnv2n5qJ14,28501
185
+ ccxt/abstract/kucoinfutures.py,sha256=7GKZ1Pznr3Zk4A375GKWF3nrn7mHQnxCisfnBjkC3D0,32406
186
186
  ccxt/abstract/kuna.py,sha256=IsaLq8A4DUOlQ8Esyk0WqBU6hHm5Q4sIqhgnMIvDGX0,24579
187
187
  ccxt/abstract/latoken.py,sha256=1GqE9WxrubgZILnYvg7W_dGyui-FKeIv0bU4z1dQj1k,7168
188
188
  ccxt/abstract/lbank.py,sha256=pdut_cIcwcUhN_ZCyWJxixBc4dgeQqvENYqFCrUYrvA,8675
@@ -194,7 +194,7 @@ ccxt/abstract/ndax.py,sha256=M98Ys406KT6T19Y98dXriD6YjzfglHHbnfQw-PDYWtM,11878
194
194
  ccxt/abstract/novadax.py,sha256=IvQFP_v2Q-Sx0tK2bXx4oY81rtNwC7gkc75p_E2jhKw,3093
195
195
  ccxt/abstract/oceanex.py,sha256=JoK404UCkmMG2VqMaGit6PtonyXtCixYx539SoYtYug,2307
196
196
  ccxt/abstract/okcoin.py,sha256=3NmYh-68W_4AXmkqjkf9dRaJcPgNYQG5mKZssJKT4gs,9414
197
- ccxt/abstract/okx.py,sha256=-sm_TfCw_iND9vt_xX-iPRoV7rdvEhhAH5lhduioRsg,49044
197
+ ccxt/abstract/okx.py,sha256=n4uVESYLShK4HvGhhS7DYgFv0OsQcI3gOPQuhYtEnMs,49739
198
198
  ccxt/abstract/onetrading.py,sha256=TtJq4d44lrutV8wcK0lX4v0EfQ72ly6fxR-zB7-FSuI,3859
199
199
  ccxt/abstract/oxfun.py,sha256=bv4FJPe1H5ouMT_gRHVQtvV0MrMZhc3US-DMwnDM4Js,3457
200
200
  ccxt/abstract/p2b.py,sha256=XwaH1hLIi2T6RHltUwFj28Y5fbo6dc0jbjI01sVeOJw,2054
@@ -218,17 +218,17 @@ 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=jkch6fN9zu-ZzvzCs1ltnQ5wZIRS5eZWdgHVXRd3q8k,16289
221
+ ccxt/async_support/__init__.py,sha256=9Xpyn8JEn47aIQ0TBLcxZmKL4ozsp1NvNzyxJeY4D_4,16289
222
222
  ccxt/async_support/ace.py,sha256=ucCkKaWRkILAIK9g4iEi1Q_-zmn0V89-rX8Al4WdK8s,42643
223
- ccxt/async_support/alpaca.py,sha256=HxonsP_MzbE7Z9r6hZ1rgmf_jPcP4H7H3z1YQgCv4qc,47716
223
+ ccxt/async_support/alpaca.py,sha256=lwaRgyLZH82z1SeIF43OePicJ2v9i6a75iK7ZXb-0YE,47766
224
224
  ccxt/async_support/ascendex.py,sha256=YcGVveIDir8A1rDak-DdS_qVO1yPwAUX9sRDwCVNX80,152489
225
225
  ccxt/async_support/bequant.py,sha256=1hTwHovo1bW1XTIc8ZKjvJ-Xg6LfmpGdzT7TepykaVM,1188
226
- ccxt/async_support/bigone.py,sha256=EQohpAnGnA1z4K6-6An--5WxdW6raQPrZCH2s_-WGmg,91703
227
- ccxt/async_support/binance.py,sha256=54WbvvuCTSe4LhE1ZKseMOGZ7S_QYwZV_MEOddrMh4I,660033
226
+ ccxt/async_support/bigone.py,sha256=SWWpvqPTsY-eS4VTULnCLoiC2Ig2tIfG5k-7Kfbw48A,91843
227
+ ccxt/async_support/binance.py,sha256=IIruyQB4qjUWVJw7lqpI1sP2EZpDeiF8ORpjR0Kru4I,663868
228
228
  ccxt/async_support/binancecoinm.py,sha256=yeE73xG5UXD_X3VPul6DMGnV_mgJfWYskpas1BUDdCU,1740
229
229
  ccxt/async_support/binanceus.py,sha256=ZkGgQGB0bWYZTz7PqBCgw22yyOZbvd7GuJAJzzgDTCA,9216
230
230
  ccxt/async_support/binanceusdm.py,sha256=8ugRkx7vyYmn67wdkEEf2f-DFMGAoC4t09usKlPVNyw,2670
231
- ccxt/async_support/bingx.py,sha256=jfe9Yh7hOFF2an2yBwaePOq0i0T9biVS-Et9YgmPnbM,253387
231
+ ccxt/async_support/bingx.py,sha256=-C_zNzCkjRlRiVBHITDwwWmVj_Wh5Ps3IAu1qShRlto,253565
232
232
  ccxt/async_support/bit2c.py,sha256=8gA0VW3_617LwqCNliJnhjpjtwXAGxv7FsEn9805XOc,37466
233
233
  ccxt/async_support/bitbank.py,sha256=DOBazUZetD7gxURy42C3m-T-YK-zvYIkcUjHqJggkGU,43969
234
234
  ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
@@ -236,8 +236,8 @@ ccxt/async_support/bitbns.py,sha256=MXJsHpdjm--s_PJsaFc63ol9ybcJ7L330ED5w1bzARY,
236
236
  ccxt/async_support/bitcoincom.py,sha256=RiqwhK3RfxQ_PXTa860fphDCvwA8dalL-_rXlK85-8A,516
237
237
  ccxt/async_support/bitfinex.py,sha256=IsbRwQHzzlxspIixKuGtXvY-kwjymp626UBix_0zG04,74132
238
238
  ccxt/async_support/bitfinex2.py,sha256=QSp4PkXhNkTMHEILoQH8UipJ4EgPzNSHiDfI9y5QH7w,161559
239
- ccxt/async_support/bitflyer.py,sha256=DTyHe4QBOED0xUEYoDfpGFL0sULp_3CxTXCWfDPbGbE,41971
240
- ccxt/async_support/bitget.py,sha256=wxZz3PHbHo3hbLvnUHKBXZV365D9vUR3puoWcFtPWds,430325
239
+ ccxt/async_support/bitflyer.py,sha256=vcrTAIkQQwnAomUs4kVWUSkiv62l9PVEq7RLONKB7wI,44243
240
+ ccxt/async_support/bitget.py,sha256=gmXaxFdSmxmiBje_y5B7_Rr5NYonPIrW8BGUbBfAmw0,433732
241
241
  ccxt/async_support/bithumb.py,sha256=Q0Cx_cRKZRfdpBAhQyINm63Qw3M6BRYQRiF0UqYzfis,48214
242
242
  ccxt/async_support/bitmart.py,sha256=WNfWDZvw8lgzC8WGvuR67-07uqtt_woyfVPeua3IhXQ,223089
243
243
  ccxt/async_support/bitmex.py,sha256=j9ohrBbNDcfR67QnPuuqrqz3pxEHpVtb0WhRKPPCYQ8,127985
@@ -255,8 +255,8 @@ ccxt/async_support/btcalpha.py,sha256=8OefA3GsJ27eAL44yQQcRNOruHXAwTemjTPkpLKwjE
255
255
  ccxt/async_support/btcbox.py,sha256=rBXxuvdQaku5QYseQ4XSvMrCkohDefYmf-rGeS9W0IU,28004
256
256
  ccxt/async_support/btcmarkets.py,sha256=fTf_MDIM7NMwpbv6X5lYPLNg8tFKcviNiUB7N3yO6FI,53083
257
257
  ccxt/async_support/btcturk.py,sha256=Uq9rXMoDkXIy0nw1rzmw2e8eeRepcNtXKNYuw-02tkM,37242
258
- ccxt/async_support/bybit.py,sha256=p_tjVgMp360vNN8-iWLM_4xeM1E38hoDDFXIur8unv8,443573
259
- ccxt/async_support/cex.py,sha256=HzFy4eP5qVwbXzq96VyjgJmXxK3DWUxHqJ1nHuV28cQ,70561
258
+ ccxt/async_support/bybit.py,sha256=sEfgCqnlgJUo5KEb_iestAvoOBtzSiFs-yCYb-22em8,449602
259
+ ccxt/async_support/cex.py,sha256=lM7nfXVvestcUfwLQq4ZhNBj7PfCEKyKIkv9N4NkCIE,68179
260
260
  ccxt/async_support/coinbase.py,sha256=XsAHx1vPMpsWcCbz6WYlY6J68luojlE3Xw5wzsaiE7U,219879
261
261
  ccxt/async_support/coinbaseadvanced.py,sha256=Kupwnuxiu_qTjwCNV2asacoDUNFQvcaHNAznUJPhdQs,552
262
262
  ccxt/async_support/coinbaseexchange.py,sha256=u4s7rt6wavGgwzvfGtKkVeiBphq0hCG8VODQCb9Phi0,79537
@@ -269,31 +269,31 @@ ccxt/async_support/coinmetro.py,sha256=7Ao4bkTg4xR1vD9EB9y9oI65_s5fXPB6u9k2wP9gS
269
269
  ccxt/async_support/coinone.py,sha256=b9z42qOXkCp68BSWA2JFcHllrQk3m3sL-dzKn2Z2F-0,47130
270
270
  ccxt/async_support/coinsph.py,sha256=0nCadcD6eMV5-p1NOzIehw2M_zNiZIuLK3FQqaYXRF4,91344
271
271
  ccxt/async_support/coinspot.py,sha256=54ogK4qq8RNEnUIR17lpbGPIR9Ed1SXlDtxSKoxi1uQ,24034
272
- ccxt/async_support/cryptocom.py,sha256=eAjH2JACWTIy1rZYMTVHrmYWkcsoAuG-g3l7lY7GNFE,137410
272
+ ccxt/async_support/cryptocom.py,sha256=rK0TWiPGE_4dplMutL0NO26ZWV0vGyJhjizr4ioOpbs,137415
273
273
  ccxt/async_support/currencycom.py,sha256=e_Sa5U6-ALDnI57rJi7YMAaopgSDUt4cIenwju0Q97k,87602
274
274
  ccxt/async_support/delta.py,sha256=lajNbbwGganAN_VToybLxiiVCMXCpZAqBNzmeh1VCGY,151917
275
275
  ccxt/async_support/deribit.py,sha256=HEqDGpYgre-vZyb5wr1RzjiZ_ZSeY29geRMWSxga9dw,162470
276
276
  ccxt/async_support/digifinex.py,sha256=RaYiL8nPU0HkyJ0XxkZBBTJ36JBGRmmjcFvHxlKN7ug,171987
277
277
  ccxt/async_support/exmo.py,sha256=HNrYN1fOnvhB26u-epXzK2xs3AqPUAgTmdRTtFu-dzw,115409
278
278
  ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,1250
279
- ccxt/async_support/gate.py,sha256=oz8FCqc9_BPt4EJlvGDskb10xoZnr9UnbHo_peya3Wk,333364
279
+ ccxt/async_support/gate.py,sha256=gqiLDbrUVGj6U4PekmViKGNT4lt922aZ2QFzo6bDOfc,337725
280
280
  ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
281
281
  ccxt/async_support/gemini.py,sha256=gy0ALSeHrenXa2aJoAW1alVOgF6rUNxUoydX5Degikc,81580
282
282
  ccxt/async_support/hashkey.py,sha256=XaSBqm0eh3R_2HCbOCZWaLuqJwVg5DJbttvfFYJpNZA,192990
283
283
  ccxt/async_support/hitbtc.py,sha256=wWHmgPCEBLf0nj-unVu1LtkRPgZvjil22I4S79a-VA8,154659
284
284
  ccxt/async_support/hitbtc3.py,sha256=dmSYoD2o4av_zzbZI8HNIoj8BWxA7QozsVpy8JaOXzU,469
285
285
  ccxt/async_support/hollaex.py,sha256=k_KeUA5jEiyA7ypOAZsYL4RBonNG6dYxb50mpvWw_qQ,76689
286
- ccxt/async_support/htx.py,sha256=Lr7HFO46N4e0PqogaMDsVLfe8D8QhJDZBoQY0BbHR9I,436890
286
+ ccxt/async_support/htx.py,sha256=0zrK5pkUnMUSfCoZcsEH2pparnzjHgeBCHedmChPPsg,438335
287
287
  ccxt/async_support/huobi.py,sha256=fup0j6wQ1khAtfbb1H4CSyJAOzhxuoHMmrM6sgTuhr8,452
288
288
  ccxt/async_support/huobijp.py,sha256=4Pj8qPn2xzzyvdsy08gnbiF-eSKXQNT0p6VIOVkpisM,90241
289
- ccxt/async_support/hyperliquid.py,sha256=9mXeS9Wc-lusHecsG1h9S9tp8RsUyMVkJQ07DoeCYjM,123814
289
+ ccxt/async_support/hyperliquid.py,sha256=C54wJqIDQmspRY7bildr5R2l4ZH_MeIHw0wlL38MagU,124084
290
290
  ccxt/async_support/idex.py,sha256=kZiSqurgNeXRJC5CQmc_wyIMXn-6c1oL4lJL1PW1l8U,73783
291
291
  ccxt/async_support/independentreserve.py,sha256=3gzNdxXGdCm5JqGjE1vG6kTSsW2PWvCPE2xBgvqPW6s,38197
292
292
  ccxt/async_support/indodax.py,sha256=_7AbcJJmBSPMQ1E-mqOoQJXTjIXldItRMDFCdwhvFuA,55106
293
293
  ccxt/async_support/kraken.py,sha256=F1NRf8PFqrzM-XQzf81sjpAER8mz1aYIgP4M5kO_DfQ,136560
294
294
  ccxt/async_support/krakenfutures.py,sha256=Wcry7ar4Esbi_3Urp8LcnzPMsThN6KcdU6QN5YMxDCk,120327
295
- ccxt/async_support/kucoin.py,sha256=DSsWZ2nxE64-gX5E-0dZLWEvxSdJb-MBL9_GMaJnKvY,232998
296
- ccxt/async_support/kucoinfutures.py,sha256=5cRGLy4MKfD7gmA8GMZdv3697BD_I7WBgR-zOgxVXss,140158
295
+ ccxt/async_support/kucoin.py,sha256=44iktflPnrtmn3zmFMi6a2HbL4JtUDT213qC4jWEkeo,230383
296
+ ccxt/async_support/kucoinfutures.py,sha256=nFgYl7bvdmlFW8KYwD1sR6pOVDQSUMwc1hjkR3R4qVI,140215
297
297
  ccxt/async_support/kuna.py,sha256=_8S74LqI1c5zbCbaSfJgUsVyqus9gB2OV9s3UMXkzYQ,96490
298
298
  ccxt/async_support/latoken.py,sha256=9BUu8akWtbBtAzVr_c_cYLkiLQqcJdSdkJbHmuLee-Y,79992
299
299
  ccxt/async_support/lbank.py,sha256=Xc-lvLvb1VRCMOZefhegLOKXal_EDNo90ed7RKNC8Is,116978
@@ -305,7 +305,7 @@ ccxt/async_support/ndax.py,sha256=V157f9E_-NzmEwRxCpxN9Th_9TIlU9EJOgRYxLfss9E,11
305
305
  ccxt/async_support/novadax.py,sha256=YNKUM1CGFK7lpBwbxSSL1IAEJCRVsNxeITkwtw6VWCM,64804
306
306
  ccxt/async_support/oceanex.py,sha256=U9VJN3Sym8GEZUqkmIt8yDzVw9XRc-WtSj35R1Fdv_U,41516
307
307
  ccxt/async_support/okcoin.py,sha256=Vwbq1Sf1RiYHOehTkvIuet7vqskMyiFj4j-OTpjxRZg,151831
308
- ccxt/async_support/okx.py,sha256=S930QDVp31bL36zFBUIae_zSsVpdAtvA3wfXMXN3R54,386110
308
+ ccxt/async_support/okx.py,sha256=OuPpE9w8MX4kG36hje5P-Ny1pfqbvkIcvixZCtsTnfw,389573
309
309
  ccxt/async_support/onetrading.py,sha256=FNOJlpBOGHu51EKhdFJPxNNHWPTIw_OcVzBf83UlR-w,88932
310
310
  ccxt/async_support/oxfun.py,sha256=26g7I24m8le35qcEqFVZGfiEv3sP3pOIu53724Bz5k0,125419
311
311
  ccxt/async_support/p2b.py,sha256=VKUX8u7gtHkKDwBjAyskScm2FEs6xxDuKLXE-jSHXwY,54532
@@ -330,7 +330,7 @@ ccxt/async_support/yobit.py,sha256=YtkLczlb641VjUYTfEMfS-BPUTdXQTHAPkearuXkXDQ,5
330
330
  ccxt/async_support/zaif.py,sha256=-ZTr8M2JaIRCL90VrbCDXBMAsZwbiwsFChSQ2rWODuQ,29044
331
331
  ccxt/async_support/zonda.py,sha256=Z4gA6o0bF_4MarQ5KiR2Zwi2wpmOuZTHS1JChAtNWjo,83114
332
332
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
333
- ccxt/async_support/base/exchange.py,sha256=suGGhZdu0Aol2eN6fjnnkI31kkovmjME7EWjgk7Um0w,113806
333
+ ccxt/async_support/base/exchange.py,sha256=BV5aMm3p4NPzpbJXftkiO1ltbcCbpYqSI3FwzT4Gsj0,114218
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=jtcCuY-T2140yzFa5qy6bqE7H-d2iIpzORjjLz1oiDM,301861
347
+ ccxt/base/exchange.py,sha256=SfNMGHZw6wzvorky3M5oij-eAQsV11uYNYcpL2wsM7k,303528
348
348
  ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
349
- ccxt/base/types.py,sha256=ikIahyhQe32e8y89-wrlcuRNQvExWkbijP2YSlTH2WM,10033
350
- ccxt/pro/__init__.py,sha256=8Uoip4bZN5bo2Ie2I-clT-HfpfRO5A1zL-0mG6ZYfUM,7821
349
+ ccxt/base/types.py,sha256=5VRXAPPjQe2D7wjlzklrE8eGwAhllB-KXehglgHeu7s,10199
350
+ ccxt/pro/__init__.py,sha256=Yth6AyuTiaew2mYXUzPMZPrkLQr0Qsata-BlbcOdTM8,7821
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
@@ -647,12 +647,12 @@ ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4wer
647
647
  ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
648
648
  ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
649
649
  ccxt/test/__init__.py,sha256=GKPbEcj0Rrz5HG-GUm-iY1IHhDYmlvcBXZAGk6-m2CI,141
650
- ccxt/test/tests_async.py,sha256=IOkbqZXUViJ1KtDIlE63EZaU3z31_OR2iI6yL0azKL0,85000
650
+ ccxt/test/tests_async.py,sha256=Ch3WJMp0u-tA4OW4hPsVJlPojztgjMHSK7or8lclBNA,85043
651
651
  ccxt/test/tests_helpers.py,sha256=z5TiaK0WyUCmM_uGTFz7cgMNqNwG_SMI9qk7yec5ces,9693
652
652
  ccxt/test/tests_init.py,sha256=GodMIrJue4KBHHqD4vSPZxokPWpxbZIuEp19UdxlFAg,1166
653
- ccxt/test/tests_sync.py,sha256=c9hEBBjaLRJ-rqGiR-SpVUXcFJsvrZ7mxhLKb7TJWEc,84062
654
- ccxt-4.4.20.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
655
- ccxt-4.4.20.dist-info/METADATA,sha256=L7MNu_B7etB4XNRqI6fQl3keyfcNwc5LVkbJYXoVbiw,114487
656
- ccxt-4.4.20.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
657
- ccxt-4.4.20.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
658
- ccxt-4.4.20.dist-info/RECORD,,
653
+ ccxt/test/tests_sync.py,sha256=ucLvMSaL3GNYN6VDUxP_F96Bf7PQ0ytSPfiJcgmKbHQ,84105
654
+ ccxt-4.4.22.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
655
+ ccxt-4.4.22.dist-info/METADATA,sha256=PHQLkpEkodcyLE0RxUK6YYIpSiAgQg0KXl9yH-4gEfE,114487
656
+ ccxt-4.4.22.dist-info/WHEEL,sha256=z9j0xAa_JmUKMpmz72K0ZGALSM_n-wQVmGbleXx2VHg,110
657
+ ccxt-4.4.22.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
658
+ ccxt-4.4.22.dist-info/RECORD,,
File without changes