Skip to content

Commit e5f2a86

Browse files
authored
0.9.6 (#2031)
* 0.9.6 * lint readme
1 parent e91529e commit e5f2a86

File tree

2 files changed

+64
-66
lines changed

2 files changed

+64
-66
lines changed

README.md

+62-63
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,51 @@
1-
<img src="https://raw.githubusercontent.com/crytic/slither/master/logo.png" alt="Slither Static Analysis Framework Logo" width="500" />
2-
31
# [Slither, the Solidity source analyzer](https://crytic.github.io/slither/slither.html)
42

3+
<img src="https://raw.githubusercontent.com/crytic/slither/master/logo.png" alt="Slither Static Analysis Framework Logo" width="500" />
4+
55
[![Build Status](https://img.shields.io/github/actions/workflow/status/crytic/slither/ci.yml?branch=master)](https://github.com/crytic/slither/actions?query=workflow%3ACI)
66
![PyPI](https://img.shields.io/pypi/v/slither-analyzer?logo=python&logoColor=white&label=slither-analyzer)
77
[![Slither - Read the Docs](https://img.shields.io/badge/Slither-Read_the_Docs-2ea44f)](https://crytic.github.io/slither/slither.html)
88
[![Slither - Wiki](https://img.shields.io/badge/Slither-Wiki-2ea44f)](https://github.com/crytic/slither/wiki/SlithIR)
99

1010
> Join the Empire Hacking Slack
11-
>
11+
>
1212
> [![Slack Status](https://slack.empirehacking.nyc/badge.svg)](https://slack.empirehacking.nyc/)
1313
> > <sub><i>- Discussions and Support </i></sub>
1414
15-
1615
**Slither** is a Solidity static analysis framework written in Python3. It runs a suite of vulnerability detectors, prints visual information about contract details, and provides an API to easily write custom analyses. Slither enables developers to find vulnerabilities, enhance their code comprehension, and quickly prototype custom analyses.
1716

18-
* [Features](#features)
19-
* [Usage](#usage)
20-
* [How to install](#how-to-install)
21-
+ [Using Pip](#using-pip)
22-
+ [Using Git](#using-git)
23-
+ [Using Docker](#using-docker)
24-
+ [Integration](#integration)
25-
* [Detectors](#detectors)
26-
* [Printers](#printers)
27-
+ [Quick Review Printers](#quick-review-printers)
28-
+ [In-Depth Review Printers](#in-depth-review-printers)
29-
* [Tools](#tools)
30-
* [API Documentation](#api-documentation)
31-
* [Getting Help](#getting-help)
32-
* [FAQ](#faq)
33-
* [License](#license)
34-
* [Publications](#publications)
35-
+ [Trail of Bits publication](#trail-of-bits-publication)
36-
+ [External publications](#external-publications)
37-
17+
* [Features](#features)
18+
* [Usage](#usage)
19+
* [How to install](#how-to-install)
20+
* [Using Pip](#using-pip)
21+
* [Using Git](#using-git)
22+
* [Using Docker](#using-docker)
23+
* [Integration](#integration)
24+
* [Detectors](#detectors)
25+
* [Printers](#printers)
26+
* [Quick Review Printers](#quick-review-printers)
27+
* [In-Depth Review Printers](#in-depth-review-printers)
28+
* [Tools](#tools)
29+
* [API Documentation](#api-documentation)
30+
* [Getting Help](#getting-help)
31+
* [FAQ](#faq)
32+
* [License](#license)
33+
* [Publications](#publications)
34+
* [Trail of Bits publication](#trail-of-bits-publication)
35+
* [External publications](#external-publications)
3836

3937
## Features
4038

41-
- Detects vulnerable Solidity code with low false positives (see the list of [trophies](./trophies.md))
42-
- Identifies where the error condition occurs in the source code
43-
- Easily integrates into continuous integration and Hardhat/Foundry builds
44-
- Built-in 'printers' quickly report crucial contract information
45-
- Detector API to write custom analyses in Python
46-
- Ability to analyze contracts written with Solidity >= 0.4
47-
- Intermediate representation ([SlithIR](https://github.com/trailofbits/slither/wiki/SlithIR)) enables simple, high-precision analyses
48-
- Correctly parses 99.9% of all public Solidity code
49-
- Average execution time of less than 1 second per contract
50-
- Integrates with Github's code scanning in [CI](https://github.com/marketplace/actions/slither-action)
39+
* Detects vulnerable Solidity code with low false positives (see the list of [trophies](./trophies.md))
40+
* Identifies where the error condition occurs in the source code
41+
* Easily integrates into continuous integration and Hardhat/Foundry builds
42+
* Built-in 'printers' quickly report crucial contract information
43+
* Detector API to write custom analyses in Python
44+
* Ability to analyze contracts written with Solidity >= 0.4
45+
* Intermediate representation ([SlithIR](https://github.com/trailofbits/slither/wiki/SlithIR)) enables simple, high-precision analyses
46+
* Correctly parses 99.9% of all public Solidity code
47+
* Average execution time of less than 1 second per contract
48+
* Integrates with Github's code scanning in [CI](https://github.com/marketplace/actions/slither-action)
5149

5250
## Usage
5351

@@ -102,9 +100,9 @@ docker run -it -v /home/share:/share trailofbits/eth-security-toolbox
102100

103101
### Integration
104102

105-
- For GitHub action integration, use [slither-action](https://github.com/marketplace/actions/slither-action).
106-
- To generate a Markdown report, use `slither [target] --checklist`.
107-
- To generate a Markdown with GitHub source code highlighting, use `slither [target] --checklist --markdown-root https://github.com/ORG/REPO/blob/COMMIT/` (replace `ORG`, `REPO`, `COMMIT`)
103+
* For GitHub action integration, use [slither-action](https://github.com/marketplace/actions/slither-action).
104+
* To generate a Markdown report, use `slither [target] --checklist`.
105+
* To generate a Markdown with GitHub source code highlighting, use `slither [target] --checklist --markdown-root https://github.com/ORG/REPO/blob/COMMIT/` (replace `ORG`, `REPO`, `COMMIT`)
108106

109107
## Detectors
110108

@@ -200,37 +198,38 @@ Num | Detector | What it Detects | Impact | Confidence
200198

201199
For more information, see
202200

203-
- The [Detector Documentation](https://github.com/crytic/slither/wiki/Detector-Documentation) for details on each detector
204-
- The [Detection Selection](https://github.com/crytic/slither/wiki/Usage#detector-selection) to run only selected detectors. By default, all the detectors are run.
205-
- The [Triage Mode](https://github.com/crytic/slither/wiki/Usage#triage-mode) to filter individual results
201+
* The [Detector Documentation](https://github.com/crytic/slither/wiki/Detector-Documentation) for details on each detector
202+
* The [Detection Selection](https://github.com/crytic/slither/wiki/Usage#detector-selection) to run only selected detectors. By default, all the detectors are run.
203+
* The [Triage Mode](https://github.com/crytic/slither/wiki/Usage#triage-mode) to filter individual results
206204

207205
## Printers
206+
208207
### Quick Review Printers
209-
- `human-summary`: [Print a human-readable summary of the contracts](https://github.com/trailofbits/slither/wiki/Printer-documentation#human-summary)
210-
- `inheritance-graph`: [Export the inheritance graph of each contract to a dot file](https://github.com/trailofbits/slither/wiki/Printer-documentation#inheritance-graph)
211-
- `contract-summary`: [Print a summary of the contracts](https://github.com/trailofbits/slither/wiki/Printer-documentation#contract-summary)
212-
- `loc`: [Count the total number lines of code (LOC), source lines of code (SLOC), and comment lines of code (CLOC) found in source files (SRC), dependencies (DEP), and test files (TEST).](https://github.com/trailofbits/slither/wiki/Printer-documentation#loc)
208+
* `human-summary`: [Print a human-readable summary of the contracts](https://github.com/trailofbits/slither/wiki/Printer-documentation#human-summary)
209+
* `inheritance-graph`: [Export the inheritance graph of each contract to a dot file](https://github.com/trailofbits/slither/wiki/Printer-documentation#inheritance-graph)
210+
* `contract-summary`: [Print a summary of the contracts](https://github.com/trailofbits/slither/wiki/Printer-documentation#contract-summary)
211+
* `loc`: [Count the total number lines of code (LOC), source lines of code (SLOC), and comment lines of code (CLOC) found in source files (SRC), dependencies (DEP), and test files (TEST).](https://github.com/trailofbits/slither/wiki/Printer-documentation#loc)
213212

214213
### In-Depth Review Printers
215-
- `call-graph`: [Export the call-graph of the contracts to a dot file](https://github.com/trailofbits/slither/wiki/Printer-documentation#call-graph)
216-
- `cfg`: [Export the CFG of each functions](https://github.com/trailofbits/slither/wiki/Printer-documentation#cfg)
217-
- `function-summary`: [Print a summary of the functions](https://github.com/trailofbits/slither/wiki/Printer-documentation#function-summary)
218-
- `vars-and-auth`: [Print the state variables written and the authorization of the functions](https://github.com/crytic/slither/wiki/Printer-documentation#variables-written-and-authorization)
219-
- `not-pausable`: [Print functions that do not use `whenNotPaused` modifier](https://github.com/trailofbits/slither/wiki/Printer-documentation#when-not-paused).
214+
* `call-graph`: [Export the call-graph of the contracts to a dot file](https://github.com/trailofbits/slither/wiki/Printer-documentation#call-graph)
215+
* `cfg`: [Export the CFG of each functions](https://github.com/trailofbits/slither/wiki/Printer-documentation#cfg)
216+
* `function-summary`: [Print a summary of the functions](https://github.com/trailofbits/slither/wiki/Printer-documentation#function-summary)
217+
* `vars-and-auth`: [Print the state variables written and the authorization of the functions](https://github.com/crytic/slither/wiki/Printer-documentation#variables-written-and-authorization)
218+
* `not-pausable`: [Print functions that do not use `whenNotPaused` modifier](https://github.com/trailofbits/slither/wiki/Printer-documentation#when-not-paused).
220219

221220
To run a printer, use `--print` and a comma-separated list of printers.
222221

223222
See the [Printer documentation](https://github.com/crytic/slither/wiki/Printer-documentation) for the complete lists.
224223

225224
## Tools
226225

227-
- `slither-check-upgradeability`: [Review `delegatecall`-based upgradeability](https://github.com/crytic/slither/wiki/Upgradeability-Checks)
228-
- `slither-prop`: [Automatic unit test and property generation](https://github.com/crytic/slither/wiki/Property-generation)
229-
- `slither-flat`: [Flatten a codebase](https://github.com/crytic/slither/wiki/Contract-Flattening)
230-
- `slither-check-erc`: [Check the ERC's conformance](https://github.com/crytic/slither/wiki/ERC-Conformance)
231-
- `slither-format`: [Automatic patch generation](https://github.com/crytic/slither/wiki/Slither-format)
232-
- `slither-read-storage`: [Read storage values from contracts](./slither/tools/read_storage/README.md)
233-
- `slither-interface`: [Generate an interface for a contract](./slither/tools/interface/README.md)
226+
* `slither-check-upgradeability`: [Review `delegatecall`-based upgradeability](https://github.com/crytic/slither/wiki/Upgradeability-Checks)
227+
* `slither-prop`: [Automatic unit test and property generation](https://github.com/crytic/slither/wiki/Property-generation)
228+
* `slither-flat`: [Flatten a codebase](https://github.com/crytic/slither/wiki/Contract-Flattening)
229+
* `slither-check-erc`: [Check the ERC's conformance](https://github.com/crytic/slither/wiki/ERC-Conformance)
230+
* `slither-format`: [Automatic patch generation](https://github.com/crytic/slither/wiki/Slither-format)
231+
* `slither-read-storage`: [Read storage values from contracts](./slither/tools/read_storage/README.md)
232+
* `slither-interface`: [Generate an interface for a contract](./slither/tools/interface/README.md)
234233

235234
See the [Tool documentation](https://github.com/crytic/slither/wiki/Tool-Documentation) for additional tools.
236235

@@ -244,23 +243,23 @@ Documentation on Slither's internals is available [here](https://crytic.github.i
244243

245244
Feel free to stop by our [Slack channel](https://empireslacking.herokuapp.com) (#ethereum) for help using or extending Slither.
246245

247-
- The [Printer documentation](https://github.com/trailofbits/slither/wiki/Printer-documentation) describes the information Slither is capable of visualizing for each contract.
246+
* The [Printer documentation](https://github.com/trailofbits/slither/wiki/Printer-documentation) describes the information Slither is capable of visualizing for each contract.
248247

249-
- The [Detector documentation](https://github.com/trailofbits/slither/wiki/Adding-a-new-detector) describes how to write a new vulnerability analyses.
248+
* The [Detector documentation](https://github.com/trailofbits/slither/wiki/Adding-a-new-detector) describes how to write a new vulnerability analyses.
250249

251-
- The [API documentation](https://github.com/crytic/slither/wiki/Python-API) describes the methods and objects available for custom analyses.
250+
* The [API documentation](https://github.com/crytic/slither/wiki/Python-API) describes the methods and objects available for custom analyses.
252251

253-
- The [SlithIR documentation](https://github.com/trailofbits/slither/wiki/SlithIR) describes the SlithIR intermediate representation.
252+
* The [SlithIR documentation](https://github.com/trailofbits/slither/wiki/SlithIR) describes the SlithIR intermediate representation.
254253

255254
## FAQ
256255

257256
How do I exclude mocks or tests?
258257

259-
- View our documentation on [path filtering](https://github.com/crytic/slither/wiki/Usage#path-filtering).
258+
* View our documentation on [path filtering](https://github.com/crytic/slither/wiki/Usage#path-filtering).
260259

261260
How do I fix "unknown file" or compilation issues?
262261

263-
- Because slither requires the solc AST, it must have all dependencies available.
262+
* Because slither requires the solc AST, it must have all dependencies available.
264263
If a contract has dependencies, `slither contract.sol` will fail.
265264
Instead, use `slither .` in the parent directory of `contracts/` (you should see `contracts/` when you run `ls`).
266265
If you have a `node_modules/` folder, it must be in the same directory as `contracts/`. To verify that this issue is related to slither,
@@ -275,7 +274,7 @@ Slither is licensed and distributed under the AGPLv3 license. [Contact us](mailt
275274

276275
### Trail of Bits publication
277276

278-
- [Slither: A Static Analysis Framework For Smart Contracts](https://arxiv.org/abs/1908.09878), Josselin Feist, Gustavo Grieco, Alex Groce - WETSEB '19
277+
* [Slither: A Static Analysis Framework For Smart Contracts](https://arxiv.org/abs/1908.09878), Josselin Feist, Gustavo Grieco, Alex Groce - WETSEB '19
279278

280279
### External publications
281280

setup.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88
description="Slither is a Solidity static analysis framework written in Python 3.",
99
url="https://github.com/crytic/slither",
1010
author="Trail of Bits",
11-
version="0.9.5",
11+
version="0.9.6",
1212
packages=find_packages(),
1313
python_requires=">=3.8",
1414
install_requires=[
1515
"packaging",
1616
"prettytable>=3.3.0",
1717
"pycryptodome>=3.4.6",
18-
"crytic-compile>=0.3.2,<0.4.0",
18+
"crytic-compile>=0.3.3,<0.4.0",
1919
# "crytic-compile@git+https://github.com/crytic/crytic-compile.git@dev#egg=crytic-compile",
2020
"web3>=6.0.0",
2121
"eth-abi>=4.0.0",
@@ -36,7 +36,6 @@
3636
"coverage[toml]",
3737
"filelock",
3838
"pytest-insta",
39-
"solc-select>=1.0.4",
4039
],
4140
"doc": [
4241
"pdoc",

0 commit comments

Comments
 (0)