mirror of
https://github.com/freqtrade/freqtrade.git
synced 2025-12-17 13:21:15 +00:00
chore: simplify rpc_balance method by relying on exchange cache
This commit is contained in:
@@ -675,7 +675,7 @@ class RPC:
|
|||||||
}
|
}
|
||||||
|
|
||||||
def __balance_get_est_stake(
|
def __balance_get_est_stake(
|
||||||
self, coin: str, stake_currency: str, amount: float, balance: Wallet, tickers: Tickers
|
self, coin: str, stake_currency: str, amount: float, balance: Wallet
|
||||||
) -> tuple[float, float]:
|
) -> tuple[float, float]:
|
||||||
est_stake = 0.0
|
est_stake = 0.0
|
||||||
est_bot_stake = 0.0
|
est_bot_stake = 0.0
|
||||||
@@ -686,6 +686,8 @@ class RPC:
|
|||||||
est_stake = balance.free
|
est_stake = balance.free
|
||||||
est_bot_stake = amount
|
est_bot_stake = amount
|
||||||
else:
|
else:
|
||||||
|
try:
|
||||||
|
tickers: Tickers = self._freqtrade.exchange.get_tickers(cached=True)
|
||||||
pair = self._freqtrade.exchange.get_valid_pair_combination(coin, stake_currency)
|
pair = self._freqtrade.exchange.get_valid_pair_combination(coin, stake_currency)
|
||||||
ticker: Ticker | None = tickers.get(pair, None)
|
ticker: Ticker | None = tickers.get(pair, None)
|
||||||
if not ticker:
|
if not ticker:
|
||||||
@@ -706,16 +708,16 @@ class RPC:
|
|||||||
est_bot_stake = rate * amount
|
est_bot_stake = rate * amount
|
||||||
|
|
||||||
return est_stake, est_bot_stake
|
return est_stake, est_bot_stake
|
||||||
|
except (ExchangeError, PricingError) as e:
|
||||||
|
logger.warning(f"Error {e} getting rate for {coin}")
|
||||||
|
pass
|
||||||
|
return est_stake, est_bot_stake
|
||||||
|
|
||||||
def _rpc_balance(self, stake_currency: str, fiat_display_currency: str) -> dict:
|
def _rpc_balance(self, stake_currency: str, fiat_display_currency: str) -> dict:
|
||||||
"""Returns current account balance per crypto"""
|
"""Returns current account balance per crypto"""
|
||||||
currencies: list[dict] = []
|
currencies: list[dict] = []
|
||||||
total = 0.0
|
total = 0.0
|
||||||
total_bot = 0.0
|
total_bot = 0.0
|
||||||
try:
|
|
||||||
tickers: Tickers = self._freqtrade.exchange.get_tickers(cached=True)
|
|
||||||
except ExchangeError:
|
|
||||||
raise RPCException("Error getting current tickers.")
|
|
||||||
|
|
||||||
open_trades: list[Trade] = Trade.get_open_trades()
|
open_trades: list[Trade] = Trade.get_open_trades()
|
||||||
open_assets: dict[str, Trade] = {t.safe_base_currency: t for t in open_trades}
|
open_assets: dict[str, Trade] = {t.safe_base_currency: t for t in open_trades}
|
||||||
@@ -742,7 +744,7 @@ class RPC:
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
est_stake, est_stake_bot = self.__balance_get_est_stake(
|
est_stake, est_stake_bot = self.__balance_get_est_stake(
|
||||||
coin, stake_currency, trade_amount, balance, tickers
|
coin, stake_currency, trade_amount, balance
|
||||||
)
|
)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
continue
|
continue
|
||||||
|
|||||||
Reference in New Issue
Block a user