diff --git a/src/api.rs b/src/api.rs index 151683d..f8ae639 100644 --- a/src/api.rs +++ b/src/api.rs @@ -850,49 +850,6 @@ fn handle_prd( }; match prd.prd_type { - PrdType::Confirm => { - // It must match a prd we sent previously - // We send the whole data in a pcd - debug!("Received confirm prd with commitments {:#?}", prd.pcd_commitments); - let relevant_state = relevant_process - .get_latest_concurrent_states()? - .into_iter() - .find(|state| { - state.pcd_commitment == prd.pcd_commitments - }) - .ok_or(anyhow::Error::msg("Original request not found"))?; - - let member: Member = serde_json::from_str(&prd.sender)?; - - // We send the data to all addresses of the member we know a secret for - let mut ciphers = vec![]; - for address in member.get_addresses() { - if let Some(shared_secret) = lock_shared_secrets()?.get_secret_for_address(address.as_str().try_into()?) { - let cipher = encrypt_with_key(shared_secret.as_byte_array(), serde_json::to_string(&relevant_state.encrypted_pcd)?.as_bytes())?; - ciphers.push(cipher.to_lower_hex_string()); - } else { - // For now we don't fail if we're missing an address for a member but maybe we should - warn!("Failed to find secret for address {}", address); - } - } - - // This should never happen since we sent a message to get a confirmation back - if ciphers.is_empty() { - return Err(anyhow::Error::msg(format!("No available secrets for member {:?}", member))); - } - - let clear_pcd = relevant_state.decrypt_pcd()?; - - let roles = clear_pcd.extract_roles()?; - - let commit_msg = CommitMessage::new_update_commitment(outpoint, relevant_state.pcd_commitment.clone(), roles); - - return Ok(ApiReturn { - ciphers_to_send: ciphers, - commit_to_send: Some(commit_msg), - ..Default::default() - }) - } PrdType::Update => { // Compute the merkle tree root for the proposed new state to see if we already know about it let update_merkle_root = prd.pcd_commitments.create_merkle_tree()?.root().ok_or(AnyhowError::msg("Invalid merkle tree"))?.to_lower_hex_string();