Refactor add_validation_token
This commit is contained in:
parent
4582807822
commit
40f8a6ec20
25
src/api.rs
25
src/api.rs
@ -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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user