Eventos de contrato inteligente

Estoy desarrollando un Dapp que contiene una notificación entre dos Usuarios. Por ejemplo :

  • Usuario 1 (Estudiante): envía una transacción que contiene datos a confirmar.

  • Usuario 2 (Profesor): recibe una notificación para validar los datos del alumno.

  • Usuario 1 (Estudiante): recibe una notificación sobre la respuesta del profesor.

¿No es posible implementar este caso de uso utilizando eventos de contratos inteligentes? Eché un vistazo a web3.shh pero parece que falta documentación

Respuestas (1)

Puede hacerlo creando su evento en su contrato inteligente como:

event StudentData(address indexed _professorAddr, string indexed _studentData)

Luego, usando la API web3, puede ver/escuchar estos eventos filtrando la dirección del profesor por ejemplo, y desencadenar cualquier acción, como una notificación, cuando el evento se dé cuenta.

Consulte la documentación sobre la escucha de eventos.

Gracias por tu rápida respuesta. pero ¿cuánto tiempo puede vivir un evento? digamos que el profesor abrirá la aplicación después de 3 semanas de la presentación del estudiante.
Según Solidity Documentation sobre eventos, parece que los registros de eventos se almacenan en la cadena de bloques, por lo que creo que los eventos se mantienen activos durante mucho tiempo. Entonces, en su caso, cuando el profesor abre el Dapp, la función de reloj para eventos comienza a escuchar desde el primer bloque hasta el último y se los muestra todos.
Citando los documentos de Solidity: "Estos registros están asociados con la dirección del contrato, se incorporan a la cadena de bloques y permanecen allí mientras se pueda acceder a un bloque (a partir de ahora, para siempre, pero esto podría cambiar con Serenity)".