diff --git a/src/app.rs b/src/app.rs index 1a9519a3..6c7dd47e 100644 --- a/src/app.rs +++ b/src/app.rs @@ -16,7 +16,7 @@ use crate::identity::processor::{ }; use crate::identity::validator::IdentityValidator; use crate::identity_tree::initializer::TreeInitializer; -use crate::identity_tree::{Hash, RootItem, TreeState, TreeVersionOps}; +use crate::identity_tree::{Hash, RootItem, TreeState, TreeVersionReadOps}; use crate::prover::map::initialize_prover_maps; use crate::prover::repository::ProverRepository; use crate::prover::{ProverConfig, ProverType}; diff --git a/src/identity_tree/initializer.rs b/src/identity_tree/initializer.rs index 08b22915..3200af82 100644 --- a/src/identity_tree/initializer.rs +++ b/src/identity_tree/initializer.rs @@ -9,7 +9,7 @@ use crate::database::methods::DbMethods; use crate::database::Database; use crate::identity::processor::IdentityProcessor; use crate::identity_tree::{ - CanonicalTreeBuilder, Hash, ProcessedStatus, TreeState, TreeUpdate, TreeVersionOps, + CanonicalTreeBuilder, Hash, ProcessedStatus, TreeState, TreeUpdate, TreeVersionReadOps, TreeWithNextVersion, }; use crate::utils::tree_updates::dedup_tree_updates; diff --git a/src/identity_tree/mod.rs b/src/identity_tree/mod.rs index acca0afd..7a4b193c 100644 --- a/src/identity_tree/mod.rs +++ b/src/identity_tree/mod.rs @@ -398,9 +398,7 @@ impl> TreeVersion { /// The public-facing API for reading from a tree version. It is implemented for /// all versions. This being a trait allows us to hide some of the /// implementation details. -pub trait TreeVersionOps { - fn update(&self, leaf_index: usize, element: Hash); - +pub trait TreeVersionReadOps { /// Returns the current tree root. fn get_root(&self) -> Hash; /// Returns the next free leaf. @@ -413,14 +411,10 @@ pub trait TreeVersionOps { fn get_leaf(&self, leaf: usize) -> Hash; } -impl TreeVersionOps for TreeVersion +impl TreeVersionReadOps for TreeVersion where TreeVersionData: BasicTreeOps, { - fn update(&self, leaf_index: usize, element: Hash) { - self.get_data().update(leaf_index, element); - } - fn get_root(&self) -> Hash { self.get_data().get_root() } @@ -456,6 +450,11 @@ impl TreeVersion { } impl TreeVersion { + /// Updates tree by inserting element at leaf index. + pub fn update(&self, leaf_index: usize, element: Hash) { + self.get_data().update(leaf_index, element); + } + /// Appends many identities to the tree, returns a list with the root, proof /// of inclusion and leaf index #[must_use] diff --git a/src/task_monitor/tasks/create_batches.rs b/src/task_monitor/tasks/create_batches.rs index ef009c2c..4674f2b6 100644 --- a/src/task_monitor/tasks/create_batches.rs +++ b/src/task_monitor/tasks/create_batches.rs @@ -15,7 +15,7 @@ use crate::database; use crate::database::methods::DbMethods as _; use crate::database::Database; use crate::identity_tree::{ - AppliedTreeUpdate, Hash, Intermediate, TreeVersion, TreeVersionOps, TreeWithNextVersion, + AppliedTreeUpdate, Hash, Intermediate, TreeVersion, TreeVersionReadOps, TreeWithNextVersion, }; use crate::prover::identity::Identity; use crate::prover::repository::ProverRepository; diff --git a/src/task_monitor/tasks/delete_identities.rs b/src/task_monitor/tasks/delete_identities.rs index a1992078..7db83a75 100644 --- a/src/task_monitor/tasks/delete_identities.rs +++ b/src/task_monitor/tasks/delete_identities.rs @@ -11,7 +11,7 @@ use tracing::info; use crate::app::App; use crate::database::methods::DbMethods; use crate::database::types::DeletionEntry; -use crate::identity_tree::{Hash, TreeVersionOps}; +use crate::identity_tree::{Hash, TreeVersionReadOps}; // Deletion here differs from insert_identites task. This is because two // different flows are created for both tasks. Due to how our prover works diff --git a/src/task_monitor/tasks/insert_identities.rs b/src/task_monitor/tasks/insert_identities.rs index 39db52a8..a7974090 100644 --- a/src/task_monitor/tasks/insert_identities.rs +++ b/src/task_monitor/tasks/insert_identities.rs @@ -8,7 +8,7 @@ use tracing::info; use crate::app::App; use crate::database::methods::DbMethods as _; use crate::database::IsolationLevel; -use crate::identity_tree::TreeVersionOps; +use crate::identity_tree::TreeVersionReadOps; // Insertion here differs from delete_identities task. This is because two // different flows are created for both tasks. We need to insert identities as diff --git a/tests/common/mod.rs b/tests/common/mod.rs index d79718b2..95c4aa9a 100644 --- a/tests/common/mod.rs +++ b/tests/common/mod.rs @@ -40,7 +40,7 @@ pub mod prelude { AppConfig, Config, DatabaseConfig, OzDefenderConfig, ProvidersConfig, RelayerConfig, ServerConfig, TreeConfig, TxSitterConfig, }; - pub use signup_sequencer::identity_tree::{Hash, TreeVersionOps}; + pub use signup_sequencer::identity_tree::{Hash, TreeVersionReadOps}; pub use signup_sequencer::prover::ProverType; pub use signup_sequencer::server; pub use signup_sequencer::shutdown::Shutdown; @@ -76,7 +76,7 @@ use futures::stream::FuturesUnordered; use futures::StreamExt; use reqwest::{Body, Client, Method, Request, RequestBuilder, StatusCode}; use semaphore::poseidon_tree::Proof; -use signup_sequencer::identity_tree::{InclusionProof, TreeState, TreeVersionOps}; +use signup_sequencer::identity_tree::{InclusionProof, TreeState, TreeVersionReadOps}; use signup_sequencer::server::data::{ AddBatchSizeRequest, DeletionRequest, InclusionProofRequest, InclusionProofResponse, InsertCommitmentRequest, RemoveBatchSizeRequest, VerifySemaphoreProofRequest,