Open
Conversation
When unprotecting txs, we were not running the check for allowed public setup functions, which was skipped in the reqresp entrypoint. This commit now tracks whether public setup is allowed or not for a tx in the tx metadata, and uses it to drop the tx when it becomes unprotected. An alternative approach would have been to store the entire public setup calls in the tx metadata, but this means a smaller memory footprint.
#21399) ## Summary - Fixed inverted boolean comparison in `message_delivery.nr` line 208 that caused `ONCHAIN_CONSTRAINED` to run encryption unconstrained and vice versa. - The check was comparing against `ONCHAIN_UNCONSTRAINED` instead of `ONCHAIN_CONSTRAINED`, flipping the condition passed to `remove_constraints_if`. ## Backport This is a backport fix targeting `v4-next` via `merge-train/fairies`. ## Test plan - [ ] Verify constrained encryption is actually constrained when using `ONCHAIN_CONSTRAINED` delivery mode - [ ] Verify unconstrained encryption when using `ONCHAIN_UNCONSTRAINED` delivery mode cc @nventuro for review ClaudeBox log: https://claudebox.work/s/c8cf1c507575d776?run=3
2 tasks
…ackport #20919) (#21434) ## Summary Backport of #20919 to v4-next. Adds `ETHEREUM_HTTP_TIMEOUT_MS` env var to configure the timeout for viem HTTP transports used in L1 RPC calls. Introduces `makeL1HttpTransport` helper to centralize transport creation with consistent timeout support. ## Conflict Resolution Cherry-pick had a conflict in `blob-client/src/client/http.ts` because `next` had refactored `getSlotNumber` to accept `parentBeaconBlockRoot` as a parameter. Resolved by keeping the v4-next code structure and applying only the transport change (`makeL1HttpTransport` with timeout support). ## Commits 1. Cherry-pick with conflict markers (for reviewability) 2. Conflict resolution ClaudeBox log: https://claudebox.work/s/02b67d20aae96377?run=2 --------- Co-authored-by: Santiago Palladino <santiago@aztec-labs.com>
#20992 #21148) BEGIN_COMMIT_OVERRIDE fix: set wallet minFeePadding in BotFactory constructor (#20992) fix: increase minFeePadding in e2e_bot bridge resume tests and harden GasFees.mul() (#20962) fix: use dedicated L1 account for bot bridge resume tests to avoid nonce race (#21148) fix: remove stale fee snapshot from BotFactory account deployment END_COMMIT_OVERRIDE Backports three fixes from next and adds a fourth: 1. BotFactory constructor now calls wallet.setMinFeePadding() so all setup transactions (token deploy, minting) use the configured padding instead of the wallet default (0.5x). (#20992) 2. GasFees.mul() uses bigint arithmetic for integer scalars to avoid precision loss, and Math.ceil for non-integer scalars. (#20962) 3. Bridge resume tests use a dedicated L1 private key (index 7) instead of the default mnemonic shared with the sequencer, avoiding nonce races on approve/deposit calls. (#21148) 4. Remove explicit maxFeesPerGas snapshot from setupAccountWithPrivateKey. Let the wallet re-estimate fees at send() time via completeFeeOptions(), making the fee estimate fresh and 10x padding sufficient.
## Summary - Backports 5 PRs from `merge-train/fairies` related to oracle changes: - #21101 - feat: improve oracle name prefixes - #21349 - fix: skip oracle version check for pinned protocol contracts - #21244 - refactor: deduplicate MembershipWitness struct - #21176 - feat(pxe)!: pass BoundedVec sizes as oracle params - #21209 - refactor!: cleaning up public call and tx phase related oracles ## Test plan - CI passes on backport branch 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Nicolás Venturo <nicolas.venturo@gmail.com> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: Nicolas Chamo <nicolas@chamo.com.ar> Co-authored-by: benesjan <benesjan@users.noreply.github.com>
## Summary Backport of #20893 (feat: offchain reception) to `v4-next`. This adds offchain message reception to Aztec.nr contracts, including: - Persistent offchain message inbox via capsules - `offchain_receive` utility function auto-generated by the Aztec macro - `offchain::sync_inbox` for processing messages during `sync_state` - New `utilityResolveMessageContexts` oracle method - End-to-end test for offchain payments ## Backport details **Commit 1**: Raw cherry-pick with conflict markers (for reviewer visibility) **Commit 2**: Conflict resolution — kept v4-next's `utility`-prefixed oracle naming convention while integrating new offchain methods **Commit 3**: Updated `ORACLE_INTERFACE_HASH` for the new oracle method and bumped `ORACLE_VERSION` from 12 to 13 ### Conflicts resolved in: - `docs/netlify.toml` — added error code 7 redirect - `noir-projects/aztec-nr/aztec/src/macros/aztec.nr` — integrated `AztecConfig`, `#[varargs]`, offchain inbox sync - `noir-projects/aztec-nr/aztec/src/messages/discovery/mod.nr` — added offchain imports, kept v4-next's generic `Env` type - `noir-projects/aztec-nr/aztec/src/oracle/version.nr` — bumped to version 13 - `yarn-project/pxe/src/contract_function_simulator/oracle/interfaces.ts` — added `utilityResolveMessageContexts` - `yarn-project/pxe/src/contract_function_simulator/oracle/oracle.ts` — added oracle method - `yarn-project/pxe/src/contract_function_simulator/oracle/oracle_version_is_checked.test.ts` — added messageContextService mock - `yarn-project/pxe/src/contract_function_simulator/oracle/utility_execution_oracle.ts` — added implementation - `yarn-project/pxe/src/oracle_version.ts` — version 13, new hash - `yarn-project/txe/src/rpc_translator.ts` — added RPC translation ClaudeBox log: https://claudebox.work/s/f28700a7ecac0c5f?run=1 --------- Co-authored-by: Martin Verzilli <martin@aztec-labs.com>
#20992 #21148) (#21465) ## Summary Backports three fixes from `next` and adds a fourth to stabilize the flaky `e2e_bot` test on `v4-next`. **Root cause:** The `BotFactory` was snapshotting `maxFeesPerGas` once during account setup, then using that stale value for subsequent transactions. L1 baseFee escalation on anvil (from rapid block building) caused fees to exceed the stale cap. ### Changes 1. **BotFactory constructor sets wallet fee padding** (backport of #20992) - Calls `wallet.setMinFeePadding(config.minFeePadding)` so all setup transactions use the configured padding instead of the wallet default (0.5x) 2. **GasFees.mul() precision fix** (backport of #20962) - Uses bigint arithmetic for integer scalars to avoid precision loss - Uses `Math.ceil` for non-integer scalars to ensure fees always round up 3. **Dedicated L1 account for bridge resume tests** (backport of #21148) - Uses private key index 7 instead of the default mnemonic (shared with the sequencer) - Avoids nonce races on approve/deposit calls in `bridgeL1FeeJuice` - Uses `getPrivateKey()` helper with auto-incrementing index for other tests 4. **Remove stale fee snapshot** (new, also in #21464 on `next`) - Removes explicit `maxFeesPerGas` snapshot from `setupAccountWithPrivateKey` - Lets the wallet re-estimate fees at `send()` time via `completeFeeOptions()` - Fresh estimation + 10x padding is sufficient since fee change within 1 block is minimal Related: A-648, #21453 ClaudeBox log: https://claudebox.work/s/c64a6207b95c4a16?run=4
…ing (backport #21457) (#21487) ## Summary Backport of #21457 to v4-next. Adds a check for archive tree next leaf index during block building to catch errors in world-state sync. Cherry-pick applied cleanly — no conflicts. ClaudeBox log: https://claudebox.work/s/477c827891fb7315?run=1 Co-authored-by: Santiago Palladino <santiago@aztec-labs.com>
## Summary - Fixes x86_64-macos segfault (`EXC_I386_GPFLT`) when `bb` is cross-compiled with Zig and linked with a Rust static library (AVM transpiler) - Root cause: LLVM's Mach-O linker misaligns `__thread_bss` TLS template offsets when `__thread_data` (from Rust) is also present, causing 16-byte-aligned `thread_local` objects (like `std::mutex`) to be placed at 8-byte-aligned addresses - Fix: a single `alignas(16) thread_local` variable forces `__thread_data` section alignment to 16, making the linker pad it correctly Fixes #21225 Fixes #19769 ## Details Both Zig's built-in Mach-O linker and `ld64.lld-20` share the same LLVM code for laying out TLS sections. When `__thread_data` (align 8, from Rust objects) precedes `__thread_bss` (align 16, from C++ `thread_local`), the linker aligns the `__thread_bss` virtual address to 16 but the TLS template offset remains misaligned because `__thread_data` starts at an 8-aligned VA. At runtime, `dyld` allocates a 16-aligned TLS block and copies the template at the recorded offsets. Variables that should be at `block + 0x40` (16-aligned) end up at `block + 0x38` (8-aligned), causing `MOVAPS` instructions to fault. The fix adds an `alignas(16)` initialized `thread_local` that forces the `__thread_data` section alignment to 16, which makes the linker pad the section end to a 16-byte boundary. Upstream bug: https://codeberg.org/ziglang/zig/issues/31461 ## Test plan - [x] Cross-compiled `bb` binary with Zig for x86_64-macos - [x] Verified TLS section alignment: `__thread_data` align 2^4 (16), offset to `__thread_bss` is 0x40 (mod 16 = 0) - [x] Tested on macOS VM: `bb prove --scheme ultra_honk` runs without segfault - [x] Previous binary (without pad) segfaults immediately with `EXC_I386_GPFLT` Supersedes #21253
4 tasks
## Summary - Export `findBbBinary` from `@aztec/bb.js` public API (was internal-only) - Use bundled bb binary in `aztec compile`, `profile-gates`, and `profile-flamegraph` commands - Resolution order: `$BB` env var > bundled binary > `$PATH` fallback ## Details When a user has a different version of `bb` installed globally (e.g. via `bbup`), `aztec compile` picks it up from `$PATH` instead of using the version bundled with the installation. This causes transpiler errors due to version mismatch. The fix uses the existing `findBbBinary()` helper from `@aztec/bb.js` which detects the platform and returns the path to `build/<arch>/bb`. This is the same approach already used by `@aztec/bb.js`'s own CLI wrapper. Full analysis: https://gist.github.com/AztecBot/46ee397e5df74c2c7a5c383f060bdaba Closes #21384 ClaudeBox log: https://claudebox.work/s/bb8c2dc73d2d3975?run=2
Removed as not needed.
… of $PATH (#21468) ## Summary Backport of #21387 to v4-next. Cherry-pick applied cleanly — no conflicts. ## Changes - Export `findBbBinary` from `@aztec/bb.js` public API - Use bundled bb binary in `aztec compile`, `profile-gates`, and `profile-flamegraph` commands - Resolution order: `$BB` env var > bundled binary > `$PATH` fallback Closes #21384 ClaudeBox log: https://claudebox.work/s/b86fc0798bbe3804?run=1
Blob data was too long for log entries to handle. This changes it so we
only log the size of the blobs published.
Before:
```
[13:06:08.794] VERBOSE: sequencer:publisher Published bundled transactions (propose) {"result":{"receipt":{"type":"eip4844","status":"success","cumulativeGasUsed":"385181","logs":[{"address":"0x322813fd9a801c5507c9de605d63cea4f2ce6c44","topics":["0x6ff492bf2b4ca1b93a175167d14b3e46085b935cab3f39ca94013000799b93a0","0x0000000000000000000000000000000000000000000000000000000000000003","0x2cf9ee43d934809911a0629cd290209348e0508ffdd3f30402351a5429f74ad4"],"data":"0x0000000000000000000000000000000000000000000000000000000000000060e49dcf9662d7eb83cf30af60c4d6cc8d564308edbc26fef51385c0c94fe65819bfab9e5d42c7aba8bf7d9f4048849f571a93b95e188cdec14fb8f555c1746550000000000000000000000000000000000000000000000000000000000000000101591ba24e6196c249ff33ec1d35987d4762fae761a978bb425463b12c90cc32","blockHash":"0x99a84eb88d3b66c87019755d87e92e65bf212d428aab9c7b94b7669568a4c85e","blockNumber":"16","blockTimestamp":"0x69b437b9","transactionHash":"0x8efedb655395bd83c2b9255b20906bc08e331081a9112a6ba0eeae52db67b2ba","transactionIndex":0,"logIndex":0,"removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000020000000000000000000000000000000000800000000000000000000000000000000000001000000000100000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000800000000000400000000000000000000000000000000002000000000000000000000000000000000000000010000000000000002000000000000000000000000000000000000000","transactionHash":"0x8efedb655395bd83c2b9255b20906bc08e331081a9112a6ba0eeae52db67b2ba","transactionIndex":0,"blockHash":"0x99a84eb88d3b66c87019755d87e92e65bf212d428aab9c7b94b7669568a4c85e","blockNumber":"16","gasUsed":"385181","effectiveGasPrice":"86710037164","blobGasUsed":"131072","blobGasPrice":"1","from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xca11bde05977b3631167028862be2a173976ca11","contractAddress":null},"stats":{"sender":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","transactionHash":"0x8efedb655395bd83c2b9255b20906bc08e331081a9112a6ba0eeae52db67b2ba","calldataSize":1156,"calldataGas":9160}},"requests":[{"action":"propose","request":{"to":"0x322813fd9a801c5507c9de605d63cea4f2ce6c44","data":"0x85b98fd82cf9ee43d934809911a0629cd290209348e0508ffdd3f30402351a5429f74ad400000000000000000000000000000000000000000000000000000000000000000d93c6531226171223911de09fea77fdafb779b9efdcb4b5b16b9f88b83d313c2f56b7eda997ca30d14f92163f11fabb64251cc3214f1ae2e7892c73394a405200c6b5236b5b2050261c85d5fb75ce253f61e8e78bd6ed2a1f2e510015a5173600de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d46822300c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af09300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000069b437ad000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017e40840160000000000000000000000000000000000000000000000000000000000007617400000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000001ca6ae226e0c0c881df1fd8a62aa8da91e24fff46aa5b2e332b8bf7c3d794ddbd72f61a710d6dd642a4d72709ea5b8a2ffcee8dccc3c4738985997ba1f21c7ad82000000000000000000000000000000000000000000000000000000000000032000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003101965388a7c83f39d8a62700990eafe1c47aea33099620ef49e4692388140a89059bb706ae172b1be0f95ef5eae5d9d95e000000000000000000000000000000"},"lastValidL2Slot":6,"gasConfig":{"txTimeoutAt":"2026-03-13T16:14:33.000Z","gasLimit":"544173"},"blobConfig":{"blobs":[{"type":"Buffer","data":[0,0,0,0,0,156,112,117,24,0,1,0,2,0,0,0,1,0,1,0,16,0,0,0,0,0,0,0,0,0,0,25,26,238,19,223,98,108,51,39,185,48,7,135,133,178,147,239,57,158,83,100,234,40,148,244,48,140,10,85,81,56,181,92,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,5,71,67,73,245,255,128,39,74,107,34,150,128,61,115,97,225,233,233,194,46,196,104,26,177,246,81,82,26,141,101,32,153,156,119,213,215,189,21,30,3,237,5,172,202,237,51,111,235,148,198,17,74,149,165,234,251,231,67,150,146,214,87,205,222,247,251,121,227,248,88,21,206,223,50,10,178,185,48,113,224,144,254,51,188,206,182,14,193,245,184,231,229,108,104,167,114,117,215,121,226,123,6,32,187,127,152,6,8,218,238,170,45,66,79,166,221,2,131,116,183,84,218,103,159,44,203,146,105,85,194,139,13,44,77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,30,14,219,130,119,104,74,0,128,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,23,194,113,146,86,119,231,234,201,34,17,252,249,170,155,250,188,59,104,53,30,67,90,239,40,221,185,206,67,192,153,240,20,160,162,216,211,135,12,159,150,144,79,240,31,54,236,203,158,230,56,163,234,2,214,186,161,242,128,79,82,165,106,215,9,64,39,67,157,216,98,204,153,91,75,49,87,19,88,219,166,57,43,7,70,229,209,69,244,235,137,187,136,49,34,112,27,19,168,33,114,234,201,59,123,189,172,166,141,13,228,3,62,240,81,88,228,75,227,34,202,106,180,111,74,3,68,230,46,152,197,95,180,208,252,1,246,222,70,178,196,206,138,239,48,0,68,63,159,193,213,185,99,38,125,134,57,82,77,228,9,69,163,75,46,188,77,39,79,233,139,166,198,56,50,98,102,204,84,100,59,85,252,5,84,144,67,102,32,186,105,76,39,198,140,238,221,146,244,149,158,173,47,21,14,106,37,211,54,64,110,33,184,20,9,178,154,3,165,90,205,101,33,225,4,254,15,42,134,15,220,194,5,7,123,208,144,249,255,50,38,231,53,246,255,235,7,218,100,171,66,52,77,100,143,19,33,137,120,171,80,249,227,240,121,120,211,197,216,180,176,52,195,37,19,80,164,154,169,135,113,194,61,109,124,201,158,183,4,90,38,197,107,154,59,30,11,14,212,231,16,76,92,83,20,27,137,81,64,50,170,185,235,146,35,16,58,136,191,244,24,102,76,98,216,202,148,222,94,4,24,226,59,127,81,220,85,129,141,31,82,175,118,42,150,111,247,99,150,76,73,31,46,217,239,39,171,32,46,121,209,216,199,37,219,118,203,229,36,187,102,148,241,105,248,162,201,37,224,126,152,46,165,55,13,65,88,163,142,168,250,39,108,205,59,217,132,238,71,186,247,204,119,144,3,83,117,197,202,150,19,225,18,100,221,132,45,173,121,0,215,81,124,239,129,2,198,78,198,128,127,49,164,143,132,106,231,205,189,154,61,248,35,150,11,235,58,133,3,167,204,128,123,88,235,113,102,117,104,78,144,225,115,113,4,170,212,164,25,242,11,202,104,244,42,96,167,170,16,203,18,1,108,240,36,194,238,226,87,204,44,152,233,133,157,132,223,212,58,124,145,142,151,77,131,127,167,188,198,171,85,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,235,141,205,191,0,0,0,0,105,180,55,173,0,0,0,3,0,1,0,0,0,0,0,0,0,0,0,192,0,0,0,0,3,0,0,0,0,1,64,0,0,0,0,128,0,0,0,7,97,116,13,147,198,83,18,38,23,18,35,145,29,224,159,234,119,253,175,183,121,185,239,220,180,181,177,107,159,136,184,61,49,60,48,31,126,100,208,109,52,94,81,74,80,188,159,121,245,132,173,242,87,54,30,117,147,96,244,71,241,112,146,196,28,175,25,45,25,220,110,32,158,202,38,189,248,17,35,184,173,35,55,206,221,137,201,109,206,24,17,182,213,21,66,27,84,119,5,41,141,189,74,163,10,246,45,56,13,4,165,122,107,249,165,228,134,75,248,5,48,87,76,163,124,122,177,60,83,222,13,88,44,16,255,129,21,65,58,165,183,5,100,253,210,243,206,254,31,51,161,228,58,71,188,73,80,129,233,30,115,229,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,140,99,116,67,0,0,0,33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
```
After:
```
[13:30:41.119] VERBOSE: sequencer:publisher Published bundled transactions (propose) {"result":{"receipt":{"type":"eip4844","status":"success","cumulativeGasUsed":"385205","logs":[{"address":"0x322813fd9a801c5507c9de605d63cea4f2ce6c44","topics":["0x6ff492bf2b4ca1b93a175167d14b3e46085b935cab3f39ca94013000799b93a0","0x0000000000000000000000000000000000000000000000000000000000000003","0x26e3973a3203d93aaaf76d59c43c7f3cd4080a67684179ee3f1092cf6a4c9978"],"data":"0x0000000000000000000000000000000000000000000000000000000000000060f96dc77f2d110d9050959e38e4c9c84038ce49729dd16aa7eb255741148e79d8bfab9e5d42c7aba8bf7d9f4048849f571a93b95e188cdec14fb8f555c17465500000000000000000000000000000000000000000000000000000000000000001016b358729e956cccab674961e67294fe0bf963088adebef8f6e019219025606","blockHash":"0x1089308e44405731f84b1f67ad8448e87da12edffb26d3b0b017ac9627b31a9a","blockNumber":"16","blockTimestamp":"0x69b43d77","transactionHash":"0x4f498af5a8bf55d4826b695c41050402340ab5f0696092835ecd5e53d032dfbb","transactionIndex":0,"logIndex":0,"removed":false}],"logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000020000000000000400000000000000000000800000000000000000000000000000000000001000400000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000800000000000400000000000000000000000000000000002000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000","transactionHash":"0x4f498af5a8bf55d4826b695c41050402340ab5f0696092835ecd5e53d032dfbb","transactionIndex":0,"blockHash":"0x1089308e44405731f84b1f67ad8448e87da12edffb26d3b0b017ac9627b31a9a","blockNumber":"16","gasUsed":"385205","effectiveGasPrice":"86710037256","blobGasUsed":"131072","blobGasPrice":"1","from":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","to":"0xca11bde05977b3631167028862be2a173976ca11","contractAddress":null},"stats":{"sender":"0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266","transactionHash":"0x4f498af5a8bf55d4826b695c41050402340ab5f0696092835ecd5e53d032dfbb","calldataSize":1156,"calldataGas":9184}},"requests":[{"action":"propose","request":{"to":"0x322813fd9a801c5507c9de605d63cea4f2ce6c44","data":"0x85b98fd826e3973a3203d93aaaf76d59c43c7f3cd4080a67684179ee3f1092cf6a4c997800000000000000000000000000000000000000000000000000000000000000002b43a3e89866a1db7350d1039543aef72e806b835bd8e79536d7bfd74c3d1dbe15115c9aa93b867f4d9ecd238642afaa48d24d61d7106bc8bca3abc3ec189c2800d00d7594bcbade97739ca33290faf152804f2185915c2ad9a68958292a6c8a00de7b349d2306334734e4f58b1302a6ed5a6c796a706f6597a5641b6d46822300c95e0ceb41951039e1592745ec2faea9866f6eaf01bf189a4463b4143af09300000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000069b43d6b000000000000000000000000f39fd6e51aad88f6f4ce6ab8827279cfffb92266000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000017e40840160000000000000000000000000000000000000000000000000000000000007617400000000000000000000000000000000000000000000000000000000000002800000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000001ca6ae226e0c0c881df1fd8a62aa8da91e24fff46aa5b2e332b8bf7c3d794ddbd72f61a710d6dd642a4d72709ea5b8a2ffcee8dccc3c4738985997ba1f21c7ad8200000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000310190114a7271b77c746c0ef4775090eea8ed71717b487db61e8e833a8519db1a52f2355b2248d2ee92f827b0bcf81b4552000000000000000000000000000000"},"lastValidL2Slot":6,"gasConfig":{"txTimeoutAt":"2026-03-13T16:39:03.000Z","gasLimit":"544203"},"blobConfig":{"blobs":[{"size":1056}],"kzg":{}}}]}
```
…1414) (#21483) ## Summary Backport of #21414 to v4-next. Changes offchain messages to track anchor block timestamp for lifecycle management instead of transaction TTL. Adds `anchorBlockTimestamp` field to `OffchainMessage` type and passes it through all code paths that create offchain messages. ## Conflict Resolution Rebased onto latest `backport-to-v4-next-staging` (which now includes the offchain reception backport #20893). Only one conflict remained in `batch_call.test.ts` — accepted the new test cases from the original PR. ## Verification - yarn-project builds successfully - All unit tests pass (`interaction_options.test.ts`, `batch_call.test.ts`) ClaudeBox log: https://claudebox.work/s/f59343e7af96e770?run=2
Nicer READMEs for the p2p module Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
While this means we waste a bit more time during block building, it also means we catch early any consistency errors, including an l1 reorg that removed the previous checkpoint while we were building ours. Fixes A-665
Moving all protocol specific fixtures, builder, test utils from `types` to a separate `protocol-test-utils` crate, as `types` is expected to be used by aztec-nr users.
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.
BEGIN_COMMIT_OVERRIDE
fix(tx): reject txs with invalid setup when unprotecting (#21224)
fix: correct inverted constrained encryption check in message delivery (#21399)
feat: add ETHEREUM_HTTP_TIMEOUT_MS env var for viem HTTP transport (backport #20919) (#21434)
chore: backport fairies oracle changes to v4-next (#21403)
chore: backport #20893 feat: offchain reception to v4-next (#21359)
fix: stabilize e2e_bot test fees and fix L1 nonce races (backport #20962 #20992 #21148) (#21465)
chore(builder): check archive tree next leaf index during block building (backport #21457) (#21487)
fix: add TLS alignment pad to fix x86_64-macos segfault (#21372)
chore: backport PR #20775 to v4-next (auto-enqueue public init nullifier) (#21492)
cherry-pick: feat!: emit anchor block timestamp for offchain messages (#21414)
chore(prover): silence "epoch to prove" debug logs (#21527)
fix: backport #21387 — use bundled bb binary in aztec compile instead of $PATH (#21468)
chore(sequencer): do not log blob data (#21530)
feat!: emit anchor block timestamp for offchain messages (backport #21414) (#21483)
chore: backport #21080 — prefix aztec-nr contract logs with
[aztec-nr](#21536)docs(p2p): nicer READMEs (#21456)
feat: use warn_log_format for discarded messages (backport #21053) (#21546)
fix: include validation reason in PXE simulate error (#20768)
feat(aztec.js): add additionalScopes to ContractFunctionPattern in capabilities (#20660)
feat: add optional additional scopes to wallet transaction API (backport #20487) (#21549)
fix: backport remove insecure SchnorrSingleKeyAccount contract to v4-next (#21548)
fix(sequencer): await syncing proposed block to archiver (#21554)
refactor: separate protocol test utils (#21099)
END_COMMIT_OVERRIDE