(Formerly Solium) Code quality & Security Linter for Solidity
MIT License
Bot releases are hidden (Show)
See CHANGELOG
See CHANGELOG
See CHANGELOG
See Changelog
See Changelog
See changelog
Published by duaraghav8 over 6 years ago
Solium v1.1.8 has seen significant contributions and inputs from the blockchain community.
Rules introduced:
error-reason
- Ensure that error message is provided for revert()
and require()
statementslinebreak-style
- Enforce consistent line break style across the codebase (either windows or unix).visibility-first
- Ensure that the visibility modifier for a function comes before any custom modifiersSee the docs for complete description of these rules.
Several UX improvements were introduced in the CLI. This includes better help messages, writing messages to the appropriate streams (stdout
or stderr
) and better formatting for the reporters.
The default .soliumignore
file now includes contracts/Migrations.sol
. Earlier, developers using Truffle had to manually add this entry.
4 new options have been introduced in the CLI:
--no-soliumrc
- Do not look for the .soliumrc.json
file at all.--no-soliumignore
- Do not look for the .soliumignore
file at all--rule
- Specify a rule apply. Example: solium --rule 'indentation: ["error", 4]' -d contracts/
--plugin
- Specify a plugin to apply. Example: solium --plugin security -f myContract.sol
See the user guide for the complete description of these options.
Solium v1.1.7 introduces 3 new lint rules:
no-constant
: Recommends replacing constant
modifier in function declarations with view
, since constant
will be deprecated starting solidity v0.5.0. This rule provides automatic fixing capability.value-in-payable
: Ensures that functions containing msg.value
are declared payable
.max-len
- Enforces an upper limit on the number of characters per line of code. Defaults to 145
, but is customisable via .soliumrc.json
.The rule pragma-on-top
can now fix experimental pragma statement positions.
Solium's parser and all rules (except for indentation
and lbrace
) now support the constructor()
declaration syntax. The rules that don't yet support this syntax don't produce any false positives. The CLI introduces the --debug
flag that can be used by developers to view stack traces for details about errors. Starting 1.1.7, Solium also displays the list of its backers on README.md.
This release saw significant contributions from @mushketyk & @elopio
v1.1.6
.emit
rule has been introduced that enforces triggering events using the emit keywordmixedcase
rule, thanks to @elopioerror
, i.e., has an exit code > 0 and hence, fails the build. It continues to lint other files and produces issues in them normally. See issue.solium:recommended
ruleset have been lowered from error
to warning
. Note that this is not a breaking change. A breaking change would be increasing severity from warning
to error
, which would cause build failures. See commit
\n
instead of \r\n
on windows). See issue.solium:recommended
core ruleset. The default .soliumrc.json
configuration generated by solium --init
now inherits rule severities from this set. It has been introduced because not all solium rules are applicable to the general audience, hence this is an improvement over extending solium:all
.blank-lines
rule now supports automatic code formatting.