summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/withdraw.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2021-04-14 18:21:23 +0200
committerFlorian Dold <florian@dold.me>2021-04-14 18:21:23 +0200
commitf4b5f3cff8c29b4aab31d1ef0d0cefd32045db63 (patch)
tree3f27375b097edeae35010d5642ea964969001f98 /packages/taler-wallet-core/src/operations/withdraw.ts
parent14f13250a01ad15d9fb1ba956fc5409c7f76a2fa (diff)
downloadwallet-core-f4b5f3cff8c29b4aab31d1ef0d0cefd32045db63.tar.gz
wallet-core-f4b5f3cff8c29b4aab31d1ef0d0cefd32045db63.tar.bz2
wallet-core-f4b5f3cff8c29b4aab31d1ef0d0cefd32045db63.zip
implement debug flag for allowing late withdrawal
Diffstat (limited to 'packages/taler-wallet-core/src/operations/withdraw.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/withdraw.ts15
1 files changed, 11 insertions, 4 deletions
diff --git a/packages/taler-wallet-core/src/operations/withdraw.ts b/packages/taler-wallet-core/src/operations/withdraw.ts
index fcaa0e6d5..237ef9fc6 100644
--- a/packages/taler-wallet-core/src/operations/withdraw.ts
+++ b/packages/taler-wallet-core/src/operations/withdraw.ts
@@ -20,6 +20,7 @@
import {
AmountJson,
Amounts,
+ durationFromSpec,
parseWithdrawUri,
Timestamp,
} from "@gnu-taler/taler-util";
@@ -74,6 +75,7 @@ import { URL } from "../util/url";
import { TalerErrorCode } from "@gnu-taler/taler-util";
import { updateRetryInfoTimeout, initRetryInfo } from "../util/retries";
import { compare } from "@gnu-taler/taler-util";
+import { walletCoreDebugFlags } from "../util/debugFlags.js";
/**
* Logger for this file.
@@ -174,10 +176,15 @@ interface ExchangeWithdrawDetails {
export function isWithdrawableDenom(d: DenominationRecord): boolean {
const now = getTimestampNow();
const started = timestampCmp(now, d.stampStart) >= 0;
- const lastPossibleWithdraw = timestampSubtractDuraction(
- d.stampExpireWithdraw,
- { d_ms: 50 * 1000 },
- );
+ let lastPossibleWithdraw: Timestamp;
+ if (walletCoreDebugFlags.denomselAllowLate) {
+ lastPossibleWithdraw = d.stampExpireWithdraw;
+ } else {
+ lastPossibleWithdraw = timestampSubtractDuraction(
+ d.stampExpireWithdraw,
+ durationFromSpec({ minutes: 5 }),
+ );
+ }
const remaining = getDurationRemaining(lastPossibleWithdraw, now);
const stillOkay = remaining.d_ms !== 0;
return started && stillOkay && !d.isRevoked;