Auto-delete TransactionProposal when its TicketSequence is consumed - #7955
Open
ckeshava wants to merge 19 commits into
Open
Auto-delete TransactionProposal when its TicketSequence is consumed#7955ckeshava wants to merge 19 commits into
ckeshava wants to merge 19 commits into
Conversation
Per XLS-0103 §4.5, whenever the target account applies a transaction that consumes a Ticket, any TransactionProposal keyed to that ticket can never execute, so the ledger deletes it and releases the reserve it holds against its Owner. The cleanup lives in Transactor::ticketDelete, the single choke point for Ticket removal, so it covers the successful path, the tec claimed-fee path, and AccountDelete's ticket sweep alike, and is gated on the Cosign amendment. The deletion routine is a shared ProposalHelpers entry point so the future TransactionProposalCancel and TransactionProposalSign cleanup paths (XLS-0103 §6.4) reuse it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ckeshava
force-pushed
the
cosign-auto-delete-proposal
branch
from
August 4, 2026 22:05
ad6d86f to
c5d07f9
Compare
Batch failure modes (discard, failed-inner, partial), delegated and fee-sponsored spends, ticket-funded TicketCreate, expired proposals, directory integrity, and multi-page owner directories. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Implements XLS-0103 §4.5 automatic cleanup: whenever the target account applies a transaction that consumes a Ticket, a
TransactionProposalkeyed to that ticket can never execute, so the ledger deletes it and releases the reserve it holds against itsOwner.How
Transactor::ticketDelete, the single choke point for Ticket removal, so one piece of code covers the successful path, the tec claimed-fee path (reset()), and AccountDelete's ticket sweep. Gated on theCosignamendment.deleteProposal()helper inProposalHelpers, for reuse by the futureTransactionProposalCancel/TransactionProposalSigncleanup paths (XLS-0103 §6.4).Tests
New
TransactionProposalAutoDeletesuite (8 cases): the proposal's own completed transaction executing; an unrelated ticket spend; another account's same-numbered ticket (survives); a tec result still deleting; a proposed Batch's larger reserve refund; an inner-batch-transaction ticket spend; deletion of the target account; proposer == target aliasing; and the owner-deletion blocker (tecHAS_OBLIGATIONS) that keeps the AccountDelete sweep safe.Builds on #7887 (
TransactionProposalCreate); the change belonging to this PR is the top commit.🤖 Generated with Claude Code