Maximaler Gasverbrauch beim Aufruf einer Vertragsmethode

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.

Antworten (2)

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:

Geben Sie hier die Bildbeschreibung ein

Hier sehen wir trasaction cost& execution cost. Alles, was du brauchst. Hoffe das hilft.

Danke! Ich glaube, das ist genau das, wonach ich gesucht habe. Ich habe meinen ursprünglichen Beitrag bearbeitet und einen bestimmten Anwendungsfall hinzugefügt, kurz bevor ich Ihre Antwort gesehen habe. Um zu verstehen, gibt es in einem Fall, in dem sich das durch Aufrufen einer Methode verbrauchte Gas abhängig von bestimmten Bedingungen ändert, eine Möglichkeit, das maximal verbrauchte Gas zu überprüfen - angenommen, die Methode sagt: Wenn vor Blocknummer X A ausgeführt wird (was 100000 Gas verbrauchen würde) und wenn nach Block Nummer X B (was 150000 Gas verbrauchen würde)?
Cool, möchtest du die Frage als beantwortet markieren, damit andere Benutzer Bescheid wissen? Um genau diesen Fall zu testen, würde ich mir entweder das manuelle Erstellen von Blöcken durch Senden vieler Transaktionen ansehen oder den Environmentverwendeten ändern, um einen eigenen Anbieter zu haben, dh Injected 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önnen block height.

Gemäß der von Ihnen verlinkten Frage estimateGasist 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 estimateGaswird 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.

Ich meinte ungenau in dem Sinne, dass es von anderen Dingen wie Blocknummer usw. abhängt, die nicht im Voraus bekannt sind Anwendungsfall.
Ich verstehe. Mir ist kein Tool bekannt, das eine solche Analyse anbietet.