Enum PaymentFailureReason
pub enum PaymentFailureReason {
RecipientRejected,
UserAbandoned,
RetriesExhausted,
PaymentExpired,
RouteNotFound,
UnexpectedError,
UnknownRequiredFeatures,
InvoiceRequestExpired,
InvoiceRequestRejected,
BlindedPathCreationFailed,
}Expand description
The reason the payment failed. Used in Event::PaymentFailed.
Variants§
RecipientRejected
The intended recipient rejected our payment.
Also used for UnknownRequiredFeatures and InvoiceRequestRejected when downgrading to
version prior to 0.0.124.
UserAbandoned
The user chose to abandon this payment by calling ChannelManager::abandon_payment.
RetriesExhausted
We exhausted all of our retry attempts while trying to send the payment, or we
exhausted the Retry::Timeout if the user set one.
If at any point a retry attempt failed while being forwarded along the path, an Event::PaymentPathFailed will
have come before this.
PaymentExpired
The payment expired while retrying, based on the provided
PaymentParameters::expiry_time.
Also used for InvoiceRequestExpired when downgrading to version prior to 0.0.124.
RouteNotFound
We failed to find a route while sending or retrying the payment.
Note that this generally indicates that we’ve exhausted the available set of possible routes - we tried the payment over a few routes but were not able to find any further candidate routes beyond those.
Also used for BlindedPathCreationFailed when downgrading to versions prior to 0.0.124.
UnexpectedError
This error should generally never happen. This likely means that there is a problem with your router.
UnknownRequiredFeatures
An invoice was received that required unknown features.
InvoiceRequestExpired
A Bolt12Invoice was not received in a reasonable amount of time.
InvoiceRequestRejected
An InvoiceRequest for the payment was rejected by the recipient.
BlindedPathCreationFailed
Failed to create a blinded path back to ourselves.
We attempted to initiate payment to a static invoice but failed to create a reply path for our
HeldHtlcAvailable message.
Trait Implementations§
§impl Clone for PaymentFailureReason
impl Clone for PaymentFailureReason
§fn clone(&self) -> PaymentFailureReason
fn clone(&self) -> PaymentFailureReason
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for PaymentFailureReason
impl Debug for PaymentFailureReason
§impl MaybeReadable for PaymentFailureReason
impl MaybeReadable for PaymentFailureReason
§fn read<R>(reader: &mut R) -> Result<Option<PaymentFailureReason>, DecodeError>where
R: Read,
fn read<R>(reader: &mut R) -> Result<Option<PaymentFailureReason>, DecodeError>where
R: Read,
Self in from the given Read.§impl PartialEq for PaymentFailureReason
impl PartialEq for PaymentFailureReason
§impl Writeable for PaymentFailureReason
impl Writeable for PaymentFailureReason
impl Copy for PaymentFailureReason
impl Eq for PaymentFailureReason
impl StructuralPartialEq for PaymentFailureReason
Auto Trait Implementations§
impl Freeze for PaymentFailureReason
impl RefUnwindSafe for PaymentFailureReason
impl Send for PaymentFailureReason
impl Sync for PaymentFailureReason
impl Unpin for PaymentFailureReason
impl UnwindSafe for PaymentFailureReason
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