mirror of
https://github.com/sigp/lighthouse.git
synced 2026-03-19 12:56:12 +00:00
Fix proposer lookahead endpoint JSON return type (#8970)
Co-Authored-By: Tan Chee Keong <tanck@sigmaprime.io>
This commit is contained in:
@@ -9,7 +9,7 @@ use crate::version::{
|
||||
use beacon_chain::{BeaconChain, BeaconChainError, BeaconChainTypes, WhenSlotSkipped};
|
||||
use eth2::types::{
|
||||
self as api_types, ValidatorBalancesRequestBody, ValidatorId, ValidatorIdentitiesRequestBody,
|
||||
ValidatorsRequestBody,
|
||||
ValidatorIndexData, ValidatorsRequestBody,
|
||||
};
|
||||
use ssz::Encode;
|
||||
use std::sync::Arc;
|
||||
@@ -213,7 +213,7 @@ pub fn get_beacon_state_proposer_lookahead<T: BeaconChainTypes>(
|
||||
ResponseIncludesVersion::Yes(fork_name),
|
||||
execution_optimistic,
|
||||
finalized,
|
||||
data,
|
||||
ValidatorIndexData(data),
|
||||
)
|
||||
.map(|res| warp::reply::json(&res).into_response()),
|
||||
}
|
||||
|
||||
@@ -1430,10 +1430,11 @@ impl ApiTester {
|
||||
}
|
||||
|
||||
let state = state_opt.as_mut().expect("result should be none");
|
||||
let expected = state.proposer_lookahead().unwrap();
|
||||
let expected = state.proposer_lookahead().unwrap().to_vec();
|
||||
|
||||
let response = result.unwrap();
|
||||
assert_eq!(response.data(), &expected.to_vec());
|
||||
// Compare Vec<u64> directly, not Vec<String>
|
||||
assert_eq!(response.data().0, expected);
|
||||
|
||||
// Check that the version header is returned in the response
|
||||
let fork_name = state.fork_name(&self.chain.spec).unwrap();
|
||||
|
||||
@@ -904,7 +904,7 @@ impl BeaconNodeHttpClient {
|
||||
pub async fn get_beacon_states_proposer_lookahead(
|
||||
&self,
|
||||
state_id: StateId,
|
||||
) -> Result<Option<ExecutionOptimisticFinalizedBeaconResponse<Vec<u64>>>, Error> {
|
||||
) -> Result<Option<ExecutionOptimisticFinalizedBeaconResponse<ValidatorIndexData>>, Error> {
|
||||
let mut path = self.eth_path(V1)?;
|
||||
|
||||
path.path_segments_mut()
|
||||
|
||||
@@ -708,6 +708,15 @@ pub struct DataColumnIndicesQuery {
|
||||
#[serde(transparent)]
|
||||
pub struct ValidatorIndexData(#[serde(with = "serde_utils::quoted_u64_vec")] pub Vec<u64>);
|
||||
|
||||
impl<'de, T> ContextDeserialize<'de, T> for ValidatorIndexData {
|
||||
fn context_deserialize<D>(deserializer: D, _context: T) -> Result<Self, D::Error>
|
||||
where
|
||||
D: Deserializer<'de>,
|
||||
{
|
||||
Self::deserialize(deserializer)
|
||||
}
|
||||
}
|
||||
|
||||
/// Borrowed variant of `ValidatorIndexData`, for serializing/sending.
|
||||
#[derive(Clone, Copy, Serialize)]
|
||||
#[serde(transparent)]
|
||||
|
||||
Reference in New Issue
Block a user