go-ethereum/cmd/evm/testdata/eof
Martin HS f9bed32236 core/vm, cmd/evm: implement eof validation (#30418)
The bulk of this PR is authored by @lightclient , in the original
EOF-work. More recently, the code has been picked up and reworked for the new EOF
specification, by @MariusVanDerWijden , in https://github.com/ethereum/go-ethereum/pull/29518, and also @shemnon has contributed with fixes.

This PR is an attempt to start eating the elephant one small bite at a
time, by selecting only the eof-validation as a standalone piece which
can be merged without interfering too much in the core stuff.

In this PR: 

- [x] Validation of eof containers, lifted from #29518, along with
test-vectors from consensus-tests and fuzzing, to ensure that the move
did not lose any functionality.
- [x] Definition of eof opcodes, which is a prerequisite for validation
- [x] Addition of `undefined` to a jumptable entry item. I'm not
super-happy with this, but for the moment it seems the least invasive
way to do it. A better way might be to go back and allowing nil-items or
nil execute-functions to denote "undefined".
- [x] benchmarks of eof validation speed 


---------

Co-authored-by: lightclient <lightclient@protonmail.com>
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
Co-authored-by: Danno Ferrin <danno.ferrin@shemnon.com>
2024-11-19 14:50:11 +01:00
..
eof_benches.txt core/vm, cmd/evm: implement eof validation (#30418) 2024-11-19 14:50:11 +01:00
eof_corpus_0.txt core/vm, cmd/evm: implement eof validation (#30418) 2024-11-19 14:50:11 +01:00
eof_corpus_1.txt core/vm, cmd/evm: implement eof validation (#30418) 2024-11-19 14:50:11 +01:00
results.initcode.txt core/vm, cmd/evm: implement eof validation (#30418) 2024-11-19 14:50:11 +01:00
results.regular.txt core/vm, cmd/evm: implement eof validation (#30418) 2024-11-19 14:50:11 +01:00