Detect and report airdrop failures

This commit is contained in:
Michael Vines 2018-07-13 17:44:47 -07:00
parent 1b9d50172b
commit 1f9152dc72
1 changed files with 10 additions and 6 deletions

View File

@ -249,15 +249,19 @@ fn process_command(
// Request an airdrop from Solana Drone; // Request an airdrop from Solana Drone;
// Request amount is set in request_airdrop function // Request amount is set in request_airdrop function
WalletCommand::AirDrop(tokens) => { WalletCommand::AirDrop(tokens) => {
println!("Airdrop requested..."); println!(
println!("Airdropping {:?} tokens", tokens); "Requesting airdrop of {:?} tokens from {}",
tokens, config.drone_addr
);
let previous_balance = client.poll_get_balance(&config.id.pubkey())?;
request_airdrop(&config.drone_addr, &config.id, tokens as u64)?; request_airdrop(&config.drone_addr, &config.id, tokens as u64)?;
// TODO: return airdrop Result from Drone // TODO: return airdrop Result from Drone
sleep(Duration::from_millis(100)); sleep(Duration::from_millis(100));
println!( let current_balance = client.poll_get_balance(&config.id.pubkey())?;
"Your balance is: {:?}", println!("Your balance is: {:?}", current_balance);
client.poll_get_balance(&config.id.pubkey()).unwrap() if current_balance - previous_balance != tokens {
); Err("Airdrop failed!")?;
}
} }
// If client has positive balance, spend tokens in {balance} number of transactions // If client has positive balance, spend tokens in {balance} number of transactions
WalletCommand::Pay(tokens, to) => { WalletCommand::Pay(tokens, to) => {