OpenZeppelin / OpenZeppelin/compact-contracts

dev: integration tests for multisig _mocks (proposal / signature-treasury / signature-mint-burn)

Open
#636 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement feat:multisig
Dominant language
TypeScript
Stars
55
Forks
29
Avg merge
5d 7h
Merged PRs (30d)
25

Description

Context

#628 moved three multisig examples into contracts/test/integration/_mocks/ as
self-contained, deployable contracts — but added no fixtures or specs. The
other mocks there are already covered; these three are the gap.

Cover

  • MultisigProposalTreasury — caller-authorized proposal governance over a shielded treasury (deposit, createShieldedProposal, approve/revoke, executeShieldedProposal).
  • MultisigSignatureMintBurn — signature-authorized mint/burn of a native shielded token (3 signers, threshold 2).
  • MultisigSignatureTreasury — signature-authorized single-tx execute from a stateless shielded treasury.

Task

  • Wire each into compact:integration (contracts/package.json).
  • Add fixtures (test/integration/fixtures/) + specs (test/integration/specs/).
  • Cover happy paths and failure modes (non-signer, below-threshold, wrong color, replay).

ECDSA is stubbed in EcdsaSignerManager (#629), so signature paths can only assert membership/threshold until it lands. Overlaps #630 — keep one.

Relates to #628, #630.

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.

Research direction

Start with contracts/package.json and the existing fixtures and specs in test/integration/ to see how the other mocks are wired into compact:integration. Add coverage for MultisigProposalTreasury, MultisigSignatureMintBurn, and MultisigSignatureTreasury, including the listed happy and failure paths. Until EcdsaSignerManager is implemented, signature tests should assert membership and threshold behavior only.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
blockchain, testing
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
62/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.