From 49b98bbe3b97e0bd2f34e4c0b74cbfc578f47083 Mon Sep 17 00:00:00 2001 From: Wodann Date: Thu, 7 Mar 2024 09:39:26 -0600 Subject: [PATCH] feat: implement DatabaseCommit for DatabaseComponents (#1163) * feat: implement DatabaseCommit for DatabaseComponents * misc: apply review suggestions --- crates/primitives/src/db.rs | 7 +++++++ crates/primitives/src/db/components.rs | 10 +++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/crates/primitives/src/db.rs b/crates/primitives/src/db.rs index 0456b03432..e0db9bda01 100644 --- a/crates/primitives/src/db.rs +++ b/crates/primitives/src/db.rs @@ -91,6 +91,13 @@ impl Database for WrapDatabaseRef { } } +impl DatabaseCommit for WrapDatabaseRef { + #[inline] + fn commit(&mut self, changes: HashMap) { + self.0.commit(changes) + } +} + /// Wraps a `dyn DatabaseRef` to provide a [`Database`] implementation. #[doc(hidden)] #[deprecated = "use `WrapDatabaseRef` instead"] diff --git a/crates/primitives/src/db/components.rs b/crates/primitives/src/db/components.rs index aa35dc2742..c6348b920a 100644 --- a/crates/primitives/src/db/components.rs +++ b/crates/primitives/src/db/components.rs @@ -7,9 +7,11 @@ pub use state::{State, StateRef}; use crate::{ db::{Database, DatabaseRef}, - AccountInfo, Address, Bytecode, B256, U256, + Account, AccountInfo, Address, Bytecode, HashMap, B256, U256, }; +use super::DatabaseCommit; + #[derive(Debug)] pub struct DatabaseComponents { pub state: S, @@ -73,3 +75,9 @@ impl DatabaseRef for DatabaseComponents { .map_err(Self::Error::BlockHash) } } + +impl DatabaseCommit for DatabaseComponents { + fn commit(&mut self, changes: HashMap) { + self.state.commit(changes); + } +}