ethers.js 查询指定区块

在Ethers.js中,你可以使用provider.getBlock(blockHashOrBlockNumber)方法来查询指定的区块信息。这里是一个简单的例子,展示如何使用Ethers.js查询特定区块的信息:

const { ethers } = require("ethers");
 
// 创建一个provider实例,连接到以太坊主网
const provider = new ethers.providers.InfuraProvider("mainnet", "<YOUR_INFURA_PROJECT_ID>");
 
// 指定要查询的区块号或哈希
const blockNumberOrHash = 1234567; // 或者使用区块哈希: "0xabcdef..."
 
// 获取区块信息
async function getBlockInfo(blockNumberOrHash) {
  try {
    const block = await provider.getBlock(blockNumberOrHash);
    console.log(block);
  } catch (error) {
    console.error("Error fetching block: ", error);
  }
}
 

确保替换<YOUR_INFURA_PROJECT_ID>为你的Infura项目ID,这样才能连接到以太坊网络。你也可以使用其他provider,如ethers.getDefaultProvider(),但需要确保你的节点是同步的并且可访问的。

上述代码中,getBlockInfo函数接受一个blockNumberOrHash参数,你可以传递区块号或者区块哈希来查询特定的区块。函数使用provider.getBlock异步获取区块信息,并打印结果。如果发生错误,会捕获错误并打印。