Events

web3.py:AttributeError:“契約”對像沒有屬性“事件過濾器”

  • August 19, 2019

更新:

對於web3 v5.x.x,

事件日誌過濾器如下:

event_filter= myContract.events.<event_name>.createFilter(fromBlock="latest", argument_filters={'arg1':10}) 
event_filter.get_new_entries()

***目標:***我想列印智能合約的日誌,就像我在 上做的那樣web3.js,使用web3.py.

另一方面web3.js,以下程式碼段有效:

var event = myContract.LogJob({}, {fromBlock:0, toBlock:'latest'});
event.watch(function(error, result) {
 console.log(JSON.stringify(result));
});

但在 web3.py 方面,我無法使其工作。:( 我遵循了以下文件。

event_filter = myContract.eventfilter('LogJob', {'filter': {'arg1':10}})

我遇到的錯誤:

AttributeError: 'Contract' object has no attribute 'eventFilter'

我也嘗試過以下程式碼行,但效果不佳:

event = myContract.call().LogJob({}, {'fromBlock':100, 'toBlock':110});

**$$ Q $$**難道我做錯了什麼?我該如何解決這個問題?

您正在嘗試使用 v4 功能。您很有可能安裝了 v3。要安裝最新的 v4 版本,請使用:

pip3 install --upgrade web3

引用自:https://ethereum.stackexchange.com/questions/43091