@@ -2458,17 +2458,11 @@ impl<SP: Deref> FundingTxConstructorV2<SP> for FundedChannel<SP> where SP::Targe
2458
2458
).flatten().ok_or("Not re-funding")
2459
2459
}
2460
2460
2461
- fn swap_out_dual_funding_context_inputs(&mut self, funding_inputs: &mut Vec<(TxIn, TransactionU16LenLimited)>) -> Result<(), &'static str> {
2462
- if let Some(pending_splice) = &mut self.pending_splice {
2463
- if let Some(refunding) = &mut pending_splice.refunding_scope {
2464
- mem::swap(&mut refunding.pending_dual_funding_context.our_funding_inputs, funding_inputs);
2465
- Ok(())
2466
- } else {
2467
- Err("Not re-funding")
2468
- }
2469
- } else {
2470
- Err("Not re-funding")
2471
- }
2461
+ #[inline]
2462
+ fn dual_funding_context_mut(&mut self) -> Result<&mut DualFundingChannelContext, &'static str> {
2463
+ self.pending_splice.as_mut().map(|splice|
2464
+ splice.refunding_scope.as_mut().map(|refunding| &mut refunding.pending_dual_funding_context)
2465
+ ).flatten().ok_or("Not re-funding")
2472
2466
}
2473
2467
2474
2468
#[inline]
@@ -2509,7 +2503,7 @@ pub(super) trait FundingTxConstructorV2<SP: Deref>: ChannelContextProvider<SP> w
2509
2503
fn pending_funding_mut(&mut self) -> Result<&mut FundingScope, &'static str>;
2510
2504
fn pending_funding_and_context_mut(&mut self) -> Result<(&FundingScope, &mut ChannelContext<SP>), &'static str>;
2511
2505
fn dual_funding_context(&self) -> Result<&DualFundingChannelContext, &'static str>;
2512
- fn swap_out_dual_funding_context_inputs (&mut self, funding_inputs: &mut Vec<(TxIn, TransactionU16LenLimited)>) -> Result<() , &'static str>;
2506
+ fn dual_funding_context_mut (&mut self) -> Result<&mut DualFundingChannelContext , &'static str>;
2513
2507
fn unfunded_context(&self) -> Result<&UnfundedChannelContext, &'static str>;
2514
2508
fn interactive_tx_constructor(&self) -> Result<Option<&InteractiveTxConstructor>, &'static str>;
2515
2509
fn interactive_tx_constructor_mut(&mut self) -> Result<&mut Option<InteractiveTxConstructor>, &'static str>;
@@ -2536,8 +2530,9 @@ pub(super) trait FundingTxConstructorV2<SP: Deref>: ChannelContextProvider<SP> w
2536
2530
debug_assert!(self.interactive_tx_constructor().unwrap_or(None).is_none());
2537
2531
2538
2532
let mut funding_inputs = Vec::new();
2539
- self.swap_out_dual_funding_context_inputs(&mut funding_inputs )
2533
+ let dual_funding_context_mut = self.dual_funding_context_mut( )
2540
2534
.map_err(|e| AbortReason::InternalError(e))?;
2535
+ mem::swap(&mut dual_funding_context_mut.our_funding_inputs, &mut funding_inputs);
2541
2536
2542
2537
if let Some(prev_funding_input) = prev_funding_input {
2543
2538
funding_inputs.push(prev_funding_input);
@@ -2839,9 +2834,9 @@ impl<SP: Deref> FundingTxConstructorV2<SP> for PendingV2Channel<SP> where SP::Ta
2839
2834
Ok(&self.dual_funding_context)
2840
2835
}
2841
2836
2842
- fn swap_out_dual_funding_context_inputs(&mut self, funding_inputs: &mut Vec<(TxIn, TransactionU16LenLimited)>) -> Result<(), &'static str> {
2843
- mem::swap (&mut self.dual_funding_context.our_funding_inputs, funding_inputs);
2844
- Ok(() )
2837
+ #[inline]
2838
+ fn dual_funding_context_mut (&mut self) -> Result<&mut DualFundingChannelContext, &'static str> {
2839
+ Ok(&mut self.dual_funding_context )
2845
2840
}
2846
2841
2847
2842
#[inline]
0 commit comments