Skip to content

evmone 0.11.0 "Cancun"

Compare
Choose a tag to compare
@chfast chfast released this 21 Dec 22:16
· 359 commits to master since this release
v0.11.0
5d86573

This release is focused on Cancun and EOF.

Added

  • Cancun Network Upgrade fully supported
    • EIP-1153: Transient storage opcodes
      • transient storage & TLOAD and TSTORE instructions #669
      • clearing of transient storage between transactions #715
    • EIP-4788: Beacon block root in the EVM
      • don't assume the transaction sender exists #731
      • system call to the Beacon Roots contract #709
    • EIP-4844: Shard Blob Transactions
      • BLOBHASH instruction #668
      • blob transactions #713
      • stub of the point_evaluation precompile #730
    • EIP-5656: MCOPY - Memory copying instruction #629 #648
    • EIP-6780: SELFDESTRUCT only in same transaction #735
    • EIP-7516: BLOBBASEFEE opcode #708
  • EVM Modular Arithmetic Extensions (EVMMAX)
    • Added basic EVMMAX support in form of C++ API. #673
    • Implementation of secp256k1 ECDSA recovery (ecrecovery precompile) using EVMMAX #688
    • Implementation of ecadd and ecmul BN254 precompiles using EVMMAX #716
  • Initial support for Blockchain Tests
  • Optionally use Silkworm as the precompiles implementation. #660
  • Support for executing JSON EOF Tests (thanks @gzanitti) #678
  • EVM tracing option --trace in evmone-t8n #616
  • Support for compiling for riscv32 architecture #700
  • Ability to export evmone's unit tests to the JSON State Test format #743

Changed

  • EVM Object Format (EOF):
    EOF implementation follows the EOF spec (aka Mega EOF Endgame) and is tentatively enabled in the Prague EVM revision.
    • Tests have been migrated to ipsilon/tests/eof #651
    • Implementation of four new instructions for accessing data sections: DATALOAD, DATALOADN, DATASIZE, DATACOPY #586 #663 #717 #741
    • Forbid DELEGATECALL from EOF to legacy contracts during execution #588
    • The data section kind has been changed to 0x04 #632
    • The RJUMPV immediate argument meaning has been changed to "max index" #640
    • Implementation of the JUMPF instruction and the non-returning functions #644
  • Opcodes of new instructions have been assigned following the execution-spec opcodes list #665
  • State changes are now reverted with the journal #689
  • Compatibility of evmone-statetest with goevmlab has been improved #658 #757
  • Minimal tested/supported compilers versions: #675
    • GCC 11
    • Clang 13
    • XCode 14.3.1 (bumped from 13.4)
    • Visual Studio 2022
    • CMake 3.16...3.27
  • EVMC has been upgraded to version 11.0.1. #754 #738 #707 #669
  • intx has been upgraded to version 0.10.1. #674
  • Ethereum Execution Tests has been upgraded to version 13 and Execution Spec Tests version 1.0.6 has been added. #737

Fixed

  • EOF: Fix CALLF runtime stack overflow check #677
  • EOF: Fix missing CALLF stack overflow validation #619
  • Fixed processing of withdrawals with 0 amount (testing infrastructure) #630
  • Fixed handling of short nodes in Merkle Patricia Trie (testing infrastructure) #686