¿Dónde verificar el valor devuelto por la función en la billetera?

¿Dónde verifico el valor devuelto por una función en la billetera Ethereum (estoy usando la versión 0.8.3)?

He configurado una red de prueba y funciona bien. Entonces, después de llamar a una función de mi contrato desplegado, lo extraigo y se ejecuta la transacción. Veo en un evento que el valor devuelto es correcto.

ex.:

 function getMyvalue()  returns (uint256 valueInWeis)  {

    print(value); // event is printed correctly

    return value;

}

Aquí hay una captura de pantallacon mi transacción relacionada con una función llamada después de la ejecución

¿Dónde puedo ver el valor devuelto (sin tener que comprobar los eventos)?

Respuestas (1)

Si su función modifica el estado del contrato, siempre devuelve el hash de la transacción. No hay otra alternativa para obtener el valor de retorno que no sea usar events. Consulte ¿Cómo obtener valores devueltos por funciones de transacción no constantes?
Sin embargo, si su función no modifica el estado del contrato (como en su caso), probablemente debería usar constantfunciones.

function getMyvalue() constant returns (uint256 valueInWeis)  {

    print(value); // event is printed correctly

    return value;

}

¿Cuál es la diferencia entre una función marcada como constante y una que no lo es?

Las funciones constantes pueden realizar alguna acción y devolver un valor, pero no pueden cambiar de estado (el compilador aún no lo aplica). En otras palabras, una función constante no puede guardar ni actualizar ninguna variable dentro del contrato o de una cadena de bloques más amplia. Estas funciones se llaman usando c.someFunction(...) desde geth o cualquier otro entorno web3.js.

Las funciones "no constantes" (aquellas que carecen del especificador constante) deben llamarse con c.someMethod.sendTransaction({from:eth.accounts[x], gas: 1000000}); Es decir, debido a que pueden cambiar de estado, deben enviar un pago de gasolina para realizar el trabajo.