Skip to content

[Testing] No fuzz target for multisig_governance despite a multi-step timelock/threshold state machine #22

@grantfox-oss

Description

@grantfox-oss

Telegram (ask questions / claim the issue here first): https://t.me/+DOylgFv1jyJlNzM0

Why this matters

The fuzz crate (fuzz/Cargo.toml) declares targets for lending_pool, loan_manager, and remittance_nft but lists no governance dependency or target, and multisig_governance is not even a dependency of the fuzz crate. The governance contract in multisig_governance/src/lib.rs has a non-trivial state machine (propose/approve/finalize/cancel/expire with timelock, threshold, reproposal cooldown, TTL) well suited to property fuzzing.

Acceptance criteria

  • Add multisig_governance as a fuzz dependency and a new fuzz target
  • Model arbitrary sequences of propose/approve/finalize/cancel/expire with arbitrary signers, thresholds, and time advances
  • Assert invariants: finalize only with threshold met and timelock elapsed and before TTL expiry; no duplicate-signer threshold bypass; admin only changes via finalize
  • Register the new [[bin]] in fuzz/Cargo.toml

Files to touch

  • fuzz/Cargo.toml
  • multisig_governance/src/lib.rs

Out of scope

  • Cross-contract finalize against a real target contract
  • CI fuzz orchestration

Metadata

Metadata

Assignees

Labels

GrantFox OSSIssue tracked in GrantFox OSSMaybe RewardedIssue may be eligible for a GrantFox rewardOfficial CampaignCampaign: Official CampaignenhancementNew feature or requesthelp wantedExtra attention is needed

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions