London update 9.0.2: Invalid transactions check
The recent tests changes:
Check transaction rejection rules in Blockchain and StateTests
Rename baseFee to baseFeePerGas
Explicity baseFeePerGas in GeneralStateTests
Announcement
The test process diagram: http://tinyurl.com/2ctak8yn
Reminder of a brand new web interface for test debugging: http://retesteth.ethdevops.io/web/
Tests stats on latest builds: http://retesteth.ethdevops.io/
(implement test RPC support or t8ntool protocol to apply for the page. https://ethereum-tests.readthedocs.io/en/latest/t8ntool-ref.html)
Previous release link: https://github.com/ethereum/tests/releases/tag/9.0.1
Test format
GeneralStateTests Fillers
New field in state tests expect section expectException
allows to check transaction rejection reason on different forks
"expect" : [
{
"indexes" : { "data" : -1, "gas" : 0, "value" : -1 },
"network" : [">=Berlin"],
"expectException" : {
">=Berlin" : "TR_IntrinsicGas"
},
...
]
GeneralStateTests Filled
New field (optional) in post results section expectException
indicating that transaction is expected to be rejected. The reason check is optional.
"Berlin" : [
{
"indexes" : { "data" : 0, "gas" : 0, "value" : 0 },
"hash" : "0x4c9c6cf002e6a88a5444662ca9ceb6a116b7b69ced38c470bf6e4a12a6313967",
"txbytes" : "0xf862...5",
"expectException" : "TR_IntrinsicGas",
"logs" : "0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347"
}
],
Test Regeneration
Update all:
-
Documentation
expectException documentation
PR #880 -
Rename baseFee to baseFeePerGas
As of standard https://github.com/ethereum/eth1.0-specs/blob/master/json-rpc/spec.json#L1489-L1492
PR #881
PR #883 -
Explicit basefee for filled state tests
add default baseFee for all state tests.
PR #878 -
Update eip1559 bc tests with exceptions
PR #875 -
Invalid transaction tests
Intrinsic tr price tests
PR #877
example test
PR #874
intrinsic tr failure in bc tests
PR #876 -
Blockchain transition test for eip1559
PR #853
Upcoming changes:
London EIP tests
Besu retesteth RPC support (web vmtracing support)
Move legacy tests into separate repo (too much space used)