wallet-core: use/allow txids as tombstone

This commit is contained in:
Florian Dold 2023-05-24 15:07:29 +02:00
parent 7eef3f57d2
commit 126e9e7457
No known key found for this signature in database
GPG Key ID: D2E4F00F29D02A4B
2 changed files with 5 additions and 21 deletions

View File

@ -364,7 +364,7 @@ export enum TombstoneTag {
/** /**
* Create an event ID from the type and the primary key for the event. * Create an event ID from the type and the primary key for the event.
* *
* @deprecated use constructTombstone instead * @deprecated use constructTombstone instead
*/ */
export function makeTombstoneId(type: TombstoneTag, ...args: string[]): string { export function makeTombstoneId(type: TombstoneTag, ...args: string[]): string {
@ -465,7 +465,7 @@ export type ParsedTombstone =
tag: TombstoneTag.DeleteWithdrawalGroup; tag: TombstoneTag.DeleteWithdrawalGroup;
withdrawalGroupId: string; withdrawalGroupId: string;
} }
| { tag: TombstoneTag.DeleteRefund; refundGroupId: string }; | { tag: TombstoneTag.DeleteRefund; refundGroupId: string }
export function constructTombstone(p: ParsedTombstone): TombstoneIdStr { export function constructTombstone(p: ParsedTombstone): TombstoneIdStr {
switch (p.tag) { switch (p.tag) {

View File

@ -24,7 +24,6 @@ import {
Logger, Logger,
NotificationType, NotificationType,
OrderShortInfo, OrderShortInfo,
PaymentStatus,
PeerContractTerms, PeerContractTerms,
RefundInfoShort, RefundInfoShort,
RefundPaymentInfo, RefundPaymentInfo,
@ -54,7 +53,6 @@ import {
WithdrawalGroupRecord, WithdrawalGroupRecord,
WithdrawalRecordType, WithdrawalRecordType,
WalletContractData, WalletContractData,
PeerPushPaymentInitiationStatus,
PeerPullPaymentIncomingStatus, PeerPullPaymentIncomingStatus,
DepositElementStatus, DepositElementStatus,
WithdrawalGroupStatus, WithdrawalGroupStatus,
@ -71,8 +69,6 @@ import { assertUnreachable } from "../util/assertUnreachable.js";
import { checkDbInvariant, checkLogicInvariant } from "../util/invariants.js"; import { checkDbInvariant, checkLogicInvariant } from "../util/invariants.js";
import { constructTaskIdentifier, TaskIdentifiers } from "../util/retries.js"; import { constructTaskIdentifier, TaskIdentifiers } from "../util/retries.js";
import { import {
constructTombstone,
makeTombstoneId,
resetOperationTimeout, resetOperationTimeout,
runOperationWithErrorReporting, runOperationWithErrorReporting,
TombstoneTag, TombstoneTag,
@ -1625,12 +1621,7 @@ export async function deleteTransaction(
return; return;
} }
await tx.refundGroups.delete(refundGroupId); await tx.refundGroups.delete(refundGroupId);
await tx.tombstones.put({ await tx.tombstones.put({ id: transactionId });
id: constructTombstone({
tag: TombstoneTag.DeleteRefund,
refundGroupId,
}),
});
}); });
return; return;
} }
@ -1645,12 +1636,7 @@ export async function deleteTransaction(
); );
if (debit) { if (debit) {
await tx.peerPullPaymentIncoming.delete(peerPullPaymentIncomingId); await tx.peerPullPaymentIncoming.delete(peerPullPaymentIncomingId);
await tx.tombstones.put({ await tx.tombstones.put({ id: transactionId });
id: makeTombstoneId(
TombstoneTag.DeletePeerPullDebit,
peerPullPaymentIncomingId,
),
});
} }
}); });
@ -1665,9 +1651,7 @@ export async function deleteTransaction(
const debit = await tx.peerPushPaymentInitiations.get(pursePub); const debit = await tx.peerPushPaymentInitiations.get(pursePub);
if (debit) { if (debit) {
await tx.peerPushPaymentInitiations.delete(pursePub); await tx.peerPushPaymentInitiations.delete(pursePub);
await tx.tombstones.put({ await tx.tombstones.put({ id: transactionId });
id: makeTombstoneId(TombstoneTag.DeletePeerPushDebit, pursePub),
});
} }
}); });
return; return;