如何使用——constructor-args参数运行Hardhat ?



我试图用Hardhat运行脚本来部署具有构造函数参数的合约。当我运行npx hardhat run scriptsdeploy.js --network rinkeby时,我得到错误:

Error: missing argument: in Contract constructor (count=0, expectedCount=7, code=MISSING_ARGUMENT, version=contracts/5.5.0)

我尝试使用——constructor-args参数,但得到另一个错误:

Error HH305: Unrecognized param --constructor-args

我找到的所有关于constructor-args的参考都表明它只能作为hardhat verify的一部分可用,而不是hardhat run,但如果是这种情况,我如何在部署时传递参数?

已更新,包括部署脚本

// deploy.js
async function main() {
const [deployer] = await ethers.getSigners();
console.log('%c n Deploying contracts with the account:', 'color:', deployer.address );
console.log('%c n Account balance:', 'color:', (await deployer.getBalance()).toString() );
const Token = await ethers.getContractFactory("Test01");
const token = await Token.deploy();
console.log('%c n Token address:', 'color:', token.address );


}
main()
.then( () => process.exit(0) )
.catch( (error) => {
console.error(error);
process.exit(1);
});
```
const Token = await ethers.getContractFactory("Test01");
const token = await Token.deploy();

Token(大写T)是ContractFactory的一个实例。根据文档,您可以将构造函数参数传递给deploy()方法。

例如,如果你的Solidity构造函数接受一个bool和一个string

constructor(bool _foo, string memory _hello) {
}

这将是JS代码片段:

const token = await Token.deploy(true, "hello");

当构造函数中有参数而没有参数时,会发生这种情况将它们包含在deploy函数中。

const token = await deploy("Token", {
from: deployer,
args: [],
log: true,
*//list all the arguments here ie. adresses*
});

相关内容

  • 没有找到相关文章

最新更新