X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=src%2Fln%2Fmsgs.rs;h=6aa9e05b242fd7a53018c70cb05dd170d5d49432;hb=3d55d71fda509935dc830f49f523a516bb048a88;hp=57e755019532bcb899b01fb94982954f5f9c280b;hpb=12d25576c1661c09c6ece239d286dd3ab6380cd5;p=rust-lightning diff --git a/src/ln/msgs.rs b/src/ln/msgs.rs index 57e75501..6aa9e05b 100644 --- a/src/ln/msgs.rs +++ b/src/ln/msgs.rs @@ -8,7 +8,7 @@ //! //! Note that if you go with such an architecture (instead of passing raw socket events to a //! non-internet-facing system) you trust the frontend internet-facing system to not lie about the -//! source node_id of the mssage, however this does allow you to significantly reduce bandwidth +//! source node_id of the message, however this does allow you to significantly reduce bandwidth //! between the systems as routing messages can represent a significant chunk of bandwidth usage //! (especially for non-channel-publicly-announcing nodes). As an alternate design which avoids //! this issue, if you have sufficient bidirectional bandwidth between your systems, you may send @@ -18,7 +18,7 @@ use secp256k1::key::PublicKey; use secp256k1::Signature; use secp256k1; -use bitcoin::util::hash::Sha256dHash; +use bitcoin_hashes::sha256d::Hash as Sha256dHash; use bitcoin::blockdata::script::Script; use std::error::Error; @@ -26,7 +26,7 @@ use std::{cmp, fmt}; use std::io::Read; use std::result::Result; -use util::{byte_utils, events}; +use util::events; use util::ser::{Readable, Writeable, Writer}; use ln::channelmanager::{PaymentPreimage, PaymentHash}; @@ -47,7 +47,6 @@ pub enum DecodeError { /// node_announcement included more than one address of a given type! ExtraAddressesPerType, /// A length descriptor in the packet didn't describe the later data correctly - /// (currently only generated in node_announcement) BadLengthDescriptor, /// Error from std::io Io(::std::io::Error), @@ -92,32 +91,26 @@ impl LocalFeatures { } pub(crate) fn requires_unknown_bits(&self) -> bool { - for (idx, &byte) in self.flags.iter().enumerate() { - if idx != 0 && (byte & 0x55) != 0 { - return true; - } else if idx == 0 && (byte & 0x14) != 0 { - return true; - } - } - return false; + self.flags.iter().enumerate().any(|(idx, &byte)| { + ( idx != 0 && (byte & 0x55) != 0 ) || ( idx == 0 && (byte & 0x14) != 0 ) + }) } pub(crate) fn supports_unknown_bits(&self) -> bool { - for (idx, &byte) in self.flags.iter().enumerate() { - if idx != 0 && byte != 0 { - return true; - } else if idx == 0 && (byte & 0xc4) != 0 { - return true; - } - } - return false; + self.flags.iter().enumerate().any(|(idx, &byte)| { + ( idx != 0 && byte != 0 ) || ( idx == 0 && (byte & 0xc4) != 0 ) + }) } } /// Tracks globalfeatures which are in init messages and routing announcements -#[derive(Clone, PartialEq)] +#[derive(Clone, PartialEq, Debug)] pub struct GlobalFeatures { + #[cfg(not(test))] flags: Vec, + // Used to test encoding of diverse msgs + #[cfg(test)] + pub flags: Vec } impl GlobalFeatures { @@ -191,7 +184,7 @@ pub struct OpenChannel { pub(crate) htlc_basepoint: PublicKey, pub(crate) first_per_commitment_point: PublicKey, pub(crate) channel_flags: u8, - pub(crate) shutdown_scriptpubkey: Option