Web3.js - 来自最近 10000 个区块的 getPastEvents('transfer') 事件



我正在检索solidity合同的转移事件。调用getPastEvents方法和参数fromBlock 0适用于localhost区块链,但在Polygon主网上,有10K块扫描限制,因此我只需要扫描最后的10K块。

我这样调用方法⬇️


const scanFromBlock = (
await this.web3.eth.getBlock(
(await this.web3.eth.getBlock('latest')).number - 10000
)
).number
const transactions = await contract.getPastEvents('Transfer', {
filter: {
fromBlock: scanFromBlock,
from: options.from as string,
to: options.to as string
}
})

但我收到了这个错误,所以我认为还有其他方法可以正确地调用它,我已经阅读了ethers文档、Web3.js文档,但要么我是盲人,要么我是傻瓜。

你经历过吗?

Error: Returned error: Errors encountered in param 0: Invalid value "-0x26d7" supplied to : (QUANTITY | "earliest" | "latest" | "pending")/0: QUANTITY, Invalid value "-0x26d7" supplied to : (QUANTITY | "earliest" | "latest" | "pending")/1: "earliest" | "latest" | "pending"

解决方案是使用"最早";,这将自动检测扫描开始的最早可能的块

但是,我仍然不知道是否有其他方法可以从特定的块号开始。

相关内容

  • 没有找到相关文章

最新更新