mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-10 20:22:02 +00:00
- #6452 (partially) Remove dependencies on `store` and `lighthouse_network` from `eth2`. This was achieved as follows: - depend on `enr` and `multiaddr` directly instead of using `lighthouse_network`'s reexports. - make `lighthouse_network` responsible for converting between API and internal types. - in two cases, remove complex internal types and use the generic `serde_json::Value` instead - this is not ideal, but should be fine for now, as this affects two internal non-spec endpoints which are meant for debugging, unstable, and subject to change without notice anyway. Inspired by #6679. The alternative is to move all relevant types to `eth2` or `types` instead - what do you think?
33 lines
868 B
Rust
33 lines
868 B
Rust
use beacon_chain::store::metadata::CURRENT_SCHEMA_VERSION;
|
|
use beacon_chain::{BeaconChain, BeaconChainTypes};
|
|
use serde::Serialize;
|
|
use std::sync::Arc;
|
|
use store::{AnchorInfo, BlobInfo, Split, StoreConfig};
|
|
|
|
#[derive(Debug, Serialize)]
|
|
pub struct DatabaseInfo {
|
|
pub schema_version: u64,
|
|
pub config: StoreConfig,
|
|
pub split: Split,
|
|
pub anchor: AnchorInfo,
|
|
pub blob_info: BlobInfo,
|
|
}
|
|
|
|
pub fn info<T: BeaconChainTypes>(
|
|
chain: Arc<BeaconChain<T>>,
|
|
) -> Result<DatabaseInfo, warp::Rejection> {
|
|
let store = &chain.store;
|
|
let split = store.get_split_info();
|
|
let config = store.get_config().clone();
|
|
let anchor = store.get_anchor_info();
|
|
let blob_info = store.get_blob_info();
|
|
|
|
Ok(DatabaseInfo {
|
|
schema_version: CURRENT_SCHEMA_VERSION.as_u64(),
|
|
config,
|
|
split,
|
|
anchor,
|
|
blob_info,
|
|
})
|
|
}
|