fn make_benchmark_transfer_orders()

in fastpay/src/client.rs [92:120]


fn make_benchmark_transfer_orders(
    accounts_config: &mut AccountsConfig,
    max_orders: usize,
) -> (Vec<TransferOrder>, Vec<(FastPayAddress, Bytes)>) {
    let mut orders = Vec::new();
    let mut serialized_orders = Vec::new();
    // TODO: deterministic sequence of orders to recover from interrupted benchmarks.
    let mut next_recipient = get_key_pair().0;
    for account in accounts_config.accounts_mut() {
        let transfer = Transfer {
            sender: account.address,
            recipient: Address::FastPay(next_recipient),
            amount: Amount::from(1),
            sequence_number: account.next_sequence_number,
            user_data: UserData::default(),
        };
        debug!("Preparing transfer order: {:?}", transfer);
        account.next_sequence_number = account.next_sequence_number.increment().unwrap();
        next_recipient = account.address;
        let order = TransferOrder::new(transfer.clone(), &account.key);
        orders.push(order.clone());
        let serialized_order = serialize_transfer_order(&order);
        serialized_orders.push((account.address, serialized_order.into()));
        if serialized_orders.len() >= max_orders {
            break;
        }
    }
    (orders, serialized_orders)
}