Zwei Uniswap-Txns rufen auf, swapExactETHForTokens
die bis auf den Wert und den Gaspreis fast identisch sind (sogar mit demselben Zeitstempel), aber der mit dem höheren Wert und Gaspreis hat kein Benzin mehr und verbraucht viel mehr Gas als der andere . Der einzige andere Unterschied ist natürlich ein proportional unterschiedlicher amountOutMin
.
Angesichts der Tatsache, dass der Wert des fehlgeschlagenen Swaps kleiner als x2 des anderen ist, während sein Gaspreis x10 beträgt, warum scheitert er?
Ich habe oben verlinkt, aber das sind die txns:
Das ist mir jetzt schon zweimal passiert. Das andere Mal war viel weniger Wert, aber immer noch x10 Gaspreis über dem txn , der vollständig abgebaut wurde (obwohl dieser txn aus einem anderen Grund fehlschlug - unzureichende Produktionsmenge).
Irgendeine Idee, was dazu führen könnte, dass den ausfallenden TXNs das Benzin ausgeht (und sogar viel mehr Benzin verbraucht ), da sie gleichzeitig praktisch identisch mit einem erfolgreichen Swap sind, aber mit einem viel höheren Gaspreis?
Auch die internen txns sind zwischen den txns jeweils identisch.
Transaktionen haben ein Gaslimit und ein Gaspreisfeld. Wenn Ihrer Transaktion das Gas ausgeht, müssen Sie das Gaslimitfeld erhöhen, nicht das Gaspreisfeld.
Die von einer Transaktion verbrauchte Gasmenge kann variieren, je nachdem, welcher Code ausgeführt wird und wie viele Daten in die Blockchain geschrieben oder aus ihr entfernt werden. Sie finden die Details im gelben Papier, aber ein einfaches Beispiel: Wenn eine vorherige Transaktion einen Wert auf Null setzt und Ihre Transaktion ihn auf einen Wert ungleich Null setzt, erfordert Ihre Transaktion 15000 Gas mehr, als wenn die vorherige Transaktion nicht stattgefunden hätte .
Ihre Brieftasche kann nicht vorhersagen, wie sich der Vertragsstatus zwischen dem Zeitpunkt, an dem Sie die Transaktion senden, und dem Zeitpunkt, an dem sie bestätigt wird, ändern wird, daher verwendet sie den aktuellen Vertragsstatus, um die erforderliche Gasmenge zu berechnen.
Wenn Sie eine Transaktion an einen ausgelasteten Vertrag mit vielen anderen Benutzern senden, sollten Sie das Gaslimit über das hinaus erhöhen, was Ihre Brieftasche vorschlägt. Wenn die Transaktion am Ende weniger Benzin verbraucht als Ihr Gaslimit, wird Ihnen die Differenz automatisch erstattet. Abgesehen von gebrochenen Verträgen schadet es nicht, einfach Ihr Gaslimit um 100.000 zu erhöhen, damit Ihre Transaktion bestätigt wird.
ich hoffe das hilft
gute Stimmung
Neo
gute Stimmung
gute Stimmung
Neo
amountOutMin
und den Gaspreis praktisch identisch sind. Schlagen Sie vor, dass diese speziellen Eingaben eine so große Diskrepanz zwischen zwei ansonsten identischen TXNs verursachen könnten?gute Stimmung
Neo