Commit Graph

11 Commits

Author SHA1 Message Date
Marius van der Wijden 6fe254e378 all: fix merging issues 2025-02-04 10:20:10 +01:00
Marius van der Wijden d206fba16d core/vm: added EXTCALL,EXTDELEGATECALL,EXTSTATICCALL opcode 2024-10-11 12:42:13 +02:00
Marius van der Wijden c7db447b1f core/vm: added RETURNDATALOAD opcode 2024-10-11 12:42:13 +02:00
Marius van der Wijden bb1885c78e core/vm: added DATALOAD,DATALOADN,DATASIZE,DATACOPY opcode 2024-10-11 12:42:13 +02:00
Marius van der Wijden 5992baf543 core/vm: added RETURNCONTRACT opcode 2024-10-11 12:42:13 +02:00
Marius van der Wijden 9fa14a1af4 core/vm: added EOFCREATE opcode 2024-10-11 12:42:13 +02:00
Marius van der Wijden a58ba40cf6 core/vm: added JUMPF opcodes 2024-10-11 12:42:13 +02:00
Marius van der Wijden 026306218b core/vm: added CALLF,RETF opcodes 2024-10-11 12:42:13 +02:00
Marius van der Wijden 866ad956a4 core/vm: added RJUMP,RJUMPI,RJUMPV opcodes 2024-10-11 12:42:13 +02:00
Marius van der Wijden 5bd220b2f0 core/vm: added opSwapN,Exchange,DupN opcodes 2024-10-11 12:42:13 +02:00
Martin HS 56c4f2bfd4
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-10-02 15:05:50 +02:00