From c05416e27d935ec788fbe330e1082da3c08c62da Mon Sep 17 00:00:00 2001 From: Greg Fitzgerald Date: Wed, 27 Jun 2018 15:21:30 -0600 Subject: [PATCH] Turn simple-client-demo into a simpler wallet --- Cargo.toml | 4 +- snap/snapcraft.yaml | 4 +- src/bin/{simple-client-demo.rs => wallet.rs} | 42 +++++--------------- 3 files changed, 14 insertions(+), 36 deletions(-) rename src/bin/{simple-client-demo.rs => wallet.rs} (78%) diff --git a/Cargo.toml b/Cargo.toml index 3245aaf37..03b442017 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -18,8 +18,8 @@ name = "solana-client-demo" path = "src/bin/client-demo.rs" [[bin]] -name = "solana-simple-client-demo" -path = "src/bin/simple-client-demo.rs" +name = "solana-wallet" +path = "src/bin/wallet.rs" [[bin]] name = "solana-fullnode" diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 45408e8f0..bb720dee2 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -43,8 +43,8 @@ apps: command: solana-mint client-demo: command: solana-client-demo - simple-client-demo: - command: solana-simple-client-demo + wallet: + command: solana-wallet daemon-validator: daemon: simple diff --git a/src/bin/simple-client-demo.rs b/src/bin/wallet.rs similarity index 78% rename from src/bin/simple-client-demo.rs rename to src/bin/wallet.rs index 73d2ec3e3..23d55a3a5 100644 --- a/src/bin/simple-client-demo.rs +++ b/src/bin/wallet.rs @@ -1,18 +1,15 @@ extern crate bincode; extern crate env_logger; extern crate getopts; -extern crate rayon; extern crate serde_json; extern crate solana; use bincode::serialize; use getopts::Options; -use rayon::prelude::*; use solana::crdt::{get_ip_addr, ReplicatedData}; use solana::drone::DroneRequest; -use solana::signature::{GenKeys, KeyPair, KeyPairUtil, PublicKey}; +use solana::signature::{KeyPair, KeyPairUtil, PublicKey}; use solana::thin_client::ThinClient; -use solana::timing::{duration_as_ms, duration_as_s}; use solana::transaction::Transaction; use std::env; use std::fs::File; @@ -20,12 +17,11 @@ use std::io::prelude::*; use std::net::{IpAddr, Ipv4Addr, SocketAddr, TcpStream, UdpSocket}; use std::process::exit; use std::thread::sleep; -use std::time::{Duration, Instant}; +use std::time::Duration; fn print_usage(program: &str, opts: Options) { - //TODO: Edit this!!!! let mut brief = format!("Usage: {} [options]\n\n", program); - brief += " Solana simple client demo allows you to perform basic actions, including\n"; + brief += " solana-wallet allows you to perform basic actions, including\n"; brief += " requesting an airdrop, checking your balance, and spending tokens."; brief += " Takes json formatted mint file to stdin."; @@ -120,32 +116,14 @@ fn main() { println!("You don't have any tokens!"); } Ok(balance) => { - println!("Spending tokens in {:?} transactions...", balance); - let mut seed = [0u8; 32]; - seed.copy_from_slice(&client_keypair.public_key_bytes()[..32]); - let rnd = GenKeys::new(seed); - let txs = balance.clone(); - let keypairs = rnd.gen_n_keypairs(balance); - let transactions: Vec<_> = keypairs - .par_iter() - .map(|keypair| { - Transaction::new( - &client_keypair, - keypair.pubkey(), - 1, - last_id, - ) - }) - .collect(); - let transfer_start = Instant::now(); - for tx in transactions { - client.transfer_signed(tx.clone()).unwrap(); - } - println!( - "Transactions complete. {:?} ms {} tps", - duration_as_ms(&transfer_start.elapsed()), - txs as f32 / (duration_as_s(&transfer_start.elapsed())) + println!("Sending {:?} tokens to self...", balance); + let tx = Transaction::new( + &client_keypair, + client_pubkey, + balance, + last_id, ); + client.transfer_signed(tx.clone()).unwrap(); } Err(ref e) if e.kind() == std::io::ErrorKind::Other => { println!("No account found! Request an airdrop to get started.");