r55-eth/r55

TODO masterlist v1

Opened this issue · 1 comments

Syscalls

Everything specific to Ethereum, up to running basic usual contracts.

  • Clean up the syscalls ids, use EVM opcode values for clarity and guidelines
  • msg.*
  • tx.*
  • block.*
  • call
  • staticcall
  • I guess no complicated calls for now (delegatecall, create, create2)
  • tload/tstore
  • keccak (important for Mapping lib)
  • logs
  • ???

Library

Types and convenience functions.

  • Mapping (should use the keccak syscall instead of TinyKeccak)
  • Log helpers
  • Maybe some traits to define how to encode/decode types into/from Memory/Storage?
  • ???

VM

  • Base VM seems fine for now

ELF

  • Contract size can get large quite quickly. Find ways to compress/optimize it.
  • Maybe integrate with EOF?

Reth/Odyssey

Testing

  • Set up CI
  • Write more tests, for everything
  • Gas metering / pricing
  • Sandboxing
  • Document / specify RISC-V extensions in use
  • Support for compressed instructions
  • Identify and handle instructions that may cause issues (EBREAK)
  • Non-interpreted mode