Skip to content

feat(spec-tests): add basic eip7778 test#2045

Merged
LouisTsai-Csie merged 12 commits into
ethereum:eips/amsterdam/eip-7778from
LouisTsai-Csie:eip7778-test
Jan 22, 2026
Merged

feat(spec-tests): add basic eip7778 test#2045
LouisTsai-Csie merged 12 commits into
ethereum:eips/amsterdam/eip-7778from
LouisTsai-Csie:eip7778-test

Conversation

@LouisTsai-Csie

@LouisTsai-Csie LouisTsai-Csie commented Jan 20, 2026

Copy link
Copy Markdown
Collaborator

🗒️ Description

Due to an incorrect git operation, PR #2026 was closed. I’ve recreated the PR with the same content and updated the related links to point to this new PR.

Implement eip-7778 test cases.

  • test_simple_gas_accounting: User should receive the refund, block accounting should exclude refund.
  • test_multi_block_gas_accounting: Block accounting should exclude refund, and the transaction receipt should reflect the cumulative gas usage.

🔗 Related Issues or PRs

Require PR #1401
Tracker:

✅ 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: 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

Put a link to a cute animal picture inside the parenthesis-->

@LouisTsai-Csie

Copy link
Copy Markdown
Collaborator Author

Link @marioevz 's comment from old PR.

#2026 (comment)

@danceratopz

Copy link
Copy Markdown
Member

Due to an incorrect git operation, PR #2026 was closed. I’ve recreated the PR with the same content and updated the related links to point to this new PR.

No worries @LouisTsai-Csie! Just to better understand, is this the status quo:

If that's the case, we should update this PR's target branch to eips/amsterdam/eip-7778.

@danceratopz

Copy link
Copy Markdown
Member

Nerolation just merged #1401 into eips/amsterdam/eip-7778. @LouisTsai-Csie I think you need to update the target branch to eips/amsterdam/eip-7778 and rebase to get those changes.

@danceratopz danceratopz added this to the bal devnet-2 milestone Jan 20, 2026
@LouisTsai-Csie LouisTsai-Csie changed the base branch from forks/amsterdam to eips/amsterdam/eip-7778 January 21, 2026 09:51

@gurukamath gurukamath left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This looks good to me! One suggestion would be to keep track of the implemented tests and further test ideas using a BAL style test tracking table. See here.

@codecov

codecov Bot commented Jan 21, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.07%. Comparing base (e958b62) to head (13f2920).
⚠️ Report is 85 commits behind head on eips/amsterdam/eip-7778.

Additional details and impacted files
@@                     Coverage Diff                     @@
##           eips/amsterdam/eip-7778    #2045      +/-   ##
===========================================================
- Coverage                    86.33%   86.07%   -0.27%     
===========================================================
  Files                          538      599      +61     
  Lines                        34557    39530    +4973     
  Branches                      3222     3780     +558     
===========================================================
+ Hits                         29835    34024    +4189     
- Misses                        4148     4872     +724     
- Partials                       574      634      +60     
Flag Coverage Δ
unittests 86.07% <ø> (-0.27%) ⬇️

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.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@spencer-tb spencer-tb left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Some small cosmetic changes. LGTM otherwise.

Comment thread packages/testing/src/execution_testing/specs/blockchain.py Outdated
@marioevz marioevz self-requested a review January 21, 2026 21:54

@marioevz marioevz left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Added many changes on top of your cases @LouisTsai-Csie

Comment thread packages/testing/src/execution_testing/specs/blockchain.py Outdated
@marioevz marioevz requested a review from spencer-tb January 22, 2026 00:29
fselmo
fselmo previously approved these changes Jan 22, 2026

@fselmo fselmo left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think really just the pytest-xdist issue jumped out at me.

Some other cases to think about for a subsequent PR:

  • multiple txs with refunds in same block
    • verifying each tx receipt's gas_spent and gas_used
    • verify cumulative_gas_used across transactions (I wonder if this is a good time to add validation for this in expected_receipt)?
  • combine refund types for the fork in a single tx

Comment thread packages/testing/src/execution_testing/forks/forks/forks.py Outdated
Comment thread packages/testing/src/execution_testing/forks/forks/forks.py Outdated
@fselmo fselmo dismissed their stale review January 22, 2026 03:27

Ah did not mean to approve. Please fix pytest-xdist issue. Other than that, this is a great addition!

@LouisTsai-Csie LouisTsai-Csie merged commit abca655 into ethereum:eips/amsterdam/eip-7778 Jan 22, 2026
17 of 18 checks passed
@codecov

codecov Bot commented Jan 22, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 86.07%. Comparing base (e958b62) to head (13f2920).
⚠️ Report is 86 commits behind head on eips/amsterdam/eip-7778.

Additional details and impacted files
@@                     Coverage Diff                     @@
##           eips/amsterdam/eip-7778    #2045      +/-   ##
===========================================================
- Coverage                    86.33%   86.07%   -0.27%     
===========================================================
  Files                          538      599      +61     
  Lines                        34557    39530    +4973     
  Branches                      3222     3780     +558     
===========================================================
+ Hits                         29835    34024    +4189     
- Misses                        4148     4872     +724     
- Partials                       574      634      +60     
Flag Coverage Δ
unittests 86.07% <ø> (-0.27%) ⬇️

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.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

fselmo pushed a commit that referenced this pull request Feb 3, 2026
fselmo pushed a commit to fselmo/execution-specs that referenced this pull request Feb 12, 2026
spencer-tb pushed a commit to spencer-tb/execution-specs that referenced this pull request Mar 3, 2026
spencer-tb pushed a commit to spencer-tb/execution-specs that referenced this pull request Mar 6, 2026
spencer-tb pushed a commit to spencer-tb/execution-specs that referenced this pull request Mar 10, 2026
fselmo pushed a commit to fselmo/execution-specs that referenced this pull request Mar 10, 2026
fselmo pushed a commit to fselmo/execution-specs that referenced this pull request Mar 10, 2026
fselmo pushed a commit to fselmo/execution-specs that referenced this pull request Mar 13, 2026
fselmo pushed a commit to fselmo/execution-specs that referenced this pull request Mar 17, 2026
fselmo pushed a commit to fselmo/execution-specs that referenced this pull request Mar 18, 2026
spencer-tb pushed a commit to spencer-tb/execution-specs that referenced this pull request Apr 20, 2026
marioevz added a commit that referenced this pull request May 13, 2026
…ut refunds (#2840)

* feat(spec-specs): Implement EIP-7778 Block Gas Accounting without Refunds (#1401)

* feat(specs): add eip-7778 implementation

* fix(specs) spliting receipt gas from block gas

* revert receipt_gas_used

* make sure that the calldata floor cost overwrites the tx gas before refund

* receipt gas used after refunds

* clarify variable naming @gurukamath

* revert to using gas used after refunds for cumulative gas in receipt and add gasSpent to receipt

* spec(amsterdam): fix code formatting

---------

Co-authored-by: Guruprasad Kamath <guru241987@gmail.com>

* fix(tests): fix legacy tests to run with eip-7778 (#2048)

* fix(tests): fix legacy tests to run with eip-7778

* fix(tests): check gas_spent and gas_used after Amsterdam

* feat(spec-tests): add basic eip7778 test (#2045)

* feat(spec-tests): add eip-7778 tests for calldata checks (#2060)

* feat(spec-tests): add eip-7778 for calldata checks

* feat(spec-tests): post review - use code gas_cost function

Co-authored-by: Louis Tsai <72684086+LouisTsai-Csie@users.noreply.github.com>

* Apply suggestions from code review

---------

Co-authored-by: Louis Tsai <72684086+LouisTsai-Csie@users.noreply.github.com>
Co-authored-by: Mario Vega <marioevz@gmail.com>

* fix(tests): Fix gas used/spent in EIP-7702 tests (#2068)

* feat(spec-specs): use post refund gas in receipts in EIP-7778 (#2073)

* fix(test): Update refspec for EIP-7778 to match latest revision (#2093)

* feat(test-forks): Add EIP-7778

* refactor(tests): Condition EIP-7778 tests to EIP inclusion

* fix(test): use deterministic iteration order for refund types

The set iteration in `build_refund_tx` is non-deterministic due to
Python's hash randomization, causing fixture output to vary between
runs. Sort by enum value to ensure reproducible fixtures.

* doc: remove changelog md

* fix: broken auth tx benchmark

* doc: add eip checklist

* fix: typo

* Update tests/benchmark/compute/scenario/test_transaction_types.py

* Apply suggestions from code review

Co-authored-by: Mario Vega <marioevz@gmail.com>

---------

Co-authored-by: Toni Wahrstätter <51536394+nerolation@users.noreply.github.com>
Co-authored-by: Guruprasad Kamath <guru241987@gmail.com>
Co-authored-by: Guruprasad Kamath <48196632+gurukamath@users.noreply.github.com>
Co-authored-by: Mario Vega <marioevz@gmail.com>
Co-authored-by: felipe <fselmo2@gmail.com>
Co-authored-by: spencer-tb <spencer.tb@ethereum.org>
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.

6 participants