Releases: ethereum/evmc
Releases · ethereum/evmc
EVMC 12.0.0
Added
- Add Osaka EVM revision. #711
- Add EOF
TXCREATE
instruction support. #709 - Add
EOFCREATE
message 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
bindgen
to 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
PUSH0
instruction 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_ERROR
has been defined to provide a convenient way of initializingevmc_loader_error_code
objects. #617 - Support for Visual Studio 2022. #619
- C++ types
evmc::address
andevmc::bytes32
are convertible tostd::basic_string_view<uint8_t>
. #636 - Convenient constructors for C++
evmc::result
. #660 - Rust: The
EvmcVm::set_option
has been added. #614
Changed
- The
code_address
field has been added to theevmc_message
type. It represents the address of an account from which the code is being executed and is useful forDELEGATECALL
implementations. #611 #615 - The
evmc_message::destination
field has been renamed toevmc_message::recipient
to clarify its purpose and match the naming from the Yellow Paper. #616 - The
evmc_storage_status
has been extended to provide information about every possible case of storage net gas metering (EIP-2200). #661 - The
selfdestruct
method returns the information if the given address has not been registered as selfdestructed yet. #662 - C++: The
evmc::result
has been renamed toevmc::Result
for consistency with C++ types of similar kind. #665 - C++: The
HostContext
does not cache transaction context (evmc_tx_context
) anymore. #631 - Go: The
create2Salt
parameter has been removed from theVM.Execute()
. #612 - Code quality improvements. #618 #620 #621 #632
- According to EIP-4399,
block_difficulty
field was renamed toblock_prev_randao
, andDIFFICULTY
opcode toPREVRANDAO
. #635 - The
evmc::hex
support 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
@file
syntax must be used. E.g.evmc run @contract.evm --input @data.in
. #647 - Improvements to the
evmc::MockedHost
testing utility around account storage and selfdestructs. #661 #662 #670
Fixed
- Java bindings fixes. #653
Removed
- The support for C++
0_address
and0_bytes32
literals has been removed. #652
EVMC 9.0.0
Added
- Support for London EIP-3198:
block_base_fee
member added toevmc_tx_context
,BASEFEE
instruction added. #603 - Added Shanghai EVM revision. #604
- Added
EVMC_LATEST_STABLE_REVISON
: alias for the latest known EVM revision with finalized specification. #605 - The
--bench
flag has been added toevmc run
to more precisely measure execution time. #598 - Output stream operators and
to_string()
overloads for EVMC typesevmc_revision
andevmc_status_code
are 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
--input
forevmc run
tool to specify execution input data (calldata). #564 - New option
--create
forevmc run
tool 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 run
tool accepts both hex-strings or file paths forcode
and--input
arguments. #574- New static C++ library
evmc::hex
added with procedures for hex encoding/decoding. Hex-strings are used by EVMC and related projects for internal testing. #575 - New
EVMC_INSUFFICIENT_BALANCE
error 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::hash
and comparison operators for EVMC types has been optimized. #560 #561 evmc --version
now 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
EVMC 7.4.0
Changed
- The C++ standard required increased to C++14. #521
- The C++ literals for
address
andbytes32
types have been reimplemented to usestatic_assert
to report errors. This makes C++ bindings exception-free (no-throw guarantee level of exception safety). #520
Removed
- The support for Visual Studio 2015 C/C++ compiler has been dropped as a consequence of requiring C++14. #521