首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“收缩”对象没有属性'eventFilter‘web3.py

“收缩”对象没有属性'eventFilter‘web3.py
EN

Ethereum用户
提问于 2020-04-10 11:39:32
回答 1查看 1.8K关注 0票数 0

我正在尝试使用web3 py从本地ethereum节点筛选传输事件。我在visual代码中创建了一个venv。我的代码如下:

代码语言:javascript
复制
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相同。

代码语言:javascript
复制
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包,但是错误没有解决。

EN

回答 1

Ethereum用户

发布于 2020-04-10 17:57:33

替换

代码语言:javascript
复制
filter = mycontract.eventFilter(
        'Transfer', {'fromBlock': t1, 'toBlock': t2})
eventlist = filter.get_all_entries

使用

代码语言:javascript
复制
filter = mycontract.events.Transfer.createFilter(fromBlock=t1, toBlock=t2 )
filter.get_all_entries()         

假设传输是实体中的事件名,这是用于web3==5.5.1版本的。

票数 1
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/82338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档