This repository was archived by the owner on Nov 17, 2025. It is now read-only.
Releases: ipsilon/evmc
Releases · ipsilon/evmc
EVMC 12.1.0
EVMC 12.0.0
Added
- Add Osaka EVM revision. #711
- Add EOF
TXCREATEinstruction support. #709 - Add
EOFCREATEmessage kind support. #681 - Add support for EOF creation transaction (
EOFCREATE) in theevmc run. #713 - go: Expose transient storage API. #708
Changed
- Set Cancun as the latest stable revision
EVMC_LATEST_STABLE_REVISION. #716
Fixed
- C++: Fix
basic_string<unsigned char>incompatibility with latest libc++. #712 - rust: Update
bindgento fix bindings generation. #707
Removed
- Java bindings have been removed. #706
EVMC 11.0.1
Changed
- Improved compatibility with CMake 3.27. #701
EVMC 11.0.0 "Cancun"
EVMC 10.1.1
Fixed
- cmake: Fix
evmc_add_vm_test()not working in cross-compilation #695
EVMC 10.1.0 "Shanghai"
EVMC 10.0.0
Added
- Information about
PUSH0instruction from EIP-3855 for Shanghai revision. #628 - The Paris (aka The Merge) EVM revision. #627 #634
- The Cancun EVM revision (anticipated after Shanghai) #633
- The gas refund counter has been added to the
evmc_result. #666 - The error code
EVMC_LOADER_UNSPECIFIED_ERRORhas been defined to provide a convenient way of initializingevmc_loader_error_codeobjects. #617 - Support for Visual Studio 2022. #619
- C++ types
evmc::addressandevmc::bytes32are convertible tostd::basic_string_view<uint8_t>. #636 - Convenient constructors for C++
evmc::result. #660 - Rust: The
EvmcVm::set_optionhas been added. #614
Changed
- The
code_addressfield has been added to theevmc_messagetype. It represents the address of an account from which the code is being executed and is useful forDELEGATECALLimplementations. #611 #615 - The
evmc_message::destinationfield has been renamed toevmc_message::recipientto clarify its purpose and match the naming from the Yellow Paper. #616 - The
evmc_storage_statushas been extended to provide information about every possible case of storage net gas metering (EIP-2200). #661 - The
selfdestructmethod returns the information if the given address has not been registered as selfdestructed yet. #662 - C++: The
evmc::resulthas been renamed toevmc::Resultfor consistency with C++ types of similar kind. #665 - C++: The
HostContextdoes not cache transaction context (evmc_tx_context) anymore. #631 - Go: The
create2Saltparameter has been removed from theVM.Execute(). #612 - Code quality improvements. #618 #620 #621 #632
- According to EIP-4399,
block_difficultyfield was renamed toblock_prev_randao, andDIFFICULTYopcode toPREVRANDAO. #635 - The
evmc::hexsupport C++ library has been refactored and converted to a single-header library. #643 #648 #649 #654 - For command-line tools to load input/code from a file the
@filesyntax must be used. E.g.evmc run @contract.evm --input @data.in. #647 - Improvements to the
evmc::MockedHosttesting utility around account storage and selfdestructs. #661 #662 #670
Fixed
- Java bindings fixes. #653
Removed
- The support for C++
0_addressand0_bytes32literals has been removed. #652
EVMC 9.0.0
Added
- Support for London EIP-3198:
block_base_feemember added toevmc_tx_context,BASEFEEinstruction added. #603 - Added Shanghai EVM revision. #604
- Added
EVMC_LATEST_STABLE_REVISON: alias for the latest known EVM revision with finalized specification. #605 - The
--benchflag has been added toevmc runto more precisely measure execution time. #598 - Output stream operators and
to_string()overloads for EVMC typesevmc_revisionandevmc_status_codeare now part of public C and C++ API. #599
Changed
- Adjustments to
evmc::mocked_host: storage changes to non-existent keys are now preserved. #594
EVMC 8.0.0
EVMC 7.5.0
Added
- New option
--inputforevmc runtool to specify execution input data (calldata). #564 - New option
--createforevmc runtool to create new contract with provided init code before main execution. This allows using Solidity compiler binary outputs directly by the tool. #566solc --bin Contract.sol -o . evmc run --create Contract.bin --input 370158ea evmc runtool accepts both hex-strings or file paths forcodeand--inputarguments. #574- New static C++ library
evmc::hexadded with procedures for hex encoding/decoding. Hex-strings are used by EVMC and related projects for internal testing. #575 - New
EVMC_INSUFFICIENT_BALANCEerror code has been registered. #528
Changed
- Java bindings fixes and improvements. It must be noted the bindings are in a work in progress state and are not suggested for production use. #535 #537 #541 #545 #549 #550 #551 #552 #553 #557 #579 #580 #581
- C++'s
std::hashand comparison operators for EVMC types has been optimized. #560 #561 evmc --versionnow also informs about the version of the loaded EVM. #567- The Example VM (
evmc::example-vm) has been converted from C to C++. It now implements a subset of real EVM opcodes so examples and tests can use valid EVM bytecodes. #539