hellbender-wallet/hellbender/ViewModels/AddressListViewModel.swift
2026-03-28 23:18:14 -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)
}
}