hardhat的介绍和使用
  aQ3WrflNjMoZ 2023年11月02日 90 0

介绍

一个开源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
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
aQ3WrflNjMoZ
作者其他文章 更多