Skip to content

Commit

Permalink
add rollup subtree height
Browse files Browse the repository at this point in the history
  • Loading branch information
rahul-kothari authored and LHerskind committed Apr 5, 2023
1 parent 363b332 commit 29f5ce5
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ template <typename NCT> struct BaseOrMergeRollupPublicInputs {

AggregationObject end_aggregation_object;
ConstantRollupData<NCT> 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<NCT> start_private_data_tree_snapshot;
AppendOnlyTreeSnapshot<NCT> end_private_data_tree_snapshot;
Expand All @@ -52,6 +55,7 @@ template <typename NCT> 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);
Expand All @@ -69,6 +73,7 @@ template <typename NCT> void write(std::vector<uint8_t>& 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);
Expand All @@ -89,6 +94,9 @@ template <typename NCT> 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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,13 @@ void assert_both_input_proofs_of_same_rollup_height(RootRollupInputs rootRollupI
(void)rootRollupInputs;
}

void assert_both_input_proofs_of_same_rollup_height(RootRollupInputs rootRollupInputs)
{
assert(rootRollupInputs.previous_rollup_data[0].merge_rollup_public_inputs.rollup_subtree_height ==
rootRollupInputs.previous_rollup_data[1].merge_rollup_public_inputs.rollup_subtree_height);
(void)rootRollupInputs;
}

bool is_constants_equal(ConstantRollupData left, ConstantRollupData right)
{
return left == right;
Expand Down

0 comments on commit 29f5ce5

Please sign in to comment.