mirror of
https://github.com/sigp/lighthouse.git
synced 2026-05-08 01:05:47 +00:00
update slash_validator
This commit is contained in:
@@ -53,8 +53,8 @@ pub fn slash_validator<E: EthSpec>(
|
|||||||
// Apply proposer and whistleblower rewards
|
// Apply proposer and whistleblower rewards
|
||||||
let proposer_index = ctxt.get_proposer_index(state, spec)? as usize;
|
let proposer_index = ctxt.get_proposer_index(state, spec)? as usize;
|
||||||
let whistleblower_index = opt_whistleblower_index.unwrap_or(proposer_index);
|
let whistleblower_index = opt_whistleblower_index.unwrap_or(proposer_index);
|
||||||
let whistleblower_reward =
|
let whistleblower_reward = validator_effective_balance
|
||||||
validator_effective_balance.safe_div(spec.whistleblower_reward_quotient)?;
|
.safe_div(spec.whistleblower_reward_quotient_for_state(state))?;
|
||||||
let proposer_reward = match state {
|
let proposer_reward = match state {
|
||||||
BeaconState::Base(_) => whistleblower_reward.safe_div(spec.proposer_reward_quotient)?,
|
BeaconState::Base(_) => whistleblower_reward.safe_div(spec.proposer_reward_quotient)?,
|
||||||
BeaconState::Altair(_)
|
BeaconState::Altair(_)
|
||||||
|
|||||||
@@ -387,6 +387,19 @@ impl ChainSpec {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// For a given `BeaconState`, return the whistleblower reward quotient associated with its variant.
|
||||||
|
pub fn whistleblower_reward_quotient_for_state<E: EthSpec>(
|
||||||
|
&self,
|
||||||
|
state: &BeaconState<E>,
|
||||||
|
) -> u64 {
|
||||||
|
let fork_name = state.fork_name_unchecked();
|
||||||
|
if fork_name >= ForkName::Electra {
|
||||||
|
self.whistleblower_reward_quotient_electra
|
||||||
|
} else {
|
||||||
|
self.whistleblower_reward_quotient
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// Returns a full `Fork` struct for a given epoch.
|
/// Returns a full `Fork` struct for a given epoch.
|
||||||
pub fn fork_at_epoch(&self, epoch: Epoch) -> Fork {
|
pub fn fork_at_epoch(&self, epoch: Epoch) -> Fork {
|
||||||
let current_fork_name = self.fork_name_at_epoch(epoch);
|
let current_fork_name = self.fork_name_at_epoch(epoch);
|
||||||
|
|||||||
Reference in New Issue
Block a user