Fix typoe and add blobs endpoint to eth2 lib.

This commit is contained in:
Jimmy Chen 2022-12-23 15:28:08 +11:00
parent bf7f709b51
commit 3b9041047a
2 changed files with 34 additions and 4 deletions

View File

@ -3324,10 +3324,10 @@ pub fn serve<T: BeaconChainTypes>(
)))
});
// GET lighthouse/beacon/blob_sidecars/{block_id}
let get_blob_sidecars = warp::path("lighthouse")
// GET lighthouse/beacon/blobs_sidecars/{block_id}
let get_blobs_sidecars = warp::path("lighthouse")
.and(warp::path("beacon"))
.and(warp::path("blob_sidecars"))
.and(warp::path("blobs_sidecars"))
.and(block_id_or_err)
.and(warp::path::end())
.and(chain_filter.clone())
@ -3494,7 +3494,7 @@ pub fn serve<T: BeaconChainTypes>(
.or(get_lighthouse_attestation_performance.boxed())
.or(get_lighthouse_block_packing_efficiency.boxed())
.or(get_lighthouse_merge_readiness.boxed())
.or(get_blob_sidecars.boxed())
.or(get_blobs_sidecars.boxed())
.or(get_events.boxed()),
)
.boxed()

View File

@ -680,6 +680,19 @@ impl BeaconNodeHttpClient {
Ok(path)
}
/// Path for `lighthouse/beacon/blobs_sidecars/{block_id}`
pub fn get_blobs_sidecar_path(&self, block_id: BlockId) -> Result<Url, Error> {
let mut path = self.server.full.clone();
path.path_segments_mut()
.map_err(|()| Error::InvalidUrl(self.server.clone()))?
.push("lighthouse")
.push("beacon")
.push("blobs_sidecars")
.push(&block_id.to_string());
Ok(path)
}
/// Path for `v1/beacon/blinded_blocks/{block_id}`
pub fn get_beacon_blinded_blocks_path(&self, block_id: BlockId) -> Result<Url, Error> {
let mut path = self.eth_path(V1)?;
@ -735,6 +748,23 @@ impl BeaconNodeHttpClient {
}))
}
/// `GET lighthouse/beacon/blobs_sidecars/{block_id}`
///
/// Returns `Ok(None)` on a 404 error.
pub async fn get_blobs_sidecar<T: EthSpec>(
&self,
block_id: BlockId,
) -> Result<Option<GenericResponse<BlobsSidecar<T>>>, Error> {
let path = self.get_blobs_sidecar_path(block_id)?;
let response = match self.get_response(path, |b| b).await.optional()? {
Some(res) => res,
None => return Ok(None),
};
let GenericResponse { data } = response.json().await?;
Ok(Some(GenericResponse { data }))
}
/// `GET v1/beacon/blinded_blocks/{block_id}`
///
/// Returns `Ok(None)` on a 404 error.