@@ -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. funding_tx_contributions . 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 ) ?;
@@ -1956,7 +1948,6 @@ mod tests {
1956
1948
use crate :: ln:: types:: ChannelId ;
1957
1949
use crate :: sign:: EntropySource ;
1958
1950
use crate :: util:: atomic_counter:: AtomicCounter ;
1959
- use crate :: util:: ser:: TransactionU16LenLimited ;
1960
1951
use bitcoin:: absolute:: LockTime as AbsoluteLockTime ;
1961
1952
use bitcoin:: amount:: Amount ;
1962
1953
use bitcoin:: hashes:: Hash ;
@@ -2020,12 +2011,12 @@ mod tests {
2020
2011
2021
2012
struct TestSession {
2022
2013
description : & ' static str ,
2023
- inputs_a : Vec < ( TxIn , TransactionU16LenLimited ) > ,
2014
+ inputs_a : Vec < ( TxIn , Transaction ) > ,
2024
2015
a_shared_input : Option < ( OutPoint , TxOut , u64 ) > ,
2025
2016
/// The funding output, with the value contributed
2026
2017
shared_output_a : ( TxOut , u64 ) ,
2027
2018
outputs_a : Vec < TxOut > ,
2028
- inputs_b : Vec < ( TxIn , TransactionU16LenLimited ) > ,
2019
+ inputs_b : Vec < ( TxIn , Transaction ) > ,
2029
2020
b_shared_input : Option < ( OutPoint , TxOut , u64 ) > ,
2030
2021
/// The funding output, with the value contributed
2031
2022
shared_output_b : ( TxOut , u64 ) ,
@@ -2291,7 +2282,7 @@ mod tests {
2291
2282
}
2292
2283
}
2293
2284
2294
- fn generate_inputs ( outputs : & [ TestOutput ] ) -> Vec < ( TxIn , TransactionU16LenLimited ) > {
2285
+ fn generate_inputs ( outputs : & [ TestOutput ] ) -> Vec < ( TxIn , Transaction ) > {
2295
2286
let tx = generate_tx ( outputs) ;
2296
2287
let txid = tx. compute_txid ( ) ;
2297
2288
tx. output
@@ -2304,7 +2295,7 @@ mod tests {
2304
2295
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2305
2296
witness : Default :: default ( ) ,
2306
2297
} ;
2307
- ( txin, TransactionU16LenLimited :: new ( tx. clone ( ) ) . unwrap ( ) )
2298
+ ( txin, tx. clone ( ) )
2308
2299
} )
2309
2300
. collect ( )
2310
2301
}
@@ -2352,12 +2343,12 @@ mod tests {
2352
2343
( generate_txout ( & TestOutput :: P2WSH ( value) ) , local_value)
2353
2344
}
2354
2345
2355
- fn generate_fixed_number_of_inputs ( count : u16 ) -> Vec < ( TxIn , TransactionU16LenLimited ) > {
2346
+ fn generate_fixed_number_of_inputs ( count : u16 ) -> Vec < ( TxIn , Transaction ) > {
2356
2347
// Generate transactions with a total `count` number of outputs such that no transaction has a
2357
2348
// serialized length greater than u16::MAX.
2358
2349
let max_outputs_per_prevtx = 1_500 ;
2359
2350
let mut remaining = count;
2360
- let mut inputs: Vec < ( TxIn , TransactionU16LenLimited ) > = Vec :: with_capacity ( count as usize ) ;
2351
+ let mut inputs: Vec < ( TxIn , Transaction ) > = Vec :: with_capacity ( count as usize ) ;
2361
2352
2362
2353
while remaining > 0 {
2363
2354
let tx_output_count = remaining. min ( max_outputs_per_prevtx) ;
@@ -2370,7 +2361,7 @@ mod tests {
2370
2361
) ;
2371
2362
let txid = tx. compute_txid ( ) ;
2372
2363
2373
- let mut temp: Vec < ( TxIn , TransactionU16LenLimited ) > = tx
2364
+ let mut temp: Vec < ( TxIn , Transaction ) > = tx
2374
2365
. output
2375
2366
. iter ( )
2376
2367
. enumerate ( )
@@ -2381,7 +2372,7 @@ mod tests {
2381
2372
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2382
2373
witness : Default :: default ( ) ,
2383
2374
} ;
2384
- ( input, TransactionU16LenLimited :: new ( tx. clone ( ) ) . unwrap ( ) )
2375
+ ( input, tx. clone ( ) )
2385
2376
} )
2386
2377
. collect ( ) ;
2387
2378
@@ -2592,10 +2583,9 @@ mod tests {
2592
2583
expect_error : Some ( ( AbortReason :: PrevTxOutInvalid , ErrorCulprit :: NodeA ) ) ,
2593
2584
} ) ;
2594
2585
2595
- let tx =
2596
- TransactionU16LenLimited :: new ( generate_tx ( & [ TestOutput :: P2WPKH ( 1_000_000 ) ] ) ) . unwrap ( ) ;
2586
+ let tx = generate_tx ( & [ TestOutput :: P2WPKH ( 1_000_000 ) ] ) ;
2597
2587
let invalid_sequence_input = TxIn {
2598
- previous_output : OutPoint { txid : tx. as_transaction ( ) . compute_txid ( ) , vout : 0 } ,
2588
+ previous_output : OutPoint { txid : tx. compute_txid ( ) , vout : 0 } ,
2599
2589
..Default :: default ( )
2600
2590
} ;
2601
2591
do_test_interactive_tx_constructor ( TestSession {
@@ -2611,7 +2601,7 @@ mod tests {
2611
2601
expect_error : Some ( ( AbortReason :: IncorrectInputSequenceValue , ErrorCulprit :: NodeA ) ) ,
2612
2602
} ) ;
2613
2603
let duplicate_input = TxIn {
2614
- previous_output : OutPoint { txid : tx. as_transaction ( ) . compute_txid ( ) , vout : 0 } ,
2604
+ previous_output : OutPoint { txid : tx. compute_txid ( ) , vout : 0 } ,
2615
2605
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2616
2606
..Default :: default ( )
2617
2607
} ;
@@ -2629,7 +2619,7 @@ mod tests {
2629
2619
} ) ;
2630
2620
// Non-initiator uses same prevout as initiator.
2631
2621
let duplicate_input = TxIn {
2632
- previous_output : OutPoint { txid : tx. as_transaction ( ) . compute_txid ( ) , vout : 0 } ,
2622
+ previous_output : OutPoint { txid : tx. compute_txid ( ) , vout : 0 } ,
2633
2623
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2634
2624
..Default :: default ( )
2635
2625
} ;
@@ -2646,7 +2636,7 @@ mod tests {
2646
2636
expect_error : Some ( ( AbortReason :: PrevTxOutInvalid , ErrorCulprit :: NodeA ) ) ,
2647
2637
} ) ;
2648
2638
let duplicate_input = TxIn {
2649
- previous_output : OutPoint { txid : tx. as_transaction ( ) . compute_txid ( ) , vout : 0 } ,
2639
+ previous_output : OutPoint { txid : tx. compute_txid ( ) , vout : 0 } ,
2650
2640
sequence : Sequence :: ENABLE_RBF_NO_LOCKTIME ,
2651
2641
..Default :: default ( )
2652
2642
} ;
@@ -2979,9 +2969,9 @@ mod tests {
2979
2969
sequence : Sequence :: ZERO ,
2980
2970
witness : Witness :: new ( ) ,
2981
2971
} ;
2982
- ( txin, TransactionU16LenLimited :: new ( tx ) . unwrap ( ) )
2972
+ ( txin, tx )
2983
2973
} )
2984
- . collect :: < Vec < ( TxIn , TransactionU16LenLimited ) > > ( ) ;
2974
+ . collect :: < Vec < ( TxIn , Transaction ) > > ( ) ;
2985
2975
let funding_tx_contributions =
2986
2976
FundingTxContributions :: InputsOnly { inputs, change_script : None } ;
2987
2977
let our_contributed = 110_000 ;
0 commit comments