error.rs 991 B

1234567891011121314151617181920212223242526272829303132333435
  1. use serde_json::Value;
  2. use darkfi::rpc::{
  3. jsonrpc,
  4. jsonrpc::{ErrorCode::ServerError, JsonResult},
  5. };
  6. pub enum RpcError {
  7. Keygen = -32101,
  8. Nan = -32102,
  9. LessThanNegOne = -32103,
  10. KeypairFetch = -32104,
  11. KeypairNotFound = -32105,
  12. InvalidKeypair = -32106,
  13. UnknownSlot = -32107,
  14. }
  15. fn to_tuple(e: RpcError) -> (i64, String) {
  16. let msg = match e {
  17. RpcError::Keygen => "Failed generating keypair",
  18. RpcError::Nan => "Not a number",
  19. RpcError::LessThanNegOne => "Number cannot be lower than -1",
  20. RpcError::KeypairFetch => "Failed fetching keypairs from wallet",
  21. RpcError::KeypairNotFound => "Keypair not found",
  22. RpcError::InvalidKeypair => "Invalid keypair",
  23. RpcError::UnknownSlot => "Did not find slot",
  24. };
  25. (e as i64, msg.to_string())
  26. }
  27. pub fn server_error(e: RpcError, id: Value) -> JsonResult {
  28. let (code, msg) = to_tuple(e);
  29. jsonrpc::error(ServerError(code), Some(msg), id).into()
  30. }