Events and logging
We have seen the usage of events in previous chapters without going into any detail. In this section, however, we will look into events in more depth. Events are well known to event-driven programmers. Events refer to certain changes in contracts that raise events and notify each other such that they can act and execute other functions.
Events help us write asynchronous applications. Instead of continuously polling the Ethereum ledger for the existence of a transaction and then blocking with certain information, the same procedure can be implemented using events. This way, the Ethereum platform will inform the client if an event has been raised. This helps when writing modular code and also conserves resources.
Events are part of contract inheritance, where a child contract can invoke events. Event data is stored along with block data. The logsBloom
value is the event data, as shown in the following screenshot:
Declaring events in Solidity is very similar to performing functions...