Skip to content

chore: merge v4-next#22528

Merged
alexghr merged 405 commits intov4from
v4-next
Apr 14, 2026
Merged

chore: merge v4-next#22528
alexghr merged 405 commits intov4from
v4-next

Conversation

@alexghr
Copy link
Copy Markdown
Contributor

@alexghr alexghr commented Apr 14, 2026

.

danielntmd and others added 30 commits March 25, 2026 04:13
BEGIN_COMMIT_OVERRIDE
fix(aztec-up): narrow PATH cleanup regex to avoid removing user PATH
entries (#21828)
fix: consolidate blob source test into single summary log with supernode
detection (#21719)
fix: use anchor block on getL1ToL2MsgWitness (#21872)
fix: make sure queries are not made ahead of the anchor block (#21874)
chore(docs): backport docs infrastructure changes to v4 (#21437)
chore: backport PR #21836 (fix: explicitly handle initial block case for
getBlockHashMembershipWitness) to v4-next (#21891)
chore: backport PR #21813 (fix(aztec-up): strip leading v prefix from
version strings) to v4-next (#21912)
docs: document defi-wonderland immutable macro (#21764)
fix: pin typescript and harden lockfile check in docs examples CI (v4
backport) (#21914)
docs: expand circuit profiling guide and document kernel gate cost
overhead (#21770)
feat: cli-wallet (#21757)
chore: sync backport staging with v4-next HEAD (#21931)
fix: bot gas estimations (backport #21945) (#21947)
refactor(aztec-nr): use logging wrappers in
compute_note_hash_and_nullifier (#21897)
fix: backport v4 next staging (#21934)
fix: make PXE#getSyncedBlockHeader a concurrency=1 job to prevent IDB tx
liveness issues (#21944)
feat: add error page mapping for incompatible oracles (#21943)
fix(aztec-up): validate semver in uninstall to prevent path traversal
(#21892)
chore: merge v4-next into backport staging (fix ancestry) (#21954)
fix(aztec-up): add truncation protection to install scripts (#21896)
fix: noir format in compute_note_hash_and_nullifier.nr (#21956)
fix(stdlib): decode `EthAddress`, `FunctionSelector` and wrapped field
structs in `AbiDecoder` (#21926)
chore: update noir to nightly-2026-02-12-patch.1 (#21960)
fix: ensure empty docs examples does not populate yarn lock backport
(#21963)
fix: docs examples does not build on simple bootstrap backport (#21964)
fix: add rc/testnet version detection to API reference pages (#21966)
docs: document EmbeddedWallet automatic gas estimation and private
authwits (#21790)
fix(pxe): robust error handling in message processing (backport #21093)
(#21981)
chore: manually recreate backport (#21969)
chore: (A-779) load all accounts before calling
LogService.#getSecretsForSenders (#21923)
END_COMMIT_OVERRIDE
## Summary

Backport of #21533
(feat!: scoped capsules) to v4-next.

The automatic cherry-pick failed due to conflicts in 7 files. This PR
preserves the full cherry-pick history:

1. **Cherry-pick with conflicts** — raw cherry-pick of `3029216084` with
conflict markers committed as-is
2. **Conflict resolution** — resolved all 7 conflicted files:
- `docs/docs-developers/docs/resources/migration_notes.md` — added new
migration notes under TBD
- `noir-projects/aztec-nr/aztec/src/macros/aztec.nr` — took PR's
`$offchain_inbox_sync_option` macro variable + `scope` param
- `noir-projects/aztec-nr/aztec/src/messages/discovery/mod.nr` — added
`scope` param to `get_private_logs` call
-
`yarn-project/pxe/src/contract_function_simulator/noir-structs/message_tx_context.ts`
— accepted deletion (PR removes this file)
-
`yarn-project/pxe/src/contract_function_simulator/oracle/utility_execution.test.ts`
— renamed method + added scope param
- `yarn-project/pxe/src/logs/log_service.ts` — took PR's simplified
single-recipient approach, moved deduplication into
`#getSecretsForSenders`
- `yarn-project/pxe/src/oracle_version.ts` — took PR's oracle interface
hash
3. **Build fixes** — added missing `offchain_inbox_sync_option` variable
definition and updated `generate_sync_state` function signature in
`aztec.nr`

ClaudeBox log: https://claudebox.work/s/358dd3e35e1d8542?run=1
…tion (#21997)

## Summary

In `SubProtocolRateLimiter.allow()`, the global rate limiter was checked
first. `GCRARateLimiter.allow()` advances its virtual scheduling time
(VST) as a side effect whenever it returns `true`, so a request that
passed the global check but failed the per-peer check would silently
consume a global quota token. A single spamming peer could therefore
exhaust the global rate limit, starving all other peers on that
sub-protocol.

Fix: check the per-peer limit first. A peer that exceeds its individual
quota is rejected immediately, without touching the shared global
bucket.

Fixes [A-758](https://linear.app/aztec-labs/issue/A-758)

Made with [Cursor](https://cursor.com)
Conflicts resolved in 6 files:
- archiver/src/factory.ts: keep ContractClassPublicWithCommitment from staging
- archiver/src/modules/data_store_updater.ts: keep all imports (both branches needed)
- archiver/src/store/kv_archiver_store.test.ts: take v4 describe block structure, use singular addProposedBlock API
- aztec-node/src/aztec-node/server.ts: keep staging's block 0 check and getWorldState method
- stdlib/src/tx/validator/error_texts.ts: keep staging's contract class error constants
- world-state/src/synchronizer/server_world_state_synchronizer.ts: use verbose log level with v4's message
Cherry-pick of b0090ff with conflict markers preserved for review.
Resolved conflicts in oracle names:
- aztec_utl_resolveMessageContexts → aztec_utl_getMessageContextsByTxHash
- Bumped ORACLE_VERSION to 21 (both Noir and TS)
- ORACLE_INTERFACE_HASH placeholder to be computed
Updated hash to match new oracle interface after rename.
Bumped ORACLE_VERSION in both Noir and TypeScript.
Cherry-pick of 1c74bf6 with conflicts in yarn-project/pxe/src/oracle_version.ts
The oracle interface hash differs between next and v4-next due to different
Oracle class signatures. Regenerated the hash for v4-next after cherry-pick.
The cherry-pick of PR #22020 modified domain separators in constants.nr
but the generated files (constants.gen.ts, aztec_constants.hpp,
constants_gen.pil) were not regenerated. Run remake-constants to sync.
These are not allowed elsewhere, so we just add this early catch to
prevent getting weirder errors down the stack.
The reorg simulation test is intermittently failing. Added to
flake patterns with Martin as owner.
…ckport] (#22025)

## Summary

Backport of #22020
to v4-next.

The `getSharedSecret` oracle now app-silos the shared secret by hashing
it with the calling contract's address, preventing cross-contract
decryption attacks. Key derivation uses new domain separators
(`DOM_SEP__APP_SILOED_ECDH_SHARED_SECRET`, `DOM_SEP__ECDH_SUBKEY`,
`DOM_SEP__ECDH_FIELD_MASK`).

## Cherry-pick conflicts

Only one conflict in `yarn-project/pxe/src/oracle_version.ts` — the
oracle interface hash differs between `next` and `v4-next` because the
Oracle class has diverged. Regenerated the hash for the v4-next Oracle
interface.

## Commits

1. **Cherry-pick with conflicts** — raw cherry-pick of 1c74bf6 with
conflict markers
2. **Conflict resolution** — resolved hash conflict in oracle_version.ts
3. **Build fix** — regenerated oracle interface hash for v4-next
(`09ca7d52...`)

ClaudeBox log: https://claudebox.work/s/c95bc78416dda66e?run=1
Cherry-pick of 52a0af8 with conflicts in:
- yarn-project/aztec/scripts/aztec.sh
Kept v4-next base (no compile step) while applying the log filter rename from
contract_log to contract.
Merged latest target branch which includes PR #22025 (app-silo getSharedSecret).
Combined oracle interface now includes both renames and new oracle.
Recomputed ORACLE_INTERFACE_HASH and bumped ORACLE_VERSION to 22.
AztecBot and others added 13 commits April 11, 2026 08:44
…#22485)

## Summary

Backport of #22393
(Update Noir to nightly-2026-04-10) to v4-next, plus 3 companion PRs
needed for Noir compatibility since v4-next was still on
nightly-2026-02-12.

## Companion PRs included

Since v4-next hadn't updated Noir since nightly-2026-02-12 (~2 months
behind), several intermediate Noir-adaptation PRs were also needed:

1. **#20702** — Remove unnecessary `comptime` qualifier from VK tree
constants (Noir broke comptime globals used in non-comptime contexts)
2. **#20798** — Remove unnecessary `let mut` across noir-projects (newer
Noir errors on this)
3. **#21801** — Replace deprecated Noir comptime APIs: `add_attribute()`
→ `add_abi()`, `set_body()`/`set_parameters()`/`set_return_public()` →
`function.disable()`, update `fn_has_noinitcheck` to also check
`is_fn_only_self()`

## Commits
1. **Cherry-pick with conflict markers** — raw cherry-pick of #22393
2. **Conflict resolution** — version bumps + reformatting resolved
3. **Cherry-pick #20702** — comptime globals + poseidon2 hash fix
4. **Cherry-pick #20798** — unnecessary mut removal (24 files)
5. **Cherry-pick #21801** — macro API migration (4 files)
6. **Remaining fixes** — private_context.nr mut + utils.nr style
alignment
BEGIN_COMMIT_OVERRIDE
cherry-pick: chore: Update Noir to nightly-2026-04-10 (#22393)
chore: backport #22393 (Update Noir to nightly-2026-04-10) to v4-next
(#22485)
fix: add @aztec/accounts to backwards compatibility test infra (#22490)
fix(aztec-nr): check_notes_order lexicographic multi-key sort (#21973)
END_COMMIT_OVERRIDE
Backport staging PR. Body will be updated with commit list.
@socket-security
Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedcargo/​libc@​0.2.182 ⏵ 0.2.1848010093100100
Updatednpm/​netlify-cli@​23.7.3 ⏵ 24.0.183 -17100100100100
Addedcargo/​once_cell@​1.21.410010093100100
Updatedcargo/​env_logger@​0.11.9 ⏵ 0.11.109910093100100
Updatednpm/​@​aztec/​noir-noir_js@​1.0.0-beta.18 ⏵ 1.0.0-beta.19100100100100100

View full report

Copy link
Copy Markdown
Collaborator

@just-mitch just-mitch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@alexghr alexghr enabled auto-merge April 14, 2026 14:24
Copy link
Copy Markdown
Contributor

@spalladino spalladino left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bene est mihi quia tibi bene est

@alexghr alexghr merged commit f8c89cf into v4 Apr 14, 2026
11 of 12 checks passed
@alexghr alexghr deleted the v4-next branch April 14, 2026 14:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.