From 992828b0c3dc39199cd79ef97d0984239197218e Mon Sep 17 00:00:00 2001 From: Anthony Laibe Date: Wed, 4 Aug 2021 10:32:24 +0200 Subject: [PATCH] fix(@desktop/wallet): Total balance reflect real total fixes #3054 --- src/status/wallet/balance_manager.nim | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/status/wallet/balance_manager.nim b/src/status/wallet/balance_manager.nim index 048e423786..74febe37cd 100644 --- a/src/status/wallet/balance_manager.nim +++ b/src/status/wallet/balance_manager.nim @@ -61,22 +61,23 @@ proc convertValue*(balance: string, fromCurrency: string, toCurrency: string): f balanceManager.pricePairs.cacheValue(cacheKey, fiat_crypto_price) parseFloat(balance) * parseFloat(fiat_crypto_price) -proc updateBalance*(asset: Asset, currency: string, refreshCache: bool) = +proc updateBalance*(asset: Asset, currency: string, refreshCache: bool): float = var token_balance = getBalance(asset.symbol, asset.accountAddress, asset.address, refreshCache) let fiat_balance = convertValue(token_balance, asset.symbol, currency) asset.value = token_balance asset.fiatBalanceDisplay = fmt"{fiat_balance:.2f} {currency}" asset.fiatBalance = fmt"{fiat_balance:.2f}" + return fiat_balance proc updateBalance*(account: WalletAccount, currency: string, refreshCache: bool = false) = try: - let eth_balance = getBalance("ETH", account.address, "", refreshCache) - let usd_balance = convertValue(eth_balance, "ETH", currency) - var totalAccountBalance = usd_balance - account.realFiatBalance = some(totalAccountBalance) - account.balance = some(fmt"{totalAccountBalance:.2f} {currency}") + var usd_balance = 0.0 for asset in account.assetList: - updateBalance(asset, currency, refreshCache) + let assetFiatBalance = updateBalance(asset, currency, refreshCache) + usd_balance = usd_balance + assetFiatBalance + + account.realFiatBalance = some(usd_balance) + account.balance = some(fmt"{usd_balance:.2f} {currency}") except RpcException: error "Error in updateBalance", message = getCurrentExceptionMsg()