@@ -1130,6 +1130,9 @@ pub(super) enum ChannelPhase<SP: Deref> where SP::Target: SignerProvider {
11301130 #[allow(dead_code)] // TODO(dual_funding): Remove once accepting V2 channels is enabled.
11311131 UnfundedInboundV2(InboundV2Channel<SP>),
11321132 Funded(Channel<SP>),
1133+ #[cfg(splicing)]
1134+ /// Used during splicing, channel is funded but a new funding is being renegotiated.
1135+ RefundingV2(Channel<SP>),
11331136}
11341137
11351138impl<'a, SP: Deref> ChannelPhase<SP> where
@@ -1143,6 +1146,8 @@ impl<'a, SP: Deref> ChannelPhase<SP> where
11431146 ChannelPhase::UnfundedInboundV1(chan) => &chan.context,
11441147 ChannelPhase::UnfundedOutboundV2(chan) => &chan.context,
11451148 ChannelPhase::UnfundedInboundV2(chan) => &chan.context,
1149+ #[cfg(splicing)]
1150+ ChannelPhase::RefundingV2(chan) => &chan.context,
11461151 }
11471152 }
11481153
@@ -1153,6 +1158,26 @@ impl<'a, SP: Deref> ChannelPhase<SP> where
11531158 ChannelPhase::UnfundedInboundV1(ref mut chan) => &mut chan.context,
11541159 ChannelPhase::UnfundedOutboundV2(ref mut chan) => &mut chan.context,
11551160 ChannelPhase::UnfundedInboundV2(ref mut chan) => &mut chan.context,
1161+ #[cfg(splicing)]
1162+ ChannelPhase::RefundingV2(ref mut chan) => &mut chan.context,
1163+ }
1164+ }
1165+
1166+ pub fn funded_channel(&self) -> Option<&Channel<SP>> {
1167+ match self {
1168+ ChannelPhase::Funded(chan) => Some(&chan),
1169+ #[cfg(splicing)]
1170+ ChannelPhase::RefundingV2(chan) => Some(&chan),
1171+ _ => None
1172+ }
1173+ }
1174+
1175+ pub fn funded_channel_mut(&mut self) -> Option<&mut Channel<SP>> {
1176+ match self {
1177+ ChannelPhase::Funded(ref mut chan) => Some(chan),
1178+ #[cfg(splicing)]
1179+ ChannelPhase::RefundingV2(ref mut chan) => Some(chan),
1180+ _ => None
11561181 }
11571182 }
11581183}
0 commit comments