Skip to content

feat(spec-specs, spec-tests): add EIP-7976#2861

Open
felix314159 wants to merge 6 commits into
forks/amsterdamfrom
eips/amsterdam/eip-7976
Open

feat(spec-specs, spec-tests): add EIP-7976#2861
felix314159 wants to merge 6 commits into
forks/amsterdamfrom
eips/amsterdam/eip-7976

Conversation

@felix314159
Copy link
Copy Markdown
Contributor

🗒️ Description

Merge EIP-7976 into forks/amsterdam.

🔗 Related Issues or PRs

✅ Checklist

  • All: Ran fast static checks to avoid unnecessary CI fails, see also Code Standards and Enabling Pre-commit Checks:
    just static
  • All: PR title adheres to the repo standard - it will be used as the squash commit message and should start type(scope):.
  • All: Considered updating the online docs in the ./docs/ directory.
  • 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.
  • Tests: For PRs implementing a missed test case, update the post-mortem document to add an entry the list.
  • Ported Tests: All converted JSON/YML tests from ethereum/tests or tests/static have been assigned @ported_from marker.

Cute Animal Picture

Cute Animal Picture

felix314159 and others added 5 commits May 15, 2026 11:48
* feat(tests): adds tests and src changes for 7976

Co-authored-by: Toni Wahrstätter <51536394+nerolation@users.noreply.github.com>

* feat: EIP got updated

* fix: ruff

* feat: implemented PR feedback

* fix: make eip-7934 block-size filler fork-aware for amsterdam by enforcing tx gas caps and adaptive calldata sizing so --until=amsterdam fills pass

* fix: fix

* fix: fix

* fix: mypy

---------

Co-authored-by: Toni Wahrstätter <51536394+nerolation@users.noreply.github.com>
Align the EIP-7976 mixin and tests with the GasCosts dataclass rename
on forks/amsterdam (GAS_TX_BASE -> TX_BASE, GAS_TX_DATA_TOKEN_FLOOR ->
TX_DATA_TOKEN_FLOOR, GAS_VERY_LOW -> VERY_LOW, etc.).
Override `calldata_gas_calculator` (floor mode only) instead of
`transaction_data_floor_cost_calculator`. The previous override
shadowed EIP-7981's `transaction_data_floor_cost_calculator` in the
Amsterdam MRO (auto-loader sorts by EIP number ascending, so EIP7976
is more derived and its method wins without calling super), dropping
the access list floor contribution. Routing the change through
`calldata_gas_calculator` lets EIP-7623's data floor calculator pick
it up, which EIP-7981 then extends via super.
@felix314159 felix314159 added A-spec-specs Area: Specification—The Ethereum specification itself (eg. `src/ethereum/*`) C-feat Category: an improvement or new feature A-spec-tests Area: tests for specifications e.g. json_infra labels May 15, 2026
@codecov
Copy link
Copy Markdown

codecov Bot commented May 15, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 87.14%. Comparing base (78a79ee) to head (6bdd804).

Additional details and impacted files
@@               Coverage Diff                @@
##           forks/amsterdam    #2861   +/-   ##
================================================
  Coverage            87.14%   87.14%           
================================================
  Files                  586      586           
  Lines                35792    35792           
  Branches              3364     3364           
================================================
  Hits                 31192    31192           
  Misses                3950     3950           
  Partials               650      650           
Flag Coverage Δ
unittests 87.14% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@felix314159
Copy link
Copy Markdown
Contributor Author

felix314159 commented May 15, 2026

i'm looking into the fill (amsterdam) CI failure (InsufficientTransactionGasError('Insufficient gas') for some static tests, e.g. tests/ported_static/stTransactionTest/test_transaction_data_costs652.py)

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-spec-tests Area: tests for specifications e.g. json_infra C-feat Category: an improvement or new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants