fix(bin): calculate ETA only if EntitiesCheckpoint is present (#3206)

This commit is contained in:
Alexey Shekhirin
2023-06-17 01:46:43 +01:00
committed by GitHub
parent d6092cf1d3
commit bb1ffd059e
2 changed files with 23 additions and 38 deletions

View File

@ -217,48 +217,33 @@ impl StageCheckpoint {
self
}
/// Get the underlying [`EntitiesCheckpoint`] to determine the number of entities processed, and
/// the number of total entities to process.
pub fn entities(&self) -> EntitiesCheckpoint {
match self.stage_checkpoint {
Some(
StageUnitCheckpoint::Account(AccountHashingCheckpoint {
progress: entities, ..
}) |
StageUnitCheckpoint::Storage(StorageHashingCheckpoint {
progress: entities, ..
}) |
StageUnitCheckpoint::Entities(entities) |
StageUnitCheckpoint::Execution(ExecutionCheckpoint { progress: entities, .. }) |
StageUnitCheckpoint::Headers(HeadersCheckpoint { progress: entities, .. }) |
StageUnitCheckpoint::IndexHistory(IndexHistoryCheckpoint {
progress: entities,
..
}),
) => entities,
None => EntitiesCheckpoint::default(),
/// Get the underlying [`EntitiesCheckpoint`], if any, to determine the number of entities
/// processed, and the number of total entities to process.
pub fn entities(&self) -> Option<EntitiesCheckpoint> {
let Some(stage_checkpoint) = self.stage_checkpoint else { return None };
match stage_checkpoint {
StageUnitCheckpoint::Account(AccountHashingCheckpoint {
progress: entities, ..
}) |
StageUnitCheckpoint::Storage(StorageHashingCheckpoint {
progress: entities, ..
}) |
StageUnitCheckpoint::Entities(entities) |
StageUnitCheckpoint::Execution(ExecutionCheckpoint { progress: entities, .. }) |
StageUnitCheckpoint::Headers(HeadersCheckpoint { progress: entities, .. }) |
StageUnitCheckpoint::IndexHistory(IndexHistoryCheckpoint {
progress: entities,
..
}) => Some(entities),
}
}
}
impl Display for StageCheckpoint {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
match self.stage_checkpoint {
Some(
StageUnitCheckpoint::Account(AccountHashingCheckpoint {
progress: entities, ..
}) |
StageUnitCheckpoint::Storage(StorageHashingCheckpoint {
progress: entities, ..
}) |
StageUnitCheckpoint::Entities(entities) |
StageUnitCheckpoint::Execution(ExecutionCheckpoint { progress: entities, .. }) |
StageUnitCheckpoint::Headers(HeadersCheckpoint { progress: entities, .. }) |
StageUnitCheckpoint::IndexHistory(IndexHistoryCheckpoint {
progress: entities,
..
}),
) => entities.fmt(f),
match self.entities() {
Some(entities) => entities.fmt(f),
None => write!(f, "{}", self.block_number),
}
}