Commit Graph
42 Commits
Author SHA1 Message Date
Roman dec23d373c chore: sync with LEZ main (bundled public/private actions)
Upstream LEZ merged the parallel Message vectors into action structs
(f16c3bd1e, 75326d031, e13b4cb23):

* `Message` now carries `public_actions: Vec<PublicActionWithID>`
  (account id paired with its post-state) and `private_actions:
  Vec<PrivateAction>` (nullifier + root + commitment + encrypted post
  state bundled per action) instead of six parallel vectors.
* `PrivacyPreservingCircuitOutput` mirrors the same bundling
  (`public_actions: Vec<PublicAction>` with pre/post halves).
* `Message::try_from_circuit_output(ids, nonces, output)` became the
  infallible `Message::from_circuit_output(nonces, output)`.
* `EncryptionScheme::encrypt` keys the note on the nullifier and
  dropped the output-index argument.
* `V03State::default()` seeds the commitment set with the protocol's
  dummy commitment, so `root_history` contains the live root from
  genesis — a nullifier bound to the live root is valid on the first
  transaction (previously the history started empty).

Harness changes:

* `synthesize_passing_proof` reconstructs the journal from bundled
  `PublicAction`s, mirroring the validator byte-for-byte.
* `arb_privacy_preserving_tx` generates 1..=3 deduplicated
  `PrivateAction`s (the length-mismatch and empty-commitments shapes
  are unrepresentable under the paired layout and were dropped) and
  pairs every public account id with its post-state.
* `arb_conflicting_nullifier_pair` builds the shared-nullifier pair as
  two private actions with distinct commitments.
* Encoding/witness targets build messages via the action structs; the
  circuit-output-mapping invariant asserts the pre-id/post pairing.
* Generator-contract and proof-synthesis tests updated accordingly
  (48/48 pass, with and without RISC0_DEV_MODE).

Bump the pinned LEZ SHA to d6e4ae69 and refresh both lockfiles.

Fixes the scheduled lez-compat failure (run 30977103292).
2026-08-05 10:35:29 +02:00
Roman 61d5a729ec fix: add timeout to model based stateful lockstep 2026-07-13 13:25:47 +02:00
Roman 594026b040 fix: docs, LEZ commit hash 2026-07-09 12:50:46 +02:00
Roman 42f683ef29 fix: undo prove feature
- install external prover
2026-07-06 15:24:30 +02:00
Roman e19b1b73bd fix: dependency config 2026-07-06 13:02:45 +02:00
Roman 325c37a291 fix: targets matrix reuse 2026-07-02 15:04:31 +02:00
Roman 0f4cf52491 test: transaction ordering independence 2026-07-02 13:55:36 +02:00
Roman 4768d581b3 fix: bump to the latest hash 2026-06-30 09:47:37 +02:00
copilot-swe-agent[bot] c92746a7f6 chore: merge main into chore-sync-with-lez (resolve conflicts) 2026-06-27 04:37:21 +00:00
Roman 239c814c30 fix: remove on push trigger 2026-06-27 11:49:42 +08:00
Roman 0c4b7fb382 fix: exclude corpus artifacts from summary 2026-06-27 09:40:40 +08:00
Roman 8b48478050 fix: create PR on top of main 2026-06-26 22:41:14 +08:00
Roman 3b0a61e3b9 fix: unique branch name for each new PR 2026-06-26 20:56:24 +08:00
Roman d09d896edb test: add on push trigger 2026-06-26 10:38:42 +08:00
Roman 2e2b41b1d8 fix: files changed summary to simplify generated PR review 2026-06-26 10:32:47 +08:00
Roman e4c4d1eca7 fix: sync with updated LEZ API 2026-06-25 13:15:33 +08:00
Roman aeec0e275a chore: remove redundant circuits installation 2026-06-25 12:33:43 +08:00
Roman 03d9440fba fix: remove on push trigger 2026-06-25 11:21:35 +08:00
Roman 8b44d7c967 fix: use PAT to authorize workflow to create PR 2026-06-24 14:17:10 +08:00
Roman e38a53c253 test: corpus update workflow 2026-06-24 12:33:17 +08:00
Roman 21281e1c96 feat: automatic corpus update with minimize 2026-06-23 13:49:55 +08:00
Roman a699899873 fix: run props tests which require RISC0_DEV_MODE off 2026-06-22 16:09:37 +08:00
Roman 9c431c98ac fix: reset compat workflow to schedule only 2026-06-22 11:01:56 +08:00
Roman 56162a66a3 fix: repo pinning
- minor invariant changes
- missing target in CI added
- docs
2026-06-22 10:17:30 +08:00
Roman 4657620ab7 fix: clippy happy 2026-06-17 10:14:36 +08:00
Roman 2b949127a7 fix: simplify the code 2026-06-16 13:28:33 +08:00
Roman 7843a90254 fix: lower the load per single runner 2026-06-16 13:17:42 +08:00
Roman cfc415d214 fix: workflow files update
- polish documentation
2026-06-12 11:47:43 +08:00
Roman 0710dbfc2b fix: update mutants workflow 2026-06-12 11:13:14 +08:00
Roman ee7b3b0f69 fix: mutants-protocol invocation 2026-05-28 21:27:48 +08:00
Roman 1da53a9566 fix: resolve path to LEZ 2026-05-28 20:50:45 +08:00
Roman e0720cbceb test: initial mutants for props and protocol 2026-05-28 20:41:11 +08:00
Roman aceb12f054 fix: run aggregated coverage instead 2026-05-28 17:59:21 +08:00
Roman db477a42d0 feat: apply changes from PR1 except corpus 2026-05-27 19:41:34 +08:00
Roman 471077b7df test: add sequencer vs replayer target 2026-05-19 11:31:48 +08:00
Roman fb6071e72a fix: unlock cargo-fuzz version 2026-05-07 13:59:19 +08:00
Roman ec1063083c fix: install circuits 2026-04-20 13:52:25 +08:00
Roman 5b39131150 fix: add circuits dir 2026-04-20 13:41:24 +08:00
Roman 1cda357e47 fix: lez repo path 2026-04-20 13:35:20 +08:00
Roman 18c40d81fd fix: path in workflow 2026-04-20 13:29:55 +08:00
Roman 8bd0a1a612 fix: add new fuzz targets
- template for adding targets
2026-04-15 15:47:01 +08:00
Roman c62bacece0 Initial commit 2026-04-13 16:03:20 +08:00