error.rs (2051B)
1 use thiserror::Error; 2 3 #[derive(Debug, Error, Clone, PartialEq, Eq)] 4 pub enum RadrootsNostrConnectError { 5 #[error("NIP-46 request encryption failed: {reason}")] 6 Encrypt { reason: String }, 7 #[error("NIP-46 response decryption failed: {reason}")] 8 Decrypt { reason: String }, 9 #[error("NIP-46 event signing failed: {reason}")] 10 Sign { reason: String }, 11 #[error("NIP-46 transport failed: {reason}")] 12 Transport { reason: String }, 13 #[error("NIP-46 request timed out")] 14 RequestTimedOut, 15 #[error("invalid NIP-46 method `{0}`")] 16 InvalidMethod(String), 17 #[error("invalid NIP-46 permission `{0}`")] 18 InvalidPermission(String), 19 #[error("invalid public key `{value}`: {reason}")] 20 InvalidPublicKey { value: String, reason: String }, 21 #[error("invalid relay url `{value}`: {reason}")] 22 InvalidRelayUrl { value: String, reason: String }, 23 #[error("invalid url `{value}`: {reason}")] 24 InvalidUrl { value: String, reason: String }, 25 #[error("invalid URI scheme `{0}`")] 26 InvalidUriScheme(String), 27 #[error("invalid NIP-46 uri")] 28 InvalidUri, 29 #[error("missing public key in URI authority")] 30 MissingPublicKey, 31 #[error("missing relay in URI")] 32 MissingRelay, 33 #[error("missing secret in nostrconnect uri")] 34 MissingSecret, 35 #[error("missing response result")] 36 MissingResult, 37 #[error("invalid parameter count for method `{method}`: expected {expected}, got {received}")] 38 InvalidParams { 39 method: String, 40 expected: &'static str, 41 received: usize, 42 }, 43 #[error("invalid request payload for method `{method}`: {reason}")] 44 InvalidRequestPayload { method: String, reason: String }, 45 #[error("invalid response payload for method `{method}`: {reason}")] 46 InvalidResponsePayload { method: String, reason: String }, 47 #[error("JSON error: {0}")] 48 Json(String), 49 } 50 51 impl From<serde_json::Error> for RadrootsNostrConnectError { 52 fn from(value: serde_json::Error) -> Self { 53 Self::Json(value.to_string()) 54 } 55 }