Solium analyzes your Solidity code for style & security issues and fixes them.
Standardize Smart Contract practices across your organisation. Integrate with your build system. Deploy with confidence!
npm install -g solium
solium -VIn the root directory of your DApp:
solium --initThis creates 2 files for you:
.soliumignore- contains names of files and directories to ignore while linting.soliumrc.json- contains configuration that tells Solium how to lint your project. You should modify this file to configure rules, plugins and sharable configs.
.soliumrc.json looks like:
{
"extends": "solium:recommended",
"plugins": ["security"],
"rules": {
"quotes": ["error", "double"],
"indentation": ["error", 4]
}
}To know which lint rules Solium applies for you, see Core rules and Security rules
solium -f foobar.sol
solium -d contracts/Comment Directives can be used to configure Solium to ignore specific pieces of code.
They follow the pattern solium-disable<optional suffix>.
If you only use the directive, Solium disables all rules for the marked code. If that's not desirable, specify the rules to disable after the directive, separated by comma.
- Disable linting on a specific line
contract Foo {
/* solium-disable-next-line */
function() {
var bar = 'Hello world'; // solium-disable-line quotes
// solium-disable-next-line security/no-throw, indentation
throw;
}
}
- Disable linting on entire file
/* solium-disable */
contract Foo {
...
}
Solium automatically fixes your code to resolve whatever issues it can.
solium -d contracts --fix