Skip to content

Releases: protofire/solhint

v6.0.3

20 Jan 14:29
7ad8f86

Choose a tag to compare

[6.0.3] - 2026-01-20

🛠️ Fix: removed unused files, normalized schema for validation, load-rules, base-checker and validator improvements

🛠️ Fix: removing console log from use-natspec rule (thanks brossetti1!!)

🛠️ Fix: misc minor issues and typos. General polish and stability


✨🛡️ Kudos to our contributors! 🛡️✨

v6.0.2

18 Dec 15:35
d6d0efb

Choose a tag to compare

Merge pull request #732 from protofire/develop

MERGE Develop into Master - v6.0.2

v6.0.1

22 Aug 03:29
53b7239

Choose a tag to compare

[6.0.1] - 2025-08-22

🛠️ Fix: no-unused-vars for modifiers

🛠️ Fix: no-unused-imports handled for multiline @inheritdoc. Eliminates missed detections with multiline inheritance docs

🛠️ Fix: func-name-mixedcase improvement, added snake case exception in interface (naming). Aligns interface naming edge cases

🛠️ Fix: misc minor issues; docs link and typos. General polish and stability


🧰 Infra: Update GitHub Actions in CI workflows. Keeps CI up to date and consistent across jobs

🧰 Infra: Ignore enhancement to mimic as regular linters


🧹 Chore: Remove fs-extra dependency. Simplifies deps

🧹 Chore: Remove strip-ansi. Cleans unused/legacy deps

🧹 Chore: Changed changelog format


🧱 Enhancement: added config for no-unused-vars to validate parameters or not


🧱 Validation: Improve AJV schema validation and related caching approach. More robust/faster config validation


✨🛡️ Kudos to our contributors! 🛡️✨

v6.0.0

04 Jul 19:30
85d66ef

Choose a tag to compare

[6.0.0] - 2025-07-04

BREAKING CHANGE

Some rules were removed from the recommended ruleset and other were promoted. See below:
Rules revision - #692

🟥 DEMOTED

  • payable-fallback: Outdated due to the introduction of receive(); rarely needed in modern Solidity.

✅ PROMOTED

  • interface-starts-with-i: Promotes clarity by clearly distinguishing interfaces from contracts.
  • gas-calldata-parameters: Encourages optimal memory usage for external functions.
  • gas-increment-by-one: Suggests using ++i style for gas-efficient increments.
  • gas-indexed-events: Improves event indexing for off-chain systems and reduces gas usage.
  • gas-small-strings: Recommends cheaper encoding using bytes32 for short strings.
  • gas-strict-inequalities: Helps avoid subtle off-by-one bugs in range conditions.
  • gas-struct-packing: Maximizes storage efficiency by suggesting tight struct packing.
  • duplicated-imports: Prevents redundant imports that bloat the AST and confuse code structure.
  • import-path-check: Ensures all imported files exist and resolve correctly, avoiding runtime errors.
  • function-max-lines: Encourages smaller, more readable and maintainable functions.
  • constructor-syntax: Enforces modern constructor syntax for consistency and clarity.
  • use-natspec: Promotes proper documentation with NatSpec for better audits and readability.

Fixed

  • gas-struct-packing false positives - #690
  • gas-increment-by-one backward expression - #691
  • Typo (thanks to @MarkFizz77)

Added

  • use-natspec: Promote the use of natspec and make several checks to enforce it - #689

v5.2.0

04 Jul 16:52
2fc8b33

Choose a tag to compare

[5.2.0] - 2025-06-27

Fixed

  • imports-order interference with no-unused-imports #684

Added

  • Added cache flag allowing to skip already evaluated files if no error was thrown and file did not change - #685
  • Added multi-directory config support by hierarchy - #678
  • Added better error handling on invalid configs - #683

Thanks to @smol-ninja - @PaulRBerg @lechpzn, @otc-png, @MamunC0der, @kks-code, @RidaMichofi

For making the time of proposing rules, pointing out typos, broken links, unused code, copyright, small reviews, etc. We really appreciate your contributions!



v5.1.0

05 May 20:12
233e423

Choose a tag to compare

[5.1.0] - 2025-05-05

Added

  • Argument to avoid discord poster - #646
  • Auto-fix for no-unused-import - #648 (Thanks to @DenisGorbachev)
  • New Rule: import-path-check - #657

Updated

  • yml and parser update - #668 (Thanks to @zeevick10)
  • cleanup deprecated code - #655
  • Improved ordering rule - #656

BREAKING CHANGE

  • Removed code for solhint:default ruleset - #654

Thanks to @fanqiaojun, @maximevtush, @MaxweLL22-22, @PixelPil0t1, @wgyt, @operagxsasha, @Hopium21, @leopardracer, @omahs, @zeevick10, @gap-editor, @Olexandr88, @jirutka

For making the time of pointing out typos, license update, broken links, unused code, copyright, small reviews, etc. We really appreciate your contributions!

v5.0.5

16 Jan 21:49
0a34c4d

Choose a tag to compare

[5.0.5] - 2025-01-16

Fixed

  • gas-custom-errors #620 - Support for Custom Errors inside require statements
  • compiler-version #621 - Upgraded minimum requirement for the rule
  • reentrancy #622 - Fixed path and typos
  • Typos #623 - Fixed typos
  • Typo #625 - Fixed typo

Added

  • New Rule: Duplicated Imports #626
  • Cute Message on console report to gather community into discord channel

v5.0.4

31 Dec 17:33
0c05a45

Choose a tag to compare

[5.0.4] - 2024-12-31

Fixed

  • imports-order #595 - Replaced single quotes with double quotes
  • gas-custom-errors #613 - Allows the use of Requirement with Custom Errors
  • Typos and broken links #611 - #617
  • Upgraded solidity-parser dependency #612

Added

  • .pre-commit-hooks.yaml to allow projects to run Solhint via pre-commit #596 (Thanks to @dbast)
  • Removed husky since it is not needed #612

v5.0.3

03 Aug 17:52
018c459

Choose a tag to compare

[5.0.3] - 2024-08-03

Fixed

  • New Rule: Imports order #593

v5.0.2

25 Jul 22:36
c4fa5c9

Choose a tag to compare

[5.0.2] - 2024-07-25

Fixed

Added

  • New Rule: Imports order #587