Repository navigation
feat(tests): pin TXPARAM's max cost with the EIP-8250 key cost - #3803
Conversation
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.
Codecov Report✅ All modified and coverable lines are covered by tests. 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
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
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.
|
@gurukamath ready for another pass. Thanks for the review 👍🏼 |
|
hmm thinking about this more, I guess that 8141 test update should go to |
|
Agree, I'd move the introspection pin test to its own PR on |
|
We could just use the devnet branches maybe... going forward... |
|
It's tough to do cross-eip stuff while everything is isolated 🫠 |
This PR targets the EIP-8250 branch, so it only adds the keyed max cost pin to the EIP-8250 suite.
dropped 👍🏼 |
* 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.
* 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.
* 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.
* 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.
* 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.
…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.
* 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.
* 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.
* 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.
Description
test_txparam_max_costonly checked thatTXPARAM'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
just static<type>(<area>): <description>, where<type>and<area>come from an appropriateC-<type>, respectivelyA-<area>, label. The title should match the target squash commit message.Cute Animal Picture
🐼