Enum PaymentFailureReason

Source
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§

Source§

impl Clone for PaymentFailureReason

Source§

fn clone(&self) -> PaymentFailureReason

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for PaymentFailureReason

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl MaybeReadable for PaymentFailureReason

Source§

fn read<R: Read>(reader: &mut R) -> Result<Option<Self>, DecodeError>

Reads a Self in from the given Read.
Source§

impl PartialEq for PaymentFailureReason

Source§

fn eq(&self, other: &PaymentFailureReason) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Writeable for PaymentFailureReason

Source§

fn write<W: Writer>(&self, writer: &mut W) -> Result<(), Error>

Writes self out to the given Writer.
Source§

fn encode(&self) -> Vec<u8>

Writes self out to a Vec<u8>.
Source§

fn serialized_length(&self) -> usize

Gets the length of this object after it has been serialized. This can be overridden to optimize cases where we prepend an object with its length.
Source§

impl Copy for PaymentFailureReason

Source§

impl Eq for PaymentFailureReason

Source§

impl StructuralPartialEq for PaymentFailureReason

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Source§

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V