Skip to content

Conversation

@daniellehrner
Copy link
Contributor

PR description

EIP-7523 enforces that no new empty accounts can be added to the trie. On mainnet all empty accounts have been made non-empty be sending them at least 1 wei. But there might be other chains that didn't do the same and empty accounts might still exist.

Because of that we need to explicitely check fort them in the delegation processor, before processing an authorization.

Fixed Issue(s)

Thanks for sending a pull request! Have you done the following?

  • Checked out our contribution guidelines?
  • Considered documentation and added the doc-change-required label to this PR if updates are required.
  • Considered the changelog and included an update if required.
  • For database changes (e.g. KeyValueSegmentIdentifier) considered compatibility and performed forwards and backwards compatibility tests

Locally, you can run these tests to catch failures early:

  • spotless: ./gradlew spotlessApply
  • unit tests: ./gradlew build
  • acceptance tests: ./gradlew acceptanceTest
  • integration tests: ./gradlew integrationTest
  • reference tests: ./gradlew ethereum:referenceTests:referenceTests
  • hive tests: Engine or other RPCs modified?

Copilot AI review requested due to automatic review settings December 18, 2025 12:55
@daniellehrner daniellehrner force-pushed the code_delegation_empty_accounts branch from f09787a to 5295f83 Compare December 18, 2025 13:26

// we check for empty accounts as well in case we are on a chain that has still leftover empty
// accounts after EIP-7523
if (maybeAuthorityAccount.isEmpty() || maybeAuthorityAccount.get().isEmpty()) {
Copy link
Contributor

Choose a reason for hiding this comment

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

I feel that maybe this change can impact BAL tracking @mirgee ?

Copy link
Contributor

Choose a reason for hiding this comment

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

We should add optional CI check to know for sure.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The problem is that there can be empty accounts in the trie, not on mainnet, but on other chains, like rollups this might be an issue. This behaviour is consistent with what Geth and Nethermind are doing in case of empty accounts.

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.

3 participants