hardhat的介绍和使用

介绍

一个开源solidity合集仓库
https://github.com/qdwds/smart-contracts
以太坊ERC721全栈开发开NFT合集从入门到项目实战项目
https://learnblockchain.cn/course/31
https://edu.51cto.com/course/33566.html

一起学习吧

我们一起沟通、交流、学习吧!

hardhat

Hardhat是一个编译、部署、测试和调试以太坊应用的开发环境。它可以帮助开发人员管理和自动化构建智能合约和dApps过程中固有的重复性任务,并围绕这一工作流程轻松引入更多功能。这意味着hardhat在最核心的地方是编译、运行和测试智能合约。

Hardhat框架优点

  • Hardhat 拥有大量插件,并允许自定义、灵活性和可扩展性。
  • Hardhat 运行内置ether.js 5
  • Hardhat 有良好的 console.log() 调试能力;会在调试时提供代码中发生的堆栈跟踪。
  • Hardhat 提供原生Typescript支持,并且还有一个Vscode扩展,为 Vscode 编辑器添加了可靠的支持。
  • Hardhat 带有一个内置的本地以太坊网络,称为Hardhat Network,用于在本地机器上运行和部署智能合约,是一个专为开发而设计的本地以太坊网络节点。
  • Hardaht 可以fork网络节点到本地上模拟调用使用

创建项目

npx hardhat init

编译合同

编译合同是把xx.sol智能合约编译成hardhat可读的数据,并不是部署智能合约。

npx hardhat compile

测试合同

npx hardhat test

节点启动

新启动的节点是一个干净EVM环境,主要用于我们在本地开发调试项目使用。

npx hardhat node

fork主网

当我们项目本地开发完成之后可以把主网拉到本地进行调试。

//  hardhat.config.ts
networks: {
  hardhat: {
    forking: {
      url: "https://mainnet.infura.io/v3/<key>",
    }
  }
}

设置完主网之后在控制台输入npx hardhat node,如果报错重新启动或者更换节点.也可以不在hardhat.config.ts中设置,在启动节点的时候设置要fork的网络

npx hardhat node --fork <fork url>

配置多个solidity版本

如果在项目开发中设置到了使用多个版本可以在hardhat.config.ts中配置

import { HardhatUserConfig } from "hardhat/config";
const config: HardhatUserConfig = {
    defaultNetwork:"hardhat",
    solidity:{
        compilers:[
            {version: "0.8.0"},
            {version: "0.4.2"},
        ]
    },
    networks:{
        ubuntu:{
            url:"http://192.168.0.104:8545/"
        }
    },
    ...
};

部署合约

部署智能合约如果后面没有更--network xxnetwork的时候默认把合约部署到本地网络。
如果想要把合约部署到其他网络需要先配置网络,比如上面hardhat.config.ts我创建了一个名为ubuntu的网络的是我在服务器中启动的一个节点。这时候如果要把合约部署到ubuntu中就需要在命令后面跟上--network ubuntu,这样合约就会部署到ubuntu节点中

npx hardhat run scripts/token.sol
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值