feat(@wallet): popuplate data for multiple addresses

This commit is contained in:
Anthony Laibe 2023-05-11 10:58:11 +02:00 committed by Anthony Laibe
parent 150a3d242e
commit 946534127a
3 changed files with 33 additions and 16 deletions

View File

@ -25,8 +25,11 @@ proc delete*(self: Controller) =
proc init*(self: Controller) =
discard
proc getWalletAccountByAddress*(self: Controller, address: string): wallet_account_service.WalletAccountDto =
return self.walletAccountService.getAccountByAddress(address)
proc getWalletAccountsByAddresses*(self: Controller, addresses: seq[string]): seq[wallet_account_service.WalletAccountDto] =
return self.walletAccountService.getAccountsByAddresses(addresses)
proc getWalletTokensByAddresses*(self: Controller, addresses: seq[string]): seq[wallet_account_service.WalletTokenDto] =
return self.walletAccountService.getTokensByAddresses(addresses)
proc getCurrentCurrency*(self: Controller): string =
return self.walletAccountService.getCurrency()

View File

@ -8,7 +8,6 @@ type
balanceLoading: bool
color: string
emoji: string
# To do once we implement <All accounts> view
isAllAccounts: bool
hideWatchAccounts: bool

View File

@ -60,19 +60,34 @@ proc setBalance(self: Module, tokens: seq[WalletTokenDto], chainIds: seq[int]) =
self.view.setCurrencyBalance(currencyAmountToItem(totalCurrencyBalanceForAllAssets, currencyFormat))
method filterChanged*(self: Module, addresses: seq[string], chainIds: seq[int]) =
let walletAccount = self.controller.getWalletAccountByAddress(addresses[0])
let item = initItem(
walletAccount.name,
walletAccount.mixedCaseAddress,
walletAccount.ens,
walletAccount.assetsLoading,
walletAccount.color,
walletAccount.emoji,
)
let walletAccounts = self.controller.getWalletAccountsByAddresses(addresses)
if addresses.len > 1:
let item = initItem(
"",
"",
"",
walletAccounts[0].assetsLoading,
"",
"",
isAllAccounts=true,
hideWatchAccounts=false # TODO(alaibe): need update when doing the action
)
self.view.setData(item)
else:
let walletAccount = walletAccounts[0]
let item = initItem(
walletAccount.name,
walletAccount.mixedCaseAddress,
walletAccount.ens,
walletAccount.assetsLoading,
walletAccount.color,
walletAccount.emoji,
)
self.view.setData(item)
if walletAccount.tokens.len == 0 and walletAccount.assetsLoading:
self.view.setData(item)
let walletTokens = self.controller.getWalletTokensByAddresses(addresses)
if walletTokens.len == 0 and walletAccounts[0].assetsLoading:
self.view.setCurrencyBalance(newCurrencyAmount())
else:
self.setBalance(walletAccount.tokens, chainIds)
self.setBalance(walletTokens, chainIds)