合约元数据
Solidity编译器自动生成JSON文件,即合约元数据,其中包含有关当前合约的信息。您可以使用此文件查询编译器版本,使用的源,ABI和NatSpec文档,以更安全地与合约交互并验证其源代码。
编译器将元数据文件的Swarm哈希附加到每个合约的字节码末尾(详见下文),以便您可以以经过身份验证的方式检索文件,而无需求助于集中式数据提供程序。
您必须将元数据文件发布到Swarm(或其他服务),以便其他人可以访问它。您可以使用 生成名为的文件的命令来创建文件。它包含对源代码的Swarm引用,因此您必须上载所有源文件和元数据文件。solc --metadataContractName_meta.json
元数据文件具有以下格式。以下示例以人类可读的方式呈现。格式正确的元数据应正确使用引号,将空格减少到最小,并对所有对象的键进行排序以获得唯一的格式。此处不允许使用注释,仅用于解释目的。
{
//必需:元数据格式的版本
version: "1",
//必需:源代码语言,基本上选择“子版本”
//规范
language: "Solidity",
//必需:有关编译器的详细信息,内容是特定的
//语言
compiler: {
// Solidity必需:编译器的版本
version: "0.4.6+commit.2dabbdf0.Emscripten.clang",
//可选:生成此输出的编译器二进制文件的哈希值
keccak256: "0x123..."
},
//必需:编译源文件/源单元,键是文件名
sources:
{
"myFil