Я использую 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. Заранее благодарим вас за любой ответ.
вы можете посмотреть документы здесь , пример вполне ясен:
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.
еще одно хорошее место, где можно посмотреть примеры того, как это должно быть реализовано, находится в папке с тестами, в частности здесь
Если вы хотите получить журналы событий контракта
def transfer_callback(log_entry):
print "Event fired"
contract = web3.eth.contract(abi, address)
contract.on("DisplayChange", {}, transfer_callback)
Каки Мастер Времени
'LogFilter' object has no attribute 'watch'
web3.py 5.19