@@ -1885,7 +1885,7 @@ pub(super) fn calculate_change_output_value(
1885
1885
1886
1886
let mut total_input_satoshis = 0u64 ;
1887
1887
let mut our_funding_inputs_weight = 0u64 ;
1888
- for FundingTxInput { txin, prevtx, .. } in context. our_funding_inputs . iter ( ) {
1888
+ for FundingTxInput { txin, prevtx, witness_weight } in context. our_funding_inputs . iter ( ) {
1889
1889
let txid = prevtx. compute_txid ( ) ;
1890
1890
if txin. previous_output . txid != txid {
1891
1891
return Err ( AbortReason :: PrevTxOutInvalid ) ;
@@ -1895,7 +1895,8 @@ pub(super) fn calculate_change_output_value(
1895
1895
. get ( txin. previous_output . vout as usize )
1896
1896
. ok_or ( AbortReason :: PrevTxOutInvalid ) ?;
1897
1897
total_input_satoshis = total_input_satoshis. saturating_add ( output. value . to_sat ( ) ) ;
1898
- let weight = estimate_input_weight ( output) . to_wu ( ) ;
1898
+
1899
+ let weight = BASE_INPUT_WEIGHT + EMPTY_SCRIPT_SIG_WEIGHT + witness_weight. to_wu ( ) ;
1899
1900
our_funding_inputs_weight = our_funding_inputs_weight. saturating_add ( weight) ;
1900
1901
}
1901
1902
@@ -1964,7 +1965,7 @@ mod tests {
1964
1965
1965
1966
use super :: {
1966
1967
get_output_weight, P2TR_INPUT_WEIGHT_LOWER_BOUND , P2WPKH_INPUT_WEIGHT_LOWER_BOUND ,
1967
- P2WSH_INPUT_WEIGHT_LOWER_BOUND , TX_COMMON_FIELDS_WEIGHT ,
1968
+ P2WPKH_WITNESS_WEIGHT , P2WSH_INPUT_WEIGHT_LOWER_BOUND , TX_COMMON_FIELDS_WEIGHT ,
1968
1969
} ;
1969
1970
1970
1971
const TEST_FEERATE_SATS_PER_KW : u32 = FEERATE_FLOOR_SATS_PER_KW * 10 ;
@@ -2969,7 +2970,7 @@ mod tests {
2969
2970
sequence : Sequence :: ZERO ,
2970
2971
witness : Witness :: new ( ) ,
2971
2972
} ;
2972
- let witness_weight = Weight :: ZERO ;
2973
+ let witness_weight = Weight :: from_wu ( P2WPKH_WITNESS_WEIGHT ) ;
2973
2974
FundingTxInput { txin, prevtx, witness_weight }
2974
2975
} )
2975
2976
. collect ( ) ;
0 commit comments