Skip to content

fix(evm): drop reserved-topic logs with unexpected topic count#4919

Open
guo wants to merge 3 commits into
masterfrom
fix/evm-reserved-topic-log-handling
Open

fix(evm): drop reserved-topic logs with unexpected topic count#4919
guo wants to merge 3 commits into
masterfrom
fix/evm-reserved-topic-log-handling

Conversation

@guo

@guo guo commented Jul 12, 2026

Copy link
Copy Markdown
Member

After #4868 the reserved in-contract-transfer topic only appears on contract-emitted logs, which are already dropped from the receipt (never appended to stateDB.logs, so receipt.Logs and the receipt root are unaffected).

A malformed one (topic count != 3) was still special-cased separately. This drops it uniformly with the rest so the reserved-topic handling is consistent.

Gated on the next upgrade (ToBeEnabled) so block replay stays byte-identical before activation. Adds the post-upgrade regression test alongside the existing pre-upgrade invariant.

After #4868 the reserved in-contract-transfer topic only appears on
contract-emitted logs, which are already dropped from the receipt. A
malformed one (topic count != 3) was still special-cased; drop it
uniformly with the rest so the handling is consistent. Gated on the
next upgrade so block replay stays byte-identical before activation.

Adds a regression test for the post-upgrade drop path alongside the
existing pre-upgrade invariant.
@guo guo requested a review from a team as a code owner July 12, 2026 18:40
Comment thread action/protocol/execution/evm/evmstatedbadapter.go Outdated
envestcc and others added 2 commits July 13, 2026 10:48
…rade

After the upgrade, only a well-formed 3-topic reserved-topic log actually
collides with the shape AddInContractTransferLog records, so only that
one needs to keep being dropped. A malformed one (topic count != 3)
doesn't collide with anything and can just be treated like any other
event log instead of being discarded.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Correct the previous commit: after the upgrade, AddLog no longer
special-cases the reserved in-contract-transfer topic at all, so a log
carrying it is recorded as a regular event log regardless of topic
count (including the well-formed 3-topic shape). Pre-upgrade behavior
is untouched.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants