Woher kam dieser Äther?

Schauen wir uns diese Adresse auf Etherscan an: https://etherscan.io/address/0xfbe0aFcd7658BA86be41922059dD879C192D4c73 Die erste Transaktion ist eine Smart Contract-Erstellung, die etwa 15 ETH kostet. Kann nicht verstehen, wo eine solche Adresse dieses Guthaben hat.

Antworten (2)

Tatsächlich kostete die Erstellung des Smart Contracts keine 15 ETH, aber 15 ETH wurden als Wert an den Smart Contract weitergegeben. Der Smart Contract enthielt also 15 ETH, als er erstellt wurde.

Aber für die eigentliche Frage wurde es vom Maining belohnt. Sie können es unter https://etherscan.io/address/0xfbe0afcd7658ba86be41922059dd879c192d4c73#mine sehen .

Darüber hinaus konnte der Benutzer weitere 15 ETH senden, da die Konstruktorfunktion für den Vertrag den payableModifikator hatte.

In Ethereum gibt es zwei Konten, eines ist ein Wallet-Konto, das vom Benutzer zum Senden und Empfangen von Ether und zum Erstellen von Smart Contracts verwendet wird, ein anderes ist ein Vertragskonto.

Für jede zahlbare Transaktion speichert der Ether im Vertragskonto. "bezahlbar" ist das Schlüsselwort in der Solidität. Die Funktionen, in denen zahlbar erwähnt/definiert wird, müssen vom Benutzer bezahlt werden, um diese Funktion aufzurufen, diese Funktion ist als zahlbare Funktion bekannt.

In diesem Vertrag ist der Konstruktor also zahlbar und der Benutzer hat beim Aufrufen des Konstruktors 15 gesendet und im Vertragskonto gespeichert. Die 15 eth werden vom Benutzer-Wallet-Konto abgezogen.

Bei Ethereum gibt es keine „zahlbare Transaktion“. Der Benutzer muss nichts bezahlen, um eine kostenpflichtige Funktion aufzurufen, er kann den Wert 0 senden und es wird trotzdem funktionieren.
Ja das ist richtig! Es nimmt 0 Ether als Wert.
Ja das ist richtig! Es nimmt 0 Ether als Wert. Sie können Bedingungen wie require(msg.value == 1 ether); versuchen Sie dies in Remix, Konstruktor () zahlbar {require (msg.value == 1 ether); }