Releases: protofire/solhint
v5.0.1
[5.0.1] - 2024-05-13
BREAKING CHANGES (refer to v5.0.0)
Fixed an issue on the returining values where only was evaluating the first report instead of all of them.
v5.0.0
[5.0.0] - 2024-05-11
BREAKING CHANGES
Solhint EXIT codes
Solhint changed how the exit codes are implemented:
Exit with 0 code When execution was ok and there were no errors when evaluating the code according to the rules
Exit with 1 code When execution was ok and there are errors reported
Exit with 1 code When execution was ok and max warnings is lower than the reported warnings
Exit with 255 code When there's an error in the execution (bad config, writing not allowed, wrong parameter, file not found, etc)
Solhint QUIET mode
QUIET mode (-c quiet) option now works with the warnings and may exit with 1 if there are more than defined by user
Thanks to @juanpcapurro for providing the code
v4.5.4
v4.5.0
Updated
- Update dependencies in package json #548
- Custom errors rules checks from 0.8.4 forward before warning #555
- Parser support up to Solidity 0.8.22 (*)
(*) Note: Solhint can work with latest Solidity versions.
If new grammar/syntax is added or changed, it could give some false positives or miss a rule.
But overall functionality will work as expected.
Added
- New Rule: Interface starts with
i#557
Gas Consumption Rules
- New Rule: [GC] Mutlitoken1155 rule #541
- New Rule: [GC] Small strings check #542
- New Rule: [GC] Indexed events #543
- New Rule: [GC] Calldata parameters #544
- New Rule: [GC] Increment by one #545
- New Rule: [GC] Struct packing #546
- New Rule: [GC] Name Return Values #552
- New Rule: [GC] Custom Errors #553 #555
- New Rule: [GC] Dot Length in Loops #559
- New Rule: [GC] Gas Strict Inequalities #560
Fixed
BREAKING CHANGES
named-return-valuesrule was renamed to gas-named-return-values and now it is part of Gas Consumption ruleset #552custom-errorsrule was renamed to gas-custom-errors and now it is part of Gas Consumption ruleset #553- Return error 0 when executed correctly #554
- Default severity modified to
WARNinstead ofOFFfor
foundry-test-functionsandnamed-parameters-mappingrules #556
v4.5.2
[4.5.2] - 2024-03-15
Updated
- Update Readme file to include all autofix rules
- Update docker file
- Update package json file
[4.5.0] - 2024-03-15
Updated
- Update dependencies in package json #548
- Custom errors rules checks from 0.8.4 forward before warning #555
- Parser support up to Solidity 0.8.22 (*)
(*) Note: Solhint can work with latest Solidity versions.
If new grammar/syntax is added or changed, it could give some false positives or miss a rule.
But overall functionality will work as expected.
Added
- New Rule: Interface starts with
i#557
Gas Consumption Rules
- New Rule: [GC] Mutlitoken1155 rule #541
- New Rule: [GC] Small strings check #542
- New Rule: [GC] Indexed events #543
- New Rule: [GC] Calldata parameters #544
- New Rule: [GC] Increment by one #545
- New Rule: [GC] Struct packing #546
- New Rule: [GC] Name Return Values #552
- New Rule: [GC] Custom Errors #553 #555
- New Rule: [GC] Dot Length in Loops #559
- New Rule: [GC] Gas Strict Inequalities #560
Fixed
BREAKING CHANGES
named-return-valuesrule was renamed to gas-named-return-values and now it is part of Gas Consumption ruleset #552custom-errorsrule was renamed to gas-custom-errors and now it is part of Gas Consumption ruleset #553- Return error 0 when executed correctly #554
- Default severity modified to
WARNinstead ofOFFfor
foundry-test-functionsandnamed-parameters-mappingrules #556
v4.1.1
[4.1.1] - 2024-01-08
Fixed
- Fix changelog typos
[4.1.0] - 2024-01-08
Updated
Added
- Official Docker Image #524 (Thanks to @keypee)
- Autofix for
payable-fallbackrule #528 - Autofix for
quotesrule #529 - Autofix for
avoid-suiciderule #531 - Autofix for
contract-name-camelcaserule #532 - Autofix for
event-name-camelcaserule #533
Fixed
- Fix private vars leading underscore on libraries #525
v4.0.0
JOIN OUR DISCORD SERVER: HERE
[4.0] - 2023-10-01
Updated
- Enhance explicit types sensitivity #493 (Thanks to @vladyan18)
- Docs on
private-vars-leading-underscorerule to clarify its functionality - Changelog and docs for
no-empty-blocksrule to clarify its functionality - Require package with full path #515 (Thanks to @zouguangxian)
Added
- Check for updates on Solhint version to keep users up to date. There's an option to disable this check (
--disc) #506 fixoption now shows the report on screen #509saveoption to store report on disk with the standard or the specified format #509- Autofix for
explicit-typesrule #504 - Autofix for
no-consolerule #513 - Autofix for
private-vars-leading-underscorerule #511
Fixed
- Generate docs script on Windows OS #494 (Thanks to @vladyan18)
one-contract-per-fileignore interfaces #514 (Thanks to @cruzdanilo)
v3.6.2
[3.6.2] - 2023-08-17
Added
- New Rule:
one-contract-per-file- Enforces the use of ONE contract per file #487
Fixed
v3.6.1
[3.6.1] - 2023-08-11
BREAKING CHANGE
- RULE:
not-rely-on-timewas REMOVED from RECOMMENDED ruleset
This was long overdue.
Beware!! If you are relying on this rule and it is not explicitly configured (meaning there's onlysolhint:recommendedoption).
You should add this rule manually:
{
"extends": "solhint:recommended",
"rules": {
"not-rely-on-time": "warn",
"compiler-version": "off"
},
}If not explicitly added, this rule will not be executed.
SPECIAL ATTENTION
- RULE:
compiler-versiondefault was updated from ^0.5.2 to ^0.8.0
Added
- New Rule: Enforces the use of Custom Errors over Require and Revert statements #475
- New Rule: Enforces the test_ prefix on a file for Foundry users #476
- New Rule: Enforces the naming of function return values #478
Notesoption on docs to add more information of each rule. Seefoundry-test-functions. #476
Fixed
func-named-parameters- false positives on builtin functions #472ordering- treat initializer weight same as constructor #474check-send-result- false positive on `erc777.send()`` function #477explicit-types- default value is now taking into account when no value is specified in config #481compiler-version- default value is now taking into account when no value is specified in config #483
Updates
- Rule:
check-send-resultadded config clarification in the newNotessection #482 - Rule:
compiler-versiondefault was updated from ^0.5.2 to ^0.8.0 #483
Full Changelog: 3.5.1...3.6.1
v3.5.1
[3.5.1] - 2023-08-04
Updated
- Support
ignoreConstructorsoption forno-empty-blocks#418 - Bump json5 from 2.1.3 to 2.2.3 #376
- Bump json-schema and jsprim #370
- Bump semver from 6.3.0 to 7.5.2 #438
- Corrected "Category" of
quotesrule, added default rules list on readme #443 - 'Deprecated' column on `rules.md`` #444
- Information about maxCharacters allowed on
reason-stringrule #446 - E2E tests for
max-warnings#455 - Replaced blacklist and whitelist words #459
- Removed runtime dependencies on load-rules #462
- Allowed $ symbol as part of naming #465
- Disabled
no-empty-blocksrule for receive() function #466
Added
- New Rule: No unused imports #417
- New Rule: To treat immutable as constants #458
- New Rule: Explicit-types. To forbid/enforce full type or alias for variables declaration #467
- New Rule: Naming of Function parameters. Enforce arguments naming #468
- JSON formatter support #440
- Rules List with
list-rulescommand #449 - E2E tests for formatters and new
Compact formatter#457