Web3 JS 如何从区块中获取交易

Web3 JS How to get transactions from the block

基本上我是运行这些命令:

var blocknumber = await web3.eth.getBlockNumber();
var transaction = await web3.eth.getTransactionFromBlock(blocknumber, 0)
console.log(transaction)

但是无论迭代器如何,事务都不会得到任何输出。块号获取正确,我也可以通过 web3.eth.getBlock(blocknumber) 获取块,但由于某些原因无法获取交易。

我该如何调试它?

看来供应商根本不允许这种方法。

错误:无效 JSON RPC 响应:“\n403 禁止

这是你想要的代码朋友:

async function GetTransactions(){
    latestBlock=await web3.eth.getBlockNumber()
    Block =await web3.eth.getBlock(latestBlock)

    Block.transactions.forEach(async(transactionAddress) => {
        let t=await web3.eth.getTransaction(transactionAddress)
        console.log(t)
    })
}
GetTransactions()

这将给出最新区块的交易。

此外,在 latestBlock 中,您可以传递任何 Block Number 以获取其所有交易详细信息。 一个区块有大约 10 个交易地址,通过 web3.eth.getTransaction(transactionAddress) 你可以得到该交易的详细信息。

参考:https://web3js.readthedocs.io/en/v1.7.3/web3-eth.html