MultisigCommittee
Namespace: IotaSdk
A multisig committee
A MultisigCommittee is a set of members who collectively control a single
Address on the IOTA blockchain. The number of required signatures to
authorize the execution of a transaction is determined by
(signature_0_weight + signature_1_weight ..) >= threshold.
BCS
The BCS serialized form for this type is defined by the following ABNF:
multisig-committee = (vector multisig-member)
u16 ; threshold
There is also a legacy encoding for this type defined as:
legacy-multisig-committee = (vector legacy-multisig-member)
u16 ; threshold
public class MultisigCommittee : IMultisigCommittee, System.IEquatable`1[[IotaSdk.MultisigCommittee, IotaSdk, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], System.IDisposable
Inheritance Object → MultisigCommittee
Implements IMultisigCommittee, IEquatable<MultisigCommittee>, IDisposable
Attributes NullableContextAttribute, NullableAttribute
Constructors
MultisigCommittee(UInt64)
public MultisigCommittee(ulong pointer)
Parameters
pointer UInt64
MultisigCommittee(MultisigMember[], UInt16)
Construct a MultisigCommittee and verify it via validate.
This rejects committees that:
- have a zero
threshold; - contain zero or more than ten members;
- contain a member with weight 0;
- have a
thresholdgreater than the sum of all member weights; - contain duplicate public keys.
Note that the order of the members is significant towards deriving the
Address governed by this committee.
public MultisigCommittee(MultisigMember[] members, ushort threshold)
Parameters
members MultisigMember[]
threshold UInt16
Methods
Destroy()
public void Destroy()
Dispose()
public void Dispose()
DeriveAddress()
Derive an Address from this MultisigCommittee.
A MultiSig address
is defined as the 32-byte Blake2b hash of serializing the
SignatureScheme flag (0x03), the threshold (in little endian), and
the concatenation of all n flag, public keys and its weight.
hash(0x03 || threshold || flag_1 || pk_1 || weight_1 || ... || flag_n || pk_n || weight_n).
public Address DeriveAddress()
Returns
Members()
The members of the committee
public MultisigMember[] Members()
Returns
Scheme()
Return the flag for this signature scheme
public SignatureScheme Scheme()
Returns
Threshold()
The total signature weight required to authorize a transaction for the
address corresponding to this MultisigCommittee.
public ushort Threshold()
Returns
Validate()
Checks if the Committee is valid.
A valid committee is one that:
- Has a nonzero threshold
- Has at least one member
- Has at most ten members
- No member has weight 0
- the sum of the weights of all members must be at least the threshold
- contains no duplicate members
public void Validate()
Exceptions
Equals(MultisigCommittee)
public bool Equals(MultisigCommittee? other)
Parameters
other MultisigCommittee?
Returns
Equals(Object)
public override bool Equals(object? obj)
Parameters
obj Object?