OpenZeppelin / OpenZeppelin/compact-contracts

Add Confidential Note Fungible Token Issuer extension

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

Nobody has claimed this yet.

effort: 2-S enhancement feat:token
Dominant language
TypeScript
Stars
55
Forks
29
Avg merge
5d 7h
Merged PRs (30d)
25

Description

🧐 Motivation

The core is deliberately role-free — _mint / _mintNote are ungated — so every deployment would otherwise re-implement the same single-issuer gate.

📝 Details

contracts/src/token/extensions/ConfidentialNoteFungibleTokenIssuer.compact

  • Binds one ISSUER role: _issuerPk = Hf(issuerSecret); the issuer is whoever proves the secret in-circuit via witness, so the identity never appears on chain.
  • _assertIssuer is the gate the composing contract puts in front of mint.
  • Self-rotation: prove the current secret, bind the new key.
  • Imports no token module; the consumer wires it.

Landed in #679 (draft).

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/src/token/extensions/ConfidentialNoteFungibleTokenIssuer.compact and review the draft work referenced in #679. Confirm the extension defines the single issuer binding, issuer assertion, and self-rotation described here, without importing a token module; done means the composing contract can wire it in front of mint.

Written by the indexing model from the issue text.

Assessment

Domain
blockchain
Issue type
Feature
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Clearly specified
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.