使用hardhat 开发以太坊智能合约-搭建环境

2023-11-02

Web3工具网站【点我访问】 现已上线,欢迎使用,如有好的意见和建议也欢迎反馈。

本系列课程:

第一节:使用hardhat开发以太坊智能合约-搭建环境

第二节:使用hardhat开发以太坊智能合约-测试合约

第三节:使用hardhat开发以太坊智能合约-发布合约

第四节:使用hardhat开发以太坊智能合约-验证合约

在我们实际开发智能合约的时候,以往的开发一般都是使用remix在线编译器,它的好处是即开即用,本地不用安装相关的依赖环境,但是弊端也是显而易见的:难以测试、无法直接验证合约等等;

hardhat的出现就可以帮助我们轻松的进行合约开发、测试、部署、验证等操作,下面我们一起开始hardhat的学习吧 

目标:通过本章程的学习,可以掌握基本的hardhat使用 

一、安装hardhat (hardhat官网

本教程需要您的主机安装vscode、以及node环境

 1、安装hardhat

首先我们创建一个文件夹,用于本次项目的工程目录,进入工程目录下,然后在命令提示符里输入:

npm install --save-dev hardhat

 耐心等等安装完成,当出现下图,代表第一步安装完成:

 2、创建工程:

npx hardhat

 出现下面提示:

  

 这里可以通过键盘上面的上、下键进行选择创建一个什么样的项目,是js、ts还是一个空模板,这里我以js项目为例,按回车键进行创建

 创建项目的时候,会有几个创建信息提示,直接全部默认回车键即可

我们这里已经创建好项目了,注意图片中一行字提示:you need to install……,我们需要把下面的这句命令复制,然后执行一下:

npm install --save-dev "hardhat@^2.11.2" "@nomicfoundation/hardhat-toolbox@^2.0.0"

现在我们把依赖的包已经安装完成了,让我们继续下一步 

 3、项目结构

在vscode里打开工程目录

我们可以看到一个清晰的项目结构,下面简单讲解一下各个目录的作用

1)contracts

        该目录用于存放合约文件,我们后面编写的合约都会存放在该目录下,hardhat的操作命令也会默认读取该目录下的合约文件,如果需要更改合约存放目录,请访问官方查看具体更改方法

2)scripts

        该目录用于存放脚本文件,我们编写部署脚本的时候会存放到该目录下,同contracts一样,可以进行修改,修改方法详见官网

3)test

        该目录用于存放测试脚本文件,我们编写的测试合约的方法会存放到该目录下,同contracts一样,可以进行修改,修改方法详见官网

4)hardhat.config.js

        该文件用于项目的配置使用,如区块链网络配置、合约编译版本配置等等,后续在讲解合约发布的时候会具体讲解里面的区块链网络配置

通过本章学习,我们使用hardhat搭建起了一个基本的工程项目,在下一章节里,我会带领大家使用hardhat一起开发、部署合约,感兴趣的小伙伴关注一下吧~

 更多web3、区块链技术和前沿资讯,请关注公众号:外柏叁布道者(web3_preacher 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用hardhat 开发以太坊智能合约-搭建环境 的相关文章

  • 36_Pandas获取行数,列数和元素总数(大小)

    36 Pandas获取行数 列数和元素总数 大小 如何获取pandas DataFrame和pandas Series的行数 列数和总元素 大小 pandas DataFrame 显示行数 列数等 df info 获取行数 len df 获
  • Pytorch GPU模型推理时间探讨

    前言 最近对pytorch的模型推理 inference 时间产生了兴趣 于是想着写一个小程序来观察一下现象 遂以此文记之 实验配置 主要思路 创建多个不同规格的模型 每个模型只有一个简单的卷积层 以卷积的各种不同参数作为模型的区别 以随机

随机推荐

  • C++面向对象的三大特性

    C 三大特性是 封装 继承 多态 一 概念和优点 封装 encapsulation 封装就是将抽象得到的数据和行为 或功能 相结合 形成一个有机的整体 也就是将数据与操作数据的源代码进行有机的结合 形成 类 其中数据和函数都是类的成员 封装
  • 如何进行数据库,比如ORACLE,SQL SERVER的逆向工程,将数据库导入到PowerDesigner中...

    Oracle的反向工程就是指将Oracle中的数据库 当然也可以是SQL Server中的数据库导入到PD中 这个需要建立一个数据库的链接 然后进行逆向工程的操作 第一步 建立数据库的链接 PowerDesigner建立与数据库的连接 以便
  • redis启动时闪退,史上最详细的解决办法,看完还解决不了来找我

    redis启动时闪退 解决办法如下 1 Windows r 进入cmd 2 cd进入到redis server exe所在文件夹下 3 写入redis server exe redis windows conf 回车 4 如出现如图所示错误
  • SQLyog详细使用教程

    SQLyog是一款功能强大的mysql数据库管理工具 这篇文章为大家详细介绍SQLyog的使用方法 SQLyog使用教程 1 如何创建数据库 第一步 右键根结点 gt 创建数据库 第二步 填写数据库名称 选择默认字符集等后点确定即可 2 如
  • 【高效】开发过程中常见配置(pip、npm、maven、git等各种国内源)

    文章目录 nvm pip npm 配置taobao镜像 解决fatal unable to connect to git github com问题 解决fatal unable to connect to github com问题 mave
  • 【AI绘画】Midjourney和Stable Diffusion教程

    之前我向大家介绍了这两个AI绘画网站 Stable Diffusion介绍 https mp csdn net mp blog creation editor 130059509 Midjourney介绍 https mp csdn net
  • 半桥LLC数字控制

    LLC结构可分为对称半桥和非对称半桥 本文主要涉及对称半桥的控制方法及其实现方式 非对称和对称半桥LLC结构如下图1 1和图1 2 图1 1 非对称半桥LLC 图1 2 对称半桥LLC 对称半桥LLC和非对称半桥LLC没有本质的差别 对称半
  • 疫情数据可视化

    国内疫情数据可视化 文章目录 国内疫情数据可视化 一 获取疫情数据并写入数据库 获取数据以及写入数据库代码 分析数据所在url 二 数据的读取及可视化 三 结果展示 四 实现实时监控 五 总结 一 获取疫情数据并写入数据库 对于疫情可视化来
  • iOS深入学习之Weak关键字介绍

    前言 从大二的开始接触OC就用到了weak属性修饰词 但是当时只是知道如何去用这个关键字 防止循环引用 根本没有深入地去了解它 在刚来北京的时候面试过程中也常常考到该知识点 大点的公司可能会问它如何使用 如何在对象销毁后将对象置nil 小点
  • redis sentinel 主从切换(failover)解决方案,详细配置

    redis sentinel 主从切换 failover 解决方案 详细配置 作者 oyhk 2013 10 10 23 55 49 0 评论 629浏览 Redis源码学习笔记 主从复制 博客分类 Redis redis c Redis源
  • 04LinuxC线程学习之pthread_create创建线程

    1 pthread self函数 pthread t pthread self void 功能 获取线程ID 其作用对应进程中 getpid 函数 返回值 成功 0 失败 无 两个进程间 线程ID允许相同 2 pthread create函
  • Python黑魔法揭秘:超强公共操作符和推导式的编程技巧

    文章目录 前言 公共操作 1 运算符 1 合并操作 2 复制操作 in not in 判断数据在 不在容器中 公共方法 len del del max min range enumerate 容器类型转换 1 list 将某个序列转化为列表
  • ​​INNODB和MyISAM区别

    1 存储引擎是MyISAM 如下 CREATE table test myisam cli int ENGINE MyISAM 存储目录里会有三个文件 test myisam frm为 表定义 是描述数据表结构的文件 test myisam
  • C#常用容器源码分析

    泛型支持多类型 但需要指定类型 不用转换类型 不用装箱 拆箱操作 效率更高 使用范围广 C 官方源码地址 https referencesource microsoft com C 官方文档地址 https docs microsoft c
  • python常用函数详解

    1 函数的介绍 为什么要有函数 因为在平时写代码时 如果没有函数的话 那么将会出现很多重复的代码 这样代码重用率就比较低 并且这样的代码维护起来也是很有难度的 为了解决这些问题 就出现了函数 用来将一些经常出现的代码进行封装 这样就可以在任
  • 爬虫 — Json 模块和 Post 请求

    目录 一 Json 模块 1 定义 2 方法 2 1 json dumps 2 2 json loads 2 3 json dump 2 4 json load 二 Post 请求 三 Post 请求携带 Json 参数案例 一 Json
  • 60-200-060-使用-命令-MySQL事务相关命令

    1 查询 Mysql 中查询 临时修改事务隔离等级 查询事务隔离等级 show variables like tx isolation 修改事务隔离等级 set tx isolation READ COMMITTED
  • JavaWeb学习路线(8)——登录

    一 基本登录功能 一 需求 根据账号与密码判别用户是否可以登录 二 实现步骤 Controller接收传递的JSON格式数据 使用 RequestBody 实体类进行接收 调用Service具体处理 Service创建登录接口 实现类调用M
  • 剪辑App的MMKV应用优化实践

    作者 我爱吃海米 导读 移动端开发中 IO密集问题在很多时候没有得到充足的重视和解决 贸然的把IO导致的卡顿放到异步线程 可能会导致真正的问题被掩盖 前人挖坑后人踩 其实首先要想的是 数据存储方式是否合理 数据的使用方式是否合理 本文介绍度
  • 使用hardhat 开发以太坊智能合约-搭建环境

    Web3工具网站 点我访问 现已上线 欢迎使用 如有好的意见和建议也欢迎反馈 本系列课程 第一节 使用hardhat开发以太坊智能合约 搭建环境 第二节 使用hardhat开发以太坊智能合约 测试合约 第三节 使用hardhat开发以太坊智