Woher weiß ich, wie viel eine Vertragsbereitstellung kosten wird?

Ich versuche, einen Vertrag in Ethereum zu implementieren, aber ich erhalte immer wieder die Fehlermeldung „Kein Gas mehr“.

Wie kann ich im Voraus wissen, wie viele Ether ich benötige, um einen Vertrag einzusetzen?

Duplizieren und hier beantworten: ethereum.stackexchange.com/questions/799/…
Kein Benzin mehr kann eine Manifestation eines Konstrukteursfehlers sein. Wenn es irgendwelche erforderlichen Argumente oder einen anderen Grund dafür gibt, dass der Konstruktor fehlschlagen könnte oder möglicherweise ein ungültiger ByteCode vorliegt, kann der Fehler aufsteigen und als „Kein Gas“ angezeigt werden. Vielleicht posten Sie die Quelle, um zu sehen, ob jemand ein Problem erkennen kann.
Es beantwortet meine Frage nicht wirklich, es gibt diese Tabelle in dieser Antwort, die nur Low-Level-Programmierung erwähnt, wie kann ich meinen Code darauf basierend schätzen? Gibt es ein Tool, das die Kosten vorher berechnen kann oder so?
@Rob gibt es kein Tool, um dies zu berechnen?
Der einfachste Weg, dies festzustellen, besteht darin, den Vertrag einfach auf testrpc oder dem Testnetz bereitzustellen und zu sehen, wie viel er kostet
Gibt es dafür ein Online-Tool? Ich bin nicht mit dem Netzwerk auf meinem PC synchronisiert
@DakotaQuint Was Tjaden gesagt hat, oder den Quellcode in Remix einfügen und sehen, was er schätzt. Beides wird funktionieren. In jedem Fall kann „Außer Gas“ irreführend sein. Wenn es ein Problem mit der Vertragsbereitstellung gibt, reicht keine Benzinmenge aus, also weisen wir Sie darauf hin. Ich versuche nicht, das Problem zu verwirren.

Antworten (1)

Ein Online-Tool (keine Synchronisierung, keine Installation) ist Remix alias Browser Solidity.

https://ethereum.github.io/browser-solidity

Im Screenshot unten kostete die Bereitstellung eines trivialen Vertrags namens „Mortal“ 319.273 Gas.

Geben Sie hier die Bildbeschreibung ein

Ich hoffe es hilft.

Aber mein Vertrag umfasst andere kleine Verträge und andere Verträge, die ich über npm installiert habe. Sieht so aus, als wäre Remix in diesem Fall nicht sinnvoll.
Danke @Rob Das ist hilfreich. Wie können wir dies programmatisch tun?
Es gibt mehrere Plattformen, die Sie verwenden könnten. Hardhat wurde speziell für das Testen und Bereitstellen von Verträgen entwickelt. Es gibt auch Trüffel. Mit beiden können Sie Bereitstellungsprozesse in JavaScript ausschreiben. (Übermäßige Vereinfachung)npx hardhat deploy --network kovan