fn make_benchmark_certificates_from_orders_and_server_configs()

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
}