oasis-sdk icon indicating copy to clipboard operation
oasis-sdk copied to clipboard

Add REVM-based EVM module

Open abukosek opened this issue 4 months ago • 1 comments

Current status:

  • Basic EVM functionality works and e2e tests pass
  • Precompiles implemented:
    • Ethereum standard (ecrecover, sha256, ripemd160, identity, bn128::{add,mul,pair}, blake2, modexp)
    • Oasis-specific SHA2 (sha512_256, sha512, sha384)
    • Oasis-specific confidential (x25519_derive, deoxysii_seal, deoxysii_open, keypair_generate, sign, verify, curve25519_compute_public)

Precompiles to do (sorted easy to hard):

  • [ ] Oasis-specific confidential: random_bytes (problem: need to pass storage backend to precompile)
  • [ ] Oasis-specific confidential: gas_used, pad_gas (problem: revm doesn't export gas used so far to precompiles)
  • [ ] Oasis-specific general: subcall (problem: how to do this with revm?)

Other things to do:

  • [ ] Fix nonce updating
  • [ ] Port testing framework for precompiles from old EVM module
  • [ ] Test everything

The plan is to get this PR into a mergeable state by fixing nonce updates and then implement the rest via smaller PRs.

abukosek avatar Sep 25 '24 12:09 abukosek