[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[taler-taler-ios] 02/05: recoup, denomLoss
From: |
gnunet |
Subject: |
[taler-taler-ios] 02/05: recoup, denomLoss |
Date: |
Mon, 15 Apr 2024 20:24:43 +0200 |
This is an automated email from the git hooks/post-receive script.
marc-stibane pushed a commit to branch master
in repository taler-ios.
commit 8837d688a3be08c4e28710c923896e1492799862
Author: Marc Stibane <marc@taler.net>
AuthorDate: Mon Apr 15 19:54:16 2024 +0200
recoup, denomLoss
---
TalerWallet1/Model/Transaction.swift | 53 +++++++++++++++++-----
.../Views/Transactions/TransactionSummaryV.swift | 19 ++++++++
2 files changed, 60 insertions(+), 12 deletions(-)
diff --git a/TalerWallet1/Model/Transaction.swift
b/TalerWallet1/Model/Transaction.swift
index 85ed2d3..6ea3569 100644
--- a/TalerWallet1/Model/Transaction.swift
+++ b/TalerWallet1/Model/Transaction.swift
@@ -206,6 +206,9 @@ enum TransactionType: String, Codable {
case scanPushCredit = "peer-push-credit" // scan QR, receive coins from
peer
case peerPullCredit = "peer-pull-credit" // request payment from peer,
show QR
case scanPullDebit = "peer-pull-debit" // scan QR, pay requested
+// case internalWithdrawal = "internal-withdrawal"
+ case recoup
+ case denomLoss = "denom-loss" // coins are lost,
denomination no longer available
var isWithdrawal : Bool { self == .withdrawal }
var isDeposit : Bool { self == .deposit }
@@ -272,6 +275,10 @@ struct TransactionCommon: Decodable, Sendable {
comment: "TransactionType,
send invoice to another wallet")
case .scanPullDebit: return String(localized: "Pay Request",
// Pay Invoice is the same as Payment
comment: "TransactionType,
scan invoice to pay to another wallet")
+ case .recoup: return String(localized: "Recoup",
+ comment: "TransactionType")
+ case .denomLoss: return String(localized: "Money lost",
+ comment: "TransactionType")
}
}
func localizedTypePast(_ type: TransactionType) -> String {
@@ -325,12 +332,10 @@ struct WithdrawalDetails: Decodable {
/// URL for user-initiated confirmation
var bankConfirmationUrl: String?
}
-
struct WithdrawalTransactionDetails: Decodable {
var exchangeBaseUrl: String
var withdrawalDetails: WithdrawalDetails
}
-
struct WithdrawalTransaction : Sendable {
var common: TransactionCommon
var details: WithdrawalTransactionDetails
@@ -342,7 +347,6 @@ struct TrackingState : Decodable {
var amountRaw: Amount
var wireFee: Amount
}
-
struct DepositTransactionDetails: Decodable {
var depositGroupId: String
var targetPaytoUri: String
@@ -351,7 +355,6 @@ struct DepositTransactionDetails: Decodable {
var deposited: Bool
var trackingState: [TrackingState]?
}
-
struct DepositTransaction : Sendable {
var common: TransactionCommon
var details: DepositTransactionDetails
@@ -363,7 +366,6 @@ struct RefundInfo: Decodable {
var transactionId: String
var timestamp: Timestamp
}
-
struct PaymentTransactionDetails: Decodable {
var info: OrderShortInfo
var proposalId: String
@@ -374,7 +376,6 @@ struct PaymentTransactionDetails: Decodable {
var refundQueryActive: Bool?
var posConfirmation: String?
}
-
struct PaymentTransaction : Sendable{
var common: TransactionCommon
var details: PaymentTransactionDetails
@@ -387,7 +388,6 @@ struct RefundTransactionDetails: Decodable {
var amountInvalid: Amount?
var info: OrderShortInfo? // TODO: is this still here?
}
-
struct RefundTransaction : Sendable{
var common: TransactionCommon
var details: RefundTransactionDetails
@@ -451,8 +451,7 @@ struct RefreshTransactionDetails: Decodable {
var refreshOutputAmount: Amount
var error: RefreshError?
}
-
-struct RefreshTransaction : Sendable{
+struct RefreshTransaction : Sendable {
var common: TransactionCommon
var details: RefreshTransactionDetails
}
@@ -461,18 +460,33 @@ struct P2pShortInfo: Codable, Sendable {
var summary: String
var expiration: Timestamp
}
-
struct P2PTransactionDetails: Codable, Sendable {
var exchangeBaseUrl: String
var talerUri: String? // only if we initiated the transaction
var info: P2pShortInfo
}
-
-struct P2PTransaction : Sendable{
+struct P2PTransaction : Sendable {
var common: TransactionCommon
var details: P2PTransactionDetails
}
+struct RecoupTransactionDetails: Decodable {
+ var recoupReason: String?
+}
+struct RecoupTransaction : Sendable {
+ var common: TransactionCommon
+ var details: RecoupTransactionDetails
+}
+
+struct DenomLossTransactionDetails: Decodable {
+ var exchangeBaseUrl: String
+ var lossEventType: String
+}
+struct DenomLossTransaction : Sendable {
+ var common: TransactionCommon
+ var details: DenomLossTransactionDetails
+}
+
struct DummyTransaction : Sendable{
var common: TransactionCommon
}
@@ -485,6 +499,8 @@ enum Transaction: Decodable, Hashable, Identifiable,
Sendable {
case refund (RefundTransaction)
case refresh (RefreshTransaction)
case peer2peer (P2PTransaction)
+ case recoup (RecoupTransaction)
+ case denomLoss (DenomLossTransaction)
init(from decoder: Decoder) throws {
do {
@@ -508,6 +524,12 @@ enum Transaction: Decodable, Hashable, Identifiable,
Sendable {
case .peerPushDebit, .peerPullCredit, .scanPullDebit,
.scanPushCredit:
let details = try P2PTransactionDetails.init(from: decoder)
self = .peer2peer(P2PTransaction(common: common, details:
details))
+ case .recoup:
+ let details = try RecoupTransactionDetails.init(from:
decoder)
+ self = .recoup(RecoupTransaction(common: common, details:
details))
+ case .denomLoss:
+ let details = try DenomLossTransactionDetails.init(from:
decoder)
+ self = .denomLoss(DenomLossTransaction(common: common,
details: details))
default:
let context = DecodingError.Context(
codingPath: decoder.codingPath,
@@ -608,6 +630,8 @@ enum Transaction: Decodable, Hashable, Identifiable,
Sendable {
case .refund(let refundTransaction):
refundTransaction.common
case .refresh(let refreshTransaction):
refreshTransaction.common
case .peer2peer(let p2pTransaction): p2pTransaction.common
+ case .recoup(let recoupTransaction):
recoupTransaction.common
+ case .denomLoss(let denomLossTransaction):
denomLossTransaction.common
}
}
@@ -632,6 +656,11 @@ enum Transaction: Decodable, Hashable, Identifiable,
Sendable {
result[EXCHANGEBASEURL] =
p2pTransaction.details.exchangeBaseUrl
result["summary"] = p2pTransaction.details.info.summary
result[TALERURI] = p2pTransaction.details.talerUri ?? ""
+ case .recoup(let recoupTransaction):
+ result["reason"] = recoupTransaction.details.recoupReason
+ case .denomLoss(let denomLossTransaction):
+ result[EXCHANGEBASEURL] =
denomLossTransaction.details.exchangeBaseUrl
+ result["reason"] = denomLossTransaction.details.lossEventType
}
return result
}
diff --git a/TalerWallet1/Views/Transactions/TransactionSummaryV.swift
b/TalerWallet1/Views/Transactions/TransactionSummaryV.swift
index d741aa2..74d719b 100644
--- a/TalerWallet1/Views/Transactions/TransactionSummaryV.swift
+++ b/TalerWallet1/Views/Transactions/TransactionSummaryV.swift
@@ -418,6 +418,25 @@ struct TransactionSummaryV: View {
summary: details.info.summary,
merchant: nil)
} // p2p
+ case .recoup(let recoupTransaction): Group {
+ let details = recoupTransaction.details
// TODO: more details
+ ThreeAmountsSheet(stack: stack.push(),
+ common: common, topAbbrev:
String(localized: "Recoup:", comment: "mini"),
+ topTitle: String(localized: "Recoup:"),
+ baseURL: nil, large: true,
// TODO: baseURL, noFees
+ summary: nil,
+ merchant: nil)
+
+ }
+ case .denomLoss(let denomLossTransaction): Group {
+ let details = denomLossTransaction.details
// TODO: more details
+ ThreeAmountsSheet(stack: stack.push(),
+ common: common, topAbbrev:
String(localized: "Lost:", comment: "mini"),
+ topTitle: String(localized: "Money
lost:"),
+ baseURL: details.exchangeBaseUrl,
large: true, // TODO: baseURL, noFees
+ summary: details.lossEventType,
+ merchant: nil)
+ }
} // switch
} // Group
}
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [taler-taler-ios] branch master updated (4c12077 -> 2276b6e), gnunet, 2024/04/15
- [taler-taler-ios] 01/05: noFees, gnunet, 2024/04/15
- [taler-taler-ios] 03/05: noFees, gnunet, 2024/04/15
- [taler-taler-ios] 02/05: recoup, denomLoss,
gnunet <=
- [taler-taler-ios] 04/05: DenomLossEventType, gnunet, 2024/04/15
- [taler-taler-ios] 05/05: debugging, gnunet, 2024/04/15