use sp_client::bitcoin::{ consensus::{serialize, Encodable}, hashes::{sha256t_hash_newtype, Hash, HashEngine}, OutPoint, }; sha256t_hash_newtype! { pub struct AnkPcdTag = hash_str("4nk/Pcd"); #[hash_newtype(forward)] pub struct AnkPcdHash(_); } impl AnkPcdHash { pub fn from_pcd_value(value: &[u8], label: &[u8], outpoint: &OutPoint) -> Self { let mut eng = AnkPcdHash::engine(); eng.input(value); eng.input(label); serialize(outpoint) .consensus_encode(&mut eng) .expect("hash engine don't return errors"); AnkPcdHash::from_engine(eng) } }