-
Notifications
You must be signed in to change notification settings - Fork 107
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
WIP: Improve t8n pipeline allowing for invalid tx fields during t8n.evaluate #272
WIP: Improve t8n pipeline allowing for invalid tx fields during t8n.evaluate #272
Conversation
3e9901f
to
94a55e8
Compare
I don't really like the idea of the framework automatically replacing a value that it thinks it's correct for the tester in the case of an overflow. For example, what is the "correct" equivalent of the overflowing timestamp value when testing the beacon root pre-deploy? There is no single answer to this because there could be different bugs in different clients:
(1) and (2) are somewhat doable just in this framework, for both of them we have:
but both of these values require care from the tester, and there could be multiple test cases with different values on each. (3) is more complicated and requires either:
Sure we could simply modify the values passed to t8n and then modify the header and call it a day, but the problem is that this is not an effective test case because if the client incorrectly reads an overflowing timestamp header field and then proceeds to execute the block, but the state root is still incorrect, it will still return Another topic is that there are at least two different places where there is incorrect parsing of a fields:
(1) is how we already test on the |
I think for this PR we can settle with making options (1) and (2) feasible and open issues to track the viability of (3) and the hive syncing tests on the hive repo. For (1) and (2) I would suggest we create an special object that has attributes that contain:
And then behave accordingly when preparing the environment JSON output to t8n, and the header building/JSON for the Engine API. |
Closing in favor of the method used in: #379 Where we can override the tx rlp within blocks by serializing the |
Following this issue: #242, but only for tx fields.
Allows for an invalid transaction field to be used within t8n.
WIP: Currently this adapts the previous issue: #243, where a
tx.to
address is set toNone
. Testing this filled test on hive for geth now correctly returns an appropriate response.