Skip to content

Commit 6a99009

Browse files
starknet_patricia: no original skeleton trait
1 parent 6b3e97e commit 6a99009

File tree

4 files changed

+13
-24
lines changed

4 files changed

+13
-24
lines changed

crates/starknet_patricia/src/patricia_merkle_tree/original_skeleton_tree/tree.rs

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -10,40 +10,29 @@ pub type OriginalSkeletonNodeMap = HashMap<NodeIndex, OriginalSkeletonNode>;
1010
pub type OriginalSkeletonTreeResult<T> = Result<T, OriginalSkeletonTreeError>;
1111

1212
/// Consider a Patricia-Merkle Tree which should be updated with new leaves.
13-
/// This trait represents the structure of the subtree which will be modified in the
13+
/// This struct represents the structure of the subtree which will be modified in the
1414
/// update. It also contains the hashes (for edge siblings - also the edge data) of the unmodified
1515
/// nodes on the Merkle paths from the updated leaves to the root.
16-
pub trait OriginalSkeletonTree<'a>: Sized {
17-
fn get_nodes(&self) -> &OriginalSkeletonNodeMap;
18-
19-
fn get_nodes_mut(&mut self) -> &mut OriginalSkeletonNodeMap;
20-
21-
#[allow(dead_code)]
22-
fn get_sorted_leaf_indices(&self) -> SortedLeafIndices<'a>;
23-
}
24-
2516
// TODO(Dori, 1/7/2024): Make this a tuple struct.
2617
#[derive(Debug, PartialEq)]
2718
pub struct OriginalSkeletonTreeImpl<'a> {
2819
pub nodes: HashMap<NodeIndex, OriginalSkeletonNode>,
2920
pub sorted_leaf_indices: SortedLeafIndices<'a>,
3021
}
3122

32-
impl<'a> OriginalSkeletonTree<'a> for OriginalSkeletonTreeImpl<'a> {
33-
fn get_nodes(&self) -> &OriginalSkeletonNodeMap {
23+
impl<'a> OriginalSkeletonTreeImpl<'a> {
24+
pub(crate) fn get_nodes(&self) -> &OriginalSkeletonNodeMap {
3425
&self.nodes
3526
}
3627

37-
fn get_nodes_mut(&mut self) -> &mut OriginalSkeletonNodeMap {
28+
pub(crate) fn get_nodes_mut(&mut self) -> &mut OriginalSkeletonNodeMap {
3829
&mut self.nodes
3930
}
4031

41-
fn get_sorted_leaf_indices(&self) -> SortedLeafIndices<'a> {
32+
pub(crate) fn get_sorted_leaf_indices(&self) -> SortedLeafIndices<'a> {
4233
self.sorted_leaf_indices
4334
}
44-
}
4535

46-
impl<'a> OriginalSkeletonTreeImpl<'a> {
4736
pub fn create_unmodified(root_hash: HashOutput) -> Self {
4837
Self {
4938
nodes: HashMap::from([(

crates/starknet_patricia/src/patricia_merkle_tree/traversal.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ pub enum TraversalError {
2424
}
2525

2626
/// An enum that specifies how to treat unmodified children during the construction of the
27-
/// [crate::patricia_merkle_tree::original_skeleton_tree::tree::OriginalSkeletonTree]..
27+
/// [crate::patricia_merkle_tree::original_skeleton_tree::tree::OriginalSkeletonTreeImpl]..
2828
pub enum UnmodifiedChildTraversal {
2929
// Indicates that the child must be read since we don't have the data to create an original
3030
// tree node.
@@ -113,7 +113,7 @@ pub trait SubTreeTrait<'a>: Sized {
113113
}
114114

115115
/// Decide whether to traverse an unmodified child during the construction of the
116-
/// [crate::patricia_merkle_tree::original_skeleton_tree::tree::OriginalSkeletonTree].
116+
/// [crate::patricia_merkle_tree::original_skeleton_tree::tree::OriginalSkeletonTreeImpl].
117117
fn should_traverse_unmodified_child(data: Self::NodeData) -> UnmodifiedChildTraversal;
118118

119119
/// Returns the full [DbKey] of the root node.

crates/starknet_patricia/src/patricia_merkle_tree/updated_skeleton_tree/create_tree_helper.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use crate::patricia_merkle_tree::node_data::leaf::{LeafModifications, SkeletonLe
55
use crate::patricia_merkle_tree::original_skeleton_tree::node::OriginalSkeletonNode;
66
use crate::patricia_merkle_tree::original_skeleton_tree::tree::{
77
OriginalSkeletonNodeMap,
8-
OriginalSkeletonTree,
8+
OriginalSkeletonTreeImpl,
99
};
1010
use crate::patricia_merkle_tree::original_skeleton_tree::utils::split_leaves;
1111
use crate::patricia_merkle_tree::types::{NodeIndex, SortedLeafIndices};
@@ -73,7 +73,7 @@ impl UpdatedSkeletonTree {
7373
/// original skeleton and leaf modifications, without being dependant in any descendants
7474
/// (i.e., modified leaves, and unmodified nodes).
7575
pub(crate) fn finalize_bottom_layer<'a>(
76-
original_skeleton: &impl OriginalSkeletonTree<'a>,
76+
original_skeleton: &OriginalSkeletonTreeImpl<'a>,
7777
leaf_modifications: &LeafModifications<SkeletonLeaf>,
7878
) -> UpdatedSkeletonNodeMap {
7979
leaf_modifications
@@ -92,7 +92,7 @@ impl UpdatedSkeletonTree {
9292
/// Finalize the tree middle layers (i.e., not the bottom layer defined above).
9393
pub(crate) fn finalize_middle_layers<'a>(
9494
&mut self,
95-
original_skeleton: &mut impl OriginalSkeletonTree<'a>,
95+
original_skeleton: &mut OriginalSkeletonTreeImpl<'a>,
9696
) -> TempSkeletonNode {
9797
let sorted_leaf_indices = original_skeleton.get_sorted_leaf_indices();
9898
if original_skeleton.get_nodes().is_empty() {
@@ -397,7 +397,7 @@ impl UpdatedSkeletonTree {
397397
}
398398

399399
pub(crate) fn create_unmodified<'a>(
400-
original_skeleton: &impl OriginalSkeletonTree<'a>,
400+
original_skeleton: &OriginalSkeletonTreeImpl<'a>,
401401
) -> UpdatedSkeletonTreeResult<Self> {
402402
let original_root_node = original_skeleton
403403
.get_nodes()

crates/starknet_patricia/src/patricia_merkle_tree/updated_skeleton_tree/tree.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ use starknet_api::hash::HashOutput;
44

55
use crate::patricia_merkle_tree::node_data::leaf::{LeafModifications, SkeletonLeaf};
66
use crate::patricia_merkle_tree::original_skeleton_tree::node::OriginalSkeletonNode;
7-
use crate::patricia_merkle_tree::original_skeleton_tree::tree::OriginalSkeletonTree;
7+
use crate::patricia_merkle_tree::original_skeleton_tree::tree::OriginalSkeletonTreeImpl;
88
use crate::patricia_merkle_tree::types::NodeIndex;
99
use crate::patricia_merkle_tree::updated_skeleton_tree::create_tree_helper::TempSkeletonNode;
1010
use crate::patricia_merkle_tree::updated_skeleton_tree::errors::UpdatedSkeletonTreeError;
@@ -29,7 +29,7 @@ pub struct UpdatedSkeletonTree {
2929

3030
impl UpdatedSkeletonTree {
3131
pub fn create<'a>(
32-
original_skeleton: &mut impl OriginalSkeletonTree<'a>,
32+
original_skeleton: &mut OriginalSkeletonTreeImpl<'a>,
3333
leaf_modifications: &LeafModifications<SkeletonLeaf>,
3434
) -> UpdatedSkeletonTreeResult<Self> {
3535
if leaf_modifications.is_empty() {

0 commit comments

Comments
 (0)