通过新建

时间:2018-09-19 16:54:21

标签: ethereum solidity smartcontracts remix private-network

我正尝试将合同实例用作另一个合同的变量,例如下面的示例。

pragma solidity ^0.4.23;

contract basic {
    uint num1 = 10;
    
    function getNum1() public view returns(uint) {
        return num1;
    }
    function setNum1(uint _num) public returns(uint) {
         num1 = _num;
    }
}

contract parent {
    uint public num2;
    basic public b;

    constructor() public {
        b = new basic();
        num2 = 20;
    }
        
    function getNum1() public constant returns(uint) {
        return b.getNum1();
    }
    
}

当我在混音和松露中测试合约时,效果很好。 enter image description here 但是直到我将合同“父母”部署到我的专用网络上之后,parent.getNum1()都返回了“ 0”而不是“ 10”。

此外,我尝试了其他类型的构造函数,例如将“基本”地址作为参数,但效果也不佳。

我还尝试了一些合同,那就是将另一个合同实例作为变量,它们都不能在专用网络上很好地工作。

有人遇到过这个问题吗?帮助!!!

1 个答案:

答案 0 :(得分:0)

现在要结束问题! 我将合同部署到了ropsten测试网络上,该合同运行良好。 看来我的专用网络不支持使用其他合同的呼叫。任何有兴趣的人都可以尝试看看。