OpenZeppelin / OpenZeppelin/compact-contracts
dev: rebuild the ShieldedMultiSig (V1) preset
Nobody has claimed this yet.
- 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
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.
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