Better error handling messages for airdrops

This commit is contained in:
Stephen Akridge 2018-08-24 08:38:09 -07:00 committed by Greg Fitzgerald
parent 501deeef56
commit 9a9f89293a
2 changed files with 8 additions and 4 deletions

View File

@ -291,7 +291,12 @@ fn airdrop_tokens(client: &mut ThinClient, leader: &NodeInfo, id: &Keypair, tx_c
id.pubkey(),
);
request_airdrop(&drone_addr, &id.pubkey(), airdrop_amount as u64).unwrap();
if let Err(e) = request_airdrop(&drone_addr, &id.pubkey(), airdrop_amount as u64) {
panic!(
"Error requesting airdrop: {:?} to addr: {:?} amount: {}",
e, drone_addr, airdrop_amount
);
}
// TODO: return airdrop Result from Drone instead of polling the
// network

View File

@ -1,7 +1,6 @@
use bincode::{deserialize, serialize};
use drone::DroneRequest;
use signature::{Pubkey, Signature};
use std::error;
use std::io::prelude::*;
use std::io::{Error, ErrorKind, Write};
use std::mem::size_of;
@ -11,7 +10,7 @@ pub fn request_airdrop(
drone_addr: &SocketAddr,
id: &Pubkey,
tokens: u64,
) -> Result<Signature, Box<error::Error>> {
) -> Result<Signature, Error> {
// TODO: make this async tokio client
let mut stream = TcpStream::connect(drone_addr)?;
let req = DroneRequest::GetAirdrop {
@ -19,7 +18,7 @@ pub fn request_airdrop(
client_pubkey: *id,
};
let tx = serialize(&req).expect("serialize drone request");
stream.write_all(&tx).unwrap();
stream.write_all(&tx)?;
let mut buffer = [0; size_of::<Signature>()];
stream
.read_exact(&mut buffer)