Enum PaymentPurpose
pub enum PaymentPurpose {
Bolt11InvoicePayment {
payment_preimage: Option<PaymentPreimage>,
payment_secret: PaymentSecret,
},
Bolt12OfferPayment {
payment_preimage: Option<PaymentPreimage>,
payment_secret: PaymentSecret,
payment_context: Bolt12OfferContext,
},
Bolt12RefundPayment {
payment_preimage: Option<PaymentPreimage>,
payment_secret: PaymentSecret,
payment_context: Bolt12RefundContext,
},
SpontaneousPayment(PaymentPreimage),
}
Expand description
Some information provided on receipt of payment depends on whether the payment received is a spontaneous payment or a “conventional” lightning payment that’s paying an invoice.
Variants§
Bolt11InvoicePayment
A payment for a BOLT 11 invoice.
Fields
payment_preimage: Option<PaymentPreimage>
The preimage to the payment_hash, if the payment hash (and secret) were fetched via
ChannelManager::create_inbound_payment
. When handling Event::PaymentClaimable
,
this can be passed directly to ChannelManager::claim_funds
to claim the payment. No
action is needed when seen in Event::PaymentClaimed
.
payment_secret: PaymentSecret
The “payment secret”. This authenticates the sender to the recipient, preventing a
number of deanonymization attacks during the routing process.
It is provided here for your reference, however its accuracy is enforced directly by
ChannelManager
using the values you previously provided to
ChannelManager::create_inbound_payment
or
ChannelManager::create_inbound_payment_for_hash
.
Bolt12OfferPayment
A payment for a BOLT 12 Offer
.
Fields
payment_preimage: Option<PaymentPreimage>
The preimage to the payment hash. When handling Event::PaymentClaimable
, this can be
passed directly to ChannelManager::claim_funds
, if provided. No action is needed
when seen in Event::PaymentClaimed
.
payment_secret: PaymentSecret
The secret used to authenticate the sender to the recipient, preventing a number of de-anonymization attacks while routing a payment.
See PaymentPurpose::Bolt11InvoicePayment::payment_secret
for further details.
payment_context: Bolt12OfferContext
The context of the payment such as information about the corresponding Offer
and
InvoiceRequest
.
Bolt12RefundPayment
A payment for a BOLT 12 Refund
.
Fields
payment_preimage: Option<PaymentPreimage>
The preimage to the payment hash. When handling Event::PaymentClaimable
, this can be
passed directly to ChannelManager::claim_funds
, if provided. No action is needed
when seen in Event::PaymentClaimed
.
payment_secret: PaymentSecret
The secret used to authenticate the sender to the recipient, preventing a number of de-anonymization attacks while routing a payment.
See PaymentPurpose::Bolt11InvoicePayment::payment_secret
for further details.
payment_context: Bolt12RefundContext
The context of the payment such as information about the corresponding Refund
.
SpontaneousPayment(PaymentPreimage)
Because this is a spontaneous payment, the payer generated their own preimage rather than us (the payee) providing a preimage.
Implementations§
§impl PaymentPurpose
impl PaymentPurpose
pub fn preimage(&self) -> Option<PaymentPreimage>
pub fn preimage(&self) -> Option<PaymentPreimage>
Returns the preimage for this payment, if it is known.
Trait Implementations§
§impl Clone for PaymentPurpose
impl Clone for PaymentPurpose
§fn clone(&self) -> PaymentPurpose
fn clone(&self) -> PaymentPurpose
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for PaymentPurpose
impl Debug for PaymentPurpose
§impl PartialEq for PaymentPurpose
impl PartialEq for PaymentPurpose
§impl Readable for PaymentPurpose
impl Readable for PaymentPurpose
§fn read<R>(reader: &mut R) -> Result<PaymentPurpose, DecodeError>where
R: Read,
fn read<R>(reader: &mut R) -> Result<PaymentPurpose, DecodeError>where
R: Read,
Self
in from the given Read
.§impl Writeable for PaymentPurpose
impl Writeable for PaymentPurpose
impl Eq for PaymentPurpose
impl StructuralPartialEq for PaymentPurpose
Auto Trait Implementations§
impl Freeze for PaymentPurpose
impl RefUnwindSafe for PaymentPurpose
impl Send for PaymentPurpose
impl Sync for PaymentPurpose
impl Unpin for PaymentPurpose
impl UnwindSafe for PaymentPurpose
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,
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