use massa_hash::Hash;
use massa_protocol_exports::ProtocolError;
use massa_signature::{verify_signature_batch, PublicKey, Signature};
use rayon::{prelude::ParallelIterator, slice::ParallelSlice};
const SMALL_BATCH_LIMIT: usize = 2;
pub fn verify_sigs_batch(ops: &[(Hash, Signature, PublicKey)]) -> Result<(), ProtocolError> {
if ops.len() <= SMALL_BATCH_LIMIT {
return verify_signature_batch(ops).map_err(|_err| ProtocolError::WrongSignature);
}
let chunk_size = std::cmp::max(1, ops.len() / rayon::current_num_threads());
ops.par_chunks(chunk_size)
.try_for_each(verify_signature_batch)
.map_err(|_err| ProtocolError::WrongSignature)
}