Skip to content
This repository was archived by the owner on Apr 3, 2023. It is now read-only.

Commit aafbb3e

Browse files
author
bhat
committed
Small improvements in tools.
1 parent 83ed758 commit aafbb3e

File tree

2 files changed

+41
-34
lines changed

2 files changed

+41
-34
lines changed

src/bin/register.rs

Lines changed: 30 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
11
use duino_miner::error::MinerError;
22

3-
use tokio::net::TcpStream;
3+
use std::time::Duration;
44

55
use rand::{thread_rng, Rng};
66
use rand::distributions::Alphanumeric;
77

8-
use clap::{AppSettings, Clap};
98
use tokio::io::{AsyncReadExt, AsyncWriteExt};
9+
use tokio::net::TcpStream;
1010

11+
use clap::{AppSettings, Clap};
1112

1213
#[derive(Clap)]
1314
#[clap(version = "0.1", author = "Black H. <[email protected]>")]
@@ -17,39 +18,46 @@ struct Opts {
1718
host: String,
1819
#[clap(short, long, default_value = "2811")]
1920
port: u16,
21+
#[clap(short, long, default_value = "1")]
22+
count: u32,
2023
}
2124

2225
#[tokio::main]
2326
async fn main() -> Result<(), Box<dyn std::error::Error>> {
2427
let opts: Opts = Opts::parse();
2528

26-
let mut username = parity_wordlist::random_phrase(2);
27-
username.retain(|c| !c.is_whitespace());
28-
let password: String = thread_rng()
29-
.sample_iter(&Alphanumeric)
30-
.take(16)
31-
.map(char::from)
32-
.collect();
29+
for _ in 0..opts.count {
30+
let mut username = parity_wordlist::random_phrase(2);
31+
username.retain(|c| !c.is_whitespace());
32+
let password: String = thread_rng()
33+
.sample_iter(&Alphanumeric)
34+
.take(16)
35+
.map(char::from)
36+
.collect();
37+
38+
let mut stream = TcpStream::connect(
39+
format!("{}:{}", opts.host, opts.port)).await.map_err(|_| MinerError::Connection)?;
3340

34-
let mut stream = TcpStream::connect(
35-
format!("{}:{}", opts.host, opts.port)).await.map_err(|_| MinerError::Connection)?;
41+
println!("Connected to pool {}:{}", opts.host, opts.port);
3642

37-
println!("Connected to pool {}:{}", opts.host, opts.port);
43+
let mut cmd_in: [u8; 200] = [0; 200];
3844

39-
let mut cmd_in: [u8; 200] = [0; 200];
45+
let n = stream.read(&mut cmd_in).await.map_err(|_| MinerError::RecvCommand)?;
46+
println!("version: {}", std::str::from_utf8(&cmd_in[..n])?);
4047

41-
let n = stream.read(&mut cmd_in).await.map_err(|_| MinerError::RecvCommand)?;
42-
println!("version: {}", std::str::from_utf8(&cmd_in[..n])?);
48+
let cmd_job = format!("REGI,{},{},{}@gmail.com\n", username, password, username);
49+
stream.write(cmd_job.as_bytes()).await.map_err(|_| MinerError::SendCommand)?;
50+
let n = stream.read(&mut cmd_in).await.map_err(|_| MinerError::RecvCommand)?;
51+
let reg_status = std::str::from_utf8(&cmd_in[..n]).map_err(|_| MinerError::InvalidUTF8)?;
4352

44-
let cmd_job = format!("REGI,{},{},{}@gmail.com\n", username, password, username);
45-
stream.write(cmd_job.as_bytes()).await.map_err(|_| MinerError::SendCommand)?;
46-
let n = stream.read(&mut cmd_in).await.map_err(|_| MinerError::RecvCommand)?;
47-
let reg_status = std::str::from_utf8(&cmd_in[..n]).map_err(|_| MinerError::InvalidUTF8)?;
53+
if reg_status != "OK" {
54+
println!("register failed: {}", reg_status);
55+
break;
56+
}
4857

49-
if reg_status != "OK" {
50-
println!("register failed: {}", reg_status);
51-
} else {
5258
println!("registered {} with {}", username, password);
59+
60+
tokio::time::sleep(Duration::from_secs(4)).await;
5361
}
5462

5563
Ok(())

src/bin/transfer.rs

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -39,21 +39,16 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
3939
let c_serial = tokio::fs::read_to_string(opts.config_file).await?;
4040
let c: Config = serde_yaml::from_str(c_serial.as_str())?;
4141

42-
for account in c.accounts {
43-
if account.username == c.main_account {
44-
continue;
45-
}
46-
47-
let mut stream = TcpStream::connect(
48-
format!("{}:{}", c.host, c.port)).await.map_err(|_| MinerError::Connection)?;
49-
50-
println!("Connected to pool {}:{}", c.host, c.port);
42+
let mut stream = TcpStream::connect(
43+
format!("{}:{}", c.host, c.port)).await.map_err(|_| MinerError::Connection)?;
5144

52-
let mut cmd_in: [u8; 200] = [0; 200];
45+
println!("Connected to pool {}:{}", c.host, c.port);
5346

54-
let n = stream.read(&mut cmd_in).await.map_err(|_| MinerError::RecvCommand)?;
55-
println!("version: {}", std::str::from_utf8(&cmd_in[..n])?);
47+
let mut cmd_in: [u8; 200] = [0; 200];
48+
let n = stream.read(&mut cmd_in).await.map_err(|_| MinerError::RecvCommand)?;
49+
println!("version: {}", std::str::from_utf8(&cmd_in[..n])?);
5650

51+
for account in c.accounts {
5752
let cmd_job = format!("LOGI,{},{}\n", account.username, account.password);
5853
stream.write(cmd_job.as_bytes()).await.map_err(|_| MinerError::SendCommand)?;
5954
let n = stream.read(&mut cmd_in).await.map_err(|_| MinerError::RecvCommand)?;
@@ -69,6 +64,10 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
6964
let balance: f32 = std::str::from_utf8(&cmd_in[..n]).map_err(|_| MinerError::InvalidUTF8)?.parse()?;
7065
println!("account {} has balance {}", account.username, balance);
7166

67+
if account.username == c.main_account {
68+
continue;
69+
}
70+
7271
let balance = balance as u32;
7372

7473
if balance > 100 || opts.force {

0 commit comments

Comments
 (0)