sc_rpc_api/mixnet/
error.rs1use jsonrpsee::types::error::{ErrorObject, ErrorObjectOwned};
22use sc_mixnet::{PostErr, RemoteErr, TopologyErr};
23
24pub struct Error(pub sc_mixnet::Error);
26
27const BASE_ERROR: i32 = crate::error::base::MIXNET;
29
30impl From<Error> for ErrorObjectOwned {
31 fn from(err: Error) -> Self {
32 let code = match err.0 {
33 sc_mixnet::Error::ServiceUnavailable => BASE_ERROR + 1,
34 sc_mixnet::Error::NoReply => BASE_ERROR + 2,
35 sc_mixnet::Error::BadReply => BASE_ERROR + 3,
36 sc_mixnet::Error::Post(PostErr::TooManyFragments) => BASE_ERROR + 101,
37 sc_mixnet::Error::Post(PostErr::SessionMixnodesNotKnown(_)) => BASE_ERROR + 102,
38 sc_mixnet::Error::Post(PostErr::SessionDisabled(_)) => BASE_ERROR + 103,
39 sc_mixnet::Error::Post(PostErr::Topology(TopologyErr::NoConnectedGatewayMixnodes)) =>
40 BASE_ERROR + 151,
41 sc_mixnet::Error::Post(PostErr::Topology(_)) => BASE_ERROR + 150,
42 sc_mixnet::Error::Post(_) => BASE_ERROR + 100,
43 sc_mixnet::Error::Remote(RemoteErr::Other(_)) => BASE_ERROR + 200,
44 sc_mixnet::Error::Remote(RemoteErr::Decode(_)) => BASE_ERROR + 201,
45 };
46 ErrorObject::owned(code, err.0.to_string(), None::<()>)
47 }
48}