error.rs 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. use std::string::FromUtf8Error;
  2. use thiserror::Error;
  3. #[derive(Debug, Error)]
  4. pub enum Error {
  5. /// Parse Url Error
  6. #[error("`{0}`")]
  7. UrlParseError(#[from] url::ParseError),
  8. /// Utf8 parse error
  9. #[error("`{0}`")]
  10. Utf8ParseError(#[from] FromUtf8Error),
  11. /// Serde Json error
  12. #[error("`{0}`")]
  13. SerdeJsonError(serde_json::Error),
  14. /// Base64 error
  15. #[error("`{0}`")]
  16. Base64Error(#[from] base64::DecodeError),
  17. #[error("`{0}`")]
  18. CustomError(String),
  19. /// From hex error
  20. #[error("`{0}`")]
  21. HexError(#[from] hex::FromHexError),
  22. #[error("`{0}`")]
  23. EllipticCurve(#[from] k256::elliptic_curve::Error),
  24. #[error("No Key for Amoun")]
  25. AmountKey,
  26. #[error("Amount miss match")]
  27. Amount,
  28. #[error("Token already spent")]
  29. TokenSpent,
  30. #[error("Token not verified")]
  31. TokenNotVerifed,
  32. #[error("Invoice Amount undefined")]
  33. InvoiceAmountUndefined,
  34. }
  35. #[cfg(feature = "wallet")]
  36. pub mod wallet {
  37. use std::string::FromUtf8Error;
  38. use thiserror::Error;
  39. #[derive(Debug, Error)]
  40. pub enum Error {
  41. /// Serde Json error
  42. #[error("`{0}`")]
  43. SerdeJsonError(#[from] serde_json::Error),
  44. /// From elliptic curve
  45. #[error("`{0}`")]
  46. EllipticError(#[from] k256::elliptic_curve::Error),
  47. /// Insufficient Funds
  48. #[error("Insufficient funds")]
  49. InsufficientFunds,
  50. /// Utf8 parse error
  51. #[error("`{0}`")]
  52. Utf8ParseError(#[from] FromUtf8Error),
  53. /// Base64 error
  54. #[error("`{0}`")]
  55. Base64Error(#[from] base64::DecodeError),
  56. /// Unsupported Token
  57. #[error("Token unsupported")]
  58. UnsupportedToken,
  59. /// Token Requires proofs
  60. #[error("Proofs Required")]
  61. ProofsRequired,
  62. /// Url Parse error
  63. #[error("Url Parse")]
  64. UrlParse,
  65. /// Custom Error message
  66. #[error("`{0}`")]
  67. CustomError(String),
  68. }
  69. impl From<crate::url::Error> for Error {
  70. fn from(_err: crate::url::Error) -> Error {
  71. Error::UrlParse
  72. }
  73. }
  74. }
  75. #[cfg(feature = "mint")]
  76. pub mod mint {
  77. use thiserror::Error;
  78. #[derive(Debug, Error)]
  79. pub enum Error {
  80. #[error("No key for amount")]
  81. AmountKey,
  82. #[error("Amount miss match")]
  83. Amount,
  84. #[error("Token Already Spent")]
  85. TokenSpent,
  86. /// From elliptic curve
  87. #[error("`{0}`")]
  88. EllipticError(#[from] k256::elliptic_curve::Error),
  89. #[error("`Token not verified`")]
  90. TokenNotVerifed,
  91. #[error("Invoice amount undefined")]
  92. InvoiceAmountUndefined,
  93. /// Duplicate Proofs sent in request
  94. #[error("Duplicate proofs")]
  95. DuplicateProofs,
  96. #[error("`{0}`")]
  97. CustomError(String),
  98. }
  99. }