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