Enum lightning::events::PaymentPurpose
source · 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§
source§impl PaymentPurpose
impl PaymentPurpose
sourcepub fn preimage(&self) -> Option<PaymentPreimage>
pub fn preimage(&self) -> Option<PaymentPreimage>
Returns the preimage for this payment, if it is known.
Trait Implementations§
source§impl Clone for PaymentPurpose
impl Clone for PaymentPurpose
source§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 moresource§impl Debug for PaymentPurpose
impl Debug for PaymentPurpose
source§impl PartialEq for PaymentPurpose
impl PartialEq for PaymentPurpose
source§fn eq(&self, other: &PaymentPurpose) -> bool
fn eq(&self, other: &PaymentPurpose) -> bool
self
and other
values to be equal, and is used
by ==
.