Fix bug with processes mutex in process_transaction

This commit is contained in:
Sosthene 2024-10-13 01:04:07 +02:00
parent 0c5ddefc4b
commit d121e8f7b2

View File

@ -537,7 +537,7 @@ fn handle_transaction(
}) {
let prd = Prd::extract_from_message_with_commitment(&plaintext, &commitment)?;
let proof_key = prd.proof.unwrap().get_key();
let proof_key = prd.proof.ok_or(AnyhowError::msg("Missing proof"))?.get_key();
let mut actual_sender = String::default();
for sp_address in serde_json::from_str::<Member>(&prd.sender)?.get_addresses() {
if proof_key
@ -557,7 +557,8 @@ fn handle_transaction(
let outpoint = OutPoint::from_str(&prd.root_commitment)?;
let updated_process: Process;
if let Some(process) = lock_processes()?.get_mut(&outpoint) {
let mut processes = lock_processes()?;
if let Some(process) = processes.get_mut(&outpoint) {
process.insert_shared_secret(
SilentPaymentAddress::try_from(actual_sender.as_str()).unwrap(),
shared_secret,
@ -570,7 +571,7 @@ fn handle_transaction(
shared_secret,
);
let new_process = Process::new(vec![], shared_secrets, vec![]);
lock_processes()?.insert(outpoint, new_process.clone());
processes.insert(outpoint, new_process.clone());
updated_process = new_process;
}