简介智能合约开发框架-Hardhat

这篇具有很好参考价值的文章主要介绍了简介智能合约开发框架-Hardhat。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

智能合约开发框架-Hardhat

文章来源地址https://www.toymoban.com/news/detail-603375.html

简介

Hardhat是一个编译、部署、测试和调试以太坊应用的开发环境。

Hardhat内置了Hardhat网络,这是一个专为开发设计的本地以太坊网络。主要功能有Solidity调试,跟踪调用堆栈、 console.log() 和交易失败时的明确错误信息提示等。

环境

  • node.js
  • python

安装

npm install --global --production windows-build-tools
npm install -g hardhat

安装中如果出现这样的报错

npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS msvs_version was set from command line or npm config
npm ERR! gyp ERR! find VS - looking for Visual Studio version 2017
npm ERR! gyp ERR! find VS VCINSTALLDIR not set, not running in VS Command Prompt
npm ERR! gyp ERR! find VS checking VS2017 (15.9.28307.1927) found at:
npm ERR! gyp ERR! find VS "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community"
npm ERR! gyp ERR! find VS - found "Visual Studio C++ core features"
npm ERR! gyp ERR! find VS - found VC++ toolset: v141
npm ERR! gyp ERR! find VS - missing any Windows SDK
npm ERR! gyp ERR! find VS could not find a version of Visual Studio 2017 or newer to use
npm ERR! gyp ERR! find VS looking for Visual Studio 2015
npm ERR! gyp ERR! find VS - not found
npm ERR! gyp ERR! find VS not looking for VS2013 as it is only supported up to Node.js 8
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS valid versions for msvs_version:
npm ERR! gyp ERR! find VS
npm ERR! gyp ERR! find VS **************************************************************
npm ERR! gyp ERR! find VS You need to install the latest version of Visual Studio
npm ERR! gyp ERR! find VS including the "Desktop development with C++" workload.
npm ERR! gyp ERR! find VS For more information consult the documentation at:
npm ERR! gyp ERR! find VS https://github.com/nodejs/node-gyp#on-windows

下载visual studio 2017以上版本,勾选使用C++的桌面开发即可
hardhat中文文档,区块链开发,Ethereum(以太坊),智能合约,hardhat,solidity,区块链

生成项目

创建项目目录,并在项目目录下执行命令初始化

创建项目目录

PS C:\Users\Administrator\Desktop> mkdir test_hardhat
PS C:\Users\Administrator\Desktop> cd .\test_hardhat\

项目初始化

PS C:\Users\Administrator\Desktop\test_hardhat> npx hardhat
888    888                      888 888               888
888    888                      888 888               888
888    888                      888 888               888
8888888888  8888b.  888d888 .d88888 88888b.   8888b.  888888
888    888     "88b 888P"  d88" 888 888 "88b     "88b 888
888    888 .d888888 888    888  888 888  888 .d888888 888
888    888 888  888 888    Y88b 888 888  888 888  888 Y88b.
888    888 "Y888888 888     "Y88888 888  888 "Y888888  "Y888
​
Welcome to Hardhat v2.9.3
​
? What do you want to do? ...
> Create a basic sample project         # 默认选择 basic sample project, 直接回车
  Create an advanced sample project
  Create an advanced sample project that uses TypeScript
  Create an empty hardhat.config.js
  Quit
​
? Hardhat project root: · C:\Users\Administrator\Desktop\test_hardhat  # 默认不用修改, 直接回车
? Do you want to add a .gitignore? (Y/n) » y  # 默认y, 直接回车
​
You need to install these dependencies to run the sample project:
  npm install --save-dev "hardhat@^2.9.3" "@nomiclabs/hardhat-waffle@^2.0.0" "ethereum-waffle@^3.0.0" "chai@^4.2.0" "@nomiclabs/hardhat-ethers@^2.0.0" "ethers@^5.0.0"
​
Project created
See the README.md file for some example tasks you can run.

安装依赖

Hardhat会提示你如何安装依赖

copy 并执行上面的命令即可

npm install --save-dev "hardhat@^2.9.3" "@nomiclabs/hardhat-waffle@^2.0.0" "ethereum-waffle@^3.0.0" "chai@^4.2.0" "@nomiclabs/hardhat-ethers@^2.0.0" "ethers@^5.0.0"

目录结构

  • /contracts

存放开发的智能合约

  • /scripts

存放用于调试或部署脚本的脚本文件(建议单独创建文件夹deploy用于存放部署脚本)

  • /test

存放测试用例的脚本文件

  • hardhat.config.js

hardhat.config.js是框架配置文件

Hardhat配置

通过修改hardhat.config.js完成框架的配置,其中常用的主要是 networks 和 solidity compiler 配置,

  • networks
module.exports = {
  defaultNetwork: "hardhat",    // 指定默认网络
  networks: {                   // 配置可能用到的所有网络连接信息
    hardhat: {                  // hardhat框架集成了 hardhat node,不需要配置url等信息
    },
    rinkeby: {                  // 定义其他网络
      url: "https://rinkeby.infura.io/v3/...",
      accounts: [privateKey1, privateKey2, ...] 
    }
  },
​
  solidity: "0.8.4",
};
  • solidity compiler
module.exports = {
  defaultNetwork: "hardhat",
  networks: {
    // ......
    // 忽略networks配置
  },
​
  solidity: {
    version: "0.8.1",   // compiler(编译器)版本需要 >= 合约文件版本号
    settings: {
      optimizer: {      // 优化器是一个特殊配置,当合约文件过于复杂,合约编译不能通过,编译器有 最大合约字节码 的限制
        enabled: false, // 如果需要开启优化,则为 true
        runs: 200       // runs 默认不用修改
      }
    }
  },
};

合约编译

合约.sol文件放在 /contracts 目录下

# npx hardhat compile
PS C:\Users\Administrator\Desktop\test_hardhat> npx hardhat compile
Downloading compiler 0.8.4
Compiled 2 Solidity files successfully # 编译成功

编译成功后,可在 /artifacts/contracts (新生成的)目录下找到对应合约的 <合约名>.json 文件中找到合约对应的 abi 和 bytecode

合约测试

合约测试.js文件放在 /test 目录下

# npx hardhat test
PS C:\Users\Administrator\Desktop\test_hardhat> npx hardhat test
​
​
  Greeter
Deploying a Greeter with greeting: Hello, world!
Changing greeting from 'Hello, world!' to 'Hola, mundo!'
    ✔ Should return the new greeting once it's changed (1132ms)
​
​
  1 passing (1s)

合约部署

合约部署.js文件放在 /scripts 目录下

# npx hardhat run --network <your-network> scripts/<deploy.js>
​
PS C:\Users\Administrator\Desktop\test_hardhat> npx hardhat run --network hardhat  scripts/sample-script.js      
Deploying a Greeter with greeting: Hello, Hardhat!
Greeter deployed to: 0x5FbDB2315678afecb367f032d93F642f64180aa3 # 部署得到的合约地址

参考文献

官方文档: https://hardhat.org/getting-started/

中文文档: https://learnblockchain.cn/docs/hardhat/getting-started/

到了这里,关于简介智能合约开发框架-Hardhat的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • elasticsearch 简介、中文文档、中英对照文档 下载

    组件名称 中文-文档-下载链接 中英对照-文档-下载链接 elasticsearch-5.5.1.jar elasticsearch-5.5.1-API文档-中文版.zip elasticsearch-5.5.1-API文档-中英对照版.zip elasticsearch-6.2.3.jar elasticsearch-6.2.3-API文档-中文版.zip elasticsearch-6.2.3-API文档-中英对照版.zip elasticsearch-6.3.0.jar elasticsearch-6.3.0-API文档

    2024年02月11日
    浏览(45)
  • poi 简介、中文文档、中英对照文档 下载

    组件名称 中英对照-文档-下载链接 中文-文档-下载链接 poi-5.2.0.jar poi-5.2.0-API文档-中英对照版.zip poi-5.2.0-API文档-中文版.zip poi-4.1.2.jar poi-4.1.2-API文档-中英对照版.zip poi-4.1.2-API文档-中文版.zip poi-3.17.jar poi-3.17-API文档-中英对照版.zip poi-3.17-API文档-中文版.zip poi-3.16.jar poi-3.16-API文

    2024年02月07日
    浏览(41)
  • Fabric智能合约——Chaincode(一)简介

    Fabric智能合约整体介绍,首先看一下 Fabric交易流程  在这张图中,5、6步是public数据的步骤,7、8、9是private数据的步骤,除了这一部分外,其他步骤均相同。         Fabric中智能合约称为链码(Chaincode),使用计算机语言描述合约条款、交易的条件、交易的业务逻辑等,

    2024年02月07日
    浏览(46)
  • netty-all 简介、中文文档、中英对照文档 下载

    组件名称 中文-文档-下载链接 中英对照-文档-下载链接 netty-all-4.0.50.Final.jar netty-all-4.0.50.Final-API文档-中文版.zip netty-all-4.0.50.Final-API文档-中英对照版.zip netty-all-4.1.17.Final.jar netty-all-4.1.17.Final-API文档-中文版.zip netty-all-4.1.17.Final-API文档-中英对照版.zip netty-all-4.1.23.Final.jar netty-

    2024年02月13日
    浏览(42)
  • oshi-core 简介、中文文档、中英对照文档 下载

    组件名称 中文-文档-下载链接 中英对照-文档-下载链接 oshi-core-3.4.2.jar oshi-core-3.4.2-API文档-中文版.zip oshi-core-3.4.2-API文档-中英对照版.zip oshi-core-6.1.1.jar 暂无 oshi-core-6.1.1-API文档-中英对照版.zip 一个基于Java的(本机)操作系统信息库,旨在提供跨平台实现来检索系统信息,如版本

    2024年02月15日
    浏览(40)
  • poi-ooxml 简介、中文文档、中英对照文档 下载

    组件名称 中文-文档-下载链接 中英对照-文档-下载链接 poi-ooxml-3.16.jar poi-ooxml-3.16-API文档-中文版.zip poi-ooxml-3.16-API文档-中英对照版.zip poi-ooxml-3.17.jar poi-ooxml-3.17-API文档-中文版.zip poi-ooxml-3.17-API文档-中英对照版.zip poi-ooxml-4.1.2.jar poi-ooxml-4.1.2-API文档-中文版.zip poi-ooxml-4.1.2-API文档

    2024年02月16日
    浏览(88)
  • docx4j 简介、中文文档、中英对照文档 下载

    组件名称 中文-文档-下载链接 中英对照-文档-下载链接 docx4j-3.3.5.jar docx4j-3.3.5-API文档-中文版.zip docx4j-3.3.5-API文档-中英对照版.zip Docx4J docx4j是一个库,可以帮助您使用docx文档、pptx演示文稿和xlsx电子表格中使用的Office Open XML文件格式。 docx4j是一个开源(ASLv2) Java库,用于创建和

    2024年02月04日
    浏览(73)
  • 【官方中文文档】Mybatis-Spring #简介

    MyBatis-Spring 会帮助你将 MyBatis 代码无缝地整合到 Spring 中。它将允许 MyBatis 参与到 Spring 的事务管理之中,创建映射器 mapper 和 SqlSession 并注入到 bean 中,以及将 Mybatis 的异常转换为 Spring 的 DataAccessException 。 最终,可以做到应用代码不依赖于 MyBatis,Spring 或 MyBatis-Spring。 Sp

    2024年02月11日
    浏览(38)
  • bcprov-jdk15on 简介、中文文档、中英对照文档 下载

    组件名称 中英对照-文档-下载链接 中文-文档-下载链接 bcprov-jdk15on-1.68.jar bcprov-jdk15on-1.68-API文档-中英对照版.zip bcprov-jdk15on-1.68-API文档-中文版.zip bcprov-jdk15on-1.60.jar bcprov-jdk15on-1.60-API文档-中英对照版.zip bcprov-jdk15on-1.60-API文档-中文版.zip bcprov-jdk15on-1.59.jar bcprov-jdk15on-1.59-API文档

    2023年04月27日
    浏览(38)
  • bcpkix-jdk15on 简介、中文文档、中英对照文档 下载

    组件名称 中文-文档-下载链接 中英对照-文档-下载链接 bcpkix-jdk15on-1.58.jar bcpkix-jdk15on-1.58-API文档-中文版.zip bcpkix-jdk15on-1.58-API文档-中英对照版.zip bcpkix-jdk15on-1.59.jar bcpkix-jdk15on-1.59-API文档-中文版.zip bcpkix-jdk15on-1.59-API文档-中英对照版.zip bcpkix-jdk15on-1.60.jar bcpkix-jdk15on-1.60-API文档

    2024年02月05日
    浏览(38)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包