From 7178b3b16bb657e8693ed9c7749637366b8fd351 Mon Sep 17 00:00:00 2001 From: Evan Gray Date: Sat, 24 Feb 2024 12:51:53 -0500 Subject: [PATCH] parse slice instead of vec --- .../src/structs/query_request.rs | 26 ++++++++--------- .../src/structs/query_response.rs | 28 ++++++++----------- 2 files changed, 24 insertions(+), 30 deletions(-) diff --git a/programs/example-queries-solana-verify/src/structs/query_request.rs b/programs/example-queries-solana-verify/src/structs/query_request.rs index 4839d46..ebd81d0 100644 --- a/programs/example-queries-solana-verify/src/structs/query_request.rs +++ b/programs/example-queries-solana-verify/src/structs/query_request.rs @@ -10,13 +10,13 @@ pub struct QueryRequest { impl QueryRequest { pub const REQUEST_VERSION: u8 = 1; - pub fn deserialize(data: &Vec) -> std::result::Result { + pub fn deserialize(data: &[u8]) -> std::result::Result { let mut rdr = Cursor::new(data); Self::deserialize_from_reader(&mut rdr) } pub fn deserialize_from_reader( - rdr: &mut Cursor<&Vec>, + rdr: &mut Cursor<&[u8]>, ) -> std::result::Result { let version = rdr.read_u8()?; if version != Self::REQUEST_VERSION { @@ -58,15 +58,13 @@ pub struct PerChainQueryRequest { } impl PerChainQueryRequest { - pub fn deserialize( - data: &Vec, - ) -> std::result::Result { + pub fn deserialize(data: &[u8]) -> std::result::Result { let mut rdr = Cursor::new(data); Self::deserialize_from_reader(&mut rdr) } pub fn deserialize_from_reader( - rdr: &mut Cursor<&Vec>, + rdr: &mut Cursor<&[u8]>, ) -> std::result::Result { let chain_id = rdr.read_u16::()?; let query_type = rdr.read_u8()?; @@ -118,13 +116,13 @@ pub struct EthCallData { } impl EthCallQueryRequest { - pub fn deserialize(data: &Vec) -> std::result::Result { + pub fn deserialize(data: &[u8]) -> std::result::Result { let mut rdr = Cursor::new(data); Self::deserialize_from_reader(&mut rdr) } pub fn deserialize_from_reader( - rdr: &mut Cursor<&Vec>, + rdr: &mut Cursor<&[u8]>, ) -> std::result::Result { let block_tag_len = rdr.read_u32::()?; let mut buf = vec![0u8; block_tag_len.try_into().unwrap()]; @@ -157,14 +155,14 @@ pub struct EthCallByTimestampQueryRequest { impl EthCallByTimestampQueryRequest { pub fn deserialize( - data: &Vec, + data: &[u8], ) -> std::result::Result { let mut rdr = Cursor::new(data); Self::deserialize_from_reader(&mut rdr) } pub fn deserialize_from_reader( - rdr: &mut Cursor<&Vec>, + rdr: &mut Cursor<&[u8]>, ) -> std::result::Result { let target_timestamp = rdr.read_u64::()?; let target_block_hint_len = rdr.read_u32::()?; @@ -204,14 +202,14 @@ pub struct EthCallWithFinalityQueryRequest { impl EthCallWithFinalityQueryRequest { pub fn deserialize( - data: &Vec, + data: &[u8], ) -> std::result::Result { let mut rdr = Cursor::new(data); Self::deserialize_from_reader(&mut rdr) } pub fn deserialize_from_reader( - rdr: &mut Cursor<&Vec>, + rdr: &mut Cursor<&[u8]>, ) -> std::result::Result { let block_tag_len = rdr.read_u32::()?; let mut buf = vec![0u8; block_tag_len.try_into().unwrap()]; @@ -251,14 +249,14 @@ pub struct SolanaAccountQueryRequest { impl SolanaAccountQueryRequest { pub fn deserialize( - data: &Vec, + data: &[u8], ) -> std::result::Result { let mut rdr = Cursor::new(data); Self::deserialize_from_reader(&mut rdr) } pub fn deserialize_from_reader( - rdr: &mut Cursor<&Vec>, + rdr: &mut Cursor<&[u8]>, ) -> std::result::Result { let commitment_len = rdr.read_u32::()?; let mut buf = vec![0u8; commitment_len.try_into().unwrap()]; diff --git a/programs/example-queries-solana-verify/src/structs/query_response.rs b/programs/example-queries-solana-verify/src/structs/query_response.rs index 335f0a3..e93cd09 100644 --- a/programs/example-queries-solana-verify/src/structs/query_response.rs +++ b/programs/example-queries-solana-verify/src/structs/query_response.rs @@ -14,13 +14,13 @@ pub struct QueryResponse { impl QueryResponse { pub const RESPONSE_VERSION: u8 = 1; - pub fn deserialize(data: &Vec) -> std::result::Result { + pub fn deserialize(data: &[u8]) -> std::result::Result { let mut rdr = Cursor::new(data); Self::deserialize_from_reader(&mut rdr) } pub fn deserialize_from_reader( - rdr: &mut Cursor<&Vec>, + rdr: &mut Cursor<&[u8]>, ) -> std::result::Result { let version = rdr.read_u8()?; if version != Self::RESPONSE_VERSION { @@ -71,15 +71,13 @@ pub struct PerChainQueryResponse { } impl PerChainQueryResponse { - pub fn deserialize( - data: &Vec, - ) -> std::result::Result { + pub fn deserialize(data: &[u8]) -> std::result::Result { let mut rdr = Cursor::new(data); Self::deserialize_from_reader(&mut rdr) } pub fn deserialize_from_reader( - rdr: &mut Cursor<&Vec>, + rdr: &mut Cursor<&[u8]>, ) -> std::result::Result { let chain_id = rdr.read_u16::()?; let query_type = rdr.read_u8()?; @@ -128,15 +126,13 @@ pub struct EthCallQueryResponse { } impl EthCallQueryResponse { - pub fn deserialize( - data: &Vec, - ) -> std::result::Result { + pub fn deserialize(data: &[u8]) -> std::result::Result { let mut rdr = Cursor::new(data); Self::deserialize_from_reader(&mut rdr) } pub fn deserialize_from_reader( - rdr: &mut Cursor<&Vec>, + rdr: &mut Cursor<&[u8]>, ) -> std::result::Result { let block_number = rdr.read_u64::()?; let mut block_hash = [0u8; 32]; @@ -171,14 +167,14 @@ pub struct EthCallByTimestampQueryResponse { impl EthCallByTimestampQueryResponse { pub fn deserialize( - data: &Vec, + data: &[u8], ) -> std::result::Result { let mut rdr = Cursor::new(data); Self::deserialize_from_reader(&mut rdr) } pub fn deserialize_from_reader( - rdr: &mut Cursor<&Vec>, + rdr: &mut Cursor<&[u8]>, ) -> std::result::Result { let target_block_number = rdr.read_u64::()?; let mut target_block_hash = [0u8; 32]; @@ -217,14 +213,14 @@ pub struct EthCallWithFinalityQueryResponse { impl EthCallWithFinalityQueryResponse { pub fn deserialize( - data: &Vec, + data: &[u8], ) -> std::result::Result { let mut rdr = Cursor::new(data); Self::deserialize_from_reader(&mut rdr) } pub fn deserialize_from_reader( - rdr: &mut Cursor<&Vec>, + rdr: &mut Cursor<&[u8]>, ) -> std::result::Result { let EthCallQueryResponse { block_number, @@ -258,14 +254,14 @@ pub struct SolanaAccountResult { impl SolanaAccountQueryResponse { pub fn deserialize( - data: &Vec, + data: &[u8], ) -> std::result::Result { let mut rdr = Cursor::new(data); Self::deserialize_from_reader(&mut rdr) } pub fn deserialize_from_reader( - rdr: &mut Cursor<&Vec>, + rdr: &mut Cursor<&[u8]>, ) -> std::result::Result { let slot_number = rdr.read_u64::()?; let block_time = rdr.read_u64::()?;