From f672781bfca47921ee8826035c583ebadbb807be Mon Sep 17 00:00:00 2001 From: Matthias Seitz Date: Wed, 19 Oct 2022 10:56:54 +0200 Subject: [PATCH] feat(api): add StorageProvider trait (#97) --- crates/interfaces/src/provider/mod.rs | 2 ++ crates/interfaces/src/provider/storage.rs | 8 ++++++++ 2 files changed, 10 insertions(+) create mode 100644 crates/interfaces/src/provider/storage.rs 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>; +}