crytic / crytic/slither

API, IR, etc design improvements

Open
#2,563 0 comments 0 reactions 0 assignees View on GitHub
design meta
Dominant language
Python
Stars
6.4k
Forks
1.1k
PR merge metrics
No merged PRs in 30d

Description

Jotting down a list of changes that could improve future versions of Slither and its framework

- Get rid of `HighLevelCall` <-> state variable/function footgun (missing instance check for `Function` and accessing `ir.function` causing `AttributeError` ) https://github.com/crytic/slither/pull/2019
- Get rid of `InternalCall` <-> `SolidityCall` sharing https://github.com/crytic/slither/blob/2c792b2b73c6c1fbbf5464bd1f9fc8ccedf0c0bf/slither/core/cfg/node.py#L899
- Get rid of late lookup for SolidityImportPlaceholder
- Get rid of late custom error signature lookup
- Get rid of ternary conversion or rework it altogether
- Rework file/detector filtering from scratch (https://github.com/crytic/slither/issues/2421, https://github.com/crytic/slither/pull/2428)
- Rename SlitherCompilationUnitSolc to SolidityCompilationUnit
- Investigate using iterator/generator over for loop or other API's for detectors like https://github.com/crytic/slither/issues/1751
- Need to have a way for detector to show call path e.g. call in loop detector (https://github.com/crytic/slither/issues/1468)
- Need to show origin of taint and flow (https://github.com/crytic/slither/issues/2425#issuecomment-2053645631)
- Retain data flow as an actual graph e.g. we don't have a straightforward way to get the operations that created a variable like but maybe we can come up with an intuitive way to get this info and add it to the public API.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.