From 12f0fb23eb59715db31e2c6f5b3929548926e93e Mon Sep 17 00:00:00 2001 From: Sosthene Date: Sun, 7 Sep 2025 18:32:29 +0200 Subject: [PATCH] Add simple duplicate state check on update_process --- src/api.rs | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/api.rs b/src/api.rs index d710b4c..90fac8c 100644 --- a/src/api.rs +++ b/src/api.rs @@ -1303,19 +1303,10 @@ pub fn update_process( roles.clone() )?; - // TODO duplicate check is broken - // // We compare the new state with the previous one - // let last_state_merkle_root = &prev_state.state_id; - - // if *last_state_merkle_root == new_state.state_id { - // return Err(ApiError::new("new proposed state is identical to the previous commited state".to_owned())); - // } - - // // We check that we don't have already a similar concurrent state - // let concurrent_processes = process.get_latest_concurrent_states()?; - // if concurrent_processes.iter().any(|p| p.state_id == new_state.state_id) { - // return Err(ApiError::new("New state already known".to_owned())); - // } + // We check that the new state doesn't already exist + if process.get_state_for_id(&new_state.state_id).is_ok() { + return Err(ApiError::new("New state already known".to_owned())); + } let diffs = create_diffs(&lock_local_device()?, &process, &new_state, &members_list)?;