Events
Events are special values that can be emitted during the execution of a program.
An event type can be declared with the event
keyword.
The syntax of an event declaration is similar to that of a function declaration; events contain named parameters, each of which has an optional argument label.
Event parameters may only have a valid event parameter type. Valid types are boolean, string, integer, arrays and dictionaries of these types, and structures where all fields have a valid event parameter type. Resource types are not allowed, because when a resource is used as an argument, it is moved.
Events can only be declared within a contract body. Events cannot be declared globally or within resource or struct types.
Emitting events​
To emit an event from a program, use the emit
statement:
Emitting events has the following restrictions:
-
Events can only be invoked in an
emit
statement.This means events cannot be assigned to variables or used as function parameters.
-
Events can only be emitted from the location in which they are declared.