# ZKsync Era Eth Watcher
This crate contains an implementation of the ZKsync Era Eth Watcher component, which fetches the changes from the
corresponding L1 contract.
## Overview
Internally, Eth Watcher contains _event processors_, each of which provides a relevant topic (i.e., a `bytes32` Solidity
event selector) and is responsible for processing the corresponding events. Besides events, processors have access to
the L1 client (to query more info) and to the node Postgres (to persist processing results). Examples of processors are:
- [Priority operations processor](src/event_processors/priority_ops.rs): persists priority operations (aka L1
transactions)
- [Upgrades processor](src/event_processors/governance_upgrades.rs): persists protocol upgrades.
Eth Watcher combines topics from the processors into a single filter and periodically queries L1 for the corresponding
events. The fetched events are partitioned per processor and fed to them in succession.