Saltar al contenido principal

Registro de datos de contratos inteligentes con eventos

contratos inteligentes
Remix
Solidity
eventos
Intermedio
jdourlens
3 de abril de 2020
2 minutos de lectura

En Solidity, los eventos son señales emitidas que los contratos inteligentes pueden disparar. Las aplicaciones descentralizadas (dapp), o cualquier cosa conectada a la API JSON-RPC de Ethereum, pueden escuchar estos eventos y actuar en consecuencia. Un evento también puede ser indexado para que el historial de eventos se pueda buscar más tarde.

Eventos

El evento más común en la cadena de bloques de Ethereum al momento de escribir este artículo es el evento Transfer que emiten los tokens ERC-20 cuando alguien transfiere tokens.

event Transfer(address indexed from, address indexed to, uint256 value);

La firma del evento se declara dentro del código del contrato y se puede emitir con la palabra clave emit. Por ejemplo, el evento de transferencia registra quién envió la transferencia (from), a quién (to) y cuántos tokens se transfirieron (value).

Si volvemos a nuestro contrato inteligente Counter y decidimos registrar cada vez que se cambia el valor. Como este contrato no está destinado a ser desplegado, sino a servir como base para construir otro contrato al extenderlo: se le llama contrato abstracto. En el caso de nuestro ejemplo de contador, se vería así:

Observe que:

  • Línea 5: declaramos nuestro evento y lo que contiene, el valor antiguo y el valor nuevo.

  • Línea 13: Cuando incrementamos nuestra variable de conteo, emitimos el evento.

Si ahora desplegamos el contrato y llamamos a la función de incremento, veremos que Remix lo mostrará automáticamente si hace clic en la nueva transacción dentro de una matriz llamada logs.

Remix screenshot

Los registros son realmente útiles para depurar sus contratos inteligentes, pero también son importantes si construye aplicaciones utilizadas por diferentes personas y facilitan la realización de análisis para rastrear y comprender cómo se utiliza su contrato inteligente. Los registros generados por las transacciones se muestran en los exploradores de bloques populares y también puede, por ejemplo, usarlos para crear scripts fuera de la cadena para escuchar eventos específicos y tomar medidas cuando ocurran.

Última actualización de la página: 3 de marzo de 2026