Open
Description
Description
Review and potentially refactor the annotation logic in the read/write dependency pruning plugin.
- Test whether the technique works with search strategies other than BFS;
- Review the way state annotations and world state annotations work, and potentially refactor
DependencyAnnotation
to make use ofpersist_to_world_state
.
Background
The dependency pruning plugin uses a stack in a world state annotation to carry over state annotations from STOP and RETURN states of a transaction to the next iteration. This was a Bernhard Mueller trademark hack tm caused by a lack of time and was not properly tested with other search strategies than bfs. It is possible that things break when other search strategies are used (also there might be a more straightforward way to do this).
Note that only storage_written
needs to be known in the subsequent iterati.on (all other instance variables are reset).
Tests
- Run Mythril against the SWC with all different search strategies and verify that there are no regressions.
- Verify that analysis speed does not degrade (multi-tx test files)