Skip to content

Commit

Permalink
Remove rpc backtrace, resolve nervosnetwork#4698
Browse files Browse the repository at this point in the history
Signed-off-by: Eval EXEC <[email protected]>
  • Loading branch information
eval-exec committed Nov 26, 2024
1 parent 80cfe48 commit 2ae41ff
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion rpc/src/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,14 @@ pub enum RPCError {
Indexer = -1200,
}

/// Removes the backtrace portion from an error string.
fn remove_backtrace(err_str: &str) -> &str {
match err_str.find("\nStack backtrace:") {
Some(idx) => &err_str[..idx],
None => err_str,
}
}

impl RPCError {
/// Invalid method parameter(s).
pub fn invalid_params<T: Display>(message: T) -> Error {
Expand Down Expand Up @@ -158,10 +166,12 @@ impl RPCError {
/// The parameter `err` is usually an std error. The Display form is used as the error message,
/// and the Debug form is used as the data.
pub fn custom_with_error<T: Display + Debug>(error_code: RPCError, err: T) -> Error {
let err_str_with_backtrace = format!("{err:?}");
let err_str = remove_backtrace(&err_str_with_backtrace);
Error {
code: ErrorCode::ServerError(error_code as i64),
message: format!("{error_code:?}: {err}"),
data: Some(Value::String(format!("{err:?}"))),
data: Some(Value::String(err_str.to_string())),
}
}

Expand Down

0 comments on commit 2ae41ff

Please sign in to comment.