pub struct CompressedPublicKey(pub PublicKey);Expand description
An always-compressed Bitcoin ECDSA public key
Tuple Fields§
§0: PublicKeyImplementations§
Source§impl CompressedPublicKey
impl CompressedPublicKey
Sourcepub fn pubkey_hash(&self) -> PubkeyHash
pub fn pubkey_hash(&self) -> PubkeyHash
Returns bitcoin 160-bit hash of the public key
Sourcepub fn wpubkey_hash(&self) -> WPubkeyHash
pub fn wpubkey_hash(&self) -> WPubkeyHash
Returns bitcoin 160-bit hash of the public key for witness program
Sourcepub fn p2wpkh_script_code(&self) -> ScriptBuf
pub fn p2wpkh_script_code(&self) -> ScriptBuf
Returns the script code used to spend a P2WPKH input.
Sourcepub fn write_into<W>(&self, writer: &mut W) -> Result<(), Error>
pub fn write_into<W>(&self, writer: &mut W) -> Result<(), Error>
Write the public key into a writer
Sourcepub fn read_from<R>(reader: &mut R) -> Result<CompressedPublicKey, Error>
pub fn read_from<R>(reader: &mut R) -> Result<CompressedPublicKey, Error>
Read the public key from a reader
This internally reads the first byte before reading the rest, so
use of a BufReader is recommended.
Sourcepub fn to_bytes(&self) -> [u8; 33]
pub fn to_bytes(&self) -> [u8; 33]
Serializes the public key.
As the type name suggests, the key is serialzied in compressed format.
Note that this can be used as a sort key to get BIP67-compliant sorting.
That’s why this type doesn’t have the to_sort_key method - it would duplicate this one.
Sourcepub fn from_slice(data: &[u8]) -> Result<CompressedPublicKey, Error>
pub fn from_slice(data: &[u8]) -> Result<CompressedPublicKey, Error>
Deserialize a public key from a slice
Sourcepub fn from_private_key<C>(
secp: &Secp256k1<C>,
sk: &PrivateKey,
) -> Result<CompressedPublicKey, UncompressedPublicKeyError>where
C: Signing,
pub fn from_private_key<C>(
secp: &Secp256k1<C>,
sk: &PrivateKey,
) -> Result<CompressedPublicKey, UncompressedPublicKeyError>where
C: Signing,
Computes the public key as supposed to be used with this secret
Trait Implementations§
Source§impl Clone for CompressedPublicKey
impl Clone for CompressedPublicKey
Source§fn clone(&self) -> CompressedPublicKey
fn clone(&self) -> CompressedPublicKey
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for CompressedPublicKey
impl Debug for CompressedPublicKey
Source§impl<'de> Deserialize<'de> for CompressedPublicKey
Available on crate feature serde only.
impl<'de> Deserialize<'de> for CompressedPublicKey
Available on crate feature
serde only.Source§fn deserialize<D>(
d: D,
) -> Result<CompressedPublicKey, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
d: D,
) -> Result<CompressedPublicKey, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl Display for CompressedPublicKey
impl Display for CompressedPublicKey
Source§impl From<&CompressedPublicKey> for PubkeyHash
impl From<&CompressedPublicKey> for PubkeyHash
Source§fn from(key: &CompressedPublicKey) -> PubkeyHash
fn from(key: &CompressedPublicKey) -> PubkeyHash
Converts to this type from the input type.
Source§impl From<&CompressedPublicKey> for WPubkeyHash
impl From<&CompressedPublicKey> for WPubkeyHash
Source§fn from(key: &CompressedPublicKey) -> WPubkeyHash
fn from(key: &CompressedPublicKey) -> WPubkeyHash
Converts to this type from the input type.
Source§impl From<CompressedPublicKey> for PubkeyHash
impl From<CompressedPublicKey> for PubkeyHash
Source§fn from(key: CompressedPublicKey) -> PubkeyHash
fn from(key: CompressedPublicKey) -> PubkeyHash
Converts to this type from the input type.
Source§impl From<CompressedPublicKey> for PublicKey
impl From<CompressedPublicKey> for PublicKey
Source§fn from(value: CompressedPublicKey) -> PublicKey
fn from(value: CompressedPublicKey) -> PublicKey
Converts to this type from the input type.
Source§impl From<CompressedPublicKey> for WPubkeyHash
impl From<CompressedPublicKey> for WPubkeyHash
Source§fn from(key: CompressedPublicKey) -> WPubkeyHash
fn from(key: CompressedPublicKey) -> WPubkeyHash
Converts to this type from the input type.
Source§impl From<CompressedPublicKey> for XOnlyPublicKey
impl From<CompressedPublicKey> for XOnlyPublicKey
Source§fn from(pk: CompressedPublicKey) -> XOnlyPublicKey
fn from(pk: CompressedPublicKey) -> XOnlyPublicKey
Converts to this type from the input type.
Source§impl FromStr for CompressedPublicKey
impl FromStr for CompressedPublicKey
Source§type Err = ParseCompressedPublicKeyError
type Err = ParseCompressedPublicKeyError
The associated error which can be returned from parsing.
Source§fn from_str(
s: &str,
) -> Result<CompressedPublicKey, <CompressedPublicKey as FromStr>::Err>
fn from_str( s: &str, ) -> Result<CompressedPublicKey, <CompressedPublicKey as FromStr>::Err>
Parses a string
s to return a value of this type. Read moreSource§impl Hash for CompressedPublicKey
impl Hash for CompressedPublicKey
Source§impl Ord for CompressedPublicKey
impl Ord for CompressedPublicKey
Source§fn cmp(&self, other: &CompressedPublicKey) -> Ordering
fn cmp(&self, other: &CompressedPublicKey) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
Source§impl PartialEq for CompressedPublicKey
impl PartialEq for CompressedPublicKey
Source§impl PartialOrd for CompressedPublicKey
impl PartialOrd for CompressedPublicKey
Source§impl Serialize for CompressedPublicKey
Available on crate feature serde only.
impl Serialize for CompressedPublicKey
Available on crate feature
serde only.Source§fn serialize<S>(
&self,
s: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
s: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
Serialize this value into the given Serde serializer. Read more
Source§impl StrictDecode for CompressedPublicKey
impl StrictDecode for CompressedPublicKey
fn strict_decode( reader: &mut impl TypedRead, ) -> Result<CompressedPublicKey, DecodeError>
fn strict_read(reader: impl ReadRaw) -> Result<Self, DecodeError>
Source§impl StrictDeserialize for CompressedPublicKey
impl StrictDeserialize for CompressedPublicKey
fn from_strict_serialized<const MAX: usize>( ast_data: Confined<Vec<u8>, 0, MAX>, ) -> Result<Self, DeserializeError>
fn strict_deserialize_from_file<const MAX: usize>( path: impl AsRef<Path>, ) -> Result<Self, DeserializeError>
Source§impl StrictDumb for CompressedPublicKey
impl StrictDumb for CompressedPublicKey
Source§impl StrictEncode for CompressedPublicKey
impl StrictEncode for CompressedPublicKey
fn strict_encode<W>(&self, writer: W) -> Result<W, Error>where
W: TypedWrite,
fn strict_write(&self, writer: impl WriteRaw) -> Result<(), Error>
Source§impl StrictSerialize for CompressedPublicKey
impl StrictSerialize for CompressedPublicKey
fn strict_serialized_len<const MAX: usize>(&self) -> Result<usize, Error>
fn to_strict_serialized<const MAX: usize>( &self, ) -> Result<Confined<Vec<u8>, 0, MAX>, SerializeError>
fn strict_serialize_to_file<const MAX: usize>( &self, path: impl AsRef<Path>, ) -> Result<(), SerializeError>
Source§impl StrictTuple for CompressedPublicKey
impl StrictTuple for CompressedPublicKey
const FIELD_COUNT: u8 = 1u8
fn strict_check_fields()
fn strict_type_info() -> TypeInfo<Self>
Source§impl StrictType for CompressedPublicKey
impl StrictType for CompressedPublicKey
const STRICT_LIB_NAME: &'static str = LIB_NAME_BITCOIN
fn strict_name() -> Option<TypeName>
Source§impl TryFrom<PublicKey> for CompressedPublicKey
impl TryFrom<PublicKey> for CompressedPublicKey
Source§type Error = UncompressedPublicKeyError
type Error = UncompressedPublicKeyError
The type returned in the event of a conversion error.
Source§fn try_from(
value: PublicKey,
) -> Result<CompressedPublicKey, <CompressedPublicKey as TryFrom<PublicKey>>::Error>
fn try_from( value: PublicKey, ) -> Result<CompressedPublicKey, <CompressedPublicKey as TryFrom<PublicKey>>::Error>
Performs the conversion.
impl Copy for CompressedPublicKey
impl Eq for CompressedPublicKey
impl StrictProduct for CompressedPublicKey
impl StructuralPartialEq for CompressedPublicKey
Auto Trait Implementations§
impl Freeze for CompressedPublicKey
impl RefUnwindSafe for CompressedPublicKey
impl Send for CompressedPublicKey
impl Sync for CompressedPublicKey
impl Unpin for CompressedPublicKey
impl UnwindSafe for CompressedPublicKey
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.