oasis-sdk
oasis-sdk copied to clipboard
Add REVM-based EVM module
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:
- [X] Fix nonce updating -- kind of done, someone please check.
- [ ] Port the precompiles I implemented previously for revm v56 to the new v66, which has changed the entire API :/
- [ ] Port testing framework for precompiles from old EVM module
- [ ] Transfer event doesn't seem to be emitted by revm (
test_transfer_event), look into this.
The plan is to get this PR into a mergeable state by fixing nonce updates and then implement the rest via smaller PRs.
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 |