diff --git a/api/bitcoin/all-features.txt b/api/bitcoin/all-features.txt index 0997c3231..821473ac6 100644 --- a/api/bitcoin/all-features.txt +++ b/api/bitcoin/all-features.txt @@ -1,6 +1,7 @@ #[non_exhaustive] pub enum bitcoin::AddressType #[non_exhaustive] pub enum bitcoin::KnownHrp #[non_exhaustive] pub enum bitcoin::Network +#[non_exhaustive] pub enum bitcoin::address::AddressData #[non_exhaustive] pub enum bitcoin::address::AddressType #[non_exhaustive] pub enum bitcoin::address::FromScriptError #[non_exhaustive] pub enum bitcoin::address::KnownHrp @@ -539,6 +540,7 @@ impl core::clone::Clone for bitcoin::TapSighash impl core::clone::Clone for bitcoin::TapSighashTag impl core::clone::Clone for bitcoin::TapSighashType impl core::clone::Clone for bitcoin::WPubkeyHash +impl core::clone::Clone for bitcoin::address::AddressData impl core::clone::Clone for bitcoin::address::AddressType impl core::clone::Clone for bitcoin::address::KnownHrp impl core::clone::Clone for bitcoin::address::NetworkChecked @@ -737,6 +739,7 @@ impl core::cmp::Eq for bitcoin::TapSighash impl core::cmp::Eq for bitcoin::TapSighashTag impl core::cmp::Eq for bitcoin::TapSighashType impl core::cmp::Eq for bitcoin::WPubkeyHash +impl core::cmp::Eq for bitcoin::address::AddressData impl core::cmp::Eq for bitcoin::address::AddressType impl core::cmp::Eq for bitcoin::address::KnownHrp impl core::cmp::Eq for bitcoin::address::NetworkChecked @@ -931,6 +934,7 @@ impl core::cmp::Ord for bitcoin::TapSighash impl core::cmp::Ord for bitcoin::TapSighashTag impl core::cmp::Ord for bitcoin::TapSighashType impl core::cmp::Ord for bitcoin::WPubkeyHash +impl core::cmp::Ord for bitcoin::address::AddressData impl core::cmp::Ord for bitcoin::address::AddressType impl core::cmp::Ord for bitcoin::address::KnownHrp impl core::cmp::Ord for bitcoin::address::NetworkChecked @@ -1023,6 +1027,7 @@ impl core::cmp::PartialEq for bitcoin::TapSighash impl core::cmp::PartialEq for bitcoin::TapSighashTag impl core::cmp::PartialEq for bitcoin::TapSighashType impl core::cmp::PartialEq for bitcoin::WPubkeyHash +impl core::cmp::PartialEq for bitcoin::address::AddressData impl core::cmp::PartialEq for bitcoin::address::AddressType impl core::cmp::PartialEq for bitcoin::address::KnownHrp impl core::cmp::PartialEq for bitcoin::address::NetworkChecked @@ -1221,6 +1226,7 @@ impl core::cmp::PartialOrd for bitcoin::TapSighash impl core::cmp::PartialOrd for bitcoin::TapSighashTag impl core::cmp::PartialOrd for bitcoin::TapSighashType impl core::cmp::PartialOrd for bitcoin::WPubkeyHash +impl core::cmp::PartialOrd for bitcoin::address::AddressData impl core::cmp::PartialOrd for bitcoin::address::AddressType impl core::cmp::PartialOrd for bitcoin::address::KnownHrp impl core::cmp::PartialOrd for bitcoin::address::NetworkChecked @@ -2082,6 +2088,7 @@ impl core::fmt::Debug for bitcoin::SegwitV0Sighash impl core::fmt::Debug for bitcoin::TapSighash impl core::fmt::Debug for bitcoin::TapSighashType impl core::fmt::Debug for bitcoin::WPubkeyHash +impl core::fmt::Debug for bitcoin::address::AddressData impl core::fmt::Debug for bitcoin::address::AddressType impl core::fmt::Debug for bitcoin::address::KnownHrp impl core::fmt::Debug for bitcoin::address::NetworkChecked @@ -2481,6 +2488,7 @@ impl core::hash::Hash for bitcoin::TapSighash impl core::hash::Hash for bitcoin::TapSighashTag impl core::hash::Hash for bitcoin::TapSighashType impl core::hash::Hash for bitcoin::WPubkeyHash +impl core::hash::Hash for bitcoin::address::AddressData impl core::hash::Hash for bitcoin::address::AddressType impl core::hash::Hash for bitcoin::address::KnownHrp impl core::hash::Hash for bitcoin::address::NetworkChecked @@ -2673,6 +2681,7 @@ impl core::marker::Freeze for bitcoin::TapSighash impl core::marker::Freeze for bitcoin::TapSighashTag impl core::marker::Freeze for bitcoin::TapSighashType impl core::marker::Freeze for bitcoin::WPubkeyHash +impl core::marker::Freeze for bitcoin::address::AddressData impl core::marker::Freeze for bitcoin::address::AddressType impl core::marker::Freeze for bitcoin::address::KnownHrp impl core::marker::Freeze for bitcoin::address::NetworkChecked @@ -2883,6 +2892,7 @@ impl core::marker::Send for bitcoin::TapSighash impl core::marker::Send for bitcoin::TapSighashTag impl core::marker::Send for bitcoin::TapSighashType impl core::marker::Send for bitcoin::WPubkeyHash +impl core::marker::Send for bitcoin::address::AddressData impl core::marker::Send for bitcoin::address::AddressType impl core::marker::Send for bitcoin::address::KnownHrp impl core::marker::Send for bitcoin::address::NetworkChecked @@ -3093,6 +3103,7 @@ impl core::marker::StructuralPartialEq for bitcoin::TapSighash impl core::marker::StructuralPartialEq for bitcoin::TapSighashTag impl core::marker::StructuralPartialEq for bitcoin::TapSighashType impl core::marker::StructuralPartialEq for bitcoin::WPubkeyHash +impl core::marker::StructuralPartialEq for bitcoin::address::AddressData impl core::marker::StructuralPartialEq for bitcoin::address::AddressType impl core::marker::StructuralPartialEq for bitcoin::address::KnownHrp impl core::marker::StructuralPartialEq for bitcoin::address::NetworkChecked @@ -3287,6 +3298,7 @@ impl core::marker::Sync for bitcoin::TapSighash impl core::marker::Sync for bitcoin::TapSighashTag impl core::marker::Sync for bitcoin::TapSighashType impl core::marker::Sync for bitcoin::WPubkeyHash +impl core::marker::Sync for bitcoin::address::AddressData impl core::marker::Sync for bitcoin::address::AddressType impl core::marker::Sync for bitcoin::address::KnownHrp impl core::marker::Sync for bitcoin::address::NetworkChecked @@ -3497,6 +3509,7 @@ impl core::marker::Unpin for bitcoin::TapSighash impl core::marker::Unpin for bitcoin::TapSighashTag impl core::marker::Unpin for bitcoin::TapSighashType impl core::marker::Unpin for bitcoin::WPubkeyHash +impl core::marker::Unpin for bitcoin::address::AddressData impl core::marker::Unpin for bitcoin::address::AddressType impl core::marker::Unpin for bitcoin::address::KnownHrp impl core::marker::Unpin for bitcoin::address::NetworkChecked @@ -3739,6 +3752,7 @@ impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::TapSighash impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::TapSighashTag impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::TapSighashType impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::WPubkeyHash +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::address::AddressData impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::address::AddressType impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::address::KnownHrp impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::address::NetworkChecked @@ -3944,6 +3958,7 @@ impl core::panic::unwind_safe::UnwindSafe for bitcoin::TapSighash impl core::panic::unwind_safe::UnwindSafe for bitcoin::TapSighashTag impl core::panic::unwind_safe::UnwindSafe for bitcoin::TapSighashType impl core::panic::unwind_safe::UnwindSafe for bitcoin::WPubkeyHash +impl core::panic::unwind_safe::UnwindSafe for bitcoin::address::AddressData impl core::panic::unwind_safe::UnwindSafe for bitcoin::address::AddressType impl core::panic::unwind_safe::UnwindSafe for bitcoin::address::KnownHrp impl core::panic::unwind_safe::UnwindSafe for bitcoin::address::NetworkChecked @@ -4965,6 +4980,12 @@ pub bitcoin::WitnessVersion::V8 = 8 pub bitcoin::WitnessVersion::V9 = 9 pub bitcoin::absolute::LockTime::Blocks(bitcoin_units::locktime::absolute::Height) pub bitcoin::absolute::LockTime::Seconds(bitcoin_units::locktime::absolute::Time) +pub bitcoin::address::AddressData::P2pkh +pub bitcoin::address::AddressData::P2pkh::pubkey_hash: bitcoin::PubkeyHash +pub bitcoin::address::AddressData::P2sh +pub bitcoin::address::AddressData::P2sh::script_hash: bitcoin::blockdata::script::ScriptHash +pub bitcoin::address::AddressData::Segwit +pub bitcoin::address::AddressData::Segwit::witness_program: bitcoin::blockdata::script::witness_program::WitnessProgram pub bitcoin::address::AddressType::P2pkh pub bitcoin::address::AddressType::P2sh pub bitcoin::address::AddressType::P2tr @@ -7067,6 +7088,7 @@ pub fn bitcoin::address::Address::p2wsh(script: &bitcoin::blockdata::script::Scr pub fn bitcoin::address::Address::pubkey_hash(&self) -> core::option::Option pub fn bitcoin::address::Address::script_hash(&self) -> core::option::Option pub fn bitcoin::address::Address::script_pubkey(&self) -> bitcoin::blockdata::script::ScriptBuf +pub fn bitcoin::address::Address::to_address_data(&self) -> bitcoin::address::AddressData pub fn bitcoin::address::Address::to_qr_uri(&self) -> alloc::string::String pub fn bitcoin::address::Address::witness_program(&self) -> core::option::Option pub fn bitcoin::address::Address::serialize(&self, serializer: S) -> core::result::Result<::Ok, ::Error> where S: serde::ser::Serializer @@ -7083,6 +7105,12 @@ pub fn bitcoin::address::Address::deserializ pub fn bitcoin::address::Address::from_str(s: &str) -> core::result::Result, bitcoin::address::error::ParseError> pub fn bitcoin::address::Address::is_valid_for_network(&self, n: bitcoin::network::Network) -> bool pub fn bitcoin::address::Address::require_network(self, required: bitcoin::network::Network) -> core::result::Result +pub fn bitcoin::address::AddressData::clone(&self) -> bitcoin::address::AddressData +pub fn bitcoin::address::AddressData::cmp(&self, other: &bitcoin::address::AddressData) -> core::cmp::Ordering +pub fn bitcoin::address::AddressData::eq(&self, other: &bitcoin::address::AddressData) -> bool +pub fn bitcoin::address::AddressData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin::address::AddressData::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin::address::AddressData::partial_cmp(&self, other: &bitcoin::address::AddressData) -> core::option::Option pub fn bitcoin::address::AddressType::clone(&self) -> bitcoin::address::AddressType pub fn bitcoin::address::AddressType::cmp(&self, other: &bitcoin::address::AddressType) -> core::cmp::Ordering pub fn bitcoin::address::AddressType::eq(&self, other: &bitcoin::address::AddressType) -> bool diff --git a/api/bitcoin/default-features.txt b/api/bitcoin/default-features.txt index ad867e9b8..6c3807b37 100644 --- a/api/bitcoin/default-features.txt +++ b/api/bitcoin/default-features.txt @@ -1,6 +1,7 @@ #[non_exhaustive] pub enum bitcoin::AddressType #[non_exhaustive] pub enum bitcoin::KnownHrp #[non_exhaustive] pub enum bitcoin::Network +#[non_exhaustive] pub enum bitcoin::address::AddressData #[non_exhaustive] pub enum bitcoin::address::AddressType #[non_exhaustive] pub enum bitcoin::address::FromScriptError #[non_exhaustive] pub enum bitcoin::address::KnownHrp @@ -511,6 +512,7 @@ impl core::clone::Clone for bitcoin::TapSighash impl core::clone::Clone for bitcoin::TapSighashTag impl core::clone::Clone for bitcoin::TapSighashType impl core::clone::Clone for bitcoin::WPubkeyHash +impl core::clone::Clone for bitcoin::address::AddressData impl core::clone::Clone for bitcoin::address::AddressType impl core::clone::Clone for bitcoin::address::KnownHrp impl core::clone::Clone for bitcoin::address::NetworkChecked @@ -705,6 +707,7 @@ impl core::cmp::Eq for bitcoin::TapSighash impl core::cmp::Eq for bitcoin::TapSighashTag impl core::cmp::Eq for bitcoin::TapSighashType impl core::cmp::Eq for bitcoin::WPubkeyHash +impl core::cmp::Eq for bitcoin::address::AddressData impl core::cmp::Eq for bitcoin::address::AddressType impl core::cmp::Eq for bitcoin::address::KnownHrp impl core::cmp::Eq for bitcoin::address::NetworkChecked @@ -895,6 +898,7 @@ impl core::cmp::Ord for bitcoin::TapSighash impl core::cmp::Ord for bitcoin::TapSighashTag impl core::cmp::Ord for bitcoin::TapSighashType impl core::cmp::Ord for bitcoin::WPubkeyHash +impl core::cmp::Ord for bitcoin::address::AddressData impl core::cmp::Ord for bitcoin::address::AddressType impl core::cmp::Ord for bitcoin::address::KnownHrp impl core::cmp::Ord for bitcoin::address::NetworkChecked @@ -987,6 +991,7 @@ impl core::cmp::PartialEq for bitcoin::TapSighash impl core::cmp::PartialEq for bitcoin::TapSighashTag impl core::cmp::PartialEq for bitcoin::TapSighashType impl core::cmp::PartialEq for bitcoin::WPubkeyHash +impl core::cmp::PartialEq for bitcoin::address::AddressData impl core::cmp::PartialEq for bitcoin::address::AddressType impl core::cmp::PartialEq for bitcoin::address::KnownHrp impl core::cmp::PartialEq for bitcoin::address::NetworkChecked @@ -1181,6 +1186,7 @@ impl core::cmp::PartialOrd for bitcoin::TapSighash impl core::cmp::PartialOrd for bitcoin::TapSighashTag impl core::cmp::PartialOrd for bitcoin::TapSighashType impl core::cmp::PartialOrd for bitcoin::WPubkeyHash +impl core::cmp::PartialOrd for bitcoin::address::AddressData impl core::cmp::PartialOrd for bitcoin::address::AddressType impl core::cmp::PartialOrd for bitcoin::address::KnownHrp impl core::cmp::PartialOrd for bitcoin::address::NetworkChecked @@ -2036,6 +2042,7 @@ impl core::fmt::Debug for bitcoin::SegwitV0Sighash impl core::fmt::Debug for bitcoin::TapSighash impl core::fmt::Debug for bitcoin::TapSighashType impl core::fmt::Debug for bitcoin::WPubkeyHash +impl core::fmt::Debug for bitcoin::address::AddressData impl core::fmt::Debug for bitcoin::address::AddressType impl core::fmt::Debug for bitcoin::address::KnownHrp impl core::fmt::Debug for bitcoin::address::NetworkChecked @@ -2425,6 +2432,7 @@ impl core::hash::Hash for bitcoin::TapSighash impl core::hash::Hash for bitcoin::TapSighashTag impl core::hash::Hash for bitcoin::TapSighashType impl core::hash::Hash for bitcoin::WPubkeyHash +impl core::hash::Hash for bitcoin::address::AddressData impl core::hash::Hash for bitcoin::address::AddressType impl core::hash::Hash for bitcoin::address::KnownHrp impl core::hash::Hash for bitcoin::address::NetworkChecked @@ -2617,6 +2625,7 @@ impl core::marker::Freeze for bitcoin::TapSighash impl core::marker::Freeze for bitcoin::TapSighashTag impl core::marker::Freeze for bitcoin::TapSighashType impl core::marker::Freeze for bitcoin::WPubkeyHash +impl core::marker::Freeze for bitcoin::address::AddressData impl core::marker::Freeze for bitcoin::address::AddressType impl core::marker::Freeze for bitcoin::address::KnownHrp impl core::marker::Freeze for bitcoin::address::NetworkChecked @@ -2820,6 +2829,7 @@ impl core::marker::Send for bitcoin::TapSighash impl core::marker::Send for bitcoin::TapSighashTag impl core::marker::Send for bitcoin::TapSighashType impl core::marker::Send for bitcoin::WPubkeyHash +impl core::marker::Send for bitcoin::address::AddressData impl core::marker::Send for bitcoin::address::AddressType impl core::marker::Send for bitcoin::address::KnownHrp impl core::marker::Send for bitcoin::address::NetworkChecked @@ -3023,6 +3033,7 @@ impl core::marker::StructuralPartialEq for bitcoin::TapSighash impl core::marker::StructuralPartialEq for bitcoin::TapSighashTag impl core::marker::StructuralPartialEq for bitcoin::TapSighashType impl core::marker::StructuralPartialEq for bitcoin::WPubkeyHash +impl core::marker::StructuralPartialEq for bitcoin::address::AddressData impl core::marker::StructuralPartialEq for bitcoin::address::AddressType impl core::marker::StructuralPartialEq for bitcoin::address::KnownHrp impl core::marker::StructuralPartialEq for bitcoin::address::NetworkChecked @@ -3213,6 +3224,7 @@ impl core::marker::Sync for bitcoin::TapSighash impl core::marker::Sync for bitcoin::TapSighashTag impl core::marker::Sync for bitcoin::TapSighashType impl core::marker::Sync for bitcoin::WPubkeyHash +impl core::marker::Sync for bitcoin::address::AddressData impl core::marker::Sync for bitcoin::address::AddressType impl core::marker::Sync for bitcoin::address::KnownHrp impl core::marker::Sync for bitcoin::address::NetworkChecked @@ -3416,6 +3428,7 @@ impl core::marker::Unpin for bitcoin::TapSighash impl core::marker::Unpin for bitcoin::TapSighashTag impl core::marker::Unpin for bitcoin::TapSighashType impl core::marker::Unpin for bitcoin::WPubkeyHash +impl core::marker::Unpin for bitcoin::address::AddressData impl core::marker::Unpin for bitcoin::address::AddressType impl core::marker::Unpin for bitcoin::address::KnownHrp impl core::marker::Unpin for bitcoin::address::NetworkChecked @@ -3651,6 +3664,7 @@ impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::TapSighash impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::TapSighashTag impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::TapSighashType impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::WPubkeyHash +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::address::AddressData impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::address::AddressType impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::address::KnownHrp impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::address::NetworkChecked @@ -3850,6 +3864,7 @@ impl core::panic::unwind_safe::UnwindSafe for bitcoin::TapSighash impl core::panic::unwind_safe::UnwindSafe for bitcoin::TapSighashTag impl core::panic::unwind_safe::UnwindSafe for bitcoin::TapSighashType impl core::panic::unwind_safe::UnwindSafe for bitcoin::WPubkeyHash +impl core::panic::unwind_safe::UnwindSafe for bitcoin::address::AddressData impl core::panic::unwind_safe::UnwindSafe for bitcoin::address::AddressType impl core::panic::unwind_safe::UnwindSafe for bitcoin::address::KnownHrp impl core::panic::unwind_safe::UnwindSafe for bitcoin::address::NetworkChecked @@ -4691,6 +4706,12 @@ pub bitcoin::WitnessVersion::V8 = 8 pub bitcoin::WitnessVersion::V9 = 9 pub bitcoin::absolute::LockTime::Blocks(bitcoin_units::locktime::absolute::Height) pub bitcoin::absolute::LockTime::Seconds(bitcoin_units::locktime::absolute::Time) +pub bitcoin::address::AddressData::P2pkh +pub bitcoin::address::AddressData::P2pkh::pubkey_hash: bitcoin::PubkeyHash +pub bitcoin::address::AddressData::P2sh +pub bitcoin::address::AddressData::P2sh::script_hash: bitcoin::blockdata::script::ScriptHash +pub bitcoin::address::AddressData::Segwit +pub bitcoin::address::AddressData::Segwit::witness_program: bitcoin::blockdata::script::witness_program::WitnessProgram pub bitcoin::address::AddressType::P2pkh pub bitcoin::address::AddressType::P2sh pub bitcoin::address::AddressType::P2tr @@ -6735,6 +6756,7 @@ pub fn bitcoin::address::Address::p2wsh(script: &bitcoin::blockdata::script::Scr pub fn bitcoin::address::Address::pubkey_hash(&self) -> core::option::Option pub fn bitcoin::address::Address::script_hash(&self) -> core::option::Option pub fn bitcoin::address::Address::script_pubkey(&self) -> bitcoin::blockdata::script::ScriptBuf +pub fn bitcoin::address::Address::to_address_data(&self) -> bitcoin::address::AddressData pub fn bitcoin::address::Address::to_qr_uri(&self) -> alloc::string::String pub fn bitcoin::address::Address::witness_program(&self) -> core::option::Option pub fn bitcoin::address::Address::as_unchecked(&self) -> &bitcoin::address::Address @@ -6749,6 +6771,12 @@ pub fn bitcoin::address::Address::assume_che pub fn bitcoin::address::Address::from_str(s: &str) -> core::result::Result, bitcoin::address::error::ParseError> pub fn bitcoin::address::Address::is_valid_for_network(&self, n: bitcoin::network::Network) -> bool pub fn bitcoin::address::Address::require_network(self, required: bitcoin::network::Network) -> core::result::Result +pub fn bitcoin::address::AddressData::clone(&self) -> bitcoin::address::AddressData +pub fn bitcoin::address::AddressData::cmp(&self, other: &bitcoin::address::AddressData) -> core::cmp::Ordering +pub fn bitcoin::address::AddressData::eq(&self, other: &bitcoin::address::AddressData) -> bool +pub fn bitcoin::address::AddressData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin::address::AddressData::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin::address::AddressData::partial_cmp(&self, other: &bitcoin::address::AddressData) -> core::option::Option pub fn bitcoin::address::AddressType::clone(&self) -> bitcoin::address::AddressType pub fn bitcoin::address::AddressType::cmp(&self, other: &bitcoin::address::AddressType) -> core::cmp::Ordering pub fn bitcoin::address::AddressType::eq(&self, other: &bitcoin::address::AddressType) -> bool diff --git a/api/bitcoin/no-features.txt b/api/bitcoin/no-features.txt index 2a952ed73..3a4228e4e 100644 --- a/api/bitcoin/no-features.txt +++ b/api/bitcoin/no-features.txt @@ -1,6 +1,7 @@ #[non_exhaustive] pub enum bitcoin::AddressType #[non_exhaustive] pub enum bitcoin::KnownHrp #[non_exhaustive] pub enum bitcoin::Network +#[non_exhaustive] pub enum bitcoin::address::AddressData #[non_exhaustive] pub enum bitcoin::address::AddressType #[non_exhaustive] pub enum bitcoin::address::FromScriptError #[non_exhaustive] pub enum bitcoin::address::KnownHrp @@ -442,6 +443,7 @@ impl core::clone::Clone for bitcoin::TapSighash impl core::clone::Clone for bitcoin::TapSighashTag impl core::clone::Clone for bitcoin::TapSighashType impl core::clone::Clone for bitcoin::WPubkeyHash +impl core::clone::Clone for bitcoin::address::AddressData impl core::clone::Clone for bitcoin::address::AddressType impl core::clone::Clone for bitcoin::address::KnownHrp impl core::clone::Clone for bitcoin::address::NetworkChecked @@ -608,6 +610,7 @@ impl core::cmp::Eq for bitcoin::TapSighash impl core::cmp::Eq for bitcoin::TapSighashTag impl core::cmp::Eq for bitcoin::TapSighashType impl core::cmp::Eq for bitcoin::WPubkeyHash +impl core::cmp::Eq for bitcoin::address::AddressData impl core::cmp::Eq for bitcoin::address::AddressType impl core::cmp::Eq for bitcoin::address::KnownHrp impl core::cmp::Eq for bitcoin::address::NetworkChecked @@ -770,6 +773,7 @@ impl core::cmp::Ord for bitcoin::TapSighash impl core::cmp::Ord for bitcoin::TapSighashTag impl core::cmp::Ord for bitcoin::TapSighashType impl core::cmp::Ord for bitcoin::WPubkeyHash +impl core::cmp::Ord for bitcoin::address::AddressData impl core::cmp::Ord for bitcoin::address::AddressType impl core::cmp::Ord for bitcoin::address::KnownHrp impl core::cmp::Ord for bitcoin::address::NetworkChecked @@ -857,6 +861,7 @@ impl core::cmp::PartialEq for bitcoin::TapSighash impl core::cmp::PartialEq for bitcoin::TapSighashTag impl core::cmp::PartialEq for bitcoin::TapSighashType impl core::cmp::PartialEq for bitcoin::WPubkeyHash +impl core::cmp::PartialEq for bitcoin::address::AddressData impl core::cmp::PartialEq for bitcoin::address::AddressType impl core::cmp::PartialEq for bitcoin::address::KnownHrp impl core::cmp::PartialEq for bitcoin::address::NetworkChecked @@ -1023,6 +1028,7 @@ impl core::cmp::PartialOrd for bitcoin::TapSighash impl core::cmp::PartialOrd for bitcoin::TapSighashTag impl core::cmp::PartialOrd for bitcoin::TapSighashType impl core::cmp::PartialOrd for bitcoin::WPubkeyHash +impl core::cmp::PartialOrd for bitcoin::address::AddressData impl core::cmp::PartialOrd for bitcoin::address::AddressType impl core::cmp::PartialOrd for bitcoin::address::KnownHrp impl core::cmp::PartialOrd for bitcoin::address::NetworkChecked @@ -1796,6 +1802,7 @@ impl core::fmt::Debug for bitcoin::SegwitV0Sighash impl core::fmt::Debug for bitcoin::TapSighash impl core::fmt::Debug for bitcoin::TapSighashType impl core::fmt::Debug for bitcoin::WPubkeyHash +impl core::fmt::Debug for bitcoin::address::AddressData impl core::fmt::Debug for bitcoin::address::AddressType impl core::fmt::Debug for bitcoin::address::KnownHrp impl core::fmt::Debug for bitcoin::address::NetworkChecked @@ -2154,6 +2161,7 @@ impl core::hash::Hash for bitcoin::TapSighash impl core::hash::Hash for bitcoin::TapSighashTag impl core::hash::Hash for bitcoin::TapSighashType impl core::hash::Hash for bitcoin::WPubkeyHash +impl core::hash::Hash for bitcoin::address::AddressData impl core::hash::Hash for bitcoin::address::AddressType impl core::hash::Hash for bitcoin::address::KnownHrp impl core::hash::Hash for bitcoin::address::NetworkChecked @@ -2333,6 +2341,7 @@ impl core::marker::Freeze for bitcoin::TapSighash impl core::marker::Freeze for bitcoin::TapSighashTag impl core::marker::Freeze for bitcoin::TapSighashType impl core::marker::Freeze for bitcoin::WPubkeyHash +impl core::marker::Freeze for bitcoin::address::AddressData impl core::marker::Freeze for bitcoin::address::AddressType impl core::marker::Freeze for bitcoin::address::KnownHrp impl core::marker::Freeze for bitcoin::address::NetworkChecked @@ -2508,6 +2517,7 @@ impl core::marker::Send for bitcoin::TapSighash impl core::marker::Send for bitcoin::TapSighashTag impl core::marker::Send for bitcoin::TapSighashType impl core::marker::Send for bitcoin::WPubkeyHash +impl core::marker::Send for bitcoin::address::AddressData impl core::marker::Send for bitcoin::address::AddressType impl core::marker::Send for bitcoin::address::KnownHrp impl core::marker::Send for bitcoin::address::NetworkChecked @@ -2683,6 +2693,7 @@ impl core::marker::StructuralPartialEq for bitcoin::TapSighash impl core::marker::StructuralPartialEq for bitcoin::TapSighashTag impl core::marker::StructuralPartialEq for bitcoin::TapSighashType impl core::marker::StructuralPartialEq for bitcoin::WPubkeyHash +impl core::marker::StructuralPartialEq for bitcoin::address::AddressData impl core::marker::StructuralPartialEq for bitcoin::address::AddressType impl core::marker::StructuralPartialEq for bitcoin::address::KnownHrp impl core::marker::StructuralPartialEq for bitcoin::address::NetworkChecked @@ -2845,6 +2856,7 @@ impl core::marker::Sync for bitcoin::TapSighash impl core::marker::Sync for bitcoin::TapSighashTag impl core::marker::Sync for bitcoin::TapSighashType impl core::marker::Sync for bitcoin::WPubkeyHash +impl core::marker::Sync for bitcoin::address::AddressData impl core::marker::Sync for bitcoin::address::AddressType impl core::marker::Sync for bitcoin::address::KnownHrp impl core::marker::Sync for bitcoin::address::NetworkChecked @@ -3020,6 +3032,7 @@ impl core::marker::Unpin for bitcoin::TapSighash impl core::marker::Unpin for bitcoin::TapSighashTag impl core::marker::Unpin for bitcoin::TapSighashType impl core::marker::Unpin for bitcoin::WPubkeyHash +impl core::marker::Unpin for bitcoin::address::AddressData impl core::marker::Unpin for bitcoin::address::AddressType impl core::marker::Unpin for bitcoin::address::KnownHrp impl core::marker::Unpin for bitcoin::address::NetworkChecked @@ -3227,6 +3240,7 @@ impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::TapSighash impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::TapSighashTag impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::TapSighashType impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::WPubkeyHash +impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::address::AddressData impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::address::AddressType impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::address::KnownHrp impl core::panic::unwind_safe::RefUnwindSafe for bitcoin::address::NetworkChecked @@ -3398,6 +3412,7 @@ impl core::panic::unwind_safe::UnwindSafe for bitcoin::TapSighash impl core::panic::unwind_safe::UnwindSafe for bitcoin::TapSighashTag impl core::panic::unwind_safe::UnwindSafe for bitcoin::TapSighashType impl core::panic::unwind_safe::UnwindSafe for bitcoin::WPubkeyHash +impl core::panic::unwind_safe::UnwindSafe for bitcoin::address::AddressData impl core::panic::unwind_safe::UnwindSafe for bitcoin::address::AddressType impl core::panic::unwind_safe::UnwindSafe for bitcoin::address::KnownHrp impl core::panic::unwind_safe::UnwindSafe for bitcoin::address::NetworkChecked @@ -4205,6 +4220,12 @@ pub bitcoin::WitnessVersion::V8 = 8 pub bitcoin::WitnessVersion::V9 = 9 pub bitcoin::absolute::LockTime::Blocks(bitcoin_units::locktime::absolute::Height) pub bitcoin::absolute::LockTime::Seconds(bitcoin_units::locktime::absolute::Time) +pub bitcoin::address::AddressData::P2pkh +pub bitcoin::address::AddressData::P2pkh::pubkey_hash: bitcoin::PubkeyHash +pub bitcoin::address::AddressData::P2sh +pub bitcoin::address::AddressData::P2sh::script_hash: bitcoin::blockdata::script::ScriptHash +pub bitcoin::address::AddressData::Segwit +pub bitcoin::address::AddressData::Segwit::witness_program: bitcoin::blockdata::script::witness_program::WitnessProgram pub bitcoin::address::AddressType::P2pkh pub bitcoin::address::AddressType::P2sh pub bitcoin::address::AddressType::P2tr @@ -6106,6 +6127,7 @@ pub fn bitcoin::address::Address::p2wsh(script: &bitcoin::blockdata::script::Scr pub fn bitcoin::address::Address::pubkey_hash(&self) -> core::option::Option pub fn bitcoin::address::Address::script_hash(&self) -> core::option::Option pub fn bitcoin::address::Address::script_pubkey(&self) -> bitcoin::blockdata::script::ScriptBuf +pub fn bitcoin::address::Address::to_address_data(&self) -> bitcoin::address::AddressData pub fn bitcoin::address::Address::to_qr_uri(&self) -> alloc::string::String pub fn bitcoin::address::Address::witness_program(&self) -> core::option::Option pub fn bitcoin::address::Address::as_unchecked(&self) -> &bitcoin::address::Address @@ -6120,6 +6142,12 @@ pub fn bitcoin::address::Address::assume_che pub fn bitcoin::address::Address::from_str(s: &str) -> core::result::Result, bitcoin::address::error::ParseError> pub fn bitcoin::address::Address::is_valid_for_network(&self, n: bitcoin::network::Network) -> bool pub fn bitcoin::address::Address::require_network(self, required: bitcoin::network::Network) -> core::result::Result +pub fn bitcoin::address::AddressData::clone(&self) -> bitcoin::address::AddressData +pub fn bitcoin::address::AddressData::cmp(&self, other: &bitcoin::address::AddressData) -> core::cmp::Ordering +pub fn bitcoin::address::AddressData::eq(&self, other: &bitcoin::address::AddressData) -> bool +pub fn bitcoin::address::AddressData::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result +pub fn bitcoin::address::AddressData::hash<__H: core::hash::Hasher>(&self, state: &mut __H) +pub fn bitcoin::address::AddressData::partial_cmp(&self, other: &bitcoin::address::AddressData) -> core::option::Option pub fn bitcoin::address::AddressType::clone(&self) -> bitcoin::address::AddressType pub fn bitcoin::address::AddressType::cmp(&self, other: &bitcoin::address::AddressType) -> core::cmp::Ordering pub fn bitcoin::address::AddressType::eq(&self, other: &bitcoin::address::AddressType) -> bool diff --git a/bitcoin/src/address/mod.rs b/bitcoin/src/address/mod.rs index ececea696..213e559eb 100644 --- a/bitcoin/src/address/mod.rs +++ b/bitcoin/src/address/mod.rs @@ -235,6 +235,30 @@ impl From for KnownHrp { fn from(n: Network) -> Self { Self::from_network(n) } } +/// The data encoded by an `Address`. +/// +/// This is the data used to encumber an output that pays to this address i.e., it is the address +/// excluding the network information. +#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)] +#[non_exhaustive] +pub enum AddressData { + /// Data encoded by a P2PKH address. + P2pkh { + /// The pubkey hash used to encumber outputs to this address. + pubkey_hash: PubkeyHash + }, + /// Data encoded by a P2SH address. + P2sh { + /// The script hash used to encumber outputs to this address. + script_hash: ScriptHash + }, + /// Data encoded by a Segwit address. + Segwit { + /// The witness program used to encumber outputs to this address. + witness_program: WitnessProgram + }, +} + /// A Bitcoin address. /// /// ### Parsing addresses @@ -475,6 +499,17 @@ impl Address { } } + /// Gets the address data from this address. + pub fn to_address_data(&self) -> AddressData { + use AddressData::*; + + match self.0 { + AddressInner::P2pkh { hash, network: _ } => P2pkh { pubkey_hash: hash }, + AddressInner::P2sh { hash, network: _ } => P2sh { script_hash: hash }, + AddressInner::Segwit { program, hrp: _ } => Segwit { witness_program: program }, + } + } + /// Gets the pubkey hash for this address if this is a P2PKH address. pub fn pubkey_hash(&self) -> Option { use AddressInner::*;