Skip to content

Verify annotation logic in dynamic pruning plugin #1093

Open
@muellerberndt

Description

@muellerberndt

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 of persist_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)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions