MultisigAggregatedSignature
MultisigAggregatedSignature
class MultisigAggregatedSignature
Aggregated signature from members of a multisig committee.
BCS
The BCS serialized form for this type is defined by the following ABNF:
multisig-aggregated-signature = (vector multisig-member-signature)
u16 ; bitmap
multisig-committee
There is also a legacy encoding for this type defined as:
legacy-multisig-aggregated-signature = (vector multisig-member-signature)
roaring-bitmap ; bitmap
legacy-multisig-committee
roaring-bitmap = bytes ; where the contents of the bytes are valid
; according to the serialized spec for
; roaring bitmaps
See https://github.com/RoaringBitmap/RoaringFormatSpec for the specification for the serialized format of RoaringBitmaps.
init(signatures:committee:)
convenience init(signatures: [UserSignature], committee: MultisigCommittee) throws
Construct a MultisigAggregatedSignature from a list of
UserSignatures and a MultisigCommittee.
This:
- validates
committeeviaMultisigCommittee::validate; - converts each
UserSignatureinto aMultisigMemberSignature; - derives the
bitmapby locating each signature's public key in the committee, rejecting duplicates and signatures from non-members; - rejects empty signature lists and lists longer than the committee.
The caller must provide signatures in the same order as their
corresponding members in committee: for committee
[pk1, pk2, pk3, pk4, pk5], [sig1, sig2, sig5] is valid but
[sig2, sig1, sig5] is not.
debugDescription
var debugDescription: String { get }
A textual representation of this instance, suitable for debugging.
Calling this property directly is discouraged. Instead, convert an
instance of any type to a string by using the String(reflecting:)
initializer. This initializer works with any type, and uses the custom
debugDescription property for types that conform to
CustomDebugStringConvertible:
struct Point: CustomDebugStringConvertible {
let x: Int, y: Int
var debugDescription: String {
return "(\(x), \(y))"
}
}
let p = Point(x: 21, y: 30)
let s = String(reflecting: p)
print(s)
// Prints "(21, 30)"
The conversion of p to a string in the assignment to s uses the
Point type's debugDescription property.
bitmap()
func bitmap() -> UInt16
The bitmap that indicates which committee members provided their signature.
committee()
func committee() -> MultisigCommittee
signatures()
func signatures() -> [MultisigMemberSignature]
The list of signatures from committee members
!=(_:_:)
static func != (lhs: Self, rhs: Self) -> Bool
Returns a Boolean value indicating whether two values are not equal.
Inequality is the inverse of equality. For any values a and b, a != b
implies that a == b is false.
This is the default implementation of the not-equal-to operator (!=)
for any type that conforms to Equatable.
- Parameters:
- lhs: A value to compare.
- rhs: Another value to compare.
==(_:_:)
static func == (self: MultisigAggregatedSignature, other: MultisigAggregatedSignature) -> Bool
Returns a Boolean value indicating whether two values are equal.
Equality is the inverse of inequality. For any values a and b,
a == b implies that a != b is false.
- Parameters:
- lhs: A value to compare.
- rhs: Another value to compare.