dp-labs / dp-labs/dora

[Enhancement][Tracking] EVM EOF Bytecode

Open
#81 0 comments 0 reactions 1 assignee Claimed by @lancorer View on GitHub
backend compiler enhancement runtime test
Dominant language
WebAssembly
Stars
25
Forks
5
PR merge metrics
No merged PRs in 30d

Description

# Problem
Newly added 19 EVM EOF opcodes currently missing their functionalities in code.
## Added opcodes list

The opcode list

+ [x] DATALOAD
+ [x] DATALOADN
+ [x] DATASIZE
+ [x] DATACOPY
+ [ ] RJUMP
+ [ ] RJUMPI
+ [ ] RJUMPV
+ [ ] CALLF
+ [ ] RETF
+ [ ] JUMPF
+ [x] DUPN
+ [x] SWAPN
+ [x] EXCHANGE
+ [ ] EOFCREATE
+ [ ] RETURNCONTRACT
+ [x] RETURNDATALOAD
+ [ ] EXTCALL
+ [ ] EXTDELEGATECALL
+ [ ] EXTSTATICCALL

# Solution
Implement EOF opcodes support from the byte level and complete implementation in compiler and runtime level.
_Referenced in https://github.com/dp-labs/dora/issues/77#issuecomment-2527063031 by @timi-y_

Disable dynamic jump analysis for eof, but instead requires static jump analysis.

## Tasks
- [x] #202
- [x] #203
- [x] #215
- [x] #242
- [x] #284 by @timi-y
- [x] #285
- [ ] #408 Add eof static jump opcodes part II
- [ ] #211 Add EOF Bytecode validation
- [ ] #82 Add missing eof contract creations and call unit tests, and sample EOF bytecode running test under `evm` to make sure it's reading EOF bytecode correctly.

## Thing to be aware:

- ✅ Re #135 when writing new EOF low-level codes. ✅ - _**Resolved**_
- ‼️ Search EIP contents again to see whether there are EOF related things [here](https://www.evm.codes/?fork=EOF).‼️
- ✅ Should make negative testing for `Program` default constructing, shouldn't we? ✅ - _**Resolved** in #284 and #285_

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.