@@ -83,6 +83,7 @@ mod tests {
8383 CURIE_L1_GAS_PRICE_ORACLE_STORAGE , IS_CURIE_SLOT , L1_BLOB_BASE_FEE_SLOT ,
8484 L1_GAS_PRICE_ORACLE_ADDRESS ,
8585 } ,
86+ feynman:: { IS_FEYNMAN_SLOT , PENALTY_FACTOR_SLOT , PENALTY_THRESHOLD_SLOT } ,
8687 ScrollBlockExecutionCtx , ScrollBlockExecutor , ScrollEvm ,
8788 } ;
8889 use scroll_alloy_hardforks:: ScrollHardforks ;
@@ -228,25 +229,39 @@ mod tests {
228229 let mut strategy = executor ( & block, & mut state) ;
229230
230231 // determine l1 gas oracle storage
231- let l1_gas_oracle_storage = if strategy. spec ( ) . is_curie_active_at_block ( block_number) {
232- vec ! [
233- ( L1_BLOB_BASE_FEE_SLOT , U256 :: from( 1000 ) ) ,
234- ( OVER_HEAD_SLOT , U256 :: from( 1000 ) ) ,
235- ( SCALAR_SLOT , U256 :: from( 1000 ) ) ,
236- ( L1_BLOB_BASE_FEE_SLOT , U256 :: from( 10000 ) ) ,
237- ( COMMIT_SCALAR_SLOT , U256 :: from( 1000 ) ) ,
238- ( BLOB_SCALAR_SLOT , U256 :: from( 10000 ) ) ,
239- ( IS_CURIE_SLOT , U256 :: from( 1 ) ) ,
240- ]
241- } else {
242- vec ! [
243- ( L1_BASE_FEE_SLOT , U256 :: from( 1000 ) ) ,
244- ( OVER_HEAD_SLOT , U256 :: from( 1000 ) ) ,
245- ( SCALAR_SLOT , U256 :: from( 1000 ) ) ,
246- ]
247- }
248- . into_iter ( )
249- . collect ( ) ;
232+ let l1_gas_oracle_storage =
233+ if strategy. spec ( ) . is_feynman_active_at_timestamp ( block_timestamp) {
234+ vec ! [
235+ ( L1_BLOB_BASE_FEE_SLOT , U256 :: from( 1000 ) ) ,
236+ ( OVER_HEAD_SLOT , U256 :: from( 1000 ) ) ,
237+ ( SCALAR_SLOT , U256 :: from( 1000 ) ) ,
238+ ( L1_BLOB_BASE_FEE_SLOT , U256 :: from( 10000 ) ) ,
239+ ( COMMIT_SCALAR_SLOT , U256 :: from( 1000 ) ) ,
240+ ( BLOB_SCALAR_SLOT , U256 :: from( 10000 ) ) ,
241+ ( IS_CURIE_SLOT , U256 :: from( 1 ) ) ,
242+ ( PENALTY_THRESHOLD_SLOT , U256 :: from( 1_000_000_000u64 ) ) ,
243+ ( PENALTY_FACTOR_SLOT , U256 :: from( 1_000_000_000u64 ) ) ,
244+ ( IS_FEYNMAN_SLOT , U256 :: from( 1 ) ) ,
245+ ]
246+ } else if strategy. spec ( ) . is_curie_active_at_block ( block_number) {
247+ vec ! [
248+ ( L1_BLOB_BASE_FEE_SLOT , U256 :: from( 1000 ) ) ,
249+ ( OVER_HEAD_SLOT , U256 :: from( 1000 ) ) ,
250+ ( SCALAR_SLOT , U256 :: from( 1000 ) ) ,
251+ ( L1_BLOB_BASE_FEE_SLOT , U256 :: from( 10000 ) ) ,
252+ ( COMMIT_SCALAR_SLOT , U256 :: from( 1000 ) ) ,
253+ ( BLOB_SCALAR_SLOT , U256 :: from( 10000 ) ) ,
254+ ( IS_CURIE_SLOT , U256 :: from( 1 ) ) ,
255+ ]
256+ } else {
257+ vec ! [
258+ ( L1_BASE_FEE_SLOT , U256 :: from( 1000 ) ) ,
259+ ( OVER_HEAD_SLOT , U256 :: from( 1000 ) ) ,
260+ ( SCALAR_SLOT , U256 :: from( 1000 ) ) ,
261+ ]
262+ }
263+ . into_iter ( )
264+ . collect ( ) ;
250265
251266 // load accounts in state
252267 strategy. evm_mut ( ) . db_mut ( ) . insert_account_with_storage (
@@ -287,25 +302,39 @@ mod tests {
287302 let mut strategy = executor ( & block, & mut state) ;
288303
289304 // determine l1 gas oracle storage
290- let l1_gas_oracle_storage = if strategy. spec ( ) . is_curie_active_at_block ( block_number) {
291- vec ! [
292- ( L1_BLOB_BASE_FEE_SLOT , U256 :: from( 1000 ) ) ,
293- ( OVER_HEAD_SLOT , U256 :: from( 1000 ) ) ,
294- ( SCALAR_SLOT , U256 :: from( 1000 ) ) ,
295- ( L1_BLOB_BASE_FEE_SLOT , U256 :: from( 10000 ) ) ,
296- ( COMMIT_SCALAR_SLOT , U256 :: from( 1000 ) ) ,
297- ( BLOB_SCALAR_SLOT , U256 :: from( 10000 ) ) ,
298- ( IS_CURIE_SLOT , U256 :: from( 1 ) ) ,
299- ]
300- } else {
301- vec ! [
302- ( L1_BASE_FEE_SLOT , U256 :: from( 1000 ) ) ,
303- ( OVER_HEAD_SLOT , U256 :: from( 1000 ) ) ,
304- ( SCALAR_SLOT , U256 :: from( 1000 ) ) ,
305- ]
306- }
307- . into_iter ( )
308- . collect ( ) ;
305+ let l1_gas_oracle_storage =
306+ if strategy. spec ( ) . is_feynman_active_at_timestamp ( block_timestamp) {
307+ vec ! [
308+ ( L1_BLOB_BASE_FEE_SLOT , U256 :: from( 1000 ) ) ,
309+ ( OVER_HEAD_SLOT , U256 :: from( 1000 ) ) ,
310+ ( SCALAR_SLOT , U256 :: from( 1000 ) ) ,
311+ ( L1_BLOB_BASE_FEE_SLOT , U256 :: from( 10000 ) ) ,
312+ ( COMMIT_SCALAR_SLOT , U256 :: from( 1000 ) ) ,
313+ ( BLOB_SCALAR_SLOT , U256 :: from( 10000 ) ) ,
314+ ( IS_CURIE_SLOT , U256 :: from( 1 ) ) ,
315+ ( PENALTY_THRESHOLD_SLOT , U256 :: from( 1_000_000_000u64 ) ) ,
316+ ( PENALTY_FACTOR_SLOT , U256 :: from( 2_000_000_000u64 ) ) ,
317+ ( IS_FEYNMAN_SLOT , U256 :: from( 1 ) ) ,
318+ ]
319+ } else if strategy. spec ( ) . is_curie_active_at_block ( block_number) {
320+ vec ! [
321+ ( L1_BLOB_BASE_FEE_SLOT , U256 :: from( 1000 ) ) ,
322+ ( OVER_HEAD_SLOT , U256 :: from( 1000 ) ) ,
323+ ( SCALAR_SLOT , U256 :: from( 1000 ) ) ,
324+ ( L1_BLOB_BASE_FEE_SLOT , U256 :: from( 10000 ) ) ,
325+ ( COMMIT_SCALAR_SLOT , U256 :: from( 1000 ) ) ,
326+ ( BLOB_SCALAR_SLOT , U256 :: from( 10000 ) ) ,
327+ ( IS_CURIE_SLOT , U256 :: from( 1 ) ) ,
328+ ]
329+ } else {
330+ vec ! [
331+ ( L1_BASE_FEE_SLOT , U256 :: from( 1000 ) ) ,
332+ ( OVER_HEAD_SLOT , U256 :: from( 1000 ) ) ,
333+ ( SCALAR_SLOT , U256 :: from( 1000 ) ) ,
334+ ]
335+ }
336+ . into_iter ( )
337+ . collect ( ) ;
309338
310339 // load accounts in state
311340 strategy. evm_mut ( ) . db_mut ( ) . insert_account_with_storage (
0 commit comments