ccxt 4.3.34__py2.py3-none-any.whl → 4.3.35__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/bitget.py CHANGED
@@ -2723,7 +2723,7 @@ class bitget(Exchange, ImplicitAPI):
2723
2723
  request: dict = {}
2724
2724
  type = None
2725
2725
  type, params = self.handle_market_type_and_params('fetchTickers', market, params)
2726
- # Calls like `.fetch_tickers(None, {subType:'inverse'})` should be supported for self exchange, so
2726
+ # Calls like `.fetchTickers(None, {subType:'inverse'})` should be supported for self exchange, so
2727
2727
  # as "options.defaultSubType" is also set in exchange options, we should consider `params.subType`
2728
2728
  # with higher priority and only default to spot, if `subType` is not set in params
2729
2729
  passedSubType = self.safe_string(params, 'subType')
ccxt/bitmart.py CHANGED
@@ -1180,14 +1180,9 @@ class bitmart(Exchange, ImplicitAPI):
1180
1180
  market = self.safe_market(marketId, market)
1181
1181
  symbol = market['symbol']
1182
1182
  last = self.safe_string_2(ticker, 'close_24h', 'last_price')
1183
- percentage = self.safe_string(ticker, 'price_change_percent_24h')
1183
+ percentage = Precise.string_abs(self.safe_string(ticker, 'price_change_percent_24h'))
1184
1184
  if percentage is None:
1185
- percentageRaw = self.safe_string(ticker, 'fluctuation')
1186
- if (percentageRaw is not None) and (percentageRaw != '0'): # a few tickers show strictly '0' in fluctuation field
1187
- direction = percentageRaw[0]
1188
- percentage = direction + Precise.string_mul(percentageRaw.replace(direction, ''), '100')
1189
- elif percentageRaw == '0':
1190
- percentage = '0'
1185
+ percentage = Precise.string_abs(Precise.string_mul(self.safe_string(ticker, 'fluctuation'), '100'))
1191
1186
  baseVolume = self.safe_string(ticker, 'base_volume_24h')
1192
1187
  quoteVolume = self.safe_string(ticker, 'quote_volume_24h')
1193
1188
  if quoteVolume is None:
ccxt/btcmarkets.py CHANGED
@@ -876,7 +876,9 @@ class btcmarkets(Exchange, ImplicitAPI):
876
876
  """
877
877
  calculates the presumptive fee that would be charged for an order
878
878
  :param str symbol: unified market symbol
879
- :param str type: not used by btcmarkets.calculate_fee :param string side: not used by btcmarkets.calculate_fee :param float amount: how much you want to trade, in units of the base currency on most exchanges, or number of contracts
879
+ :param str type: not used by btcmarkets.calculateFee
880
+ :param str side: not used by btcmarkets.calculateFee
881
+ :param float amount: how much you want to trade, in units of the base currency on most exchanges, or number of contracts
880
882
  :param float price: the price for the order to be filled at, in units of the quote currency
881
883
  :param str takerOrMaker: 'taker' or 'maker'
882
884
  :param dict params:
ccxt/bybit.py CHANGED
@@ -2079,7 +2079,7 @@ class bybit(Exchange, ImplicitAPI):
2079
2079
  }
2080
2080
  type = None
2081
2081
  type, params = self.handle_market_type_and_params('fetchTickers', market, params)
2082
- # Calls like `.fetch_tickers(None, {subType:'inverse'})` should be supported for self exchange, so
2082
+ # Calls like `.fetchTickers(None, {subType:'inverse'})` should be supported for self exchange, so
2083
2083
  # as "options.defaultSubType" is also set in exchange options, we should consider `params.subType`
2084
2084
  # with higher priority and only default to spot, if `subType` is not set in params
2085
2085
  passedSubType = self.safe_string(params, 'subType')
ccxt/coinbase.py CHANGED
@@ -6,7 +6,7 @@
6
6
  from ccxt.base.exchange import Exchange
7
7
  from ccxt.abstract.coinbase import ImplicitAPI
8
8
  import hashlib
9
- from ccxt.base.types import Account, Balances, Conversion, Currencies, Currency, Int, Market, MarketInterface, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction
9
+ from ccxt.base.types import Account, Balances, Conversion, Currencies, Currency, Int, Market, MarketInterface, Num, Order, OrderBook, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFees, Transaction
10
10
  from typing import List
11
11
  from ccxt.base.errors import ExchangeError
12
12
  from ccxt.base.errors import AuthenticationError
@@ -121,8 +121,8 @@ class coinbase(Exchange, ImplicitAPI):
121
121
  'fetchTickers': True,
122
122
  'fetchTime': True,
123
123
  'fetchTrades': True,
124
- 'fetchTradingFee': False,
125
- 'fetchTradingFees': False,
124
+ 'fetchTradingFee': 'emulated',
125
+ 'fetchTradingFees': True,
126
126
  'fetchWithdrawals': True,
127
127
  'reduceMargin': False,
128
128
  'setLeverage': False,
@@ -4272,6 +4272,63 @@ class coinbase(Exchange, ImplicitAPI):
4272
4272
  'takeProfitPrice': None,
4273
4273
  })
4274
4274
 
4275
+ def fetch_trading_fees(self, params={}) -> TradingFees:
4276
+ """
4277
+ :see: https://docs.cdp.coinbase.com/advanced-trade/reference/retailbrokerageapi_gettransactionsummary/
4278
+ fetch the trading fees for multiple markets
4279
+ :param dict [params]: extra parameters specific to the exchange API endpoint
4280
+ :param str [params.type]: 'spot' or 'swap'
4281
+ :returns dict: a dictionary of `fee structures <https://docs.ccxt.com/#/?id=fee-structure>` indexed by market symbols
4282
+ """
4283
+ self.load_markets()
4284
+ type = None
4285
+ type, params = self.handle_market_type_and_params('fetchTradingFees', None, params)
4286
+ isSpot = (type == 'spot')
4287
+ productType = 'SPOT' if isSpot else 'FUTURE'
4288
+ request: dict = {
4289
+ 'product_type': productType,
4290
+ }
4291
+ response = self.v3PrivateGetBrokerageTransactionSummary(self.extend(request, params))
4292
+ #
4293
+ # {
4294
+ # total_volume: '0',
4295
+ # total_fees: '0',
4296
+ # fee_tier: {
4297
+ # pricing_tier: 'Advanced 1',
4298
+ # usd_from: '0',
4299
+ # usd_to: '1000',
4300
+ # taker_fee_rate: '0.008',
4301
+ # maker_fee_rate: '0.006',
4302
+ # aop_from: '',
4303
+ # aop_to: ''
4304
+ # },
4305
+ # margin_rate: null,
4306
+ # goods_and_services_tax: null,
4307
+ # advanced_trade_only_volume: '0',
4308
+ # advanced_trade_only_fees: '0',
4309
+ # coinbase_pro_volume: '0',
4310
+ # coinbase_pro_fees: '0',
4311
+ # total_balance: '',
4312
+ # has_promo_fee: False
4313
+ # }
4314
+ #
4315
+ data = self.safe_dict(response, 'fee_tier', {})
4316
+ taker_fee = self.safe_number(data, 'taker_fee_rate')
4317
+ marker_fee = self.safe_number(data, 'maker_fee_rate')
4318
+ result: dict = {}
4319
+ for i in range(0, len(self.symbols)):
4320
+ symbol = self.symbols[i]
4321
+ market = self.market(symbol)
4322
+ if (isSpot and market['spot']) or (not isSpot and not market['spot']):
4323
+ result[symbol] = {
4324
+ 'info': response,
4325
+ 'symbol': symbol,
4326
+ 'maker': taker_fee,
4327
+ 'taker': marker_fee,
4328
+ 'percentage': True,
4329
+ }
4330
+ return result
4331
+
4275
4332
  def create_auth_token(self, seconds: Int, method: Str = None, url: Str = None):
4276
4333
  # it may not work for v2
4277
4334
  uri = None
ccxt/coinex.py CHANGED
@@ -4374,7 +4374,7 @@ class coinex(Exchange, ImplicitAPI):
4374
4374
  def withdraw(self, code: str, amount: float, address: str, tag=None, params={}):
4375
4375
  """
4376
4376
  make a withdrawal
4377
- :see: https://viabtc.github.io/coinex_api_en_doc/spot/#docsspot002_account015_submit_withdraw
4377
+ :see: https://docs.coinex.com/api/v2/assets/deposit-withdrawal/http/withdrawal
4378
4378
  :param str code: unified currency code
4379
4379
  :param float amount: the amount to withdraw
4380
4380
  :param str address: the address to withdraw to
@@ -4387,35 +4387,42 @@ class coinex(Exchange, ImplicitAPI):
4387
4387
  self.check_address(address)
4388
4388
  self.load_markets()
4389
4389
  currency = self.currency(code)
4390
- networkCode = self.safe_string_upper(params, 'network')
4390
+ networkCode = self.safe_string_upper_2(params, 'network', 'chain')
4391
4391
  params = self.omit(params, 'network')
4392
4392
  if tag:
4393
4393
  address = address + ':' + tag
4394
4394
  request: dict = {
4395
- 'coin_type': currency['id'],
4396
- 'coin_address': address, # must be authorized, inter-user transfer by a registered mobile phone number or an email address is supported
4397
- 'actual_amount': float(self.number_to_string(amount)), # the actual amount without fees, https://www.coinex.com/fees
4398
- 'transfer_method': 'onchain', # onchain, local
4395
+ 'ccy': currency['id'],
4396
+ 'to_address': address, # must be authorized, inter-user transfer by a registered mobile phone number or an email address is supported
4397
+ 'amount': self.number_to_string(amount), # the actual amount without fees, https://www.coinex.com/fees
4399
4398
  }
4400
4399
  if networkCode is not None:
4401
- request['smart_contract_name'] = self.network_code_to_id(networkCode)
4402
- response = self.v1PrivatePostBalanceCoinWithdraw(self.extend(request, params))
4400
+ request['chain'] = self.network_code_to_id(networkCode) # required for on-chain, not required for inter-user transfer
4401
+ response = self.v2PrivatePostAssetsWithdraw(self.extend(request, params))
4403
4402
  #
4404
4403
  # {
4405
4404
  # "code": 0,
4406
4405
  # "data": {
4407
- # "actual_amount": "1.00000000",
4408
- # "amount": "1.00000000",
4409
- # "coin_address": "1KAv3pazbTk2JnQ5xTo6fpKK7p1it2RzD4",
4410
- # "coin_type": "BCH",
4411
- # "coin_withdraw_id": 206,
4406
+ # "withdraw_id": 31193755,
4407
+ # "created_at": 1716874165038,
4408
+ # "withdraw_method": "ON_CHAIN",
4409
+ # "ccy": "USDT",
4410
+ # "amount": "17.3",
4411
+ # "actual_amount": "15",
4412
+ # "chain": "TRC20",
4413
+ # "tx_fee": "2.3",
4414
+ # "fee_asset": "USDT",
4415
+ # "fee_amount": "2.3",
4416
+ # "to_address": "TY5vq3MT6b5cQVAHWHtpGyPg1ERcQgi3UN",
4417
+ # "memo": "",
4418
+ # "tx_id": "",
4412
4419
  # "confirmations": 0,
4413
- # "create_time": 1524228297,
4414
- # "status": "audit",
4415
- # "tx_fee": "0",
4416
- # "tx_id": ""
4420
+ # "explorer_address_url": "https://tronscan.org/#/address/TY5vq3MT6b5cQVAHWHtpGyPg1ERcQgi3UN",
4421
+ # "explorer_tx_url": "https://tronscan.org/#/transaction/",
4422
+ # "remark": "",
4423
+ # "status": "audit_required"
4417
4424
  # },
4418
- # "message": "Ok"
4425
+ # "message": "OK"
4419
4426
  # }
4420
4427
  #
4421
4428
  transaction = self.safe_dict(response, 'data', {})
@@ -4519,7 +4526,7 @@ class coinex(Exchange, ImplicitAPI):
4519
4526
  # "remark": ""
4520
4527
  # }
4521
4528
  #
4522
- # fetchWithdrawals
4529
+ # fetchWithdrawals and withdraw
4523
4530
  #
4524
4531
  # {
4525
4532
  # "withdraw_id": 259364,
ccxt/gemini.py CHANGED
@@ -831,7 +831,7 @@ class gemini(Exchange, ImplicitAPI):
831
831
  :see: https://docs.gemini.com/rest-api/#ticker-v2
832
832
  :param str symbol: unified symbol of the market to fetch the ticker for
833
833
  :param dict [params]: extra parameters specific to the exchange API endpoint
834
- :param dict [params.fetchTickerMethod]: 'fetchTickerV2', 'fetchTickerV1' or 'fetchTickerV1AndV2' - 'fetchTickerV1' for original ccxt.gemini.fetch_ticker- 'fetchTickerV1AndV2' for 2 api calls to get the result of both fetchTicker methods - default = 'fetchTickerV1'
834
+ :param dict [params.fetchTickerMethod]: 'fetchTickerV2', 'fetchTickerV1' or 'fetchTickerV1AndV2' - 'fetchTickerV1' for original ccxt.gemini.fetchTicker - 'fetchTickerV1AndV2' for 2 api calls to get the result of both fetchTicker methods - default = 'fetchTickerV1'
835
835
  :returns dict: a `ticker structure <https://docs.ccxt.com/#/?id=ticker-structure>`
836
836
  """
837
837
  method = self.safe_value(self.options, 'fetchTickerMethod', 'fetchTickerV1')
ccxt/kraken.py CHANGED
@@ -970,7 +970,9 @@ class kraken(Exchange, ImplicitAPI):
970
970
  else:
971
971
  request['interval'] = timeframe
972
972
  if since is not None:
973
- request['since'] = self.number_to_string(self.parse_to_int(since / 1000)) # expected to be in seconds
973
+ scaledSince = self.parse_to_int(since / 1000)
974
+ timeFrameInSeconds = parsedTimeframe * 60
975
+ request['since'] = self.number_to_string(scaledSince - timeFrameInSeconds) # expected to be in seconds
974
976
  response = self.publicGetOHLC(self.extend(request, params))
975
977
  #
976
978
  # {
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.34'
7
+ __version__ = '4.3.35'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
ccxt/pro/bitget.py CHANGED
@@ -917,7 +917,9 @@ class bitget(ccxt.async_support.bitget):
917
917
  :param int [limit]: the maximum number of order structures to retrieve
918
918
  :param dict [params]: extra parameters specific to the exchange API endpoint
919
919
  :param boolean [params.stop]: *contract only* set to True for watching trigger orders
920
- :param str [params.marginMode]: 'isolated' or 'cross' for watching spot margin orders
920
+ :param str [params.marginMode]: 'isolated' or 'cross' for watching spot margin orders]
921
+ :param str [params.type]: 'spot', 'swap'
922
+ :param str [params.subType]: 'linear', 'inverse'
921
923
  :returns dict[]: a list of [order structures]{@link https://docs.ccxt.com/#/?id=order-structure
922
924
  """
923
925
  await self.load_markets()
@@ -932,10 +934,21 @@ class bitget(ccxt.async_support.bitget):
932
934
  symbol = market['symbol']
933
935
  marketId = market['id']
934
936
  messageHash = messageHash + ':' + symbol
937
+ productType = self.safe_string(params, 'productType')
935
938
  type = None
936
939
  type, params = self.handle_market_type_and_params('watchOrders', market, params)
940
+ subType = None
941
+ subType, params = self.handle_sub_type_and_params('watchOrders', market, params, 'linear')
937
942
  if (type == 'spot') and (symbol is None):
938
943
  raise ArgumentsRequired(self.id + ' watchOrders requires a symbol argument for ' + type + ' markets.')
944
+ if (productType is None) and (type != 'spot') and (symbol is None):
945
+ messageHash = messageHash + ':' + subType
946
+ elif productType == 'USDT-FUTURES':
947
+ messageHash = messageHash + ':linear'
948
+ elif productType == 'COIN-FUTURES':
949
+ messageHash = messageHash + ':inverse'
950
+ elif productType == 'USDC-FUTURES':
951
+ messageHash = messageHash + ':usdcfutures' # non unified channel
939
952
  instType = None
940
953
  instType, params = self.get_inst_type(market, params)
941
954
  if type == 'spot':
@@ -952,6 +965,7 @@ class bitget(ccxt.async_support.bitget):
952
965
  channel = 'orders-isolated'
953
966
  else:
954
967
  channel = 'orders-crossed'
968
+ subscriptionHash = subscriptionHash + ':' + instType
955
969
  args: dict = {
956
970
  'instType': instType,
957
971
  'channel': channel,
@@ -1007,6 +1021,9 @@ class bitget(ccxt.async_support.bitget):
1007
1021
  marketType = 'spot'
1008
1022
  else:
1009
1023
  marketType = 'contract'
1024
+ isLinearSwap = (instType == 'USDT-FUTURES')
1025
+ isInverseSwap = (instType == 'COIN-FUTURES')
1026
+ isUSDCFutures = (instType == 'USDC-FUTURES')
1010
1027
  data = self.safe_value(message, 'data', [])
1011
1028
  if self.orders is None:
1012
1029
  limit = self.safe_integer(self.options, 'ordersLimit', 1000)
@@ -1030,6 +1047,12 @@ class bitget(ccxt.async_support.bitget):
1030
1047
  innerMessageHash = messageHash + ':' + symbol
1031
1048
  client.resolve(stored, innerMessageHash)
1032
1049
  client.resolve(stored, messageHash)
1050
+ if isLinearSwap:
1051
+ client.resolve(stored, 'order:linear')
1052
+ if isInverseSwap:
1053
+ client.resolve(stored, 'order:inverse')
1054
+ if isUSDCFutures:
1055
+ client.resolve(stored, 'order:usdcfutures')
1033
1056
 
1034
1057
  def parse_ws_order(self, order, market=None):
1035
1058
  #
ccxt/pro/bitmart.py CHANGED
@@ -506,7 +506,7 @@ class bitmart(ccxt.async_support.bitmart):
506
506
  amount = self.safe_string(order, 'size')
507
507
  type = self.safe_string(order, 'type')
508
508
  rawState = self.safe_string(order, 'state')
509
- status = self.parseOrderStatusByType(market['type'], rawState)
509
+ status = self.parse_order_status_by_type(market['type'], rawState)
510
510
  timestamp = self.safe_integer(order, 'ms_t')
511
511
  symbol = market['symbol']
512
512
  side = self.safe_string_lower(order, 'side')
ccxt/pro/kraken.py CHANGED
@@ -1230,7 +1230,7 @@ class kraken(ccxt.async_support.kraken):
1230
1230
  messageHashes = []
1231
1231
  for i in range(0, len(symbols)):
1232
1232
  messageHashes.append(self.get_message_hash(unifiedName, None, self.symbol(symbols[i])))
1233
- # for WS subscriptions, we can't use .market_ids(symbols), instead a custom is field needed
1233
+ # for WS subscriptions, we can't use .marketIds(symbols), instead a custom is field needed
1234
1234
  markets = self.markets_for_symbols(symbols)
1235
1235
  wsMarketIds = []
1236
1236
  for i in range(0, len(markets)):
ccxt/pro/okx.py CHANGED
@@ -164,7 +164,7 @@ class okx(ccxt.async_support.okx):
164
164
  self.deep_extend(firstArgument, params),
165
165
  ],
166
166
  }
167
- return self.watch(url, messageHash, request, messageHash)
167
+ return await self.watch(url, messageHash, request, messageHash)
168
168
 
169
169
  async def watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={}) -> List[Trade]:
170
170
  """
@@ -42,7 +42,7 @@ assert hash(encode('sexyfish'), 'md5', 'hex') == 'c8a35464aa9d5683585786f44d5889
42
42
  assert hash(encode(''), 'sha1', 'hex') == 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
43
43
  assert hash(encode('nutella'), 'sha1', 'hex') == 'b3d60a34b744159793c483b067c56d8affc5111a'
44
44
  assert hmac(encode('hello'), encode('there'), hashlib.sha256, 'hex') == '551e1c1ecbce0fe9b643745a376584a6289f5f43a46861b315fac9edc8d52a26'
45
- assert hmac(encode('a message'), encode('a secret'), 'md5', 'hex') == '0bfa503bdbc7358185fcd49b4869e23d'
45
+ assert hmac(encode('a message'), encode('a secret'), hashlib.md5, 'hex') == '0bfa503bdbc7358185fcd49b4869e23d'
46
46
 
47
47
  # ---------------------------------------------------------------------------------------------------------------------
48
48
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.34
3
+ Version: 4.3.35
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.34/dist/ccxt.browser.min.js
268
- * unpkg: https://unpkg.com/ccxt@4.3.34/dist/ccxt.browser.min.js
267
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.35/dist/ccxt.browser.min.js
268
+ * unpkg: https://unpkg.com/ccxt@4.3.35/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.34/dist/ccxt.browser.min.js"></script>
273
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.35/dist/ccxt.browser.min.js"></script>
274
274
  ```
275
275
 
276
276
  Creates a global `ccxt` object:
@@ -1,14 +1,14 @@
1
- ccxt/__init__.py,sha256=JjMKcIxalSVhisU8xxl_yi43haIa3tEFhcBTjH-Tg4s,15950
1
+ ccxt/__init__.py,sha256=fZyAkx4OXk5H1fGXSi6n0JQww9Ol_Ni4_PXz-U7b5WU,15950
2
2
  ccxt/ace.py,sha256=6x4vkcS2lGSkAQuzS-AAgYJLPDNNfNo9NMIdAoXzs18,41776
3
- ccxt/alpaca.py,sha256=gPOfVGbitkuYd2CNF8_mIRjMTTHFmQEteyZNsYHBPbY,47340
3
+ ccxt/alpaca.py,sha256=EZ7uF3XI8EXXIsCZ-UVpruBXS96Kps6WOOukmdcgCn0,47326
4
4
  ccxt/ascendex.py,sha256=rUUU3n4j8QrMrJCk4pVwVastIYzS3eDTUAL9R2ePErk,151832
5
5
  ccxt/bequant.py,sha256=RBiAmaTbL35DgiV3Hl6uchLUd78V0z1T9riTlNsrpdc,1174
6
6
  ccxt/bigone.py,sha256=HKnpiDzs_hu09Lc6lnxGk1_1EOvxgrPqwr5dsApuj88,92436
7
- ccxt/binance.py,sha256=l7ajpOPLE2Qnr4SKng340GqZi4T0_WBQInT28h_4HgY,618776
7
+ ccxt/binance.py,sha256=vCH6EpFYY1gtDHQrf7In-gYXehhFqWTSfoXShAGbUSE,618778
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=W8Nu3EORi6z3ymydoSHSWaPnwBSpBwR5GuRFwbxH8r8,186885
11
+ ccxt/bingx.py,sha256=xRHO5MLkhGBdiv2_Hrv2ToUTEpfjL_Trsn8vLjX2_2o,186885
12
12
  ccxt/bit2c.py,sha256=miiTYRBnRqJ0A-vPEUkBq4AdXmiRl1d8vwrqLV34hvQ,37016
13
13
  ccxt/bitbank.py,sha256=6V4AeEw2_mqErXGGx24tXWIgORSL11IX0f4kYFJ7Q1A,41989
14
14
  ccxt/bitbay.py,sha256=xAIjzGRDVGwoy-Gygd99H0YN4wiaz_0lR0Z14oxaaxc,478
@@ -17,9 +17,9 @@ ccxt/bitcoincom.py,sha256=PyWIl4nC4jp5Uba2lI1At0N_hhNyWD0DoZC_MSyL_s4,502
17
17
  ccxt/bitfinex.py,sha256=6O33NthP73Q-zobTf1hp8zFxJsDyAMEiOCCJn_o1iEQ,72450
18
18
  ccxt/bitfinex2.py,sha256=smVuwDShHy4m4s4i4xGzx04r197GKPL8MA3lT2End4E,160612
19
19
  ccxt/bitflyer.py,sha256=rvykeLLkDYVMEwXs4rInQClYwdXIXmj_7mxDpGT216I,41565
20
- ccxt/bitget.py,sha256=REsaqP_fPqlrmTqRjZdUN1qHLE_zXCZFlFfQnYhYsiU,423110
20
+ ccxt/bitget.py,sha256=fZkDv8OCasG2Y2epnZNIPwLq7byklri6dwBiiOiF5qE,423109
21
21
  ccxt/bithumb.py,sha256=0oRYEp30LykNchRZwqbsiZlrzY4koY6EFWubVYs5hU8,45684
22
- ccxt/bitmart.py,sha256=fkDF-CmhJceHAvqzIQY6ho8W7qK89r7nJ2Y3MSBX1eU,204752
22
+ ccxt/bitmart.py,sha256=FEWE-T15bUylIo8nkOwEn4ealjNZ2jsTQrnB5VvBpys,204467
23
23
  ccxt/bitmex.py,sha256=koETQgb-yVZ3ZfP6qIHyTMLTDk8eXTHauhwhaP79ZBQ,126862
24
24
  ccxt/bitopro.py,sha256=kjGn1UOy6toGyEbpV_al50eGCjqI75GN4LXpGbmL4Tw,68743
25
25
  ccxt/bitpanda.py,sha256=aiwPkx9lKbVzt4ggoYdq_mIbMGtg5ZtGl2yRHO5xyz8,471
@@ -33,16 +33,16 @@ ccxt/blockchaincom.py,sha256=Snf5tclR2T_qQD_eS6cQbeONpBrub6irhRAK6Y00BgM,48974
33
33
  ccxt/blofin.py,sha256=LrKelmUtqUes41vHsKEVclYTyCClA88NHfh8nbrRA7g,99500
34
34
  ccxt/btcalpha.py,sha256=xAZ4wdqpq_hBD-auwAIJIeJr-OI-ulyb6qtADEIuIzw,36856
35
35
  ccxt/btcbox.py,sha256=1Vs2A4jOe5Wc4qgOblDBrIyRmp0m_aQZCk9-R7DvSqs,23588
36
- ccxt/btcmarkets.py,sha256=HeYVkXbYsgzNo2ijE0zcF_ykcpbQ2LzCaJkvg5EZPcI,51657
36
+ ccxt/btcmarkets.py,sha256=mSK14nf9EPwKtdd9vZAAQe4LCWWE9B8atZLANAOGnVs,51654
37
37
  ccxt/btcturk.py,sha256=Kh8DYFt6x7pMFXpof-xcCiJ7Fqg-P4-ZfCHdgRQ-bs0,36765
38
- ccxt/bybit.py,sha256=fmxdfLS9wmJIJ0tsYfsMzYoR2t0vjZMy7oPDn7z2IsQ,413195
38
+ ccxt/bybit.py,sha256=QOdG3Z17PYdUoXYG33UY0JvSZRhWJrNC2eihI8eMOr4,413194
39
39
  ccxt/cex.py,sha256=IUb295DSS6H3SsPbCjvBKPzzNpQYvBXaRqFF-T450wM,70086
40
- ccxt/coinbase.py,sha256=q4VMQD6iBOV6_t1_WzFZhcpiQfZSf2FeVlTc4la6zus,214912
40
+ ccxt/coinbase.py,sha256=UB-xUmXCyI6wlAUf3xPr3MKuyTKlgc8G9skiqVLUCP8,217233
41
41
  ccxt/coinbaseadvanced.py,sha256=d5g6nRx-NCcCwZDdtp8FsI2D-pRjSvnAP9ISSKY_nCQ,538
42
42
  ccxt/coinbaseexchange.py,sha256=pnS1O5ZkUIY3QQ8IotdWgvJDo0qB0NS6RJZPrPOvwd4,78908
43
43
  ccxt/coinbaseinternational.py,sha256=cGMA-DukMh64r0zd-Z5Ussyo7kYiItXV8YWnU5myAF4,87472
44
44
  ccxt/coincheck.py,sha256=dGpobFQvu2UfNLDuTXvFZzbXX8vw4AO1CGRmnOU1RbM,35784
45
- ccxt/coinex.py,sha256=sbrjhq6I9moFIb_YsojO5SOGtrT8VEp6C5eUv2EY654,257628
45
+ ccxt/coinex.py,sha256=t90s9hCU6J3whbpoe7Uylv_e4cXiZ-umNTg1iWLGFvU,258035
46
46
  ccxt/coinlist.py,sha256=NGb-0qi_w9cbv5455K_GEpp2wlmC6170zhgMq0Q62vc,103386
47
47
  ccxt/coinmate.py,sha256=J9oS9ktyC-Z4Yxe9vVwtRNFTUPtLSaBzeuQIbsg7u04,46112
48
48
  ccxt/coinmetro.py,sha256=QMbKRQQ3w6kvvMKZ71WCpFeoVDLn_iFL3O-3ihwErqs,80869
@@ -58,7 +58,7 @@ ccxt/exmo.py,sha256=lCeiS8jjzE4qwIATEjttQ7rMCNPvirh1TYreJVeNZYQ,114687
58
58
  ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
59
59
  ccxt/gate.py,sha256=UuKrePx7N3rpQaqNEGkcfHSmCyXwQandIFjeoOw6TRM,320303
60
60
  ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
61
- ccxt/gemini.py,sha256=zoHdbgHpYaDgES_BZ-_SO2coFKUxc5lDn_ZH4lZ6M_0,80838
61
+ ccxt/gemini.py,sha256=5eIia9wC4amH1e2kuVZh69mQ8y43TRZu4JizH_w8ogc,80838
62
62
  ccxt/hitbtc.py,sha256=rFfuwk_KY9OLy_GM4dVJmbMfLa0j_8Wfml5yJxS9UTM,153389
63
63
  ccxt/hitbtc3.py,sha256=qRAr4Zvaju9IQWRZUohdoN7xRnzIMPq8AyYb3gPv-Is,455
64
64
  ccxt/hollaex.py,sha256=e7irunlbzhM1BSvv9kyaccHdUF0cRjnJkIbMMQhe5PA,76141
@@ -69,7 +69,7 @@ ccxt/hyperliquid.py,sha256=535pxGdgEFjP03WtB3ck6Nz0PwD7HqsTOoW-6qwxAYM,101079
69
69
  ccxt/idex.py,sha256=7f5GA9z-Mui7YOmSxPRbHIWATSU8DVXUNYPlgw34iMw,73231
70
70
  ccxt/independentreserve.py,sha256=LPYeMLwcsUG9_91dpDtRVJZPOtCIe4uV7nv_T7plzss,32246
71
71
  ccxt/indodax.py,sha256=Oo3elggqB0J7YWaE0o6fXo9SpJuseTQSnoJ3jYt-Buc,52074
72
- ccxt/kraken.py,sha256=d9yCZBh4rR9U4cdpF72q4W_pwp728-S6wMeSEeNxkGQ,128206
72
+ ccxt/kraken.py,sha256=_jfLrNeo-IRUd7g01VCz4bKjSCCDe5XWLvcOv7v-HoA,128319
73
73
  ccxt/krakenfutures.py,sha256=1xUvIzuDUevPngvmaODrZZ4LDYoojY7pzM5GbeobJKI,117101
74
74
  ccxt/kucoin.py,sha256=DLUGLWdfTjxH9gna_jnlncz_wg38MhtYr_0Y0TF6-fA,218298
75
75
  ccxt/kucoinfutures.py,sha256=x9TacKIoBZ_WnA4nljaAH9TwMvTDkU_E-GtqbK5S8F4,124565
@@ -210,17 +210,17 @@ 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=Jhp36F83Easfiwj-HH3iloohMlJL2Uf2Gkm7-pjYgrI,15723
213
+ ccxt/async_support/__init__.py,sha256=Ok4msHDZgUL7x6zTQiyvSah_mYUbeS-AUkYT5TSpAR8,15723
214
214
  ccxt/async_support/ace.py,sha256=tsRgs_o4Iq7q8IkD83FUdC-2ztylhgO4cp2hww3rlqQ,42000
215
- ccxt/async_support/alpaca.py,sha256=3URVhASvHwKoX9mK4wCpfV5YOrlZWRcmpLDE3DEZStI,47552
215
+ ccxt/async_support/alpaca.py,sha256=3845DgojoA1p0pxrqnDIqHbbRcEwZhZIkE4aygD5ics,47538
216
216
  ccxt/async_support/ascendex.py,sha256=7tZ4C7FfzmuB_ADYjl6IkyQQ5JG0Vt1AD_B3fTeY6V0,152620
217
217
  ccxt/async_support/bequant.py,sha256=1hTwHovo1bW1XTIc8ZKjvJ-Xg6LfmpGdzT7TepykaVM,1188
218
218
  ccxt/async_support/bigone.py,sha256=z4KbPCAlByhfUDmywRespbTtPTm7yIxDhX-OeMkcQek,92890
219
- ccxt/async_support/binance.py,sha256=S7o3DIXGCXx0_cpnVDFrPYoEnSq1ImdEfJeaDsBDxZw,621486
219
+ ccxt/async_support/binance.py,sha256=dBRcoYqL2UcYNg_H4j6SdUgxUIEZdXMUhJX67afc2PI,621488
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=sUoW86dlg4O83vZPhoSfKszuUFW0j5XSSIQUVPZYcrk,187921
223
+ ccxt/async_support/bingx.py,sha256=iHZevpURgfC5WxSTcrdJAXkR4qRxYZfdhmeajRNtKrE,187921
224
224
  ccxt/async_support/bit2c.py,sha256=tQweN-rgvD9q-BHzWvgJArd7cO__TGa9AzNvGXe6MEc,37228
225
225
  ccxt/async_support/bitbank.py,sha256=xcG6QiyYZE1MmWHcd4x3slaW5XwR6dMeByEKXnEp2rA,42249
226
226
  ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
@@ -229,9 +229,9 @@ ccxt/async_support/bitcoincom.py,sha256=RiqwhK3RfxQ_PXTa860fphDCvwA8dalL-_rXlK85
229
229
  ccxt/async_support/bitfinex.py,sha256=K-Lm2aIrw1a_H9rrSK_M-a_aZCc-9vfaSpCiMCGiHZY,72890
230
230
  ccxt/async_support/bitfinex2.py,sha256=QQstleJSkjDRMHGSFZQIUHJ5fx55Bgdytk35gMWkeS0,161346
231
231
  ccxt/async_support/bitflyer.py,sha256=RWrRkrZJow4M5uwoqTCD0bcITItbC5WZ57Mcmv0_1nk,41873
232
- ccxt/async_support/bitget.py,sha256=BL5CI2eWKrH8OIBhEhDDfKZSMDP6eGYmowfDcf50F08,424734
232
+ ccxt/async_support/bitget.py,sha256=q8eCJSGEOYKCwe_4WWGvtYhsCfpL-bm5WZBZji0GYzI,424733
233
233
  ccxt/async_support/bithumb.py,sha256=0_SehUTG-pqL8uBHE_IhwJ5BjNTFfbxwF0A_IufTNuA,45914
234
- ccxt/async_support/bitmart.py,sha256=BvbusIa34c8Ik3IgyYXrkdMVrYFxtWCZoGxfPfvHDKU,205708
234
+ ccxt/async_support/bitmart.py,sha256=ttjLEDra7QR8zgD2PyOlm004Whvof2tRcwElT0cBhI0,205423
235
235
  ccxt/async_support/bitmex.py,sha256=JCRSgTWNwB97A1vwvEpajD8VQ4AE8Qs5ZU1yd8KaiYc,127440
236
236
  ccxt/async_support/bitopro.py,sha256=OWWNB_6Vpe10JG0P7dpmgerPEtmuxbx5_DLBFWnsL7w,69147
237
237
  ccxt/async_support/bitpanda.py,sha256=2k3URBWrpnh2xHa7JiYenI7_4MW5UeOPGzetlmRkR4U,485
@@ -245,16 +245,16 @@ ccxt/async_support/blockchaincom.py,sha256=P_edztJfehnxSbWAnEGGzUgp3YNQ3cgtSUFgX
245
245
  ccxt/async_support/blofin.py,sha256=lCzCaKe2caQj1XFUIZ8zXj5WBWxDGFjg_SNykxbnHYc,100084
246
246
  ccxt/async_support/btcalpha.py,sha256=2A0gUt0dlqov4-vuRAAwODW66XZcFtSaVmSl-Ki1lWk,37134
247
247
  ccxt/async_support/btcbox.py,sha256=ML57vDSZC7UJfl5MvNKytPtvyR_rOnIoBOZRhGPxWwE,23782
248
- ccxt/async_support/btcmarkets.py,sha256=SXPP-xi6YsCDj8Lhh6VqtZORH9-F7ED1mPqJHe907NY,52007
248
+ ccxt/async_support/btcmarkets.py,sha256=l_nhiwG3VEJw2SJc2z53B5tyPSMkrNSowu9TmfLIgp0,52004
249
249
  ccxt/async_support/btcturk.py,sha256=NQl8sLv_XpOoTJQLDxSzarh1B_jOQeUJGUrtZyvaK1k,36983
250
- ccxt/async_support/bybit.py,sha256=MAwkqBogsld92I0ZbgN4ePNEVNtF48rEHo-LhHFaKUA,414999
250
+ ccxt/async_support/bybit.py,sha256=0FOxbry0iP0nK24xlMKBpBAYgMWrAvp2TtIUowaJgyQ,414998
251
251
  ccxt/async_support/cex.py,sha256=8XcqkxF2fSzLnenfkyvXxHmnWgUvrifaBAI-HiJLIZY,70436
252
- ccxt/async_support/coinbase.py,sha256=alkVtkTqMaWkLG_MwkzN4sFQF5kmvN2l9tXEM0hIbjw,216048
252
+ ccxt/async_support/coinbase.py,sha256=jp1zmc063fyit9G_1yAGSnOQY3Q7XH6lKoOa3zj6iq4,218387
253
253
  ccxt/async_support/coinbaseadvanced.py,sha256=Kupwnuxiu_qTjwCNV2asacoDUNFQvcaHNAznUJPhdQs,552
254
254
  ccxt/async_support/coinbaseexchange.py,sha256=eDJIvxNNm-MvdFzCUlM0JQMwcSm1DBymXy4AaV2GKJc,79414
255
255
  ccxt/async_support/coinbaseinternational.py,sha256=pIybc9DfEeUVVnorHAkAitibuHuEatQZ2MciwIW6WLA,88026
256
256
  ccxt/async_support/coincheck.py,sha256=MaV9LQ4Oih1SNuugqVrULLr1nLM_6n_HA5d9YkQt8bs,35990
257
- ccxt/async_support/coinex.py,sha256=d1LAIij9K4wGDqL5TdysNCphvuJEaprUNe9ckmPWTZI,258886
257
+ ccxt/async_support/coinex.py,sha256=Ee0KbJVNkknMN8Vp2gV9lpB5Se2X6oDW9B1jReSxKXo,259293
258
258
  ccxt/async_support/coinlist.py,sha256=bPNe3Bwo5ovyuKNrpkCGcXKD20h1gUkJEv8Y6RKvvUo,103874
259
259
  ccxt/async_support/coinmate.py,sha256=nYBc_dXLwXDmGMOpBrpOLD9K7O3YTyhx9FerCRYEn3I,46378
260
260
  ccxt/async_support/coinmetro.py,sha256=RFOMp1sxrk3jsM_5M0sLou1q79y9kz32pWPkJOcNPTQ,81189
@@ -270,7 +270,7 @@ ccxt/async_support/exmo.py,sha256=alHFfXpuUmoUQeoIsVdblTEKL_cT1rplwGqVWVOsQuI,11
270
270
  ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,1250
271
271
  ccxt/async_support/gate.py,sha256=K6SsnwjPSxpBDvIjQc21SYNUI_PP7ECH3vpewp6YKQg,321981
272
272
  ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
273
- ccxt/async_support/gemini.py,sha256=xxNK_pKpsT8DeB1NGz-vS1BNn4bcjkLQ3yH2O2W4gXI,81351
273
+ ccxt/async_support/gemini.py,sha256=cJjRW_O2uIKhi6tsClWr9Td8AGet_sXM2Lkj-i3MjRA,81351
274
274
  ccxt/async_support/hitbtc.py,sha256=mu0IpmPkynGU8MaXLi9nZyDLP9L6Vjqb_D104q5Dj9E,154435
275
275
  ccxt/async_support/hitbtc3.py,sha256=dmSYoD2o4av_zzbZI8HNIoj8BWxA7QozsVpy8JaOXzU,469
276
276
  ccxt/async_support/hollaex.py,sha256=b7nJAvL0dCfPwhjOCfoAn1Qd9msFvEIfYp-7EQ4QIwQ,76575
@@ -281,7 +281,7 @@ ccxt/async_support/hyperliquid.py,sha256=xy4GMllF4APqWrHjWmI7hUQRJtsMY-7k_2moNVP
281
281
  ccxt/async_support/idex.py,sha256=f5CvLsX4ECEr-spmDP2a26Ge2AmbWMip1o0usOmbvAE,73707
282
282
  ccxt/async_support/independentreserve.py,sha256=i6gf1iPcwyBiL_65UoszpotGco-KgvTxcRkrq6AZsOY,32506
283
283
  ccxt/async_support/indodax.py,sha256=yNHitrcyGRAUKLlEmLl6nKWjcJTuPPFW6BpizQp71oo,52382
284
- ccxt/async_support/kraken.py,sha256=YGAkvpYs-qXcoDTCVKT00QM98xEoqUao1mUFRruMCEo,128844
284
+ ccxt/async_support/kraken.py,sha256=8KR2ozRDR0Mt5g93TnyJ7H1lrcSpnLrm6H3I5SzGdSg,128957
285
285
  ccxt/async_support/krakenfutures.py,sha256=G5lWWvUyyl64laoN-i08k3S8fyOGKfx-2Vbkn42D6tE,117589
286
286
  ccxt/async_support/kucoin.py,sha256=xcBYK19XTgiAWViYprAhJb8dHrgEKyOQcV2ODX2a5dw,219370
287
287
  ccxt/async_support/kucoinfutures.py,sha256=19pp3iLxyGxqNvFLZ3W_Ov6gqUAwQE5oTvp9DezKmG8,125203
@@ -317,7 +317,7 @@ ccxt/async_support/yobit.py,sha256=KQcu9nXJPDlAodZyxOXKIn6eTSLmlvUlgRFE6EBLfug,5
317
317
  ccxt/async_support/zaif.py,sha256=bKkknF4yjJtajvrEN-9M0qi-s8O9v6tVX8eBGLfQwiA,28270
318
318
  ccxt/async_support/zonda.py,sha256=qdX7J9m6mZfdkZDz8dKnqaCuQNn7rVzcYlCC10shmkg,81067
319
319
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
320
- ccxt/async_support/base/exchange.py,sha256=MWEgXpSaNrqCSOl0ENSdcRLmk1uiygJZdzgnD1CItic,109786
320
+ ccxt/async_support/base/exchange.py,sha256=qL5PGagZU2RzriT1kC6ks1KlDVEFf7e5CTdJ-PTtaA8,109872
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
323
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=5IEiT0elWI9a7Vr-KV0jgmlbpLJWBzIlrLaCkTKGaqY,5752
@@ -331,10 +331,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GhnGUt78pJ-AYL_Dq9produGjmB
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=YwVQZ2trwdIGMsKh_ubhEY1kfrt_EA5XHLYbBqhcGtc,280385
334
+ ccxt/base/exchange.py,sha256=1VGLCY6gWXUmbb8vV27QFp6aOBZFgy6qn7SqkdqJZFU,280871
335
335
  ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
336
336
  ccxt/base/types.py,sha256=RGGcbz86cVtrmU602zoFO5gSWrv_J7IHxQkPnzmNirs,9247
337
- ccxt/pro/__init__.py,sha256=WC6uweSfuISZU_jeMGYAVXCxQxXEjJon5_8m5twQyK4,7107
337
+ ccxt/pro/__init__.py,sha256=Tic3luFgg7OtPiZQOpDF2n7y-nRqA7UFLMmLbpUJR4Q,7107
338
338
  ccxt/pro/alpaca.py,sha256=81nFwDKyNlmUnhSyRyDLmLU6LGt3yqip1L_Ms2UyAmw,27215
339
339
  ccxt/pro/ascendex.py,sha256=e4WZqmTkIz9sVAWtKAaV6BvanrM2ylRdzjxrclZYmOE,35456
340
340
  ccxt/pro/bequant.py,sha256=5zbsP8BHQTUZ8ZNL6uaACxDbUClgkOV4SYfXT_LfQVg,1351
@@ -346,9 +346,9 @@ ccxt/pro/bingx.py,sha256=b_NRCufa4-kXeVY9D5xP5bFK7LsiYEWy_B-M66Z8BVQ,42133
346
346
  ccxt/pro/bitcoincom.py,sha256=zAX6hiz4hS6Un8dSGp88rpnvItxQHfNmsfF0IZ2xIVA,1181
347
347
  ccxt/pro/bitfinex.py,sha256=55-BovgmV3cHjys5GSRk36RiNQtGgW4NWPI1goRrDic,24890
348
348
  ccxt/pro/bitfinex2.py,sha256=FRbiqzPWZ-3BW8VXitDEC-KsAtkqMCXoYRuki6IrfUM,42908
349
- ccxt/pro/bitget.py,sha256=aNUzOSSfTt7VtusiUAZSz1mUbgXOX2vnpL6LLfeAyT4,72645
349
+ ccxt/pro/bitget.py,sha256=VS854ESz4uIxAfSJ3dqoaThESzrcyZhBWFFlmQjp8rE,73832
350
350
  ccxt/pro/bithumb.py,sha256=dqYKWebxFg4rsP7jg3oBnCUBcpZAoqAmZsozAU9pYds,16835
351
- ccxt/pro/bitmart.py,sha256=rnSq-PtjgwaRxi_cnBSWW49PrqEUJOVAIAaNQguNS8U,62430
351
+ ccxt/pro/bitmart.py,sha256=rr8ZuA8CDIdmc_CDkex_93cR3RAmpmr3oS0D5B0gVcE,62434
352
352
  ccxt/pro/bitmex.py,sha256=37rOYjBoNMAG_idlVu8wP1FQ5QpqF2z616xrsXiqPxk,73691
353
353
  ccxt/pro/bitopro.py,sha256=xOmXbO9BZj0dr-LbWqW7zU2aLvVVYcoOgXcit4PP0cc,18748
354
354
  ccxt/pro/bitpanda.py,sha256=ELrhfFKN9YJJdmm9wBf-vpk6WsXGWGf-SyJdqm-E_Lg,415
@@ -379,7 +379,7 @@ ccxt/pro/huobijp.py,sha256=aL6wEqAfnZp15mvfxbCsKI5OJqeCLN5IM5QO0OvJRSk,23270
379
379
  ccxt/pro/hyperliquid.py,sha256=S1mgOMz-7IwtFgC-xJL3YjKim10qVgj7XpvtmpOq4w8,20845
380
380
  ccxt/pro/idex.py,sha256=WAY58yMHFUPoqZUGFvzxqcKizvMuFXqdZ6BD0WgstQA,28361
381
381
  ccxt/pro/independentreserve.py,sha256=fDaHf7ZMbVrZKJK8FGnmW939rCtAEy1orjKifFliZ7U,11191
382
- ccxt/pro/kraken.py,sha256=BaDxfb6AytIo9Yco6uEaPcJsV4tF8clUecwZC7hLpvE,60921
382
+ ccxt/pro/kraken.py,sha256=zzDhQN3h80gZu_JNTOx1jsIKMH4oHpzbA-_Mx7cmM5s,60920
383
383
  ccxt/pro/krakenfutures.py,sha256=3qn_aDwiDtgSz31-J9dzLYNaVywhSksz39hhl0v9DoM,63989
384
384
  ccxt/pro/kucoin.py,sha256=XoH3kW-5pCf-8672tSP-ijpINm7T5sZcBRyHVIrKjiQ,50777
385
385
  ccxt/pro/kucoinfutures.py,sha256=NSd0cxEGoO_yytG0KRgZUOoCvjj5UjjXD8m_tlp3pIo,50319
@@ -388,7 +388,7 @@ ccxt/pro/luno.py,sha256=AzLK0_C0Hu25ukMNkMLP_sY3D4UG9FT38oawpo4jzTg,12336
388
388
  ccxt/pro/mexc.py,sha256=F33IK9npVfdTkp0i7OX9UqJYoVrFhsX_JXmm2vHvs2E,43265
389
389
  ccxt/pro/ndax.py,sha256=fQsoYtrTEsCZB3hl-pavQytwQAaiMAiTyaCiOy1sVTg,22715
390
390
  ccxt/pro/okcoin.py,sha256=M9x9p9umvIdP13uw_Wyx-TCg7QLMI7ov5DnukCXTBNE,30421
391
- ccxt/pro/okx.py,sha256=hizWBNnL37El9E4FmtzyV1Kaq-3XSRvtGTgG0lYJYFo,83821
391
+ ccxt/pro/okx.py,sha256=pVO5mODzj9ToJHhL0Tbxiy49bACbVv7xtBMQ98n-FQE,83827
392
392
  ccxt/pro/onetrading.py,sha256=lovj_9_bhEASahK2bREMHEjRNUjgl8G51ciuxFIsALM,54712
393
393
  ccxt/pro/p2b.py,sha256=Vdm2wc4RF3IDMKivSlNyWjrh9IR0c-Zm5lDjY4AIass,17889
394
394
  ccxt/pro/phemex.py,sha256=8lB5OJb6QNvcLkbDKB4eQOS6r0KjLrxTgRxQhO950Is,61086
@@ -506,7 +506,7 @@ ccxt/test/base/test_balance.py,sha256=W-IcVRiJNLtdKEWEEhmhWjtFRuHFtoywNiGQNtYSuc
506
506
  ccxt/test/base/test_borrow_interest.py,sha256=jwXqtDzCP0QMpe1q0dLMn5GYz29pMx3Kr3lFyVPjTtA,1808
507
507
  ccxt/test/base/test_borrow_rate.py,sha256=gbqEhrJkV-UiqgblCAQ4JhuUi95V22l5zTdvqsB17P4,1500
508
508
  ccxt/test/base/test_calculate_fee.py,sha256=t_m7zz6d65S7cmY1KSZh40M1OsURBc8YkXV9nPmB1iQ,1177
509
- ccxt/test/base/test_crypto.py,sha256=iS44kT_Qs5MhOqJihvH4OQsxNSloaaa7o4tS5Oezus4,7702
509
+ ccxt/test/base/test_crypto.py,sha256=-0GxDWMtY2aeF4o2HBZtpo2WLFZnN9hGJGj48FR3JTA,7708
510
510
  ccxt/test/base/test_currency.py,sha256=Ao8Q571J93aPMYqGIeqqsi0F2u5RcgQ-F2MBJ93kapM,4472
511
511
  ccxt/test/base/test_datetime.py,sha256=W7h0GPZbXhQ4fD-LRKCStY46JgylgmcuU4jevp7eIF8,5634
512
512
  ccxt/test/base/test_decimal_to_precision.py,sha256=zETS2O2OVBFpFmUkQGOGi7XobeuB6ofki3jC2maON54,20934
@@ -535,7 +535,7 @@ ccxt/test/base/test_ticker.py,sha256=cMTIMb1oySNORUCmqI5ZzMswlEyCF6gJMah3vfvo8wQ
535
535
  ccxt/test/base/test_trade.py,sha256=PMtmB8V38dpaP-eb8h488xYMlR6D69yCOhsA1RuWrUA,2336
536
536
  ccxt/test/base/test_trading_fee.py,sha256=2aDCNJtqBkTC_AieO0l1HYGq5hz5qkWlkWb9Nv_fcwk,1066
537
537
  ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
538
- ccxt-4.3.34.dist-info/METADATA,sha256=Ql-AifMJjHSq5UENKjDZ2OgnaGrUSJguBQ_q3PgQYM0,112807
539
- ccxt-4.3.34.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
540
- ccxt-4.3.34.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
541
- ccxt-4.3.34.dist-info/RECORD,,
538
+ ccxt-4.3.35.dist-info/METADATA,sha256=3zh4ksEI4RxmsDtqKu19LgTOJFGZenK_UwGFccDNFrU,112807
539
+ ccxt-4.3.35.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
540
+ ccxt-4.3.35.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
541
+ ccxt-4.3.35.dist-info/RECORD,,
File without changes