vrfSign method
Implementation
@override
List<int> vrfSign(List<int> message, {List<int>? context, List<int>? extra}) {
final MerlinTranscript vrfScript = _SubstrateSr25519SignerUtils.vrfScript(
extra: extra,
);
final MerlinTranscript script =
_SubstrateSr25519SignerUtils.substrateVrfSignScript(message, context);
final sign = _signer.vrfSign(
script,
kusamaVRF: true,
verifyScript: vrfScript,
);
final List<int> vrfResult = [...sign.$1.output, ...sign.$2.toBytes()];
final verifier = toVerifyKey();
if (!verifier.vrfVerify(
message,
List<int>.from(vrfResult),
context: context,
extra: extra,
)) {
throw CryptoSignException.signatureVerificationFailed;
}
return vrfResult;
}