aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--packages/taler-wallet-core/src/operations/exchanges.ts13
-rw-r--r--packages/taler-wallet-core/src/operations/pending.ts11
2 files changed, 9 insertions, 15 deletions
diff --git a/packages/taler-wallet-core/src/operations/exchanges.ts b/packages/taler-wallet-core/src/operations/exchanges.ts
index 2975c860f..c14f27656 100644
--- a/packages/taler-wallet-core/src/operations/exchanges.ts
+++ b/packages/taler-wallet-core/src/operations/exchanges.ts
@@ -123,7 +123,7 @@ async function handleExchangeUpdateError(
): Promise<void> {
await ws.db
.mktx((x) => ({ exchanges: x.exchanges }))
- .runReadOnly(async (tx) => {
+ .runReadWrite(async (tx) => {
const exchange = await tx.exchanges.get(baseUrl);
if (!exchange) {
return;
@@ -131,6 +131,7 @@ async function handleExchangeUpdateError(
exchange.retryInfo.retryCounter++;
updateRetryInfoTimeout(exchange.retryInfo);
exchange.lastError = err;
+ await tx.exchanges.put(exchange)
});
if (err) {
ws.notify({ type: NotificationType.ExchangeOperationError, error: err });
@@ -526,11 +527,11 @@ async function updateExchangeFromUrlImpl(
tosFound !== undefined
? tosFound
: await downloadExchangeWithTermsOfService(
- baseUrl,
- ws.http,
- timeout,
- "text/plain",
- );
+ baseUrl,
+ ws.http,
+ timeout,
+ "text/plain",
+ );
let recoupGroupId: string | undefined = undefined;
diff --git a/packages/taler-wallet-core/src/operations/pending.ts b/packages/taler-wallet-core/src/operations/pending.ts
index 99d275836..b2f13625a 100644
--- a/packages/taler-wallet-core/src/operations/pending.ts
+++ b/packages/taler-wallet-core/src/operations/pending.ts
@@ -51,25 +51,18 @@ async function gatherExchangePending(
resp: PendingOperationsResponse,
): Promise<void> {
await tx.exchanges.iter().forEachAsync(async (e) => {
- let exchangeUpdateTimestampDue: Timestamp;
-
- if (e.lastError) {
- exchangeUpdateTimestampDue = e.retryInfo.nextRetry;
- } else {
- exchangeUpdateTimestampDue = e.nextUpdate;
- }
resp.pendingOperations.push({
type: PendingTaskType.ExchangeUpdate,
givesLifeness: false,
- timestampDue: exchangeUpdateTimestampDue,
+ timestampDue: e.lastError ? e.retryInfo.nextRetry : e.nextUpdate,
exchangeBaseUrl: e.baseUrl,
lastError: e.lastError,
});
resp.pendingOperations.push({
type: PendingTaskType.ExchangeCheckRefresh,
- timestampDue: e.nextRefreshCheck,
+ timestampDue: e.lastError ? e.retryInfo.nextRetry : e.nextRefreshCheck,
givesLifeness: false,
exchangeBaseUrl: e.baseUrl,
});