pub struct NodeAddr(/* private fields */);Expand description
16-byte node identifier derived from truncated SHA-256(pubkey).
The node_addr is the first 16 bytes of SHA-256(pubkey), providing 128 bits of collision resistance. Hashing the public key prevents grinding attacks that exploit secp256k1’s algebraic structure.
Implementations§
Source§impl NodeAddr
impl NodeAddr
Sourcepub fn from_bytes(bytes: [u8; 16]) -> NodeAddr
pub fn from_bytes(bytes: [u8; 16]) -> NodeAddr
Create a NodeAddr from a 16-byte array.
Sourcepub fn from_slice(slice: &[u8]) -> Result<NodeAddr, IdentityError>
pub fn from_slice(slice: &[u8]) -> Result<NodeAddr, IdentityError>
Create a NodeAddr from a slice.
Sourcepub fn from_pubkey(pubkey: &XOnlyPublicKey) -> NodeAddr
pub fn from_pubkey(pubkey: &XOnlyPublicKey) -> NodeAddr
Derive a NodeAddr from an x-only public key (npub).
Computes SHA-256(pubkey) and takes the first 16 bytes.
Trait Implementations§
Source§impl Ord for NodeAddr
impl Ord for NodeAddr
1.21.0 (const: unstable) · 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 PartialOrd for NodeAddr
impl PartialOrd for NodeAddr
impl Copy for NodeAddr
impl Eq for NodeAddr
impl StructuralPartialEq for NodeAddr
Auto Trait Implementations§
impl Freeze for NodeAddr
impl RefUnwindSafe for NodeAddr
impl Send for NodeAddr
impl Sync for NodeAddr
impl Unpin for NodeAddr
impl UnsafeUnpin for NodeAddr
impl UnwindSafe for NodeAddr
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.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> ToHex for T
impl<T> ToHex for T
Source§fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex<U>(&self) -> Uwhere
U: FromIterator<char>,
Encode the hex strict representing
self into the result. Lower case
letters are used (e.g. f9b4ca)Source§fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
fn encode_hex_upper<U>(&self) -> Uwhere
U: FromIterator<char>,
Encode the hex strict representing
self into the result. Upper case
letters are used (e.g. F9B4CA)