chore(fast-inbox): emit inbox lag and checkpoint cap from the constants generator (A-1434) - #24794
Closed
spalladino wants to merge 2 commits into
Closed
chore(fast-inbox): emit inbox lag and checkpoint cap from the constants generator (A-1434)#24794spalladino wants to merge 2 commits into
spalladino wants to merge 2 commits into
Conversation
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
from
July 19, 2026 01:25
92cecbd to
83a74e1
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 19, 2026 01:25
57e98bd to
beda331
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 19, 2026 14:05
beda331 to
c49ff84
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
from
July 19, 2026 15:10
115b351 to
5817030
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
2 times, most recently
from
July 19, 2026 15:36
eaae5fb to
2d2d3cf
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
from
July 19, 2026 15:36
5817030 to
01b921a
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 19, 2026 17:57
2d2d3cf to
a63553a
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
from
July 19, 2026 17:57
01b921a to
6269f44
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 19, 2026 18:02
a63553a to
17bdffa
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
from
July 19, 2026 18:02
6269f44 to
3111d18
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
2 times, most recently
from
July 19, 2026 20:30
9d89bdc to
b6660d3
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
2 times, most recently
from
July 19, 2026 20:48
5660774 to
7fa4b0a
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
3 times, most recently
from
July 20, 2026 13:32
ab7ddb2 to
43c8567
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
from
July 20, 2026 13:32
0224d57 to
02cd879
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 20, 2026 14:07
43c8567 to
6da2093
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
from
July 20, 2026 14:07
02cd879 to
05a1f0c
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 20, 2026 15:30
6da2093 to
a84640b
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
from
July 20, 2026 15:30
05a1f0c to
93b18af
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 20, 2026 17:28
a84640b to
dd49e4e
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
2 times, most recently
from
July 20, 2026 21:21
5cc8950 to
94dec7d
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 20, 2026 21:21
dd49e4e to
99a9a56
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 21, 2026 02:58
99a9a56 to
c2772d6
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
2 times, most recently
from
July 21, 2026 03:39
855ee1c to
8c420b7
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 21, 2026 03:39
c2772d6 to
7090792
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
from
July 21, 2026 04:43
8c420b7 to
d691947
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
2 times, most recently
from
July 21, 2026 12:06
c97f0d5 to
a359b58
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
2 times, most recently
from
July 21, 2026 15:02
b32e629 to
834ca00
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
2 times, most recently
from
July 21, 2026 22:32
8067503 to
16e6223
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
from
July 21, 2026 22:32
834ca00 to
5883528
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 21, 2026 22:39
16e6223 to
c4637fd
Compare
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
from
July 27, 2026 20:53
398aa38 to
f0fb1e1
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 27, 2026 20:53
c4637fd to
30d8f66
Compare
…ts generator (A-1434) Add INBOX_LAG_SECONDS and MAX_L1_TO_L2_MSGS_PER_CHECKPOINT to the Solidity constants allowlist so the generator emits them into ConstantsGen.sol, matching the values already present in constants.gen.ts. ProposeLib and its consumption test now read the generated Constants library instead of the hand-declared file-scope copies, giving L1 and TS a single source of truth.
spalladino
force-pushed
the
spl/a-1388-node-cleanup
branch
from
July 28, 2026 12:38
f0fb1e1 to
2d04b54
Compare
spalladino
force-pushed
the
spl/a-1434-inbox-constants-gen
branch
from
July 28, 2026 12:38
30d8f66 to
138638f
Compare
Contributor
Author
|
Superseded by #25038. The Fast Inbox stack has been regrouped from 20 per-issue PRs (plus 2 umbrellas) down to 3 area PRs plus an umbrella, and rebased onto New structure: #25036 (circuits + L1) → #25037 (node + flip) → #25038 (cleanup), with #25039 as the full-stack umbrella. The original branch for this PR is left on the remote as a recovery point. Closing here to cut the rebase and review overhead of maintaining 22 PRs; the work is not abandoned. |
spalladino
added a commit
that referenced
this pull request
Jul 28, 2026
…ts generator (A-1434) Moves `INBOX_LAG_SECONDS` (12) and `MAX_L1_TO_L2_MSGS_PER_CHECKPOINT` (1024) out of the hand-declared file-scope constants in `ProposeLib.sol` and into the generated `Constants` library, giving L1 Solidity and the TS node a single source of truth (A-1434, Fast Inbox cleanup). Both values already lived in `constants.nr` (the Noir source of truth) and were already emitted to `constants.gen.ts`; the only gap was the Solidity side, which gates emission behind an allowlist. - Add both names to the `SOLIDITY_CONSTANTS` allowlist in `constants/src/scripts/constants.in.ts`, so `yarn remake-constants` emits them into `ConstantsGen.sol`. `constants.gen.ts` is unchanged (already present). - Regenerate `ConstantsGen.sol` (generator output; not hand-edited). - `ProposeLib.sol` imports `Constants` and references the generated values; the hand-declared file-scope copies are deleted. - Update `ProposeInboxConsumption.t.sol` to import the constants from `ConstantsGen.sol` instead of `ProposeLib.sol`. TS node code that validates inbox consumption (`stdlib` cutoff predicate, `validator-client` streaming checks, `sequencer-client` bucket selector) already reads these from `@aztec/constants`, so no TS source change is needed. Testing: - `forge build` and `forge test test/rollup/ProposeInboxConsumption.t.sol` (15 tests) pass. - The three TS regression suites pass: `stdlib` inbox_consumption (10), `validator-client` streaming_inbox_checks (14), `sequencer-client` inbox_bucket_selector (9). - `@aztec/constants`, `@aztec/l1-artifacts`, and `@aztec/ethereum` build. Part of the Fast Inbox stack, on top of #24784..#24793. Replaces #24794.
spalladino
added a commit
that referenced
this pull request
Jul 28, 2026
…neration (A-1435) Deduplicates how the committed rollup protocol-circuit sample inputs (`noir-projects/noir-protocol-circuits/crates/rollup-*/Prover.toml`) get regenerated. Two paths previously both wrote `rollup-block-root-first`, `rollup-block-root-first-single-tx`, `rollup-checkpoint-root-single-block`, `rollup-checkpoint-merge`, and `rollup-root`, so the committed fixtures drifted depending on which ran last. - Makes the prover-client `regenerate_rollup_sample_inputs.test.ts` suite the sole owner of every rollup circuit at or above the transaction merge: the block-root variants, block-merge, both checkpoint roots, checkpoint-merge, tx-merge, and root. - Stops the e2e `full.test.ts` dump from writing the block-root and checkpoint samples it overlapped on. The e2e dump now regenerates only what needs real client-proved transactions the simulated orchestrator cannot produce: the private-kernel circuits and the transaction-base rollups (`rollup-tx-base-private`, `rollup-tx-base-public`). - Adds a dedicated three-tx scenario to the suite to restore `rollup-tx-merge` coverage, which was dropped when `orchestrator_single_checkpoint.test.ts` was deleted and replaced by this suite. A block with three txs forces one tx-merge before the two-input block root, whereas one- or two-tx blocks feed the block root directly. - Updates the regen docs (`barretenberg/cpp/CLAUDE.md`, the `update-prover-toml` and `gate-counts` skills, and the `updateProtocolCircuitSampleInputs` JSDoc) to the two-command split and removes the dead `orchestrator_single_checkpoint.test.ts` references. Ownership after this change (each committed rollup `Prover.toml` has exactly one writer, no overlap): - prover-client suite (`AZTEC_GENERATE_TEST_DATA=1 yarn workspace @aztec/prover-client test regenerate_rollup_sample_inputs`): the 11 block-root / block-merge / checkpoint / tx-merge / root tomls. - e2e (`AZTEC_GENERATE_TEST_DATA=1 FAKE_PROOFS=1` full.test): private-kernel circuits plus `rollup-tx-base-private` / `rollup-tx-base-public`. Part of the Fast Inbox (AZIP-22) cleanup stack, on top of #24784..#24794. Validation: neither regeneration path runs in this environment (the prover-client build here has stale artifacts and e2e needs a full L1/anvil stack), so the actual fixture regeneration and the downstream `nargo execute` checks are validated on CI. Locally verified statically that the suite's scenario `dump` arrays plus the e2e list exactly cover all 13 committed rollup tomls with no overlap, and that a three-tx block routes through `getTxMergeRollupProof` and captures `rollup-tx-merge` test data. Post-flip a zero-tx non-first block carrying a bundle is a live shape routed through the msgs-only block root (wired in #24789), so the regen suite gains a per-block-distribution scenario dumping `rollup-block-root-msgs-only`, and the circuit joins the CI `nargo execute` list — the first regen run must create and commit its `Prover.toml`. The documented e2e regen command also moves to the file's real location (`single-node/prover/server/full.test`; the old `e2e_prover/full.test` jest pattern matches nothing). Replaces #24795.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Moves
INBOX_LAG_SECONDS(12) andMAX_L1_TO_L2_MSGS_PER_CHECKPOINT(1024) out of the hand-declared file-scope constants inProposeLib.soland into the generatedConstantslibrary, giving L1 Solidity and the TS node a single source of truth (A-1434, Fast Inbox cleanup).Both values already lived in
constants.nr(the Noir source of truth) and were already emitted toconstants.gen.ts; the only gap was the Solidity side, which gates emission behind an allowlist.SOLIDITY_CONSTANTSallowlist inconstants/src/scripts/constants.in.ts, soyarn remake-constantsemits them intoConstantsGen.sol.constants.gen.tsis unchanged (already present).ConstantsGen.sol(generator output; not hand-edited).ProposeLib.solimportsConstantsand references the generated values; the hand-declared file-scope copies are deleted.ProposeInboxConsumption.t.solto import the constants fromConstantsGen.solinstead ofProposeLib.sol.TS node code that validates inbox consumption (
stdlibcutoff predicate,validator-clientstreaming checks,sequencer-clientbucket selector) already reads these from@aztec/constants, so no TS source change is needed.Testing:
forge buildandforge test test/rollup/ProposeInboxConsumption.t.sol(15 tests) pass.stdlibinbox_consumption (10),validator-clientstreaming_inbox_checks (14),sequencer-clientinbox_bucket_selector (9).@aztec/constants,@aztec/l1-artifacts, and@aztec/ethereumbuild.Part of the Fast Inbox stack, on top of #24784..#24793.