measure time

master
plazmoid 1 week ago
parent 8991e2124f
commit b57e1ce731
  1. 14
      mass-transfer-2/src/main.rs

@ -13,6 +13,7 @@ use solana_sdk::{
system_instruction,
transaction::Transaction,
};
use tokio::time::Instant;
#[derive(Deserialize)]
struct Cfg {
@ -100,17 +101,20 @@ async fn main() -> Result<(), Box<dyn Error>> {
print_balances(client.clone(), all_accounts.clone()).await?;
let transfer_amount = LAMPORTS_PER_SOL / 100;
println!(
"sending {} SOL",
transfer_amount as f64 / LAMPORTS_PER_SOL as f64
);
let now = Instant::now();
let transactions = run_batch(config.transfers.iter().map(|tr| {
let instruction =
system_instruction::transfer(&tr.sender.pubkey(), &tr.receiver, transfer_amount);
let mut transaction =
Transaction::new_with_payer(&[instruction], Some(&tr.sender.pubkey()));
let client = client.clone();
println!(
"sending {} SOL from {} to {}",
transfer_amount as f64 / LAMPORTS_PER_SOL as f64,
tr.sender.pubkey(),
tr.receiver
);
async move {
let blockhash = client.get_latest_blockhash().await?;
transaction.sign(&[&tr.sender], blockhash);
@ -123,7 +127,7 @@ async fn main() -> Result<(), Box<dyn Error>> {
println!("Waiting for confirmation...");
wait_for_confirmation(client.clone(), &transactions).await?;
println!("Mass-transfer is done");
println!("Done in {}ms", now.elapsed().as_millis());
print_balances(client.clone(), all_accounts).await?;
Ok(())
}

Loading…
Cancel
Save