Ethlint

(Formerly Solium) Code quality & Security Linter for Solidity

MIT License

Downloads
10K
Stars
920
Committers
25

Bot releases are hidden (Show)

Ethlint - Latest Release

Published by duaraghav8 about 5 years ago

See CHANGELOG

Ethlint -

Published by duaraghav8 over 5 years ago

See CHANGELOG

Ethlint -

Published by duaraghav8 over 5 years ago

See CHANGELOG

Ethlint -

Published by duaraghav8 almost 6 years ago

See Changelog

Ethlint -

Published by duaraghav8 almost 6 years ago

See Changelog

Ethlint -

Published by duaraghav8 almost 6 years ago

See changelog

Ethlint - v1.1.8

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() statements
  • linebreak-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 modifiers

See 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.

Ethlint -

Published by duaraghav8 over 6 years ago

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

Ethlint -

Published by duaraghav8 over 6 years ago

  • A massive performance improvement has been introduced in Solium's dependency parser with this release. For comparison, it now takes 2 seconds to lint Augur's core contracts vs ~9 seconds prior to v1.1.6.
  • The emit rule has been introduced that enforces triggering events using the emit keyword
  • A major bug was fixed in the mixedcase rule, thanks to @elopio
  • Solium CLI option descriptions and some rules' messages were improved.
Ethlint -

Published by duaraghav8 over 6 years ago

  • Starting v1.1.5, Solium no longer crashes altogether if there are parsing issues in a subset of solidity files. Instead, it reports Syntax error, 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.
  • Default severities of all whitespace rules in 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
  • Solium is now fully compatible with windows environment. It produces the same results on linux, osx and windows given the same code and configuration. Note that a few tests currently fail on windows, but that doesn't affect functionality. The failures are merely due to how solidity code has been written in solium's test suite (as multi-line template strings, which treat line break as \n instead of \r\n on windows). See issue.
  • This release contains various bug fixes for Solium's solidity parser.
Ethlint -

Published by duaraghav8 over 6 years ago

  • Introduced the 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.
  • The blank-lines rule now supports automatic code formatting.
  • Partially fixed the problem of false positives on Windows environment due to different character representation of line-break.
  • More coverage and bug fixes for several rules and modules utility methods.
  • Shiny new logo!
Ethlint -

Published by duaraghav8 almost 7 years ago

  • Update dependancies:
    1. solparse (bugfixes)
    2. solium-plugin-security (Augur Bounty Rules)
  • Bugfixes in lbrace rule
  • Autofix function for imports-on-top rule
  • Improved Error messages