Kann ein Nachrichtenanruf den Gaspreis der ursprünglichen Transaktion ändern?

Kann ein Nachrichtenanruf den Gaspreis der ursprünglichen Transaktion ändern?

EOAs können eine Vertragsfunktion mittels einer Transaktion aufrufen. Verträge können sich jedoch in der Ausführungsumgebung gegenseitig aufrufen.

Können Nachrichtenanrufe das Gaslimit und den Gaspreis der ursprünglichen Transaktion ändern? Wenn ja, wie würde ich es in Solidity machen?

Antworten (1)

Sie können ein Limit für das Gas festlegen, das an den nächsten Vertrag weitergeleitet wird, aber Sie können den Gaspreis nicht ändern oder zu viel ausgeben. Das heißt, an dem Punkt, an dem Sie Gas an einen anderen Vertrag weiterleiten, sind Sie auf die Menge an nicht verbrauchtem Gas beschränkt, die in dieser Phase der Ausführung vorhanden ist.

Hier ist eine kleine Syntax "durch Beispiel":AbstractB(addressB).setX.value(1 ether).gas(10000)();

inspiriert von:

Wie kann ich Gas/Wert angeben, wenn ich einen Anruf mit abstrakten Verträgen tätige?

Ich hoffe es hilft.

Vielen Dank - wenn also ein Limit für die Gasmenge festgelegt ist, die der nächste Vertrag ausgeben kann, darf der aktuelle Vertrag dann das ungenutzte Gas ausgeben?
Nicht verbrauchtes Gas wird zurückgeführt. Standardmäßig erhält der Angerufene das gesamte verfügbare Gas. Ausnahme ist sendund transferdie jetzt nur ein Stipendium von 2300 als Protokollverteidigung gegen Rwentrance-Angriffe erhalten.
Falls es unklar ist, sollte der Anrufervertrag, sofern das Limit ausreichend war, im nächsten Schritt in jedem Fall mit dem gleichen verfügbaren Nettoguthaben enden.
Was ist, wenn der angerufene Vertrag kein Gas mehr hat und mit beispielsweise nur der Hälfte des verbleibenden Gases des Anrufers angerufen wurde? Hat der Anrufer in diesem Fall eine Chance sich zu erholen?
Ich glaube, der Fehler wird sprudeln und die Transaktion rückgängig machen - alles schlägt fehl.