原文:hardhat框架使用与常见编译部署的问题
【hardhat框架使用与常见编译部署的问题】_139的世界真奇妙的博客-CSDN博客
1 hardhat框架命令
初始化工程:
npm init --yes
编译:
npx hardhat compile
部署
//默认本地部署
npx hardhat --network localhost deploy
//指定脚本部署到本地网络:
npx hardhat run --network localhost scripts/deploy.js
//部署到主网/测试网
npx hardhat run --network ropsten scripts/deploy.js
测试
//(本地起的链测试)
npx hardhat test
//使用ganache测试
npx hardhat --network localhost test
进入控制台,连接本地链
npx hardhat console --network localhost
启动hardhat自带的ganache链
npx hardhat node
也可以用本机的ganache软件单独启动:
2 hardhat.config.js配置信息
module.exports = {
solidity: {
compilers: [ //可指定多个sol版本
{version: "0.4.26"},
{version: "0.5.12"},
{version: "0.6.12"}
]
},
networks: {
localhost: {
url: "http://127.0.0.1:8545"
},
//填写URL和账户私钥,
ropsten: {
url: "https://ropsten.infura.io/v3/",
accounts: [ROPSTEN_PRIVATE_KEY1,ROPSTEN_PRIVATE_KEY2,ROPSTEN_PRIVATE_KEY3]
},
}
};
3 使用ENV配置文件
工程下创建一个配置文件,命名为.env, 里面保存助记词、私钥、链节点URL等信息。
MNEMONIC_AN="xxx,yyyy,"
RINKEBY="https://rinkeby.infura.io/v3/"
配置文件hardhat.config.ts, 设置环境
import {HardhatUserConfig} from "hardhat/types";
import 'hardhat-deploy';
// import {accounts} from './utils/network';
const ALCHEMY_RINKEBY = process.env.ALCHEMY_RINKEBY;
const MNEMONIC_AN = process.env.MNEMONIC_AN;
const buildConfig: HardhatUserConfig = {
solidity: {
compilers: [
{
version: '0.7.5',
settings: {
optimizer: {enabled: true, runs: 200},
evmVersion: 'istanbul',
},
},
],
},
//如果部署的是其他测试链,应添加其他设置。
networks: {
rinkeby: {
url: RINKEBY,
// accounts : accounts(), //must mnemonic
//看源码,这里我们输入 HardhatNetworkHDAccountsUserConfig 对象,即为通过助记词查找钱包地址。
accounts: {
mnemonic: MNEMONIC_AN,
},
},
},
//hardhat-deploy for local test
namedAccounts: {
deployer: {
default: 0,
},
},
};
export default buildConfig;
编写deploy.js
import {HardhatRuntimeEnvironment} from 'hardhat/types';
import {DeployFunction} from 'hardhat-deploy/types';
const func: DeployFunction = async function (hre: HardhatRuntimeEnvironment) {
const {deployments, getNamedAccounts} = hre;
const {deploy} = deployments;
const {deployer} = await getNamedAccounts();
//这里建议打印部署者地址,检查是否是自己的地址
console.log(deployer)
await deploy('Greeter', {
from: deployer,
//输入constructor的参数
args: ['we success!'],
log: true,
});
};
export default func;
func.tags = ['Greeter'];
Hardhat工具包3--多条链网络配置、部署相关推荐
- 公有链、联盟链、私有链及网络配置介绍
以太坊网络 去中心化共识的基础是参与节点的点对点网络,节点维护并保证区块链网络的安全.参见挖矿. 以太坊网络数据统计 EthStats.net是以太坊网络实时数据的仪表板,这个仪表板展示重要信息,诸如 ...
- 区块链开发(十二)公有链、联盟链、私有链及网络配置介绍
以太坊网络 去中心化共识的基础是参与节点的点对点网络,节点维护并保证区块链网络的安全.参见挖矿. 以太坊网络数据统计 EthStats.net是以太坊网络实时数据的仪表板,这个仪表板展示重要信息,诸如 ...
- 烽火2640路由器命令行手册-12-IBM网络配置命令
IBM网络配置命令 目 录 第1章 DLSW配置命令... 1 1.1 DLSW配置命令... 1 1.1.1 dlsw local-peer 1 1.1.2 dlsw remote-peer 3 ...
- 【适合小白】搭建区块链网络
一 搭建单群组FISCO BCOS联盟链 在进行以下所有操作前,请先检查自己虚拟机的硬件和系统要求. 硬性要求 FISCO BCOS支持x86_64和aarch64(ARM)架构的CPU 由于节点多群 ...
- 搭建自己的个人服务器(网络配置篇)
搭建自己的个人服务器(网络配置篇) 准备工作 如何打开服务器上的防火墙和端口权限 配置路由器端口转发 如何在路由器上进行端口映射 准备工作 1.确保你的服务器已经正确地配置好网络,可以连接到互联网. ...
- Linux基础命令-网络配置和相关命令
Linux基础命令-网络配置和相关命令 网络配置和相关命令 一.基本网络配置 二.网卡名称 1. 网卡别名 2. 设备别名 3. 实验 三.网络配置方式 1. ifconfig命令 2. route命 ...
- 高级网络配置《 bond team桥接 》的建立
bond 资料详情 一.链路聚合:以太网链路聚合简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的.同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效 ...
- 网络配置——Linux入门到精通的难关之一
Linux学习的重中之重--网络配置 1.基础知识 1.1--网络配置基础 Linux具有强大的网络功能,它提供了许多完善的网络工具,可以帮助用户轻松完成各种复杂的网络配置,实现各种需要的网络服务. ...
- Centos的网络配置命令和文件
一.ifcongfig Centos6之前最常用的配置网络命令就是ifconfig,使用ifconfig命令时最好切换到root用户的身份 1.直接使用ifconfig可以查看当前配置的网络设备的信息 ...
最新文章
- 搜寻文件下包含某个字符串的文件
- 好玩gan_效果超赞服务器挤爆!用GAN生成人像油画火了,带你一秒回到文艺复兴...
- 玫曦音乐播放器开源源码
- ffmpeg编码越来越小_从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题(5)
- oracle的索引使用方法,在OracleE数据库的字段上建立索引的方法
- c 语言中 十六进制数表达,c – 如何解释像0x0A这样的十六进制数?
- linux cron 服务,Linux定时任务Crontab详解(推荐)
- 大数据智能营销有什么优势
- MySQL学习笔记(一)基本查询操作
- OA实施案例:服务性行业如何选型OA系统
- 【HTML/CSS】HTML/CSS个人学习总结
- 数字·空间·光艺术|数字空间和光艺术作品
- Linux随笔1 - Linux哲学思想与安装
- 《清平乐词》三篇——李白
- 新电脑Linux反应慢怎么回事,电脑反应慢怎么处理 教你几招解决电脑卡慢问题
- 玩南红的男人具备这几点,一般都不会太差
- 如何精确的设置行与行之间的间距
- 带bitlocker解密的pe_Win10使用BitLocker加密U盘|Win10自带BitLocker加密U盘
- 【笨鸟先飞】求职记(1)
- Linux系统有什么特点
热门文章
- 专利申请与专利转让有什么区别?
- 这些大学,登上春晚!
- 企业图纸文档规范管理措施 图文档管理系统
- 查看 android 版本,如何查看Android的系统版本?
- adb connect
- 用代码送上 Happy New Year
- 【Windows】虚拟串口工具VSPD7.2安装
- Java里面timestamp和long的相互转换
- lazypics——用python实现漫画网站自动浏览
- nc65 表空间 linux,用友nc65测试报告.doc