我写了一份合同..。
contract TimeLock is TimelockController {
uint256 minDelay = block.timestamp + 4 minutes;
constructor(
address[] memory proposers,
address[] memory executors
) TimelockController( minDelay, proposers, executors ) {}
//rest of contract's code
}现在,我想用摩卡和javascript测试它,所以我写了一个测试.
beforeEach(async function(){
//const date = new Date();
TimeLock = await ethers.getContractFactory('TimeLock');
[proposer, executor, sendTo, admin, ...addrs] = await ethers.getSigners();
timelock = await TimeLock.deploy(proposer.address, executor.address);
await timelock.deployed();
});问题是,在测试我的合同时,我不知道如何通过javascript传递地址数组,根据我过去的知识,我正在这样做.
timelock = await TimeLock.deploy(proposer.address, executor.address);这就是我的合同通过构造函数获取地址的方式..。
constructor(
address[] memory proposers,
address[] memory executors
) TimelockController( minDelay, proposers, executors ) {}通过给出上面的地址,我得到了这个错误.
1) "before each" hook for "deploys the contract":
Error: invalid value for array (argument="value", value="0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266", code=INVALID_ARGUMENT, version=contracts/5.5.0)有人能帮我通过数组发送地址吗?我做错了吗?
发布于 2022-01-24 15:09:59
您的契约构造函数需要两个数组作为参数。您的代码是发送两个地址,而不是数组。
会是这样的
timelock = await TimeLock.deploy([proposer.address], [executor.address]);https://ethereum.stackexchange.com/questions/119797
复制相似问题