Deprecate weight

The name weight is misleading since it is actually only the segwit parts
of the weight calculation
This commit is contained in:
yancy 2024-11-25 11:06:45 -06:00
parent d54c04be00
commit cc4c36e8ac
1 changed files with 17 additions and 8 deletions

View File

@ -863,7 +863,7 @@ where
|(count, partial_input_weight, inputs_with_witnesses), prediction| { |(count, partial_input_weight, inputs_with_witnesses), prediction| {
( (
count + 1, count + 1,
partial_input_weight + prediction.weight().to_wu() as usize, partial_input_weight + prediction.witness_weight().to_wu() as usize,
inputs_with_witnesses + (prediction.witness_size > 0) as usize, inputs_with_witnesses + (prediction.witness_size > 0) as usize,
) )
}, },
@ -937,7 +937,7 @@ pub const fn predict_weight_from_slices(
let mut i = 0; let mut i = 0;
while i < inputs.len() { while i < inputs.len() {
let prediction = inputs[i]; let prediction = inputs[i];
partial_input_weight += prediction.weight().to_wu() as usize; partial_input_weight += prediction.witness_weight().to_wu() as usize;
inputs_with_witnesses += (prediction.witness_size > 0) as usize; inputs_with_witnesses += (prediction.witness_size > 0) as usize;
i += 1; i += 1;
} }
@ -1142,7 +1142,16 @@ impl InputWeightPrediction {
/// Computes the **signature weight** added to a transaction by an input with this weight prediction, /// Computes the **signature weight** added to a transaction by an input with this weight prediction,
/// not counting the prevout (txid, index), sequence, potential witness flag bytes or the witness count varint. /// not counting the prevout (txid, index), sequence, potential witness flag bytes or the witness count varint.
#[deprecated(since = "TBD", note = "use `InputWeightPrediction::witness_weight()` instead")]
pub const fn weight(&self) -> Weight { pub const fn weight(&self) -> Weight {
Self::witness_weight(self)
}
/// Computes the **signature weight** added to a transaction by an input with this weight prediction,
/// not counting the prevout (txid, index), sequence, potential witness flag bytes or the witness count varint.
///
/// See also [`InputWeightPrediction::total_weight`]
pub const fn witness_weight(&self) -> Weight {
Weight::from_wu_usize(self.script_size * 4 + self.witness_size) Weight::from_wu_usize(self.script_size * 4 + self.witness_size)
} }
} }
@ -1941,16 +1950,16 @@ mod tests {
// Confirm signature grinding input weight predictions are aligned with constants. // Confirm signature grinding input weight predictions are aligned with constants.
assert_eq!( assert_eq!(
InputWeightPrediction::ground_p2wpkh(0).weight(), InputWeightPrediction::ground_p2wpkh(0).witness_weight(),
InputWeightPrediction::P2WPKH_MAX.weight() InputWeightPrediction::P2WPKH_MAX.witness_weight()
); );
assert_eq!( assert_eq!(
InputWeightPrediction::ground_nested_p2wpkh(0).weight(), InputWeightPrediction::ground_nested_p2wpkh(0).witness_weight(),
InputWeightPrediction::NESTED_P2WPKH_MAX.weight() InputWeightPrediction::NESTED_P2WPKH_MAX.witness_weight()
); );
assert_eq!( assert_eq!(
InputWeightPrediction::ground_p2pkh_compressed(0).weight(), InputWeightPrediction::ground_p2pkh_compressed(0).witness_weight(),
InputWeightPrediction::P2PKH_COMPRESSED_MAX.weight() InputWeightPrediction::P2PKH_COMPRESSED_MAX.witness_weight()
); );
} }