diff --git a/crates/interfaces/src/provider/mod.rs b/crates/interfaces/src/provider/mod.rs index 6b8087081..eaebb02f4 100644 --- a/crates/interfaces/src/provider/mod.rs +++ b/crates/interfaces/src/provider/mod.rs @@ -1,3 +1,5 @@ mod block; +mod storage; pub use block::BlockProvider; +pub use storage::StorageProvider; diff --git a/crates/interfaces/src/provider/storage.rs b/crates/interfaces/src/provider/storage.rs new file mode 100644 index 000000000..6216546fb --- /dev/null +++ b/crates/interfaces/src/provider/storage.rs @@ -0,0 +1,8 @@ +use crate::Result; +use reth_primitives::{rpc::BlockId, Address, H256, U256}; + +/// Provides access to storage data +pub trait StorageProvider { + /// Returns the value from a storage position at a given address and `BlockId` + fn storage_at(&self, address: Address, index: U256, at: BlockId) -> Result>; +}