Update ProcessState implementation with new serialization
This commit is contained in:
parent
0109b6ba51
commit
4671eea753
@ -1,10 +1,13 @@
|
||||
use std::{
|
||||
collections::{BTreeMap, HashMap, HashSet}, str::FromStr, sync::{Mutex, MutexGuard, OnceLock}
|
||||
};
|
||||
use anyhow::Result;
|
||||
use std::collections::{BTreeMap, HashMap, HashSet};
|
||||
use std::sync::{Mutex, MutexGuard, OnceLock};
|
||||
use std::str::FromStr;
|
||||
|
||||
use ciborium::from_reader;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use sp_client::{bitcoin::{OutPoint, Transaction}, silentpayments::SilentPaymentAddress};
|
||||
use sp_client::{
|
||||
bitcoin::{OutPoint, Transaction},
|
||||
silentpayments::SilentPaymentAddress,
|
||||
};
|
||||
use tsify::Tsify;
|
||||
|
||||
use crate::{
|
||||
@ -127,12 +130,11 @@ impl ProcessState {
|
||||
return Err(anyhow::anyhow!("Invalid pairing role: there must one and only one rule for \"pairedAddresses\""));
|
||||
}
|
||||
|
||||
// We must have a pairedAddresses field in public_data
|
||||
let updated_addresses = self.public_data.get(PAIREDADDRESSES).ok_or(anyhow::Error::msg("No paired addresses"))?; // This shouldn't happen
|
||||
|
||||
// TODO check that it matches what we have in the commitment here or somewhere else?
|
||||
|
||||
let updated_member = Member::new(from_reader(updated_addresses.as_slice())?);
|
||||
let updated_addresses_json = self.public_data.get_as_json(PAIREDADDRESSES)?;
|
||||
let updated_addresses_vec: Vec<SilentPaymentAddress> = serde_json::from_value(updated_addresses_json)?;
|
||||
let updated_member = Member::new(updated_addresses_vec);
|
||||
let previous_member = Member::new(previous_addresses);
|
||||
|
||||
let members = if previous_member.get_addresses().is_empty() {
|
||||
@ -163,8 +165,8 @@ impl ProcessState {
|
||||
} else if let Some(pairing_role) = self.roles.get(PAIRING) {
|
||||
if self.pcd_commitment.contains_key(PAIREDADDRESSES) {
|
||||
if let Some(prev_state) = previous_state {
|
||||
let prev_paired_addresses = prev_state.public_data.get(PAIREDADDRESSES).ok_or(anyhow::Error::msg("Missing pairedAddresses"))?;
|
||||
let paired_addresses = from_reader(prev_paired_addresses.as_slice())?;
|
||||
let prev_paired_addresses_json = prev_state.public_data.get_as_json(PAIREDADDRESSES)?;
|
||||
let paired_addresses: Vec<SilentPaymentAddress> = serde_json::from_value(prev_paired_addresses_json)?;
|
||||
return self.handle_pairing(pairing_role.clone(), paired_addresses);
|
||||
} else {
|
||||
// We are in a creation
|
||||
|
Loading…
x
Reference in New Issue
Block a user