aboutsummaryrefslogtreecommitdiff
path: root/packages/taler-wallet-core/src/operations/transactions.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/taler-wallet-core/src/operations/transactions.ts')
-rw-r--r--packages/taler-wallet-core/src/operations/transactions.ts18
1 files changed, 17 insertions, 1 deletions
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts b/packages/taler-wallet-core/src/operations/transactions.ts
index 41c74f4d1..647b9dd90 100644
--- a/packages/taler-wallet-core/src/operations/transactions.ts
+++ b/packages/taler-wallet-core/src/operations/transactions.ts
@@ -71,6 +71,7 @@ import { assertUnreachable } from "../util/assertUnreachable.js";
import { checkDbInvariant, checkLogicInvariant } from "../util/invariants.js";
import { constructTaskIdentifier, TaskIdentifiers } from "../util/retries.js";
import {
+ constructTombstone,
makeTombstoneId,
resetOperationTimeout,
runOperationWithErrorReporting,
@@ -1615,7 +1616,22 @@ export async function deleteTransaction(
}
case TransactionType.Refund: {
- // FIXME: Implement!
+ const refundGroupId = parsedTx.refundGroupId;
+ await ws.db
+ .mktx((x) => [x.refundGroups, x.tombstones])
+ .runReadWrite(async (tx) => {
+ const refundRecord = await tx.refundGroups.get(refundGroupId);
+ if (!refundRecord) {
+ return;
+ }
+ await tx.refundGroups.delete(refundGroupId);
+ await tx.tombstones.put({
+ id: constructTombstone({
+ tag: TombstoneTag.DeleteRefund,
+ refundGroupId,
+ }),
+ });
+ });
return;
}