{"id":13392658,"url":"https://github.com/duaraghav8/Ethlint","last_synced_at":"2025-03-13T18:31:53.162Z","repository":{"id":37692376,"uuid":"65023439","full_name":"duaraghav8/Ethlint","owner":"duaraghav8","description":"(Formerly Solium) Code quality \u0026 Security Linter for Solidity","archived":false,"fork":false,"pushed_at":"2023-04-17T09:42:36.000Z","size":1730,"stargazers_count":926,"open_issues_count":74,"forks_count":128,"subscribers_count":23,"default_branch":"master","last_synced_at":"2024-10-29T15:18:51.040Z","etag":null,"topics":["ethereum","lint","security","smart-contracts","solidity"],"latest_commit_sha":null,"homepage":"https://ethlint.readthedocs.io/en/latest/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/duaraghav8.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-08-05T14:07:13.000Z","updated_at":"2024-09-29T08:05:23.000Z","dependencies_parsed_at":"2023-09-29T08:52:12.588Z","dependency_job_id":null,"html_url":"https://github.com/duaraghav8/Ethlint","commit_stats":{"total_commits":743,"total_committers":27,"mean_commits":27.51851851851852,"dds":0.1063257065948856,"last_synced_commit":"1b5018b595cdd2bdb93527171d4168465f1416bd"},"previous_names":["duaraghav8/solium"],"tags_count":14,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duaraghav8%2FEthlint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duaraghav8%2FEthlint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duaraghav8%2FEthlint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duaraghav8%2FEthlint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/duaraghav8","download_url":"https://codeload.github.com/duaraghav8/Ethlint/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243459121,"owners_count":20294342,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ethereum","lint","security","smart-contracts","solidity"],"created_at":"2024-07-30T17:00:32.555Z","updated_at":"2025-03-13T18:31:53.137Z","avatar_url":"https://github.com/duaraghav8.png","language":"JavaScript","funding_links":[],"categories":["Utilities","Tools","JavaScript","dApps directory","Roadmap"],"sub_categories":["Audits","Static Analysis Tools"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./art/Solium.png\"\u003e\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n[![Build Status](https://travis-ci.org/duaraghav8/Ethlint.svg?branch=master)](https://travis-ci.org/duaraghav8/Ethlint)\n[![Gitter chat](https://badges.gitter.im/gitterHQ/gitter.svg)](https://gitter.im/Solium-linter/Lobby)\n\nEthlint (Formerly Solium) analyzes your Solidity code for style \u0026 security issues and fixes them.\n\nSee [Documentation](https://ethlint.readthedocs.io/), [Changelog](./CHANGELOG.md) and [upcoming releases](https://github.com/duaraghav8/Ethlint/projects).\n\nBefore beginning to work on a contribution, please read the [Guidelines](./CONTRIBUTING.md).\n\n## Install\n```bash\nnpm install -g ethlint\nsolium -V\n```\n\nFor backward-compatibility, you can still use `npm install -g solium`.\n\nIf you're currently using the `solium` package for `npm install`, it is highly recommended that you move to `ethlint`. The `solium` package will not receive updates after December, 2019. There are no differences between the updates pushed to `ethlint` and `solium` packages.\n\n## Usage\nIn the root directory of your DApp, run:\n```bash\nsolium --init\n```\n\nThis creates 2 files for you:\n- `.soliumignore` - contains names of files and directories to ignore while linting\n- `.soliumrc.json` - contains configuration that tells Solium how to lint your project. You should modify this file to configure rules, plugins and sharable configs.\n\n`.soliumrc.json` looks like:\n\n```json\n{\n  \"extends\": \"solium:recommended\",\n  \"plugins\": [\"security\"],\n  \"rules\": {\n    \"quotes\": [\"error\", \"double\"],\n    \"indentation\": [\"error\", 4],\n    \"linebreak-style\": [\"error\", \"unix\"]\n  }\n}\n```\n\nTo know which lint rules Solium applies for you, see [Style rules](http://ethlint.readthedocs.io/en/latest/user-guide.html#list-of-style-rules) and [Security rules](https://www.npmjs.com/package/solium-plugin-security#list-of-rules).\n\n---\n**NOTE**\n\nSolium does **not** strictly adhere to Solidity [Style Guide](http://solidity.readthedocs.io/en/latest/style-guide.html). It aims to promote coding practices agreed upon by the community at large.\n\n---\n\n### Lint\n```bash\nsolium -f foobar.sol\nsolium -d contracts/\n```\n\n### Configure with comments\n**Comment Directives** can be used to configure Solium to ignore specific pieces of code.\nThey follow the pattern `solium-disable\u003coptional suffix\u003e`.\n\nIf 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.\n\n- Disable linting on a specific line\n```\ncontract Foo {\n\t/* solium-disable-next-line */\n\tfunction() {\n\t\tbytes32 bar = 'Hello world';\t// solium-disable-line quotes\n\n\t\t// solium-disable-next-line security/no-throw, indentation\n\t\t\t\t\t\tthrow;\n\t}\n}\n```\n\n- Disable linting on entire file\n\n```\n/* solium-disable */\n\ncontract Foo {\n\t...\n}\n```\n\n### Fix\nSolium automatically fixes your code to resolve whatever issues it can.\n```bash\nsolium -d contracts/ --fix\n```\n\n## Our supporters\n\u003cp align=\"left\"\u003e\n  \u003ca href=\"https://blog.ethereum.org/2018/03/07/announcing-beneficiaries-ethereum-foundation-grants/\"\u003e\n    \u003cimg src=\"./art/ethereum-logo.png\" width=\"100\" alt=\"Ethereum\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://medium.com/@AugurProject/announcing-the-augur-bounty-program-bf11b1e1b7cf\"\u003e\n    \u003cimg src=\"./art/augur.png\" width=\"70\" alt=\"Augur\"\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\u0026nbsp;\n  \u003ca href=\"https://gitcoin.co/universe?sort=None\u0026direction=-\u0026page=1\u0026q=solium\"\u003e\n    \u003cimg src=\"./art/gitcoin.png\" width=\"80\" alt=\"Gitcoin\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nIf Ethlint helped make your life simpler, please consider donating ETH to `0xacc661A56af9793a4437876a52F4Ad3fc3C443d6`\n\n#### [IDE and Editor Integrations](http://solium.readthedocs.io/en/latest/user-guide.html#index-9) | [Documentation](https://ethlint.readthedocs.io) | [Demo Video](https://www.youtube.com/watch?v=MlQ6fzwixpI)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduaraghav8%2FEthlint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduaraghav8%2FEthlint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduaraghav8%2FEthlint/lists"}