From 1d41590d56bb5e70dbd7b1805f249980cd4de759 Mon Sep 17 00:00:00 2001 From: Sale Djenic Date: Wed, 24 May 2023 11:15:44 +0200 Subject: [PATCH] fix(@desktop/wallet): keycard accounts do not display a keycard icon in the wallet list of accounts Closes: #10643 --- .../current_account/controller.nim | 7 ++- .../current_account/module.nim | 8 ++- .../wallet/accounts/controller.nim | 3 + .../profile_section/wallet/accounts/item.nim | 6 +- .../wallet/accounts/module.nim | 6 +- .../wallet_section/accounts/controller.nim | 5 +- .../main/wallet_section/accounts/item.nim | 8 ++- .../main/wallet_section/accounts/model.nim | 4 ++ .../main/wallet_section/accounts/module.nim | 2 + .../main/wallet_section/send/account_item.nim | 5 +- src/app/modules/shared/wallet_utils.nim | 7 ++- .../shared_models/wallet_account_item.nim | 13 ++++- .../service/wallet_account/service.nim | 55 +++++++++++-------- .../AppLayouts/Wallet/views/LeftTabView.qml | 2 +- 14 files changed, 90 insertions(+), 41 deletions(-) diff --git a/src/app/modules/main/browser_section/current_account/controller.nim b/src/app/modules/main/browser_section/current_account/controller.nim index 643ea77553..afd5393576 100644 --- a/src/app/modules/main/browser_section/current_account/controller.nim +++ b/src/app/modules/main/browser_section/current_account/controller.nim @@ -36,16 +36,19 @@ proc init*(self: Controller) = proc getWalletAccount*(self: Controller, accountIndex: int): wallet_account_service.WalletAccountDto = return self.walletAccountService.getWalletAccount(accountIndex) +proc isKeycardAccount*(self: Controller, account: WalletAccountDto): bool = + return self.walletAccountService.isKeycardAccount(account) + proc getIndex*(self: Controller, address: string): int = return self.walletAccountService.getIndex(address) proc findTokenSymbolByAddress*(self: Controller, address: string): string = return self.walletAccountService.findTokenSymbolByAddress(address) -proc getChainIds*(self: Controller): seq[int] = +proc getChainIds*(self: Controller): seq[int] = return self.networkService.getNetworks().map(n => n.chainId) -proc getEnabledChainIds*(self: Controller): seq[int] = +proc getEnabledChainIds*(self: Controller): seq[int] = return self.networkService.getNetworks().filter(n => n.enabled).map(n => n.chainId) proc getCurrentCurrency*(self: Controller): string = diff --git a/src/app/modules/main/browser_section/current_account/module.nim b/src/app/modules/main/browser_section/current_account/module.nim index 588b622f9e..8708662e49 100644 --- a/src/app/modules/main/browser_section/current_account/module.nim +++ b/src/app/modules/main/browser_section/current_account/module.nim @@ -54,13 +54,16 @@ proc setAssets(self: Module, tokens: seq[WalletTokenDto]) = let currencyFormat = self.controller.getCurrencyFormat(currency) let items = tokens.map(t => walletTokenToItem(t, chainIds, enabledChainIds, currency, currencyFormat, self.controller.getCurrencyFormat(t.symbol))) - + self.view.getAssetsModel().setItems(items) proc switchAccount*(self: Module, accountIndex: int) = self.currentAccountIndex = accountIndex let walletAccount = self.controller.getWalletAccount(accountIndex) + if walletAccount.isNil: + return + let keycardAccount = self.controller.isKeycardAccount(walletAccount) let currency = self.controller.getCurrentCurrency() let enabledChainIds = self.controller.getEnabledChainIds() @@ -68,6 +71,7 @@ proc switchAccount*(self: Module, accountIndex: int) = let accountItem = walletAccountToWalletAccountsItem( walletAccount, + keycardAccount, enabledChainIds, currency, currencyFormat, @@ -100,7 +104,7 @@ method isLoaded*(self: Module): bool = method viewDidLoad*(self: Module) = self.moduleLoaded = true - + method switchAccountByAddress*(self: Module, address: string) = let accountIndex = self.controller.getIndex(address) self.switchAccount(accountIndex) diff --git a/src/app/modules/main/profile_section/wallet/accounts/controller.nim b/src/app/modules/main/profile_section/wallet/accounts/controller.nim index d2c5788a62..293d79df58 100644 --- a/src/app/modules/main/profile_section/wallet/accounts/controller.nim +++ b/src/app/modules/main/profile_section/wallet/accounts/controller.nim @@ -34,5 +34,8 @@ proc deleteAccount*(self: Controller, address: string) = proc getKeycardByKeyUid*(self: Controller, keyUid: string): seq[KeycardDto] = return self.walletAccountService.getKeycardByKeyUid(keyUid) +proc isKeycardAccount*(self: Controller, account: WalletAccountDto): bool = + return self.walletAccountService.isKeycardAccount(account) + proc getWalletAccount*(self: Controller, address: string): WalletAccountDto = return self.walletAccountService.getAccountByAddress(address) \ No newline at end of file diff --git a/src/app/modules/main/profile_section/wallet/accounts/item.nim b/src/app/modules/main/profile_section/wallet/accounts/item.nim index 596e3724d7..d172dfe572 100644 --- a/src/app/modules/main/profile_section/wallet/accounts/item.nim +++ b/src/app/modules/main/profile_section/wallet/accounts/item.nim @@ -17,6 +17,7 @@ proc initItem*( emoji: string = "", relatedAccounts: related_accounts_model.Model = nil, keyUid: string = "", + keycardAccount: bool = false ): Item = result = Item() result.WalletAccountItem.setup(name, @@ -25,9 +26,10 @@ proc initItem*( emoji, walletType, path, - keyUid) + keyUid, + keycardAccount) result.relatedAccounts = relatedAccounts - + proc `$`*(self: Item): string = result = "ProfileSection-Accounts-Item(" result = result & $self.WalletAccountItem diff --git a/src/app/modules/main/profile_section/wallet/accounts/module.nim b/src/app/modules/main/profile_section/wallet/accounts/module.nim index a89ae88a16..160c62625f 100644 --- a/src/app/modules/main/profile_section/wallet/accounts/module.nim +++ b/src/app/modules/main/profile_section/wallet/accounts/module.nim @@ -48,7 +48,8 @@ method refreshWalletAccounts*(self: Module) = let walletAccounts = self.controller.getWalletAccounts() let items = walletAccounts.map(w => (block: - walletAccountToWalletSettingsAccountsItem(w) + let keycardAccount = self.controller.isKeycardAccount(w) + walletAccountToWalletSettingsAccountsItem(w, keycardAccount) )) self.view.setItems(items) @@ -62,7 +63,8 @@ method load*(self: Module) = self.events.on(SIGNAL_WALLET_ACCOUNT_UPDATED) do(e:Args): let args = WalletAccountUpdated(e) - self.view.onUpdatedAccount(walletAccountToWalletSettingsAccountsItem(args.account)) + let keycardAccount = self.controller.isKeycardAccount(args.account) + self.view.onUpdatedAccount(walletAccountToWalletSettingsAccountsItem(args.account, keycardAccount)) self.events.on(SIGNAL_NEW_KEYCARD_SET) do(e: Args): let args = KeycardActivityArgs(e) diff --git a/src/app/modules/main/wallet_section/accounts/controller.nim b/src/app/modules/main/wallet_section/accounts/controller.nim index 48db8a9144..584369c475 100644 --- a/src/app/modules/main/wallet_section/accounts/controller.nim +++ b/src/app/modules/main/wallet_section/accounts/controller.nim @@ -35,10 +35,13 @@ proc init*(self: Controller) = proc getWalletAccounts*(self: Controller): seq[wallet_account_service.WalletAccountDto] = return self.walletAccountService.getWalletAccounts() +proc isKeycardAccount*(self: Controller, account: WalletAccountDto): bool = + return self.walletAccountService.isKeycardAccount(account) + proc deleteAccount*(self: Controller, address: string) = self.walletAccountService.deleteAccount(address) -proc getEnabledChainIds*(self: Controller): seq[int] = +proc getEnabledChainIds*(self: Controller): seq[int] = return self.networkService.getNetworks().filter(n => n.enabled).map(n => n.chainId) proc getCurrentCurrency*(self: Controller): string = diff --git a/src/app/modules/main/wallet_section/accounts/item.nim b/src/app/modules/main/wallet_section/accounts/item.nim index 4bc0a5906b..a723cb13f6 100644 --- a/src/app/modules/main/wallet_section/accounts/item.nim +++ b/src/app/modules/main/wallet_section/accounts/item.nim @@ -18,6 +18,7 @@ proc initItem*( currencyBalance: CurrencyAmount = nil, emoji: string = "", keyUid: string = "", + keycardAccount: bool = false, assetsLoading: bool = true, ): Item = result = Item() @@ -27,17 +28,18 @@ proc initItem*( emoji, walletType, path, - keyUid) + keyUid, + keycardAccount) result.assetsLoading = assetsLoading result.currencyBalance = currencyBalance - + proc `$`*(self: Item): string = result = "WalletSection-Accounts-Item(" result = result & $self.WalletAccountItem result = result & "\nassetsLoading: " & $self.assetsLoading result = result & "\ncurrencyBalance: " & $self.currencyBalance result = result & ")" - + proc currencyBalance*(self: Item): CurrencyAmount = return self.currencyBalance diff --git a/src/app/modules/main/wallet_section/accounts/model.nim b/src/app/modules/main/wallet_section/accounts/model.nim index b58c20deea..38487f5c90 100644 --- a/src/app/modules/main/wallet_section/accounts/model.nim +++ b/src/app/modules/main/wallet_section/accounts/model.nim @@ -14,6 +14,7 @@ type CurrencyBalance, Emoji, KeyUid, + KeycardAccount, AssetsLoading, QtObject: @@ -59,6 +60,7 @@ QtObject: ModelRole.CurrencyBalance.int:"currencyBalance", ModelRole.Emoji.int: "emoji", ModelRole.KeyUid.int: "keyUid", + ModelRole.KeycardAccount.int: "keycardAccount", ModelRole.AssetsLoading.int: "assetsLoading", }.toTable @@ -99,6 +101,8 @@ QtObject: result = newQVariant(item.emoji()) of ModelRole.KeyUid: result = newQVariant(item.keyUid()) + of ModelRole.KeycardAccount: + result = newQVariant(item.keycardAccount()) of ModelRole.AssetsLoading: result = newQVariant(item.assetsLoading()) diff --git a/src/app/modules/main/wallet_section/accounts/module.nim b/src/app/modules/main/wallet_section/accounts/module.nim index 162ef0a182..201c7d0236 100644 --- a/src/app/modules/main/wallet_section/accounts/module.nim +++ b/src/app/modules/main/wallet_section/accounts/module.nim @@ -49,8 +49,10 @@ method refreshWalletAccounts*(self: Module) = let currencyFormat = self.controller.getCurrencyFormat(currency) let items = walletAccounts.map(w => (block: + let keycardAccount = self.controller.isKeycardAccount(w) walletAccountToWalletAccountsItem( w, + keycardAccount, enabledChainIds, currency, currencyFormat, diff --git a/src/app/modules/main/wallet_section/send/account_item.nim b/src/app/modules/main/wallet_section/send/account_item.nim index f9d1bf2b59..91ccecdba8 100644 --- a/src/app/modules/main/wallet_section/send/account_item.nim +++ b/src/app/modules/main/wallet_section/send/account_item.nim @@ -26,7 +26,8 @@ QtObject: emoji, walletType, path = "", - keyUid = "") + keyUid = "", + keycardAccount = false) self.assets = assets self.currencyBalance = currencyBalance @@ -44,7 +45,7 @@ QtObject: ): AccountItem = new(result, delete) result.setup(name, address, color, emoji, walletType, assets, currencyBalance) - + proc `$`*(self: AccountItem): string = result = "WalletSection-Send-Item(" result = result & $self.WalletAccountItem diff --git a/src/app/modules/shared/wallet_utils.nim b/src/app/modules/shared/wallet_utils.nim index 080d1f9f3c..200beb4394 100644 --- a/src/app/modules/shared/wallet_utils.nim +++ b/src/app/modules/shared/wallet_utils.nim @@ -33,7 +33,8 @@ proc walletAccountToRelatedAccountItem*(w: WalletAccountDto) : related_account_i w.emoji, ) -proc walletAccountToWalletSettingsAccountsItem*(w: WalletAccountDto): wallet_settings_accounts_item.Item = +proc walletAccountToWalletSettingsAccountsItem*(w: WalletAccountDto, keycardAccount: bool): wallet_settings_accounts_item.Item = + discard let relatedAccounts = related_accounts_model.newModel() if w.isNil: return wallet_settings_accounts_item.initItem() @@ -49,9 +50,10 @@ proc walletAccountToWalletSettingsAccountsItem*(w: WalletAccountDto): wallet_set w.emoji, relatedAccounts, w.keyUid, + keycardAccount ) -proc walletAccountToWalletAccountsItem*(w: WalletAccountDto, enabledChainIds: seq[int], currency: string, +proc walletAccountToWalletAccountsItem*(w: WalletAccountDto, keycardAccount: bool, enabledChainIds: seq[int], currency: string, currencyFormat: CurrencyFormatDto): wallet_accounts_item.Item = return wallet_accounts_item.initItem( w.name, @@ -62,6 +64,7 @@ proc walletAccountToWalletAccountsItem*(w: WalletAccountDto, enabledChainIds: se currencyAmountToItem(w.getCurrencyBalance(enabledChainIds, currency), currencyFormat), w.emoji, w.keyUid, + keycardAccount, w.assetsLoading, ) diff --git a/src/app/modules/shared_models/wallet_account_item.nim b/src/app/modules/shared_models/wallet_account_item.nim index 7f1fd419f7..4db75a6a62 100644 --- a/src/app/modules/shared_models/wallet_account_item.nim +++ b/src/app/modules/shared_models/wallet_account_item.nim @@ -9,6 +9,7 @@ QtObject: walletType: string path: string keyUid: string + keycardAccount: bool proc setup*(self: WalletAccountItem, name: string = "", @@ -17,7 +18,8 @@ QtObject: emoji: string = "", walletType: string = "", path: string = "", - keyUid: string = "" + keyUid: string = "", + keycardAccount: bool = false ) = self.QObject.setup self.name = name @@ -27,6 +29,7 @@ QtObject: self.walletType = walletType self.path = path self.keyUid = keyUid + self.keycardAccount = keycardAccount proc delete*(self: WalletAccountItem) = self.QObject.delete @@ -40,6 +43,7 @@ QtObject: walletType: {self.walletType}, path: {self.path}, keyUid: {self.keyUid}, + keycardAccount: {self.keycardAccount}, ]""" proc nameChanged*(self: WalletAccountItem) {.signal.} @@ -103,4 +107,11 @@ QtObject: read = keyUid notify = keyUidChanged + proc keycardAccountChanged*(self: WalletAccountItem) {.signal.} + proc keycardAccount*(self: WalletAccountItem): bool {.slot.} = + return self.keycardAccount + QtProperty[bool] keycardAccount: + read = keycardAccount + notify = keycardAccountChanged + diff --git a/src/app_service/service/wallet_account/service.nim b/src/app_service/service/wallet_account/service.nim index 2472b34928..64215a4e0b 100644 --- a/src/app_service/service/wallet_account/service.nim +++ b/src/app_service/service/wallet_account/service.nim @@ -53,7 +53,7 @@ proc priorityTokenCmp(a, b: WalletTokenDto): int = return -1 if b.symbol == symbol: return 1 - + cmp(a.name, b.name) proc hex2Balance*(input: string, decimals: int): string = @@ -84,7 +84,7 @@ type WalletAccountUpdated* = ref object of Args account*: WalletAccountDto type DerivedAddressesArgs* = ref object of Args - uniqueId*: string + uniqueId*: string derivedAddresses*: seq[DerivedAddressDto] error*: string @@ -214,7 +214,7 @@ QtObject: if keypair.isNil: return account.relatedAccounts = keypair.accounts - + proc setRelatedAccountsForAllAccounts(self: Service, keyUid: string) = for wAcc in self.walletAccounts.mvalues: if wAcc.keyUid == keyUid: @@ -224,7 +224,7 @@ QtObject: if updateRelatedAccounts: # updating related accounts for already added accounts self.setRelatedAccountsForAllAccounts(account.keyUid) - # add new account to store + # add new account to store self.walletAccounts[account.address] = account proc storeTokensForAccount*(self: Service, address: string, tokens: seq[WalletTokenDto], areBalancesCached: bool, areMarketValuesCached: bool) = @@ -284,7 +284,7 @@ QtObject: return result = self.walletAccounts[address] - proc getAccountsByAddresses*(self: Service, addresses: seq[string]): seq[WalletAccountDto] = + proc getAccountsByAddresses*(self: Service, addresses: seq[string]): seq[WalletAccountDto] = for address in addresses: result.add(self.getAccountByAddress(address)) @@ -428,18 +428,18 @@ QtObject: self.events.emit(SIGNAL_WALLET_ACCOUNT_UPDATED, WalletAccountUpdated(account: account)) ## if password is not provided local keystore file won't be created - proc addWalletAccount*(self: Service, password: string, doPasswordHashing: bool, name, address, path, publicKey, + proc addWalletAccount*(self: Service, password: string, doPasswordHashing: bool, name, address, path, publicKey, keyUid, accountType, color, emoji: string): string = try: var response: RpcResponse[JsonNode] if password.len == 0: - response = status_go_accounts.addAccountWithoutKeystoreFileCreation(name, address, path, publicKey, keyUid, + response = status_go_accounts.addAccountWithoutKeystoreFileCreation(name, address, path, publicKey, keyUid, accountType, color, emoji) else: var finalPassword = password if doPasswordHashing: finalPassword = utils.hashPassword(password) - response = status_go_accounts.addAccount(finalPassword, name, address, path, publicKey, keyUid, accountType, + response = status_go_accounts.addAccount(finalPassword, name, address, path, publicKey, keyUid, accountType, color, emoji) if not response.error.isNil: error "status-go error", procName="addWalletAccount", errCode=response.error.code, errDesription=response.error.message @@ -451,7 +451,7 @@ QtObject: return e.msg ## Mandatory fields for account: `address`, `keyUid`, `walletType`, `path`, `publicKey`, `name`, `emoji`, `color` - proc addNewPrivateKeyKeypair*(self: Service, privateKey, password: string, doPasswordHashing: bool, + proc addNewPrivateKeyKeypair*(self: Service, privateKey, password: string, doPasswordHashing: bool, keyUid, keypairName, rootWalletMasterKey: string, account: WalletAccountDto): string = if password.len == 0: error "for adding new private key account, password must be provided" @@ -475,13 +475,13 @@ QtObject: return e.msg ## Mandatory fields for all accounts: `address`, `keyUid`, `walletType`, `path`, `publicKey`, `name`, `emoji`, `color` - proc addNewSeedPhraseKeypair*(self: Service, seedPhrase, password: string, doPasswordHashing: bool, + proc addNewSeedPhraseKeypair*(self: Service, seedPhrase, password: string, doPasswordHashing: bool, keyUid, keypairName, rootWalletMasterKey: string, accounts: seq[WalletAccountDto]): string = var finalPassword = password if password.len > 0 and doPasswordHashing: finalPassword = utils.hashPassword(password) try: - if seedPhrase.len > 0 and password.len > 0: + if seedPhrase.len > 0 and password.len > 0: let response = status_go_accounts.importMnemonic(seedPhrase, finalPassword) if not response.error.isNil: error "status-go error importing private key", procName="addNewSeedPhraseKeypair", errCode=response.error.code, errDesription=response.error.message @@ -516,7 +516,7 @@ QtObject: return self.removeAccountFromLocalStoreAndNotify(address) except Exception as e: - error "error: ", procName="deleteAccount", errName = e.name, errDesription = e.msg + error "error: ", procName="deleteAccount", errName = e.name, errDesription = e.msg proc getCurrency*(self: Service): string = return self.settingsService.getCurrency() @@ -542,7 +542,7 @@ QtObject: return false try: var account = self.getAccountByAddress(address) - let response = status_go_accounts.updateAccount(accountName, account.address, account.path, account.publicKey, + let response = status_go_accounts.updateAccount(accountName, account.address, account.path, account.publicKey, account.keyUid, account.walletType, color, emoji, account.isWallet, account.isChat) if not response.error.isNil: error "status-go error", procName="updateWalletAccount", errCode=response.error.code, errDesription=response.error.message @@ -697,7 +697,7 @@ QtObject: let accounts = self.getWalletAccounts() for walletAccount in accounts: result += walletAccount.getCurrencyBalance(@[network.chainId], self.getCurrentCurrencyIfEmpty(currency)) - + proc findTokenSymbolByAddress*(self: Service, address: string): string = return self.tokenService.findTokenSymbolByAddress(address) @@ -736,7 +736,7 @@ QtObject: proc emitAddKeycardAddAccountsChange(self: Service, success: bool, keycard: KeycardDto) = let data = KeycardActivityArgs( - success: success, + success: success, keycard: keycard ) self.events.emit(SIGNAL_NEW_KEYCARD_SET, data) @@ -780,10 +780,10 @@ QtObject: ) self.threadpool.start(arg) - proc emitKeycardRemovedAccountsChange(self: Service, success: bool, keyUid: string, keycardUid: string, + proc emitKeycardRemovedAccountsChange(self: Service, success: bool, keyUid: string, keycardUid: string, removedAccounts: seq[string]) = let data = KeycardActivityArgs( - success: success, + success: success, keycard: KeycardDto(keyUid: keyUid, keycardUid: keycardUid, accountsAddresses: removedAccounts) ) self.events.emit(SIGNAL_KEYCARD_ACCOUNTS_REMOVED, data) @@ -803,7 +803,7 @@ QtObject: error "error handilng migrated keycard response", errDesription=e.msg self.emitKeycardRemovedAccountsChange(success = false, keyUid = "", keycardUid = "", removedAccounts = @[]) - proc getAllKnownKeycards*(self: Service): seq[KeycardDto] = + proc getAllKnownKeycards*(self: Service): seq[KeycardDto] = try: let response = backend.getAllKnownKeycards() if responseHasNoErrors("getAllKnownKeycards", response): @@ -811,7 +811,7 @@ QtObject: except Exception as e: error "error: ", procName="getAllKnownKeycards", errName = e.name, errDesription = e.msg - proc getKeycardWithKeycardUid*(self: Service, keycardUid: string): KeycardDto = + proc getKeycardWithKeycardUid*(self: Service, keycardUid: string): KeycardDto = let allKnownKeycards = self.getAllKnownKeycards() let keycardsWithKeycardUid = allKnownKeycards.filter(kp => kp.keycardUid == keycardUid) if keycardsWithKeycardUid.len == 0: @@ -821,7 +821,7 @@ QtObject: return return keycardsWithKeycardUid[0] - proc getAllKnownKeycardsGroupedByKeyUid*(self: Service): seq[KeycardDto] = + proc getAllKnownKeycardsGroupedByKeyUid*(self: Service): seq[KeycardDto] = try: let response = backend.getAllKnownKeycardsGroupedByKeyUid() if responseHasNoErrors("getAllKnownKeycardsGroupedByKeyUid", response): @@ -829,7 +829,7 @@ QtObject: except Exception as e: error "error: ", procName="getAllKnownKeycardsGroupedByKeyUid", errName = e.name, errDesription = e.msg - proc getKeycardByKeyUid*(self: Service, keyUid: string): seq[KeycardDto] = + proc getKeycardByKeyUid*(self: Service, keyUid: string): seq[KeycardDto] = try: let response = backend.getKeycardByKeyUid(keyUid) if responseHasNoErrors("getKeycardByKeyUid", response): @@ -837,6 +837,15 @@ QtObject: except Exception as e: error "error: ", procName="getKeycardByKeyUid", errName = e.name, errDesription = e.msg + proc isKeycardAccount*(self: Service, account: WalletAccountDto): bool = + if account.isNil or + account.keyUid.len == 0 or + account.path.len == 0 or + utils.isPathOutOfTheDefaultStatusDerivationTree(account.path): + return false + let keycards = self.getKeycardByKeyUid(account.keyUid) + return keycards.len > 0 + proc emitKeycardNameChange(self: Service, keycardUid: string, name: string) = let data = KeycardActivityArgs(success: true, keycard: KeycardDto(keycardUid: keycardUid, keycardName: name)) self.events.emit(SIGNAL_KEYCARD_NAME_CHANGED, data) @@ -914,7 +923,7 @@ QtObject: proc handleKeycardActions(self: Service, keycardActions: seq[KeycardActionDto]) = if keycardActions.len == 0: - return + return for kcAction in keycardActions: if kcAction.action == KeycardActionKeycardAdded or kcAction.action == KeycardActionAccountsAdded: @@ -951,4 +960,4 @@ QtObject: if token.symbol == symbol: totalTokenBalance += token.getTotalBalanceOfSupportedChains() - return totalTokenBalance + return totalTokenBalance diff --git a/ui/app/AppLayouts/Wallet/views/LeftTabView.qml b/ui/app/AppLayouts/Wallet/views/LeftTabView.qml index 978270b980..80eef5cf09 100644 --- a/ui/app/AppLayouts/Wallet/views/LeftTabView.qml +++ b/ui/app/AppLayouts/Wallet/views/LeftTabView.qml @@ -238,7 +238,7 @@ Rectangle { width: !!icon ? 15: 0 height: !!icon ? 15: 0 color: Theme.palette.directColor1 - icon: model.migratedToKeycard ? "keycard" : "" + icon: model.keycardAccount ? "keycard" : "" } ]