ccxt 4.3.28__py2.py3-none-any.whl → 4.3.30__py2.py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

ccxt/kucoin.py CHANGED
@@ -446,6 +446,7 @@ class kucoin(Exchange, ImplicitAPI):
446
446
  'The withdrawal amount is below the minimum requirement.': ExchangeError, # {"code":"400100","msg":"The withdrawal amount is below the minimum requirement."}
447
447
  'Unsuccessful! Exceeded the max. funds out-transfer limit': InsufficientFunds, # {"code":"200000","msg":"Unsuccessful! Exceeded the max. funds out-transfer limit"}
448
448
  'The amount increment is invalid.': BadRequest,
449
+ 'The quantity is below the minimum requirement.': InvalidOrder, # {"msg":"The quantity is below the minimum requirement.","code":"400100"}
449
450
  '400': BadRequest,
450
451
  '401': AuthenticationError,
451
452
  '403': NotSupported,
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.28'
7
+ __version__ = '4.3.30'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
ccxt/pro/bitfinex.py CHANGED
@@ -311,7 +311,7 @@ class bitfinex(ccxt.async_support.bitfinex):
311
311
  size = -delta2Value if (delta2Value < 0) else delta2Value
312
312
  side = 'asks' if (delta2Value < 0) else 'bids'
313
313
  bookside = orderbook[side]
314
- bookside.store(price, size, id)
314
+ bookside.storeArray([price, size, id])
315
315
  else:
316
316
  deltas = message[1]
317
317
  for i in range(0, len(deltas)):
@@ -320,7 +320,7 @@ class bitfinex(ccxt.async_support.bitfinex):
320
320
  size = -delta2 if (delta2 < 0) else delta2
321
321
  side = 'asks' if (delta2 < 0) else 'bids'
322
322
  countedBookSide = orderbook[side]
323
- countedBookSide.store(delta[0], size, delta[1])
323
+ countedBookSide.storeArray([delta[0], size, delta[1]])
324
324
  client.resolve(orderbook, messageHash)
325
325
  else:
326
326
  orderbook = self.orderbooks[symbol]
@@ -333,13 +333,13 @@ class bitfinex(ccxt.async_support.bitfinex):
333
333
  bookside = orderbook[side]
334
334
  # price = 0 means that you have to remove the order from your book
335
335
  amount = size if Precise.string_gt(price, '0') else '0'
336
- bookside.store(self.parse_number(price), self.parse_number(amount), id)
336
+ bookside.storeArray([self.parse_number(price), self.parse_number(amount), id])
337
337
  else:
338
338
  message3Value = message[3]
339
339
  size = -message3Value if (message3Value < 0) else message3Value
340
340
  side = 'asks' if (message3Value < 0) else 'bids'
341
341
  countedBookSide = orderbook[side]
342
- countedBookSide.store(message[1], size, message[2])
342
+ countedBookSide.storeArray([message[1], size, message[2]])
343
343
  client.resolve(orderbook, messageHash)
344
344
 
345
345
  def handle_heartbeat(self, client: Client, message):
ccxt/pro/bitfinex2.py CHANGED
@@ -597,7 +597,7 @@ class bitfinex2(ccxt.async_support.bitfinex2):
597
597
  # price = 0 means that you have to remove the order from your book
598
598
  amount = size if Precise.string_gt(price, '0') else '0'
599
599
  idString = self.safe_string(deltas, 0)
600
- bookside.store(self.parse_number(price), self.parse_number(amount), idString)
600
+ bookside.storeArray([self.parse_number(price), self.parse_number(amount), idString])
601
601
  else:
602
602
  amount = self.safe_string(deltas, 2)
603
603
  counter = self.safe_string(deltas, 1)
@@ -605,7 +605,7 @@ class bitfinex2(ccxt.async_support.bitfinex2):
605
605
  size = Precise.string_neg(amount) if Precise.string_lt(amount, '0') else amount
606
606
  side = 'asks' if Precise.string_lt(amount, '0') else 'bids'
607
607
  bookside = orderbookItem[side]
608
- bookside.store(self.parse_number(price), self.parse_number(size), self.parse_number(counter))
608
+ bookside.storeArray([self.parse_number(price), self.parse_number(size), self.parse_number(counter)])
609
609
  client.resolve(orderbook, messageHash)
610
610
 
611
611
  def handle_checksum(self, client: Client, message, subscription):
ccxt/pro/bitmex.py CHANGED
@@ -1376,7 +1376,7 @@ class bitmex(ccxt.async_support.bitmex):
1376
1376
  data = self.safe_value(message, 'data', [])
1377
1377
  # if it's an initial snapshot
1378
1378
  if action == 'partial':
1379
- filter = self.safe_value(message, 'filter', {})
1379
+ filter = self.safe_dict(message, 'filter', {})
1380
1380
  marketId = self.safe_value(filter, 'symbol')
1381
1381
  market = self.safe_market(marketId)
1382
1382
  symbol = market['symbol']
@@ -1395,7 +1395,7 @@ class bitmex(ccxt.async_support.bitmex):
1395
1395
  side = self.safe_string(data[i], 'side')
1396
1396
  side = 'bids' if (side == 'Buy') else 'asks'
1397
1397
  bookside = orderbook[side]
1398
- bookside.store(price, size, id)
1398
+ bookside.storeArray([price, size, id])
1399
1399
  datetime = self.safe_string(data[i], 'timestamp')
1400
1400
  orderbook['timestamp'] = self.parse8601(datetime)
1401
1401
  orderbook['datetime'] = datetime
@@ -1417,7 +1417,7 @@ class bitmex(ccxt.async_support.bitmex):
1417
1417
  side = self.safe_string(data[i], 'side')
1418
1418
  side = 'bids' if (side == 'Buy') else 'asks'
1419
1419
  bookside = orderbook[side]
1420
- bookside.store(price, size, id)
1420
+ bookside.storeArray([price, size, id])
1421
1421
  datetime = self.safe_string(data[i], 'timestamp')
1422
1422
  orderbook['timestamp'] = self.parse8601(datetime)
1423
1423
  orderbook['datetime'] = datetime
ccxt/pro/blockchaincom.py CHANGED
@@ -669,8 +669,8 @@ class blockchaincom(ccxt.async_support.blockchaincom):
669
669
  snapshot = self.parse_order_book(message, symbol, timestamp, 'bids', 'asks', 'px', 'qty', 'num')
670
670
  orderbook.reset(snapshot)
671
671
  elif event == 'updated':
672
- asks = self.safe_value(message, 'asks', [])
673
- bids = self.safe_value(message, 'bids', [])
672
+ asks = self.safe_list(message, 'asks', [])
673
+ bids = self.safe_list(message, 'bids', [])
674
674
  self.handle_deltas(orderbook['asks'], asks)
675
675
  self.handle_deltas(orderbook['bids'], bids)
676
676
  orderbook['timestamp'] = timestamp
ccxt/pro/cryptocom.py CHANGED
@@ -127,7 +127,7 @@ class cryptocom(ccxt.async_support.cryptocom):
127
127
  price = self.safe_float(delta, 0)
128
128
  amount = self.safe_float(delta, 1)
129
129
  count = self.safe_integer(delta, 2)
130
- bookside.store(price, amount, count)
130
+ bookside.storeArray([price, amount, count])
131
131
 
132
132
  def handle_deltas(self, bookside, deltas):
133
133
  for i in range(0, len(deltas)):
@@ -195,10 +195,10 @@ class cryptocom(ccxt.async_support.cryptocom):
195
195
  data = self.safe_value(message, 'data')
196
196
  data = self.safe_value(data, 0)
197
197
  timestamp = self.safe_integer(data, 't')
198
- orderbook = self.safe_value(self.orderbooks, symbol)
199
- if orderbook is None:
198
+ if not (symbol in self.orderbooks):
200
199
  limit = self.safe_integer(message, 'depth')
201
- orderbook = self.counted_order_book({}, limit)
200
+ self.orderbooks[symbol] = self.counted_order_book({}, limit)
201
+ orderbook = self.orderbooks[symbol]
202
202
  channel = self.safe_string(message, 'channel')
203
203
  nonce = self.safe_integer_2(data, 'u', 's')
204
204
  books = data
ccxt/pro/deribit.py CHANGED
@@ -489,11 +489,11 @@ class deribit(ccxt.async_support.deribit):
489
489
  marketId = self.safe_string(data, 'instrument_name')
490
490
  symbol = self.safe_symbol(marketId)
491
491
  timestamp = self.safe_integer(data, 'timestamp')
492
- storedOrderBook = self.safe_value(self.orderbooks, symbol)
493
- if storedOrderBook is None:
494
- storedOrderBook = self.counted_order_book()
495
- asks = self.safe_value(data, 'asks', [])
496
- bids = self.safe_value(data, 'bids', [])
492
+ if not (symbol in self.orderbooks):
493
+ self.orderbooks[symbol] = self.counted_order_book()
494
+ storedOrderBook = self.orderbooks[symbol]
495
+ asks = self.safe_list(data, 'asks', [])
496
+ bids = self.safe_list(data, 'bids', [])
497
497
  self.handle_deltas(storedOrderBook['asks'], asks)
498
498
  self.handle_deltas(storedOrderBook['bids'], bids)
499
499
  storedOrderBook['nonce'] = timestamp
@@ -505,8 +505,8 @@ class deribit(ccxt.async_support.deribit):
505
505
  client.resolve(storedOrderBook, messageHash)
506
506
 
507
507
  def clean_order_book(self, data):
508
- bids = self.safe_value(data, 'bids', [])
509
- asks = self.safe_value(data, 'asks', [])
508
+ bids = self.safe_list(data, 'bids', [])
509
+ asks = self.safe_list(data, 'asks', [])
510
510
  cleanedBids = []
511
511
  for i in range(0, len(bids)):
512
512
  cleanedBids.append([bids[i][1], bids[i][2]])
@@ -521,9 +521,9 @@ class deribit(ccxt.async_support.deribit):
521
521
  price = delta[1]
522
522
  amount = delta[2]
523
523
  if delta[0] == 'new' or delta[0] == 'change':
524
- bookside.store(price, amount, 1)
524
+ bookside.storeArray([price, amount, 1])
525
525
  elif delta[0] == 'delete':
526
- bookside.store(price, amount, 0)
526
+ bookside.storeArray([price, amount, 0])
527
527
 
528
528
  def handle_deltas(self, bookside, deltas):
529
529
  for i in range(0, len(deltas)):
ccxt/pro/idex.py CHANGED
@@ -456,7 +456,7 @@ class idex(ccxt.async_support.idex):
456
456
  price = self.safe_float(delta, 0)
457
457
  amount = self.safe_float(delta, 1)
458
458
  count = self.safe_integer(delta, 2)
459
- bookside.store(price, amount, count)
459
+ bookside.storeArray([price, amount, count])
460
460
 
461
461
  def handle_deltas(self, bookside, deltas):
462
462
  for i in range(0, len(deltas)):
ccxt/pro/luno.py CHANGED
@@ -190,11 +190,10 @@ class luno(ccxt.async_support.luno):
190
190
  #
191
191
  symbol = subscription['symbol']
192
192
  messageHash = 'orderbook:' + symbol
193
- timestamp = self.safe_string(message, 'timestamp')
194
- orderbook = self.safe_value(self.orderbooks, symbol)
195
- if orderbook is None:
196
- orderbook = self.indexed_order_book({})
197
- self.orderbooks[symbol] = orderbook
193
+ timestamp = self.safe_integer(message, 'timestamp')
194
+ if not (symbol in self.orderbooks):
195
+ self.orderbooks[symbol] = self.indexed_order_book({})
196
+ orderbook = self.orderbooks[symbol]
198
197
  asks = self.safe_value(message, 'asks')
199
198
  if asks is not None:
200
199
  snapshot = self.custom_parse_order_book(message, symbol, timestamp, 'bids', 'asks', 'price', 'volume', 'id')
ccxt/pro/mexc.py CHANGED
@@ -487,8 +487,8 @@ class mexc(ccxt.async_support.mexc):
487
487
  # so, we just skip old updates
488
488
  return
489
489
  orderbook['nonce'] = deltaNonce
490
- asks = self.safe_value(delta, 'asks', [])
491
- bids = self.safe_value(delta, 'bids', [])
490
+ asks = self.safe_list(delta, 'asks', [])
491
+ bids = self.safe_list(delta, 'bids', [])
492
492
  asksOrderSide = orderbook['asks']
493
493
  bidsOrderSide = orderbook['bids']
494
494
  self.handle_bookside_delta(asksOrderSide, asks)
ccxt/whitebit.py CHANGED
@@ -45,6 +45,9 @@ class whitebit(Exchange, ImplicitAPI):
45
45
  'cancelAllOrdersAfter': True,
46
46
  'cancelOrder': True,
47
47
  'cancelOrders': False,
48
+ 'createMarketBuyOrderWithCost': True,
49
+ 'createMarketOrderWithCost': False,
50
+ 'createMarketSellOrderWithCost': False,
48
51
  'createOrder': True,
49
52
  'createStopLimitOrder': True,
50
53
  'createStopMarketOrder': True,
@@ -1162,6 +1165,29 @@ class whitebit(Exchange, ImplicitAPI):
1162
1165
  #
1163
1166
  return self.safe_integer(response, 'time')
1164
1167
 
1168
+ def create_market_order_with_cost(self, symbol: str, side: OrderSide, cost: float, params={}):
1169
+ """
1170
+ create a market order by providing the symbol, side and cost
1171
+ :param str symbol: unified symbol of the market to create an order in
1172
+ :param str side: 'buy' or 'sell'
1173
+ :param float cost: how much you want to trade in units of the quote currency
1174
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1175
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1176
+ """
1177
+ params['cost'] = cost
1178
+ # only buy side is supported
1179
+ return self.create_order(symbol, 'market', side, 0, None, params)
1180
+
1181
+ def create_market_buy_order_with_cost(self, symbol: str, cost: float, params={}) -> Order:
1182
+ """
1183
+ create a market buy order by providing the symbol and cost
1184
+ :param str symbol: unified symbol of the market to create an order in
1185
+ :param float cost: how much you want to trade in units of the quote currency
1186
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1187
+ :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1188
+ """
1189
+ return self.create_market_order_with_cost(symbol, 'buy', cost, params)
1190
+
1165
1191
  def create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={}):
1166
1192
  """
1167
1193
  create a trade order
@@ -1176,6 +1202,7 @@ class whitebit(Exchange, ImplicitAPI):
1176
1202
  :param float amount: how much of currency you want to trade in units of base currency
1177
1203
  :param float [price]: the price at which the order is to be fullfilled, in units of the quote currency, ignored in market orders
1178
1204
  :param dict [params]: extra parameters specific to the exchange API endpoint
1205
+ :param float [params.cost]: *market orders only* the cost of the order in units of the base currency
1179
1206
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
1180
1207
  """
1181
1208
  self.load_markets()
@@ -1183,8 +1210,15 @@ class whitebit(Exchange, ImplicitAPI):
1183
1210
  request = {
1184
1211
  'market': market['id'],
1185
1212
  'side': side,
1186
- 'amount': self.amount_to_precision(symbol, amount),
1187
1213
  }
1214
+ cost = None
1215
+ cost, params = self.handle_param_string(params, 'cost')
1216
+ if cost is not None:
1217
+ if (side != 'buy') or (type != 'market'):
1218
+ raise InvalidOrder(self.id + ' createOrder() cost is only supported for market buy orders')
1219
+ request['amount'] = self.cost_to_precision(symbol, cost)
1220
+ else:
1221
+ request['amount'] = self.amount_to_precision(symbol, amount)
1188
1222
  clientOrderId = self.safe_string_2(params, 'clOrdId', 'clientOrderId')
1189
1223
  if clientOrderId is None:
1190
1224
  brokerId = self.safe_string(self.options, 'brokerId')
@@ -1232,7 +1266,10 @@ class whitebit(Exchange, ImplicitAPI):
1232
1266
  if useCollateralEndpoint:
1233
1267
  response = self.v4PrivatePostOrderCollateralMarket(self.extend(request, params))
1234
1268
  else:
1235
- response = self.v4PrivatePostOrderStockMarket(self.extend(request, params))
1269
+ if cost is not None:
1270
+ response = self.v4PrivatePostOrderMarket(self.extend(request, params))
1271
+ else:
1272
+ response = self.v4PrivatePostOrderStockMarket(self.extend(request, params))
1236
1273
  return self.parse_order(response)
1237
1274
 
1238
1275
  def edit_order(self, id: str, symbol: str, type: OrderType, side: OrderSide, amount: Num = None, price: Num = None, params={}):
@@ -1388,7 +1425,7 @@ class whitebit(Exchange, ImplicitAPI):
1388
1425
  balance = response[id]
1389
1426
  if isinstance(balance, dict) and balance is not None:
1390
1427
  account = self.account()
1391
- account['free'] = self.safe_string(balance, 'available')
1428
+ account['free'] = self.safe_string_2(balance, 'available', 'main_balance')
1392
1429
  account['used'] = self.safe_string(balance, 'freeze')
1393
1430
  account['total'] = self.safe_string(balance, 'main_balance')
1394
1431
  result[code] = account
@@ -1601,6 +1638,9 @@ class whitebit(Exchange, ImplicitAPI):
1601
1638
  stopPrice = self.safe_number(order, 'activation_price')
1602
1639
  orderId = self.safe_string_2(order, 'orderId', 'id')
1603
1640
  type = self.safe_string(order, 'type')
1641
+ orderType = self.parse_order_type(type)
1642
+ if orderType == 'market':
1643
+ remaining = None
1604
1644
  amount = self.safe_string(order, 'amount')
1605
1645
  cost = self.safe_string(order, 'dealMoney')
1606
1646
  if (side == 'buy') and ((type == 'market') or (type == 'stop market')):
@@ -1627,7 +1667,7 @@ class whitebit(Exchange, ImplicitAPI):
1627
1667
  'status': None,
1628
1668
  'side': side,
1629
1669
  'price': price,
1630
- 'type': self.parse_order_type(type),
1670
+ 'type': orderType,
1631
1671
  'stopPrice': stopPrice,
1632
1672
  'triggerPrice': stopPrice,
1633
1673
  'amount': amount,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.28
3
+ Version: 4.3.30
4
4
  Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 100+ exchanges
5
5
  Home-page: https://ccxt.com
6
6
  Author: Igor Kroitor
@@ -264,13 +264,13 @@ console.log(version, Object.keys(exchanges));
264
264
 
265
265
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
266
266
 
267
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.28/dist/ccxt.browser.js
268
- * unpkg: https://unpkg.com/ccxt@4.3.28/dist/ccxt.browser.js
267
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.30/dist/ccxt.browser.min.js
268
+ * unpkg: https://unpkg.com/ccxt@4.3.30/dist/ccxt.browser.min.js
269
269
 
270
270
  CDNs are not updated in real-time and may have delays. Defaulting to the most recent version without specifying the version number is not recommended. Please, keep in mind that we are not responsible for the correct operation of those CDN servers.
271
271
 
272
272
  ```HTML
273
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.28/dist/ccxt.browser.js"></script>
273
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.30/dist/ccxt.browser.min.js"></script>
274
274
  ```
275
275
 
276
276
  Creates a global `ccxt` object:
@@ -1,4 +1,4 @@
1
- ccxt/__init__.py,sha256=y9ibHoknr34vyvCrhDBH-r14mG_nf8qe0VS_YRQiEbw,15950
1
+ ccxt/__init__.py,sha256=TLTHGwTyW1QORYkG9Kflsn4wq3nGn7nYjNJz-Iu6oF0,15950
2
2
  ccxt/ace.py,sha256=IAbVQ73OhU5xdTLO6dtedqa3bSuZ63Me55Se1zotYUY,41656
3
3
  ccxt/alpaca.py,sha256=NadHil-XkNFteqE7GwzIhKCCRjQ7m0xBQBCUlKxS6Sc,47215
4
4
  ccxt/ascendex.py,sha256=ZlHotewbbcpvMJfqBoAD1UqWo-xTw3qBJO5wfX5z6hs,151487
@@ -8,7 +8,7 @@ ccxt/binance.py,sha256=IojU3Tkcp9qPaaoYYcbpnZ2Mu8SmA6mS-R7KMOghJus,617548
8
8
  ccxt/binancecoinm.py,sha256=pncdw6Xw2X1Po-vEvAB4nL37scoS_axGAVxetPy1YQs,1645
9
9
  ccxt/binanceus.py,sha256=hdcT4OnadcdFFFjF3GtM0nWv90jqojqwdVS3xWGuW40,9163
10
10
  ccxt/binanceusdm.py,sha256=KPQGlCalQ0eGlPCs2tSanOxaP8O0zFRQjGntA16Yprw,2480
11
- ccxt/bingx.py,sha256=3pm-A5kbgmShKYAxPWNe6oermixpZHM7-Di7m_JiKFM,186172
11
+ ccxt/bingx.py,sha256=z45s4wSV2hRG3JMY5zfnDzlyJ23SIcWpd9iE10Ovf-4,186724
12
12
  ccxt/bit2c.py,sha256=cuqPGkIRA7k0nDLLkL2wFjQLi7SJPiO_IMw6kAckIHM,36907
13
13
  ccxt/bitbank.py,sha256=DcA2I_e1tLJyIeLqcDiFsfLuDJxFDUFfcQery4gn1lc,41845
14
14
  ccxt/bitbay.py,sha256=xAIjzGRDVGwoy-Gygd99H0YN4wiaz_0lR0Z14oxaaxc,478
@@ -19,7 +19,7 @@ ccxt/bitfinex2.py,sha256=vM8zqvKqufDCcgXjNlUTrJf069f_-ZgLA6kdGFdlhuI,158515
19
19
  ccxt/bitflyer.py,sha256=xY72j19f0YM8CnU0UN_Kv-RteE1NdtMvs_kMxBimCVA,41397
20
20
  ccxt/bitget.py,sha256=4eCSkzz-DuRoBIXdm3aeuevJksBWa4t9I4qDGxbIWa4,422574
21
21
  ccxt/bithumb.py,sha256=JPlhrlnPGyvSztPiNVHSDIx5fjVoHvPGsD8vx1yFfF8,45534
22
- ccxt/bitmart.py,sha256=v_HgD8hwiandqWHbTkvgpJTbfc4IMpHEKYhvGewsbWI,201529
22
+ ccxt/bitmart.py,sha256=XZDQhg5C1ITHykCt9_qy_hOp1bV0SVsR_Eo9yAUMAZg,204375
23
23
  ccxt/bitmex.py,sha256=PxRDGNFOToB2fFulw0Z3XEklLhFmKF_rRfx8LpDtgoo,126584
24
24
  ccxt/bitopro.py,sha256=Ph0uhgzUJzNKji_bIs9SxbY72U7Fu-6QWr2i6WMKB7M,68522
25
25
  ccxt/bitpanda.py,sha256=aiwPkx9lKbVzt4ggoYdq_mIbMGtg5ZtGl2yRHO5xyz8,471
@@ -42,7 +42,7 @@ ccxt/coinbaseadvanced.py,sha256=d5g6nRx-NCcCwZDdtp8FsI2D-pRjSvnAP9ISSKY_nCQ,538
42
42
  ccxt/coinbaseexchange.py,sha256=FeSNMY_lAzYAs3X9QmDCMSHScdyUW-nLv78AoMIPK78,78704
43
43
  ccxt/coinbaseinternational.py,sha256=wieWUwsLsBYAgNpvnnrKseqAE7aOw__apSP6MQK9u9E,87240
44
44
  ccxt/coincheck.py,sha256=jg8KHt_XUMPlbG1BYUiSHu9-DDBWdnQwV15P9IzKqbY,35664
45
- ccxt/coinex.py,sha256=wHFmRYPgMVEeW1ez8wbmAPhq9wgv0gudF7-M36CohDA,258819
45
+ ccxt/coinex.py,sha256=S10hrvuZp7JL8irNeE0U3GPObFJ1NAWMlH5EB-LzTFA,256422
46
46
  ccxt/coinlist.py,sha256=EU4jtqWALdcLG5X3m2q4xPbQ3-h5-H63Eeb_R3wW-5s,103140
47
47
  ccxt/coinmate.py,sha256=EsXu0mcAkVFwg2VOg47qr6g95a3bDPN2I9AuFQxgkQg,45946
48
48
  ccxt/coinmetro.py,sha256=tZjLAz5XufybO3BU3QGXMrLzinoY4UBhn0JIyXivnys,80700
@@ -71,7 +71,7 @@ ccxt/independentreserve.py,sha256=iobtHiT8KlD1-mDJeoZCzPEPteSZz512mxgnrTnsECo,32
71
71
  ccxt/indodax.py,sha256=ulvlP7-xpQWXrBfvRn-GWMoOXr_4MBBMrkTDDgM4fbQ,51921
72
72
  ccxt/kraken.py,sha256=dQfatDpJQ7jfMd6lHbpvI509HrYOsREg-Pxtq-fFeAY,128194
73
73
  ccxt/krakenfutures.py,sha256=LRG3FXlYbjnEVi5KUESy9OBPDevTGvnWEWPAtvX0CVU,116855
74
- ccxt/kucoin.py,sha256=0YqwMhzxBt_cmOgZj_JPJ5tOF7QrFJXzyvBrheJiuT4,217796
74
+ ccxt/kucoin.py,sha256=uXOoKmX1DB75LhEk_S2IfrF4-94wHi2lVbdCnBIlmuA,217956
75
75
  ccxt/kucoinfutures.py,sha256=x5m2yqC5ZEIaKCBmM8alKJ7tk2r9nzpMC-PcpfadnRo,124327
76
76
  ccxt/kuna.py,sha256=Q1FuK9RvZmEYN87G3bHsVhcUcclMApuFVDNv5njyaRU,95991
77
77
  ccxt/latoken.py,sha256=pMuCXETni8Ihgl4OSUNk5Ovt4D6bV61zctM45nn8cCs,79197
@@ -98,7 +98,7 @@ ccxt/tradeogre.py,sha256=jsJtJ9sAb-mmQO71kchwxbgkmFxMDSuzmuW0gtdFTnw,23900
98
98
  ccxt/upbit.py,sha256=7XwfWbQYZg6W15pmi2FuDJQqzY0Tz-MsUTKTeqy2GEI,81611
99
99
  ccxt/wavesexchange.py,sha256=WMRiWLR7EHrRLfR2sRa-M1NbtErbX2s0AucB47Bv9t4,113603
100
100
  ccxt/wazirx.py,sha256=9j_cOXN3PgWD_6hXB0xu0aWfplqC_UT2hs5OBcbZLvU,51342
101
- ccxt/whitebit.py,sha256=0nGyJjoziS8dXTC6Dtclm_V4r5W8XaHs1IVNRqn6yuA,114862
101
+ ccxt/whitebit.py,sha256=VzJXcUfh3JKv86HPCmDXCLOi6Aan9G14U-PlyobyCgQ,117094
102
102
  ccxt/woo.py,sha256=83_uWV8A6Thp6v8gD71UNAvSCrX--eV4BRkHdcyhpc4,139464
103
103
  ccxt/woofipro.py,sha256=cGeDhYnQ6sqRipaQaDLBFK6tPzSrqWPYY2MUB5pTSus,114867
104
104
  ccxt/yobit.py,sha256=bWzXMK2Q9DdPr8EmhPzaq5rqkHOt0lqRwEsDQgCj5BY,53222
@@ -114,7 +114,7 @@ ccxt/abstract/binance.py,sha256=wdQ66Fqofy60iO6EDa3QWIR-UmJJN9wAZrFAWZPvCBk,9220
114
114
  ccxt/abstract/binancecoinm.py,sha256=wdQ66Fqofy60iO6EDa3QWIR-UmJJN9wAZrFAWZPvCBk,92208
115
115
  ccxt/abstract/binanceus.py,sha256=44asjK9YYNkuskO5j_DEBwXE_-httynffOkyCAEV-L8,98928
116
116
  ccxt/abstract/binanceusdm.py,sha256=wdQ66Fqofy60iO6EDa3QWIR-UmJJN9wAZrFAWZPvCBk,92208
117
- ccxt/abstract/bingx.py,sha256=ar7VFcqcjPNWwpjLMOpBqwb8cu7mUzeuUeBEvN6zgUQ,16032
117
+ ccxt/abstract/bingx.py,sha256=-Aepusv-LrrUAwLjJBhtbQBcFJzn4Blo_u8Sa09Re9o,17110
118
118
  ccxt/abstract/bit2c.py,sha256=np6i756kSB5dO3Nj6POLKxkWkpYcsGg-4LS8BwPrizI,2830
119
119
  ccxt/abstract/bitbank.py,sha256=hrHsD7Uvtyy2o2lzCHau3-eNq16pnZ3-YDQ6Tq_sxYU,2735
120
120
  ccxt/abstract/bitbay.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
@@ -125,7 +125,7 @@ ccxt/abstract/bitfinex2.py,sha256=82sdkbjDb6D2JePGAa2yYwApDwdeF9Tvlo-hWB2ZUBs,19
125
125
  ccxt/abstract/bitflyer.py,sha256=3ngG1GJJCNMzYMWoNXCEEgLxmTl7eRf7_JU4M0P2rqo,3576
126
126
  ccxt/abstract/bitget.py,sha256=3xGAFBJkaFWD3WvaGtb0rE0zBO9b0QkIysMJRDZDxNQ,90491
127
127
  ccxt/abstract/bithumb.py,sha256=GR7QJ6CwTBne59SaGRVj9Rdz_zecG-8imRWX7oe6MoQ,3443
128
- ccxt/abstract/bitmart.py,sha256=wJlSj1eh_Qp9duxPS5StlhAC-SH97-HxMvHEf3lYO_4,14167
128
+ ccxt/abstract/bitmart.py,sha256=pXzEUu-Eac4fXuInvBiLjJ-HVkjNcpzBCvBRFagri1Y,14300
129
129
  ccxt/abstract/bitmex.py,sha256=v15OP-vSO_eotD6KVf1BgKrbPxCPl2eXXYIuzWF1dl4,10774
130
130
  ccxt/abstract/bitopro.py,sha256=KCWuN9bc4W2fWIbWL_OboHc5DtbCjXXLnd23gYl9r3s,3295
131
131
  ccxt/abstract/bitpanda.py,sha256=TtJq4d44lrutV8wcK0lX4v0EfQ72ly6fxR-zB7-FSuI,3859
@@ -210,7 +210,7 @@ ccxt/abstract/woofipro.py,sha256=El50vWGAV-4QPIDhgSnd4egfvk246NB6vTC-8h722vs,160
210
210
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
211
211
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
212
212
  ccxt/abstract/zonda.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
213
- ccxt/async_support/__init__.py,sha256=j8EPzBLj1ajFe2SWl97Qb1Cpz5IrDQhdt03vR-2qcVU,15723
213
+ ccxt/async_support/__init__.py,sha256=M6eF0QFMJXXF4o2rKhs9RQllJ1ECvP7Gzv7VyUDgoSA,15723
214
214
  ccxt/async_support/ace.py,sha256=xVxaTocpMapAIl4ApPApw69Rd-RDuU0_vleJnVt_qhI,41880
215
215
  ccxt/async_support/alpaca.py,sha256=rjD8PdQr1B5e9hvaoTQBKVtWwHLs04e6_-gooXl4eEE,47427
216
216
  ccxt/async_support/ascendex.py,sha256=cYw-zMHB5QuadbI2fNBI_ywe8emGKsBgI8pdyQZp8Os,152275
@@ -220,7 +220,7 @@ ccxt/async_support/binance.py,sha256=sgPD5mSPMpsM2Gwp-Y-s3wyUGcgYtafJxJhTxwdQ8Fs
220
220
  ccxt/async_support/binancecoinm.py,sha256=IY3RLZptQA2nmZaUYRGfTa5ZY4VMWBpFYfwHc8zTHw0,1683
221
221
  ccxt/async_support/binanceus.py,sha256=c-K3Tk7LaRJjmYdCx8vBOqsx01uXrtvt0PC2ekBiD0g,9177
222
222
  ccxt/async_support/binanceusdm.py,sha256=-1r4A4tmV2pCiLGO80hzq7MIIj4MTzOD7buZGv6JauA,2518
223
- ccxt/async_support/bingx.py,sha256=tmuaoG5nQ_VcEJuF-KKxhn-ZgYFn9h0sovoTbeOAbnY,187208
223
+ ccxt/async_support/bingx.py,sha256=LLoJClYQr6CZjYJSblZpq13doCS0l7lkdeNQgWsBotM,187760
224
224
  ccxt/async_support/bit2c.py,sha256=doMZLyPCUF4KPe-P3-MlXNxTr2GD7EAkmXqI7zM3frY,37119
225
225
  ccxt/async_support/bitbank.py,sha256=Vu3C5eHq9SndHeX_plwLdSSPFmrwpVVvUKSg7AI-c9A,42105
226
226
  ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
@@ -231,7 +231,7 @@ ccxt/async_support/bitfinex2.py,sha256=aXWqz-Ub3HMd-eHyrAZEAV8FYkOX9ej-uBLG30Byn
231
231
  ccxt/async_support/bitflyer.py,sha256=KNOVDnBONry4JUJiyPKXQvP_OkxKTluly7ZdtCl-_M0,41705
232
232
  ccxt/async_support/bitget.py,sha256=PKjF_ZNOMXWS7e4n-YvhRL7OPNZjtMi7hhS70_7Idcw,424198
233
233
  ccxt/async_support/bithumb.py,sha256=gasefOqFJX0Aav2PWMILHS1kr1lcHhJf3OdKaXuVF6M,45764
234
- ccxt/async_support/bitmart.py,sha256=pkJ8TwEqjFOaOH6noIsUIXMxZGIEd-NNVsrRzXsW5JE,202467
234
+ ccxt/async_support/bitmart.py,sha256=Duc87I_8BvJyQss2oeiWAFRSYJKMQ0eNDqsYd-OAiv0,205331
235
235
  ccxt/async_support/bitmex.py,sha256=tnw76bg38oOvz-luU-c7K4A75MwSsfwJs9VrzRW5OHs,127162
236
236
  ccxt/async_support/bitopro.py,sha256=kIorVevTcOvIqfsCn0z-QXscJjIDcG3qq9_WzC6C_ks,68926
237
237
  ccxt/async_support/bitpanda.py,sha256=2k3URBWrpnh2xHa7JiYenI7_4MW5UeOPGzetlmRkR4U,485
@@ -254,7 +254,7 @@ ccxt/async_support/coinbaseadvanced.py,sha256=Kupwnuxiu_qTjwCNV2asacoDUNFQvcaHNA
254
254
  ccxt/async_support/coinbaseexchange.py,sha256=3wEfbKBAVn9JkOfukopSRPhM8unRA6BQLqvm5c2VLBE,79210
255
255
  ccxt/async_support/coinbaseinternational.py,sha256=fuU-h5UpO_nVs1j8KA7oGsQlP0kQefuPycZrc8ph6OQ,87794
256
256
  ccxt/async_support/coincheck.py,sha256=ThRQX8E3NZrGc9Z__UIb7p0AtHgnq_DBhe9GzE9SlaQ,35870
257
- ccxt/async_support/coinex.py,sha256=PzKHNgqRR6_d97suRqOJh3_JalhWSBk4HdQRazle-6k,260095
257
+ ccxt/async_support/coinex.py,sha256=CYNJQ-ZPJgA5octnvlz_TL2sYVZSnGHqMJ037_i-MDU,257680
258
258
  ccxt/async_support/coinlist.py,sha256=MKLhRyaw0DHkpRfR-Vj9NS0SwCpYUx8nOxZJ26swIMY,103628
259
259
  ccxt/async_support/coinmate.py,sha256=lc8p0aQXu-oSf2whiqvm0QoBhDVx9wf50CcFeucdXcY,46212
260
260
  ccxt/async_support/coinmetro.py,sha256=NLqNdcJ_zXcNqaxqkrloL9PqnogbQ6OzA5e_Gl4ACtk,81020
@@ -283,7 +283,7 @@ ccxt/async_support/independentreserve.py,sha256=8UTpFWJtrfZTeMhRfNK8mGiOu0-p-JCb
283
283
  ccxt/async_support/indodax.py,sha256=Duu0r6PCzPlQLNqj2v2smCh6xE65S9LpP7wwQWa5ygM,52229
284
284
  ccxt/async_support/kraken.py,sha256=6rHDgOa8EBfU1Uelit73ekfrOqPObxWoMBcqQBk-rpc,128832
285
285
  ccxt/async_support/krakenfutures.py,sha256=IAXHOgB-puM4-R_2x9Yzqwh3bMXJay4Sno5EFopaEo8,117343
286
- ccxt/async_support/kucoin.py,sha256=-7kAVv2ghUIBXL6QLWmuZUsgCdq2wW6cHGSFMFGDyMA,218868
286
+ ccxt/async_support/kucoin.py,sha256=UYVDSv2FrATTsuKe7Xen82QrQvBCq7mtmbha3NnY-rE,219028
287
287
  ccxt/async_support/kucoinfutures.py,sha256=3gdO1HK5avmyseAXEEiufyNifvJAUpW75mUQNYhlmzQ,124965
288
288
  ccxt/async_support/kuna.py,sha256=jcgPCS4_wHsWbBni6yuj6iMa641AYsiZr8ZBNGoxCe8,96407
289
289
  ccxt/async_support/latoken.py,sha256=eseLp2evP-Ux0BSkOTlq2CXSnHVjAWDqY26OrKMgXTQ,79673
@@ -310,31 +310,31 @@ ccxt/async_support/tradeogre.py,sha256=WJdVRPnjE_Q3LdhISdrKjmiNkV0f4-gazWusEZy4P
310
310
  ccxt/async_support/upbit.py,sha256=q5R3QAUVIqE94dWZ7iC6CESJdz1DCbq71h1Mg-FEA9s,82093
311
311
  ccxt/async_support/wavesexchange.py,sha256=PZaC_yiqWrlc-yVse5xJ4AnNX8sYxKamTzmemBVAkAQ,114153
312
312
  ccxt/async_support/wazirx.py,sha256=XndOKu5ViBlyzwHbONKUwxw7Zr3AQ_XLieSGo6HCMW0,51644
313
- ccxt/async_support/whitebit.py,sha256=Pd6UoxgajJAVR_iVUsJ1pZGJDrDVPztankFVRXSV4Ao,115482
313
+ ccxt/async_support/whitebit.py,sha256=HR8drREwFn11zkpgsuflgGCh3PY4UJN76G3_9sC3ad8,117744
314
314
  ccxt/async_support/woo.py,sha256=D9lQhsx3sSeDGic1ToxqCx3eJkdNS_UA7IucvQXg__0,140354
315
315
  ccxt/async_support/woofipro.py,sha256=PQsLD8Kz_TkPTBdQTFlOVHZmTPnpitFLLS73Ezt1CpY,115547
316
316
  ccxt/async_support/yobit.py,sha256=kvMIVVjf8XxE7cKt51iHtqH7zgmFKc5ZVhk1dKDtlxE,53506
317
317
  ccxt/async_support/zaif.py,sha256=lzrmIYPlNJquYkK-fq9DjqS8EfiAtofXnPcTMf3XOMM,28161
318
318
  ccxt/async_support/zonda.py,sha256=bS_Oq8FVjbLxnxFVVg-_5ZlNS0CH9QxSUVKL91IR9rc,80912
319
319
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
320
- ccxt/async_support/base/exchange.py,sha256=JaGgzaPYCHzjahWALnl4iy2czADd-km049kI0g6ZL24,108722
320
+ ccxt/async_support/base/exchange.py,sha256=mDBgfmSijJJ9G6CguXaPPpqeDKHkd_I9Sk6Mma9Gih4,108722
321
321
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
322
322
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
323
- ccxt/async_support/base/ws/aiohttp_client.py,sha256=Ed1765emEde2Hj8Ys6f5EjS54ZI1wQ0qIhd04eB7yhU,5751
323
+ ccxt/async_support/base/ws/aiohttp_client.py,sha256=5IEiT0elWI9a7Vr-KV0jgmlbpLJWBzIlrLaCkTKGaqY,5752
324
324
  ccxt/async_support/base/ws/cache.py,sha256=yObqIOHFEXfmxO1NeA6gf0Sb7zfEDVWBeB501FInuxY,8100
325
325
  ccxt/async_support/base/ws/client.py,sha256=jTFg8KHw9_2vD9kJp1Pykw2KGXisFgGnRFir0V7bp_g,7289
326
326
  ccxt/async_support/base/ws/fast_client.py,sha256=r5Ej3hjCY5k-e4D2gXbo5TE2EXCItVg8fJ8i3O3djsQ,3864
327
327
  ccxt/async_support/base/ws/functions.py,sha256=qwvEnjtINWL5ZU-dbbeIunjyBxzFqbGWHfVhxqAcKug,1499
328
- ccxt/async_support/base/ws/future.py,sha256=Ls4nOPAFpVs-3avD202xKKLNUpGc7VDtAzM7kx1xNaE,2067
328
+ ccxt/async_support/base/ws/future.py,sha256=poJororPTavN1YT4whp9VXDd_rwqkn-3EDeiBoGmKLs,1984
329
329
  ccxt/async_support/base/ws/order_book.py,sha256=uBUaIHhzMRykpmo4BCsdJ-t_HozS6VxhEs8x-Kbj-NI,2894
330
- ccxt/async_support/base/ws/order_book_side.py,sha256=Pxrq22nCODckJ6G1OXkYEmUunIuybSz6sh9MsDB1WMY,6478
330
+ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmBJLCI5FHIRdMz1O-g,6551
331
331
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
332
332
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
333
333
  ccxt/base/errors.py,sha256=FGdyULeNCNcl52gA_CNhe2dZmat9GJGkTdlIyDXAF_A,4213
334
- ccxt/base/exchange.py,sha256=tHGwC33roPlkxTU8WCz0RKtm1M5ZuZKXmFqzSPaxpEg,278296
334
+ ccxt/base/exchange.py,sha256=BGDN2ME_Pb4VgZXbYdI0OkdtPm8EvxKP1v4lsHTkdkA,278460
335
335
  ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
336
336
  ccxt/base/types.py,sha256=3hBdiD2EO7W-pwmBrDeDYMEdFGcnT0QqQZa3l8ywTVM,9027
337
- ccxt/pro/__init__.py,sha256=Ku1y6DwmywpXdM720CxghiCikboIrw5U82YAuxyKeq8,7107
337
+ ccxt/pro/__init__.py,sha256=gSUmv2dRro3RDtIRx55EsmJIBqDWn-r8soaWkjfsIdY,7107
338
338
  ccxt/pro/alpaca.py,sha256=7ePyWli0949ti5UheIn553xmnFpedrNc2W5CKauSZio,27167
339
339
  ccxt/pro/ascendex.py,sha256=fCM3EujSfJvtvffqI56UAstTtwjXFIocwukm15cF8rE,35432
340
340
  ccxt/pro/bequant.py,sha256=5zbsP8BHQTUZ8ZNL6uaACxDbUClgkOV4SYfXT_LfQVg,1351
@@ -344,18 +344,18 @@ ccxt/pro/binanceus.py,sha256=mpvmzc7kK3cGShM5EOvadOvwlj1xWsWzX9fIapuq2eQ,2321
344
344
  ccxt/pro/binanceusdm.py,sha256=S0eT662O2ReplsihWk42nhJWqw1XsODpeDQa9eFVVt8,1357
345
345
  ccxt/pro/bingx.py,sha256=DX-_TEWhTSi__zP865UUM0DqnEO9VO6KHysLiVr2JpE,42110
346
346
  ccxt/pro/bitcoincom.py,sha256=zAX6hiz4hS6Un8dSGp88rpnvItxQHfNmsfF0IZ2xIVA,1181
347
- ccxt/pro/bitfinex.py,sha256=VdvMikgWO7htYSAEKmGkDBYISWCJon1bnkv3JkV4nv0,24826
348
- ccxt/pro/bitfinex2.py,sha256=9_N-a4eyiOndD1_1qRDEH7_02U75K1dH7qOYu8M5xUg,42834
347
+ ccxt/pro/bitfinex.py,sha256=C5p5JtEHsWajD2Ca1TZEn9NpKNRm6mVPZfIxdjLTuHA,24854
348
+ ccxt/pro/bitfinex2.py,sha256=Roc9lZ6uf-VQrITB0KFhLZxbIht4MfBWJslsDCd1qeE,42848
349
349
  ccxt/pro/bitget.py,sha256=6_z3512667AfuT18xZ8TYVad6_8wjbYh5mLIVZ4jJQw,72543
350
350
  ccxt/pro/bithumb.py,sha256=xMFS5eOYLAdqePz2Tcwu76qG_k7XbgnUjW9hKDehBjA,16799
351
351
  ccxt/pro/bitmart.py,sha256=Jyp-MyCUlvLDcMgz4Y8Dbjm8FJkjc79iLCBLgjYJHwc,62382
352
- ccxt/pro/bitmex.py,sha256=EJ_M666RDhhKal8umRKTbYZHCqHrrkRbWnOCzSEe3kI,68956
352
+ ccxt/pro/bitmex.py,sha256=gPogrBloxq21IPeLfDNy2u8tUAG0racZC_yAPn-2kj4,68969
353
353
  ccxt/pro/bitopro.py,sha256=eRtfFh8Xv9VO0ebaEDCOCZ7LsvxYcfAKdIAvMh1ihLU,18724
354
354
  ccxt/pro/bitpanda.py,sha256=ELrhfFKN9YJJdmm9wBf-vpk6WsXGWGf-SyJdqm-E_Lg,415
355
355
  ccxt/pro/bitrue.py,sha256=gPN1lVaDZ4IBYGhaS-1WCkcNQ5__RMbtn2dC2sKZUI4,16448
356
356
  ccxt/pro/bitstamp.py,sha256=nlqEaAMHpFI-FbQBXnvBee6DW0LcZRprJ8Sp8bIzsSs,20886
357
357
  ccxt/pro/bitvavo.py,sha256=ueyEkwp1KLedmh0fTjHLV2M_yiOWPPfr-bTR9N6hXsw,56145
358
- ccxt/pro/blockchaincom.py,sha256=Uv1ijvxvFGrqFPH6iifCk5AgQYTDsXUa5n0ktpusVjM,29560
358
+ ccxt/pro/blockchaincom.py,sha256=_cra9ClJ2oCgVFFPHXUJDtvlPxdKgzX8ySm_949pHk4,29558
359
359
  ccxt/pro/bybit.py,sha256=FWN3ixxNYBIlHBkfD5wg5kaJ_lxLppvTDySvCvyOebI,85098
360
360
  ccxt/pro/cex.py,sha256=psU0k-icE931Z_wpkr16IdSZ2iDUwLnqJz3KUmQ5Xls,58380
361
361
  ccxt/pro/coinbase.py,sha256=wrClkP6VMpxEtAG7RRaJNqLSHK8dqpu5KtsJACrzSiU,29520
@@ -364,9 +364,9 @@ ccxt/pro/coinbaseinternational.py,sha256=4LMDA9RJhwT2T55kyryGCJBrdRgh_XBVYlJjXGS
364
364
  ccxt/pro/coincheck.py,sha256=MKAPHJeVifQaCKPla-7RY86TIWyDGe4nvjRhNmi617w,7789
365
365
  ccxt/pro/coinex.py,sha256=LVgahnm6laz2e0oQP4C8ki3mLcx5Eh-uz989BFquozM,45042
366
366
  ccxt/pro/coinone.py,sha256=d0s11hTNFVFZiBD3jWWu6iRseyVsHR6dO-njqqZ2WyU,15652
367
- ccxt/pro/cryptocom.py,sha256=oHF9Bxe3a5yT8thg7JuIN-47YFAGKYKEQKGoByfFMgA,42910
367
+ ccxt/pro/cryptocom.py,sha256=POHfURsLJ-eI4Mlnd_mry3W0Il5AlkLAS4csnWQUXcs,42928
368
368
  ccxt/pro/currencycom.py,sha256=U3H_inb0V39LYRwlKdVXTeA_akiG1437jZZ-dsejX0k,22355
369
- ccxt/pro/deribit.py,sha256=IutkVY1AzcTszpbbhNV1dLF3DUr3zGXxyHhWQVJ96m0,41035
369
+ ccxt/pro/deribit.py,sha256=afPHg548-hdAV4k9aWEwIRj3-BsoHX16W6joMBlLwrI,41044
370
370
  ccxt/pro/exmo.py,sha256=gLCAObkmAyL_4BTRnftfDTejsW3-isi18ppKIipidyo,24527
371
371
  ccxt/pro/gate.py,sha256=1PPvBNDByPUaDG475jMaBhMTVTjtyEoJdkfxiSs9jZw,52489
372
372
  ccxt/pro/gateio.py,sha256=_uBWXYQbmsHRivKnZOJDmxJ9tWLO_0HAxmOjAEUy9nE,391
@@ -377,15 +377,15 @@ ccxt/pro/htx.py,sha256=R8vmY3fXky7p-wGUw7EPCA15Y9yYGu1pmbb9MI7aEt0,96052
377
377
  ccxt/pro/huobi.py,sha256=rKZVgYqEr-MmZzTqAk4FoJt8qWFjCi_FY0ci_mWZrL0,385
378
378
  ccxt/pro/huobijp.py,sha256=fcC66ECLwrR9LN_AYZZltoE_w9EltT5DcXimPOHKJk0,23174
379
379
  ccxt/pro/hyperliquid.py,sha256=V6ev_19ttD0jmlaejvJwTl429_K1eyt0O3mUusQcrgk,20791
380
- ccxt/pro/idex.py,sha256=MJWG56eMN8rAE4Tmz-WxXDDO2KacfY7eFSoCwL15DnQ,28282
380
+ ccxt/pro/idex.py,sha256=avXufOr5ecUvxgXK4W5OowIkFJi3QlRJtrim0zbI__A,28289
381
381
  ccxt/pro/independentreserve.py,sha256=39qWY0BpNoOfTpunMA9gwBePU8Ney6SO_zVuDy4uWLM,11179
382
382
  ccxt/pro/kraken.py,sha256=Ckkm4clOLM2K-2p_CvRFZARSATgkvt7tqqQl_CosLdg,60837
383
383
  ccxt/pro/krakenfutures.py,sha256=QTeLsAXmM3CxLbDI6ktESj8LYQYhJISsB95Za1nFzh8,63917
384
384
  ccxt/pro/kucoin.py,sha256=wxUoyXjTV0iU5X4C2EdWRFFTzljICccpRJq4b9MWmmg,50705
385
385
  ccxt/pro/kucoinfutures.py,sha256=2aro_LzQFD-U3Bb5C0V1q7nv7WUG4-kKhS7xQIGz9Wk,50026
386
386
  ccxt/pro/lbank.py,sha256=QnxR5n96itlssIk9_4Qv5kNeVgEsKOFua5UODFWnUes,35105
387
- ccxt/pro/luno.py,sha256=2Y-8IQrrmwX8Y1lLWVDtrFjZD3t3qtMZJQ_JjNwj65s,12348
388
- ccxt/pro/mexc.py,sha256=caL4b1Q1YEJsKKQG5mmscqacYfkbyUuN0xin00eYPoc,43183
387
+ ccxt/pro/luno.py,sha256=xymjPnAZnhfZ0Zj_0KLSOJX4YyXPmyPeUOhdWr4DQ_8,12312
388
+ ccxt/pro/mexc.py,sha256=OO6f94A22yjziPedefG4m9yFoWeyIJ4T9wZRdbTvJRo,43181
389
389
  ccxt/pro/ndax.py,sha256=Yrdy4UxjrDwO7gNMmSy09Wj6kHnRx1n0DTWmfirMEj8,22643
390
390
  ccxt/pro/okcoin.py,sha256=F38UBVjH2O7v6-XZMr5eJytnyBLp-0Uzx8q4qle_gXs,30385
391
391
  ccxt/pro/okx.py,sha256=kG28xgrUX3yLo16TCPpqsH_8Fj-AMtmbnw7gAYIOqQE,72791
@@ -534,7 +534,7 @@ ccxt/test/base/test_ticker.py,sha256=cMTIMb1oySNORUCmqI5ZzMswlEyCF6gJMah3vfvo8wQ
534
534
  ccxt/test/base/test_trade.py,sha256=PMtmB8V38dpaP-eb8h488xYMlR6D69yCOhsA1RuWrUA,2336
535
535
  ccxt/test/base/test_trading_fee.py,sha256=2aDCNJtqBkTC_AieO0l1HYGq5hz5qkWlkWb9Nv_fcwk,1066
536
536
  ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
537
- ccxt-4.3.28.dist-info/METADATA,sha256=wib-wi2ZDcZbxemrk91XeBJKEOO5Z076g1WgOrhqBCE,112795
538
- ccxt-4.3.28.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
539
- ccxt-4.3.28.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
540
- ccxt-4.3.28.dist-info/RECORD,,
537
+ ccxt-4.3.30.dist-info/METADATA,sha256=WONxcwK-kwJaxed1aockElNlfOsHHE9iLZAKfIw63aw,112807
538
+ ccxt-4.3.30.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
539
+ ccxt-4.3.30.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
540
+ ccxt-4.3.30.dist-info/RECORD,,
File without changes