监听合约事件时出现filter not found错误

def listenEvent(self):
        eventFilter = self.saleNewContract.events.SellPlayer.createFilter(fromBlock='latest')

        loop = asyncio.get_event_loop()
        try:
            loop.run_until_complete(
                asyncio.gather(
                    self.logLoop(eventFilter, 0.5)
                )
            )

async def logLoop(self, eventFilter, pollInterval):
        while True:
            try:
                events = eventFilter.get_new_entries()
                for event in events:
                    self.handleEvent(event)

                await asyncio.sleep(pollInterval)

            except ValueError as e:
                print(e)
                continue

运行一段时间后出现错误:

valueerror: {'code': -32000, 'message': 'filter not found'}

我看了下,是eventFilter这个空了,所以才出错,找不到filter。推测是一段时间后没检测到最新的事件就会出错?

各位大佬知道怎么解决吗?

请先 登录 后评论

1 个回答

Tiny熊
  擅长:智能合约,以太坊
请先 登录 后评论
  • 1 关注
  • 0 收藏,3586 浏览
  • fusae_js@163.com 提出于 2021-12-19 12:24