paint-brush
Cómo usar eventos en Soliditypor@kamilpolak
12,403 lecturas
12,403 lecturas

Cómo usar eventos en Solidity

por Kamil Polak2m2021/05/22
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

En este breve tutorial, le mostraré qué son los eventos en Solidity y cómo usarlos en nuestro contrato inteligente. Después de llamar a los eventos, sus argumentos se colocan en la cadena de bloques. Los contratos inteligentes en sí mismos no pueden escuchar ningún evento. Hay dos tipos de parámetros de eventos de Solidity: indexados y no indexados, y los eventos se pueden filtrar por nombre y por dirección de contrato. Para usar eventos primero, debe declararlos en la definición del evento y los parámetros que desea guardar cuando activa el evento.

Coin Mentioned

Mention Thumbnail
featured image - Cómo usar eventos en Solidity
Kamil Polak HackerNoon profile picture

En este breve tutorial, me gustaría mostrarle los conceptos básicos de los eventos en Solidity. Específicamente, explicaré qué son los eventos en solidez y cómo usarlos en nuestro contrato inteligente.

¿Cuáles son los eventos?

Siguiendo la documentación de Solidity:

Los eventos son miembros hereditarios de los contratos. Cuando los llama, hacen que los argumentos se almacenen en el registro de transacciones, una estructura de datos especial en la cadena de bloques. 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

¿Por qué necesitamos eventos?

Los eventos se utilizan para informar a los usuarios externos que algo sucedió en la cadena de bloques. Los contratos inteligentes en sí mismos no pueden escuchar ningún evento.

Toda la información en la cadena de bloques es pública y cualquier acción se puede encontrar examinando las transacciones lo suficientemente cerca, pero los eventos son un atajo para facilitar el desarrollo de sistemas externos en cooperación con contratos inteligentes.

Cómo usar eventos en Solidity

Solidity define eventos con la palabra clave event. Después de llamar a los eventos, sus argumentos se colocan en la cadena de bloques. Para usar eventos primero, debe declararlos de la siguiente manera:

 event moneySent(address _from, address _to, uint _amount);

La definición del evento contiene el nombre del evento y los parámetros que desea guardar cuando activa el evento.

Entonces necesitas emitir tu evento dentro de la función:

 emit money Sent( msg . sender , _to , _amount ) ;

Los eventos de solidez son interfaces con Funcionalidad de registro de la máquina virtual de Ethereum. Puede agregar un atributo indexado hasta en tres parámetros. Cuando los parámetros no tienen el atributo indexado , se codifican con ABI en la parte de datos del registro.

Para comprender mejor el evento, veamos el código completo.

 //SPDX-License-Identifier: MIT pragma solidity ^ 0.8 . 4 ; contract MyContract{ mapping(address => uint) public Balance; event moneySent(address _from , address _to , uint _amount ); constructor public { owner = msg.sender; moneyBalance[msg.sender] = 50 ; } function sendMoney(address _to , uint _amount ) public returns(bool) { require(msg.sender = owner ; "You are not allowe" ); require(Balance[msg.sender] >= _amount ; "Not enough money" ); moneyBalance[msg.sender] -= _amount ; moneyBalance[ _to ] += _amount ; emit moneySent(msg.sender, _to , _amount ); return true ; }

comida para llevar

  • Hay dos tipos de parámetros de eventos de Solidity: indexados y no indexados,
  • Los eventos se utilizan para devolver valores de la transacción y como un almacenamiento de datos económico,
  • Blockchain mantiene los parámetros de los eventos en los registros de transacciones. Los eventos se pueden filtrar por nombre y dirección de contrato .

Referencias