Add is_optimistic to eth/v1/node/syncing response (#3374)

## Issue Addressed

As specified in the [Beacon Chain API specs](https://github.com/ethereum/beacon-APIs/blob/master/apis/node/syncing.yaml#L32-L35) we should return `is_optimistic` as part of the response to a query for the `eth/v1/node/syncing` endpoint.

## Proposed Changes

Compute the optimistic status of the head and add it to the `SyncingData` response.
This commit is contained in:
Mac L
2022-07-26 08:50:16 +00:00
parent 904dd62524
commit d316305411
3 changed files with 7 additions and 0 deletions

View File

@@ -1852,8 +1852,13 @@ pub fn serve<T: BeaconChainTypes>(
// Taking advantage of saturating subtraction on slot.
let sync_distance = current_slot - head_slot;
let is_optimistic = chain
.is_optimistic_head()
.map_err(warp_utils::reject::beacon_chain_error)?;
let syncing_data = api_types::SyncingData {
is_syncing: network_globals.sync_state.read().is_syncing(),
is_optimistic,
head_slot,
sync_distance,
};

View File

@@ -1281,6 +1281,7 @@ impl ApiTester {
let expected = SyncingData {
is_syncing: false,
is_optimistic: false,
head_slot,
sync_distance,
};