diff options
author | Florian Dold <florian@dold.me> | 2023-04-24 21:39:28 +0200 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2023-04-24 21:39:28 +0200 |
commit | ce41337bd1f15a82706808d02660d6550c7ab9fc (patch) | |
tree | e4d2c16cddd388dc76c762e2ad60db3fdf2b141d /packages/taler-wallet-core/src/operations/tip.ts | |
parent | e2e56332e21e28f4fee8436fba64a6a526a43947 (diff) |
wallet-core: derive DD37 for tipping
Diffstat (limited to 'packages/taler-wallet-core/src/operations/tip.ts')
-rw-r--r-- | packages/taler-wallet-core/src/operations/tip.ts | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/packages/taler-wallet-core/src/operations/tip.ts b/packages/taler-wallet-core/src/operations/tip.ts index b37288079..5bcf609b5 100644 --- a/packages/taler-wallet-core/src/operations/tip.ts +++ b/packages/taler-wallet-core/src/operations/tip.ts @@ -35,6 +35,9 @@ import { TalerErrorCode, TalerProtocolTimestamp, TipPlanchetDetail, + TransactionMajorState, + TransactionMinorState, + TransactionState, TransactionType, URL, } from "@gnu-taler/taler-util"; @@ -67,6 +70,30 @@ import { selectWithdrawalDenominations } from "../util/coinSelection.js"; const logger = new Logger("operations/tip.ts"); +/** + * Get the (DD37-style) transaction status based on the + * database record of a tip. + */ +export function computeTipTransactionStatus( + tipRecord: TipRecord, +): TransactionState { + if (tipRecord.pickedUpTimestamp) { + return { + major: TransactionMajorState.Done, + }; + } + if (tipRecord.acceptedTimestamp) { + return { + major: TransactionMajorState.Pending, + minor: TransactionMinorState.Pickup, + }; + } + return { + major: TransactionMajorState.Pending, + minor: TransactionMinorState.User, + }; +} + export async function prepareTip( ws: InternalWalletState, talerTipUri: string, |