taler-ios

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

commit 0a5a9f6d9536aa2cb7bd8a9d4f12112c7c406f5f
parent 8112ec78277df5783ad4d0fca32af76eea82623e
Author: Marc Stibane <marc@taler.net>
Date:   Sat, 10 Oct 2026 09:05:06 +0200

AI: JSON decoding

Diffstat:
MTalerWallet1/Model/Model+P2P.swift | 2+-
MTalerWallet1/Views/Actions/Peer2peer/P2PSubjectV.swift | 5+++--
MTalerWallet1/Views/Actions/Peer2peer/SendAmountView.swift | 4++--
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)")