Skip to content

London update 9.0.0: EIP1559

Compare
Choose a tag to compare
@winsvega winsvega released this 30 May 00:27
· 862 commits to develop since this release

The recent tests changes:

Merge PRs with London EIP1559 tests.
Update test format to support EIP1559 transaction format (+change in test RPC json object)
Regenerate all tests using London rules.

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/8.0.5

Test format

State Tests

Treat legacy blockheader as 1559 with baseFee 10 on London
Tests are recalculated with transaction gasPrice set to 10

Blockchain Tests

Tests are recalculated with transaction gasPrice set to 1000
Tests with gasPrice 0 are not included in London (as minimum baseFee is 7)

State Tests | BlockchainTests | TransitionTests

  • the env section now could have
currentBaseFee: 0x3B9ACA00

indicating a eip1559 genesis.

  • transaction section eip1559 support could now have
  maxFeePerGas: '0x12A05F200'
  maxPriorityFeePerGas: '2'

instead of gasPrice
PR example: #826

BlockchainTests | TransitionTests

  • the blockHeader now could have
baseFee: 0x3B9ACA00

indicating a eip1559 block.
In blockchain fillers blocks section, the blockHeader (overwrite) section has a new field

               "blockHeader" : {
                   "gasLimit" : "600000",
                   "remove" : [ "baseFee" ]
               },

"remove" that indicates an array of fields to be removed from the client returned structure. making it possible to switch mined block into legacy and eip1559 back and forth. see transition test example.

Test Regeneration

Update all:
Regenerate all tests using London rules.
Treat legacy blockheader as 1559 with baseFee 10 on London rules
GStateTests transaction gasPrice set to 10
BCTests transaction gasPrice set to 1000
PR #857

  • Documentation update
    PR #838
    PR #849

  • EIP1559 coverage
    Blockchain tests, gasTarget, gasPrice, transaction rules
    PR #837

  • EIP1559 tests example
    PR #826

  • EIP 3541 coverage
    Check that contracts creation starting with 0xef is rejected
    PR #835
    PR #852

  • Enable BaseFee opcode support check in all opcodes test
    PR #841

  • EIP 3529 additional coverage
    refund gas reduction
    PR #850

Upcoming changes:

Deprecate "transaction" section in filled GeneralStateTests #828
London EIP tests
Besu retesteth RPC support (web vmtracing support)
Move legacy tests into separate repo (too much space used)
OE wrapper support on retesteth.ethdevops.io. FAILED