Our client is broken up into several key components, each of which are specified separately. Here we’ll discuss a high-level overview of the different components and what they do.
StateManager executes transactions and applies them to the head state.
StateManager also handles queries about the current state.
StateManager is the only component with access to
EventWatcher watches for various important events on Ethereum. Components can request that
EventWatcher watch a specific event and will be notified whenever the event is fired.
EventWatcher is designed to be robust as not to miss events or notify components of the same event multiple times.
We’ve provided a diagram of the interactions between the various client components below.