如何部署多个互相使用函数的solidity智能合约?

How to deploy multiple solidity smart contracts that uses functions of each other?

我有三个智能合约 a.sol、b.sol 和 c.sol...在这三个中,前两个是独立的智能合约,而 c.sol 使用a.sol 和 b.sol 的功能,因此 c.sol 需要 "import" 前两个智能合约。 "Import" 在本地工作,但如何通过 remix/truffle 在测试网上部署所有这些,以便 c.sol 仍然可以访问 a.sol 和 b.sol 的功能?

如果您的项目是使用 Truffle 创建的,您可以按以下方式设置c.sol

import "./a.sol";
import "./b.sol";

contract c is a, b {
   ...
}

如果这是您的代码结构,您将能够使用 truffle migrate 部署您的 Truffle 项目(前提是您的迁移设置正确)。

你的合同 a 和 b 是否应该是独立的合同,无论合同 c 都将被使用?即:用户在合约a中存储数据,将被合约c使用

如果是这样,那么你可以像这样将合约 a 和 b 作为合约 c 的变量

a.sol

contract A {
  function doSomething() {
        ...
  }
}

c.sol

contract C {
  A a;

  function setA(address addressOfContractA) {
    a = A(address);
  }

  function makeADoSomething() {
    a.doSomething();
  }
}

信用:https://zupzup.org/smart-contract-interaction/