Skip to main content

ServiceError

Enum ServiceError 

Source
pub enum ServiceError {
Show 36 variants NostrError(String), ParsingInvoiceError, ParsingNumberError, InvoiceExpiredError, InvoiceInvalidError, MinExpirationTimeError, MinAmountError, WrongAmountError, NoAPIResponse, NoCurrency, MalformedAPIRes, NegativeAmount, LnAddressParseError, LnAddressWrongAmount, LnPaymentError(String), LnNodeError(String), InvalidOrderId, DbAccessError(String), InvalidPubkey, HoldInvoiceError(String), UpdateOrderStatusError, InvalidOrderStatus, InvalidOrderKind, DisputeAlreadyExists, DisputeEventError, InvalidRating, InvalidRatingValue, MessageSerializationError, InvalidDisputeId, InvalidDisputeStatus, InvalidPayload, UnexpectedError(String), EnvVarError(String), IOError(String), EncryptionError(String), DecryptionError(String),
}
Expand description

Internal errors raised by services behind the Mostro API.

Unlike CantDoReason, values of this enum are not expected to be forwarded verbatim to end users; they are meant for logs, telemetry and other server-to-server diagnostics.

Variants§

§

NostrError(String)

Wraps an error returned by nostr_sdk.

§

ParsingInvoiceError

The invoice string could not be parsed as a valid BOLT-11 invoice.

§

ParsingNumberError

A numeric value could not be parsed.

§

InvoiceExpiredError

The invoice has expired.

§

InvoiceInvalidError

The invoice is otherwise invalid.

§

MinExpirationTimeError

The invoice expiration time is below the minimum required.

§

MinAmountError

The invoice amount is below the minimum allowed.

§

WrongAmountError

The invoice amount does not match the expected value.

§

NoAPIResponse

The price API did not answer in time.

§

NoCurrency

The requested currency is not listed by the exchange API.

§

MalformedAPIRes

The exchange API returned a response that could not be parsed.

§

NegativeAmount

Amount value is negative where only positives are allowed.

§

LnAddressParseError

A Lightning Address could not be parsed.

§

LnAddressWrongAmount

A Lightning Address payment was attempted with a wrong amount.

§

LnPaymentError(String)

A Lightning payment failed; the inner string carries the reason.

§

LnNodeError(String)

Communication with the Lightning node failed.

§

InvalidOrderId

Order id was not found in the database.

§

DbAccessError(String)

Database access failed; the inner string carries the detail.

§

InvalidPubkey

The provided public key is invalid.

§

HoldInvoiceError(String)

Hold-invoice operation failed; the inner string carries the detail.

§

UpdateOrderStatusError

Could not update the order status in the database.

§

InvalidOrderStatus

The order status is invalid.

§

InvalidOrderKind

The order kind is invalid.

§

DisputeAlreadyExists

A dispute already exists for this order.

§

DisputeEventError

Could not publish the dispute Nostr event.

§

InvalidRating

The rating message itself is invalid.

§

InvalidRatingValue

The rating value is outside the accepted range.

§

MessageSerializationError

Failed to serialize or deserialize a crate::message::Message.

§

InvalidDisputeId

The dispute id is invalid or unknown.

§

InvalidDisputeStatus

The dispute status is invalid.

§

InvalidPayload

The payload does not match the action.

§

UnexpectedError(String)

Any other unexpected error; inner string carries the detail.

§

EnvVarError(String)

An environment variable could not be read or parsed.

§

IOError(String)

Underlying I/O error.

§

EncryptionError(String)

NIP-44/NIP-59 encryption failed.

§

DecryptionError(String)

NIP-44/NIP-59 decryption failed.

Trait Implementations§

Source§

impl Debug for ServiceError

Source§

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

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

impl Display for ServiceError

Source§

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

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

impl PartialEq for ServiceError

Source§

fn eq(&self, other: &ServiceError) -> 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 Eq for ServiceError

Source§

impl StructuralPartialEq for ServiceError

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

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

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

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

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

impl<T> Same for T

Source§

type Output = T

Should always be Self
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<S, T> Upcast<T> for S
where T: UpcastFrom<S> + ?Sized, S: ?Sized,

Source§

fn upcast(&self) -> &T
where Self: ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider ref type within the Wasm bindgen generics type system. Read more
Source§

fn upcast_into(self) -> T
where Self: Sized + ErasableGeneric, T: ErasableGeneric<Repr = Self::Repr>,

Perform a zero-cost type-safe upcast to a wider type within the Wasm bindgen generics type system. Read more
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