¿Existe un mecanismo para crear un oyente para todos los eventos que se emiten desde un contrato inteligente para la biblioteca python web3? Hay una manera de hacerlo en web3.js:
myContract.events.allEvents([options][, callback])
Sin embargo, no veo un paralelo en la biblioteca de Python. Hay una función para obtener todos los eventos en Hex, pero estoy buscando la versión legible por humanos.
Cómo obtener eventos en Hex:
event_filter = web3.eth.filter({"address": contract_address})
documentación web3.js: https://web3js.readthedocs.io/en/1.0/web3-eth-contract.html#events-allevents documentación web3.py: http://web3py.readthedocs.io/en/stable/filters .html
Una opción es iterar todos los eventos y llamar createFilter
a cada uno de los eventos. Algo como:
from web3.contract import ContractEvent
filters = [
event.createFilter(fromBlock='latest')
for event in myContract.events
if issubclass(event, ContractEvent)
]
mikko ohtamaa