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 |