You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Hardhat运行部署脚本时传递合约构造函数参数

问题原因

  • 第一个报错是因为你的Test01合约构造函数定义了7个入参,但你在部署脚本的Token.deploy()调用时没有传入任何参数,参数数量不匹配
  • 第二个报错是因为--constructor-args是hardhat verify验证合约命令的专属参数,hardhat run命令本身不支持该参数,不需要在执行部署命令时添加

解决方法

直接在部署脚本的deploy方法里按顺序传入你的合约构造函数需要的7个参数即可,参数顺序、类型必须和合约constructor定义的完全一致。

修改后的部署脚本核心代码示例:

// 你只需要修改deploy()的入参部分,替换为你实际需要的7个参数即可
const Token = await ethers.getContractFactory("Test01");
// 示例:假设你的合约构造函数依次需要 代币名称、代币符号、精度、总发行量、所有者地址、费率、手续费接收地址 7个参数,按顺序传入
const token = await Token.deploy(
  "测试代币",
  "TEST",
  18,
  ethers.utils.parseEther("1000000"), // 总发行量100万枚,注意用ethers工具类处理精度避免溢出
  deployer.address,
  100, // 费率示例,按你合约实际要求传值
  "0xYourFeeReceiverAddress" // 替换为实际地址
);

修改完后直接执行原来的部署命令即可:

npx hardhat run scripts\deploy.js --network rinkeby

补充:后续如果你需要在区块链浏览器验证该合约,那时候才需要用到--constructor-args参数,要么直接在命令行按顺序传参,要么写一个单独的参数配置文件导出参数列表,验证时指定该文件路径即可。

内容的提问来源于stack exchange,提问作者Frank Furter

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 01:06:03