118 以太坊 ethereum hardhat :编译 artifacts
• 介绍
• 构建信息文件
• 读取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
118 以太坊 ethereum hardhat :编译 artifacts相关推荐
- 10U 以太坊 ethereum hardhat : 创建项目
• 设置项目 • 示例安全帽项目 • 测试 • 外部网络 • 插件和依赖项 • hardhat Tutorials , hardhat 教程 • Contact 联系方式 • 设置项目 Hardhat ...
- 11C 以太坊 ethereum hardhat : 编写脚本
• 介绍 • 使用 Hardhat CLI 运行脚本 • 独立脚本:使用 Hardhat 作为库 • Hardhat参数 • hardhat Tutorials , hardhat 教程 • Cont ...
- 使用Ethereum C++ Aleth客户端创建具有两个同步节点的以太坊Ethereum私有网络
Creating A Private Network With Two Syncing Nodes 本文是前面两篇文章的延续,链接分别为:Windows10安装Aleth和使用Ethereum C++ ...
- 【以太坊】ubuntu安装以太坊ethereum的测试网络ropsten-net以及雷电网络raiden-network环境...
ubuntu安装以太坊ethereum的测试网络ropsten-net以及雷电网络raiden-network环境 前言 为了保证环境稳定,我从头开了一个虚拟机. 环境如下 xiaoyu@xiaoyu ...
- 使用web3和infura开发以太坊ethereum区块链
web3 Github: https://github.com/ethereum/web3.js/ web3.js是以太坊提供的一个Javascript库,它封装了以太坊的RPC通信API,提供了一系 ...
- 【以太坊】ubuntu安装以太坊ethereum的测试网络ropsten-net以及雷电网络raiden-network环境
ubuntu安装以太坊ethereum的测试网络ropsten-net以及雷电网络raiden-network环境 前言 为了保证环境稳定,我从头开了一个虚拟机. 环境如下 xiaoyu@xiaoyu ...
- 以太坊(Ethereum) - 让浏览器支持区块链(MetaMask)
章节 以太坊(Ethereum) – 是什么 以太坊(Ethereum) – 什么是智能合约 以太坊(Ethereum) – 以太币 以太坊(Ethereum) – 虚拟机(E.V.M.) 以太坊(E ...
- 以太坊(Ethereum) - 什么是智能合约
章节 以太坊(Ethereum) – 是什么 以太坊(Ethereum) – 什么是智能合约 以太坊(Ethereum) – 以太币 以太坊(Ethereum) – 虚拟机(E.V.M.) 以太坊(E ...
- 以太坊(Ethereum) - 网络节点
章节 以太坊(Ethereum) – 是什么 以太坊(Ethereum) – 什么是智能合约 以太坊(Ethereum) – 以太币 以太坊(Ethereum) – 虚拟机(E.V.M.) 以太坊(E ...
最新文章
- MybatisPlus忽略实体类中的非数据库字段、JPA忽略实体类中的非数据库字段、HeHibernate忽略实体类中的非数据库字段
- Windows自带certutil工具校验用法
- 【端口号和服务漫谈】
- python+OpenCv+dlib实现人脸68个关键点检测
- 问卷 假设检验 t检验_真实问题的假设检验
- 如何优化WebAPP性能:从四个层面上彻底优化前端项目性能
- 干货!总结19个提升iOS开发技术的必看教程!
- Android 系统(147)---proc—cpufreq
- 极兔速递完成17.35亿美元融资?回应:不实消息
- java stream Interface Collector<T,A,R>
- Activiti6.0 安装出错 log4j:ERROR setFile(null,true) call failed.
- mysql中kill掉所有锁表的进程
- layui 自定义排序_layui使用心得
- idea使用教程-安装
- AD15使用出现的小问题
- 男生必学,与女生聊天技巧
- dhcp服务器修改网关地址,5.1.9 配置DHCP客户端网关地址
- python 3 4j不是合法的_3 4j 是合法Python数字类型。
- 图像的低频,中频,高频信息含义?
- MySQL 实际内存分配
热门文章
- PAT 乙级 1002 写出这个数
- 窗体内公用的数据表,在使用视图和行过滤时的有趣现象
- CLOB、BLOB , CLOB与BLOB的区别
- STM32蜂鸣器实例详解
- Uncaught (in promise) Error: Network Error at e.exports (axios.js:8:6410) at d.onerror (axio
- 免费AWS EC2实例
- Matlab bsxfun函数解析
- Linux下查看CPU核数
- Win10提示“无法创建新的分区也找不到现有的分区”
- .php on line 0,PHP Fatal error: Could not queue new timer in Unknown on line 0