Slither

(自Remix IDE v0.15.0和Remixd v0.5.0起支持)

Remixd 和 Slither

注意: 如果你以前没有使用过remixd,请阅读更多关于它的信息 here

安装了 remixd NPM 模块后,它还会安装 Slithersolc-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分析,必须在系统上本地安装以下工具:

  1. 颤音: https://github.com/crytic/slither#how-to-install

  2. Solc: https://docs.soliditylang.org/en/latest/installing-solidity.html

  3. 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复选框并单击Run。现在它将仅显示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版本选择。

成功分析运行后: