• 介绍
• 构建信息文件
• 读取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文章来源:https://www.toymoban.com/news/detail-401838.html
• Contact 联系方式
Homepage : 565.ee
微信公众号 : wx468116118
微信 QQ : 468116118
GitHub : github.com/565ee
CSDN : blog.csdn.net/wx468116118
Email : 468116118@qq.com文章来源地址https://www.toymoban.com/news/detail-401838.html
到了这里,关于118 以太坊 ethereum hardhat :编译 artifacts的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!