Check if state_ids is not empty when requesting data
This commit is contained in:
parent
e025c0da7b
commit
e06917a5ac
13
src/api.rs
13
src/api.rs
@ -54,7 +54,7 @@ use sdk_common::sp_client::silentpayments::{
|
||||
SilentPaymentAddress,
|
||||
Error as SpError,
|
||||
};
|
||||
use js_sys::{Object, Reflect, Uint8Array};
|
||||
use sdk_common::js_sys::{Object, Reflect, Uint8Array};
|
||||
use sdk_common::{signature, MutexExt, MAX_PRD_PAYLOAD_SIZE};
|
||||
use serde_json::{json, Error as SerdeJsonError, Map, Value};
|
||||
|
||||
@ -1358,21 +1358,28 @@ pub fn update_process(
|
||||
|
||||
#[wasm_bindgen]
|
||||
pub fn request_data(process_id: String, state_ids_str: Vec<String>, roles: JsValue, members_list: OutPointMemberMap) -> ApiResult<ApiReturn> {
|
||||
if state_ids_str.is_empty() {
|
||||
return Err(ApiError::new("No state ids provided".to_owned()));
|
||||
}
|
||||
let process_id = OutPoint::from_str(&process_id)?;
|
||||
let roles: Vec<Roles> = serde_wasm_bindgen::from_value(roles)?;
|
||||
let local_device = lock_local_device()?;
|
||||
let sender_pairing_id = local_device.get_pairing_commitment().ok_or(ApiError::new("Device not paired".to_owned()))?;
|
||||
let local_address = local_device.get_address().to_string();
|
||||
let roles: Vec<Roles> = serde_wasm_bindgen::from_value(roles)?;
|
||||
|
||||
let mut state_ids: Vec<[u8; 32]> = vec![];
|
||||
for s in state_ids_str {
|
||||
if (s.len() == 0 || s == String::from_utf8(Vec::from([0u8; 32])).unwrap()) { continue; }
|
||||
if (s.len() == 0 || s.as_str() == EMPTYSTATEID) { continue; }
|
||||
let state_id: Result<[u8; 32], _> = Vec::from_hex(&s)?.try_into().map_err(|_| ApiError::new("Invalid state id".to_owned()));
|
||||
if let Ok(state_id) = state_id {
|
||||
state_ids.push(state_id);
|
||||
}
|
||||
}
|
||||
|
||||
if state_ids.is_empty() {
|
||||
return Err(ApiError::new("No valid state ids provided".to_owned()));
|
||||
}
|
||||
|
||||
let mut send_to: HashSet<SilentPaymentAddress> = HashSet::new();
|
||||
for role in roles {
|
||||
for (_, role_def) in role {
|
||||
|
Loading…
x
Reference in New Issue
Block a user