Betrachten Sie diesen Vertrag
pragma solidity ^0.4.11;
contract GoodAndBad {
function exec(uint flag) public constant returns (uint) {
assert(flag == 1);
return 0;
}
}
Woher weiß ich, dass der Aufruf der Methode exec() mit web3.js oder geth JSON RPC erfolgreich war und ich eine Zahl erhalten habe?
Wenn dies nicht möglich ist, was ist die beste Vorgehensweise für die oben genannten Methoden?
Sie sollten verwenden event
, um das Ergebnis wie folgt zu bestätigen:
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;
}
}
und stellen Sie dann den Vertrag bereit, legen Sie einen Beobachter fest und rufen Sie die exec
Methode auf.
Schnitzer