API, IR, etc design improvements
- 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
Assessment
This issue has not been assessed yet.