simulate static method
In-process C3 simulation — prefer package:pqthreshold/testing.dart.
Implementation
static Future<Uint8List> simulate({
required List<Share> shares,
required Uint8List message,
Uint8List? context,
}) async {
assertShareSetConsistent(shares);
final params = shares.first.params;
if (shares.length < params.t) {
throw InsufficientShares(
'Need at least ${params.t} shares, got ${shares.length}',
);
}
final publicKey = PublicKey.create(
params: params,
ceremonyId: shares.first.ceremonyId,
publicKeyBytes: shares.first.verificationData,
);
final partials = <PartialSignature>[];
for (final share in shares.take(params.t)) {
partials.add(
await ThresholdSigner.signPartial(
share: share,
message: message,
context: context,
),
);
}
return ThresholdSigner.combine(
partials: partials,
publicKey: publicKey,
message: message,
context: context,
);
}