S
0

Solhint:用于检查 Solidity 代码的开源代码检查工具

Solhint 是面向 Solidity 的开源代码检查工具,可对智能合约源码执行安全性、代码风格和最佳实践相关规则检查,并支持项目配置、忽略文件、缓存、格式化报告及部分问题自动修复。

链接直达

Solhint:用于检查 Solidity 代码的开源代码检查工具

原站网页截图,页面可能随时间更新。

Solhint 面向使用 Solidity 编写智能合约的开发者,通过命令行分析源代码并输出检查结果。它既可用于单个文件,也可处理项目目录中的多个文件,还能结合配置文件、编辑器集成或提交前检查流程使用。

用途与适用场景

Solhint 的核心用途是检查 Solidity 代码,覆盖安全规则和风格指南规则,同时提供最佳实践规则。它适合在智能合约项目开发过程中发现代码问题、统一项目编码约定,并在提交代码前进行自动检查。对于需要批量检查 contracts 目录、单独检查某个合约文件,或希望把检查接入 pre-commit 流程的场景,都可以使用 Solhint。项目也提供官方 Docker 镜像,并支持多种编辑器或开发环境集成。

准备与上手

使用前需要准备 Node.js 的 npm 环境,并通过 npm 全局安装 Solhint。安装完成后,可以使用版本命令确认工具是否可用。项目首次配置时,可运行初始化命令生成 .solhint.json 文件,该文件会启用推荐规则。随后把一个或多个文件路径或 Glob 表达式交给 Solhint,即可检查单个 Solidity 文件或目录中的文件。直接运行不带参数的命令,可以查看命令行帮助信息。

配置项目规则

Solhint 使用 .solhint.json 配置检查行为。配置可以继承 solhint:recommended 规则集,也可以分别设置规则等级,例如将某项规则设为 error 或 warn。项目可以在不同目录放置同名配置文件,越接近被分析文件的配置优先级越高;未被覆盖的根目录规则仍可继续生效。还可以通过 .solhintignore 排除文件,语法与 .gitignore 相同,并支持否定规则。对于特定代码行或代码区域,也能使用源代码注释临时关闭全部检查或指定规则。

主要功能与输出

Solhint 支持多种报告格式,包括 stylish、table、tap、unix、json、compact 和 sarif,也可以限制允许出现的警告数量,或使用 quiet 模式仅报告错误。检查结果能够保存到当前目录的带时间戳报告文件中。工具提供 --fix 选项,可自动修复部分已支持的问题,例如部分命名、引号、控制台调用及旧式写法相关规则。启用缓存后,未发生内容或有效配置变化的文件可以跳过重复分析,并可通过参数指定缓存位置。Solhint 还支持从标准输入读取代码、列出当前配置覆盖的规则,以及加载插件和自定义插件路径。

可确认的限制

自动修复并不覆盖所有检查规则,目前只对官网列出的部分规则生效,因此其他问题仍需根据报告手动处理。缓存依赖文件内容和有效配置的哈希;如果配置新增规则而文件本身未变化,相关文件可能不会重新分析,需要移除缓存选项后再检查。插件加载失败时,Solhint 会发出警告并继续使用核心规则及其他有效插件。官网还标注 solhint:default 配置自 5.1.0 起已弃用,新的配置应优先考虑推荐规则集。

Solhint 可以只检查一个 Solidity 文件吗?

可以。将该文件路径作为命令参数传入即可进行单文件检查。

是否可以忽略项目中的部分文件?

可以。默认使用 .solhintignore,也可以通过 --ignore-path 指定其他忽略文件,并使用与 .gitignore 相同的语法。


访问软件官网 · 查看资料来源

相关推荐

N

Neovim 是一款基于 Vim 的文本编辑器,强调可扩展性、易用性和跨环境使用。它支持 Lua 插件、Vimscript、LSP、Tree-sitter、终端,以及通过 RPC 连接的图形界面和其他扩展。

D

DBeaver Community 是一款免费、开源的通用数据库管理工具,适合个人项目。它支持连接和探索 MySQL、MariaDB、PostgreSQL、SQLite、SQL Server、Apache 家族等关系型数据库,并提供数据编辑、SQL 编辑、元数据管理、任务管理和数据库维护工具。

w

watchexec 是一个命令行工具,用于监视当前目录中的文件变化,并在变化发生时执行指定命令。它适合自动启动构建流程、重启开发服务器、检测活动,减少反复手动按回车执行命令的操作。

T

Tracely-ai 将 AI Agent 的生产追踪、质量评估、故障聚类和回归测试连接起来。它可以接收 Agent trace,对对话、运行或单个 span 进行评估,将失败运行冻结为可重放测试,并在 Pull Request 中发现回归时阻止合并。

s

simutil 是面向移动开发和测试的设备工具集,提供桌面应用、TUI 与 CLI。它可启动、关闭、连接、投屏、控制、录制安卓和苹果设备,并支持批量场景执行、日志查看、插件扩展及脚本自动化。

评论

暂无评论,来抢沙发~