Wo kann der von der Funktion in der Brieftasche zurückgegebene Wert überprüft werden?

Wo überprüfe ich den Wert, der von einer Funktion in der Ethereum-Brieftasche zurückgegeben wird (ich verwende v. 0.8.3)?

Ich habe ein Testnetz eingestellt und es funktioniert gut. Nachdem ich also eine Funktion meines bereitgestellten Vertrages aufgerufen habe, baue ich darauf und die Transaktion wird ausgeführt. Ich sehe aus einem Ereignis, dass der zurückgegebene Wert korrekt ist.

ex.:

 function getMyvalue()  returns (uint256 valueInWeis)  {

    print(value); // event is printed correctly

    return value;

}

Hier ist ein Screenshotmit meiner Transaktion, die sich auf eine Funktion bezieht, die nach der Ausführung aufgerufen wird

Wo kann ich den zurückgegebenen Wert sehen (ohne die Ereignisse überprüfen zu müssen)?

Antworten (1)

Wenn Ihre Funktion den Vertragsstatus ändert, gibt sie immer Transaktionshash zurück. Es gibt keine andere Alternative, um den Rückgabewert zu erhalten, als events. Siehe So erhalten Sie Werte, die von nicht konstanten Transaktionsfunktionen zurückgegeben werden?
Wenn Ihre Funktion jedoch den Vertragsstatus nicht ändert (wie in Ihrem Fall), sollten Sie wahrscheinlich constantFunktionen verwenden.

function getMyvalue() constant returns (uint256 valueInWeis)  {

    print(value); // event is printed correctly

    return value;

}

Was ist der Unterschied zwischen einer Funktion, die als konstant gekennzeichnet ist, und einer, die es nicht ist?

konstante Funktionen können einige Aktionen ausführen und einen Wert zurückgeben, aber den Status nicht ändern (dies wird vom Compiler noch nicht erzwungen). Mit anderen Worten, eine konstante Funktion kann keine Variablen innerhalb des Vertrags oder der breiteren Blockchain speichern oder aktualisieren. Diese Funktionen werden mit c.someFunction(...) von geth oder einer anderen web3.js-Umgebung aufgerufen.

„nicht konstante“ Funktionen (solche, denen der konstante Bezeichner fehlt) müssen mit c.someMethod.sendTransaction({from:eth.accounts[x], gas: 1000000}) aufgerufen werden; Das heißt, weil sie den Status ändern können, müssen sie eine Gaszahlung mitschicken lassen, um die Arbeit zu erledigen.