Repository navigation
This release completes the Amsterdam EVM revision: with the Block-Level Access Lists and the last EIPs below, evmone implements all the Glamsterdam (EIP-7773) changes affecting EVM state transition.
Added
- Amsterdam EVM revision: the final set of EIPs.
- EIP-7928: Block-Level Access List is built along the block execution and validated against the header hash. #1752 #1756 #1757
- EIP-2780: Resource-based intrinsic transaction gas cost. #1733 #1740
- EIP-8282: Builder Execution Requests: support for new
0x03and0x04requests. #1747 - EIP-8037: the transaction gas limit is capped at
2³²-1(both gas dimensions together). #1744 evmone t8noutputs the block access list and its hash. #1758
Changed
EXTCODECOPYcalls the Host'scopy_code()also when copying zero bytes (needed for BAL). #1753- Faster state transition in
evmone testandevmone t8n: the test state caches the code hashes (up to 40% faster), and the account lookups and the journal rollback are cheaper. #1751 #1760 #1761 #1763
Fixed
- The rollback of a CREATE over an existing account left it marked as just created, so the account touched and left empty was not deleted (EIP-161). This gave a wrong state root from Spurious Dragon to London. #1762
- A failed block-start system call (EIP-4788, EIP-2935) kept its state changes. Unreachable with the canonical system contracts. #1745
- The withdrawals (EIP-4895) were applied after the block-end system calls (EIP-7002, EIP-7251) instead of before them. Observable only with modified system contracts. #1755
- Cold access to a non-existent account showed up as a deleted account in the state diff. #1712
evmone t8napplied zero block reward from Paris, which touched the coinbase. #1758