Skip to content

EVMC 7.0.0 „Istanbul Ready”

Compare
Choose a tag to compare
@chfast chfast released this 13 Nov 10:33
· 577 commits to master since this release
v7.0.0
e770f78

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 to evmc_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 to evmc_vm. #430
  • The evmc_context renamed to evmc_host_context. #426
  • The evmc_host_interface is now separated from evmc_host_context. This simplifies language bindings which implement the evmc_host_interface. #427
  • The evmc::vm renamed to evmc::VM in C++ API. #252
  • Previously deprecated helpers.hpp header file has been removed. #410
  • Previously deprecated EVMC_CONSTANTINOPLE2 and EVMC_LATEST_REVISION revisions have been removed. #411
  • Previously deprecated tracing API has been removed. #429
  • In evmc::instructions library the undefined instructions have 0 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 now bool instead of int. #442
  • In the Rust bindings make ExecutionContext optional within execute. #350
  • A set of small improvements to C++ API. #445 #449 #451