func calculatePortfolioValue(balances: [FetchedBalance], prices: [String: Double]) -> Double {
return balances.reduce(0) { total, balance in
guard
let symbol = balance.symbol,
let balanceValue = Double(balance.balance)
else { return total }
return total + (balanceValue * (prices[symbol] ?? 0))
}
}
// Usage example
do {
let balances = try await portal.getBalances("eip155:1")
let prices = try await fetchCurrentPrices() // Your price fetching implementation
let portfolioValue = calculatePortfolioValue(balances: balances, prices: prices)
print("Total portfolio value: $\(portfolioValue)")
} catch {
print("Error calculating portfolio value: \(error)")
}