The project is a standard Rust workspace with multiple crates - each responsible for specific functionalities. Each crate can also be imported into any other project, bootstrapping building account abstraction projects in Rust.
At the moment, the following crates are available:
- primitives - types, constants, and other basic primitives
- contracts - interface for entry point smart contract and debug tracing utilities
- uopool - implementation of user operation mempool, validation logic (canonical and alt mempools), reputation
- bundler - implementation of the bundling functionalities (bundle builder)
- rpc - implementation of JSON-RPC interfaces, HTTP and WS
- grpc - crate that implements logic for running components (uopool and bundler) as gRPC services