Appease arithmetic_side_effects

This commit is contained in:
Pawan Dhananjay
2023-07-13 12:53:09 -07:00
parent aa50c1afab
commit 3789134ae2
4 changed files with 8 additions and 9 deletions

View File

@@ -34,7 +34,7 @@ pub fn process_inactivity_updates<T: EthSpec>(
.safe_add_assign(spec.inactivity_score_bias)?; .safe_add_assign(spec.inactivity_score_bias)?;
} }
// Decrease the score of all validators for forgiveness when not during a leak // Decrease the score of all validators for forgiveness when not during a leak
if !state.is_in_inactivity_leak(previous_epoch, spec) { if !state.is_in_inactivity_leak(previous_epoch, spec)? {
let inactivity_score = state.get_inactivity_score_mut(index)?; let inactivity_score = state.get_inactivity_score_mut(index)?;
inactivity_score inactivity_score
.safe_sub_assign(min(spec.inactivity_score_recovery_rate, *inactivity_score))?; .safe_sub_assign(min(spec.inactivity_score_recovery_rate, *inactivity_score))?;

View File

@@ -77,7 +77,7 @@ pub fn get_flag_index_deltas<T: EthSpec>(
let mut delta = Delta::default(); let mut delta = Delta::default();
if unslashed_participating_indices.contains(index)? { if unslashed_participating_indices.contains(index)? {
if !state.is_in_inactivity_leak(previous_epoch, spec) { if !state.is_in_inactivity_leak(previous_epoch, spec)? {
let reward_numerator = base_reward let reward_numerator = base_reward
.safe_mul(weight)? .safe_mul(weight)?
.safe_mul(unslashed_participating_increments)?; .safe_mul(unslashed_participating_increments)?;

View File

@@ -1734,16 +1734,15 @@ impl<T: EthSpec> BeaconState<T> {
previous_epoch: Epoch, previous_epoch: Epoch,
val_index: usize, val_index: usize,
) -> Result<bool, Error> { ) -> Result<bool, Error> {
self.get_validator(val_index).map(|val| { let val = self.get_validator(val_index)?;
val.is_active_at(previous_epoch) Ok(val.is_active_at(previous_epoch)
|| (val.slashed && previous_epoch + Epoch::new(1) < val.withdrawable_epoch) || (val.slashed && previous_epoch.safe_add(Epoch::new(1))? < val.withdrawable_epoch))
})
} }
/// Passing `previous_epoch` to this function rather than computing it internally provides /// Passing `previous_epoch` to this function rather than computing it internally provides
/// a tangible speed improvement in state processing. /// a tangible speed improvement in state processing.
pub fn is_in_inactivity_leak(&self, previous_epoch: Epoch, spec: &ChainSpec) -> bool { pub fn is_in_inactivity_leak(&self, previous_epoch: Epoch, spec: &ChainSpec) -> Result<bool, safe_arith::ArithError> {
(previous_epoch - self.finalized_checkpoint().epoch) > spec.min_epochs_to_inactivity_penalty Ok((previous_epoch.safe_sub(self.finalized_checkpoint().epoch)?) > spec.min_epochs_to_inactivity_penalty)
} }
/// Get the `SyncCommittee` associated with the next slot. Useful because sync committees /// Get the `SyncCommittee` associated with the next slot. Useful because sync committees

View File

@@ -28,7 +28,7 @@ pub trait TestRandom {
impl<T> TestRandom for PhantomData<T> { impl<T> TestRandom for PhantomData<T> {
fn random_for_test(_rng: &mut impl RngCore) -> Self { fn random_for_test(_rng: &mut impl RngCore) -> Self {
PhantomData::default() PhantomData
} }
} }