我的两份合同看起来都是这样的:
contract ContractA {
ContractB public contractB;
constructor() {
contractB = new ContractB(address(this));
}
}
contract ContractB{
address public tokenAddress;
constructor(address _tokenAddress) {
tokenAddress = _tokenAddress;
}
}这是我的硬帽子部署脚本:
async function main() {
const ContractA = await hre.ethers.getContractFactory("ContractA");
const contractA = await ContractA.deploy();
await contractA.deployed();
}当我将它部署到中时,我看到了Contract的地址,但它只是一个普通的地址,而不是一个我可以验证和查看函数的契约。我做错了什么?
发布于 2022-04-16 10:25:22
在您的部署脚本(默认的示例-script.js)中,您应该这样做:
const contractA= await ethers.getContractFactory(ContractA);
const contractAcontract= await contractA.deployed();
await contractAcontract.deployed();
const contractB = await ethers.getContractFactory(ContractB);
const contractBcontract = await contractB.deployed(contractAcontract.address);
await contractBcontract.deployed();我想说的是,您需要部署这两个合同,而不仅仅是contractA。
编辑:
虽然您需要将第一个契约的地址作为参数传递给第二个契约,但我正确地部署了这两个合同。发现了一个类似的问题这里。希望这能帮你解决这个问题。
https://ethereum.stackexchange.com/questions/126319
复制相似问题