OpenZeppelin / OpenZeppelin/compact-contracts
dev: run the supply property/fuzz spec on the live harness
@0xisk is already working on this.
Since Jul 22, 2026.
- Dominant language
- TypeScript
- Stars
- 55
- Forks
- 29
- Avg merge
- 5d 7h
- Merged PRs (30d)
- 25
Description
Parent: #665
Depends on the core harness (#666).
Scope
The token supply property/fuzz spec (NativeShieldedTokenSupply.property.test.ts) is currently dry-only (describe.skipIf(isLiveBackend())), left out of the live run on a feasibility ground, not a coverage one:
- fast-check drives 15 randomized runs of up to 6–8 mint/burn ops each, and every op is its own deploy/tx on the live backend (~18s apiece), so the file would run for hours; and
- the random op sequences are non-deterministic, so the two-round flake classifier in
scripts/test-live.ts(re-run a failed file to tell a real failure from an environment flake) cannot reproduce a failing case.
The deterministic scalar/family supply specs already exercise the same NativeShieldedTokenSupplyCore accounting live, so the invariant is covered on the node. This issue tracks the optional extra of fuzzing it live.
- Pin a fixed fast-check
seedso runs are reproducible (the flake classifier needs determinism). - Reduce
numRunson live (env-gated) to keep the job within its budget. - Un-gate the spec and confirm green on
make env-up.
Introduced alongside the token/access/security/crypto/utils live rollout.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.