public void ProcessSlots(BeaconState state, Slot slot) { _logger.LogInformation(Event.ProcessSlots, "Process slots to {Slot} for state {BeaconState}", slot, state); if (state.Slot > slot) { throw new ArgumentOutOfRangeException(nameof(slot), slot, $"Slot to process should be greater than current state slot {state.Slot}"); } while (state.Slot < slot) { ProcessSlot(state); // Process epoch on the start slot of the next epoch if ((state.Slot + new Slot(1)) % _timeParameterOptions.CurrentValue.SlotsPerEpoch == Slot.Zero) { ProcessEpoch(state); } state.IncreaseSlot(); } }