evm icon indicating copy to clipboard operation
evm copied to clipboard

Enable/disable STATICCALL Opcode

Open Lohann opened this issue 1 year ago • 1 comments

The STATICCALL was introduced in the EIP-214 in the Byzantium hardfork, while is possible to disable some opcodes like DELEGATECALL, CREATE2, REVERT, etc.. is not possible to disable the STATICCALL opcode.

Issues:

  • It can lead to consensus issues when using frontier hardfork config, where it is expected to return INVALID OPCODE and consume all the gas.
  • I'm building a light-client, the eth_call result can diverge from a result expected from ethereum compliant client.

The reason why I'm using this crate instead revm is because it's more flexible, smaller and easier to compile to webassembly, once the light-client is intended to support web browsers and substrate pallets.

Count on me to help to make this crate EVM compliant.

Lohann avatar Dec 02 '23 13:12 Lohann

I've added a config for staticcall on this PR: https://github.com/rust-ethereum/evm/pull/223

Using this branch, I was able to synchronize a node up to block 2_674_999. but I'm still getting a state root mismatch in the Spurious Dragon hardfork.. still investigating why.

Lohann avatar Dec 02 '23 18:12 Lohann