X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=lightning%2Fsrc%2Fln%2Fwire.rs;h=55e31399ae10074d2e72f1b04a4c1c71ed1808df;hb=d25d55a682dbd4a3c7fcbaa05744fa002e571bca;hp=88e2ad7c1daee03ef245c795f0119eb229a10520;hpb=42e2f1d1a645156180cbcc664989df78175301d2;p=rust-lightning diff --git a/lightning/src/ln/wire.rs b/lightning/src/ln/wire.rs index 88e2ad7c..55e31399 100644 --- a/lightning/src/ln/wire.rs +++ b/lightning/src/ln/wire.rs @@ -59,6 +59,13 @@ pub(crate) enum Message where T: core::fmt::Debug + Type + TestEq { AcceptChannelV2(msgs::AcceptChannelV2), FundingCreated(msgs::FundingCreated), FundingSigned(msgs::FundingSigned), + Stfu(msgs::Stfu), + #[cfg(splicing)] + Splice(msgs::Splice), + #[cfg(splicing)] + SpliceAck(msgs::SpliceAck), + #[cfg(splicing)] + SpliceLocked(msgs::SpliceLocked), TxAddInput(msgs::TxAddInput), TxAddOutput(msgs::TxAddOutput), TxRemoveInput(msgs::TxRemoveInput), @@ -110,6 +117,13 @@ impl Writeable for Message where T: core::fmt::Debug + Type + TestEq { &Message::AcceptChannelV2(ref msg) => msg.write(writer), &Message::FundingCreated(ref msg) => msg.write(writer), &Message::FundingSigned(ref msg) => msg.write(writer), + &Message::Stfu(ref msg) => msg.write(writer), + #[cfg(splicing)] + &Message::Splice(ref msg) => msg.write(writer), + #[cfg(splicing)] + &Message::SpliceAck(ref msg) => msg.write(writer), + #[cfg(splicing)] + &Message::SpliceLocked(ref msg) => msg.write(writer), &Message::TxAddInput(ref msg) => msg.write(writer), &Message::TxAddOutput(ref msg) => msg.write(writer), &Message::TxRemoveInput(ref msg) => msg.write(writer), @@ -161,6 +175,13 @@ impl Type for Message where T: core::fmt::Debug + Type + TestEq { &Message::AcceptChannelV2(ref msg) => msg.type_id(), &Message::FundingCreated(ref msg) => msg.type_id(), &Message::FundingSigned(ref msg) => msg.type_id(), + &Message::Stfu(ref msg) => msg.type_id(), + #[cfg(splicing)] + &Message::Splice(ref msg) => msg.type_id(), + #[cfg(splicing)] + &Message::SpliceAck(ref msg) => msg.type_id(), + #[cfg(splicing)] + &Message::SpliceLocked(ref msg) => msg.type_id(), &Message::TxAddInput(ref msg) => msg.type_id(), &Message::TxAddOutput(ref msg) => msg.type_id(), &Message::TxRemoveInput(ref msg) => msg.type_id(), @@ -258,6 +279,21 @@ fn do_read(buffer: &mut R, message_type: u1 msgs::FundingSigned::TYPE => { Ok(Message::FundingSigned(Readable::read(buffer)?)) }, + #[cfg(splicing)] + msgs::Splice::TYPE => { + Ok(Message::Splice(Readable::read(buffer)?)) + }, + msgs::Stfu::TYPE => { + Ok(Message::Stfu(Readable::read(buffer)?)) + }, + #[cfg(splicing)] + msgs::SpliceAck::TYPE => { + Ok(Message::SpliceAck(Readable::read(buffer)?)) + }, + #[cfg(splicing)] + msgs::SpliceLocked::TYPE => { + Ok(Message::SpliceLocked(Readable::read(buffer)?)) + }, msgs::TxAddInput::TYPE => { Ok(Message::TxAddInput(Readable::read(buffer)?)) }, @@ -408,6 +444,10 @@ impl Type for T where T: Encode { fn type_id(&self) -> u16 { T::TYPE } } +impl Encode for msgs::Stfu { + const TYPE: u16 = 2; +} + impl Encode for msgs::Init { const TYPE: u16 = 16; } @@ -464,6 +504,19 @@ impl Encode for msgs::AcceptChannelV2 { const TYPE: u16 = 65; } +impl Encode for msgs::Splice { + // TODO(splicing) Double check with finalized spec; draft spec contains 74, which is probably wrong as it is used by tx_Abort; CLN uses 75 + const TYPE: u16 = 75; +} + +impl Encode for msgs::SpliceAck { + const TYPE: u16 = 76; +} + +impl Encode for msgs::SpliceLocked { + const TYPE: u16 = 77; +} + impl Encode for msgs::TxAddInput { const TYPE: u16 = 66; } @@ -576,7 +629,6 @@ impl Encode for msgs::GossipTimestampFilter { mod tests { use super::*; use crate::prelude::*; - use core::convert::TryInto; use crate::ln::peer_handler::IgnoringMessageHandler; // Big-endian wire encoding of Pong message (type = 19, byteslen = 2).