Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
The on-chain executor calls the **initAndRun()** method as transaction (needs to fit into block gas limit), but executes only 1 step:
- Have the EVM load at a given step of some program, execute the current OP-code, and return the state of the EVM (at next step).
- Implement unit tests for each OP-code in the following way:
1. Run off-chain EVM and export state at steps x and x+1.
2. Load on-chain EVM with step x, run 1 step, and compare with x+1 from off-chain.
3. Implement tests where x falls on every possible Op-code (see list in [architecture docs](https://github.com/parsec-labs/solevm-truffle/blob/master/docs/Architecture.md), except extra difficult).
This implementation will give us the confidence that the on-chain executor produces the same results as the off-chain executor.