fix: send every cancel through the cancelling status - #720
Merged
MoonBoi9001 merged 3 commits intoOct 2, 2026
Merged
MoonBoi9001 merged 3 commits into
MoonBoi9001 merged 3 commits into
Conversation
Both the first cancel attempt and the cancel retry marked an agreement cancelled by dipper, logged it and recorded the cancel, each with its own copy that could drift apart. They now share one step, which records the cancel whenever its transaction is known.
Starting a cancel sent it blind, so cancelling offers that never reached the chain cost gas each, and the reassessment waited on every receipt while holding its lock. The agreement is still marked first, so an offer that lands later withdraws itself, but a cancel now goes out only if it is live.
An agreement dipper had rejected or cancelled that the subgraph showed accepted went to a separate job with its own 40 minute retry budget, queued again on every poll. The listener now reads the chain and, if it is live, moves it back to cancelling so the one cancel retry ends it.
MoonBoi9001
added this pull request to stack #723
October 2, 2026 22:01
MoonBoi9001
removed this pull request from stack #723
October 2, 2026 22:01
MoonBoi9001
added this pull request to stack #724
October 2, 2026 22:04
MoonBoi9001
marked this pull request as ready for review
October 2, 2026 22:04
MoonBoi9001
removed this pull request from stack #724
October 2, 2026 22:10
MoonBoi9001
added this pull request to stack #725
October 2, 2026 22:10
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.
Dipper now reads the chain before sending any cancel, so offers that never reached the chain cost no gas, and an agreement it had rejected or cancelled that turns out live on-chain goes back to cancelling for the one cancel retry instead of a separate job with its own retry budget. The old job stays as a thin handler so messages already queued at upgrade still run.