So erkennen und ersetzen Sie die Transaktionsdetails, die lokal gespeichert sind, wenn der Benutzer die Transaktion mit Metamask mit einem höheren Preis erneut versucht

Für eine Webanwendung habe ich die Transaktions-ID einer Aktivität gespeichert. Wenn der Benutzer die Transaktion mit einem höheren Gaspreis in Metamask wiederholt (falls die Transaktion zu lange dauert, bietet Metamask diese Option), gibt es eine Möglichkeit, die aktuelle Transaktions-ID, die ich gespeichert habe, durch eine neue zu ersetzen. Wie kann diese Wiederholung erkannt werden. Gibt es dafür eine web3-Methode?

Antworten (1)

Wenn Sie möchten, dass dieselbe Transaktion nur mit einem höheren Gaspreis durchgeführt wird, müssen Sie die Transaktions-ID nicht ersetzen, da sich diese nicht ändert.

Der Aufruf einer Funktion in Ihrem Frontend mit web3.jsIhnen würde diesen Codeabschnitt verwenden

   function functionYouWantToCall() {
        web3.eth.getAccounts(function(error, result) {
        web3.eth.sendTransaction(
            {from:web3.eth.accounts[0],
            to: YourContractAddress,
            value:  "0", 
            data: "0xTheHashOfTheFuctionYouWantToCall"
                }, function(err, result) {
          if (!err)
            console.log(error); 
        });
    });

    } 

Um die Informationen zu finden, die Sie in das Datenfeld eingeben sollten, gehen Sie zu Remix und wählen Sie dann auf der Registerkarte "Ausführen" Details aus, scrollen Sie nach unten zu Funktions-Hashes und wählen Sie Einfügen in den Hash der Funktion, die Sie aufrufen möchten, mit davor 0x. Achten Sie auch darauf, Ihre eigene Vertragsadresse in das Feld Vertragsadresse einzugeben

aber die Wiederholung generiert eine neue Transaktions-ID, und die alte befindet sich immer im Wartezustand. Nach einiger Zeit wird diese ID aus Etherscan gelöscht. Gibt es eine Lösung, um die neue ID zu erhalten?
Machst du das mit einem Smart Contract, der in die Blockchain hochgeladen wurde?
Ja. mit einem hochgeladenen Smartcontract zu tun
Ich habe meine Antwort aktualisiert, hoffentlich sollte dies helfen