remove active_validators crate
This commit is contained in:
parent
1ff47720f1
commit
5eabdad0dc
@ -1,7 +0,0 @@
|
||||
[package]
|
||||
name = "active-validators"
|
||||
version = "0.1.0"
|
||||
authors = ["Paul Hauner <paul@paulhauner.com>"]
|
||||
|
||||
[dependencies]
|
||||
types = { path = "../../types" }
|
@ -1,64 +0,0 @@
|
||||
extern crate types;
|
||||
|
||||
use types::{ValidatorRecord, ValidatorStatus};
|
||||
|
||||
/// Returns the indicies of each active validator in a given vec of validators.
|
||||
pub fn active_validator_indices(validators: &[ValidatorRecord]) -> Vec<usize> {
|
||||
validators
|
||||
.iter()
|
||||
.enumerate()
|
||||
.filter_map(|(i, validator)| {
|
||||
if validator.status_is(ValidatorStatus::Active) {
|
||||
Some(i)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
.collect()
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
pub fn validator_is_active(v: &ValidatorRecord) -> bool {
|
||||
v.status_is(ValidatorStatus::Active)
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_active_validator() {
|
||||
let mut validators = vec![];
|
||||
|
||||
let (mut v, _) = ValidatorRecord::zero_with_thread_rand_keypair();
|
||||
v.status = ValidatorStatus::Active;
|
||||
assert!(validator_is_active(&v));
|
||||
validators.push(v);
|
||||
|
||||
let (mut v, _) = ValidatorRecord::zero_with_thread_rand_keypair();
|
||||
v.status = ValidatorStatus::PendingActivation;
|
||||
assert!(!validator_is_active(&v));
|
||||
validators.push(v);
|
||||
|
||||
let (mut v, _) = ValidatorRecord::zero_with_thread_rand_keypair();
|
||||
v.status = ValidatorStatus::PendingExit;
|
||||
assert!(!validator_is_active(&v));
|
||||
validators.push(v);
|
||||
|
||||
let (mut v, _) = ValidatorRecord::zero_with_thread_rand_keypair();
|
||||
v.status = ValidatorStatus::PendingWithdraw;
|
||||
assert!(!validator_is_active(&v));
|
||||
validators.push(v);
|
||||
|
||||
let (mut v, _) = ValidatorRecord::zero_with_thread_rand_keypair();
|
||||
v.status = ValidatorStatus::Withdrawn;
|
||||
assert!(!validator_is_active(&v));
|
||||
validators.push(v);
|
||||
|
||||
let (mut v, _) = ValidatorRecord::zero_with_thread_rand_keypair();
|
||||
v.status = ValidatorStatus::Penalized;
|
||||
assert!(!validator_is_active(&v));
|
||||
validators.push(v);
|
||||
|
||||
assert_eq!(active_validator_indices(&validators), vec![0]);
|
||||
}
|
||||
}
|
@ -4,7 +4,6 @@ version = "0.1.0"
|
||||
authors = ["Paul Hauner <paul@paulhauner.com>"]
|
||||
|
||||
[dependencies]
|
||||
active-validators = { path = "../utils/active-validators" }
|
||||
bytes = "0.4.10"
|
||||
hashing = { path = "../utils/hashing" }
|
||||
types = { path = "../types" }
|
||||
|
@ -1,9 +1,7 @@
|
||||
extern crate active_validators;
|
||||
extern crate bytes;
|
||||
extern crate hashing;
|
||||
extern crate types;
|
||||
|
||||
use active_validators::validator_is_active;
|
||||
use bytes::{BufMut, BytesMut};
|
||||
use hashing::canonical_hash;
|
||||
use std::cmp::max;
|
||||
@ -31,7 +29,7 @@ pub fn update_validator_set(
|
||||
let total_balance = {
|
||||
let mut bal: u64 = 0;
|
||||
for v in validators.iter() {
|
||||
if validator_is_active(&v) {
|
||||
if v.status_is(ValidatorStatus::Active) {
|
||||
bal = bal
|
||||
.checked_add(v.balance)
|
||||
.ok_or(UpdateValidatorSetError::ArithmeticOverflow)?;
|
||||
|
@ -1,4 +1,3 @@
|
||||
extern crate active_validators;
|
||||
extern crate honey_badger_split;
|
||||
extern crate types;
|
||||
extern crate vec_shuffle;
|
||||
|
@ -1,8 +1,7 @@
|
||||
use std::cmp::min;
|
||||
|
||||
use active_validators::active_validator_indices;
|
||||
use honey_badger_split::SplitExt;
|
||||
use types::{ChainConfig, ShardAndCommittee, ValidatorRecord};
|
||||
use types::{ChainConfig, ShardAndCommittee, ValidatorRecord, ValidatorStatus};
|
||||
use vec_shuffle::{shuffle, ShuffleErr};
|
||||
|
||||
type DelegatedCycle = Vec<Vec<ShardAndCommittee>>;
|
||||
@ -24,7 +23,17 @@ pub fn shard_and_committees_for_cycle(
|
||||
config: &ChainConfig,
|
||||
) -> Result<DelegatedCycle, ValidatorAssignmentError> {
|
||||
let shuffled_validator_indices = {
|
||||
let mut validator_indices = active_validator_indices(validators);
|
||||
let mut validator_indices = validators
|
||||
.iter()
|
||||
.enumerate()
|
||||
.filter_map(|(i, validator)| {
|
||||
if validator.status_is(ValidatorStatus::Active) {
|
||||
Some(i)
|
||||
} else {
|
||||
None
|
||||
}
|
||||
})
|
||||
.collect();
|
||||
shuffle(seed, validator_indices)?
|
||||
};
|
||||
let shard_indices: Vec<usize> = (0_usize..config.shard_count as usize).into_iter().collect();
|
||||
|
Loading…
Reference in New Issue
Block a user