如何部署两个相互继承的智能合约一起测试网络?

How to deploy two smart contracts that inherit from each other to test network together?

我有两个智能合约

我在 remix IDE 中工作,当我单击 "Deploy" 时,我只能部署一个智能合约。而当我复制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 合约,它会自动部署两个合约。 如果我将复制 numberTwo 合同的 ABI,它也会从 numberOne 合同中获得 ABI。