aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/pay-peer-push-debit.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2024-06-10 14:39:17 +0200
committerFlorian Dold <florian@dold.me>2024-06-10 14:39:17 +0200
commitccdc69ac4941188eb3d63947f6031a7a1cc6c6af (patch)
treea74d6982bf149d56ae1ffca46574424506491fb7 /packages/taler-wallet-core/src/pay-peer-push-debit.ts
parentb36a1cb508fc1dd5421dc92221d25a115c0f3eab (diff)
downloadwallet-core-ccdc69ac4941188eb3d63947f6031a7a1cc6c6af.tar.xz
wallet-core: report 'retry' as part of transaction actions where applicable
Diffstat (limited to 'packages/taler-wallet-core/src/pay-peer-push-debit.ts')
-rw-r--r--packages/taler-wallet-core/src/pay-peer-push-debit.ts35
1 files changed, 29 insertions, 6 deletions
diff --git a/packages/taler-wallet-core/src/pay-peer-push-debit.ts b/packages/taler-wallet-core/src/pay-peer-push-debit.ts
index 3a936fb04..f8e6adb3c 100644
--- a/packages/taler-wallet-core/src/pay-peer-push-debit.ts
+++ b/packages/taler-wallet-core/src/pay-peer-push-debit.ts
@@ -406,7 +406,10 @@ async function handlePurseCreationConflict(
const instructedAmount = Amounts.parseOrThrow(peerPushInitiation.amount);
const sel = peerPushInitiation.coinSel;
- checkDbInvariant(!!sel, `no coin selected for peer push initiation ${peerPushInitiation.pursePub}`);
+ checkDbInvariant(
+ !!sel,
+ `no coin selected for peer push initiation ${peerPushInitiation.pursePub}`,
+ );
const repair: PreviousPayCoins = [];
@@ -1218,17 +1221,37 @@ export function computePeerPushDebitTransactionActions(
): TransactionAction[] {
switch (ppiRecord.status) {
case PeerPushDebitStatus.PendingCreatePurse:
- return [TransactionAction.Abort, TransactionAction.Suspend];
+ return [
+ TransactionAction.Retry,
+ TransactionAction.Abort,
+ TransactionAction.Suspend,
+ ];
case PeerPushDebitStatus.PendingReady:
- return [TransactionAction.Abort, TransactionAction.Suspend];
+ return [
+ TransactionAction.Retry,
+ TransactionAction.Abort,
+ TransactionAction.Suspend,
+ ];
case PeerPushDebitStatus.Aborted:
return [TransactionAction.Delete];
case PeerPushDebitStatus.AbortingDeletePurse:
- return [TransactionAction.Suspend, TransactionAction.Fail];
+ return [
+ TransactionAction.Retry,
+ TransactionAction.Suspend,
+ TransactionAction.Fail,
+ ];
case PeerPushDebitStatus.AbortingRefreshDeleted:
- return [TransactionAction.Suspend, TransactionAction.Fail];
+ return [
+ TransactionAction.Retry,
+ TransactionAction.Suspend,
+ TransactionAction.Fail,
+ ];
case PeerPushDebitStatus.AbortingRefreshExpired:
- return [TransactionAction.Suspend, TransactionAction.Fail];
+ return [
+ TransactionAction.Retry,
+ TransactionAction.Suspend,
+ TransactionAction.Fail,
+ ];
case PeerPushDebitStatus.SuspendedAbortingRefreshExpired:
return [TransactionAction.Resume, TransactionAction.Fail];
case PeerPushDebitStatus.SuspendedAbortingDeletePurse: