dpp/document/
generate_document_id.rs1use crate::document::Document;
2use crate::{prelude::Identifier, util::hash::hash_double_to_vec};
3
4impl Document {
5 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}