taler-ios

iOS apps for GNU Taler (wallet)
Log | Files | Refs | README | LICENSE

commit d033fa4e800a84ddd58e00470ec96204448fedd2
parent c98215fcf19b591d3716a79d53b366d3d03d8d62
Author: Marc Stibane <marc@taler.net>
Date:   Wed,  5 Jun 2024 11:47:21 +0200

ExchangeTransition

Diffstat:
MTalerWallet1/Backend/WalletCore.swift | 5++++-
MTalerWallet1/Controllers/PublicConstants.swift | 1+
MTalerWallet1/Model/Model+Exchange.swift | 16++++++++++++++++
3 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/TalerWallet1/Backend/WalletCore.swift b/TalerWallet1/Backend/WalletCore.swift @@ -295,6 +295,9 @@ extension WalletCore { let payload = try JSONDecoder().decode(Payload.self, from: jsonData) switch payload.type { + case Notification.Name.ExchangeStateTransition.rawValue: +// symLog.log(anyPayload) + break case Notification.Name.TransactionStateTransition.rawValue: symLog.log(anyPayload) try handleStateTransition(jsonData) @@ -337,7 +340,7 @@ extension WalletCore { // "refresh-revealed", "refresh-unwarranted": // break default: -print("\n❗️ WalletCore.swift:340 Notification: ", anyPayload, "\n") // this is a new notification I haven't seen before +print("\n❗️ WalletCore.swift:343 NEW Notification: ", anyPayload, "\n") // this is a new notification I haven't seen before break } } catch let error { diff --git a/TalerWallet1/Controllers/PublicConstants.swift b/TalerWallet1/Controllers/PublicConstants.swift @@ -66,6 +66,7 @@ public let NOTIFICATIONERROR = "error" extension Notification.Name { static let BalanceChange = Notification.Name("balance-change") static let ExchangeAdded = Notification.Name("exchange-added") + static let ExchangeStateTransition = Notification.Name(ExchangeTransition.TransitionType.transition.rawValue) static let TransactionStateTransition = Notification.Name(TransactionTransition.TransitionType.transition.rawValue) static let TransactionDone = Notification.Name("transaction-done") static let TransactionExpired = Notification.Name("transaction-expired") diff --git a/TalerWallet1/Model/Model+Exchange.swift b/TalerWallet1/Model/Model+Exchange.swift @@ -31,6 +31,22 @@ enum ExchangeUpdateStatus: String, Codable { case ready case readyUpdate = "ready-update" } + +struct ExchangeState: Codable, Hashable { + var exchangeEntryStatus: ExchangeEntryStatus + var exchangeUpdateStatus: ExchangeUpdateStatus + var tosStatus: ExchangeTosStatus +} + +struct ExchangeTransition: Codable { // Notification + enum TransitionType: String, Codable { + case transition = "exchange-state-transition" + } + var type: TransitionType + var exchangeBaseUrl: String + var oldExchangeState: ExchangeState + var newExchangeState: ExchangeState +} // MARK: - /// The result from wallet-core's ListExchanges struct Exchange: Codable, Hashable, Identifiable {