use std::collections::HashMap;
use alloy::primitives::{Address, U256};
use revm::{state::AccountInfo, DatabaseRef};
use tycho_client::feed::BlockHeader;
pub trait EngineDatabaseInterface: DatabaseRef + Send + Sync {
type Error;
fn init_account(
&self,
address: Address,
account: AccountInfo,
permanent_storage: Option<HashMap<U256, U256>>,
mocked: bool,
) -> Result<(), <Self as EngineDatabaseInterface>::Error>;
fn clear_temp_storage(&mut self) -> Result<(), <Self as EngineDatabaseInterface>::Error>;
fn get_current_block(&self) -> Option<BlockHeader>;
}