Slither
(自Remix IDE v0.15.0和Remixd v0.5.0起支持)
Remixd 和 Slither
注意: 如果你以前没有使用过remixd
,请阅读更多关于它的信息 here
安装了 remixd NPM 模块后,它还会安装 Slither、 solc-select 和最新版本的 solc.
系统中需要已安装Python3.6+ (pip3)
。如果存在任何差异,可以使用命令 remixd -i slither
安装 Slither 以及其他依赖项。 (自 Remixd v0.6.3
起,通过 remixd 模块打包 Slither 将得到支持)
当在本地设备上运行remixd
时,一个额外的 websocket 插件将监听端口 65523,并专门用于 Slither 集成。(自 Remixd v0.5.0 起支持)
remixd 的 Slither 监听器是类似于 remixd 的 websocket 插件,用于在 Remix IDE 中执行 Slither 分析。
启用Slither分析
前提条件
要在Remix IDE中有效地使用Slither分析,必须在系统上本地安装以下工具:
** Slither:** https://github.com/crytic/slither#how-to-install
Solc: https://docs.soliditylang.org/en/latest/installing-solidity.html
Solc-select: https://github.com/crytic/solc-select#quickstart
可以通过remixd安装进行设置,也可以使用remixd -i slither
命令完成。
使用方式
如果项目通过remixd
共享,并且在Remix IDE中加载了localhost
工作区,则Solidity Static Analysis
插件中会显示一个额外的复选框,标签为Enable Slither Analysis
。
标签右侧有一个信息图标,可重定向到 Remix 官方文档的特定部分,该部分解释了如何使用 Slither 分析以及其预备知识。
可以勾选启用 Slither 分析
框来运行使用 Slither 和 Remix 的分析库进行分析。
Slither 分析的最新报告将存储在项目根目录下,并命名为 remix-slither-report.json
。
为了更好地让用户阅读,Remix IDE 侧边栏还会显示 Slither 分析报告和 Remix 分析报告。
编译结果将显示在 Remix IDE 终端中。
在 remixd 终端中也会显示编译结果。
仅运行Slither分析,请取消Select all
复选框并单击运行
。现在它将仅显示Slither分析报告。
默认情况下,Remix不会显示外部库(如remix-tests.sol、hardhat/console.sol等)的警告信息。要查看这些警告信息,请勾选标签为“显示外部库”的复选框。
更多详细信息
使用Solidity Compiler
插件在Remix IDE上设置的版本来运行Slither分析。 Slither是一个CLI工具,需要solc
才能运行分析。 在运行分析之前,Slither websocket插件会检查当前solc版本是否与Remix IDE中设置的版本相同。
如果Solidity Compiler中设置的编译器版本与本地安装的当前solc版本不同,则Slither websocket插件将更新solc以使其与所需版本的solc-select
相同。
例如,如果系统上当前的solc
版本为0.8.4,并且在Remix IDE上设置为0.8.6
,则 remixd
日志将解释远程solc版本选择。
成功分析运行后: