dpp/document/
generate_document_id.rs

1use crate::document::Document;
2use crate::{prelude::Identifier, util::hash::hash_double_to_vec};
3
4impl Document {
5    /// Generates the document ID
6    pub fn generate_document_id_v0(
7        contract_id: &Identifier,
8        owner_id: &Identifier,
9        document_type_name: &str,
10        entropy: &[u8],
11    ) -> Identifier {
12        let mut buf: Vec<u8> = vec![];
13
14        buf.extend_from_slice(&contract_id.to_buffer());
15        buf.extend_from_slice(&owner_id.to_buffer());
16        buf.extend_from_slice(document_type_name.as_bytes());
17        buf.extend_from_slice(entropy);
18
19        Identifier::from_bytes(&hash_double_to_vec(&buf)).unwrap()
20    }
21}