# Summary
This PR makes a number of actor-framework-level changes to allow
dependency injection and ultimately unit tests within all of the actors.
The actor that is used to demonstrate the updates is `SequencerActor`.
If this approach looks good, issues can be created to update other
actors and add test coverage.
This also starts to create client traits for different actor
functionality in an effort to remove channel dependencies at the
interface level. This will help streamline unit tests and allow the
interfaces to evolve more seamlessly.
## Key Changes
* Loosen `NodeActor` trait requirements (remove `build()` fn and
`builder` type)
* Remove `RollupNodeService` trait since it had one implementation and
logic split between trait and impl
* Create traits for _most_ `SequencerActor` dependencies
* This includes making facade client traits for actor-actor
communication, loosening the interface-level dependence on channels and
increasing unit testing ergonomics
* The remaining dependencies will be wrapped in traits as a follow-up PR
to this one to avoid further bulking this PR
* Make `SequencerActor` generic over dependency traits
* Inject concrete instances of dependencies into `SequencerActor`
* Separate logic in `SequencerActor` into helper functions for better
readability and self-documentation
* Pull metrics, admin api server, error, and builder utilities into
separate files to self-document and reduce size of main `SequencerActor`
file
---
Ref: #3025, #3021, #2623
No description provided.