118 以太坊 ethereum hardhat :编译 artifacts

这篇具有很好参考价值的文章主要介绍了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文章来源地址https://www.toymoban.com/news/detail-401838.html

到了这里,关于118 以太坊 ethereum hardhat :编译 artifacts的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 11U 以太坊 ethereum OpenZeppelin : 升级智能合约

    • 升级中有什么 • 使用升级插件升级 • 升级如何运作 • 初始化 • 升级 • 测试 • OpenZeppelin Tutorials 教程 • Contact 联系方式 使用OpenZeppelin 升级插件部署的智能合约可以升级以修改其代码,同时保留其地址、状态和余额。这使您可以迭代地向项目添加新功能,或修复您在

    2023年04月08日
    浏览(50)
  • 以太坊go-ethereum源码研读(二)applyTransaction相关

    在前面以太坊go-ethereum源码研读(一)中所讨论的 Process 函数调用了该 applyTransaction 函数来执行交易相关指令,于是进一步对该函数进行分析,以明晰以太坊交易的全过程。 分析过程中一些结构体或函数在以太坊go-ethereum源码研读(一)中已经讨论到,对这些结构体和函数则

    2023年04月25日
    浏览(37)
  • 【区块链 | 智能合约】Ethereum源代码(8)- Ethereum服务和以太坊P2P协议发送广播源码分析

    在“【区块链 | 智能合约】Ethereum源代码(2)- go-ethereum 客户端入口代码和Node分析”一文中,我们提到Ethereum作为一个service,被Node 注册进去。Node start的时候会启动其注册的所有服务,Ethereum service也是一样。 初始化方法

    2024年01月21日
    浏览(53)
  • google bigquery如何查询以太坊ethereum数据 sql怎么写

    文档介绍 https://console.cloud.google.com/marketplace/details/ethereum/crypto-ethereum-blockchain?project=aqueous-tesla-294801 如查询 What are the 10 most popular Ethereum collectibles (ERC721 contracts), by number of transactions? 其它查询方式 https://ethereum-etl.readthedocs.io/en/latest/commands/ kaggle数据格式 Ethereum Blockchain | Kaggl

    2024年02月13日
    浏览(40)
  • 以太坊燃料费用定价机制Ethereum Gas Fee Pricing Mechanism

            以太坊燃料在交易过程中起着重要作用。从以太坊系统的角度,通过燃料费用提高恶意交易的成本减少攻击者的攻击收益,增强了以太坊交易的安全性,也促使合约开发者优化设计减少合约对以太坊算力的消耗;从交易发起者角度,通过设定燃料相关的参数,以尽

    2024年01月15日
    浏览(61)
  • 11O 以太坊 ethereum OpenZeppelin : 部署智能合约并与之交互

    • 建立本地区块链 • 部署智能合约 • 从控制台交互 • 以编程方式交互 • 获取合约实例 • 调用合约 • 发送交易 • OpenZeppelin Tutorials 教程 • Contact 联系方式 在开始之前,我们首先需要一个可以部署合约的环境。以太坊区块链(通常称为“主网”,表示“主网络”)需要

    2023年04月08日
    浏览(97)
  • 【区块链 | 智能合约】Ethereum源代码(10)- 以太坊Downloader源码分析

    上一节分析到Fetcher用于同步网络节点的新区块和新的交易数据,如果新区块和本地最新的区块相隔距离较远,说明本地区块数据太旧,Fetcher就不会同步这些区块。这时候就要借助Downloader来同步完整的区块数据。 一,启动Downloader handler 初始化的时候会进行Downloader的初始化:

    2024年02月15日
    浏览(45)
  • 【区块链 | 智能合约】Ethereum源代码(11)- 以太坊核心BlockChain源码分析

    前面几节都在分析以太坊的通信协议,怎么广播,怎么同步,怎么下载。这一节讲讲以太坊的核心模块BlockChain,也就是以太坊的区块链。 一,BlockChain的初始化 Ethereum服务初始化func init() 的时候会调用core.SetupGenesisBlock来加载创始区块。顾名思义,创始区块就是以太坊区块链中

    2024年02月08日
    浏览(47)
  • 【区块链 | 智能合约】Ethereum源代码(3)- 以太坊RPC通信实例和原理代码分析(上)

    上一节提到,以太坊在node start的时候启动了RPC服务,以太坊通过Rpc服务来实现以太坊相关接口的远程调用。这节我们用个实例来看看以太坊 RPC是如何工作的,以及以太坊RPC的源码的实现 1,RPC启动命令 : go-ethereum的RPC服务默认地址:http://localhost:8545/ 通过以下命令修改默认地

    2024年02月02日
    浏览(69)
  • 如何在vscode、remix中结合hardhat编译部署合约

    首先创建 npm 空项目,注意这里要选择合约项目对应的文件目录,比如这里的合约项目是 suchas 接着安装 hardhat 环境,这里安装的版本 2.11.1 接着创建 hardhat 工程,选择你要创建的工程类型,这里我选的 TS 一般简单的测试学习我们可以用 remix,更多时候是用专业的 vscode IDE 编写

    2024年02月06日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包