[英]How to use filters with web3py to get event logs for a smart contract?
我正在寻找智能合约的事件日志,我正在使用Infura节点。 根据这里提供的文档,我尝试了运行
new_block_filter = web3.eth.filter('latest')
我认为应该这样
new_block_filter = w3.eth.filter('latest')
其中w3应该是这样的
w3 = Web3(HTTPProvider("https://mainnet.infura.io/v3/infura-project-id"))
但是文档中有错误。 无论如何我尝试了这个,我相信这是创建过滤器的最简单方法以及这里提到的方法。
这两个都会导致错误
回溯(最近一次调用最后一次):文件“”,第1行,在文件“/home/username/.local/lib/python3.6/site-packages/web3/eth.py”,第333行,在过滤器中[filter_params ],文件“/home/username/.local/lib/python3.6/site-packages/web3/manager.py”,第112行,在request_blocking中引发ValueError(response [“error”])
ValueError:{'code': - 32601,'message':'方法eth_newFilter不存在/不可用'}
有关如何创建和使用这些过滤器的任何想法,以及在知道主题参数时如何获取智能合约的事件日志。
错误消息表示它所说的内容。 Infura不支持通过HTTPS的RPC方法eth_newFilter
,这是您的代码最终调用的方法。
我相信如果你通过WebSocket连接相同的代码应该工作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.