Skip to content

Commit ae92273

Browse files
committed
better serde decode err
1 parent a769deb commit ae92273

File tree

3 files changed

+22
-5
lines changed

3 files changed

+22
-5
lines changed

crates/common/src/pbs/error.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@ pub enum PbsError {
1414
#[error("reqwest error: {0}")]
1515
Reqwest(#[from] reqwest::Error),
1616

17-
#[error("serde decode error: {0}")]
18-
SerdeDecodeError(#[from] serde_json::Error),
17+
#[error("json decode error: {err}, raw:\n{raw}")]
18+
JsonDecode { err: serde_json::Error, raw: String },
1919

2020
#[error("relay response error. Code: {code}, err: {error_msg}")]
2121
RelayResponse { error_msg: String, code: u16 },
2222

23-
#[error("Response size exceeds 10MB! Got: {payload_size}")]
23+
#[error("response size exceeds 10MB! Got: {payload_size}")]
2424
PayloadTooLarge { payload_size: usize },
2525

2626
#[error("failed validating relay response: {0}")]

crates/pbs/src/mev_boost/get_header.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,15 @@ async fn send_one_get_header(
264264
return Ok((start_request_time, None));
265265
}
266266

267-
let get_header_response: GetHeaderResponse = serde_json::from_slice(&response_bytes)?;
267+
let get_header_response = match serde_json::from_slice::<GetHeaderResponse>(&response_bytes) {
268+
Ok(parsed) => parsed,
269+
Err(err) => {
270+
return Err(PbsError::JsonDecode {
271+
err,
272+
raw: String::from_utf8_lossy(&response_bytes).into_owned(),
273+
});
274+
}
275+
};
268276

269277
debug!(
270278
latency = ?request_latency,

crates/pbs/src/mev_boost/submit_block.rs

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,16 @@ async fn send_submit_block(
110110
return Err(err);
111111
};
112112

113-
let block_response: SubmitBlindedBlockResponse = serde_json::from_slice(&response_bytes)?;
113+
let block_response = match serde_json::from_slice::<SubmitBlindedBlockResponse>(&response_bytes)
114+
{
115+
Ok(parsed) => parsed,
116+
Err(err) => {
117+
return Err(PbsError::JsonDecode {
118+
err,
119+
raw: String::from_utf8_lossy(&response_bytes).into_owned(),
120+
});
121+
}
122+
};
114123

115124
debug!(
116125
latency = ?request_latency,

0 commit comments

Comments
 (0)