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 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: define eventos event moneySent(address _from, _to, uint _amount); address 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 con Funcionalidad de registro de la máquina virtual de Ethereum. Puede un atributo indexado hasta en tres parámetros. Cuando los parámetros no tienen el atributo , se codifican con ABI en la parte de datos del registro. interfaces agregar indexado Para comprender mejor el evento, veamos el código completo. pragma solidity ^ . ; contract MyContract{ mapping(address => uint) public Balance; event moneySent(address , address , uint ); constructor public { = msg.sender; moneyBalance[msg.sender] = ; } function sendMoney(address , uint ) public returns(bool) { require(msg.sender = ; ); require(Balance[msg.sender] >= ; ); moneyBalance[msg.sender] -= ; moneyBalance[ ] += ; emit moneySent(msg.sender, , ); return ; } //SPDX-License-Identifier: MIT 0.8 4 _from _to _amount owner 50 _to _amount owner "You are not allowe" _amount "Not enough money" _amount _to _amount _to _amount 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 y . por nombre dirección de contrato Referencias https://docs.soliditylang.org/en/v0.8.4/ https://www.geeksforgeeks.org/what-are-events-in-solidity/ https://www.bitdegree.org/learn/solidity-events https://ethereum.stackexchange.com/questions/56879/can-anyone-explain-what-is-the-main-purpose-of-events-in-solidity-and-when-to-us