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)
}