This file is the human-readable companion to tests/audit/audit-all-patterns.test.ts.
- Snapshot the current
audit_covenantandcheck_kip20_complianceposture for every production pattern. - Make intentional findings explicit so future refactors do not silently add new risk or hide known tradeoffs.
- Keep docs aligned with the actual MCP audit-tool output shipped in this repo.
The following currently produce no error-severity findings and no expected warning-level findings from the internal MCP audit tools:
- Phase 3 core: Ownable, MultiSig, TimeLock, Vault, Bilateral Escrow, Milestone Escrow, Streaming Payment, Vesting, Dead Man's Switch, Social Recovery, HTLC, Freelance/Payroll
- Phase 5 ZK: Verified Computation, Private Asset Transfer, Proof-Stitched Multi-Pattern
Expected findings on:
contracts/tokens/kcc20-ownable.silcontracts/tokens/kcc20-pausable.silcontracts/tokens/kcc20-capped.silcontracts/tokens/kcc20-vesting.sil
Expected codes:
OS-003KIP20-003
Reason: these controller covenants intentionally rely on template-hash-based foreign-output validation (validateOutputStateWithTemplate). That trust boundary must stay deploy-time/static, not caller-controlled.
Expected findings on:
contracts/zk/zk-verified-oracle.sil
Expected codes:
OS-003KIP20-003
Reason: the current MCP audit heuristics classify the v1 oracle in the same template-hash-trust bucket. Treat that tool output as part of the shipped posture unless/until the heuristic or the contract shape changes.
Expected findings on:
contracts/zk/zk-verified-oracle-v2.sil
Expected codes:
OS-003KIP20-003
Reason: v2 deliberately calls validateOutputStateWithTemplate to pin a consumer-covenant output. Same template-hash-trust bucket as the KCC20 controller family. The companion contracts/zk/oracle-consumer.sil does NOT trip these (no template binding, no hardcoded pubkey state).
Run:
npm test -- --run tests/audit/audit-all-patterns.test.tsIf a finding changes:
- decide whether the contract improved, regressed, or the heuristic changed,
- update this file and any affected pattern docs,
- update
tests/audit/audit-all-patterns.test.tsto match the new intentional posture, - do not normalize new error-severity findings without a written reason.