feat: has_optional should check for replacement methods

This commit is contained in:
Matthias
2026-01-02 10:08:04 +01:00
parent a174461952
commit f78aa7b39a
2 changed files with 23 additions and 23 deletions

View File

@@ -78,31 +78,31 @@ EXCHANGE_HAS_REQUIRED: dict[str, list[str]] = {
"fetchOHLCV": [],
}
EXCHANGE_HAS_OPTIONAL = [
EXCHANGE_HAS_OPTIONAL: dict[str, list[str]] = {
# Private
"fetchMyTrades", # Trades for order - fee detection
"createLimitOrder",
"createMarketOrder", # Either OR for orders
# 'setLeverage', # Margin/Futures trading
# 'setMarginMode', # Margin/Futures trading
# 'fetchFundingHistory', # Futures trading
"fetchMyTrades": [], # Trades for order - fee detection
"createLimitOrder": [],
"createMarketOrder": [], # Either OR for orders
# "setLeverage": [], # Margin/Futures trading
# "setMarginMode": [], # Margin/Futures trading
# "fetchFundingHistory": [], # Futures trading
# Public
"fetchOrderBook",
"fetchL2OrderBook",
"fetchTicker", # OR for pricing
"fetchTickers", # For volumepairlist?
"fetchTrades", # Downloading trades data
# 'fetchFundingRateHistory', # Futures trading
# 'fetchPositions', # Futures trading
# 'fetchLeverageTiers', # Futures initialization
# 'fetchMarketLeverageTiers', # Futures initialization
# 'fetchOpenOrders', 'fetchClosedOrders', # 'fetchOrders', # Refinding balance...
# "fetchPremiumIndexOHLCV", # Futures additional data
# "fetchMarkOHLCV", # Futures additional data
# "fetchIndexOHLCV", # Futures additional data
"fetchOrderBook": [],
"fetchL2OrderBook": [],
"fetchTicker": [], # OR for pricing
"fetchTickers": [], # For volumepairlist?
"fetchTrades": [], # Downloading trades data
# "fetchFundingRateHistory": [], # Futures trading
# "fetchPositions": [], # Futures trading
# "fetchLeverageTiers": [], # Futures initialization
# "fetchMarketLeverageTiers": [], # Futures initialization
# "fetchOrders": ["fetchOpenOrders", "fetchClosedOrders"], # , # Refinding balance...
# "fetchPremiumIndexOHLCV": [], # Futures additional data
# "fetchMarkOHLCV": [], # Futures additional data
# "fetchIndexOHLCV": [], # Futures additional data
# ccxt.pro
"watchOHLCV",
]
"watchOHLCV": [],
}
def calculate_backoff(retrycount, max_retries):

View File

@@ -88,7 +88,7 @@ def validate_exchange(exchange: str) -> tuple[bool, str, ccxt.Exchange | None]:
result = False
reason += f"missing: {', '.join(missing)}"
missing_opt = [k for k in EXCHANGE_HAS_OPTIONAL if not ex_mod.has.get(k)]
missing_opt = _exchange_has_helper(ex_mod, EXCHANGE_HAS_OPTIONAL)
if exchange.lower() in BAD_EXCHANGES:
result = False