@@ -1184,6 +1184,9 @@ enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
11841184 UnfundedInboundV1(InboundV1Channel<SP>),
11851185 UnfundedV2(PendingV2Channel<SP>),
11861186 Funded(FundedChannel<SP>),
1187+ /// Used during splicing, channel is funded but a new funding is being renegotiated.
1188+ #[cfg(splicing)]
1189+ RefundingV2(FundedChannel<SP>),
11871190}
11881191
11891192impl<SP: Deref> Channel<SP> where
@@ -1197,6 +1200,8 @@ impl<SP: Deref> Channel<SP> where
11971200 ChannelPhase::UnfundedOutboundV1(chan) => &chan.context,
11981201 ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
11991202 ChannelPhase::UnfundedV2(chan) => &chan.context,
1203+ #[cfg(splicing)]
1204+ ChannelPhase::RefundingV2(chan) => &chan.context,
12001205 }
12011206 }
12021207
@@ -1207,6 +1212,8 @@ impl<SP: Deref> Channel<SP> where
12071212 ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.context,
12081213 ChannelPhase::UnfundedInboundV1(chan) => &mut chan.context,
12091214 ChannelPhase::UnfundedV2(chan) => &mut chan.context,
1215+ #[cfg(splicing)]
1216+ ChannelPhase::RefundingV2(chan) => &mut chan.context,
12101217 }
12111218 }
12121219
@@ -1217,6 +1224,8 @@ impl<SP: Deref> Channel<SP> where
12171224 ChannelPhase::UnfundedOutboundV1(chan) => &chan.funding,
12181225 ChannelPhase::UnfundedInboundV1(chan) => &chan.funding,
12191226 ChannelPhase::UnfundedV2(chan) => &chan.funding,
1227+ #[cfg(splicing)]
1228+ ChannelPhase::RefundingV2(chan) => &chan.funding,
12201229 }
12211230 }
12221231
@@ -1228,6 +1237,8 @@ impl<SP: Deref> Channel<SP> where
12281237 ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.funding,
12291238 ChannelPhase::UnfundedInboundV1(chan) => &mut chan.funding,
12301239 ChannelPhase::UnfundedV2(chan) => &mut chan.funding,
1240+ #[cfg(splicing)]
1241+ ChannelPhase::RefundingV2(chan) => &mut chan.funding,
12311242 }
12321243 }
12331244
@@ -1238,6 +1249,8 @@ impl<SP: Deref> Channel<SP> where
12381249 ChannelPhase::UnfundedOutboundV1(chan) => (&chan.funding, &mut chan.context),
12391250 ChannelPhase::UnfundedInboundV1(chan) => (&chan.funding, &mut chan.context),
12401251 ChannelPhase::UnfundedV2(chan) => (&chan.funding, &mut chan.context),
1252+ #[cfg(splicing)]
1253+ ChannelPhase::RefundingV2(chan) => (&chan.funding, &mut chan.context),
12411254 }
12421255 }
12431256
@@ -1248,6 +1261,8 @@ impl<SP: Deref> Channel<SP> where
12481261 ChannelPhase::UnfundedOutboundV1(chan) => Some(&mut chan.unfunded_context),
12491262 ChannelPhase::UnfundedInboundV1(chan) => Some(&mut chan.unfunded_context),
12501263 ChannelPhase::UnfundedV2(chan) => Some(&mut chan.unfunded_context),
1264+ #[cfg(splicing)]
1265+ ChannelPhase::RefundingV2(_) => { debug_assert!(false); None },
12511266 }
12521267 }
12531268
@@ -1355,6 +1370,8 @@ impl<SP: Deref> Channel<SP> where
13551370 })
13561371 },
13571372 ChannelPhase::UnfundedV2(_) => None,
1373+ #[cfg(splicing)]
1374+ ChannelPhase::RefundingV2(chan) => Some(chan.signer_maybe_unblocked(logger)),
13581375 }
13591376 }
13601377
@@ -1374,6 +1391,8 @@ impl<SP: Deref> Channel<SP> where
13741391 ChannelPhase::UnfundedOutboundV1(chan) => chan.is_resumable(),
13751392 ChannelPhase::UnfundedInboundV1(_) => false,
13761393 ChannelPhase::UnfundedV2(_) => false,
1394+ #[cfg(splicing)]
1395+ ChannelPhase::RefundingV2(chan) => chan.remove_uncommitted_htlcs_and_mark_paused(logger).is_ok(),
13771396 }
13781397 }
13791398
@@ -1411,6 +1430,9 @@ impl<SP: Deref> Channel<SP> where
14111430 ReconnectionMsg::None
14121431 }
14131432 },
1433+ #[cfg(splicing)]
1434+ ChannelPhase::RefundingV2(chan) =>
1435+ ReconnectionMsg::Reestablish(chan.get_channel_reestablish(logger)),
14141436 }
14151437 }
14161438
@@ -1438,6 +1460,8 @@ impl<SP: Deref> Channel<SP> where
14381460 Ok(None)
14391461 }
14401462 },
1463+ #[cfg(splicing)]
1464+ ChannelPhase::RefundingV2(_) => Ok(None),
14411465 }
14421466 }
14431467
0 commit comments