11 Commits

Author SHA1 Message Date
Roman
865bf96b5c
fix: missed mutants harness 2026-08-05 13:20:04 +02:00
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
0f4cf52491
test: transaction ordering independence 2026-07-02 13:55:36 +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
ce7c9f776f
fix: props panicking on empty account 2026-06-26 15:34:30 +08:00
Roman
e8cd1a767e
fix: derive account_id from private_key 2026-06-26 14:06:37 +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
119c867b89
fix: add negative test 2026-06-18 14:21:54 +08:00
Roman
6710c878cf
fix: mutants harness 2026-06-17 11:34:11 +08:00
Roman
4657620ab7
fix: clippy happy 2026-06-17 10:14:36 +08:00
Roman
adcfe3a301
test: privacy preserving features 2026-06-16 17:37:36 +08:00