@@ -21,10 +21,13 @@ use tokio::{
2121 task:: JoinHandle ,
2222} ;
2323use tracing:: { Instrument , Span , debug, instrument} ;
24- use trevm:: revm:: {
25- context:: BlockEnv ,
26- database:: { AlloyDB , WrapDatabaseAsync } ,
27- inspector:: NoOpInspector ,
24+ use trevm:: {
25+ Block ,
26+ revm:: {
27+ context:: BlockEnv ,
28+ database:: { AlloyDB , WrapDatabaseAsync } ,
29+ inspector:: NoOpInspector ,
30+ } ,
2831} ;
2932
3033type HostAlloyDatabaseProvider = WrapDatabaseAsync < AlloyDB < Ethereum , HostProvider > > ;
@@ -128,36 +131,43 @@ impl Simulator {
128131 constants : SignetSystemConstants ,
129132 sim_items : SimCache ,
130133 finish_by : Instant ,
131- block_env : BlockEnv ,
134+ sim_env : SimEnv ,
132135 ) -> eyre:: Result < BuiltBlock > {
133136 let concurrency_limit = self . config . concurrency_limit ( ) ;
134- let latest_block_number = BlockNumber :: from ( block_env. number . to :: < u64 > ( ) - 1 ) ;
135- let host_block_number = self . config . constants . rollup_block_to_host_block_num ( latest_block_number) ;
136137
138+ let host_block_number = BlockNumber :: from ( sim_env. prev_host . number ) ;
137139 let host_db = self . create_host_db ( host_block_number) . await ;
140+ let mut host_block_env = BlockEnv :: default ( ) ;
141+ sim_env. prev_host . fill_block_env ( & mut host_block_env) ;
138142 let host_env = HostEnv :: < _ , NoOpInspector > :: new (
139143 host_db,
140144 constants. clone ( ) ,
141- & self . config . cfg_env ( ) ,
142- & block_env ,
145+ & self . config . host_cfg_env ( ) ,
146+ & host_block_env ,
143147 ) ;
144148
145- let rollup_db = self . create_rollup_db ( latest_block_number) ;
149+ let rollup_block_number = BlockNumber :: from ( sim_env. prev_header . number ) ;
150+ let rollup_db = self . create_rollup_db ( rollup_block_number) ;
151+ let mut rollup_block_env = BlockEnv :: default ( ) ;
152+ sim_env. prev_header . fill_block_env ( & mut rollup_block_env) ;
146153 let rollup_env = RollupEnv :: < _ , NoOpInspector > :: new (
147154 rollup_db,
148155 constants,
149- & self . config . cfg_env ( ) ,
150- & block_env ,
156+ & self . config . ru_cfg_env ( ) ,
157+ & rollup_block_env ,
151158 ) ;
152159
160+ // TODO
161+ let max_host_gas: u64 = 0 ;
162+
153163 let block_build = BlockBuild :: new (
154164 rollup_env,
155165 host_env,
156166 finish_by,
157167 concurrency_limit,
158168 sim_items,
159169 self . config . rollup_block_gas_limit ,
160- block_env . gas_limit ,
170+ max_host_gas ,
161171 ) ;
162172
163173 let built_block = block_build. build ( ) . in_current_span ( ) . await ;
@@ -235,7 +245,7 @@ impl Simulator {
235245 let sim_cache = cache. clone ( ) ;
236246
237247 let Ok ( block) = self
238- . handle_build ( constants. clone ( ) , sim_cache, finish_by, sim_env. block_env . clone ( ) )
248+ . handle_build ( constants. clone ( ) , sim_cache, finish_by, sim_env. clone ( ) )
239249 . instrument ( span. clone ( ) )
240250 . await
241251 . inspect_err ( |err| span_error ! ( span, %err, "error during block build" ) )
0 commit comments