ccxt 4.4.75__py2.py3-none-any.whl → 4.4.77__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
ccxt/test/tests_async.py CHANGED
@@ -1094,6 +1094,26 @@ class testMainClass:
1094
1094
  sum = exchange.sum(sum, results_length)
1095
1095
  return sum
1096
1096
 
1097
+ def check_if_exchange_is_disabled(self, exchange_name, exchange_data):
1098
+ exchange = init_exchange('Exchange', {})
1099
+ is_disabled_py = exchange.safe_bool(exchange_data, 'disabledPy', False)
1100
+ if is_disabled_py and (self.lang == 'PY'):
1101
+ dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in python')
1102
+ return True
1103
+ is_disabled_php = exchange.safe_bool(exchange_data, 'disabledPHP', False)
1104
+ if is_disabled_php and (self.lang == 'PHP'):
1105
+ dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in php')
1106
+ return True
1107
+ is_disabled_c_sharp = exchange.safe_bool(exchange_data, 'disabledCS', False)
1108
+ if is_disabled_c_sharp and (self.lang == 'C#'):
1109
+ dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in c#')
1110
+ return True
1111
+ is_disabled_go = exchange.safe_bool(exchange_data, 'disabledGO', False)
1112
+ if is_disabled_go and (self.lang == 'GO'):
1113
+ dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in go')
1114
+ return True
1115
+ return False
1116
+
1097
1117
  async def run_static_request_tests(self, target_exchange=None, test_name=None):
1098
1118
  await self.run_static_tests('request', target_exchange, test_name)
1099
1119
  return True
@@ -1114,6 +1134,9 @@ class testMainClass:
1114
1134
  for i in range(0, len(exchanges)):
1115
1135
  exchange_name = exchanges[i]
1116
1136
  exchange_data = static_data[exchange_name]
1137
+ disabled = self.check_if_exchange_is_disabled(exchange_name, exchange_data)
1138
+ if disabled:
1139
+ continue
1117
1140
  number_of_tests = self.get_number_of_tests_from_exchange(exchange, exchange_data, test_name)
1118
1141
  sum = exchange.sum(sum, number_of_tests)
1119
1142
  if type == 'request':
ccxt/test/tests_sync.py CHANGED
@@ -1091,6 +1091,26 @@ class testMainClass:
1091
1091
  sum = exchange.sum(sum, results_length)
1092
1092
  return sum
1093
1093
 
1094
+ def check_if_exchange_is_disabled(self, exchange_name, exchange_data):
1095
+ exchange = init_exchange('Exchange', {})
1096
+ is_disabled_py = exchange.safe_bool(exchange_data, 'disabledPy', False)
1097
+ if is_disabled_py and (self.lang == 'PY'):
1098
+ dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in python')
1099
+ return True
1100
+ is_disabled_php = exchange.safe_bool(exchange_data, 'disabledPHP', False)
1101
+ if is_disabled_php and (self.lang == 'PHP'):
1102
+ dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in php')
1103
+ return True
1104
+ is_disabled_c_sharp = exchange.safe_bool(exchange_data, 'disabledCS', False)
1105
+ if is_disabled_c_sharp and (self.lang == 'C#'):
1106
+ dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in c#')
1107
+ return True
1108
+ is_disabled_go = exchange.safe_bool(exchange_data, 'disabledGO', False)
1109
+ if is_disabled_go and (self.lang == 'GO'):
1110
+ dump('[TEST_WARNING] Exchange ' + exchange_name + ' is disabled in go')
1111
+ return True
1112
+ return False
1113
+
1094
1114
  def run_static_request_tests(self, target_exchange=None, test_name=None):
1095
1115
  self.run_static_tests('request', target_exchange, test_name)
1096
1116
  return True
@@ -1111,6 +1131,9 @@ class testMainClass:
1111
1131
  for i in range(0, len(exchanges)):
1112
1132
  exchange_name = exchanges[i]
1113
1133
  exchange_data = static_data[exchange_name]
1134
+ disabled = self.check_if_exchange_is_disabled(exchange_name, exchange_data)
1135
+ if disabled:
1136
+ continue
1114
1137
  number_of_tests = self.get_number_of_tests_from_exchange(exchange, exchange_data, test_name)
1115
1138
  sum = exchange.sum(sum, number_of_tests)
1116
1139
  if type == 'request':
ccxt/upbit.py CHANGED
@@ -28,7 +28,7 @@ class upbit(Exchange, ImplicitAPI):
28
28
  'name': 'Upbit',
29
29
  'countries': ['KR'],
30
30
  'version': 'v1',
31
- 'rateLimit': 1000,
31
+ 'rateLimit': 50,
32
32
  'pro': True,
33
33
  # new metainfo interface
34
34
  'has': {
@@ -83,6 +83,7 @@ class upbit(Exchange, ImplicitAPI):
83
83
  'withdraw': True,
84
84
  },
85
85
  'timeframes': {
86
+ '1s': 'seconds',
86
87
  '1m': 'minutes',
87
88
  '3m': 'minutes',
88
89
  '5m': 'minutes',
@@ -94,6 +95,7 @@ class upbit(Exchange, ImplicitAPI):
94
95
  '1d': 'days',
95
96
  '1w': 'weeks',
96
97
  '1M': 'months',
98
+ '1y': 'years',
97
99
  },
98
100
  'hostname': 'api.upbit.com',
99
101
  'urls': {
@@ -107,54 +109,70 @@ class upbit(Exchange, ImplicitAPI):
107
109
  'fees': 'https://upbit.com/service_center/guide',
108
110
  },
109
111
  'api': {
112
+ # 'endpoint','API Cost'
113
+ # cost = 1000 / (rateLimit * RPS)
110
114
  'public': {
111
- 'get': [
112
- 'market/all',
113
- 'candles/{timeframe}',
114
- 'candles/{timeframe}/{unit}',
115
- 'candles/minutes/{unit}',
116
- 'candles/minutes/1',
117
- 'candles/minutes/3',
118
- 'candles/minutes/5',
119
- 'candles/minutes/10',
120
- 'candles/minutes/15',
121
- 'candles/minutes/30',
122
- 'candles/minutes/60',
123
- 'candles/minutes/240',
124
- 'candles/days',
125
- 'candles/weeks',
126
- 'candles/months',
127
- 'trades/ticks',
128
- 'ticker',
129
- 'orderbook',
130
- ],
115
+ 'get': {
116
+ 'market/all': 2, # RPS: 10
117
+ 'candles/{timeframe}': 2,
118
+ 'candles/{timeframe}/{unit}': 2,
119
+ 'candles/seconds': 2,
120
+ 'candles/minutes/{unit}': 2,
121
+ 'candles/minutes/1': 2,
122
+ 'candles/minutes/3': 2,
123
+ 'candles/minutes/5': 2,
124
+ 'candles/minutes/10': 2,
125
+ 'candles/minutes/15': 2,
126
+ 'candles/minutes/30': 2,
127
+ 'candles/minutes/60': 2,
128
+ 'candles/minutes/240': 2,
129
+ 'candles/days': 2,
130
+ 'candles/weeks': 2,
131
+ 'candles/months': 2,
132
+ 'candles/years': 2,
133
+ 'trades/ticks': 2,
134
+ 'ticker': 2,
135
+ 'ticker/all': 2,
136
+ 'orderbook': 2,
137
+ 'orderbook/supported_levels': 2, # Upbit KR only
138
+ },
131
139
  },
132
140
  'private': {
133
- 'get': [
134
- 'accounts',
135
- 'orders/chance',
136
- 'order',
137
- 'orders',
138
- 'orders/closed',
139
- 'orders/open',
140
- 'orders/uuids',
141
- 'withdraws',
142
- 'withdraw',
143
- 'withdraws/chance',
144
- 'deposits',
145
- 'deposit',
146
- 'deposits/coin_addresses',
147
- 'deposits/coin_address',
148
- ],
149
- 'post': [
150
- 'orders',
151
- 'withdraws/coin',
152
- 'withdraws/krw',
153
- 'deposits/generate_coin_address',
154
- ],
155
- 'delete': [
156
- 'order',
157
- ],
141
+ 'get': {
142
+ 'accounts': 0.67, # RPS: 30
143
+ 'orders/chance': 0.67,
144
+ 'order': 0.67,
145
+ 'orders/closed': 0.67,
146
+ 'orders/open': 0.67,
147
+ 'orders/uuids': 0.67,
148
+ 'withdraws': 0.67,
149
+ 'withdraw': 0.67,
150
+ 'withdraws/chance': 0.67,
151
+ 'withdraws/coin_addresses': 0.67,
152
+ 'deposits': 0.67,
153
+ 'deposits/chance/coin': 0.67,
154
+ 'deposit': 0.67,
155
+ 'deposits/coin_addresses': 0.67,
156
+ 'deposits/coin_address': 0.67,
157
+ 'travel_rule/vasps': 0.67,
158
+ 'status/wallet': 0.67, # Upbit KR only
159
+ 'api_keys': 0.67, # Upbit KR only
160
+ },
161
+ 'post': {
162
+ 'orders': 2.5, # RPS: 8
163
+ 'orders/cancel_and_new': 2.5, # RPS: 8
164
+ 'withdraws/coin': 0.67,
165
+ 'withdraws/krw': 0.67, # Upbit KR only.
166
+ 'deposits/krw': 0.67, # Upbit KR only.
167
+ 'deposits/generate_coin_address': 0.67,
168
+ 'travel_rule/deposit/uuid': 0.67, # RPS: 30, but each deposit can only be queried once every 10 minutes
169
+ 'travel_rule/deposit/txid': 0.67, # RPS: 30, but each deposit can only be queried once every 10 minutes
170
+ },
171
+ 'delete': {
172
+ 'order': 0.67,
173
+ 'orders/open': 40, # RPS: 0.5
174
+ 'orders/uuids': 0.67,
175
+ },
158
176
  },
159
177
  },
160
178
  'fees': {
ccxt/xt.py CHANGED
@@ -58,7 +58,7 @@ class xt(Exchange, ImplicitAPI):
58
58
  'createOrder': True,
59
59
  'createPostOnlyOrder': False,
60
60
  'createReduceOnlyOrder': True,
61
- 'editOrder': False,
61
+ 'editOrder': True,
62
62
  'fetchAccounts': False,
63
63
  'fetchBalance': True,
64
64
  'fetchBidsAsks': True,
@@ -245,6 +245,9 @@ class xt(Exchange, ImplicitAPI):
245
245
  'open-order': 1,
246
246
  'order/{orderId}': 1,
247
247
  },
248
+ 'put': {
249
+ 'order/{orderId}': 1,
250
+ },
248
251
  },
249
252
  'linear': {
250
253
  'get': {
@@ -279,6 +282,7 @@ class xt(Exchange, ImplicitAPI):
279
282
  'future/trade/v1/order/cancel-all': 1,
280
283
  'future/trade/v1/order/create': 1,
281
284
  'future/trade/v1/order/create-batch': 1,
285
+ 'future/trade/v1/order/update': 1,
282
286
  'future/user/v1/account/open': 1,
283
287
  'future/user/v1/position/adjust-leverage': 1,
284
288
  'future/user/v1/position/auto-margin': 1,
@@ -322,6 +326,7 @@ class xt(Exchange, ImplicitAPI):
322
326
  'future/trade/v1/order/cancel-all': 1,
323
327
  'future/trade/v1/order/create': 1,
324
328
  'future/trade/v1/order/create-batch': 1,
329
+ 'future/trade/v1/order/update': 1,
325
330
  'future/user/v1/account/open': 1,
326
331
  'future/user/v1/position/adjust-leverage': 1,
327
332
  'future/user/v1/position/auto-margin': 1,
@@ -3337,7 +3342,7 @@ class xt(Exchange, ImplicitAPI):
3337
3342
  # "cancelId": "208322474307982720"
3338
3343
  # }
3339
3344
  #
3340
- # swap and future: createOrder, cancelOrder
3345
+ # swap and future: createOrder, cancelOrder, editOrder
3341
3346
  #
3342
3347
  # {
3343
3348
  # "returnCode": 0,
@@ -3442,6 +3447,14 @@ class xt(Exchange, ImplicitAPI):
3442
3447
  # "createdTime": 1681273420039
3443
3448
  # }
3444
3449
  #
3450
+ # spot editOrder
3451
+ #
3452
+ # {
3453
+ # "orderId": "484203027161892224",
3454
+ # "modifyId": "484203544105344000",
3455
+ # "clientModifyId": null
3456
+ # }
3457
+ #
3445
3458
  marketId = self.safe_string(order, 'symbol')
3446
3459
  marketType = ('result' in order) or 'contract' if ('positionSide' in order) else 'spot'
3447
3460
  market = self.safe_market(marketId, market, None, marketType)
@@ -3455,7 +3468,7 @@ class xt(Exchange, ImplicitAPI):
3455
3468
  return self.safe_order({
3456
3469
  'info': order,
3457
3470
  'id': self.safe_string_n(order, ['orderId', 'result', 'cancelId', 'entrustId', 'profitId']),
3458
- 'clientOrderId': self.safe_string(order, 'clientOrderId'),
3471
+ 'clientOrderId': self.safe_string_2(order, 'clientOrderId', 'clientModifyId'),
3459
3472
  'timestamp': timestamp,
3460
3473
  'datetime': self.iso8601(timestamp),
3461
3474
  'lastTradeTimestamp': lastUpdatedTimestamp,
@@ -4678,6 +4691,94 @@ class xt(Exchange, ImplicitAPI):
4678
4691
  #
4679
4692
  return response # unify return type
4680
4693
 
4694
+ def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}) -> Order:
4695
+ """
4696
+ cancels an order and places a new order
4697
+
4698
+ https://doc.xt.com/#orderorderUpdate
4699
+ https://doc.xt.com/#futures_orderupdate
4700
+ https://doc.xt.com/#futures_entrustupdateProfit
4701
+
4702
+ :param str id: order id
4703
+ :param str symbol: unified symbol of the market to create an order in
4704
+ :param str type: 'market' or 'limit'
4705
+ :param str side: 'buy' or 'sell'
4706
+ :param float amount: how much of the currency you want to trade in units of the base currency
4707
+ :param float [price]: the price at which the order is to be fulfilled, in units of the quote currency, ignored in market orders
4708
+ :param dict [params]: extra parameters specific to the exchange API endpoint
4709
+ :param float [params.stopLoss]: price to set a stop-loss on an open position
4710
+ :param float [params.takeProfit]: price to set a take-profit on an open position
4711
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
4712
+ """
4713
+ if amount is None:
4714
+ raise ArgumentsRequired(self.id + ' editOrder() requires an amount argument')
4715
+ self.load_markets()
4716
+ market = self.market(symbol)
4717
+ request = {}
4718
+ stopLoss = self.safe_number_2(params, 'stopLoss', 'triggerStopPrice')
4719
+ takeProfit = self.safe_number_2(params, 'takeProfit', 'triggerProfitPrice')
4720
+ params = self.omit(params, ['stopLoss', 'takeProfit'])
4721
+ isStopLoss = (stopLoss is not None)
4722
+ isTakeProfit = (takeProfit is not None)
4723
+ if isStopLoss or isTakeProfit:
4724
+ request['profitId'] = id
4725
+ else:
4726
+ request['orderId'] = id
4727
+ request['price'] = self.price_to_precision(symbol, price)
4728
+ response = None
4729
+ if market['swap']:
4730
+ if isStopLoss:
4731
+ request['triggerStopPrice'] = self.price_to_precision(symbol, stopLoss)
4732
+ elif takeProfit is not None:
4733
+ request['triggerProfitPrice'] = self.price_to_precision(symbol, takeProfit)
4734
+ else:
4735
+ request['origQty'] = self.amount_to_precision(symbol, amount)
4736
+ subType = None
4737
+ subType, params = self.handle_sub_type_and_params('editOrder', market, params)
4738
+ if subType == 'inverse':
4739
+ if isStopLoss or isTakeProfit:
4740
+ response = self.privateInversePostFutureTradeV1EntrustUpdateProfitStop(self.extend(request, params))
4741
+ else:
4742
+ response = self.privateInversePostFutureTradeV1OrderUpdate(self.extend(request, params))
4743
+ #
4744
+ # {
4745
+ # "returnCode": 0,
4746
+ # "msgInfo": "success",
4747
+ # "error": null,
4748
+ # "result": "483869474947826752"
4749
+ # }
4750
+ #
4751
+ else:
4752
+ if isStopLoss or isTakeProfit:
4753
+ response = self.privateLinearPostFutureTradeV1EntrustUpdateProfitStop(self.extend(request, params))
4754
+ else:
4755
+ response = self.privateLinearPostFutureTradeV1OrderUpdate(self.extend(request, params))
4756
+ #
4757
+ # {
4758
+ # "returnCode": 0,
4759
+ # "msgInfo": "success",
4760
+ # "error": null,
4761
+ # "result": "483869474947826752"
4762
+ # }
4763
+ #
4764
+ else:
4765
+ request['quantity'] = self.amount_to_precision(symbol, amount)
4766
+ response = self.privateSpotPutOrderOrderId(self.extend(request, params))
4767
+ #
4768
+ # {
4769
+ # "rc": 0,
4770
+ # "mc": "SUCCESS",
4771
+ # "ma": [],
4772
+ # "result": {
4773
+ # "orderId": "484203027161892224",
4774
+ # "modifyId": "484203544105344000",
4775
+ # "clientModifyId": null
4776
+ # }
4777
+ # }
4778
+ #
4779
+ result = response if (market['swap']) else self.safe_dict(response, 'result', {})
4780
+ return self.parse_order(result, market)
4781
+
4681
4782
  def handle_errors(self, code, reason, url, method, headers, body, response, requestHeaders, requestBody):
4682
4783
  #
4683
4784
  # spot: error
@@ -4775,6 +4876,8 @@ class xt(Exchange, ImplicitAPI):
4775
4876
  else:
4776
4877
  body['media'] = id
4777
4878
  isUndefinedBody = ((method == 'GET') or (path == 'order/{orderId}') or (path == 'ws-token'))
4879
+ if (method == 'PUT') and (endpoint == 'spot'):
4880
+ isUndefinedBody = False
4778
4881
  body = None if isUndefinedBody else self.json(body)
4779
4882
  payloadString = None
4780
4883
  if (endpoint == 'spot') or (endpoint == 'user'):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.4.75
3
+ Version: 4.4.77
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
@@ -275,13 +275,13 @@ console.log(version, Object.keys(exchanges));
275
275
 
276
276
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
277
277
 
278
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.75/dist/ccxt.browser.min.js
279
- * unpkg: https://unpkg.com/ccxt@4.4.75/dist/ccxt.browser.min.js
278
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.4.77/dist/ccxt.browser.min.js
279
+ * unpkg: https://unpkg.com/ccxt@4.4.77/dist/ccxt.browser.min.js
280
280
 
281
281
  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.
282
282
 
283
283
  ```HTML
284
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.75/dist/ccxt.browser.min.js"></script>
284
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.4.77/dist/ccxt.browser.min.js"></script>
285
285
  ```
286
286
 
287
287
  Creates a global `ccxt` object:
@@ -1,10 +1,10 @@
1
- ccxt/__init__.py,sha256=G4vOj3jggb3J3gYgeTW1T3QL7FUZdk-Cyc8mgV5BJZQ,16370
1
+ ccxt/__init__.py,sha256=ug1xlCb9HHaHpToG4GsCC-hLol9yTo-zUzYu27EReU0,16370
2
2
  ccxt/ace.py,sha256=waqSDmnGLRzi_0YjNNv93r1zC0v58yoVbKxNImhx-iM,46490
3
3
  ccxt/alpaca.py,sha256=S-PvXknJDcYUqHZWg4isZKGbTa8oU2G4Z0BqbvObNPI,80687
4
4
  ccxt/ascendex.py,sha256=XZnzDjRSe1_EKkzg1xZeyc4-aRPa56UqP8ObkMUfPHA,156277
5
5
  ccxt/bequant.py,sha256=pH1kcVZs4JMBa-fqei_arIIp9hlRQK8kYpyYrIM1K_w,1218
6
6
  ccxt/bigone.py,sha256=3FADYcYU_fryjR1a3EoLFc4VRnY5pa7bUaWx1gnoA-s,95960
7
- ccxt/binance.py,sha256=BcOYc0qeMHJu2lvkTCDw5MUsnmDPYQtk1WkrW2TKJnM,688461
7
+ ccxt/binance.py,sha256=cCp-yOcZ69UPEHdONdAJ0Uj0BLHu2sgKs5i_Bo9z7dw,679826
8
8
  ccxt/binancecoinm.py,sha256=UEJd_dZQkrLdJpaCE_t9aHCwJdxpjheyTaWJ8RKWIm8,1720
9
9
  ccxt/binanceus.py,sha256=fPaJxinZbmJbrXMW1aYW32n6fXX_VL7odjLEng77wdI,9500
10
10
  ccxt/binanceusdm.py,sha256=U962JuxLu2_GXtWke4m-kLjtYRF-4H9ZlZ87FpXPYHo,2651
@@ -16,13 +16,13 @@ ccxt/bitcoincom.py,sha256=kpGs1gz2443UrgEsWYeCR5L6FJyYqK5XLmFWaL-I0xM,541
16
16
  ccxt/bitfinex.py,sha256=fwh4ENtKOMlPI3UtE1urj71r220zz6v4tT1kMLUk5o8,166096
17
17
  ccxt/bitfinex1.py,sha256=cC6NuPoQlWY5RoTnoRRgNK8yCr1GbF1NrOaZ341ZOkc,74223
18
18
  ccxt/bitflyer.py,sha256=Z0HxGjHf49mVHxYDralmWzpv8_sj1n4gDQ42iXwdt5c,46898
19
- ccxt/bitget.py,sha256=Gv8LW2P3dVT0d79eTlQUU5m-BiFLm3bMwogSqgUdnIE,436199
19
+ ccxt/bitget.py,sha256=xca5rZB86lFC97YDAcaS7Z969vvllXo5XghofwHA7wY,436194
20
20
  ccxt/bithumb.py,sha256=GHYK_Xwzk9nwINHN1lhnRvnTX8mL98RZQ3Khz213A1s,51640
21
21
  ccxt/bitmart.py,sha256=OD4GvkRT4GgUz4E9yJOxMkGBuvXkUDikjRexNrFd-fw,247895
22
22
  ccxt/bitmex.py,sha256=bCgSeL8i0djDfb5aPXVljngTmmMpx73Cp6Kou5ngDGw,131447
23
23
  ccxt/bitopro.py,sha256=gU96cIA_XJKLFiUTu89QGdFio1yCeCLXKR4u8-fczJQ,75177
24
24
  ccxt/bitpanda.py,sha256=X1xluJEGWtDs5ovAf8djIMZNW-V-3brs4UjdqiWoanE,510
25
- ccxt/bitrue.py,sha256=d6d61DB0luJf9q1jzerKERADt4GJcOLWRpcP-Rp8yuw,139716
25
+ ccxt/bitrue.py,sha256=46B-WXWS2AHxCS-FPdfgQWcjeeOz1_cLPVigMNf3VSQ,141898
26
26
  ccxt/bitso.py,sha256=e2_gds0NESHx1EyRmQDwGPKBJu_-wRmZ06PuSxT3yy0,74161
27
27
  ccxt/bitstamp.py,sha256=nus2MaPtVHbewqnexouhrDRmlCSL7EwaPz8FD3cZEEQ,95597
28
28
  ccxt/bitteam.py,sha256=8vxluU2p50rTg9XzQTsWLH3Fye-F79DmZhvza_Xk9h0,105198
@@ -42,8 +42,8 @@ ccxt/coinbaseexchange.py,sha256=hsAIZ-PBgCQfxuiGWUgrUtgEavcTr9Kwd0Sd36WH26E,8239
42
42
  ccxt/coinbaseinternational.py,sha256=VH3RCIjvr9Y1FH-qcry92faMAEOzLR67XADKWjLDSV4,100805
43
43
  ccxt/coincatch.py,sha256=hCZCgNDEX496Xtos1QIdrFrH-IUPG2ZRkHRIGcujECk,244228
44
44
  ccxt/coincheck.py,sha256=CAuMcY3JvLbwpGHR4W1qUt-P7zKRqRRLsObxK5C9I0I,38011
45
- ccxt/coinex.py,sha256=Mvi_vVZJZNL9yqhJIPg3v2C69igyUYhmMPsnQFjwQeo,267224
46
- ccxt/coinlist.py,sha256=prqFJ5SqBWNUBmoVaQuAJwWbsWz-g6Wo-CQURaOKNgI,110530
45
+ ccxt/coinex.py,sha256=IPejRe0nDfFZ6McaFK9z9tqCjIb3jIPoKnYuHRhbs4s,267291
46
+ ccxt/coinlist.py,sha256=mHdefumNxcxKdc-z8qdkIYXkJtZgGz2aHkyq2HDKsJ4,114079
47
47
  ccxt/coinmate.py,sha256=ZbhFH_ALCbB9UpkSFlyh8RP4ZiLH7IbjJGX2PEOtUOs,48773
48
48
  ccxt/coinmetro.py,sha256=idTmegdHUed_nMhk6G-wOrMs1f3g4vjwX98W_IXwMF0,84058
49
49
  ccxt/coinone.py,sha256=J68O8a4oOoCBQ2u_kqWTfspAmNDYhYleD709VLbjf58,49256
@@ -87,11 +87,11 @@ ccxt/ndax.py,sha256=qBDsdMjWDflk80pGm_KrLZ_kTSMA1nhNWEw2yNMoeLw,113607
87
87
  ccxt/novadax.py,sha256=8K6mKIBY5KyyunyBsYJEosfkr2yDrPVgJfFUpET242k,67583
88
88
  ccxt/oceanex.py,sha256=YhvVgresX7nm8sFxD8Yr5pQI5IzuuRllW-JdA9RkDSM,44195
89
89
  ccxt/okcoin.py,sha256=fuAOZXqsGaDttvVlLIN2-KVev3Ga-HJ6oSrk0q5tf9I,154935
90
- ccxt/okx.py,sha256=ssuDcNuEYgWBAaC4zCsogPFYl2Ay6ygQWZd3S-U-Wlk,393109
90
+ ccxt/okx.py,sha256=VynYQAX_39J7LG1L4ZMH3321vAp0gE-eiKeRnfop4yg,394175
91
91
  ccxt/onetrading.py,sha256=mNmwMVK-7qQEW6L35kfN6OwqvGLiVXrot4B2SDx3_TQ,76305
92
92
  ccxt/oxfun.py,sha256=XfF-kErOOwLBHVpqxpXngFj8EZmXqAGtpmGE_2Q5Ssg,127504
93
93
  ccxt/p2b.py,sha256=2mkYFm3h_lFtgEu13F6sDgbj3UxYyTG-3R_l-w7NZiM,56725
94
- ccxt/paradex.py,sha256=zzpQoyuLsfJGlDnV_uIW2Beb0i1Sno0YbpoSO-PiS3M,100226
94
+ ccxt/paradex.py,sha256=n-PTCt0WV1MIXOpzW24tnNCVy6QfmYRX6pPL0NVPNkQ,99997
95
95
  ccxt/paymium.py,sha256=SPe-2BHskOi8uHtrFWqcoop-ec5vu9GSQwDDf8EnXTA,26219
96
96
  ccxt/phemex.py,sha256=iNe6ljetjxVvRQWWS3bWaAxHIqSlUZJ5NHLImSdJF4Q,241967
97
97
  ccxt/poloniex.py,sha256=s881QelJZ7qbfh0PzSAZOJ1Ahx9KZFQxyaD6su6NbNA,154789
@@ -100,13 +100,13 @@ ccxt/probit.py,sha256=dHWDuCGNnAUja1RYoXo1JRlEgFuWiQSmGUX6yrB_dmU,79412
100
100
  ccxt/timex.py,sha256=Sh4Udv9wLP83q_laCYlgWMh1GKrg4kN97fJGO4uMPL0,75302
101
101
  ccxt/tokocrypto.py,sha256=hmCMf7f3Z0tM6Ipnj7RrQDHvuKB7wKBhfSqD4ePsNiI,126321
102
102
  ccxt/tradeogre.py,sha256=QwjnEPgtL50urjDXJphR5zc7j2HSs92YbHgK-69kZ0w,32176
103
- ccxt/upbit.py,sha256=jceYyVOorMSLeQ56qmKcitxmOHugr7M4VcsWGop8D5A,88014
103
+ ccxt/upbit.py,sha256=9xB3vTVPP6vlQuuVRE0rKO_2lphTDzDQbX6GxCm30Ts,89321
104
104
  ccxt/vertex.py,sha256=oHahmepx-A4Z_u8lYn3q_TaAvqbAK17DNY-vCqWEqCQ,129137
105
105
  ccxt/wavesexchange.py,sha256=Syfi1W5yLpcu0Pe4MPhpJ9lWm1TRLfzUNdofTQDF7KA,119634
106
106
  ccxt/whitebit.py,sha256=U-TkKDEB02k2jEd51eCjofC0Qg0hH_fgDmENTsCd1Ac,148447
107
107
  ccxt/woo.py,sha256=vMFoUtD0wBqw8OVUZiCl1odD4ySYp5Vj-axFRdWcoM0,159438
108
108
  ccxt/woofipro.py,sha256=uStFsls9naq6Vg7wUJfE-AKch6mUfg3qQhv_btqWKGQ,120877
109
- ccxt/xt.py,sha256=MRkoQWMGXp3P_FGaIxqzAmoda1u1Xl8Qp-BAplifJa8,212094
109
+ ccxt/xt.py,sha256=95UTI-VSO_-qqYiR-2QeRogy9BhGLj9-3efuTKpQ7zc,217026
110
110
  ccxt/yobit.py,sha256=10y6R1o67kCQahHuwNUCOq2za9O84fE177YhTeGvNxk,57750
111
111
  ccxt/zaif.py,sha256=-qt419JrCajq69n9jNC3hnZC5DcMnrkGDWnNS2Enxrg,31175
112
112
  ccxt/zonda.py,sha256=29gcWGBvS6b01Wu8QhBg60825kVxHJRqsDJdB-6eZ8U,85006
@@ -191,12 +191,12 @@ ccxt/abstract/lbank.py,sha256=pdut_cIcwcUhN_ZCyWJxixBc4dgeQqvENYqFCrUYrvA,8675
191
191
  ccxt/abstract/luno.py,sha256=QUsEL2MMhv6qF-4pW0o0xs9lI8HsZtlrAp3sBskq7i4,3619
192
192
  ccxt/abstract/mercado.py,sha256=qs3Fr6C_K8M-YIsGx-W9iUiFXcgQ0SA8uADvhV8mDQM,2357
193
193
  ccxt/abstract/mexc.py,sha256=oyg0sZFYs1d77F-_9QAatqMSQJ8h-1u1wWb-d1DX2zQ,26434
194
- ccxt/abstract/myokx.py,sha256=kySyIOPAXn0cE5kOmF3PMWlgDQvOSTJoYQ-kKkBxRgM,51475
194
+ ccxt/abstract/myokx.py,sha256=5dEebc0bNreMze5fGV2OBpZYhcDZ1Ogc3rhXveTMFcs,52132
195
195
  ccxt/abstract/ndax.py,sha256=M98Ys406KT6T19Y98dXriD6YjzfglHHbnfQw-PDYWtM,11878
196
196
  ccxt/abstract/novadax.py,sha256=IvQFP_v2Q-Sx0tK2bXx4oY81rtNwC7gkc75p_E2jhKw,3093
197
197
  ccxt/abstract/oceanex.py,sha256=JoK404UCkmMG2VqMaGit6PtonyXtCixYx539SoYtYug,2307
198
198
  ccxt/abstract/okcoin.py,sha256=3NmYh-68W_4AXmkqjkf9dRaJcPgNYQG5mKZssJKT4gs,9414
199
- ccxt/abstract/okx.py,sha256=kySyIOPAXn0cE5kOmF3PMWlgDQvOSTJoYQ-kKkBxRgM,51475
199
+ ccxt/abstract/okx.py,sha256=5dEebc0bNreMze5fGV2OBpZYhcDZ1Ogc3rhXveTMFcs,52132
200
200
  ccxt/abstract/onetrading.py,sha256=w4DO3mhMZOrwQ-8zrX8zFUFItZgUPOPV72kcSWCP4SU,2278
201
201
  ccxt/abstract/oxfun.py,sha256=bv4FJPe1H5ouMT_gRHVQtvV0MrMZhc3US-DMwnDM4Js,3457
202
202
  ccxt/abstract/p2b.py,sha256=XwaH1hLIi2T6RHltUwFj28Y5fbo6dc0jbjI01sVeOJw,2054
@@ -208,23 +208,23 @@ ccxt/abstract/probit.py,sha256=PxQkrvv3EQ2TvOxJmc_mAF_aH8xFFw6pZaVVjjUo5_4,1969
208
208
  ccxt/abstract/timex.py,sha256=9b0CDsyjm8XrYZmhUMB1dTHUmyE9YrsZTCZrz1UTt6E,5875
209
209
  ccxt/abstract/tokocrypto.py,sha256=OF5UW4ch_Lf3-avOPgd4AD4CVrOUDUfUpSMCmxhNHlk,4094
210
210
  ccxt/abstract/tradeogre.py,sha256=bDouHP2c50F6Ins5EU2-3Jw10PsIG2KK3bcKv8y7678,1676
211
- ccxt/abstract/upbit.py,sha256=rJKbmYJFv-zedNdLn0BTmd_DrBX8pgej5XUBffGC1DU,3873
211
+ ccxt/abstract/upbit.py,sha256=ryNIUZKUC9IhHscLuQQTntm7mowdaKTKGmJOtIiBG2M,6036
212
212
  ccxt/abstract/vertex.py,sha256=56BbU9WF32wLTypOHrhV47betqBYTQvpOJjAzGclYGA,1622
213
213
  ccxt/abstract/wavesexchange.py,sha256=8LIgZiPixoaUFPKGSWJpjI1BYXVqeQh9NLcjfXciZMc,19631
214
214
  ccxt/abstract/whitebit.py,sha256=UdPNzz5MigftoSKT4MFwSnixi5fKnpyd0ct6jz4jEVg,14577
215
215
  ccxt/abstract/woo.py,sha256=x77reirGx7NTX3lQ59GIco9C2odIKlRMdrxQtDTAThg,10834
216
216
  ccxt/abstract/woofipro.py,sha256=El50vWGAV-4QPIDhgSnd4egfvk246NB6vTC-8h722vs,16016
217
- ccxt/abstract/xt.py,sha256=p0fG3O8kIeMYIvMlqxrhpXeo7lraee6lIlu9yqu6f10,27340
217
+ ccxt/abstract/xt.py,sha256=n3eX1cItL_J0j8prOViV-C_tRwIFv_GO8JTvZZw8jv8,27837
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=CSUAaeaD-LPUFIkYbUNetUKDbQeaaYijp7SCcBZF7u0,16163
221
+ ccxt/async_support/__init__.py,sha256=l4y39jE6jPFgUgUgGAm0OffRJpju1w-KNolEDrx7TCw,16163
222
222
  ccxt/async_support/ace.py,sha256=apWhPVYnqyNeDDk_uwu-rus8x-pCFe9M1rNgV88s8_Q,46714
223
223
  ccxt/async_support/alpaca.py,sha256=Tag0HpHxho_qrXoQ8rjZBVJZj9T38qg8g-mZR39_m18,81133
224
224
  ccxt/async_support/ascendex.py,sha256=Z9nw2WDkLqLHV338kw0qGaqECBC-bKc7H7p8YGeEpPU,157090
225
225
  ccxt/async_support/bequant.py,sha256=wMwmsTUd5cKYqt1rWyIqgyVzoznhEBtClG_vncshz5w,1232
226
226
  ccxt/async_support/bigone.py,sha256=1g0eoESEzEwVy7ryotNtSh8Tv8WuVPI4C1KG-NspU3Y,96414
227
- ccxt/async_support/binance.py,sha256=jGkyd7nTbFRlZsyCQhEeB107vAYgeGHMYd5xj3nBWF0,691374
227
+ ccxt/async_support/binance.py,sha256=SAYydsEWGuxmzw4DckIvUCep0RXh1OvP3BPCYkjI7bY,682739
228
228
  ccxt/async_support/binancecoinm.py,sha256=1NC5yuHlkNgXH5mEz20lU7O7u3pODa6fluSmHO7W5Lc,1758
229
229
  ccxt/async_support/binanceus.py,sha256=fD4Rm2iJZ6YZuJAbRt5TPh2p8dIyN8yQkovnSWKF6F8,9514
230
230
  ccxt/async_support/binanceusdm.py,sha256=pSIfePaOra0ikZLqFbvBAgHXbj1bhmuSt1G-DiNbgIk,2689
@@ -236,13 +236,13 @@ ccxt/async_support/bitcoincom.py,sha256=NN_AWmT0tzikiwFDtf3aUqRXbgFTbdRIeL0kPbL5
236
236
  ccxt/async_support/bitfinex.py,sha256=OQLjMJVv-6D1FoIV1Oa2nUJgCbKTWaxoBST815iGYg4,166856
237
237
  ccxt/async_support/bitfinex1.py,sha256=5wTplLdKMIEoWUwrG5_W5rXhrPbrch1358Bwa6TU1ek,74689
238
238
  ccxt/async_support/bitflyer.py,sha256=LuAqWed7hBXBJZomKayzpzDsmeBISMNyct-rV8tNPQk,47224
239
- ccxt/async_support/bitget.py,sha256=B0KcbXhCO4g6ahGBHC1b05Fa-rHLKsJYtvqVR7Qm56o,437889
239
+ ccxt/async_support/bitget.py,sha256=5zYlFQhROa5P5TRYmvbicQgH5KLciN3oqsgrCi0xbv8,437884
240
240
  ccxt/async_support/bithumb.py,sha256=ar0QoFintFU7qv7wW6xjnYqBR3keNYN4qN5cbybYxEY,51919
241
241
  ccxt/async_support/bitmart.py,sha256=m_tcJec63zJqcMMgeb1aiQpRYaSgaEdgpgjNx1taicI,249019
242
242
  ccxt/async_support/bitmex.py,sha256=BG2V3EfAb0omoPnvfi3CcaWrernaMeJJ8WeEH2CiW1Y,132025
243
243
  ccxt/async_support/bitopro.py,sha256=dxeqGJbH-j0ocBMnmXruk2DGbUQPeja15x3GeQizWUk,75587
244
244
  ccxt/async_support/bitpanda.py,sha256=zj2ad7e9spjosP19nGH2s9oJnlSsJ7CZFNK4alIt51w,524
245
- ccxt/async_support/bitrue.py,sha256=qJoihFg5EZQAHvsReXGwbM9xJWBvIkVrOn32roWDwTw,140374
245
+ ccxt/async_support/bitrue.py,sha256=am6XPr-R9gPZ0jnjVXFiL8UZjCyCcZfLqk3YFnJzq5Y,142556
246
246
  ccxt/async_support/bitso.py,sha256=PbF9iC4-Wea_msXhO614VPX6o-8RAqzK0reSC_dxwIc,74547
247
247
  ccxt/async_support/bitstamp.py,sha256=7MNcyr9yI9jR4e3CzIp2H9sku979VtjM4Tp2hGfWJSo,96097
248
248
  ccxt/async_support/bitteam.py,sha256=hucr7t-uGSsn6otP90c4ohzW4U9DwrWRieHZcW_J2Ig,105530
@@ -262,8 +262,8 @@ ccxt/async_support/coinbaseexchange.py,sha256=gItAdPlwvLERYDtZpb2ikoPu8QI6LNtCC9
262
262
  ccxt/async_support/coinbaseinternational.py,sha256=0wTE9n8B_GOeHOH0CdA_2hnhe0abqx7Wwk4roaotE0Y,101419
263
263
  ccxt/async_support/coincatch.py,sha256=LxtDw2TGjbf5zQfqwV5HJ_DdXfm3YeyO919kx9H_2DE,245286
264
264
  ccxt/async_support/coincheck.py,sha256=riQpuspYXE3FXgjQQaNFSjnWGtsPUBwdOrq9Hy3eTO8,38217
265
- ccxt/async_support/coinex.py,sha256=0JPbf9b12J3xP4--A1oJQF4cZ8-mm0bgnBiR_7zSOig,268512
266
- ccxt/async_support/coinlist.py,sha256=IcaxZlGaD0uIyv3xL3ozgzTcHyLkFd5KlHjbHUzj0l4,111018
265
+ ccxt/async_support/coinex.py,sha256=hsYu1Av27c6gneIPANySIzhGBYu6g0Om-S3jaDygZxg,268579
266
+ ccxt/async_support/coinlist.py,sha256=9vw4EmHh8q0WotDGii3Rf3IMiGvof-O8IIQI54z0IyY,114585
267
267
  ccxt/async_support/coinmate.py,sha256=iC1zJju22iTcFtrQKFSsOyPkgTFQkUDa_2FWOOH029w,49039
268
268
  ccxt/async_support/coinmetro.py,sha256=j--kJNppZEMGBBsxR9P_W6W7JeizLAVER55_0ivNrrY,84378
269
269
  ccxt/async_support/coinone.py,sha256=lgNQvv3yRVotcDMnl_k1tpiLgpaDA-tANM4orHiVPYs,49498
@@ -307,11 +307,11 @@ ccxt/async_support/ndax.py,sha256=8JiB4Eu1CqAqkTXDVJ-h5iKv9IjR6aya7il6HJKXuCI,11
307
307
  ccxt/async_support/novadax.py,sha256=QIFIoZdkkq2odkX7V0wGn9ytgtzEDOTr4MnFGlgnKEk,67951
308
308
  ccxt/async_support/oceanex.py,sha256=_vi8sI3aucMmMPXwqqrpdfnWWHpfLYN_QaBpo2s9zvg,44533
309
309
  ccxt/async_support/okcoin.py,sha256=ybHgnBUymd-vpAlyT5F1sX8bcmSIb6IQtrxha0opRvg,155459
310
- ccxt/async_support/okx.py,sha256=z9dyMnz4NG8zaDh526e1UF7LPrYJf5-5mwtfhQjYfyo,394774
310
+ ccxt/async_support/okx.py,sha256=KOfoAsgbs82OBuZXYMdt0gHec6jPOlVXcRycYSwjmFg,395840
311
311
  ccxt/async_support/onetrading.py,sha256=rHzlEI2JW61LbuNUtSZeICL7Pa71lwJthU8lJJn3O9M,76661
312
312
  ccxt/async_support/oxfun.py,sha256=Hd4A3Ym0UCoxINhjMuD_d19MP8K1Kkk7K6plK114e5k,128048
313
313
  ccxt/async_support/p2b.py,sha256=A_RPhOvbOMozI8Ypvw_Qzon5c6609l-fle3hYMT4j4w,56967
314
- ccxt/async_support/paradex.py,sha256=yxsPEpojt71hPGIJ_mb5uZjuGwnuOE-bZe0Pcm5SGzU,100930
314
+ ccxt/async_support/paradex.py,sha256=YsbxfGK5MTEyAtOc5FDucnHXUcsnHtFk9ZamjtNwSDE,100701
315
315
  ccxt/async_support/paymium.py,sha256=x4-ORMQoTtML3ZOSlBc6oH139SzVbzs0deVpV5cnqBQ,26407
316
316
  ccxt/async_support/phemex.py,sha256=ZxaNy14hdFMK_qdDyoD-N9jq1je9Y2AOxEhWq1zej3Q,242883
317
317
  ccxt/async_support/poloniex.py,sha256=hHRJZJuSBW1w3S1MEtjHqrDkP_Pdls4EbLpJv5kkkgc,155597
@@ -320,18 +320,18 @@ ccxt/async_support/probit.py,sha256=nhYNevIgOXHg4moxHfVCqcoVXgZ9ddKloqtaFgqIKP0,
320
320
  ccxt/async_support/timex.py,sha256=oGI29yrQsnd-_Tq-Fy3iDY4-zBrrkL0uv8f2ZctJk9I,75664
321
321
  ccxt/async_support/tokocrypto.py,sha256=DcUSa9PEsk9UGVFQbsWLXVAN8mL-3B1s4IBiSCC2POU,126683
322
322
  ccxt/async_support/tradeogre.py,sha256=Ytk2Y6UNhHpn83eFc9Zvy9pjjrYNNsmK_Td0LEbw4QY,32418
323
- ccxt/async_support/upbit.py,sha256=x-omZH5LYCS_KCK1xuC4O5dTQgaUCncHR2DewNtV6GU,88496
323
+ ccxt/async_support/upbit.py,sha256=1rvWx0QbLow65P9jpElt0KvyFc2Dj5RUIWu1fpdhGCE,89803
324
324
  ccxt/async_support/vertex.py,sha256=dPUSGt4yDaRzbQ7gkIr937c3sRJ5r_K9xg8BrDOlWhQ,129655
325
325
  ccxt/async_support/wavesexchange.py,sha256=hUuCCBhpBraqWxFXmTfhjV51oUSRQQ0W4dR6xUNleKw,120184
326
326
  ccxt/async_support/whitebit.py,sha256=HlDn3aqQ_kTDRAR0easbIlk0oqKMGzMynzOBBNUiplY,149271
327
327
  ccxt/async_support/woo.py,sha256=P-0zXic6KTuTQtqTgQeCi0NilPgpQiZm_a6lLFxq2JI,160424
328
328
  ccxt/async_support/woofipro.py,sha256=VwsbOydohnY4mYXWiLCFiCt_Lz8_z-UYpRQjlXHhfpc,121569
329
- ccxt/async_support/xt.py,sha256=BJBfzPa_vMZkPCe7VNYSqHgsIJch4ZJTFvzKyFYH10k,213284
329
+ ccxt/async_support/xt.py,sha256=TFrK5VJAsF5p9NlFod-SRxEeRZzFCt5RVOzVH3CKg0o,218258
330
330
  ccxt/async_support/yobit.py,sha256=B2T9UXo0ke-YyXxNW9avOPJ8cReVGXWD9OpkORI9ZSU,58078
331
331
  ccxt/async_support/zaif.py,sha256=jZZv3ZjGQgkPNRfY5B5p5DNMvanHWTTS8m6BLBWm9tA,31357
332
332
  ccxt/async_support/zonda.py,sha256=2QL_B9CmBu4SU4K-Y8segpj57vzAd4aUT2H2cD3b07g,85320
333
333
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
334
- ccxt/async_support/base/exchange.py,sha256=X4BrbR9Oo-33uUotlodYrIW7ucESwmoHYnUmWAkS8ck,117223
334
+ ccxt/async_support/base/exchange.py,sha256=fAERj5IIrjvTl4akeUYxjg46dhChPaO2n6GE3V5twtg,117255
335
335
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
336
336
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
337
337
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=Y5HxAVXyyYduj6b6SbbUZETlq3GrVMzrkW1r-TMgpb8,6329
@@ -344,11 +344,11 @@ ccxt/async_support/base/ws/order_book.py,sha256=uBUaIHhzMRykpmo4BCsdJ-t_HozS6Vxh
344
344
  ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmBJLCI5FHIRdMz1O-g,6551
345
345
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
346
346
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
347
- ccxt/base/errors.py,sha256=MvCrL_sAM3de616T6RE0PSxiF2xV6Qqz5b1y1ghidbk,4888
348
- ccxt/base/exchange.py,sha256=ZvK4GMhsYIvcZ7KloZD22dcBDOWtroMR88T5mu7zQ7E,322633
347
+ ccxt/base/errors.py,sha256=Pad-6ugvGUwhoYuKUliX-N7FTrcnKCQGFjsaq2tMn0I,4610
348
+ ccxt/base/exchange.py,sha256=cy8A1AKRqsz2DIjbR2q_H-R-yFW9zod8plmQUForERw,322910
349
349
  ccxt/base/precise.py,sha256=koce64Yrp6vFbGijJtUt-QQ6XhJgeGTCksZ871FPp_A,8886
350
350
  ccxt/base/types.py,sha256=SfxIKDSsxP7MPHWiOVI965Nr5NSEPpAno5fuveTRi3w,11423
351
- ccxt/pro/__init__.py,sha256=nW-r_tVVC4zH0-UHo8Tkzi8SoHQDlJ-1MHlUvNy8BRI,7596
351
+ ccxt/pro/__init__.py,sha256=dopOudr0UQ9ruPjLCrwsR1vOX0nQT76Ym63DAoaalUI,7596
352
352
  ccxt/pro/alpaca.py,sha256=_WEorh5thYhvhn7R8hBvHW2m1P2foIbp8URjIt_9vcg,27623
353
353
  ccxt/pro/ascendex.py,sha256=aSbIEzJ0Og_Nc5UGTYj3DVjGfIJ0-q0DdXSWJcQCKb4,37512
354
354
  ccxt/pro/bequant.py,sha256=reG2yXBhxn_TuOIg4J2BiLxl8Lw5Lag3IBMGBkiQCd0,1591
@@ -395,7 +395,7 @@ ccxt/pro/hollaex.py,sha256=HJzz1qptxoCq_t6EvkIi5wQ-m8iuxlDCagKHA8QNXts,22387
395
395
  ccxt/pro/htx.py,sha256=qjvYQIRz3nLSjCarLJIEqTo2YVwfIvv9OwXJynkLGwY,97645
396
396
  ccxt/pro/huobi.py,sha256=MPqx8sS8dX9pQHiSWZKzKgNRB2O4yfblX7yTTbM7Tp0,424
397
397
  ccxt/pro/huobijp.py,sha256=DNgm6jrERyJG_fWu6xvlEs0lNy6TBsCsIWct0wrOjJA,23330
398
- ccxt/pro/hyperliquid.py,sha256=83I9tJRr79J-1tIYTcG15dTEhkbi3JteX45IeshZPf0,42299
398
+ ccxt/pro/hyperliquid.py,sha256=BAlxgNpSRLQCwIzA8hwZc4ZKcdw_BkZNjDDKCekhISE,42325
399
399
  ccxt/pro/idex.py,sha256=-S5IcxqDPahlS-ptORSGlWH2PanJ0JFa8vFEfND4dXw,28612
400
400
  ccxt/pro/independentreserve.py,sha256=3FGcNr9nrlf6Qt_q29lMe9I760IP9T-DBgDj_kmAo2g,11368
401
401
  ccxt/pro/kraken.py,sha256=GdcrqW_aWbvXRnXKH99EbjIvrMwDuyz-iZHnXY7o3Ls,66474
@@ -651,12 +651,12 @@ ccxt/static_dependencies/toolz/curried/operator.py,sha256=ML92mknkAwzBl2NCm-4wer
651
651
  ccxt/static_dependencies/typing_inspect/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
652
652
  ccxt/static_dependencies/typing_inspect/typing_inspect.py,sha256=5gIWomLPfuDpgd3gX1GlnX0MuXM3VorR4j2W2qXORiQ,28269
653
653
  ccxt/test/__init__.py,sha256=GKPbEcj0Rrz5HG-GUm-iY1IHhDYmlvcBXZAGk6-m2CI,141
654
- ccxt/test/tests_async.py,sha256=_eOeOojWW2Twyd62H485whALy9IKSlUd4JlrKN26qws,92582
654
+ ccxt/test/tests_async.py,sha256=yoE3idBrebgiD9J-DY6bgiST2qwN_Hnk5E9qRFaivnM,93841
655
655
  ccxt/test/tests_helpers.py,sha256=egM69A2ZFYeVF5hwC1Qt-c5DOeClY5bv4jowmceeFV8,9736
656
656
  ccxt/test/tests_init.py,sha256=qM0-Gb0h0p6CANWTkyYZI7wl-iYOcrPur7aj_OKh7m0,1212
657
- ccxt/test/tests_sync.py,sha256=5qKpTyujmxiXJ0jNwYNdYzzwbkXHHfiO0QuQCBCjbqI,91566
658
- ccxt-4.4.75.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
659
- ccxt-4.4.75.dist-info/METADATA,sha256=bmUwfOuBpctzj2xcBnuswOYWfXy71sj0TzoM8A5_sAk,131033
660
- ccxt-4.4.75.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
661
- ccxt-4.4.75.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
662
- ccxt-4.4.75.dist-info/RECORD,,
657
+ ccxt/test/tests_sync.py,sha256=Vrh3qoGGrX6SBpdAsLsw8fNajcd3QrBqpFFErm41-bo,92825
658
+ ccxt-4.4.77.dist-info/LICENSE.txt,sha256=EIb9221AhMHV7xF1_55STFdKTFsnJVJYkRpY2Lnvo5w,1068
659
+ ccxt-4.4.77.dist-info/METADATA,sha256=X6BwrGjl7JAyHc5A_9iKTsqwGDMyl3e5Y1emCbzP0eI,131033
660
+ ccxt-4.4.77.dist-info/WHEEL,sha256=Kh9pAotZVRFj97E15yTA4iADqXdQfIVTHcNaZTjxeGM,110
661
+ ccxt-4.4.77.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
662
+ ccxt-4.4.77.dist-info/RECORD,,
File without changes