weld test
Runs against the golden world (a deterministic cast of users, FIs,
assets, and payments generated by reference/). For each phase package:
- Satisfiability: executes (
nargo execute, witness solving, no proving) on every golden payment shape: with and without change, with and without a travel-rule record, at every phase, at the minimum and a later schema id. A phase that cannot solve on a shape fails the build ("would brick"). Real proofs run in CI nightly. - Weld coverage: for every leaf the phase can know, mutate the
witnessed value while keeping publics fixed; solving must fail at a
weld/…assert. This proves every value is anchored. - Sensitivity: for every leaf the policy reads, mutate the plaintext with roots recomputed; if no mutation of any read leaf can make the rule fail, warn that the rule is a no-op.
- Negatives: each catalog rule ships generator functions that produce a violating payment; the policy must fail with the rule's assert id.
- Budget: gates per phase against
weld.tomlbudgets. - Developer unit tests:
#[test]functions that call the phase method directly withCtx::test_fixture(...)(unwelded, test-only constructor).