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