Skip to main content
Version: 0.9

Detectors Overview

Built-in Detectors​

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

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