aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/tip.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-core/src/operations/tip.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/tip.ts21
1 files changed, 20 insertions, 1 deletions
diff --git a/packages/taler-wallet-core/src/operations/tip.ts b/packages/taler-wallet-core/src/operations/tip.ts
index 0bee2b406..02c933cba 100644
--- a/packages/taler-wallet-core/src/operations/tip.ts
+++ b/packages/taler-wallet-core/src/operations/tip.ts
@@ -36,6 +36,7 @@ import {
TalerPreciseTimestamp,
TalerProtocolTimestamp,
TipPlanchetDetail,
+ TransactionAction,
TransactionMajorState,
TransactionMinorState,
TransactionState,
@@ -111,6 +112,24 @@ export function computeTipTransactionStatus(
}
}
+
+export function computeTipTransactionActions(
+ tipRecord: TipRecord,
+): TransactionAction[] {
+ switch (tipRecord.status) {
+ case TipRecordStatus.Done:
+ return [TransactionAction.Delete];
+ case TipRecordStatus.Aborted:
+ return [TransactionAction.Delete];
+ case TipRecordStatus.PendingPickup:
+ return [TransactionAction.Suspend, TransactionAction.Fail];
+ case TipRecordStatus.SuspendidPickup:
+ return [TransactionAction.Resume, TransactionAction.Fail];
+ default:
+ assertUnreachable(tipRecord.status);
+ }
+}
+
export async function prepareTip(
ws: InternalWalletState,
talerTipUri: string,
@@ -526,7 +545,7 @@ export async function resumeTipTransaction(
notifyTransition(ws, transactionId, transitionInfo);
}
-export async function cancelAbortingTipTransaction(
+export async function failTipTransaction(
ws: InternalWalletState,
walletTipId: string,
): Promise<void> {