seismic_rpc_api/
error.rs

1use reth_rpc_server_types::result::internal_rpc_err;
2
3#[derive(Debug, thiserror::Error)]
4
5/// Seismic API error
6pub enum SeismicApiError {
7    /// Enclave error
8    #[error("enclave error: {0}")]
9    EnclaveError(String),
10}
11
12impl From<SeismicApiError> for jsonrpsee::types::error::ErrorObject<'static> {
13    fn from(error: SeismicApiError) -> Self {
14        match error {
15            SeismicApiError::EnclaveError(e) => internal_rpc_err(format!("enclave error: {e}")),
16        }
17    }
18}
19
20#[cfg(test)]
21mod tests {
22    use crate::error::SeismicApiError;
23
24    #[test]
25    fn enclave_error_message() {
26        let err: jsonrpsee::types::error::ErrorObject<'static> =
27            SeismicApiError::EnclaveError("test".to_string()).into();
28        assert_eq!(err.message(), "enclave error: test");
29    }
30}