Python 3 Как создать фильтр событий с помощью createFilter web3.py v4.2.1

Согласно документации Web3.py: http://web3py.readthedocs.io/en/latest/filters.html

event_filter = contract.events.myEvent.createFilter(fromBlock='latest', {'filter': {'arg1':10}})

                                                              ^

Затем я получил: «SyntaxError: позиционный аргумент следует за аргументом ключевого слова»

Затем я удалил "fromBlock='lastest'",

event_filter = contract.events.myEvent.createFilter({'filter': {'arg1':10}})

Затем я получил: «TypeError: createFilter() принимает 1 позиционный аргумент, но было дано 2»

Хорошо... тогда я погуглил это... https://stackoverflow.com/questions/23944657/typeerror-method-takes-1-positional-argument-but-2-were-given

попробуем: my_new_object = cInst.events()

Затем я получил «TypeError: объект« ContractEvents »не вызывается»

Эта документация web3.py вообще работает??? Я так разочарован... :(

Пожалуйста помоги. Спасибо

Ответы (1)

Вы можете использовать следующий метод в web3py для получения событий:

myfilter = mycontract.eventFilter('EventName', {'fromBlock': 0,'toBlock': 'latest'});
eventlist = myfilter.get_all_entries()

eventlistбудет список словарей, содержащих параметры каждого произошедшего события.

Надеюсь это поможет.

Ух ты. Спасибо, Хайме. Однако я получил это: «requests.exceptions.ReadTimeout: HTTPConnectionPool (host = 'room2.abc.com', port = 8545): время ожидания чтения истекло. (время ожидания чтения = 10)». Не могли бы вы что-нибудь предложить? Спасибо!
Похоже, это проблема с подключением к вашему узлу. Вы используете свой собственный узел? Убедитесь, что вы действительно подключены к сети, дайте мне знать, как это происходит.
Хайме, ты абсолютно прав. Узел был недоступен... Спасибо!
Хайме, я понял: event_list[idx].args.eventArgument1 !!! СПАСИБО!
Как я мог также добавить filter@Jaime?
что вы подразумеваете под "добавить фильтр"
Это нормально, что я получаю пустой список, возвращающий событие, которое было создано во время тестового блока трюфеля (скажем, «Депозит»)? Т.к. подключаюсь по ganache-cli, аби загружаю корректно, но эвенты пустые и инфуру использовать не могу так как нет поддержки эвента