Update wallet to take network arg
This commit is contained in:
		
				
					committed by
					
						
						Tyera Eulberg
					
				
			
			
				
	
			
			
			
						parent
						
							7c08b397eb
						
					
				
				
					commit
					0babee39a4
				
			@@ -1,26 +1,28 @@
 | 
				
			|||||||
#[macro_use]
 | 
					#[macro_use]
 | 
				
			||||||
extern crate clap;
 | 
					extern crate clap;
 | 
				
			||||||
extern crate dirs;
 | 
					extern crate dirs;
 | 
				
			||||||
 | 
					#[macro_use]
 | 
				
			||||||
extern crate solana;
 | 
					extern crate solana;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use clap::{App, Arg, ArgMatches, SubCommand};
 | 
					use clap::{App, Arg, ArgMatches, SubCommand};
 | 
				
			||||||
use solana::client::mk_client;
 | 
					use solana::client::mk_client;
 | 
				
			||||||
use solana::crdt::NodeInfo;
 | 
					 | 
				
			||||||
use solana::drone::DRONE_PORT;
 | 
					use solana::drone::DRONE_PORT;
 | 
				
			||||||
use solana::logger;
 | 
					use solana::logger;
 | 
				
			||||||
use solana::signature::{read_keypair, KeypairUtil};
 | 
					use solana::signature::{read_keypair, KeypairUtil};
 | 
				
			||||||
use solana::thin_client::poll_gossip_for_leader;
 | 
					use solana::thin_client::poll_gossip_for_leader;
 | 
				
			||||||
use solana::wallet::{parse_command, process_command, read_leader, WalletConfig, WalletError};
 | 
					use solana::wallet::{parse_command, process_command, WalletConfig, WalletError};
 | 
				
			||||||
use std::error;
 | 
					use std::error;
 | 
				
			||||||
use std::net::{IpAddr, Ipv4Addr, SocketAddr};
 | 
					use std::net::SocketAddr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pub fn parse_args(matches: &ArgMatches) -> Result<WalletConfig, Box<error::Error>> {
 | 
					pub fn parse_args(matches: &ArgMatches) -> Result<WalletConfig, Box<error::Error>> {
 | 
				
			||||||
    let leader: NodeInfo;
 | 
					    let network = if let Some(addr) = matches.value_of("network") {
 | 
				
			||||||
    if let Some(l) = matches.value_of("leader") {
 | 
					        addr.parse().or_else(|_| {
 | 
				
			||||||
        leader = read_leader(l)?.node_info;
 | 
					            Err(WalletError::BadParameter(
 | 
				
			||||||
 | 
					                "Invalid network location".to_string(),
 | 
				
			||||||
 | 
					            ))
 | 
				
			||||||
 | 
					        })?
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
        let server_addr = SocketAddr::new(IpAddr::V4(Ipv4Addr::new(0, 0, 0, 0)), 8000);
 | 
					        socketaddr!("127.0.0.1:8001")
 | 
				
			||||||
        leader = NodeInfo::new_with_socketaddr(&server_addr);
 | 
					 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    let timeout: Option<u64>;
 | 
					    let timeout: Option<u64>;
 | 
				
			||||||
    if let Some(secs) = matches.value_of("timeout") {
 | 
					    if let Some(secs) = matches.value_of("timeout") {
 | 
				
			||||||
@@ -43,7 +45,7 @@ pub fn parse_args(matches: &ArgMatches) -> Result<WalletConfig, Box<error::Error
 | 
				
			|||||||
        )))
 | 
					        )))
 | 
				
			||||||
    })?;
 | 
					    })?;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let leader = poll_gossip_for_leader(leader.contact_info.ncp, timeout)?;
 | 
					    let leader = poll_gossip_for_leader(network, timeout)?;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    let mut drone_addr = leader.contact_info.tpu;
 | 
					    let mut drone_addr = leader.contact_info.tpu;
 | 
				
			||||||
    drone_addr.set_port(DRONE_PORT);
 | 
					    drone_addr.set_port(DRONE_PORT);
 | 
				
			||||||
@@ -63,13 +65,14 @@ fn main() -> Result<(), Box<error::Error>> {
 | 
				
			|||||||
    let matches = App::new("solana-wallet")
 | 
					    let matches = App::new("solana-wallet")
 | 
				
			||||||
        .version(crate_version!())
 | 
					        .version(crate_version!())
 | 
				
			||||||
        .arg(
 | 
					        .arg(
 | 
				
			||||||
            Arg::with_name("leader")
 | 
					            Arg::with_name("network")
 | 
				
			||||||
                .short("l")
 | 
					                .short("n")
 | 
				
			||||||
                .long("leader")
 | 
					                .long("network")
 | 
				
			||||||
                .value_name("PATH")
 | 
					                .value_name("HOST:PORT")
 | 
				
			||||||
                .takes_value(true)
 | 
					                .takes_value(true)
 | 
				
			||||||
                .help("/path/to/leader.json"),
 | 
					                .help("Rendezvous with the network at this gossip entry point; defaults to 127.0.0.1:8001"),
 | 
				
			||||||
        ).arg(
 | 
					        )
 | 
				
			||||||
 | 
					        .arg(
 | 
				
			||||||
            Arg::with_name("keypair")
 | 
					            Arg::with_name("keypair")
 | 
				
			||||||
                .short("k")
 | 
					                .short("k")
 | 
				
			||||||
                .long("keypair")
 | 
					                .long("keypair")
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user