@@ -1189,6 +1189,9 @@ enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
11891189 UnfundedInboundV1(InboundV1Channel<SP>),
11901190 UnfundedV2(PendingV2Channel<SP>),
11911191 Funded(FundedChannel<SP>),
1192+ /// Used during splicing, channel is funded but a new funding is being renegotiated.
1193+ #[cfg(splicing)]
1194+ RefundingV2(FundedChannel<SP>),
11921195}
11931196
11941197impl<SP: Deref> Channel<SP> where
@@ -1202,6 +1205,8 @@ impl<SP: Deref> Channel<SP> where
12021205 ChannelPhase::UnfundedOutboundV1(chan) => &chan.context,
12031206 ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
12041207 ChannelPhase::UnfundedV2(chan) => &chan.context,
1208+ #[cfg(splicing)]
1209+ ChannelPhase::RefundingV2(chan) => &chan.context,
12051210 }
12061211 }
12071212
@@ -1212,6 +1217,8 @@ impl<SP: Deref> Channel<SP> where
12121217 ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.context,
12131218 ChannelPhase::UnfundedInboundV1(chan) => &mut chan.context,
12141219 ChannelPhase::UnfundedV2(chan) => &mut chan.context,
1220+ #[cfg(splicing)]
1221+ ChannelPhase::RefundingV2(chan) => &mut chan.context,
12151222 }
12161223 }
12171224
@@ -1222,6 +1229,8 @@ impl<SP: Deref> Channel<SP> where
12221229 ChannelPhase::UnfundedOutboundV1(chan) => &chan.funding,
12231230 ChannelPhase::UnfundedInboundV1(chan) => &chan.funding,
12241231 ChannelPhase::UnfundedV2(chan) => &chan.funding,
1232+ #[cfg(splicing)]
1233+ ChannelPhase::RefundingV2(chan) => &chan.funding,
12251234 }
12261235 }
12271236
@@ -1233,6 +1242,8 @@ impl<SP: Deref> Channel<SP> where
12331242 ChannelPhase::UnfundedOutboundV1(chan) => &mut chan.funding,
12341243 ChannelPhase::UnfundedInboundV1(chan) => &mut chan.funding,
12351244 ChannelPhase::UnfundedV2(chan) => &mut chan.funding,
1245+ #[cfg(splicing)]
1246+ ChannelPhase::RefundingV2(chan) => &mut chan.funding,
12361247 }
12371248 }
12381249
@@ -1243,6 +1254,8 @@ impl<SP: Deref> Channel<SP> where
12431254 ChannelPhase::UnfundedOutboundV1(chan) => (&chan.funding, &mut chan.context),
12441255 ChannelPhase::UnfundedInboundV1(chan) => (&chan.funding, &mut chan.context),
12451256 ChannelPhase::UnfundedV2(chan) => (&chan.funding, &mut chan.context),
1257+ #[cfg(splicing)]
1258+ ChannelPhase::RefundingV2(chan) => (&chan.funding, &mut chan.context),
12461259 }
12471260 }
12481261
@@ -1253,6 +1266,8 @@ impl<SP: Deref> Channel<SP> where
12531266 ChannelPhase::UnfundedOutboundV1(chan) => Some(&mut chan.unfunded_context),
12541267 ChannelPhase::UnfundedInboundV1(chan) => Some(&mut chan.unfunded_context),
12551268 ChannelPhase::UnfundedV2(chan) => Some(&mut chan.unfunded_context),
1269+ #[cfg(splicing)]
1270+ ChannelPhase::RefundingV2(_) => { debug_assert!(false); None },
12561271 }
12571272 }
12581273
@@ -1360,6 +1375,8 @@ impl<SP: Deref> Channel<SP> where
13601375 })
13611376 },
13621377 ChannelPhase::UnfundedV2(_) => None,
1378+ #[cfg(splicing)]
1379+ ChannelPhase::RefundingV2(chan) => Some(chan.signer_maybe_unblocked(logger)),
13631380 }
13641381 }
13651382
@@ -1379,6 +1396,8 @@ impl<SP: Deref> Channel<SP> where
13791396 ChannelPhase::UnfundedOutboundV1(chan) => chan.is_resumable(),
13801397 ChannelPhase::UnfundedInboundV1(_) => false,
13811398 ChannelPhase::UnfundedV2(_) => false,
1399+ #[cfg(splicing)]
1400+ ChannelPhase::RefundingV2(chan) => chan.remove_uncommitted_htlcs_and_mark_paused(logger).is_ok(),
13821401 }
13831402 }
13841403
@@ -1416,6 +1435,9 @@ impl<SP: Deref> Channel<SP> where
14161435 ReconnectionMsg::None
14171436 }
14181437 },
1438+ #[cfg(splicing)]
1439+ ChannelPhase::RefundingV2(chan) =>
1440+ ReconnectionMsg::Reestablish(chan.get_channel_reestablish(logger)),
14191441 }
14201442 }
14211443
@@ -1443,6 +1465,8 @@ impl<SP: Deref> Channel<SP> where
14431465 Ok(None)
14441466 }
14451467 },
1468+ #[cfg(splicing)]
1469+ ChannelPhase::RefundingV2(_) => Ok(None),
14461470 }
14471471 }
14481472
0 commit comments