OpenZeppelin / OpenZeppelin/compact-contracts

dev: compose NativeShieldedToken in the V3 multisig preset

Open
#889 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

multisig/presets/ShieldedMultiSigV3 predates token/NativeShieldedToken and re-implements what that module now provides: the mint through mintShieldedToken, the burn as a send to the burn address, the _tokenDomain field, and a _coinNonce hash chain that NativeShieldedTokenDerivedNonce replaces. The preset forks the library instead of composing it, so fixes to the token module never reach it.

Compose NativeShieldedToken and NativeShieldedTokenDerivedNonce inside the module, keep only the multisig's own _counter replay nonce, and rename the preset NativeShieldedTokenIssuer after what it composes (no MultiSig suffix, the directory already says it). Signature digests stay unchanged.

Part of #886.

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 multisig/presets/ShieldedMultiSigV3 and compare its mint, burn, _tokenDomain, and _coinNonce behavior with token/NativeShieldedToken and NativeShieldedTokenDerivedNonce. Done means the preset composes both modules, retains only the multisig _counter, is renamed NativeShieldedTokenIssuer, and preserves signature digests.

Written by the indexing model from the issue text.

Assessment

Domain
blockchain
Issue type
Refactor
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.