Closed chfast closed 1 month ago
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 94.22%. Comparing base (
8399303
) to head (b778311
). Report is 11 commits behind head on master.
Perhaps error out of invalid test?
Perhaps error out of invalid test?
How exactly?
We may get a protection against this in EEST: https://github.com/ethereum/execution-spec-tests/issues/899.
But it may also break goevmlab fuzzer (cc @holiman). However, they may use "blockHashes"
to provide the value for BLOCKHASH(0)
.
What do you mean "deprecated feature" - since the opcode BLOCKHASH
is still not deprecated, what is a node supposed to do on that opcode, when executing a statetest?
What do you mean "deprecated feature" - since the opcode
BLOCKHASH
is still not deprecated, what is a node supposed to do on that opcode, when executing a statetest?
State tests try to avoid it at all cost to the point a state test with BLOCKHASH
is considered invalid. See https://github.com/ethereum/execution-spec-tests/issues/899.
I think that is insufficient. Random tests are highly useful. I don't much care what the vm returns, but having all vms behave identically is important.
Why do this?
Why do this?
It bothers me this is mixed with the semi-production ready code. I'd prefer returning null hash but I think we can find a place for the old behavior...
The #1059 moves this feature "more" into "tests only". This should be fine for now.
The state tests had a procedure of generating non-empty BLOCKHASH outputs based on the block number. This is deprecated feature not used in any existing tests. Remove support for it in evmone.