- [_] Refactor errors to not use execution results for success
- Fix memory problems on the return (when size is 0)
- Refactor create and create 2, also get create to work
- Fix calling costs and split up function
- Fix Calldata load, Code load etc.
- [_] Do general clean up
- Better error handling
- Refactor where macros and functions are
- Remove lambdas
- Move costs into a config
- Separate gas cost logic from main logic
- Get Memory Buffer tests to work
- Check CODECOPY
- Check CALLDATACOPY
- Check initial costs
- Make gas refunds handle reverts
- [_] Change to H256 instead of U256 where needed (and H160)
- [_] Only pass JSON once in tests, (maybe pass in the proc macro and then directly insert in the code)
- Replace macro with method in decoder?
- Replace closure with macro
- Move entire decode step into inline function
- [?] Restructure code into a folder system
- More specific error handling
- Create better gas tracking, (esplet success = 's: { // Try to send value two times. for _ in 0..2 { value = match send(value) { Ok(()) => break 's true, Err(SendError(value)) => value, } } false };
ecially for memory) - [x] Created gas tracker - [x] Apply gas tracker to memory operations - [x] Apply gas tracker to all other operations
-
[?] Implement Reverts if failure (especially in calls)
-
[_] Check the failure behavior of every instruction
-
Create a helper proc macro that creates a map from opcode to string value
-
[_] Remove assembler? Maybe find an assembler crate
-
[_] Fix test proc to auto detect if a file or folder and auto search sub directories
-
[_] Allow specifying of a specific test in a file
-
[?] Get all arithmetic tests to pass
-
[?] Fix SSTORE and CALL costs (still not very clear)
-
[?] Implement better system for reverts etc.
-
Check against official ethereum vm logs to debug
-
Fix memory access costs, need to consolidate all memory accesses to a single memory
-
Fix debug code to be prettier
-
Original Storage value, (modify gas usage to support this)
-
Apply gas usage
-
Get the root hash to work on a test, require making sure gas usage is applied and that the hash is calculated correctly
-
Restructure the way in which a transaction is called on the EVM
-
Allow reverting of storage (can be done inefficiently for now)
-
Implement hash of state for mock runtime
-
Finish implementing call, (without gas calculations)
-
[N] Define tests for instructions not using runtime
- Create Proc macro to define tests in json
-
Add variable gas calculations
-
Create test implementing of Runtime
-
Revert only current context, (not also if a call fails)
-
Handle not enough values on stack
-
[N] Define test for instructions using runtime
-
[_] Implement delegate call and create 2
-
[_] Implement Create
-
[_] Define tests for mem and stack
- [_] Submit fix for py eth vm, check that the address is hot
- [_] Submit fix for num256 conversion between signed and unsigned