diff --git a/src/prd.rs b/src/prd.rs index f4ff01e..f54f7b2 100644 --- a/src/prd.rs +++ b/src/prd.rs @@ -1,4 +1,4 @@ -use std::collections::{HashMap, HashSet}; +use std::collections::{BTreeMap, HashSet}; use anyhow::Result; use serde::{Deserialize, Serialize}; @@ -62,6 +62,8 @@ pub struct Prd { pub keys: Map, // key is a key in pcd, value is the key to decrypt it pub pcd_commitments: Value, pub validation_tokens: Vec, + pub roles: BTreeMap, + pub public_data: BTreeMap, pub payload: String, // Additional information depending on the type pub proof: Option, // This must be None up to the creation of the network message } @@ -82,13 +84,15 @@ impl Prd { keys: Map::new(), payload: secret_hash.to_string(), proof: None, + ..Default::default() } } pub fn new_update( process_id: OutPoint, sender: Member, - roles: HashMap, + roles: BTreeMap, + public_data: BTreeMap, keys: Map, pcd_commitments: Value, ) -> Self { @@ -99,8 +103,10 @@ impl Prd { validation_tokens: vec![], keys, pcd_commitments, - payload: serde_json::to_string(&roles).expect("We're confident it's serializable"), + payload: String::new(), proof: None, + roles, + public_data, } } @@ -119,6 +125,7 @@ impl Prd { pcd_commitments, payload: String::default(), proof: None, + ..Default::default() } } @@ -136,6 +143,7 @@ impl Prd { keys: Map::new(), payload: String::default(), proof: None, + ..Default::default() } }