Skip to content

Conversation

@fselmo
Copy link
Contributor

@fselmo fselmo commented Dec 1, 2025

🗒️ Description

I worked to port the test that caught this issue in the static tests as I think this was a good opportunity for porting while being able to add the BAL expectation for >= Amsterdam.

The parametrized case for code_deposit filled but failed BAL check against Amsterdam, still recording the writes.

This adds a fix as we should pass the appropriate parent call frame to the execute_code function so we can more appropriately track the merge_on_failure / merge_on_success part of the frame conclusion.

✅ Checklist

  • All: Ran fast tox checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:
    uvx tox -e static
  • All: PR title adheres to the repo standard - it will be used as the squash commit message and should start type(scope):.
  • All: Set appropriate labels for the changes (only maintainers can apply labels).
  • Tests: Ran mkdocs serve locally and verified the auto-generated docs for new tests in the Test Case Reference are correctly formatted.
  • Ported Tests: All converted JSON/YML tests from ethereum/tests or tests/static have been assigned @ported_from marker.

Cute Animal Picture

Screenshot 2025-12-01 at 16 38 27

@fselmo fselmo force-pushed the feat/more-bal-tests branch from 0b7bd6d to 4934f92 Compare December 1, 2025 23:32
@fselmo fselmo added A-spec-specs Area: Specification—The Ethereum specification itself (eg. `src/ethereum/*`) A-test-tests Area: tests for execution spec tests C-bug Category: this is a bug, deviation, or other problem C-enhance Category: an improvement or new feature labels Dec 1, 2025
@fselmo fselmo marked this pull request as ready for review December 1, 2025 23:38

increment_nonce(state, message.current_target, create_frame)
evm = process_message(message)
evm = process_message(message, parent_state_frame=create_frame)
Copy link
Contributor

@gurukamath gurukamath Dec 2, 2025

Choose a reason for hiding this comment

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

Instead of passing the parent_state_frame as a function parameter to process_message, would it be possible to recreate it within the function? I think process_message(message: Message) -> Evm is very clean as it stands. Alternatively, we could consider adding parent_state_frame to the Message dataclass (on similar lines as parent_evm)

@marioevz marioevz self-requested a review December 2, 2025 14:22
@spencer-tb spencer-tb self-requested a review December 4, 2025 16:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-spec-specs Area: Specification—The Ethereum specification itself (eg. `src/ethereum/*`) A-test-tests Area: tests for execution spec tests C-bug Category: this is a bug, deviation, or other problem C-enhance Category: an improvement or new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants