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

View File

@ -680,6 +680,19 @@ impl BeaconNodeHttpClient {
Ok(path) 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}` /// Path for `v1/beacon/blinded_blocks/{block_id}`
pub fn get_beacon_blinded_blocks_path(&self, block_id: BlockId) -> Result<Url, Error> { pub fn get_beacon_blinded_blocks_path(&self, block_id: BlockId) -> Result<Url, Error> {
let mut path = self.eth_path(V1)?; 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}` /// `GET v1/beacon/blinded_blocks/{block_id}`
/// ///
/// Returns `Ok(None)` on a 404 error. /// Returns `Ok(None)` on a 404 error.