Skip to content

Commit f67be4c

Browse files
authored
Merge branch 'main' into createdkg
2 parents a48d280 + 90236b3 commit f67be4c

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

crates/testutil/src/random.rs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use pluto_eth2api::{
1515
},
1616
versioned::{self, AttestationPayload},
1717
};
18-
use rand::{Rng, SeedableRng, rngs::StdRng};
18+
use rand::{Rng, SeedableRng, rngs::StdRng, seq::index};
1919

2020
/// A deterministic RNG that always returns the same byte value.
2121
///
@@ -138,9 +138,13 @@ pub fn random_bit_list(length: usize) -> String {
138138
let mut bytes = [0u8; 32];
139139
let mut rng = rand::thread_rng();
140140

141-
// Set 'length' random bits
142-
for _ in 0..length {
143-
let bit_idx = rng.r#gen::<usize>() % 256;
141+
assert!(
142+
length <= 256,
143+
"cannot set {length} unique bits in a 256-bit bitlist",
144+
);
145+
146+
// Set `length` distinct random bits.
147+
for bit_idx in index::sample(&mut rng, 256, length) {
144148
let byte_idx = bit_idx / 8;
145149
let bit_offset = bit_idx % 8;
146150
bytes[byte_idx] |= 1 << bit_offset;

0 commit comments

Comments
 (0)