[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#a7a572ce3edd6d476191fbfe92c9c1986e009b34 for pr-87190-3 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fhustxiaoc%2Flearningblockchain" "/workspace/builds/worker-1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-1/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/hustxiaoc/learningblockchain on toolchain a7a572ce3edd6d476191fbfe92c9c1986e009b34 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+a7a572ce3edd6d476191fbfe92c9c1986e009b34" "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-1/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" "+a7a572ce3edd6d476191fbfe92c9c1986e009b34" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded block-modes v0.3.3 [INFO] [stderr] Downloaded syn v1.0.41 [INFO] [stderr] Downloaded ripemd160 v0.8.0 [INFO] [stderr] Downloaded parity-crypto v0.6.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/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:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+a7a572ce3edd6d476191fbfe92c9c1986e009b34" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stdout] 4201cb491bb5fb1c031c476efb80ab8ed976cbcb82117fb82605830371171851 [INFO] running `Command { std: "docker" "start" "-a" "4201cb491bb5fb1c031c476efb80ab8ed976cbcb82117fb82605830371171851", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "4201cb491bb5fb1c031c476efb80ab8ed976cbcb82117fb82605830371171851", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "4201cb491bb5fb1c031c476efb80ab8ed976cbcb82117fb82605830371171851", kill_on_drop: false }` [INFO] [stdout] 4201cb491bb5fb1c031c476efb80ab8ed976cbcb82117fb82605830371171851 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:34b6a614d2c27851fe6cbf88fbd1137609cefab8b10d0615aaeb6fd47975d74e" "/opt/rustwide/cargo-home/bin/cargo" "+a7a572ce3edd6d476191fbfe92c9c1986e009b34" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] dc5e24f1c1aa3276eba8452919134d407cc0a15a534733b0d9f2a2f0de1ca89c [INFO] running `Command { std: "docker" "start" "-a" "dc5e24f1c1aa3276eba8452919134d407cc0a15a534733b0d9f2a2f0de1ca89c", kill_on_drop: false }` [INFO] [stderr] Copying to /tmp/fixit [INFO] [stderr] Running `cargo fix --edition` [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] note: Switching to Edition 2021 will enable the use of the version 2 feature resolver in Cargo. [INFO] [stderr] This may cause some dependencies to be built with fewer features enabled than previously. [INFO] [stderr] More information about the resolver changes may be found at https://doc.rust-lang.org/nightly/edition-guide/rust-2021/default-cargo-resolver.html [INFO] [stderr] When building the following dependencies, the given features will no longer be used: [INFO] [stderr] [INFO] [stderr] tokio v0.2.22: winapi [INFO] [stderr] [INFO] [stderr] Blocking waiting for file lock on package cache [INFO] [stderr] Compiling libc v0.2.77 [INFO] [stderr] Compiling typenum v1.12.0 [INFO] [stderr] Compiling byteorder v1.3.4 [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 serde v1.0.116 [INFO] [stderr] Checking cfg-if v0.1.10 [INFO] [stderr] Checking rustc-hex v2.1.0 [INFO] [stderr] Compiling crunchy v0.2.2 [INFO] [stderr] Compiling getrandom v0.1.15 [INFO] [stderr] Checking opaque-debug v0.2.3 [INFO] [stderr] Checking nodrop v0.1.14 [INFO] [stderr] Checking byte-tools v0.3.1 [INFO] [stderr] Compiling heapsize v0.4.2 [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 radium v0.3.0 [INFO] [stderr] Compiling tiny-keccak v2.0.2 [INFO] [stderr] Compiling cc v1.0.41 [INFO] [stderr] Checking byte-slice-cast v0.3.5 [INFO] [stderr] Checking subtle v1.0.0 [INFO] [stderr] Checking arrayvec v0.5.1 [INFO] [stderr] Checking constant_time_eq v0.1.5 [INFO] [stderr] Checking safemem v0.3.3 [INFO] [stderr] Checking slab v0.4.2 [INFO] [stderr] Checking byte-tools v0.2.0 [INFO] [stderr] Compiling memchr v2.3.3 [INFO] [stderr] Compiling ryu v1.0.5 [INFO] [stderr] Checking lazy_static v1.4.0 [INFO] [stderr] Checking zeroize v1.1.1 [INFO] [stderr] Checking arrayref v0.3.6 [INFO] [stderr] Checking fnv v1.0.7 [INFO] [stderr] Checking bytes v0.5.6 [INFO] [stderr] Checking itoa v0.4.6 [INFO] [stderr] Checking subtle v2.3.0 [INFO] [stderr] Checking hex v0.4.2 [INFO] [stderr] Checking parity-bytes v0.1.2 [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 rlp v0.4.5 [INFO] [stderr] Checking rand_core v0.3.1 [INFO] [stderr] Checking rand_jitter v0.1.4 [INFO] [stderr] Checking block-padding v0.1.5 [INFO] [stderr] Checking log v0.4.11 [INFO] [stderr] Checking bitvec v0.17.4 [INFO] [stderr] Checking rand_hc v0.1.0 [INFO] [stderr] Checking rand_xorshift v0.1.1 [INFO] [stderr] Checking rand_isaac v0.1.1 [INFO] [stderr] Checking impl-rlp v0.2.1 [INFO] [stderr] Checking tiny-keccak v1.5.0 [INFO] [stderr] Checking uint v0.8.5 [INFO] [stderr] Checking base64 v0.9.3 [INFO] [stderr] Checking uint v0.4.1 [INFO] [stderr] Compiling secp256k1-sys v0.1.2 [INFO] [stderr] Compiling quote v1.0.7 [INFO] [stderr] Checking rand v0.4.6 [INFO] [stderr] Checking iovec v0.1.4 [INFO] [stderr] Checking rand_os v0.1.3 [INFO] [stderr] Checking net2 v0.2.35 [INFO] [stderr] Checking rand v0.5.6 [INFO] [stderr] Checking num_cpus v1.13.0 [INFO] [stderr] Checking signal-hook-registry v1.2.1 [INFO] [stderr] Checking bytes v0.4.12 [INFO] [stderr] Checking rand_core v0.5.1 [INFO] [stderr] Checking mio v0.6.22 [INFO] [stderr] Checking generic-array v0.12.3 [INFO] [stderr] Checking generic-array v0.8.3 [INFO] [stderr] Checking rand_chacha v0.2.2 [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 digest v0.8.1 [INFO] [stderr] Checking block-cipher-trait v0.6.2 [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 rand v0.7.3 [INFO] [stderr] Checking hmac v0.4.2 [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 ctr v0.3.2 [INFO] [stderr] Checking sha2 v0.8.2 [INFO] [stderr] Checking hmac v0.7.1 [INFO] [stderr] Checking ripemd160 v0.8.0 [INFO] [stderr] Checking hmac-drbg v0.1.2 [INFO] [stderr] Checking mio-uds v0.6.8 [INFO] [stderr] Checking fixed-hash v0.2.5 [INFO] [stderr] Checking pbkdf2 v0.3.0 [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 scrypt v0.2.0 [INFO] [stderr] Checking secp256k1 v0.17.2 [INFO] [stderr] Checking fixed-hash v0.6.1 [INFO] [stderr] Compiling tokio-macros v0.2.5 [INFO] [stderr] Checking tokio v0.2.22 [INFO] [stderr] Checking parity-scale-codec v1.3.5 [INFO] [stderr] Checking impl-serde v0.3.1 [INFO] [stderr] Checking ethereum-types-serialize v0.2.2 [INFO] [stderr] Checking serde_json v1.0.57 [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 (/tmp/fixit) [INFO] [stderr] Migrating src/main.rs from 2018 edition to 2021 [INFO] [stderr] Fixed src/main.rs (12 fixes) [INFO] [stderr] Fixed src/peer.rs (13 fixes) [INFO] [stderr] Fixed src/message.rs (1 fix) [INFO] [stderr] Fixed src/dht.rs (15 fixes) [INFO] [stderr] Fixed src/node.rs (22 fixes) [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] = note: `#[warn(unused_imports)]` on by default [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 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] = note: `#[warn(unused_imports)]` on by default [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: 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: `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: 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: `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: 50 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 50 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 27.51s [INFO] [stderr] Running `cargo check` to verify 2021 [INFO] [stderr] Checking tokio v0.2.22 [INFO] [stderr] Checking rusteth v0.1.0 (/tmp/fixit) [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] = note: `#[warn(unused_imports)]` on by default [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 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] = note: `#[warn(unused_imports)]` on by default [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: 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: `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: 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: 50 warnings emitted [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: `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: 50 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 5.07s [INFO] running `Command { std: "docker" "inspect" "dc5e24f1c1aa3276eba8452919134d407cc0a15a534733b0d9f2a2f0de1ca89c", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "dc5e24f1c1aa3276eba8452919134d407cc0a15a534733b0d9f2a2f0de1ca89c", kill_on_drop: false }` [INFO] [stdout] dc5e24f1c1aa3276eba8452919134d407cc0a15a534733b0d9f2a2f0de1ca89c