@@ -27,7 +27,6 @@ use crate::ln::msgs;
27
27
use crate :: ln:: msgs:: { MessageSendEvent , SerialId , TxSignatures } ;
28
28
use crate :: ln:: types:: ChannelId ;
29
29
use crate :: sign:: { EntropySource , P2TR_KEY_PATH_WITNESS_WEIGHT , P2WPKH_WITNESS_WEIGHT } ;
30
- use crate :: util:: ser:: TransactionU16LenLimited ;
31
30
32
31
use core:: fmt:: Display ;
33
32
use core:: ops:: Deref ;
@@ -676,10 +675,9 @@ impl NegotiationContext {
676
675
return Err ( AbortReason :: UnexpectedFundingInput ) ;
677
676
}
678
677
} else if let Some ( prevtx) = & msg. prevtx {
679
- let transaction = prevtx. as_transaction ( ) ;
680
- let txid = transaction. compute_txid ( ) ;
678
+ let txid = prevtx. compute_txid ( ) ;
681
679
682
- if let Some ( tx_out) = transaction . output . get ( msg. prevtx_out as usize ) {
680
+ if let Some ( tx_out) = prevtx . output . get ( msg. prevtx_out as usize ) {
683
681
if !tx_out. script_pubkey . is_witness_program ( ) {
684
682
// The receiving node:
685
683
// - MUST fail the negotiation if:
@@ -860,14 +858,9 @@ impl NegotiationContext {
860
858
return Err ( AbortReason :: UnexpectedFundingInput ) ;
861
859
}
862
860
} else if let Some ( prevtx) = & msg. prevtx {
863
- let prev_txid = prevtx. as_transaction ( ) . compute_txid ( ) ;
861
+ let prev_txid = prevtx. compute_txid ( ) ;
864
862
let prev_outpoint = OutPoint { txid : prev_txid, vout : msg. prevtx_out } ;
865
- let prev_output = prevtx
866
- . as_transaction ( )
867
- . output
868
- . get ( vout)
869
- . ok_or ( AbortReason :: PrevTxOutInvalid ) ?
870
- . clone ( ) ;
863
+ let prev_output = prevtx. output . get ( vout) . ok_or ( AbortReason :: PrevTxOutInvalid ) ?. clone ( ) ;
871
864
let txin = TxIn {
872
865
previous_output : prev_outpoint,
873
866
sequence : Sequence ( msg. sequence ) ,
@@ -1247,7 +1240,7 @@ impl_writeable_tlv_based_enum!(AddingRole,
1247
1240
#[ derive( Clone , Debug , Eq , PartialEq ) ]
1248
1241
struct SingleOwnedInput {
1249
1242
input : TxIn ,
1250
- prev_tx : TransactionU16LenLimited ,
1243
+ prev_tx : Transaction ,
1251
1244
prev_output : TxOut ,
1252
1245
}
1253
1246
@@ -1652,7 +1645,7 @@ where
1652
1645
pub feerate_sat_per_kw : u32 ,
1653
1646
pub is_initiator : bool ,
1654
1647
pub funding_tx_locktime : AbsoluteLockTime ,
1655
- pub inputs_to_contribute : Vec < ( TxIn , TransactionU16LenLimited ) > ,
1648
+ pub inputs_to_contribute : Vec < ( TxIn , Transaction ) > ,
1656
1649
pub shared_funding_input : Option < SharedOwnedInput > ,
1657
1650
pub shared_funding_output : SharedOwnedOutput ,
1658
1651
pub outputs_to_contribute : Vec < TxOut > ,
@@ -1694,7 +1687,7 @@ impl InteractiveTxConstructor {
1694
1687
// Check for the existence of prevouts'
1695
1688
for ( txin, tx) in inputs_to_contribute. iter ( ) {
1696
1689
let vout = txin. previous_output . vout as usize ;
1697
- if tx. as_transaction ( ) . output . get ( vout) . is_none ( ) {
1690
+ if tx. output . get ( vout) . is_none ( ) {
1698
1691
return Err ( AbortReason :: PrevTxOutInvalid ) ;
1699
1692
}
1700
1693
}
@@ -1703,7 +1696,7 @@ impl InteractiveTxConstructor {
1703
1696
. map ( |( txin, tx) | {
1704
1697
let serial_id = generate_holder_serial_id ( entropy_source, is_initiator) ;
1705
1698
let vout = txin. previous_output . vout as usize ;
1706
- let prev_output = tx. as_transaction ( ) . output . get ( vout) . unwrap ( ) . clone ( ) ; // checked above
1699
+ let prev_output = tx. output . get ( vout) . unwrap ( ) . clone ( ) ; // checked above
1707
1700
let input =
1708
1701
InputOwned :: Single ( SingleOwnedInput { input : txin, prev_tx : tx, prev_output } ) ;
1709
1702
( serial_id, input)
@@ -1892,12 +1885,11 @@ pub(super) fn calculate_change_output_value(
1892
1885
let mut total_input_satoshis = 0u64 ;
1893
1886
let mut our_funding_inputs_weight = 0u64 ;
1894
1887
for ( txin, tx) in context. our_funding_inputs . iter ( ) {
1895
- let txid = tx. as_transaction ( ) . compute_txid ( ) ;
1888
+ let txid = tx. compute_txid ( ) ;
1896
1889
if txin. previous_output . txid != txid {
1897
1890
return Err ( AbortReason :: PrevTxOutInvalid ) ;
1898
1891
}
1899
1892
let output = tx
1900
- . as_transaction ( )
1901
1893
. output
1902
1894
. get ( txin. previous_output . vout as usize )
1903
1895
. ok_or ( AbortReason :: PrevTxOutInvalid ) ?;
@@ -1954,7 +1946,6 @@ mod tests {
1954
1946
use crate :: ln:: types:: ChannelId ;
1955
1947
use crate :: sign:: EntropySource ;
1956
1948
use crate :: util:: atomic_counter:: AtomicCounter ;
1957
- use crate :: util:: ser:: TransactionU16LenLimited ;
1958
1949
use bitcoin:: absolute:: LockTime as AbsoluteLockTime ;
1959
1950
use bitcoin:: amount:: Amount ;
1960
1951
use bitcoin:: hashes:: Hash ;
@@ -2018,12 +2009,12 @@ mod tests {
2018
2009
2019
2010
struct TestSession {
2020
2011
description : & ' static str ,
2021
- inputs_a : Vec < ( TxIn , TransactionU16LenLimited ) > ,
2012
+ inputs_a : Vec < ( TxIn , Transaction ) > ,
2022
2013
a_shared_input : Option < ( OutPoint , TxOut , u64 ) > ,
2023
2014
/// The funding output, with the value contributed
2024
2015
shared_output_a : ( TxOut , u64 ) ,
2025
2016
outputs_a : Vec < TxOut > ,
2026
- inputs_b : Vec < ( TxIn , TransactionU16LenLimited ) > ,
2017
+ inputs_b : Vec < ( TxIn , Transaction ) > ,
2027
2018
b_shared_input : Option < ( OutPoint , TxOut , u64 ) > ,
2028
2019
/// The funding output, with the value contributed
2029
2020
shared_output_b : ( TxOut , u64 ) ,
@@ -2289,7 +2280,7 @@ mod tests {
2289
2280
}
2290
2281
}
2291
2282
2292
- fn generate_inputs ( outputs : & [ TestOutput ] ) -> Vec < ( TxIn , TransactionU16LenLimited ) > {
2283
+ fn generate_inputs ( outputs : & [ TestOutput ] ) -> Vec < ( TxIn , Transaction ) > {
2293
2284
let tx = generate_tx ( outputs) ;
2294
2285
let txid = tx. compute_txid ( ) ;
2295
2286
tx. output
@@ -2302,7 +2293,7 @@ mod tests {
2302
2293
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2303
2294
witness : Default :: default ( ) ,
2304
2295
} ;
2305
- ( txin, TransactionU16LenLimited :: new ( tx. clone ( ) ) . unwrap ( ) )
2296
+ ( txin, tx. clone ( ) )
2306
2297
} )
2307
2298
. collect ( )
2308
2299
}
@@ -2350,12 +2341,12 @@ mod tests {
2350
2341
( generate_txout ( & TestOutput :: P2WSH ( value) ) , local_value)
2351
2342
}
2352
2343
2353
- fn generate_fixed_number_of_inputs ( count : u16 ) -> Vec < ( TxIn , TransactionU16LenLimited ) > {
2344
+ fn generate_fixed_number_of_inputs ( count : u16 ) -> Vec < ( TxIn , Transaction ) > {
2354
2345
// Generate transactions with a total `count` number of outputs such that no transaction has a
2355
2346
// serialized length greater than u16::MAX.
2356
2347
let max_outputs_per_prevtx = 1_500 ;
2357
2348
let mut remaining = count;
2358
- let mut inputs: Vec < ( TxIn , TransactionU16LenLimited ) > = Vec :: with_capacity ( count as usize ) ;
2349
+ let mut inputs: Vec < ( TxIn , Transaction ) > = Vec :: with_capacity ( count as usize ) ;
2359
2350
2360
2351
while remaining > 0 {
2361
2352
let tx_output_count = remaining. min ( max_outputs_per_prevtx) ;
@@ -2368,7 +2359,7 @@ mod tests {
2368
2359
) ;
2369
2360
let txid = tx. compute_txid ( ) ;
2370
2361
2371
- let mut temp: Vec < ( TxIn , TransactionU16LenLimited ) > = tx
2362
+ let mut temp: Vec < ( TxIn , Transaction ) > = tx
2372
2363
. output
2373
2364
. iter ( )
2374
2365
. enumerate ( )
@@ -2379,7 +2370,7 @@ mod tests {
2379
2370
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2380
2371
witness : Default :: default ( ) ,
2381
2372
} ;
2382
- ( input, TransactionU16LenLimited :: new ( tx. clone ( ) ) . unwrap ( ) )
2373
+ ( input, tx. clone ( ) )
2383
2374
} )
2384
2375
. collect ( ) ;
2385
2376
@@ -2590,10 +2581,9 @@ mod tests {
2590
2581
expect_error : Some ( ( AbortReason :: PrevTxOutInvalid , ErrorCulprit :: NodeA ) ) ,
2591
2582
} ) ;
2592
2583
2593
- let tx =
2594
- TransactionU16LenLimited :: new ( generate_tx ( & [ TestOutput :: P2WPKH ( 1_000_000 ) ] ) ) . unwrap ( ) ;
2584
+ let tx = generate_tx ( & [ TestOutput :: P2WPKH ( 1_000_000 ) ] ) ;
2595
2585
let invalid_sequence_input = TxIn {
2596
- previous_output : OutPoint { txid : tx. as_transaction ( ) . compute_txid ( ) , vout : 0 } ,
2586
+ previous_output : OutPoint { txid : tx. compute_txid ( ) , vout : 0 } ,
2597
2587
..Default :: default ( )
2598
2588
} ;
2599
2589
do_test_interactive_tx_constructor ( TestSession {
@@ -2609,7 +2599,7 @@ mod tests {
2609
2599
expect_error : Some ( ( AbortReason :: IncorrectInputSequenceValue , ErrorCulprit :: NodeA ) ) ,
2610
2600
} ) ;
2611
2601
let duplicate_input = TxIn {
2612
- previous_output : OutPoint { txid : tx. as_transaction ( ) . compute_txid ( ) , vout : 0 } ,
2602
+ previous_output : OutPoint { txid : tx. compute_txid ( ) , vout : 0 } ,
2613
2603
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2614
2604
..Default :: default ( )
2615
2605
} ;
@@ -2627,7 +2617,7 @@ mod tests {
2627
2617
} ) ;
2628
2618
// Non-initiator uses same prevout as initiator.
2629
2619
let duplicate_input = TxIn {
2630
- previous_output : OutPoint { txid : tx. as_transaction ( ) . compute_txid ( ) , vout : 0 } ,
2620
+ previous_output : OutPoint { txid : tx. compute_txid ( ) , vout : 0 } ,
2631
2621
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2632
2622
..Default :: default ( )
2633
2623
} ;
@@ -2644,7 +2634,7 @@ mod tests {
2644
2634
expect_error : Some ( ( AbortReason :: PrevTxOutInvalid , ErrorCulprit :: NodeA ) ) ,
2645
2635
} ) ;
2646
2636
let duplicate_input = TxIn {
2647
- previous_output : OutPoint { txid : tx. as_transaction ( ) . compute_txid ( ) , vout : 0 } ,
2637
+ previous_output : OutPoint { txid : tx. compute_txid ( ) , vout : 0 } ,
2648
2638
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2649
2639
..Default :: default ( )
2650
2640
} ;
@@ -2977,9 +2967,9 @@ mod tests {
2977
2967
sequence : Sequence :: ZERO ,
2978
2968
witness : Witness :: new ( ) ,
2979
2969
} ;
2980
- ( txin, TransactionU16LenLimited :: new ( tx ) . unwrap ( ) )
2970
+ ( txin, tx )
2981
2971
} )
2982
- . collect :: < Vec < ( TxIn , TransactionU16LenLimited ) > > ( ) ;
2972
+ . collect :: < Vec < ( TxIn , Transaction ) > > ( ) ;
2983
2973
let our_contributed = 110_000 ;
2984
2974
let txout = TxOut { value : Amount :: from_sat ( 10_000 ) , script_pubkey : ScriptBuf :: new ( ) } ;
2985
2975
let outputs = vec ! [ txout] ;
0 commit comments