bitcoin: Fix all primitives re-exports
What changed, and why it matters
This commit is a routine API cleanup. It adds missing public re-exports of types from the underlying `primitives` and `units` crates into the main `bitcoin` crate, and adjusts documentation attributes so the exports display correctly. There is no change to behavior, logic, or security-sensitive code.
No security action required. Treat as a normal API-maintenance change.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch aligns bitcoin::... public exports with the project’s stated policy that every primitives::Foo/primitives::foo must also be available at bitcoin::Foo/bitcoin::foo. It adds missing re-exports in bitcoin/src/lib.rs, bitcoin/src/blockdata/mod.rs, bitcoin/src/blockdata/script/mod.rs, and bitcoin/src/blockdata/witness.rs, including new error types, tags, Ntxid, BlockTimeDecoder, etc. It also splits some re-exports between #[doc(inline)] and #[doc(no_inline)] for documentation clarity. No implementation code is modified.
Changed components
bitcoin/src/lib.rsbitcoin/src/blockdata/mod.rsbitcoin/src/blockdata/script/mod.rsbitcoin/src/blockdata/witness.rsInspect captured patch +23 / −9
diff --git a/bitcoin/src/blockdata/mod.rs b/bitcoin/src/blockdata/mod.rs
index c4ca8230..bc18d858 100644
--- a/bitcoin/src/blockdata/mod.rs
+++ b/bitcoin/src/blockdata/mod.rs
@@ -41,7 +41,12 @@ pub mod locktime {
/// Re-export everything from the `units::locktime::absolute` module.
#[rustfmt::skip] // Keep public re-exports separate.
- pub use units::locktime::absolute::{ConversionError, Height, LockTime, ParseHeightError, ParseTimeError, MedianTimePast};
+ #[doc(inline)]
+ pub use units::locktime::absolute::{error, Height, LockTime, MedianTimePast};
+ #[doc(no_inline)]
+ pub use units::locktime::absolute::{
+ ConversionError, IncompatibleHeightError, IncompatibleTimeError, ParseHeightError, ParseTimeError,
+ };
#[deprecated(since = "TBD", note = "use `MedianTimePast` instead")]
#[doc(hidden)]
@@ -70,9 +75,14 @@ pub mod locktime {
//! whether bit 22 of the `u32` consensus value is set.
/// Re-export everything from the `units::locktime::relative` module.
+ #[doc(inline)]
+ pub use units::locktime::relative::{
+ error, LockTime, NumberOf512Seconds, NumberOfBlocks,
+ };
+ #[doc(no_inline)]
pub use units::locktime::relative::{
- DisabledLockTimeError, InvalidHeightError, InvalidTimeError, LockTime,
- NumberOf512Seconds, NumberOfBlocks, TimeOverflowError,
+ DisabledLockTimeError, InvalidHeightError, InvalidTimeError, IsSatisfiedByError,
+ IsSatisfiedByHeightError, IsSatisfiedByTimeError, TimeOverflowError,
};
#[deprecated(since = "TBD", note = "use `NumberOfBlocks` instead")]
diff --git a/bitcoin/src/blockdata/script/mod.rs b/bitcoin/src/blockdata/script/mod.rs
index 065e4324..24c5bb9d 100644
--- a/bitcoin/src/blockdata/script/mod.rs
+++ b/bitcoin/src/blockdata/script/mod.rs
@@ -82,8 +82,8 @@ pub use self::{
pub use primitives::script::{
RedeemScript, RedeemScriptBuf, RedeemScriptSizeError, RedeemScriptTag, Script, ScriptBuf,
ScriptHash, ScriptHashableTag, ScriptPubKey, ScriptPubKeyBuf, ScriptPubKeyTag, ScriptSig,
- ScriptSigBuf, ScriptSigTag, Tag, TapScript, TapScriptBuf, WScriptHash, WitnessScript,
- WitnessScriptBuf, WitnessScriptSizeError, WitnessScriptTag,
+ ScriptSigBuf, ScriptSigTag, Tag, TapScript, TapScriptBuf, TapScriptTag, WScriptHash,
+ WitnessScript, WitnessScriptBuf, WitnessScriptSizeError, WitnessScriptTag,
};
pub(crate) use self::borrowed::ScriptExtPriv;
diff --git a/bitcoin/src/blockdata/witness.rs b/bitcoin/src/blockdata/witness.rs
index ebb6eda5..db4d0aef 100644
--- a/bitcoin/src/blockdata/witness.rs
+++ b/bitcoin/src/blockdata/witness.rs
@@ -20,6 +20,8 @@ type BorrowedControlBlock<'a> = ControlBlock<&'a TaprootMerkleBranch, &'a Serial
#[rustfmt::skip] // Keep public re-exports separate.
#[doc(inline)]
pub use primitives::witness::{Iter, Witness};
+#[doc(no_inline)]
+pub use primitives::witness::UnexpectedEofError;
impl Decodable for Witness {
fn consensus_decode<R: BufRead + ?Sized>(r: &mut R) -> Result<Self, Error> {
diff --git a/bitcoin/src/lib.rs b/bitcoin/src/lib.rs
index c1565833..b2ccc98c 100644
--- a/bitcoin/src/lib.rs
+++ b/bitcoin/src/lib.rs
@@ -148,10 +148,10 @@ pub use primitives::{
pow::CompactTarget, // No `pow` module outside of `primitives`.
script::{
RedeemScript, RedeemScriptBuf, ScriptPubKey, ScriptPubKeyBuf, ScriptSig, ScriptSigBuf,
- TapScript, TapScriptBuf, WitnessScript, WitnessScriptBuf,
+ TapScript, TapScriptBuf, WitnessScript, WitnessScriptBuf, ScriptHashableTag,
+ Tag, RedeemScriptTag, ScriptPubKeyTag, ScriptSigTag, TapScriptTag, WitnessScriptTag,
},
- sequence::{self, Sequence}, // No `sequence` module outside of `primitives`.
- transaction::{OutPoint, Transaction, TxIn, TxOut, Txid, Version as TransactionVersion, Wtxid},
+ transaction::{Ntxid, OutPoint, Transaction, TxIn, TxOut, Txid, Version as TransactionVersion, Wtxid},
witness::Witness,
};
#[doc(inline)]
@@ -160,7 +160,9 @@ pub use units::{
block::{BlockHeight, BlockHeightInterval, BlockMtp, BlockMtpInterval},
fee_rate::FeeRate,
parse_int,
- time::{self, BlockTime},
+ result::{self, NumOpResult},
+ sequence::{self, Sequence},
+ time::{self, BlockTime, BlockTimeDecoder, BlockTimeDecoderError},
weight::Weight,
};
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.