Detectors Overview
Built-in Detectors
# | Detector | Severity | Category | Requires Soufflé | Enabled by default |
---|---|---|---|---|---|
1 | ArgCopyMutation | High | Security | ✔ | |
2 | AsmIsUsed | Info | Security | ||
3 | BranchDuplicate | High | Security | ✔ | |
4 | CellBounds | Critical | Security | ✔ | |
5 | ConstantAddress | Info | Security | ||
6 | DivideBeforeMultiply | High | Security | ✔ | ✔ |
7 | DumpIsUsed | Info | Security | ||
8 | DuplicatedCondition | High | Security | ✔ | |
9 | DuplicatedImport | Medium | Optimization | ✔ | |
10 | EnsurePrgSeed | Medium | Security | ✔ | |
11 | EtaLikeSimplifications | Low | Optimization | ✔ | |
12 | ExitCodeUsage | High | Security | ✔ | |
13 | FalseCondition | Medium | Security | ✔ | |
14 | FieldDoubleInit | Medium | Optimization | ✔ | |
15 | ImplicitOpcode | Info | Best Practices | ||
16 | InheritedStateMutation | Low | Best Practices | ||
17 | NeverAccessedVariables | Medium | Security | ✔ | |
18 | OptimalMathFunction | Low | Optimization | ✔ | |
19 | PreferAugmentedAssign | Info | Best Practices | ||
20 | PreferBinaryReceiver | Low | Optimization | ✔ | |
21 | PreferSenderFunction | Low | Optimization | ✔ | |
22 | PreferredStdlibApi | Info—Low | Optimization, Security | ✔ | |
23 | ReadOnlyVariables | Medium | Security | ✔ | ✔ |
24 | SendInLoop | Medium | Security | ||
25 | ShortCircuitCondition | Low | Optimization | ✔ | |
26 | StateMutationInGetter | Info | Security | ||
27 | StringReceiversOverlap | High | Security | ✔ | |
28 | SuboptimalCellOperation | Medium | Optimization | ✔ | |
29 | SuboptimalSend | Medium | Optimization | ✔ | |
30 | SuspiciousLoop | Medium | Security | ✔ | |
31 | SuspiciousMessageMode | Low—Medium | Security | ✔ | |
32 | TransitiveImport | Medium | Best Practices | ✔ | |
33 | UnboundLoop | High | Security | ✔ | ✔ |
34 | UnboundMap | Low | Security | ||
35 | UnprotectedCall | High | Security | ✔ | |
36 | UnusedExpressionResult | Medium | Security | ✔ | |
37 | UnusedOptional | Low | Optimization | ✔ | |
38 | ZeroAddress | Low | Security | ✔ |
Some of the detectors require Soufflé to be installed. If no Soufflé installation is found, these detectors won't be executed.
A few detectors are optional and aimed at auditors to help uncover subtle issues in the source code. To enable all detectors, use the --all-detectors
option. You can find a full list of configuration options on the configuration page.
Each detector targets a specific type of problem in your code. Click on the detector name to learn more.
Detector Severities and Categories
Severity Levels
Findings are classified according to their impact severity:
Severity | Description |
---|---|
Info | Informational findings that highlight potential improvements |
Low | Minor issues with limited impact |
Medium | Significant issues that should be addressed |
High | Serious vulnerabilities requiring immediate attention |
Critical | Severe vulnerabilities with catastrophic potential impact |
Categories
Findings are organized into the following categories:
Category | Description |
---|---|
Security | Any possible unintended behavior leading to bugs or vulnerabilities |
Optimization | Code improvements for gas-optimizations |
Best Practices | General code quality advices |