Add more error control
This commit is contained in:
parent
cf3278dd3d
commit
b7bffe7678
11
src/api.rs
11
src/api.rs
@ -571,10 +571,11 @@ pub fn create_process_init_transaction(
|
||||
fee_rate: u32,
|
||||
) -> ApiResult<createTransactionReturn> {
|
||||
let pcd = new_process.init_state;
|
||||
let roles = pcd["roles"].as_object().unwrap().clone();
|
||||
let roles = pcd.get("roles").ok_or(ApiError { message: "No roles in init_state".to_owned()})?;
|
||||
let roles_map = roles.as_object().ok_or(ApiError { message: "roles is not an object".to_owned()})?.clone();
|
||||
let mut all_members: HashMap<Member, HashSet<String>> = HashMap::new();
|
||||
for (name, role_def) in roles {
|
||||
let role: RoleDefinition = serde_json::from_str(&role_def.to_string()).unwrap();
|
||||
for (name, role_def) in roles_map {
|
||||
let role: RoleDefinition = serde_json::from_str(&role_def.to_string())?;
|
||||
let fields: Vec<String> = role.validation_rules.iter().flat_map(|rule| rule.fields.clone()).collect();
|
||||
for member in role.members {
|
||||
if !all_members.contains_key(&member) {
|
||||
@ -615,7 +616,7 @@ pub fn create_process_init_transaction(
|
||||
|
||||
let sp_wallet = local_device.get_wallet();
|
||||
|
||||
let sender: Member = local_device.to_member().unwrap();
|
||||
let sender: Member = local_device.to_member().ok_or(ApiError { message: "unpaired device".to_owned() })?;
|
||||
|
||||
// We first generate the prd with all the keys that we will keep to ourselves
|
||||
let full_prd = Prd::new(
|
||||
@ -665,7 +666,7 @@ pub fn create_process_init_transaction(
|
||||
let addresses = member.get_addresses();
|
||||
for sp_address in addresses.into_iter() {
|
||||
let shared_point = sp_utils::sending::calculate_ecdh_shared_secret(
|
||||
&<SilentPaymentAddress>::try_from(sp_address).unwrap().get_scan_key(),
|
||||
&<SilentPaymentAddress>::try_from(sp_address)?.get_scan_key(),
|
||||
&partial_secret,
|
||||
);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user