summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-core/src/operations')
-rw-r--r--packages/taler-wallet-core/src/operations/pay.ts8
1 files changed, 5 insertions, 3 deletions
diff --git a/packages/taler-wallet-core/src/operations/pay.ts b/packages/taler-wallet-core/src/operations/pay.ts
index 6452a11ae..50f863e48 100644
--- a/packages/taler-wallet-core/src/operations/pay.ts
+++ b/packages/taler-wallet-core/src/operations/pay.ts
@@ -68,6 +68,8 @@ import {
durationMax,
durationMin,
isTimestampExpired,
+ durationMul,
+ durationAdd,
} from "../util/time";
import { strcmp, canonicalJson } from "../util/helpers";
import {
@@ -614,8 +616,8 @@ function getProposalRequestTimeout(proposal: ProposalRecord): Duration {
);
}
-function getPurchaseRequestTimeout(purchase: PurchaseRecord): Duration {
- return { d_ms: 5000 };
+function getPayRequestTimeout(purchase: PurchaseRecord): Duration {
+ return durationMul({ d_ms: 5000 }, 1 + purchase.payCoinSelection.coinPubs.length / 20);
}
async function processDownloadProposalImpl(
@@ -936,7 +938,7 @@ export async function submitPay(
const resp = await ws.runSequentialized([EXCHANGE_COINS_LOCK], () =>
ws.http.postJson(payUrl, reqBody, {
- timeout: getPurchaseRequestTimeout(purchase),
+ timeout: getPayRequestTimeout(purchase),
}),
);