use crate::{
parent::Parents,
rand::{bytes::rand_bytes_array, number::rand_number, parents::rand_parents, payload::rand_payload_for_block},
Block, BlockBuilder, BlockId,
};
pub fn rand_block_id() -> BlockId {
BlockId::new(rand_bytes_array())
}
pub fn rand_block_ids(len: usize) -> Vec<BlockId> {
let mut parents = (0..len).map(|_| rand_block_id()).collect::<Vec<_>>();
parents.sort_by(|a, b| a.as_ref().cmp(b.as_ref()));
parents
}
pub fn rand_block_with_parents(parents: Parents, min_pow_score: u32) -> Block {
BlockBuilder::<u64>::new(parents)
.with_payload(rand_payload_for_block())
.with_nonce_provider(rand_number())
.finish(min_pow_score)
.unwrap()
}
pub fn rand_block(min_pow_score: u32) -> Block {
rand_block_with_parents(rand_parents(), min_pow_score)
}