Ich möchte den maximalen Gasverbrauch (Mindestgrenze für sicheres Gas, der nicht fehlschlägt) bewerten , den das Aufrufen einer bestimmten Vertragsmethode verbrauchen würde, vorausgesetzt, ich habe den Vertragsquellcode / Bytecode .
Ich erinnere mich, dass ich vor ein paar Monaten eine Website gesehen habe, auf der Sie den Soliditätscode eingeben können und die berechnet, wie viel Gas dieser Code verbrauchen würde, aber ich kann diese Website nirgendwo finden.
Nur zur Verdeutlichung - ich weiß, dass es in der API eine Methode gibt, die den Gasverbrauch der Transaktion schätzen kann, was nur eine Schätzung ist, da sie auf den Variablen basiert, die sich ändern können (wie Blocknummer usw.) , aber ich spreche vom maximalen Gasverbrauch sofern der Vertrag Quellcode/Bytecode bekannt ist.
Gibt es eine Website, die das berechnet?
UPDATE MIT ANWENDUNGSFALL:
Wie kann ich für den Vertrag von EtherDelta ( Link ) bestimmen, was der maximal mögliche Gasverbrauch für den Aufruf einer bestimmten Methode wäre (z.
Ich denke, Sie spielen auf den Online-Remix-Compiler für Solidity an. Auf diese Weise können Sie leicht sehen, wie viel Gas eine Transaktion für eine Funktion benötigt/ausgibt.
Wenn Sie eine Zustandsänderungsfunktion ausführen und dann die Details der Transaktion überprüfen, erhalten Sie weitere Informationen. Bitte sehen Sie sich das folgende Beispiel an:
Hier sehen wir trasaction cost
& execution cost
. Alles, was du brauchst. Hoffe das hilft.
Gemäß der von Ihnen verlinkten Frage estimateGas
ist die RPC-Methode völlig genau, abgesehen von Dingen, die sich zwischen der Durchführung der Schätzung und der Verarbeitung der Transaktion ändern können. Wenn das Gas, das in dem Vertrag verwendet wird, den Sie anrufen, nicht aufgrund solcher Dinge variiert (z. B. andere übermittelte Transaktionen, die Blocknummer/Hash usw.), dann estimateGas
wird Ihnen eine genau korrekte Nummer angezeigt.
Den Quellcode zu haben, hilft hier nicht, außer für Ihr eigenes Verständnis; Sie würden trotzdem lieber den Bytecode verwenden.
Amit
Malone
Environment
verwendeten ändern, um einen eigenen Anbieter zu haben, dhInjected Web3
. Auf diese Weise können Sie genauer steuern, in wie vielen Blöcken Sie sich befinden. Auf diese Weise sollten Sie die Bedingungen einfacher testen könnenblock height
.