commit e9392efe2b009834c151e6d0cb29b3d66d203cb3
parent e5e51a4e29e565366df1176946b4be2649afe367
Author: Marc Stibane <marc@taler.net>
Date: Thu, 10 Sep 2026 08:43:12 +0200
waitTransactionState
Diffstat:
1 file changed, 25 insertions(+), 0 deletions(-)
diff --git a/TalerWallet1/Model/WalletModel.swift b/TalerWallet1/Model/WalletModel.swift
@@ -250,6 +250,22 @@ extension WalletModel {
}
// MARK: -
/// A request to cancel a wallet transaction by token.
+fileprivate struct WaitTransactionState: WalletBackendFormattedRequest {
+ struct Response: Decodable {}
+ var operation: String { "waitTransactionState" }
+ func args() -> Args { Args(transactionId: txId, txState: txState, progressToken: token) }
+ var txId: String
+ var txState: TransactionState
+ var token: String
+
+ struct Args: Encodable {
+ var transactionId: String
+ var txState: TransactionState
+ var progressToken: String
+ }
+}
+// MARK: -
+/// A request to cancel a wallet transaction by token.
fileprivate struct CancelProgressToken: WalletBackendFormattedRequest {
struct Response: Decodable {}
var operation: String { "cancelProgressToken" }
@@ -308,6 +324,15 @@ fileprivate struct JSONTransactionById: WalletBackendFormattedRequest {
}
extension WalletModel {
+ nonisolated func waitTransactionState(_ txId: String, token: String)
+ async throws {
+ let txState = TransactionState(major: .dialog, minor: nil, working: nil)
+ let request = WaitTransactionState(txId: txId, txState: txState, token: token)
+ let controller = Controller.shared
+ controller.progressOperation = request.operation
+ controller.progressToken = txId
+ _ = try await sendRequest(request)
+ }
nonisolated func cancelProgressToken(_ op: String, token: String)
async throws {
let request = CancelProgressToken(op: op, token: token)