Change state_hash to be a struct

This commit is contained in:
Paul Hauner
2018-07-10 19:07:41 +10:00
parent 242318f7c2
commit 0f0212bd1d
6 changed files with 56 additions and 8 deletions

View File

@@ -1,8 +1,10 @@
use super::utils::types::Sha256Digest;
use super::utils::types::{ Sha256Digest, Blake2sDigest };
use super::validator_record::ValidatorRecord;
use super::crosslink_record::CrosslinkRecord;
use super::rlp::{ RlpStream, Encodable };
use super::rlp::encode as rlp_encode;
use super::ethereum_types::U256;
use super::blake2::{ Blake2s, Digest };
pub struct CrystallizedState {
pub active_validators: Vec<ValidatorRecord>,
@@ -36,6 +38,14 @@ impl CrystallizedState {
self.crosslink_records.len()
}
pub fn blake2s_hash(&self) -> Blake2sDigest {
let mut hasher = Blake2s::new();
hasher.input(&rlp_encode(self).into_vec());
let mut digest = Blake2sDigest::new();
digest.clone_from_slice(hasher.result().as_slice());
digest
}
}
/*