fn find_duplicate_nullifier<'a, NullifierT, FinalizedStateContainsFn, NonFinalizedStateContainsFn>(
revealed_nullifiers: impl IntoIterator<Item = &'a NullifierT>,
finalized_chain_contains: FinalizedStateContainsFn,
non_finalized_chain_contains: Option<NonFinalizedStateContainsFn>,
) -> Result<(), ValidateContextError>where
NullifierT: DuplicateNullifierError + 'a,
FinalizedStateContainsFn: Fn(&'a NullifierT) -> bool,
NonFinalizedStateContainsFn: Fn(&'a NullifierT) -> bool,
Expand description
Accepts an iterator of revealed nullifiers, a predicate fn for checking if a nullifier is in in the finalized chain, and a predicate fn for checking if the nullifier is in the non-finalized chain
Returns Err(DuplicateNullifierError)
if any of the revealed_nullifiers
are found in the
non-finalized or finalized chains.
Returns Ok(())
if all the revealed_nullifiers
have not been seen in either chain.