-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failure to decode Prague-statetests with auths #14073
Comments
Thanks for reporting. what version of Erigon? |
Recent, any/all versions
|
The use of auths is only in context of EIP-7702, the main document of which suggests the field name |
The only reason I can provide is that the actual reference-tests use 'v', and all other clients (at least besu, reth, geth, nethermind and evmone) support it. Reth also actively rejects 'yParity', otherwise a workaround would have been to have both.
As it is, erigon cannot pass the de-facto reference tests for Prague.
|
But spec is spec. When I am not paying attention, someone could just align everything to the spec. All "other" clients did kill Holesky a week or so ago, so we are walking on egg-shells now. |
Just to be clear, before people start barging in about tests passing, that I am not saying Erigon shouldn't pass the tests. I am only suggesting the tests to be aligned to the specs, to avoid confusion. Even if I did change it to pass tests now, there is no correct reason for the tests to continue with the "wrong" naming. |
Spec is spec sure, but we're talking about statetest spec, not tx spec. Not sure where the statetest spec lives. @danceratopz any input?
|
seems only a mismatch so I am going to demote importance for the sake of our release process |
The statetest spec is currently not easily accessible, the fields for an This is not acceptable and ethereum/execution-spec-tests#1282 fixes the schema export of our fixture formats and we will make them readily available in the future. I agree with @somnathb1 that the naming of the statetest field CCing @marioevz @spencer-tb @winsvega |
Yeah but if I change it, something else might break. Someone may misunderstand something and re-change it or use the json incorrectly later on. Any argument like different "Txn Spec", "Statetest spec", "Other clients understanding" will not help with that. Every debug will start with reading 7702 spec, and confusions will pile on (just like it did when I first started looking into this issue report). The change is small, but the impact down the line could be big. |
somnathb1 added Imp2 as Importance |
Note, though, we already have a different json-representation of a "statetest-transaction", from the regular "actual transaction". The reason for this is that the statetest has a Similarly, the "statetest-auth" has a So we'll have to maintain two somewhat differing specs regardless. But I agree the mixup is a bit unfortunate. I don't overly care who changes what, but I operate a fuzzer which generates statetests to find differences in clients. Currently, I cannot run |
Sweet, reth fixed the problem on their side, by not actively rejecting |
We'll make a fixture release which will include the |
I reported this via Cantina already, as I thought it was a security issue.
Example statetest
This fails on erigon, because the second auth get's a
yParity
value of0
-- thev
is just ignored.Erigon simply decodes auths in statetests using the same json as the auths in transactions, which is now what is used by the reference tests, nor the other clients.
The text was updated successfully, but these errors were encountered: