P128Pow5T3Fp constructor

P128Pow5T3Fp({
  1. MdsGenerateResult<PallasFp>? constants,
})

Implementation

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