Add hash_value method

This commit is contained in:
NicolasCantu 2025-06-06 22:46:48 +02:00
parent a3f1460fa5
commit f4122a6e63

View File

@ -13,6 +13,7 @@ use rand::{thread_rng, Fill, Rng, RngCore};
use sdk_common::aes_gcm::aead::generic_array::GenericArray;
use sdk_common::aes_gcm::aes::cipher::ArrayLength;
use sdk_common::aes_gcm::Nonce;
use sdk_common::hash::AnkPcdHash;
use sdk_common::log::{self, debug, info, warn};
use anyhow::{anyhow, Context};
@ -64,7 +65,7 @@ use sdk_common::network::{
NewTxMessage,
};
use sdk_common::pcd::{
AnkPcdHash, AnkPcdTag, FileBlob, Member, Pcd, PcdCommitments, RoleDefinition, Roles, ValidationRule
FileBlob, Member, Pcd, PcdCommitments, RoleDefinition, Roles, ValidationRule
};
use sdk_common::prd::{AnkPrdHash, Prd, PrdType};
use sdk_common::silentpayments::{create_transaction as internal_create_transaction, sign_transaction as internal_sign_tx, TsUnsignedTransaction};
@ -1719,3 +1720,11 @@ pub fn decode_value(value: Vec<u8>) -> ApiResult<JsValue> {
let res: Value = sdk_common::serialization::ciborium_deserialize(&value)?;
Ok(serde_wasm_bindgen::to_value(&res)?)
}
#[wasm_bindgen]
pub fn hash_value(value: JsValue, commited_in: String, label: String) -> ApiResult<String> {
let outpoint = OutPoint::from_str(&commited_in)?;
let encoded_value = sdk_common::serialization::ciborium_serialize(&serde_wasm_bindgen::from_value::<FileBlob>(value)?)?;
let hash = AnkPcdHash::from_pcd_value(encoded_value.as_slice(), label.as_bytes(), &outpoint);
Ok(hash.as_byte_array().to_lower_hex_string())
}