error.rs (1114B)
1 #![forbid(unsafe_code)] 2 3 use jsonrpsee::types::{ErrorObject, ErrorObjectOwned}; 4 use thiserror::Error; 5 6 #[derive(Debug, Error)] 7 pub enum RpcError { 8 #[error("failed to add relay {0}: {1}")] 9 AddRelay(String, String), 10 #[error("no relays configured; call relays.add first")] 11 NoRelays, 12 #[error("invalid params: {0}")] 13 InvalidParams(String), 14 #[error("method not found: {0}")] 15 MethodNotFound(String), 16 #[error("unauthorized: {0}")] 17 Unauthorized(String), 18 #[error("{0}")] 19 Other(String), 20 } 21 22 impl From<RpcError> for ErrorObjectOwned { 23 fn from(err: RpcError) -> Self { 24 match err { 25 RpcError::InvalidParams(msg) => ErrorObject::owned(-32602, msg, None::<()>), 26 RpcError::MethodNotFound(name) => { 27 ErrorObject::owned(-32601, format!("method not found: {name}"), None::<()>) 28 } 29 RpcError::Unauthorized(msg) => { 30 ErrorObject::owned(-32001, format!("unauthorized: {msg}"), None::<()>) 31 } 32 other => ErrorObject::owned(-32000, other.to_string(), None::<()>), 33 } 34 } 35 }