Refactor add_validation_token

This commit is contained in:
NicolasCantu 2025-03-13 14:42:05 +01:00
parent 4582807822
commit 40f8a6ec20

View File

@ -76,6 +76,8 @@ use sdk_common::secrets::SecretsStore;
use crate::user::{lock_local_device, set_new_device, LOCAL_DEVICE}; use crate::user::{lock_local_device, set_new_device, LOCAL_DEVICE};
use crate::wallet::{generate_sp_wallet, lock_freezed_utxos}; use crate::wallet::{generate_sp_wallet, lock_freezed_utxos};
const EMPTYSTATEID: &str = "0000000000000000000000000000000000000000000000000000000000000000";
#[derive(Debug, PartialEq, Tsify, Serialize, Deserialize, Default)] #[derive(Debug, PartialEq, Tsify, Serialize, Deserialize, Default)]
#[tsify(into_wasm_abi)] #[tsify(into_wasm_abi)]
#[allow(non_camel_case_types)] #[allow(non_camel_case_types)]
@ -1463,23 +1465,20 @@ pub fn evaluate_state(process_id: String, previous_state: Option<ProcessState>,
fn add_validation_token(mut process: Process, state_id: String, approval: bool) -> ApiResult<ApiReturn> { fn add_validation_token(mut process: Process, state_id: String, approval: bool) -> ApiResult<ApiReturn> {
let process_id = process.get_process_id()?; let process_id = process.get_process_id()?;
let state_id: [u8; 32] = Vec::from_hex(&state_id)?.try_into().map_err(|_| ApiError::new("Invalid state_id".to_owned()))?; let state_id: [u8; 32] = Vec::from_hex(&state_id)?.try_into().map_err(|_| ApiError::new("Invalid state_id".to_owned()))?;
if state_id == [0u8; 32] { return Err(ApiError::new("Can't validate empty state".to_owned())); }
{ let update_state: &mut ProcessState = process.get_state_for_id_mut(&state_id)?;
let update_state: &mut ProcessState = process.get_state_for_id_mut(&state_id)?;
let message_hash = if approval { let message_hash = if approval {
AnkHash::ValidationYes(AnkValidationYesHash::from_merkle_root(state_id)) AnkHash::ValidationYes(AnkValidationYesHash::from_merkle_root(state_id))
} else { } else {
AnkHash::ValidationNo(AnkValidationNoHash::from_merkle_root(state_id)) AnkHash::ValidationNo(AnkValidationNoHash::from_merkle_root(state_id))
}; };
let local_device = lock_local_device()?; let local_device = lock_local_device()?;
let sp_wallet = local_device.get_wallet(); let sp_wallet = local_device.get_wallet();
let proof = Proof::new(message_hash, sp_wallet.get_client().get_spend_key().try_into()?); let proof = Proof::new(message_hash, sp_wallet.get_client().get_spend_key().try_into()?);
update_state.validation_tokens.push(proof); update_state.validation_tokens.push(proof);
}
let mut commit_msg = CommitMessage::new( let mut commit_msg = CommitMessage::new(
process_id, process_id,