Gibt es in Solidity eine Möglichkeit, den Gaspreis während der Ausführung der Vertragsmethode zu ändern?
Zum Beispiel mit Assembly?
Aktuell
Es gibt keine Möglichkeit, den Gaspreis während einer Transaktion zu ändern.
Ein Beispiel für mögliche Schwierigkeiten ist, dass ein Versender einen Gaspreis von 20 Gwei mit 4 Mio. Gas versprechen und den Gaspreis nach 1 Mio. Gas auf 0 Wei senken könnte. Der Bergmann hat jetzt die Zeit verbraucht, um Transaktionsgas im Wert von 1 Million zu betreiben, kann es aber nicht sammeln, bis er die Transaktion abgeschlossen hat. Ihre Optionen sind:
Zukunft
Es gibt einen Vorschlag, eine Transaktion mit willkürlichen Gasmechanismen zuzulassen, EIP 101 , die für Serenity geplant ist. Die vorgeschlagene Lösung würde es ermöglichen, Gas mit anderen Währungen zu bezahlen und „Call Collect“ für kostenlose Transaktionen zu nutzen, wenn der Zielvertrag dies unterstützt. Kurz gesagt, es heißt, dass der Miner die potenzielle Transaktion für bis zu 50.000 Gas auf der Suche nach einer TX-Gebühr durchführt. Aus dem EIP:
Dieser Prozess stellt sicher, dass Miner höchstens 50000 Gas verschwenden, bevor sie wissen, ob es sich lohnt, die Transaktion einzubeziehen, und ist auch sehr allgemein, sodass Benutzer mit neuer Kryptographie (z. B. ed25519, Lamport), Quasi-Ringsignaturen, experimentieren können -native multisig usw. Theoretisch kann man sogar einen Account erstellen, dessen gültiger Signaturtyp ein gültiger Merkle-Zweig einer Quittung ist, wodurch quasi ein nativer Wecker entsteht.