Struct BlindedPath
pub struct BlindedPath {
pub introduction_node_id: PublicKey,
pub blinding_point: PublicKey,
pub blinded_hops: Vec<BlindedHop>,
}Expand description
Onion messages and payments can be sent and received to blinded paths, which serve to hide the identity of the recipient.
Fields§
§introduction_node_id: PublicKeyTo send to a blinded path, the sender first finds a route to the unblinded
introduction_node_id, which can unblind its encrypted_payload to find out the onion
message or payment’s next hop and forward it along.
blinding_point: PublicKeyUsed by the introduction node to decrypt its encrypted_payload to forward the onion
message or payment.
blinded_hops: Vec<BlindedHop>The hops composing the blinded path.
Implementations§
§impl BlindedPath
impl BlindedPath
pub fn one_hop_for_message<ES, T>(
recipient_node_id: PublicKey,
entropy_source: &ES,
secp_ctx: &Secp256k1<T>,
) -> Result<BlindedPath, ()>where
ES: EntropySource + ?Sized,
T: Signing + Verification,
pub fn one_hop_for_message<ES, T>(
recipient_node_id: PublicKey,
entropy_source: &ES,
secp_ctx: &Secp256k1<T>,
) -> Result<BlindedPath, ()>where
ES: EntropySource + ?Sized,
T: Signing + Verification,
Create a one-hop blinded path for a message.
pub fn new_for_message<ES, T>(
node_pks: &[PublicKey],
entropy_source: &ES,
secp_ctx: &Secp256k1<T>,
) -> Result<BlindedPath, ()>where
ES: EntropySource + ?Sized,
T: Signing + Verification,
pub fn new_for_message<ES, T>(
node_pks: &[PublicKey],
entropy_source: &ES,
secp_ctx: &Secp256k1<T>,
) -> Result<BlindedPath, ()>where
ES: EntropySource + ?Sized,
T: Signing + Verification,
Create a blinded path for an onion message, to be forwarded along node_pks. The last node
pubkey in node_pks will be the destination node.
Errors if no hops are provided or if node_pk(s) are invalid.
pub fn one_hop_for_payment<ES, T>(
payee_node_id: PublicKey,
payee_tlvs: ReceiveTlvs,
entropy_source: &ES,
secp_ctx: &Secp256k1<T>,
) -> Result<(BlindedPayInfo, BlindedPath), ()>where
ES: EntropySource + ?Sized,
T: Signing + Verification,
pub fn one_hop_for_payment<ES, T>(
payee_node_id: PublicKey,
payee_tlvs: ReceiveTlvs,
entropy_source: &ES,
secp_ctx: &Secp256k1<T>,
) -> Result<(BlindedPayInfo, BlindedPath), ()>where
ES: EntropySource + ?Sized,
T: Signing + Verification,
Create a one-hop blinded path for a payment.
Trait Implementations§
§impl Clone for BlindedPath
impl Clone for BlindedPath
§fn clone(&self) -> BlindedPath
fn clone(&self) -> BlindedPath
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for BlindedPath
impl Debug for BlindedPath
§impl Hash for BlindedPath
impl Hash for BlindedPath
§impl PartialEq for BlindedPath
impl PartialEq for BlindedPath
§impl Readable for BlindedPath
impl Readable for BlindedPath
§fn read<R>(r: &mut R) -> Result<BlindedPath, DecodeError>where
R: Read,
fn read<R>(r: &mut R) -> Result<BlindedPath, DecodeError>where
R: Read,
Self in from the given Read.§impl Writeable for BlindedPath
impl Writeable for BlindedPath
impl Eq for BlindedPath
impl StructuralPartialEq for BlindedPath
Auto Trait Implementations§
impl Freeze for BlindedPath
impl RefUnwindSafe for BlindedPath
impl Send for BlindedPath
impl Sync for BlindedPath
impl Unpin for BlindedPath
impl UnwindSafe for BlindedPath
Blanket Implementations§
§impl<T> AnyEq for T
impl<T> AnyEq for T
§impl<T> AnySync for T
impl<T> AnySync 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,
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<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<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> 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> ⓘ
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> ⓘ
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> 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