@@ -135,7 +135,8 @@ TEST_F(base_rollup_tests, native_no_new_contract_leafs)
135
135
// No contract leaves -> will insert empty tree -> i.e. end_contract_tree_root = start_contract_tree_root
136
136
137
137
BaseRollupInputs emptyInputs = base_rollup_inputs_from_kernels ({ get_empty_kernel (), get_empty_kernel () });
138
- auto empty_contract_tree = native_base_rollup::MerkleTree (CONTRACT_TREE_HEIGHT);
138
+ MemoryStore contract_tree_store;
139
+ auto empty_contract_tree = MerkleTree (contract_tree_store, CONTRACT_TREE_HEIGHT);
139
140
140
141
BaseOrMergeRollupPublicInputs outputs =
141
142
aztec3::circuits::rollup::native_base_rollup::base_rollup_circuit (builder, emptyInputs);
@@ -168,14 +169,17 @@ TEST_F(base_rollup_tests, native_contract_leaf_inserted)
168
169
.function_tree_root = fr (2 ),
169
170
};
170
171
171
- auto empty_contract_tree = native_base_rollup::MerkleTree (CONTRACT_TREE_HEIGHT);
172
+ MemoryStore empty_contract_tree_store;
173
+ auto empty_contract_tree = MerkleTree (empty_contract_tree_store, CONTRACT_TREE_HEIGHT);
172
174
AppendOnlyTreeSnapshot<NT> const expected_start_contracts_snapshot = {
173
175
.root = empty_contract_tree.root (),
174
176
.next_available_leaf_index = 0 ,
175
177
};
176
178
177
179
// create expected end contract tree snapshot
178
- auto expected_end_contracts_snapshot_tree = stdlib::merkle_tree::MemoryTree (CONTRACT_TREE_HEIGHT);
180
+ MemoryStore contract_tree_store;
181
+ auto expected_end_contracts_snapshot_tree =
182
+ stdlib::merkle_tree::MerkleTree<MemoryStore>(contract_tree_store, CONTRACT_TREE_HEIGHT);
179
183
expected_end_contracts_snapshot_tree.update_element (0 , new_contract.hash ());
180
184
181
185
AppendOnlyTreeSnapshot<NT> const expected_end_contracts_snapshot = {
@@ -212,7 +216,8 @@ TEST_F(base_rollup_tests, native_contract_leaf_inserted_in_non_empty_snapshot_tr
212
216
kernel_data[0 ].public_inputs .end .new_contracts [0 ] = new_contract;
213
217
BaseRollupInputs inputs = base_rollup_inputs_from_kernels (kernel_data);
214
218
215
- auto start_contract_tree_snapshot = native_base_rollup::MerkleTree (CONTRACT_TREE_HEIGHT);
219
+ MemoryStore start_contract_tree_snapshot_store;
220
+ auto start_contract_tree_snapshot = MerkleTree (start_contract_tree_snapshot_store, CONTRACT_TREE_HEIGHT);
216
221
// insert 12 leaves to the tree (next available leaf index is 12)
217
222
for (size_t i = 0 ; i < 12 ; ++i) {
218
223
start_contract_tree_snapshot.update_element (i, fr (i));
@@ -232,7 +237,10 @@ TEST_F(base_rollup_tests, native_contract_leaf_inserted_in_non_empty_snapshot_tr
232
237
auto expected_contract_leaf = crypto::pedersen_commitment::compress_native (
233
238
{ new_contract.contract_address , new_contract.portal_contract_address , new_contract.function_tree_root },
234
239
GeneratorIndex::CONTRACT_LEAF);
235
- auto expected_end_contracts_snapshot_tree = start_contract_tree_snapshot;
240
+
241
+ auto expected_end_contract_tree_snapshot_store = start_contract_tree_snapshot_store;
242
+ auto expected_end_contracts_snapshot_tree =
243
+ MerkleTree (expected_end_contract_tree_snapshot_store, CONTRACT_TREE_HEIGHT);
236
244
expected_end_contracts_snapshot_tree.update_element (12 , expected_contract_leaf);
237
245
238
246
AppendOnlyTreeSnapshot<NT> const expected_end_contracts_snapshot = {
@@ -265,7 +273,8 @@ TEST_F(base_rollup_tests, native_new_commitments_tree)
265
273
}
266
274
267
275
// get sibling path
268
- auto private_data_tree = native_base_rollup::MerkleTree (PRIVATE_DATA_TREE_HEIGHT);
276
+ MemoryStore private_data_tree_store;
277
+ auto private_data_tree = MerkleTree (private_data_tree_store, PRIVATE_DATA_TREE_HEIGHT);
269
278
AppendOnlyTreeSnapshot<NT> const expected_start_commitments_snapshot = {
270
279
.root = private_data_tree.root (),
271
280
.next_available_leaf_index = 0 ,
@@ -631,7 +640,8 @@ TEST_F(base_rollup_tests, native_compute_membership_historic_private_data_negati
631
640
std::array<PreviousKernelData<NT>, 2 > const kernel_data = { get_empty_kernel (), get_empty_kernel () };
632
641
BaseRollupInputs inputs = base_rollup_inputs_from_kernels (kernel_data);
633
642
634
- auto private_data_tree = native_base_rollup::MerkleTree (PRIVATE_DATA_TREE_ROOTS_TREE_HEIGHT);
643
+ MemoryStore private_data_store;
644
+ auto private_data_tree = MerkleTree (private_data_store, PRIVATE_DATA_TREE_ROOTS_TREE_HEIGHT);
635
645
636
646
// Create an INCORRECT sibling path for the private data tree root in the historic tree roots.
637
647
auto hash_path = private_data_tree.get_sibling_path (0 );
@@ -658,7 +668,9 @@ TEST_F(base_rollup_tests, native_compute_membership_historic_contract_tree_negat
658
668
std::array<PreviousKernelData<NT>, 2 > const kernel_data = { get_empty_kernel (), get_empty_kernel () };
659
669
BaseRollupInputs inputs = base_rollup_inputs_from_kernels (kernel_data);
660
670
661
- auto contract_tree = native_base_rollup::MerkleTree (CONTRACT_TREE_ROOTS_TREE_HEIGHT);
671
+ MemoryStore contract_tree_store;
672
+ auto contract_tree = MerkleTree (contract_tree_store, CONTRACT_TREE_ROOTS_TREE_HEIGHT);
673
+
662
674
663
675
// Create an INCORRECT sibling path for contract tree root in the historic tree roots.
664
676
auto hash_path = contract_tree.get_sibling_path (0 );
@@ -746,11 +758,17 @@ TEST_F(base_rollup_tests, native_cbind_0)
746
758
TEST_F (base_rollup_tests, native_single_public_state_read)
747
759
{
748
760
DummyBuilder builder = DummyBuilder (" base_rollup_tests__native_single_public_state_read" );
749
- native_base_rollup::MerkleTree private_data_tree (PRIVATE_DATA_TREE_HEIGHT);
750
- native_base_rollup::MerkleTree contract_tree (CONTRACT_TREE_HEIGHT);
751
- stdlib::merkle_tree::MemoryStore public_data_tree_store;
752
- native_base_rollup::SparseTree public_data_tree (public_data_tree_store, PUBLIC_DATA_TREE_HEIGHT);
753
- native_base_rollup::MerkleTree l1_to_l2_messages_tree (L1_TO_L2_MSG_TREE_HEIGHT);
761
+ MemoryStore private_data_tree_store;
762
+ MerkleTree private_data_tree (private_data_tree_store, PRIVATE_DATA_TREE_HEIGHT);
763
+
764
+ MemoryStore contract_tree_store;
765
+ MerkleTree contract_tree (contract_tree_store, CONTRACT_TREE_HEIGHT);
766
+
767
+ MemoryStore public_data_tree_store;
768
+ MerkleTree public_data_tree (public_data_tree_store, PUBLIC_DATA_TREE_HEIGHT);
769
+
770
+ MemoryStore l1_to_l2_messages_tree_store;
771
+ MerkleTree l1_to_l2_messages_tree (l1_to_l2_messages_tree_store, L1_TO_L2_MSG_TREE_HEIGHT);
754
772
755
773
auto data_read = abis::PublicDataRead<NT>{
756
774
.leaf_index = fr (1 ),
@@ -775,11 +793,18 @@ TEST_F(base_rollup_tests, native_single_public_state_read)
775
793
TEST_F (base_rollup_tests, native_single_public_state_write)
776
794
{
777
795
DummyBuilder builder = DummyBuilder (" base_rollup_tests__native_single_public_state_write" );
778
- native_base_rollup::MerkleTree private_data_tree (PRIVATE_DATA_TREE_HEIGHT);
779
- native_base_rollup::MerkleTree contract_tree (CONTRACT_TREE_HEIGHT);
780
- stdlib::merkle_tree::MemoryStore public_data_tree_store;
781
- native_base_rollup::SparseTree public_data_tree (public_data_tree_store, PUBLIC_DATA_TREE_HEIGHT);
782
- native_base_rollup::MerkleTree l1_to_l2_messages_tree (L1_TO_L2_MSG_TREE_HEIGHT);
796
+ MemoryStore private_data_tree_store;
797
+ MerkleTree private_data_tree (private_data_tree_store, PRIVATE_DATA_TREE_HEIGHT);
798
+
799
+ MemoryStore contract_tree_store;
800
+ MerkleTree contract_tree (contract_tree_store, CONTRACT_TREE_HEIGHT);
801
+
802
+ MemoryStore public_data_tree_store;
803
+ MerkleTree public_data_tree (public_data_tree_store, PUBLIC_DATA_TREE_HEIGHT);
804
+
805
+ MemoryStore l1_to_l2_messages_tree_store;
806
+ MerkleTree l1_to_l2_messages_tree (l1_to_l2_messages_tree_store, L1_TO_L2_MSG_TREE_HEIGHT);
807
+
783
808
784
809
auto data_write = abis::PublicDataUpdateRequest<NT>{
785
810
.leaf_index = fr (1 ),
@@ -806,11 +831,17 @@ TEST_F(base_rollup_tests, native_single_public_state_write)
806
831
TEST_F (base_rollup_tests, native_multiple_public_state_read_writes)
807
832
{
808
833
DummyBuilder builder = DummyBuilder (" base_rollup_tests__native_multiple_public_state_read_writes" );
809
- native_base_rollup::MerkleTree private_data_tree (PRIVATE_DATA_TREE_HEIGHT);
810
- native_base_rollup::MerkleTree contract_tree (CONTRACT_TREE_HEIGHT);
811
- stdlib::merkle_tree::MemoryStore public_data_tree_store;
812
- native_base_rollup::SparseTree public_data_tree (public_data_tree_store, PUBLIC_DATA_TREE_HEIGHT);
813
- native_base_rollup::MerkleTree l1_to_l2_messages_tree (L1_TO_L2_MSG_TREE_HEIGHT);
834
+ MemoryStore private_data_tree_store;
835
+ MerkleTree private_data_tree (private_data_tree_store, PRIVATE_DATA_TREE_HEIGHT);
836
+
837
+ MemoryStore contract_tree_store;
838
+ MerkleTree contract_tree (contract_tree_store, CONTRACT_TREE_HEIGHT);
839
+
840
+ MemoryStore public_data_tree_store;
841
+ MerkleTree public_data_tree (public_data_tree_store, PUBLIC_DATA_TREE_HEIGHT);
842
+
843
+ MemoryStore l1_to_l2_messages_tree_store;
844
+ MerkleTree l1_to_l2_messages_tree (l1_to_l2_messages_tree_store, L1_TO_L2_MSG_TREE_HEIGHT);
814
845
815
846
std::array<PreviousKernelData<NT>, 2 > kernel_data = { get_empty_kernel (), get_empty_kernel () };
816
847
@@ -847,11 +878,17 @@ TEST_F(base_rollup_tests, native_multiple_public_state_read_writes)
847
878
TEST_F (base_rollup_tests, native_invalid_public_state_read)
848
879
{
849
880
DummyBuilder builder = DummyBuilder (" base_rollup_tests__native_invalid_public_state_read" );
850
- native_base_rollup::MerkleTree private_data_tree (PRIVATE_DATA_TREE_HEIGHT);
851
- native_base_rollup::MerkleTree contract_tree (CONTRACT_TREE_HEIGHT);
852
- stdlib::merkle_tree::MemoryStore public_data_tree_store;
853
- native_base_rollup::SparseTree public_data_tree (public_data_tree_store, PUBLIC_DATA_TREE_HEIGHT);
854
- native_base_rollup::MerkleTree l1_to_l2_messages_tree (L1_TO_L2_MSG_TREE_HEIGHT);
881
+ MemoryStore private_data_tree_store;
882
+ MerkleTree private_data_tree (private_data_tree_store, PRIVATE_DATA_TREE_HEIGHT);
883
+
884
+ MemoryStore contract_tree_store;
885
+ MerkleTree contract_tree (contract_tree_store, CONTRACT_TREE_HEIGHT);
886
+
887
+ MemoryStore public_data_tree_store;
888
+ MerkleTree public_data_tree (public_data_tree_store, PUBLIC_DATA_TREE_HEIGHT);
889
+
890
+ MemoryStore l1_to_l2_messages_tree_store;
891
+ MerkleTree l1_to_l2_messages_tree (l1_to_l2_messages_tree_store, L1_TO_L2_MSG_TREE_HEIGHT);
855
892
856
893
auto data_read = abis::PublicDataRead<NT>{
857
894
.leaf_index = fr (1 ),
0 commit comments