Skip to content

multisig-client: createP2idProposal should support reclaim/timelock heights (P2IDE) #366

Description

@0xnullifier

Context

@openzeppelin/miden-multisig-client's createP2idProposal only accepts (recipientId, faucetId, amount, nonce?, { noteType? }) — there is no way to set a reclaim height (or timelock height), so every multisig send builds a plain P2ID note.

In the Miden wallet, sends carry a user-picked expiration date that maps to a P2IDE reclaim height (reclaimAfter). On Guardian accounts that value was silently dropped by the proposal layer, making every guardian send permanently non-recallable — the wallet UI showed an expiration that never reached the chain (wallet-side issue: 0xMiden/wallet#308 has the P2IDE background).

Request

Extend the send proposal API to carry the P2IDE heights, e.g.:

createP2idProposal(recipientId, faucetId, amount, nonce?, {
  noteType?: NoteType;
  reclaimHeight?: number;   // absolute block height; presence selects P2IDE over P2ID
  timelockHeight?: number;  // optional consume-not-before height
})
  • Presence of either height should build a P2IDE note instead of P2ID (mirroring the SDK's reclaimAfter/timelockUntil semantics on SendOptions).
  • The guardian server should treat these like any other send proposal (no new proposal type needed).

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

Projects

Status
Review

Relationships

None yet

Development

No branches or pull requests

Issue actions