Hardhat工具包3--多条链网络配置、部署

原文:hardhat框架使用与常见编译部署的问题
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'];

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值