Commit graph

15467 commits

Author SHA1 Message Date
Martin Holst Swende
aee85e3c6f
cmd/eofdump: new testvectors from execution-spec-tests eip7602@v1.1.1 2024-09-26 09:54:41 +02:00
Marius van der Wijden
2413e46d6c
Merge pull request #56 from shemnon/eof/extcall-fixes
Eof/extcall fixes
2024-09-25 07:21:29 +02:00
Danno Ferrin
740ad8cc98 don't do beacon chain updates in state tests 2024-09-17 17:22:59 -06:00
Danno Ferrin
995310c2a9
Update core/state_transition.go
Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
2024-09-17 16:48:49 -06:00
Danno Ferrin
4392a1c4e6 Fix dangling data in container for initcode 2024-09-17 15:44:04 -06:00
Danno Ferrin
12bcb4929a cleanup from review comments 2024-09-16 08:43:37 -06:00
Danno Ferrin
c7efbf466e create transaction
Some corner cases for create
* Don't consume all gas with an invalid EOF contract
* don't allow CREATE/CREATE2 opcodes to create EOF
2024-09-14 16:00:46 -06:00
Danno Ferrin
810397f56d formatting 2024-09-13 21:40:21 -06:00
Danno Ferrin
4a93fe9612 Create Transaction
Allow Create Transactions
2024-09-13 20:22:40 -06:00
Danno Ferrin
389edbdf22 EOFCREATE validation
Handle Aux Data in EOF Create w/o validation failures
2024-09-13 19:02:06 -06:00
Danno Ferrin
4a4d3b07e4 EXTCALL test fixes
* use corret stack heights for value and address in EXTCALL
* New extCallGas function that handles min retained and min callee gas
* Handle min gas failures via tempCallGas == 0
* remove stipend refund for EXT*CALL
* Call Stack too deep should return 1
2024-09-12 22:23:45 -06:00
Danno Ferrin
8d68a86bf0 remove println on bad opcode
Fixes fill of opcode validiiy tests
2024-09-11 17:30:13 -06:00
Martin Holst Swende
cb57738452
cmd/eofdump: more test vectors from fuzzing 2024-09-08 18:56:55 +02:00
Martin Holst Swende
190d8b475f cmd/eofdump: update tests 2024-09-08 13:15:41 +02:00
Marius van der Wijden
6a6d049815 core: fix rebase 2024-09-08 13:13:14 +02:00
Marius van der Wijden
cd7f772ab9 core/vm: move fix for JUMPF 2024-09-08 12:39:16 +02:00
Danno Ferrin
658e4e5559 Fix EOF Validation issues
Fixes a few EOF validation issues in EEST and found by fuzzing.
* subcontainers header with zero subcontainers is invalid
* returning code sections require at least one RETF or qualified JUMPF
* RETF stack must have stack enough for outputs
* JUMPF must not jump into a section with more outputs
* Check stack minimums on RJIMPI and RJUMPV
2024-09-08 12:39:16 +02:00
Martin Holst Swende
71ffe6e6dd cmd/eofdump: simplify tests 2024-09-08 12:39:16 +02:00
Martin Holst Swende
61d8f53934 cmd/eofdump: regenerate testdata 2024-09-08 12:39:16 +02:00
Marius van der Wijden
5a1acc4a07 core/vm: no more recursive errors 2024-09-08 12:39:16 +02:00
Martin Holst Swende
cdae48c452 cmd/eofdump: regular- and fuzz-testing of eof parsing 2024-09-08 12:39:15 +02:00
Marius van der Wijden
ddb9907a7a core/vm: apply suggestions, make ReturnStack an object 2024-09-08 12:39:15 +02:00
Marius van der Wijden
6549a87202 core/vm: rebase 2024-09-08 12:39:15 +02:00
Marius van der Wijden
5d8df7b5a1 core/vm: add comments 2024-09-08 12:39:15 +02:00
Marius van der Wijden
34d2744aaf core/vm: typo 2024-09-08 12:39:15 +02:00
Marius van der Wijden
e4af62e5f2 core/vm: correctly validate container types 2024-09-08 12:39:15 +02:00
Marius van der Wijden
5475bc96ca cmd/eofdump: correctly read container type 2024-09-08 12:39:15 +02:00
Marius van der Wijden
ee8d477b88 core/vm: fix backward jump validation 2024-09-08 12:39:15 +02:00
Marius van der Wijden
f314ec0847 core/vm: fix RJUMPV jump analysis overflow 2024-09-08 12:39:15 +02:00
Marius van der Wijden
a7953691df core/vm: fix fuzzing found error, where RJUMP overwrites stack bounds 2024-09-08 12:39:15 +02:00
Marius van der Wijden
2537d43008 core: fix rebasing issues 2024-09-08 12:39:14 +02:00
Marius van der Wijden
ec62e60c3b cmd/eofdump: clear up error handling 2024-09-08 12:38:50 +02:00
Marius van der Wijden
a17f843f8f core: fix rebasing issues 2024-09-08 12:38:50 +02:00
Danno Ferrin
24c56f2a4f Fix std.out issues with eofparse
* In stdin mode ack good code with OK
* remove or feature flag stray printlns.
* use reader to accept potentially larget contracts
2024-09-08 12:38:50 +02:00
Danno Ferrin
9edd35cefe Apply new container mode validations
Apply new rules
prohibiting STOP/RETURN in initcode and RETURNCONTRACT in runtime mode.
For fuzzing, consider all input data to be runtime code.
2024-09-08 12:38:50 +02:00
Danno Ferrin
28db438a8e CALLF Stack validation height
CALLF should use the target function data when checking stack overflow.
2024-09-08 12:38:50 +02:00
Danno Ferrin
71528b30a4 Remove TXCREATE
TXCREATE was removed from mega-eof
and now causes validation tests to fail.
Remove it from go-ethereum.
2024-09-08 12:38:50 +02:00
Marius van der Wijden
a484bfacf0 core/vm: updated to v1.0.6, fix bugs 2024-09-08 12:38:50 +02:00
Danno Ferrin
e61f11a7a3 Fix EXTCALL Order
For EXTCALL, value trails offset and length.
2024-09-08 12:38:50 +02:00
Marius van der Wijden
1a9855486f core/vm: fix create, reject EOF deployment from legacy contracts 2024-09-08 12:38:50 +02:00
Marius van der Wijden
3f038776b6 core/vm: fix opCreate, reject eof contracts 2024-09-08 12:38:50 +02:00
Marius van der Wijden
f6d4997820 core/vm: fix opEOFCreate, forward calldata 2024-09-08 12:38:50 +02:00
Marius van der Wijden
e9ad878b90 core/vm: fix opEOFCreate, correct initcode stuff 2024-09-08 12:38:50 +02:00
Marius van der Wijden
abe9f28845 core/vm: fix opReturnContract, don't pay for mem copy 2024-09-08 12:38:50 +02:00
Marius van der Wijden
fbec4dca55 core/vm: fix opEOFCreate hashing charge 2024-09-08 12:38:50 +02:00
Marius van der Wijden
80da4fd2bb core/vm: fix opDataCopy 2024-09-08 12:38:49 +02:00
Marius van der Wijden
218c887878 core/vm: fix opExt{*}Call address space extension 2024-09-08 12:38:49 +02:00
Marius van der Wijden
03b75144b9 core/vm: fix opExt{*}Call return values 2024-09-08 12:38:49 +02:00
Marius van der Wijden
e0c3db0de4 core/vm: mark the correct address as touched 2024-09-08 12:38:49 +02:00
Marius van der Wijden
dc4d53b83c core/vm: turn return values around 2024-09-08 12:38:49 +02:00