Tengo un JavaScript/React FrontEnd donde quiero recuperar y mostrar variables que se han almacenado en mi Solidity Smart Contract. Sé que puedo emitir un evento cada vez que necesito recuperar esas variables y leer desde mi aplicación JS, sin embargo, emitir y almacenar eventos costará gasolina. ¿Por qué no puede simplemente sondear continuamente una función de vista GetData (usando setInterval), donde, por ejemplo, recupero datos de mi aplicación js cada 2 segundos? Como las funciones de visualización no cuestan gasolina, ¿por qué se prefiere usar eventos para almacenar y recuperar datos?
Los eventos son como notificaciones sobre los cambios de estado en un contrato inteligente y generalmente se usan en las funciones de cambio de estado correspondientes. Los eventos también cuestan menos gasolina que una llamada de función. Echa un vistazo a esta pregunta. Además, los eventos son más económicos en comparación con el almacenamiento de datos en el contrato. Puedes leer más sobre esto aquí .
Además, las funciones de view cuestan gas si se llaman desde una transacción que da como resultado un cambio de estado del contrato.