diff --git a/bitcoin/src/blockdata/witness.rs b/bitcoin/src/blockdata/witness.rs index 5e0cb4be..8a010f28 100644 --- a/bitcoin/src/blockdata/witness.rs +++ b/bitcoin/src/blockdata/witness.rs @@ -16,6 +16,7 @@ use crate::sighash::EcdsaSighashType; use crate::io::{self, Read, Write}; use crate::prelude::*; use crate::VarInt; +use crate::util::taproot::TAPROOT_ANNEX_PREFIX; /// The Witness is the data used to unlock bitcoins since the [segwit upgrade](https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki) /// @@ -302,7 +303,7 @@ impl Witness { /// This does not guarantee that this represents a P2TR [`Witness`]. /// It merely gets the second to last or third to last element depending /// on the first byte of the last element being equal to 0x50. - pub fn get_tapscript(&self) -> Option<&[u8]> { + pub fn tapscript(&self) -> Option<&[u8]> { let len = self.len(); self .last() @@ -311,7 +312,7 @@ impl Witness { // If there are at least two witness elements, and the first byte of // the last element is 0x50, this last element is called annex a // and is removed from the witness stack. - if len >= 2 && last_elem.first().filter(|&&v| v == 0x50).is_some() { + if len >= 2 && last_elem.first() == Some(&TAPROOT_ANNEX_PREFIX) { // account for the extra item removed from the end 3 } else { @@ -602,8 +603,8 @@ mod test { }; // With or without annex, the tapscript should be returned. - assert_eq!(witness.get_tapscript(), Some(&tapscript[..])); - assert_eq!(witness_annex.get_tapscript(), Some(&tapscript[..])); + assert_eq!(witness.tapscript(), Some(&tapscript[..])); + assert_eq!(witness_annex.tapscript(), Some(&tapscript[..])); } #[test]