From f4122a6e633d4f652a2327c07a7544e13d1e3d83 Mon Sep 17 00:00:00 2001 From: NicolasCantu Date: Fri, 6 Jun 2025 22:46:48 +0200 Subject: [PATCH] Add hash_value method --- src/api.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/api.rs b/src/api.rs index 46d3763..63b1aa3 100644 --- a/src/api.rs +++ b/src/api.rs @@ -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) -> ApiResult { 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 { + let outpoint = OutPoint::from_str(&commited_in)?; + let encoded_value = sdk_common::serialization::ciborium_serialize(&serde_wasm_bindgen::from_value::(value)?)?; + let hash = AnkPcdHash::from_pcd_value(encoded_value.as_slice(), label.as_bytes(), &outpoint); + Ok(hash.as_byte_array().to_lower_hex_string()) +}