From 8838667e0e7768d14011cc3bb6b519b7e849864c Mon Sep 17 00:00:00 2001 From: "Antonio F. T" Date: Mon, 15 Jan 2024 00:39:20 +0100 Subject: [PATCH] Patch provider error handling (#8) * Patch provider error handling * Fix clippy --- src/middleware.rs | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/middleware.rs b/src/middleware.rs index 062422a..710850e 100644 --- a/src/middleware.rs +++ b/src/middleware.rs @@ -254,7 +254,13 @@ impl CCIPReadMiddleware { return Err(CCIPReadMiddlewareError::MiddlewareError(err)); }; - Ok(Bytes::from_hex(data)?) + let bytes = Bytes::from_hex(data)?; + + if !bytes.starts_with(OFFCHAIN_LOOKUP_SELECTOR) { + return Err(CCIPReadMiddlewareError::MiddlewareError(err)); + } + + Ok(bytes) })?; if !matches!(block_id.unwrap_or(BlockId::Number(BlockNumber::Latest)), BlockId::Number(block) if block.is_latest()) @@ -262,10 +268,7 @@ impl CCIPReadMiddleware { return Ok((result, requests_buffer.to_vec())); } - if tx_sender.is_zero() - || !result.starts_with(OFFCHAIN_LOOKUP_SELECTOR) - || result.len() % 32 != 4 - { + if tx_sender.is_zero() || result.len() % 32 != 4 { return Ok((result, requests_buffer.to_vec())); } @@ -279,6 +282,7 @@ impl CCIPReadMiddleware { let decoded_data: Vec = abi::decode(&output_types, &result[4..])?; + #[allow(clippy::get_first)] let ( Some(Token::Address(sender)), Some(Token::Array(urls)),