Skip to main content
Version: 0.8

Detectors Overview

Built-in Detectors​

#DetectorSeverityCategoryRequires SouffléEnabled by default
1ArgCopyMutationHighSecurity✔
2AsmIsUsedInfoSecurity
3BranchDuplicateHighSecurity✔
4CellBoundsCriticalSecurity✔
5ConstantAddressInfoSecurity
6DivideBeforeMultiplyHighSecurity✔✔
7DumpIsUsedInfoSecurity
8DuplicatedConditionHighSecurity✔
9EnsurePrgSeedMediumSecurity✔
10EtaLikeSimplificationsLowOptimization✔
11ExitCodeUsageHighSecurity✔
12FalseConditionMediumSecurity✔
13FieldDoubleInitMediumOptimization✔
14ImplicitOpcodeInfoBest Practices
15InheritedStateMutationLowBest Practices
16NeverAccessedVariablesMediumSecurity✔
17OptimalMathFunctionLowOptimization✔
18PreferAugmentedAssignInfoBest Practices
19PreferBinaryReceiverLowOptimization✔
20PreferSenderFunctionLowOptimization✔
21PreferredStdlibApiInfo—LowOptimization, Security✔
22ReadOnlyVariablesMediumSecurity✔✔
23SendInLoopMediumSecurity
24ShortCircuitConditionLowOptimization✔
25StateMutationInGetterInfoSecurity
26StringReceiversOverlapHighSecurity✔
27SuboptimalCellOperationMediumOptimization✔
28SuboptimalSendMediumOptimization✔
29SuspiciousLoopMediumSecurity✔
30SuspiciousMessageModeLow—MediumSecurity✔
31UnboundLoopHighSecurity✔✔
32UnboundMapLowSecurity
33UnprotectedCallHighSecurity✔
34UnusedExpressionResultMediumSecurity✔
35UnusedOptionalLowOptimization✔
36ZeroAddressLowSecurity✔

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:

SeverityDescription
InfoInformational findings that highlight potential improvements
LowMinor issues with limited impact
MediumSignificant issues that should be addressed
HighSerious vulnerabilities requiring immediate attention
CriticalSevere vulnerabilities with catastrophic potential impact

Categories​

Findings are organized into the following categories:

CategoryDescription
SecurityAny possible unintended behavior leading to bugs or vulnerabilities
OptimizationCode improvements for gas-optimizations
Best PracticesGeneral code quality advices