commit d033fa4e800a84ddd58e00470ec96204448fedd2
parent c98215fcf19b591d3716a79d53b366d3d03d8d62
Author: Marc Stibane <marc@taler.net>
Date: Wed, 5 Jun 2024 11:47:21 +0200
ExchangeTransition
Diffstat:
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 {