Merge pull request #386 from TheBlueMatt/2019-10-useless-lints
[rust-lightning] / src / util / ser.rs
index d832c7018825e75df028bd2e2b8ea538962cc0e3..a2ef16b5e2462c51dd22f7c4444cd0cf7b22460a 100644 (file)
@@ -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<R: Read> Readable<R> for SecretKey {
 
 impl Writeable for Sha256dHash {
        fn write<W: Writer>(&self, w: &mut W) -> Result<(), ::std::io::Error> {
-               self.as_bytes().write(w)
+               w.write_all(&self[..])
        }
 }
 
 impl<R: Read> Readable<R> for Sha256dHash {
        fn read(r: &mut R) -> Result<Self, DecodeError> {
+               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<R, T> Readable<R> for Option<T>
                }
        }
 }
+
+impl Writeable for OutPoint {
+       fn write<W: Writer>(&self, w: &mut W) -> Result<(), ::std::io::Error> {
+               self.txid.write(w)?;
+               self.vout.write(w)?;
+               Ok(())
+       }
+}
+
+impl<R: Read> Readable<R> for OutPoint {
+       fn read(r: &mut R) -> Result<Self, DecodeError> {
+               let txid = Readable::read(r)?;
+               let vout = Readable::read(r)?;
+               Ok(OutPoint {
+                       txid,
+                       vout,
+               })
+       }
+}