Sponge<F extends PastaFieldElement<F>> constructor

Sponge<F extends PastaFieldElement<F>>({
  1. required F initialCapacityElement,
  2. required PoseidonSpec<F> state,
})

Implementation

factory Sponge({
  required F initialCapacityElement,
  required PoseidonSpec<F> state,
}) {
  final rate = state.rate();
  final F zero = state.zero();
  final constants = state.constants;
  final mode = Absorbing<F>(List.filled(rate, null));
  final st = List.filled(constants.mds.length, zero);
  st[rate] = initialCapacityElement;
  return Sponge._(mode: mode, state: st, spec: state);
}