From 29cfc4dce91c8afe294e9f269454d4e4c496dc65 Mon Sep 17 00:00:00 2001 From: Paul Hauner Date: Wed, 11 Jul 2018 14:16:09 +1000 Subject: [PATCH] Change get_shuffling to borrow --- src/state/state_transition.rs | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/state/state_transition.rs b/src/state/state_transition.rs index 21cb54bfd6..8b287e4451 100644 --- a/src/state/state_transition.rs +++ b/src/state/state_transition.rs @@ -12,14 +12,14 @@ fn get_shift_from_source(source: &[u8], offset: usize) -> u32 { // Given entropy in the form of `seed`, return a shuffled list of validators // of size `validator_count` or `sample`. pub fn get_shuffling( - seed: Sha256Digest, - validator_count: u32, - sample: Option, - config: Config) + seed: &Sha256Digest, + validator_count: &u32, + sample: &Option, + config: &Config) -> Vec { let max_validators = config.max_validators; - assert!(validator_count <= max_validators); + assert!(*validator_count <= max_validators); // TODO: figure out why the Python implementation uses // this `rand_max` var. @@ -28,12 +28,12 @@ pub fn get_shuffling( Some(x) => x, None => validator_count }; - let mut output: Vec = (0..validator_range).collect(); + let mut output: Vec = (0..*validator_range).collect(); let mut source = Blake2s::new(); source.input(&seed); let mut v = 0; - while v < validator_range { + while v < *validator_range { let current_source = source.result(); let mut source_offset = 0; while source_offset < 30 { @@ -41,7 +41,7 @@ pub fn get_shuffling( let shuffled_position = (m % (validator_count - v)) + v; output.swap(v as usize, shuffled_position as usize); v += 1; - if v >= validator_count { break; } + if v >= *validator_count { break; } source_offset += 3; } // Re-hash the source @@ -83,10 +83,10 @@ mod tests { #[test] fn test_shuffling() { let s = get_shuffling( - Sha256Digest::zero(), - 10, - None, - Config::standard()); + &Sha256Digest::zero(), + &10, + &None, + &Config::standard()); assert_eq!(s, vec!(0, 9, 7, 6, 4, 1, 8, 5, 2, 3), "10 validator shuffle was not as expected");