verify method
Performs signature verification
Implementation
Future<bool> verify({required Uint8List data}) async {
if (version != MULTISIG_VERSION || threshold <= 0 || subsigs.isEmpty) {
return false;
}
if (threshold > subsigs.length) {
return false;
}
var verifiedCount = 0;
for (var i = 0; i < subsigs.length; i++) {
final subsig = subsigs[i];
final signature = subsig.signature;
if (signature == null) {
continue;
}
final pk = Address(publicKey: subsig.key.publicKey).toVerifyKey();
final verified = await crypto.Ed25519().verify(
data,
signature: crypto.Signature(
signature.bytes,
publicKey: pk,
),
);
if (verified) {
verifiedCount += 1;
}
}
return verifiedCount >= threshold;
}