Skip to content

feat(tests): EIP-8037 calldata floor binds with an over-cap reservoir#3080

Open
chfast wants to merge 1 commit into
ethereum:forks/amsterdamfrom
chfast:eips/amsterdam/eip-8037-floor-with-reservoir
Open

feat(tests): EIP-8037 calldata floor binds with an over-cap reservoir#3080
chfast wants to merge 1 commit into
ethereum:forks/amsterdamfrom
chfast:eips/amsterdam/eip-8037-floor-with-reservoir

Conversation

@chfast

@chfast chfast commented Jul 1, 2026

Copy link
Copy Markdown
Member

🗒️ Description

A tx with large floor-binding calldata and gas_limit > TX_MAX_GAS_LIMIT does an SSTORE-set funded from the reservoir. The EIP-7976 floor is the sender's bill (receipt cumulative_gas_used = floor), while the block accounts regular and state separately: block-regular excludes the floor, so the header gas_used is the state dimension (97_920), not the floor.

Also fix the stale module docstring that claimed block-regular uses max(tx_regular, floor); the spec/impl apply the floor only to the sender's charge (fork.py:1095 vs :1135).

🔗 Related Issues or PRs

N/A.

✅ Checklist

  • All: Ran fast static checks to avoid unnecessary CI fails, see also Code Standards and Verifying Changes:
    just static
  • All: PR title have the form <type>(<area>):, where <type> and <area> come from an approrpriate C-<type>, respectively A-<area>, label. The title should match the a target squash commit message.
  • All: Considered updating the online docs in the ./docs/ directory.
  • All: Set appropriate labels for the changes (only maintainers can apply labels).
  • Tests: For PRs implementing a missed test case, update the post-mortem document to add an entry the list.
  • Ported Tests: Add the following docstring to manually enhanced tests from ./tests/ported_static/:
    @manually-enhanced: Do not overwrite. Post-state expectations corrected
    manually (see PR #2784).
    

A tx with large floor-binding calldata and gas_limit > TX_MAX_GAS_LIMIT
does an SSTORE-set funded from the reservoir. The EIP-7976 floor is the
sender's bill (receipt cumulative_gas_used = floor), while the block
accounts regular and state separately: block-regular excludes the floor,
so the header gas_used is the state dimension (97_920), not the floor.

Also fix the stale module docstring that claimed block-regular uses
max(tx_regular, floor); the spec/impl apply the floor only to the
sender's charge (fork.py:1095 vs :1135).
@codecov

codecov Bot commented Jul 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.22%. Comparing base (9920b6e) to head (fccd1f9).

Additional details and impacted files
@@               Coverage Diff                @@
##           forks/amsterdam    #3080   +/-   ##
================================================
  Coverage            93.22%   93.22%           
================================================
  Files                  624      624           
  Lines                36936    36936           
  Branches              3377     3377           
================================================
  Hits                 34433    34433           
  Misses                1709     1709           
  Partials               794      794           
Flag Coverage Δ
unittests 93.22% <ø> (ø)

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

☔ View full report in Codecov by Harness.
📢 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.

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