What changed, and why it matters
This commit fixes missing or incorrect public re-exports of error types in the rust-bitcoin crate. It does not change how amounts, locktimes, or transactions are validated; it only changes which error types are visible to downstream users of the library. There is no indication this is a security fix.
No security action required. Treat as a normal API fix. Downstream users may want to verify that expected error types are now available under `bitcoin::amount` and `bitcoin::blockdata::locktime::relative`.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The patch updates bitcoin/src/blockdata/mod.rs and bitcoin/src/lib.rs to re-export additional error types from units::locktime::relative and units::amount (via self::error). It adds IncompatibleHeightError, IncompatibleTimeError, and several amount parsing errors such as BadPositionError, InputTooLargeError, InvalidCharacterError, MissingDenominationError, MissingDigitsError, PossiblyConfusingDenominationError, TooPreciseError, and UnknownDenominationError. The change is purely an API surface/export correction.
Changed components
bitcoin/src/blockdata/mod.rsbitcoin/src/lib.rspublic API re-exports for amount and locktime error typesInspect captured patch +11 / −5
diff --git a/bitcoin/src/blockdata/mod.rs b/bitcoin/src/blockdata/mod.rs
index 5d531ecf..5bec3c13 100644
--- a/bitcoin/src/blockdata/mod.rs
+++ b/bitcoin/src/blockdata/mod.rs
@@ -84,8 +84,9 @@ pub mod locktime {
pub use units::locktime::relative::{error, LockTime, NumberOf512Seconds, NumberOfBlocks};
#[doc(no_inline)]
pub use units::locktime::relative::{
- DisabledLockTimeError, InvalidHeightError, InvalidTimeError, IsSatisfiedByError,
- IsSatisfiedByHeightError, IsSatisfiedByTimeError, TimeOverflowError,
+ DisabledLockTimeError, IncompatibleHeightError, IncompatibleTimeError,
+ InvalidHeightError, InvalidTimeError, IsSatisfiedByError, IsSatisfiedByHeightError,
+ IsSatisfiedByTimeError, TimeOverflowError,
};
#[deprecated(since = "TBD", note = "use `NumberOfBlocks` instead")]
diff --git a/bitcoin/src/lib.rs b/bitcoin/src/lib.rs
index 811e4f32..82f2c622 100644
--- a/bitcoin/src/lib.rs
+++ b/bitcoin/src/lib.rs
@@ -241,9 +241,14 @@ pub mod amount {
#[doc(inline)]
pub use units::amount::{Amount, AmountDecoder, AmountEncoder, SignedAmount};
#[doc(no_inline)]
- pub use units::amount::{
- AmountDecoderError, Denomination, Display, OutOfRangeError, ParseAmountError,
- ParseDenominationError, ParseError,
+ pub use units::amount::{Denomination, Display};
+
+ #[doc(no_inline)]
+ pub use self::error::{
+ AmountDecoderError, BadPositionError, InputTooLargeError, InvalidCharacterError,
+ MissingDenominationError, MissingDigitsError, OutOfRangeError, ParseAmountError,
+ ParseDenominationError, ParseError, PossiblyConfusingDenominationError, TooPreciseError,
+ UnknownDenominationError,
};
/// Error types for bitcoin amounts.
Why this scored 18/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.