in fastpay_core/src/base_types.rs [332:348]
fn verify_batch_internal<'a, T, I>(value: &'a T, votes: I) -> Result<(), dalek::SignatureError>
where
T: Signable<Vec<u8>>,
I: IntoIterator<Item = &'a (FastPayAddress, Signature)>,
{
let mut msg = Vec::new();
value.write(&mut msg);
let mut messages: Vec<&[u8]> = Vec::new();
let mut signatures: Vec<dalek::Signature> = Vec::new();
let mut public_keys: Vec<dalek::PublicKey> = Vec::new();
for (addr, sig) in votes.into_iter() {
messages.push(&msg);
signatures.push(sig.0);
public_keys.push(dalek::PublicKey::from_bytes(&addr.0)?);
}
dalek::verify_batch(&messages[..], &signatures[..], &public_keys[..])
}