EVMC 7.0.0 „Istanbul Ready”
This version of EVMC delivers compatibility with Istanbul EVM revision. The ABI breaking change has been required in this case so some other backward-incompatible changes are also included and deprecated APIs have been removed.
Added
- Support for Istanbul EIP-1344 (CHAINID opcode).
chain_id
added toevmc_tx_context
struct. #375 - Support for Istanbul EIP-1884 (Repricing for trie-size-dependent opcodes). #372
- The Berlin EVM revision number has been added. #407
- In C++ API, an overload for
VM::execute()
has been added that omits the Host context and interface parameters. This is useful for Precompiles VMs that do not interact with the Host. #302
Changed
- The
evmc_instance
renamed toevmc_vm
. #430 - The
evmc_context
renamed toevmc_host_context
. #426 - The
evmc_host_interface
is now separated fromevmc_host_context
. This simplifies language bindings which implement theevmc_host_interface
. #427 - The
evmc::vm
renamed toevmc::VM
in C++ API. #252 - Previously deprecated
helpers.hpp
header file has been removed. #410 - Previously deprecated
EVMC_CONSTANTINOPLE2
andEVMC_LATEST_REVISION
revisions have been removed. #411 - Previously deprecated tracing API has been removed. #429
- In
evmc::instructions
library the undefined instructions have0
gas cost instead of previous-1
value.
#425 - The EVM instruction tables have been redesigned to be more useful. #435
- The EVMC loader trims all extensions (previously only the last one) from the EVMC module file name. #439
- The EVMC loader no longer ties to guess the VM create function name by dropping prefix words from the name. #440
- The helper function
evmc_is_abi_compatible()
returns nowbool
instead ofint
. #442 - In the Rust bindings make
ExecutionContext
optional withinexecute
. #350 - A set of small improvements to C++ API. #445 #449 #451