@@ -1183,6 +1183,9 @@ enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
11831183 UnfundedInboundV1(InboundV1Channel<SP>),
11841184 UnfundedV2(PendingV2Channel<SP>),
11851185 Funded(FundedChannel<SP>),
1186+ /// Used during splicing, channel is funded but a new funding is being renegotiated.
1187+ #[cfg(splicing)]
1188+ RefundingV2(FundedChannel<SP>),
11861189}
11871190
11881191impl<SP: Deref> Channel<SP> where
@@ -1196,6 +1199,8 @@ impl<SP: Deref> Channel<SP> where
11961199 ChannelPhase::UnfundedOutboundV1(chan) => &chan.context,
11971200 ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
11981201 ChannelPhase::UnfundedV2(chan) => &chan.context,
1202+ #[cfg(splicing)]
1203+ ChannelPhase::RefundingV2(chan) => &chan.context,
11991204 }
12001205 }
12011206
@@ -1206,6 +1211,8 @@ impl<SP: Deref> Channel<SP> where
12061211 ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.context,
12071212 ChannelPhase::UnfundedInboundV1(chan) => &mut chan.context,
12081213 ChannelPhase::UnfundedV2(chan) => &mut chan.context,
1214+ #[cfg(splicing)]
1215+ ChannelPhase::RefundingV2(chan) => &mut chan.context,
12091216 }
12101217 }
12111218
@@ -1216,6 +1223,8 @@ impl<SP: Deref> Channel<SP> where
12161223 ChannelPhase::UnfundedOutboundV1(chan) => &chan.funding,
12171224 ChannelPhase::UnfundedInboundV1(chan) => &chan.funding,
12181225 ChannelPhase::UnfundedV2(chan) => &chan.funding,
1226+ #[cfg(splicing)]
1227+ ChannelPhase::RefundingV2(chan) => &chan.funding,
12191228 }
12201229 }
12211230
@@ -1227,6 +1236,8 @@ impl<SP: Deref> Channel<SP> where
12271236 ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.funding,
12281237 ChannelPhase::UnfundedInboundV1(chan) => &mut chan.funding,
12291238 ChannelPhase::UnfundedV2(chan) => &mut chan.funding,
1239+ #[cfg(splicing)]
1240+ ChannelPhase::RefundingV2(chan) => &mut chan.funding,
12301241 }
12311242 }
12321243
@@ -1237,6 +1248,8 @@ impl<SP: Deref> Channel<SP> where
12371248 ChannelPhase::UnfundedOutboundV1(chan) => (&chan.funding, &mut chan.context),
12381249 ChannelPhase::UnfundedInboundV1(chan) => (&chan.funding, &mut chan.context),
12391250 ChannelPhase::UnfundedV2(chan) => (&chan.funding, &mut chan.context),
1251+ #[cfg(splicing)]
1252+ ChannelPhase::RefundingV2(chan) => (&chan.funding, &mut chan.context),
12401253 }
12411254 }
12421255
@@ -1247,6 +1260,8 @@ impl<SP: Deref> Channel<SP> where
12471260 ChannelPhase::UnfundedOutboundV1(chan) => Some(&mut chan.unfunded_context),
12481261 ChannelPhase::UnfundedInboundV1(chan) => Some(&mut chan.unfunded_context),
12491262 ChannelPhase::UnfundedV2(chan) => Some(&mut chan.unfunded_context),
1263+ #[cfg(splicing)]
1264+ ChannelPhase::RefundingV2(_) => { debug_assert!(false); None },
12501265 }
12511266 }
12521267
@@ -1354,6 +1369,8 @@ impl<SP: Deref> Channel<SP> where
13541369 })
13551370 },
13561371 ChannelPhase::UnfundedV2(_) => None,
1372+ #[cfg(splicing)]
1373+ ChannelPhase::RefundingV2(chan) => Some(chan.signer_maybe_unblocked(logger)),
13571374 }
13581375 }
13591376
@@ -1373,6 +1390,8 @@ impl<SP: Deref> Channel<SP> where
13731390 ChannelPhase::UnfundedOutboundV1(chan) => chan.is_resumable(),
13741391 ChannelPhase::UnfundedInboundV1(_) => false,
13751392 ChannelPhase::UnfundedV2(_) => false,
1393+ #[cfg(splicing)]
1394+ ChannelPhase::RefundingV2(chan) => chan.remove_uncommitted_htlcs_and_mark_paused(logger).is_ok(),
13761395 }
13771396 }
13781397
@@ -1410,6 +1429,9 @@ impl<SP: Deref> Channel<SP> where
14101429 ReconnectionMsg::None
14111430 }
14121431 },
1432+ #[cfg(splicing)]
1433+ ChannelPhase::RefundingV2(chan) =>
1434+ ReconnectionMsg::Reestablish(chan.get_channel_reestablish(logger)),
14131435 }
14141436 }
14151437
@@ -1437,6 +1459,8 @@ impl<SP: Deref> Channel<SP> where
14371459 Ok(None)
14381460 }
14391461 },
1462+ #[cfg(splicing)]
1463+ ChannelPhase::RefundingV2(_) => Ok(None),
14401464 }
14411465 }
14421466
0 commit comments