In einer früheren Version von web3js war es nur
document.write(web3.eth.blockNumber + "<br><br>");
und es wird in dem Abschnitt der Seite ausgegeben, in dem sich das Skript befindet, wie im Infura-Beispiel-Tutorial hier zu sehen ist
Aber in v1.0.0 gibt es "undefiniert" zurück und zeigt das auf dem Bildschirm an.
aus der Dokumentation ist die neue Methode getBlockNumber
web3.eth.getBlockNumber([callback])
Ich habe versucht
web3.eth.getBlockNumber(function (error, result) {
if(!error)
{
console.log(result);
document.write(result);
}
else{
console.log(error);
}
});
Aber das hat einfach alles andere HTML von der Seite entfernt und die Blocknummer geschrieben.
Ich möchte nur die aktuelle Blocknummer an einem bestimmten HTML-Element auf dem Bildschirm ausgeben können. Kann mir jemand helfen?
Ich kenne kein Javascript, also ist web3 offensichtlich ein bisschen ein Kampf für mich. Ich habe immer noch Probleme, mich mit Versprechungen, Rückrufen usw. zu befassen.
Grundsätzlich denke ich, dass mein Problem nicht versteht, warum diese Methode einen Rückruf erfordert oder was der Rückruf sein soll.
Ich würde wirklich jede Hilfe schätzen. Danke Leute.
Erstellen Sie ein div-Element (in diesem Fall ist es ein div mit der ID „blockNumber“) in Ihrer index.html-Datei, um die Blocknummer zu speichern:
<div id="blockNumber"></div>
Versuchen Sie dann Folgendes in Ihrem Front-End-JS-Code:
setInterval(function () {
// block number of latest mined block
web3.eth.getBlockNumber().then(data => {
document.getElementById('blockNumber').innerHTML = data;
});
}, 3000);
Hinweis: Wenn Sie nur einmal die neueste Blocknummer erhalten möchten, setzen Sie den obigen Code in eine normale Funktion ohne Zeitintervall.