v0.4.6
Added
New Detectors
Low
constant-decimals- prefer constants for decimals
NC (Non-Critical)
abstract-in-separate-file- abstract contracts should be in separate filesarray-ranged-getter- use ranged getter for array accessbool-init-false- unnecessary boolean initialization to falsenc-combine-mappings- mappings with same key can be combined into structcomplex-require- complex require statements should be simplifiedconstant-expression- expressions that could be constantsconstructor-emit-event- constructors should emit eventsdelete-instead-of-false- use delete instead of setting to falsedelete-instead-of-zero- use delete instead of setting to zeroduplicate-string-literal- duplicate string literals in codeempty-blocks- empty code blockserror-definition-no-args- error definitions without argumentsexternal-call-in-modifier- external calls in modifiersfloating-pragma- floating pragma versioninitialism-capitalization- incorrect capitalization of initialisms (URL, ID)initializer-emit-event- initializers should emit eventsinterfaces-contracts-same-file- interfaces and contracts in same filelibrary-in-separate-file- libraries should be in separate filesmany-function-params- functions with too many parametersmany-return-values- functions with too many return valuesmixed-int-uint-style- mixed int/uint and int256/uint256 stylemultiple-abstract-contracts- multiple abstract contracts in one filemultiple-contracts- multiple contracts in one filemultiple-interfaces- multiple interfaces in one filemultiple-libraries- multiple libraries in one filenamed-function-args- use named function arguments for claritynamed-returns- use named returns for clarityprefer-custom-errors- use custom errors instead of require/assertunnamed-revert- revert without custom error identifierunused-private-function- unused private functionszero-argument- literal zero as function argument