Deployment 如何部署两个相互继承的智能合约来共同测试网络?

Deployment 如何部署两个相互继承的智能合约来共同测试网络?,deployment,ethereum,solidity,smartcontracts,Deployment,Ethereum,Solidity,Smartcontracts,我有两份smarts合同 我在RemixIDE中工作,当我单击“部署”时,我只能部署一个智能合约。当我复制ABI时,我只能从一个合同中复制一个ABI 有没有办法将这两个合同一起部署,还是应该分别部署? 如果我将它们分开部署,那么numberTwo合同将如何找到numberOne合同呢 多谢各位 pragma solidity ^0.4.25; contract numberOne{ } contract numberTwo is numberOne{ } 您编写它的方式是,您的numberTw

我有两份smarts合同

我在RemixIDE中工作,当我单击“部署”时,我只能部署一个智能合约。当我复制ABI时,我只能从一个合同中复制一个ABI

有没有办法将这两个合同一起部署,还是应该分别部署? 如果我将它们分开部署,那么numberTwo合同将如何找到numberOne合同呢

多谢各位

pragma solidity ^0.4.25;
contract numberOne{
}
contract numberTwo is numberOne{
}

您编写它的方式是,您的numberTwo契约继承numberOne,因此不需要单独部署第一个契约

但是如果你真的想单独部署它们,你可以这样做。只需逐个部署它们,然后使用第一个的地址将第一个连接到第二个

contract NumberOne {
 uint256 public someData = 256;
}

contract NumberTwo {

  NumberOne numberOneContract;

  function initNumberOne(address _address) public {
    numberOneContract = NumberOne(_address);            
  }

  function getSomeData() view public returns (uint256) {
    return numberOneContract.someData();
  }

}
我刚成功。 如果只是先部署numberOne合同继承的两个合同,它将自动部署两个合同。
如果我将复制numberTwo合同的ABI,它也将具有numberOne合同的ABI。

谢谢,我认为它也应该起作用。您的意思是返回号码econtract.someData()?不过,它不会自动部署两个契约。你的第二份合同只是继承了第一份合同的所有方法。我就是这么想的。但是现在我可以从NumberWO合同地址访问两个合同中的函数。这只是因为继承是这样工作的,NumberOne没有部署,所以当您在NumberWO上调用它的方法时,您只使用继承的方法,但将所有数据存储在NumberWO上