P128Pow5T3Fq constructor
P128Pow5T3Fq({
- MdsGenerateResult<
VestaFq> ? constants,
Implementation
factory P128Pow5T3Fq({MdsGenerateResult<VestaFq>? constants}) {
if (constants != null && !PoseidonSpec.isValidConstants(constants)) {
throw ArgumentException.invalidOperationArguments(
"P128Pow5T3Fq",
reason: "Invalid constants length.",
);
}
constants ??= PoseidonUtils.generateConstants<VestaFq>(
fromBytes: (bytes) {
if (bytes.length == 32) {
return VestaFq.fromBytes(bytes);
}
return VestaFq.fromBytes64(bytes);
},
zero: VestaFq.zero(),
one: VestaFq.one(),
);
return P128Pow5T3Fq._(constants);
}