commit c9e8332c3cd0a92610b046f12ca540104dcd28ff
parent 0e471d5b1eb42a97ca1db49db0a2ce1485061992
Author: Marc Stibane <marc@taler.net>
Date: Thu, 26 Mar 2026 00:43:04 +0100
fix #9671: internal error on first withdraw.
Diffstat:
2 files changed, 29 insertions(+), 12 deletions(-)
diff --git a/TalerWallet1/Quickjs/QuickDataTask.swift b/TalerWallet1/Quickjs/QuickDataTask.swift
@@ -144,18 +144,32 @@ class QuickDataTask: NSObject {
Task.detached {
self.logger.error("⁉️ \(self.requestID, privacy: .public) \(method, privacy: .public) \(error, privacy: .public)")
Controller.shared.checkInternetConnection()
- let errmsg = error?.localizedDescription
- let errmsg_p0 = if let errmsg { UnsafeMutablePointer<CChar>(mutating: errmsg.cString(using: .utf8)) }
- else { UnsafeMutablePointer<CChar>(nil) }
- var responseInfo = JSHttpResponseInfo(request_id: self.requestID,
- status: 0,
- errmsg: errmsg_p0,
- response_headers: nil,
- num_response_headers: 0,
- body: nil,
- body_len: 0)
- let responseInfoPtr = UnsafeMutablePointer<JSHttpResponseInfo>(&responseInfo)
- responseCb(responseCbCls, responseInfoPtr)
+ if let errmsg = error?.localizedDescription,
+ let errmsgC = errmsg.cString(using: .utf8)
+ {
+ let errmsg_p1 = UnsafeMutablePointer<CChar>(mutating: errmsgC)
+ var responseInfo = JSHttpResponseInfo(request_id: self.requestID,
+ status: 0,
+ errmsg: errmsg_p1,
+ response_headers: nil,
+ num_response_headers: 0,
+ body: nil,
+ body_len: 0)
+ let responseInfoPtr = UnsafeMutablePointer<JSHttpResponseInfo>(&responseInfo)
+ responseCb(responseCbCls, responseInfoPtr)
+ } else {
+ // should never happen
+ let errmsg_p1 = UnsafeMutablePointer<CChar>(nil)
+ var responseInfo = JSHttpResponseInfo(request_id: self.requestID,
+ status: 0,
+ errmsg: errmsg_p1,
+ response_headers: nil,
+ num_response_headers: 0,
+ body: nil,
+ body_len: 0)
+ let responseInfoPtr = UnsafeMutablePointer<JSHttpResponseInfo>(&responseInfo)
+ responseCb(responseCbCls, responseInfoPtr)
+ }
}
}
requests[requestID] = nil
diff --git a/TalerWallet1/Views/Main/WalletEmptyView.swift b/TalerWallet1/Views/Main/WalletEmptyView.swift
@@ -115,6 +115,9 @@ struct WalletEmptyView: View {
let amount = Amount(currency: DEMOCURRENCY, cent: 2500)
symLog.log("Withdraw KUDOS")
try? await model.loadTestKudos(0, amount: amount)
+ DispatchQueue.main.asyncAfter(deadline: .now() + 1) {
+ withDrawStarted = false
+ }
}
}
.buttonStyle(TalerButtonStyle(type: .prominent, narrow: false, disabled: withDrawStarted, aligned: .center))