Skip to content

sgns::multisig::MultiSig

Configured N-of-M signature evaluator. More...

#include <MultiSig.hpp>

Public Functions

Name
MultiSig(const std::vector< std::string > & signer_set, uint64_t required_signatures)
bool IsValid() const
uint64_t RequiredSignatures() const
size_t AuthorizedSignerCount() const
QuorumResult EvaluateQuorum(const CollectedSignatures & collected_signatures, const std::vector< uint8_t > & payload) const
Evaluates collected signatures against this instance's N-of-M policy.

Detailed Description

class sgns::multisig::MultiSig;

Configured N-of-M signature evaluator.

The constructor fixes the quorum policy for the evaluator's lifetime: required_signatures is N and the number of unique addresses in signer_set is M. A configuration is valid only when 1 <= N <= M.

Public Functions Documentation

function MultiSig

MultiSig(
    const std::vector< std::string > & signer_set,
    uint64_t required_signatures
)

function IsValid

bool IsValid() const

function RequiredSignatures

uint64_t RequiredSignatures() const

function AuthorizedSignerCount

size_t AuthorizedSignerCount() const

function EvaluateQuorum

QuorumResult EvaluateQuorum(
    const CollectedSignatures & collected_signatures,
    const std::vector< uint8_t > & payload
) const

Evaluates collected signatures against this instance's N-of-M policy.

For each (address, signature) pair, in order:

  • skip an address already counted
  • skip an address outside the configured signer set
  • skip an invalid signature
  • otherwise count the address as one valid unique signer

Invalid N-of-M configurations always fail closed with has_quorum == false.


Updated on 2026-08-06 at 13:59:18 +0000