MultisigCommittee
type 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:
```text multisig-committee = (vector multisig-member) u16 ; threshold ```
There is also a legacy encoding for this type defined as:
```text legacy-multisig-committee = (vector legacy-multisig-member) u16 ; threshold ```
type MultisigCommittee struct {
// contains filtered or unexported fields
}
func LiftFromExternalMultisigCommittee
func LiftFromExternalMultisigCommittee(handle uint64) *MultisigCommittee
func MultisigCommitteeFromBcs
func MultisigCommitteeFromBcs(bcs []byte) (*MultisigCommittee, error)
Create this type from BCS encoded bytes.
func MultisigCommitteeFromJson
func MultisigCommitteeFromJson(json string) (*MultisigCommittee, error)
Create this type from JSON encoded string.
func NewMultisigCommittee
func NewMultisigCommittee(members []*MultisigMember, threshold uint16) (*MultisigCommittee, error)
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.
func (*MultisigCommittee) DebugString
func (_self *MultisigCommittee) DebugString() string
func (*MultisigCommittee) DeriveAddress
func (_self *MultisigCommittee) DeriveAddress() *Address
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)`.
func (*MultisigCommittee) Destroy
func (object *MultisigCommittee) Destroy()
func (*MultisigCommittee) Eq
func (_self *MultisigCommittee) Eq(other *MultisigCommittee) bool
func (*MultisigCommittee) Members
func (_self *MultisigCommittee) Members() []*MultisigMember
The members of the committee
func (*MultisigCommittee) Ne
func (_self *MultisigCommittee) Ne(other *MultisigCommittee) bool
func (*MultisigCommittee) Scheme
func (_self *MultisigCommittee) Scheme() SignatureScheme
Return the flag for this signature scheme
func (*MultisigCommittee) Threshold
func (_self *MultisigCommittee) Threshold() uint16
The total signature weight required to authorize a transaction for the address corresponding to this `MultisigCommittee`.
func (*MultisigCommittee) Validate
func (_self *MultisigCommittee) Validate() error
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