首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Hardhat部署多个合同

使用Hardhat部署多个合同
EN

Ethereum用户
提问于 2022-04-16 05:16:46
回答 1查看 875关注 0票数 0

我的两份合同看起来都是这样的:

代码语言:javascript
复制
contract ContractA {
        ContractB public contractB;
     
     constructor() {
            contractB = new ContractB(address(this));
    }
}

contract ContractB{

      address public tokenAddress;
         constructor(address _tokenAddress) {
                tokenAddress = _tokenAddress;
         }
}

这是我的硬帽子部署脚本:

代码语言:javascript
复制
async function main() {
 
  const ContractA = await hre.ethers.getContractFactory("ContractA");
  const contractA = await ContractA.deploy();

  await contractA.deployed();

}

当我将它部署到中时,我看到了Contract的地址,但它只是一个普通的地址,而不是一个我可以验证和查看函数的契约。我做错了什么?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2022-04-16 10:25:22

在您的部署脚本(默认的示例-script.js)中,您应该这样做:

代码语言:javascript
复制
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。

编辑:

虽然您需要将第一个契约的地址作为参数传递给第二个契约,但我正确地部署了这两个合同。发现了一个类似的问题这里。希望这能帮你解决这个问题。

票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/126319

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档