From 24865b52419e4958a1b7925ff4b6c1cf0a650e3e Mon Sep 17 00:00:00 2001 From: ethanoroshiba Date: Wed, 14 Aug 2024 13:33:12 -0500 Subject: [PATCH] Add support for celestia-node v0.15.0 --- crates/astria-conductor/src/celestia/fetch.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/crates/astria-conductor/src/celestia/fetch.rs b/crates/astria-conductor/src/celestia/fetch.rs index 4787cf1e43..cf45cf2024 100644 --- a/crates/astria-conductor/src/celestia/fetch.rs +++ b/crates/astria-conductor/src/celestia/fetch.rs @@ -120,6 +120,7 @@ async fn fetch_blobs_with_retry( match client.blob_get_all(height, &[namespace]).await { Ok(blobs) => Ok(blobs), Err(err) if is_blob_not_found(&err) => Ok(vec![]), + Err(err) if is_null_blobs(&err) => Ok(vec![]), Err(err) => Err(err), } } @@ -162,9 +163,18 @@ fn should_retry(error: &jsonrpsee::core::Error) -> bool { ) } +// For celestia-node v0.14.1 and below fn is_blob_not_found(error: &jsonrpsee::core::Error) -> bool { let jsonrpsee::core::Error::Call(error) = error else { return false; }; error.code() == 1 && error.message().contains("blob: not found") } + +// For celestia-node v0.15.0 and newer +fn is_null_blobs(error: &jsonrpsee::core::Error) -> bool { + let jsonrpsee::core::Error::ParseError(error) = error else { + return false; + }; + error.to_string().contains("invalid type: null") +}