1 unstable release

0.1.0 Jul 13, 2024

#6 in #l1


Used in 2 crates (via zksync_node_framework)

MIT/Apache

1.5MB
34K SLoC

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:

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.


lib.rs:

Ethereum watcher polls the Ethereum node for the relevant events, such as priority operations (aka L1 transactions), protocol upgrades etc. New events are accepted to the ZKsync network once they have the sufficient amount of L1 confirmations.

Dependencies

~92MB
~2M SLoC