ForwardingError

Enum ForwardingError 

Source
pub enum ForwardingError {
Show 15 variants ZeroAmountHtlc, ChannelNotFound(ShortChannelID), NodeNotFound(PublicKey), PaymentHashExists(PaymentHash), PaymentHashNotFound(PaymentHash), InsufficientBalance(u64, u64), LessThanMinimum(u64, u64), MoreThanMaximum(u64, u64), ExceedsInFlightCount(u64, u64), ExceedsInFlightTotal(u64, u64), ExpiryInSeconds(u32, u32), InsufficientCltvDelta(u32, u32), InsufficientFee(u64, u64, u64, u64), FeeOverflow(u64, u64, u64), SanityCheckFailed(u64, u64),
}
Expand description

ForwardingError represents the various errors that we can run into when forwarding payments in a simulated network. Since we’re not using real lightning nodes, these errors are not obfuscated and can be propagated to the sending node and used for analysis.

Variants§

§

ZeroAmountHtlc

Zero amount htlcs are invalid in the protocol.

§

ChannelNotFound(ShortChannelID)

The outgoing channel id was not found in the network graph.

§

NodeNotFound(PublicKey)

The node pubkey provided was not associated with the channel in the network graph.

§

PaymentHashExists(PaymentHash)

The channel has already forwarded an HTLC with the payment hash provided. TODO: remove if MPP support is added.

§

PaymentHashNotFound(PaymentHash)

An htlc with the payment hash provided could not be found to resolve.

§

InsufficientBalance(u64, u64)

The forwarding node did not have sufficient outgoing balance to forward the htlc (htlc amount / balance).

§

LessThanMinimum(u64, u64)

The htlc forwarded is less than the channel’s advertised minimum htlc amount (htlc amount / minimum).

§

MoreThanMaximum(u64, u64)

The htlc forwarded is more than the channel’s advertised maximum htlc amount (htlc amount / maximum).

§

ExceedsInFlightCount(u64, u64)

The channel has reached its maximum allowable number of htlcs in flight (total in flight / maximim).

§

ExceedsInFlightTotal(u64, u64)

The forwarded htlc’s amount would push the channel over its maximum allowable in flight total (total in flight / maximum).

§

ExpiryInSeconds(u32, u32)

The forwarded htlc’s cltv expiry exceeds the maximum value used to express block heights in Bitcoin.

§

InsufficientCltvDelta(u32, u32)

The forwarded htlc has insufficient cltv delta for the channel’s minimum delta (cltv delta / minimum).

§

InsufficientFee(u64, u64, u64, u64)

The forwarded htlc has insufficient fee for the channel’s policy (fee / expected fee / base fee / prop fee).

§

FeeOverflow(u64, u64, u64)

The fee policy for a htlc amount would overflow with the given fee policy (htlc amount / base fee / prop fee).

§

SanityCheckFailed(u64, u64)

Sanity check on channel balances failed (node balances / channel capacity).

Trait Implementations§

Source§

impl Debug for ForwardingError

Source§

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

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

impl Display for ForwardingError

Source§

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

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

impl Error for ForwardingError

1.30.0 · Source§

fn source(&self) -> Option<&(dyn Error + 'static)>

Returns the lower-level source of this error, if any. Read more
1.0.0 · Source§

fn description(&self) -> &str

👎Deprecated since 1.42.0: use the Display impl or to_string()
1.0.0 · Source§

fn cause(&self) -> Option<&dyn Error>

👎Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
Source§

fn provide<'a>(&'a self, request: &mut Request<'a>)

🔬This is a nightly-only experimental API. (error_generic_member_access)
Provides type-based access to context intended for error reports. Read more

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
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> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. 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

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more