hellbender-wallet/birch/ViewModels/AddressListViewModel.swift
Nick Klockenga 209750c4e5
Rebrand Wallet to Birch Wallet (#28)
* step one

* progress

* minor theme enhancements

* update screenshot and icon links in README.md

* update site link

* swiftformat fixes
2026-04-30 21:00:59 -04:00

36 lines
928 B
Swift

import Foundation
import Observation
@Observable
@MainActor
final class AddressListViewModel {
var receiveAddresses: [AddressItem] = []
var changeAddresses: [AddressItem] = []
var selectedTab: AddressTab = .receive
private var expectedProfileId: UUID?
enum AddressTab: String, CaseIterable {
case receive = "Receive"
case change = "Change"
}
var displayedAddresses: [AddressItem] {
selectedTab == .receive ? receiveAddresses : changeAddresses
}
private var bitcoinService: BitcoinService {
BitcoinService.shared
}
func loadAddresses(for profileId: UUID) {
expectedProfileId = profileId
guard bitcoinService.currentProfile?.id == expectedProfileId else {
receiveAddresses = []
changeAddresses = []
return
}
receiveAddresses = bitcoinService.getAddresses(keychain: .external)
changeAddresses = bitcoinService.getAddresses(keychain: .internal)
}
}