Repository navigation
fix(tests): allow INVALID_CHAINID for legacy chain IDs over 64 bits - #3935
danceratopz merged 1 commit into
Conversation
|
Friendly bump on this fix for #3930 following up on |
danceratopz
left a comment
There was a problem hiding this comment.
Thanks @rorupuntou, makes sense!
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## forks/bogota #3935 +/- ##
=============================================
Coverage 95.10% 95.10%
=============================================
Files 673 673
Lines 40904 40904
Branches 3778 3778
=============================================
Hits 38903 38903
Misses 1393 1393
Partials 608 608
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:
|
|
I ran this against erigon and geth, the original exception matching was too restrictive: This fixes 5 fails for Erigon v3.8.1 and 12 for geth v1.17.10. Will need a patch test fixture release to ensure no false positives. |
|
Glad to hear it cleared those 17 failures on Erigon and Geth. Thanks for running the client checks and merging @danceratopz! -1312 |
|
Followed up on the remaining lower-boundary cases for legacy -1312 |
Resolves #3930
Description
In
test_legacy_chain_id_over_64_bits(test_chain_id.py), legacy transactions with a chain ID encoded invthat exceeds 64 bits (smallest_65_bit_chain_idandchain_id_plus_2_64) currently strictly expectTransactionException.INVALID_SIGNATURE_VRS.As reported in #3930, client implementations handle this boundary in two valid ways:
vagainst 64 bits during signature decoding (such as EELS, Nethermind, and Nimbus) reject withINVALID_SIGNATURE_VRS.INVALID_CHAINIDdue to the chain ID mismatch against the configured network.This change allows both
INVALID_SIGNATURE_VRSandINVALID_CHAINIDfor these two cases viaerror = [TransactionException.INVALID_SIGNATURE_VRS, TransactionException.INVALID_CHAINID], generating the canonicalINVALID_SIGNATURE_VRS|INVALID_CHAINIDexpectation in fixtures. Thelargest_64_bit_chain_idboundary case remains strictlyINVALID_CHAINID.Checklist
just staticuv run fill tests/spurious_dragon/eip155_simple_replay_attack_protection/test_chain_id.py --until=Bogota --clean<type>(<area>): <description>convention