@@ -2618,6 +2618,77 @@ impl<SP: Deref> PendingV2ChannelTrait<SP> for PendingV2Channel<SP> where SP::Tar
2618
2618
}
2619
2619
}
2620
2620
2621
+ #[cfg(splicing)]
2622
+ struct RefundingChannel<SP: Deref> where SP::Target: SignerProvider {
2623
+ funded_channel: FundedChannel<SP>,
2624
+
2625
+ // Fields belonging for PendingV2Channel, except duplicate context
2626
+ pending_funding: FundingScope,
2627
+ // Note: there is a single context
2628
+ pending_unfunded_context: UnfundedChannelContext,
2629
+ pending_dual_funding_context: DualFundingChannelContext,
2630
+ /// The current interactive transaction construction session under negotiation.
2631
+ pending_interactive_tx_constructor: Option<InteractiveTxConstructor>,
2632
+ pending_interactive_tx_signing_session: Option<InteractiveTxSigningSession>,
2633
+ }
2634
+
2635
+ #[cfg(splicing)]
2636
+ impl<SP: Deref> PendingV2ChannelTrait<SP> for RefundingChannel<SP> where SP::Target: SignerProvider {
2637
+ #[inline]
2638
+ fn context(&self) -> &ChannelContext<SP> {
2639
+ &self.funded_channel.context
2640
+ }
2641
+
2642
+ #[inline]
2643
+ fn context_mut(&mut self) -> &mut ChannelContext<SP> {
2644
+ &mut self.funded_channel.context
2645
+ }
2646
+
2647
+ #[inline]
2648
+ fn funding(&self) -> &FundingScope {
2649
+ &self.pending_funding
2650
+ }
2651
+
2652
+ #[inline]
2653
+ fn funding_mut(&mut self) -> &mut FundingScope {
2654
+ &mut self.pending_funding
2655
+ }
2656
+
2657
+ #[inline]
2658
+ fn funding_and_context_mut(&mut self) -> (&mut FundingScope, &mut ChannelContext<SP>) {
2659
+ (&mut self.pending_funding, &mut self.funded_channel.context)
2660
+ }
2661
+
2662
+ #[inline]
2663
+ fn dual_funding_context(&self) -> &DualFundingChannelContext {
2664
+ &self.pending_dual_funding_context
2665
+ }
2666
+
2667
+ fn swap_out_dual_funding_context_inputs(&mut self, funding_inputs: &mut Vec<(TxIn, TransactionU16LenLimited)>) {
2668
+ mem::swap(&mut self.pending_dual_funding_context.our_funding_inputs, funding_inputs);
2669
+ }
2670
+
2671
+ #[inline]
2672
+ fn unfunded_context(&self) -> &UnfundedChannelContext {
2673
+ &self.pending_unfunded_context
2674
+ }
2675
+
2676
+ #[inline]
2677
+ fn interactive_tx_constructor(&self) -> Option<&InteractiveTxConstructor> {
2678
+ self.pending_interactive_tx_constructor.as_ref()
2679
+ }
2680
+
2681
+ #[inline]
2682
+ fn interactive_tx_constructor_mut(&mut self) -> &mut Option<InteractiveTxConstructor> {
2683
+ &mut self.pending_interactive_tx_constructor
2684
+ }
2685
+
2686
+ #[inline]
2687
+ fn interactive_tx_signing_session_mut(&mut self) -> &mut Option<InteractiveTxSigningSession> {
2688
+ &mut self.pending_interactive_tx_signing_session
2689
+ }
2690
+ }
2691
+
2621
2692
impl<SP: Deref> ChannelContext<SP> where SP::Target: SignerProvider {
2622
2693
fn new_for_inbound_channel<'a, ES: Deref, F: Deref, L: Deref>(
2623
2694
fee_estimator: &'a LowerBoundedFeeEstimator<F>,
0 commit comments