@@ -2076,7 +2076,7 @@ pub(super) fn calculate_change_output_value(
2076
2076
2077
2077
let mut total_input_satoshis = 0u64 ;
2078
2078
let mut our_funding_inputs_weight = 0u64 ;
2079
- for FundingTxInput { txin, prevtx, .. } in context. our_funding_inputs . iter ( ) {
2079
+ for FundingTxInput { txin, prevtx, witness_weight } in context. our_funding_inputs . iter ( ) {
2080
2080
let txid = prevtx. compute_txid ( ) ;
2081
2081
if txin. previous_output . txid != txid {
2082
2082
return Err ( AbortReason :: PrevTxOutInvalid ) ;
@@ -2086,7 +2086,8 @@ pub(super) fn calculate_change_output_value(
2086
2086
. get ( txin. previous_output . vout as usize )
2087
2087
. ok_or ( AbortReason :: PrevTxOutInvalid ) ?;
2088
2088
total_input_satoshis = total_input_satoshis. saturating_add ( output. value . to_sat ( ) ) ;
2089
- let weight = estimate_input_weight ( output) . to_wu ( ) ;
2089
+
2090
+ let weight = BASE_INPUT_WEIGHT + EMPTY_SCRIPT_SIG_WEIGHT + witness_weight. to_wu ( ) ;
2090
2091
our_funding_inputs_weight = our_funding_inputs_weight. saturating_add ( weight) ;
2091
2092
}
2092
2093
@@ -2157,7 +2158,8 @@ mod tests {
2157
2158
use super :: {
2158
2159
get_output_weight, AddingRole , ConstructedTransaction , InteractiveTxOutput ,
2159
2160
InteractiveTxSigningSession , NegotiatedTxInput , OutputOwned , P2TR_INPUT_WEIGHT_LOWER_BOUND ,
2160
- P2WPKH_INPUT_WEIGHT_LOWER_BOUND , P2WSH_INPUT_WEIGHT_LOWER_BOUND , TX_COMMON_FIELDS_WEIGHT ,
2161
+ P2WPKH_INPUT_WEIGHT_LOWER_BOUND , P2WPKH_WITNESS_WEIGHT , P2WSH_INPUT_WEIGHT_LOWER_BOUND ,
2162
+ TX_COMMON_FIELDS_WEIGHT ,
2161
2163
} ;
2162
2164
2163
2165
const TEST_FEERATE_SATS_PER_KW : u32 = FEERATE_FLOOR_SATS_PER_KW * 10 ;
@@ -3162,7 +3164,7 @@ mod tests {
3162
3164
sequence : Sequence :: ZERO ,
3163
3165
witness : Witness :: new ( ) ,
3164
3166
} ;
3165
- let witness_weight = Weight :: ZERO ;
3167
+ let witness_weight = Weight :: from_wu ( P2WPKH_WITNESS_WEIGHT ) ;
3166
3168
FundingTxInput { txin, prevtx, witness_weight }
3167
3169
} )
3168
3170
. collect ( ) ;
0 commit comments