commit 0a5a9f6d9536aa2cb7bd8a9d4f12112c7c406f5f
parent 8112ec78277df5783ad4d0fca32af76eea82623e
Author: Marc Stibane <marc@taler.net>
Date: Sat, 10 Oct 2026 09:05:06 +0200
AI: JSON decoding
Diffstat:
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/TalerWallet1/Model/Model+P2P.swift b/TalerWallet1/Model/Model+P2P.swift
@@ -49,7 +49,7 @@ extension WalletModel {
struct CheckPeerPushDebitResponse: Codable {
let type: String // ok, insufficient-balance
let exchangeBaseUrl: String? // API "2:0:1"
- let amountRaw: Amount
+ let amountRaw: Amount? // not for insufficient-balance
let amountEffective: Amount?
let defaultExpiration: Duration?
let maxExpirationDate: Timestamp? // API "2:0:1" TODO: limit expiration (30 days or 7 days)
diff --git a/TalerWallet1/Views/Actions/Peer2peer/P2PSubjectV.swift b/TalerWallet1/Views/Actions/Peer2peer/P2PSubjectV.swift
@@ -12,8 +12,9 @@ import SymLog
func p2pFee(ppCheck: CheckPeerPushDebitResponse) -> Amount? {
do {
// Outgoing: fee = effective - raw
- if let effective = ppCheck.amountEffective {
- let fee = try effective - ppCheck.amountRaw
+ if let effective = ppCheck.amountEffective,
+ let raw = ppCheck.amountRaw {
+ let fee = try effective - raw
return fee
}
} catch {}
diff --git a/TalerWallet1/Views/Actions/Peer2peer/SendAmountView.swift b/TalerWallet1/Views/Actions/Peer2peer/SendAmountView.swift
@@ -85,8 +85,8 @@ struct SendAmountView: View {
}
do {
let ppCheck = try await model.checkPeerPushDebit(amount, scope: balance.scopeInfo, viewHandles: true)
- let raw = ppCheck.amountRaw
- if let effective = ppCheck.amountEffective {
+ if let raw = ppCheck.amountRaw,
+ let effective = ppCheck.amountEffective {
if let fee = fee(raw: raw, effective: effective) {
feeString = fee.formatted(balance.scopeInfo, isNegative: false)
symLog.log("Fee = \(feeString.0)")