Skip to content
LogoLogo

weld test

Runs against the golden world (a deterministic cast of users, FIs, assets, and payments generated by reference/). For each phase package:

  1. 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.
  2. 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.
  3. 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.
  4. Negatives: each catalog rule ships generator functions that produce a violating payment; the policy must fail with the rule's assert id.
  5. Budget: gates per phase against weld.toml budgets.
  6. Developer unit tests: #[test] functions that call the phase method directly with Ctx::test_fixture(...) (unwelded, test-only constructor).