Hier ist mein Vertrag
pragma solidity ^0.4.14;
contract Sample {
address private receiver;
uint public amount;
function pay(address _receiver, uint _amount) payable public returns (bool) {
receiver = _receiver;
amount =_amount;
receiver.transfer(amount);
return true;
}
}
Der Fehler, den ich bekomme, ist,
transact to browser/ballot.sol:Sample.pay errored: VM error: revert. revert Die Transaktion wurde in den Ausgangszustand zurückgesetzt. Debuggen Sie die Transaktion, um weitere Informationen zu erhalten.
Problem: Du versuchst mit dem Befehl Ether zu senden receiver.transfer(amount);
und gibst die Menge als Parameter an. Da Ihr Vertrag nicht über genügend Ether-Guthaben verfügt, wird die Transaktion rückgängig gemacht.
Lösung: Sie müssen genügend Ether in Ihrem Vertrag haben oder Sie sollten Ether zusammen mit dem Funktionsaufruf senden, um das Problem zu lösen.
Ändern Sie Ihren Smart Contract wie folgt, wenn Sie an eine Absenderadresse senden _amount
müssen_receiver
sender's
pragma solidity ^0.4.14;
contract Sample {
address private receiver;
uint public amount;
function pay(address _receiver) payable public returns (bool) {
receiver = _receiver;
receiver.transfer(msg.value);
return true;
}
}
Und Ihre Anruferfunktion wie folgt
sampleContract.pay(_receiver, {value : <value in wei>});
sruthi23
"address", "{value : 1000000000000000000}"
Manoj PR
sruthi23
Manoj PR
"<target address>"
und ändern Sie das Wertefeld, das im oberen Bereich des Panels angezeigt wird. Sie finden das Feld zusammen mit den Feldern Gaslimit, Gaspreis, Konto und Umgebung.sruthi23
Manoj PR
Manoj PR