@@ -54,20 +54,21 @@ impl<CodeDb: KVDatabase, ZkDb: KVDatabase + Clone + 'static> EvmExecutor<'_, Cod
54
54
}
55
55
56
56
/// Handle a block.
57
- pub fn handle_block < T : Block > ( & mut self , l2_trace : & T ) -> Result < ( ) , VerificationError > {
58
- measure_duration_millis ! (
57
+ pub fn handle_block < T : Block > ( & mut self , l2_trace : & T ) -> Result < u64 , VerificationError > {
58
+ #[ allow( clippy:: let_and_return) ]
59
+ let gas_used = measure_duration_millis ! (
59
60
handle_block_duration_milliseconds,
60
61
self . handle_block_inner( l2_trace)
61
62
) ?;
62
63
63
64
#[ cfg( feature = "metrics" ) ]
64
65
sbv_utils:: metrics:: REGISTRY . block_counter . inc ( ) ;
65
66
66
- Ok ( ( ) )
67
+ Ok ( gas_used )
67
68
}
68
69
69
70
#[ inline( always) ]
70
- fn handle_block_inner < T : Block > ( & mut self , l2_trace : & T ) -> Result < ( ) , VerificationError > {
71
+ fn handle_block_inner < T : Block > ( & mut self , l2_trace : & T ) -> Result < u64 , VerificationError > {
71
72
self . hardfork_config
72
73
. migrate ( l2_trace. number ( ) , & mut self . db )
73
74
. unwrap ( ) ;
@@ -86,6 +87,8 @@ impl<CodeDb: KVDatabase, ZkDb: KVDatabase + Clone + 'static> EvmExecutor<'_, Cod
86
87
blob_excess_gas_and_price : None ,
87
88
} ;
88
89
90
+ let mut gas_used = 0 ;
91
+
89
92
for ( idx, tx) in l2_trace. transactions ( ) . enumerate ( ) {
90
93
cycle_tracker_start ! ( "handle tx {}" , idx) ;
91
94
@@ -151,7 +154,7 @@ impl<CodeDb: KVDatabase, ZkDb: KVDatabase + Clone + 'static> EvmExecutor<'_, Cod
151
154
152
155
dev_trace ! ( "handler cfg: {:?}" , revm. handler. cfg) ;
153
156
154
- let _result = measure_duration_millis ! (
157
+ let result = measure_duration_millis ! (
155
158
transact_commit_duration_milliseconds,
156
159
cycle_track!( revm. transact_commit( ) , "transact_commit" ) . map_err( |e| {
157
160
VerificationError :: EvmExecution {
@@ -161,14 +164,16 @@ impl<CodeDb: KVDatabase, ZkDb: KVDatabase + Clone + 'static> EvmExecutor<'_, Cod
161
164
} ) ?
162
165
) ;
163
166
164
- dev_trace ! ( "{_result:#?}" ) ;
167
+ gas_used += result. gas_used ( ) ;
168
+
169
+ dev_trace ! ( "{result:#?}" ) ;
165
170
}
166
171
self . hooks . post_tx_execution ( self , idx) ;
167
172
168
173
dev_debug ! ( "handle {idx}th tx done" ) ;
169
174
cycle_tracker_end ! ( "handle tx {}" , idx) ;
170
175
}
171
- Ok ( ( ) )
176
+ Ok ( gas_used )
172
177
}
173
178
174
179
/// Commit pending changes in cache db to zktrie
0 commit comments