1

我正在尝试构建一个机器人来侦听各种链的 AMM 上的事件,并且在尝试为雪崩网络构建算法时遇到了问题。getLogs为特定事件调用函数时,程序会随机崩溃并出现以下错误

ValueError: {'code': -32000, 'message': 'requested to block ... after last accepted block ...'}

我的程序只检索到latest块的日志,所以我不确定为什么会发生这个错误(我认为它与 avax 节点达成共识的方式有关)。我对 web3.py 编程和一般的雪崩区块链仍然很陌生,所以如果有人知道为什么会发生这种情况,或者我如何在运行之前验证一个块是否被接受,getLogs那么我将非常感激!

4

1 回答 1

0

我不知道您是否找到了解决方案,但这里有一个适合您的解决方案。您必须获取智能合约的 ABI 及其地址才能运行它。

contract = web3.eth.contract(address=ContractAddress, abi=abi)
my_filter = contract.events.<YOUR_EVENT>.createFilter(fromBlock='latest')
entries = my_filter.get_all_entries()

顺便说一句,我刚刚在 3 个月前开始了我的 Web3 冒险,比如你的 :) 并且还尝试构建一个机器人,但它是网络上最受欢迎的游戏。问题是我刚刚发现,根据对速度的需要,一个人可能需要自己的节点才能使其机器人尽可能快。

于 2022-02-20T09:34:21.133 回答