Events

The EraVM event instructions are more low-level. Each LOG-like instruction is unrolled into a loop, where each iteration writes two 256-bit words.

The words must contain data in the following order:

  1. The initializer cell, describing the number of indexed words (e.g. I) and the size of non-indexed data in bytes (e.g. D)
  2. I indexed 32-byte words
  3. D bytes of data

Each write operation can contain some subsequent data from its next step. If only one word remains, the second input is zero.

See EraVM instruction: log.event

LOG0 - LOG4

LOG0 - LOG4

System Contract

This information is requested a System Contract called EventWriter.

On how the System Contract is called, see System contraacts.

The LLVM IR generator code is common for Yul and EVMLA representations.


Made with ❤️ by the ZKsync Community