scsys_crypto/hash/hashes/
mod.rs

1/*
2    Appellation: hashes <module>
3    Contributors: FL03 <jo3mccain@icloud.com>
4    Description:
5        ... Summary ...
6*/
7pub use self::{h160::H160, h256::H256, utils::*};
8
9pub(crate) mod h160;
10pub(crate) mod h256;
11
12#[derive(Clone, Copy, Debug, Eq, Hash, PartialEq, serde::Deserialize, serde::Serialize)]
13pub enum Hashes {
14    H256(H256),
15    H160(H160),
16}
17
18impl Default for Hashes {
19    fn default() -> Self {
20        Self::H256(H256::default())
21    }
22}
23
24pub(crate) mod utils {
25    use super::H256;
26    use rand::Rng;
27
28    pub fn generate_random_hash() -> H256 {
29        let mut rng = rand::thread_rng();
30        let random_bytes: Vec<u8> = (0..32).map(|_| rng.gen()).collect();
31        let mut raw_bytes = [0; 32];
32        raw_bytes.copy_from_slice(&random_bytes);
33        (&raw_bytes).into()
34    }
35}