Wo finde ich meine ausstehenden Transaktionen?

Ich wollte wissen, wo ich die aktuelle ausstehende Transaktion für ein Konto finden kann, das nicht festgeschrieben ist. Ist es überhaupt möglich? Wie kann ich Transaktions-Hashes für ausstehende Transaktionen erhalten? Irgendeine API für diesen Zweck?

Antworten (2)

Nun, ich kenne einen Weg, der funktionieren sollte.

Verwenden Sie die web3js- oder Geth-Konsole und rufen Sie eine beliebige Funktion/Transaktion auf. Wenn Sie die .sendTransaction()Methode verwenden, wird der Transaktions-Hash zurückgegeben, den Sie dann verwenden, um Ihren Transaktionsstatus nachzuschlagen.

Als nächstes können Sie mit der Etherscan-API den Transaktionsendpunkt verwenden:

https://etherscan.io/api?module=localchk&action=txexist&txhash=<<TX HASH>>

Die Antwort sollte wie folgt aussehen:

{"status":"1","message":"OK","result":"False"}

Verwenden Sie als Nächstes die Etherscan-Transaktions-API. Es wird Ihnen nicht sagen, ob es anhängig ist, aber wenn die Transaktion ein Erfolg/Fehler war, wird es eine andere Antwort zurückgeben:

https://api-rinkeby.etherscan.io/api?module=transaction&action=getstatus&txhash=<<TX HASH>>&apikey=<<API KEY>>

{"status":"1","message":"OK","result":{"isError":"0","errDescription":""}}

Wenn isErrorja, 0dann war es erfolgreich/ Wenn isErrorist, 1dann ist die Transaktion fehlgeschlagen.

Um es zusammenzufassen, solange Sie den Transaktions-Hash von erhalten .sendTransaction()(damit Sie wissen, dass es sich um eine gültige Transaktion handelt), können Sie jetzt den ersten Endpunkt mit erreichen ?action=txexists, der zurückgegeben wird, wenn der tx existiert. Dann können Sie den zweiten Endpunkt erreichen, um zu sehen, ob der TX erfolgreich war oder fehlgeschlagen ist. Bevor Sie also den zweiten Endpunkt erreichen müssen, wissen Sie, dass der TX aussteht, da er noch nicht existiert.

Wenn die obige Methode für Sie zu verwirrend ist, finden Sie unten, wie Etherscan.io derzeit ausstehende Transaktionen erhält.

Ich habe es aus dem Quellcode ihrer Website gezogen.

var interval;
var loopcounter = 1;

// startTxPendingCheck is a global window variable set by another script

if (startTxPendingCheck) {
    var div = document.getElementById('spinnerwait');
    div.style.display = 'block';
    interval = setTimeout(checkForConfirmedTx, 2000);
    function checkForConfirmedTx() {
        if (loopcounter < 45) {
            $.ajax({
                url: "/api?module=localchk&action=txexist&txhash=" + txHash,
                type: "GET",
                success: function(data) {
                    if (data.result == "True") {
                        window.location.href = "/tx/" + txHash;
                    }
                },
                dataType: "json"
            })
            loopcounter = loopcounter + 1;
            interval = setTimeout(checkForConfirmedTx, 20000);
        } else {
            stopInterval();
        }
    }
    function stopInterval() {
        console.log("stopInterval called");
        var div = document.getElementById('spinnerwait');
        div.style.display = 'none';
        clearTimeout(interval);
    }
    function startInterval() {
        console.log("startInterval called");
        clearTimeout(interval);
        var div = document.getElementById('spinnerwait');
        div.style.display = 'block';
        interval = setTimeout(checkForConfirmedTx, 5000);
    }
}

Um alle Ihre ausstehenden Transaktionen zu finden, gehen Sie zu https://etherscan.io/ und suchen Sie nach Ihrer Kontoadresse . Sie erhalten dort alle Transaktionen mit ihren Statuten. Außerdem bietet Ihnen Etherscan eine API , um all diese Details zu erhalten.

Diese API zeigt meiner Meinung nach nur die Transaktionen an, die festgeschrieben sind, nein?