MultisigAccount class

Represents a multisig account configuration with signatories and approval threshold.

This class manages the creation and configuration of multisig accounts on Substrate-based blockchains. It handles signatory validation, automatic sorting of public keys, and derivation of the multisig account address using Substrate's standard algorithm.

The multisig address is deterministically derived from:

  • The sorted list of signatory public keys
  • The approval threshold

This ensures that all signatories derive the same multisig address regardless of the order in which addresses were provided.

Example:

final multisigAccount = MultisigAccount(
  addresses: [alice.address, bob.address, charlie.address],
  threshold: 2,
);
print('Multisig address: ${Address.encode(multisigAccount.multisigPubkey)}');
Annotations
  • @JsonSerializable.new(constructor: '_', createToJson: true)

Constructors

MultisigAccount({required List<String> addresses, required int threshold})
Creates a new MultisigAccount instance with automatic address derivation.
factory
MultisigAccount.fromJson(Map<String, dynamic> json)
Creates a MultisigAccount from a JSON representation.
factory

Properties

hashCode → int
The hash code for this object.
no setterinherited
multisigPubkey → Uint8List
The derived multisig account public key (32 bytes).
final
props → List<Object>
The list of properties that will be used to determine whether two instances are equal.
no setter
publicKeys → List<Uint8List>
Sorted list of signatory public keys (32 bytes each).
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
stringify → bool?
If set to true, the toString method will be overridden to output this instance's props.
no setterinherited
threshold → int
Number of approvals required for transaction execution.
final

Methods

containsAddress(String address) → bool
Checks if an address is a signatory of this multisig account.
containsPubkey(Uint8List pubkey) → bool
Checks if a public key is a signatory of this multisig account.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
otherSignatoriesForAddress(String signerAddress) → List<Uint8List>
Returns the list of other signatories excluding the current signer.
otherSignatoriesForPubkey(Uint8List signerPubkey) → List<Uint8List>
Returns the list of other signatories excluding the current signer (using public key).
toJson() → Map<String, dynamic>
Converts this MultisigAccount to a JSON representation.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

toJsonMethod(MultisigAccount multisigAccount) → Map<String, dynamic>
Static helper method for JSON serialization.