From ac17d28f081a9466ae288f9397d8193f5b6e7640 Mon Sep 17 00:00:00 2001 From: Sosthene Date: Tue, 17 Dec 2024 22:37:47 +0100 Subject: [PATCH] Various minor fixes --- src/process.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/process.rs b/src/process.rs index 954a793..16d221b 100644 --- a/src/process.rs +++ b/src/process.rs @@ -5,12 +5,11 @@ use std::{ use serde::{Deserialize, Serialize}; use serde_json::{Map, Value}; -use sp_client::bitcoin::{hex::DisplayHex, OutPoint}; +use sp_client::bitcoin::{hex::{DisplayHex, FromHex}, OutPoint}; use tsify::Tsify; use crate::{ pcd::{Member, Pcd, RoleDefinition}, - prd::{Prd, PrdType}, signature::{AnkHash, AnkValidationNoHash, AnkValidationYesHash, Proof}, MutexExt, }; @@ -160,7 +159,6 @@ impl ProcessState { let mut fields2plains = Map::new(); let fields2commit = self.pcd_commitment.as_object().ok_or(anyhow::Error::msg("pcd_commitment is not an object"))?; - let merkle_root = Value::Object(fields2commit.clone()).create_merkle_tree()?.root().unwrap(); self.encrypted_pcd .decrypt_all(self.commited_in, &fields2commit, &self.keys, &mut fields2plains)?; @@ -188,6 +186,9 @@ impl ProcessState { return false; // No rules apply to this field, consider it invalid } + let mut merkle_root = [0u8; 32]; + merkle_root.copy_from_slice(&Vec::from_hex(&self.merkle_root).unwrap()); + applicable_roles.into_iter().any(|role_def| { role_def.validation_rules.iter().any(|rule| { rule.is_satisfied(