вызывающий метод потерпел неудачу в другом контракте при создании экземпляра новым - PullRequest
0 голосов
/ 19 сентября 2018

Я пытаюсь использовать экземпляр договора в качестве переменной другого договора, например, в приведенном ниже примере.

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();
    }
    
}

Когда я тестировал контракт в ремиксах и трюфелях, он работал хорошо. введите описание изображения здесь , но когда я развернул «родителя» контракта в моей частной сети, parent.getNum1 () возвратил «0» вместо «10», как предполагалось.

далее,я пробовал другие типы конструкторов, такие как взять адрес 'basic' в качестве параметра, он тоже не работал.

я также пробовал некоторые контракты, которые принимают другой экземпляр контракта как переменную, все они нене хорошо работает в частной сети.

Кто-нибудь когда-нибудь сталкивался с этой проблемой?помогите !!!

1 Ответ

0 голосов
/ 21 сентября 2018

сейчас, чтобы закрыть вопрос!я развернул свой контракт на испытательной сети Ropsten, и контракт работал хорошо.похоже, что моя частная сеть не поддерживала использование вызовов из другого контракта.любой желающий может попробовать.

...