如何部署多个互相使用函数的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();
}
}
我有三个智能合约 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();
}
}