[INFO] cloning repository https://github.com/hustxiaoc/learningblockchain [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/hustxiaoc/learningblockchain" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhustxiaoc%2Flearningblockchain", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhustxiaoc%2Flearningblockchain'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] a541eea6172e3e526cbd40469c77755aa7c3e070 [INFO] checking hustxiaoc/learningblockchain against try#8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8 for pr-82565 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhustxiaoc%2Flearningblockchain" "/workspace/builds/worker-11/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-11/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/hustxiaoc/learningblockchain on toolchain 8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/hustxiaoc/learningblockchain [INFO] finished tweaking git repo https://github.com/hustxiaoc/learningblockchain [INFO] tweaked toml for git repo https://github.com/hustxiaoc/learningblockchain written to /workspace/builds/worker-11/source/Cargo.toml [INFO] crate git repo https://github.com/hustxiaoc/learningblockchain already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded parity-crypto v0.6.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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" "rustops/crates-build-env@sha256:f2f6bcd4b43ebee4e173f653a26493129bdb64017c85f916b780ca7fbdbaa79d" "/opt/rustwide/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 5ed834b7274125fac540b83179a8d1274647fc3459473486e22dcf05e91ea9ac [INFO] running `Command { std: "docker" "start" "-a" "5ed834b7274125fac540b83179a8d1274647fc3459473486e22dcf05e91ea9ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "5ed834b7274125fac540b83179a8d1274647fc3459473486e22dcf05e91ea9ac", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "5ed834b7274125fac540b83179a8d1274647fc3459473486e22dcf05e91ea9ac", kill_on_drop: false }` [INFO] [stdout] 5ed834b7274125fac540b83179a8d1274647fc3459473486e22dcf05e91ea9ac [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-11/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:f2f6bcd4b43ebee4e173f653a26493129bdb64017c85f916b780ca7fbdbaa79d" "/opt/rustwide/cargo-home/bin/cargo" "+8e3afc79c11f48cb3acd1be5b3b7de98fe3f93a8" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 155e46f006bae6679b9cdff869ec8d18554c3abdc5ca236f2435b06f5a302a2b [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "155e46f006bae6679b9cdff869ec8d18554c3abdc5ca236f2435b06f5a302a2b", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling proc-macro2 v1.0.21 [INFO] [stderr] Compiling unicode-xid v0.2.1 [INFO] [stderr] Compiling syn v1.0.41 [INFO] [stderr] Compiling serde_derive v1.0.116 [INFO] [stderr] Checking rand_core v0.4.2 [INFO] [stderr] Compiling autocfg v0.1.7 [INFO] [stderr] Compiling getrandom v0.1.15 [INFO] [stderr] Checking byte-tools v0.3.1 [INFO] [stderr] Checking opaque-debug v0.2.3 [INFO] [stderr] Compiling heapsize v0.4.2 [INFO] [stderr] Checking ppv-lite86 v0.2.9 [INFO] [stderr] Checking fake-simd v0.1.2 [INFO] [stderr] Checking static_assertions v1.1.0 [INFO] [stderr] Compiling crunchy v0.1.6 [INFO] [stderr] Checking either v1.6.1 [INFO] [stderr] Checking subtle v1.0.0 [INFO] [stderr] Checking constant_time_eq v0.1.5 [INFO] [stderr] Checking safemem v0.3.3 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Checking byte-tools v0.2.0 [INFO] [stderr] Compiling serde_json v1.0.57 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking bytes v0.5.6 [INFO] [stderr] Checking subtle v2.3.0 [INFO] [stderr] Checking arrayref v0.3.6 [INFO] [stderr] Checking parity-bytes v0.1.2 [INFO] [stderr] Checking hex v0.4.2 [INFO] [stderr] Checking rlp v0.4.5 [INFO] [stderr] Compiling secp256k1-sys v0.1.2 [INFO] [stderr] Checking block-padding v0.1.5 [INFO] [stderr] Checking bitvec v0.17.4 [INFO] [stderr] Checking rand_core v0.3.1 [INFO] [stderr] Checking rand_jitter v0.1.4 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking net2 v0.2.35 [INFO] [stderr] Checking rand_os v0.1.3 [INFO] [stderr] Checking signal-hook-registry v1.2.1 [INFO] [stderr] Checking generic-array v0.12.3 [INFO] [stderr] Checking generic-array v0.8.3 [INFO] [stderr] Checking base64 v0.9.3 [INFO] [stderr] Checking tiny-keccak v2.0.2 [INFO] [stderr] Checking uint v0.8.5 [INFO] [stderr] Checking rand v0.5.6 [INFO] [stderr] Checking rand_hc v0.1.0 [INFO] [stderr] Checking rand_isaac v0.1.1 [INFO] [stderr] Checking rand_xorshift v0.1.1 [INFO] [stderr] Checking impl-rlp v0.2.1 [INFO] [stderr] Checking bytes v0.4.12 [INFO] [stderr] Compiling rand_chacha v0.1.1 [INFO] [stderr] Compiling rand_pcg v0.1.2 [INFO] [stderr] Compiling rand v0.6.5 [INFO] [stderr] Checking mio v0.6.22 [INFO] [stderr] Checking digest v0.6.2 [INFO] [stderr] Checking crypto-mac v0.4.0 [INFO] [stderr] Checking block-buffer v0.2.0 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking block-cipher-trait v0.6.2 [INFO] [stderr] Checking digest v0.8.1 [INFO] [stderr] Checking block-buffer v0.7.3 [INFO] [stderr] Checking crypto-mac v0.7.0 [INFO] [stderr] Checking stream-cipher v0.3.2 [INFO] [stderr] Checking hmac v0.4.2 [INFO] [stderr] Checking uint v0.4.1 [INFO] [stderr] Checking sha2 v0.6.0 [INFO] [stderr] Checking aes-soft v0.3.3 [INFO] [stderr] Checking block-modes v0.3.3 [INFO] [stderr] Checking hmac v0.7.1 [INFO] [stderr] Checking sha2 v0.8.2 [INFO] [stderr] Checking ripemd160 v0.8.0 [INFO] [stderr] Checking rand_chacha v0.2.2 [INFO] [stderr] Checking ctr v0.3.2 [INFO] [stderr] Checking hmac-drbg v0.1.2 [INFO] [stderr] Checking fixed-hash v0.2.5 [INFO] [stderr] Checking libsecp256k1 v0.2.2 [INFO] [stderr] Checking aes-ctr v0.3.0 [INFO] [stderr] Checking aes v0.3.2 [INFO] [stderr] Checking rand v0.7.3 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Checking mio-uds v0.6.8 [INFO] [stderr] Checking pbkdf2 v0.3.0 [INFO] [stderr] Checking scrypt v0.2.0 [INFO] [stderr] Checking fixed-hash v0.6.1 [INFO] [stderr] Checking secp256k1 v0.17.2 [INFO] [stderr] Compiling tokio-macros v0.2.5 [INFO] [stderr] Checking tokio v0.2.22 [INFO] [stderr] Checking serde v1.0.116 [INFO] [stderr] Checking impl-serde v0.3.1 [INFO] [stderr] Checking parity-scale-codec v1.3.5 [INFO] [stderr] Checking ethereum-types-serialize v0.2.2 [INFO] [stderr] Checking ethbloom v0.5.3 [INFO] [stderr] Checking ethbloom v0.9.2 [INFO] [stderr] Checking ethereum-types v0.4.2 [INFO] [stderr] Checking keccak-hash v0.1.2 [INFO] [stderr] Checking impl-codec v0.4.2 [INFO] [stderr] Checking primitive-types v0.7.2 [INFO] [stderr] Checking ethereum-types v0.9.2 [INFO] [stderr] Checking parity-crypto v0.6.2 [INFO] [stderr] Checking rusteth v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused imports: `Read`, `Write` [INFO] [stdout] --> src/main.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `keccak`, `write_keccak` [INFO] [stdout] --> src/main.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | use keccak_hash::{keccak, write_keccak}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message`, `RecoveryId`, `Signature` [INFO] [stdout] --> src/main.rs:6:39 [INFO] [stdout] | [INFO] [stdout] 6 | use secp256k1::{SecretKey, PublicKey, Message, RecoveryId, Signature}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RlpStream`, `Rlp` [INFO] [stdout] --> src/main.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use rlp::{Rlp, RlpStream}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TcpListener`, `TcpStream` [INFO] [stdout] --> src/main.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::net::{ TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::mpsc` [INFO] [stdout] --> src/main.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `delay_for` [INFO] [stdout] --> src/main.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::time::{delay_for, Duration}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsyncReadExt`, `AsyncWriteExt`, `self` [INFO] [stdout] --> src/main.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::io::{self, AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Generator`, `KeyPair`, `Public`, `Random`, `ecdh`, `ecies`, `recover`, `sign` [INFO] [stdout] --> src/main.rs:14:32 [INFO] [stdout] | [INFO] [stdout] 14 | use parity_crypto::publickey::{Generator, KeyPair, Public, Random, recover, Secret, sign, ecdh, ecies}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^^ ^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Read`, `Write` [INFO] [stdout] --> src/peer.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng`, `thread_rng` [INFO] [stdout] --> src/peer.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sign` [INFO] [stdout] --> src/peer.rs:6:71 [INFO] [stdout] | [INFO] [stdout] 6 | use secp256k1::{SecretKey, PublicKey, Message, RecoveryId, Signature, sign, recover}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RlpStream` [INFO] [stdout] --> src/peer.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | use rlp::{Rlp, RlpStream}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> src/peer.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TcpListener` [INFO] [stdout] --> src/peer.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::net::{ TcpListener, UdpSocket as TokioUdp}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UnboundedReceiver` [INFO] [stdout] --> src/peer.rs:11:42 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::sync::mpsc::{UnboundedSender, UnboundedReceiver, self}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LittleEndian` [INFO] [stdout] --> src/message.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use byteorder::{LittleEndian, BigEndian, WriteBytesExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/dht.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Read`, `Write` [INFO] [stdout] --> src/dht.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hex` [INFO] [stdout] --> src/dht.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use hex; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng`, `thread_rng` [INFO] [stdout] --> src/dht.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `keccak_hash::keccak` [INFO] [stdout] --> src/dht.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use keccak_hash::keccak; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message`, `PublicKey`, `RecoveryId`, `SecretKey`, `Signature`, `recover`, `sign` [INFO] [stdout] --> src/dht.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | use secp256k1::{SecretKey, PublicKey, Message, RecoveryId, Signature, sign, recover}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RlpStream`, `Rlp` [INFO] [stdout] --> src/dht.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | use rlp::{Rlp, RlpStream}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> src/dht.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SocketAddr` [INFO] [stdout] --> src/dht.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use std::net::{ SocketAddr }; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TcpListener`, `UdpSocket as TokioUdp` [INFO] [stdout] --> src/dht.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::net::{ TcpListener, UdpSocket as TokioUdp}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `UnboundedReceiver`, `UnboundedSender`, `self` [INFO] [stdout] --> src/dht.rs:13:25 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::sync::mpsc::{UnboundedSender, UnboundedReceiver, self}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `delay_for` [INFO] [stdout] --> src/dht.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | use tokio::time::{delay_for, Duration}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::Cell` [INFO] [stdout] --> src/dht.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::cell::Cell; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/dht.rs:16:22 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::message::{self, PeerInfo}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hex` [INFO] [stdout] --> src/node.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use hex; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `LittleEndian`, `WriteBytesExt` [INFO] [stdout] --> src/node.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | use byteorder::{LittleEndian, BigEndian, WriteBytesExt}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message`, `RecoveryId`, `SecretKey`, `Signature` [INFO] [stdout] --> src/node.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use secp256k1::{SecretKey, PublicKey, Message, RecoveryId, Signature}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> src/node.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TcpListener` [INFO] [stdout] --> src/node.rs:11:30 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::net::{ TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `delay_for` [INFO] [stdout] --> src/node.rs:13:19 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::time::{delay_for, Duration}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/node.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | use tokio::io::{self, split, ReadHalf, WriteHalf, AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `recover` [INFO] [stdout] --> src/node.rs:15:68 [INFO] [stdout] | [INFO] [stdout] 15 | use parity_crypto::publickey::{Generator, KeyPair, Public, Random, recover, Secret, sign, ecdh, ecies}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::future::Future` [INFO] [stdout] --> src/node.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use std::future::Future; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Context`, `Poll` [INFO] [stdout] --> src/node.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 19 | use std::task::{Context, Poll}; [INFO] [stdout] | ^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::Pin` [INFO] [stdout] --> src/node.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::pin::Pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `Buf` [INFO] [stdout] --> src/node.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | use bytes::{Buf, BufMut}; [INFO] [stdout] | ^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PeerInfo` [INFO] [stdout] --> src/node.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | use crate::message::{self, PeerInfo}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/node.rs:184:57 [INFO] [stdout] | [INFO] [stdout] 184 | fn read_header(&mut self, mut header: Bytes) -> Result<(usize), Box> { [INFO] [stdout] | ^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dht::DHT` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use dht::DHT; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `peer::Peer` [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use peer::Peer; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Read`, `Write` [INFO] [stdout] --> src/main.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `keccak`, `write_keccak` [INFO] [stdout] --> src/main.rs:5:19 [INFO] [stdout] | [INFO] [stdout] 5 | use keccak_hash::{keccak, write_keccak}; [INFO] [stdout] | ^^^^^^ ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message`, `RecoveryId`, `Signature` [INFO] [stdout] --> src/main.rs:6:39 [INFO] [stdout] | [INFO] [stdout] 6 | use secp256k1::{SecretKey, PublicKey, Message, RecoveryId, Signature}; [INFO] [stdout] | ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RlpStream`, `Rlp` [INFO] [stdout] --> src/main.rs:7:11 [INFO] [stdout] | [INFO] [stdout] 7 | use rlp::{Rlp, RlpStream}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> src/main.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TcpListener`, `TcpStream` [INFO] [stdout] --> src/main.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::net::{ TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::mpsc` [INFO] [stdout] --> src/main.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `delay_for` [INFO] [stdout] --> src/main.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::time::{delay_for, Duration}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `AsyncReadExt`, `AsyncWriteExt`, `self` [INFO] [stdout] --> src/main.rs:13:17 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::io::{self, AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Generator`, `KeyPair`, `Public`, `Random`, `ecdh`, `ecies`, `recover`, `sign` [INFO] [stdout] --> src/main.rs:14:32 [INFO] [stdout] | [INFO] [stdout] 14 | use parity_crypto::publickey::{Generator, KeyPair, Public, Random, recover, Secret, sign, ecdh, ecies}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^ ^^^^^^ ^^^^^^ ^^^^^^^ ^^^^ ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Read`, `Write` [INFO] [stdout] --> src/peer.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng`, `thread_rng` [INFO] [stdout] --> src/peer.rs:4:12 [INFO] [stdout] | [INFO] [stdout] 4 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `sign` [INFO] [stdout] --> src/peer.rs:6:71 [INFO] [stdout] | [INFO] [stdout] 6 | use secp256k1::{SecretKey, PublicKey, Message, RecoveryId, Signature, sign, recover}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `RlpStream` [INFO] [stdout] --> src/peer.rs:7:16 [INFO] [stdout] | [INFO] [stdout] 7 | use rlp::{Rlp, RlpStream}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> src/peer.rs:8:5 [INFO] [stdout] | [INFO] [stdout] 8 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TcpListener` [INFO] [stdout] --> src/peer.rs:10:19 [INFO] [stdout] | [INFO] [stdout] 10 | use tokio::net::{ TcpListener, UdpSocket as TokioUdp}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `UnboundedReceiver` [INFO] [stdout] --> src/peer.rs:11:42 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::sync::mpsc::{UnboundedSender, UnboundedReceiver, self}; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `LittleEndian` [INFO] [stdout] --> src/message.rs:1:17 [INFO] [stdout] | [INFO] [stdout] 1 | use byteorder::{LittleEndian, BigEndian, WriteBytesExt}; [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::error::Error` [INFO] [stdout] --> src/dht.rs:1:5 [INFO] [stdout] | [INFO] [stdout] 1 | use std::error::Error; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Read`, `Write` [INFO] [stdout] --> src/dht.rs:4:15 [INFO] [stdout] | [INFO] [stdout] 4 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hex` [INFO] [stdout] --> src/dht.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use hex; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Rng`, `thread_rng` [INFO] [stdout] --> src/dht.rs:6:12 [INFO] [stdout] | [INFO] [stdout] 6 | use rand::{thread_rng, Rng}; [INFO] [stdout] | ^^^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `keccak_hash::keccak` [INFO] [stdout] --> src/dht.rs:7:5 [INFO] [stdout] | [INFO] [stdout] 7 | use keccak_hash::keccak; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message`, `PublicKey`, `RecoveryId`, `SecretKey`, `Signature`, `recover`, `sign` [INFO] [stdout] --> src/dht.rs:8:17 [INFO] [stdout] | [INFO] [stdout] 8 | use secp256k1::{SecretKey, PublicKey, Message, RecoveryId, Signature, sign, recover}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ ^^^^ ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `RlpStream`, `Rlp` [INFO] [stdout] --> src/dht.rs:9:11 [INFO] [stdout] | [INFO] [stdout] 9 | use rlp::{Rlp, RlpStream}; [INFO] [stdout] | ^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> src/dht.rs:10:5 [INFO] [stdout] | [INFO] [stdout] 10 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `SocketAddr` [INFO] [stdout] --> src/dht.rs:11:17 [INFO] [stdout] | [INFO] [stdout] 11 | use std::net::{ SocketAddr }; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `TcpListener`, `UdpSocket as TokioUdp` [INFO] [stdout] --> src/dht.rs:12:19 [INFO] [stdout] | [INFO] [stdout] 12 | use tokio::net::{ TcpListener, UdpSocket as TokioUdp}; [INFO] [stdout] | ^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `UnboundedReceiver`, `UnboundedSender`, `self` [INFO] [stdout] --> src/dht.rs:13:25 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::sync::mpsc::{UnboundedSender, UnboundedReceiver, self}; [INFO] [stdout] | ^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Duration`, `delay_for` [INFO] [stdout] --> src/dht.rs:14:19 [INFO] [stdout] | [INFO] [stdout] 14 | use tokio::time::{delay_for, Duration}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::cell::Cell` [INFO] [stdout] --> src/dht.rs:15:5 [INFO] [stdout] | [INFO] [stdout] 15 | use std::cell::Cell; [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/dht.rs:16:22 [INFO] [stdout] | [INFO] [stdout] 16 | use crate::message::{self, PeerInfo}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `hex` [INFO] [stdout] --> src/node.rs:3:5 [INFO] [stdout] | [INFO] [stdout] 3 | use hex; [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BigEndian`, `LittleEndian`, `WriteBytesExt` [INFO] [stdout] --> src/node.rs:4:17 [INFO] [stdout] | [INFO] [stdout] 4 | use byteorder::{LittleEndian, BigEndian, WriteBytesExt}; [INFO] [stdout] | ^^^^^^^^^^^^ ^^^^^^^^^ ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Message`, `RecoveryId`, `SecretKey`, `Signature` [INFO] [stdout] --> src/node.rs:7:17 [INFO] [stdout] | [INFO] [stdout] 7 | use secp256k1::{SecretKey, PublicKey, Message, RecoveryId, Signature}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^ ^^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::collections::VecDeque` [INFO] [stdout] --> src/node.rs:9:5 [INFO] [stdout] | [INFO] [stdout] 9 | use std::collections::VecDeque; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TcpListener` [INFO] [stdout] --> src/node.rs:11:30 [INFO] [stdout] | [INFO] [stdout] 11 | use tokio::net::{ TcpStream, TcpListener}; [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `delay_for` [INFO] [stdout] --> src/node.rs:13:19 [INFO] [stdout] | [INFO] [stdout] 13 | use tokio::time::{delay_for, Duration}; [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `self` [INFO] [stdout] --> src/node.rs:14:17 [INFO] [stdout] | [INFO] [stdout] 14 | use tokio::io::{self, split, ReadHalf, WriteHalf, AsyncReadExt, AsyncWriteExt}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `recover` [INFO] [stdout] --> src/node.rs:15:68 [INFO] [stdout] | [INFO] [stdout] 15 | use parity_crypto::publickey::{Generator, KeyPair, Public, Random, recover, Secret, sign, ecdh, ecies}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::future::Future` [INFO] [stdout] --> src/node.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 18 | use std::future::Future; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `Context`, `Poll` [INFO] [stdout] --> src/node.rs:19:17 [INFO] [stdout] | [INFO] [stdout] 19 | use std::task::{Context, Poll}; [INFO] [stdout] | ^^^^^^^ ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::pin::Pin` [INFO] [stdout] --> src/node.rs:20:5 [INFO] [stdout] | [INFO] [stdout] 20 | use std::pin::Pin; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `BufMut`, `Buf` [INFO] [stdout] --> src/node.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | use bytes::{Buf, BufMut}; [INFO] [stdout] | ^^^ ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `PeerInfo` [INFO] [stdout] --> src/node.rs:25:28 [INFO] [stdout] | [INFO] [stdout] 25 | use crate::message::{self, PeerInfo}; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unnecessary parentheses around type [INFO] [stdout] --> src/node.rs:184:57 [INFO] [stdout] | [INFO] [stdout] 184 | fn read_header(&mut self, mut header: Bytes) -> Result<(usize), Box> { [INFO] [stdout] | ^^^^^^^ help: remove these parentheses [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_parens)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `dht::DHT` [INFO] [stdout] --> src/main.rs:23:5 [INFO] [stdout] | [INFO] [stdout] 23 | use dht::DHT; [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `peer::Peer` [INFO] [stdout] --> src/main.rs:24:5 [INFO] [stdout] | [INFO] [stdout] 24 | use peer::Peer; [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peer.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | let mut socket = TokioUdp::bind(local_udp_addr).await?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peer.rs:131:14 [INFO] [stdout] | [INFO] [stdout] 131 | let (mut tx, mut rx) = mpsc::unbounded_channel::>(); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peer.rs:121:13 [INFO] [stdout] | [INFO] [stdout] 121 | let mut socket = TokioUdp::bind(local_udp_addr).await?; [INFO] [stdout] | ----^^^^^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_mut)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/peer.rs:131:14 [INFO] [stdout] | [INFO] [stdout] 131 | let (mut tx, mut rx) = mpsc::unbounded_channel::>(); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/node.rs:498:18 [INFO] [stdout] | [INFO] [stdout] 498 | let (tx, mut rx) = mpsc::unbounded_channel::>(); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable does not need to be mutable [INFO] [stdout] --> src/node.rs:498:18 [INFO] [stdout] | [INFO] [stdout] 498 | let (tx, mut rx) = mpsc::unbounded_channel::>(); [INFO] [stdout] | ----^^ [INFO] [stdout] | | [INFO] [stdout] | help: remove this `mut` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/node.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Read` [INFO] [stdout] --> src/node.rs:2:15 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/node.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hash_bytes` [INFO] [stdout] --> src/peer.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | let hash_bytes = rlp.at(1)?.data()?; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hash_bytes` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pubkey` [INFO] [stdout] --> src/peer.rs:67:74 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn on_packet(&self, message_type: u8, rlp: Rlp, read_buf: &[u8], pubkey: PublicKey) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pubkey` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `private_key` [INFO] [stdout] --> src/peer.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | let private_key = &self.private_key; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_private_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hash_signed` [INFO] [stdout] --> src/peer.rs:160:21 [INFO] [stdout] | [INFO] [stdout] 160 | let hash_signed = keccak(&read_buf[32..]); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hash_signed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/dht.rs:31:29 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn bootstrap(&self, peer: PeerInfo) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `protocol_id` [INFO] [stdout] --> src/node.rs:200:7 [INFO] [stdout] | [INFO] [stdout] 200 | let protocol_id = header_rlp.val_at::(0)?; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `header` [INFO] [stdout] --> src/node.rs:405:13 [INFO] [stdout] | [INFO] [stdout] 405 | let header = &buf[..16]; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mac` [INFO] [stdout] --> src/node.rs:406:13 [INFO] [stdout] | [INFO] [stdout] 406 | let mac = &buf[16..32]; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_mac` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rx` [INFO] [stdout] --> src/node.rs:498:18 [INFO] [stdout] | [INFO] [stdout] 498 | let (tx, mut rx) = mpsc::unbounded_channel::>(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Write` [INFO] [stdout] --> src/node.rs:2:21 [INFO] [stdout] | [INFO] [stdout] 2 | use std::io::{Read, Write}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hash_bytes` [INFO] [stdout] --> src/peer.rs:91:17 [INFO] [stdout] | [INFO] [stdout] 91 | let hash_bytes = rlp.at(1)?.data()?; [INFO] [stdout] | ^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hash_bytes` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `pubkey` [INFO] [stdout] --> src/peer.rs:67:74 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn on_packet(&self, message_type: u8, rlp: Rlp, read_buf: &[u8], pubkey: PublicKey) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_pubkey` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `private_key` [INFO] [stdout] --> src/peer.rs:118:13 [INFO] [stdout] | [INFO] [stdout] 118 | let private_key = &self.private_key; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_private_key` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hash_signed` [INFO] [stdout] --> src/peer.rs:160:21 [INFO] [stdout] | [INFO] [stdout] 160 | let hash_signed = keccak(&read_buf[32..]); [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_hash_signed` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `peer` [INFO] [stdout] --> src/dht.rs:31:29 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn bootstrap(&self, peer: PeerInfo) { [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_peer` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `protocol_id` [INFO] [stdout] --> src/node.rs:200:7 [INFO] [stdout] | [INFO] [stdout] 200 | let protocol_id = header_rlp.val_at::(0)?; [INFO] [stdout] | ^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_protocol_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `header` [INFO] [stdout] --> src/node.rs:405:13 [INFO] [stdout] | [INFO] [stdout] 405 | let header = &buf[..16]; [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_header` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `mac` [INFO] [stdout] --> src/node.rs:406:13 [INFO] [stdout] | [INFO] [stdout] 406 | let mac = &buf[16..32]; [INFO] [stdout] | ^^^ help: if this is intentional, prefix it with an underscore: `_mac` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `rx` [INFO] [stdout] --> src/node.rs:498:18 [INFO] [stdout] | [INFO] [stdout] 498 | let (tx, mut rx) = mpsc::unbounded_channel::>(); [INFO] [stdout] | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_rx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `print_message_type` [INFO] [stdout] --> src/peer.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn print_message_type(message_type: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `NodePoint` [INFO] [stdout] --> src/peer.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | struct NodePoint { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Peer` [INFO] [stdout] --> src/peer.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct Peer { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/peer.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn new(addr: SocketAddr, private_key: SecretKey) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on_packet` [INFO] [stdout] --> src/peer.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn on_packet(&self, message_type: u8, rlp: Rlp, read_buf: &[u8], pubkey: PublicKey) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `run` [INFO] [stdout] --> src/peer.rs:116:18 [INFO] [stdout] | [INFO] [stdout] 116 | pub async fn run(&mut self) -> Result<(), Box> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `MAX_DATAGRAM_SIZE` [INFO] [stdout] --> src/peer.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | const MAX_DATAGRAM_SIZE: usize = 65_507; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `EXPIRY_TIME` [INFO] [stdout] --> src/message.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | const EXPIRY_TIME: Duration = Duration::from_secs(20); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `RlpItem` [INFO] [stdout] --> src/message.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | pub type RlpItem = Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `RlpList` [INFO] [stdout] --> src/message.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | pub type RlpList = Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/message.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn new(ip: IpAddr, port: u16) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_sock_addr` [INFO] [stdout] --> src/message.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn from_sock_addr(addr: &SocketAddr) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `encode_rlp` [INFO] [stdout] --> src/message.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn encode_rlp(&self, rlp: &mut RlpStream) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_ip_bytes` [INFO] [stdout] --> src/message.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn get_ip_bytes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `int_u16_2buttfer` [INFO] [stdout] --> src/message.rs:143:4 [INFO] [stdout] | [INFO] [stdout] 143 | fn int_u16_2buttfer(number: u16) -> [u8; 2] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `int_u32_2buttfer` [INFO] [stdout] --> src/message.rs:149:4 [INFO] [stdout] | [INFO] [stdout] 149 | fn int_u32_2buttfer(number: u32) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `encode_ping` [INFO] [stdout] --> src/message.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn encode_ping(from: &PeerInfo, to: &PeerInfo, secret: &SecretKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `encode_pong` [INFO] [stdout] --> src/message.rs:196:8 [INFO] [stdout] | [INFO] [stdout] 196 | pub fn encode_pong(from: &PeerInfo, hashbuf: &Vec, timestamp: &u64, secret: &SecretKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `encode_find_node` [INFO] [stdout] --> src/message.rs:232:8 [INFO] [stdout] | [INFO] [stdout] 232 | pub fn encode_find_node(secret: &SecretKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `nodes` [INFO] [stdout] --> src/dht.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | nodes: Vec [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/dht.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `bootstrap` [INFO] [stdout] --> src/dht.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn bootstrap(&self, peer: PeerInfo) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Header` [INFO] [stdout] --> src/node.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | Header, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Body` [INFO] [stdout] --> src/node.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | Body, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Rx` [INFO] [stdout] --> src/node.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | type Rx = UnboundedReceiver>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `secret` [INFO] [stdout] --> src/node.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | secret: Secret, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `tx` [INFO] [stdout] --> src/node.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | tx: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `id` [INFO] [stdout] --> src/node.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | id: Public, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `remote_ephemeral_public_key` [INFO] [stdout] --> src/node.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | remote_ephemeral_public_key: RefCell, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `remote_nonce` [INFO] [stdout] --> src/node.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | remote_nonce: RefCell, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `RECEIVE_PAYLOAD` [INFO] [stdout] --> src/node.rs:66:1 [INFO] [stdout] | [INFO] [stdout] 66 | const RECEIVE_PAYLOAD: Duration = Duration::from_secs(30); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PAYLOAD_SOFT_LIMIT` [INFO] [stdout] --> src/node.rs:71:1 [INFO] [stdout] | [INFO] [stdout] 71 | pub const PAYLOAD_SOFT_LIMIT: usize = (1 << 22) - 1; // 4Mb [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_DISCONNECT` [INFO] [stdout] --> src/node.rs:75:1 [INFO] [stdout] | [INFO] [stdout] 75 | const PACKET_DISCONNECT: u8 = 0x01; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_PING` [INFO] [stdout] --> src/node.rs:76:1 [INFO] [stdout] | [INFO] [stdout] 76 | const PACKET_PING: u8 = 0x02; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_PONG` [INFO] [stdout] --> src/node.rs:77:1 [INFO] [stdout] | [INFO] [stdout] 77 | const PACKET_PONG: u8 = 0x03; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_GET_PEERS` [INFO] [stdout] --> src/node.rs:78:1 [INFO] [stdout] | [INFO] [stdout] 78 | const PACKET_GET_PEERS: u8 = 0x04; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_PEERS` [INFO] [stdout] --> src/node.rs:79:1 [INFO] [stdout] | [INFO] [stdout] 79 | const PACKET_PEERS: u8 = 0x05; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_USER` [INFO] [stdout] --> src/node.rs:80:1 [INFO] [stdout] | [INFO] [stdout] 80 | const PACKET_USER: u8 = 0x10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_LAST` [INFO] [stdout] --> src/node.rs:81:1 [INFO] [stdout] | [INFO] [stdout] 81 | const PACKET_LAST: u8 = 0x7f; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `encode_frame` [INFO] [stdout] --> src/node.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 114 | fn encode_frame(message_code: u64, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `read_payload` [INFO] [stdout] --> src/node.rs:215:5 [INFO] [stdout] | [INFO] [stdout] 215 | fn read_payload(&mut self, mut payload: Bytes, payload_len: usize) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `handle_header` [INFO] [stdout] --> src/node.rs:404:8 [INFO] [stdout] | [INFO] [stdout] 404 | fn handle_header(&self, buf: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `write` [INFO] [stdout] --> src/node.rs:409:14 [INFO] [stdout] | [INFO] [stdout] 409 | async fn write(&self, rx: &mut Rx, stream: &mut WriteHalf) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `print_message_type` [INFO] [stdout] --> src/peer.rs:17:4 [INFO] [stdout] | [INFO] [stdout] 17 | fn print_message_type(message_type: u8) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `NodePoint` [INFO] [stdout] --> src/peer.rs:41:8 [INFO] [stdout] | [INFO] [stdout] 41 | struct NodePoint { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct is never constructed: `Peer` [INFO] [stdout] --> src/peer.rs:46:12 [INFO] [stdout] | [INFO] [stdout] 46 | pub struct Peer { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/peer.rs:55:12 [INFO] [stdout] | [INFO] [stdout] 55 | pub fn new(addr: SocketAddr, private_key: SecretKey) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `on_packet` [INFO] [stdout] --> src/peer.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn on_packet(&self, message_type: u8, rlp: Rlp, read_buf: &[u8], pubkey: PublicKey) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `run` [INFO] [stdout] --> src/peer.rs:116:18 [INFO] [stdout] | [INFO] [stdout] 116 | pub async fn run(&mut self) -> Result<(), Box> { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `MAX_DATAGRAM_SIZE` [INFO] [stdout] --> src/peer.rs:126:9 [INFO] [stdout] | [INFO] [stdout] 126 | const MAX_DATAGRAM_SIZE: usize = 65_507; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `EXPIRY_TIME` [INFO] [stdout] --> src/message.rs:11:1 [INFO] [stdout] | [INFO] [stdout] 11 | const EXPIRY_TIME: Duration = Duration::from_secs(20); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `RlpItem` [INFO] [stdout] --> src/message.rs:30:1 [INFO] [stdout] | [INFO] [stdout] 30 | pub type RlpItem = Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `RlpList` [INFO] [stdout] --> src/message.rs:31:1 [INFO] [stdout] | [INFO] [stdout] 31 | pub type RlpList = Vec; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/message.rs:34:12 [INFO] [stdout] | [INFO] [stdout] 34 | pub fn new(ip: IpAddr, port: u16) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `from_sock_addr` [INFO] [stdout] --> src/message.rs:42:12 [INFO] [stdout] | [INFO] [stdout] 42 | pub fn from_sock_addr(addr: &SocketAddr) -> Self { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `encode_rlp` [INFO] [stdout] --> src/message.rs:50:12 [INFO] [stdout] | [INFO] [stdout] 50 | pub fn encode_rlp(&self, rlp: &mut RlpStream) { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `get_ip_bytes` [INFO] [stdout] --> src/message.rs:91:12 [INFO] [stdout] | [INFO] [stdout] 91 | pub fn get_ip_bytes(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `int_u16_2buttfer` [INFO] [stdout] --> src/message.rs:143:4 [INFO] [stdout] | [INFO] [stdout] 143 | fn int_u16_2buttfer(number: u16) -> [u8; 2] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `int_u32_2buttfer` [INFO] [stdout] --> src/message.rs:149:4 [INFO] [stdout] | [INFO] [stdout] 149 | fn int_u32_2buttfer(number: u32) -> [u8; 4] { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `encode_ping` [INFO] [stdout] --> src/message.rs:155:8 [INFO] [stdout] | [INFO] [stdout] 155 | pub fn encode_ping(from: &PeerInfo, to: &PeerInfo, secret: &SecretKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `encode_pong` [INFO] [stdout] --> src/message.rs:196:8 [INFO] [stdout] | [INFO] [stdout] 196 | pub fn encode_pong(from: &PeerInfo, hashbuf: &Vec, timestamp: &u64, secret: &SecretKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function is never used: `encode_find_node` [INFO] [stdout] --> src/message.rs:232:8 [INFO] [stdout] | [INFO] [stdout] 232 | pub fn encode_find_node(secret: &SecretKey) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `nodes` [INFO] [stdout] --> src/dht.rs:21:5 [INFO] [stdout] | [INFO] [stdout] 21 | nodes: Vec [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `new` [INFO] [stdout] --> src/dht.rs:25:12 [INFO] [stdout] | [INFO] [stdout] 25 | pub fn new() -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `bootstrap` [INFO] [stdout] --> src/dht.rs:31:12 [INFO] [stdout] | [INFO] [stdout] 31 | pub fn bootstrap(&self, peer: PeerInfo) { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Header` [INFO] [stdout] --> src/node.rs:33:5 [INFO] [stdout] | [INFO] [stdout] 33 | Header, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variant is never constructed: `Body` [INFO] [stdout] --> src/node.rs:34:5 [INFO] [stdout] | [INFO] [stdout] 34 | Body, [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: type alias is never used: `Rx` [INFO] [stdout] --> src/node.rs:39:1 [INFO] [stdout] | [INFO] [stdout] 39 | type Rx = UnboundedReceiver>; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `secret` [INFO] [stdout] --> src/node.rs:47:5 [INFO] [stdout] | [INFO] [stdout] 47 | secret: Secret, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `tx` [INFO] [stdout] --> src/node.rs:49:5 [INFO] [stdout] | [INFO] [stdout] 49 | tx: Option, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `id` [INFO] [stdout] --> src/node.rs:50:5 [INFO] [stdout] | [INFO] [stdout] 50 | id: Public, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `remote_ephemeral_public_key` [INFO] [stdout] --> src/node.rs:51:5 [INFO] [stdout] | [INFO] [stdout] 51 | remote_ephemeral_public_key: RefCell, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field is never read: `remote_nonce` [INFO] [stdout] --> src/node.rs:52:5 [INFO] [stdout] | [INFO] [stdout] 52 | remote_nonce: RefCell, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `RECEIVE_PAYLOAD` [INFO] [stdout] --> src/node.rs:66:1 [INFO] [stdout] | [INFO] [stdout] 66 | const RECEIVE_PAYLOAD: Duration = Duration::from_secs(30); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PAYLOAD_SOFT_LIMIT` [INFO] [stdout] --> src/node.rs:71:1 [INFO] [stdout] | [INFO] [stdout] 71 | pub const PAYLOAD_SOFT_LIMIT: usize = (1 << 22) - 1; // 4Mb [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_DISCONNECT` [INFO] [stdout] --> src/node.rs:75:1 [INFO] [stdout] | [INFO] [stdout] 75 | const PACKET_DISCONNECT: u8 = 0x01; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_PING` [INFO] [stdout] --> src/node.rs:76:1 [INFO] [stdout] | [INFO] [stdout] 76 | const PACKET_PING: u8 = 0x02; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_PONG` [INFO] [stdout] --> src/node.rs:77:1 [INFO] [stdout] | [INFO] [stdout] 77 | const PACKET_PONG: u8 = 0x03; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_GET_PEERS` [INFO] [stdout] --> src/node.rs:78:1 [INFO] [stdout] | [INFO] [stdout] 78 | const PACKET_GET_PEERS: u8 = 0x04; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_PEERS` [INFO] [stdout] --> src/node.rs:79:1 [INFO] [stdout] | [INFO] [stdout] 79 | const PACKET_PEERS: u8 = 0x05; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_USER` [INFO] [stdout] --> src/node.rs:80:1 [INFO] [stdout] | [INFO] [stdout] 80 | const PACKET_USER: u8 = 0x10; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: constant is never used: `PACKET_LAST` [INFO] [stdout] --> src/node.rs:81:1 [INFO] [stdout] | [INFO] [stdout] 81 | const PACKET_LAST: u8 = 0x7f; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `encode_frame` [INFO] [stdout] --> src/node.rs:114:8 [INFO] [stdout] | [INFO] [stdout] 114 | fn encode_frame(message_code: u64, data: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `read_payload` [INFO] [stdout] --> src/node.rs:215:5 [INFO] [stdout] | [INFO] [stdout] 215 | fn read_payload(&mut self, mut payload: Bytes, payload_len: usize) -> Result<(), Box> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `handle_header` [INFO] [stdout] --> src/node.rs:404:8 [INFO] [stdout] | [INFO] [stdout] 404 | fn handle_header(&self, buf: &[u8]) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function is never used: `write` [INFO] [stdout] --> src/node.rs:409:14 [INFO] [stdout] | [INFO] [stdout] 409 | async fn write(&self, rx: &mut Rx, stream: &mut WriteHalf) { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/peer.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | tx.send(bytes); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/peer.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | tx.send(bytes); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/peer.rs:149:17 [INFO] [stdout] | [INFO] [stdout] 149 | tx.send(ping); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `cecoveryId` should have a snake case name [INFO] [stdout] --> src/message.rs:176:21 [INFO] [stdout] | [INFO] [stdout] 176 | let (signature, cecoveryId) = match sign(&Message::parse_slice(&sighash).unwrap(), secret) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `cecovery_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `cecoveryId` should have a snake case name [INFO] [stdout] --> src/message.rs:212:21 [INFO] [stdout] | [INFO] [stdout] 212 | let (signature, cecoveryId) = match sign(&Message::parse_slice(&sighash).unwrap(), secret) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `cecovery_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `cecoveryId` should have a snake case name [INFO] [stdout] --> src/message.rs:253:21 [INFO] [stdout] | [INFO] [stdout] 253 | let (signature, cecoveryId) = match sign(&Message::parse_slice(&sighash).unwrap(), secret) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `cecovery_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/peer.rs:86:13 [INFO] [stdout] | [INFO] [stdout] 86 | tx.send(bytes); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_must_use)]` on by default [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/peer.rs:99:13 [INFO] [stdout] | [INFO] [stdout] 99 | tx.send(bytes); [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused `Result` that must be used [INFO] [stdout] --> src/peer.rs:149:17 [INFO] [stdout] | [INFO] [stdout] 149 | tx.send(ping); [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: this `Result` may be an `Err` variant, which should be handled [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `cecoveryId` should have a snake case name [INFO] [stdout] --> src/message.rs:176:21 [INFO] [stdout] | [INFO] [stdout] 176 | let (signature, cecoveryId) = match sign(&Message::parse_slice(&sighash).unwrap(), secret) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `cecovery_id` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(non_snake_case)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `cecoveryId` should have a snake case name [INFO] [stdout] --> src/message.rs:212:21 [INFO] [stdout] | [INFO] [stdout] 212 | let (signature, cecoveryId) = match sign(&Message::parse_slice(&sighash).unwrap(), secret) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `cecovery_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `cecoveryId` should have a snake case name [INFO] [stdout] --> src/message.rs:253:21 [INFO] [stdout] | [INFO] [stdout] 253 | let (signature, cecoveryId) = match sign(&Message::parse_slice(&sighash).unwrap(), secret) { [INFO] [stdout] | ^^^^^^^^^^ help: convert the identifier to snake case: `cecovery_id` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 111 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 111 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 16s [INFO] running `Command { std: "docker" "inspect" "155e46f006bae6679b9cdff869ec8d18554c3abdc5ca236f2435b06f5a302a2b", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "155e46f006bae6679b9cdff869ec8d18554c3abdc5ca236f2435b06f5a302a2b", kill_on_drop: false }` [INFO] [stdout] 155e46f006bae6679b9cdff869ec8d18554c3abdc5ca236f2435b06f5a302a2b