Skip to content

feat(aztec-nr): add calculate_secret_and_index constrained-delivery helper#23866

Open
vezenovm wants to merge 10 commits into
mv/f-697-general-delivery-builderfrom
mv/f-669-constrained-delivery-helpers
Open

feat(aztec-nr): add calculate_secret_and_index constrained-delivery helper#23866
vezenovm wants to merge 10 commits into
mv/f-697-general-delivery-builderfrom
mv/f-669-constrained-delivery-helpers

Conversation

@vezenovm

@vezenovm vezenovm commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Fixes F-669

  • calculate_secret_and_index reads the registry secret hint, bootstraps a non-interactive handshake when none exists, and constrains the hints: index 0 validates the handshake against the registry, index > 0 proves the previous chain nullifier exists.
  • Adds the DOM_SEP__CONSTRAINED_MSG_NULLIFIER domain separator.
  • Adds the ConstrainedDeliveryTest TXE contract covering bootstrap, same-tx index seeding, reuse, and per-pair index isolation.

Stacked on #23865 (F-697); followed by #23867 (F-670).

vezenovm added 6 commits June 4, 2026 21:26
…elper

Add the sender-side helper that resolves the app-siloed handshake secret and
the next per-secret index for a constrained send: it queries the handshake
registry off-chain, bootstraps a non-interactive handshake when none exists,
and constrains the oracle-supplied secret via the registry's validate path or
the prior-nullifier chain. Adds the DOM_SEP__CONSTRAINED_MSG_NULLIFIER domain
separator and a test contract exercising the helper directly.

The high-level builder still mocks constrained tagging (see F-697); the emit
helper that wires this into delivery and the e2e test land in F-670.
… API

Follow-up to the OnchainDeliveryMode constructor hiding: the constrained
delivery helper and its test contract no longer reference the raw
ONCHAIN_CONSTRAINED discriminant or the private mode constructors.
calculate_secret_and_index derives the mode once via
MessageDelivery::onchain_constrained().mode(), serializes registry-call
arguments with mode.to_field(), and passes the typed mode to
get_next_tagging_index.
@vezenovm vezenovm force-pushed the mv/f-697-general-delivery-builder branch from b9f12b8 to befb4ea Compare June 5, 2026 01:34
@vezenovm vezenovm force-pushed the mv/f-669-constrained-delivery-helpers branch from 69abd69 to e2a43cd Compare June 5, 2026 01:34
@AztecBot

AztecBot commented Jun 8, 2026

Copy link
Copy Markdown
Collaborator

Flakey Tests

🤖 says: This CI run detected 1 tests that failed, but were tolerated due to a .test_patterns.yml entry.

\033FLAKED\033 (8;;http://ci.aztec-labs.com/190efd1aeb6a6d70�190efd1aeb6a6d708;;�):  yarn-project/end-to-end/scripts/run_test.sh simple src/e2e_p2p/sentinel_status_slash.parallel.test.ts "slashes the proposer with INACTIVITY when checkpoint validation records unvalidated" (206s) (code: 0) group:e2e-p2p-epoch-flakes

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.

2 participants