OpenZeppelin / OpenZeppelin/compact-contracts

dev: run the supply property/fuzz spec on the live harness

Open
#693 1 comment 0 reactions 1 assignee View on GitHub

@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 seed so runs are reproducible (the flake classifier needs determinism).
  • Reduce numRuns on 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.