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
impl Debug for ServiceError
Source§impl Display for ServiceError
impl Display for ServiceError
Source§impl PartialEq for ServiceError
impl PartialEq for ServiceError
impl Eq for ServiceError
impl StructuralPartialEq for ServiceError
Auto Trait Implementations§
impl Freeze for ServiceError
impl RefUnwindSafe for ServiceError
impl Send for ServiceError
impl Sync for ServiceError
impl Unpin for ServiceError
impl UnsafeUnpin for ServiceError
impl UnwindSafe for ServiceError
Blanket Implementations§
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> 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 more