@@ -191,24 +191,15 @@ impl ProofAggregator {
191191 ) -> Result < H256 , AggregatedProofSubmissionError > {
192192 let calldata = match aggregated_proof {
193193 AlignedProof :: SP1 ( proof) => {
194- let vk_hash: [ u8 ; 32 ] = {
195- let hex_str = self
196- . config
197- . sp1_chunk_aggregator_vk_hash
198- . strip_prefix ( "0x" )
199- . unwrap_or ( & self . config . sp1_chunk_aggregator_vk_hash ) ;
200- let bytes = hex:: decode ( hex_str) . map_err ( |e| {
201- AggregatedProofSubmissionError :: BuildingVKHash ( e. to_string ( ) )
202- } ) ?;
203- if bytes. len ( ) != 32 {
204- return Err ( AggregatedProofSubmissionError :: BuildingVKHash (
205- "vk hash not 32 bytes" . into ( ) ,
206- ) ) ;
207- }
208- let mut arr = [ 0u8 ; 32 ] ;
209- arr. copy_from_slice ( & bytes) ;
210- arr
211- } ;
194+ let vk_hash: risc0_zkvm:: Bytes =
195+ hex:: decode ( self . config . sp1_chunk_aggregator_vk_hash . clone ( ) )
196+ . map_err ( |e| AggregatedProofSubmissionError :: BuildingVKHash ( e. to_string ( ) ) ) ?
197+ . try_into ( )
198+ . map_err ( |_| {
199+ AggregatedProofSubmissionError :: BuildingVKHash (
200+ "VK hash is not 32 bytes" . into ( ) ,
201+ )
202+ } ) ?;
212203
213204 encode_calldata (
214205 "verifySP1(bytes32,bytes,bytes,bytes32)" ,
@@ -222,7 +213,7 @@ impl ProofAggregator {
222213 ethrex_l2_common:: calldata:: Value :: Bytes (
223214 proof. proof_with_pub_values . bytes ( ) . into ( ) ,
224215 ) ,
225- ethrex_l2_common:: calldata:: Value :: FixedBytes ( vk_hash. to_vec ( ) . into ( ) ) ,
216+ ethrex_l2_common:: calldata:: Value :: FixedBytes ( vk_hash) ,
226217 ] ,
227218 )
228219 . map_err ( |e| AggregatedProofSubmissionError :: BuildingCalldata ( e. to_string ( ) ) ) ?
@@ -232,24 +223,15 @@ impl ProofAggregator {
232223 AggregatedProofSubmissionError :: Risc0EncodingSeal ( e. to_string ( ) )
233224 } ) ?;
234225
235- let risc0_image_id: [ u8 ; 32 ] = {
236- let hex_str = self
237- . config
238- . risc0_chunk_aggregator_image_id
239- . strip_prefix ( "0x" )
240- . unwrap_or ( & self . config . risc0_chunk_aggregator_image_id ) ;
241- let bytes = hex:: decode ( hex_str) . map_err ( |e| {
242- AggregatedProofSubmissionError :: BuildingVKHash ( e. to_string ( ) )
243- } ) ?;
244- if bytes. len ( ) != 32 {
245- return Err ( AggregatedProofSubmissionError :: BuildingVKHash (
246- "risc0 image id not 32 bytes" . into ( ) ,
247- ) ) ;
248- }
249- let mut arr = [ 0u8 ; 32 ] ;
250- arr. copy_from_slice ( & bytes) ;
251- arr
252- } ;
226+ let risc0_image_id: risc0_zkvm:: Bytes =
227+ hex:: decode ( self . config . risc0_chunk_aggregator_image_id . clone ( ) )
228+ . map_err ( |e| AggregatedProofSubmissionError :: BuildingVKHash ( e. to_string ( ) ) ) ?
229+ . try_into ( )
230+ . map_err ( |_| {
231+ AggregatedProofSubmissionError :: BuildingVKHash (
232+ "Risc0 image id is not 32 bytes" . into ( ) ,
233+ )
234+ } ) ?;
253235
254236 encode_calldata (
255237 "verifyRisc0(bytes32,bytes,bytes,bytes32)" ,
@@ -261,9 +243,7 @@ impl ProofAggregator {
261243 ethrex_l2_common:: calldata:: Value :: Bytes (
262244 proof. receipt . journal . bytes . into ( ) ,
263245 ) ,
264- ethrex_l2_common:: calldata:: Value :: FixedBytes (
265- risc0_image_id. to_vec ( ) . into ( ) ,
266- ) ,
246+ ethrex_l2_common:: calldata:: Value :: FixedBytes ( risc0_image_id) ,
267247 ] ,
268248 )
269249 . map_err ( |e| AggregatedProofSubmissionError :: BuildingCalldata ( e. to_string ( ) ) ) ?
0 commit comments