Skip to main content

Class: MultisigCommittee

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

Extends​

  • UniffiAbstractObject

Implements​

Constructors​

Constructor​

new MultisigCommittee(members, threshold): MultisigCommittee;

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 threshold greater 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.

Parameters​

members​

MultisigMemberLike[]

threshold​

number

Returns​

MultisigCommittee

Overrides​

UniffiAbstractObject.constructor

Properties​

[destructorGuardSymbol]​

readonly [destructorGuardSymbol]: UniffiGcObject;

[pointerLiteralSymbol]​

readonly [pointerLiteralSymbol]: bigint;

[uniffiTypeNameSymbol]​

readonly [uniffiTypeNameSymbol]: "MultisigCommittee" = "MultisigCommittee";

Methods​

deriveAddress()​

deriveAddress(): AddressLike;

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).

Returns​

AddressLike

Implementation of​

MultisigCommitteeLike.deriveAddress


equals()​

equals(other): boolean;

Parameters​

other​

MultisigCommittee

Returns​

boolean


members()​

members(): MultisigMemberLike[];

The members of the committee

Returns​

MultisigMemberLike[]

Implementation of​

MultisigCommitteeLike.members


scheme()​

scheme(): SignatureScheme;

Return the flag for this signature scheme

Returns​

SignatureScheme

Implementation of​

MultisigCommitteeLike.scheme


threshold()​

threshold(): number;

The total signature weight required to authorize a transaction for the address corresponding to this MultisigCommittee.

Returns​

number

Implementation of​

MultisigCommitteeLike.threshold


toDebugString()​

toDebugString(): string;

Returns​

string


toString()​

toString(): string;

Returns a string representation of an object.

Returns​

string


uniffiDestroy()​

uniffiDestroy(): void;

Explicitly tell Rust to destroy the native peer that backs this object.

Once this method has been called, any following method calls will throw an error.

Can be called more than once.

Returns​

void

Overrides​

UniffiAbstractObject.uniffiDestroy

uniffiUse()​

uniffiUse<T>(block): T;

A convenience method to use this object, then destroy it after its use.

Type Parameters​

T​

T

Parameters​

block​

(obj) => T

Returns​

T

Inherited from​

UniffiAbstractObject.uniffiUse

validate()​

validate(): void;

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

Returns​

void

Implementation of​

MultisigCommitteeLike.validate


instanceOf()​

static instanceOf(obj_): obj_ is MultisigCommittee;

Parameters​

obj_​

any

Returns​

obj_ is MultisigCommittee