Refactor decrypt_pcd()

This commit is contained in:
Sosthene 2024-11-29 09:07:15 +01:00
parent 43459fa0bb
commit 391ca02186

View File

@ -24,11 +24,20 @@ pub struct ProcessState {
}
impl ProcessState {
pub fn decrypt_pcd(&self) -> Value {
// TODO add real error management
pub fn decrypt_pcd(&self) -> anyhow::Result<Value> {
let mut fields2plain = Map::new();
let _ = self.encrypted_pcd.decrypt_fields(&self.keys, &mut fields2plain);
Value::Object(fields2plain)
let fields2commit = self.pcd_commitment.to_value_object()?;
self.encrypted_pcd.decrypt_fields(&fields2commit, &self.keys, &mut fields2plain)?;
Ok(Value::Object(fields2plain))
}
pub fn get_message_hash(&self, approval: bool) -> anyhow::Result<AnkHash> {
let merkle_root = <Value as Pcd>::create_merkle_tree(&self.pcd_commitment)?.root().unwrap();
if approval {
Ok(AnkHash::ValidationYes(AnkValidationYesHash::from_byte_array(merkle_root)))
} else {
Ok(AnkHash::ValidationNo(AnkValidationNoHash::from_byte_array(merkle_root)))
}
}
fn list_modified_fields(&self, previous_state: Option<&ProcessState>) -> Vec<String> {