@cdr-kit/react/Components/MultiSigApprovalTracker

<MultiSigApprovalTracker>

X of Y approved + epoch — the read-side dashboard for MultiSigCondition. Combines the on-chain signer set with the off-chain set of collected sigs to render approval progress.
import { MultiSigApprovalTracker } from "@cdr-kit/react"

Live preview

mock
vault #7331MultiSig
1 of 2 approved · epoch 0
  • Alice (founder)
  • Bob (cofounder)
  • Carol (counsel)
sigs collected off-chain · binds (uuid, caller, epoch, deadline) · submit as accessAuxData
import { MultiSigApprovalTracker } from "@cdr-kit/react";

// signedBy is the list of signers who have already produced a sig OFF-CHAIN
// (the contract is stateless on approvals — no per-signer tx).
<MultiSigApprovalTracker
uuid={7331}
signedBy={["0xAlice...", "0xBob..."]}
/>

Props

PropTypeDefaultDescription
uuidrequirednumberMultiSigCondition-gated vault uuid.
signedByreadonly Hex[][]Off-chain set of signers who have produced a sig (the contract stores no approvals — this comes from your sig-collection UI).
children(state) => ReactNodeRender-prop. Receives { signers, threshold, epoch, onChainApprovals, onChainCount, offChainCount, isReady, isLoading } — dual-path semantics: either onChainCount OR offChainCount independently reaching threshold passes the read.

Epoch rotation

Each call to rotateSigners() bumps epoch. The tracker re-reads on rotation; UI should prompt for a fresh sig collection because in-flight sigs against the previous epoch are invalidated.