Skip to content

Commit

Permalink
Fix: write post state in lcli skip-slots (#4843)
Browse files Browse the repository at this point in the history
## Issue Addressed

Fix a bug in `lcli skip-slots` that resulted in it always writing the pre-state to the output file.

## Proposed Changes

Correctly keep track of the post-state, and write it.
  • Loading branch information
michaelsproul committed Oct 19, 2023
1 parent 1c6356f commit 8c28d17
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions lcli/src/skip_slots.rs
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ pub fn run<T: EthSpec>(
}
_ => return Err("must supply either --state-path or --beacon-url".into()),
};
let mut post_state = None;

let initial_slot = state.slot();
let target_slot = initial_slot + slots;
Expand Down Expand Up @@ -140,14 +141,15 @@ pub fn run<T: EthSpec>(

let duration = Instant::now().duration_since(start);
info!("Run {}: {:?}", i, duration);
post_state = Some(state);
}

if let Some(output_path) = output_path {
if let (Some(post_state), Some(output_path)) = (post_state, output_path) {
let mut output_file = File::create(output_path)
.map_err(|e| format!("Unable to create output file: {:?}", e))?;

output_file
.write_all(&state.as_ssz_bytes())
.write_all(&post_state.as_ssz_bytes())
.map_err(|e| format!("Unable to write to output file: {:?}", e))?;
}

Expand Down

0 comments on commit 8c28d17

Please sign in to comment.