Hinterlegen Sie Ether in einem Vertrag

Sep 30 2020

Ich habe meinem bereitgestellten Vertrag die folgenden drei Funktionen hinzugefügt, wie im Artikel beschrieben https://programtheblockchain.com/posts/2017/12/15/writing-a-contract-that-handles-ether/

Ich habe Remix auf Rinkeby bereitgestellt. Wenn ich in Remix 1 Ether in die Einzahlungstransaktion eingebe, wird der Fehler "Gasschätzung fehlgeschlagen" angezeigt.

Warum erzeugt die Einzahlungsfunktion einen Fehler?

Vielen Dank

Funktion entfalten () public {msg.sender.transfer (Adresse (this) .balance); }}

function deposit(uint256 amount) payable public {
    require(msg.value == amount);
    // nothing else to do!
}

function getBalance() public view returns (uint256) {
    return address(this).balance;
}

Aktualisieren

Ich habe versucht, eine Fallback-Funktion zu verwenden, aber Remix mag sie nicht.

Pragma-Solidität> = 0,4,0 <0,7,0;

Vielen Dank

Antworten

1 Picard78 Sep 30 2020 at 15:48
  1. Ich habe die folgende Fallback-Funktion verwendet und es hat funktioniert.

receive() external payable {}

  1. Dieser Beitrag war genau das, wonach ich in meiner ursprünglichen Frage gesucht habe. Jetzt funktioniert alles gut.

Wie senden Sie Ether als Funktion mit Remix an einen Vertrag?