From 246f914ca62906b463dfe98e834b5ade379a97e0 Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Sun, 28 May 2023 18:03:28 +0200 Subject: wallet-core: missing suspended states --- .../taler-wallet-core/src/operations/pay-peer.ts | 65 +++++++++++++++------- 1 file changed, 46 insertions(+), 19 deletions(-) (limited to 'packages/taler-wallet-core/src/operations/pay-peer.ts') diff --git a/packages/taler-wallet-core/src/operations/pay-peer.ts b/packages/taler-wallet-core/src/operations/pay-peer.ts index f464948f8..fb1260e3c 100644 --- a/packages/taler-wallet-core/src/operations/pay-peer.ts +++ b/packages/taler-wallet-core/src/operations/pay-peer.ts @@ -84,7 +84,7 @@ import { SpendCoinDetails } from "../crypto/cryptoImplementation.js"; import { DenominationRecord, PeerPullPaymentIncomingRecord, - PeerPullPaymentIncomingStatus, + PeerPullDebitRecordStatus, PeerPullPaymentInitiationRecord, PeerPullPaymentInitiationStatus, PeerPushPaymentCoinSelection, @@ -828,7 +828,8 @@ export async function preparePeerPushCredit( existing.existingPushInc.peerPushPaymentIncomingId, transactionId: constructTransactionIdentifier({ tag: TransactionType.PeerPushCredit, - peerPushPaymentIncomingId: existing.existingPushInc.peerPushPaymentIncomingId, + peerPushPaymentIncomingId: + existing.existingPushInc.peerPushPaymentIncomingId, }), }; } @@ -892,7 +893,7 @@ export async function preparePeerPushCredit( pursePub: pursePub, timestamp: TalerPreciseTimestamp.now(), contractTermsHash, - status: PeerPushPaymentIncomingStatus.Proposed, + status: PeerPushPaymentIncomingStatus.DialogProposed, withdrawalGroupId, currency: Amounts.currencyOf(purseStatus.balance), estimatedAmountEffective: Amounts.stringify( @@ -1120,7 +1121,7 @@ export async function processPeerPushCredit( return; } if ( - peerInc.status === PeerPushPaymentIncomingStatus.Accepted || + peerInc.status === PeerPushPaymentIncomingStatus.PendingMerge || peerInc.status === PeerPushPaymentIncomingStatus.MergeKycRequired ) { peerInc.status = PeerPushPaymentIncomingStatus.Done; @@ -1149,8 +1150,8 @@ export async function confirmPeerPushCredit( if (!peerInc) { return; } - if (peerInc.status === PeerPushPaymentIncomingStatus.Proposed) { - peerInc.status = PeerPushPaymentIncomingStatus.Accepted; + if (peerInc.status === PeerPushPaymentIncomingStatus.DialogProposed) { + peerInc.status = PeerPushPaymentIncomingStatus.PendingMerge; } await tx.peerPushPaymentIncoming.put(peerInc); }); @@ -1185,7 +1186,7 @@ export async function processPeerPullDebit( if (!peerPullInc) { throw Error("peer pull debit not found"); } - if (peerPullInc.status === PeerPullPaymentIncomingStatus.Accepted) { + if (peerPullInc.status === PeerPullDebitRecordStatus.PendingDeposit) { const pursePub = peerPullInc.pursePub; const coinSel = peerPullInc.coinSel; @@ -1231,8 +1232,8 @@ export async function processPeerPullDebit( if (!pi) { throw Error("peer pull payment not found anymore"); } - if (pi.status === PeerPullPaymentIncomingStatus.Accepted) { - pi.status = PeerPullPaymentIncomingStatus.Paid; + if (pi.status === PeerPullDebitRecordStatus.PendingDeposit) { + pi.status = PeerPullDebitRecordStatus.DonePaid; } await tx.peerPullPaymentIncoming.put(pi); }); @@ -1311,8 +1312,8 @@ export async function confirmPeerPullDebit( if (!pi) { throw Error(); } - if (pi.status === PeerPullPaymentIncomingStatus.Proposed) { - pi.status = PeerPullPaymentIncomingStatus.Accepted; + if (pi.status === PeerPullDebitRecordStatus.DialogProposed) { + pi.status = PeerPullDebitRecordStatus.PendingDeposit; pi.coinSel = { coinPubs: sel.coins.map((x) => x.coinPub), contributions: sel.coins.map((x) => x.contribution), @@ -1374,7 +1375,8 @@ export async function preparePeerPullDebit( existingPullIncomingRecord.peerPullPaymentIncomingId, transactionId: constructTransactionIdentifier({ tag: TransactionType.PeerPullDebit, - peerPullPaymentIncomingId: existingPullIncomingRecord.peerPullPaymentIncomingId, + peerPullPaymentIncomingId: + existingPullIncomingRecord.peerPullPaymentIncomingId, }), }; } @@ -1453,7 +1455,7 @@ export async function preparePeerPullDebit( pursePub: pursePub, timestampCreated: TalerPreciseTimestamp.now(), contractTerms, - status: PeerPullPaymentIncomingStatus.Proposed, + status: PeerPullDebitRecordStatus.DialogProposed, totalCostEstimated: Amounts.stringify(totalAmount), }); }); @@ -2249,12 +2251,12 @@ export function computePeerPushCreditTransactionState( pushCreditRecord: PeerPushPaymentIncomingRecord, ): TransactionState { switch (pushCreditRecord.status) { - case PeerPushPaymentIncomingStatus.Proposed: + case PeerPushPaymentIncomingStatus.DialogProposed: return { major: TransactionMajorState.Dialog, minor: TransactionMinorState.Proposed, }; - case PeerPushPaymentIncomingStatus.Accepted: + case PeerPushPaymentIncomingStatus.PendingMerge: return { major: TransactionMajorState.Pending, minor: TransactionMinorState.Merge, @@ -2268,11 +2270,26 @@ export function computePeerPushCreditTransactionState( major: TransactionMajorState.Pending, minor: TransactionMinorState.KycRequired, }; - case PeerPushPaymentIncomingStatus.Withdrawing: + case PeerPushPaymentIncomingStatus.PendingWithdrawing: return { major: TransactionMajorState.Pending, minor: TransactionMinorState.Withdraw, }; + case PeerPushPaymentIncomingStatus.SuspendedMerge: + return { + major: TransactionMajorState.Suspended, + minor: TransactionMinorState.Merge, + }; + case PeerPushPaymentIncomingStatus.SuspendedMergeKycRequired: + return { + major: TransactionMajorState.Suspended, + minor: TransactionMinorState.MergeKycRequired, + }; + case PeerPushPaymentIncomingStatus.SuspendedWithdrawing: + return { + major: TransactionMajorState.Suspended, + minor: TransactionMinorState.Withdraw, + }; } } @@ -2319,6 +2336,11 @@ export function computePeerPullCreditTransactionState( major: TransactionMajorState.Pending, minor: TransactionMinorState.Withdraw, }; + case PeerPullPaymentInitiationStatus.SuspendedMergeKycRequired: + return { + major: TransactionMajorState.Suspended, + minor: TransactionMinorState.MergeKycRequired, + }; } } @@ -2326,19 +2348,24 @@ export function computePeerPullDebitTransactionState( pullDebitRecord: PeerPullPaymentIncomingRecord, ): TransactionState { switch (pullDebitRecord.status) { - case PeerPullPaymentIncomingStatus.Proposed: + case PeerPullDebitRecordStatus.DialogProposed: return { major: TransactionMajorState.Dialog, minor: TransactionMinorState.Proposed, }; - case PeerPullPaymentIncomingStatus.Accepted: + case PeerPullDebitRecordStatus.PendingDeposit: return { major: TransactionMajorState.Pending, minor: TransactionMinorState.Deposit, }; - case PeerPullPaymentIncomingStatus.Paid: + case PeerPullDebitRecordStatus.DonePaid: return { major: TransactionMajorState.Done, }; + case PeerPullDebitRecordStatus.SuspendedDeposit: + return { + major: TransactionMajorState.Suspended, + minor: TransactionMinorState.Deposit, + }; } } -- cgit v1.2.3