mkdir hardhat-deploy-tutorial cd hardhat-deploy-tutorial yarn init --yes yarn add -D hardhat 安装 Hardhat 任务 每次你从 CLI 运行Hardhat时,你都在运行一个任务,例如npx hardhat compile就是在运行compile任务。要查看项目中当前可用的任务,运行npx hardhat。 import {HardhatUserConfig} from 'hardhat/types'; import 'hardhat-deploy'; import 'hardhat-deploy-ethers 为此我们将使用Hardhat 网络,这是一个为开发而设计的本地以太坊网络,是内置的,也是Hardhat中的默认网络。 使用 Hardhat 网络进行调试 Hardhat内置了Hardhat 网络,这是一个专为开发设计的本地以太坊网络。它允许你部署合约,运行测试和调试代码。
Hardhat 中文文档地址: https://learnblockchain.cn/docs/hardhat/getting-started/ Hardhat 是什么? Hardhat 是一个编译、部署、测试和调试以太坊应用的开发环境。它可以帮助开发人员管理和自动化构建智能合约和 dApps 过程中固有的重复性任务,并围绕这一工作流程轻松引入更多功能。 这意味着 hardhat 在最核心的地方是编译、运行和测试智能合约。 Hardhat 内置了 Hardhat 网络,这是一个专为开发设计的本地以太坊网络。 Hardhat Runner 是与 Hardhat 交互的 CLI 命令,是一个可扩展的任务运行器。它是围绕任务和插件的概念设计的。每次你从 CLI 运行 Hardhat 时,你都在运行一个任务。 Hardhat 的很多功能都来自于插件,而作为开发者,你可以自由选择想使用的插件。Hardhat 不限制使用什么工具的,但它确实有一些内置的默认值。所有这些都可以覆盖。 文档目录摘选 ?
安装Hardhat Upgrades插件。 npm install --save-dev @openzeppelin/hardhat-upgrades 我们需要配置Hardhat使用我们的@openzeppelin/hardhat-upgrades 可以通过在hardhat.config.js文件中添加以下代码来添加插件。 // hardhat.config.js require('@nomiclabs/hardhat-ethers'); require('@openzeppelin/hardhat-upgrades'); 我们使用Hardhat console来与升级合约Box交互。 我们需要在部署Box合约的时候指定代理合约的地址。
简介 随着Hardhat插件hardhat-web3-v4[2]最近的兼容性更新,Web3.Js现在可以作为插件在Hardhat中使用。 步骤 初始化hardhat项目[4] 安装必要的依赖项(包括hardhat-web3-v4)[5] 编写智能合约[6] 编译、测试和部署合约[7] 测试和调用合约[8] 初始化Hardhat项目 新建项目文件夹 : $ mkdir myproject $ cd myproject 在当前目录下安装、初始化Hardhat: $ npm install hardhat $ npx hardhat init 安装必要的依赖项 要使用此插件扩展Hardhat的功能,我们必须在Hardhat配置文件hardhat.config.ts中导入web3-v4插件。请在配置文件的顶部导入此内容。 / [2] hardhat-web3-v4: https://hardhat.org/hardhat-runner/plugins/nomicfoundation-hardhat-web3-v4 [3]
Hardhat 使用 初始化项目 从零开始搭建一个 Hardhat 项目,我们需要预先安装好 node.js 与 yarn 环境,这部份参照官方说明根据自己的系统环境按照即可。 首先,我们需要初始化项目并安装 hardhat 依赖包。 yarn init yarn add --dev hardhat 初始化 Hardhat 然后需要运行 yarn hardhat,通过交互式命令来进行初始化,根据项目需要进行配置,我们的测试 Demo Hardhat 提供了完备的测试调试工具,可以在 tests 目录中编写测试脚本,通过 yarn hardhat test 命令运行测试。 我们可以通过 yarn hardhat console 命令来打开 Hardhat Console,并进行交互。
本文作者:全干攻城尸[1] 本系列课程: 第一节:使用 hardhat 开发以太坊智能合约-搭建环境[2] 第二节:使用 hardhat 开发以太坊智能合约-测试合约[3] 第三节:使用 hardhat 本地不用安装相关的依赖环境,但是弊端也是显而易见的:难以测试、无法直接验证合约等等; hardhat 的出现就可以帮助我们轻松的进行合约开发、测试、部署、验证等操作,下面我们一起开始 hardhat 的学习吧 目标:通过本章程的学习,可以掌握基本的 hardhat 使用 本教程需要您的主机安装 vscode、以及 node 环境 1、安装 hardhat(hardhat 官网[6]) 首先我们创建一个文件夹 [2] 使用hardhat开发以太坊智能合约-搭建环境: https://learnblockchain.cn/article/4885 [3] 使用hardhat开发以太坊智能合约-测试合约: https [5] 使用hardhat开发以太坊智能合约-验证合约: https://learnblockchain.cn/article/4931 [6] hardhat官网: https://hardhat.org
本文作者:全干攻城尸[1] 本系列课程: 第一节:使用 hardhat 开发以太坊智能合约-搭建环境[2] 第二节:使用 hardhat 开发以太坊智能合约-测试合约[3] 第三节:使用 hardhat 开发以太坊智能合约-发布合约[4] 第四节:使用 hardhat 开发以太坊智能合约-验证合约[5] 一、概述 在我们将真正的合约部署到正式区块链网络上之后, 在区块链浏览器里查看我们的合约,它应该是这样显示的 为了增强用户对于项目的信任,我们需要将我们合约的源代码进行公布,接下来,我们就讲解,如何使用 hardhat 进行合约的验证 二、准备工作 1、申请区块链浏览器账号 我们使用区块链浏览器提供的 api time> 然后我来解释一下 固定命令写法 npx hardhat verify --network 代表你要执行的网络,这个跟我们在 hardhat.config.js 配置的网络是一一对应的 [4] 使用hardhat开发以太坊智能合约-发布合约: https://learnblockchain.cn/article/4929 [5] 使用hardhat开发以太坊智能合约-验证合约: https
reentrance.ts,在 hardhat 中编写的漏洞利用演示过程。 /SafeMath.sol"; import "hardhat/console.sol"; contract Reentrance { // using SafeMath for uint256; run <script>` you'll find the Hardhat // Runtime Environment's members available in the global scope . const hre = require("hardhat"); const { waffle } = require("hardhat"); import { Signer } from "ethers 在hardhat.config.ts module.exports 处的 networks 的配置中 hardhat 网络(也就是 hardhat 默认启动的网络)中通过 blockGasLimit 设置
本文作者:全干攻城尸[1] 本系列课程: 第一节:使用 hardhat 开发以太坊智能合约-搭建环境[2] 第二节:使用 hardhat 开发以太坊智能合约-测试合约[3] 第三节:使用 hardhat 开发以太坊智能合约-发布合约[4] 第四节:使用 hardhat 开发以太坊智能合约-验证合约[5] 上一章我们讲解了如何搭建基本的 hardhat 开发环境,这一章我们来讲一下如何测试、部署合约 特别提醒 打开 Lock.sol 文件 可以看到其实是一个很简单的逻辑,里面定义了 2 个变量,还有一个事件,以及一个调用方法,整个合约要实现的就是当事件满足一定条件的时候才可以从合约账号提现 下面,我们使用 hardhat 提供的命令对合约文件进行编译: npx hardhat compile hardhat 会帮我们编译 contracts 目录下面的所有合约文件 这时候我们可以看到在控制台已经输出了编译日志,如果编译不成功会提示相应的错误信息 /article/4930 [4] 使用hardhat开发以太坊智能合约-发布合约: https://learnblockchain.cn/article/4929 [5] 使用hardhat开发以太坊智能合约
本文作者:全干攻城尸[1] 本系列课程: 第一节:使用 hardhat 开发以太坊智能合约-搭建环境[2] 第二节:使用 hardhat 开发以太坊智能合约-测试合约[3] 第三节:使用 hardhat 开发以太坊智能合约-发布合约[4] 第四节:使用 hardhat 开发以太坊智能合约-验证合约[5] 通过我们前面两节课程的学习,我们掌握了 hardhat 开发环境的基本搭建流程以及合约的测试方法, 里面是如何进行区块链网络配置的 二、区块链网络配置 1、hardhat 配置文件 项目根目录里可以看到一个名为 hardhat.config.js 的配置文件,这个配置文件主要用来配置 solidity 作为强大的合约开发辅助工具,其本身自带了一套以太坊区块链环境,当我们在执行部署命令时,如果不指定网络,默认是使用自带的区块链环境 npx hardhat run . /4930 [4] 使用hardhat开发以太坊智能合约-发布合约: https://learnblockchain.cn/article/4929 [5] 使用hardhat开发以太坊智能合约-验证合约
进入那个新文件夹,运行npm init -Y,然后安装 hardhat: npm i -D hardhat 现在运行 npx hardhat 并选择“Create an empty hardhat.config.js (新建一个 hardhat.config.js 文件)”: 我们很快就会看到将为添加一个 hardhat.config.js 文件。 文件重命名为 hardhat.config.ts: mv hardhat.config.js hardhat.config.ts 我们现在需要对 hardhat.config.ts 文件进行更改,因为对于 我们已经安装了 hardhat-waffle 和 hardhat-ethers 插件,你可以在此处找到大量插件列表:https://hardhat.org/plugins/ 我们也可以创建自己的任务。 // hardhat.config.ts import { task } from "hardhat/config"; import "@nomiclabs/hardhat-waffle"; task
在此,笔者将pancake前端工程pancake-frontend[4]配置成本地的hardhat[5]测试网环境,方便大家一起学习。 项目的完整地址在:https://github.com/chobynleo/pancake-swap-frontend-hardhat-testnet Example 以下是相应的配置教程:(转载请注明出处 ) 一个基于pancake-frontend和hardhat的以太坊测试环境 工程文件的拉取与环境的配置 1.下载pancake-swap-core源码git clone git@github.com 并编写部署文件PancakeFactory.sol; npm install --save-dev hardhat npx hardhat 选择Create an empty hardhat.config.js PancakeRouter.sol; npm install --save-dev hardhat npx hardhat 选择Create an empty hardhat.config.js,并进行基本的
第 8 步:创建 Hardhat 项目 {#create-hardhat-project} 在我们的项目文件夹中运行: npx hardhat 然后你应该看到一个欢迎信息和选择你想做什么的选项。 hardhat.config.js 中 ethers。 第 13 步: 修改 hardhat.config.js 前面,我们已经添加了几个依赖和插件,现在需要更新 hardhat.config.js,以便项目知道所有相关的配置和插件。 更新 hardhat.config.js,使其看起来像这样: /** * @type import('hardhat/config').HardhatUserConfig */ 编译任务是内置的 Hardhat 任务之一。 在命令行上运行: npx hardhat compile 你可能会得到一个关于源文件中没有提供 SPDX 许可证标识符的警告,但不需要担心这个问题。
Hardhat 是一个用于编译、部署、测试和调试以太坊软件的开发环境。 在我们的 hello-world 项目中运行: npm install --save-dev hardhat 第 8 步:创建 Hardhat 项目 在我们的 hello-world 项目文件夹中,运行 hardhat.config.js 中使用以太币。 第 13 步:更新 hardhat.config.js 到目前为止,我们已经添加了几个依赖项和插件,现在我们需要更新 hardhat.config.js 以便我们的项目了解所有这些。 编译任务是内置安 hardhat 的任务之一。 从命令行运行: npx hardhat compile 你可能会收到有关源文件中未提供 SPDX 许可证标识符的警告,但无需担心!
这个对象有项目的配置信息,能够定义默认,hardhat 和本地网络。 require("@nomiclabs/hardhat-waffle");require("@nomiclabs/hardhat-etherscan");require("hardhat-deploy" = { defaultNetwork: "hardhat", networks: { hardhat: { chainId: 31337, }, localhost: deploy 文件夹,这里有 hardhat-deploy plugin 和部署脚本,它们可以编译智能合约并且部署在 Hardhat 提供的本地区块链中。 scripts 文件夹,这里有一些脚本文件,用来和部署在本地的 Hardhat 开发环境中的智能合约交互。
Hardhat)或 Foundry(用于 forge)或使用 Remix(可选 Web 环境)实操方案一:使用 Foundry 部署 HelloWorld 合约1. 部署 HelloWorld 合约Hardhat 我不怎么使用,所以下面的代码中可能误1. 初始化项目$ mkdir hello-hardhat$ cd hello-hardhat$ npm init -y$ npm install hardhat$ npx hardhat选择 Create 编译合约$ npx hardhat compile4. 启动本地链$ npx hardhat nodeHardhat 会输出多个预置账户(含私钥),用于测试。5. 调用合约函数(可选)创建 Hardhat 控制台:$ npx hardhat console --network localhost在控制台中输入:const HelloWorld = await ethers.getContractFactory
方案三:VSCode + Hardhat(全功能开发框架)优点:支持 JS/TS 编写部署脚本与测试代码支持本地链模拟(Hardhat Node)有丰富插件系统和文档适合构建完整 DApp 项目安装步骤 初始化项目$ npm init -y$ npm install --save-dev hardhat$ npx hardhat选择第一个:Create a basic sample project目录结构大致如下 编译合约$ npx hardhat compile4. 启动本地节点并部署$ npx hardhat node$ npx hardhat run scripts/deploy.js --network localhostHardhat 是你通往“专业开发者” 项目 npx hardhat
译文出自:登链翻译计划[1] 译者:翻译小组[2] 校对:Tiny 熊[3] 前提条件 本教程用 LayerZero 建立一个简单的跨链消息转账合约,需要你对 Solidity Hardhat[4]有一定的程度了解 初始化 hardhat 项目 创建一个空目录,在目录下运行npm init,按照提示,填写项目信息,完成之后,运行npm install --save-dev hardhat 安装 Hardhat。 要创建 Hardhat 项目,在项目文件夹运行npx hardhat,如下图: 我们选择 Create an advanced sample project 为教程创建一个 hardhat 项目。 使用 hardhat 运行脚本: npx hardhat run scripts/demo1_mumbai.js --network mumbai 接着在 Fantom 测试网创建一个 javascript 使用 Hardhat 运行脚本: npx hardhat run scripts/demo1_testnet.js --network testnet 脚本完成后,我们可以在 FTMScan 测试网中查找合约
我们推荐读者在学习 ERC-3525 开发之前,首先掌握以下知识和技能: Solidity 语言和 EVM 智能合约开发的基本知识 Hardhat 智能合约开发框架的基本实用技能 当然,要使用 Hardhat 我们推荐对于 Hardhat 不熟悉的读者首先通过 Hardhat 的官方文档 (https://hardhat.org/docs) 来熟悉这一流行的智能合约开发框架。 快速入门 1. 这些用例遵循了 Hardhat 中编写智能合约测试代码的标准方式,读者可通过 Hardhat 官方文档学习,此处不再赘述。 6.运行测试 下面实际运行测试。 智能合约部署之后,可以通过 hardhat console 命令与之进行交互,这是 Hardhat 节点的一个重要优势,能够大大简化测试和调试阶段的工作。 修改 hardhat.config.ts 如下: import { HardhatUserConfig } from "hardhat/config"; import "@nomicfoundation
第四部分 EVM 合约开发流程演示 下面我们将使用 Hardhat 工具来演示在本体网络中开发部署和测试 EVM 合约的完整流程。 4.1 环境准备 安装 nodejs(https://nodejs.org/en/) 安装 Hardhat(https://hardhat.org/getting-started/) 4.2 合约设计 4.3 使用 Hardhat 编译和测试合约 4.3.1 创建 Hardhat 项目 mkdir hardhatdemo cd hardhatdemo npm init npm install --save-dev hardhat npx hardhat 4.3.2 修改 hardhat.config.js 文件 添加测试网节点配置信息 module.exports = { defaultNetwork : "ontology_testnet", networks: { hardhat: {}, ontology_testnet: { url