Skip to content

EIP-7708: ETH transfer logs#2873

Open
anvacaru wants to merge 3 commits into
amsterdam-foundationfrom
eip-7708
Open

EIP-7708: ETH transfer logs#2873
anvacaru wants to merge 3 commits into
amsterdam-foundationfrom
eip-7708

Conversation

@anvacaru

Copy link
Copy Markdown
Contributor

Implements EIP-7708: ETH balance changes emit synthetic logs (CALL-value transfers, SELFDESTRUCT sweeps, fee payments).

Changes:

  • evm.md: transfer-log emission in #transferFunds; schedule.md: Ghaseip7708. (The Gtransferlog intrinsic pricing will be implemented in a follow-up PR )

anvacaru and others added 3 commits July 24, 2026 20:41
Emit an EIP-7708 transfer LOG3 at every nonzero-value transfer to a different
account. All four categories (tx-level, CALL, CREATE endowment, SELFDESTRUCT)
route through #transferFunds, so the log is appended in its single balance-
moving rule (ACCTFROM =/= ACCTTO), gated on the new Ghaseip7708 flag (true at
AMSTERDAM) and VALUE =/= 0. The entry matches the EELS reference exactly:
address = SYSTEM_ADDRESS (0xff..fe), topics = (keccak256
"Transfer(address,address,uint256)", from, to), data = 32-byte big-endian
value. No new gas charge (EIP-2780 already prices Gtransferlog). Reverts are
handled by the existing #pushWorldState/#popWorldState substate snapshot (the
snapshot precedes the transfer), so failed CALL/CREATE frames drop the log.

Unmask 34 of the 37 eip7708 fixtures. The remaining amsterdam fixtures are
blocked by pre-existing non-7708 gaps (CREATE state-gas #8, delegation/typed-tx
Ctxfloor #6) and the transition fixture by the single-schedule harness limit;
verified the transfer logs themselves are correct in those cases. osaka/prague
sweep unchanged (5 fail / 5122 pass); amsterdam-native suites show only the 10
known pre-existing gap failures.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
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.

1 participant