[INFO] cloning repository https://github.com/stack-weaver/Blockchain---Master-ISD-S4
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/stack-weaver/Blockchain---Master-ISD-S4" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstack-weaver%2FBlockchain---Master-ISD-S4", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstack-weaver%2FBlockchain---Master-ISD-S4'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 06b1c2a24eea9365f25a2770f61afb97dde27cb3
[INFO] checking stack-weaver/Blockchain---Master-ISD-S4 against try#b28cc4eb48a6415b914e8ad0308be255ff8d73ed for pr-156508
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fstack-weaver%2FBlockchain---Master-ISD-S4" "/workspace/builds/worker-6-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-6-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/stack-weaver/Blockchain---Master-ISD-S4
[INFO] finished tweaking git repo https://github.com/stack-weaver/Blockchain---Master-ISD-S4
[INFO] tweaked toml for git repo https://github.com/stack-weaver/Blockchain---Master-ISD-S4 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/stack-weaver/Blockchain---Master-ISD-S4 on toolchain b28cc4eb48a6415b914e8ad0308be255ff8d73ed
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b28cc4eb48a6415b914e8ad0308be255ff8d73ed" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/stack-weaver/Blockchain---Master-ISD-S4 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b28cc4eb48a6415b914e8ad0308be255ff8d73ed" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded wasm-bindgen-macro-support v0.2.72
[INFO] [stderr]   Downloaded wasm-bindgen-shared v0.2.72
[INFO] [stderr]   Downloaded wasm-bindgen v0.2.72
[INFO] [stderr]   Downloaded merkle v1.11.0
[INFO] [stderr]   Downloaded wasm-bindgen-macro v0.2.72
[INFO] [stderr]   Downloaded wasm-bindgen-backend v0.2.72
[INFO] [stderr]   Downloaded js-sys v0.3.49
[INFO] [stderr]   Downloaded syn v1.0.64
[INFO] [stderr]   Downloaded libc v0.2.83
[INFO] [stderr]   Downloaded web-sys v0.3.49
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b28cc4eb48a6415b914e8ad0308be255ff8d73ed" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 4215d55ab17b382ece75d6a2e5835d88d4cf03199649c13afc75d255c7f2f392
[INFO] running `Command { std: "docker" "start" "-a" "4215d55ab17b382ece75d6a2e5835d88d4cf03199649c13afc75d255c7f2f392", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "4215d55ab17b382ece75d6a2e5835d88d4cf03199649c13afc75d255c7f2f392", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "4215d55ab17b382ece75d6a2e5835d88d4cf03199649c13afc75d255c7f2f392", kill_on_drop: false }`
[INFO] [stdout] 4215d55ab17b382ece75d6a2e5835d88d4cf03199649c13afc75d255c7f2f392
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+b28cc4eb48a6415b914e8ad0308be255ff8d73ed" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] b6983035b7f55a47a928cb55f61ecd4be2afdf68da9940d31adbf0886e424437
[INFO] running `Command { std: "docker" "start" "-a" "b6983035b7f55a47a928cb55f61ecd4be2afdf68da9940d31adbf0886e424437", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.83
[INFO] [stderr]    Compiling typenum v1.13.0
[INFO] [stderr]    Compiling cc v1.0.67
[INFO] [stderr]    Compiling getrandom v0.2.2
[INFO] [stderr]    Compiling serde v1.0.125
[INFO] [stderr]    Compiling crossbeam-utils v0.8.1
[INFO] [stderr]    Compiling merkle v1.11.0
[INFO] [stderr]     Checking once_cell v1.7.2
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]     Checking cpuid-bool v0.1.2
[INFO] [stderr]     Checking ansi_term v0.9.0
[INFO] [stderr]     Checking bitflags v0.9.1
[INFO] [stderr]     Checking strsim v0.6.0
[INFO] [stderr]     Checking hex v0.4.2
[INFO] [stderr]     Checking textwrap v0.9.0
[INFO] [stderr]    Compiling ring v0.16.20
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking clap v2.27.1
[INFO] [stderr]     Checking rand_core v0.6.1
[INFO] [stderr]     Checking generic-array v0.14.4
[INFO] [stderr]     Checking rand_chacha v0.3.0
[INFO] [stderr]     Checking rand v0.8.3
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking sha2 v0.9.3
[INFO] [stderr]     Checking bincode v1.3.2
[INFO] [stderr]     Checking blockchain v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/miner.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sha512`
[INFO] [stdout]  --> src/miner.rs:9:20
[INFO] [stdout]   |
[INFO] [stdout] 9 | use sha2::{Sha256, Sha512, Digest};
[INFO] [stdout]   |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryFrom`
[INFO] [stdout]   --> src/miner.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::convert::TryFrom;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]   --> src/miner.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::{Mutex, Arc};
[INFO] [stdout]    |                 ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::UpperHex`
[INFO] [stdout]  --> src/./block.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fmt::UpperHex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bincode`
[INFO] [stdout]  --> src/./block.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use bincode;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/./block.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |           /// Allows you to create a `Block` from a `String`
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 76 | /         let block: HashMap<String, String> = s.split(';')
[INFO] [stdout] 77 | |         .map(|kv| kv.split(':').collect::<Vec<&str>>())
[INFO] [stdout] 78 | |         .map(|vec| {
[INFO] [stdout] 79 | |             (vec[0].to_string(), vec[1].to_string())
[INFO] [stdout] 80 | |         })
[INFO] [stdout] 81 | |         .collect();
[INFO] [stdout]    | |___________________- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/./wallet.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]  --> src/./wallet.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::process::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::block::Block`
[INFO] [stdout]  --> src/./wallet.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::block::Block;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/./wallet.rs:370:23
[INFO] [stdout]     |
[INFO] [stdout] 370 |                     if(!not_empty) {
[INFO] [stdout]     |                       ^          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 370 -                     if(!not_empty) {
[INFO] [stdout] 370 +                     if !not_empty  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/./wallet.rs:375:23
[INFO] [stdout]     |
[INFO] [stdout] 375 |                     if(i == 5) {
[INFO] [stdout]     |                       ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 375 -                     if(i == 5) {
[INFO] [stdout] 375 +                     if i == 5  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/miner.rs:846:9
[INFO] [stdout]     |
[INFO] [stdout] 846 |           /// Dead code, normaly upside code find hash before u64::max_value iteration.
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 847 | /         return block::Block{
[INFO] [stdout] 848 | |             index: index_, 
[INFO] [stdout] 849 | |             payload: payload_, 
[INFO] [stdout] 850 | |             timestamp: timestamp_, 
[INFO] [stdout] ...   |
[INFO] [stdout] 853 | |             hash: hash.as_bytes().to_vec()
[INFO] [stdout] 854 | |         };
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str::FromStr`
[INFO] [stdout]  --> src/main.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::str::FromStr;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Duration`
[INFO] [stdout]  --> src/miner.rs:7:17
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::time::{Duration, Instant};
[INFO] [stdout]   |                 ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Sha512`
[INFO] [stdout]  --> src/miner.rs:9:20
[INFO] [stdout]   |
[INFO] [stdout] 9 | use sha2::{Sha256, Sha512, Digest};
[INFO] [stdout]   |                    ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::TryFrom`
[INFO] [stdout]   --> src/miner.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout] 11 | use std::convert::TryFrom;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Arc` and `Mutex`
[INFO] [stdout]   --> src/miner.rs:12:17
[INFO] [stdout]    |
[INFO] [stdout] 12 | use std::sync::{Mutex, Arc};
[INFO] [stdout]    |                 ^^^^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::fmt::UpperHex`
[INFO] [stdout]  --> src/./block.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::fmt::UpperHex;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `bincode`
[INFO] [stdout]  --> src/./block.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use bincode;
[INFO] [stdout]   |     ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]   --> src/./block.rs:75:9
[INFO] [stdout]    |
[INFO] [stdout] 75 |           /// Allows you to create a `Block` from a `String`
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 76 | /         let block: HashMap<String, String> = s.split(';')
[INFO] [stdout] 77 | |         .map(|kv| kv.split(':').collect::<Vec<&str>>())
[INFO] [stdout] 78 | |         .map(|vec| {
[INFO] [stdout] 79 | |             (vec[0].to_string(), vec[1].to_string())
[INFO] [stdout] 80 | |         })
[INFO] [stdout] 81 | |         .collect();
[INFO] [stdout]    | |___________________- rustdoc does not generate documentation for statements
[INFO] [stdout]    |
[INFO] [stdout]    = help: use `//` for a plain comment
[INFO] [stdout]    = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::collections::HashSet`
[INFO] [stdout]  --> src/./wallet.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::collections::HashSet;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::process::Command`
[INFO] [stdout]  --> src/./wallet.rs:7:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::process::Command;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::block::Block`
[INFO] [stdout]  --> src/./wallet.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 8 | use crate::block::Block;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/./wallet.rs:370:23
[INFO] [stdout]     |
[INFO] [stdout] 370 |                     if(!not_empty) {
[INFO] [stdout]     |                       ^          ^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_parens)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 370 -                     if(!not_empty) {
[INFO] [stdout] 370 +                     if !not_empty  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around `if` condition
[INFO] [stdout]    --> src/./wallet.rs:375:23
[INFO] [stdout]     |
[INFO] [stdout] 375 |                     if(i == 5) {
[INFO] [stdout]     |                       ^      ^
[INFO] [stdout]     |
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]     |
[INFO] [stdout] 375 -                     if(i == 5) {
[INFO] [stdout] 375 +                     if i == 5  {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/miner.rs:846:9
[INFO] [stdout]     |
[INFO] [stdout] 846 |           /// Dead code, normaly upside code find hash before u64::max_value iteration.
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 847 | /         return block::Block{
[INFO] [stdout] 848 | |             index: index_, 
[INFO] [stdout] 849 | |             payload: payload_, 
[INFO] [stdout] 850 | |             timestamp: timestamp_, 
[INFO] [stdout] ...   |
[INFO] [stdout] 853 | |             hash: hash.as_bytes().to_vec()
[INFO] [stdout] 854 | |         };
[INFO] [stdout]     | |_________- rustdoc does not generate documentation for expressions
[INFO] [stdout]     |
[INFO] [stdout]     = help: use `//` for a plain comment
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/./wallet.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 225 |                 _ => { () }
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/./wallet.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 210 |                 UserCommand::Send => {
[INFO] [stdout]     |                 ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 214 |                 UserCommand::Check => {
[INFO] [stdout]     |                 ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 217 |                 UserCommand::Verify => {
[INFO] [stdout]     |                 ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 221 |                 UserCommand::Exit => {
[INFO] [stdout]     |                 ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 225 |                 _ => { () }
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/./wallet.rs:262:21
[INFO] [stdout]     |
[INFO] [stdout] 261 |                     True => resp = "Transaction is verified !".to_string(),
[INFO] [stdout]     |                     ---- matches any value
[INFO] [stdout] 262 |                     False => resp = "Transaction is not correct !".to_string(),
[INFO] [stdout]     |                     ^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `listener`
[INFO] [stdout]    --> src/./wallet.rs:238:21
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 let listener = TcpListener::bind(&self.socket).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_listener`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `True`
[INFO] [stdout]    --> src/./wallet.rs:261:21
[INFO] [stdout]     |
[INFO] [stdout] 261 |                     True => resp = "Transaction is verified !".to_string(),
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_True`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `False`
[INFO] [stdout]    --> src/./wallet.rs:262:21
[INFO] [stdout]     |
[INFO] [stdout] 262 |                     False => resp = "Transaction is not correct !".to_string(),
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_False`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]    --> src/miner.rs:435:21
[INFO] [stdout]     |
[INFO] [stdout] 435 |                 let text = &message[1..]; // get the remainder of the message
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/./wallet.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 225 |                 _ => { () }
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/./wallet.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 210 |                 UserCommand::Send => {
[INFO] [stdout]     |                 ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 214 |                 UserCommand::Check => {
[INFO] [stdout]     |                 ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 217 |                 UserCommand::Verify => {
[INFO] [stdout]     |                 ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 221 |                 UserCommand::Exit => {
[INFO] [stdout]     |                 ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 225 |                 _ => { () }
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/./wallet.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 225 |                 _ => { () }
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/./wallet.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 210 |                 UserCommand::Send => {
[INFO] [stdout]     |                 ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 214 |                 UserCommand::Check => {
[INFO] [stdout]     |                 ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 217 |                 UserCommand::Verify => {
[INFO] [stdout]     |                 ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 221 |                 UserCommand::Exit => {
[INFO] [stdout]     |                 ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 225 |                 _ => { () }
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout]     = note: `#[warn(unreachable_patterns)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/./wallet.rs:262:21
[INFO] [stdout]     |
[INFO] [stdout] 261 |                     True => resp = "Transaction is verified !".to_string(),
[INFO] [stdout]     |                     ---- matches any value
[INFO] [stdout] 262 |                     False => resp = "Transaction is not correct !".to_string(),
[INFO] [stdout]     |                     ^^^^^ no value can reach this
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `listener`
[INFO] [stdout]    --> src/./wallet.rs:238:21
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 let listener = TcpListener::bind(&self.socket).unwrap();
[INFO] [stdout]     |                     ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_listener`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `True`
[INFO] [stdout]    --> src/./wallet.rs:261:21
[INFO] [stdout]     |
[INFO] [stdout] 261 |                     True => resp = "Transaction is verified !".to_string(),
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_True`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `False`
[INFO] [stdout]    --> src/./wallet.rs:262:21
[INFO] [stdout]     |
[INFO] [stdout] 262 |                     False => resp = "Transaction is not correct !".to_string(),
[INFO] [stdout]     |                     ^^^^^ help: if this is intentional, prefix it with an underscore: `_False`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_block_id` is never read
[INFO] [stdout]    --> src/miner.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 280 | pub struct Miner {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub current_block_id : u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `broadcast_threaded`, `ask_for_id`, and `check_block` are never used
[INFO] [stdout]    --> src/miner.rs:375:12
[INFO] [stdout]     |
[INFO] [stdout] 290 | impl Miner {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub fn broadcast_threaded(&self, message: &String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 667 |     pub fn ask_for_id(socket: &String, destination: &String) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 773 |     pub fn check_block(&self, block: block::Block) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/./block.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Block {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn new (index: u32, payload: String, timestamp: u128, nonce: u64, prev_hash: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Flag` is never used
[INFO] [stdout]   --> src/./wallet.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum Flag {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_u8` is never used
[INFO] [stdout]   --> src/./wallet.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Flag {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn from_u8(value: u8) -> Flag {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UserCommand` is never used
[INFO] [stdout]   --> src/./wallet.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum UserCommand {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_string` is never used
[INFO] [stdout]   --> src/./wallet.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl UserCommand {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 78 |     fn from_string(value: String) -> UserCommand {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `concat_u8` is never used
[INFO] [stdout]    --> src/./wallet.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn concat_u8(first: &[u8], second: &[u8]) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_sockip` is never used
[INFO] [stdout]    --> src/./wallet.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn encode_sockip(sockip: String) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_sockip` is never used
[INFO] [stdout]    --> src/./wallet.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn decode_sockip(sockip: String) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_id` is never used
[INFO] [stdout]    --> src/./wallet.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn encode_id(id: String) -> String {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_id` is never used
[INFO] [stdout]    --> src/./wallet.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn decode_id(message: String) -> String {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_id_response` is never used
[INFO] [stdout]    --> src/./wallet.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn decode_id_response(message: String) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Wallet` is never constructed
[INFO] [stdout]    --> src/./wallet.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct Wallet {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_message` is never used
[INFO] [stdout]    --> src/./wallet.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn encode_message(flag : Flag, sockip : String, id : String, msg : String) -> Vec<u8>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_message` is never used
[INFO] [stdout]    --> src/./wallet.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn decode_message(msg : &[u8]) -> (Flag, String, String, String){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_wallet` is never used
[INFO] [stdout]    --> src/./wallet.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn create_wallet(socket: String, miner: String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/./wallet.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl Wallet {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn new(socket: String, miner: String, id: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn listen_for_user_input(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn handle_user_input(&self, command: UserCommand, target: String, message: String) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub fn handle_message(&self, mut stream: TcpStream) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn send_message(&self, destination: &String, message: &String, flag: Flag) -> Result<u8, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn decode_block(&self, encoded_block: String) -> block::Block {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn handle_blockchain(&self, mut stream: TcpStream, blocks: &mut Vec<block::Block>) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn get_blockchain_from_miner(&self) -> Vec<block::Block> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn verify_transaction(&self, transaction: Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Block` is never constructed
[INFO] [stdout]   --> src/./block.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |  pub struct Block {
[INFO] [stdout]    |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_message` and `send_message` are never used
[INFO] [stdout]    --> src/./wallet.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl Wallet {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub fn handle_message(&self, mut stream: TcpStream) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn send_message(&self, destination: &String, message: &String, flag: Flag) -> Result<u8, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/miner.rs:380:13
[INFO] [stdout]     |
[INFO] [stdout] 380 | /             thread::scope(|s| {
[INFO] [stdout] 381 | |                 s.spawn(move |_| {
[INFO] [stdout] 382 | |                     // Connect to neighbor             
[INFO] [stdout] 383 | |                     match self.send_message(&neighbor_address, &message, Flag::Ok) {
[INFO] [stdout] ...   |
[INFO] [stdout] 387 | |                 });
[INFO] [stdout] 388 | |             });
[INFO] [stdout]     | |______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 380 |             let _ = thread::scope(|s| {
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/miner.rs:492:25
[INFO] [stdout]     |
[INFO] [stdout] 492 |                         self.send_message(&sender_sockip, &String::from(""), Flag::Ack);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 492 |                         let _ = self.send_message(&sender_sockip, &String::from(""), Flag::Ack);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:518:29
[INFO] [stdout]     |
[INFO] [stdout] 518 | ...                   &self.broadcast_to_network(&transaction, Flag::Transaction, sender_sockip.to_owned());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 518 |                             let _ = &self.broadcast_to_network(&transaction, Flag::Transaction, sender_sockip.to_owned());
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:532:33
[INFO] [stdout]     |
[INFO] [stdout] 532 | ...                   &self.blocks.push(block::Block::from_str(&mined_block.to_string()).unwrap());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 532 |                                 let _ = &self.blocks.push(block::Block::from_str(&mined_block.to_string()).unwrap());
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:533:33
[INFO] [stdout]     |
[INFO] [stdout] 533 | ...                   &self.broadcast_to_network(&mined_block.to_string(), Flag::Block, sender_sockip.to_owned());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 533 |                                 let _ = &self.broadcast_to_network(&mined_block.to_string(), Flag::Block, sender_sockip.to_owned());
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/miner.rs:599:29
[INFO] [stdout]     |
[INFO] [stdout] 599 | ...                   self.send_message(&sender_sockip, &block.to_string(), Flag::SendBlockchain);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 599 |                             let _ = self.send_message(&sender_sockip, &block.to_string(), Flag::SendBlockchain);
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:644:21
[INFO] [stdout]     |
[INFO] [stdout] 644 |                     &self.handle_client(stream);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 644 |                     let _ = &self.handle_client(stream);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:655:17
[INFO] [stdout]     |
[INFO] [stdout] 655 |                 &self.refresh_nodes_status();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 655 |                 let _ = &self.refresh_nodes_status();
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:745:17
[INFO] [stdout]     |
[INFO] [stdout] 745 |                 &self.health_check(&addr, &id);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 745 |                 let _ = &self.health_check(&addr, &id);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:761:17
[INFO] [stdout]     |
[INFO] [stdout] 761 |                 &self.remove_from_network(*id, String::from(destination));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 761 |                 let _ = &self.remove_from_network(*id, String::from(destination));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/./wallet.rs:204:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |             stdin.read_line(&mut buffer);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 204 |             let _ = stdin.read_line(&mut buffer);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `True` should have a snake case name
[INFO] [stdout]    --> src/./wallet.rs:261:21
[INFO] [stdout]     |
[INFO] [stdout] 261 |                     True => resp = "Transaction is verified !".to_string(),
[INFO] [stdout]     |                     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]     |
[INFO] [stdout] 261 -                     True => resp = "Transaction is verified !".to_string(),
[INFO] [stdout] 261 +                     r#true => resp = "Transaction is verified !".to_string(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `False` should have a snake case name
[INFO] [stdout]    --> src/./wallet.rs:262:21
[INFO] [stdout]     |
[INFO] [stdout] 262 |                     False => resp = "Transaction is not correct !".to_string(),
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]     |
[INFO] [stdout] 262 -                     False => resp = "Transaction is not correct !".to_string(),
[INFO] [stdout] 262 +                     r#false => resp = "Transaction is not correct !".to_string(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `digest` should have an upper case name
[INFO] [stdout]    --> src/./wallet.rs:397:16
[INFO] [stdout]     |
[INFO] [stdout] 397 |         static digest: &'static Algorithm = &ring::digest::SHA256;
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]     |
[INFO] [stdout] 397 -         static digest: &'static Algorithm = &ring::digest::SHA256;
[INFO] [stdout] 397 +         static DIGEST: &'static Algorithm = &ring::digest::SHA256;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `text`
[INFO] [stdout]    --> src/miner.rs:435:21
[INFO] [stdout]     |
[INFO] [stdout] 435 |                 let text = &message[1..]; // get the remainder of the message
[INFO] [stdout]     |                     ^^^^ help: if this is intentional, prefix it with an underscore: `_text`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unreachable pattern
[INFO] [stdout]    --> src/./wallet.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 225 |                 _ => { () }
[INFO] [stdout]     |                 ^ no value can reach this
[INFO] [stdout]     |
[INFO] [stdout] note: multiple earlier patterns match some of the same values
[INFO] [stdout]    --> src/./wallet.rs:225:17
[INFO] [stdout]     |
[INFO] [stdout] 210 |                 UserCommand::Send => {
[INFO] [stdout]     |                 ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 214 |                 UserCommand::Check => {
[INFO] [stdout]     |                 ------------------ matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 217 |                 UserCommand::Verify => {
[INFO] [stdout]     |                 ------------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 221 |                 UserCommand::Exit => {
[INFO] [stdout]     |                 ----------------- matches some of the same values
[INFO] [stdout] ...
[INFO] [stdout] 225 |                 _ => { () }
[INFO] [stdout]     |                 ^ collectively making this unreachable
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `current_block_id` is never read
[INFO] [stdout]    --> src/miner.rs:287:9
[INFO] [stdout]     |
[INFO] [stdout] 280 | pub struct Miner {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 287 |     pub current_block_id : u32,
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `broadcast_threaded`, `ask_for_id`, and `check_block` are never used
[INFO] [stdout]    --> src/miner.rs:375:12
[INFO] [stdout]     |
[INFO] [stdout] 290 | impl Miner {
[INFO] [stdout]     | ---------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 375 |     pub fn broadcast_threaded(&self, message: &String) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 667 |     pub fn ask_for_id(socket: &String, destination: &String) -> u32 {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 773 |     pub fn check_block(&self, block: block::Block) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]   --> src/./block.rs:31:12
[INFO] [stdout]    |
[INFO] [stdout] 28 | impl Block {
[INFO] [stdout]    | ---------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 31 |     pub fn new (index: u32, payload: String, timestamp: u128, nonce: u64, prev_hash: Vec<u8>) -> Self {
[INFO] [stdout]    |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `Flag` is never used
[INFO] [stdout]   --> src/./wallet.rs:17:10
[INFO] [stdout]    |
[INFO] [stdout] 17 | pub enum Flag {
[INFO] [stdout]    |          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_u8` is never used
[INFO] [stdout]   --> src/./wallet.rs:42:8
[INFO] [stdout]    |
[INFO] [stdout] 38 | impl Flag {
[INFO] [stdout]    | --------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 42 |     fn from_u8(value: u8) -> Flag {
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: enum `UserCommand` is never used
[INFO] [stdout]   --> src/./wallet.rs:68:10
[INFO] [stdout]    |
[INFO] [stdout] 68 | pub enum UserCommand {
[INFO] [stdout]    |          ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `from_string` is never used
[INFO] [stdout]   --> src/./wallet.rs:78:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | impl UserCommand {
[INFO] [stdout]    | ---------------- associated function in this implementation
[INFO] [stdout] 78 |     fn from_string(value: String) -> UserCommand {
[INFO] [stdout]    |        ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `concat_u8` is never used
[INFO] [stdout]    --> src/./wallet.rs:101:8
[INFO] [stdout]     |
[INFO] [stdout] 101 | pub fn concat_u8(first: &[u8], second: &[u8]) -> Vec<u8> {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_sockip` is never used
[INFO] [stdout]    --> src/./wallet.rs:107:8
[INFO] [stdout]     |
[INFO] [stdout] 107 | pub fn encode_sockip(sockip: String) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_sockip` is never used
[INFO] [stdout]    --> src/./wallet.rs:112:8
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub fn decode_sockip(sockip: String) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_id` is never used
[INFO] [stdout]    --> src/./wallet.rs:117:8
[INFO] [stdout]     |
[INFO] [stdout] 117 | pub fn encode_id(id: String) -> String {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_id` is never used
[INFO] [stdout]    --> src/./wallet.rs:122:8
[INFO] [stdout]     |
[INFO] [stdout] 122 | pub fn decode_id(message: String) -> String {
[INFO] [stdout]     |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_id_response` is never used
[INFO] [stdout]    --> src/./wallet.rs:128:8
[INFO] [stdout]     |
[INFO] [stdout] 128 | pub fn decode_id_response(message: String) -> String {
[INFO] [stdout]     |        ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Wallet` is never constructed
[INFO] [stdout]    --> src/./wallet.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct Wallet {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `encode_message` is never used
[INFO] [stdout]    --> src/./wallet.rs:147:8
[INFO] [stdout]     |
[INFO] [stdout] 147 | pub fn encode_message(flag : Flag, sockip : String, id : String, msg : String) -> Vec<u8>{
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `decode_message` is never used
[INFO] [stdout]    --> src/./wallet.rs:159:8
[INFO] [stdout]     |
[INFO] [stdout] 159 | pub fn decode_message(msg : &[u8]) -> (Flag, String, String, String){
[INFO] [stdout]     |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `create_wallet` is never used
[INFO] [stdout]    --> src/./wallet.rs:172:8
[INFO] [stdout]     |
[INFO] [stdout] 172 | pub fn create_wallet(socket: String, miner: String) {
[INFO] [stdout]     |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/./wallet.rs:189:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl Wallet {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 189 |     pub fn new(socket: String, miner: String, id: u32) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 199 |     pub fn listen_for_user_input(&self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 234 |     pub fn handle_user_input(&self, command: UserCommand, target: String, message: String) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub fn handle_message(&self, mut stream: TcpStream) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn send_message(&self, destination: &String, message: &String, flag: Flag) -> Result<u8, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 318 |     pub fn decode_block(&self, encoded_block: String) -> block::Block {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub fn handle_blockchain(&self, mut stream: TcpStream, blocks: &mut Vec<block::Block>) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 347 |     pub fn get_blockchain_from_miner(&self) -> Vec<block::Block> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 389 |     pub fn verify_transaction(&self, transaction: Vec<u8>) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Block` is never constructed
[INFO] [stdout]   --> src/./block.rs:18:13
[INFO] [stdout]    |
[INFO] [stdout] 18 |  pub struct Block {
[INFO] [stdout]    |             ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `handle_message` and `send_message` are never used
[INFO] [stdout]    --> src/./wallet.rs:272:12
[INFO] [stdout]     |
[INFO] [stdout] 182 | impl Wallet {
[INFO] [stdout]     | ----------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 272 |     pub fn handle_message(&self, mut stream: TcpStream) -> String {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 293 |     pub fn send_message(&self, destination: &String, message: &String, flag: Flag) -> Result<u8, &'static str> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/miner.rs:380:13
[INFO] [stdout]     |
[INFO] [stdout] 380 | /             thread::scope(|s| {
[INFO] [stdout] 381 | |                 s.spawn(move |_| {
[INFO] [stdout] 382 | |                     // Connect to neighbor             
[INFO] [stdout] 383 | |                     match self.send_message(&neighbor_address, &message, Flag::Ok) {
[INFO] [stdout] ...   |
[INFO] [stdout] 387 | |                 });
[INFO] [stdout] 388 | |             });
[INFO] [stdout]     | |______________^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 380 |             let _ = thread::scope(|s| {
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/miner.rs:492:25
[INFO] [stdout]     |
[INFO] [stdout] 492 |                         self.send_message(&sender_sockip, &String::from(""), Flag::Ack);
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 492 |                         let _ = self.send_message(&sender_sockip, &String::from(""), Flag::Ack);
[INFO] [stdout]     |                         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:518:29
[INFO] [stdout]     |
[INFO] [stdout] 518 | ...                   &self.broadcast_to_network(&transaction, Flag::Transaction, sender_sockip.to_owned());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 518 |                             let _ = &self.broadcast_to_network(&transaction, Flag::Transaction, sender_sockip.to_owned());
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:532:33
[INFO] [stdout]     |
[INFO] [stdout] 532 | ...                   &self.blocks.push(block::Block::from_str(&mined_block.to_string()).unwrap());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 532 |                                 let _ = &self.blocks.push(block::Block::from_str(&mined_block.to_string()).unwrap());
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:533:33
[INFO] [stdout]     |
[INFO] [stdout] 533 | ...                   &self.broadcast_to_network(&mined_block.to_string(), Flag::Block, sender_sockip.to_owned());
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 533 |                                 let _ = &self.broadcast_to_network(&mined_block.to_string(), Flag::Block, sender_sockip.to_owned());
[INFO] [stdout]     |                                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/miner.rs:599:29
[INFO] [stdout]     |
[INFO] [stdout] 599 | ...                   self.send_message(&sender_sockip, &block.to_string(), Flag::SendBlockchain);
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 599 |                             let _ = self.send_message(&sender_sockip, &block.to_string(), Flag::SendBlockchain);
[INFO] [stdout]     |                             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:644:21
[INFO] [stdout]     |
[INFO] [stdout] 644 |                     &self.handle_client(stream);
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 644 |                     let _ = &self.handle_client(stream);
[INFO] [stdout]     |                     +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:655:17
[INFO] [stdout]     |
[INFO] [stdout] 655 |                 &self.refresh_nodes_status();
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 655 |                 let _ = &self.refresh_nodes_status();
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:745:17
[INFO] [stdout]     |
[INFO] [stdout] 745 |                 &self.health_check(&addr, &id);
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 745 |                 let _ = &self.health_check(&addr, &id);
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused borrow that must be used
[INFO] [stdout]    --> src/miner.rs:761:17
[INFO] [stdout]     |
[INFO] [stdout] 761 |                 &self.remove_from_network(*id, String::from(destination));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the borrow produces a value
[INFO] [stdout]     |
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 761 |                 let _ = &self.remove_from_network(*id, String::from(destination));
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/./wallet.rs:204:13
[INFO] [stdout]     |
[INFO] [stdout] 204 |             stdin.read_line(&mut buffer);
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 204 |             let _ = stdin.read_line(&mut buffer);
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `True` should have a snake case name
[INFO] [stdout]    --> src/./wallet.rs:261:21
[INFO] [stdout]     |
[INFO] [stdout] 261 |                     True => resp = "Transaction is verified !".to_string(),
[INFO] [stdout]     |                     ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_snake_case)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]     |
[INFO] [stdout] 261 -                     True => resp = "Transaction is verified !".to_string(),
[INFO] [stdout] 261 +                     r#true => resp = "Transaction is verified !".to_string(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable `False` should have a snake case name
[INFO] [stdout]    --> src/./wallet.rs:262:21
[INFO] [stdout]     |
[INFO] [stdout] 262 |                     False => resp = "Transaction is not correct !".to_string(),
[INFO] [stdout]     |                     ^^^^^
[INFO] [stdout]     |
[INFO] [stdout] help: rename the identifier or convert it to a snake case raw identifier
[INFO] [stdout]     |
[INFO] [stdout] 262 -                     False => resp = "Transaction is not correct !".to_string(),
[INFO] [stdout] 262 +                     r#false => resp = "Transaction is not correct !".to_string(),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: static variable `digest` should have an upper case name
[INFO] [stdout]    --> src/./wallet.rs:397:16
[INFO] [stdout]     |
[INFO] [stdout] 397 |         static digest: &'static Algorithm = &ring::digest::SHA256;
[INFO] [stdout]     |                ^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(non_upper_case_globals)]` (part of `#[warn(nonstandard_style)]`) on by default
[INFO] [stdout] help: convert the identifier to upper case
[INFO] [stdout]     |
[INFO] [stdout] 397 -         static digest: &'static Algorithm = &ring::digest::SHA256;
[INFO] [stdout] 397 +         static DIGEST: &'static Algorithm = &ring::digest::SHA256;
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 6.65s
[INFO] running `Command { std: "docker" "inspect" "b6983035b7f55a47a928cb55f61ecd4be2afdf68da9940d31adbf0886e424437", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "b6983035b7f55a47a928cb55f61ecd4be2afdf68da9940d31adbf0886e424437", kill_on_drop: false }`
[INFO] [stdout] b6983035b7f55a47a928cb55f61ecd4be2afdf68da9940d31adbf0886e424437
