Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable/disable STATICCALL Opcode #248

Open
Lohann opened this issue Dec 2, 2023 · 1 comment
Open

Enable/disable STATICCALL Opcode #248

Lohann opened this issue Dec 2, 2023 · 1 comment

Comments

@Lohann
Copy link

Lohann commented Dec 2, 2023

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 Lohann changed the title Allow enable/disable STATICCALL Opcode Enable/disable STATICCALL Opcode Dec 2, 2023
@Lohann
Copy link
Author

Lohann commented Dec 2, 2023

I've added a config for staticcall on this PR:
#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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant