Write to disk Member when process is pairing

This commit is contained in:
NicolasCantu 2025-01-09 17:31:06 +01:00
parent a55159449a
commit 1e433b63e7

View File

@ -76,7 +76,12 @@ fn handle_initial_transaction(tx: Transaction, commit_msg: &CommitMessage) -> Re
let merkle_root_bin = pcd_commitment.create_merkle_tree()?.root().unwrap();
handle_member_list(pcd_commitment, &parsed_roles, root_commitment)?;
match handle_member_list(pcd_commitment, &parsed_roles, root_commitment) {
Ok(()) => {
dump_cached_members()?;
}
Err(e) => log::error!("{}", e)
}
let mut new_process = Process::new(root_commitment);
let init_state = ProcessState {
@ -119,7 +124,7 @@ fn handle_member_list(pcd_commitment: &Value, roles: &HashMap<String, RoleDefini
|| !pcd_map.contains_key("session_privkey")
|| !pcd_map.contains_key("session_pubkey")
{
return Err(Error::msg("Pcd must contain all keys for a pairing process"));
return Err(Error::msg("Process is not a pairing process"));
}
} else {
return Err(Error::msg("Pcd is missing"));
@ -160,6 +165,20 @@ fn handle_existing_commitment(outpoint: OutPoint, commit_msg: CommitMessage) ->
}
}
pub fn dump_cached_members() -> Result<(), anyhow::Error> {
let members = lock_members()?.clone();
let storage = STORAGE.get().ok_or(Error::msg("STORAGE is not initialized"))?.lock_anyhow()?;
let members_file = &storage.members_file;
members_file.save(&members)?;
log::debug!("saved members");
Ok(())
}
pub fn dump_cached_processes() -> Result<(), anyhow::Error> {
let processes = lock_processes()?.clone();