OpenZeppelin / OpenZeppelin/compact-contracts

dev: rebuild the ShieldedMultiSig (V1) preset

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

Nobody has claimed this yet.

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

Description

multisig/presets/ShieldedMultiSig.compact (the V1 preset composing Signer, ProposalManager and ShieldedTreasury) is removed in #885 instead of being converted into a module. Its signer model predates EcdsaSignerManager: signers are Either<ZswapCoinPublicKey, ContractAddress> authenticated through getCaller(), so contract-address signers can never approve, and approvals are caller-based rather than signature-based as in V2 and V3.

A module conversion would have carried that design forward.

Rebuild it on EcdsaSignerManager + ProposalManager + ShieldedTreasury as a module with initialize(...) and a multisig/examples/ contract, following the shape #885 gives V2 and V3.

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 #885 and compare the V2 and V3 module shapes, then inspect the existing multisig/presets/ShieldedMultiSig.compact context if available. Implement the rebuilt module with EcdsaSignerManager, ProposalManager, ShieldedTreasury, and initialize(...), plus a corresponding contract under multisig/examples/. Done means the V1 preset is represented as a module without the old caller-based signer model.

Written by the indexing model from the issue text.

Assessment

Domain
blockchain
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
52/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.