Protofire’s Contribution: Elevating Solhint as a Vital Solidity Linter

Protofire.io
Protofire Blog
Published in
3 min readJun 20, 2023

Introduction: Solhint and Protofire’s Collaboration in Solidity Development

Solhint, an indispensable Solidity linter, owes its existence to the collaborative efforts of Protofire and the Ethereum community. This powerful tool has played a crucial role in assisting Solidity developers by ensuring the creation of standardized and high-quality smart contract code. With its ability to enhance code quality, maintain order, improve readability, enforce style guides, prevent known bugs, and provide security alerts, Solhint has garnered significant popularity within the Ethereum community. Moreover, as an open-source project, Solhint encourages contributions from developers worldwide, fostering a collaborative environment dedicated to its continuous development and improvement. The Solhint repository, hosted on GitHub, serves as a central hub for community engagement and participation.

Revitalizing Solhint’s Maintenance

Acknowledging the pressing need for active maintenance, Protofire secured a grant from the Ethereum Foundation in December 2022, presenting a valuable opportunity for Protofire to revitalize Solhint and address numerous user requests for updates and bug fixes. With their dedicated team at the helm, Protofire successfully closed 42 issues and merged 28 pull requests, comprehensively rectifying a multitude of existing problems. For a detailed breakdown of these updates, readers can consult the CHANGELOG.md file within the Solhint repository. For a comprehensive report detailing the work completed, interested readers can refer to the following document: FINAL Report.

New Rules and Enhanced Support: Strengthening Solhint’s Functionality

Among the myriad fixes and improvements implemented by Protofire, three new rules were added to enhance Solhint’s capabilities further. These additions included an alert for console.log leftovers, an alert for non-specific imports (global imports), and support for named parameters in mappings — a feature introduced in Solidity version 0.8.18. Additionally, Protofire ensured that the project’s parser — integral to Solhint’s functionality — remained up-to-date, supporting the latest Solidity version available at the time.

Dependencies and Synchronization: Supporting Solidity Updates

It is crucial to note that Solhint depends on two additional repositories, which are not directly developed by Protofire but must remain in sync with the latest Solidity updates. These repositories include the PARSER repository (https://github.com/solidity-parser/parser) and the ANTLR repository (https://github.com/solidity-parser/antlr).

Phase 2: Protofire’s Commitment to Continuous Improvement

Embarking on Phase 2 of the project, Protofire remains committed to continuously closing issues and improving the codebase to provide the Solidity community with an exceptional tool. Given that Solidity, as a programming language, is constantly evolving and undergoing frequent updates, Protofire faces the ongoing challenge of keeping Solhint relevant and up-to-date. To tackle this challenge effectively, Protofire is devising a continuous support methodology and funding strategy. This enables them to keep pace with new Solidity versions and provide comprehensive support to users who continually open new issues and submit pull requests for further enhancements.

Join Solhint and Shape the Future of Solidity Development

To experience the power of Solhint firsthand and become an active participant in its development, interested developers are encouraged to try Solhint and contribute to its growth. By doing so, they can play a vital role in shaping the future of Solidity development and ensuring the continued success of the Ethereum ecosystem.

--

--

Protofire.io
Protofire Blog

We help token-based startups with protocol & smart contract engineering, high-performance trusted data feeds (oracles), and awesome developer tools (SDKs/APIs).