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: PublicKey
To 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: PublicKey
Used 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, ()>
pub fn one_hop_for_message<ES, T>( recipient_node_id: PublicKey, entropy_source: &ES, secp_ctx: &Secp256k1<T>, ) -> Result<BlindedPath, ()>
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, ()>
pub fn new_for_message<ES, T>( node_pks: &[PublicKey], entropy_source: &ES, secp_ctx: &Secp256k1<T>, ) -> Result<BlindedPath, ()>
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), ()>
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), ()>
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<'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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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