我有一个数组,里面有很多事件。我从这些事件中获得了块号,但我也需要block.timestamp,它不是在events中返回的,而是通过获取块返回的。所以我想做这样的事情:
const getTimestamps = async (events) => {
const ethcallProvider = new Provider(provider);
await ethcallProvider.init();
const contractCalls = events.map((event) =>
provider.getBlock(event.blockNumber)
);
console.log(contractCalls);
const results = await ethcallProvider.all(contractCalls);
//console.log(results);
return results;
};我有数百个事件,所以能够使用类似于多个的东西来在一个调用中运行所有的getBlock函数是很有帮助的。或者,如果有一个多元的常用词,可以这样做,这也是可行的。谢谢!
发布于 2022-05-25 11:46:02
您可以使用ethers.providers.JsonRpcBatchProvider,它的JS相当于JsonRpcProvider。它只是将请求分批处理,以便在一个网络请求中将多个请求一起发送,而不是在其他情况下单独发送网络请求。您可以找到它的文档,这里。
https://ethereum.stackexchange.com/questions/128809
复制相似问题