25 lines
640 B
Rust
25 lines
640 B
Rust
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)
|
|
}
|
|
}
|