From fd86791e42a0651968ae58969de178dc72929ffb Mon Sep 17 00:00:00 2001 From: Florian Dold Date: Tue, 25 Apr 2023 23:56:57 +0200 Subject: -DD37 wip --- .../taler-wallet-core/src/operations/withdraw.ts | 64 +++++++++++++++++++++- 1 file changed, 63 insertions(+), 1 deletion(-) (limited to 'packages/taler-wallet-core/src/operations/withdraw.ts') diff --git a/packages/taler-wallet-core/src/operations/withdraw.ts b/packages/taler-wallet-core/src/operations/withdraw.ts index 23c3e6713..6d5644b06 100644 --- a/packages/taler-wallet-core/src/operations/withdraw.ts +++ b/packages/taler-wallet-core/src/operations/withdraw.ts @@ -40,7 +40,6 @@ import { DenomKeyType, DenomSelectionState, Duration, - durationFromSpec, encodeCrock, ExchangeListItem, ExchangeWithdrawalDetails, @@ -64,6 +63,9 @@ import { WithdrawUriInfoResponse, ExchangeBatchWithdrawRequest, WalletNotification, + TransactionState, + TransactionMajorState, + TransactionMinorState, } from "@gnu-taler/taler-util"; import { EddsaKeypair } from "../crypto/cryptoImplementation.js"; import { @@ -133,6 +135,66 @@ import { isWithdrawableDenom } from "../index.js"; */ const logger = new Logger("operations/withdraw.ts"); +export function computeWithdrawalTransactionStatus( + wgRecord: WithdrawalGroupRecord, +): TransactionState { + switch (wgRecord.status) { + case WithdrawalGroupStatus.BankAborted: + return { + major: TransactionMajorState.Aborted, + }; + case WithdrawalGroupStatus.Finished: + return { + major: TransactionMajorState.Done, + }; + case WithdrawalGroupStatus.RegisteringBank: + return { + major: TransactionMajorState.Pending, + minor: TransactionMinorState.BankRegisterReserve, + }; + case WithdrawalGroupStatus.Ready: + return { + major: TransactionMajorState.Pending, + minor: TransactionMinorState.WithdrawCoins, + }; + case WithdrawalGroupStatus.QueryingStatus: + return { + major: TransactionMajorState.Pending, + minor: TransactionMinorState.ExchangeWaitReserve, + }; + case WithdrawalGroupStatus.WaitConfirmBank: + return { + major: TransactionMajorState.Pending, + minor: TransactionMinorState.BankConfirmTransfer, + }; + case WithdrawalGroupStatus.AbortingBank: + return { + major: TransactionMajorState.Aborting, + minor: TransactionMinorState.Bank, + }; + case WithdrawalGroupStatus.SuspendedAbortingBank: + return { + major: TransactionMajorState.SuspendedAborting, + minor: TransactionMinorState.Bank, + }; + case WithdrawalGroupStatus.SuspendedQueryingStatus: + return { + major: TransactionMajorState.Suspended, + minor: TransactionMinorState.ExchangeWaitReserve, + }; + case WithdrawalGroupStatus.SuspendedRegisteringBank: + return { + major: TransactionMajorState.Suspended, + minor: TransactionMinorState.BankRegisterReserve, + }; + case WithdrawalGroupStatus.SuspendedWaitConfirmBank: + return { + major: TransactionMajorState.Suspended, + minor: TransactionMinorState.BankConfirmTransfer, + }; + } +} + /** * Get information about a withdrawal from * a taler://withdraw URI by asking the bank. -- cgit v1.2.3