fix(anvil): log's removed field always false during reorg #11298
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.
Motivation
Closes #9933
During blockchain reorgs, event logs from removed blocks should be re-emitted with
removed: true
to notify subscribers that those logs are no longer valid. However, they were always emitted withremoved: false
, making it impossible for clients to properly handle reorgs.Solution
ReorgedBlockNotification
system alongside existingNewBlockNotification
rollback()
to collect block data and receipts before unwinding storageLogsSubscription
to listen for reorg notifications and emit logs withremoved: true
filter_logs
function to accept aremoved
parameterPR Checklist
test_reorg_logs_removed_field
usingSimpleStorage
contractcargo
commands atCONTRIBUTING.md