shared
The shared crate group holds the foundational types and utilities used across the workspace. It defines primitives, access lists, JWT auth, and RPC extensions consumed by every other crate group.
Sub-crates
Section titled “Sub-crates”| Crate | Package Name | Purpose |
|---|---|---|
| access-lists | base-access-lists | Flashblock-level Access Lists (FAL) implementation |
| bundles | base-bundles | Transaction bundle types |
| cli-utils | base-cli-utils | CLI utilities (logging, metrics, clap helpers) |
| engine-ext | base-engine-ext | Engine API extensions |
| jwt | base-jwt | JWT authentication for Engine API |
| node | base-client-node | Shared node configuration |
| primitives | base-primitives | Core primitive types (includes Solidity contracts for tests) |
| reth-rpc-types | base-reth-rpc-types | Reth-compatible RPC type definitions |
| txpool-rpc | base-txpool-rpc | Transaction pool RPC extensions |
Role in the Architecture
Section titled “Role in the Architecture”The shared crates form the foundation layer that all other crate groups depend on:
- primitives — Defines the core types (transactions, blocks, receipts) used everywhere. Includes Solidity contracts compiled with Foundry for testing.
- access-lists — Implements the FAL specification for flashblock-level access lists, adapting EIP-7928 for the OP Stack.
- cli-utils — Provides standardized CLI setup including clap argument parsing, tracing/logging configuration, and Prometheus metrics exporting.
- jwt — Handles JWT-based authentication for the Engine API connection between execution and consensus layers.
- engine-ext — Extends the Engine API with Base-specific payload attributes.
- txpool-rpc — Adds custom RPC methods for interacting with the transaction pool.
- bundles — Defines transaction bundle types for MEV and priority ordering.
- reth-rpc-types — Bridges Base types to Reth’s RPC type system.