Skip to main content

agent_pay/
error.rs

1use thiserror::Error;
2
3#[derive(Debug, Error)]
4pub enum Error {
5    #[error("invalid did:key: {0}")]
6    InvalidDidKey(String),
7    #[error("multibase decode error: {0}")]
8    Multibase(String),
9    #[error("ed25519 error: {0}")]
10    Ed25519(String),
11    #[error("bolt11 error: {0}")]
12    Bolt11(String),
13    #[error("jws error: {0}")]
14    Jws(String),
15    #[error("envelope error: {0}")]
16    Envelope(String),
17    #[error("token error: {0}")]
18    Token(String),
19    #[error("lightning error: {0}")]
20    Lightning(String),
21    #[error("paywall: {0}")]
22    Paywall(String),
23    #[error("fetch-with-l402: {reason}: {message}")]
24    FetchWithL402 { message: String, reason: String },
25    #[error("json error: {0}")]
26    Json(#[from] serde_json::Error),
27    #[error("http error: {0}")]
28    Http(String),
29    #[error("{0}")]
30    Other(String),
31}
32
33impl Error {
34    pub fn fetch(message: impl Into<String>, reason: impl Into<String>) -> Self {
35        Error::FetchWithL402 {
36            message: message.into(),
37            reason: reason.into(),
38        }
39    }
40}