ccxt 4.0.48__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 +2 -2
- 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 +2 -2
- ccxt/okx.py +6 -7
- ccxt/pro/__init__.py +1 -1
- ccxt/pro/bitfinex.py +3 -3
- ccxt/pro/bitfinex2.py +13 -13
- {ccxt-4.0.48.dist-info → ccxt-4.0.49.dist-info}/METADATA +7 -7
- {ccxt-4.0.48.dist-info → ccxt-4.0.49.dist-info}/RECORD +31 -31
- {ccxt-4.0.48.dist-info → ccxt-4.0.49.dist-info}/WHEEL +0 -0
- {ccxt-4.0.48.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': {
|
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': {
|
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
@@ -325,13 +325,13 @@ class bitfinex(ccxt.async_support.bitfinex):
|
|
325
325
|
orderbook = self.orderbooks[symbol]
|
326
326
|
if isRaw:
|
327
327
|
id = self.safe_string(message, 1)
|
328
|
-
price = self.
|
328
|
+
price = self.safe_string(message, 2)
|
329
329
|
size = -message[3] if (message[3] < 0) else message[3]
|
330
330
|
side = 'asks' if (message[3] < 0) else 'bids'
|
331
331
|
bookside = orderbook[side]
|
332
332
|
# price = 0 means that you have to remove the order from your book
|
333
|
-
amount = size if (price
|
334
|
-
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)
|
335
335
|
else:
|
336
336
|
size = -message[3] if (message[3] < 0) else message[3]
|
337
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)
|
@@ -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,8 +348,8 @@ 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
355
|
ccxt/pro/bitmex.py,sha256=GpAPt73GrmbWZIz0cf4iyYuBqNXO-Uv8GQjx-M6ZUro,55687
|
@@ -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
|