From b6a3bb29333e69bdcd9d25509e0ac856dc3924d1 Mon Sep 17 00:00:00 2001 From: Rahul Kothari Date: Tue, 4 Apr 2023 10:11:05 +0000 Subject: [PATCH] add rollup subtree height --- .../rollup/base/base_or_merge_rollup_public_inputs.hpp | 8 ++++++++ .../circuits/rollup/base/native_base_rollup_circuit.cpp | 1 + 2 files changed, 9 insertions(+) diff --git a/cpp/src/aztec3/circuits/abis/rollup/base/base_or_merge_rollup_public_inputs.hpp b/cpp/src/aztec3/circuits/abis/rollup/base/base_or_merge_rollup_public_inputs.hpp index 88923618..e5a1042b 100644 --- a/cpp/src/aztec3/circuits/abis/rollup/base/base_or_merge_rollup_public_inputs.hpp +++ b/cpp/src/aztec3/circuits/abis/rollup/base/base_or_merge_rollup_public_inputs.hpp @@ -27,6 +27,9 @@ template struct BaseOrMergeRollupPublicInputs { AggregationObject end_aggregation_object; ConstantRollupData constants; + // subtree height is always 0 for base. + // so that we always pass-in two base/merge circuits of the same height into the next level of recursion + fr rollup_subtree_height; AppendOnlyTreeSnapshot start_private_data_tree_snapshot; AppendOnlyTreeSnapshot end_private_data_tree_snapshot; @@ -52,6 +55,7 @@ template void read(uint8_t const*& it, BaseOrMergeRollupPublicInp read(it, obj.rollup_subtree_height); read(it, obj.end_aggregation_object); read(it, obj.constants); + read(it, obj.rollup_subtree_height); read(it, obj.start_private_data_tree_snapshot); read(it, obj.end_private_data_tree_snapshot); read(it, obj.start_nullifier_tree_snapshot); @@ -69,6 +73,7 @@ template void write(std::vector& buf, BaseOrMergeRollupP write(buf, obj.rollup_subtree_height); write(buf, obj.end_aggregation_object); write(buf, obj.constants); + write(buf, obj.rollup_subtree_height); write(buf, obj.start_private_data_tree_snapshot); write(buf, obj.end_private_data_tree_snapshot); write(buf, obj.start_nullifier_tree_snapshot); @@ -89,6 +94,9 @@ template std::ostream& operator<<(std::ostream& os, BaseOrMergeRo << "\n" "constants:\n" << obj.constants + << "\n" + "rollup_subtree_height:\n" + << obj.rollup_subtree_height << "\n" "start_private_data_tree_snapshot:\n" << obj.start_private_data_tree_snapshot diff --git a/cpp/src/aztec3/circuits/rollup/base/native_base_rollup_circuit.cpp b/cpp/src/aztec3/circuits/rollup/base/native_base_rollup_circuit.cpp index 38e3ac3f..9e56bc08 100644 --- a/cpp/src/aztec3/circuits/rollup/base/native_base_rollup_circuit.cpp +++ b/cpp/src/aztec3/circuits/rollup/base/native_base_rollup_circuit.cpp @@ -509,6 +509,7 @@ BaseOrMergeRollupPublicInputs base_rollup_circuit(BaseRollupInputs baseRollupInp .rollup_subtree_height = fr(0), .end_aggregation_object = aggregation_object, .constants = baseRollupInputs.constants, + .rollup_subtree_height = fr(0), .start_private_data_tree_snapshot = baseRollupInputs.start_private_data_tree_snapshot, .end_private_data_tree_snapshot = end_private_data_tree_snapshot, .start_nullifier_tree_snapshot = baseRollupInputs.start_nullifier_tree_snapshot,