Функциональность прослушивателя событий Web3.py не регистрирует изменения

Я использую python-реализацию библиотеки web3. ( https://github.com/pipermerriam/web3.py ) Вызов и взаимодействие с контрактами работает нормально, но когда дело доходит до функциональности прослушивателя событий, ни одно из запущенных событий зарегистрирован программой.

def transfer_callback(log_entry): print "Event fired"

filter = contract.on("DisplayChange", {})

filter.watch(transfer_callback)

Просмотр события контрактов в кошельке Ethereum также работает без проблем, поэтому проблема определенно связана с python. Заранее благодарим вас за любой ответ.

Ответы (2)

вы можете посмотреть документы здесь , пример вполне ясен:

def new_transaction_callback(transaction_hash):
    sys.stdout.write("New Block: {0}".format(transaction_hash))

new_transaction_filter = web3.eth.filter('pending')
new_transaction_filter.watch(new_transaction_filter)
# each time the client receieves a unmined transaction the
# `new_transaction_filter` function will be called with the transaction
# hash.

еще одно хорошее место, где можно посмотреть примеры того, как это должно быть реализовано, находится в папке с тестами, в частности здесь

метод часов больше не существует, я думаю, 'LogFilter' object has no attribute 'watch'web3.py 5.19

Если вы хотите получить журналы событий контракта

def transfer_callback(log_entry): 
    print "Event fired"

contract = web3.eth.contract(abi, address)
contract.on("DisplayChange", {}, transfer_callback)