diff --git a/api/bitcoin/all-features.txt b/api/bitcoin/all-features.txt index 31b4d1e65..455670fc2 100644 --- a/api/bitcoin/all-features.txt +++ b/api/bitcoin/all-features.txt @@ -626,10 +626,6 @@ impl core::clone::Clone for bitcoin::consensus::validation::TxVerifyError impl core::clone::Clone for bitcoin::ecdsa::Error impl core::clone::Clone for bitcoin::ecdsa::SerializedSignature impl core::clone::Clone for bitcoin::ecdsa::Signature -impl core::clone::Clone for bitcoin::error::ContainsPrefixError -impl core::clone::Clone for bitcoin::error::MissingPrefixError -impl core::clone::Clone for bitcoin::error::PrefixedHexError -impl core::clone::Clone for bitcoin::error::UnprefixedHexError impl core::clone::Clone for bitcoin::key::FromSliceError impl core::clone::Clone for bitcoin::key::FromWifError impl core::clone::Clone for bitcoin::key::InvalidAddressVersionError @@ -828,10 +824,6 @@ impl core::cmp::Eq for bitcoin::consensus::validation::TxVerifyError impl core::cmp::Eq for bitcoin::ecdsa::Error impl core::cmp::Eq for bitcoin::ecdsa::SerializedSignature impl core::cmp::Eq for bitcoin::ecdsa::Signature -impl core::cmp::Eq for bitcoin::error::ContainsPrefixError -impl core::cmp::Eq for bitcoin::error::MissingPrefixError -impl core::cmp::Eq for bitcoin::error::PrefixedHexError -impl core::cmp::Eq for bitcoin::error::UnprefixedHexError impl core::cmp::Eq for bitcoin::key::FromSliceError impl core::cmp::Eq for bitcoin::key::FromWifError impl core::cmp::Eq for bitcoin::key::InvalidAddressVersionError @@ -1118,10 +1110,6 @@ impl core::cmp::PartialEq for bitcoin::consensus::validation::TxVerifyError impl core::cmp::PartialEq for bitcoin::ecdsa::Error impl core::cmp::PartialEq for bitcoin::ecdsa::SerializedSignature impl core::cmp::PartialEq for bitcoin::ecdsa::Signature -impl core::cmp::PartialEq for bitcoin::error::ContainsPrefixError -impl core::cmp::PartialEq for bitcoin::error::MissingPrefixError -impl core::cmp::PartialEq for bitcoin::error::PrefixedHexError -impl core::cmp::PartialEq for bitcoin::error::UnprefixedHexError impl core::cmp::PartialEq for bitcoin::key::FromSliceError impl core::cmp::PartialEq for bitcoin::key::FromWifError impl core::cmp::PartialEq for bitcoin::key::InvalidAddressVersionError @@ -1856,8 +1844,6 @@ impl core::convert::From for bitcoin::bl impl core::convert::From for bitcoin_hashes::sha256d::Hash impl core::convert::From for bitcoin::psbt::Error impl core::convert::From for bitcoin::consensus::validation::TxVerifyError -impl core::convert::From for bitcoin::error::UnprefixedHexError -impl core::convert::From for bitcoin::error::PrefixedHexError impl core::convert::From for bitcoin::key::ParsePublicKeyError impl core::convert::From for bitcoin::key::FromWifError impl core::convert::From for bitcoin::key::FromWifError @@ -1916,8 +1902,6 @@ impl core::convert::From for bitcoin::b impl core::convert::From for bitcoin::blockdata::locktime::relative::LockTime impl core::convert::From for bitcoin::blockdata::locktime::relative::LockTime impl core::convert::From for bitcoin::blockdata::script::witness_version::FromStrError -impl core::convert::From for bitcoin::error::PrefixedHexError -impl core::convert::From for bitcoin::error::UnprefixedHexError impl core::convert::From for bitcoin::address::error::FromScriptError impl core::convert::From for bitcoin::address::error::P2shError impl core::convert::From for bitcoin::address::error::ParseError @@ -2052,10 +2036,6 @@ impl core::error::Error for bitcoin::consensus::encode::FromHexError impl core::error::Error for bitcoin::consensus::validation::BitcoinconsensusError impl core::error::Error for bitcoin::consensus::validation::TxVerifyError impl core::error::Error for bitcoin::ecdsa::Error -impl core::error::Error for bitcoin::error::ContainsPrefixError -impl core::error::Error for bitcoin::error::MissingPrefixError -impl core::error::Error for bitcoin::error::PrefixedHexError -impl core::error::Error for bitcoin::error::UnprefixedHexError impl core::error::Error for bitcoin::key::FromSliceError impl core::error::Error for bitcoin::key::FromWifError impl core::error::Error for bitcoin::key::InvalidAddressVersionError @@ -2194,10 +2174,6 @@ impl core::fmt::Debug for bitcoin::consensus::validation::TxVerifyError impl core::fmt::Debug for bitcoin::ecdsa::Error impl core::fmt::Debug for bitcoin::ecdsa::SerializedSignature impl core::fmt::Debug for bitcoin::ecdsa::Signature -impl core::fmt::Debug for bitcoin::error::ContainsPrefixError -impl core::fmt::Debug for bitcoin::error::MissingPrefixError -impl core::fmt::Debug for bitcoin::error::PrefixedHexError -impl core::fmt::Debug for bitcoin::error::UnprefixedHexError impl core::fmt::Debug for bitcoin::key::FromSliceError impl core::fmt::Debug for bitcoin::key::FromWifError impl core::fmt::Debug for bitcoin::key::InvalidAddressVersionError @@ -2374,10 +2350,6 @@ impl core::fmt::Display for bitcoin::consensus::validation::TxVerifyError impl core::fmt::Display for bitcoin::ecdsa::Error impl core::fmt::Display for bitcoin::ecdsa::SerializedSignature impl core::fmt::Display for bitcoin::ecdsa::Signature -impl core::fmt::Display for bitcoin::error::ContainsPrefixError -impl core::fmt::Display for bitcoin::error::MissingPrefixError -impl core::fmt::Display for bitcoin::error::PrefixedHexError -impl core::fmt::Display for bitcoin::error::UnprefixedHexError impl core::fmt::Display for bitcoin::key::FromSliceError impl core::fmt::Display for bitcoin::key::FromWifError impl core::fmt::Display for bitcoin::key::InvalidAddressVersionError @@ -2797,10 +2769,6 @@ impl core::marker::Freeze for bitcoin::consensus::validation::TxVerifyError impl core::marker::Freeze for bitcoin::ecdsa::Error impl core::marker::Freeze for bitcoin::ecdsa::SerializedSignature impl core::marker::Freeze for bitcoin::ecdsa::Signature -impl core::marker::Freeze for bitcoin::error::ContainsPrefixError -impl core::marker::Freeze for bitcoin::error::MissingPrefixError -impl core::marker::Freeze for bitcoin::error::PrefixedHexError -impl core::marker::Freeze for bitcoin::error::UnprefixedHexError impl core::marker::Freeze for bitcoin::key::FromSliceError impl core::marker::Freeze for bitcoin::key::FromWifError impl core::marker::Freeze for bitcoin::key::InvalidAddressVersionError @@ -3011,10 +2979,6 @@ impl core::marker::Send for bitcoin::consensus::validation::TxVerifyError impl core::marker::Send for bitcoin::ecdsa::Error impl core::marker::Send for bitcoin::ecdsa::SerializedSignature impl core::marker::Send for bitcoin::ecdsa::Signature -impl core::marker::Send for bitcoin::error::ContainsPrefixError -impl core::marker::Send for bitcoin::error::MissingPrefixError -impl core::marker::Send for bitcoin::error::PrefixedHexError -impl core::marker::Send for bitcoin::error::UnprefixedHexError impl core::marker::Send for bitcoin::key::FromSliceError impl core::marker::Send for bitcoin::key::FromWifError impl core::marker::Send for bitcoin::key::InvalidAddressVersionError @@ -3215,10 +3179,6 @@ impl core::marker::StructuralPartialEq for bitcoin::consensus::validation::Bitco impl core::marker::StructuralPartialEq for bitcoin::consensus::validation::TxVerifyError impl core::marker::StructuralPartialEq for bitcoin::ecdsa::Error impl core::marker::StructuralPartialEq for bitcoin::ecdsa::Signature -impl core::marker::StructuralPartialEq for bitcoin::error::ContainsPrefixError -impl core::marker::StructuralPartialEq for bitcoin::error::MissingPrefixError -impl core::marker::StructuralPartialEq for bitcoin::error::PrefixedHexError -impl core::marker::StructuralPartialEq for bitcoin::error::UnprefixedHexError impl core::marker::StructuralPartialEq for bitcoin::key::FromSliceError impl core::marker::StructuralPartialEq for bitcoin::key::FromWifError impl core::marker::StructuralPartialEq for bitcoin::key::InvalidAddressVersionError @@ -3423,10 +3383,6 @@ impl core::marker::Sync for bitcoin::consensus::validation::TxVerifyError impl core::marker::Sync for bitcoin::ecdsa::Error impl core::marker::Sync for bitcoin::ecdsa::SerializedSignature impl core::marker::Sync for bitcoin::ecdsa::Signature -impl core::marker::Sync for bitcoin::error::ContainsPrefixError -impl core::marker::Sync for bitcoin::error::MissingPrefixError -impl core::marker::Sync for bitcoin::error::PrefixedHexError -impl core::marker::Sync for bitcoin::error::UnprefixedHexError impl core::marker::Sync for bitcoin::key::FromSliceError impl core::marker::Sync for bitcoin::key::FromWifError impl core::marker::Sync for bitcoin::key::InvalidAddressVersionError @@ -3637,10 +3593,6 @@ impl core::marker::Unpin for bitcoin::consensus::validation::TxVerifyError impl core::marker::Unpin for bitcoin::ecdsa::Error impl core::marker::Unpin for bitcoin::ecdsa::SerializedSignature impl core::marker::Unpin for bitcoin::ecdsa::Signature -impl core::marker::Unpin for bitcoin::error::ContainsPrefixError -impl core::marker::Unpin for bitcoin::error::MissingPrefixError -impl core::marker::Unpin for bitcoin::error::PrefixedHexError -impl core::marker::Unpin for bitcoin::error::UnprefixedHexError impl core::marker::Unpin for bitcoin::key::FromSliceError impl core::marker::Unpin for bitcoin::key::FromWifError impl core::marker::Unpin for bitcoin::key::InvalidAddressVersionError @@ -3880,10 +3832,6 @@ impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::consensus::validation: impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::ecdsa::Error impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::ecdsa::SerializedSignature impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::ecdsa::Signature -impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::error::ContainsPrefixError -impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::error::MissingPrefixError -impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::error::PrefixedHexError -impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::error::UnprefixedHexError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::key::FromSliceError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::key::FromWifError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::key::InvalidAddressVersionError @@ -4089,10 +4037,6 @@ impl core::panic::unwind_safe::UnwindSafe for bitcoin::consensus::validation::Tx impl core::panic::unwind_safe::UnwindSafe for bitcoin::ecdsa::Error impl core::panic::unwind_safe::UnwindSafe for bitcoin::ecdsa::SerializedSignature impl core::panic::unwind_safe::UnwindSafe for bitcoin::ecdsa::Signature -impl core::panic::unwind_safe::UnwindSafe for bitcoin::error::ContainsPrefixError -impl core::panic::unwind_safe::UnwindSafe for bitcoin::error::MissingPrefixError -impl core::panic::unwind_safe::UnwindSafe for bitcoin::error::PrefixedHexError -impl core::panic::unwind_safe::UnwindSafe for bitcoin::error::UnprefixedHexError impl core::panic::unwind_safe::UnwindSafe for bitcoin::key::FromSliceError impl core::panic::unwind_safe::UnwindSafe for bitcoin::key::FromWifError impl core::panic::unwind_safe::UnwindSafe for bitcoin::key::InvalidAddressVersionError @@ -5242,10 +5186,6 @@ pub bitcoin::ecdsa::Error::Secp256k1(secp256k1::Error) pub bitcoin::ecdsa::Error::SighashType(bitcoin::sighash::NonStandardSighashTypeError) pub bitcoin::ecdsa::Signature::sighash_type: bitcoin::EcdsaSighashType pub bitcoin::ecdsa::Signature::signature: secp256k1::ecdsa::Signature -pub bitcoin::error::PrefixedHexError::MissingPrefix(bitcoin::error::MissingPrefixError) -pub bitcoin::error::PrefixedHexError::ParseInt(bitcoin_units::parse::ParseIntError) -pub bitcoin::error::UnprefixedHexError::ContainsPrefix(bitcoin::error::ContainsPrefixError) -pub bitcoin::error::UnprefixedHexError::ParseInt(bitcoin_units::parse::ParseIntError) pub bitcoin::key::FromSliceError::InvalidKeyPrefix(u8) pub bitcoin::key::FromSliceError::InvalidLength(usize) pub bitcoin::key::FromSliceError::Secp256k1(secp256k1::Error) @@ -6424,8 +6364,6 @@ pub enum bitcoin::consensus::DecodeError pub enum bitcoin::consensus::encode::FromHexError pub enum bitcoin::consensus::serde::hex::Lower pub enum bitcoin::consensus::serde::hex::Upper -pub enum bitcoin::error::PrefixedHexError -pub enum bitcoin::error::UnprefixedHexError pub enum bitcoin::key::ParseCompressedPublicKeyError pub enum bitcoin::key::ParsePublicKeyError pub enum bitcoin::locktime::absolute::LockTime @@ -7774,10 +7712,10 @@ pub fn bitcoin::blockdata::locktime::absolute::LockTime::from(h: bitcoin_units:: pub fn bitcoin::blockdata::locktime::absolute::LockTime::from(t: bitcoin_units::locktime::absolute::Time) -> Self pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_consensus(n: u32) -> Self pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_height(n: u32) -> core::result::Result -pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_hex(s: &str) -> core::result::Result pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_str(s: &str) -> core::result::Result pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_time(n: u32) -> core::result::Result -pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::blockdata::locktime::absolute::LockTime::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::blockdata::locktime::absolute::LockTime::is_implied_by(&self, other: bitcoin::blockdata::locktime::absolute::LockTime) -> bool pub fn bitcoin::blockdata::locktime::absolute::LockTime::is_satisfied_by(&self, height: bitcoin_units::locktime::absolute::Height, time: bitcoin_units::locktime::absolute::Time) -> bool @@ -8370,11 +8308,11 @@ pub fn bitcoin::blockdata::transaction::Sequence::from(lt: bitcoin::blockdata::l pub fn bitcoin::blockdata::transaction::Sequence::from_512_second_intervals(intervals: u16) -> Self pub fn bitcoin::blockdata::transaction::Sequence::from_consensus(n: u32) -> Self pub fn bitcoin::blockdata::transaction::Sequence::from_height(height: u16) -> Self -pub fn bitcoin::blockdata::transaction::Sequence::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::blockdata::transaction::Sequence::from_hex(s: &str) -> core::result::Result pub fn bitcoin::blockdata::transaction::Sequence::from_seconds_ceil(seconds: u32) -> core::result::Result pub fn bitcoin::blockdata::transaction::Sequence::from_seconds_floor(seconds: u32) -> core::result::Result pub fn bitcoin::blockdata::transaction::Sequence::from_str(s: &str) -> core::result::Result -pub fn bitcoin::blockdata::transaction::Sequence::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::blockdata::transaction::Sequence::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::blockdata::transaction::Sequence::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::blockdata::transaction::Sequence::is_final(&self) -> bool pub fn bitcoin::blockdata::transaction::Sequence::is_height_locked(&self) -> bool @@ -8718,24 +8656,6 @@ pub fn bitcoin::ecdsa::Signature::serialize<__S>(&self, __serializer: __S) -> co pub fn bitcoin::ecdsa::Signature::serialize_to_writer(&self, writer: &mut W) -> core::result::Result<(), bitcoin_io::error::Error> pub fn bitcoin::ecdsa::Signature::sighash_all(signature: secp256k1::ecdsa::Signature) -> bitcoin::ecdsa::Signature pub fn bitcoin::ecdsa::Signature::to_vec(self) -> alloc::vec::Vec -pub fn bitcoin::error::ContainsPrefixError::clone(&self) -> bitcoin::error::ContainsPrefixError -pub fn bitcoin::error::ContainsPrefixError::eq(&self, other: &bitcoin::error::ContainsPrefixError) -> bool -pub fn bitcoin::error::ContainsPrefixError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn bitcoin::error::MissingPrefixError::clone(&self) -> bitcoin::error::MissingPrefixError -pub fn bitcoin::error::MissingPrefixError::eq(&self, other: &bitcoin::error::MissingPrefixError) -> bool -pub fn bitcoin::error::MissingPrefixError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn bitcoin::error::PrefixedHexError::clone(&self) -> bitcoin::error::PrefixedHexError -pub fn bitcoin::error::PrefixedHexError::eq(&self, other: &bitcoin::error::PrefixedHexError) -> bool -pub fn bitcoin::error::PrefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn bitcoin::error::PrefixedHexError::from(e: bitcoin::error::MissingPrefixError) -> Self -pub fn bitcoin::error::PrefixedHexError::from(e: bitcoin_units::parse::ParseIntError) -> Self -pub fn bitcoin::error::PrefixedHexError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> -pub fn bitcoin::error::UnprefixedHexError::clone(&self) -> bitcoin::error::UnprefixedHexError -pub fn bitcoin::error::UnprefixedHexError::eq(&self, other: &bitcoin::error::UnprefixedHexError) -> bool -pub fn bitcoin::error::UnprefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn bitcoin::error::UnprefixedHexError::from(e: bitcoin::error::ContainsPrefixError) -> Self -pub fn bitcoin::error::UnprefixedHexError::from(e: bitcoin_units::parse::ParseIntError) -> Self -pub fn bitcoin::error::UnprefixedHexError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> pub fn bitcoin::key::FromSliceError::clone(&self) -> bitcoin::key::FromSliceError pub fn bitcoin::key::FromSliceError::eq(&self, other: &bitcoin::key::FromSliceError) -> bool pub fn bitcoin::key::FromSliceError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result @@ -9111,9 +9031,9 @@ pub fn bitcoin::pow::CompactTarget::eq(&self, other: &bitcoin::pow::CompactTarge pub fn bitcoin::pow::CompactTarget::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::pow::CompactTarget::from_consensus(bits: u32) -> Self pub fn bitcoin::pow::CompactTarget::from_header_difficulty_adjustment(last_epoch_boundary: bitcoin::blockdata::block::Header, current: bitcoin::blockdata::block::Header, params: impl core::convert::AsRef) -> bitcoin::pow::CompactTarget -pub fn bitcoin::pow::CompactTarget::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::CompactTarget::from_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::CompactTarget::from_next_work_required(last: bitcoin::pow::CompactTarget, timespan: u64, params: impl core::convert::AsRef) -> bitcoin::pow::CompactTarget -pub fn bitcoin::pow::CompactTarget::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::CompactTarget::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::CompactTarget::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::pow::CompactTarget::partial_cmp(&self, other: &bitcoin::pow::CompactTarget) -> core::option::Option pub fn bitcoin::pow::CompactTarget::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde::ser::Serializer>::Ok, <__S as serde::ser::Serializer>::Error> where __S: serde::ser::Serializer @@ -9128,9 +9048,9 @@ pub fn bitcoin::pow::Target::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> cor pub fn bitcoin::pow::Target::from(c: bitcoin::pow::CompactTarget) -> Self pub fn bitcoin::pow::Target::from_be_bytes(bytes: [u8; 32]) -> bitcoin::pow::Target pub fn bitcoin::pow::Target::from_compact(c: bitcoin::pow::CompactTarget) -> bitcoin::pow::Target -pub fn bitcoin::pow::Target::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::Target::from_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::Target::from_le_bytes(bytes: [u8; 32]) -> bitcoin::pow::Target -pub fn bitcoin::pow::Target::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::Target::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::Target::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::pow::Target::is_met_by(&self, hash: bitcoin::blockdata::block::BlockHash) -> bool pub fn bitcoin::pow::Target::max_difficulty_transition_threshold(&self) -> Self @@ -9151,9 +9071,9 @@ pub fn bitcoin::pow::Work::deserialize<__D>(__deserializer: __D) -> core::result pub fn bitcoin::pow::Work::eq(&self, other: &bitcoin::pow::Work) -> bool pub fn bitcoin::pow::Work::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::pow::Work::from_be_bytes(bytes: [u8; 32]) -> bitcoin::pow::Work -pub fn bitcoin::pow::Work::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::Work::from_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::Work::from_le_bytes(bytes: [u8; 32]) -> bitcoin::pow::Work -pub fn bitcoin::pow::Work::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::Work::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::Work::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::pow::Work::log2(self) -> f64 pub fn bitcoin::pow::Work::partial_cmp(&self, other: &bitcoin::pow::Work) -> core::option::Option @@ -9977,7 +9897,6 @@ pub mod bitcoin::consensus::serde::hex pub mod bitcoin::consensus::validation pub mod bitcoin::constants pub mod bitcoin::ecdsa -pub mod bitcoin::error pub mod bitcoin::hash_types pub mod bitcoin::key pub mod bitcoin::locktime @@ -10158,8 +10077,6 @@ pub struct bitcoin::consensus::serde::hex::Encoder> -pub use bitcoin::error::ParseIntError pub use bitcoin::key::Keypair pub use bitcoin::key::Parity pub use bitcoin::key::Secp256k1 diff --git a/api/bitcoin/default-features.txt b/api/bitcoin/default-features.txt index 5e7768fb8..85df583a7 100644 --- a/api/bitcoin/default-features.txt +++ b/api/bitcoin/default-features.txt @@ -594,10 +594,6 @@ impl core::clone::Clone for bitcoin::consensus::params::Params impl core::clone::Clone for bitcoin::ecdsa::Error impl core::clone::Clone for bitcoin::ecdsa::SerializedSignature impl core::clone::Clone for bitcoin::ecdsa::Signature -impl core::clone::Clone for bitcoin::error::ContainsPrefixError -impl core::clone::Clone for bitcoin::error::MissingPrefixError -impl core::clone::Clone for bitcoin::error::PrefixedHexError -impl core::clone::Clone for bitcoin::error::UnprefixedHexError impl core::clone::Clone for bitcoin::key::FromSliceError impl core::clone::Clone for bitcoin::key::FromWifError impl core::clone::Clone for bitcoin::key::InvalidAddressVersionError @@ -792,10 +788,6 @@ impl core::cmp::Eq for bitcoin::consensus::encode::VarInt impl core::cmp::Eq for bitcoin::ecdsa::Error impl core::cmp::Eq for bitcoin::ecdsa::SerializedSignature impl core::cmp::Eq for bitcoin::ecdsa::Signature -impl core::cmp::Eq for bitcoin::error::ContainsPrefixError -impl core::cmp::Eq for bitcoin::error::MissingPrefixError -impl core::cmp::Eq for bitcoin::error::PrefixedHexError -impl core::cmp::Eq for bitcoin::error::UnprefixedHexError impl core::cmp::Eq for bitcoin::key::FromSliceError impl core::cmp::Eq for bitcoin::key::FromWifError impl core::cmp::Eq for bitcoin::key::InvalidAddressVersionError @@ -1078,10 +1070,6 @@ impl core::cmp::PartialEq for bitcoin::consensus::encode::VarInt impl core::cmp::PartialEq for bitcoin::ecdsa::Error impl core::cmp::PartialEq for bitcoin::ecdsa::SerializedSignature impl core::cmp::PartialEq for bitcoin::ecdsa::Signature -impl core::cmp::PartialEq for bitcoin::error::ContainsPrefixError -impl core::cmp::PartialEq for bitcoin::error::MissingPrefixError -impl core::cmp::PartialEq for bitcoin::error::PrefixedHexError -impl core::cmp::PartialEq for bitcoin::error::UnprefixedHexError impl core::cmp::PartialEq for bitcoin::key::FromSliceError impl core::cmp::PartialEq for bitcoin::key::FromWifError impl core::cmp::PartialEq for bitcoin::key::InvalidAddressVersionError @@ -1815,8 +1803,6 @@ impl core::convert::From for bitcoin_hash impl core::convert::From for bitcoin::blockdata::block::WitnessMerkleNode impl core::convert::From for bitcoin_hashes::sha256d::Hash impl core::convert::From for bitcoin::psbt::Error -impl core::convert::From for bitcoin::error::UnprefixedHexError -impl core::convert::From for bitcoin::error::PrefixedHexError impl core::convert::From for bitcoin::key::ParsePublicKeyError impl core::convert::From for bitcoin::key::FromWifError impl core::convert::From for bitcoin::key::FromWifError @@ -1875,8 +1861,6 @@ impl core::convert::From for bitcoin::b impl core::convert::From for bitcoin::blockdata::locktime::relative::LockTime impl core::convert::From for bitcoin::blockdata::locktime::relative::LockTime impl core::convert::From for bitcoin::blockdata::script::witness_version::FromStrError -impl core::convert::From for bitcoin::error::PrefixedHexError -impl core::convert::From for bitcoin::error::UnprefixedHexError impl core::convert::From for bitcoin::address::error::FromScriptError impl core::convert::From for bitcoin::address::error::P2shError impl core::convert::From for bitcoin::address::error::ParseError @@ -2007,10 +1991,6 @@ impl core::error::Error for bitcoin::blockdata::transaction::ParseOutPointError impl core::error::Error for bitcoin::consensus::encode::Error impl core::error::Error for bitcoin::consensus::encode::FromHexError impl core::error::Error for bitcoin::ecdsa::Error -impl core::error::Error for bitcoin::error::ContainsPrefixError -impl core::error::Error for bitcoin::error::MissingPrefixError -impl core::error::Error for bitcoin::error::PrefixedHexError -impl core::error::Error for bitcoin::error::UnprefixedHexError impl core::error::Error for bitcoin::key::FromSliceError impl core::error::Error for bitcoin::key::FromWifError impl core::error::Error for bitcoin::key::InvalidAddressVersionError @@ -2144,10 +2124,6 @@ impl core::fmt::Debug for bitcoin::consensus::params::Params impl core::fmt::Debug for bitcoin::ecdsa::Error impl core::fmt::Debug for bitcoin::ecdsa::SerializedSignature impl core::fmt::Debug for bitcoin::ecdsa::Signature -impl core::fmt::Debug for bitcoin::error::ContainsPrefixError -impl core::fmt::Debug for bitcoin::error::MissingPrefixError -impl core::fmt::Debug for bitcoin::error::PrefixedHexError -impl core::fmt::Debug for bitcoin::error::UnprefixedHexError impl core::fmt::Debug for bitcoin::key::FromSliceError impl core::fmt::Debug for bitcoin::key::FromWifError impl core::fmt::Debug for bitcoin::key::InvalidAddressVersionError @@ -2321,10 +2297,6 @@ impl core::fmt::Display for bitcoin::consensus::encode::FromHexError impl core::fmt::Display for bitcoin::ecdsa::Error impl core::fmt::Display for bitcoin::ecdsa::SerializedSignature impl core::fmt::Display for bitcoin::ecdsa::Signature -impl core::fmt::Display for bitcoin::error::ContainsPrefixError -impl core::fmt::Display for bitcoin::error::MissingPrefixError -impl core::fmt::Display for bitcoin::error::PrefixedHexError -impl core::fmt::Display for bitcoin::error::UnprefixedHexError impl core::fmt::Display for bitcoin::key::FromSliceError impl core::fmt::Display for bitcoin::key::FromWifError impl core::fmt::Display for bitcoin::key::InvalidAddressVersionError @@ -2735,10 +2707,6 @@ impl core::marker::Freeze for bitcoin::consensus::params::Params impl core::marker::Freeze for bitcoin::ecdsa::Error impl core::marker::Freeze for bitcoin::ecdsa::SerializedSignature impl core::marker::Freeze for bitcoin::ecdsa::Signature -impl core::marker::Freeze for bitcoin::error::ContainsPrefixError -impl core::marker::Freeze for bitcoin::error::MissingPrefixError -impl core::marker::Freeze for bitcoin::error::PrefixedHexError -impl core::marker::Freeze for bitcoin::error::UnprefixedHexError impl core::marker::Freeze for bitcoin::key::FromSliceError impl core::marker::Freeze for bitcoin::key::FromWifError impl core::marker::Freeze for bitcoin::key::InvalidAddressVersionError @@ -2942,10 +2910,6 @@ impl core::marker::Send for bitcoin::consensus::params::Params impl core::marker::Send for bitcoin::ecdsa::Error impl core::marker::Send for bitcoin::ecdsa::SerializedSignature impl core::marker::Send for bitcoin::ecdsa::Signature -impl core::marker::Send for bitcoin::error::ContainsPrefixError -impl core::marker::Send for bitcoin::error::MissingPrefixError -impl core::marker::Send for bitcoin::error::PrefixedHexError -impl core::marker::Send for bitcoin::error::UnprefixedHexError impl core::marker::Send for bitcoin::key::FromSliceError impl core::marker::Send for bitcoin::key::FromWifError impl core::marker::Send for bitcoin::key::InvalidAddressVersionError @@ -3141,10 +3105,6 @@ impl core::marker::StructuralPartialEq for bitcoin::consensus::encode::CheckedDa impl core::marker::StructuralPartialEq for bitcoin::consensus::encode::VarInt impl core::marker::StructuralPartialEq for bitcoin::ecdsa::Error impl core::marker::StructuralPartialEq for bitcoin::ecdsa::Signature -impl core::marker::StructuralPartialEq for bitcoin::error::ContainsPrefixError -impl core::marker::StructuralPartialEq for bitcoin::error::MissingPrefixError -impl core::marker::StructuralPartialEq for bitcoin::error::PrefixedHexError -impl core::marker::StructuralPartialEq for bitcoin::error::UnprefixedHexError impl core::marker::StructuralPartialEq for bitcoin::key::FromSliceError impl core::marker::StructuralPartialEq for bitcoin::key::FromWifError impl core::marker::StructuralPartialEq for bitcoin::key::InvalidAddressVersionError @@ -3343,10 +3303,6 @@ impl core::marker::Sync for bitcoin::consensus::params::Params impl core::marker::Sync for bitcoin::ecdsa::Error impl core::marker::Sync for bitcoin::ecdsa::SerializedSignature impl core::marker::Sync for bitcoin::ecdsa::Signature -impl core::marker::Sync for bitcoin::error::ContainsPrefixError -impl core::marker::Sync for bitcoin::error::MissingPrefixError -impl core::marker::Sync for bitcoin::error::PrefixedHexError -impl core::marker::Sync for bitcoin::error::UnprefixedHexError impl core::marker::Sync for bitcoin::key::FromSliceError impl core::marker::Sync for bitcoin::key::FromWifError impl core::marker::Sync for bitcoin::key::InvalidAddressVersionError @@ -3550,10 +3506,6 @@ impl core::marker::Unpin for bitcoin::consensus::params::Params impl core::marker::Unpin for bitcoin::ecdsa::Error impl core::marker::Unpin for bitcoin::ecdsa::SerializedSignature impl core::marker::Unpin for bitcoin::ecdsa::Signature -impl core::marker::Unpin for bitcoin::error::ContainsPrefixError -impl core::marker::Unpin for bitcoin::error::MissingPrefixError -impl core::marker::Unpin for bitcoin::error::PrefixedHexError -impl core::marker::Unpin for bitcoin::error::UnprefixedHexError impl core::marker::Unpin for bitcoin::key::FromSliceError impl core::marker::Unpin for bitcoin::key::FromWifError impl core::marker::Unpin for bitcoin::key::InvalidAddressVersionError @@ -3786,10 +3738,6 @@ impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::consensus::params::Par impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::ecdsa::Error impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::ecdsa::SerializedSignature impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::ecdsa::Signature -impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::error::ContainsPrefixError -impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::error::MissingPrefixError -impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::error::PrefixedHexError -impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::error::UnprefixedHexError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::key::FromSliceError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::key::FromWifError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::key::InvalidAddressVersionError @@ -3989,10 +3937,6 @@ impl core::panic::unwind_safe::UnwindSafe for bitcoin::consensus::params::Params impl core::panic::unwind_safe::UnwindSafe for bitcoin::ecdsa::Error impl core::panic::unwind_safe::UnwindSafe for bitcoin::ecdsa::SerializedSignature impl core::panic::unwind_safe::UnwindSafe for bitcoin::ecdsa::Signature -impl core::panic::unwind_safe::UnwindSafe for bitcoin::error::ContainsPrefixError -impl core::panic::unwind_safe::UnwindSafe for bitcoin::error::MissingPrefixError -impl core::panic::unwind_safe::UnwindSafe for bitcoin::error::PrefixedHexError -impl core::panic::unwind_safe::UnwindSafe for bitcoin::error::UnprefixedHexError impl core::panic::unwind_safe::UnwindSafe for bitcoin::key::FromSliceError impl core::panic::unwind_safe::UnwindSafe for bitcoin::key::FromWifError impl core::panic::unwind_safe::UnwindSafe for bitcoin::key::InvalidAddressVersionError @@ -4964,10 +4908,6 @@ pub bitcoin::ecdsa::Error::Secp256k1(secp256k1::Error) pub bitcoin::ecdsa::Error::SighashType(bitcoin::sighash::NonStandardSighashTypeError) pub bitcoin::ecdsa::Signature::sighash_type: bitcoin::EcdsaSighashType pub bitcoin::ecdsa::Signature::signature: secp256k1::ecdsa::Signature -pub bitcoin::error::PrefixedHexError::MissingPrefix(bitcoin::error::MissingPrefixError) -pub bitcoin::error::PrefixedHexError::ParseInt(bitcoin_units::parse::ParseIntError) -pub bitcoin::error::UnprefixedHexError::ContainsPrefix(bitcoin::error::ContainsPrefixError) -pub bitcoin::error::UnprefixedHexError::ParseInt(bitcoin_units::parse::ParseIntError) pub bitcoin::key::FromSliceError::InvalidKeyPrefix(u8) pub bitcoin::key::FromSliceError::InvalidLength(usize) pub bitcoin::key::FromSliceError::Secp256k1(secp256k1::Error) @@ -6121,8 +6061,6 @@ pub enum bitcoin::blockdata::opcodes::ClassifyContext pub enum bitcoin::blockdata::script::Instruction<'a> pub enum bitcoin::consensus::DecodeError pub enum bitcoin::consensus::encode::FromHexError -pub enum bitcoin::error::PrefixedHexError -pub enum bitcoin::error::UnprefixedHexError pub enum bitcoin::key::ParseCompressedPublicKeyError pub enum bitcoin::key::ParsePublicKeyError pub enum bitcoin::locktime::absolute::LockTime @@ -7395,10 +7333,10 @@ pub fn bitcoin::blockdata::locktime::absolute::LockTime::from(h: bitcoin_units:: pub fn bitcoin::blockdata::locktime::absolute::LockTime::from(t: bitcoin_units::locktime::absolute::Time) -> Self pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_consensus(n: u32) -> Self pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_height(n: u32) -> core::result::Result -pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_hex(s: &str) -> core::result::Result pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_str(s: &str) -> core::result::Result pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_time(n: u32) -> core::result::Result -pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::blockdata::locktime::absolute::LockTime::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::blockdata::locktime::absolute::LockTime::is_implied_by(&self, other: bitcoin::blockdata::locktime::absolute::LockTime) -> bool pub fn bitcoin::blockdata::locktime::absolute::LockTime::is_satisfied_by(&self, height: bitcoin_units::locktime::absolute::Height, time: bitcoin_units::locktime::absolute::Time) -> bool @@ -7972,11 +7910,11 @@ pub fn bitcoin::blockdata::transaction::Sequence::from(lt: bitcoin::blockdata::l pub fn bitcoin::blockdata::transaction::Sequence::from_512_second_intervals(intervals: u16) -> Self pub fn bitcoin::blockdata::transaction::Sequence::from_consensus(n: u32) -> Self pub fn bitcoin::blockdata::transaction::Sequence::from_height(height: u16) -> Self -pub fn bitcoin::blockdata::transaction::Sequence::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::blockdata::transaction::Sequence::from_hex(s: &str) -> core::result::Result pub fn bitcoin::blockdata::transaction::Sequence::from_seconds_ceil(seconds: u32) -> core::result::Result pub fn bitcoin::blockdata::transaction::Sequence::from_seconds_floor(seconds: u32) -> core::result::Result pub fn bitcoin::blockdata::transaction::Sequence::from_str(s: &str) -> core::result::Result -pub fn bitcoin::blockdata::transaction::Sequence::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::blockdata::transaction::Sequence::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::blockdata::transaction::Sequence::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::blockdata::transaction::Sequence::is_final(&self) -> bool pub fn bitcoin::blockdata::transaction::Sequence::is_height_locked(&self) -> bool @@ -8260,24 +8198,6 @@ pub fn bitcoin::ecdsa::Signature::serialize(&self) -> bitcoin::ecdsa::Serialized pub fn bitcoin::ecdsa::Signature::serialize_to_writer(&self, writer: &mut W) -> core::result::Result<(), bitcoin_io::error::Error> pub fn bitcoin::ecdsa::Signature::sighash_all(signature: secp256k1::ecdsa::Signature) -> bitcoin::ecdsa::Signature pub fn bitcoin::ecdsa::Signature::to_vec(self) -> alloc::vec::Vec -pub fn bitcoin::error::ContainsPrefixError::clone(&self) -> bitcoin::error::ContainsPrefixError -pub fn bitcoin::error::ContainsPrefixError::eq(&self, other: &bitcoin::error::ContainsPrefixError) -> bool -pub fn bitcoin::error::ContainsPrefixError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn bitcoin::error::MissingPrefixError::clone(&self) -> bitcoin::error::MissingPrefixError -pub fn bitcoin::error::MissingPrefixError::eq(&self, other: &bitcoin::error::MissingPrefixError) -> bool -pub fn bitcoin::error::MissingPrefixError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn bitcoin::error::PrefixedHexError::clone(&self) -> bitcoin::error::PrefixedHexError -pub fn bitcoin::error::PrefixedHexError::eq(&self, other: &bitcoin::error::PrefixedHexError) -> bool -pub fn bitcoin::error::PrefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn bitcoin::error::PrefixedHexError::from(e: bitcoin::error::MissingPrefixError) -> Self -pub fn bitcoin::error::PrefixedHexError::from(e: bitcoin_units::parse::ParseIntError) -> Self -pub fn bitcoin::error::PrefixedHexError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> -pub fn bitcoin::error::UnprefixedHexError::clone(&self) -> bitcoin::error::UnprefixedHexError -pub fn bitcoin::error::UnprefixedHexError::eq(&self, other: &bitcoin::error::UnprefixedHexError) -> bool -pub fn bitcoin::error::UnprefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn bitcoin::error::UnprefixedHexError::from(e: bitcoin::error::ContainsPrefixError) -> Self -pub fn bitcoin::error::UnprefixedHexError::from(e: bitcoin_units::parse::ParseIntError) -> Self -pub fn bitcoin::error::UnprefixedHexError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> pub fn bitcoin::key::FromSliceError::clone(&self) -> bitcoin::key::FromSliceError pub fn bitcoin::key::FromSliceError::eq(&self, other: &bitcoin::key::FromSliceError) -> bool pub fn bitcoin::key::FromSliceError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result @@ -8644,9 +8564,9 @@ pub fn bitcoin::pow::CompactTarget::eq(&self, other: &bitcoin::pow::CompactTarge pub fn bitcoin::pow::CompactTarget::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::pow::CompactTarget::from_consensus(bits: u32) -> Self pub fn bitcoin::pow::CompactTarget::from_header_difficulty_adjustment(last_epoch_boundary: bitcoin::blockdata::block::Header, current: bitcoin::blockdata::block::Header, params: impl core::convert::AsRef) -> bitcoin::pow::CompactTarget -pub fn bitcoin::pow::CompactTarget::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::CompactTarget::from_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::CompactTarget::from_next_work_required(last: bitcoin::pow::CompactTarget, timespan: u64, params: impl core::convert::AsRef) -> bitcoin::pow::CompactTarget -pub fn bitcoin::pow::CompactTarget::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::CompactTarget::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::CompactTarget::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::pow::CompactTarget::partial_cmp(&self, other: &bitcoin::pow::CompactTarget) -> core::option::Option pub fn bitcoin::pow::CompactTarget::to_consensus(self) -> u32 @@ -8659,9 +8579,9 @@ pub fn bitcoin::pow::Target::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> cor pub fn bitcoin::pow::Target::from(c: bitcoin::pow::CompactTarget) -> Self pub fn bitcoin::pow::Target::from_be_bytes(bytes: [u8; 32]) -> bitcoin::pow::Target pub fn bitcoin::pow::Target::from_compact(c: bitcoin::pow::CompactTarget) -> bitcoin::pow::Target -pub fn bitcoin::pow::Target::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::Target::from_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::Target::from_le_bytes(bytes: [u8; 32]) -> bitcoin::pow::Target -pub fn bitcoin::pow::Target::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::Target::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::Target::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::pow::Target::is_met_by(&self, hash: bitcoin::blockdata::block::BlockHash) -> bool pub fn bitcoin::pow::Target::max_difficulty_transition_threshold(&self) -> Self @@ -8680,9 +8600,9 @@ pub fn bitcoin::pow::Work::cmp(&self, other: &bitcoin::pow::Work) -> core::cmp:: pub fn bitcoin::pow::Work::eq(&self, other: &bitcoin::pow::Work) -> bool pub fn bitcoin::pow::Work::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::pow::Work::from_be_bytes(bytes: [u8; 32]) -> bitcoin::pow::Work -pub fn bitcoin::pow::Work::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::Work::from_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::Work::from_le_bytes(bytes: [u8; 32]) -> bitcoin::pow::Work -pub fn bitcoin::pow::Work::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::Work::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::Work::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::pow::Work::log2(self) -> f64 pub fn bitcoin::pow::Work::partial_cmp(&self, other: &bitcoin::pow::Work) -> core::option::Option @@ -9458,7 +9378,6 @@ pub mod bitcoin::consensus::encode pub mod bitcoin::consensus::params pub mod bitcoin::constants pub mod bitcoin::ecdsa -pub mod bitcoin::error pub mod bitcoin::hash_types pub mod bitcoin::key pub mod bitcoin::locktime @@ -9632,8 +9551,6 @@ pub struct bitcoin::consensus::encode::VarInt(pub u64) pub struct bitcoin::constants::ChainHash(_) pub struct bitcoin::ecdsa::SerializedSignature pub struct bitcoin::ecdsa::Signature -pub struct bitcoin::error::ContainsPrefixError -pub struct bitcoin::error::MissingPrefixError pub struct bitcoin::hash_types::BlockHash(_) pub struct bitcoin::hash_types::FilterHash(_) pub struct bitcoin::hash_types::FilterHeader(_) @@ -9981,7 +9898,6 @@ pub use bitcoin::blockdata::locktime::relative::Height pub use bitcoin::blockdata::locktime::relative::Time pub use bitcoin::blockdata::locktime::relative::TimeOverflowError pub use bitcoin::blockdata::weight::<> -pub use bitcoin::error::ParseIntError pub use bitcoin::key::Keypair pub use bitcoin::key::Parity pub use bitcoin::key::Secp256k1 diff --git a/api/bitcoin/no-features.txt b/api/bitcoin/no-features.txt index 6ed164072..aa11783f8 100644 --- a/api/bitcoin/no-features.txt +++ b/api/bitcoin/no-features.txt @@ -525,10 +525,6 @@ impl core::clone::Clone for bitcoin::consensus::params::Params impl core::clone::Clone for bitcoin::ecdsa::Error impl core::clone::Clone for bitcoin::ecdsa::SerializedSignature impl core::clone::Clone for bitcoin::ecdsa::Signature -impl core::clone::Clone for bitcoin::error::ContainsPrefixError -impl core::clone::Clone for bitcoin::error::MissingPrefixError -impl core::clone::Clone for bitcoin::error::PrefixedHexError -impl core::clone::Clone for bitcoin::error::UnprefixedHexError impl core::clone::Clone for bitcoin::key::FromSliceError impl core::clone::Clone for bitcoin::key::FromWifError impl core::clone::Clone for bitcoin::key::InvalidAddressVersionError @@ -695,10 +691,6 @@ impl core::cmp::Eq for bitcoin::consensus::encode::VarInt impl core::cmp::Eq for bitcoin::ecdsa::Error impl core::cmp::Eq for bitcoin::ecdsa::SerializedSignature impl core::cmp::Eq for bitcoin::ecdsa::Signature -impl core::cmp::Eq for bitcoin::error::ContainsPrefixError -impl core::cmp::Eq for bitcoin::error::MissingPrefixError -impl core::cmp::Eq for bitcoin::error::PrefixedHexError -impl core::cmp::Eq for bitcoin::error::UnprefixedHexError impl core::cmp::Eq for bitcoin::key::FromSliceError impl core::cmp::Eq for bitcoin::key::FromWifError impl core::cmp::Eq for bitcoin::key::InvalidAddressVersionError @@ -948,10 +940,6 @@ impl core::cmp::PartialEq for bitcoin::consensus::encode::VarInt impl core::cmp::PartialEq for bitcoin::ecdsa::Error impl core::cmp::PartialEq for bitcoin::ecdsa::SerializedSignature impl core::cmp::PartialEq for bitcoin::ecdsa::Signature -impl core::cmp::PartialEq for bitcoin::error::ContainsPrefixError -impl core::cmp::PartialEq for bitcoin::error::MissingPrefixError -impl core::cmp::PartialEq for bitcoin::error::PrefixedHexError -impl core::cmp::PartialEq for bitcoin::error::UnprefixedHexError impl core::cmp::PartialEq for bitcoin::key::FromSliceError impl core::cmp::PartialEq for bitcoin::key::FromWifError impl core::cmp::PartialEq for bitcoin::key::InvalidAddressVersionError @@ -1651,8 +1639,6 @@ impl core::convert::From for bitcoin_hash impl core::convert::From for bitcoin::blockdata::block::WitnessMerkleNode impl core::convert::From for bitcoin_hashes::sha256d::Hash impl core::convert::From for bitcoin::psbt::Error -impl core::convert::From for bitcoin::error::UnprefixedHexError -impl core::convert::From for bitcoin::error::PrefixedHexError impl core::convert::From for bitcoin::key::ParsePublicKeyError impl core::convert::From for bitcoin::key::FromWifError impl core::convert::From for bitcoin::key::FromWifError @@ -1711,8 +1697,6 @@ impl core::convert::From for bitcoin::b impl core::convert::From for bitcoin::blockdata::locktime::relative::LockTime impl core::convert::From for bitcoin::blockdata::locktime::relative::LockTime impl core::convert::From for bitcoin::blockdata::script::witness_version::FromStrError -impl core::convert::From for bitcoin::error::PrefixedHexError -impl core::convert::From for bitcoin::error::UnprefixedHexError impl core::convert::From for bitcoin::address::error::FromScriptError impl core::convert::From for bitcoin::address::error::P2shError impl core::convert::From for bitcoin::address::error::ParseError @@ -1900,10 +1884,6 @@ impl core::fmt::Debug for bitcoin::consensus::params::Params impl core::fmt::Debug for bitcoin::ecdsa::Error impl core::fmt::Debug for bitcoin::ecdsa::SerializedSignature impl core::fmt::Debug for bitcoin::ecdsa::Signature -impl core::fmt::Debug for bitcoin::error::ContainsPrefixError -impl core::fmt::Debug for bitcoin::error::MissingPrefixError -impl core::fmt::Debug for bitcoin::error::PrefixedHexError -impl core::fmt::Debug for bitcoin::error::UnprefixedHexError impl core::fmt::Debug for bitcoin::key::FromSliceError impl core::fmt::Debug for bitcoin::key::FromWifError impl core::fmt::Debug for bitcoin::key::InvalidAddressVersionError @@ -2049,10 +2029,6 @@ impl core::fmt::Display for bitcoin::consensus::encode::FromHexError impl core::fmt::Display for bitcoin::ecdsa::Error impl core::fmt::Display for bitcoin::ecdsa::SerializedSignature impl core::fmt::Display for bitcoin::ecdsa::Signature -impl core::fmt::Display for bitcoin::error::ContainsPrefixError -impl core::fmt::Display for bitcoin::error::MissingPrefixError -impl core::fmt::Display for bitcoin::error::PrefixedHexError -impl core::fmt::Display for bitcoin::error::UnprefixedHexError impl core::fmt::Display for bitcoin::key::FromSliceError impl core::fmt::Display for bitcoin::key::FromWifError impl core::fmt::Display for bitcoin::key::InvalidAddressVersionError @@ -2447,10 +2423,6 @@ impl core::marker::Freeze for bitcoin::consensus::params::Params impl core::marker::Freeze for bitcoin::ecdsa::Error impl core::marker::Freeze for bitcoin::ecdsa::SerializedSignature impl core::marker::Freeze for bitcoin::ecdsa::Signature -impl core::marker::Freeze for bitcoin::error::ContainsPrefixError -impl core::marker::Freeze for bitcoin::error::MissingPrefixError -impl core::marker::Freeze for bitcoin::error::PrefixedHexError -impl core::marker::Freeze for bitcoin::error::UnprefixedHexError impl core::marker::Freeze for bitcoin::key::FromSliceError impl core::marker::Freeze for bitcoin::key::FromWifError impl core::marker::Freeze for bitcoin::key::InvalidAddressVersionError @@ -2626,10 +2598,6 @@ impl core::marker::Send for bitcoin::consensus::params::Params impl core::marker::Send for bitcoin::ecdsa::Error impl core::marker::Send for bitcoin::ecdsa::SerializedSignature impl core::marker::Send for bitcoin::ecdsa::Signature -impl core::marker::Send for bitcoin::error::ContainsPrefixError -impl core::marker::Send for bitcoin::error::MissingPrefixError -impl core::marker::Send for bitcoin::error::PrefixedHexError -impl core::marker::Send for bitcoin::error::UnprefixedHexError impl core::marker::Send for bitcoin::key::FromSliceError impl core::marker::Send for bitcoin::key::FromWifError impl core::marker::Send for bitcoin::key::InvalidAddressVersionError @@ -2797,10 +2765,6 @@ impl core::marker::StructuralPartialEq for bitcoin::consensus::encode::CheckedDa impl core::marker::StructuralPartialEq for bitcoin::consensus::encode::VarInt impl core::marker::StructuralPartialEq for bitcoin::ecdsa::Error impl core::marker::StructuralPartialEq for bitcoin::ecdsa::Signature -impl core::marker::StructuralPartialEq for bitcoin::error::ContainsPrefixError -impl core::marker::StructuralPartialEq for bitcoin::error::MissingPrefixError -impl core::marker::StructuralPartialEq for bitcoin::error::PrefixedHexError -impl core::marker::StructuralPartialEq for bitcoin::error::UnprefixedHexError impl core::marker::StructuralPartialEq for bitcoin::key::FromSliceError impl core::marker::StructuralPartialEq for bitcoin::key::FromWifError impl core::marker::StructuralPartialEq for bitcoin::key::InvalidAddressVersionError @@ -2971,10 +2935,6 @@ impl core::marker::Sync for bitcoin::consensus::params::Params impl core::marker::Sync for bitcoin::ecdsa::Error impl core::marker::Sync for bitcoin::ecdsa::SerializedSignature impl core::marker::Sync for bitcoin::ecdsa::Signature -impl core::marker::Sync for bitcoin::error::ContainsPrefixError -impl core::marker::Sync for bitcoin::error::MissingPrefixError -impl core::marker::Sync for bitcoin::error::PrefixedHexError -impl core::marker::Sync for bitcoin::error::UnprefixedHexError impl core::marker::Sync for bitcoin::key::FromSliceError impl core::marker::Sync for bitcoin::key::FromWifError impl core::marker::Sync for bitcoin::key::InvalidAddressVersionError @@ -3150,10 +3110,6 @@ impl core::marker::Unpin for bitcoin::consensus::params::Params impl core::marker::Unpin for bitcoin::ecdsa::Error impl core::marker::Unpin for bitcoin::ecdsa::SerializedSignature impl core::marker::Unpin for bitcoin::ecdsa::Signature -impl core::marker::Unpin for bitcoin::error::ContainsPrefixError -impl core::marker::Unpin for bitcoin::error::MissingPrefixError -impl core::marker::Unpin for bitcoin::error::PrefixedHexError -impl core::marker::Unpin for bitcoin::error::UnprefixedHexError impl core::marker::Unpin for bitcoin::key::FromSliceError impl core::marker::Unpin for bitcoin::key::FromWifError impl core::marker::Unpin for bitcoin::key::InvalidAddressVersionError @@ -3358,10 +3314,6 @@ impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::consensus::params::Par impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::ecdsa::Error impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::ecdsa::SerializedSignature impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::ecdsa::Signature -impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::error::ContainsPrefixError -impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::error::MissingPrefixError -impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::error::PrefixedHexError -impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::error::UnprefixedHexError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::key::FromSliceError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::key::FromWifError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::key::InvalidAddressVersionError @@ -3533,10 +3485,6 @@ impl core::panic::unwind_safe::UnwindSafe for bitcoin::consensus::params::Params impl core::panic::unwind_safe::UnwindSafe for bitcoin::ecdsa::Error impl core::panic::unwind_safe::UnwindSafe for bitcoin::ecdsa::SerializedSignature impl core::panic::unwind_safe::UnwindSafe for bitcoin::ecdsa::Signature -impl core::panic::unwind_safe::UnwindSafe for bitcoin::error::ContainsPrefixError -impl core::panic::unwind_safe::UnwindSafe for bitcoin::error::MissingPrefixError -impl core::panic::unwind_safe::UnwindSafe for bitcoin::error::PrefixedHexError -impl core::panic::unwind_safe::UnwindSafe for bitcoin::error::UnprefixedHexError impl core::panic::unwind_safe::UnwindSafe for bitcoin::key::FromSliceError impl core::panic::unwind_safe::UnwindSafe for bitcoin::key::FromWifError impl core::panic::unwind_safe::UnwindSafe for bitcoin::key::InvalidAddressVersionError @@ -4474,10 +4422,6 @@ pub bitcoin::ecdsa::Error::Secp256k1(secp256k1::Error) pub bitcoin::ecdsa::Error::SighashType(bitcoin::sighash::NonStandardSighashTypeError) pub bitcoin::ecdsa::Signature::sighash_type: bitcoin::EcdsaSighashType pub bitcoin::ecdsa::Signature::signature: secp256k1::ecdsa::Signature -pub bitcoin::error::PrefixedHexError::MissingPrefix(bitcoin::error::MissingPrefixError) -pub bitcoin::error::PrefixedHexError::ParseInt(bitcoin_units::parse::ParseIntError) -pub bitcoin::error::UnprefixedHexError::ContainsPrefix(bitcoin::error::ContainsPrefixError) -pub bitcoin::error::UnprefixedHexError::ParseInt(bitcoin_units::parse::ParseIntError) pub bitcoin::key::FromSliceError::InvalidKeyPrefix(u8) pub bitcoin::key::FromSliceError::InvalidLength(usize) pub bitcoin::key::FromSliceError::Secp256k1(secp256k1::Error) @@ -5499,8 +5443,6 @@ pub enum bitcoin::blockdata::opcodes::ClassifyContext pub enum bitcoin::blockdata::script::Instruction<'a> pub enum bitcoin::consensus::DecodeError pub enum bitcoin::consensus::encode::FromHexError -pub enum bitcoin::error::PrefixedHexError -pub enum bitcoin::error::UnprefixedHexError pub enum bitcoin::key::ParseCompressedPublicKeyError pub enum bitcoin::key::ParsePublicKeyError pub enum bitcoin::locktime::absolute::LockTime @@ -6751,10 +6693,10 @@ pub fn bitcoin::blockdata::locktime::absolute::LockTime::from(h: bitcoin_units:: pub fn bitcoin::blockdata::locktime::absolute::LockTime::from(t: bitcoin_units::locktime::absolute::Time) -> Self pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_consensus(n: u32) -> Self pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_height(n: u32) -> core::result::Result -pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_hex(s: &str) -> core::result::Result pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_str(s: &str) -> core::result::Result pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_time(n: u32) -> core::result::Result -pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::blockdata::locktime::absolute::LockTime::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::blockdata::locktime::absolute::LockTime::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::blockdata::locktime::absolute::LockTime::is_implied_by(&self, other: bitcoin::blockdata::locktime::absolute::LockTime) -> bool pub fn bitcoin::blockdata::locktime::absolute::LockTime::is_satisfied_by(&self, height: bitcoin_units::locktime::absolute::Height, time: bitcoin_units::locktime::absolute::Time) -> bool @@ -7316,11 +7258,11 @@ pub fn bitcoin::blockdata::transaction::Sequence::from(lt: bitcoin::blockdata::l pub fn bitcoin::blockdata::transaction::Sequence::from_512_second_intervals(intervals: u16) -> Self pub fn bitcoin::blockdata::transaction::Sequence::from_consensus(n: u32) -> Self pub fn bitcoin::blockdata::transaction::Sequence::from_height(height: u16) -> Self -pub fn bitcoin::blockdata::transaction::Sequence::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::blockdata::transaction::Sequence::from_hex(s: &str) -> core::result::Result pub fn bitcoin::blockdata::transaction::Sequence::from_seconds_ceil(seconds: u32) -> core::result::Result pub fn bitcoin::blockdata::transaction::Sequence::from_seconds_floor(seconds: u32) -> core::result::Result pub fn bitcoin::blockdata::transaction::Sequence::from_str(s: &str) -> core::result::Result -pub fn bitcoin::blockdata::transaction::Sequence::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::blockdata::transaction::Sequence::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::blockdata::transaction::Sequence::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::blockdata::transaction::Sequence::is_final(&self) -> bool pub fn bitcoin::blockdata::transaction::Sequence::is_height_locked(&self) -> bool @@ -7597,22 +7539,6 @@ pub fn bitcoin::ecdsa::Signature::serialize(&self) -> bitcoin::ecdsa::Serialized pub fn bitcoin::ecdsa::Signature::serialize_to_writer(&self, writer: &mut W) -> core::result::Result<(), bitcoin_io::error::Error> pub fn bitcoin::ecdsa::Signature::sighash_all(signature: secp256k1::ecdsa::Signature) -> bitcoin::ecdsa::Signature pub fn bitcoin::ecdsa::Signature::to_vec(self) -> alloc::vec::Vec -pub fn bitcoin::error::ContainsPrefixError::clone(&self) -> bitcoin::error::ContainsPrefixError -pub fn bitcoin::error::ContainsPrefixError::eq(&self, other: &bitcoin::error::ContainsPrefixError) -> bool -pub fn bitcoin::error::ContainsPrefixError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn bitcoin::error::MissingPrefixError::clone(&self) -> bitcoin::error::MissingPrefixError -pub fn bitcoin::error::MissingPrefixError::eq(&self, other: &bitcoin::error::MissingPrefixError) -> bool -pub fn bitcoin::error::MissingPrefixError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn bitcoin::error::PrefixedHexError::clone(&self) -> bitcoin::error::PrefixedHexError -pub fn bitcoin::error::PrefixedHexError::eq(&self, other: &bitcoin::error::PrefixedHexError) -> bool -pub fn bitcoin::error::PrefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn bitcoin::error::PrefixedHexError::from(e: bitcoin::error::MissingPrefixError) -> Self -pub fn bitcoin::error::PrefixedHexError::from(e: bitcoin_units::parse::ParseIntError) -> Self -pub fn bitcoin::error::UnprefixedHexError::clone(&self) -> bitcoin::error::UnprefixedHexError -pub fn bitcoin::error::UnprefixedHexError::eq(&self, other: &bitcoin::error::UnprefixedHexError) -> bool -pub fn bitcoin::error::UnprefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result -pub fn bitcoin::error::UnprefixedHexError::from(e: bitcoin::error::ContainsPrefixError) -> Self -pub fn bitcoin::error::UnprefixedHexError::from(e: bitcoin_units::parse::ParseIntError) -> Self pub fn bitcoin::key::FromSliceError::clone(&self) -> bitcoin::key::FromSliceError pub fn bitcoin::key::FromSliceError::eq(&self, other: &bitcoin::key::FromSliceError) -> bool pub fn bitcoin::key::FromSliceError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result @@ -7784,9 +7710,9 @@ pub fn bitcoin::pow::CompactTarget::eq(&self, other: &bitcoin::pow::CompactTarge pub fn bitcoin::pow::CompactTarget::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::pow::CompactTarget::from_consensus(bits: u32) -> Self pub fn bitcoin::pow::CompactTarget::from_header_difficulty_adjustment(last_epoch_boundary: bitcoin::blockdata::block::Header, current: bitcoin::blockdata::block::Header, params: impl core::convert::AsRef) -> bitcoin::pow::CompactTarget -pub fn bitcoin::pow::CompactTarget::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::CompactTarget::from_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::CompactTarget::from_next_work_required(last: bitcoin::pow::CompactTarget, timespan: u64, params: impl core::convert::AsRef) -> bitcoin::pow::CompactTarget -pub fn bitcoin::pow::CompactTarget::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::CompactTarget::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::CompactTarget::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::pow::CompactTarget::partial_cmp(&self, other: &bitcoin::pow::CompactTarget) -> core::option::Option pub fn bitcoin::pow::CompactTarget::to_consensus(self) -> u32 @@ -7799,9 +7725,9 @@ pub fn bitcoin::pow::Target::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> cor pub fn bitcoin::pow::Target::from(c: bitcoin::pow::CompactTarget) -> Self pub fn bitcoin::pow::Target::from_be_bytes(bytes: [u8; 32]) -> bitcoin::pow::Target pub fn bitcoin::pow::Target::from_compact(c: bitcoin::pow::CompactTarget) -> bitcoin::pow::Target -pub fn bitcoin::pow::Target::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::Target::from_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::Target::from_le_bytes(bytes: [u8; 32]) -> bitcoin::pow::Target -pub fn bitcoin::pow::Target::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::Target::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::Target::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::pow::Target::is_met_by(&self, hash: bitcoin::blockdata::block::BlockHash) -> bool pub fn bitcoin::pow::Target::max_difficulty_transition_threshold(&self) -> Self @@ -7820,9 +7746,9 @@ pub fn bitcoin::pow::Work::cmp(&self, other: &bitcoin::pow::Work) -> core::cmp:: pub fn bitcoin::pow::Work::eq(&self, other: &bitcoin::pow::Work) -> bool pub fn bitcoin::pow::Work::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin::pow::Work::from_be_bytes(bytes: [u8; 32]) -> bitcoin::pow::Work -pub fn bitcoin::pow::Work::from_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::Work::from_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::Work::from_le_bytes(bytes: [u8; 32]) -> bitcoin::pow::Work -pub fn bitcoin::pow::Work::from_unprefixed_hex(s: &str) -> core::result::Result +pub fn bitcoin::pow::Work::from_unprefixed_hex(s: &str) -> core::result::Result pub fn bitcoin::pow::Work::hash<__H: core::hash::Hasher>(&self, state: &mut __H) pub fn bitcoin::pow::Work::partial_cmp(&self, other: &bitcoin::pow::Work) -> core::option::Option pub fn bitcoin::pow::Work::sub(self, rhs: Self) -> Self @@ -8560,7 +8486,6 @@ pub mod bitcoin::consensus::encode pub mod bitcoin::consensus::params pub mod bitcoin::constants pub mod bitcoin::ecdsa -pub mod bitcoin::error pub mod bitcoin::hash_types pub mod bitcoin::key pub mod bitcoin::locktime @@ -8727,8 +8652,6 @@ pub struct bitcoin::consensus::encode::VarInt(pub u64) pub struct bitcoin::constants::ChainHash(_) pub struct bitcoin::ecdsa::SerializedSignature pub struct bitcoin::ecdsa::Signature -pub struct bitcoin::error::ContainsPrefixError -pub struct bitcoin::error::MissingPrefixError pub struct bitcoin::hash_types::BlockHash(_) pub struct bitcoin::hash_types::FilterHash(_) pub struct bitcoin::hash_types::FilterHeader(_) @@ -9046,7 +8969,6 @@ pub use bitcoin::blockdata::locktime::relative::Height pub use bitcoin::blockdata::locktime::relative::Time pub use bitcoin::blockdata::locktime::relative::TimeOverflowError pub use bitcoin::blockdata::weight::<> -pub use bitcoin::error::ParseIntError pub use bitcoin::key::Keypair pub use bitcoin::key::Parity pub use bitcoin::key::Secp256k1 diff --git a/api/units/all-features.txt b/api/units/all-features.txt index d5242c476..56317a301 100644 --- a/api/units/all-features.txt +++ b/api/units/all-features.txt @@ -60,7 +60,11 @@ impl core::clone::Clone for bitcoin_units::locktime::absolute::Time impl core::clone::Clone for bitcoin_units::locktime::relative::Height impl core::clone::Clone for bitcoin_units::locktime::relative::Time impl core::clone::Clone for bitcoin_units::locktime::relative::TimeOverflowError +impl core::clone::Clone for bitcoin_units::parse::ContainsPrefixError +impl core::clone::Clone for bitcoin_units::parse::MissingPrefixError impl core::clone::Clone for bitcoin_units::parse::ParseIntError +impl core::clone::Clone for bitcoin_units::parse::PrefixedHexError +impl core::clone::Clone for bitcoin_units::parse::UnprefixedHexError impl core::clone::Clone for bitcoin_units::weight::Weight impl core::cmp::Eq for bitcoin_units::amount::Amount impl core::cmp::Eq for bitcoin_units::amount::Denomination @@ -85,7 +89,11 @@ impl core::cmp::Eq for bitcoin_units::locktime::absolute::Time impl core::cmp::Eq for bitcoin_units::locktime::relative::Height impl core::cmp::Eq for bitcoin_units::locktime::relative::Time impl core::cmp::Eq for bitcoin_units::locktime::relative::TimeOverflowError +impl core::cmp::Eq for bitcoin_units::parse::ContainsPrefixError +impl core::cmp::Eq for bitcoin_units::parse::MissingPrefixError impl core::cmp::Eq for bitcoin_units::parse::ParseIntError +impl core::cmp::Eq for bitcoin_units::parse::PrefixedHexError +impl core::cmp::Eq for bitcoin_units::parse::UnprefixedHexError impl core::cmp::Eq for bitcoin_units::weight::Weight impl core::cmp::Ord for bitcoin_units::amount::Amount impl core::cmp::Ord for bitcoin_units::amount::SignedAmount @@ -118,7 +126,11 @@ impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::Time impl core::cmp::PartialEq for bitcoin_units::locktime::relative::Height impl core::cmp::PartialEq for bitcoin_units::locktime::relative::Time impl core::cmp::PartialEq for bitcoin_units::locktime::relative::TimeOverflowError +impl core::cmp::PartialEq for bitcoin_units::parse::ContainsPrefixError +impl core::cmp::PartialEq for bitcoin_units::parse::MissingPrefixError impl core::cmp::PartialEq for bitcoin_units::parse::ParseIntError +impl core::cmp::PartialEq for bitcoin_units::parse::PrefixedHexError +impl core::cmp::PartialEq for bitcoin_units::parse::UnprefixedHexError impl core::cmp::PartialEq for bitcoin_units::weight::Weight impl core::cmp::PartialOrd for bitcoin_units::amount::Amount impl core::cmp::PartialOrd for bitcoin_units::amount::SignedAmount @@ -142,6 +154,10 @@ impl core::convert::From for bitc impl core::convert::From for bitcoin_units::amount::ParseAmountError impl core::convert::From for bitcoin_units::amount::ParseError impl core::convert::From for u64 +impl core::convert::From for bitcoin_units::parse::UnprefixedHexError +impl core::convert::From for bitcoin_units::parse::PrefixedHexError +impl core::convert::From for bitcoin_units::parse::PrefixedHexError +impl core::convert::From for bitcoin_units::parse::UnprefixedHexError impl core::convert::From for core::num::error::ParseIntError impl core::convert::From for u64 impl core::convert::From for bitcoin_units::amount::ParseAmountError @@ -186,7 +202,11 @@ impl core::error::Error for bitcoin_units::locktime::absolute::ConversionError impl core::error::Error for bitcoin_units::locktime::absolute::ParseHeightError impl core::error::Error for bitcoin_units::locktime::absolute::ParseTimeError impl core::error::Error for bitcoin_units::locktime::relative::TimeOverflowError +impl core::error::Error for bitcoin_units::parse::ContainsPrefixError +impl core::error::Error for bitcoin_units::parse::MissingPrefixError impl core::error::Error for bitcoin_units::parse::ParseIntError +impl core::error::Error for bitcoin_units::parse::PrefixedHexError +impl core::error::Error for bitcoin_units::parse::UnprefixedHexError impl core::fmt::Debug for bitcoin_units::amount::Amount impl core::fmt::Debug for bitcoin_units::amount::Denomination impl core::fmt::Debug for bitcoin_units::amount::Display @@ -211,7 +231,11 @@ impl core::fmt::Debug for bitcoin_units::locktime::absolute::Time impl core::fmt::Debug for bitcoin_units::locktime::relative::Height impl core::fmt::Debug for bitcoin_units::locktime::relative::Time impl core::fmt::Debug for bitcoin_units::locktime::relative::TimeOverflowError +impl core::fmt::Debug for bitcoin_units::parse::ContainsPrefixError +impl core::fmt::Debug for bitcoin_units::parse::MissingPrefixError impl core::fmt::Debug for bitcoin_units::parse::ParseIntError +impl core::fmt::Debug for bitcoin_units::parse::PrefixedHexError +impl core::fmt::Debug for bitcoin_units::parse::UnprefixedHexError impl core::fmt::Debug for bitcoin_units::weight::Weight impl core::fmt::Display for bitcoin_units::amount::Amount impl core::fmt::Display for bitcoin_units::amount::Denomination @@ -236,7 +260,11 @@ impl core::fmt::Display for bitcoin_units::locktime::absolute::Time impl core::fmt::Display for bitcoin_units::locktime::relative::Height impl core::fmt::Display for bitcoin_units::locktime::relative::Time impl core::fmt::Display for bitcoin_units::locktime::relative::TimeOverflowError +impl core::fmt::Display for bitcoin_units::parse::ContainsPrefixError +impl core::fmt::Display for bitcoin_units::parse::MissingPrefixError impl core::fmt::Display for bitcoin_units::parse::ParseIntError +impl core::fmt::Display for bitcoin_units::parse::PrefixedHexError +impl core::fmt::Display for bitcoin_units::parse::UnprefixedHexError impl core::fmt::Display for bitcoin_units::weight::Weight impl core::hash::Hash for bitcoin_units::amount::Amount impl core::hash::Hash for bitcoin_units::amount::Denomination @@ -284,7 +312,11 @@ impl core::marker::Freeze for bitcoin_units::locktime::absolute::Time impl core::marker::Freeze for bitcoin_units::locktime::relative::Height impl core::marker::Freeze for bitcoin_units::locktime::relative::Time impl core::marker::Freeze for bitcoin_units::locktime::relative::TimeOverflowError +impl core::marker::Freeze for bitcoin_units::parse::ContainsPrefixError +impl core::marker::Freeze for bitcoin_units::parse::MissingPrefixError impl core::marker::Freeze for bitcoin_units::parse::ParseIntError +impl core::marker::Freeze for bitcoin_units::parse::PrefixedHexError +impl core::marker::Freeze for bitcoin_units::parse::UnprefixedHexError impl core::marker::Freeze for bitcoin_units::weight::Weight impl core::marker::Send for bitcoin_units::amount::Amount impl core::marker::Send for bitcoin_units::amount::Denomination @@ -310,7 +342,11 @@ impl core::marker::Send for bitcoin_units::locktime::absolute::Time impl core::marker::Send for bitcoin_units::locktime::relative::Height impl core::marker::Send for bitcoin_units::locktime::relative::Time impl core::marker::Send for bitcoin_units::locktime::relative::TimeOverflowError +impl core::marker::Send for bitcoin_units::parse::ContainsPrefixError +impl core::marker::Send for bitcoin_units::parse::MissingPrefixError impl core::marker::Send for bitcoin_units::parse::ParseIntError +impl core::marker::Send for bitcoin_units::parse::PrefixedHexError +impl core::marker::Send for bitcoin_units::parse::UnprefixedHexError impl core::marker::Send for bitcoin_units::weight::Weight impl core::marker::StructuralPartialEq for bitcoin_units::amount::Amount impl core::marker::StructuralPartialEq for bitcoin_units::amount::Denomination @@ -335,7 +371,11 @@ impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::Ti impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::Height impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::Time impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::TimeOverflowError +impl core::marker::StructuralPartialEq for bitcoin_units::parse::ContainsPrefixError +impl core::marker::StructuralPartialEq for bitcoin_units::parse::MissingPrefixError impl core::marker::StructuralPartialEq for bitcoin_units::parse::ParseIntError +impl core::marker::StructuralPartialEq for bitcoin_units::parse::PrefixedHexError +impl core::marker::StructuralPartialEq for bitcoin_units::parse::UnprefixedHexError impl core::marker::StructuralPartialEq for bitcoin_units::weight::Weight impl core::marker::Sync for bitcoin_units::amount::Amount impl core::marker::Sync for bitcoin_units::amount::Denomination @@ -361,7 +401,11 @@ impl core::marker::Sync for bitcoin_units::locktime::absolute::Time impl core::marker::Sync for bitcoin_units::locktime::relative::Height impl core::marker::Sync for bitcoin_units::locktime::relative::Time impl core::marker::Sync for bitcoin_units::locktime::relative::TimeOverflowError +impl core::marker::Sync for bitcoin_units::parse::ContainsPrefixError +impl core::marker::Sync for bitcoin_units::parse::MissingPrefixError impl core::marker::Sync for bitcoin_units::parse::ParseIntError +impl core::marker::Sync for bitcoin_units::parse::PrefixedHexError +impl core::marker::Sync for bitcoin_units::parse::UnprefixedHexError impl core::marker::Sync for bitcoin_units::weight::Weight impl core::marker::Unpin for bitcoin_units::amount::Amount impl core::marker::Unpin for bitcoin_units::amount::Denomination @@ -387,7 +431,11 @@ impl core::marker::Unpin for bitcoin_units::locktime::absolute::Time impl core::marker::Unpin for bitcoin_units::locktime::relative::Height impl core::marker::Unpin for bitcoin_units::locktime::relative::Time impl core::marker::Unpin for bitcoin_units::locktime::relative::TimeOverflowError +impl core::marker::Unpin for bitcoin_units::parse::ContainsPrefixError +impl core::marker::Unpin for bitcoin_units::parse::MissingPrefixError impl core::marker::Unpin for bitcoin_units::parse::ParseIntError +impl core::marker::Unpin for bitcoin_units::parse::PrefixedHexError +impl core::marker::Unpin for bitcoin_units::parse::UnprefixedHexError impl core::marker::Unpin for bitcoin_units::weight::Weight impl core::ops::arith::Add for bitcoin_units::amount::Amount impl core::ops::arith::Add for bitcoin_units::amount::SignedAmount @@ -447,7 +495,11 @@ impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolu impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::Height impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::Time impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::TimeOverflowError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse::ContainsPrefixError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse::MissingPrefixError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse::ParseIntError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse::PrefixedHexError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse::UnprefixedHexError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::weight::Weight impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::Amount impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::Denomination @@ -473,7 +525,11 @@ impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute: impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::Height impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::Time impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::TimeOverflowError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse::ContainsPrefixError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse::MissingPrefixError impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse::ParseIntError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse::PrefixedHexError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse::UnprefixedHexError impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::weight::Weight impl core::str::traits::FromStr for bitcoin_units::amount::Amount impl core::str::traits::FromStr for bitcoin_units::amount::Denomination @@ -525,6 +581,10 @@ pub bitcoin_units::amount::ParseDenominationError::Unknown(bitcoin_units::amount pub bitcoin_units::amount::ParseError::Amount(bitcoin_units::amount::ParseAmountError) pub bitcoin_units::amount::ParseError::Denomination(bitcoin_units::amount::ParseDenominationError) pub bitcoin_units::amount::ParseError::MissingDenomination(bitcoin_units::amount::MissingDenominationError) +pub bitcoin_units::parse::PrefixedHexError::MissingPrefix(bitcoin_units::parse::MissingPrefixError) +pub bitcoin_units::parse::PrefixedHexError::ParseInt(bitcoin_units::parse::ParseIntError) +pub bitcoin_units::parse::UnprefixedHexError::ContainsPrefix(bitcoin_units::parse::ContainsPrefixError) +pub bitcoin_units::parse::UnprefixedHexError::ParseInt(bitcoin_units::parse::ParseIntError) pub const bitcoin_units::amount::Amount::MAX: bitcoin_units::amount::Amount pub const bitcoin_units::amount::Amount::MAX_MONEY: bitcoin_units::amount::Amount pub const bitcoin_units::amount::Amount::MIN: bitcoin_units::amount::Amount @@ -586,6 +646,8 @@ pub const fn bitcoin_units::weight::Weight::to_kwu_floor(self) -> u64 pub const fn bitcoin_units::weight::Weight::to_vbytes_ceil(self) -> u64 pub const fn bitcoin_units::weight::Weight::to_vbytes_floor(self) -> u64 pub const fn bitcoin_units::weight::Weight::to_wu(self) -> u64 +pub enum bitcoin_units::parse::PrefixedHexError +pub enum bitcoin_units::parse::UnprefixedHexError pub extern crate bitcoin_units::serde pub fn T::checked_sum(self) -> core::option::Option pub fn T::checked_sum(self) -> core::option::Option @@ -872,14 +934,40 @@ pub fn bitcoin_units::locktime::relative::TimeOverflowError::clone(&self) -> bit pub fn bitcoin_units::locktime::relative::TimeOverflowError::eq(&self, other: &bitcoin_units::locktime::relative::TimeOverflowError) -> bool pub fn bitcoin_units::locktime::relative::TimeOverflowError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin_units::locktime::relative::TimeOverflowError::new(seconds: u32) -> Self +pub fn bitcoin_units::parse::ContainsPrefixError::clone(&self) -> bitcoin_units::parse::ContainsPrefixError +pub fn bitcoin_units::parse::ContainsPrefixError::eq(&self, other: &bitcoin_units::parse::ContainsPrefixError) -> bool +pub fn bitcoin_units::parse::ContainsPrefixError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse::MissingPrefixError::clone(&self) -> bitcoin_units::parse::MissingPrefixError +pub fn bitcoin_units::parse::MissingPrefixError::eq(&self, other: &bitcoin_units::parse::MissingPrefixError) -> bool +pub fn bitcoin_units::parse::MissingPrefixError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin_units::parse::ParseIntError::as_ref(&self) -> &core::num::error::ParseIntError pub fn bitcoin_units::parse::ParseIntError::clone(&self) -> bitcoin_units::parse::ParseIntError pub fn bitcoin_units::parse::ParseIntError::eq(&self, other: &bitcoin_units::parse::ParseIntError) -> bool pub fn bitcoin_units::parse::ParseIntError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin_units::parse::ParseIntError::input(&self) -> &str pub fn bitcoin_units::parse::ParseIntError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> -pub fn bitcoin_units::parse::hex_u128 + core::convert::Into>(s: S) -> core::result::Result -pub fn bitcoin_units::parse::hex_u32 + core::convert::Into>(s: S) -> core::result::Result +pub fn bitcoin_units::parse::PrefixedHexError::clone(&self) -> bitcoin_units::parse::PrefixedHexError +pub fn bitcoin_units::parse::PrefixedHexError::eq(&self, other: &bitcoin_units::parse::PrefixedHexError) -> bool +pub fn bitcoin_units::parse::PrefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse::PrefixedHexError::from(e: bitcoin_units::parse::MissingPrefixError) -> Self +pub fn bitcoin_units::parse::PrefixedHexError::from(e: bitcoin_units::parse::ParseIntError) -> Self +pub fn bitcoin_units::parse::PrefixedHexError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::parse::UnprefixedHexError::clone(&self) -> bitcoin_units::parse::UnprefixedHexError +pub fn bitcoin_units::parse::UnprefixedHexError::eq(&self, other: &bitcoin_units::parse::UnprefixedHexError) -> bool +pub fn bitcoin_units::parse::UnprefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse::UnprefixedHexError::from(e: bitcoin_units::parse::ContainsPrefixError) -> Self +pub fn bitcoin_units::parse::UnprefixedHexError::from(e: bitcoin_units::parse::ParseIntError) -> Self +pub fn bitcoin_units::parse::UnprefixedHexError::source(&self) -> core::option::Option<&(dyn core::error::Error + 'static)> +pub fn bitcoin_units::parse::hex_check_unprefixed(s: &str) -> core::result::Result<&str, bitcoin_units::parse::UnprefixedHexError> +pub fn bitcoin_units::parse::hex_remove_prefix(s: &str) -> core::result::Result<&str, bitcoin_units::parse::PrefixedHexError> +pub fn bitcoin_units::parse::hex_u128(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u128_prefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u128_unchecked(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u128_unprefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u32(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u32_prefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u32_unchecked(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u32_unprefixed(s: &str) -> core::result::Result pub fn bitcoin_units::parse::int + core::convert::Into>(s: S) -> core::result::Result pub fn bitcoin_units::weight::Weight::add(self, rhs: bitcoin_units::weight::Weight) -> Self::Output pub fn bitcoin_units::weight::Weight::add_assign(&mut self, rhs: Self) @@ -953,6 +1041,8 @@ pub struct bitcoin_units::locktime::absolute::Time(_) pub struct bitcoin_units::locktime::relative::Height(_) pub struct bitcoin_units::locktime::relative::Time(_) pub struct bitcoin_units::locktime::relative::TimeOverflowError +pub struct bitcoin_units::parse::ContainsPrefixError +pub struct bitcoin_units::parse::MissingPrefixError pub struct bitcoin_units::weight::Weight(_) pub trait bitcoin_units::amount::CheckedSum: private::SumSeal pub trait bitcoin_units::amount::serde::SerdeAmount: core::marker::Copy + core::marker::Sized diff --git a/api/units/alloc-only.txt b/api/units/alloc-only.txt index 34deb3ed9..61a112c54 100644 --- a/api/units/alloc-only.txt +++ b/api/units/alloc-only.txt @@ -56,7 +56,11 @@ impl core::clone::Clone for bitcoin_units::locktime::absolute::Time impl core::clone::Clone for bitcoin_units::locktime::relative::Height impl core::clone::Clone for bitcoin_units::locktime::relative::Time impl core::clone::Clone for bitcoin_units::locktime::relative::TimeOverflowError +impl core::clone::Clone for bitcoin_units::parse::ContainsPrefixError +impl core::clone::Clone for bitcoin_units::parse::MissingPrefixError impl core::clone::Clone for bitcoin_units::parse::ParseIntError +impl core::clone::Clone for bitcoin_units::parse::PrefixedHexError +impl core::clone::Clone for bitcoin_units::parse::UnprefixedHexError impl core::clone::Clone for bitcoin_units::weight::Weight impl core::cmp::Eq for bitcoin_units::amount::Amount impl core::cmp::Eq for bitcoin_units::amount::Denomination @@ -81,7 +85,11 @@ impl core::cmp::Eq for bitcoin_units::locktime::absolute::Time impl core::cmp::Eq for bitcoin_units::locktime::relative::Height impl core::cmp::Eq for bitcoin_units::locktime::relative::Time impl core::cmp::Eq for bitcoin_units::locktime::relative::TimeOverflowError +impl core::cmp::Eq for bitcoin_units::parse::ContainsPrefixError +impl core::cmp::Eq for bitcoin_units::parse::MissingPrefixError impl core::cmp::Eq for bitcoin_units::parse::ParseIntError +impl core::cmp::Eq for bitcoin_units::parse::PrefixedHexError +impl core::cmp::Eq for bitcoin_units::parse::UnprefixedHexError impl core::cmp::Eq for bitcoin_units::weight::Weight impl core::cmp::Ord for bitcoin_units::amount::Amount impl core::cmp::Ord for bitcoin_units::amount::SignedAmount @@ -114,7 +122,11 @@ impl core::cmp::PartialEq for bitcoin_units::locktime::absolute::Time impl core::cmp::PartialEq for bitcoin_units::locktime::relative::Height impl core::cmp::PartialEq for bitcoin_units::locktime::relative::Time impl core::cmp::PartialEq for bitcoin_units::locktime::relative::TimeOverflowError +impl core::cmp::PartialEq for bitcoin_units::parse::ContainsPrefixError +impl core::cmp::PartialEq for bitcoin_units::parse::MissingPrefixError impl core::cmp::PartialEq for bitcoin_units::parse::ParseIntError +impl core::cmp::PartialEq for bitcoin_units::parse::PrefixedHexError +impl core::cmp::PartialEq for bitcoin_units::parse::UnprefixedHexError impl core::cmp::PartialEq for bitcoin_units::weight::Weight impl core::cmp::PartialOrd for bitcoin_units::amount::Amount impl core::cmp::PartialOrd for bitcoin_units::amount::SignedAmount @@ -138,6 +150,10 @@ impl core::convert::From for bitc impl core::convert::From for bitcoin_units::amount::ParseAmountError impl core::convert::From for bitcoin_units::amount::ParseError impl core::convert::From for u64 +impl core::convert::From for bitcoin_units::parse::UnprefixedHexError +impl core::convert::From for bitcoin_units::parse::PrefixedHexError +impl core::convert::From for bitcoin_units::parse::PrefixedHexError +impl core::convert::From for bitcoin_units::parse::UnprefixedHexError impl core::convert::From for core::num::error::ParseIntError impl core::convert::From for u64 impl core::convert::From for bitcoin_units::amount::ParseAmountError @@ -192,7 +208,11 @@ impl core::fmt::Debug for bitcoin_units::locktime::absolute::Time impl core::fmt::Debug for bitcoin_units::locktime::relative::Height impl core::fmt::Debug for bitcoin_units::locktime::relative::Time impl core::fmt::Debug for bitcoin_units::locktime::relative::TimeOverflowError +impl core::fmt::Debug for bitcoin_units::parse::ContainsPrefixError +impl core::fmt::Debug for bitcoin_units::parse::MissingPrefixError impl core::fmt::Debug for bitcoin_units::parse::ParseIntError +impl core::fmt::Debug for bitcoin_units::parse::PrefixedHexError +impl core::fmt::Debug for bitcoin_units::parse::UnprefixedHexError impl core::fmt::Debug for bitcoin_units::weight::Weight impl core::fmt::Display for bitcoin_units::amount::Amount impl core::fmt::Display for bitcoin_units::amount::Denomination @@ -217,7 +237,11 @@ impl core::fmt::Display for bitcoin_units::locktime::absolute::Time impl core::fmt::Display for bitcoin_units::locktime::relative::Height impl core::fmt::Display for bitcoin_units::locktime::relative::Time impl core::fmt::Display for bitcoin_units::locktime::relative::TimeOverflowError +impl core::fmt::Display for bitcoin_units::parse::ContainsPrefixError +impl core::fmt::Display for bitcoin_units::parse::MissingPrefixError impl core::fmt::Display for bitcoin_units::parse::ParseIntError +impl core::fmt::Display for bitcoin_units::parse::PrefixedHexError +impl core::fmt::Display for bitcoin_units::parse::UnprefixedHexError impl core::fmt::Display for bitcoin_units::weight::Weight impl core::hash::Hash for bitcoin_units::amount::Amount impl core::hash::Hash for bitcoin_units::amount::Denomination @@ -265,7 +289,11 @@ impl core::marker::Freeze for bitcoin_units::locktime::absolute::Time impl core::marker::Freeze for bitcoin_units::locktime::relative::Height impl core::marker::Freeze for bitcoin_units::locktime::relative::Time impl core::marker::Freeze for bitcoin_units::locktime::relative::TimeOverflowError +impl core::marker::Freeze for bitcoin_units::parse::ContainsPrefixError +impl core::marker::Freeze for bitcoin_units::parse::MissingPrefixError impl core::marker::Freeze for bitcoin_units::parse::ParseIntError +impl core::marker::Freeze for bitcoin_units::parse::PrefixedHexError +impl core::marker::Freeze for bitcoin_units::parse::UnprefixedHexError impl core::marker::Freeze for bitcoin_units::weight::Weight impl core::marker::Send for bitcoin_units::amount::Amount impl core::marker::Send for bitcoin_units::amount::Denomination @@ -291,7 +319,11 @@ impl core::marker::Send for bitcoin_units::locktime::absolute::Time impl core::marker::Send for bitcoin_units::locktime::relative::Height impl core::marker::Send for bitcoin_units::locktime::relative::Time impl core::marker::Send for bitcoin_units::locktime::relative::TimeOverflowError +impl core::marker::Send for bitcoin_units::parse::ContainsPrefixError +impl core::marker::Send for bitcoin_units::parse::MissingPrefixError impl core::marker::Send for bitcoin_units::parse::ParseIntError +impl core::marker::Send for bitcoin_units::parse::PrefixedHexError +impl core::marker::Send for bitcoin_units::parse::UnprefixedHexError impl core::marker::Send for bitcoin_units::weight::Weight impl core::marker::StructuralPartialEq for bitcoin_units::amount::Amount impl core::marker::StructuralPartialEq for bitcoin_units::amount::Denomination @@ -316,7 +348,11 @@ impl core::marker::StructuralPartialEq for bitcoin_units::locktime::absolute::Ti impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::Height impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::Time impl core::marker::StructuralPartialEq for bitcoin_units::locktime::relative::TimeOverflowError +impl core::marker::StructuralPartialEq for bitcoin_units::parse::ContainsPrefixError +impl core::marker::StructuralPartialEq for bitcoin_units::parse::MissingPrefixError impl core::marker::StructuralPartialEq for bitcoin_units::parse::ParseIntError +impl core::marker::StructuralPartialEq for bitcoin_units::parse::PrefixedHexError +impl core::marker::StructuralPartialEq for bitcoin_units::parse::UnprefixedHexError impl core::marker::StructuralPartialEq for bitcoin_units::weight::Weight impl core::marker::Sync for bitcoin_units::amount::Amount impl core::marker::Sync for bitcoin_units::amount::Denomination @@ -342,7 +378,11 @@ impl core::marker::Sync for bitcoin_units::locktime::absolute::Time impl core::marker::Sync for bitcoin_units::locktime::relative::Height impl core::marker::Sync for bitcoin_units::locktime::relative::Time impl core::marker::Sync for bitcoin_units::locktime::relative::TimeOverflowError +impl core::marker::Sync for bitcoin_units::parse::ContainsPrefixError +impl core::marker::Sync for bitcoin_units::parse::MissingPrefixError impl core::marker::Sync for bitcoin_units::parse::ParseIntError +impl core::marker::Sync for bitcoin_units::parse::PrefixedHexError +impl core::marker::Sync for bitcoin_units::parse::UnprefixedHexError impl core::marker::Sync for bitcoin_units::weight::Weight impl core::marker::Unpin for bitcoin_units::amount::Amount impl core::marker::Unpin for bitcoin_units::amount::Denomination @@ -368,7 +408,11 @@ impl core::marker::Unpin for bitcoin_units::locktime::absolute::Time impl core::marker::Unpin for bitcoin_units::locktime::relative::Height impl core::marker::Unpin for bitcoin_units::locktime::relative::Time impl core::marker::Unpin for bitcoin_units::locktime::relative::TimeOverflowError +impl core::marker::Unpin for bitcoin_units::parse::ContainsPrefixError +impl core::marker::Unpin for bitcoin_units::parse::MissingPrefixError impl core::marker::Unpin for bitcoin_units::parse::ParseIntError +impl core::marker::Unpin for bitcoin_units::parse::PrefixedHexError +impl core::marker::Unpin for bitcoin_units::parse::UnprefixedHexError impl core::marker::Unpin for bitcoin_units::weight::Weight impl core::ops::arith::Add for bitcoin_units::amount::Amount impl core::ops::arith::Add for bitcoin_units::amount::SignedAmount @@ -428,7 +472,11 @@ impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::absolu impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::Height impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::Time impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::locktime::relative::TimeOverflowError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse::ContainsPrefixError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse::MissingPrefixError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse::ParseIntError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse::PrefixedHexError +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::parse::UnprefixedHexError impl core::panic::unwind_safe::RefUnwindSafe for bitcoin_units::weight::Weight impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::Amount impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::amount::Denomination @@ -454,7 +502,11 @@ impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::absolute: impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::Height impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::Time impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::locktime::relative::TimeOverflowError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse::ContainsPrefixError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse::MissingPrefixError impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse::ParseIntError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse::PrefixedHexError +impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::parse::UnprefixedHexError impl core::panic::unwind_safe::UnwindSafe for bitcoin_units::weight::Weight impl core::str::traits::FromStr for bitcoin_units::amount::Amount impl core::str::traits::FromStr for bitcoin_units::amount::Denomination @@ -492,6 +544,10 @@ pub bitcoin_units::amount::ParseDenominationError::Unknown(bitcoin_units::amount pub bitcoin_units::amount::ParseError::Amount(bitcoin_units::amount::ParseAmountError) pub bitcoin_units::amount::ParseError::Denomination(bitcoin_units::amount::ParseDenominationError) pub bitcoin_units::amount::ParseError::MissingDenomination(bitcoin_units::amount::MissingDenominationError) +pub bitcoin_units::parse::PrefixedHexError::MissingPrefix(bitcoin_units::parse::MissingPrefixError) +pub bitcoin_units::parse::PrefixedHexError::ParseInt(bitcoin_units::parse::ParseIntError) +pub bitcoin_units::parse::UnprefixedHexError::ContainsPrefix(bitcoin_units::parse::ContainsPrefixError) +pub bitcoin_units::parse::UnprefixedHexError::ParseInt(bitcoin_units::parse::ParseIntError) pub const bitcoin_units::amount::Amount::MAX: bitcoin_units::amount::Amount pub const bitcoin_units::amount::Amount::MAX_MONEY: bitcoin_units::amount::Amount pub const bitcoin_units::amount::Amount::MIN: bitcoin_units::amount::Amount @@ -553,6 +609,8 @@ pub const fn bitcoin_units::weight::Weight::to_kwu_floor(self) -> u64 pub const fn bitcoin_units::weight::Weight::to_vbytes_ceil(self) -> u64 pub const fn bitcoin_units::weight::Weight::to_vbytes_floor(self) -> u64 pub const fn bitcoin_units::weight::Weight::to_wu(self) -> u64 +pub enum bitcoin_units::parse::PrefixedHexError +pub enum bitcoin_units::parse::UnprefixedHexError pub fn T::checked_sum(self) -> core::option::Option pub fn T::checked_sum(self) -> core::option::Option pub fn bitcoin_units::amount::Amount::add(self, rhs: bitcoin_units::amount::Amount) -> Self::Output @@ -789,13 +847,37 @@ pub fn bitcoin_units::locktime::relative::TimeOverflowError::clone(&self) -> bit pub fn bitcoin_units::locktime::relative::TimeOverflowError::eq(&self, other: &bitcoin_units::locktime::relative::TimeOverflowError) -> bool pub fn bitcoin_units::locktime::relative::TimeOverflowError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin_units::locktime::relative::TimeOverflowError::new(seconds: u32) -> Self +pub fn bitcoin_units::parse::ContainsPrefixError::clone(&self) -> bitcoin_units::parse::ContainsPrefixError +pub fn bitcoin_units::parse::ContainsPrefixError::eq(&self, other: &bitcoin_units::parse::ContainsPrefixError) -> bool +pub fn bitcoin_units::parse::ContainsPrefixError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse::MissingPrefixError::clone(&self) -> bitcoin_units::parse::MissingPrefixError +pub fn bitcoin_units::parse::MissingPrefixError::eq(&self, other: &bitcoin_units::parse::MissingPrefixError) -> bool +pub fn bitcoin_units::parse::MissingPrefixError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin_units::parse::ParseIntError::as_ref(&self) -> &core::num::error::ParseIntError pub fn bitcoin_units::parse::ParseIntError::clone(&self) -> bitcoin_units::parse::ParseIntError pub fn bitcoin_units::parse::ParseIntError::eq(&self, other: &bitcoin_units::parse::ParseIntError) -> bool pub fn bitcoin_units::parse::ParseIntError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result pub fn bitcoin_units::parse::ParseIntError::input(&self) -> &str -pub fn bitcoin_units::parse::hex_u128 + core::convert::Into>(s: S) -> core::result::Result -pub fn bitcoin_units::parse::hex_u32 + core::convert::Into>(s: S) -> core::result::Result +pub fn bitcoin_units::parse::PrefixedHexError::clone(&self) -> bitcoin_units::parse::PrefixedHexError +pub fn bitcoin_units::parse::PrefixedHexError::eq(&self, other: &bitcoin_units::parse::PrefixedHexError) -> bool +pub fn bitcoin_units::parse::PrefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse::PrefixedHexError::from(e: bitcoin_units::parse::MissingPrefixError) -> Self +pub fn bitcoin_units::parse::PrefixedHexError::from(e: bitcoin_units::parse::ParseIntError) -> Self +pub fn bitcoin_units::parse::UnprefixedHexError::clone(&self) -> bitcoin_units::parse::UnprefixedHexError +pub fn bitcoin_units::parse::UnprefixedHexError::eq(&self, other: &bitcoin_units::parse::UnprefixedHexError) -> bool +pub fn bitcoin_units::parse::UnprefixedHexError::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin_units::parse::UnprefixedHexError::from(e: bitcoin_units::parse::ContainsPrefixError) -> Self +pub fn bitcoin_units::parse::UnprefixedHexError::from(e: bitcoin_units::parse::ParseIntError) -> Self +pub fn bitcoin_units::parse::hex_check_unprefixed(s: &str) -> core::result::Result<&str, bitcoin_units::parse::UnprefixedHexError> +pub fn bitcoin_units::parse::hex_remove_prefix(s: &str) -> core::result::Result<&str, bitcoin_units::parse::PrefixedHexError> +pub fn bitcoin_units::parse::hex_u128(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u128_prefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u128_unchecked(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u128_unprefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u32(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u32_prefixed(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u32_unchecked(s: &str) -> core::result::Result +pub fn bitcoin_units::parse::hex_u32_unprefixed(s: &str) -> core::result::Result pub fn bitcoin_units::parse::int + core::convert::Into>(s: S) -> core::result::Result pub fn bitcoin_units::weight::Weight::add(self, rhs: bitcoin_units::weight::Weight) -> Self::Output pub fn bitcoin_units::weight::Weight::add_assign(&mut self, rhs: Self) @@ -862,6 +944,8 @@ pub struct bitcoin_units::locktime::absolute::Time(_) pub struct bitcoin_units::locktime::relative::Height(_) pub struct bitcoin_units::locktime::relative::Time(_) pub struct bitcoin_units::locktime::relative::TimeOverflowError +pub struct bitcoin_units::parse::ContainsPrefixError +pub struct bitcoin_units::parse::MissingPrefixError pub struct bitcoin_units::weight::Weight(_) pub trait bitcoin_units::amount::CheckedSum: private::SumSeal pub trait bitcoin_units::parse::Integer: core::str::traits::FromStr + core::convert::TryFrom + core::marker::Sized diff --git a/bitcoin/src/blockdata/locktime/absolute.rs b/bitcoin/src/blockdata/locktime/absolute.rs index 548bf8e30..c111c4b6f 100644 --- a/bitcoin/src/blockdata/locktime/absolute.rs +++ b/bitcoin/src/blockdata/locktime/absolute.rs @@ -11,12 +11,11 @@ use core::fmt; use io::{BufRead, Write}; #[cfg(all(test, mutate))] use mutagen::mutate; -use units::parse; +use units::parse::{self, PrefixedHexError, UnprefixedHexError}; #[cfg(doc)] use crate::absolute; use crate::consensus::encode::{self, Decodable, Encodable}; -use crate::error::{ContainsPrefixError, MissingPrefixError, PrefixedHexError, UnprefixedHexError}; #[rustfmt::skip] // Keep public re-exports separate. #[doc(inline)] @@ -92,26 +91,15 @@ impl LockTime { /// The number of bytes that the locktime contributes to the size of a transaction. pub const SIZE: usize = 4; // Serialized length of a u32. - /// Creates a `LockTime` from an prefixed hex string. + /// Creates a `LockTime` from a prefixed hex string. pub fn from_hex(s: &str) -> Result { - let stripped = if let Some(stripped) = s.strip_prefix("0x") { - stripped - } else if let Some(stripped) = s.strip_prefix("0X") { - stripped - } else { - return Err(MissingPrefixError::new(s).into()); - }; - - let lock_time = parse::hex_u32(stripped)?; + let lock_time = parse::hex_u32_prefixed(s)?; Ok(Self::from_consensus(lock_time)) } /// Creates a `LockTime` from an unprefixed hex string. pub fn from_unprefixed_hex(s: &str) -> Result { - if s.starts_with("0x") || s.starts_with("0X") { - return Err(ContainsPrefixError::new(s).into()); - } - let lock_time = parse::hex_u32(s)?; + let lock_time = parse::hex_u32_unprefixed(s)?; Ok(Self::from_consensus(lock_time)) } diff --git a/bitcoin/src/blockdata/transaction.rs b/bitcoin/src/blockdata/transaction.rs index 0de951c79..26948bbe3 100644 --- a/bitcoin/src/blockdata/transaction.rs +++ b/bitcoin/src/blockdata/transaction.rs @@ -15,7 +15,7 @@ use core::{cmp, fmt, str}; use hashes::{sha256d, Hash}; use internals::write_err; use io::{BufRead, Write}; -use units::parse; +use units::parse::{self, PrefixedHexError, UnprefixedHexError}; use super::Weight; use crate::blockdata::locktime::absolute::{self, Height, Time}; @@ -24,7 +24,6 @@ use crate::blockdata::script::{Script, ScriptBuf}; use crate::blockdata::witness::Witness; use crate::blockdata::FeeRate; use crate::consensus::{encode, Decodable, Encodable}; -use crate::error::{ContainsPrefixError, MissingPrefixError, PrefixedHexError, UnprefixedHexError}; use crate::internal_macros::{impl_consensus_encoding, impl_hashencode}; use crate::prelude::*; #[cfg(doc)] @@ -121,7 +120,7 @@ pub enum ParseOutPointError { /// Error in TXID part. Txid(hex::HexToArrayError), /// Error in vout part. - Vout(crate::error::ParseIntError), + Vout(parse::ParseIntError), /// Error in general format. Format, /// Size exceeds max. @@ -404,26 +403,15 @@ impl Sequence { self.is_relative_lock_time() & (self.0 & Sequence::LOCK_TYPE_MASK > 0) } - /// Creates a `Sequence` from an prefixed hex string. + /// Creates a `Sequence` from a prefixed hex string. pub fn from_hex(s: &str) -> Result { - let stripped = if let Some(stripped) = s.strip_prefix("0x") { - stripped - } else if let Some(stripped) = s.strip_prefix("0X") { - stripped - } else { - return Err(MissingPrefixError::new(s).into()); - }; - - let sequence = parse::hex_u32(stripped)?; - Ok(Self::from_consensus(sequence)) + let lock_time = parse::hex_u32_prefixed(s)?; + Ok(Self::from_consensus(lock_time)) } /// Creates a `Sequence` from an unprefixed hex string. pub fn from_unprefixed_hex(s: &str) -> Result { - if s.starts_with("0x") || s.starts_with("0X") { - return Err(ContainsPrefixError::new(s).into()); - } - let lock_time = parse::hex_u32(s)?; + let lock_time = parse::hex_u32_unprefixed(s)?; Ok(Self::from_consensus(lock_time)) } diff --git a/bitcoin/src/error.rs b/bitcoin/src/error.rs deleted file mode 100644 index da9d60744..000000000 --- a/bitcoin/src/error.rs +++ /dev/null @@ -1,132 +0,0 @@ -// SPDX-License-Identifier: CC0-1.0 - -//! Contains error types and other error handling tools. - -use core::fmt; - -use internals::write_err; - -use crate::prelude::*; - -#[rustfmt::skip] // Keep public re-exports separate. -#[doc(inline)] -pub use crate::parse::ParseIntError; - -/// Error returned when parsing integer from an supposedly prefixed hex string for -/// a type that can be created infallibly from an integer. -#[derive(Debug, Clone, Eq, PartialEq)] -pub enum PrefixedHexError { - /// Hex string is missing prefix. - MissingPrefix(MissingPrefixError), - /// Error parsing integer from hex string. - ParseInt(ParseIntError), -} - -impl fmt::Display for PrefixedHexError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - use PrefixedHexError::*; - - match *self { - MissingPrefix(ref e) => write_err!(f, "hex string is missing prefix"; e), - ParseInt(ref e) => write_err!(f, "prefixed hex string invalid int"; e), - } - } -} - -#[cfg(feature = "std")] -impl std::error::Error for PrefixedHexError { - fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { - use PrefixedHexError::*; - - match *self { - MissingPrefix(ref e) => Some(e), - ParseInt(ref e) => Some(e), - } - } -} - -impl From for PrefixedHexError { - fn from(e: MissingPrefixError) -> Self { Self::MissingPrefix(e) } -} - -impl From for PrefixedHexError { - fn from(e: ParseIntError) -> Self { Self::ParseInt(e) } -} - -/// Error returned when parsing integer from an supposedly un-prefixed hex string. -#[derive(Debug, Clone, Eq, PartialEq)] -pub enum UnprefixedHexError { - /// Hex string contains prefix. - ContainsPrefix(ContainsPrefixError), - /// Error parsing integer from string. - ParseInt(ParseIntError), -} - -impl fmt::Display for UnprefixedHexError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - use UnprefixedHexError::*; - - match *self { - ContainsPrefix(ref e) => write_err!(f, "hex string is contains prefix"; e), - ParseInt(ref e) => write_err!(f, "hex string parse int"; e), - } - } -} - -#[cfg(feature = "std")] -impl std::error::Error for UnprefixedHexError { - fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { - use UnprefixedHexError::*; - - match *self { - ContainsPrefix(ref e) => Some(e), - ParseInt(ref e) => Some(e), - } - } -} - -impl From for UnprefixedHexError { - fn from(e: ContainsPrefixError) -> Self { Self::ContainsPrefix(e) } -} - -impl From for UnprefixedHexError { - fn from(e: ParseIntError) -> Self { Self::ParseInt(e) } -} - -/// Error when hex string is missing a prefix (e.g. 0x). -#[derive(Debug, Clone, Eq, PartialEq)] -pub struct MissingPrefixError { - hex: String, -} - -impl MissingPrefixError { - pub(crate) fn new(s: &str) -> Self { Self { hex: s.into() } } -} - -impl fmt::Display for MissingPrefixError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "hex string is missing a prefix (e.g. 0x): {}", self.hex) - } -} - -#[cfg(feature = "std")] -impl std::error::Error for MissingPrefixError {} - -/// Error when hex string contains a prefix (e.g. 0x). -#[derive(Debug, Clone, Eq, PartialEq)] -pub struct ContainsPrefixError { - hex: String, -} - -impl ContainsPrefixError { - pub(crate) fn new(s: &str) -> Self { Self { hex: s.into() } } -} - -impl fmt::Display for ContainsPrefixError { - fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "hex string contains a prefix: {}", self.hex) - } -} - -#[cfg(feature = "std")] -impl std::error::Error for ContainsPrefixError {} diff --git a/bitcoin/src/lib.rs b/bitcoin/src/lib.rs index 3d10ba656..3db99fa7d 100644 --- a/bitcoin/src/lib.rs +++ b/bitcoin/src/lib.rs @@ -100,7 +100,6 @@ pub mod blockdata; pub mod consensus; // Private until we either make this a crate or flatten it - still to be decided. pub(crate) mod crypto; -pub mod error; pub mod hash_types; pub mod merkle_tree; pub mod network; diff --git a/bitcoin/src/pow.rs b/bitcoin/src/pow.rs index 9c5501031..1642bef46 100644 --- a/bitcoin/src/pow.rs +++ b/bitcoin/src/pow.rs @@ -12,15 +12,12 @@ use core::ops::{Add, Div, Mul, Not, Rem, Shl, Shr, Sub}; use io::{BufRead, Write}; #[cfg(all(test, mutate))] use mutagen::mutate; -use units::parse; +use units::parse::{self, ParseIntError, PrefixedHexError, UnprefixedHexError}; use crate::block::Header; use crate::blockdata::block::BlockHash; use crate::consensus::encode::{self, Decodable, Encodable}; use crate::consensus::Params; -use crate::error::{ - ContainsPrefixError, MissingPrefixError, ParseIntError, PrefixedHexError, UnprefixedHexError, -}; /// Implement traits and methods shared by `Target` and `Work`. macro_rules! do_impl { @@ -350,27 +347,16 @@ do_impl!(Target); pub struct CompactTarget(u32); impl CompactTarget { - /// Creates a `CompactTarget` from an prefixed hex string. + /// Creates a `CompactTarget` from a prefixed hex string. pub fn from_hex(s: &str) -> Result { - let stripped = if let Some(stripped) = s.strip_prefix("0x") { - stripped - } else if let Some(stripped) = s.strip_prefix("0X") { - stripped - } else { - return Err(MissingPrefixError::new(s).into()); - }; - - let target = parse::hex_u32(stripped)?; + let target = parse::hex_u32_prefixed(s)?; Ok(Self::from_consensus(target)) } /// Creates a `CompactTarget` from an unprefixed hex string. pub fn from_unprefixed_hex(s: &str) -> Result { - if s.starts_with("0x") || s.starts_with("0X") { - return Err(ContainsPrefixError::new(s).into()); - } - let lock_time = parse::hex_u32(s)?; - Ok(Self::from_consensus(lock_time)) + let target = parse::hex_u32_unprefixed(s)?; + Ok(Self::from_consensus(target)) } /// Computes the [`CompactTarget`] from a difficulty adjustment. @@ -499,36 +485,28 @@ impl U256 { /// Creates a `U256` from a prefixed hex string. fn from_hex(s: &str) -> Result { - let stripped = if let Some(stripped) = s.strip_prefix("0x") { - stripped - } else if let Some(stripped) = s.strip_prefix("0X") { - stripped - } else { - return Err(MissingPrefixError::new(s).into()); - }; - Ok(U256::from_hex_internal(stripped)?) + let checked = parse::hex_remove_prefix(s)?; + Ok(U256::from_hex_internal(checked)?) } /// Creates a `U256` from an unprefixed hex string. fn from_unprefixed_hex(s: &str) -> Result { - if s.starts_with("0x") || s.starts_with("0X") { - return Err(ContainsPrefixError::new(s).into()); - } - Ok(U256::from_hex_internal(s)?) + let checked = parse::hex_check_unprefixed(s)?; + Ok(U256::from_hex_internal(checked)?) } // Caller to ensure `s` does not contain a prefix. fn from_hex_internal(s: &str) -> Result { let (high, low) = if s.len() < 32 { - let low = parse::hex_u128(s)?; + let low = parse::hex_u128_unchecked(s)?; (0, low) } else { let high_len = s.len() - 32; let high_s = &s[..high_len]; let low_s = &s[high_len..]; - let high = parse::hex_u128(high_s)?; - let low = parse::hex_u128(low_s)?; + let high = parse::hex_u128_unchecked(high_s)?; + let low = parse::hex_u128_unchecked(low_s)?; (high, low) }; diff --git a/units/src/locktime/absolute.rs b/units/src/locktime/absolute.rs index f786c0b6c..9b97a4be7 100644 --- a/units/src/locktime/absolute.rs +++ b/units/src/locktime/absolute.rs @@ -6,7 +6,9 @@ use core::fmt; use internals::write_err; -use crate::parse::{self, ParseIntError}; +use crate::parse::ParseIntError; +#[cfg(feature = "alloc")] +use crate::parse; #[cfg(feature = "alloc")] use crate::prelude::*; @@ -233,7 +235,7 @@ where S: AsRef + Into, F: FnOnce(u32) -> Result, { - let n = i64::from_str_radix(parse::strip_hex_prefix(s.as_ref()), 16) + let n = i64::from_str_radix(parse::hex_remove_optional_prefix(s.as_ref()), 16) .map_err(ParseError::invalid_int(s))?; let n = u32::try_from(n).map_err(|_| ParseError::Conversion(n))?; f(n).map_err(ParseError::from).map_err(Into::into) diff --git a/units/src/parse.rs b/units/src/parse.rs index 967113f94..46b411f29 100644 --- a/units/src/parse.rs +++ b/units/src/parse.rs @@ -88,43 +88,6 @@ pub fn int + Into>(s: S) -> Result + Into>(s: S) -> Result { - let stripped = strip_hex_prefix(s.as_ref()); - u32::from_str_radix(stripped, 16).map_err(|error| ParseIntError { - input: s.into(), - bits: 32, - is_signed: false, - source: error, - }) -} - -/// Parses a `u128` from a hex string. -/// -/// Input string may or may not contain a `0x` prefix. -pub fn hex_u128 + Into>(s: S) -> Result { - let stripped = strip_hex_prefix(s.as_ref()); - u128::from_str_radix(stripped, 16).map_err(|error| ParseIntError { - input: s.into(), - bits: 128, - is_signed: false, - source: error, - }) -} - -/// Strips the hex prefix off `s` if one is present. -pub(crate) fn strip_hex_prefix(s: &str) -> &str { - if let Some(stripped) = s.strip_prefix("0x") { - stripped - } else if let Some(stripped) = s.strip_prefix("0X") { - stripped - } else { - s - } -} - /// Implements `TryFrom<$from> for $to` using `parse::int`, mapping the output using infallible /// conversion function `fn`. #[macro_export] @@ -197,6 +160,263 @@ macro_rules! impl_parse_str { } } +/// Removes the prefix `0x` (or `0X`) from hex string. +/// +/// # Errors +/// +/// If input string does not contain a prefix. +pub fn hex_remove_prefix(s: &str) -> Result<&str, PrefixedHexError> { + if let Some(checked) = s.strip_prefix("0x") { + Ok(checked) + } else if let Some(checked) = s.strip_prefix("0X") { + Ok(checked) + } else { + Err(MissingPrefixError::new(s.into()).into()) + } +} + +/// Checks hex string does not have a prefix `0x` (or `0X`). +/// +/// # Errors +/// +/// If input string contains a prefix. +pub fn hex_check_unprefixed(s: &str) -> Result<&str, UnprefixedHexError> { + if s.starts_with("0x") || s.starts_with("0X") { + return Err(ContainsPrefixError::new(s.into()).into()); + } + Ok(s) +} + +/// Parses a `u32` from a hex string. +/// +/// Input string may or may not contain a `0x` (or `0X`) prefix. +/// +/// # Errors +/// +/// If the input string is not a valid hex encoding of a `u32`. +pub fn hex_u32(s: &str) -> Result { + let unchecked = hex_remove_optional_prefix(s); + Ok(hex_u32_unchecked(unchecked)?) +} + +/// Parses a `u32` from a prefixed hex string. +/// +/// # Errors +/// +/// - If input string does not contain a `0x` (or `0X`) prefix. +/// - If input string is not a valid hex encoding of a `u32`. +pub fn hex_u32_prefixed(s: &str) -> Result { + let checked = hex_remove_prefix(s)?; + Ok(hex_u32_unchecked(checked)?) +} + +/// Parses a `u32` from an unprefixed hex string. +/// +/// # Errors +/// +/// - If input string contains a `0x` (or `0X`) prefix. +/// - If input string is not a valid hex encoding of a `u32`. +pub fn hex_u32_unprefixed(s: &str) -> Result { + let checked = hex_check_unprefixed(s)?; + Ok(hex_u32_unchecked(checked)?) +} + +/// Parses a `u32` from a hex string. +/// +/// # Errors +/// +/// - If input string is not a valid hex encoding of a `u32`. +/// - With `InvalidDigit` due to the `x` if there is a prefix. +pub fn hex_u32_unchecked(s: &str) -> Result { + u32::from_str_radix(s, 16).map_err(|error| ParseIntError { + input: s.into(), + bits: 32, + is_signed: false, + source: error, + }) +} + +/// Parses a `u128` from a hex string. +/// +/// Input string may or may not contain a `0x` (or `0X`) prefix. +/// +/// # Errors +/// +/// If the input string is not a valid hex encoding of a `u128`. +pub fn hex_u128(s: &str) -> Result { + let unchecked = hex_remove_optional_prefix(s); + Ok(hex_u128_unchecked(unchecked)?) +} + +/// Parses a `u128` from a hex string. +/// +/// # Errors +/// +/// - If input string does not contain a `0x` (or `0X`) prefix. +/// - If input string is not a valid hex encoding of a `u128`. +pub fn hex_u128_prefixed(s: &str) -> Result { + let checked = hex_remove_prefix(s)?; + Ok(hex_u128_unchecked(checked)?) +} + +/// Parses a `u128` from a hex string. +/// +/// # Errors +/// +/// - If input string contains a `0x` (or `0X`) prefix. +/// - If input string is not a valid hex encoding of a `u128`. +pub fn hex_u128_unprefixed(s: &str) -> Result { + let checked = hex_check_unprefixed(s)?; + Ok(hex_u128_unchecked(checked)?) +} + +/// Parses a `u128` from a hex string. +/// +/// # Errors +/// +/// - If input string is not a valid hex encoding of a `u128`. +/// - With `InvalidDigit` due to the `x` if there is a prefix. +pub fn hex_u128_unchecked(s: &str) -> Result { + u128::from_str_radix(s, 16).map_err(|error| ParseIntError { + input: s.into(), + bits: 128, + is_signed: false, + source: error, + }) +} + +/// Strips the hex prefix off `s` if one is present. +pub(crate) fn hex_remove_optional_prefix(s: &str) -> &str { + if let Some(stripped) = s.strip_prefix("0x") { + stripped + } else if let Some(stripped) = s.strip_prefix("0X") { + stripped + } else { + s + } +} + +/// Error returned when parsing integer from an supposedly prefixed hex string for +/// a type that can be created infallibly from an integer. +#[derive(Debug, Clone, Eq, PartialEq)] +pub enum PrefixedHexError { + /// Hex string is missing prefix. + MissingPrefix(MissingPrefixError), + /// Error parsing integer from hex string. + ParseInt(ParseIntError), +} + +impl fmt::Display for PrefixedHexError { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + use PrefixedHexError::*; + + match *self { + MissingPrefix(ref e) => write_err!(f, "hex string is missing prefix"; e), + ParseInt(ref e) => write_err!(f, "prefixed hex string invalid int"; e), + } + } +} + +#[cfg(feature = "std")] +impl std::error::Error for PrefixedHexError { + fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { + use PrefixedHexError::*; + + match *self { + MissingPrefix(ref e) => Some(e), + ParseInt(ref e) => Some(e), + } + } +} + +impl From for PrefixedHexError { + fn from(e: MissingPrefixError) -> Self { Self::MissingPrefix(e) } +} + +impl From for PrefixedHexError { + fn from(e: ParseIntError) -> Self { Self::ParseInt(e) } +} + +/// Error returned when parsing integer from an supposedly un-prefixed hex string. +#[derive(Debug, Clone, Eq, PartialEq)] +pub enum UnprefixedHexError { + /// Hex string contains prefix. + ContainsPrefix(ContainsPrefixError), + /// Error parsing integer from string. + ParseInt(ParseIntError), +} + +impl fmt::Display for UnprefixedHexError { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + use UnprefixedHexError::*; + + match *self { + ContainsPrefix(ref e) => write_err!(f, "hex string is contains prefix"; e), + ParseInt(ref e) => write_err!(f, "hex string parse int"; e), + } + } +} + +#[cfg(feature = "std")] +impl std::error::Error for UnprefixedHexError { + fn source(&self) -> Option<&(dyn std::error::Error + 'static)> { + use UnprefixedHexError::*; + + match *self { + ContainsPrefix(ref e) => Some(e), + ParseInt(ref e) => Some(e), + } + } +} + +impl From for UnprefixedHexError { + fn from(e: ContainsPrefixError) -> Self { Self::ContainsPrefix(e) } +} + +impl From for UnprefixedHexError { + fn from(e: ParseIntError) -> Self { Self::ParseInt(e) } +} + +/// Error when hex string is missing a prefix (e.g. 0x). +#[derive(Debug, Clone, Eq, PartialEq)] +pub struct MissingPrefixError { + hex: String, +} + +impl MissingPrefixError { + /// Creates an error from the string with the missing prefix. + pub(crate) fn new(hex: String) -> Self { Self { hex } } +} + +impl fmt::Display for MissingPrefixError { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "hex string is missing a prefix (e.g. 0x): {}", self.hex) + } +} + +#[cfg(feature = "std")] +impl std::error::Error for MissingPrefixError {} + +/// Error when hex string contains a prefix (e.g. 0x). +#[derive(Debug, Clone, Eq, PartialEq)] +pub struct ContainsPrefixError { + hex: String, +} + +impl ContainsPrefixError { + /// Creates an error from the string that contains the prefix. + pub(crate) fn new(hex: String) -> Self { Self { hex } } +} + +impl fmt::Display for ContainsPrefixError { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + write!(f, "hex string contains a prefix: {}", self.hex) + } +} + +#[cfg(feature = "std")] +impl std::error::Error for ContainsPrefixError {} + #[cfg(test)] mod tests { use super::*; @@ -228,4 +448,9 @@ mod tests { let got = hex_u128("deadbeef").expect("failed to parse non-prefixed hex"); assert_eq!(got, want); } + + #[test] + fn parse_u32_from_hex_unchecked_errors_on_prefix() { + assert!(hex_u32_unchecked("0xab").is_err()); + } }