19 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
Roman
0f644daf6d
fix: reflect on the moved system_accounts 2026-06-30 09:31:06 +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
d31a029693
fix: mutants harness 2026-06-26 17:41:55 +08:00
Roman
86cc3977a2
fix: exclude reserved system IDs 2026-06-26 14:56:29 +08:00
Roman
e4c4d1eca7
fix: sync with updated LEZ API 2026-06-25 13:15:33 +08:00
Roman
97deff76c6
fix: seed files location 2026-06-23 10:33:01 +08:00
Roman
3b2665994c
fix: mutants harness 2026-06-22 12:22:05 +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
1bb51acd87
fix: make the test platform neutral 2026-06-06 00:31:48 +08:00
Roman
fd95df7c6f
fix: test in harness 2026-06-05 18:55:53 +08:00
Roman
a8d0355b9f
fix: address mutants found in harness 2026-06-05 18:19:32 +08:00
Roman
88e780b865
fix: improve API around tx invariants 2026-05-28 11:40:38 +08:00
Roman
db477a42d0
feat: apply changes from PR1 except corpus 2026-05-27 19:41:34 +08:00