您当前的位置: 首页 >  ar

wx468116118

暂无认证

  • 4浏览

    0关注

    35博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

118 以太坊 ethereum hardhat :编译 artifacts

wx468116118 发布时间:2022-07-23 17:09:06 ,浏览量:4

• 介绍 • 构建信息文件 • 读取artifacts • 目录结构 • hardhat Tutorials , hardhat 教程 • Contact 联系方式

• 介绍

使用 Hardhat 编译会为每个编译的合约生成两个文件(不是每个 .sol 文件):一个工件和一个调试文件。

artifact 拥有部署和与合约交互所需的所有信息。这些与大多数工具兼容,包括 Truffle 的工件格式。每个工件都包含一个具有以下属性的 json:

  • contractName:带有合同名称的字符串。

  • abi:合约 ABI 的 JSON 描述。

  • bytecode:未链接的部署字节码的"0x"-前缀十六进制字符串。如果合约不可部署,则它具有字符串“0x”。

  • deployedBytecode:未链接的运行时/已部署字节码的前缀为 "0x" 的十六进制字符串。如果合约不可部署,则它具有字符串“0x”。

  • linkReferences:字节码的链接引用对象 由 solc 返回。如果合约不需要链接,则此值包含一个空对象。

  • deployedLinkReferences:已部署字节码的链接引用对象 由 solc 返回。如果合约不需要链接,则此值包含一个空对象。

调试文件包含重现编译和调试合约所需的所有信息:这包括原始的 solc 输入和输出,以及用于编译它的 solc 版本。

• 构建信息文件

Hardhat 通过一次编译尽可能少的文件集来优化编译。一起编译的文件具有相同的 solc 输入和输出。由于在每个调试文件中包含此信息会非常浪费,因此此信息将在构建信息文件中进行重复数据删除,这些文件位于 artifacts/build-info 中。每个合约调试文件都包含其构建信息文件的相对路径,每个构建信息文件包含 solc 输入、solc 输出和使用的 solc 版本。

您不应该直接与这些文件交互。

• 读取artifacts

[HRE] 有一个带有辅助方法的 artifacts 对象。例如,您可以通过调用 hre.artifacts.getArtifactPaths() 获取所有工件的路径列表。

您还可以通过调用 hre.artifacts.readArtifact("Bar") 使用合约名称读取工件,这将返回 Bar 合约的工件内容。这只有在整个项目中只有一个名为“Bar”的合约时才有效;如果有两个,它会抛出一个错误。为了消除这种情况的歧义,您必须使用合约的完全限定名称:hre.artifacts.readArtifact("contracts/Bar.sol:Bar")

• 目录结构

artifacts/ 目录的结构遵循合约的原始目录结构。例如,如果您的合同如下所示:

contracts
├── Foo.sol
├── Bar.sol
└── Qux.sol

那么您的工件目录的结构将如下所示:

artifacts
└── contracts
    ├── Foo.sol
    │   ├── Foo.json
    │   ├── Foo.dbg.json
    │   ├── Foo2.json
    │   └── Foo2.dbg.json
    ├── Bar.sol
    │   ├── Bar.json
    │   └── Bar.dbg.json
    └── Qux.sol
        ├── Foo.json
        └── Foo.dbg.json

源代码中的每个 Solidity 文件都会在工件结构中获得一个目录。这些目录中的每一个都包含一个工件(.json)文件和一个调试(.dbg.json)文件,用于该文件中的每个_contract_。例如,Foo.sol 内部包含两个合约。

两个 Solidity 文件可以有同名的合约,这种结构允许这样做。

• hardhat Tutorials , hardhat 教程

CN 中文 Github hardhat 教程 : github.com/565ee/hardhat_CN CN 中文 CSDN hardhat 教程 : blog.csdn.net/wx468116118 EN 英文 Github hardhat Tutorials : github.com/565ee/hardhat_EN

• Contact 联系方式

Homepage : 565.ee 微信公众号 : wx468116118 微信 QQ : 468116118 GitHub : github.com/565ee CSDN : blog.csdn.net/wx468116118 Email : 468116118@qq.com

关注
打赏
1658937586
查看更多评论
立即登录/注册

微信扫码登录

0.2281s