Add CrystallizedState
This commit is contained in:
parent
455aa3782a
commit
2ada9dd304
38
src/state/crystallized_state.rs
Normal file
38
src/state/crystallized_state.rs
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
use super::utils::types::Sha256Digest;
|
||||||
|
use super::validator_record::ValidatorRecord;
|
||||||
|
use super::crosslink_record::CrosslinkRecord;
|
||||||
|
use super::ethereum_types::U256;
|
||||||
|
|
||||||
|
pub struct CrystallizedState {
|
||||||
|
pub active_validators: Vec<ValidatorRecord>,
|
||||||
|
pub queued_validators: Vec<ValidatorRecord>,
|
||||||
|
pub exited_validators: Vec<ValidatorRecord>,
|
||||||
|
pub current_shuffling: Vec<u32>, // TODO: should be u24
|
||||||
|
pub current_epoch: u64,
|
||||||
|
pub last_justified_epoch: u64,
|
||||||
|
pub last_finalized_epoch: u64,
|
||||||
|
pub dynasty: u64,
|
||||||
|
pub next_shard: u16,
|
||||||
|
pub current_checkpoint: Sha256Digest,
|
||||||
|
pub crosslink_records: Vec<CrosslinkRecord>,
|
||||||
|
pub total_deposits: U256,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl CrystallizedState {
|
||||||
|
pub fn num_active_validators(&self) -> usize {
|
||||||
|
self.active_validators.len()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn num_queued_validators(&self) -> usize {
|
||||||
|
self.queued_validators.len()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn num_exited_validators(&self) -> usize {
|
||||||
|
self.exited_validators.len()
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn num_crosslink_records(&self) -> usize {
|
||||||
|
self.crosslink_records.len()
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user