aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/withdraw.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-04-25 23:56:57 +0200
committerFlorian Dold <florian@dold.me>2023-04-25 23:58:17 +0200
commitfd86791e42a0651968ae58969de178dc72929ffb (patch)
treebbfeff4205ae6990ee60367b884b83a74e8b0c1a /packages/taler-wallet-core/src/operations/withdraw.ts
parentf94d7bc15115753ce3c492deb72ff9fdb4a66cba (diff)
downloadwallet-core-fd86791e42a0651968ae58969de178dc72929ffb.tar.xz
-DD37 wip
Diffstat (limited to 'packages/taler-wallet-core/src/operations/withdraw.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/withdraw.ts64
1 files changed, 63 insertions, 1 deletions
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.