diff options
Diffstat (limited to 'packages/taler-wallet-core/src/operations/transactions.ts')
-rw-r--r-- | packages/taler-wallet-core/src/operations/transactions.ts | 18 |
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; } |