草庐IT

Hardhat网络配置

摘要:Hardhat是一款功能强大的以太坊智能合约开发工具,通过网络配置选项,您可以创建和定制化不同类型的以太坊开发网络,以满足项目的需求。本文将深入探讨Hardhat网络配置的各个方面,包括内置网络、自定义网络和部署合约网络等,同时提供代码示例,帮助您构建适合您项目的理想开发网络。第一部分:引言Hardhat网络配置的重要性:简要介绍为什么网络配置在以太坊智能合约开发中至关重要,以及Hardhat提供的丰富选项。第二部分:内置网络默认网络配置:解释Hardhat默认的网络配置,包括以太坊主网、测试网络和本地开发网络等。Hardhat网络选项:介绍常用的Hardhat网络选项,如网络ID、RP

8.区块链系列之hardhat框架部署合约(二)

现在我们来实践hardhat部署合约中的其他更多技术要点1.代码方式验证合约注册https://etherscan.io/,如下图添加拷贝API_KEY在.env文件中新增ETHERSCAN_API_KEYETHERSCAN_API_KEY=API_KEY【刚才注册的key】hardhat.config.js中新增配置constETHERSCAN_API_KEY=process.env.ETHERSCAN_API_KEYmodule.exports={etherscan:{apiKey:ETHERSCAN_API_KEY}};覆盖deploy.js//importsconst{ethers,r

基于Hardhat和Openzeppelin开发可升级合约(二)

基于Hardhat和Openzeppelin开发可升级合约(二)在本章我将开始介绍和演示基于Openzeppelin的可升级合约解决方案简介根据设计,智能合约是不可变的。但随着新的客户需求和产品设计的升级迭代,合约也需要升级。Openzeppelin的基础可升级合约解决方案是将合约数据与逻辑分离。代理合约(Proxy)负责转发交易到逻辑合约,并保存合约数据逻辑合约(Logic)负责实现功能逻辑升级时,只需要重新部署新版本的逻辑合约,并将代理合约中的逻辑合约实例指向新版本逻辑合约实例即可可升级合约的原理-DelegateCall第三方库Hardhat关于Hardhat的安装和介绍,参考我的另一篇

Hardhat工具包1--安装使用

参考资料:官方文档:https://hardhat.org/getting-started/https://hardhat.org/hardhat-runner/docs/getting-started#overview基于Hardhat和Openzeppelin开发可升级合约(一)基于Hardhat和Openzeppelin开发可升级合约(一)_灬倪先森_的博客-CSDN博客--------------------------------------------------------------------------------------------------------------

使用hardhat 部署 solidity智能合约到测试网

概述在刚开始学solidity智能合约的时候,我们大多数都是通过Remix在线编辑器完成合约编辑部署和测试等流程的工作。毫无疑问,remix在调试的时候是十分的方便的。但是随着编写的合约越来越多,仅仅通过remix来部署就会有些吃力了,各种的参数传递,合约之间的部署的先后关系,以及合约文件的管理,都需要能够工程化的处理这些流程。目前以及有一些比较成熟的开发,调试,部署等全流程的框架了,其中用的比较多是truffle和hardhat。hardhat相对truffle更新功能也更完善,使用起来也很方便。下面就记录了我自己使用hardhat的流程以及遇到的一些问题。项目初始化mkdirnewFlod

DAPP开发【09】NFT交易市场开发(hardhat测试)

测试文件下新建market.js文件扁平化,将所有依赖放在tmp.sol,可以去给他人使用npxhardhatflatten>tmp.sol测试文件const{expect}=require('chai');const{ethers}=require('hardhat');describe('Market',asyncfunction(){//定义三个合约,两个账户letusdt,nft,market,accountA,accountB;beforeEach(async()=>{//hardhat提供两个账户[accountA,accountB]=awaitethers.getSigners(

使用Hardhat测试智能合约

Hardhat是一个编译、部署、测试和调试以太坊应用的开发环境。它可以帮助开发人员管理和自动化构建智能合约和dApps过程中固有的重复性任务,并围绕这一工作流程轻松引入更多功能。这意味着hardhat在最核心的地方是编译、运行和测试智能合约。Hardhat内置了Hardhat网络,这是一个专为开发设计的本地以太坊网络。主要功能有Solidity调试,跟踪调用堆栈、console.log()和交易失败时的明确错误信息提示等。在Hardhat中编写智能合约测试是使用JavaScript或TypeScript完成的。使用Waffle的测试是用Mocha和Chai一起编写的。Mocha是流行的Java

智能合约开发测试部署验证一条龙

前面提到,我最近在看Web3,这不记录下最近看到的好玩的。忘了在哪里看到的一句话,Web3这个东西,刚看时让人摸不到头脑的点在于,你很难知道要用哪些东西去组装,去哪里拿数据。比如都说区块链人人可访问,我要到哪里看到它?毕竟看得见的东西更让人心安。给俺瞧瞧。我到哪里去看区块链上的数据?不给你区块链浏览器这个关键词,大概很难知晓。一个经常会看到的疑问是如何与合约交互,比如,合约里存了一个字符串,我现在要将其展示到页面上,如何搞?这玩意是去中心化的呀,没有一个API地址让你去连呀,于是就迷茫了。。。。。。。。。。。。其实Web3里的很多东西,就是一张纸,没啥,与智能合约交互其实就是要和节点交互,但维

gas费用测试优化:hardhat-gas-reporter

gas费用测试gas费用测试优化文章目录gas费用测试gas费用测试优化安装hardhat-gas-reporter配置hardhat-confing.js文件配置项修改案例代码运行不同的gas费用举例​gas费是我们每一次与区块链交互的时候产生的一笔费用,每次我们读取数据,运算数据,修改数据的时候,都会产生一定数量的gas。​gas费是我们与区块链通信的过程中提交的费用,,我们通过一定的语法技巧能节约很多的gas,给用户操作节省gas费,一个优秀的项目应该避免大量gas的消耗。​hardhat-gas-reporter是hardhat的一个插件,专门用于查看每个单元测试所消耗的gas费用,安

EIP-712签名介绍以及使用hardhat实现

文章目录简介结构解析签名并验证注意事项简介EIP-712是一种高级安全的交易签名方法。使用该标准不仅可以签署交易并且可以验证签名,而且可以将数据与签名以用户可见内容的方式一起传递到智能合约中,并且可以根据该数据验证签名以了解签名者是否是实际发送该签名的人要在交易中调用的数据。EIP-712提出了数据的标准结构和从结构化消息生成散列的定义过程。然后使用此散列生成签名。通过这种方式,为发送交易生成的签名与为验证身份或任何其他目的生成的签名之间就有了明显的区别。EIP-712草案将签名方案背后的动机表述为:提高链上使用的链下消息签名的可用性。我们看到越来越多的人采用链下消息签名,因为它节省了gas,