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

Add REVM-based EVM module

Open abukosek opened this issue 1 year ago • 1 comments
trafficstars

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

Deploy Preview for oasisprotocol-oasis-sdk canceled.

Name Link
Latest commit 5ab6770faab1bb04d211cf47021dd0479145f1ab
Latest deploy log https://app.netlify.com/sites/oasisprotocol-oasis-sdk/deploys/67e2ac2f963a3a00082bd177

netlify[bot] avatar Sep 25 '24 12:09 netlify[bot]