Skip to content

Commit

Permalink
More renaming to move away from phragmen. (paritytech#6886)
Browse files Browse the repository at this point in the history
  • Loading branch information
kianenigma committed Aug 13, 2020
1 parent 8993a75 commit f16cbc1
Show file tree
Hide file tree
Showing 8 changed files with 166 additions and 166 deletions.
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

56 changes: 28 additions & 28 deletions frame/staking/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1300,34 +1300,34 @@ decl_error! {
/// Rewards for this era have already been claimed for this validator.
AlreadyClaimed,
/// The submitted result is received out of the open window.
PhragmenEarlySubmission,
OffchainElectionEarlySubmission,
/// The submitted result is not as good as the one stored on chain.
PhragmenWeakSubmission,
OffchainElectionWeakSubmission,
/// The snapshot data of the current window is missing.
SnapshotUnavailable,
/// Incorrect number of winners were presented.
PhragmenBogusWinnerCount,
OffchainElectionBogusWinnerCount,
/// One of the submitted winners is not an active candidate on chain (index is out of range
/// in snapshot).
PhragmenBogusWinner,
OffchainElectionBogusWinner,
/// Error while building the assignment type from the compact. This can happen if an index
/// is invalid, or if the weights _overflow_.
PhragmenBogusCompact,
OffchainElectionBogusCompact,
/// One of the submitted nominators is not an active nominator on chain.
PhragmenBogusNominator,
OffchainElectionBogusNominator,
/// One of the submitted nominators has an edge to which they have not voted on chain.
PhragmenBogusNomination,
OffchainElectionBogusNomination,
/// One of the submitted nominators has an edge which is submitted before the last non-zero
/// slash of the target.
PhragmenSlashedNomination,
OffchainElectionSlashedNomination,
/// A self vote must only be originated from a validator to ONLY themselves.
PhragmenBogusSelfVote,
OffchainElectionBogusSelfVote,
/// The submitted result has unknown edges that are not among the presented winners.
PhragmenBogusEdge,
OffchainElectionBogusEdge,
/// The claimed score does not match with the one computed from the data.
PhragmenBogusScore,
OffchainElectionBogusScore,
/// The election size is invalid.
PhragmenBogusElectionSize,
OffchainElectionBogusElectionSize,
/// The call is not allowed at the given time due to restrictions of election period.
CallNotAllowed,
/// Incorrect previous history depth input provided.
Expand Down Expand Up @@ -2542,22 +2542,22 @@ impl<T: Trait> Module<T> {
// check window open
ensure!(
Self::era_election_status().is_open(),
Error::<T>::PhragmenEarlySubmission.with_weight(T::DbWeight::get().reads(1)),
Error::<T>::OffchainElectionEarlySubmission.with_weight(T::DbWeight::get().reads(1)),
);

// check current era.
if let Some(current_era) = Self::current_era() {
ensure!(
current_era == era,
Error::<T>::PhragmenEarlySubmission.with_weight(T::DbWeight::get().reads(2)),
Error::<T>::OffchainElectionEarlySubmission.with_weight(T::DbWeight::get().reads(2)),
)
}

// assume the given score is valid. Is it better than what we have on-chain, if we have any?
if let Some(queued_score) = Self::queued_score() {
ensure!(
is_score_better(score, queued_score, T::MinSolutionScoreBump::get()),
Error::<T>::PhragmenWeakSubmission.with_weight(T::DbWeight::get().reads(3)),
Error::<T>::OffchainElectionWeakSubmission.with_weight(T::DbWeight::get().reads(3)),
)
}

Expand Down Expand Up @@ -2594,13 +2594,13 @@ impl<T: Trait> Module<T> {
// size of the solution must be correct.
ensure!(
snapshot_validators_length == u32::from(election_size.validators),
Error::<T>::PhragmenBogusElectionSize,
Error::<T>::OffchainElectionBogusElectionSize,
);

// check the winner length only here and when we know the length of the snapshot validators
// length.
let desired_winners = Self::validator_count().min(snapshot_validators_length);
ensure!(winners.len() as u32 == desired_winners, Error::<T>::PhragmenBogusWinnerCount);
ensure!(winners.len() as u32 == desired_winners, Error::<T>::OffchainElectionBogusWinnerCount);

let snapshot_nominators_len = <SnapshotNominators<T>>::decode_len()
.map(|l| l as u32)
Expand All @@ -2609,7 +2609,7 @@ impl<T: Trait> Module<T> {
// rest of the size of the solution must be correct.
ensure!(
snapshot_nominators_len == election_size.nominators,
Error::<T>::PhragmenBogusElectionSize,
Error::<T>::OffchainElectionBogusElectionSize,
);

// decode snapshot validators.
Expand All @@ -2621,7 +2621,7 @@ impl<T: Trait> Module<T> {
// NOTE: at the moment, since staking is explicitly blocking any offence until election
// is closed, we don't check here if the account id at `snapshot_validators[widx]` is
// actually a validator. If this ever changes, this loop needs to also check this.
snapshot_validators.get(widx as usize).cloned().ok_or(Error::<T>::PhragmenBogusWinner)
snapshot_validators.get(widx as usize).cloned().ok_or(Error::<T>::OffchainElectionBogusWinner)
}).collect::<Result<Vec<T::AccountId>, Error<T>>>()?;

// decode the rest of the snapshot.
Expand All @@ -2643,7 +2643,7 @@ impl<T: Trait> Module<T> {
).map_err(|e| {
// log the error since it is not propagated into the runtime error.
log!(warn, "💸 un-compacting solution failed due to {:?}", e);
Error::<T>::PhragmenBogusCompact
Error::<T>::OffchainElectionBogusCompact
})?;

// check all nominators actually including the claimed vote. Also check correct self votes.
Expand All @@ -2659,7 +2659,7 @@ impl<T: Trait> Module<T> {
// have bigger problems.
log!(error, "💸 detected an error in the staking locking and snapshot.");
// abort.
return Err(Error::<T>::PhragmenBogusNominator.into());
return Err(Error::<T>::OffchainElectionBogusNominator.into());
}

if !is_validator {
Expand All @@ -2676,25 +2676,25 @@ impl<T: Trait> Module<T> {
// each target in the provided distribution must be actually nominated by the
// nominator after the last non-zero slash.
if nomination.targets.iter().find(|&tt| tt == t).is_none() {
return Err(Error::<T>::PhragmenBogusNomination.into());
return Err(Error::<T>::OffchainElectionBogusNomination.into());
}

if <Self as Store>::SlashingSpans::get(&t).map_or(
false,
|spans| nomination.submitted_in < spans.last_nonzero_slash(),
) {
return Err(Error::<T>::PhragmenSlashedNomination.into());
return Err(Error::<T>::OffchainElectionSlashedNomination.into());
}
}
} else {
// a self vote
ensure!(distribution.len() == 1, Error::<T>::PhragmenBogusSelfVote);
ensure!(distribution[0].0 == *who, Error::<T>::PhragmenBogusSelfVote);
ensure!(distribution.len() == 1, Error::<T>::OffchainElectionBogusSelfVote);
ensure!(distribution[0].0 == *who, Error::<T>::OffchainElectionBogusSelfVote);
// defensive only. A compact assignment of length one does NOT encode the weight and
// it is always created to be 100%.
ensure!(
distribution[0].1 == OffchainAccuracy::one(),
Error::<T>::PhragmenBogusSelfVote,
Error::<T>::OffchainElectionBogusSelfVote,
);
}
}
Expand All @@ -2713,11 +2713,11 @@ impl<T: Trait> Module<T> {
&staked_assignments,
);
// This technically checks that all targets in all nominators were among the winners.
ensure!(num_error == 0, Error::<T>::PhragmenBogusEdge);
ensure!(num_error == 0, Error::<T>::OffchainElectionBogusEdge);

// Check if the score is the same as the claimed one.
let submitted_score = evaluate_support(&supports);
ensure!(submitted_score == claimed_score, Error::<T>::PhragmenBogusScore);
ensure!(submitted_score == claimed_score, Error::<T>::OffchainElectionBogusScore);

// At last, alles Ok. Exposures and store the result.
let exposures = Self::collect_exposure(supports);
Expand Down
4 changes: 2 additions & 2 deletions frame/staking/src/mock.rs
Original file line number Diff line number Diff line change
Expand Up @@ -437,7 +437,7 @@ impl ExtBuilder {
self.max_offchain_iterations = iterations;
self
}
pub fn offchain_phragmen_ext(self) -> Self {
pub fn offchain_election_ext(self) -> Self {
self.session_per_era(4)
.session_length(5)
.election_lookahead(3)
Expand Down Expand Up @@ -787,7 +787,7 @@ pub(crate) fn add_slash(who: &AccountId) {

// winners will be chosen by simply their unweighted total backing stake. Nominator stake is
// distributed evenly.
pub(crate) fn horrible_phragmen_with_post_processing(
pub(crate) fn horrible_npos_solution(
do_reduce: bool,
) -> (CompactAssignments, Vec<ValidatorIndex>, ElectionScore) {
let mut backing_stake_of: BTreeMap<AccountId, Balance> = BTreeMap::new();
Expand Down
Loading

0 comments on commit f16cbc1

Please sign in to comment.