evm
evm copied to clipboard
Enable/disable STATICCALL Opcode
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 OPCODEand consume all the gas. - I'm building a light-client, the
eth_callresult 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.
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.