Я пытаюсь использовать экземпляр договора в качестве переменной другого договора, например, в приведенном ниже примере.
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' в качестве параметра, он тоже не работал.
я также пробовал некоторые контракты, которые принимают другой экземпляр контракта как переменную, все они нене хорошо работает в частной сети.
Кто-нибудь когда-нибудь сталкивался с этой проблемой?помогите !!!