X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Futil%2Fser.rs;h=a2ef16b5e2462c51dd22f7c4444cd0cf7b22460a;hb=ce6f561485f3266c28ce5150a225fbe1f8137d0c;hp=d832c7018825e75df028bd2e2b8ea538962cc0e3;hpb=7a77c9f1d2297dc85dcf48aa898ae153440dbdc5;p=rust-lightning diff --git a/src/util/ser.rs b/src/util/ser.rs index d832c701..a2ef16b5 100644 --- a/src/util/ser.rs +++ b/src/util/ser.rs @@ -8,8 +8,9 @@ use std::hash::Hash; use secp256k1::Signature; use secp256k1::key::{PublicKey, SecretKey}; -use bitcoin::util::hash::Sha256dHash; use bitcoin::blockdata::script::Script; +use bitcoin::blockdata::transaction::OutPoint; +use bitcoin_hashes::sha256d::Hash as Sha256dHash; use std::marker::Sized; use ln::msgs::DecodeError; use ln::channelmanager::{PaymentPreimage, PaymentHash}; @@ -342,14 +343,16 @@ impl Readable for SecretKey { impl Writeable for Sha256dHash { fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { - self.as_bytes().write(w) + w.write_all(&self[..]) } } impl Readable for Sha256dHash { fn read(r: &mut R) -> Result { + use bitcoin_hashes::Hash; + let buf: [u8; 32] = Readable::read(r)?; - Ok(From::from(&buf[..])) + Ok(Sha256dHash::from_slice(&buf[..]).unwrap()) } } @@ -420,3 +423,22 @@ impl Readable for Option } } } + +impl Writeable for OutPoint { + fn write(&self, w: &mut W) -> Result<(), ::std::io::Error> { + self.txid.write(w)?; + self.vout.write(w)?; + Ok(()) + } +} + +impl Readable for OutPoint { + fn read(r: &mut R) -> Result { + let txid = Readable::read(r)?; + let vout = Readable::read(r)?; + Ok(OutPoint { + txid, + vout, + }) + } +}