Ich möchte die Liste aller Transaktionen erhalten, die von/auf einem Konto in meiner privaten Blockchain durchgeführt wurden. Ich habe versucht, die Funktion zu verwenden
getTransactionsByAccount(accountAddress, startBlockNumber, endBlockNumber)
auf diesem Link gegeben . Das Problem bei dieser Methode besteht darin, dass bei Transaktionen, die eine Überweisung (von Beträgen) von einem Konto auf ein anderes beinhalten, die richtige Adresse im "Von"-Feld angegeben wird, aber eine falsche im "An"-Feld.
Also, ich möchte fragen, ob es eine andere Methode gibt, mit der wir den Transaktionsverlauf abrufen können???
contractAddress = "0x00.."
web3.eth.filter({
address: contractAddress
from: 1,
to: 'latest'
}).get(function (err, result) {
// callback code here
})
Ja, der oben erwähnte Ansatz funktioniert für Vertragsadressen. Leider gibt es in Web3js keine Methode, die uns bei dieser Aufgabe hilft. Aber so, wie ich es gemacht habe, ging ich von der 0-Blocknummer zu Latest. Während ich durchging, bekam ich alle Transaktionen, die in dem Block stattfanden, zusammen mit den Details der Transaktion.
Unten ist der Code:
Ich habe web3.eth.getBlock verwendet , um alle Transaktionen aus dem Block zu erhalten.
function getAccountTransactions(accAddress, startBlockNumber, endBlockNumber) {
// You can do a NULL check for the start/end blockNumber
console.log("Searching for transactions to/from account \"" + accAddress + "\" within blocks " + startBlockNumber + " and " + endBlockNumber);
for (var i = startBlockNumber; i <= endBlockNumber; i++) {
var block = eth.getBlock(i, true);
if (block != null && block.transactions != null) {
block.transactions.forEach( function(e) {
if (accAddress == "*" || accAddress == e.from || accAddress == e.to) {
console.log(" tx hash : " + e.hash + "\n"
+ " nonce : " + e.nonce + "\n"
+ " blockHash : " + e.blockHash + "\n"
+ " blockNumber : " + e.blockNumber + "\n"
+ " transactionIndex: " + e.transactionIndex + "\n"
+ " from : " + e.from + "\n"
+ " to : " + e.to + "\n"
+ " value : " + e.value + "\n"
+ " gasPrice : " + e.gasPrice + "\n"
+ " gas : " + e.gas + "\n"
+ " input : " + e.input);
}
})
}
}
}
Beispiel Transaktionsdetails auf Ropsten Etherscan
Transaktionen zu/von eth.accounts[0]-Adresse finden:
getTransactionsByAccount(eth.accounts[0])
endBlockNumber: 1575620
startBlockNumber: 1575619
Searching for transactions to/from account "0x87bae5d55603cfe2703062cea8bf76263fa0ca95" within blocks 1575619 and 1575620
tx hash : 0xd55f196cd4a41f518c84804ac6286972db1d0fa8e51d137e00299fb4906a51ab
nonce : 12044
blockHash : 0xdac37667bca025e8107cea79b6b9bc5c1d86ddbec5a8b13615a2ce70bec63e60
blockNumber : 1575620
transactionIndex: 0
from : 0x87bae5d55603cfe2703062cea8bf76263fa0ca95
to : 0x60b634cf459c6e88dfb2a52311199a8473ed85b5
value : 0.000909211685644988
gasPrice : 20000000000
gas : 21000
input : 0x
Ismael
Anchit Seth
Nikolaus
web3.eth.filter
ist nicht mehr verfügbar und ich konnte in den Dokumenten nichts finden, um das zu erreichen, wonach ursprünglich gefragt wurde.Ismael
Wunder