From 73d009a95234ea706f1e4cd9c5cfe8bed03de614 Mon Sep 17 00:00:00 2001 From: Sosthene Date: Mon, 30 Jun 2025 15:59:37 +0200 Subject: [PATCH] Fix hash_value with new serialization method --- src/api.rs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/api.rs b/src/api.rs index bb2b33f..6e01816 100644 --- a/src/api.rs +++ b/src/api.rs @@ -1726,18 +1726,16 @@ pub fn decode_value(value: Vec) -> ApiResult { Err(ApiError::new("Invalid or unsupported PCD data".to_owned())) } -// #[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()) -// } - #[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 encoded_value = if let Ok(file_blob) = serde_wasm_bindgen::from_value::(value.clone()) { + file_blob.serialize_to_pcd()? + } else if let Ok(json) = serde_wasm_bindgen::from_value::(value) { + json.serialize_to_pcd()? + } else { + return Err(ApiError::new("Invalid or unsupported PCD data".to_owned())); + }; let hash = AnkPcdHash::from_pcd_value(encoded_value.as_slice(), label.as_bytes(), &outpoint); Ok(hash.as_byte_array().to_lower_hex_string()) }