@@ -12,7 +12,7 @@ use alloy_sol_types::{sol, SolCall, SolEvent};
1212use alloy_trie:: root:: ordered_trie_root_with_encoder;
1313use eyre:: OptionExt ;
1414use io:: EvmSketchInput ;
15- use reth_primitives:: { EthPrimitives , SealedHeader } ;
15+ use reth_primitives:: EthPrimitives ;
1616use revm:: { context:: TxEnv , database:: CacheDB } ;
1717use revm_primitives:: { Address , Bytes , TxKind , B256 , U256 } ;
1818use rsp_client_executor:: io:: { TrieDB , WitnessInput } ;
@@ -196,19 +196,20 @@ impl<'a, P: Primitives> ClientExecutor<'a, P> {
196196 let chain_spec = P :: build_spec ( & state_sketch. genesis ) ?;
197197 let genesis_hash = hash_genesis ( & state_sketch. genesis ) ;
198198 let header = state_sketch. anchor . header ( ) ;
199+ let sealed_headers = state_sketch. sealed_headers ( ) . collect :: < Vec < _ > > ( ) ;
199200
200- P :: validate_header ( & SealedHeader :: new_unhashed ( header . clone ( ) ) , chain_spec. clone ( ) )
201+ P :: validate_header ( & sealed_headers [ 0 ] , chain_spec. clone ( ) )
201202 . expect ( "the header in not valid" ) ;
202203
203204 // Verify the state root
204205 assert_eq ! ( header. state_root, state_sketch. state. state_root( ) , "State root mismatch" ) ;
205206
206207 // Verify that ancestors form a valid chain
207208 let mut previous_header = header;
208- for ancestor in & state_sketch . ancestor_headers {
209- let ancestor_hash = ancestor. hash_slow ( ) ;
209+ for ancestor in sealed_headers . iter ( ) . skip ( 1 ) {
210+ let ancestor_hash = ancestor. hash ( ) ;
210211
211- P :: validate_header ( & SealedHeader :: new_unhashed ( ancestor. clone ( ) ) , chain_spec. clone ( ) )
212+ P :: validate_header ( ancestor, chain_spec. clone ( ) )
212213 . unwrap_or_else ( |_| panic ! ( "the ancestor {} header in not valid" , ancestor. number) ) ;
213214 assert_eq ! (
214215 previous_header. parent_hash, ancestor_hash,
@@ -235,7 +236,7 @@ impl<'a, P: Primitives> ClientExecutor<'a, P> {
235236 Ok ( Self {
236237 anchor : & state_sketch. anchor ,
237238 chain_spec,
238- witness_db : state_sketch. witness_db ( ) ?,
239+ witness_db : state_sketch. witness_db ( & sealed_headers ) ?,
239240 logs,
240241 genesis_hash,
241242 } )
0 commit comments