From 6876951cb30f057a852937a533d5d51d26645680 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 7 Sep 2022 15:48:00 -0300 Subject: [wallet] implement prototype for handling incoming pay-push URI --- .../net/taler/wallet/peer/PeerIncomingState.kt | 50 ++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 wallet/src/main/java/net/taler/wallet/peer/PeerIncomingState.kt (limited to 'wallet/src/main/java/net/taler/wallet/peer/PeerIncomingState.kt') diff --git a/wallet/src/main/java/net/taler/wallet/peer/PeerIncomingState.kt b/wallet/src/main/java/net/taler/wallet/peer/PeerIncomingState.kt new file mode 100644 index 0000000..c021c2f --- /dev/null +++ b/wallet/src/main/java/net/taler/wallet/peer/PeerIncomingState.kt @@ -0,0 +1,50 @@ +/* + * This file is part of GNU Taler + * (C) 2022 Taler Systems S.A. + * + * GNU Taler is free software; you can redistribute it and/or modify it under the + * terms of the GNU General Public License as published by the Free Software + * Foundation; either version 3, or (at your option) any later version. + * + * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR + * A PARTICULAR PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with + * GNU Taler; see the file COPYING. If not, see + */ + +package net.taler.wallet.peer + +import kotlinx.serialization.Serializable +import net.taler.common.Amount +import net.taler.wallet.backend.TalerErrorInfo + +sealed class PeerIncomingState +object PeerIncomingChecking : PeerIncomingState() +open class PeerIncomingTerms( + val amount: Amount, + val contractTerms: PeerContractTerms, + val id: String, +) : PeerIncomingState() + +class PeerIncomingAccepting(s: PeerIncomingTerms) : + PeerIncomingTerms(s.amount, s.contractTerms, s.id) + +object PeerIncomingAccepted : PeerIncomingState() +data class PeerIncomingError( + val info: TalerErrorInfo, +) : PeerIncomingState() + +@Serializable +data class PeerContractTerms( + val summary: String, + val amount: Amount, +) + +@Serializable +data class CheckPeerPullPaymentResponse( + val amount: Amount, + val contractTerms: PeerContractTerms, + val peerPullPaymentIncomingId: String, +) -- cgit v1.2.3