如何使用Truffle生成solc标准JSON输入文件?
Truffle 生成标准JSON输入文件解决方案
- 首先确保你使用的Truffle版本≥v5.2.0,该版本开始原生支持导出标准JSON输入格式,不需要额外安装第三方插件。
- 在你的Truffle项目根目录下,打开truffle-config.js配置文件,找到compilers配置项,新增如下配置:
compilers: { solc: { version: "0.8.17", // 替换为你实际使用的solc版本 settings: { outputSelection: { "*": { "*": ["*"] } }, // 新增下方配置开启标准JSON输入导出 metadata: { useLiteralContent: true } } } }
- 执行合约编译命令
truffle compile,编译完成后进入项目的build/contracts/目录,找到对应你要验证的合约的JSON文件。 - 打开该合约JSON文件,找到其中的
metadata字段,将该字段的内容完整复制出来,使用JSON解析工具提取其中的sources字段和settings字段,组合起来就是符合Etherscan等平台要求的标准JSON输入文件。 - 你也可以直接使用Truffle内置的导出命令,执行
truffle run verify <合约名> --network <对应网络> --export-standard-json,执行完成后会直接在项目根目录生成对应合约的标准JSON输入文件,可直接用于源码验证。
注意:导出的标准JSON输入文件已经包含所有依赖合约的完整路径和源码内容,不需要再做合约扁平化处理,可直接上传到各公链的区块浏览器验证页面使用。
内容的提问来源于stack exchange,提问作者mhrsalehi
相关产品推荐
相关产品推荐

