Skip to content

Commit 7c20721

Browse files
fix: allow empty block overrides in simulations (#60)
Allow empty block overrides to not break the (disabled) `mev_simBundle` endpoint.
1 parent 6ef320e commit 7c20721

1 file changed

Lines changed: 22 additions & 2 deletions

File tree

crates/evm/src/seismic_security.rs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,13 +53,25 @@ where
5353
/// (e.g. timestamp, number, prevrandao) could be used to trick contracts into
5454
/// disclosing shielded storage.
5555
pub fn validate_block_overrides<DB>(
56-
_overrides: &BlockOverrides,
56+
overrides: &BlockOverrides,
5757
_db: &DB,
5858
) -> Result<BlockOverrides, OverrideError<DB::Error>>
5959
where
6060
DB: Database,
6161
{
62-
Err(OverrideError::BlockOverrideNotPermitted)
62+
if overrides.number.is_some()
63+
|| overrides.difficulty.is_some()
64+
|| overrides.time.is_some()
65+
|| overrides.gas_limit.is_some()
66+
|| overrides.coinbase.is_some()
67+
|| overrides.random.is_some()
68+
|| overrides.base_fee.is_some()
69+
|| overrides.block_hash.is_some()
70+
{
71+
return Err(OverrideError::BlockOverrideNotPermitted);
72+
}
73+
74+
Ok(overrides.clone())
6375
}
6476

6577
#[cfg(test)]
@@ -100,4 +112,12 @@ mod tests {
100112
let result = validate_block_overrides(&overrides, &db);
101113
assert!(matches!(result, Err(OverrideError::BlockOverrideNotPermitted)));
102114
}
115+
116+
#[test]
117+
fn empty_block_overrides_allowed() {
118+
let db = CacheDB::new(EmptyDB::new());
119+
let overrides = BlockOverrides::default();
120+
let result = validate_block_overrides(&overrides, &db);
121+
assert_eq!(result.unwrap(), overrides);
122+
}
103123
}

0 commit comments

Comments
 (0)