Skip to content

feat(tests): pin TXPARAM's max cost with the EIP-8250 key cost - #3803

Merged
fselmo merged 4 commits into
ethereum:eips/bogota/eip-8250from
fselmo:tests/eip8250-txparam-max-cost
Oct 13, 2026
Merged

fselmo merged 4 commits into
ethereum:eips/bogota/eip-8250from
fselmo:tests/eip8250-txparam-max-cost

Conversation

@fselmo

@fselmo fselmo commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

Description

test_txparam_max_cost only checked that TXPARAM's max cost matches the payer's balance drop, which still holds if a client leaves the EIP-8250 keyed nonce access cost out of both. I parametrized it over the legacy key set and the maximum key set, and it now pins the exact max cost (the fork's maximum gas for the transaction times the fee cap) as well as the balance drop.

The legacy case is the same transaction as before, just the contract changed... now it stores / pins both values instead of one.

Related Issues or PRs

Follows #3756 and #3775 (tracker #3773).

Checklist

  • Ran fast static checks to avoid CI fails, see Code Standards & Verifying Changes: just static
  • PR title has the form <type>(<area>): <description>, where <type> and <area> come from an appropriate C-<type>, respectively A-<area>, label. The title should match the target squash commit message.

Cute Animal Picture

🐼

The existing TXPARAM max cost test only checks that the value equals how much the payer's balance dropped. A client that leaves the key cost out of both would still pass. This test pins the exact max cost for a transaction with no nonce keys and for one with the maximum key set.
The EIP-8141 max cost test now covers the legacy key set and the maximum key set, pinning both the payer's escrow and the exact max cost, so the separate EIP-8250 test that repeated its legacy case goes.
@fselmo fselmo changed the title Tests/eip8250 txparam max cost feat(tests) txparam max cost parametrization addition Oct 13, 2026
@fselmo fselmo added C-feat Category: an improvement or new feature A-tests Area: Consensus tests. labels Oct 13, 2026
@codecov

codecov Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
⚠️ Please upload report for BASE (eips/bogota/eip-8250@f1bd9f0). Learn more about missing BASE report.

Additional details and impacted files
@@                   Coverage Diff                   @@
##             eips/bogota/eip-8250    #3803   +/-   ##
=======================================================
  Coverage                        ?   95.01%           
=======================================================
  Files                           ?      678           
  Lines                           ?    41930           
  Branches                        ?     3933           
=======================================================
  Hits                            ?    39841           
  Misses                          ?     1453           
  Partials                        ?      636           
Flag Coverage Δ
unittests 95.01% <ø> (?)

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.

@gurukamath gurukamath changed the title feat(tests) txparam max cost parametrization addition feat(tests): txparam max cost parametrization addition Oct 13, 2026
Comment thread tests/bogota/eip8141_frame_transactions/test_introspection.py Outdated
Comment thread tests/bogota/eip8141_frame_transactions/test_introspection.py Outdated
Comment thread tests/bogota/eip8141_frame_transactions/test_introspection.py Outdated
EIP-8141's tests should not import EIP-8250, which builds on it. test_txparam_max_cost goes back to one case, now an exact pin of the legacy max cost, and the maximum key set's pin sits next to the payer max cost test. Both pass nonce_seq to the calculator explicitly.
@fselmo

fselmo commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

@gurukamath ready for another pass. Thanks for the review 👍🏼

@fselmo

fselmo commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor Author

hmm thinking about this more, I guess that 8141 test update should go to eip-8141 branch?... maybe we just leave it out of here entirely? Or what do you think?

@spencer-tb

Copy link
Copy Markdown
Contributor

Agree, I'd move the introspection pin test to its own PR on eips/bogota/eip-8141 (minus nonce_seq) and keep this one to 8250 :D

@spencer-tb

Copy link
Copy Markdown
Contributor

We could just use the devnet branches maybe... going forward...

@fselmo

fselmo commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

It's tough to do cross-eip stuff while everything is isolated 🫠

@fselmo fselmo changed the title feat(tests): txparam max cost parametrization addition feat(tests): pin TXPARAM's max cost with the EIP-8250 key cost Oct 13, 2026
This PR targets the EIP-8250 branch, so it only adds the keyed max cost pin to the EIP-8250 suite.
@fselmo

fselmo commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

Agree, I'd move the introspection pin test to its own PR on eips/bogota/eip-8141 (minus nonce_seq) and keep this one to 8250 :D

dropped 👍🏼

@fselmo
fselmo merged commit f047609 into ethereum:eips/bogota/eip-8250 Oct 13, 2026
20 checks passed
@fselmo
fselmo deleted the tests/eip8250-txparam-max-cost branch October 13, 2026 18:31
gurukamath pushed a commit that referenced this pull request Oct 13, 2026
* feat(tests): pin TXPARAM's max cost with the EIP-8250 key cost

The existing TXPARAM max cost test only checks that the value equals how much the payer's balance dropped. A client that leaves the key cost out of both would still pass. This test pins the exact max cost for a transaction with no nonce keys and for one with the maximum key set.

* refactor(tests): fold the keyed max cost case into test_txparam_max_cost

The EIP-8141 max cost test now covers the legacy key set and the maximum key set, pinning both the payer's escrow and the exact max cost, so the separate EIP-8250 test that repeated its legacy case goes.

* refactor(tests): move the keyed max cost pin to the EIP-8250 suite

EIP-8141's tests should not import EIP-8250, which builds on it. test_txparam_max_cost goes back to one case, now an exact pin of the legacy max cost, and the maximum key set's pin sits next to the payer max cost test. Both pass nonce_seq to the calculator explicitly.

* refactor(tests): leave the EIP-8141 max cost test unchanged

This PR targets the EIP-8250 branch, so it only adds the keyed max cost pin to the EIP-8250 suite.
gurukamath pushed a commit that referenced this pull request Oct 15, 2026
* feat(tests): pin TXPARAM's max cost with the EIP-8250 key cost

The existing TXPARAM max cost test only checks that the value equals how much the payer's balance dropped. A client that leaves the key cost out of both would still pass. This test pins the exact max cost for a transaction with no nonce keys and for one with the maximum key set.

* refactor(tests): fold the keyed max cost case into test_txparam_max_cost

The EIP-8141 max cost test now covers the legacy key set and the maximum key set, pinning both the payer's escrow and the exact max cost, so the separate EIP-8250 test that repeated its legacy case goes.

* refactor(tests): move the keyed max cost pin to the EIP-8250 suite

EIP-8141's tests should not import EIP-8250, which builds on it. test_txparam_max_cost goes back to one case, now an exact pin of the legacy max cost, and the maximum key set's pin sits next to the payer max cost test. Both pass nonce_seq to the calculator explicitly.

* refactor(tests): leave the EIP-8141 max cost test unchanged

This PR targets the EIP-8250 branch, so it only adds the keyed max cost pin to the EIP-8250 suite.
gurukamath pushed a commit that referenced this pull request Oct 21, 2026
* feat(tests): pin TXPARAM's max cost with the EIP-8250 key cost

The existing TXPARAM max cost test only checks that the value equals how much the payer's balance dropped. A client that leaves the key cost out of both would still pass. This test pins the exact max cost for a transaction with no nonce keys and for one with the maximum key set.

* refactor(tests): fold the keyed max cost case into test_txparam_max_cost

The EIP-8141 max cost test now covers the legacy key set and the maximum key set, pinning both the payer's escrow and the exact max cost, so the separate EIP-8250 test that repeated its legacy case goes.

* refactor(tests): move the keyed max cost pin to the EIP-8250 suite

EIP-8141's tests should not import EIP-8250, which builds on it. test_txparam_max_cost goes back to one case, now an exact pin of the legacy max cost, and the maximum key set's pin sits next to the payer max cost test. Both pass nonce_seq to the calculator explicitly.

* refactor(tests): leave the EIP-8141 max cost test unchanged

This PR targets the EIP-8250 branch, so it only adds the keyed max cost pin to the EIP-8250 suite.
gurukamath pushed a commit that referenced this pull request Oct 21, 2026
* feat(tests): pin TXPARAM's max cost with the EIP-8250 key cost

The existing TXPARAM max cost test only checks that the value equals how much the payer's balance dropped. A client that leaves the key cost out of both would still pass. This test pins the exact max cost for a transaction with no nonce keys and for one with the maximum key set.

* refactor(tests): fold the keyed max cost case into test_txparam_max_cost

The EIP-8141 max cost test now covers the legacy key set and the maximum key set, pinning both the payer's escrow and the exact max cost, so the separate EIP-8250 test that repeated its legacy case goes.

* refactor(tests): move the keyed max cost pin to the EIP-8250 suite

EIP-8141's tests should not import EIP-8250, which builds on it. test_txparam_max_cost goes back to one case, now an exact pin of the legacy max cost, and the maximum key set's pin sits next to the payer max cost test. Both pass nonce_seq to the calculator explicitly.

* refactor(tests): leave the EIP-8141 max cost test unchanged

This PR targets the EIP-8250 branch, so it only adds the keyed max cost pin to the EIP-8250 suite.
gurukamath pushed a commit that referenced this pull request Oct 21, 2026
* feat(tests): pin TXPARAM's max cost with the EIP-8250 key cost

The existing TXPARAM max cost test only checks that the value equals how much the payer's balance dropped. A client that leaves the key cost out of both would still pass. This test pins the exact max cost for a transaction with no nonce keys and for one with the maximum key set.

* refactor(tests): fold the keyed max cost case into test_txparam_max_cost

The EIP-8141 max cost test now covers the legacy key set and the maximum key set, pinning both the payer's escrow and the exact max cost, so the separate EIP-8250 test that repeated its legacy case goes.

* refactor(tests): move the keyed max cost pin to the EIP-8250 suite

EIP-8141's tests should not import EIP-8250, which builds on it. test_txparam_max_cost goes back to one case, now an exact pin of the legacy max cost, and the maximum key set's pin sits next to the payer max cost test. Both pass nonce_seq to the calculator explicitly.

* refactor(tests): leave the EIP-8141 max cost test unchanged

This PR targets the EIP-8250 branch, so it only adds the keyed max cost pin to the EIP-8250 suite.
spencer-tb pushed a commit to spencer-tb/execution-specs that referenced this pull request Oct 23, 2026
…eum#3803)

* feat(tests): pin TXPARAM's max cost with the EIP-8250 key cost

The existing TXPARAM max cost test only checks that the value equals how much the payer's balance dropped. A client that leaves the key cost out of both would still pass. This test pins the exact max cost for a transaction with no nonce keys and for one with the maximum key set.

* refactor(tests): fold the keyed max cost case into test_txparam_max_cost

The EIP-8141 max cost test now covers the legacy key set and the maximum key set, pinning both the payer's escrow and the exact max cost, so the separate EIP-8250 test that repeated its legacy case goes.

* refactor(tests): move the keyed max cost pin to the EIP-8250 suite

EIP-8141's tests should not import EIP-8250, which builds on it. test_txparam_max_cost goes back to one case, now an exact pin of the legacy max cost, and the maximum key set's pin sits next to the payer max cost test. Both pass nonce_seq to the calculator explicitly.

* refactor(tests): leave the EIP-8141 max cost test unchanged

This PR targets the EIP-8250 branch, so it only adds the keyed max cost pin to the EIP-8250 suite.
spencer-tb pushed a commit that referenced this pull request Oct 23, 2026
* feat(tests): pin TXPARAM's max cost with the EIP-8250 key cost

The existing TXPARAM max cost test only checks that the value equals how much the payer's balance dropped. A client that leaves the key cost out of both would still pass. This test pins the exact max cost for a transaction with no nonce keys and for one with the maximum key set.

* refactor(tests): fold the keyed max cost case into test_txparam_max_cost

The EIP-8141 max cost test now covers the legacy key set and the maximum key set, pinning both the payer's escrow and the exact max cost, so the separate EIP-8250 test that repeated its legacy case goes.

* refactor(tests): move the keyed max cost pin to the EIP-8250 suite

EIP-8141's tests should not import EIP-8250, which builds on it. test_txparam_max_cost goes back to one case, now an exact pin of the legacy max cost, and the maximum key set's pin sits next to the payer max cost test. Both pass nonce_seq to the calculator explicitly.

* refactor(tests): leave the EIP-8141 max cost test unchanged

This PR targets the EIP-8250 branch, so it only adds the keyed max cost pin to the EIP-8250 suite.
gurukamath pushed a commit that referenced this pull request Oct 27, 2026
* feat(tests): pin TXPARAM's max cost with the EIP-8250 key cost

The existing TXPARAM max cost test only checks that the value equals how much the payer's balance dropped. A client that leaves the key cost out of both would still pass. This test pins the exact max cost for a transaction with no nonce keys and for one with the maximum key set.

* refactor(tests): fold the keyed max cost case into test_txparam_max_cost

The EIP-8141 max cost test now covers the legacy key set and the maximum key set, pinning both the payer's escrow and the exact max cost, so the separate EIP-8250 test that repeated its legacy case goes.

* refactor(tests): move the keyed max cost pin to the EIP-8250 suite

EIP-8141's tests should not import EIP-8250, which builds on it. test_txparam_max_cost goes back to one case, now an exact pin of the legacy max cost, and the maximum key set's pin sits next to the payer max cost test. Both pass nonce_seq to the calculator explicitly.

* refactor(tests): leave the EIP-8141 max cost test unchanged

This PR targets the EIP-8250 branch, so it only adds the keyed max cost pin to the EIP-8250 suite.
spencer-tb pushed a commit that referenced this pull request Oct 27, 2026
* feat(tests): pin TXPARAM's max cost with the EIP-8250 key cost

The existing TXPARAM max cost test only checks that the value equals how much the payer's balance dropped. A client that leaves the key cost out of both would still pass. This test pins the exact max cost for a transaction with no nonce keys and for one with the maximum key set.

* refactor(tests): fold the keyed max cost case into test_txparam_max_cost

The EIP-8141 max cost test now covers the legacy key set and the maximum key set, pinning both the payer's escrow and the exact max cost, so the separate EIP-8250 test that repeated its legacy case goes.

* refactor(tests): move the keyed max cost pin to the EIP-8250 suite

EIP-8141's tests should not import EIP-8250, which builds on it. test_txparam_max_cost goes back to one case, now an exact pin of the legacy max cost, and the maximum key set's pin sits next to the payer max cost test. Both pass nonce_seq to the calculator explicitly.

* refactor(tests): leave the EIP-8141 max cost test unchanged

This PR targets the EIP-8250 branch, so it only adds the keyed max cost pin to the EIP-8250 suite.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-tests Area: Consensus tests. C-feat Category: an improvement or new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants