diff --git a/validator_client/validator_services/src/duties_service.rs b/validator_client/validator_services/src/duties_service.rs index e99e2c9cb2..a6acded3ff 100644 --- a/validator_client/validator_services/src/duties_service.rs +++ b/validator_client/validator_services/src/duties_service.rs @@ -1137,8 +1137,17 @@ async fn fill_in_selection_proofs( let lookahead_slot = current_slot + selection_lookahead; - let mut relevant_duties = duties_by_slot.split_off(&lookahead_slot); - std::mem::swap(&mut relevant_duties, &mut duties_by_slot); + let relevant_duties = if duties_service.distributed { + if let Some(duties) = duties_by_slot.remove(&lookahead_slot) { + BTreeMap::from([(lookahead_slot, duties)]) + } else { + BTreeMap::new() + } + } else { + let mut duties = duties_by_slot.split_off(&lookahead_slot); + std::mem::swap(&mut duties, &mut duties_by_slot); + duties + }; let batch_size = relevant_duties.values().map(Vec::len).sum::();