[英]how to get transaction history from blocks via web3?
我現在有一個私有鏈,我想查詢交易歷史。我知道 web3 提供了這些方法web3.eth.blockNumber / web3.eth.getBlockTransactionCount / web3.eth.getTransactionFromBlock 。 所以我可以通過獲取最新的塊號(假設它是 n)來獲取交易歷史記錄。 范圍從 n 到 0 調用 web3.eth.getBlockTransactionCount(i),然后通過 web3.eth.getTransactionFromBlock 獲取交易。 但這只是浪費時間且效率低下。 所以我想知道如何通過 web3 或 rpc 或其他方式從有效的塊中獲取交易歷史記錄?
對於每個塊,您可以將true
作為第二個參數傳遞給getBlock
:
web3.eth.getBlock(blockHashOrBlockNumber [, returnTransactionObjects] [, callback])
此代碼將按塊號提供Transactions
詳細信息。
async function GetBlocks(BlockNumber){
Block =await web3.eth.getBlock(BlockNumber)
Block.transactions.forEach(async(transaction) => {
let t=await web3.eth.getTransaction(transaction)
console.log(t)
})
}
GetBlocks(26154210)
如果你有塊數組。 例如塊=[10000,10001,10002,10003...]。 然后像這樣使用 for 循環:-
Blocks.forEach(e => {
GetBlocks(e)
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.