Skip to content

evmone 0.25.0 "Amsterdam"

Latest

Choose a tag to compare

@chfast chfast released this 14 Oct 09:55
· 11 commits to master since this release
v0.25.0
e675712

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 0x03 and 0x04 requests. #1747
    • EIP-8037: the transaction gas limit is capped at 2³²-1 (both gas dimensions together). #1744
    • evmone t8n outputs the block access list and its hash. #1758

Changed

  • EXTCODECOPY calls the Host's copy_code() also when copying zero bytes (needed for BAL). #1753
  • Faster state transition in evmone test and evmone 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 t8n applied zero block reward from Paris, which touched the coinbase. #1758