Struct Xpub
pub struct Xpub {
pub network: NetworkKind,
pub depth: u8,
pub parent_fingerprint: Fingerprint,
pub child_number: ChildNumber,
pub public_key: PublicKey,
pub chain_code: ChainCode,
}
Expand description
Extended public key
Fields§
§network: NetworkKind
The network kind this key is to be used on
depth: u8
How many derivations this key is from the master (which is 0)
parent_fingerprint: Fingerprint
Fingerprint of the parent key
child_number: ChildNumber
Child number of the key used to derive from parent (0 for master)
public_key: PublicKey
Public key
chain_code: ChainCode
Chain code
Implementations§
§impl Xpub
impl Xpub
pub fn from_priv<C>(secp: &Secp256k1<C>, sk: &Xpriv) -> Xpubwhere
C: Signing,
pub fn from_priv<C>(secp: &Secp256k1<C>, sk: &Xpriv) -> Xpubwhere
C: Signing,
Derives a public key from a private key
pub fn to_pub(self) -> CompressedPublicKey
pub fn to_pub(self) -> CompressedPublicKey
Constructs ECDSA compressed public key matching internal public key representation.
pub fn to_x_only_pub(self) -> XOnlyPublicKey
pub fn to_x_only_pub(self) -> XOnlyPublicKey
Constructs BIP340 x-only public key for BIP-340 signatures and Taproot use matching the internal public key representation.
pub fn derive_pub<C, P>(
&self,
secp: &Secp256k1<C>,
path: &P,
) -> Result<Xpub, Error>
pub fn derive_pub<C, P>( &self, secp: &Secp256k1<C>, path: &P, ) -> Result<Xpub, Error>
Attempts to derive an extended public key from a path.
The path
argument can be any type implementing AsRef<ChildNumber>
, such as DerivationPath
, for instance.
pub fn ckd_pub_tweak(
&self,
i: ChildNumber,
) -> Result<(SecretKey, ChainCode), Error>
pub fn ckd_pub_tweak( &self, i: ChildNumber, ) -> Result<(SecretKey, ChainCode), Error>
Compute the scalar tweak added to this key to get a child key
pub fn ckd_pub<C>(
&self,
secp: &Secp256k1<C>,
i: ChildNumber,
) -> Result<Xpub, Error>where
C: Verification,
pub fn ckd_pub<C>(
&self,
secp: &Secp256k1<C>,
i: ChildNumber,
) -> Result<Xpub, Error>where
C: Verification,
Public->Public child key derivation
pub fn decode(data: &[u8]) -> Result<Xpub, Error>
pub fn decode(data: &[u8]) -> Result<Xpub, Error>
Decoding extended public key from binary data according to BIP 32
pub fn identifier(&self) -> XKeyIdentifier
pub fn identifier(&self) -> XKeyIdentifier
Returns the HASH160 of the chaincode
pub fn fingerprint(&self) -> Fingerprint
pub fn fingerprint(&self) -> Fingerprint
Returns the first four bytes of the identifier
Trait Implementations§
§impl<'de> Deserialize<'de> for Xpub
impl<'de> Deserialize<'de> for Xpub
§fn deserialize<D>(
deserializer: D,
) -> Result<Xpub, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<Xpub, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
§impl From<&Xpub> for XKeyIdentifier
impl From<&Xpub> for XKeyIdentifier
§fn from(key: &Xpub) -> XKeyIdentifier
fn from(key: &Xpub) -> XKeyIdentifier
§impl From<Xpub> for XKeyIdentifier
impl From<Xpub> for XKeyIdentifier
§fn from(key: Xpub) -> XKeyIdentifier
fn from(key: Xpub) -> XKeyIdentifier
§impl InnerXKey for Xpub
impl InnerXKey for Xpub
§fn xkey_fingerprint<C>(&self, _secp: &Secp256k1<C>) -> Fingerprintwhere
C: Signing,
fn xkey_fingerprint<C>(&self, _secp: &Secp256k1<C>) -> Fingerprintwhere
C: Signing,
§fn can_derive_hardened() -> bool
fn can_derive_hardened() -> bool
§impl InnerXKey for Xpub
impl InnerXKey for Xpub
§fn xkey_fingerprint<C>(&self, _secp: &Secp256k1<C>) -> Fingerprintwhere
C: Signing,
fn xkey_fingerprint<C>(&self, _secp: &Secp256k1<C>) -> Fingerprintwhere
C: Signing,
§fn can_derive_hardened() -> bool
fn can_derive_hardened() -> bool
§impl Ord for Xpub
impl Ord for Xpub
§impl PartialOrd for Xpub
impl PartialOrd for Xpub
§impl Serialize for Xpub
impl Serialize for Xpub
§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
impl Copy for Xpub
impl Eq for Xpub
impl StructuralPartialEq for Xpub
Auto Trait Implementations§
impl Freeze for Xpub
impl RefUnwindSafe for Xpub
impl Send for Xpub
impl Sync for Xpub
impl Unpin for Xpub
impl UnwindSafe for Xpub
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request