state_processing: get_attesting_indices in common
This commit is contained in:
parent
048f342e1d
commit
d3d2900a6a
@ -1,7 +1,22 @@
|
|||||||
use crate::common::verify_bitfield_length;
|
use crate::common::verify_bitfield_length;
|
||||||
use types::*;
|
use types::*;
|
||||||
|
|
||||||
/// Returns validator indices which participated in the attestation.
|
/// Returns validator indices which participated in the attestation, sorted by increasing index.
|
||||||
|
///
|
||||||
|
/// Spec v0.6.1
|
||||||
|
pub fn get_attesting_indices<T: EthSpec>(
|
||||||
|
state: &BeaconState<T>,
|
||||||
|
attestation_data: &AttestationData,
|
||||||
|
bitfield: &Bitfield,
|
||||||
|
) -> Result<Vec<usize>, BeaconStateError> {
|
||||||
|
get_attesting_indices_unsorted(state, attestation_data, bitfield).map(|mut indices| {
|
||||||
|
// Fast unstable sort is safe because validator indices are unique
|
||||||
|
indices.sort_unstable();
|
||||||
|
indices
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Returns validator indices which participated in the attestation, unsorted.
|
||||||
///
|
///
|
||||||
/// Spec v0.6.1
|
/// Spec v0.6.1
|
||||||
pub fn get_attesting_indices_unsorted<T: EthSpec>(
|
pub fn get_attesting_indices_unsorted<T: EthSpec>(
|
@ -1,7 +1,9 @@
|
|||||||
mod exit;
|
mod exit;
|
||||||
|
mod get_attesting_indices;
|
||||||
mod slash_validator;
|
mod slash_validator;
|
||||||
mod verify_bitfield;
|
mod verify_bitfield;
|
||||||
|
|
||||||
pub use exit::initiate_validator_exit;
|
pub use exit::initiate_validator_exit;
|
||||||
|
pub use get_attesting_indices::{get_attesting_indices, get_attesting_indices_unsorted};
|
||||||
pub use slash_validator::slash_validator;
|
pub use slash_validator::slash_validator;
|
||||||
pub use verify_bitfield::verify_bitfield_length;
|
pub use verify_bitfield::verify_bitfield_length;
|
||||||
|
@ -10,7 +10,6 @@ use winning_root::{winning_root, WinningRoot};
|
|||||||
|
|
||||||
pub mod apply_rewards;
|
pub mod apply_rewards;
|
||||||
pub mod errors;
|
pub mod errors;
|
||||||
pub mod get_attesting_indices;
|
|
||||||
pub mod inclusion_distance;
|
pub mod inclusion_distance;
|
||||||
pub mod process_slashings;
|
pub mod process_slashings;
|
||||||
pub mod registry_updates;
|
pub mod registry_updates;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
use super::get_attesting_indices::get_attesting_indices_unsorted;
|
|
||||||
use super::WinningRootHashSet;
|
use super::WinningRootHashSet;
|
||||||
|
use crate::common::get_attesting_indices_unsorted;
|
||||||
use types::*;
|
use types::*;
|
||||||
|
|
||||||
/// Sets the boolean `var` on `self` to be true if it is true on `other`. Otherwise leaves `self`
|
/// Sets the boolean `var` on `self` to be true if it is true on `other`. Otherwise leaves `self`
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
use super::get_attesting_indices::get_attesting_indices_unsorted;
|
use crate::common::get_attesting_indices_unsorted;
|
||||||
use std::collections::{HashMap, HashSet};
|
use std::collections::{HashMap, HashSet};
|
||||||
use tree_hash::TreeHash;
|
use tree_hash::TreeHash;
|
||||||
use types::*;
|
use types::*;
|
||||||
|
Loading…
Reference in New Issue
Block a user