ccxt 4.3.8__py2.py3-none-any.whl → 4.3.10__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/coinmetro.py CHANGED
@@ -171,6 +171,7 @@ class coinmetro(Exchange, ImplicitAPI):
171
171
  'private': {
172
172
  'get': {
173
173
  'users/balances': 1,
174
+ 'users/wallets': 1,
174
175
  'users/wallets/history/{since}': 1.67,
175
176
  'exchange/orders/status/{orderID}': 1,
176
177
  'exchange/orders/active': 1,
@@ -910,49 +911,48 @@ class coinmetro(Exchange, ImplicitAPI):
910
911
  def fetch_balance(self, params={}) -> Balances:
911
912
  """
912
913
  query for balance and get the amount of funds available for trading or funds locked in orders
913
- :see: https://documenter.getpostman.com/view/3653795/SVfWN6KS#698ae067-43dd-4e19-a0ac-d9ba91381816
914
+ :see: https://documenter.getpostman.com/view/3653795/SVfWN6KS#741a1dcc-7307-40d0-acca-28d003d1506a
914
915
  :param dict [params]: extra parameters specific to the exchange API endpoint
915
916
  :returns dict: a `balance structure <https://docs.ccxt.com/#/?id=balance-structure>`
916
917
  """
917
918
  self.load_markets()
918
- response = self.privateGetUsersBalances(params)
919
- return self.parse_balance(response)
919
+ response = self.privateGetUsersWallets(params)
920
+ list = self.safe_list(response, 'list', [])
921
+ return self.parse_balance(list)
920
922
 
921
- def parse_balance(self, response) -> Balances:
923
+ def parse_balance(self, balances) -> Balances:
922
924
  #
923
- # {
924
- # "USDC": {
925
- # "USDC": 99,
926
- # "EUR": 91.16,
927
- # "BTC": 0.002334
928
- # },
929
- # "XCM": {
930
- # "XCM": 0,
931
- # "EUR": 0,
932
- # "BTC": 0
933
- # },
934
- # "TOTAL": {
935
- # "EUR": 91.16,
936
- # "BTC": 0.002334
925
+ # [
926
+ # {
927
+ # "xcmLocks": [],
928
+ # "xcmLockAmounts": [],
929
+ # "refList": [],
930
+ # "balanceHistory": [],
931
+ # "_id": "5fecd3c998e75c2e4d63f7c3",
932
+ # "currency": "BTC",
933
+ # "label": "BTC",
934
+ # "userId": "5fecd3c97fbfed1521db23bd",
935
+ # "__v": 0,
936
+ # "balance": 0.5,
937
+ # "createdAt": "2020-12-30T19:23:53.646Z",
938
+ # "disabled": False,
939
+ # "updatedAt": "2020-12-30T19:23:53.653Z",
940
+ # "reserved": 0,
941
+ # "id": "5fecd3c998e75c2e4d63f7c3"
937
942
  # },
938
- # "REF": {
939
- # "XCM": 0,
940
- # "EUR": 0,
941
- # "BTC": 0
942
- # }
943
- # }
943
+ # ...
944
+ # ]
944
945
  #
945
946
  result = {
946
- 'info': response,
947
+ 'info': balances,
947
948
  }
948
- balances = self.omit(response, ['TOTAL', 'REF'])
949
- currencyIds = list(balances.keys())
950
- for i in range(0, len(currencyIds)):
951
- currencyId = currencyIds[i]
949
+ for i in range(0, len(balances)):
950
+ balanceEntry = self.safe_dict(balances, i, {})
951
+ currencyId = self.safe_string(balanceEntry, 'currency')
952
952
  code = self.safe_currency_code(currencyId)
953
953
  account = self.account()
954
- currency = self.safe_value(balances, currencyId, {})
955
- account['total'] = self.safe_string(currency, currencyId)
954
+ account['total'] = self.safe_string(balanceEntry, 'balance')
955
+ account['used'] = self.safe_string(balanceEntry, 'reserved')
956
956
  result[code] = account
957
957
  return self.safe_balance(result)
958
958
 
ccxt/kucoinfutures.py CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  from ccxt.kucoin import kucoin
7
7
  from ccxt.abstract.kucoinfutures import ImplicitAPI
8
- from ccxt.base.types import Balances, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, Transaction, TransferEntry
8
+ from ccxt.base.types import Balances, Currency, Int, MarginModification, Market, Num, Order, OrderBook, OrderRequest, OrderSide, OrderType, Str, Strings, Ticker, Tickers, Trade, TradingFeeInterface, Transaction, TransferEntry
9
9
  from typing import List
10
10
  from ccxt.base.errors import AuthenticationError
11
11
  from ccxt.base.errors import PermissionDenied
@@ -94,13 +94,14 @@ class kucoinfutures(kucoin, ImplicitAPI):
94
94
  'fetchPositionHistory': False,
95
95
  'fetchPositionMode': False,
96
96
  'fetchPositions': True,
97
- 'fetchPositionsHistory': False,
97
+ 'fetchPositionsHistory': True,
98
98
  'fetchPremiumIndexOHLCV': False,
99
99
  'fetchStatus': True,
100
100
  'fetchTicker': True,
101
101
  'fetchTickers': True,
102
102
  'fetchTime': True,
103
103
  'fetchTrades': True,
104
+ 'fetchTradingFee': True,
104
105
  'fetchTransactionFee': False,
105
106
  'fetchWithdrawals': True,
106
107
  'setLeverage': False,
@@ -177,6 +178,8 @@ class kucoinfutures(kucoin, ImplicitAPI):
177
178
  'funding-history': 4.44,
178
179
  'sub/api-key': 1,
179
180
  'trade-statistics': 1,
181
+ 'trade-fees': 1,
182
+ 'history-positions': 1,
180
183
  },
181
184
  'post': {
182
185
  'withdrawals': 1,
@@ -1107,6 +1110,71 @@ class kucoinfutures(kucoin, ImplicitAPI):
1107
1110
  data = self.safe_list(response, 'data')
1108
1111
  return self.parse_positions(data, symbols)
1109
1112
 
1113
+ def fetch_positions_history(self, symbols: Strings = None, since: Int = None, limit: Int = None, params={}):
1114
+ """
1115
+ fetches historical positions
1116
+ :see: https://www.kucoin.com/docs/rest/futures-trading/positions/get-positions-history
1117
+ :param str[] [symbols]: list of unified market symbols
1118
+ :param dict [params]: extra parameters specific to the exchange API endpoint
1119
+ :param int [params.until]: closing end time
1120
+ :param int [params.pageId]: page id
1121
+ :returns dict[]: a list of `position structure <https://docs.ccxt.com/#/?id=position-structure>`
1122
+ """
1123
+ self.load_markets()
1124
+ if limit is None:
1125
+ limit = 200
1126
+ request = {
1127
+ 'limit': limit,
1128
+ }
1129
+ if since is not None:
1130
+ request['from'] = since
1131
+ until = self.safe_integer(params, 'until')
1132
+ if until is not None:
1133
+ params = self.omit(params, 'until')
1134
+ request['to'] = until
1135
+ response = self.futuresPrivateGetHistoryPositions(self.extend(request, params))
1136
+ #
1137
+ # {
1138
+ # "success": True,
1139
+ # "code": "200",
1140
+ # "msg": "success",
1141
+ # "retry": False,
1142
+ # "data": {
1143
+ # "currentPage": 1,
1144
+ # "pageSize": 10,
1145
+ # "totalNum": 25,
1146
+ # "totalPage": 3,
1147
+ # "items": [
1148
+ # {
1149
+ # "closeId": "300000000000000030",
1150
+ # "positionId": "300000000000000009",
1151
+ # "uid": 99996908309485,
1152
+ # "userId": "6527d4fc8c7f3d0001f40f5f",
1153
+ # "symbol": "XBTUSDM",
1154
+ # "settleCurrency": "XBT",
1155
+ # "leverage": "0.0",
1156
+ # "type": "LIQUID_LONG",
1157
+ # "side": null,
1158
+ # "closeSize": null,
1159
+ # "pnl": "-1.0000003793999999",
1160
+ # "realisedGrossCost": "0.9993849748999999",
1161
+ # "withdrawPnl": "0.0",
1162
+ # "roe": null,
1163
+ # "tradeFee": "0.0006154045",
1164
+ # "fundingFee": "0.0",
1165
+ # "openTime": 1713785751181,
1166
+ # "closeTime": 1713785752784,
1167
+ # "openPrice": null,
1168
+ # "closePrice": null
1169
+ # }
1170
+ # ]
1171
+ # }
1172
+ # }
1173
+ #
1174
+ data = self.safe_dict(response, 'data')
1175
+ items = self.safe_list(data, 'items', [])
1176
+ return self.parse_positions(items, symbols)
1177
+
1110
1178
  def parse_position(self, position, market: Market = None):
1111
1179
  #
1112
1180
  # {
@@ -1153,16 +1221,46 @@ class kucoinfutures(kucoin, ImplicitAPI):
1153
1221
  # }
1154
1222
  # ]
1155
1223
  # }
1224
+ # position history
1225
+ # {
1226
+ # "closeId": "300000000000000030",
1227
+ # "positionId": "300000000000000009",
1228
+ # "uid": 99996908309485,
1229
+ # "userId": "6527d4fc8c7f3d0001f40f5f",
1230
+ # "symbol": "XBTUSDM",
1231
+ # "settleCurrency": "XBT",
1232
+ # "leverage": "0.0",
1233
+ # "type": "LIQUID_LONG",
1234
+ # "side": null,
1235
+ # "closeSize": null,
1236
+ # "pnl": "-1.0000003793999999",
1237
+ # "realisedGrossCost": "0.9993849748999999",
1238
+ # "withdrawPnl": "0.0",
1239
+ # "roe": null,
1240
+ # "tradeFee": "0.0006154045",
1241
+ # "fundingFee": "0.0",
1242
+ # "openTime": 1713785751181,
1243
+ # "closeTime": 1713785752784,
1244
+ # "openPrice": null,
1245
+ # "closePrice": null
1246
+ # }
1156
1247
  #
1157
1248
  symbol = self.safe_string(position, 'symbol')
1158
1249
  market = self.safe_market(symbol, market)
1159
1250
  timestamp = self.safe_integer(position, 'currentTimestamp')
1160
1251
  size = self.safe_string(position, 'currentQty')
1161
1252
  side = None
1162
- if Precise.string_gt(size, '0'):
1163
- side = 'long'
1164
- elif Precise.string_lt(size, '0'):
1165
- side = 'short'
1253
+ type = self.safe_string_lower(position, 'type')
1254
+ if size is not None:
1255
+ if Precise.string_gt(size, '0'):
1256
+ side = 'long'
1257
+ elif Precise.string_lt(size, '0'):
1258
+ side = 'short'
1259
+ elif type is not None:
1260
+ if type.find('long') > -1:
1261
+ side = 'long'
1262
+ else:
1263
+ side = 'short'
1166
1264
  notional = Precise.string_abs(self.safe_string(position, 'posCost'))
1167
1265
  initialMargin = self.safe_string(position, 'posInit')
1168
1266
  initialMarginPercentage = Precise.string_div(initialMargin, notional)
@@ -1170,25 +1268,27 @@ class kucoinfutures(kucoin, ImplicitAPI):
1170
1268
  unrealisedPnl = self.safe_string(position, 'unrealisedPnl')
1171
1269
  crossMode = self.safe_value(position, 'crossMode')
1172
1270
  # currently crossMode is always set to False and only isolated positions are supported
1173
- marginMode = 'cross' if crossMode else 'isolated'
1271
+ marginMode = None
1272
+ if crossMode is not None:
1273
+ marginMode = 'cross' if crossMode else 'isolated'
1174
1274
  return self.safe_position({
1175
1275
  'info': position,
1176
- 'id': self.safe_string(position, 'id'),
1276
+ 'id': self.safe_string_2(position, 'id', 'positionId'),
1177
1277
  'symbol': self.safe_string(market, 'symbol'),
1178
1278
  'timestamp': timestamp,
1179
1279
  'datetime': self.iso8601(timestamp),
1180
- 'lastUpdateTimestamp': None,
1280
+ 'lastUpdateTimestamp': self.safe_integer(position, 'closeTime'),
1181
1281
  'initialMargin': self.parse_number(initialMargin),
1182
1282
  'initialMarginPercentage': self.parse_number(initialMarginPercentage),
1183
1283
  'maintenanceMargin': self.safe_number(position, 'posMaint'),
1184
1284
  'maintenanceMarginPercentage': self.safe_number(position, 'maintMarginReq'),
1185
- 'entryPrice': self.safe_number(position, 'avgEntryPrice'),
1285
+ 'entryPrice': self.safe_number_2(position, 'avgEntryPrice', 'openPrice'),
1186
1286
  'notional': self.parse_number(notional),
1187
- 'leverage': self.safe_number(position, 'realLeverage'),
1287
+ 'leverage': self.safe_number_2(position, 'realLeverage', 'leverage'),
1188
1288
  'unrealizedPnl': self.parse_number(unrealisedPnl),
1189
1289
  'contracts': self.parse_number(Precise.string_abs(size)),
1190
1290
  'contractSize': self.safe_value(market, 'contractSize'),
1191
- 'realizedPnl': self.safe_number(position, 'realisedPnl'),
1291
+ 'realizedPnl': self.safe_number_2(position, 'realisedPnl', 'pnl'),
1192
1292
  'marginRatio': None,
1193
1293
  'liquidationPrice': self.safe_number(position, 'liquidationPrice'),
1194
1294
  'markPrice': self.safe_number(position, 'markPrice'),
@@ -2560,3 +2660,39 @@ class kucoinfutures(kucoin, ImplicitAPI):
2560
2660
  else:
2561
2661
  response = self.futuresPrivatePostOrders(self.extend(request, params))
2562
2662
  return self.parse_order(response, market)
2663
+
2664
+ def fetch_trading_fee(self, symbol: str, params={}) -> TradingFeeInterface:
2665
+ """
2666
+ fetch the trading fees for a market
2667
+ :see: https://www.kucoin.com/docs/rest/funding/trade-fee/trading-pair-actual-fee-futures
2668
+ :param str symbol: unified market symbol
2669
+ :param dict [params]: extra parameters specific to the exchange API endpoint
2670
+ :returns dict: a `fee structure <https://docs.ccxt.com/#/?id=fee-structure>`
2671
+ """
2672
+ self.load_markets()
2673
+ market = self.market(symbol)
2674
+ request = {
2675
+ 'symbols': market['id'],
2676
+ }
2677
+ response = self.privateGetTradeFees(self.extend(request, params))
2678
+ #
2679
+ # {
2680
+ # "code": "200000",
2681
+ # "data": {
2682
+ # "symbol": "XBTUSDTM",
2683
+ # "takerFeeRate": "0.0006",
2684
+ # "makerFeeRate": "0.0002"
2685
+ # }
2686
+ # }
2687
+ #
2688
+ data = self.safe_list(response, 'data', [])
2689
+ first = self.safe_dict(data, 0)
2690
+ marketId = self.safe_string(first, 'symbol')
2691
+ return {
2692
+ 'info': response,
2693
+ 'symbol': self.safe_symbol(marketId, market),
2694
+ 'maker': self.safe_number(first, 'makerFeeRate'),
2695
+ 'taker': self.safe_number(first, 'takerFeeRate'),
2696
+ 'percentage': True,
2697
+ 'tierBased': True,
2698
+ }
ccxt/okx.py CHANGED
@@ -2547,6 +2547,8 @@ class okx(Exchange, ImplicitAPI):
2547
2547
  takeProfitDefined = (takeProfit is not None)
2548
2548
  trailingPercent = self.safe_string_2(params, 'trailingPercent', 'callbackRatio')
2549
2549
  isTrailingPercentOrder = trailingPercent is not None
2550
+ trigger = (triggerPrice is not None) or (type == 'trigger')
2551
+ isReduceOnly = self.safe_value(params, 'reduceOnly', False)
2550
2552
  defaultMarginMode = self.safe_string_2(self.options, 'defaultMarginMode', 'marginMode', 'cross')
2551
2553
  marginMode = self.safe_string_2(params, 'marginMode', 'tdMode') # cross or isolated, tdMode not ommited so be extended into the request
2552
2554
  margin = False
@@ -2568,6 +2570,20 @@ class okx(Exchange, ImplicitAPI):
2568
2570
  positionSide, params = self.handle_option_and_params(params, 'createOrder', 'positionSide')
2569
2571
  if positionSide is not None:
2570
2572
  request['posSide'] = positionSide
2573
+ else:
2574
+ hedged = None
2575
+ hedged, params = self.handle_option_and_params(params, 'createOrder', 'hedged')
2576
+ if hedged:
2577
+ isBuy = (side == 'buy')
2578
+ isProtective = (takeProfitPrice is not None) or (stopLossPrice is not None) or isReduceOnly
2579
+ if isProtective:
2580
+ # in case of protective orders, the posSide should be opposite of position side
2581
+ # reduceOnly is emulated and not natively supported by the exchange
2582
+ request['posSide'] = 'short' if isBuy else 'long'
2583
+ if isReduceOnly:
2584
+ params = self.omit(params, 'reduceOnly')
2585
+ else:
2586
+ request['posSide'] = 'long' if isBuy else 'short'
2571
2587
  request['tdMode'] = marginMode
2572
2588
  isMarketOrder = type == 'market'
2573
2589
  postOnly = False
@@ -2575,7 +2591,6 @@ class okx(Exchange, ImplicitAPI):
2575
2591
  params = self.omit(params, ['currency', 'ccy', 'marginMode', 'timeInForce', 'stopPrice', 'triggerPrice', 'clientOrderId', 'stopLossPrice', 'takeProfitPrice', 'slOrdPx', 'tpOrdPx', 'margin', 'stopLoss', 'takeProfit', 'trailingPercent'])
2576
2592
  ioc = (timeInForce == 'IOC') or (type == 'ioc')
2577
2593
  fok = (timeInForce == 'FOK') or (type == 'fok')
2578
- trigger = (triggerPrice is not None) or (type == 'trigger')
2579
2594
  conditional = (stopLossPrice is not None) or (takeProfitPrice is not None) or (type == 'conditional')
2580
2595
  marketIOC = (isMarketOrder and ioc) or (type == 'optimal_limit_ioc')
2581
2596
  defaultTgtCcy = self.safe_string(self.options, 'tgtCcy', 'base_ccy')
@@ -2734,6 +2749,7 @@ class okx(Exchange, ImplicitAPI):
2734
2749
  :param str [params.positionSide]: if position mode is one-way: set to 'net', if position mode is hedge-mode: set to 'long' or 'short'
2735
2750
  :param str [params.trailingPercent]: the percent to trail away from the current market price
2736
2751
  :param str [params.tpOrdKind]: 'condition' or 'limit', the default is 'condition'
2752
+ :param str [params.hedged]: True/false, to automatically set exchange-specific params needed when trading in hedge mode
2737
2753
  :returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
2738
2754
  """
2739
2755
  self.load_markets()
@@ -5851,6 +5867,36 @@ class okx(Exchange, ImplicitAPI):
5851
5867
  #
5852
5868
  return response
5853
5869
 
5870
+ def fetch_position_mode(self, symbol: Str = None, params={}):
5871
+ """
5872
+ :see: https://www.okx.com/docs-v5/en/#trading-account-rest-api-get-account-configuration
5873
+ fetchs the position mode, hedged or one way, hedged for binance is set identically for all linear markets or all inverse markets
5874
+ :param str symbol: unified symbol of the market to fetch the order book for
5875
+ :param dict [params]: extra parameters specific to the exchange API endpoint
5876
+ :param str [param.accountId]: if you have multiple accounts, you must specify the account id to fetch the position mode
5877
+ :returns dict: an object detailing whether the market is in hedged or one-way mode
5878
+ """
5879
+ accounts = self.fetch_accounts()
5880
+ length = len(accounts)
5881
+ selectedAccount = None
5882
+ if length > 1:
5883
+ accountId = self.safe_string(params, 'accountId')
5884
+ if accountId is None:
5885
+ accountIds = self.get_list_from_object_values(accounts, 'id')
5886
+ raise ExchangeError(self.id + ' fetchPositionMode() can not detect position mode, because you have multiple accounts. Set params["accountId"] to desired id from: ' + ', '.join(accountIds))
5887
+ else:
5888
+ accountsById = self.index_by(accounts, 'id')
5889
+ selectedAccount = self.safe_dict(accountsById, accountId)
5890
+ else:
5891
+ selectedAccount = accounts[0]
5892
+ mainAccount = selectedAccount['info']
5893
+ posMode = self.safe_string(mainAccount, 'posMode') # long_short_mode, net_mode
5894
+ isHedged = posMode == 'long_short_mode'
5895
+ return {
5896
+ 'info': mainAccount,
5897
+ 'hedged': isHedged,
5898
+ }
5899
+
5854
5900
  def set_position_mode(self, hedged: bool, symbol: Str = None, params={}):
5855
5901
  """
5856
5902
  set hedged to True or False for a market
ccxt/pro/__init__.py CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # ----------------------------------------------------------------------------
6
6
 
7
- __version__ = '4.3.8'
7
+ __version__ = '4.3.10'
8
8
 
9
9
  # ----------------------------------------------------------------------------
10
10
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: ccxt
3
- Version: 4.3.8
3
+ Version: 4.3.10
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
@@ -262,13 +262,13 @@ console.log(version, Object.keys(exchanges));
262
262
 
263
263
  All-in-one browser bundle (dependencies included), served from a CDN of your choice:
264
264
 
265
- * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.8/dist/ccxt.browser.js
266
- * unpkg: https://unpkg.com/ccxt@4.3.8/dist/ccxt.browser.js
265
+ * jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.3.10/dist/ccxt.browser.js
266
+ * unpkg: https://unpkg.com/ccxt@4.3.10/dist/ccxt.browser.js
267
267
 
268
268
  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.
269
269
 
270
270
  ```HTML
271
- <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.8/dist/ccxt.browser.js"></script>
271
+ <script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.3.10/dist/ccxt.browser.js"></script>
272
272
  ```
273
273
 
274
274
  Creates a global `ccxt` object:
@@ -1,4 +1,4 @@
1
- ccxt/__init__.py,sha256=l_tRqR9xi1JXkm8GzE-Dii9BEAhXn65qC9d3BALIh5o,15655
1
+ ccxt/__init__.py,sha256=CbwKGsaTmQ3XJYWK6AH2Wv-bgPb-gfVqM9fBNVuQTnw,15656
2
2
  ccxt/ace.py,sha256=j7Aq0hnsMTcUCIrWCm-ZZMkptWzAY23D8zi3jZWjq3c,41650
3
3
  ccxt/alpaca.py,sha256=h9GWMKpoPOXTcYESHQKM3MWGrrqEgFvs8sLkQx0YSLs,47182
4
4
  ccxt/ascendex.py,sha256=kxKDSqysYC_VHWsRHgNqEwGbQmKw8WIH_Cp2z6vouyg,151398
@@ -8,7 +8,7 @@ ccxt/binance.py,sha256=1IuamjDC4olbwojJoa-1p7s8ZaNPxdRD64_yJgBZka0,611571
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=fbkFsAM4cyYhIg-D5bmLBySK0N11pgXU7ctGDQVmOPU,184198
11
+ ccxt/bingx.py,sha256=DkvoG0v0irmgH-x0_sYUTJRL6ZZ_nyt78ipUC8VK1Zw,184612
12
12
  ccxt/bit2c.py,sha256=zDMcQVszvO39Lo4Km_aU16AN0MoVz7WhJrLnTua5Pm0,36901
13
13
  ccxt/bitbank.py,sha256=XC2n0jpXEV7L7JoaIgjroAd__FQzucDRZnNJPfmwHWg,41839
14
14
  ccxt/bitbay.py,sha256=xAIjzGRDVGwoy-Gygd99H0YN4wiaz_0lR0Z14oxaaxc,478
@@ -17,7 +17,7 @@ ccxt/bitcoincom.py,sha256=PyWIl4nC4jp5Uba2lI1At0N_hhNyWD0DoZC_MSyL_s4,502
17
17
  ccxt/bitfinex.py,sha256=xSmo7t-2TfigOBugw7xXpjUcI1hmgCwXNA7FkLy5KiQ,71533
18
18
  ccxt/bitfinex2.py,sha256=nqT65ZaSnJt6-Rv983FslGHpw4l7Z6XY1DIIhI7NPwo,158134
19
19
  ccxt/bitflyer.py,sha256=VYJ65ZGm_gYXSDQxvLqZaTwgQQCaxclpn2xaMn9m0HM,41391
20
- ccxt/bitget.py,sha256=ialRv3fxuXbjf0JmJ_uG6eDkc2IvwS8qX3QbYJCqsBo,422163
20
+ ccxt/bitget.py,sha256=dlaT0QNNk181fNbd8Ykj6pZ_IGbPBICmmu0fWF0L1So,422166
21
21
  ccxt/bithumb.py,sha256=pBq910z_-PWLxtxLCwbP91UZuFwpCfL3ziuhhZa7OWg,45528
22
22
  ccxt/bitmart.py,sha256=QeL2trt3hgvySGL4cI6YP40z5OvLZ4RqzFoUK-3E11w,199108
23
23
  ccxt/bitmex.py,sha256=CPC5c6ibCFTWF9JbgLc_sdgQ03mvdtPR-093E_aFZU4,126416
@@ -41,10 +41,10 @@ ccxt/coinbase.py,sha256=sw1ZNrDkujIerdB3fF9N-BgAmsIEmIwOHbABNpMrwAw,206918
41
41
  ccxt/coinbaseinternational.py,sha256=wr00A8TLih3_Ipur1NhhC3_tCtNaV3SOQ72eOGKE9hQ,87223
42
42
  ccxt/coinbasepro.py,sha256=MHlfA0VS0PrYyTjcwcit7I04nD-P6zgICkYzAI611Rc,78665
43
43
  ccxt/coincheck.py,sha256=GYkK5BTSFsJOuR5fSCysUqNK5b2FjEjz7dIBHXmc1Xs,35658
44
- ccxt/coinex.py,sha256=KPxW3BgMtLekkIZ-sIK06NXDEWWGAX2WhLLflq7e_YQ,246642
44
+ ccxt/coinex.py,sha256=zb1XIP05gAw5FM-zpNxW_JIYKWzPRW-CshPbVhbGyik,259410
45
45
  ccxt/coinlist.py,sha256=LQ1qHxVMS-5dtYtXVzZBtAJjqY1VdmMCEOSph68HdUk,103195
46
46
  ccxt/coinmate.py,sha256=bFSSHuOSL2OQdMZXa_5sNkXoM0FIxWgiCd0tgJjIo4M,45940
47
- ccxt/coinmetro.py,sha256=vmYo2m-s58gCaol0xvOtnANQsG8_vPSYUh0Tf36QBLw,80409
47
+ ccxt/coinmetro.py,sha256=3vnMIGwTQ3y4RNx_O8H_b6FiaDtuznvRc71foywZmpg,80679
48
48
  ccxt/coinone.py,sha256=q0Wxrp9RWjR_zz38DnR-l60MkROsUKxcRYnJcIK9EwE,46890
49
49
  ccxt/coinsph.py,sha256=FCtZiitRluc6j8v97o1cwW4R7CT1BsX2AMVV5XU9z-U,90626
50
50
  ccxt/coinspot.py,sha256=JLL9adBf137shW_vLr3LfGS5zxN6oTnEjzJkVaCkDbs,23608
@@ -72,7 +72,7 @@ ccxt/indodax.py,sha256=ygJjHq9C7hH8I7-8GxDXuf_EvMkbHX7N3MzkpTZ74Fo,51929
72
72
  ccxt/kraken.py,sha256=vJtB4W_LKEByJu9WlcvQimRpkDZOI1LcjZMe2kHd7DI,125341
73
73
  ccxt/krakenfutures.py,sha256=nSPNWWiwahyzqKnuR9NqCr6qxcWaah6RBvIqNDKDdoo,116757
74
74
  ccxt/kucoin.py,sha256=_9ObU8mmnnoa-urnT4TC26Ku_e6o3k42nX1umerHGZA,217713
75
- ccxt/kucoinfutures.py,sha256=1nM2o-Y-ei2NJF4GUQDtB6ZVzrL1ayT-J5uft14sGLo,118623
75
+ ccxt/kucoinfutures.py,sha256=w6mHpDgdNrLkMMtataXGJV75B1x8AfOp15JaU0yElgw,124320
76
76
  ccxt/kuna.py,sha256=Io7T-gg43lTJI0ZoVp6ZQ8MOVPP21raUvDbCKgonuiE,95985
77
77
  ccxt/latoken.py,sha256=wzrKCGTfp9qN6pfuzHqi8bg9q6MifGqUt9zLMaIlgA0,79051
78
78
  ccxt/lbank.py,sha256=lx8kBrKsLJlnhphUzMcQe-JOmZd6N_PeIxQFrxL9M1k,115169
@@ -84,7 +84,7 @@ ccxt/ndax.py,sha256=FQOxlMyj8m9wND2i5qiTxrog4eFASzCxhGRw1Nxu4eE,108562
84
84
  ccxt/novadax.py,sha256=h9U_ckSCN4ZDgvXrrb7MmcOTioqG_3DsmR-2Gjpx6yw,64299
85
85
  ccxt/oceanex.py,sha256=YH3tUzegvfG0fUCjtmtb3USOQtlL1tlqQ40B_i-xx7w,37860
86
86
  ccxt/okcoin.py,sha256=oJDR1yRlV_3HlgI6Uii6zr5cKDg9IaUSrhdlJZAXIMc,151110
87
- ccxt/okx.py,sha256=9a11R-S3jvumPsepjZeX3NcMN702OxAzF4IYtdif5BM,370866
87
+ ccxt/okx.py,sha256=EUEas5pFH91BPiNSsMQA1uXhAtn67Ak6JQE-Uf0UVpA,373663
88
88
  ccxt/onetrading.py,sha256=T68x4qfncbcnXU-YdMTVEGwnr3zKvcbbfdQZa8Zourc,88107
89
89
  ccxt/p2b.py,sha256=FYxL36KwtaLIIQ793frJEtqtHyzm39hNK0mJEzAAH0U,54213
90
90
  ccxt/paymium.py,sha256=2mBwmyT93k-dXBEKEix48G8PsA2IEN_5yScEM985Z10,24203
@@ -113,7 +113,7 @@ ccxt/abstract/binance.py,sha256=dwbtZqKhYz7kAYV0GhLzg4YXAWE3env2F1Rg4Xjmekg,9201
113
113
  ccxt/abstract/binancecoinm.py,sha256=dwbtZqKhYz7kAYV0GhLzg4YXAWE3env2F1Rg4Xjmekg,92016
114
114
  ccxt/abstract/binanceus.py,sha256=kz7rWWAzoFruY1Oj87NL80vWKnrukXJC-F6duaaej1c,98736
115
115
  ccxt/abstract/binanceusdm.py,sha256=dwbtZqKhYz7kAYV0GhLzg4YXAWE3env2F1Rg4Xjmekg,92016
116
- ccxt/abstract/bingx.py,sha256=RIoI8VLQhpISGWt10ZZDc7A4qnQGSK2nuW50r5WQLhY,16041
116
+ ccxt/abstract/bingx.py,sha256=ar7VFcqcjPNWwpjLMOpBqwb8cu7mUzeuUeBEvN6zgUQ,16032
117
117
  ccxt/abstract/bit2c.py,sha256=np6i756kSB5dO3Nj6POLKxkWkpYcsGg-4LS8BwPrizI,2830
118
118
  ccxt/abstract/bitbank.py,sha256=hrHsD7Uvtyy2o2lzCHau3-eNq16pnZ3-YDQ6Tq_sxYU,2735
119
119
  ccxt/abstract/bitbay.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
@@ -149,7 +149,7 @@ ccxt/abstract/coincheck.py,sha256=3IIVmryXmzxXqi6IleUmfDZIUMOn_L_4G9Iw8BuEEGo,34
149
149
  ccxt/abstract/coinex.py,sha256=GMvaJaiMkjW0YnG5S85PxSo-8glEjv3w0e2sg6ScjwY,34678
150
150
  ccxt/abstract/coinlist.py,sha256=t4Xc9xyWNHgHAz7nyplj8PmgrX4knA3cnk2uEJCvkQk,6538
151
151
  ccxt/abstract/coinmate.py,sha256=LYCJZIWe3sidZUozM7jBTB-AiN3cMElFhYqO9d1QvfI,6842
152
- ccxt/abstract/coinmetro.py,sha256=YxqjHTKdpP85hjOPdotRzAjsbFCy6JjVpqS3mpCmmjE,3864
152
+ ccxt/abstract/coinmetro.py,sha256=W2eAbFInYZMm1BgfZMRuCX7i201hT4q6QCtie30-_AQ,3975
153
153
  ccxt/abstract/coinone.py,sha256=X2gKABhQbzyFUs8MLo-VGyhG4CxgRSVa6qJsiJqubk0,8291
154
154
  ccxt/abstract/coinsph.py,sha256=b9r6_whKjx26f3ld_JtsFbGmF9awGLDViJV8SgXlE8Q,8007
155
155
  ccxt/abstract/coinspot.py,sha256=DVsqMQGmEZYESzYvaGBmctP3W229yF1__Y5KzGiI5RA,2707
@@ -176,7 +176,7 @@ ccxt/abstract/indodax.py,sha256=E16v8W6Ac9kmV9hFEqf_kwV6VQmK74lc1LEUEkuDpYg,2488
176
176
  ccxt/abstract/kraken.py,sha256=Ixlz9Fwm1mn-B9ddUMfxOQsRzTZHfQBJKYXSQd8mCyk,5877
177
177
  ccxt/abstract/krakenfutures.py,sha256=SiQ5XgX8DXkJgaF6AaX6Gzyb8Ef8mV6j3LhZj0Q7qdo,3537
178
178
  ccxt/abstract/kucoin.py,sha256=9A8YSxRjuBoBfWRZKwYsdP10GNptdorbnY8R1ae7Lvs,25491
179
- ccxt/abstract/kucoinfutures.py,sha256=foZmEHYHgHn8vnPIzfCB30PnGwfSivg6CObUfHfYd_g,27937
179
+ ccxt/abstract/kucoinfutures.py,sha256=W6BLMw26kIxIPQJh77lrSHjvsf2wXCshvBCzxYGEpjo,28204
180
180
  ccxt/abstract/kuna.py,sha256=IsaLq8A4DUOlQ8Esyk0WqBU6hHm5Q4sIqhgnMIvDGX0,24579
181
181
  ccxt/abstract/latoken.py,sha256=1GqE9WxrubgZILnYvg7W_dGyui-FKeIv0bU4z1dQj1k,7168
182
182
  ccxt/abstract/lbank.py,sha256=pdut_cIcwcUhN_ZCyWJxixBc4dgeQqvENYqFCrUYrvA,8675
@@ -207,7 +207,7 @@ ccxt/abstract/woo.py,sha256=yH0aXeyohXdyS3jZrztapwRmzNWk7JGpbrrf7pX_LKU,10368
207
207
  ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
208
208
  ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
209
209
  ccxt/abstract/zonda.py,sha256=aSfewvRojzmuymX6QbOnDR8v9VFqWTULMHX9Y7kKD1M,5820
210
- ccxt/async_support/__init__.py,sha256=3Rkznjx-YbTYEtnz0IQCaMJWTxfDqsb78gp8ol63Hhw,15408
210
+ ccxt/async_support/__init__.py,sha256=y8IPLj0Is3EGIpIuyJ5ZIqOnVkX7kP50svjWYD2Fs88,15409
211
211
  ccxt/async_support/ace.py,sha256=FNZKajNtvFhDEmBYzgv46pGMwvHbPQcqhsWRpAk9iwU,41874
212
212
  ccxt/async_support/alpaca.py,sha256=A1g6mT4lc8Ab5f5Hi7U_10XltruXHlE8268s45dDd6I,47394
213
213
  ccxt/async_support/ascendex.py,sha256=GJJxZnAu_OSTv3l15DbAaIsIz5QdyWAgD0-yfsTjAf4,152186
@@ -217,7 +217,7 @@ ccxt/async_support/binance.py,sha256=wDnO4pY1Coo_sX3mRffuD_w5t4HS2YTDVKo7HdXOmcQ
217
217
  ccxt/async_support/binancecoinm.py,sha256=IY3RLZptQA2nmZaUYRGfTa5ZY4VMWBpFYfwHc8zTHw0,1683
218
218
  ccxt/async_support/binanceus.py,sha256=c-K3Tk7LaRJjmYdCx8vBOqsx01uXrtvt0PC2ekBiD0g,9177
219
219
  ccxt/async_support/binanceusdm.py,sha256=-1r4A4tmV2pCiLGO80hzq7MIIj4MTzOD7buZGv6JauA,2518
220
- ccxt/async_support/bingx.py,sha256=F4o26bQPigtTEpGOQEFJAJjUi4jCLqzj0OKUpg9IROw,185234
220
+ ccxt/async_support/bingx.py,sha256=ZEUQzoIGTOZmxSWDjkTHHJsJnTaWVKph8jXgs718Dsw,185648
221
221
  ccxt/async_support/bit2c.py,sha256=vCfbtsUTI0j9wU51FnvzPpFwmzC3ozN4h1I4IXVgMGI,37113
222
222
  ccxt/async_support/bitbank.py,sha256=48plnjcFdy6Ovd66hm32fa0qjedmkkjfnSwDB99NwbI,42099
223
223
  ccxt/async_support/bitbay.py,sha256=jcaEXi2IhYTva8ezO_SfJhwxEZk7HST4J3NaxD16BQA,492
@@ -226,7 +226,7 @@ ccxt/async_support/bitcoincom.py,sha256=RiqwhK3RfxQ_PXTa860fphDCvwA8dalL-_rXlK85
226
226
  ccxt/async_support/bitfinex.py,sha256=U7Rx6v0EAi4vv-eV6aJqjn9ZNLZHRXnaQX0Kdqsndog,71973
227
227
  ccxt/async_support/bitfinex2.py,sha256=9GxRBCGHQQ-aA-KUd7uvbnPtogKtB28hnoIJ0jNm4GY,158868
228
228
  ccxt/async_support/bitflyer.py,sha256=jehWPOEapP8emHK_WJUey8Lt4VFQwK4-Hrmchkh-VbQ,41699
229
- ccxt/async_support/bitget.py,sha256=6401z1rfk6VHJre9CRKKGp2gREqrHPdcb8cWA2gIYM0,423787
229
+ ccxt/async_support/bitget.py,sha256=IUni0IrI8u7_Irw7PF4XWLeNZ7zZDjmsmrE7cz7DR2Q,423790
230
230
  ccxt/async_support/bithumb.py,sha256=Ii7K6dga0USJr8mvmQub0-QSCsOu6VNA1luFP8ZfT-Y,45758
231
231
  ccxt/async_support/bitmart.py,sha256=NrArkE68Vx5JZZMHtDsYesyaU1GKAkiBBQeIgENCPeA,200028
232
232
  ccxt/async_support/bitmex.py,sha256=GvHFtIp7QTDkSzyVxqZaRE5a_4OmO6gSjROQ_lUT_2w,126994
@@ -250,10 +250,10 @@ ccxt/async_support/coinbase.py,sha256=Z4Oto79qtEkoluthFnw3pTxhpQbBxthrr72xh8AGmk
250
250
  ccxt/async_support/coinbaseinternational.py,sha256=wmfQAP2reUj_R-xYJTiTp69OtB9-oSzc1j_VR-rPdlY,87777
251
251
  ccxt/async_support/coinbasepro.py,sha256=450ObJYcli-6Fkpqx8iTT-Z6TB4Uek0bIXmSWLWVsFA,79171
252
252
  ccxt/async_support/coincheck.py,sha256=B_qzNQzd3j-me0km8lEg7bnfp--A16fpa_W902ut5Lo,35864
253
- ccxt/async_support/coinex.py,sha256=LxymCWCepxE-1aP6FQi-HMegO1XmT6PmFOORIIJlZKE,247930
253
+ ccxt/async_support/coinex.py,sha256=3iAQGmQZcjfanmEqGn5iUjAGDMcbPEp4Hqo8xUzhqec,260698
254
254
  ccxt/async_support/coinlist.py,sha256=Zr8vYxBeJMPxTmoWRDboser04I_yE_1Z4YWOuayyRAY,103683
255
255
  ccxt/async_support/coinmate.py,sha256=XQJDqDPD2JFBDZqKzWC9AfBKV3MY3msBuYkMgUaT5M0,46206
256
- ccxt/async_support/coinmetro.py,sha256=I7ZmXVoZK-OcyMrqJ-a19NMmMuk81UoQk6UQtKKnXk4,80729
256
+ ccxt/async_support/coinmetro.py,sha256=e2OqlB8K6GDYdGYeerc-XNXg4gGzZzvguU31D_Spufo,80999
257
257
  ccxt/async_support/coinone.py,sha256=_ypMnoeBgvfhl3N9i4x7ZeUR--PAKwm1xOt8Z_8UweI,47132
258
258
  ccxt/async_support/coinsph.py,sha256=NuRYfAg8qYoYuCwtdnBCPDgX5sdQtpUx_RFRudPM4Vo,91060
259
259
  ccxt/async_support/coinspot.py,sha256=eYMpIjpGdJhV1MeLBQXxJS56ArYnL-sqcUjgkb9wmjQ,23760
@@ -281,7 +281,7 @@ ccxt/async_support/indodax.py,sha256=ZZ1YGC5B-Y31z8kUIDSEQ4SrSrko2va3c8ElJlGmP_Y
281
281
  ccxt/async_support/kraken.py,sha256=bAWk58s8D5o1VCCMm48lPmlS9eCnqX8H-9SGla96Je4,125943
282
282
  ccxt/async_support/krakenfutures.py,sha256=T_zFrH8QsHwzIDvHcwx1Le57E1DIchrolvMK62XxqnE,117245
283
283
  ccxt/async_support/kucoin.py,sha256=zH9jjyyRLy5BfMgrLMzlf30b-li0sXNjr8q_Pw85haY,218785
284
- ccxt/async_support/kucoinfutures.py,sha256=OczALhW2JP2Shmsp30t3hy41QVE6AIG2TMP-q_pgDlQ,119225
284
+ ccxt/async_support/kucoinfutures.py,sha256=95AGLUK3Vc9N82kP04HeIHkmAdiB1t8E8iHwy8hroIM,124958
285
285
  ccxt/async_support/kuna.py,sha256=h9rrxeXVmiLkqJhRq8eVzxjOlcFOpJos0wInSdXAW4k,96401
286
286
  ccxt/async_support/latoken.py,sha256=nHDcBT-8DZMFEUp3kYeCRGpL6xRbhk8A7FM-VU8JZr4,79527
287
287
  ccxt/async_support/lbank.py,sha256=QLVr6kP3ngX_2j3BMsl7wSPiWIt5t3I2VBojn-vNqzk,115881
@@ -293,7 +293,7 @@ ccxt/async_support/ndax.py,sha256=JtBK0pbR5OvnWuLTHr2pNV8lsoXkZ8A161b5K366v00,10
293
293
  ccxt/async_support/novadax.py,sha256=ttRfw2h1Nc-9RUgBHefTuAPLUNjp9hxfxZTxoJDViwQ,64667
294
294
  ccxt/async_support/oceanex.py,sha256=aYdYRl42FDFpaPaoLaiGYxvDM_7aq0dEjAhUa0NsJQQ,38180
295
295
  ccxt/async_support/okcoin.py,sha256=HQSAZdG_yFP9oHyJYJaZrWsRZ9IHB6qrIgDp4b0zetA,151634
296
- ccxt/async_support/okx.py,sha256=fnyuunAWpMYfBZel29DRqAaAgwRKUFric-VuiSnekGI,372441
296
+ ccxt/async_support/okx.py,sha256=9XkreeSaOK9rtqeLB3sbEGBngryBsnzZBn6N5D4KJas,375250
297
297
  ccxt/async_support/onetrading.py,sha256=2O3d2_E-oUZABQEyR9igcke0AJ-to-_J9579iDyGKfo,88559
298
298
  ccxt/async_support/p2b.py,sha256=KrNc3sLbHQCxbgShyqWytuQVaQfKa42Q6_HcUYNUaKI,54455
299
299
  ccxt/async_support/paymium.py,sha256=3P1J9OcDOqQKG5fUs6Xte9Xu8NB5lWu-OD-AHHGZbkM,24391
@@ -313,7 +313,7 @@ ccxt/async_support/yobit.py,sha256=6eqYOcSBmXhJgcKDRMj8oRH_7aoz2E21hxgzvA1TzrA,5
313
313
  ccxt/async_support/zaif.py,sha256=chPFWbPvYNn0KPHY0fX_nXl60WuvueRO9GNnNMpuYeo,28139
314
314
  ccxt/async_support/zonda.py,sha256=nHlJJSlr_zBSiw4WrKOp2FbO33_UFMK5YyLuf2Pvjr0,80871
315
315
  ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
316
- ccxt/async_support/base/exchange.py,sha256=I1kH2KjcXhwry4lH4ghvYMP9IDRgWTa0dMICCKPrGB8,107190
316
+ ccxt/async_support/base/exchange.py,sha256=QF553Hs_IrFWdhYwx9JQgbO-WDCqibnQV_QSWIlATjg,107191
317
317
  ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
318
318
  ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
319
319
  ccxt/async_support/base/ws/aiohttp_client.py,sha256=Ed1765emEde2Hj8Ys6f5EjS54ZI1wQ0qIhd04eB7yhU,5751
@@ -327,10 +327,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=Pxrq22nCODckJ6G1OXkYEmUunIu
327
327
  ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
328
328
  ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
329
329
  ccxt/base/errors.py,sha256=u_zxABGVPU_K5oLEEZQWOI0_F5Q-SAUq1g1q6AFh7IM,4107
330
- ccxt/base/exchange.py,sha256=BwIzHwYb4Sh4Sal6LVjQKvw8qkexXbbFwsq8PKRz7qo,275089
330
+ ccxt/base/exchange.py,sha256=qvikkNW9vxcp2XIKnlwF9sTgVbLDk_T209n9wNR2bbI,275105
331
331
  ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
332
- ccxt/base/types.py,sha256=ZDDuKtyi-6j98YdcFSa8SS1OfwuSer_PJp1QXTsaMb0,7992
333
- ccxt/pro/__init__.py,sha256=GV-tHeSbyfEVy2GUbLd1mzJUhyVeSFggx7LHIGzFB3M,6998
332
+ ccxt/base/types.py,sha256=S9qHy08smX-TJJbac1FVejtXAepMHgN_lHP4yeg2mT4,8032
333
+ ccxt/pro/__init__.py,sha256=98l751xBIwNjgd5433mtO0h38C4lrYC5MpQaXUnMZzQ,6999
334
334
  ccxt/pro/alpaca.py,sha256=7ePyWli0949ti5UheIn553xmnFpedrNc2W5CKauSZio,27167
335
335
  ccxt/pro/ascendex.py,sha256=fCM3EujSfJvtvffqI56UAstTtwjXFIocwukm15cF8rE,35432
336
336
  ccxt/pro/bequant.py,sha256=5zbsP8BHQTUZ8ZNL6uaACxDbUClgkOV4SYfXT_LfQVg,1351
@@ -529,7 +529,7 @@ ccxt/test/base/test_ticker.py,sha256=cMTIMb1oySNORUCmqI5ZzMswlEyCF6gJMah3vfvo8wQ
529
529
  ccxt/test/base/test_trade.py,sha256=PMtmB8V38dpaP-eb8h488xYMlR6D69yCOhsA1RuWrUA,2336
530
530
  ccxt/test/base/test_trading_fee.py,sha256=2aDCNJtqBkTC_AieO0l1HYGq5hz5qkWlkWb9Nv_fcwk,1066
531
531
  ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
532
- ccxt-4.3.8.dist-info/METADATA,sha256=--yLmF4JlM5W6P5HxHg7-EehZxRYOxWCvIHk2UFLNr4,111189
533
- ccxt-4.3.8.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
534
- ccxt-4.3.8.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
535
- ccxt-4.3.8.dist-info/RECORD,,
532
+ ccxt-4.3.10.dist-info/METADATA,sha256=jhIg6-knqtYMxnoiH555YsS_4a_1TvVVy3dy02Yknow,111193
533
+ ccxt-4.3.10.dist-info/WHEEL,sha256=P2T-6epvtXQ2cBOE_U1K4_noqlJFN3tj15djMgEu4NM,110
534
+ ccxt-4.3.10.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
535
+ ccxt-4.3.10.dist-info/RECORD,,
File without changes