diff options
Diffstat (limited to 'packages/taler-wallet-core/src/operations/tip.ts')
-rw-r--r-- | packages/taler-wallet-core/src/operations/tip.ts | 21 |
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> { |