原文: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--多条链网络配置、部署相关推荐

  1. 公有链、联盟链、私有链及网络配置介绍

    以太坊网络 去中心化共识的基础是参与节点的点对点网络,节点维护并保证区块链网络的安全.参见挖矿. 以太坊网络数据统计 EthStats.net是以太坊网络实时数据的仪表板,这个仪表板展示重要信息,诸如 ...

  2. 区块链开发(十二)公有链、联盟链、私有链及网络配置介绍

    以太坊网络 去中心化共识的基础是参与节点的点对点网络,节点维护并保证区块链网络的安全.参见挖矿. 以太坊网络数据统计 EthStats.net是以太坊网络实时数据的仪表板,这个仪表板展示重要信息,诸如 ...

  3. 烽火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 ...

  4. 【适合小白】搭建区块链网络

    一 搭建单群组FISCO BCOS联盟链 在进行以下所有操作前,请先检查自己虚拟机的硬件和系统要求. 硬性要求 FISCO BCOS支持x86_64和aarch64(ARM)架构的CPU 由于节点多群 ...

  5. 搭建自己的个人服务器(网络配置篇)

    搭建自己的个人服务器(网络配置篇) 准备工作 如何打开服务器上的防火墙和端口权限 配置路由器端口转发 如何在路由器上进行端口映射 准备工作 1.确保你的服务器已经正确地配置好网络,可以连接到互联网. ...

  6. Linux基础命令-网络配置和相关命令

    Linux基础命令-网络配置和相关命令 网络配置和相关命令 一.基本网络配置 二.网卡名称 1. 网卡别名 2. 设备别名 3. 实验 三.网络配置方式 1. ifconfig命令 2. route命 ...

  7. 高级网络配置《 bond team桥接 》的建立

    bond 资料详情 一.链路聚合:以太网链路聚合简称链路聚合,它通过将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的.同时,这些捆绑在一起的链路通过相互间的动态备份,可以有效 ...

  8. 网络配置——Linux入门到精通的难关之一

    Linux学习的重中之重--网络配置 1.基础知识 1.1--网络配置基础 Linux具有强大的网络功能,它提供了许多完善的网络工具,可以帮助用户轻松完成各种复杂的网络配置,实现各种需要的网络服务. ...

  9. Centos的网络配置命令和文件

    一.ifcongfig Centos6之前最常用的配置网络命令就是ifconfig,使用ifconfig命令时最好切换到root用户的身份 1.直接使用ifconfig可以查看当前配置的网络设备的信息 ...

最新文章

  1. 搜寻文件下包含某个字符串的文件
  2. 好玩gan_效果超赞服务器挤爆!用GAN生成人像油画火了,带你一秒回到文艺复兴...
  3. 玫曦音乐播放器开源源码
  4. ffmpeg编码越来越小_从ffmpeg源代码分析如何解决ffmpeg编码的延迟问题(5)
  5. oracle的索引使用方法,在OracleE数据库的字段上建立索引的方法
  6. c 语言中 十六进制数表达,c – 如何解释像0x0A这样的十六进制数?
  7. linux cron 服务,Linux定时任务Crontab详解(推荐)
  8. 大数据智能营销有什么优势
  9. MySQL学习笔记(一)基本查询操作
  10. OA实施案例:服务性行业如何选型OA系统
  11. 【HTML/CSS】HTML/CSS个人学习总结
  12. 数字·空间·光艺术|数字空间和光艺术作品
  13. Linux随笔1 - Linux哲学思想与安装
  14. 《清平乐词》三篇——李白
  15. 新电脑Linux反应慢怎么回事,电脑反应慢怎么处理 教你几招解决电脑卡慢问题
  16. 玩南红的男人具备这几点,一般都不会太差
  17. 如何精确的设置行与行之间的间距
  18. 带bitlocker解密的pe_Win10使用BitLocker加密U盘|Win10自带BitLocker加密U盘
  19. 【笨鸟先飞】求职记(1)
  20. Linux系统有什么特点

热门文章

  1. 专利申请与专利转让有什么区别?
  2. 这些大学,登上春晚!
  3. 企业图纸文档规范管理措施 图文档管理系统
  4. 查看 android 版本,如何查看Android的系统版本?
  5. adb connect
  6. 用代码送上 Happy New Year
  7. 【Windows】虚拟串口工具VSPD7.2安装
  8. Java里面timestamp和long的相互转换
  9. lazypics——用python实现漫画网站自动浏览
  10. nc65 表空间 linux,用友nc65测试报告.doc