Ich erhalte eine Ausnahme, wenn ich getBalance in Remix aufrufe und der Vertragssaldo größer als 0 ist (d. h. ich habe etwas Ether mit der Fallback-Funktion gesendet):
Ausnahme während der Ausführung. (ungültiger Opcode). Bitte debuggen Sie die Transaktion für weitere Informationen.
Wenn der Vertragssaldo 0 ist, gibt getBalance korrekterweise 0 zurück.
pragma solidity ^0.4.0;
contract Test {
function() payable {}
function getBalance() public constant returns(uint bal) {
bal = this.balance;
return bal;
}
}
Es gibt keinen Fehler in Ihrem Code, denke ich, nachdem Sie eine Transaktion an Ihren Vertrag gesendet haben, indem Sie die Funktion verwenden, die Sie mit einem Nicht-Null-Wert fallback
aufrufen . getbalance
Während getbalance keine kostenpflichtige Funktion ist, erhalten Sie den erwähnten Fehler. Stellen Sie also nach dem Aufrufen von getbalance sicher, dass der Wert im Remix-Transaktionswert 0 ist:
Ich hatte ähnliche Probleme. Ich denke, es ist ein Browser-Cache-Problem. Versuchen Sie, die Seite zu aktualisieren, aber kopieren Sie zuerst die Vertragsadresse, damit Sie sie später ansehen können, indem Sie auf die Schaltfläche "An Adresse" klicken.
szerte