Skip to content

Commit ff23ca9

Browse files
committed
Add but don't handle new wire messaging
1 parent e485289 commit ff23ca9

File tree

4 files changed

+217
-3
lines changed

4 files changed

+217
-3
lines changed

lightning/src/ln/channelmanager.rs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6076,10 +6076,21 @@ impl<M: Deref , T: Deref , K: Deref , F: Deref , L: Deref >
60766076
pending_msg_events.retain(|msg| {
60776077
match msg {
60786078
&events::MessageSendEvent::SendAcceptChannel { ref node_id, .. } => node_id != counterparty_node_id,
6079+
&events::MessageSendEvent::SendAcceptChannelV2 { ref node_id, .. } => node_id != counterparty_node_id,
60796080
&events::MessageSendEvent::SendOpenChannel { ref node_id, .. } => node_id != counterparty_node_id,
6081+
&events::MessageSendEvent::SendOpenChannelV2 { ref node_id, .. } => node_id != counterparty_node_id,
60806082
&events::MessageSendEvent::SendFundingCreated { ref node_id, .. } => node_id != counterparty_node_id,
60816083
&events::MessageSendEvent::SendFundingSigned { ref node_id, .. } => node_id != counterparty_node_id,
60826084
&events::MessageSendEvent::SendChannelReady { ref node_id, .. } => node_id != counterparty_node_id,
6085+
&events::MessageSendEvent::SendTxAddInput { ref node_id, .. } => node_id != counterparty_node_id,
6086+
&events::MessageSendEvent::SendTxAddOutput { ref node_id, .. } => node_id != counterparty_node_id,
6087+
&events::MessageSendEvent::SendTxRemoveInput { ref node_id, .. } => node_id != counterparty_node_id,
6088+
&events::MessageSendEvent::SendTxRemoveOutput { ref node_id, .. } => node_id != counterparty_node_id,
6089+
&events::MessageSendEvent::SendTxComplete { ref node_id, .. } => node_id != counterparty_node_id,
6090+
&events::MessageSendEvent::SendTxSignatures { ref node_id, .. } => node_id != counterparty_node_id,
6091+
&events::MessageSendEvent::SendTxInitRbf { ref node_id, .. } => node_id != counterparty_node_id,
6092+
&events::MessageSendEvent::SendTxAckRbf { ref node_id, .. } => node_id != counterparty_node_id,
6093+
&events::MessageSendEvent::SendTxAbort { ref node_id, .. } => node_id != counterparty_node_id,
60836094
&events::MessageSendEvent::SendAnnouncementSignatures { ref node_id, .. } => node_id != counterparty_node_id,
60846095
&events::MessageSendEvent::UpdateHTLCs { ref node_id, .. } => node_id != counterparty_node_id,
60856096
&events::MessageSendEvent::SendRevokeAndACK { ref node_id, .. } => node_id != counterparty_node_id,

lightning/src/ln/peer_handler.rs

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1342,9 +1342,15 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
13421342
wire::Message::OpenChannel(msg) => {
13431343
self.message_handler.chan_handler.handle_open_channel(&their_node_id, their_features.clone().unwrap(), &msg);
13441344
},
1345+
wire::Message::OpenChannelV2(_msg) => {
1346+
// TODO
1347+
},
13451348
wire::Message::AcceptChannel(msg) => {
13461349
self.message_handler.chan_handler.handle_accept_channel(&their_node_id, their_features.clone().unwrap(), &msg);
13471350
},
1351+
wire::Message::AcceptChannelV2(_msg) => {
1352+
// TODO
1353+
},
13481354

13491355
wire::Message::FundingCreated(msg) => {
13501356
self.message_handler.chan_handler.handle_funding_created(&their_node_id, &msg);
@@ -1356,6 +1362,35 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
13561362
self.message_handler.chan_handler.handle_channel_ready(&their_node_id, &msg);
13571363
},
13581364

1365+
// Interactive transaction construction messages:
1366+
wire::Message::TxAddInput(_msg) => {
1367+
// TODO
1368+
},
1369+
wire::Message::TxAddOutput(_msg) => {
1370+
// TODO
1371+
},
1372+
wire::Message::TxRemoveInput(_msg) => {
1373+
// TODO
1374+
},
1375+
wire::Message::TxRemoveOutput(_msg) => {
1376+
// TODO
1377+
},
1378+
wire::Message::TxComplete(_msg) => {
1379+
// TODO
1380+
},
1381+
wire::Message::TxSignatures(_msg) => {
1382+
// TODO
1383+
},
1384+
wire::Message::TxInitRbf(_msg) => {
1385+
// TODO
1386+
},
1387+
wire::Message::TxAckRbf(_msg) => {
1388+
// TODO
1389+
},
1390+
wire::Message::TxAbort(_msg) => {
1391+
// TODO
1392+
}
1393+
13591394
wire::Message::Shutdown(msg) => {
13601395
self.message_handler.chan_handler.handle_shutdown(&their_node_id, their_features.as_ref().unwrap(), &msg);
13611396
},
@@ -1607,12 +1642,18 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
16071642
log_bytes!(msg.temporary_channel_id));
16081643
self.enqueue_message(&mut *get_peer_for_forwarding!(node_id), msg);
16091644
},
1645+
MessageSendEvent::SendAcceptChannelV2 { .. } => {
1646+
// TODO
1647+
},
16101648
MessageSendEvent::SendOpenChannel { ref node_id, ref msg } => {
16111649
log_debug!(self.logger, "Handling SendOpenChannel event in peer_handler for node {} for channel {}",
16121650
log_pubkey!(node_id),
16131651
log_bytes!(msg.temporary_channel_id));
16141652
self.enqueue_message(&mut *get_peer_for_forwarding!(node_id), msg);
16151653
},
1654+
MessageSendEvent::SendOpenChannelV2 { .. } => {
1655+
// TODO
1656+
},
16161657
MessageSendEvent::SendFundingCreated { ref node_id, ref msg } => {
16171658
log_debug!(self.logger, "Handling SendFundingCreated event in peer_handler for node {} for channel {} (which becomes {})",
16181659
log_pubkey!(node_id),
@@ -1634,6 +1675,33 @@ impl<Descriptor: SocketDescriptor, CM: Deref, RM: Deref, OM: Deref, L: Deref, CM
16341675
log_bytes!(msg.channel_id));
16351676
self.enqueue_message(&mut *get_peer_for_forwarding!(node_id), msg);
16361677
},
1678+
MessageSendEvent::SendTxAddInput { .. } => {
1679+
// TODO
1680+
},
1681+
MessageSendEvent::SendTxAddOutput { .. } => {
1682+
// TODO
1683+
},
1684+
MessageSendEvent::SendTxRemoveInput { .. } => {
1685+
// TODO
1686+
},
1687+
MessageSendEvent::SendTxRemoveOutput { .. } => {
1688+
// TODO
1689+
},
1690+
MessageSendEvent::SendTxComplete { .. } => {
1691+
// TODO
1692+
},
1693+
MessageSendEvent::SendTxSignatures { .. } => {
1694+
// TODO
1695+
},
1696+
MessageSendEvent::SendTxInitRbf { .. } => {
1697+
// TODO
1698+
},
1699+
MessageSendEvent::SendTxAckRbf { .. } => {
1700+
// TODO
1701+
},
1702+
MessageSendEvent::SendTxAbort { .. } => {
1703+
// TODO
1704+
},
16371705
MessageSendEvent::SendAnnouncementSignatures { ref node_id, ref msg } => {
16381706
log_debug!(self.logger, "Handling SendAnnouncementSignatures event in peer_handler for node {} for channel {})",
16391707
log_pubkey!(node_id),

lightning/src/ln/wire.rs

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,20 @@ pub(crate) enum Message<T> where T: core::fmt::Debug + Type + TestEq {
5454
Ping(msgs::Ping),
5555
Pong(msgs::Pong),
5656
OpenChannel(msgs::OpenChannel),
57+
OpenChannelV2(msgs::OpenChannelV2),
5758
AcceptChannel(msgs::AcceptChannel),
59+
AcceptChannelV2(msgs::AcceptChannelV2),
5860
FundingCreated(msgs::FundingCreated),
5961
FundingSigned(msgs::FundingSigned),
62+
TxAddInput(msgs::TxAddInput),
63+
TxAddOutput(msgs::TxAddOutput),
64+
TxRemoveInput(msgs::TxRemoveInput),
65+
TxRemoveOutput(msgs::TxRemoveOutput),
66+
TxComplete(msgs::TxComplete),
67+
TxSignatures(msgs::TxSignatures),
68+
TxInitRbf(msgs::TxInitRbf),
69+
TxAckRbf(msgs::TxAckRbf),
70+
TxAbort(msgs::TxAbort),
6071
ChannelReady(msgs::ChannelReady),
6172
Shutdown(msgs::Shutdown),
6273
ClosingSigned(msgs::ClosingSigned),
@@ -95,9 +106,20 @@ impl<T> Message<T> where T: core::fmt::Debug + Type + TestEq {
95106
&Message::Ping(ref msg) => msg.type_id(),
96107
&Message::Pong(ref msg) => msg.type_id(),
97108
&Message::OpenChannel(ref msg) => msg.type_id(),
109+
&Message::OpenChannelV2(ref msg) => msg.type_id(),
98110
&Message::AcceptChannel(ref msg) => msg.type_id(),
111+
&Message::AcceptChannelV2(ref msg) => msg.type_id(),
99112
&Message::FundingCreated(ref msg) => msg.type_id(),
100113
&Message::FundingSigned(ref msg) => msg.type_id(),
114+
&Message::TxAddInput(ref msg) => msg.type_id(),
115+
&Message::TxAddOutput(ref msg) => msg.type_id(),
116+
&Message::TxRemoveInput(ref msg) => msg.type_id(),
117+
&Message::TxRemoveOutput(ref msg) => msg.type_id(),
118+
&Message::TxComplete(ref msg) => msg.type_id(),
119+
&Message::TxSignatures(ref msg) => msg.type_id(),
120+
&Message::TxInitRbf(ref msg) => msg.type_id(),
121+
&Message::TxAckRbf(ref msg) => msg.type_id(),
122+
&Message::TxAbort(ref msg) => msg.type_id(),
101123
&Message::ChannelReady(ref msg) => msg.type_id(),
102124
&Message::Shutdown(ref msg) => msg.type_id(),
103125
&Message::ClosingSigned(ref msg) => msg.type_id(),
@@ -135,7 +157,7 @@ impl<T> Message<T> where T: core::fmt::Debug + Type + TestEq {
135157
///
136158
/// # Errors
137159
///
138-
/// Returns an error if the message payload code not be decoded as the specified type.
160+
/// Returns an error if the message payload could not be decoded as the specified type.
139161
pub(crate) fn read<R: io::Read, T, H: core::ops::Deref>(buffer: &mut R, custom_reader: H)
140162
-> Result<Message<T>, (msgs::DecodeError, Option<u16>)> where
141163
T: core::fmt::Debug + Type + Writeable,
@@ -169,15 +191,48 @@ fn do_read<R: io::Read, T, H: core::ops::Deref>(buffer: &mut R, message_type: u1
169191
msgs::OpenChannel::TYPE => {
170192
Ok(Message::OpenChannel(Readable::read(buffer)?))
171193
},
194+
msgs::OpenChannelV2::TYPE => {
195+
Ok(Message::OpenChannelV2(Readable::read(buffer)?))
196+
},
172197
msgs::AcceptChannel::TYPE => {
173198
Ok(Message::AcceptChannel(Readable::read(buffer)?))
174199
},
200+
msgs::AcceptChannelV2::TYPE => {
201+
Ok(Message::AcceptChannelV2(Readable::read(buffer)?))
202+
},
175203
msgs::FundingCreated::TYPE => {
176204
Ok(Message::FundingCreated(Readable::read(buffer)?))
177205
},
178206
msgs::FundingSigned::TYPE => {
179207
Ok(Message::FundingSigned(Readable::read(buffer)?))
180208
},
209+
msgs::TxAddInput::TYPE => {
210+
Ok(Message::TxAddInput(Readable::read(buffer)?))
211+
},
212+
msgs::TxAddOutput::TYPE => {
213+
Ok(Message::TxAddOutput(Readable::read(buffer)?))
214+
},
215+
msgs::TxRemoveInput::TYPE => {
216+
Ok(Message::TxRemoveInput(Readable::read(buffer)?))
217+
},
218+
msgs::TxRemoveOutput::TYPE => {
219+
Ok(Message::TxRemoveOutput(Readable::read(buffer)?))
220+
},
221+
msgs::TxComplete::TYPE => {
222+
Ok(Message::TxComplete(Readable::read(buffer)?))
223+
},
224+
msgs::TxSignatures::TYPE => {
225+
Ok(Message::TxSignatures(Readable::read(buffer)?))
226+
},
227+
msgs::TxInitRbf::TYPE => {
228+
Ok(Message::TxInitRbf(Readable::read(buffer)?))
229+
},
230+
msgs::TxAckRbf::TYPE => {
231+
Ok(Message::TxAckRbf(Readable::read(buffer)?))
232+
},
233+
msgs::TxAbort::TYPE => {
234+
Ok(Message::TxAbort(Readable::read(buffer)?))
235+
},
181236
msgs::ChannelReady::TYPE => {
182237
Ok(Message::ChannelReady(Readable::read(buffer)?))
183238
},

lightning/src/util/events.rs

Lines changed: 82 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@
1515
//! few other things.
1616
1717
use crate::chain::keysinterface::SpendableOutputDescriptor;
18-
use crate::ln::chan_utils::HTLCOutputInCommitment;
18+
#[cfg(opt_anchors)]
19+
use crate::chan_utils::HTLCOutputInCommitment;
1920
use crate::ln::channelmanager::PaymentId;
2021
use crate::ln::channel::FUNDING_CONF_DEADLINE_BLOCKS;
2122
use crate::ln::features::ChannelTypeFeatures;
@@ -26,7 +27,7 @@ use crate::routing::gossip::NetworkUpdate;
2627
use crate::util::ser::{BigSize, FixedLengthReader, Writeable, Writer, MaybeReadable, Readable, VecReadWrapper, VecWriteWrapper};
2728
use crate::routing::router::{RouteHop, RouteParameters};
2829

29-
use bitcoin::{PackedLockTime, Transaction, OutPoint};
30+
use bitcoin::{PackedLockTime, Transaction};
3031
use bitcoin::blockdata::script::Script;
3132
use bitcoin::hashes::Hash;
3233
use bitcoin::hashes::sha256::Hash as Sha256;
@@ -1170,6 +1171,14 @@ pub enum MessageSendEvent {
11701171
/// The message which should be sent.
11711172
msg: msgs::AcceptChannel,
11721173
},
1174+
/// Used to indicate that we've accepted a V2 channel open and should send the accept_channel2
1175+
/// message provided to the given peer.
1176+
SendAcceptChannelV2 {
1177+
/// The node_id of the node which should receive this message
1178+
node_id: PublicKey,
1179+
/// The message which should be sent.
1180+
msg: msgs::AcceptChannelV2,
1181+
},
11731182
/// Used to indicate that we've initiated a channel open and should send the open_channel
11741183
/// message provided to the given peer.
11751184
SendOpenChannel {
@@ -1178,6 +1187,14 @@ pub enum MessageSendEvent {
11781187
/// The message which should be sent.
11791188
msg: msgs::OpenChannel,
11801189
},
1190+
/// Used to indicate that we've initiated a V2 channel open and should send the open_channel2
1191+
/// message provided to the given peer.
1192+
SendOpenChannelV2 {
1193+
/// The node_id of the node which should receive this message
1194+
node_id: PublicKey,
1195+
/// The message which should be sent.
1196+
msg: msgs::OpenChannelV2,
1197+
},
11811198
/// Used to indicate that a funding_created message should be sent to the peer with the given node_id.
11821199
SendFundingCreated {
11831200
/// The node_id of the node which should receive this message
@@ -1192,6 +1209,69 @@ pub enum MessageSendEvent {
11921209
/// The message which should be sent.
11931210
msg: msgs::FundingSigned,
11941211
},
1212+
/// Used to indicate that a tx_add_input message should be sent to the peer with the given node_id.
1213+
SendTxAddInput {
1214+
/// The node_id of the node which should receive this message
1215+
node_id: PublicKey,
1216+
/// The message which should be sent.
1217+
msg: msgs::TxAddInput,
1218+
},
1219+
/// Used to indicate that a tx_add_output message should be sent to the peer with the given node_id.
1220+
SendTxAddOutput {
1221+
/// The node_id of the node which should receive this message
1222+
node_id: PublicKey,
1223+
/// The message which should be sent.
1224+
msg: msgs::TxAddOutput,
1225+
},
1226+
/// Used to indicate that a tx_remove_input message should be sent to the peer with the given node_id.
1227+
SendTxRemoveInput {
1228+
/// The node_id of the node which should receive this message
1229+
node_id: PublicKey,
1230+
/// The message which should be sent.
1231+
msg: msgs::TxRemoveInput,
1232+
},
1233+
/// Used to indicate that a tx_remove_output message should be sent to the peer with the given node_id.
1234+
SendTxRemoveOutput {
1235+
/// The node_id of the node which should receive this message
1236+
node_id: PublicKey,
1237+
/// The message which should be sent.
1238+
msg: msgs::TxRemoveOutput,
1239+
},
1240+
/// Used to indicate that a tx_complete message should be sent to the peer with the given node_id.
1241+
SendTxComplete {
1242+
/// The node_id of the node which should receive this message
1243+
node_id: PublicKey,
1244+
/// The message which should be sent.
1245+
msg: msgs::TxComplete,
1246+
},
1247+
/// Used to indicate that a tx_signatures message should be sent to the peer with the given node_id.
1248+
SendTxSignatures {
1249+
/// The node_id of the node which should receive this message
1250+
node_id: PublicKey,
1251+
/// The message which should be sent.
1252+
msg: msgs::TxSignatures,
1253+
},
1254+
/// Used to indicate that a tx_init_rbf message should be sent to the peer with the given node_id.
1255+
SendTxInitRbf {
1256+
/// The node_id of the node which should receive this message
1257+
node_id: PublicKey,
1258+
/// The message which should be sent.
1259+
msg: msgs::TxInitRbf,
1260+
},
1261+
/// Used to indicate that a tx_ack_rbf message should be sent to the peer with the given node_id.
1262+
SendTxAckRbf {
1263+
/// The node_id of the node which should receive this message
1264+
node_id: PublicKey,
1265+
/// The message which should be sent.
1266+
msg: msgs::TxAckRbf,
1267+
},
1268+
/// Used to indicate that a tx_abort message should be sent to the peer with the given node_id.
1269+
SendTxAbort {
1270+
/// The node_id of the node which should receive this message
1271+
node_id: PublicKey,
1272+
/// The message which should be sent.
1273+
msg: msgs::TxAddInput,
1274+
},
11951275
/// Used to indicate that a channel_ready message should be sent to the peer with the given node_id.
11961276
SendChannelReady {
11971277
/// The node_id of the node which should receive these message(s)

0 commit comments

Comments
 (0)