in fastpay/src/client.rs [123:155]
fn make_benchmark_certificates_from_orders_and_server_configs(
orders: Vec<TransferOrder>,
server_config: Vec<&str>,
) -> Vec<(FastPayAddress, Bytes)> {
let mut keys = Vec::new();
for file in server_config {
let server_config = AuthorityServerConfig::read(file).expect("Fail to read server config");
keys.push((server_config.authority.address, server_config.key));
}
let committee = Committee {
voting_rights: keys.iter().map(|(k, _)| (*k, 1)).collect(),
total_votes: keys.len(),
};
assert!(
keys.len() >= committee.quorum_threshold(),
"Not enough server configs were provided with --server-configs"
);
let mut serialized_certificates = Vec::new();
for order in orders {
let mut certificate = CertifiedTransferOrder {
value: order.clone(),
signatures: Vec::new(),
};
for i in 0..committee.quorum_threshold() {
let (pubx, secx) = keys.get(i).unwrap();
let sig = Signature::new(&certificate.value.transfer, secx);
certificate.signatures.push((*pubx, sig));
}
let serialized_certificate = serialize_cert(&certificate);
serialized_certificates.push((order.transfer.sender, serialized_certificate.into()));
}
serialized_certificates
}