feat(evm): EIP-4758 deactivate SELFDESTRUCT (SENDALL) - #12231
Draft
MarekM25 wants to merge 1 commit into
Draft
Conversation
When IsEip4758Enabled, SELFDESTRUCT never destroys the executing account — not even when it was created in the same transaction, which EIP-6780 still allowed — and only moves the whole balance to the inheritor. Self-inheriting SENDALL is a no-op (no burn, no log), matching the existing EIP-6780 surviving-account behavior. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Changes
IsEip4758Enabledspec flag +eip4758TransitionTimestampchainspec parameter (full plumbing)InstructionSelfDestruct: when active, the executing account is never marked for destruction — including the created-in-same-transaction case that EIP-6780 still destroys — so the opcode degenerates to SENDALLSpec: https://eips.ethereum.org/EIPS/eip-4758 (Hegotá / EIP-8081 candidate; Stagnant but listed as Proposed for Inclusion in EIP-8081). Not yet activated in any fork file — activation lands with the Hegotá fork wiring (#12226).
Part of the Hegotá (EIP-8081) PR series.
Types of changes
What types of changes does your code introduce?
Testing
Requires testing
If yes, did you write tests?
Notes on testing
Eip4758Tests: same-transaction creation survives with code intact and full balance sent; later-transaction SENDALL; self-inheriting SENDALL does not burn. ExistingEip6780TestsandStorageAndSelfDestructTestspass unchanged (29 total).Documentation
Requires documentation update
Requires explanation in Release Notes
🤖 Generated with Claude Code