Skip to content

execution/execmodule: test EIP-7708 burn log when coinbase self-destructs#20416

Merged
yperbasis merged 3 commits into
mainfrom
yperbasis/issue19951
Apr 9, 2026
Merged

execution/execmodule: test EIP-7708 burn log when coinbase self-destructs#20416
yperbasis merged 3 commits into
mainfrom
yperbasis/issue19951

Conversation

@yperbasis
Copy link
Copy Markdown
Member

@yperbasis yperbasis commented Apr 8, 2026

Summary

  • Adds a regression test for Double check block building and validation when fee account (COINBASE) self destructs #19951: verifies EIP-7708 burn logs are emitted when the coinbase is a contract that self-destructs during execution
  • The test pre-computes the CREATE address, sets it as coinbase, deploys a 2-byte contract (CALLER SELFDESTRUCT), then asserts the receipt contains the correct Burn log and the state root validates
  • Establishes a baseline that the parallel executor's finalizeTx direct path must also match when enabled

N.B.

Should be already covered by ethereum/execution-specs#2106, but adding a block builder test for completness.

…lf-destructs

Adds a regression test for #19951: when the coinbase is a contract that
self-destructs during execution, EIP-7708 requires a Burn log for the
residual priority fee credited after SELFDESTRUCT.

The test pre-computes the CREATE address, sets it as coinbase, deploys a
contract with init code `CALLER SELFDESTRUCT`, then verifies the receipt
contains the correct Burn log and that the state root validates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@yperbasis yperbasis added the Glamsterdam https://eips.ethereum.org/EIPS/eip-7773 label Apr 8, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a regression test in execution/execmodule to ensure EIP-7708 burn logs are emitted when the block coinbase is a contract that self-destructs during transaction execution (covering the scenario described in #19951), and validates the resulting state root via insert+validate+FCU.

Changes:

  • Introduces TestEIP7708BurnLogWhenCoinbaseSelfDestructs to reproduce the “coinbase selfdestructs then receives priority fees” case.
  • Asserts the receipt includes the expected EIP-7708 Burn(address,uint256) log (system address, correct topic[1] coinbase, correct data amount).
  • Confirms the built block validates correctly (state root / FCU path).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@yperbasis yperbasis marked this pull request as ready for review April 9, 2026 07:29
@yperbasis yperbasis requested a review from mh0lt as a code owner April 9, 2026 07:29
@yperbasis yperbasis requested a review from taratorio April 9, 2026 07:41
@yperbasis yperbasis enabled auto-merge April 9, 2026 07:43
…lfdestruct test

Count Burn and Transfer logs from SYSTEM_ADDRESS and assert exactly
one Burn log and zero Transfer logs (zero-value CREATE should not
emit a Transfer).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@yperbasis yperbasis added this pull request to the merge queue Apr 9, 2026
Merged via the queue into main with commit 4a7015a Apr 9, 2026
39 of 40 checks passed
@yperbasis yperbasis deleted the yperbasis/issue19951 branch April 9, 2026 09:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Glamsterdam https://eips.ethereum.org/EIPS/eip-7773

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Double check block building and validation when fee account (COINBASE) self destructs

3 participants