@@ -1186,6 +1186,9 @@ enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
11861186 UnfundedInboundV1(InboundV1Channel<SP>),
11871187 UnfundedV2(PendingV2Channel<SP>),
11881188 Funded(FundedChannel<SP>),
1189+ /// Used during splicing, channel is funded but a new funding is being renegotiated.
1190+ #[cfg(splicing)]
1191+ RefundingV2(FundedChannel<SP>),
11891192}
11901193
11911194impl<SP: Deref> Channel<SP> where
@@ -1199,6 +1202,8 @@ impl<SP: Deref> Channel<SP> where
11991202 ChannelPhase::UnfundedOutboundV1(chan) => &chan.context,
12001203 ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
12011204 ChannelPhase::UnfundedV2(chan) => &chan.context,
1205+ #[cfg(splicing)]
1206+ ChannelPhase::RefundingV2(chan) => &chan.context,
12021207 }
12031208 }
12041209
@@ -1209,6 +1214,8 @@ impl<SP: Deref> Channel<SP> where
12091214 ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.context,
12101215 ChannelPhase::UnfundedInboundV1(chan) => &mut chan.context,
12111216 ChannelPhase::UnfundedV2(chan) => &mut chan.context,
1217+ #[cfg(splicing)]
1218+ ChannelPhase::RefundingV2(chan) => &mut chan.context,
12121219 }
12131220 }
12141221
@@ -1219,6 +1226,8 @@ impl<SP: Deref> Channel<SP> where
12191226 ChannelPhase::UnfundedOutboundV1(chan) => &chan.funding,
12201227 ChannelPhase::UnfundedInboundV1(chan) => &chan.funding,
12211228 ChannelPhase::UnfundedV2(chan) => &chan.funding,
1229+ #[cfg(splicing)]
1230+ ChannelPhase::RefundingV2(chan) => &chan.funding,
12221231 }
12231232 }
12241233
@@ -1230,6 +1239,8 @@ impl<SP: Deref> Channel<SP> where
12301239 ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.funding,
12311240 ChannelPhase::UnfundedInboundV1(chan) => &mut chan.funding,
12321241 ChannelPhase::UnfundedV2(chan) => &mut chan.funding,
1242+ #[cfg(splicing)]
1243+ ChannelPhase::RefundingV2(chan) => &mut chan.funding,
12331244 }
12341245 }
12351246
@@ -1240,6 +1251,8 @@ impl<SP: Deref> Channel<SP> where
12401251 ChannelPhase::UnfundedOutboundV1(chan) => (&chan.funding, &mut chan.context),
12411252 ChannelPhase::UnfundedInboundV1(chan) => (&chan.funding, &mut chan.context),
12421253 ChannelPhase::UnfundedV2(chan) => (&chan.funding, &mut chan.context),
1254+ #[cfg(splicing)]
1255+ ChannelPhase::RefundingV2(chan) => (&chan.funding, &mut chan.context),
12431256 }
12441257 }
12451258
@@ -1250,6 +1263,8 @@ impl<SP: Deref> Channel<SP> where
12501263 ChannelPhase::UnfundedOutboundV1(chan) => Some(&mut chan.unfunded_context),
12511264 ChannelPhase::UnfundedInboundV1(chan) => Some(&mut chan.unfunded_context),
12521265 ChannelPhase::UnfundedV2(chan) => Some(&mut chan.unfunded_context),
1266+ #[cfg(splicing)]
1267+ ChannelPhase::RefundingV2(_) => { debug_assert!(false); None },
12531268 }
12541269 }
12551270
@@ -1357,6 +1372,8 @@ impl<SP: Deref> Channel<SP> where
13571372 })
13581373 },
13591374 ChannelPhase::UnfundedV2(_) => None,
1375+ #[cfg(splicing)]
1376+ ChannelPhase::RefundingV2(chan) => Some(chan.signer_maybe_unblocked(logger)),
13601377 }
13611378 }
13621379
@@ -1376,6 +1393,8 @@ impl<SP: Deref> Channel<SP> where
13761393 ChannelPhase::UnfundedOutboundV1(chan) => chan.is_resumable(),
13771394 ChannelPhase::UnfundedInboundV1(_) => false,
13781395 ChannelPhase::UnfundedV2(_) => false,
1396+ #[cfg(splicing)]
1397+ ChannelPhase::RefundingV2(chan) => chan.remove_uncommitted_htlcs_and_mark_paused(logger).is_ok(),
13791398 }
13801399 }
13811400
@@ -1413,6 +1432,9 @@ impl<SP: Deref> Channel<SP> where
14131432 ReconnectionMsg::None
14141433 }
14151434 },
1435+ #[cfg(splicing)]
1436+ ChannelPhase::RefundingV2(chan) =>
1437+ ReconnectionMsg::Reestablish(chan.get_channel_reestablish(logger)),
14161438 }
14171439 }
14181440
@@ -1440,6 +1462,8 @@ impl<SP: Deref> Channel<SP> where
14401462 Ok(None)
14411463 }
14421464 },
1465+ #[cfg(splicing)]
1466+ ChannelPhase::RefundingV2(_) => Ok(None),
14431467 }
14441468 }
14451469
0 commit comments