Как использовать фильтры с web3py для получения журналов событий для умного контракта? - PullRequest
0 голосов
/ 05 мая 2019

Я ищу журналы событий для умного контракта и для этого использую узлы 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"))

но в документации есть ошибка.В любом случае я попробовал это, что я считаю самым простым способом создания фильтра, а также методы, упомянутые здесь .

Обе эти ошибки приводят к ошибке, которая выглядит следующим образом:

Traceback (последний вызов был последним): файл "", строка 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, в запросе блокирует повышение ValueError (response [" error "])

ValueError: {'code': -32601, 'message': 'Метод eth_newFilter не существует / недоступен'}

Любые идеи о том, как создавать и использовать эти фильтры, а также о том, как получать журналы событий для смарт-контракта, когда известен параметр темы.

1 Ответ

0 голосов
/ 06 мая 2019

Сообщение об ошибке означает, что оно говорит. Infura не поддерживает RPC-метод eth_newFilter через HTTPS, что в итоге вызывает ваш код.

Я считаю, что тот же код должен работать, если вы вместо этого подключаетесь через WebSocket.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...