@@ -32,7 +32,6 @@ use crate::ln::msgs;
32
32
use crate :: ln:: msgs:: { MessageSendEvent , SerialId , TxSignatures } ;
33
33
use crate :: ln:: types:: ChannelId ;
34
34
use crate :: sign:: { EntropySource , P2TR_KEY_PATH_WITNESS_WEIGHT , P2WPKH_WITNESS_WEIGHT } ;
35
- use crate :: util:: ser:: TransactionU16LenLimited ;
36
35
37
36
use core:: fmt:: Display ;
38
37
use core:: ops:: Deref ;
@@ -869,10 +868,9 @@ impl NegotiationContext {
869
868
return Err ( AbortReason :: UnexpectedFundingInput ) ;
870
869
}
871
870
} else if let Some ( prevtx) = & msg. prevtx {
872
- let transaction = prevtx. as_transaction ( ) ;
873
- let txid = transaction. compute_txid ( ) ;
871
+ let txid = prevtx. compute_txid ( ) ;
874
872
875
- if let Some ( tx_out) = transaction . output . get ( msg. prevtx_out as usize ) {
873
+ if let Some ( tx_out) = prevtx . output . get ( msg. prevtx_out as usize ) {
876
874
if !tx_out. script_pubkey . is_witness_program ( ) {
877
875
// The receiving node:
878
876
// - MUST fail the negotiation if:
@@ -1053,14 +1051,9 @@ impl NegotiationContext {
1053
1051
return Err ( AbortReason :: UnexpectedFundingInput ) ;
1054
1052
}
1055
1053
} else if let Some ( prevtx) = & msg. prevtx {
1056
- let prev_txid = prevtx. as_transaction ( ) . compute_txid ( ) ;
1054
+ let prev_txid = prevtx. compute_txid ( ) ;
1057
1055
let prev_outpoint = OutPoint { txid : prev_txid, vout : msg. prevtx_out } ;
1058
- let prev_output = prevtx
1059
- . as_transaction ( )
1060
- . output
1061
- . get ( vout)
1062
- . ok_or ( AbortReason :: PrevTxOutInvalid ) ?
1063
- . clone ( ) ;
1056
+ let prev_output = prevtx. output . get ( vout) . ok_or ( AbortReason :: PrevTxOutInvalid ) ?. clone ( ) ;
1064
1057
let txin = TxIn {
1065
1058
previous_output : prev_outpoint,
1066
1059
sequence : Sequence ( msg. sequence ) ,
@@ -1441,7 +1434,7 @@ impl_writeable_tlv_based_enum!(AddingRole,
1441
1434
#[ derive( Clone , Debug , Eq , PartialEq ) ]
1442
1435
struct SingleOwnedInput {
1443
1436
input : TxIn ,
1444
- prev_tx : TransactionU16LenLimited ,
1437
+ prev_tx : Transaction ,
1445
1438
prev_output : TxOut ,
1446
1439
}
1447
1440
@@ -1843,7 +1836,7 @@ where
1843
1836
pub feerate_sat_per_kw : u32 ,
1844
1837
pub is_initiator : bool ,
1845
1838
pub funding_tx_locktime : AbsoluteLockTime ,
1846
- pub inputs_to_contribute : Vec < ( TxIn , TransactionU16LenLimited ) > ,
1839
+ pub inputs_to_contribute : Vec < ( TxIn , Transaction ) > ,
1847
1840
pub shared_funding_input : Option < SharedOwnedInput > ,
1848
1841
pub shared_funding_output : SharedOwnedOutput ,
1849
1842
pub outputs_to_contribute : Vec < TxOut > ,
@@ -1885,7 +1878,7 @@ impl InteractiveTxConstructor {
1885
1878
// Check for the existence of prevouts'
1886
1879
for ( txin, tx) in inputs_to_contribute. iter ( ) {
1887
1880
let vout = txin. previous_output . vout as usize ;
1888
- if tx. as_transaction ( ) . output . get ( vout) . is_none ( ) {
1881
+ if tx. output . get ( vout) . is_none ( ) {
1889
1882
return Err ( AbortReason :: PrevTxOutInvalid ) ;
1890
1883
}
1891
1884
}
@@ -1894,7 +1887,7 @@ impl InteractiveTxConstructor {
1894
1887
. map ( |( txin, tx) | {
1895
1888
let serial_id = generate_holder_serial_id ( entropy_source, is_initiator) ;
1896
1889
let vout = txin. previous_output . vout as usize ;
1897
- let prev_output = tx. as_transaction ( ) . output . get ( vout) . unwrap ( ) . clone ( ) ; // checked above
1890
+ let prev_output = tx. output . get ( vout) . unwrap ( ) . clone ( ) ; // checked above
1898
1891
let input =
1899
1892
InputOwned :: Single ( SingleOwnedInput { input : txin, prev_tx : tx, prev_output } ) ;
1900
1893
( serial_id, input)
@@ -2083,12 +2076,11 @@ pub(super) fn calculate_change_output_value(
2083
2076
let mut total_input_satoshis = 0u64 ;
2084
2077
let mut our_funding_inputs_weight = 0u64 ;
2085
2078
for ( txin, tx) in context. our_funding_inputs . iter ( ) {
2086
- let txid = tx. as_transaction ( ) . compute_txid ( ) ;
2079
+ let txid = tx. compute_txid ( ) ;
2087
2080
if txin. previous_output . txid != txid {
2088
2081
return Err ( AbortReason :: PrevTxOutInvalid ) ;
2089
2082
}
2090
2083
let output = tx
2091
- . as_transaction ( )
2092
2084
. output
2093
2085
. get ( txin. previous_output . vout as usize )
2094
2086
. ok_or ( AbortReason :: PrevTxOutInvalid ) ?;
@@ -2145,7 +2137,6 @@ mod tests {
2145
2137
use crate :: ln:: types:: ChannelId ;
2146
2138
use crate :: sign:: EntropySource ;
2147
2139
use crate :: util:: atomic_counter:: AtomicCounter ;
2148
- use crate :: util:: ser:: TransactionU16LenLimited ;
2149
2140
use bitcoin:: absolute:: LockTime as AbsoluteLockTime ;
2150
2141
use bitcoin:: amount:: Amount ;
2151
2142
use bitcoin:: hashes:: Hash ;
@@ -2211,12 +2202,12 @@ mod tests {
2211
2202
2212
2203
struct TestSession {
2213
2204
description : & ' static str ,
2214
- inputs_a : Vec < ( TxIn , TransactionU16LenLimited ) > ,
2205
+ inputs_a : Vec < ( TxIn , Transaction ) > ,
2215
2206
a_shared_input : Option < ( OutPoint , TxOut , u64 ) > ,
2216
2207
/// The funding output, with the value contributed
2217
2208
shared_output_a : ( TxOut , u64 ) ,
2218
2209
outputs_a : Vec < TxOut > ,
2219
- inputs_b : Vec < ( TxIn , TransactionU16LenLimited ) > ,
2210
+ inputs_b : Vec < ( TxIn , Transaction ) > ,
2220
2211
b_shared_input : Option < ( OutPoint , TxOut , u64 ) > ,
2221
2212
/// The funding output, with the value contributed
2222
2213
shared_output_b : ( TxOut , u64 ) ,
@@ -2482,7 +2473,7 @@ mod tests {
2482
2473
}
2483
2474
}
2484
2475
2485
- fn generate_inputs ( outputs : & [ TestOutput ] ) -> Vec < ( TxIn , TransactionU16LenLimited ) > {
2476
+ fn generate_inputs ( outputs : & [ TestOutput ] ) -> Vec < ( TxIn , Transaction ) > {
2486
2477
let tx = generate_tx ( outputs) ;
2487
2478
let txid = tx. compute_txid ( ) ;
2488
2479
tx. output
@@ -2495,7 +2486,7 @@ mod tests {
2495
2486
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2496
2487
witness : Default :: default ( ) ,
2497
2488
} ;
2498
- ( txin, TransactionU16LenLimited :: new ( tx. clone ( ) ) . unwrap ( ) )
2489
+ ( txin, tx. clone ( ) )
2499
2490
} )
2500
2491
. collect ( )
2501
2492
}
@@ -2543,12 +2534,12 @@ mod tests {
2543
2534
( generate_txout ( & TestOutput :: P2WSH ( value) ) , local_value)
2544
2535
}
2545
2536
2546
- fn generate_fixed_number_of_inputs ( count : u16 ) -> Vec < ( TxIn , TransactionU16LenLimited ) > {
2537
+ fn generate_fixed_number_of_inputs ( count : u16 ) -> Vec < ( TxIn , Transaction ) > {
2547
2538
// Generate transactions with a total `count` number of outputs such that no transaction has a
2548
2539
// serialized length greater than u16::MAX.
2549
2540
let max_outputs_per_prevtx = 1_500 ;
2550
2541
let mut remaining = count;
2551
- let mut inputs: Vec < ( TxIn , TransactionU16LenLimited ) > = Vec :: with_capacity ( count as usize ) ;
2542
+ let mut inputs: Vec < ( TxIn , Transaction ) > = Vec :: with_capacity ( count as usize ) ;
2552
2543
2553
2544
while remaining > 0 {
2554
2545
let tx_output_count = remaining. min ( max_outputs_per_prevtx) ;
@@ -2561,7 +2552,7 @@ mod tests {
2561
2552
) ;
2562
2553
let txid = tx. compute_txid ( ) ;
2563
2554
2564
- let mut temp: Vec < ( TxIn , TransactionU16LenLimited ) > = tx
2555
+ let mut temp: Vec < ( TxIn , Transaction ) > = tx
2565
2556
. output
2566
2557
. iter ( )
2567
2558
. enumerate ( )
@@ -2572,7 +2563,7 @@ mod tests {
2572
2563
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2573
2564
witness : Default :: default ( ) ,
2574
2565
} ;
2575
- ( input, TransactionU16LenLimited :: new ( tx. clone ( ) ) . unwrap ( ) )
2566
+ ( input, tx. clone ( ) )
2576
2567
} )
2577
2568
. collect ( ) ;
2578
2569
@@ -2783,10 +2774,9 @@ mod tests {
2783
2774
expect_error : Some ( ( AbortReason :: PrevTxOutInvalid , ErrorCulprit :: NodeA ) ) ,
2784
2775
} ) ;
2785
2776
2786
- let tx =
2787
- TransactionU16LenLimited :: new ( generate_tx ( & [ TestOutput :: P2WPKH ( 1_000_000 ) ] ) ) . unwrap ( ) ;
2777
+ let tx = generate_tx ( & [ TestOutput :: P2WPKH ( 1_000_000 ) ] ) ;
2788
2778
let invalid_sequence_input = TxIn {
2789
- previous_output : OutPoint { txid : tx. as_transaction ( ) . compute_txid ( ) , vout : 0 } ,
2779
+ previous_output : OutPoint { txid : tx. compute_txid ( ) , vout : 0 } ,
2790
2780
..Default :: default ( )
2791
2781
} ;
2792
2782
do_test_interactive_tx_constructor ( TestSession {
@@ -2802,7 +2792,7 @@ mod tests {
2802
2792
expect_error : Some ( ( AbortReason :: IncorrectInputSequenceValue , ErrorCulprit :: NodeA ) ) ,
2803
2793
} ) ;
2804
2794
let duplicate_input = TxIn {
2805
- previous_output : OutPoint { txid : tx. as_transaction ( ) . compute_txid ( ) , vout : 0 } ,
2795
+ previous_output : OutPoint { txid : tx. compute_txid ( ) , vout : 0 } ,
2806
2796
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2807
2797
..Default :: default ( )
2808
2798
} ;
@@ -2820,7 +2810,7 @@ mod tests {
2820
2810
} ) ;
2821
2811
// Non-initiator uses same prevout as initiator.
2822
2812
let duplicate_input = TxIn {
2823
- previous_output : OutPoint { txid : tx. as_transaction ( ) . compute_txid ( ) , vout : 0 } ,
2813
+ previous_output : OutPoint { txid : tx. compute_txid ( ) , vout : 0 } ,
2824
2814
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2825
2815
..Default :: default ( )
2826
2816
} ;
@@ -2837,7 +2827,7 @@ mod tests {
2837
2827
expect_error : Some ( ( AbortReason :: PrevTxOutInvalid , ErrorCulprit :: NodeA ) ) ,
2838
2828
} ) ;
2839
2829
let duplicate_input = TxIn {
2840
- previous_output : OutPoint { txid : tx. as_transaction ( ) . compute_txid ( ) , vout : 0 } ,
2830
+ previous_output : OutPoint { txid : tx. compute_txid ( ) , vout : 0 } ,
2841
2831
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2842
2832
..Default :: default ( )
2843
2833
} ;
@@ -3170,9 +3160,9 @@ mod tests {
3170
3160
sequence : Sequence :: ZERO ,
3171
3161
witness : Witness :: new ( ) ,
3172
3162
} ;
3173
- ( txin, TransactionU16LenLimited :: new ( tx ) . unwrap ( ) )
3163
+ ( txin, tx )
3174
3164
} )
3175
- . collect :: < Vec < ( TxIn , TransactionU16LenLimited ) > > ( ) ;
3165
+ . collect :: < Vec < ( TxIn , Transaction ) > > ( ) ;
3176
3166
let our_contributed = 110_000 ;
3177
3167
let txout = TxOut { value : Amount :: from_sat ( 10_000 ) , script_pubkey : ScriptBuf :: new ( ) } ;
3178
3168
let outputs = vec ! [ txout] ;
0 commit comments