pub enum PaymentPurpose {
InvoicePayment {
payment_preimage: Option<PaymentPreimage>,
payment_secret: PaymentSecret,
},
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§
InvoicePayment
Information for receiving a payment that we generated an invoice for.
Fields
payment_preimage: Option<PaymentPreimage>
The preimage to the payment_hash, if the payment hash (and secret) were fetched via
ChannelManager::create_inbound_payment
. If provided, this can be handed directly to
ChannelManager::claim_funds
.
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
.
SpontaneousPayment(PaymentPreimage)
Because this is a spontaneous payment, the payer generated their own preimage rather than us (the payee) providing a preimage.
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<'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