Skip to content

core/vm, core/state: implement EIP-8246 Remove SELFDESTRUCT Burn#35192

Closed
VanshSahay wants to merge 6 commits into
ethereum:masterfrom
VanshSahay:eip-8246-remove-selfdestruct-burn
Closed

core/vm, core/state: implement EIP-8246 Remove SELFDESTRUCT Burn#35192
VanshSahay wants to merge 6 commits into
ethereum:masterfrom
VanshSahay:eip-8246-remove-selfdestruct-burn

Conversation

@VanshSahay

@VanshSahay VanshSahay commented Jun 19, 2026

Copy link
Copy Markdown

Implements EIP-8246 which eliminates the last remaining path where SELFDESTRUCT can destroy ETH on Ethereum L1.

After EIP-6780 (Cancun), ETH could still be burned when a contract created in the same transaction selfdestructs to itself. This EIP removes that burn.

Changes

VM opcode (core/vm/instructions.go): Under Amsterdam, when a same-transaction contract executes SELFDESTRUCT to itself, the balance is preserved instead of subtracted and burned.

State finalization (core/state/statedb.go): Under Amsterdam, selfdestructed accounts have code, storage, and nonce cleared while the balance is preserved. If the resulting balance is zero, the account is deleted per EIP-161. Otherwise it survives as a balance-only account.

Burn log removal (core/vm/instructions.go, core/vm/interface.go, core/state/state_transition.go, core/state/statedb.go, core/state/statedb_hooked.go): EthBurnLog emission during selfdestruct-to-self and LogsForBurnAccounts() are removed since no ETH burning occurs under EIP-8246.

The EIP is a prerequisite for EIP-7708 (ETH transfer logs) and is CFI'd for Glamsterdam.

@VanshSahay VanshSahay changed the title core: implement EIP-8246 Remove SELFDESTRUCT Burn core/vm, core/state: implement EIP-8246 Remove SELFDESTRUCT Burn Jun 19, 2026
@VanshSahay VanshSahay marked this pull request as ready for review June 19, 2026 07:52
@gballet gballet closed this Jun 22, 2026
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