What changed, and why it matters
This commit only updates two generated API listing files (text snapshots of public functions and types). It records that several new script helper methods, such as checking whether a script is a pay-to-public-key-hash or pay-to-witness-public-key-hash output, are now part of the public API. There is no actual code change, no bug fix, and no security-related content in the commit message or diff.
No security action needed. Treat as a routine API-snapshot maintenance commit.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff updates primitives/api/all-features.txt and primitives/api/alloc-only.txt, which are rustdoc/public-API snapshot files used to track exported symbols. The additions reflect newly public inherent methods on Script<ScriptPubKeyTag> and ScriptBuf<ScriptPubKeyTag> (e.g., is_op_return, is_p2pkh, new_p2sh, new_p2wsh) and new generic methods gated by ScriptHashableTag (is_p2wpkh, is_p2wsh, witness_version). These are API declarations only; no implementation logic is present or modified.
Changed components
primitives/api/all-features.txtprimitives/api/alloc-only.txtInspect captured patch +28 / −0
diff --git a/primitives/api/all-features.txt b/primitives/api/all-features.txt
index 715d2371..ed182b7e 100644
--- a/primitives/api/all-features.txt
+++ b/primitives/api/all-features.txt
@@ -3136,11 +3136,19 @@ pub fn bitcoin_primitives::script::PushBytesBuf::from(t: T) -> T
pub struct bitcoin_primitives::script::PushBytesError
pub struct bitcoin_primitives::script::RedeemScriptSizeError
#[repr(transparent)] pub struct bitcoin_primitives::script::Script<T>(_, _)
+impl bitcoin_primitives::script::Script<bitcoin_primitives::script::ScriptPubKeyTag>
+pub fn bitcoin_primitives::script::Script<bitcoin_primitives::script::ScriptPubKeyTag>::is_op_return(&self) -> bool
+pub fn bitcoin_primitives::script::Script<bitcoin_primitives::script::ScriptPubKeyTag>::is_p2a(&self) -> bool
+pub fn bitcoin_primitives::script::Script<bitcoin_primitives::script::ScriptPubKeyTag>::is_p2pkh(&self) -> bool
+pub fn bitcoin_primitives::script::Script<bitcoin_primitives::script::ScriptPubKeyTag>::is_p2sh(&self) -> bool
+pub fn bitcoin_primitives::script::Script<bitcoin_primitives::script::ScriptPubKeyTag>::is_witness_program(&self) -> bool
impl<T> bitcoin_primitives::script::Script<T>
pub const fn bitcoin_primitives::script::Script<T>::as_bytes(&self) -> &[u8]
pub fn bitcoin_primitives::script::Script<T>::as_mut_bytes(&mut self) -> &mut [u8]
pub fn bitcoin_primitives::script::Script<T>::into_script_buf(self: alloc::boxed::Box<Self>) -> bitcoin_primitives::script::ScriptBuf<T>
pub const fn bitcoin_primitives::script::Script<T>::is_empty(&self) -> bool
+pub fn bitcoin_primitives::script::Script<T>::is_p2wpkh(&self) -> bool where T: bitcoin_primitives::script::ScriptHashableTag
+pub fn bitcoin_primitives::script::Script<T>::is_p2wsh(&self) -> bool where T: bitcoin_primitives::script::ScriptHashableTag
pub const fn bitcoin_primitives::script::Script<T>::len(&self) -> usize
pub const fn bitcoin_primitives::script::Script<T>::new() -> &'static Self
pub fn bitcoin_primitives::script::Script<T>::to_bytes(&self) -> alloc::vec::Vec<u8>
@@ -3148,6 +3156,7 @@ pub fn bitcoin_primitives::script::Script<T>::to_hex(&self) -> alloc::string::St
pub fn bitcoin_primitives::script::Script<T>::to_hex_string_no_length_prefix(&self) -> alloc::string::String
pub fn bitcoin_primitives::script::Script<T>::to_hex_string_prefixed(&self) -> alloc::string::String
pub fn bitcoin_primitives::script::Script<T>::to_vec(&self) -> alloc::vec::Vec<u8>
+pub fn bitcoin_primitives::script::Script<T>::witness_version(&self) -> core::option::Option<bitcoin_primitives::witness_version::WitnessVersion> where T: bitcoin_primitives::script::ScriptHashableTag
pub const fn bitcoin_primitives::script::Script<T>::from_bytes(bytes: &[u8]) -> &Self
pub fn bitcoin_primitives::script::Script<T>::from_bytes_mut(bytes: &mut [u8]) -> &mut Self
impl core::convert::TryFrom<&bitcoin_primitives::script::Script<bitcoin_primitives::script::WitnessScriptTag>> for bitcoin_primitives::script::WScriptHash
@@ -3255,6 +3264,11 @@ pub fn bitcoin_primitives::script::Script<T>::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for bitcoin_primitives::script::Script<T> where T: ?core::marker::Sized
pub fn bitcoin_primitives::script::Script<T>::borrow_mut(&mut self) -> &mut T
pub struct bitcoin_primitives::script::ScriptBuf<T>(_, _)
+impl bitcoin_primitives::script::ScriptBuf<bitcoin_primitives::script::ScriptPubKeyTag>
+pub fn bitcoin_primitives::script::ScriptBuf<bitcoin_primitives::script::ScriptPubKeyTag>::new_op_return<T: core::convert::AsRef<bitcoin_primitives::script::PushBytes>>(data: T) -> Self
+pub fn bitcoin_primitives::script::ScriptBuf<bitcoin_primitives::script::ScriptPubKeyTag>::new_p2a() -> Self
+pub fn bitcoin_primitives::script::ScriptBuf<bitcoin_primitives::script::ScriptPubKeyTag>::new_p2sh(script_hash: bitcoin_primitives::script::ScriptHash) -> Self
+pub fn bitcoin_primitives::script::ScriptBuf<bitcoin_primitives::script::ScriptPubKeyTag>::new_p2wsh(script_hash: bitcoin_primitives::script::WScriptHash) -> Self
impl<T> bitcoin_primitives::script::ScriptBuf<T>
pub fn bitcoin_primitives::script::ScriptBuf<T>::as_mut_script(&mut self) -> &mut bitcoin_primitives::script::Script<T>
pub fn bitcoin_primitives::script::ScriptBuf<T>::as_script(&self) -> &bitcoin_primitives::script::Script<T>
diff --git a/primitives/api/alloc-only.txt b/primitives/api/alloc-only.txt
index db5c0f4b..ce47e8b9 100644
--- a/primitives/api/alloc-only.txt
+++ b/primitives/api/alloc-only.txt
@@ -3026,15 +3026,24 @@ pub fn bitcoin_primitives::script::PushBytesBuf::from(t: T) -> T
pub struct bitcoin_primitives::script::PushBytesError
pub struct bitcoin_primitives::script::RedeemScriptSizeError
#[repr(transparent)] pub struct bitcoin_primitives::script::Script<T>(_, _)
+impl bitcoin_primitives::script::Script<bitcoin_primitives::script::ScriptPubKeyTag>
+pub fn bitcoin_primitives::script::Script<bitcoin_primitives::script::ScriptPubKeyTag>::is_op_return(&self) -> bool
+pub fn bitcoin_primitives::script::Script<bitcoin_primitives::script::ScriptPubKeyTag>::is_p2a(&self) -> bool
+pub fn bitcoin_primitives::script::Script<bitcoin_primitives::script::ScriptPubKeyTag>::is_p2pkh(&self) -> bool
+pub fn bitcoin_primitives::script::Script<bitcoin_primitives::script::ScriptPubKeyTag>::is_p2sh(&self) -> bool
+pub fn bitcoin_primitives::script::Script<bitcoin_primitives::script::ScriptPubKeyTag>::is_witness_program(&self) -> bool
impl<T> bitcoin_primitives::script::Script<T>
pub const fn bitcoin_primitives::script::Script<T>::as_bytes(&self) -> &[u8]
pub fn bitcoin_primitives::script::Script<T>::as_mut_bytes(&mut self) -> &mut [u8]
pub fn bitcoin_primitives::script::Script<T>::into_script_buf(self: alloc::boxed::Box<Self>) -> bitcoin_primitives::script::ScriptBuf<T>
pub const fn bitcoin_primitives::script::Script<T>::is_empty(&self) -> bool
+pub fn bitcoin_primitives::script::Script<T>::is_p2wpkh(&self) -> bool where T: bitcoin_primitives::script::ScriptHashableTag
+pub fn bitcoin_primitives::script::Script<T>::is_p2wsh(&self) -> bool where T: bitcoin_primitives::script::ScriptHashableTag
pub const fn bitcoin_primitives::script::Script<T>::len(&self) -> usize
pub const fn bitcoin_primitives::script::Script<T>::new() -> &'static Self
pub fn bitcoin_primitives::script::Script<T>::to_bytes(&self) -> alloc::vec::Vec<u8>
pub fn bitcoin_primitives::script::Script<T>::to_vec(&self) -> alloc::vec::Vec<u8>
+pub fn bitcoin_primitives::script::Script<T>::witness_version(&self) -> core::option::Option<bitcoin_primitives::witness_version::WitnessVersion> where T: bitcoin_primitives::script::ScriptHashableTag
pub const fn bitcoin_primitives::script::Script<T>::from_bytes(bytes: &[u8]) -> &Self
pub fn bitcoin_primitives::script::Script<T>::from_bytes_mut(bytes: &mut [u8]) -> &mut Self
impl core::convert::TryFrom<&bitcoin_primitives::script::Script<bitcoin_primitives::script::WitnessScriptTag>> for bitcoin_primitives::script::WScriptHash
@@ -3134,6 +3143,11 @@ pub fn bitcoin_primitives::script::Script<T>::borrow(&self) -> &T
impl<T> core::borrow::BorrowMut<T> for bitcoin_primitives::script::Script<T> where T: ?core::marker::Sized
pub fn bitcoin_primitives::script::Script<T>::borrow_mut(&mut self) -> &mut T
pub struct bitcoin_primitives::script::ScriptBuf<T>(_, _)
+impl bitcoin_primitives::script::ScriptBuf<bitcoin_primitives::script::ScriptPubKeyTag>
+pub fn bitcoin_primitives::script::ScriptBuf<bitcoin_primitives::script::ScriptPubKeyTag>::new_op_return<T: core::convert::AsRef<bitcoin_primitives::script::PushBytes>>(data: T) -> Self
+pub fn bitcoin_primitives::script::ScriptBuf<bitcoin_primitives::script::ScriptPubKeyTag>::new_p2a() -> Self
+pub fn bitcoin_primitives::script::ScriptBuf<bitcoin_primitives::script::ScriptPubKeyTag>::new_p2sh(script_hash: bitcoin_primitives::script::ScriptHash) -> Self
+pub fn bitcoin_primitives::script::ScriptBuf<bitcoin_primitives::script::ScriptPubKeyTag>::new_p2wsh(script_hash: bitcoin_primitives::script::WScriptHash) -> Self
impl<T> bitcoin_primitives::script::ScriptBuf<T>
pub fn bitcoin_primitives::script::ScriptBuf<T>::as_mut_script(&mut self) -> &mut bitcoin_primitives::script::Script<T>
pub fn bitcoin_primitives::script::ScriptBuf<T>::as_script(&self) -> &bitcoin_primitives::script::Script<T>
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.