ccxt 4.0.36__py2.py3-none-any.whl → 4.0.38__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.
- ccxt/__init__.py +1 -1
- ccxt/abstract/binance.py +5 -2
- ccxt/abstract/binancecoinm.py +5 -2
- ccxt/abstract/binanceus.py +5 -2
- ccxt/abstract/binanceusdm.py +5 -2
- ccxt/abstract/gate.py +2 -0
- ccxt/abstract/gateio.py +2 -0
- ccxt/async_support/__init__.py +1 -1
- ccxt/async_support/base/exchange.py +3 -3
- ccxt/async_support/binance.py +5 -2
- ccxt/async_support/coinex.py +15 -15
- ccxt/async_support/gate.py +3 -0
- ccxt/base/exchange.py +3 -3
- ccxt/binance.py +5 -2
- ccxt/coinex.py +15 -15
- ccxt/gate.py +3 -0
- ccxt/pro/__init__.py +1 -1
- {ccxt-4.0.36.dist-info → ccxt-4.0.38.dist-info}/METADATA +4 -4
- {ccxt-4.0.36.dist-info → ccxt-4.0.38.dist-info}/RECORD +21 -21
- {ccxt-4.0.36.dist-info → ccxt-4.0.38.dist-info}/WHEEL +0 -0
- {ccxt-4.0.36.dist-info → ccxt-4.0.38.dist-info}/top_level.txt +0 -0
ccxt/__init__.py
CHANGED
ccxt/abstract/binance.py
CHANGED
@@ -298,8 +298,9 @@ class ImplicitAPI:
|
|
298
298
|
sapi_post_loan_vip_repay = sapiPostLoanVipRepay = Entry('loan/vip/repay', 'sapi', 'POST', {'cost': 40})
|
299
299
|
sapi_post_convert_getquote = sapiPostConvertGetQuote = Entry('convert/getQuote', 'sapi', 'POST', {'cost': 20.001})
|
300
300
|
sapi_post_convert_acceptquote = sapiPostConvertAcceptQuote = Entry('convert/acceptQuote', 'sapi', 'POST', {'cost': 3.3335})
|
301
|
-
sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost':
|
302
|
-
|
301
|
+
sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 150})
|
302
|
+
sapi_post_portfolio_asset_collection = sapiPostPortfolioAssetCollection = Entry('portfolio/asset-collection', 'sapi', 'POST', {'cost': 6})
|
303
|
+
sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 150})
|
303
304
|
sapi_post_portfolio_repay_futures_switch = sapiPostPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'sapi', 'POST', {'cost': 150})
|
304
305
|
sapi_post_portfolio_repay_futures_negative_balance = sapiPostPortfolioRepayFuturesNegativeBalance = Entry('portfolio/repay-futures-negative-balance', 'sapi', 'POST', {'cost': 150})
|
305
306
|
sapi_post_lending_auto_invest_plan_add = sapiPostLendingAutoInvestPlanAdd = Entry('lending/auto-invest/plan/add', 'sapi', 'POST', {'cost': 0.1})
|
@@ -492,6 +493,8 @@ class ImplicitAPI:
|
|
492
493
|
eapiprivate_get_usertrades = eapiPrivateGetUserTrades = Entry('userTrades', 'eapiPrivate', 'GET', {'cost': 5})
|
493
494
|
eapiprivate_get_exerciserecord = eapiPrivateGetExerciseRecord = Entry('exerciseRecord', 'eapiPrivate', 'GET', {'cost': 5})
|
494
495
|
eapiprivate_get_bill = eapiPrivateGetBill = Entry('bill', 'eapiPrivate', 'GET', {'cost': 1})
|
496
|
+
eapiprivate_get_income_asyn = eapiPrivateGetIncomeAsyn = Entry('income/asyn', 'eapiPrivate', 'GET', {'cost': 5})
|
497
|
+
eapiprivate_get_income_asyn_id = eapiPrivateGetIncomeAsynId = Entry('income/asyn/id', 'eapiPrivate', 'GET', {'cost': 5})
|
495
498
|
eapiprivate_get_marginaccount = eapiPrivateGetMarginAccount = Entry('marginAccount', 'eapiPrivate', 'GET', {'cost': 3})
|
496
499
|
eapiprivate_get_mmp = eapiPrivateGetMmp = Entry('mmp', 'eapiPrivate', 'GET', {'cost': 1})
|
497
500
|
eapiprivate_get_countdowncancelall = eapiPrivateGetCountdownCancelAll = Entry('countdownCancelAll', 'eapiPrivate', 'GET', {'cost': 1})
|
ccxt/abstract/binancecoinm.py
CHANGED
@@ -298,8 +298,9 @@ class ImplicitAPI:
|
|
298
298
|
sapi_post_loan_vip_repay = sapiPostLoanVipRepay = Entry('loan/vip/repay', 'sapi', 'POST', {'cost': 40})
|
299
299
|
sapi_post_convert_getquote = sapiPostConvertGetQuote = Entry('convert/getQuote', 'sapi', 'POST', {'cost': 20.001})
|
300
300
|
sapi_post_convert_acceptquote = sapiPostConvertAcceptQuote = Entry('convert/acceptQuote', 'sapi', 'POST', {'cost': 3.3335})
|
301
|
-
sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost':
|
302
|
-
|
301
|
+
sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 150})
|
302
|
+
sapi_post_portfolio_asset_collection = sapiPostPortfolioAssetCollection = Entry('portfolio/asset-collection', 'sapi', 'POST', {'cost': 6})
|
303
|
+
sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 150})
|
303
304
|
sapi_post_portfolio_repay_futures_switch = sapiPostPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'sapi', 'POST', {'cost': 150})
|
304
305
|
sapi_post_portfolio_repay_futures_negative_balance = sapiPostPortfolioRepayFuturesNegativeBalance = Entry('portfolio/repay-futures-negative-balance', 'sapi', 'POST', {'cost': 150})
|
305
306
|
sapi_post_lending_auto_invest_plan_add = sapiPostLendingAutoInvestPlanAdd = Entry('lending/auto-invest/plan/add', 'sapi', 'POST', {'cost': 0.1})
|
@@ -492,6 +493,8 @@ class ImplicitAPI:
|
|
492
493
|
eapiprivate_get_usertrades = eapiPrivateGetUserTrades = Entry('userTrades', 'eapiPrivate', 'GET', {'cost': 5})
|
493
494
|
eapiprivate_get_exerciserecord = eapiPrivateGetExerciseRecord = Entry('exerciseRecord', 'eapiPrivate', 'GET', {'cost': 5})
|
494
495
|
eapiprivate_get_bill = eapiPrivateGetBill = Entry('bill', 'eapiPrivate', 'GET', {'cost': 1})
|
496
|
+
eapiprivate_get_income_asyn = eapiPrivateGetIncomeAsyn = Entry('income/asyn', 'eapiPrivate', 'GET', {'cost': 5})
|
497
|
+
eapiprivate_get_income_asyn_id = eapiPrivateGetIncomeAsynId = Entry('income/asyn/id', 'eapiPrivate', 'GET', {'cost': 5})
|
495
498
|
eapiprivate_get_marginaccount = eapiPrivateGetMarginAccount = Entry('marginAccount', 'eapiPrivate', 'GET', {'cost': 3})
|
496
499
|
eapiprivate_get_mmp = eapiPrivateGetMmp = Entry('mmp', 'eapiPrivate', 'GET', {'cost': 1})
|
497
500
|
eapiprivate_get_countdowncancelall = eapiPrivateGetCountdownCancelAll = Entry('countdownCancelAll', 'eapiPrivate', 'GET', {'cost': 1})
|
ccxt/abstract/binanceus.py
CHANGED
@@ -298,8 +298,9 @@ class ImplicitAPI:
|
|
298
298
|
sapi_post_loan_vip_repay = sapiPostLoanVipRepay = Entry('loan/vip/repay', 'sapi', 'POST', {'cost': 40})
|
299
299
|
sapi_post_convert_getquote = sapiPostConvertGetQuote = Entry('convert/getQuote', 'sapi', 'POST', {'cost': 20.001})
|
300
300
|
sapi_post_convert_acceptquote = sapiPostConvertAcceptQuote = Entry('convert/acceptQuote', 'sapi', 'POST', {'cost': 3.3335})
|
301
|
-
sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost':
|
302
|
-
|
301
|
+
sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 150})
|
302
|
+
sapi_post_portfolio_asset_collection = sapiPostPortfolioAssetCollection = Entry('portfolio/asset-collection', 'sapi', 'POST', {'cost': 6})
|
303
|
+
sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 150})
|
303
304
|
sapi_post_portfolio_repay_futures_switch = sapiPostPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'sapi', 'POST', {'cost': 150})
|
304
305
|
sapi_post_portfolio_repay_futures_negative_balance = sapiPostPortfolioRepayFuturesNegativeBalance = Entry('portfolio/repay-futures-negative-balance', 'sapi', 'POST', {'cost': 150})
|
305
306
|
sapi_post_lending_auto_invest_plan_add = sapiPostLendingAutoInvestPlanAdd = Entry('lending/auto-invest/plan/add', 'sapi', 'POST', {'cost': 0.1})
|
@@ -492,6 +493,8 @@ class ImplicitAPI:
|
|
492
493
|
eapiprivate_get_usertrades = eapiPrivateGetUserTrades = Entry('userTrades', 'eapiPrivate', 'GET', {'cost': 5})
|
493
494
|
eapiprivate_get_exerciserecord = eapiPrivateGetExerciseRecord = Entry('exerciseRecord', 'eapiPrivate', 'GET', {'cost': 5})
|
494
495
|
eapiprivate_get_bill = eapiPrivateGetBill = Entry('bill', 'eapiPrivate', 'GET', {'cost': 1})
|
496
|
+
eapiprivate_get_income_asyn = eapiPrivateGetIncomeAsyn = Entry('income/asyn', 'eapiPrivate', 'GET', {'cost': 5})
|
497
|
+
eapiprivate_get_income_asyn_id = eapiPrivateGetIncomeAsynId = Entry('income/asyn/id', 'eapiPrivate', 'GET', {'cost': 5})
|
495
498
|
eapiprivate_get_marginaccount = eapiPrivateGetMarginAccount = Entry('marginAccount', 'eapiPrivate', 'GET', {'cost': 3})
|
496
499
|
eapiprivate_get_mmp = eapiPrivateGetMmp = Entry('mmp', 'eapiPrivate', 'GET', {'cost': 1})
|
497
500
|
eapiprivate_get_countdowncancelall = eapiPrivateGetCountdownCancelAll = Entry('countdownCancelAll', 'eapiPrivate', 'GET', {'cost': 1})
|
ccxt/abstract/binanceusdm.py
CHANGED
@@ -298,8 +298,9 @@ class ImplicitAPI:
|
|
298
298
|
sapi_post_loan_vip_repay = sapiPostLoanVipRepay = Entry('loan/vip/repay', 'sapi', 'POST', {'cost': 40})
|
299
299
|
sapi_post_convert_getquote = sapiPostConvertGetQuote = Entry('convert/getQuote', 'sapi', 'POST', {'cost': 20.001})
|
300
300
|
sapi_post_convert_acceptquote = sapiPostConvertAcceptQuote = Entry('convert/acceptQuote', 'sapi', 'POST', {'cost': 3.3335})
|
301
|
-
sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost':
|
302
|
-
|
301
|
+
sapi_post_portfolio_auto_collection = sapiPostPortfolioAutoCollection = Entry('portfolio/auto-collection', 'sapi', 'POST', {'cost': 150})
|
302
|
+
sapi_post_portfolio_asset_collection = sapiPostPortfolioAssetCollection = Entry('portfolio/asset-collection', 'sapi', 'POST', {'cost': 6})
|
303
|
+
sapi_post_portfolio_bnb_transfer = sapiPostPortfolioBnbTransfer = Entry('portfolio/bnb-transfer', 'sapi', 'POST', {'cost': 150})
|
303
304
|
sapi_post_portfolio_repay_futures_switch = sapiPostPortfolioRepayFuturesSwitch = Entry('portfolio/repay-futures-switch', 'sapi', 'POST', {'cost': 150})
|
304
305
|
sapi_post_portfolio_repay_futures_negative_balance = sapiPostPortfolioRepayFuturesNegativeBalance = Entry('portfolio/repay-futures-negative-balance', 'sapi', 'POST', {'cost': 150})
|
305
306
|
sapi_post_lending_auto_invest_plan_add = sapiPostLendingAutoInvestPlanAdd = Entry('lending/auto-invest/plan/add', 'sapi', 'POST', {'cost': 0.1})
|
@@ -492,6 +493,8 @@ class ImplicitAPI:
|
|
492
493
|
eapiprivate_get_usertrades = eapiPrivateGetUserTrades = Entry('userTrades', 'eapiPrivate', 'GET', {'cost': 5})
|
493
494
|
eapiprivate_get_exerciserecord = eapiPrivateGetExerciseRecord = Entry('exerciseRecord', 'eapiPrivate', 'GET', {'cost': 5})
|
494
495
|
eapiprivate_get_bill = eapiPrivateGetBill = Entry('bill', 'eapiPrivate', 'GET', {'cost': 1})
|
496
|
+
eapiprivate_get_income_asyn = eapiPrivateGetIncomeAsyn = Entry('income/asyn', 'eapiPrivate', 'GET', {'cost': 5})
|
497
|
+
eapiprivate_get_income_asyn_id = eapiPrivateGetIncomeAsynId = Entry('income/asyn/id', 'eapiPrivate', 'GET', {'cost': 5})
|
495
498
|
eapiprivate_get_marginaccount = eapiPrivateGetMarginAccount = Entry('marginAccount', 'eapiPrivate', 'GET', {'cost': 3})
|
496
499
|
eapiprivate_get_mmp = eapiPrivateGetMmp = Entry('mmp', 'eapiPrivate', 'GET', {'cost': 1})
|
497
500
|
eapiprivate_get_countdowncancelall = eapiPrivateGetCountdownCancelAll = Entry('countdownCancelAll', 'eapiPrivate', 'GET', {'cost': 1})
|
ccxt/abstract/gate.py
CHANGED
@@ -136,6 +136,8 @@ class ImplicitAPI:
|
|
136
136
|
private_margin_patch_loans_loan_id = privateMarginPatchLoansLoanId = Entry('loans/{loan_id}', ['private', 'margin'], 'PATCH', {'cost': 1.5})
|
137
137
|
private_margin_patch_loan_records_loan_record_id = privateMarginPatchLoanRecordsLoanRecordId = Entry('loan_records/{loan_record_id}', ['private', 'margin'], 'PATCH', {'cost': 1.5})
|
138
138
|
private_margin_delete_loans_loan_id = privateMarginDeleteLoansLoanId = Entry('loans/{loan_id}', ['private', 'margin'], 'DELETE', {'cost': 1.5})
|
139
|
+
private_flash_swap_get_currencies = privateFlash_swapGetCurrencies = Entry('currencies', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
|
140
|
+
private_flash_swap_get_currency_pairs = privateFlash_swapGetCurrencyPairs = Entry('currency_pairs', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
|
139
141
|
private_flash_swap_get_orders = privateFlash_swapGetOrders = Entry('orders', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
|
140
142
|
private_flash_swap_get_orders_order_id = privateFlash_swapGetOrdersOrderId = Entry('orders/{order_id}', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
|
141
143
|
private_flash_swap_post_orders = privateFlash_swapPostOrders = Entry('orders', ['private', 'flash_swap'], 'POST', {'cost': 1.5})
|
ccxt/abstract/gateio.py
CHANGED
@@ -136,6 +136,8 @@ class ImplicitAPI:
|
|
136
136
|
private_margin_patch_loans_loan_id = privateMarginPatchLoansLoanId = Entry('loans/{loan_id}', ['private', 'margin'], 'PATCH', {'cost': 1.5})
|
137
137
|
private_margin_patch_loan_records_loan_record_id = privateMarginPatchLoanRecordsLoanRecordId = Entry('loan_records/{loan_record_id}', ['private', 'margin'], 'PATCH', {'cost': 1.5})
|
138
138
|
private_margin_delete_loans_loan_id = privateMarginDeleteLoansLoanId = Entry('loans/{loan_id}', ['private', 'margin'], 'DELETE', {'cost': 1.5})
|
139
|
+
private_flash_swap_get_currencies = privateFlash_swapGetCurrencies = Entry('currencies', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
|
140
|
+
private_flash_swap_get_currency_pairs = privateFlash_swapGetCurrencyPairs = Entry('currency_pairs', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
|
139
141
|
private_flash_swap_get_orders = privateFlash_swapGetOrders = Entry('orders', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
|
140
142
|
private_flash_swap_get_orders_order_id = privateFlash_swapGetOrdersOrderId = Entry('orders/{order_id}', ['private', 'flash_swap'], 'GET', {'cost': 1.5})
|
141
143
|
private_flash_swap_post_orders = privateFlash_swapPostOrders = Entry('orders', ['private', 'flash_swap'], 'POST', {'cost': 1.5})
|
ccxt/async_support/__init__.py
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
# -----------------------------------------------------------------------------
|
4
4
|
|
5
|
-
__version__ = '4.0.
|
5
|
+
__version__ = '4.0.38'
|
6
6
|
|
7
7
|
# -----------------------------------------------------------------------------
|
8
8
|
|
@@ -599,7 +599,7 @@ class Exchange(BaseExchange):
|
|
599
599
|
value = self.safe_value(entry, key)
|
600
600
|
if value and (value >= since):
|
601
601
|
result.append(entry)
|
602
|
-
if tail:
|
602
|
+
if tail and limit is not None:
|
603
603
|
return self.arraySlice(result, -limit)
|
604
604
|
return self.filter_by_limit(result, limit, key)
|
605
605
|
|
@@ -620,7 +620,7 @@ class Exchange(BaseExchange):
|
|
620
620
|
secondCondition = entryKeyGESince if sinceIsDefined else True
|
621
621
|
if firstCondition and secondCondition:
|
622
622
|
result.append(entry)
|
623
|
-
if tail:
|
623
|
+
if tail and limit is not None:
|
624
624
|
return self.arraySlice(result, -limit)
|
625
625
|
return self.filter_by_limit(result, limit, key)
|
626
626
|
|
ccxt/async_support/binance.py
CHANGED
@@ -542,8 +542,9 @@ class binance(Exchange, ImplicitAPI):
|
|
542
542
|
'loan/vip/repay': 40, # Weight(UID): 6000 => cost = 0.006667 * 6000 = 40
|
543
543
|
'convert/getQuote': 20.001,
|
544
544
|
'convert/acceptQuote': 3.3335,
|
545
|
-
'portfolio/auto-collection':
|
546
|
-
'portfolio/
|
545
|
+
'portfolio/auto-collection': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
|
546
|
+
'portfolio/asset-collection': 6, # Weight(IP): 60 => cost = 0.1 * 60 = 6
|
547
|
+
'portfolio/bnb-transfer': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
|
547
548
|
'portfolio/repay-futures-switch': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
|
548
549
|
'portfolio/repay-futures-negative-balance': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
|
549
550
|
'lending/auto-invest/plan/add': 0.1, # Weight(IP): 1 => cost = 0.1 * 1 = 0.1
|
@@ -818,6 +819,8 @@ class binance(Exchange, ImplicitAPI):
|
|
818
819
|
'userTrades': 5,
|
819
820
|
'exerciseRecord': 5,
|
820
821
|
'bill': 1,
|
822
|
+
'income/asyn': 5,
|
823
|
+
'income/asyn/id': 5,
|
821
824
|
'marginAccount': 3,
|
822
825
|
'mmp': 1,
|
823
826
|
'countdownCancelAll': 1,
|
ccxt/async_support/coinex.py
CHANGED
@@ -3070,30 +3070,30 @@ class coinex(Exchange, ImplicitAPI):
|
|
3070
3070
|
|
3071
3071
|
async def set_leverage(self, leverage, symbol: Optional[str] = None, params={}):
|
3072
3072
|
"""
|
3073
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http014_adjust_leverage
|
3073
3074
|
set the level of leverage for a market
|
3074
3075
|
:param float leverage: the rate of leverage
|
3075
3076
|
:param str symbol: unified market symbol
|
3076
3077
|
:param dict [params]: extra parameters specific to the coinex api endpoint
|
3078
|
+
:param str [params.marginMode]: 'cross' or 'isolated'(default is 'cross')
|
3077
3079
|
:returns dict: response from the exchange
|
3078
3080
|
"""
|
3079
|
-
|
3080
|
-
raise ArgumentsRequired(self.id + ' setLeverage() requires a symbol argument')
|
3081
|
+
self.check_required_symbol('setLeverage', symbol)
|
3081
3082
|
await self.load_markets()
|
3082
|
-
defaultMarginMode = self.safe_string_2(self.options, 'defaultMarginMode', 'marginMode')
|
3083
|
-
defaultPositionType = None
|
3084
|
-
if defaultMarginMode == 'isolated':
|
3085
|
-
defaultPositionType = 1
|
3086
|
-
elif defaultMarginMode == 'cross':
|
3087
|
-
defaultPositionType = 2
|
3088
|
-
positionType = self.safe_integer(params, 'position_type', defaultPositionType)
|
3089
|
-
if positionType is None:
|
3090
|
-
raise ArgumentsRequired(self.id + ' setLeverage() requires a position_type parameter that will transfer margin to the specified trading pair')
|
3091
3083
|
market = self.market(symbol)
|
3092
|
-
|
3093
|
-
if market['type'] != 'swap':
|
3084
|
+
if not market['swap']:
|
3094
3085
|
raise BadSymbol(self.id + ' setLeverage() supports swap contracts only')
|
3095
|
-
|
3096
|
-
|
3086
|
+
marginMode = None
|
3087
|
+
marginMode, params = self.handle_margin_mode_and_params('setLeverage', params, 'cross')
|
3088
|
+
positionType = None
|
3089
|
+
if marginMode == 'isolated':
|
3090
|
+
positionType = 1
|
3091
|
+
elif marginMode == 'cross':
|
3092
|
+
positionType = 2
|
3093
|
+
minLeverage = self.safe_integer(market['limits']['leverage'], 'min', 1)
|
3094
|
+
maxLeverage = self.safe_integer(market['limits']['leverage'], 'max', 100)
|
3095
|
+
if (leverage < minLeverage) or (leverage > maxLeverage):
|
3096
|
+
raise BadRequest(self.id + ' setLeverage() leverage should be between ' + str(minLeverage) + ' and ' + str(maxLeverage) + ' for ' + symbol)
|
3097
3097
|
request = {
|
3098
3098
|
'market': market['id'],
|
3099
3099
|
'leverage': str(leverage),
|
ccxt/async_support/gate.py
CHANGED
@@ -373,6 +373,8 @@ class gate(Exchange, ImplicitAPI):
|
|
373
373
|
},
|
374
374
|
'flash_swap': {
|
375
375
|
'get': {
|
376
|
+
'currencies': 1.5,
|
377
|
+
'currency_pairs': 1.5,
|
376
378
|
'orders': 1.5,
|
377
379
|
'orders/{order_id}': 1.5,
|
378
380
|
},
|
@@ -783,6 +785,7 @@ class gate(Exchange, ImplicitAPI):
|
|
783
785
|
'REPAY_TOO_MUCH': ExchangeError,
|
784
786
|
'TOO_MANY_CURRENCY_PAIRS': InvalidOrder,
|
785
787
|
'TOO_MANY_ORDERS': InvalidOrder,
|
788
|
+
'TOO_MANY_REQUESTS': RateLimitExceeded,
|
786
789
|
'MIXED_ACCOUNT_TYPE': InvalidOrder,
|
787
790
|
'AUTO_BORROW_TOO_MUCH': ExchangeError,
|
788
791
|
'TRADE_RESTRICTED': InsufficientFunds,
|
ccxt/base/exchange.py
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
# -----------------------------------------------------------------------------
|
6
6
|
|
7
|
-
__version__ = '4.0.
|
7
|
+
__version__ = '4.0.38'
|
8
8
|
|
9
9
|
# -----------------------------------------------------------------------------
|
10
10
|
|
@@ -1772,7 +1772,7 @@ class Exchange(object):
|
|
1772
1772
|
value = self.safe_value(entry, key)
|
1773
1773
|
if value and (value >= since):
|
1774
1774
|
result.append(entry)
|
1775
|
-
if tail:
|
1775
|
+
if tail and limit is not None:
|
1776
1776
|
return self.arraySlice(result, -limit)
|
1777
1777
|
return self.filter_by_limit(result, limit, key)
|
1778
1778
|
|
@@ -1793,7 +1793,7 @@ class Exchange(object):
|
|
1793
1793
|
secondCondition = entryKeyGESince if sinceIsDefined else True
|
1794
1794
|
if firstCondition and secondCondition:
|
1795
1795
|
result.append(entry)
|
1796
|
-
if tail:
|
1796
|
+
if tail and limit is not None:
|
1797
1797
|
return self.arraySlice(result, -limit)
|
1798
1798
|
return self.filter_by_limit(result, limit, key)
|
1799
1799
|
|
ccxt/binance.py
CHANGED
@@ -541,8 +541,9 @@ class binance(Exchange, ImplicitAPI):
|
|
541
541
|
'loan/vip/repay': 40, # Weight(UID): 6000 => cost = 0.006667 * 6000 = 40
|
542
542
|
'convert/getQuote': 20.001,
|
543
543
|
'convert/acceptQuote': 3.3335,
|
544
|
-
'portfolio/auto-collection':
|
545
|
-
'portfolio/
|
544
|
+
'portfolio/auto-collection': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
|
545
|
+
'portfolio/asset-collection': 6, # Weight(IP): 60 => cost = 0.1 * 60 = 6
|
546
|
+
'portfolio/bnb-transfer': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
|
546
547
|
'portfolio/repay-futures-switch': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
|
547
548
|
'portfolio/repay-futures-negative-balance': 150, # Weight(IP): 1500 => cost = 0.1 * 1500 = 150
|
548
549
|
'lending/auto-invest/plan/add': 0.1, # Weight(IP): 1 => cost = 0.1 * 1 = 0.1
|
@@ -817,6 +818,8 @@ class binance(Exchange, ImplicitAPI):
|
|
817
818
|
'userTrades': 5,
|
818
819
|
'exerciseRecord': 5,
|
819
820
|
'bill': 1,
|
821
|
+
'income/asyn': 5,
|
822
|
+
'income/asyn/id': 5,
|
820
823
|
'marginAccount': 3,
|
821
824
|
'mmp': 1,
|
822
825
|
'countdownCancelAll': 1,
|
ccxt/coinex.py
CHANGED
@@ -3069,30 +3069,30 @@ class coinex(Exchange, ImplicitAPI):
|
|
3069
3069
|
|
3070
3070
|
def set_leverage(self, leverage, symbol: Optional[str] = None, params={}):
|
3071
3071
|
"""
|
3072
|
+
see https://viabtc.github.io/coinex_api_en_doc/futures/#docsfutures001_http014_adjust_leverage
|
3072
3073
|
set the level of leverage for a market
|
3073
3074
|
:param float leverage: the rate of leverage
|
3074
3075
|
:param str symbol: unified market symbol
|
3075
3076
|
:param dict [params]: extra parameters specific to the coinex api endpoint
|
3077
|
+
:param str [params.marginMode]: 'cross' or 'isolated'(default is 'cross')
|
3076
3078
|
:returns dict: response from the exchange
|
3077
3079
|
"""
|
3078
|
-
|
3079
|
-
raise ArgumentsRequired(self.id + ' setLeverage() requires a symbol argument')
|
3080
|
+
self.check_required_symbol('setLeverage', symbol)
|
3080
3081
|
self.load_markets()
|
3081
|
-
defaultMarginMode = self.safe_string_2(self.options, 'defaultMarginMode', 'marginMode')
|
3082
|
-
defaultPositionType = None
|
3083
|
-
if defaultMarginMode == 'isolated':
|
3084
|
-
defaultPositionType = 1
|
3085
|
-
elif defaultMarginMode == 'cross':
|
3086
|
-
defaultPositionType = 2
|
3087
|
-
positionType = self.safe_integer(params, 'position_type', defaultPositionType)
|
3088
|
-
if positionType is None:
|
3089
|
-
raise ArgumentsRequired(self.id + ' setLeverage() requires a position_type parameter that will transfer margin to the specified trading pair')
|
3090
3082
|
market = self.market(symbol)
|
3091
|
-
|
3092
|
-
if market['type'] != 'swap':
|
3083
|
+
if not market['swap']:
|
3093
3084
|
raise BadSymbol(self.id + ' setLeverage() supports swap contracts only')
|
3094
|
-
|
3095
|
-
|
3085
|
+
marginMode = None
|
3086
|
+
marginMode, params = self.handle_margin_mode_and_params('setLeverage', params, 'cross')
|
3087
|
+
positionType = None
|
3088
|
+
if marginMode == 'isolated':
|
3089
|
+
positionType = 1
|
3090
|
+
elif marginMode == 'cross':
|
3091
|
+
positionType = 2
|
3092
|
+
minLeverage = self.safe_integer(market['limits']['leverage'], 'min', 1)
|
3093
|
+
maxLeverage = self.safe_integer(market['limits']['leverage'], 'max', 100)
|
3094
|
+
if (leverage < minLeverage) or (leverage > maxLeverage):
|
3095
|
+
raise BadRequest(self.id + ' setLeverage() leverage should be between ' + str(minLeverage) + ' and ' + str(maxLeverage) + ' for ' + symbol)
|
3096
3096
|
request = {
|
3097
3097
|
'market': market['id'],
|
3098
3098
|
'leverage': str(leverage),
|
ccxt/gate.py
CHANGED
@@ -372,6 +372,8 @@ class gate(Exchange, ImplicitAPI):
|
|
372
372
|
},
|
373
373
|
'flash_swap': {
|
374
374
|
'get': {
|
375
|
+
'currencies': 1.5,
|
376
|
+
'currency_pairs': 1.5,
|
375
377
|
'orders': 1.5,
|
376
378
|
'orders/{order_id}': 1.5,
|
377
379
|
},
|
@@ -782,6 +784,7 @@ class gate(Exchange, ImplicitAPI):
|
|
782
784
|
'REPAY_TOO_MUCH': ExchangeError,
|
783
785
|
'TOO_MANY_CURRENCY_PAIRS': InvalidOrder,
|
784
786
|
'TOO_MANY_ORDERS': InvalidOrder,
|
787
|
+
'TOO_MANY_REQUESTS': RateLimitExceeded,
|
785
788
|
'MIXED_ACCOUNT_TYPE': InvalidOrder,
|
786
789
|
'AUTO_BORROW_TOO_MUCH': ExchangeError,
|
787
790
|
'TRADE_RESTRICTED': InsufficientFunds,
|
ccxt/pro/__init__.py
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: ccxt
|
3
|
-
Version: 4.0.
|
3
|
+
Version: 4.0.38
|
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
|
@@ -260,13 +260,13 @@ console.log(version, Object.keys(exchanges));
|
|
260
260
|
|
261
261
|
All-in-one browser bundle (dependencies included), served from a CDN of your choice:
|
262
262
|
|
263
|
-
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.
|
264
|
-
* unpkg: https://unpkg.com/ccxt@4.0.
|
263
|
+
* jsDelivr: https://cdn.jsdelivr.net/npm/ccxt@4.0.38/dist/ccxt.browser.js
|
264
|
+
* unpkg: https://unpkg.com/ccxt@4.0.38/dist/ccxt.browser.js
|
265
265
|
|
266
266
|
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.
|
267
267
|
|
268
268
|
```HTML
|
269
|
-
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.
|
269
|
+
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/ccxt@4.0.38/dist/ccxt.browser.js"></script>
|
270
270
|
```
|
271
271
|
|
272
272
|
Creates a global `ccxt` object:
|
@@ -1,10 +1,10 @@
|
|
1
|
-
ccxt/__init__.py,sha256=
|
1
|
+
ccxt/__init__.py,sha256=OEXnJg5MHbafgj_KsEpQkrUM7Sorn14UhDeWQ4uaaXc,15438
|
2
2
|
ccxt/ace.py,sha256=8uTO7fzyxHnEhE3Y8VDP2EcWxh9gjs9xPMbuXjkUA7A,41372
|
3
3
|
ccxt/alpaca.py,sha256=_cPmZ0obENxKSzsqLu0t1Ae-rUwN8z1DUB3Af8Kh4sA,33434
|
4
4
|
ccxt/ascendex.py,sha256=rGD9sFxbRf_lEZavZpa6UEBIeX1tMydeFZzDOaQ3s8o,132537
|
5
5
|
ccxt/bequant.py,sha256=1wDyg1jmS1H9WkODiqztoLVhQog7R6n7MUZsOhIRwRU,1136
|
6
6
|
ccxt/bigone.py,sha256=3hAbaUMHIttNIte0xVSLUfiV914Fj6JsuyseQ4AIVk8,75446
|
7
|
-
ccxt/binance.py,sha256=
|
7
|
+
ccxt/binance.py,sha256=MAjK1-hpLKspvE_oAlYoFwLjQX9HAg3PhMMt1us78BY,392689
|
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
|
@@ -44,7 +44,7 @@ ccxt/coinbase.py,sha256=aswSRpuvEpWPGy5EdeYbz6bTFRZw5-yboIJbBPa7n7U,129413
|
|
44
44
|
ccxt/coinbaseprime.py,sha256=Ygvljulxb2uKdei5yimCj1LMjLlUJNvP-G7ns1HpUFk,1219
|
45
45
|
ccxt/coinbasepro.py,sha256=_U1ZVWUGvUdqiwn9O2ijxIh0o9pdi1qXHLq7zg7CI5Q,73870
|
46
46
|
ccxt/coincheck.py,sha256=0Y7Z49gpWfMuFcuJXAnCHAMjh1QUpgcaR95lPTD0h9o,34219
|
47
|
-
ccxt/coinex.py,sha256=
|
47
|
+
ccxt/coinex.py,sha256=gWnkRw3kQEJfE0s8FZniYDONzoNrekbiZ9CEmyTEjkc,194426
|
48
48
|
ccxt/coinfalcon.py,sha256=0NCXdTVU5qAEROVf0GRidmONJpV1zsOr2p_PW7yK-vE,38972
|
49
49
|
ccxt/coinmate.py,sha256=CoK00164_37RGO2hKHVPAOMZx578ADZ4eTNWZbqVhTI,39561
|
50
50
|
ccxt/coinone.py,sha256=8wX92TU-3QPbCzgYZrEMrnFyBZyca6lbLV3GttWfxfc,35261
|
@@ -58,7 +58,7 @@ ccxt/digifinex.py,sha256=jbP6esId7yqvSkbzsyg66EOd8Et3UKUT4q3omKjXYDQ,150987
|
|
58
58
|
ccxt/exmo.py,sha256=bZQg1t8yrKscH3FWDKd5DmGsjR9d5-vJnOIoGG1swfk,88943
|
59
59
|
ccxt/flowbtc.py,sha256=YPvm6tbsHJJUQBspFcHuVPQfVmiWzwnVvfzRqBdQX6U,1169
|
60
60
|
ccxt/fmfwio.py,sha256=ww13viYsuW8IzHhr3HST8uuroYsCZ2aynyG4i_SE0LU,1238
|
61
|
-
ccxt/gate.py,sha256=
|
61
|
+
ccxt/gate.py,sha256=GkqMvu9sQMIfe9TRC0d-uu0O-jDKG4JYKUFaFMwnBDs,252098
|
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=Xj9-g6b8vzpCm6g-FrIjFGUa2CgroKc2bLyrSP22Uj0,62285
|
@@ -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=0T5QJsSdYh5qcydcL76kC78pip1XrMDvaKkpxkcBsfc,8376
|
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=2aF9mTT65cyPjioK2siADelfAKui-5PiiTz2xGn1wTc,78170
|
116
|
+
ccxt/abstract/binancecoinm.py,sha256=2aF9mTT65cyPjioK2siADelfAKui-5PiiTz2xGn1wTc,78170
|
117
|
+
ccxt/abstract/binanceus.py,sha256=2aF9mTT65cyPjioK2siADelfAKui-5PiiTz2xGn1wTc,78170
|
118
|
+
ccxt/abstract/binanceusdm.py,sha256=2aF9mTT65cyPjioK2siADelfAKui-5PiiTz2xGn1wTc,78170
|
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
|
@@ -165,8 +165,8 @@ ccxt/abstract/deribit.py,sha256=rS_982u8dOVsh2vGSB5TO7K8Tye0Alq-Rg9fYZwz8hg,1549
|
|
165
165
|
ccxt/abstract/digifinex.py,sha256=2tlP2G6Niu6TSbNUcgxvXdHfln6VhAZliXV7upFwpas,9386
|
166
166
|
ccxt/abstract/exmo.py,sha256=yq9zis5G9Qjsecs-YSHAghDjad6y52jFteWSBJZFg8o,6177
|
167
167
|
ccxt/abstract/fmfwio.py,sha256=0T5QJsSdYh5qcydcL76kC78pip1XrMDvaKkpxkcBsfc,8376
|
168
|
-
ccxt/abstract/gate.py,sha256=
|
169
|
-
ccxt/abstract/gateio.py,sha256=
|
168
|
+
ccxt/abstract/gate.py,sha256=c6k6EJqNLp9CkqWq9KYjCNJUkWHr0a51S6tQ38Jwm-o,33517
|
169
|
+
ccxt/abstract/gateio.py,sha256=c6k6EJqNLp9CkqWq9KYjCNJUkWHr0a51S6tQ38Jwm-o,33517
|
170
170
|
ccxt/abstract/gemini.py,sha256=6TyBUDw-e4b02J5ToCX0eaXQfF0Knvkf7ToLcseqcIY,6915
|
171
171
|
ccxt/abstract/hitbtc.py,sha256=0T5QJsSdYh5qcydcL76kC78pip1XrMDvaKkpxkcBsfc,8376
|
172
172
|
ccxt/abstract/hitbtc3.py,sha256=-bjb83y_4FGdHtHMo-naHYoI5JyltlF2M-TzjAZJ3Hg,10949
|
@@ -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=Uz78x7djWK85nem2ikky8IIuyE4I6OEc5SNpGf9TR_E,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=tHwC-p_ilrM8r6k7w4Q59v8-PLOGlbsUCLHeKLLwbns,133169
|
220
220
|
ccxt/async_support/bequant.py,sha256=BbfFIcAuK3qC0huDHr44hskFTHt1SG1Pp5XSgYnaiuA,1150
|
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=HzdTWhXLsmT3TieP31HiTVKKKePQf6_v7Mb_nLJhE0w,393935
|
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
|
@@ -259,7 +259,7 @@ ccxt/async_support/coinbase.py,sha256=ylb26vPGyVuePoSUvEhKLlbdX5CYCw3HMCgBLcuG9X
|
|
259
259
|
ccxt/async_support/coinbaseprime.py,sha256=M5Ez1DsFcW3-vJ-4QoZzwYBAKjAAtJnJpkfnV4sWAIc,1233
|
260
260
|
ccxt/async_support/coinbasepro.py,sha256=Gdq6-Dn3TmzqkybYNm5C3WHou5BkRA8A2MK8JAiIHSI,74376
|
261
261
|
ccxt/async_support/coincheck.py,sha256=scNw54Oj_iGHDPLiFjNEMGMU3ti_wKn5ltM-AD85LB8,34425
|
262
|
-
ccxt/async_support/coinex.py,sha256=
|
262
|
+
ccxt/async_support/coinex.py,sha256=61DlAIQECxabpsGOwSXCNziM-uNikzTf9ohn7GBoAiY,195324
|
263
263
|
ccxt/async_support/coinfalcon.py,sha256=_X3-uP5cFEkZ20pt6WgkSJIlUFcqJYdkzJJdz5tgvU0,39268
|
264
264
|
ccxt/async_support/coinmate.py,sha256=SoCqsz6uVWFCvijivKqRDE02y7z3RXsyzC3IkXWlUAE,39809
|
265
265
|
ccxt/async_support/coinone.py,sha256=vhygwEqCs5C-kSpTt3cwP-eLVsNMsO29ep437lipzAI,35485
|
@@ -273,7 +273,7 @@ ccxt/async_support/digifinex.py,sha256=vCpv_8FoZNs21uX0plWZioxdZDnTU9QQ2LngoMt84
|
|
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=h4X-aN7XOxJ0ODBurN0KlnmvZFS06wrRnAbDAifxugk,1252
|
276
|
-
ccxt/async_support/gate.py,sha256=
|
276
|
+
ccxt/async_support/gate.py,sha256=Kl5NsEHL5N3t2970U9ygu7w3jeg1LHZn76QlCgt9ivM,253026
|
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=m1bOvV7lBMQWzvenbJ0uwa4Ab_tbIcqUBdq7M7L9Q_Q,62719
|
@@ -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=Ewqz_elUvxNXvef1dfpb7GufNa5n0Gey2O6nyLPdhbM,143042
|
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=vKpzU5okif_dKfMxNg-dhGJoLnBwgss8N_fmPKQj87k,182660
|
340
340
|
ccxt/base/precise.py,sha256=_xfu54sV0vWNnOfGTKRFykeuWP8mn4K1m9lk1tcllX4,8565
|
341
341
|
ccxt/base/types.py,sha256=be7MU-iLHhynL-GmIzPxb0SD6GIps-w3PmPN05irsAA,1406
|
342
|
-
ccxt/pro/__init__.py,sha256=
|
342
|
+
ccxt/pro/__init__.py,sha256=y31FULiheoDIGYi8RV64NF59wBm1rbmpQF4IoGLFGto,6480
|
343
343
|
ccxt/pro/alpaca.py,sha256=dHcK0EFjEkzs_nZn2DGpwMauOkw2XPKaqYezx4dcDis,26671
|
344
344
|
ccxt/pro/ascendex.py,sha256=QVvtQlv_AZaQTaZcczXocmrf9gL1zFpsLRVcNF21qCI,34555
|
345
345
|
ccxt/pro/bequant.py,sha256=qz8JjnpkAQY_CFiFSKGqrjjgZ2167_TBKjSJOb9NeDw,1081
|
@@ -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.38.dist-info/METADATA,sha256=xVb_Z3LpojDbov0o7lo7gr7mSZYGuIgq1ZeBF_kAKfM,111485
|
454
|
+
ccxt-4.0.38.dist-info/WHEEL,sha256=a-zpFRIJzOq5QfuhBzbhiA1eHTzNCJn8OdRvhdNX0Rk,110
|
455
|
+
ccxt-4.0.38.dist-info/top_level.txt,sha256=CkQDuCTDKNcImPV60t36G6MdYfxsAPNiSaEwifVoVMo,5
|
456
|
+
ccxt-4.0.38.dist-info/RECORD,,
|
File without changes
|
File without changes
|