Skip to content

Commit 7510703

Browse files
committed
chore(fast-inbox): drop inHash from parity and checkpoint header circuits (A-1387)
Remove the dead unconstrained in_hash pass-through from InboxParity and ParityPublicInputs, and remove in_hash from the CheckpointHeader consensus format (struct, to_be_bytes, serialization length, Empty, hash fixtures). The Inbox rolling hash is now the checkpoint's only inbox commitment. Retire NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP in favor of MAX_L1_TO_L2_MSGS_PER_CHECKPOINT, and drop the now-unused L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH and the NUM_MSGS_PER_BASE_PARITY / NUM_BASE_PARITY_PER_ROOT_PARITY frontier fan-in constants. Regenerated constants.gen.ts and ConstantsGen.sol via remake-constants.
1 parent 86a8360 commit 7510703

11 files changed

Lines changed: 23 additions & 74 deletions

File tree

l1-contracts/src/core/libraries/ConstantsGen.sol

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,4 @@ library Constants {
2626
uint256 internal constant FEE_JUICE_ADDRESS = 3;
2727
uint256 internal constant BLS12_POINT_COMPRESSED_BYTES = 48;
2828
uint256 internal constant ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 113;
29-
uint256 internal constant NUM_MSGS_PER_BASE_PARITY = 256;
30-
uint256 internal constant NUM_BASE_PARITY_PER_ROOT_PARITY = 4;
3129
}

noir-projects/noir-protocol-circuits/crates/rollup-lib/src/abis/parity_public_inputs.nr

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,6 @@ use types::traits::{Deserialize, Empty, Serialize};
33

44
#[derive(Deserialize, Eq, Serialize)]
55
pub struct ParityPublicInputs {
6-
// The L1 `in_hash`: the sha256 frontier root of the checkpoint's L1-to-L2 messages, checked on L1 against
7-
// `inbox.consume()`. It is an UNCONSTRAINED pass-through: `InboxParity` echoes the value the prover supplies and
8-
// does not recompute it from the messages (the frontier tree is gone from the parity body). Until the Fast Inbox
9-
// flip moves the L1 anchor to the rolling hash, `in_hash` remains the authoritative L1 check, so the prover must
10-
// supply the true frontier root; the in-circuit tie between it and the processed messages is deferred to the flip.
11-
pub in_hash: Field,
126
// Rolling hash of the Inbox message chain before absorbing this checkpoint's messages.
137
pub start_rolling_hash: Field,
148
// Rolling hash of the Inbox message chain after absorbing the `num_msgs` real messages. Each link is
@@ -29,7 +23,6 @@ pub struct ParityPublicInputs {
2923
impl Empty for ParityPublicInputs {
3024
fn empty() -> Self {
3125
ParityPublicInputs {
32-
in_hash: 0,
3326
start_rolling_hash: 0,
3427
end_rolling_hash: 0,
3528
start_sponge: L1ToL2MessageSponge::empty(),

noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_root/components/checkpoint_rollup_public_inputs_composer.nr

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ use types::{
2121

2222
pub struct CheckpointRollupPublicInputsComposer<let NumBlobs: u32> {
2323
merged_rollup: BlockRollupPublicInputs,
24-
// Public inputs of the inbox parity proof (verified by the caller). The checkpoint's `in_hash` and
25-
// `inbox_rolling_hash` are sourced from it, and its message sponge is checked against the blocks' accumulated one.
24+
// Public inputs of the inbox parity proof (verified by the caller). The checkpoint's `inbox_rolling_hash` is
25+
// sourced from it, and its message sponge is checked against the blocks' accumulated one.
2626
parity: ParityPublicInputs,
2727
// The below are all hints:
2828
previous_out_hash: AppendOnlyTreeSnapshot,
@@ -118,8 +118,8 @@ impl<let NumBlobs: u32> CheckpointRollupPublicInputsComposer<NumBlobs> {
118118
previous_out_hash: self.previous_out_hash,
119119
new_out_hash,
120120
// Sourced from the inbox parity proof (parity moved to the checkpoint root in AZIP-22 Fast Inbox), which
121-
// commits to the same message list behind the L1-checked `in_hash`. Checkpoint merges assert continuity
122-
// across checkpoints (`right.start == left.end`).
121+
// commits to the checkpoint's message list. Checkpoint merges assert continuity across checkpoints
122+
// (`right.start == left.end`).
123123
start_inbox_rolling_hash: self.parity.start_rolling_hash,
124124
end_inbox_rolling_hash: self.parity.end_rolling_hash,
125125
checkpoint_header_hashes,
@@ -146,10 +146,7 @@ impl<let NumBlobs: u32> CheckpointRollupPublicInputsComposer<NumBlobs> {
146146
last_archive_root: merged_rollup.previous_archive.root,
147147
block_headers_hash: merged_rollup.block_headers_hash,
148148
blobs_hash: self.blobs_hash,
149-
// `in_hash` (the sha256 frontier root, checked on L1) and `inbox_rolling_hash` are sourced from the inbox
150-
// parity proof. `in_hash` is an unconstrained pass-through there (see `ParityPublicInputs::in_hash`); it
151-
// remains the authoritative L1 check until the Fast Inbox flip.
152-
in_hash: self.parity.in_hash,
149+
// Sourced from the inbox parity proof: the checkpoint's only inbox commitment (AZIP-22 Fast Inbox).
153150
inbox_rolling_hash: self.parity.end_rolling_hash,
154151
epoch_out_hash,
155152
slot_number: constants.slot_number,

noir-projects/noir-protocol-circuits/crates/rollup-lib/src/checkpoint_root/tests/mod.nr

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -154,17 +154,17 @@ impl TestBuilder {
154154
let start_block_number = fixture_builder.start_block_number;
155155
if !is_first_block(left_rollup_vk_index)
156156
& (left_rollup_vk_index != BLOCK_MERGE_ROLLUP_VK_INDEX) {
157-
// Change the start_block_number to be smaller than the left rollup's start_block_number so that the in_hash
158-
// won't be set on the left rollup.
157+
// Change the start_block_number to be smaller than the left rollup's start_block_number so that the
158+
// first-block designation is not on the left rollup.
159159
fixture_builder.start_block_number = start_block_number - 1;
160160
}
161161
let mut left_rollup = fixture_builder.get_merged_block_rollup_public_inputs(
162162
start_block_number,
163163
start_block_number + num_left_blocks - 1,
164164
);
165165
if is_first_block(right_rollup_vk_index) {
166-
// Change the start_block_number to be the right rollup's start_block_number so that the in_hash will be set
167-
// on the right rollup.
166+
// Change the start_block_number to be the right rollup's start_block_number so that the first-block
167+
// designation is on the right rollup.
168168
fixture_builder.start_block_number = start_block_number + num_left_blocks;
169169
}
170170
let mut right_rollup = fixture_builder.get_merged_block_rollup_public_inputs(
@@ -192,8 +192,8 @@ impl TestBuilder {
192192
left_rollup.start_state = hints.previous_block_header.state;
193193

194194
// The InboxParity proof commits to the same checkpoint messages the block roots absorbed. Its message sponge
195-
// (empty to the checkpoint's accumulated value) matches the blocks' merged sponge; its rolling hash and in_hash
196-
// feed the checkpoint header. Built at the base slot the block fixtures use for their sponge.
195+
// (empty to the checkpoint's accumulated value) matches the blocks' merged sponge; its rolling hash feeds the
196+
// checkpoint header. Built at the base slot the block fixtures use for their sponge.
197197
let inbox_parity = fixture_builder.get_parity_public_inputs(fixture_builder.start_slot_number);
198198

199199
Self {
@@ -445,7 +445,6 @@ impl TestBuilder {
445445
last_archive_root: left.previous_archive.root,
446446
block_headers_hash,
447447
blobs_hash: self.hints.blobs_hash,
448-
in_hash: self.inbox_parity.in_hash,
449448
inbox_rolling_hash: self.inbox_parity.end_rolling_hash,
450449
epoch_out_hash,
451450
slot_number: left.constants.slot_number,

noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/inbox_parity.nr

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@ pub struct InboxParityPrivateInputs<let S: u32> {
1818
pub(crate) start_rolling_hash: Field,
1919
// Message-bundle sponge before this checkpoint's messages (empty at checkpoint start).
2020
pub(crate) start_sponge: L1ToL2MessageSponge,
21-
// The L1 `in_hash` (sha256 frontier root of this checkpoint's messages), passed through UNCONSTRAINED to the
22-
// public inputs. See `ParityPublicInputs::in_hash`: the frontier tree is gone from this body, so the prover
23-
// supplies the value and the circuit does not recompute or bind it to `msgs`.
24-
pub(crate) in_hash: Field,
2521
pub(crate) vk_tree_root: Field,
2622
pub(crate) prover_id: Field,
2723
}
@@ -35,7 +31,6 @@ pub struct InboxParityPrivateInputs<let S: u32> {
3531
/// - Absorbs the same real messages into the message sponge (real-count absorb; the checkpoint root asserts this
3632
/// equals the sponge the block roots accumulate)
3733
/// - Asserts the padding lanes past `num_msgs` are zero so they cannot silently enter either accumulator
38-
/// - Passes `in_hash` through unconstrained (see `InboxParityPrivateInputs::in_hash`)
3934
///
4035
/// The output feeds the Checkpoint Root circuits, which verify this proof against the `{64, 256, 1024}` VK ladder.
4136
///
@@ -51,7 +46,6 @@ pub fn execute<let S: u32>(inputs: InboxParityPrivateInputs<S>) -> ParityPublicI
5146
end_sponge.absorb(inputs.msgs, inputs.num_msgs);
5247

5348
ParityPublicInputs {
54-
in_hash: inputs.in_hash,
5549
start_rolling_hash: inputs.start_rolling_hash,
5650
end_rolling_hash,
5751
start_sponge: inputs.start_sponge,

noir-projects/noir-protocol-circuits/crates/rollup-lib/src/parity/tests/inbox_parity_tests.nr

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,11 @@ fn public_inputs_match_expected() {
1818
num_msgs: S,
1919
start_rolling_hash: 0,
2020
start_sponge: L1ToL2MessageSponge::empty(),
21-
in_hash: 0x1234,
2221
vk_tree_root: 42,
2322
prover_id: 7,
2423
};
2524
let public_inputs = inbox_parity::execute(private_inputs);
2625

27-
// `in_hash` is echoed through unconstrained.
28-
assert_eq(public_inputs.in_hash, 0x1234);
2926
assert_eq(public_inputs.vk_tree_root, 42);
3027
assert_eq(public_inputs.prover_id, 7);
3128

@@ -57,7 +54,6 @@ fn rolling_hash_and_sponge_ignore_padding_and_thread_start() {
5754
num_msgs: 3,
5855
start_rolling_hash: start,
5956
start_sponge,
60-
in_hash: 0,
6157
vk_tree_root: 42,
6258
prover_id: 7,
6359
};
@@ -88,7 +84,6 @@ fn sponge_matches_block_root_real_count_absorb() {
8884
num_msgs: 2,
8985
start_rolling_hash: 0,
9086
start_sponge: L1ToL2MessageSponge::empty(),
91-
in_hash: 0,
9287
vk_tree_root: 42,
9388
prover_id: 7,
9489
};
@@ -113,7 +108,6 @@ fn non_zero_padding_lane_fails() {
113108
num_msgs: 2,
114109
start_rolling_hash: 0,
115110
start_sponge: L1ToL2MessageSponge::empty(),
116-
in_hash: 0,
117111
vk_tree_root: 42,
118112
prover_id: 7,
119113
};
@@ -127,7 +121,6 @@ fn num_msgs_greater_than_size_fails() {
127121
num_msgs: S + 1,
128122
start_rolling_hash: 0,
129123
start_sponge: L1ToL2MessageSponge::empty(),
130-
in_hash: 0,
131124
vk_tree_root: 42,
132125
prover_id: 7,
133126
};

noir-projects/noir-protocol-circuits/crates/rollup-lib/src/tests/rollup_fixture_builder.nr

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ pub struct RollupFixtureBuilder {
4343
pub protocol_contracts_hash: Field,
4444
pub prover_id: Field,
4545

46-
// Used to identify the first block, which will have an empty start_sponge_blob, and non-empty in_hash.
46+
// Used to identify the first block, which will have an empty start_sponge_blob.
4747
pub start_block_number: u32,
4848

4949
// Used to identify the first checkpoint, which will have an empty start_blob_accumulator.
@@ -425,7 +425,6 @@ impl RollupFixtureBuilder {
425425

426426
pub fn get_parity_public_inputs(self, slot_number: Field) -> ParityPublicInputs {
427427
ParityPublicInputs {
428-
in_hash: slot_number * 85831493,
429428
start_rolling_hash: self.get_inbox_rolling_hash(slot_number),
430429
end_rolling_hash: self.get_inbox_rolling_hash(slot_number + 1),
431430
// The message sponge resets per checkpoint, so it starts empty and ends at the checkpoint's accumulated

noir-projects/noir-protocol-circuits/crates/types/src/abis/checkpoint_header.nr

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,9 @@ pub struct CheckpointHeader {
1414
pub last_archive_root: Field,
1515
pub block_headers_hash: Field,
1616
pub blobs_hash: Field,
17-
pub in_hash: Field,
18-
// Inbox rolling-hash chain value after consuming all L1-to-L2 messages bundled into this checkpoint. It is the
19-
// dual of `in_hash` (AZIP-22 Fast Inbox): the truncated-to-field sha256 chain the L1 Inbox accumulates. Currently a
20-
// pass-through commitment; `in_hash` remains the authoritative L1 check until the Fast Inbox flip.
17+
// Inbox rolling-hash chain value after consuming all L1-to-L2 messages bundled into this checkpoint (AZIP-22 Fast
18+
// Inbox): the truncated-to-field sha256 chain the L1 Inbox accumulates. This is the checkpoint's only inbox
19+
// commitment.
2120
pub inbox_rolling_hash: Field,
2221
// The root of the epoch out hash balanced tree. The out hash of the first checkpoint in the epoch is inserted at
2322
// index 0, the second at index 1, and so on.
@@ -43,7 +42,6 @@ impl Empty for CheckpointHeader {
4342
last_archive_root: 0,
4443
block_headers_hash: 0,
4544
blobs_hash: 0,
46-
in_hash: 0,
4745
inbox_rolling_hash: 0,
4846
epoch_out_hash: 0,
4947
slot_number: 0,
@@ -62,7 +60,6 @@ impl CheckpointHeader {
6260
let last_archive_root_bytes: [u8; 32] = self.last_archive_root.to_be_bytes();
6361
let block_headers_hash_bytes: [u8; 32] = self.block_headers_hash.to_be_bytes();
6462
let blobs_hash_bytes: [u8; 32] = self.blobs_hash.to_be_bytes();
65-
let in_hash_bytes: [u8; 32] = self.in_hash.to_be_bytes();
6663
let inbox_rolling_hash_bytes: [u8; 32] = self.inbox_rolling_hash.to_be_bytes();
6764
let epoch_out_hash_bytes: [u8; 32] = self.epoch_out_hash.to_be_bytes();
6865
let slot_number_bytes: [u8; 32] = self.slot_number.to_be_bytes();
@@ -83,7 +80,6 @@ impl CheckpointHeader {
8380
last_archive_root_bytes
8481
.concat(block_headers_hash_bytes)
8582
.concat(blobs_hash_bytes)
86-
.concat(in_hash_bytes)
8783
.concat(inbox_rolling_hash_bytes)
8884
.concat(epoch_out_hash_bytes)
8985
.concat(slot_number_bytes)
@@ -108,7 +104,7 @@ fn empty_checkpoint_header_hash_matches_ts() {
108104
let header = CheckpointHeader::empty();
109105

110106
// Generated from checkpoint_header.test.ts
111-
let empty_checkpoint_header_hash_from_ts = 0x0008c3e5bbea4fba57201a69d4bf70a0d255df921fdef4924c22da087f9338c2;
107+
let empty_checkpoint_header_hash_from_ts = 0x002e384af86a480f952aa16443fd29646a9063865e62d7c403fc7ed697bb7712;
112108

113109
assert_eq(header.hash(), empty_checkpoint_header_hash_from_ts);
114110
}
@@ -119,7 +115,6 @@ fn checkpoint_header_hash_matches_ts() {
119115
last_archive_root: 123,
120116
block_headers_hash: 456,
121117
blobs_hash: 77,
122-
in_hash: 88,
123118
inbox_rolling_hash: 89,
124119
epoch_out_hash: 99,
125120
slot_number: 1234,
@@ -137,7 +132,7 @@ fn checkpoint_header_hash_matches_ts() {
137132
assert_eq(deserialized, header);
138133

139134
// Generated from checkpoint_header.test.ts
140-
let checkpoint_header_hash_from_ts = 0x00519b87177a8a5e4edd03f4d820aec6d402497ef1ab70e2ecd4d4c39b339611;
135+
let checkpoint_header_hash_from_ts = 0x00751391e842cd7b2014478255dd3309df86327197a0feb03f0af1b758f62ba5;
141136

142137
assert_eq(header.hash(), checkpoint_header_hash_from_ts);
143138
}
@@ -150,7 +145,6 @@ fn checkpoint_header_hash_large_values_matches_ts() {
150145
last_archive_root: MAX_FIELD_VALUE - 123,
151146
block_headers_hash: MAX_FIELD_VALUE - 456,
152147
blobs_hash: MAX_FIELD_VALUE - 77,
153-
in_hash: MAX_FIELD_VALUE - 88,
154148
inbox_rolling_hash: MAX_FIELD_VALUE - 89,
155149
epoch_out_hash: MAX_FIELD_VALUE - 99,
156150
slot_number: MAX_FIELD_VALUE - 1234,
@@ -170,7 +164,7 @@ fn checkpoint_header_hash_large_values_matches_ts() {
170164
assert_eq(deserialized, header);
171165

172166
// Generated from checkpoint_header.test.ts
173-
let checkpoint_header_hash_large_values_from_ts = 0x00d64307fa93c32ae46a4c3b6a1911d31994daa8d11d50201f0086a6cbaa9bac;
167+
let checkpoint_header_hash_large_values_from_ts = 0x005bd09725c6e77a4a28a7ccdaf7875ba5882431ca3c82e62db96e8a12769ce5;
174168

175169
assert_eq(header.hash(), checkpoint_header_hash_large_values_from_ts);
176170
}

noir-projects/noir-protocol-circuits/crates/types/src/constants.nr

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -61,12 +61,10 @@ pub global NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH: u32 =
6161
NOTE_HASH_TREE_HEIGHT - NOTE_HASH_SUBTREE_HEIGHT;
6262
pub global NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH: u32 =
6363
NULLIFIER_TREE_HEIGHT - NULLIFIER_SUBTREE_HEIGHT;
64-
pub global L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH: u32 =
65-
L1_TO_L2_MSG_TREE_HEIGHT - L1_TO_L2_MSG_SUBTREE_HEIGHT;
6664
// Cap on L1-to-L2 messages bundled into a single L2 block (AZIP-22 Fast Inbox). One quarter of the per-checkpoint
6765
// cap: a checkpoint drains its Inbox consumption across up to four message-bearing blocks.
6866
pub global MAX_L1_TO_L2_MSGS_PER_BLOCK: u32 = 256;
69-
// Cap on L1-to-L2 messages consumed by a single checkpoint. Semantically today's NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP.
67+
// Cap on L1-to-L2 messages consumed by a single checkpoint.
7068
pub global MAX_L1_TO_L2_MSGS_PER_CHECKPOINT: u32 = 1024;
7169
// Minimum bucket age, in seconds, at the start of a checkpoint's build frame for its consumption to be mandatory under
7270
// the streaming Inbox censorship cutoff (AZIP-22 Fast Inbox). One L1 slot: validators cannot be required to act on
@@ -109,9 +107,6 @@ pub global MAX_NULLIFIER_READ_REQUESTS_PER_CALL: u32 = 16;
109107
pub global MAX_KEY_VALIDATION_REQUESTS_PER_CALL: u32 = MAX_PRIVATE_LOGS_PER_CALL;
110108
// docs:end:constants
111109

112-
// ROLLUP CONTRACT CONSTANTS - constants used only in l1-contracts
113-
pub global NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP: u32 = 1 << L1_TO_L2_MSG_SUBTREE_HEIGHT;
114-
115110
// VK TREE CONSTANTS
116111
pub global PRIVATE_KERNEL_INIT_VK_INDEX: u32 = 0;
117112
pub global PRIVATE_KERNEL_INNER_VK_INDEX: u32 = 1;
@@ -453,7 +448,6 @@ pub global BLOCK_HEADER_LENGTH: u32 = APPEND_ONLY_TREE_SNAPSHOT_LENGTH
453448
pub global CHECKPOINT_HEADER_LENGTH: u32 = 1 /* last_archive_root */
454449
+ 1 /* block_headers_hash */
455450
+ 1 /* blobs_hash */
456-
+ 1 /* in_hash */
457451
+ 1 /* inbox_rolling_hash */
458452
+ 1 /* out_hash */
459453
+ 1 /* slot_number */
@@ -675,12 +669,6 @@ pub global INBOX_PARITY_SIZE_SMALL: u32 = 64;
675669
pub global INBOX_PARITY_SIZE_MEDIUM: u32 = 256;
676670
pub global INBOX_PARITY_SIZE_LARGE: u32 = 1024;
677671

678-
// Fan-in of the sha256 `in_hash` frontier tree (NUM_BASE_PARITY_PER_ROOT_PARITY * NUM_MSGS_PER_BASE_PARITY ==
679-
// NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP). The circuits no longer build this tree, but the constants are still consumed
680-
// by the generated Solidity `Constants` and the L1 `Parity.t.sol` test that checks the frontier-root construction.
681-
pub global NUM_MSGS_PER_BASE_PARITY: u32 = 256;
682-
pub global NUM_BASE_PARITY_PER_ROOT_PARITY: u32 = 4;
683-
684672
// Lengths of the different types of proofs in fields
685673
pub global RECURSIVE_PROOF_LENGTH: u32 = 410;
686674
pub global NESTED_RECURSIVE_PROOF_LENGTH: u32 = RECURSIVE_PROOF_LENGTH;
@@ -1431,7 +1419,7 @@ mod test {
14311419
use crate::traits::ToField;
14321420
use super::{
14331421
GLOBAL_INDEX_CONTRACT_MIN_REVERTIBLE_SIDE_EFFECT_COUNTER_OFFSET, INBOX_PARITY_SIZE_LARGE,
1434-
MAX_ETH_ADDRESS_VALUE, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP,
1422+
MAX_ETH_ADDRESS_VALUE, MAX_L1_TO_L2_MSGS_PER_CHECKPOINT,
14351423
TOTAL_COUNTED_SIDE_EFFECTS_PER_CALL,
14361424
};
14371425

@@ -1478,7 +1466,7 @@ mod test {
14781466
#[test]
14791467
fn parity_covers_all_l1_to_l2_msgs() {
14801468
// The largest InboxParity rung must be able to hold a full checkpoint's worth of messages.
1481-
assert_eq(INBOX_PARITY_SIZE_LARGE, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP);
1469+
assert_eq(INBOX_PARITY_SIZE_LARGE, MAX_L1_TO_L2_MSGS_PER_CHECKPOINT);
14821470
}
14831471

14841472
#[test]

yarn-project/constants/src/constants.gen.ts

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ export const PUBLIC_DATA_SUBTREE_HEIGHT = 6;
2828
export const L1_TO_L2_MSG_SUBTREE_HEIGHT = 10;
2929
export const NOTE_HASH_SUBTREE_ROOT_SIBLING_PATH_LENGTH = 36;
3030
export const NULLIFIER_SUBTREE_ROOT_SIBLING_PATH_LENGTH = 36;
31-
export const L1_TO_L2_MSG_SUBTREE_ROOT_SIBLING_PATH_LENGTH = 26;
3231
export const MAX_L1_TO_L2_MSGS_PER_BLOCK = 256;
3332
export const MAX_L1_TO_L2_MSGS_PER_CHECKPOINT = 1024;
3433
export const INBOX_LAG_SECONDS = 12;
@@ -57,7 +56,6 @@ export const MAX_CONTRACT_CLASS_LOGS_PER_CALL = 1;
5756
export const MAX_NOTE_HASH_READ_REQUESTS_PER_CALL = 16;
5857
export const MAX_NULLIFIER_READ_REQUESTS_PER_CALL = 16;
5958
export const MAX_KEY_VALIDATION_REQUESTS_PER_CALL = 16;
60-
export const NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP = 1024;
6159
export const PRIVATE_KERNEL_INIT_VK_INDEX = 0;
6260
export const PRIVATE_KERNEL_INNER_VK_INDEX = 1;
6361
export const HIDING_KERNEL_TO_ROLLUP_VK_INDEX = 4;
@@ -218,8 +216,8 @@ export const TX_REQUEST_LENGTH = 15;
218216
export const TOTAL_FEES_LENGTH = 1;
219217
export const TOTAL_MANA_USED_LENGTH = 1;
220218
export const BLOCK_HEADER_LENGTH = 22;
221-
export const CHECKPOINT_HEADER_LENGTH = 14;
222-
export const CHECKPOINT_HEADER_SIZE_IN_BYTES = 380;
219+
export const CHECKPOINT_HEADER_LENGTH = 13;
220+
export const CHECKPOINT_HEADER_SIZE_IN_BYTES = 348;
223221
export const SCOPED_READ_REQUEST_LEN = 3;
224222
export const PRIVATE_CIRCUIT_PUBLIC_INPUTS_LENGTH = 839;
225223
export const PRIVATE_CONTEXT_INPUTS_LENGTH = 38;
@@ -253,8 +251,6 @@ export const ROOT_ROLLUP_PUBLIC_INPUTS_LENGTH = 113;
253251
export const INBOX_PARITY_SIZE_SMALL = 64;
254252
export const INBOX_PARITY_SIZE_MEDIUM = 256;
255253
export const INBOX_PARITY_SIZE_LARGE = 1024;
256-
export const NUM_MSGS_PER_BASE_PARITY = 256;
257-
export const NUM_BASE_PARITY_PER_ROOT_PARITY = 4;
258254
export const RECURSIVE_PROOF_LENGTH = 410;
259255
export const NESTED_RECURSIVE_PROOF_LENGTH = 410;
260256
export const IPA_PROOF_LENGTH = 64;

0 commit comments

Comments
 (0)