Skip to content

Commit 04ab514

Browse files
committed
pset: implement (de)serialize for AssetBlindingFactor
1 parent d80aa1b commit 04ab514

1 file changed

Lines changed: 14 additions & 1 deletion

File tree

src/pset/serialize.rs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
use std::convert::TryFrom;
2121
use std::io;
2222

23-
use crate::confidential;
23+
use crate::confidential::{self, AssetBlindingFactor};
2424
use crate::encode::{self, deserialize, deserialize_partial, serialize, Decodable, Encodable};
2525
use crate::hashes::{hash160, ripemd160, sha256, sha256d, Hash};
2626
use crate::{AssetId, BlockHash, Script, Transaction, TxOut, Txid};
@@ -96,6 +96,19 @@ impl Deserialize for Tweak {
9696
}
9797
}
9898

99+
impl Serialize for AssetBlindingFactor {
100+
fn serialize(&self) -> Vec<u8> {
101+
encode::serialize(self.into_inner().as_ref())
102+
}
103+
}
104+
105+
impl Deserialize for AssetBlindingFactor {
106+
fn deserialize(bytes: &[u8]) -> Result<Self, encode::Error> {
107+
let x = deserialize::<[u8; 32]>(bytes)?;
108+
AssetBlindingFactor::from_slice(&x).map_err(|_| encode::Error::ParseFailed("invalid AssetBlindingFactor"))
109+
}
110+
}
111+
99112
impl Serialize for Script {
100113
fn serialize(&self) -> Vec<u8> {
101114
self.to_bytes()

0 commit comments

Comments
 (0)