我正在尝试使用web3 py从本地ethereum节点筛选传输事件。我在visual代码中创建了一个venv。我的代码如下:
def decodeLogswithfilter(t1, t2, abi1, addr):
mycontract = geth.eth.contract(address=addr, abi=abi1)
filter = mycontract.eventFilter(
'Transfer', {'fromBlock': t1, 'toBlock': t2})
eventlist = filter.get_all_entries
print(eventlist)
decodeLogswithfilter(start, ending_block,
abi['result'], geth.toChecksumAddress(current_addr))我也尝试过使用createFilter,但是它给我的错误与Contract没有属性eventFilter相同。
Traceback (most recent call last):
File "/mnt/ssd/erc721/queryBlockchain.py", line 150, in <module>
abi['result'], geth.toChecksumAddress(current_addr))
File "/mnt/ssd/erc721/queryBlockchain.py", line 71, in decodeLogswithfilter
filter = mycontract.eventFilter(
AttributeError: 'Contract' object has no attribute 'eventFilter'我还试着按照在线建议升级我的web3包,但是错误没有解决。
发布于 2020-04-10 17:57:33
替换
filter = mycontract.eventFilter(
'Transfer', {'fromBlock': t1, 'toBlock': t2})
eventlist = filter.get_all_entries使用
filter = mycontract.events.Transfer.createFilter(fromBlock=t1, toBlock=t2 )
filter.get_all_entries() 假设传输是实体中的事件名,这是用于web3==5.5.1版本的。
https://ethereum.stackexchange.com/questions/82338
复制相似问题