Tengo un problema con el desarrollo de contratos inteligentes utilizando la solidez de Remix en una cadena de bloques privada de Geth. Tengo dos contratos inteligentes, como el contrato de fábrica y el contrato de contrato.
Creo el contrato de fábrica y luego llamo a las funciones createContract y getContract, funciona normalmente pero cuando llamo a la función getNum no puedo obtener el número.
Ejecuto este código en Remix solidity por JavaScript VM y Test network por Ganache o TestRPC funcionan bien, pero cuando lo uso con Private blockchain usando Geth tiene este problema
Aquí está mi código.
contract Factory {
address[] newContracts;
function createContract(uint num) {
address newContract = new Contract(num);
newContracts.push(newContract);
}
function getContract() view public returns(address[]) {
return newContracts;
}
function getNum(address _add) view public returns(uint) {
return Contract(_add).getNum();
}
}
contract Contract {
uint public Num;
function Contract(uint num) {
Num = num;
}
function getNum() public returns(uint) {
return Num;
}
}
En Contract
agregar modificador de vista agetNum
function getNum() public view returns(uint) {
return Num;
}
Sus llamadas funcionaron en ganache/testrpc/remix porque el EVM de prueba es de naturaleza síncrona. Es decir, podrá obtener valores de retorno de las transacciones, ya sendTransaction
que las llamadas se ejecutan al instante.
yoyó
yoyó
yoyó
ivicaa
yoyó
ivicaa
yoyó