diff --git a/src/app/modules/shared_models/token_model.nim b/src/app/modules/shared_models/token_model.nim index c15fc6863e..cc23c8010a 100644 --- a/src/app/modules/shared_models/token_model.nim +++ b/src/app/modules/shared_models/token_model.nim @@ -1,4 +1,4 @@ -import NimQml, Tables, strutils, strformat +import NimQml, Tables, strutils, strformat, json import ./token_item import ./currency_amount @@ -153,8 +153,8 @@ QtObject: case column: of "name": result = $item.getName() of "symbol": result = $item.getSymbol() - of "totalBalance": result = $item.getTotalBalance() - of "totalCurrencyBalance": result = $item.getTotalCurrencyBalance() + of "totalBalance": result = $item.getTotalBalance().toJsonNode() + of "totalCurrencyBalance": result = $item.getTotalCurrencyBalance().toJsonNode() of "enabledNetworkCurrencyBalance": result = $item.getEnabledNetworkCurrencyBalance() of "enabledNetworkBalance": result = $item.getEnabledNetworkBalance() of "visibleForNetwork": result = $item.getVisibleForNetwork() diff --git a/src/app_service/common/cache.nim b/src/app_service/common/cache.nim index 852e13c356..c1e088510d 100644 --- a/src/app_service/common/cache.nim +++ b/src/app_service/common/cache.nim @@ -14,7 +14,7 @@ proc newTimedCache*[T](): TimedCache[T] = initTable[string, Value[T]]() proc init*[T](self: var TimedCache[T], values: Table[string, T]) = self.clear() for cacheKey, value in values: - self[cacheKey].value = value + self.set(cacheKey, value) proc getTimestamp[T](self: TimedCache[T], cacheKey: string): DateTime = self[cacheKey].timestamp diff --git a/src/app_service/service/token/service.nim b/src/app_service/service/token/service.nim index 742abe6bf0..7b9129be10 100644 --- a/src/app_service/service/token/service.nim +++ b/src/app_service/service/token/service.nim @@ -72,8 +72,12 @@ QtObject: proc init*(self: Service) = try: let response = backend.getCachedPrices() - self.initTokenPrices(jsonToPricesMap(response.result)) + let prices = jsonToPricesMap(response.result) + self.initTokenPrices(prices) + except Exception as e: + error "Cached prices init error", errDesription = e.msg + try: let networks = self.networkService.getNetworks() for network in networks: @@ -93,11 +97,8 @@ QtObject: self.tokens[network.chainId] = default_tokens.filter( proc(x: TokenDto): bool = x.chainId == network.chainId ) - except Exception as e: - let errDesription = e.msg - error "error: ", errDesription - return + error "Tokens init error", errDesription = e.msg proc findTokenBySymbol*(self: Service, network: NetworkDto, symbol: string): TokenDto = try: diff --git a/ui/app/AppLayouts/Profile/views/EnsTermsAndConditionsView.qml b/ui/app/AppLayouts/Profile/views/EnsTermsAndConditionsView.qml index 1746cc886b..63e6e6752b 100644 --- a/ui/app/AppLayouts/Profile/views/EnsTermsAndConditionsView.qml +++ b/ui/app/AppLayouts/Profile/views/EnsTermsAndConditionsView.qml @@ -54,15 +54,16 @@ Item { let assetsList = buyEnsModal.store.currentAccount.assets for(var i=0; i< assetsList.count;i++) { let symbol = JSON.parse(root.stickersStore.getStatusToken()).symbol - if(symbol === assetsList.rowData(i, "symbol")) - return { - name: assetsList.rowData(i, "name"), - symbol: assetsList.rowData(i, "symbol"), - totalBalance: assetsList.rowData(i, "totalBalance"), - totalCurrencyBalance: assetsList.rowData(i, "totalCurrencyBalance"), - balances: assetsList.rowData(i, "balances"), - decimals: assetsList.rowData(i, "decimals") - } + if (symbol !== assetsList.rowData(i, "symbol")) + continue + return { + name: assetsList.rowData(i, "name"), + symbol: assetsList.rowData(i, "symbol"), + totalBalance: JSON.parse(assetsList.rowData(i, "totalBalance")), + totalCurrencyBalance: JSON.parse(assetsList.rowData(i, "totalCurrencyBalance")), + balances: assetsList.rowData(i, "balances"), + decimals: assetsList.rowData(i, "decimals") + } } return {} } diff --git a/ui/imports/shared/popups/SendModal.qml b/ui/imports/shared/popups/SendModal.qml index 4f423805d4..46faf7a357 100644 --- a/ui/imports/shared/popups/SendModal.qml +++ b/ui/imports/shared/popups/SendModal.qml @@ -244,7 +244,12 @@ StatusDialog { StatusListItemTag { Layout.alignment: Qt.AlignVCenter | Qt.AlignRight Layout.preferredHeight: 22 - title: d.maxFiatBalance && d.maxFiatBalance.amount > 0 ? qsTr("Max: %1").arg(LocaleUtils.currencyAmountToLocaleString(d.maxFiatBalance)) : qsTr("No balances active") + title: { + if (!d.maxFiatBalance || d.maxFiatBalance.amount <= 0) + return qsTr("No balances active") + const balance = LocaleUtils.currencyAmountToLocaleString(d.maxFiatBalance) + return qsTr("Max: %1").arg(balance) + } closeButtonVisible: false titleText.font.pixelSize: 12 bgColor: amountToSendInput.input.valid ? Theme.palette.primaryColor3 : Theme.palette.dangerColor2