Skip to content

Comments

Update EIP-7928: Clarify edge cases#10493

Draft
Marchhill wants to merge 6 commits intoethereum:masterfrom
Marchhill:bal-patch-0
Draft

Update EIP-7928: Clarify edge cases#10493
Marchhill wants to merge 6 commits intoethereum:masterfrom
Marchhill:bal-patch-0

Conversation

@Marchhill
Copy link
Contributor

@Marchhill Marchhill commented Oct 8, 2025

Clarify edge cases:

  • Balance changes not being recorded for unchanged balance over a transaction
  • All sender, receipient, and coinbase addresses should all be included for a zero value transfer
  • CALL, CALLCODE, CREATE, CREATE2 balance changes should be recorded
  • For a failed 7702 delegation include address in BAL only if added to accessed_addresses

@github-actions github-actions bot added c-update Modifies an existing proposal s-draft This EIP is a Draft t-core labels Oct 8, 2025
@eth-bot
Copy link
Collaborator

eth-bot commented Oct 8, 2025

File EIPS/eip-7928.md

Requires 1 more reviewers from @dankrad, @fradamt, @jochem-brouwer, @jsign, @nerolation

@eth-bot eth-bot added the a-review Waiting on author to review label Oct 8, 2025
@raxhvl
Copy link
Member

raxhvl commented Oct 10, 2025

@Marchhill the changes made here 6c14bb5 is incorrect.

if authorization fails due to an invalid nonce -> if authorization fails for any reason

If authorization fails due to an invalid chain id, the account should not be read.

@Marchhill
Copy link
Contributor Author

Marchhill commented Oct 10, 2025

@Marchhill the changes made here 6c14bb5 is incorrect.

if authorization fails due to an invalid nonce -> if authorization fails for any reason

If authorization fails due to an invalid chain id, the account should not be read.

Ah ok I wasn't too sure here, I think we could make this more explicit. There are a few cases where the delegation could fail: invalid chain id, signature, nonce, code already deployed. Is invalid nonce the only case we should record an account read? Also does this include the case where nonce == 2^64 - 1?

@Marchhill Marchhill changed the title Update EIP-7928: Balance change edge case Update EIP-7928: Clarify edge cases Oct 10, 2025
**Zero‑value transfers:** **MUST NOT** be recorded in `balance_changes`, but the corresponding addresses **MUST** still be included with empty `AccountChanges`.
#### Unaltered account balance

If an account’s balance changes during a transaction, but its post-transaction balance is equal to its pre-transaction balance, then the change **MUST NOT** be recorded in `balance_changes`. However all sender and recipient addresses (including the coinbase) **MUST** be included in `AccountChanges`.
Copy link
Contributor

@fselmo fselmo Oct 10, 2025

Choose a reason for hiding this comment

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

What do you think about adding the coinbase case to the "special cases" section below so we differentiate it from this "post-transaction" context in this first sentence? Below, we could have something like:

This includes the following special cases where the `address` must be included with empty changes if no other state changes were made

    - A zero-value transfer to an `address`
    - Calling a same-transaction SELFDESTRUCT on an `address` that had a zero pre-transaction balance
    - The `address` being awarded a block fee of zero as the coinbase in a block

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

Labels

a-review Waiting on author to review c-update Modifies an existing proposal s-draft This EIP is a Draft t-core

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants