summaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/wallet.ts
diff options
context:
space:
mode:
authorFlorian Dold <florian@dold.me>2023-06-05 18:38:17 +0200
committerFlorian Dold <florian@dold.me>2023-06-05 18:38:17 +0200
commitda927b5e48453b5bddb56944f7073619f693f526 (patch)
tree1aa84cfad016bbe665715e1ef7171dd9a3d586b5 /packages/taler-wallet-core/src/wallet.ts
parentbdb67c83a9d0244ba58e22f4811736722bbcb659 (diff)
downloadwallet-core-da927b5e48453b5bddb56944f7073619f693f526.tar.gz
wallet-core-da927b5e48453b5bddb56944f7073619f693f526.tar.bz2
wallet-core-da927b5e48453b5bddb56944f7073619f693f526.zip
wallet-core: handle Gone in peer-pull-debit
Diffstat (limited to 'packages/taler-wallet-core/src/wallet.ts')
-rw-r--r--packages/taler-wallet-core/src/wallet.ts30
1 files changed, 10 insertions, 20 deletions
diff --git a/packages/taler-wallet-core/src/wallet.ts b/packages/taler-wallet-core/src/wallet.ts
index 89e1bf383..5277916de 100644
--- a/packages/taler-wallet-core/src/wallet.ts
+++ b/packages/taler-wallet-core/src/wallet.ts
@@ -219,9 +219,7 @@ import {
} from "./operations/pay-peer-push-debit.js";
import { getPendingOperations } from "./operations/pending.js";
import {
- createRecoupGroup,
- processRecoupGroup,
- processRecoupGroupHandler,
+ createRecoupGroup, processRecoupGroup,
} from "./operations/recoup.js";
import {
autoRefresh,
@@ -295,27 +293,20 @@ const logger = new Logger("wallet.ts");
async function callOperationHandler(
ws: InternalWalletState,
pending: PendingTaskInfo,
- forceNow = false,
): Promise<OperationAttemptResult> {
switch (pending.type) {
case PendingTaskType.ExchangeUpdate:
- return await updateExchangeFromUrlHandler(ws, pending.exchangeBaseUrl, {
- forceNow,
- });
+ return await updateExchangeFromUrlHandler(ws, pending.exchangeBaseUrl);
case PendingTaskType.Refresh:
return await processRefreshGroup(ws, pending.refreshGroupId);
case PendingTaskType.Withdraw:
- return await processWithdrawalGroup(ws, pending.withdrawalGroupId, {
- forceNow,
- });
+ return await processWithdrawalGroup(ws, pending.withdrawalGroupId);
case PendingTaskType.TipPickup:
return await processTip(ws, pending.tipId);
case PendingTaskType.Purchase:
return await processPurchase(ws, pending.proposalId);
case PendingTaskType.Recoup:
- return await processRecoupGroupHandler(ws, pending.recoupGroupId, {
- forceNow,
- });
+ return await processRecoupGroup(ws, pending.recoupGroupId);
case PendingTaskType.ExchangeCheckRefresh:
return await autoRefresh(ws, pending.exchangeBaseUrl);
case PendingTaskType.Deposit: {
@@ -342,16 +333,15 @@ async function callOperationHandler(
*/
export async function runPending(
ws: InternalWalletState,
- forceNow = false,
): Promise<void> {
const pendingOpsResponse = await getPendingOperations(ws);
for (const p of pendingOpsResponse.pendingOperations) {
- if (!forceNow && !AbsoluteTime.isExpired(p.timestampDue)) {
+ if (!AbsoluteTime.isExpired(p.timestampDue)) {
continue;
}
await runOperationWithErrorReporting(ws, p.id, async () => {
logger.trace(`running pending ${JSON.stringify(p, undefined, 2)}`);
- return await callOperationHandler(ws, p, forceNow);
+ return await callOperationHandler(ws, p);
});
}
}
@@ -1168,7 +1158,8 @@ async function dispatchRequestInternal<Op extends WalletApiOperation>(
return getContractTermsDetails(ws, req.proposalId);
}
case WalletApiOperation.RetryPendingNow: {
- await runPending(ws, true);
+ // FIXME: Should we reset all operation retries here?
+ await runPending(ws);
return {};
}
case WalletApiOperation.PreparePayForUri: {
@@ -1624,8 +1615,8 @@ export class Wallet {
this.ws.stop();
}
- runPending(forceNow = false): Promise<void> {
- return runPending(this.ws, forceNow);
+ runPending(): Promise<void> {
+ return runPending(this.ws);
}
runTaskLoop(opts?: RetryLoopOpts): Promise<TaskLoopResult> {
@@ -1673,7 +1664,6 @@ class InternalWalletStateImpl implements InternalWalletState {
recoupOps: RecoupOperations = {
createRecoupGroup,
- processRecoupGroup,
};
merchantOps: MerchantOperations = {