Rule Description KPI
imports-on-top Ensure that all import statements are on top of the file Understandability
variable-declarations Ensure that names “l”, “O” & “I” are not used for variables Understandability
array-declarations Ensure that array declarations do not have space between the type and brackets style
operator-whitespace Ensure that operators are surrounded by a single space on either side style
conditionals-whitespace Ensure that there is exactly one space between conditional operators and parenthetic blocks style
comma-whitespace Ensure that there is no whitespace or comments between comma delimited elements and commas style
semicolon-whitespace Ensure that there is no whitespace or comments before semicolons style
function-whitespace Ensure function calls and declaration have (or do not have) whitespace in appropriate locations style
lbrace Ensure that every if, for, while and do statement is followed by an opening curly brace “{“on the same line style
mixedcase Ensure that all variable, function and parameter names follow the mixedCase naming convention Understandability
camelcase Ensure that contract, library, modifier and struct names follow CamelCase notation Understandability
uppercase Ensure that all constants (and only constants) contain only upper case letters and underscore Understandability
no-empty-blocks Ensure that no empty blocks {} exist Understandability
no-unused-vars Flag all the variables that were declared but never used Understandability
quotes Ensure that all strings use only 1 style – either double quotes or single quotes style
blank-lines Ensure that there is exactly a 2-line gap between Contract and Funtion declarations style
indentation Ensure consistent indentation of 4 spaces per level style
arg-overflow In the case of 4+ elements in the same line require they are instead put on a single line each style
whitespace Specify where whitespace is suitable and where it is not stylfy
function-order Ensure order of functions in a contract: constructor, fallback, external, public, internal, private Understandability
emit Ensure that emit statement is used to trigger a solidity event style
value-in-payable Ensure “msg.value” is only used in functions with the “payable” modifier Accuracy
max-len Ensure that a line of code does not exceed the specified number of characters style
error-reason Ensure that error message is provided for revert and require statements Understandability
visibility-first Ensure that the visibility modifier for a function should come before any custom modifiers Understandability
linebreak-style Ensure consistent linebreak style style