2019-02-09 19:51:50 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								use solana::rpc_request::RpcClient;
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-28 10:53:29 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								use solana::thin_client::new_fullnode;
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-14 00:10:03 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								use solana_drone::drone::run_local_drone;
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-28 10:53:29 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								use solana_sdk::signature::KeypairUtil;
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-14 00:10:03 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								use solana_wallet::wallet::{process_command, WalletCommand, WalletConfig};
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								use std::fs::remove_dir_all;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								use std::sync::mpsc::channel;
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								#[test]
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								fn test_wallet_request_airdrop() {
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-29 17:03:32 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    let (server, leader_data, alice, ledger_path) = new_fullnode("test_wallet_request_airdrop");
							 | 
						
					
						
							
								
									
										
										
										
											2019-02-05 08:03:52 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    let server_exit = server.run(None);
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-14 00:10:03 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    let (sender, receiver) = channel();
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-24 12:04:04 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    run_local_drone(alice, sender);
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-14 00:10:03 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    let drone_addr = receiver.recv().unwrap();
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    let mut bob_config = WalletConfig::default();
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-16 20:43:00 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    bob_config.drone_port = drone_addr.port();
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    bob_config.rpc_port = leader_data.rpc.port();
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-14 00:10:03 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    bob_config.command = WalletCommand::Airdrop(50);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    let sig_response = process_command(&bob_config);
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-28 14:52:35 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    sig_response.unwrap();
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-14 00:10:03 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    let rpc_client = RpcClient::new_from_socket(leader_data.rpc);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    let balance = rpc_client
							 | 
						
					
						
							
								
									
										
										
										
											2019-02-09 19:51:50 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								        .retry_get_balance(1, bob_config.id.pubkey(), 1)
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-14 00:10:03 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        .unwrap()
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								        .unwrap();
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    assert_eq!(balance, 50);
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											2019-02-05 08:03:52 -08:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								    server_exit();
							 | 
						
					
						
							
								
									
										
										
										
											2019-01-14 00:10:03 -07:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								    remove_dir_all(ledger_path).unwrap();
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								}
							 |