Considere este contrato
pragma solidity ^0.4.11;
contract GoodAndBad {
function exec(uint flag) public constant returns (uint) {
assert(flag == 1);
return 0;
}
}
¿Cómo sé que el método de llamada exec() usando web3.js o geth JSON RPC fue exitoso y recibí un número?
Si no es posible, ¿cuál es la mejor práctica para los métodos como el anterior?
Debe usar event
para confirmar el resultado, de la siguiente manera:
pragma solidity ^0.4.11;
contract GoodAndBad {
uint result = 0;
event onResult(bool flag,uint result);
function exec(uint flag) public returns (uint) {
if (flag != 1) {
result = 0;
onResult(false,result);
return;
}
result = 1;
onResult(true,result);
return result;
}
}
y luego implemente el contrato, establezca un observador y llame exec
al método.
tallista