Socket
Socket
Sign inDemoInstall

solhint

Package Overview
Dependencies
Maintainers
1
Versions
85
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

solhint

Solidity Code Linter


Version published
Weekly downloads
75K
increased by5.96%
Maintainers
1
Weekly downloads
 
Created

Readme

Source

Solhint Project

Build Status

npm version

Coverage Status

This is an open source project for linting solidity code. This project provide both security and style guide validations.

Installation

For install project you need to execute next commands

npm install -g solhint
solhint -V

Usage

Usage: solhint [options] <file> [...other_files]

Linter for Solidity programming language


Options:

  -V, --version           output the version number
  -f, --formatter [name]  Report formatter name
  -h, --help              output usage information


Commands:

  stdin [options] 
  init-config     

Configuration

Configuration file has next format:

  {
    "extends": "default",
    "rules": {
      "avoid-throw": false,
      "avoid-suicide": "error",
      "avoid-sha3": "warn",
      "indent": ["warn", 4]
    }
  }

Configure linter with comments

Disable validation on next line

  // solhint-disable-next-line
  uint[] a;

Disable validation of fixed compiler version validation on next line

  // solhint-disable-next-line compiler-fixed, compiler-gt-0_4
  pragma solidity ^0.4.4; 

Disable validation on current line

  pragma solidity ^0.4.4; // solhint-disable-line

Disable validation of fixed compiler version validation on current line

  pragma solidity ^0.4.4; // solhint-disable-line compiler-fixed, compiler-gt-0_4

Disable linter rules for code fragment

  /* solhint-disable avoid-throw */
  if (a > 1) {
    throw;
  }
  /* solhint-enable avoid-throw */

Disable all linter rules for code fragment

  /* solhint-disable */
  if (a > 1) {
    throw;
  }
  /* solhint-enable */

Security Error Codes:

Rule IDError
avoid-sha3Use "keccak256" instead of deprecated "sha3"
avoid-suicideUse "selfdestruct" instead of deprecated "suicide"
avoid-throw"throw" is deprecated, avoid to use it
func-visibilityExplicitly mark visibility in function
state-visibilityExplicitly mark visibility of state
check-send-resultCheck result of "send" call
avoid-call-valueAvoid to use ".call.value()()"
compiler-fixedCompiler version must be fixed
compiler-gt-0_4Use at least '0.4' compiler version
no-complex-fallbackFallback function must be simple
mark-callable-contractsExplicitly mark all external contracts as trusted or untrusted
multiple-sendsAvoid multiple calls of "send" method in single transaction
no-simple-event-func-nameEvent and function names must be different

Style Guide Codes:

Rule IDError
func-name-mixedcaseFunction name must be in camelCase
func-param-name-mixedcaseFunction param name must be in mixedCase
var-name-mixedcaseVariable name must be in mixedCase
event-name-camelcaseEvent name must be in CamelCase
const-name-snakecaseConstant name must be in SNAKE_CASE
modifier-name-mixedcaseModifier name must be in mixedCase
contract-name-camelcaseContract name must be in CamelCase
use-forbidden-nameAvoid to use letters 'I', 'l', 'O' as identifiers
visibility-modifier-orderVisibility modifier must be first in list of modifiers
imports-on-topImport statements must be on top
two-lines-top-level-separatorDefinition must be surrounded with two blank line indent
func-orderFunction order is incorrect
quotesUse double quotes for string literals
no-mix-tabs-and-spacesMixed tabs and spaces
indentIndentation is incorrect
bracket-alignOpen bracket must be on same line. It must be indented by other constructions by space
array-declaration-spacesArray declaration must not contains spaces
separate-by-one-line-in-contractDefinitions inside contract / library must be separated by one line
expression-indentExpression indentation is incorrect.
statement-indentStatement indentation is incorrect.
max-line-lengthLine length must be no more than 120 but current length is 121.

Documentation

Related documentation you may find there.

Licence

MIT

Keywords

FAQs

Package last updated on 25 Sep 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc