Ihr Konstruktor ist es nicht payable
.
Vertragsfunktionen lösen aus, wenn Ether gesendet wird und die Funktion nicht explizit als markiert ist payable
. Dies hilft zu verhindern, dass Ether in Verträgen hängen bleibt, die es nicht erwartet haben und keine Auszahlungsfunktion haben, um es zurückzubekommen.
Da Funktion MyToken(
.... nicht ist, payable
schlägt die Bereitstellung selbst mit einer Ausnahme fehl, wenn unerwünschtes/unerwartetes Ether ankommt.
Das kannst du mit lösen
function MyToken(...) payable {}
Wie ich sehe, haben Sie eine payable
Fallback-Funktion, mit der Sie den Kontakt bereitstellen und dann Geld an die Vertragsadresse senden können.
Auf den ersten Blick scheint dieser Vertrag keine Möglichkeit zu haben, an ihn gesendete Ether zurückzugewinnen, sodass er nach der Übertragung effektiv verbrannt wird. Dies zeigt in der Tat, dass es für Designer wichtig ist, darüber nachzudenken, wie Ether ein- und ausgeht und warum es wünschenswert ist, unerwünschte Einnahmen zu verhindern.
Ich hoffe es hilft.
Danke für die Antwort; Ich habe noch eine Frage an euch: Warum wird die Fallback-Funktion aufgerufen, obwohl ich beim Start 0 Ether schicke?
Ajoy Bhatia