ccxt 4.0.47__py2.py3-none-any.whl → 4.0.49__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/__init__.py +1 -1
- ccxt/abstract/binance.py +1 -0
- ccxt/abstract/binancecoinm.py +1 -0
- ccxt/abstract/binanceus.py +1 -0
- ccxt/abstract/binanceusdm.py +1 -0
- ccxt/abstract/bitget.py +3 -0
- ccxt/abstract/kraken.py +1 -0
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +1 -1
- ccxt/async_support/binance.py +1 -0
- ccxt/async_support/bitget.py +3 -0
- ccxt/async_support/gate.py +2 -2
- ccxt/async_support/huobijp.py +10 -12
- ccxt/async_support/kraken.py +1 -0
- ccxt/async_support/kucoin.py +8 -9
- ccxt/async_support/okx.py +6 -7
- ccxt/base/exchange.py +1 -1
- ccxt/binance.py +1 -0
- ccxt/bitget.py +3 -0
- ccxt/gate.py +2 -2
- ccxt/huobijp.py +10 -12
- ccxt/kraken.py +1 -0
- ccxt/kucoin.py +8 -9
- ccxt/okx.py +6 -7
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/bitfinex.py +10 -13
- ccxt/pro/bitfinex2.py +13 -13
- ccxt/pro/bitmex.py +3 -3
- {ccxt-4.0.47.dist-info → ccxt-4.0.49.dist-info}/METADATA +7 -7
- {ccxt-4.0.47.dist-info → ccxt-4.0.49.dist-info}/RECORD +32 -32
- {ccxt-4.0.47.dist-info → ccxt-4.0.49.dist-info}/WHEEL +0 -0
- {ccxt-4.0.47.dist-info → ccxt-4.0.49.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/abstract/binance.py
CHANGED
@@ -595,6 +595,7 @@ class ImplicitAPI:
|
|
595
595
|
papi_post_portfolio_repay_futures_switch = papiPostPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'papi', 'POST', {'cost': 150})
|
596
596
|
papi_post_portfolio_repay_futures_negative_balance = papiPostPortfolioRepayFuturesNegativeBalance = Entry('portfolio/repay-futures-negative-balance', 'papi', 'POST', {'cost': 150})
|
597
597
|
papi_post_listenkey = papiPostListenKey = Entry('listenKey', 'papi', 'POST', {'cost': 1})
|
598
|
+
papi_post_asset_collection = papiPostAssetCollection = Entry('asset-collection', 'papi', 'POST', {'cost': 3})
|
598
599
|
papi_put_listenkey = papiPutListenKey = Entry('listenKey', 'papi', 'PUT', {'cost': 1})
|
599
600
|
papi_delete_um_order = papiDeleteUmOrder = Entry('um/order', 'papi', 'DELETE', {'cost': 1})
|
600
601
|
papi_delete_um_allopenorders = papiDeleteUmAllOpenOrders = Entry('um/allOpenOrders', 'papi', 'DELETE', {'cost': 1})
|
ccxt/abstract/binancecoinm.py
CHANGED
@@ -595,6 +595,7 @@ class ImplicitAPI:
|
|
595
595
|
papi_post_portfolio_repay_futures_switch = papiPostPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'papi', 'POST', {'cost': 150})
|
596
596
|
papi_post_portfolio_repay_futures_negative_balance = papiPostPortfolioRepayFuturesNegativeBalance = Entry('portfolio/repay-futures-negative-balance', 'papi', 'POST', {'cost': 150})
|
597
597
|
papi_post_listenkey = papiPostListenKey = Entry('listenKey', 'papi', 'POST', {'cost': 1})
|
598
|
+
papi_post_asset_collection = papiPostAssetCollection = Entry('asset-collection', 'papi', 'POST', {'cost': 3})
|
598
599
|
papi_put_listenkey = papiPutListenKey = Entry('listenKey', 'papi', 'PUT', {'cost': 1})
|
599
600
|
papi_delete_um_order = papiDeleteUmOrder = Entry('um/order', 'papi', 'DELETE', {'cost': 1})
|
600
601
|
papi_delete_um_allopenorders = papiDeleteUmAllOpenOrders = Entry('um/allOpenOrders', 'papi', 'DELETE', {'cost': 1})
|
ccxt/abstract/binanceus.py
CHANGED
@@ -595,6 +595,7 @@ class ImplicitAPI:
|
|
595
595
|
papi_post_portfolio_repay_futures_switch = papiPostPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'papi', 'POST', {'cost': 150})
|
596
596
|
papi_post_portfolio_repay_futures_negative_balance = papiPostPortfolioRepayFuturesNegativeBalance = Entry('portfolio/repay-futures-negative-balance', 'papi', 'POST', {'cost': 150})
|
597
597
|
papi_post_listenkey = papiPostListenKey = Entry('listenKey', 'papi', 'POST', {'cost': 1})
|
598
|
+
papi_post_asset_collection = papiPostAssetCollection = Entry('asset-collection', 'papi', 'POST', {'cost': 3})
|
598
599
|
papi_put_listenkey = papiPutListenKey = Entry('listenKey', 'papi', 'PUT', {'cost': 1})
|
599
600
|
papi_delete_um_order = papiDeleteUmOrder = Entry('um/order', 'papi', 'DELETE', {'cost': 1})
|
600
601
|
papi_delete_um_allopenorders = papiDeleteUmAllOpenOrders = Entry('um/allOpenOrders', 'papi', 'DELETE', {'cost': 1})
|
ccxt/abstract/binanceusdm.py
CHANGED
@@ -595,6 +595,7 @@ class ImplicitAPI:
|
|
595
595
|
papi_post_portfolio_repay_futures_switch = papiPostPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'papi', 'POST', {'cost': 150})
|
596
596
|
papi_post_portfolio_repay_futures_negative_balance = papiPostPortfolioRepayFuturesNegativeBalance = Entry('portfolio/repay-futures-negative-balance', 'papi', 'POST', {'cost': 150})
|
597
597
|
papi_post_listenkey = papiPostListenKey = Entry('listenKey', 'papi', 'POST', {'cost': 1})
|
598
|
+
papi_post_asset_collection = papiPostAssetCollection = Entry('asset-collection', 'papi', 'POST', {'cost': 3})
|
598
599
|
papi_put_listenkey = papiPutListenKey = Entry('listenKey', 'papi', 'PUT', {'cost': 1})
|
599
600
|
papi_delete_um_order = papiDeleteUmOrder = Entry('um/order', 'papi', 'DELETE', {'cost': 1})
|
600
601
|
papi_delete_um_allopenorders = papiDeleteUmAllOpenOrders = Entry('um/allOpenOrders', 'papi', 'DELETE', {'cost': 1})
|
ccxt/abstract/bitget.py
CHANGED
@@ -94,6 +94,8 @@ class ImplicitAPI:
|
|
94
94
|
private_spot_post_trace_profit_profithisdetaillist = privateSpotPostTraceProfitProfitHisDetailList = Entry('trace/profit/profitHisDetailList', ['private', 'spot'], 'POST', {'cost': 2})
|
95
95
|
private_spot_post_trace_profit_waitprofitdetaillist = privateSpotPostTraceProfitWaitProfitDetailList = Entry('trace/profit/waitProfitDetailList', ['private', 'spot'], 'POST', {'cost': 2})
|
96
96
|
private_spot_post_trace_user_gettraderinfo = privateSpotPostTraceUserGetTraderInfo = Entry('trace/user/getTraderInfo', ['private', 'spot'], 'POST', {'cost': 2})
|
97
|
+
private_spot_post_trace_getremovablefollower = privateSpotPostTraceGetRemovableFollower = Entry('trace/getRemovableFollower', ['private', 'spot'], 'POST', {'cost': 2})
|
98
|
+
private_spot_post_trace_user_removefollower = privateSpotPostTraceUserRemoveFollower = Entry('trace/user/removeFollower', ['private', 'spot'], 'POST', {'cost': 2})
|
97
99
|
private_spot_post_convert_quoted_price = privateSpotPostConvertQuotedPrice = Entry('convert/quoted-price', ['private', 'spot'], 'POST', {'cost': 4})
|
98
100
|
private_spot_post_convert_trade = privateSpotPostConvertTrade = Entry('convert/trade', ['private', 'spot'], 'POST', {'cost': 4})
|
99
101
|
private_mix_get_account_account = privateMixGetAccountAccount = Entry('account/account', ['private', 'mix'], 'GET', {'cost': 2})
|
@@ -168,6 +170,7 @@ class ImplicitAPI:
|
|
168
170
|
private_mix_post_trace_report_order_currentlist = privateMixPostTraceReportOrderCurrentList = Entry('trace/report/order/currentList', ['private', 'mix'], 'POST', {'cost': 2})
|
169
171
|
private_mix_post_trace_querytradertpslratioconfig = privateMixPostTraceQueryTraderTpslRatioConfig = Entry('trace/queryTraderTpslRatioConfig', ['private', 'mix'], 'POST', {'cost': 2})
|
170
172
|
private_mix_post_trace_traderupdatetpslratioconfig = privateMixPostTraceTraderUpdateTpslRatioConfig = Entry('trace/traderUpdateTpslRatioConfig', ['private', 'mix'], 'POST', {'cost': 2})
|
173
|
+
private_mix_post_trace_closetrackorderbysymbol = privateMixPostTraceCloseTrackOrderBySymbol = Entry('trace/closeTrackOrderBySymbol', ['private', 'mix'], 'POST', {'cost': 2})
|
171
174
|
private_user_get_fee_query = privateUserGetFeeQuery = Entry('fee/query', ['private', 'user'], 'GET', {'cost': 2})
|
172
175
|
private_user_get_sub_virtual_list = privateUserGetSubVirtualList = Entry('sub/virtual-list', ['private', 'user'], 'GET', {'cost': 2})
|
173
176
|
private_user_get_sub_virtual_api_list = privateUserGetSubVirtualApiList = Entry('sub/virtual-api-list', ['private', 'user'], 'GET', {'cost': 2})
|
ccxt/abstract/kraken.py
CHANGED
@@ -34,6 +34,7 @@ class ImplicitAPI:
|
|
34
34
|
private_post_querytrades = privatePostQueryTrades = Entry('QueryTrades', 'private', 'POST', {'cost': 3})
|
35
35
|
private_post_retrieveexport = privatePostRetrieveExport = Entry('RetrieveExport', 'private', 'POST', {'cost': 3})
|
36
36
|
private_post_removeexport = privatePostRemoveExport = Entry('RemoveExport', 'private', 'POST', {'cost': 3})
|
37
|
+
private_post_balanceex = privatePostBalanceEx = Entry('BalanceEx', 'private', 'POST', {'cost': 3})
|
37
38
|
private_post_tradebalance = privatePostTradeBalance = Entry('TradeBalance', 'private', 'POST', {'cost': 3})
|
38
39
|
private_post_tradeshistory = privatePostTradesHistory = Entry('TradesHistory', 'private', 'POST', {'cost': 6})
|
39
40
|
private_post_tradevolume = privatePostTradeVolume = Entry('TradeVolume', 'private', 'POST', {'cost': 3})
|
ccxt/async_support/__init__.py
CHANGED
ccxt/async_support/binance.py
CHANGED
@@ -952,6 +952,7 @@ class binance(Exchange, ImplicitAPI):
|
|
952
952
|
'portfolio/repay-futures-switch': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
|
953
953
|
'portfolio/repay-futures-negative-balance': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
|
954
954
|
'listenKey': 1, # 1
|
955
|
+
'asset-collection': 3,
|
955
956
|
},
|
956
957
|
'put': {
|
957
958
|
'listenKey': 1, # 1
|
ccxt/async_support/bitget.py
CHANGED
@@ -267,6 +267,8 @@ class bitget(Exchange, ImplicitAPI):
|
|
267
267
|
'trace/profit/profitHisDetailList': 2, # 10 times/1s(UID) => 20/10 = 2
|
268
268
|
'trace/profit/waitProfitDetailList': 2, # 10 times/1s(UID) => 20/10 = 2
|
269
269
|
'trace/user/getTraderInfo': 2, # 10 times/1s(UID) => 20/10 = 2
|
270
|
+
'trace/getRemovableFollower': 2,
|
271
|
+
'trace/user/removeFollower': 2,
|
270
272
|
'convert/quoted-price': 4,
|
271
273
|
'convert/trade': 4,
|
272
274
|
},
|
@@ -347,6 +349,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
347
349
|
'trace/report/order/currentList': 2, # 10 times/1s(IP) => 20/10 = 2
|
348
350
|
'trace/queryTraderTpslRatioConfig': 2, # 10 times/1s(UID) => 20/10 = 2
|
349
351
|
'trace/traderUpdateTpslRatioConfig': 2, # 10 times/1s(UID) => 20/10 = 2
|
352
|
+
'trace/closeTrackOrderBySymbol': 2,
|
350
353
|
},
|
351
354
|
},
|
352
355
|
'user': {
|
ccxt/async_support/gate.py
CHANGED
@@ -3797,8 +3797,8 @@ class gate(Exchange, ImplicitAPI):
|
|
3797
3797
|
# "order_type": ""
|
3798
3798
|
# }
|
3799
3799
|
#
|
3800
|
-
put = self.safe_value_2(order, 'put', 'initial')
|
3801
|
-
trigger = self.safe_value(order, 'trigger')
|
3800
|
+
put = self.safe_value_2(order, 'put', 'initial', {})
|
3801
|
+
trigger = self.safe_value(order, 'trigger', {})
|
3802
3802
|
contract = self.safe_string(put, 'contract')
|
3803
3803
|
type = self.safe_string(put, 'type')
|
3804
3804
|
timeInForce = self.safe_string_upper_2(put, 'time_in_force', 'tif')
|
ccxt/async_support/huobijp.py
CHANGED
@@ -761,17 +761,15 @@ class huobijp(Exchange, ImplicitAPI):
|
|
761
761
|
side = typeParts[0]
|
762
762
|
type = typeParts[1]
|
763
763
|
takerOrMaker = self.safe_string(trade, 'role')
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
amount = self.parse_number(amountString)
|
768
|
-
cost = self.parse_number(Precise.string_mul(priceString, amountString))
|
764
|
+
price = self.safe_string(trade, 'price')
|
765
|
+
amount = self.safe_string_2(trade, 'filled-amount', 'amount')
|
766
|
+
cost = Precise.string_mul(price, amount)
|
769
767
|
fee = None
|
770
|
-
feeCost = self.
|
768
|
+
feeCost = self.safe_string(trade, 'filled-fees')
|
771
769
|
feeCurrency = self.safe_currency_code(self.safe_string(trade, 'fee-currency'))
|
772
|
-
filledPoints = self.
|
770
|
+
filledPoints = self.safe_string(trade, 'filled-points')
|
773
771
|
if filledPoints is not None:
|
774
|
-
if (feeCost is None) or (feeCost
|
772
|
+
if (feeCost is None) or (Precise.string_eq(feeCost, '0.0')):
|
775
773
|
feeCost = filledPoints
|
776
774
|
feeCurrency = self.safe_currency_code(self.safe_string(trade, 'fee-deduct-currency'))
|
777
775
|
if feeCost is not None:
|
@@ -781,13 +779,13 @@ class huobijp(Exchange, ImplicitAPI):
|
|
781
779
|
}
|
782
780
|
tradeId = self.safe_string_2(trade, 'trade-id', 'tradeId')
|
783
781
|
id = self.safe_string(trade, 'id', tradeId)
|
784
|
-
return {
|
785
|
-
'id': id,
|
782
|
+
return self.safe_trade({
|
786
783
|
'info': trade,
|
784
|
+
'id': id,
|
785
|
+
'symbol': symbol,
|
787
786
|
'order': order,
|
788
787
|
'timestamp': timestamp,
|
789
788
|
'datetime': self.iso8601(timestamp),
|
790
|
-
'symbol': symbol,
|
791
789
|
'type': type,
|
792
790
|
'side': side,
|
793
791
|
'takerOrMaker': takerOrMaker,
|
@@ -795,7 +793,7 @@ class huobijp(Exchange, ImplicitAPI):
|
|
795
793
|
'amount': amount,
|
796
794
|
'cost': cost,
|
797
795
|
'fee': fee,
|
798
|
-
}
|
796
|
+
})
|
799
797
|
|
800
798
|
async def fetch_order_trades(self, id: str, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
|
801
799
|
"""
|
ccxt/async_support/kraken.py
CHANGED
ccxt/async_support/kucoin.py
CHANGED
@@ -489,8 +489,8 @@ class kucoin(Exchange, ImplicitAPI):
|
|
489
489
|
'symbolSeparator': '-',
|
490
490
|
'fetchMyTradesMethod': 'private_get_fills',
|
491
491
|
'fetchCurrencies': {
|
492
|
-
'webApiEnable':
|
493
|
-
'webApiRetries':
|
492
|
+
'webApiEnable': True, # fetches from WEB
|
493
|
+
'webApiRetries': 1,
|
494
494
|
'webApiMuteFailure': True,
|
495
495
|
},
|
496
496
|
'fetchMarkets': {
|
@@ -1727,13 +1727,17 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1727
1727
|
:param float amount: the amount of currency to trade
|
1728
1728
|
:param float price: *ignored in "market" orders* the price at which the order is to be fullfilled at in units of the quote currency
|
1729
1729
|
:param dict [params]: Extra parameters specific to the exchange API endpoint
|
1730
|
+
:param float [params.triggerPrice]: The price at which a trigger order is triggered at
|
1731
|
+
:param str [params.marginMode]: 'cross', # cross(cross mode) and isolated(isolated mode), set to cross by default, the isolated mode will be released soon, stay tuned
|
1732
|
+
:param str [params.timeInForce]: GTC, GTT, IOC, or FOK, default is GTC, limit orders only
|
1733
|
+
:param str [params.postOnly]: Post only flag, invalid when timeInForce is IOC or FOK
|
1734
|
+
*
|
1735
|
+
* EXCHANGE SPECIFIC PARAMETERS
|
1730
1736
|
:param str [params.clientOid]: client order id, defaults to uuid if not passed
|
1731
1737
|
:param str [params.remark]: remark for the order, length cannot exceed 100 utf8 characters
|
1732
1738
|
:param str [params.tradeType]: 'TRADE', # TRADE, MARGIN_TRADE # not used with margin orders
|
1733
1739
|
* limit orders ---------------------------------------------------
|
1734
|
-
:param str [params.timeInForce]: GTC, GTT, IOC, or FOK, default is GTC, limit orders only
|
1735
1740
|
:param float [params.cancelAfter]: long, # cancel after n seconds, requires timeInForce to be GTT
|
1736
|
-
:param str [params.postOnly]: Post only flag, invalid when timeInForce is IOC or FOK
|
1737
1741
|
:param bool [params.hidden]: False, # Order will not be displayed in the order book
|
1738
1742
|
:param bool [params.iceberg]: False, # Only a portion of the order is displayed in the order book
|
1739
1743
|
:param str [params.visibleSize]: self.amount_to_precision(symbol, visibleSize), # The maximum visible size of an iceberg order
|
@@ -1741,11 +1745,9 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1741
1745
|
:param str [params.funds]: # Amount of quote currency to use
|
1742
1746
|
* stop orders ----------------------------------------------------
|
1743
1747
|
:param str [params.stop]: Either loss or entry, the default is loss. Requires stopPrice to be defined
|
1744
|
-
:param float [params.stopPrice]: The price at which a trigger order is triggered at
|
1745
1748
|
* margin orders --------------------------------------------------
|
1746
1749
|
:param float [params.leverage]: Leverage size of the order
|
1747
1750
|
:param str [params.stp]: '', # self trade prevention, CN, CO, CB or DC
|
1748
|
-
:param str [params.marginMode]: 'cross', # cross(cross mode) and isolated(isolated mode), set to cross by default, the isolated mode will be released soon, stay tuned
|
1749
1751
|
:param bool [params.autoBorrow]: False, # The system will first borrow you funds at the optimal interest rate and then place an order for you
|
1750
1752
|
:param bool [params.hf]: False, # True for hf order
|
1751
1753
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
@@ -1788,7 +1790,6 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1788
1790
|
method = 'privatePostHfOrders'
|
1789
1791
|
elif triggerPrice or stopLossPrice or takeProfitPrice:
|
1790
1792
|
if triggerPrice:
|
1791
|
-
request['stop'] = 'up' if (side == 'buy') else 'down'
|
1792
1793
|
request['stopPrice'] = self.price_to_precision(symbol, triggerPrice)
|
1793
1794
|
elif stopLossPrice or takeProfitPrice:
|
1794
1795
|
if stopLossPrice:
|
@@ -2286,8 +2287,6 @@ class kucoin(Exchange, ImplicitAPI):
|
|
2286
2287
|
status = 'cancelled'
|
2287
2288
|
if cancelExist:
|
2288
2289
|
status = 'canceled'
|
2289
|
-
if status is None:
|
2290
|
-
status = 'closed'
|
2291
2290
|
stopPrice = self.safe_number(order, 'stopPrice')
|
2292
2291
|
return self.safe_order({
|
2293
2292
|
'info': order,
|
ccxt/async_support/okx.py
CHANGED
@@ -1243,6 +1243,7 @@ class okx(Exchange, ImplicitAPI):
|
|
1243
1243
|
async def fetch_markets(self, params={}):
|
1244
1244
|
"""
|
1245
1245
|
retrieves data on all markets for okx
|
1246
|
+
see https://www.okx.com/docs-v5/en/#rest-api-public-data-get-instruments
|
1246
1247
|
:param dict [params]: extra parameters specific to the exchange api endpoint
|
1247
1248
|
:returns dict[]: an array of objects representing market data
|
1248
1249
|
"""
|
@@ -1350,12 +1351,10 @@ class okx(Exchange, ImplicitAPI):
|
|
1350
1351
|
symbol = symbol + '-' + ymd + '-' + strikePrice + '-' + optionType
|
1351
1352
|
optionType = 'put' if (optionType == 'P') else 'call'
|
1352
1353
|
tickSize = self.safe_string(market, 'tickSz')
|
1353
|
-
minAmountString = self.safe_string(market, 'minSz')
|
1354
|
-
minAmount = self.parse_number(minAmountString)
|
1355
1354
|
fees = self.safe_value_2(self.fees, type, 'trading', {})
|
1356
|
-
precisionPrice = self.parse_number(tickSize)
|
1357
1355
|
maxLeverage = self.safe_string(market, 'lever', '1')
|
1358
1356
|
maxLeverage = Precise.string_max(maxLeverage, '1')
|
1357
|
+
maxSpotCost = self.safe_number(market, 'maxMktSz')
|
1359
1358
|
return self.extend(fees, {
|
1360
1359
|
'id': id,
|
1361
1360
|
'symbol': symbol,
|
@@ -1382,7 +1381,7 @@ class okx(Exchange, ImplicitAPI):
|
|
1382
1381
|
'optionType': optionType,
|
1383
1382
|
'precision': {
|
1384
1383
|
'amount': self.safe_number(market, 'lotSz'),
|
1385
|
-
'price':
|
1384
|
+
'price': self.parse_number(tickSize),
|
1386
1385
|
},
|
1387
1386
|
'limits': {
|
1388
1387
|
'leverage': {
|
@@ -1390,16 +1389,16 @@ class okx(Exchange, ImplicitAPI):
|
|
1390
1389
|
'max': self.parse_number(maxLeverage),
|
1391
1390
|
},
|
1392
1391
|
'amount': {
|
1393
|
-
'min':
|
1392
|
+
'min': self.safe_number(market, 'minSz'),
|
1394
1393
|
'max': None,
|
1395
1394
|
},
|
1396
1395
|
'price': {
|
1397
|
-
'min':
|
1396
|
+
'min': None,
|
1398
1397
|
'max': None,
|
1399
1398
|
},
|
1400
1399
|
'cost': {
|
1401
1400
|
'min': None,
|
1402
|
-
'max': None,
|
1401
|
+
'max': None if contract else maxSpotCost,
|
1403
1402
|
},
|
1404
1403
|
},
|
1405
1404
|
'info': market,
|
ccxt/base/exchange.py
CHANGED
ccxt/binance.py
CHANGED
@@ -951,6 +951,7 @@ class binance(Exchange, ImplicitAPI):
|
|
951
951
|
'portfolio/repay-futures-switch': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
|
952
952
|
'portfolio/repay-futures-negative-balance': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
|
953
953
|
'listenKey': 1, # 1
|
954
|
+
'asset-collection': 3,
|
954
955
|
},
|
955
956
|
'put': {
|
956
957
|
'listenKey': 1, # 1
|
ccxt/bitget.py
CHANGED
@@ -266,6 +266,8 @@ class bitget(Exchange, ImplicitAPI):
|
|
266
266
|
'trace/profit/profitHisDetailList': 2, # 10 times/1s(UID) => 20/10 = 2
|
267
267
|
'trace/profit/waitProfitDetailList': 2, # 10 times/1s(UID) => 20/10 = 2
|
268
268
|
'trace/user/getTraderInfo': 2, # 10 times/1s(UID) => 20/10 = 2
|
269
|
+
'trace/getRemovableFollower': 2,
|
270
|
+
'trace/user/removeFollower': 2,
|
269
271
|
'convert/quoted-price': 4,
|
270
272
|
'convert/trade': 4,
|
271
273
|
},
|
@@ -346,6 +348,7 @@ class bitget(Exchange, ImplicitAPI):
|
|
346
348
|
'trace/report/order/currentList': 2, # 10 times/1s(IP) => 20/10 = 2
|
347
349
|
'trace/queryTraderTpslRatioConfig': 2, # 10 times/1s(UID) => 20/10 = 2
|
348
350
|
'trace/traderUpdateTpslRatioConfig': 2, # 10 times/1s(UID) => 20/10 = 2
|
351
|
+
'trace/closeTrackOrderBySymbol': 2,
|
349
352
|
},
|
350
353
|
},
|
351
354
|
'user': {
|
ccxt/gate.py
CHANGED
@@ -3796,8 +3796,8 @@ class gate(Exchange, ImplicitAPI):
|
|
3796
3796
|
# "order_type": ""
|
3797
3797
|
# }
|
3798
3798
|
#
|
3799
|
-
put = self.safe_value_2(order, 'put', 'initial')
|
3800
|
-
trigger = self.safe_value(order, 'trigger')
|
3799
|
+
put = self.safe_value_2(order, 'put', 'initial', {})
|
3800
|
+
trigger = self.safe_value(order, 'trigger', {})
|
3801
3801
|
contract = self.safe_string(put, 'contract')
|
3802
3802
|
type = self.safe_string(put, 'type')
|
3803
3803
|
timeInForce = self.safe_string_upper_2(put, 'time_in_force', 'tif')
|
ccxt/huobijp.py
CHANGED
@@ -761,17 +761,15 @@ class huobijp(Exchange, ImplicitAPI):
|
|
761
761
|
side = typeParts[0]
|
762
762
|
type = typeParts[1]
|
763
763
|
takerOrMaker = self.safe_string(trade, 'role')
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
amount = self.parse_number(amountString)
|
768
|
-
cost = self.parse_number(Precise.string_mul(priceString, amountString))
|
764
|
+
price = self.safe_string(trade, 'price')
|
765
|
+
amount = self.safe_string_2(trade, 'filled-amount', 'amount')
|
766
|
+
cost = Precise.string_mul(price, amount)
|
769
767
|
fee = None
|
770
|
-
feeCost = self.
|
768
|
+
feeCost = self.safe_string(trade, 'filled-fees')
|
771
769
|
feeCurrency = self.safe_currency_code(self.safe_string(trade, 'fee-currency'))
|
772
|
-
filledPoints = self.
|
770
|
+
filledPoints = self.safe_string(trade, 'filled-points')
|
773
771
|
if filledPoints is not None:
|
774
|
-
if (feeCost is None) or (feeCost
|
772
|
+
if (feeCost is None) or (Precise.string_eq(feeCost, '0.0')):
|
775
773
|
feeCost = filledPoints
|
776
774
|
feeCurrency = self.safe_currency_code(self.safe_string(trade, 'fee-deduct-currency'))
|
777
775
|
if feeCost is not None:
|
@@ -781,13 +779,13 @@ class huobijp(Exchange, ImplicitAPI):
|
|
781
779
|
}
|
782
780
|
tradeId = self.safe_string_2(trade, 'trade-id', 'tradeId')
|
783
781
|
id = self.safe_string(trade, 'id', tradeId)
|
784
|
-
return {
|
785
|
-
'id': id,
|
782
|
+
return self.safe_trade({
|
786
783
|
'info': trade,
|
784
|
+
'id': id,
|
785
|
+
'symbol': symbol,
|
787
786
|
'order': order,
|
788
787
|
'timestamp': timestamp,
|
789
788
|
'datetime': self.iso8601(timestamp),
|
790
|
-
'symbol': symbol,
|
791
789
|
'type': type,
|
792
790
|
'side': side,
|
793
791
|
'takerOrMaker': takerOrMaker,
|
@@ -795,7 +793,7 @@ class huobijp(Exchange, ImplicitAPI):
|
|
795
793
|
'amount': amount,
|
796
794
|
'cost': cost,
|
797
795
|
'fee': fee,
|
798
|
-
}
|
796
|
+
})
|
799
797
|
|
800
798
|
def fetch_order_trades(self, id: str, symbol: Optional[str] = None, since: Optional[int] = None, limit: Optional[int] = None, params={}):
|
801
799
|
"""
|
ccxt/kraken.py
CHANGED
ccxt/kucoin.py
CHANGED
@@ -488,8 +488,8 @@ class kucoin(Exchange, ImplicitAPI):
|
|
488
488
|
'symbolSeparator': '-',
|
489
489
|
'fetchMyTradesMethod': 'private_get_fills',
|
490
490
|
'fetchCurrencies': {
|
491
|
-
'webApiEnable':
|
492
|
-
'webApiRetries':
|
491
|
+
'webApiEnable': True, # fetches from WEB
|
492
|
+
'webApiRetries': 1,
|
493
493
|
'webApiMuteFailure': True,
|
494
494
|
},
|
495
495
|
'fetchMarkets': {
|
@@ -1726,13 +1726,17 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1726
1726
|
:param float amount: the amount of currency to trade
|
1727
1727
|
:param float price: *ignored in "market" orders* the price at which the order is to be fullfilled at in units of the quote currency
|
1728
1728
|
:param dict [params]: Extra parameters specific to the exchange API endpoint
|
1729
|
+
:param float [params.triggerPrice]: The price at which a trigger order is triggered at
|
1730
|
+
:param str [params.marginMode]: 'cross', # cross(cross mode) and isolated(isolated mode), set to cross by default, the isolated mode will be released soon, stay tuned
|
1731
|
+
:param str [params.timeInForce]: GTC, GTT, IOC, or FOK, default is GTC, limit orders only
|
1732
|
+
:param str [params.postOnly]: Post only flag, invalid when timeInForce is IOC or FOK
|
1733
|
+
*
|
1734
|
+
* EXCHANGE SPECIFIC PARAMETERS
|
1729
1735
|
:param str [params.clientOid]: client order id, defaults to uuid if not passed
|
1730
1736
|
:param str [params.remark]: remark for the order, length cannot exceed 100 utf8 characters
|
1731
1737
|
:param str [params.tradeType]: 'TRADE', # TRADE, MARGIN_TRADE # not used with margin orders
|
1732
1738
|
* limit orders ---------------------------------------------------
|
1733
|
-
:param str [params.timeInForce]: GTC, GTT, IOC, or FOK, default is GTC, limit orders only
|
1734
1739
|
:param float [params.cancelAfter]: long, # cancel after n seconds, requires timeInForce to be GTT
|
1735
|
-
:param str [params.postOnly]: Post only flag, invalid when timeInForce is IOC or FOK
|
1736
1740
|
:param bool [params.hidden]: False, # Order will not be displayed in the order book
|
1737
1741
|
:param bool [params.iceberg]: False, # Only a portion of the order is displayed in the order book
|
1738
1742
|
:param str [params.visibleSize]: self.amount_to_precision(symbol, visibleSize), # The maximum visible size of an iceberg order
|
@@ -1740,11 +1744,9 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1740
1744
|
:param str [params.funds]: # Amount of quote currency to use
|
1741
1745
|
* stop orders ----------------------------------------------------
|
1742
1746
|
:param str [params.stop]: Either loss or entry, the default is loss. Requires stopPrice to be defined
|
1743
|
-
:param float [params.stopPrice]: The price at which a trigger order is triggered at
|
1744
1747
|
* margin orders --------------------------------------------------
|
1745
1748
|
:param float [params.leverage]: Leverage size of the order
|
1746
1749
|
:param str [params.stp]: '', # self trade prevention, CN, CO, CB or DC
|
1747
|
-
:param str [params.marginMode]: 'cross', # cross(cross mode) and isolated(isolated mode), set to cross by default, the isolated mode will be released soon, stay tuned
|
1748
1750
|
:param bool [params.autoBorrow]: False, # The system will first borrow you funds at the optimal interest rate and then place an order for you
|
1749
1751
|
:param bool [params.hf]: False, # True for hf order
|
1750
1752
|
:returns dict: an `order structure <https://docs.ccxt.com/#/?id=order-structure>`
|
@@ -1787,7 +1789,6 @@ class kucoin(Exchange, ImplicitAPI):
|
|
1787
1789
|
method = 'privatePostHfOrders'
|
1788
1790
|
elif triggerPrice or stopLossPrice or takeProfitPrice:
|
1789
1791
|
if triggerPrice:
|
1790
|
-
request['stop'] = 'up' if (side == 'buy') else 'down'
|
1791
1792
|
request['stopPrice'] = self.price_to_precision(symbol, triggerPrice)
|
1792
1793
|
elif stopLossPrice or takeProfitPrice:
|
1793
1794
|
if stopLossPrice:
|
@@ -2285,8 +2286,6 @@ class kucoin(Exchange, ImplicitAPI):
|
|
2285
2286
|
status = 'cancelled'
|
2286
2287
|
if cancelExist:
|
2287
2288
|
status = 'canceled'
|
2288
|
-
if status is None:
|
2289
|
-
status = 'closed'
|
2290
2289
|
stopPrice = self.safe_number(order, 'stopPrice')
|
2291
2290
|
return self.safe_order({
|
2292
2291
|
'info': order,
|
ccxt/okx.py
CHANGED
@@ -1242,6 +1242,7 @@ class okx(Exchange, ImplicitAPI):
|
|
1242
1242
|
def fetch_markets(self, params={}):
|
1243
1243
|
"""
|
1244
1244
|
retrieves data on all markets for okx
|
1245
|
+
see https://www.okx.com/docs-v5/en/#rest-api-public-data-get-instruments
|
1245
1246
|
:param dict [params]: extra parameters specific to the exchange api endpoint
|
1246
1247
|
:returns dict[]: an array of objects representing market data
|
1247
1248
|
"""
|
@@ -1349,12 +1350,10 @@ class okx(Exchange, ImplicitAPI):
|
|
1349
1350
|
symbol = symbol + '-' + ymd + '-' + strikePrice + '-' + optionType
|
1350
1351
|
optionType = 'put' if (optionType == 'P') else 'call'
|
1351
1352
|
tickSize = self.safe_string(market, 'tickSz')
|
1352
|
-
minAmountString = self.safe_string(market, 'minSz')
|
1353
|
-
minAmount = self.parse_number(minAmountString)
|
1354
1353
|
fees = self.safe_value_2(self.fees, type, 'trading', {})
|
1355
|
-
precisionPrice = self.parse_number(tickSize)
|
1356
1354
|
maxLeverage = self.safe_string(market, 'lever', '1')
|
1357
1355
|
maxLeverage = Precise.string_max(maxLeverage, '1')
|
1356
|
+
maxSpotCost = self.safe_number(market, 'maxMktSz')
|
1358
1357
|
return self.extend(fees, {
|
1359
1358
|
'id': id,
|
1360
1359
|
'symbol': symbol,
|
@@ -1381,7 +1380,7 @@ class okx(Exchange, ImplicitAPI):
|
|
1381
1380
|
'optionType': optionType,
|
1382
1381
|
'precision': {
|
1383
1382
|
'amount': self.safe_number(market, 'lotSz'),
|
1384
|
-
'price':
|
1383
|
+
'price': self.parse_number(tickSize),
|
1385
1384
|
},
|
1386
1385
|
'limits': {
|
1387
1386
|
'leverage': {
|
@@ -1389,16 +1388,16 @@ class okx(Exchange, ImplicitAPI):
|
|
1389
1388
|
'max': self.parse_number(maxLeverage),
|
1390
1389
|
},
|
1391
1390
|
'amount': {
|
1392
|
-
'min':
|
1391
|
+
'min': self.safe_number(market, 'minSz'),
|
1393
1392
|
'max': None,
|
1394
1393
|
},
|
1395
1394
|
'price': {
|
1396
|
-
'min':
|
1395
|
+
'min': None,
|
1397
1396
|
'max': None,
|
1398
1397
|
},
|
1399
1398
|
'cost': {
|
1400
1399
|
'min': None,
|
1401
|
-
'max': None,
|
1400
|
+
'max': None if contract else maxSpotCost,
|
1402
1401
|
},
|
1403
1402
|
},
|
1404
1403
|
'info': market,
|
ccxt/pro/__init__.py
CHANGED
ccxt/pro/bitfinex.py
CHANGED
@@ -155,15 +155,12 @@ class bitfinex(ccxt.async_support.bitfinex):
|
|
155
155
|
if event == 'tu':
|
156
156
|
id = self.safe_string(trade, tradeLength - 4)
|
157
157
|
timestamp = self.safe_timestamp(trade, tradeLength - 3)
|
158
|
-
price = self.
|
159
|
-
amount = self.
|
158
|
+
price = self.safe_string(trade, tradeLength - 2)
|
159
|
+
amount = self.safe_string(trade, tradeLength - 1)
|
160
160
|
side = None
|
161
161
|
if amount is not None:
|
162
|
-
side = 'buy' if (amount
|
163
|
-
amount =
|
164
|
-
cost = None
|
165
|
-
if (price is not None) and (amount is not None):
|
166
|
-
cost = price * amount
|
162
|
+
side = 'buy' if Precise.string_gt(amount, '0') else 'sell'
|
163
|
+
amount = Precise.string_abs(amount)
|
167
164
|
seq = self.safe_string(trade, 2)
|
168
165
|
parts = seq.split('-')
|
169
166
|
marketId = self.safe_string(parts, 1)
|
@@ -172,7 +169,7 @@ class bitfinex(ccxt.async_support.bitfinex):
|
|
172
169
|
symbol = self.safe_symbol(marketId, market)
|
173
170
|
takerOrMaker = None
|
174
171
|
orderId = None
|
175
|
-
return {
|
172
|
+
return self.safe_trade({
|
176
173
|
'info': trade,
|
177
174
|
'timestamp': timestamp,
|
178
175
|
'datetime': self.iso8601(timestamp),
|
@@ -184,9 +181,9 @@ class bitfinex(ccxt.async_support.bitfinex):
|
|
184
181
|
'side': side,
|
185
182
|
'price': price,
|
186
183
|
'amount': amount,
|
187
|
-
'cost':
|
184
|
+
'cost': None,
|
188
185
|
'fee': None,
|
189
|
-
}
|
186
|
+
})
|
190
187
|
|
191
188
|
def handle_ticker(self, client: Client, message, subscription):
|
192
189
|
#
|
@@ -328,13 +325,13 @@ class bitfinex(ccxt.async_support.bitfinex):
|
|
328
325
|
orderbook = self.orderbooks[symbol]
|
329
326
|
if isRaw:
|
330
327
|
id = self.safe_string(message, 1)
|
331
|
-
price = self.
|
328
|
+
price = self.safe_string(message, 2)
|
332
329
|
size = -message[3] if (message[3] < 0) else message[3]
|
333
330
|
side = 'asks' if (message[3] < 0) else 'bids'
|
334
331
|
bookside = orderbook[side]
|
335
332
|
# price = 0 means that you have to remove the order from your book
|
336
|
-
amount = size if (price
|
337
|
-
bookside.store(price, amount, id)
|
333
|
+
amount = size if Precise.string_gt(price, '0') else '0'
|
334
|
+
bookside.store(self.parse_number(price), self.parse_number(amount), id)
|
338
335
|
else:
|
339
336
|
size = -message[3] if (message[3] < 0) else message[3]
|
340
337
|
side = 'asks' if (message[3] < 0) else 'bids'
|
ccxt/pro/bitfinex2.py
CHANGED
@@ -585,21 +585,21 @@ class bitfinex2(ccxt.async_support.bitfinex2):
|
|
585
585
|
deltas = message[1]
|
586
586
|
orderbook = self.orderbooks[symbol]
|
587
587
|
if isRaw:
|
588
|
-
price = self.
|
588
|
+
price = self.safe_string(deltas, 1)
|
589
589
|
size = -deltas[2] if (deltas[2] < 0) else deltas[2]
|
590
590
|
side = 'asks' if (deltas[2] < 0) else 'bids'
|
591
591
|
bookside = orderbook[side]
|
592
592
|
# price = 0 means that you have to remove the order from your book
|
593
|
-
amount = size if (price
|
594
|
-
bookside.store(price, amount, id)
|
593
|
+
amount = size if Precise.string_gt(price, '0') else '0'
|
594
|
+
bookside.store(self.parse_number(price), self.parse_number(amount), id)
|
595
595
|
else:
|
596
|
-
amount = self.
|
597
|
-
counter = self.
|
598
|
-
price = self.
|
599
|
-
size =
|
600
|
-
side = 'asks' if (amount
|
596
|
+
amount = self.safe_string(deltas, 2)
|
597
|
+
counter = self.safe_string(deltas, 1)
|
598
|
+
price = self.safe_string(deltas, 0)
|
599
|
+
size = Precise.string_neg(amount) if Precise.string_lt(amount, '0') else amount
|
600
|
+
side = 'asks' if Precise.string_lt(amount, '0') else 'bids'
|
601
601
|
bookside = orderbook[side]
|
602
|
-
bookside.store(price, size, counter)
|
602
|
+
bookside.store(self.parse_number(price), self.parse_number(size), self.parse_number(counter))
|
603
603
|
client.resolve(orderbook, messageHash)
|
604
604
|
|
605
605
|
def handle_checksum(self, client: Client, message, subscription):
|
@@ -958,11 +958,11 @@ class bitfinex2(ccxt.async_support.bitfinex2):
|
|
958
958
|
clientOrderId = self.safe_string(order, 1)
|
959
959
|
marketId = self.safe_string(order, 3)
|
960
960
|
symbol = self.safe_symbol(marketId)
|
961
|
-
market = self.safe_market(
|
962
|
-
amount = self.
|
961
|
+
market = self.safe_market(symbol)
|
962
|
+
amount = self.safe_string(order, 7)
|
963
963
|
side = 'buy'
|
964
|
-
if amount
|
965
|
-
amount =
|
964
|
+
if Precise.string_lt(amount, '0'):
|
965
|
+
amount = Precise.string_abs(amount)
|
966
966
|
side = 'sell'
|
967
967
|
remaining = Precise.string_abs(self.safe_string(order, 6))
|
968
968
|
type = self.safe_string(order, 8)
|
ccxt/pro/bitmex.py
CHANGED
@@ -1126,7 +1126,7 @@ class bitmex(ccxt.async_support.bitmex):
|
|
1126
1126
|
orderbook['symbol'] = symbol
|
1127
1127
|
for i in range(0, len(data)):
|
1128
1128
|
price = self.safe_float(data[i], 'price')
|
1129
|
-
size = self.
|
1129
|
+
size = self.convertFromRawQuantity(symbol, self.safe_string(data[i], 'size'))
|
1130
1130
|
id = self.safe_string(data[i], 'id')
|
1131
1131
|
side = self.safe_string(data[i], 'side')
|
1132
1132
|
side = 'bids' if (side == 'Buy') else 'asks'
|
@@ -1147,8 +1147,8 @@ class bitmex(ccxt.async_support.bitmex):
|
|
1147
1147
|
market = self.safe_market(marketId)
|
1148
1148
|
symbol = market['symbol']
|
1149
1149
|
orderbook = self.orderbooks[symbol]
|
1150
|
-
price = self.
|
1151
|
-
size = 0 if (action == 'delete') else self.
|
1150
|
+
price = self.safe_number(data[i], 'price')
|
1151
|
+
size = 0 if (action == 'delete') else self.convertFromRawQuantity(symbol, self.safe_string(data[i], 'size', '0'))
|
1152
1152
|
id = self.safe_string(data[i], 'id')
|
1153
1153
|
side = self.safe_string(data[i], 'side')
|
1154
1154
|
side = 'bids' if (side == 'Buy') else 'asks'
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.0.
|
3
|
+
Version: 4.0.49
|
4
4
|
Summary: A JavaScript / TypeScript / Python / C# / PHP cryptocurrency trading library with support for 130+ exchanges
|
5
5
|
Home-page: https://ccxt.com
|
6
6
|
Author: Igor Kroitor
|
@@ -263,20 +263,20 @@ console.log(version, Object.keys(exchanges));
|
|
263
263
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
264
264
|
|
265
265
|
<<<<<<< HEAD
|
266
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.
|
267
|
-
* unpkg: https://unpkg.com/ccxt@4.0.
|
266
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.49/dist/ccxt.browser.js
|
267
|
+
* unpkg: https://unpkg.com/ccxt@4.0.49/dist/ccxt.browser.js
|
268
268
|
=======
|
269
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.
|
270
|
-
* unpkg: https://unpkg.com/ccxt@4.0.
|
269
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.49/dist/ccxt.browser.js
|
270
|
+
* unpkg: https://unpkg.com/ccxt@4.0.49/dist/ccxt.browser.js
|
271
271
|
>>>>>>> e74b18a3a8a8cbcfe45ce4c1d32b9c03d4fae41c
|
272
272
|
|
273
273
|
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.
|
274
274
|
|
275
275
|
```HTML
|
276
276
|
<<<<<<< HEAD
|
277
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.
|
277
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.49/dist/ccxt.browser.js"></script>
|
278
278
|
=======
|
279
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.
|
279
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.49/dist/ccxt.browser.js"></script>
|
280
280
|
>>>>>>> e74b18a3a8a8cbcfe45ce4c1d32b9c03d4fae41c
|
281
281
|
```
|
282
282
|
|
@@ -1,10 +1,10 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=7DTJO1M6ULgdgICEshdDlm3O9eneyAt7Keabm_yygxM,15438
|
2
2
|
ccxt/ace.py,sha256=8uTO7fzyxHnEhE3Y8VDP2EcWxh9gjs9xPMbuXjkUA7A,41372
|
3
3
|
ccxt/alpaca.py,sha256=_cPmZ0obENxKSzsqLu0t1Ae-rUwN8z1DUB3Af8Kh4sA,33434
|
4
4
|
ccxt/ascendex.py,sha256=TlCKGbfrKuZ4OkDsq6ca70H--XiDDfChqVdWfmOGkng,132547
|
5
5
|
ccxt/bequant.py,sha256=O9tDvk7O1De-k3-G5lwXUVoNqzgfo_AJqQy4bXifdhM,1148
|
6
6
|
ccxt/bigone.py,sha256=3hAbaUMHIttNIte0xVSLUfiV914Fj6JsuyseQ4AIVk8,75446
|
7
|
-
ccxt/binance.py,sha256=
|
7
|
+
ccxt/binance.py,sha256=OXQesWw1nPe7tx4U0o97JnYnLcFVHA2VibiIqxiedfQ,392141
|
8
8
|
ccxt/binancecoinm.py,sha256=pncdw6Xw2X1Po-vEvAB4nL37scoS_axGAVxetPy1YQs,1645
|
9
9
|
ccxt/binanceus.py,sha256=RoC8nReBHXUJzRNyqMe4vhta6gLGuh1fyFkI8FOMKBE,2151
|
10
10
|
ccxt/binanceusdm.py,sha256=KPQGlCalQ0eGlPCs2tSanOxaP8O0zFRQjGntA16Yprw,2480
|
@@ -18,7 +18,7 @@ ccxt/bitfinex.py,sha256=wTB73lxlRYwpBbSBInGX3zO48bbAQ1Z3R4JVtPmDTKc,69410
|
|
18
18
|
ccxt/bitfinex2.py,sha256=0jk9pp_5LbOEKsRikUi8dfaFnK_t1n4sYi1PHto3gJE,111694
|
19
19
|
ccxt/bitflyer.py,sha256=cbFtkL0YMkE-1jHhxOWSZB8Hr7j8IrVd6DXvvciTNQU,37835
|
20
20
|
ccxt/bitforex.py,sha256=t3e95zu6aVGmJcdNyXPSHX0BGmFXA7PR8VsbIM4LZuc,32164
|
21
|
-
ccxt/bitget.py,sha256=
|
21
|
+
ccxt/bitget.py,sha256=PujFcqRATn8T793TWlpPQ2o3PC32XQ5BGuBvKSg3sUg,233937
|
22
22
|
ccxt/bithumb.py,sha256=QI2sZWiLN1rfXnn2zur1wosFNEWcyFZv_r-7DIVWkpo,42616
|
23
23
|
ccxt/bitmart.py,sha256=_naLKa09DI7xuLlkIKMIlTiORsJDdKoSyrym9HdEBv8,138642
|
24
24
|
ccxt/bitmex.py,sha256=I3lprOlp6CeanQ06Y4uerq_A8y55A-i5HqjUAwVeLbE,111695
|
@@ -58,21 +58,21 @@ ccxt/digifinex.py,sha256=c5XU19BTvIJA1VfBj63b_pAX_CWNV2EgRGELxtUw4l8,150997
|
|
58
58
|
ccxt/exmo.py,sha256=bZQg1t8yrKscH3FWDKd5DmGsjR9d5-vJnOIoGG1swfk,88943
|
59
59
|
ccxt/flowbtc.py,sha256=YPvm6tbsHJJUQBspFcHuVPQfVmiWzwnVvfzRqBdQX6U,1169
|
60
60
|
ccxt/fmfwio.py,sha256=RbVLvzPwnqfDsE7Ea-N13ISCC82eJVPsXYjrleASmew,1236
|
61
|
-
ccxt/gate.py,sha256=
|
61
|
+
ccxt/gate.py,sha256=2bzHCb4nVtqz2B7YJgAufCW5UpyOIo56nFqKO5qlu0Y,253181
|
62
62
|
ccxt/gateio.py,sha256=86AETJWODl_vA5VNeQRHZprmpNIY1HAxCddKZcnKSi8,445
|
63
63
|
ccxt/gemini.py,sha256=1VOPAe_VzFnMWuCXiVgP8Ra7wl7Osp3G_dvrGX6mHec,73902
|
64
64
|
ccxt/hitbtc.py,sha256=pREXtptKTCKxLe_QPu3voj348kTaDdDwcIFabKKSNBk,125278
|
65
65
|
ccxt/hitbtc3.py,sha256=qRAr4Zvaju9IQWRZUohdoN7xRnzIMPq8AyYb3gPv-Is,455
|
66
66
|
ccxt/hollaex.py,sha256=Hp4igDEwICB-vE1vXlDfLmClnu_WY4SMV4VhCbUD9Tg,73800
|
67
67
|
ccxt/huobi.py,sha256=qCzrbKaV85xLyKmyHXo1b_hgxdDyptjJ5u1Hkclq6f8,367886
|
68
|
-
ccxt/huobijp.py,sha256=
|
68
|
+
ccxt/huobijp.py,sha256=jxwMeNrvNFD9vrx81rSw-X7mvUj7KmhD_i2VeLyvh90,86480
|
69
69
|
ccxt/huobipro.py,sha256=zdi6Dk59pKqYoaHZDD-mJ57ZvomXBoIUiS5oT3B3BAE,572
|
70
70
|
ccxt/idex.py,sha256=rciy-LBQTjVLvdLJlsJ6DiRCPc_uTx2XfavJRlso9u8,67324
|
71
71
|
ccxt/independentreserve.py,sha256=573tBnujPiXdqIu2nTPQ-pXuY1MBSkXXbyyy50wMX5o,29830
|
72
72
|
ccxt/indodax.py,sha256=PO9OVPOcGAXycM561K8Q0CQKsNLrGQh_kd43_re8L2w,42559
|
73
|
-
ccxt/kraken.py,sha256=
|
73
|
+
ccxt/kraken.py,sha256=tsXIgIhWTnFHoYLU-7G-mhHJ0fIY0xGHCYGU7UUG5Po,106036
|
74
74
|
ccxt/krakenfutures.py,sha256=XNsd_ucgawglec57ivkLWIC5Pq27HbvJ7NLcO0zT780,87749
|
75
|
-
ccxt/kucoin.py,sha256=
|
75
|
+
ccxt/kucoin.py,sha256=bXDUc7D8OdjGxY71wRdVd2L6Fzoz4y2UT9lJW6sJ0Yg,181469
|
76
76
|
ccxt/kucoinfutures.py,sha256=krR1tegD6QK2VqTy8GZid36mUodqggMrOrsFzhxwr_Y,101317
|
77
77
|
ccxt/kuna.py,sha256=wGouWAHNqVceC-gKCxGvyatOaOskqKsGoDcZBKbX2S4,37785
|
78
78
|
ccxt/latoken.py,sha256=IVaCUWRkZMcBIFM_l2V8wfoeSg7GU89NsWuVIg6hXcM,70184
|
@@ -89,7 +89,7 @@ ccxt/oceanex.py,sha256=H7iiIWo9WInk_wwxScMZBGxs2EH7kNpEui9IsLKYVAY,38242
|
|
89
89
|
ccxt/okcoin.py,sha256=B5otctOYDvWkhckFWW7tfhUQsQaSbPiZh0X0eqR1K_w,177829
|
90
90
|
ccxt/okex.py,sha256=nVDSzVztmboH593DVByjzFoOpFTzumcQFH_T9kdVKlE,434
|
91
91
|
ccxt/okex5.py,sha256=LKTogVF1svNkqW_-Cx0AuAopu6esgFf7ucbv7CaodUg,441
|
92
|
-
ccxt/okx.py,sha256=
|
92
|
+
ccxt/okx.py,sha256=bf0sV8B16Xy_Rc4XaCKkorJlyWSeiGqU9yAtHEVJAWw,297962
|
93
93
|
ccxt/paymium.py,sha256=6nfQfBH6HWCfp4NoO7nxQh4GDTuQz75gDL_9uZnb7yI,23976
|
94
94
|
ccxt/phemex.py,sha256=z_cd_aFqo1zSR_3llrcV22wvF09mYSG7OHEXBjvgWnE,198133
|
95
95
|
ccxt/poloniex.py,sha256=x9lkjYRnGOKkZaAJwqdtz0EUATuknHgeTkXYXSN0ez4,93495
|
@@ -112,10 +112,10 @@ ccxt/abstract/alpaca.py,sha256=GKGGXKJ9WzW9V3SmOX_Jjaea_QTa04Eg5nYhQgFErGI,1861
|
|
112
112
|
ccxt/abstract/ascendex.py,sha256=lMrOIR7VWJXoNaA8rjCNI8p-WTYsVlpC_D4jpDg5k_8,11197
|
113
113
|
ccxt/abstract/bequant.py,sha256=-bjb83y_4FGdHtHMo-naHYoI5JyltlF2M-TzjAZJ3Hg,10949
|
114
114
|
ccxt/abstract/bigone.py,sha256=kuQi7l8C_zqTHdfXiBOfDR7424mzST2OjtN9wMStkWc,2457
|
115
|
-
ccxt/abstract/binance.py,sha256=
|
116
|
-
ccxt/abstract/binancecoinm.py,sha256=
|
117
|
-
ccxt/abstract/binanceus.py,sha256=
|
118
|
-
ccxt/abstract/binanceusdm.py,sha256=
|
115
|
+
ccxt/abstract/binance.py,sha256=uHwTtLaCWfpOZOckbf0iKUOBgpEFBp9ubNv_BXmAICo,78284
|
116
|
+
ccxt/abstract/binancecoinm.py,sha256=uHwTtLaCWfpOZOckbf0iKUOBgpEFBp9ubNv_BXmAICo,78284
|
117
|
+
ccxt/abstract/binanceus.py,sha256=uHwTtLaCWfpOZOckbf0iKUOBgpEFBp9ubNv_BXmAICo,78284
|
118
|
+
ccxt/abstract/binanceusdm.py,sha256=uHwTtLaCWfpOZOckbf0iKUOBgpEFBp9ubNv_BXmAICo,78284
|
119
119
|
ccxt/abstract/bingx.py,sha256=PJzOcIO960mxEAPy8bFEZ3vJHrqUM3hkCc-6QERkkwU,7635
|
120
120
|
ccxt/abstract/bit2c.py,sha256=np6i756kSB5dO3Nj6POLKxkWkpYcsGg-4LS8BwPrizI,2830
|
121
121
|
ccxt/abstract/bitbank.py,sha256=k5D8PoPW2N79K_24NL9yY0qkwaCgzi_VoYUlqnj2bs8,2606
|
@@ -126,7 +126,7 @@ ccxt/abstract/bitfinex.py,sha256=OLUXdJEycyN_qrBhPuTTOVlwu3jkqVWenoTmS-W3bOE,760
|
|
126
126
|
ccxt/abstract/bitfinex2.py,sha256=PAch4aEMHMYjV8up6YHmibfLz6sn4wh-knkSTKZbJrY,19171
|
127
127
|
ccxt/abstract/bitflyer.py,sha256=3ngG1GJJCNMzYMWoNXCEEgLxmTl7eRf7_JU4M0P2rqo,3576
|
128
128
|
ccxt/abstract/bitforex.py,sha256=_vwOUvBfzQazUvoflGK53m8i7xRgsmzFL4qP5UzqnZ8,2789
|
129
|
-
ccxt/abstract/bitget.py,sha256=
|
129
|
+
ccxt/abstract/bitget.py,sha256=s2fHgJ3HYPFTkks1S_vRZUrjwjcV6ibwGNGYE5gGPLw,36355
|
130
130
|
ccxt/abstract/bithumb.py,sha256=I_ZNjXND1I4IRz6AsIwlZV-XoOt0vtMo4kUroAcC2Kk,2659
|
131
131
|
ccxt/abstract/bitmart.py,sha256=Zw34giZABSCscioucHqX8aBT7EEbADrJW_vgmGqNS-Q,9098
|
132
132
|
ccxt/abstract/bitmex.py,sha256=k00c5G7Tj9u00uV7Qj7tBm4uyr5oi4f73UDJA9nA_IY,8397
|
@@ -177,7 +177,7 @@ ccxt/abstract/huobipro.py,sha256=q7z217s-eusulW8dYKTDMc6rktX2GMnbrXhZCtIS55c,970
|
|
177
177
|
ccxt/abstract/idex.py,sha256=kFcWa8PauxofzN_k2DyQ0aZxQ70VPNAWMcEUZrl7XqE,2129
|
178
178
|
ccxt/abstract/independentreserve.py,sha256=Cue0hud5acRs2Q6oSvQ7Rx-YWS_fuACs6uV3aIE20ZM,4165
|
179
179
|
ccxt/abstract/indodax.py,sha256=r8hOXU3ZXDRV90VSZ3a0Wjl75H_BA7sWCJVrXRUPHOc,2266
|
180
|
-
ccxt/abstract/kraken.py,sha256=
|
180
|
+
ccxt/abstract/kraken.py,sha256=L8CcnKbRbvEEnnhjXxHnx7RT2USdrMbYstSjQehh2gA,5200
|
181
181
|
ccxt/abstract/krakenfutures.py,sha256=TeQnJLYSf3N98vMiNzHOc3BLFGEv4mLzHt1-2zC9YAc,3321
|
182
182
|
ccxt/abstract/kucoin.py,sha256=926YxipycIcvb2QKWgCjcdJm65p7PLg4mFCpU7Se2EQ,21799
|
183
183
|
ccxt/abstract/kucoinfutures.py,sha256=WEFmDsdDr5zw0TTlg0I0c841zDNH3teONR_-Oc6Aaz4,22954
|
@@ -213,13 +213,13 @@ ccxt/abstract/woo.py,sha256=ah_izsOyPt18l_rl1nzgbtwpRTeAo1_MJE8_qMvdCCg,7747
|
|
213
213
|
ccxt/abstract/yobit.py,sha256=8ycfCO8ORFly9hc0Aa47sZyX4_ZKPXS9h9yJzI-uQ7Q,1339
|
214
214
|
ccxt/abstract/zaif.py,sha256=m15WHdl3gYy0GOXNZ8NEH8eE7sVh8c0T_ITNuU8vXeU,3935
|
215
215
|
ccxt/abstract/zonda.py,sha256=VoxuPkSq8vAvKnDvOqnByhwsIf09m7yIrs8HejFrDk4,5482
|
216
|
-
ccxt/async_support/__init__.py,sha256=
|
216
|
+
ccxt/async_support/__init__.py,sha256=gQy737QkXLdCPwFjOPyuqfgigRe4cFK3SdZ47zbZZuA,15221
|
217
217
|
ccxt/async_support/ace.py,sha256=xTtzqhVgpoDI4YgR9rRTRHTV2UsQmNYNfbuJc6aBKxA,41596
|
218
218
|
ccxt/async_support/alpaca.py,sha256=hWimV0LrPixw15-FH7lMFB6s6EMEOjDlZOhWjznzu3g,33580
|
219
219
|
ccxt/async_support/ascendex.py,sha256=Guhr-SXw2H0UliozUhFjg-Z7Dt1EZGVdkydv5csAWaI,133179
|
220
220
|
ccxt/async_support/bequant.py,sha256=kLA0e9URC1rDEHgpb61pEGAn5jZXzE715lEcJjPdLRo,1162
|
221
221
|
ccxt/async_support/bigone.py,sha256=rNfleAZHUqHUx20fXBH8_-rn4wpwjVDZkxERElUERcU,75844
|
222
|
-
ccxt/async_support/binance.py,sha256=
|
222
|
+
ccxt/async_support/binance.py,sha256=Xy5VE_eNPNk0Bact2xlqLTs_fKcVajtZz-pw3yTZ3CQ,393375
|
223
223
|
ccxt/async_support/binancecoinm.py,sha256=IY3RLZptQA2nmZaUYRGfTa5ZY4VMWBpFYfwHc8zTHw0,1683
|
224
224
|
ccxt/async_support/binanceus.py,sha256=Jtyl0jtSOpdjAAAYcSUzH6YRVxe88RJ6f4_IUge5gWg,2165
|
225
225
|
ccxt/async_support/binanceusdm.py,sha256=-1r4A4tmV2pCiLGO80hzq7MIIj4MTzOD7buZGv6JauA,2518
|
@@ -233,7 +233,7 @@ ccxt/async_support/bitfinex.py,sha256=26P6ZI55XcsPrsFf9s6-nqJl_kZFNL2kyEO5K4xuXX
|
|
233
233
|
ccxt/async_support/bitfinex2.py,sha256=abKkmnJkBlQ-5bb8K882opTvPXwsaPivBLHYYmezmZQ,112164
|
234
234
|
ccxt/async_support/bitflyer.py,sha256=UaA9r_Hu-BBHt_8w0TT3tfJwH-pAUDjhE5WGRBT_YYo,38143
|
235
235
|
ccxt/async_support/bitforex.py,sha256=lI1Zz7snYpmCe10LEdO68kFQ8aRY2UXN3qoz2YUC8uc,32388
|
236
|
-
ccxt/async_support/bitget.py,sha256=
|
236
|
+
ccxt/async_support/bitget.py,sha256=d4IdF8GBh7WZbZL5P6c2rgkw43c2GOmL7rdTXOLCeDc,234859
|
237
237
|
ccxt/async_support/bithumb.py,sha256=PSbN5liXM68a3ZR13v72VLVEXODBo84dw_M-E-JrVuI,42834
|
238
238
|
ccxt/async_support/bitmart.py,sha256=AMI3JYaYpj4WEbOcr7iqCzhDXfi2cqZwam4c8S_oNyM,139280
|
239
239
|
ccxt/async_support/bitmex.py,sha256=u2XFnM88MO1kE1LJzxjtizNaby9jwch9QPLe8Ru2vGU,112189
|
@@ -273,21 +273,21 @@ ccxt/async_support/digifinex.py,sha256=q3wXZtkBVSP29_P97WSQo5v0zIUbO5rQwMzGZMRkh
|
|
273
273
|
ccxt/async_support/exmo.py,sha256=ocg9JUh_6p3OFA_DJdhP5tVkTuYnFfgIeMqMNzvg9XY,89485
|
274
274
|
ccxt/async_support/flowbtc.py,sha256=bCnvtcNnPxxaxqVjI1GGXKhIpz_1r4GIFWqqPokvCR0,1183
|
275
275
|
ccxt/async_support/fmfwio.py,sha256=lzfSnPrB2ARcC3EIqAuBM4vyg6LJ6n8RE71Zvt3ez1s,1250
|
276
|
-
ccxt/async_support/gate.py,sha256=
|
276
|
+
ccxt/async_support/gate.py,sha256=iXBaw7rT_JuB352GVV0UJp51sYMefNflArAXpteZLB8,254121
|
277
277
|
ccxt/async_support/gateio.py,sha256=6_t032F9p9x5KGTjtSuqGXITzFOx-XAQBYLpsuQjzxw,459
|
278
278
|
ccxt/async_support/gemini.py,sha256=dfyJ83asotNsCBLZAMVDn8kuQ1WliXM3hk4LVrPsU7k,74392
|
279
279
|
ccxt/async_support/hitbtc.py,sha256=F-uPs4m6HeNUKdAOCix93ybgg3o6flf9-r75dTGdYUI,125964
|
280
280
|
ccxt/async_support/hitbtc3.py,sha256=dmSYoD2o4av_zzbZI8HNIoj8BWxA7QozsVpy8JaOXzU,469
|
281
281
|
ccxt/async_support/hollaex.py,sha256=YSxl-hCVL7GeilD6USDjMIET0pKJsWQwExNuekJsliw,74234
|
282
282
|
ccxt/async_support/huobi.py,sha256=FTLG1UBTiMVlcIn5HgLKiX1mn9S9EIDLRI-NtbhCQO8,369432
|
283
|
-
ccxt/async_support/huobijp.py,sha256=
|
283
|
+
ccxt/async_support/huobijp.py,sha256=D0nbPfCOMc_v4BsLeyUSFJIDI9Pmft_nqHyGL-anz4w,86962
|
284
284
|
ccxt/async_support/huobipro.py,sha256=Xb148Da6Mlf8nYhB_c8frd8ZMt6C59VjWgk4o9tIZWA,586
|
285
285
|
ccxt/async_support/idex.py,sha256=hqSQOI4cVgbqBcE_gKxaRb1MvBlBK7TJuoGTJyj5j5c,67764
|
286
286
|
ccxt/async_support/independentreserve.py,sha256=sCzjC8-8o1vj9Y1QEAWtQNHNB-8b5PTMGzjKpKBZXpA,30066
|
287
287
|
ccxt/async_support/indodax.py,sha256=uLcWP-2WsMvgU6Al5T_RtoACudC-PZ1DYy9X9qRRBdA,42831
|
288
|
-
ccxt/async_support/kraken.py,sha256=
|
288
|
+
ccxt/async_support/kraken.py,sha256=_ymeu34WTPE2B-WNvOrdmyEGyscncHxaQQu4dKv1_3s,106608
|
289
289
|
ccxt/async_support/krakenfutures.py,sha256=paChQxb72h2v9QgJn6ieF0QpoLlSJ2uoWq6JyKQPkfc,88105
|
290
|
-
ccxt/async_support/kucoin.py,sha256=
|
290
|
+
ccxt/async_support/kucoin.py,sha256=U7U1QaTzJ0cbAq1ZF908K7G7b6ERCKlfijLYpcavfbA,182151
|
291
291
|
ccxt/async_support/kucoinfutures.py,sha256=YocJfbHDkE5Y_tapIGSYYj7rIG-CZnIApmUN8qIPOHo,101787
|
292
292
|
ccxt/async_support/kuna.py,sha256=Myuc-CEhyAE9_RmYdYRWKnHuFq1L6la-p7pOO3WtKwA,38033
|
293
293
|
ccxt/async_support/latoken.py,sha256=dx98HZkmPZVbTDjPJhF7aFRpCc5PvC_To6c1vpCJh_0,70576
|
@@ -304,7 +304,7 @@ ccxt/async_support/oceanex.py,sha256=uZcG5DwNv6hehxF8wMuHjBIW5sxkJ0_WOgeOPBhy9Go
|
|
304
304
|
ccxt/async_support/okcoin.py,sha256=WvLWTmoUs8ARk7GTglgk4BwMtTj_kWUW6nRuuHVdNVk,178293
|
305
305
|
ccxt/async_support/okex.py,sha256=6dbtH4bC1C2x4cQUK6W62y7PuDgO3YazuFa7DYhM4Jw,448
|
306
306
|
ccxt/async_support/okex5.py,sha256=tq41tKx06j3DDO9pu9iKInpjayVprbobVNTK8qb7hoM,455
|
307
|
-
ccxt/async_support/okx.py,sha256=
|
307
|
+
ccxt/async_support/okx.py,sha256=AbI8yv4FDERk3k_lheMK_YghPW2zFn_hryxYH4DEbUc,299057
|
308
308
|
ccxt/async_support/paymium.py,sha256=A1vCDjoXiyu7pWs3E-MZfUdt1d-OXESOK1NxGOOUg7Y,24164
|
309
309
|
ccxt/async_support/phemex.py,sha256=63_eryYdJlTQwOs427SVvZy2ol6khHeRekNWT1jP0-Q,198729
|
310
310
|
ccxt/async_support/poloniex.py,sha256=t-_OcziYnb9dH9QCgRO9_MGcyJ17fEcqKCdU3ilhkgU,93995
|
@@ -322,7 +322,7 @@ ccxt/async_support/yobit.py,sha256=cRJgQNE-EfjXAligG8-iKxYA-yt9tKGilGnXg1PDrbg,5
|
|
322
322
|
ccxt/async_support/zaif.py,sha256=Bg4Bfk63mluMSp1_8VE4_JPZEXSb940MocZGFisG9IA,28985
|
323
323
|
ccxt/async_support/zonda.py,sha256=9je6awNUpQAHqF8uKfqIqjXyG8CQOPmzU1xDdxzpNDo,79823
|
324
324
|
ccxt/async_support/base/__init__.py,sha256=aVYSsFi--b4InRs9zDN_wtCpj8odosAB726JdUHavrk,67
|
325
|
-
ccxt/async_support/base/exchange.py,sha256=
|
325
|
+
ccxt/async_support/base/exchange.py,sha256=mQThUcbseoPBnbsFMQ7oFMQuPq9xHcte1GpnXb816oY,144294
|
326
326
|
ccxt/async_support/base/throttler.py,sha256=tvDVcdRUVYi8fZRlEcnqtgzcgB_KMUMRs5Pu8tuU-tU,1847
|
327
327
|
ccxt/async_support/base/ws/__init__.py,sha256=uockzpLuwntKGZbs5EOWFe-Zg-k6Cj7GhNJLc_RX0so,1791
|
328
328
|
ccxt/async_support/base/ws/aiohttp_client.py,sha256=xmlZV30Vb9Kq7JCm3D5FuEmuj1zp5H4F4hrz8-Y-Ir4,4999
|
@@ -336,10 +336,10 @@ ccxt/async_support/base/ws/order_book_side.py,sha256=GH-475Ni0mLOx7mUDnz4jjzaGkh
|
|
336
336
|
ccxt/base/__init__.py,sha256=eTx1OE3HJjspFUQjGm6LBhaQiMKJnXjkdP-JUXknyQ0,1320
|
337
337
|
ccxt/base/decimal_to_precision.py,sha256=fgWRBzRTtsf3r2INyS4f7WHlzgjB5YM1ekiwqD21aac,6634
|
338
338
|
ccxt/base/errors.py,sha256=-LVeTNyXvu3QEgb-p-KzMpcBgzHlvFTwDzmZK7Gfc14,3401
|
339
|
-
ccxt/base/exchange.py,sha256=
|
339
|
+
ccxt/base/exchange.py,sha256=9LulvBWik4LXeMWe3wXRqM5Sxc5my1LMNU9IiOEO69M,183893
|
340
340
|
ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
|
341
341
|
ccxt/base/types.py,sha256=q_IpjVK54UQeaepaNNDVDXshmT87EFs1bWFuOnt4q-o,2053
|
342
|
-
ccxt/pro/__init__.py,sha256=
|
342
|
+
ccxt/pro/__init__.py,sha256=yXwXmpM5PzkfFnr9-ZUFb1zdPDIjYjWhPc9p0BJQQDk,6480
|
343
343
|
ccxt/pro/alpaca.py,sha256=BBBvLzVQ6CNS2000QZp487Iwg99ZJbRycpQo3ETePtE,26671
|
344
344
|
ccxt/pro/ascendex.py,sha256=ChYDvZALiyF0LylzEVeZE41oSXT2JWkCWI7SWwzzn-Q,34551
|
345
345
|
ccxt/pro/bequant.py,sha256=3IeQ0vPg-eVqPiGMfX7yqH9qtXKm1ZqocQDeLwpA8EE,1093
|
@@ -348,11 +348,11 @@ ccxt/pro/binancecoinm.py,sha256=vu5SUgP70T1Dax-Am3rch7ZldGrmUwxr_rI51Y38xjw,724
|
|
348
348
|
ccxt/pro/binanceus.py,sha256=xKL-1cOHyqlLTwLGg-DPf6g3JMM1oU2Kv708FiGJwrY,2016
|
349
349
|
ccxt/pro/binanceusdm.py,sha256=S0eT662O2ReplsihWk42nhJWqw1XsODpeDQa9eFVVt8,1357
|
350
350
|
ccxt/pro/bitcoincom.py,sha256=ipRe4xMqvwh81FAJhzQI8P_sGCmmHFw42owF-FwcoD4,914
|
351
|
-
ccxt/pro/bitfinex.py,sha256=
|
352
|
-
ccxt/pro/bitfinex2.py,sha256=
|
351
|
+
ccxt/pro/bitfinex.py,sha256=v8_nZxTwsmqDMOuSDgA6ulGIkWTVobgSn5o-wXDJEfU,24762
|
352
|
+
ccxt/pro/bitfinex2.py,sha256=T9gDoliXCAi9P7wbR76e4W4CimPPZn3aZDLDsQx0lpk,42255
|
353
353
|
ccxt/pro/bitget.py,sha256=npGY_lTy1JDTwheySUzaztAX_yvQZKsELtOdlzQZ-yA,46219
|
354
354
|
ccxt/pro/bitmart.py,sha256=Qlo6NR4AVOCmruCLk0D0q_1o_LBq4N3OjyVPL0t8mtk,24488
|
355
|
-
ccxt/pro/bitmex.py,sha256=
|
355
|
+
ccxt/pro/bitmex.py,sha256=GpAPt73GrmbWZIz0cf4iyYuBqNXO-Uv8GQjx-M6ZUro,55687
|
356
356
|
ccxt/pro/bitopro.py,sha256=krqE38rEW8QVxhoIF88SBZgKg_DCVzdvbPnlatrLwQU,12558
|
357
357
|
ccxt/pro/bitpanda.py,sha256=ZdzBSBdCcWMDbzMdsqxp0YmgMEERSdMaVtMYaozuu7A,54410
|
358
358
|
ccxt/pro/bitrue.py,sha256=X9NZHFgAL3367mL9t6AgT6K9VukKmn9ZnE2kZSeVYKk,16235
|
@@ -450,7 +450,7 @@ ccxt/test/base/test_ticker.py,sha256=h9AV_O6s-Ax3vB3sFoN0Mz22rMOi65i9BDv0SNejH98
|
|
450
450
|
ccxt/test/base/test_trade.py,sha256=bL9o3S_TGW8Nnlxu-BYkRG8NyRzKAWrU66uO5jJCM3A,2259
|
451
451
|
ccxt/test/base/test_trading_fee.py,sha256=yRCpLHLg_ca9JQXdZB3_pIMHgHLGEfeQF95E6d1e2Bc,1125
|
452
452
|
ccxt/test/base/test_transaction.py,sha256=BTbB4UHHXkrvYgwbrhh867nVRlevmIkIrz1W_odlQJI,1434
|
453
|
-
ccxt-4.0.
|
454
|
-
ccxt-4.0.
|
455
|
-
ccxt-4.0.
|
456
|
-
ccxt-4.0.
|
453
|
+
ccxt-4.0.49.dist-info/METADATA,sha256=L1b6CPB4uPs877eACBtF188kAUV5NDG8TPVPlBvTjWs,111374
|
454
|
+
ccxt-4.0.49.dist-info/WHEEL,sha256=a-zpFRIJzOq5QfuhBzbhiA1eHTzNCJn8OdRvhdNX0Rk,110
|
455
|
+
ccxt-4.0.49.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
456
|
+
ccxt-4.0.49.dist-info/RECORD,,
|
File without changes
|
File without changes
|