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.rstfor the protocol and the environment,CHANGES.rstat the root of the repository for everything else). -
Select suitable reviewers using the Reviewersfield below. -
Select as Assigneethe next person who should take action on that MR
Edited by Thomas Pecseli