parent
938b61bf66
commit
17f0d29d08
|
@ -717,6 +717,16 @@ impl Transaction {
|
||||||
/// For transactions with an empty witness, this is simply the consensus-serialized size times
|
/// For transactions with an empty witness, this is simply the consensus-serialized size times
|
||||||
/// four. For transactions with a witness, this is the non-witness consensus-serialized size
|
/// four. For transactions with a witness, this is the non-witness consensus-serialized size
|
||||||
/// multiplied by three plus the with-witness consensus-serialized size.
|
/// multiplied by three plus the with-witness consensus-serialized size.
|
||||||
|
///
|
||||||
|
/// For transactions with no inputs, this function will return a value 2 less than the actual
|
||||||
|
/// weight of the serialized transaction. The reason is that zero-input transactions, post-segwit,
|
||||||
|
/// cannot be unambiguously serialized; we make a choice that adds two extra bytes. For more
|
||||||
|
/// details see [BIP 141](https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki)
|
||||||
|
/// which uses a "input count" of `0x00` as a `marker` for a Segwit-encoded transaction.
|
||||||
|
///
|
||||||
|
/// If you need to use 0-input transactions, we strongly recommend you do so using the PSBT
|
||||||
|
/// API. The unsigned transaction encoded within PSBT is always a non-segwit transaction
|
||||||
|
/// and can therefore avoid this ambiguity.
|
||||||
#[inline]
|
#[inline]
|
||||||
pub fn weight(&self) -> usize {
|
pub fn weight(&self) -> usize {
|
||||||
self.scaled_size(WITNESS_SCALE_FACTOR)
|
self.scaled_size(WITNESS_SCALE_FACTOR)
|
||||||
|
|
Loading…
Reference in New Issue