EVM on WASM: implement STATICCALL

Closes #5265 (closed)

Note

This MR is stacked on top of !8673 (merged). It depends on it.

Context

When an Ethereum contract is called as static with the STATICCALL opcode, it cannot change durable storage or write to log. This will make the contract call fail if it attempts to do so. This instruction was introduced with EIP-214, see https://eips.ethereum.org/EIPS/eip-214.

Manually testing the MR

Run cargo make test from src/kernel_evm to run all unit tests. These tests run as part of the normal pipeline.

Checklist

  • Document the interface of any function added or modified (see the coding guidelines)
  • Document any change to the user interface, including configuration parameters (see node configuration)
  • Provide automatic testing (see the testing guide).
  • For new features and bug fixes, add an item in the appropriate changelog (docs/protocols/alpha.rst for the protocol and the environment, CHANGES.rst at the root of the repository for everything else).
  • Select suitable reviewers using the Reviewers field below.
  • Select as Assignee the next person who should take action on that MR
Edited by Thomas Pecseli

Merge request reports

Loading