[INFO] cloning repository https://github.com/Jason9265/mock-chain [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Jason9265/mock-chain" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJason9265%2Fmock-chain", kill_on_drop: false }` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJason9265%2Fmock-chain'... [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 2913e8c0e5feeaba00a88af0d9d2309a572c3172 [INFO] testing Jason9265/mock-chain against 1.97.0-beta.6 for beta-1.98-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJason9265%2Fmock-chain" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'... [INFO] [stderr] done. [INFO] started tweaking git repo https://github.com/Jason9265/mock-chain [INFO] finished tweaking git repo https://github.com/Jason9265/mock-chain [INFO] tweaked toml for git repo https://github.com/Jason9265/mock-chain written to /workspace/builds/worker-7-tc1/source/Cargo.toml [INFO] validating manifest of git repo https://github.com/Jason9265/mock-chain on toolchain 1.97.0-beta.6 [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }` [INFO] crate git repo https://github.com/Jason9265/mock-chain already has a lockfile, it will not be regenerated [INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.97.0-beta.6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] [stderr] Updating crates.io index [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded prost v0.12.6 [INFO] [stderr] Downloaded prost-derive v0.12.6 [INFO] [stderr] Downloaded tokio-io-timeout v1.2.1 [INFO] [stderr] Downloaded tonic v0.11.0 [INFO] [stderr] Downloaded fastrand v2.4.0 [INFO] [stderr] Downloaded multibase v0.9.2 [INFO] [stderr] Downloaded secp256k1 v0.27.0 [INFO] [stderr] Downloaded match-lookup v0.1.2 [INFO] [stderr] Downloaded base256emoji v1.0.2 [INFO] [stderr] Downloaded multimap v0.10.1 [INFO] [stderr] Downloaded data-encoding-macro v0.1.19 [INFO] [stderr] Downloaded data-encoding-macro-internal v0.1.17 [INFO] [stderr] Downloaded asynchronous-codec v0.6.2 [INFO] [stderr] Downloaded libp2p-yamux v0.44.1 [INFO] [stderr] Downloaded if-watch v3.2.2 [INFO] [stderr] Downloaded if-addrs v0.15.0 [INFO] [stderr] Downloaded base-x v0.2.11 [INFO] [stderr] Downloaded unsigned-varint v0.8.0 [INFO] [stderr] Downloaded rw-stream-sink v0.4.0 [INFO] [stderr] Downloaded unsigned-varint v0.7.2 [INFO] [stderr] Downloaded libp2p-tcp v0.40.1 [INFO] [stderr] Downloaded const-str v0.4.3 [INFO] [stderr] Downloaded multihash v0.19.3 [INFO] [stderr] Downloaded libp2p-metrics v0.13.1 [INFO] [stderr] Downloaded prometheus-client-derive-encode v0.4.2 [INFO] [stderr] Downloaded quick-protobuf-codec v0.2.0 [INFO] [stderr] Downloaded hex_fmt v0.3.0 [INFO] [stderr] Downloaded futures-ticker v0.0.3 [INFO] [stderr] Downloaded libp2p-connection-limits v0.2.1 [INFO] [stderr] Downloaded libp2p-allow-block-list v0.2.0 [INFO] [stderr] Downloaded multiaddr v0.18.2 [INFO] [stderr] Downloaded libp2p-identity v0.2.13 [INFO] [stderr] Downloaded multistream-select v0.13.0 [INFO] [stderr] Downloaded system-configuration v0.7.0 [INFO] [stderr] Downloaded netlink-sys v0.8.8 [INFO] [stderr] Downloaded netlink-proto v0.12.0 [INFO] [stderr] Downloaded netlink-packet-core v0.8.1 [INFO] [stderr] Downloaded libp2p-noise v0.43.2 [INFO] [stderr] Downloaded yamux v0.12.1 [INFO] [stderr] Downloaded prost-build v0.12.6 [INFO] [stderr] Downloaded libp2p v0.52.4 [INFO] [stderr] Downloaded libp2p-core v0.40.1 [INFO] [stderr] Downloaded prost-types v0.12.6 [INFO] [stderr] Downloaded env_logger v0.10.2 [INFO] [stderr] Downloaded rtnetlink v0.20.0 [INFO] [stderr] Downloaded prometheus-client v0.21.2 [INFO] [stderr] Downloaded quick-protobuf v0.8.1 [INFO] [stderr] Downloaded libp2p-swarm v0.43.7 [INFO] [stderr] Downloaded x25519-dalek v2.0.1 [INFO] [stderr] Downloaded libp2p-gossipsub v0.45.2 [INFO] [stderr] Downloaded netlink-packet-route v0.28.0 [INFO] [stderr] Downloaded snow v0.9.6 [INFO] [stderr] Downloaded secp256k1-sys v0.8.2 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,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" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:3d5ced03c013a94a2f102a4510f48a6e9184255caf5fd8244f58017bde7f5210" "sleep" "infinity", kill_on_drop: false }` [INFO] [stdout] b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394 [INFO] running `Command { std: "docker" "start" "b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling subtle v2.6.1 [INFO] [stderr] Compiling tracing-core v0.1.36 [INFO] [stderr] Compiling getrandom v0.2.17 [INFO] [stderr] Compiling curve25519-dalek v4.1.3 [INFO] [stderr] Compiling pin-project-internal v1.1.11 [INFO] [stderr] Compiling futures-util v0.3.32 [INFO] [stderr] Compiling serde v1.0.228 [INFO] [stderr] Compiling zeroize_derive v1.4.3 [INFO] [stderr] Compiling curve25519-dalek-derive v0.1.1 [INFO] [stderr] Compiling mio v1.2.0 [INFO] [stderr] Compiling data-encoding v2.10.0 [INFO] [stderr] Compiling signature v2.2.0 [INFO] [stderr] Compiling quick-protobuf v0.8.1 [INFO] [stderr] Compiling match-lookup v0.1.2 [INFO] [stderr] Compiling core2 v0.4.0 [INFO] [stderr] Compiling icu_normalizer v2.2.0 [INFO] [stderr] Compiling digest v0.10.7 [INFO] [stderr] Compiling rand_core v0.6.4 [INFO] [stderr] Compiling ed25519 v2.2.3 [INFO] [stderr] Compiling unsigned-varint v0.8.0 [INFO] [stderr] Compiling tracing v0.1.44 [INFO] [stderr] Compiling rand_chacha v0.3.1 [INFO] [stderr] Compiling const-str v0.4.3 [INFO] [stderr] Compiling cc v1.2.59 [INFO] [stderr] Compiling tokio v1.51.0 [INFO] [stderr] Compiling sha2 v0.10.9 [INFO] [stderr] Compiling idna_adapter v1.2.1 [INFO] [stderr] Compiling hmac v0.12.1 [INFO] [stderr] Compiling idna v1.1.0 [INFO] [stderr] Compiling multihash v0.19.3 [INFO] [stderr] Compiling bs58 v0.5.1 [INFO] [stderr] Compiling base-x v0.2.11 [INFO] [stderr] Compiling zeroize v1.8.2 [INFO] [stderr] Compiling base256emoji v1.0.2 [INFO] [stderr] Compiling hkdf v0.12.4 [INFO] [stderr] Compiling futures-timer v3.0.3 [INFO] [stderr] Compiling instant v0.1.13 [INFO] [stderr] Compiling rand v0.8.5 [INFO] [stderr] Compiling either v1.15.0 [INFO] [stderr] Compiling data-encoding-macro-internal v0.1.17 [INFO] [stderr] Compiling url v2.5.8 [INFO] [stderr] Compiling cfg_aliases v0.2.1 [INFO] [stderr] Compiling netlink-packet-core v0.8.1 [INFO] [stderr] Compiling socket2 v0.5.10 [INFO] [stderr] Compiling indexmap v1.9.3 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Compiling pin-project v1.1.11 [INFO] [stderr] Compiling netlink-sys v0.8.8 [INFO] [stderr] Compiling aho-corasick v1.1.4 [INFO] [stderr] Compiling regex-syntax v0.8.10 [INFO] [stderr] Compiling anyhow v1.0.102 [INFO] [stderr] Compiling data-encoding-macro v0.1.19 [INFO] [stderr] Compiling axum-core v0.3.4 [INFO] [stderr] Compiling multibase v0.9.2 [INFO] [stderr] Compiling netlink-packet-route v0.28.0 [INFO] [stderr] Compiling snow v0.9.6 [INFO] [stderr] Compiling prometheus-client v0.21.2 [INFO] [stderr] Compiling axum v0.6.20 [INFO] [stderr] Compiling num-traits v0.2.19 [INFO] [stderr] Compiling prometheus-client-derive-encode v0.4.2 [INFO] [stderr] Compiling itertools v0.12.1 [INFO] [stderr] Compiling nohash-hasher v0.2.0 [INFO] [stderr] Compiling dtoa v1.0.11 [INFO] [stderr] Compiling async-stream-impl v0.3.6 [INFO] [stderr] Compiling hex_fmt v0.3.0 [INFO] [stderr] Compiling ed25519-dalek v2.2.0 [INFO] [stderr] Compiling x25519-dalek v2.0.1 [INFO] [stderr] Compiling serde_urlencoded v0.7.1 [INFO] [stderr] Compiling libp2p-identity v0.2.13 [INFO] [stderr] Compiling serde_json v1.0.149 [INFO] [stderr] Compiling ring v0.17.14 [INFO] [stderr] Compiling secp256k1-sys v0.8.2 [INFO] [stderr] Compiling serde_path_to_error v0.1.20 [INFO] [stderr] Compiling multiaddr v0.18.2 [INFO] [stderr] Compiling is-terminal v0.4.17 [INFO] [stderr] Compiling humantime v2.3.0 [INFO] [stderr] Compiling chrono v0.4.44 [INFO] [stderr] Compiling async-stream v0.3.6 [INFO] [stderr] Compiling futures-executor v0.3.32 [INFO] [stderr] Compiling asynchronous-codec v0.6.2 [INFO] [stderr] Compiling prost-derive v0.12.6 [INFO] [stderr] Compiling unsigned-varint v0.7.2 [INFO] [stderr] Compiling futures v0.3.32 [INFO] [stderr] Compiling regex-automata v0.4.14 [INFO] [stderr] Compiling rw-stream-sink v0.4.0 [INFO] [stderr] Compiling multistream-select v0.13.0 [INFO] [stderr] Compiling netlink-proto v0.12.0 [INFO] [stderr] Compiling quick-protobuf-codec v0.2.0 [INFO] [stderr] Compiling yamux v0.12.1 [INFO] [stderr] Compiling futures-ticker v0.0.3 [INFO] [stderr] Compiling axum-core v0.4.5 [INFO] [stderr] Compiling libp2p-core v0.40.1 [INFO] [stderr] Compiling prost v0.12.6 [INFO] [stderr] Compiling libp2p-swarm v0.43.7 [INFO] [stderr] Compiling libp2p-yamux v0.44.1 [INFO] [stderr] Compiling libp2p-allow-block-list v0.2.0 [INFO] [stderr] Compiling libp2p-connection-limits v0.2.1 [INFO] [stderr] Compiling regex v1.12.3 [INFO] [stderr] Compiling tokio-util v0.7.18 [INFO] [stderr] Compiling tokio-io-timeout v1.2.1 [INFO] [stderr] Compiling hyper v1.9.0 [INFO] [stderr] Compiling tokio-stream v0.1.18 [INFO] [stderr] Compiling tower v0.5.3 [INFO] [stderr] Compiling rtnetlink v0.20.0 [INFO] [stderr] Compiling secp256k1 v0.27.0 [INFO] [stderr] Compiling libp2p-gossipsub v0.45.2 [INFO] [stderr] Compiling env_logger v0.10.2 [INFO] [stderr] Compiling h2 v0.3.27 [INFO] [stderr] Compiling tower v0.4.13 [INFO] [stderr] Compiling hyper-util v0.1.20 [INFO] [stderr] Compiling axum v0.7.9 [INFO] [stderr] Compiling libp2p-noise v0.43.2 [INFO] [stderr] Compiling if-watch v3.2.2 [INFO] [stderr] Compiling libp2p-tcp v0.40.1 [INFO] [stderr] Compiling libp2p v0.52.4 [INFO] [stderr] Compiling hyper v0.14.32 [INFO] [stderr] Compiling hyper-timeout v0.4.1 [INFO] [stderr] Compiling tonic v0.11.0 [INFO] [stderr] Compiling private-chain v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `sha256` [INFO] [stdout] --> src/block.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::crypto::hash::{sha256, double_sha256, random_hash}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/chain.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `double_sha256` [INFO] [stdout] --> src/chain.rs:9:27 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::crypto::hash::{double_sha256, random_hash}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DateTime` and `Utc` [INFO] [stdout] --> src/consensus.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PublicKey` and `SecretKey` [INFO] [stdout] --> src/crypto/hash.rs:4:37 [INFO] [stdout] | [INFO] [stdout] 4 | use secp256k1::{Secp256k1, Message, SecretKey, PublicKey}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::SocketAddr` [INFO] [stdout] --> src/network/p2p.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::net::SocketAddr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::mpsc` [INFO] [stdout] --> src/network/p2p.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `core::transport::OrTransport`, `gossipsub`, `noise`, `swarm::SwarmBuilder`, `tcp::Config as TcpConfig`, and `yamux` [INFO] [stdout] --> src/network/p2p.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | core::transport::OrTransport, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | tcp::Config as TcpConfig, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | noise, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 15 | yamux, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 16 | gossipsub, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 17 | swarm::SwarmBuilder, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Chain` [INFO] [stdout] --> src/main.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | use chain::{Chain, SharedChain}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Wallet` [INFO] [stdout] --> src/main.rs:24:23 [INFO] [stdout] | [INFO] [stdout] 24 | use wallet::account::{Wallet, SharedWallet, new_wallet}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VM` [INFO] [stdout] --> src/main.rs:25:20 [INFO] [stdout] | [INFO] [stdout] 25 | use contract::vm::{VM, SharedVM, new_vm}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TxInput` [INFO] [stdout] --> src/main.rs:27:43 [INFO] [stdout] | [INFO] [stdout] 27 | use block::{Block, Transaction, TxOutput, TxInput}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `network::p2p::Network` [INFO] [stdout] --> src/main.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use network::p2p::Network; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `libp2p::libp2p_swarm::SwarmBuilder`: Use the new `libp2p::SwarmBuilder` instead of `libp2p::swarm::SwarmBuilder` or create a `Swarm` directly via `Swarm::new`. [INFO] [stdout] --> src/network/p2p.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | swarm::SwarmBuilder, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `secret_bytes` is never read [INFO] [stdout] --> src/crypto/hash.rs:45:28 [INFO] [stdout] | [INFO] [stdout] 45 | let mut secret_bytes = [0u8; 32]; [INFO] [stdout] | ^^^^^^^^^ this value is reassigned later and never used [INFO] [stdout] 46 | loop { [INFO] [stdout] 47 | secret_bytes = rng.gen(); [INFO] [stdout] | ------------------------ `secret_bytes` is overwritten here before the previous value is read [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/network/p2p.rs:136:41 [INFO] [stdout] | [INFO] [stdout] 136 | pub fn broadcast_transaction(&self, tx: crate::block::Transaction) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `contract` [INFO] [stdout] --> src/contract/vm.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | let contract = self.contracts.get(contract_addr) [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contract` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `found_timestamp` is assigned to, but never used [INFO] [stdout] --> src/main.rs:762:9 [INFO] [stdout] | [INFO] [stdout] 762 | let mut found_timestamp = None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_found_timestamp` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `found_timestamp` is never read [INFO] [stdout] --> src/main.rs:774:33 [INFO] [stdout] | [INFO] [stdout] 774 | ... found_timestamp = Some(block.header.timestamp); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateAccountRequest` is never constructed [INFO] [stdout] --> src/main.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | struct CreateAccountRequest {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `vm` and `consensus` are never read [INFO] [stdout] --> src/main.rs:227:5 [INFO] [stdout] | [INFO] [stdout] 224 | struct AppState { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 227 | vm: SharedVM, [INFO] [stdout] | ^^ [INFO] [stdout] 228 | consensus: Arc>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `mine` is never used [INFO] [stdout] --> src/block.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl Block { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn mine(&mut self, difficulty: u32) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `total_input` and `total_output` are never used [INFO] [stdout] --> src/block.rs:231:12 [INFO] [stdout] | [INFO] [stdout] 147 | impl Transaction { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 231 | pub fn total_input(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 236 | pub fn total_output(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `ReorgFailed` and `DatabaseError` are never constructed [INFO] [stdout] --> src/chain.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum ChainError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 18 | ReorgFailed, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 19 | #[error("Database error")] [INFO] [stdout] 20 | DatabaseError(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChainError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `genesis_hash` is never read [INFO] [stdout] --> src/chain.rs:29:5 [INFO] [stdout] | [INFO] [stdout] 24 | pub struct Chain { [INFO] [stdout] | ----- field in this struct [INFO] [stdout] ... [INFO] [stdout] 29 | genesis_hash: [u8; 32], [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_header`, `genesis_hash`, and `get_blocks_in_range` are never used [INFO] [stdout] --> src/chain.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl Chain { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn get_header(&self, number: u64) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 127 | pub fn genesis_hash(&self) -> [u8; 32] { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn get_blocks_in_range(&self, start: u64, end: u64) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/consensus.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl Validator { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 30 | pub fn new(public_key: PublicKey) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `config` and `validators_set` are never read [INFO] [stdout] --> src/consensus.rs:65:5 [INFO] [stdout] | [INFO] [stdout] 64 | pub struct Consensus { [INFO] [stdout] | --------- fields in this struct [INFO] [stdout] 65 | config: ConsensusConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 66 | validators_set: Arc>>, [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/consensus.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl Consensus { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 84 | pub fn is_validator(&self, address: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn add_validator(&mut self, validator: Validator) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn remove_validator(&mut self, address: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn get_validators(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn propose_block(&self, proposer: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn validate_block(&self, block: &Block, proposer: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn consensus_type(&self) -> ConsensusType { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn block_time(&self) -> std::time::Duration { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Finality` is never constructed [INFO] [stdout] --> src/consensus.rs:152:12 [INFO] [stdout] | [INFO] [stdout] 152 | pub struct Finality { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `is_final` are never used [INFO] [stdout] --> src/consensus.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 159 | impl Finality { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 160 | pub fn new(block_hash: [u8; 32], block_number: u64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn is_final(&self, validator_count: usize, threshold: f64) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `CryptoError` is never used [INFO] [stdout] --> src/crypto/hash.rs:10:10 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum CryptoError { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `sign_message` is never used [INFO] [stdout] --> src/crypto/hash.rs:57:8 [INFO] [stdout] | [INFO] [stdout] 57 | pub fn sign_message(message: &[u8], secret_key: &secp256k1::SecretKey) -> (Vec, u8) { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `verify_and_recover` is never used [INFO] [stdout] --> src/crypto/hash.rs:67:8 [INFO] [stdout] | [INFO] [stdout] 67 | pub fn verify_and_recover(message: &[u8], signature: &[u8], recovery_id: u8) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: function `secret_key_to_address` is never used [INFO] [stdout] --> src/crypto/hash.rs:92:8 [INFO] [stdout] | [INFO] [stdout] 92 | pub fn secret_key_to_address(secret_key: &secp256k1::SecretKey) -> String { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `NetworkMessage` is never used [INFO] [stdout] --> src/network/p2p.rs:25:10 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum NetworkMessage { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NetworkConfig` is never constructed [INFO] [stdout] --> src/network/p2p.rs:45:12 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct NetworkConfig { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `PeerInfo` is never constructed [INFO] [stdout] --> src/network/p2p.rs:67:12 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct PeerInfo { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Network` is never constructed [INFO] [stdout] --> src/network/p2p.rs:75:12 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct Network { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple associated items are never used [INFO] [stdout] --> src/network/p2p.rs:84:12 [INFO] [stdout] | [INFO] [stdout] 83 | impl Network { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 84 | pub fn new(config: NetworkConfig, chain: SharedChain) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn peer_id(&self) -> &PeerId { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn add_peer(&self, peer_id: PeerId, address: Multiaddr) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub fn remove_peer(&self, peer_id: &PeerId) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 119 | pub fn peer_count(&self) -> usize { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn get_peers(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn broadcast_block(&self, block: Block) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn broadcast_transaction(&self, tx: crate::block::Transaction) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub async fn sync_blocks(&self, peer_id: &PeerId, start: u64, end: u64) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub async fn start(&self) -> Result<(), Box> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NetworkStats` is never constructed [INFO] [stdout] --> src/network/p2p.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 160 | pub struct NetworkStats { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_stats` is never used [INFO] [stdout] --> src/network/p2p.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 168 | impl Network { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 169 | pub fn get_stats(&self) -> NetworkStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `transfer`, `receive`, and `increment_nonce` are never used [INFO] [stdout] --> src/wallet/account.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl Account { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 21 | pub fn new(address: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn transfer(&mut self, amount: u64) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn receive(&mut self, amount: u64) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn increment_nonce(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `import_account`, `get_account_mut`, and `get_secret_key` are never used [INFO] [stdout] --> src/wallet/account.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 68 | impl Wallet { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn import_account(&mut self, secret_key_hex: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn get_account_mut(&mut self, address: &str) -> Option<&mut Account> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn get_secret_key(&self, address: &str) -> Option<&SecretKey> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Transfer` is never constructed [INFO] [stdout] --> src/wallet/account.rs:172:12 [INFO] [stdout] | [INFO] [stdout] 172 | pub struct Transfer { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `total` and `validate` are never used [INFO] [stdout] --> src/wallet/account.rs:181:12 [INFO] [stdout] | [INFO] [stdout] 180 | impl Transfer { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 181 | pub fn total(&self) -> u64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub fn validate(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `VMError` is never used [INFO] [stdout] --> src/contract/vm.rs:9:10 [INFO] [stdout] | [INFO] [stdout] 9 | pub enum VMError { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/contract/vm.rs:32:12 [INFO] [stdout] | [INFO] [stdout] 31 | impl Contract { [INFO] [stdout] | ------------- associated function in this implementation [INFO] [stdout] 32 | pub fn new(address: String, code: Vec) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `ExecutionResult` is never constructed [INFO] [stdout] --> src/contract/vm.rs:44:12 [INFO] [stdout] | [INFO] [stdout] 44 | pub struct ExecutionResult { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `LogEntry` is never constructed [INFO] [stdout] --> src/contract/vm.rs:53:12 [INFO] [stdout] | [INFO] [stdout] 53 | pub struct LogEntry { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `contracts` and `gas_limit` are never read [INFO] [stdout] --> src/contract/vm.rs:61:5 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct VM { [INFO] [stdout] | -- fields in this struct [INFO] [stdout] 61 | contracts: HashMap, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 62 | gas_limit: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `deploy`, `call`, `get_contract`, `set_storage`, `get_storage`, and `get_contract_addresses` are never used [INFO] [stdout] --> src/contract/vm.rs:74:12 [INFO] [stdout] | [INFO] [stdout] 65 | impl VM { [INFO] [stdout] | ------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 74 | pub fn deploy(&mut self, address: String, code: Vec) -> Result { [INFO] [stdout] | ^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 81 | pub fn call(&mut self, contract_addr: &str, input: &[u8]) -> Result { [INFO] [stdout] | ^^^^ [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn get_contract(&self, address: &str) -> Option<&Contract> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn set_storage(&mut self, contract_addr: &str, key: &str, value: Vec) -> Result<(), VMError> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn get_storage(&self, contract_addr: &str, key: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn get_contract_addresses(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `dev` profile [unoptimized + debuginfo] target(s) in 30.86s [INFO] running `Command { std: "docker" "inspect" "b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stderr] Compiling bitflags v2.11.0 [INFO] [stderr] Compiling rustix v1.1.4 [INFO] [stderr] Compiling getrandom v0.4.2 [INFO] [stderr] Compiling fastrand v2.4.0 [INFO] [stderr] Compiling netlink-packet-route v0.28.0 [INFO] [stderr] Compiling nix v0.30.1 [INFO] [stderr] Compiling tempfile v3.27.0 [INFO] [stderr] Compiling rtnetlink v0.20.0 [INFO] [stderr] Compiling if-watch v3.2.2 [INFO] [stderr] Compiling libp2p-tcp v0.40.1 [INFO] [stderr] Compiling libp2p v0.52.4 [INFO] [stderr] Compiling private-chain v0.1.0 (/opt/rustwide/workdir) [INFO] [stdout] warning: unused import: `sha256` [INFO] [stdout] --> src/block.rs:4:27 [INFO] [stdout] | [INFO] [stdout] 4 | use crate::crypto::hash::{sha256, double_sha256, random_hash}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::path::PathBuf` [INFO] [stdout] --> src/chain.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::path::PathBuf; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `double_sha256` [INFO] [stdout] --> src/chain.rs:9:27 [INFO] [stdout] | [INFO] [stdout] 9 | use crate::crypto::hash::{double_sha256, random_hash}; [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `DateTime` and `Utc` [INFO] [stdout] --> src/consensus.rs:7:14 [INFO] [stdout] | [INFO] [stdout] 7 | use chrono::{DateTime, Utc}; [INFO] [stdout] | ^^^^^^^^ ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `PublicKey` and `SecretKey` [INFO] [stdout] --> src/crypto/hash.rs:4:37 [INFO] [stdout] | [INFO] [stdout] 4 | use secp256k1::{Secp256k1, Message, SecretKey, PublicKey}; [INFO] [stdout] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `std::net::SocketAddr` [INFO] [stdout] --> src/network/p2p.rs:5:5 [INFO] [stdout] | [INFO] [stdout] 5 | use std::net::SocketAddr; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `tokio::sync::mpsc` [INFO] [stdout] --> src/network/p2p.rs:6:5 [INFO] [stdout] | [INFO] [stdout] 6 | use tokio::sync::mpsc; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused imports: `core::transport::OrTransport`, `gossipsub`, `noise`, `swarm::SwarmBuilder`, `tcp::Config as TcpConfig`, and `yamux` [INFO] [stdout] --> src/network/p2p.rs:12:5 [INFO] [stdout] | [INFO] [stdout] 12 | core::transport::OrTransport, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 13 | tcp::Config as TcpConfig, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] 14 | noise, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 15 | yamux, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 16 | gossipsub, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 17 | swarm::SwarmBuilder, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Chain` [INFO] [stdout] --> src/main.rs:23:13 [INFO] [stdout] | [INFO] [stdout] 23 | use chain::{Chain, SharedChain}; [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `Wallet` [INFO] [stdout] --> src/main.rs:24:23 [INFO] [stdout] | [INFO] [stdout] 24 | use wallet::account::{Wallet, SharedWallet, new_wallet}; [INFO] [stdout] | ^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `VM` [INFO] [stdout] --> src/main.rs:25:20 [INFO] [stdout] | [INFO] [stdout] 25 | use contract::vm::{VM, SharedVM, new_vm}; [INFO] [stdout] | ^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `TxInput` [INFO] [stdout] --> src/main.rs:27:43 [INFO] [stdout] | [INFO] [stdout] 27 | use block::{Block, Transaction, TxOutput, TxInput}; [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused import: `network::p2p::Network` [INFO] [stdout] --> src/main.rs:28:5 [INFO] [stdout] | [INFO] [stdout] 28 | use network::p2p::Network; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated struct `libp2p::libp2p_swarm::SwarmBuilder`: Use the new `libp2p::SwarmBuilder` instead of `libp2p::swarm::SwarmBuilder` or create a `Swarm` directly via `Swarm::new`. [INFO] [stdout] --> src/network/p2p.rs:17:12 [INFO] [stdout] | [INFO] [stdout] 17 | swarm::SwarmBuilder, [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `hash` [INFO] [stdout] --> src/chain.rs:171:13 [INFO] [stdout] | [INFO] [stdout] 171 | let hash = chain.add_block(block).unwrap(); [INFO] [stdout] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hash` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `secret_bytes` is never read [INFO] [stdout] --> src/crypto/hash.rs:45:28 [INFO] [stdout] | [INFO] [stdout] 45 | let mut secret_bytes = [0u8; 32]; [INFO] [stdout] | ^^^^^^^^^ this value is reassigned later and never used [INFO] [stdout] 46 | loop { [INFO] [stdout] 47 | secret_bytes = rng.gen(); [INFO] [stdout] | ------------------------ `secret_bytes` is overwritten here before the previous value is read [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `tx` [INFO] [stdout] --> src/network/p2p.rs:136:41 [INFO] [stdout] | [INFO] [stdout] 136 | pub fn broadcast_transaction(&self, tx: crate::block::Transaction) { [INFO] [stdout] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: unused variable: `contract` [INFO] [stdout] --> src/contract/vm.rs:82:13 [INFO] [stdout] | [INFO] [stdout] 82 | let contract = self.contracts.get(contract_addr) [INFO] [stdout] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contract` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variable `found_timestamp` is assigned to, but never used [INFO] [stdout] --> src/main.rs:762:9 [INFO] [stdout] | [INFO] [stdout] 762 | let mut found_timestamp = None; [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: consider using `_found_timestamp` instead [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: value assigned to `found_timestamp` is never read [INFO] [stdout] --> src/main.rs:774:33 [INFO] [stdout] | [INFO] [stdout] 774 | ... found_timestamp = Some(block.header.timestamp); [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = help: maybe it is overwritten before being read? [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `CreateAccountRequest` is never constructed [INFO] [stdout] --> src/main.rs:58:8 [INFO] [stdout] | [INFO] [stdout] 58 | struct CreateAccountRequest {} [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `vm` and `consensus` are never read [INFO] [stdout] --> src/main.rs:227:5 [INFO] [stdout] | [INFO] [stdout] 224 | struct AppState { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] ... [INFO] [stdout] 227 | vm: SharedVM, [INFO] [stdout] | ^^ [INFO] [stdout] 228 | consensus: Arc>, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `mine` is never used [INFO] [stdout] --> src/block.rs:83:12 [INFO] [stdout] | [INFO] [stdout] 26 | impl Block { [INFO] [stdout] | ---------- method in this implementation [INFO] [stdout] ... [INFO] [stdout] 83 | pub fn mine(&mut self, difficulty: u32) { [INFO] [stdout] | ^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `total_input` and `total_output` are never used [INFO] [stdout] --> src/block.rs:231:12 [INFO] [stdout] | [INFO] [stdout] 147 | impl Transaction { [INFO] [stdout] | ---------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 231 | pub fn total_input(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 236 | pub fn total_output(&self) -> u64 { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `ReorgFailed` and `DatabaseError` are never constructed [INFO] [stdout] --> src/chain.rs:18:5 [INFO] [stdout] | [INFO] [stdout] 12 | pub enum ChainError { [INFO] [stdout] | ---------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 18 | ReorgFailed, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 19 | #[error("Database error")] [INFO] [stdout] 20 | DatabaseError(String), [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `ChainError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_header` and `get_blocks_in_range` are never used [INFO] [stdout] --> src/chain.rs:112:12 [INFO] [stdout] | [INFO] [stdout] 32 | impl Chain { [INFO] [stdout] | ---------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 112 | pub fn get_header(&self, number: u64) -> Option { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 132 | pub fn get_blocks_in_range(&self, start: u64, end: u64) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated function `new` is never used [INFO] [stdout] --> src/consensus.rs:30:12 [INFO] [stdout] | [INFO] [stdout] 29 | impl Validator { [INFO] [stdout] | -------------- associated function in this implementation [INFO] [stdout] 30 | pub fn new(public_key: PublicKey) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `add_validator`, `remove_validator`, `get_validators`, `propose_block`, `consensus_type`, and `block_time` are never used [INFO] [stdout] --> src/consensus.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 69 | impl Consensus { [INFO] [stdout] | -------------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn add_validator(&mut self, validator: Validator) { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 97 | pub fn remove_validator(&mut self, address: &str) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 105 | pub fn get_validators(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 110 | pub fn propose_block(&self, proposer: &str) -> bool { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 140 | pub fn consensus_type(&self) -> ConsensusType { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 145 | pub fn block_time(&self) -> std::time::Duration { [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Finality` is never constructed [INFO] [stdout] --> src/consensus.rs:152:12 [INFO] [stdout] | [INFO] [stdout] 152 | pub struct Finality { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new` and `is_final` are never used [INFO] [stdout] --> src/consensus.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 159 | impl Finality { [INFO] [stdout] | ------------- associated items in this implementation [INFO] [stdout] 160 | pub fn new(block_hash: [u8; 32], block_number: u64) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 170 | pub fn is_final(&self, validator_count: usize, threshold: f64) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `InvalidPublicKey` and `HashError` are never constructed [INFO] [stdout] --> src/crypto/hash.rs:14:5 [INFO] [stdout] | [INFO] [stdout] 10 | pub enum CryptoError { [INFO] [stdout] | ----------- variants in this enum [INFO] [stdout] ... [INFO] [stdout] 14 | InvalidPublicKey, [INFO] [stdout] | ^^^^^^^^^^^^^^^^ [INFO] [stdout] 15 | #[error("Hash computation error")] [INFO] [stdout] 16 | HashError, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `CryptoError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: enum `NetworkMessage` is never used [INFO] [stdout] --> src/network/p2p.rs:25:10 [INFO] [stdout] | [INFO] [stdout] 25 | pub enum NetworkMessage { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `listen_addr`, `port`, `boot_nodes`, `max_peers`, and `enable_mdns` are never read [INFO] [stdout] --> src/network/p2p.rs:46:9 [INFO] [stdout] | [INFO] [stdout] 45 | pub struct NetworkConfig { [INFO] [stdout] | ------------- fields in this struct [INFO] [stdout] 46 | pub listen_addr: String, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] 47 | pub port: u16, [INFO] [stdout] | ^^^^ [INFO] [stdout] 48 | pub boot_nodes: Vec, [INFO] [stdout] | ^^^^^^^^^^ [INFO] [stdout] 49 | pub max_peers: usize, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 50 | pub enable_mdns: bool, [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `NetworkConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `peer_id`, `address`, `last_seen`, and `blocks_synced` are never read [INFO] [stdout] --> src/network/p2p.rs:68:9 [INFO] [stdout] | [INFO] [stdout] 67 | pub struct PeerInfo { [INFO] [stdout] | -------- fields in this struct [INFO] [stdout] 68 | pub peer_id: PeerId, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 69 | pub address: Multiaddr, [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] 70 | pub last_seen: std::time::Instant, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] 71 | pub blocks_synced: u64, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `PeerInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: fields `config`, `chain`, and `local_peer_id` are never read [INFO] [stdout] --> src/network/p2p.rs:76:5 [INFO] [stdout] | [INFO] [stdout] 75 | pub struct Network { [INFO] [stdout] | ------- fields in this struct [INFO] [stdout] 76 | config: NetworkConfig, [INFO] [stdout] | ^^^^^^ [INFO] [stdout] 77 | peers: Arc>>, [INFO] [stdout] 78 | chain: SharedChain, [INFO] [stdout] | ^^^^^ [INFO] [stdout] 79 | local_peer_id: PeerId, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: multiple methods are never used [INFO] [stdout] --> src/network/p2p.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 83 | impl Network { [INFO] [stdout] | ------------ methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn peer_id(&self) -> &PeerId { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn add_peer(&self, peer_id: PeerId, address: Multiaddr) { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 114 | pub fn remove_peer(&self, peer_id: &PeerId) { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 124 | pub fn get_peers(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 129 | pub fn broadcast_block(&self, block: Block) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 136 | pub fn broadcast_transaction(&self, tx: crate::block::Transaction) { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 142 | pub async fn sync_blocks(&self, peer_id: &PeerId, start: u64, end: u64) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 150 | pub async fn start(&self) -> Result<(), Box> { [INFO] [stdout] | ^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `NetworkStats` is never constructed [INFO] [stdout] --> src/network/p2p.rs:160:12 [INFO] [stdout] | [INFO] [stdout] 160 | pub struct NetworkStats { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: method `get_stats` is never used [INFO] [stdout] --> src/network/p2p.rs:169:12 [INFO] [stdout] | [INFO] [stdout] 168 | impl Network { [INFO] [stdout] | ------------ method in this implementation [INFO] [stdout] 169 | pub fn get_stats(&self) -> NetworkStats { [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: associated items `new`, `transfer`, `receive`, and `increment_nonce` are never used [INFO] [stdout] --> src/wallet/account.rs:21:12 [INFO] [stdout] | [INFO] [stdout] 20 | impl Account { [INFO] [stdout] | ------------ associated items in this implementation [INFO] [stdout] 21 | pub fn new(address: String) -> Self { [INFO] [stdout] | ^^^ [INFO] [stdout] ... [INFO] [stdout] 42 | pub fn transfer(&mut self, amount: u64) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 52 | pub fn receive(&mut self, amount: u64) { [INFO] [stdout] | ^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 57 | pub fn increment_nonce(&mut self) { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `import_account`, `get_account_mut`, and `get_secret_key` are never used [INFO] [stdout] --> src/wallet/account.rs:89:12 [INFO] [stdout] | [INFO] [stdout] 68 | impl Wallet { [INFO] [stdout] | ----------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 89 | pub fn import_account(&mut self, secret_key_hex: &str) -> Result { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn get_account_mut(&mut self, address: &str) -> Option<&mut Account> { [INFO] [stdout] | ^^^^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 116 | pub fn get_secret_key(&self, address: &str) -> Option<&SecretKey> { [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: struct `Transfer` is never constructed [INFO] [stdout] --> src/wallet/account.rs:172:12 [INFO] [stdout] | [INFO] [stdout] 172 | pub struct Transfer { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `total` and `validate` are never used [INFO] [stdout] --> src/wallet/account.rs:181:12 [INFO] [stdout] | [INFO] [stdout] 180 | impl Transfer { [INFO] [stdout] | ------------- methods in this implementation [INFO] [stdout] 181 | pub fn total(&self) -> u64 { [INFO] [stdout] | ^^^^^ [INFO] [stdout] ... [INFO] [stdout] 185 | pub fn validate(&self) -> bool { [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: variants `ExecutionError`, `OutOfGas`, `StackOverflow`, and `CallStackOverflow` are never constructed [INFO] [stdout] --> src/contract/vm.rs:11:5 [INFO] [stdout] | [INFO] [stdout] 9 | pub enum VMError { [INFO] [stdout] | ------- variants in this enum [INFO] [stdout] 10 | #[error("Execution error: {0}")] [INFO] [stdout] 11 | ExecutionError(String), [INFO] [stdout] | ^^^^^^^^^^^^^^ [INFO] [stdout] 12 | #[error("Out of gas")] [INFO] [stdout] 13 | OutOfGas, [INFO] [stdout] | ^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 17 | StackOverflow, [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] 18 | #[error("Call stack overflow")] [INFO] [stdout] 19 | CallStackOverflow, [INFO] [stdout] | ^^^^^^^^^^^^^^^^^ [INFO] [stdout] | [INFO] [stdout] = note: `VMError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: field `gas_limit` is never read [INFO] [stdout] --> src/contract/vm.rs:62:5 [INFO] [stdout] | [INFO] [stdout] 60 | pub struct VM { [INFO] [stdout] | -- field in this struct [INFO] [stdout] 61 | contracts: HashMap, [INFO] [stdout] 62 | gas_limit: u64, [INFO] [stdout] | ^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: methods `get_contract`, `set_storage`, `get_storage`, and `get_contract_addresses` are never used [INFO] [stdout] --> src/contract/vm.rs:98:12 [INFO] [stdout] | [INFO] [stdout] 65 | impl VM { [INFO] [stdout] | ------- methods in this implementation [INFO] [stdout] ... [INFO] [stdout] 98 | pub fn get_contract(&self, address: &str) -> Option<&Contract> { [INFO] [stdout] | ^^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 103 | pub fn set_storage(&mut self, contract_addr: &str, key: &str, value: Vec) -> Result<(), VMError> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 111 | pub fn get_storage(&self, contract_addr: &str, key: &str) -> Option> { [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] ... [INFO] [stdout] 117 | pub fn get_contract_addresses(&self) -> Vec { [INFO] [stdout] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 5.95s [INFO] running `Command { std: "docker" "inspect" "b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394", kill_on_drop: false }` [INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-w" "/opt/rustwide/workdir" "--user" "0:0" "b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394" "/opt/rustwide/cargo-home/bin/cargo" "+1.97.0-beta.6" "test" "--frozen", kill_on_drop: false }` [INFO] [stderr] warning: unused import: `sha256` [INFO] [stderr] --> src/block.rs:4:27 [INFO] [stderr] | [INFO] [stderr] 4 | use crate::crypto::hash::{sha256, double_sha256, random_hash}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::path::PathBuf` [INFO] [stderr] --> src/chain.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::path::PathBuf; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `double_sha256` [INFO] [stderr] --> src/chain.rs:9:27 [INFO] [stderr] | [INFO] [stderr] 9 | use crate::crypto::hash::{double_sha256, random_hash}; [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `DateTime` and `Utc` [INFO] [stderr] --> src/consensus.rs:7:14 [INFO] [stderr] | [INFO] [stderr] 7 | use chrono::{DateTime, Utc}; [INFO] [stderr] | ^^^^^^^^ ^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `PublicKey` and `SecretKey` [INFO] [stderr] --> src/crypto/hash.rs:4:37 [INFO] [stderr] | [INFO] [stderr] 4 | use secp256k1::{Secp256k1, Message, SecretKey, PublicKey}; [INFO] [stderr] | ^^^^^^^^^ ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `std::net::SocketAddr` [INFO] [stderr] --> src/network/p2p.rs:5:5 [INFO] [stderr] | [INFO] [stderr] 5 | use std::net::SocketAddr; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `tokio::sync::mpsc` [INFO] [stderr] --> src/network/p2p.rs:6:5 [INFO] [stderr] | [INFO] [stderr] 6 | use tokio::sync::mpsc; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused imports: `core::transport::OrTransport`, `gossipsub`, `noise`, `swarm::SwarmBuilder`, `tcp::Config as TcpConfig`, and `yamux` [INFO] [stderr] --> src/network/p2p.rs:12:5 [INFO] [stderr] | [INFO] [stderr] 12 | core::transport::OrTransport, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 13 | tcp::Config as TcpConfig, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] 14 | noise, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 15 | yamux, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 16 | gossipsub, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 17 | swarm::SwarmBuilder, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Chain` [INFO] [stderr] --> src/main.rs:23:13 [INFO] [stderr] | [INFO] [stderr] 23 | use chain::{Chain, SharedChain}; [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `Wallet` [INFO] [stderr] --> src/main.rs:24:23 [INFO] [stderr] | [INFO] [stderr] 24 | use wallet::account::{Wallet, SharedWallet, new_wallet}; [INFO] [stderr] | ^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `VM` [INFO] [stderr] --> src/main.rs:25:20 [INFO] [stderr] | [INFO] [stderr] 25 | use contract::vm::{VM, SharedVM, new_vm}; [INFO] [stderr] | ^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `TxInput` [INFO] [stderr] --> src/main.rs:27:43 [INFO] [stderr] | [INFO] [stderr] 27 | use block::{Block, Transaction, TxOutput, TxInput}; [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: unused import: `network::p2p::Network` [INFO] [stderr] --> src/main.rs:28:5 [INFO] [stderr] | [INFO] [stderr] 28 | use network::p2p::Network; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated struct `libp2p::libp2p_swarm::SwarmBuilder`: Use the new `libp2p::SwarmBuilder` instead of `libp2p::swarm::SwarmBuilder` or create a `Swarm` directly via `Swarm::new`. [INFO] [stderr] --> src/network/p2p.rs:17:12 [INFO] [stderr] | [INFO] [stderr] 17 | swarm::SwarmBuilder, [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `hash` [INFO] [stderr] --> src/chain.rs:171:13 [INFO] [stderr] | [INFO] [stderr] 171 | let hash = chain.add_block(block).unwrap(); [INFO] [stderr] | ^^^^ help: if this is intentional, prefix it with an underscore: `_hash` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: value assigned to `secret_bytes` is never read [INFO] [stderr] --> src/crypto/hash.rs:45:28 [INFO] [stderr] | [INFO] [stderr] 45 | let mut secret_bytes = [0u8; 32]; [INFO] [stderr] | ^^^^^^^^^ this value is reassigned later and never used [INFO] [stderr] 46 | loop { [INFO] [stderr] 47 | secret_bytes = rng.gen(); [INFO] [stderr] | ------------------------ `secret_bytes` is overwritten here before the previous value is read [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(unused_assignments)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: unused variable: `tx` [INFO] [stderr] --> src/network/p2p.rs:136:41 [INFO] [stderr] | [INFO] [stderr] 136 | pub fn broadcast_transaction(&self, tx: crate::block::Transaction) { [INFO] [stderr] | ^^ help: if this is intentional, prefix it with an underscore: `_tx` [INFO] [stderr] [INFO] [stderr] warning: unused variable: `contract` [INFO] [stderr] --> src/contract/vm.rs:82:13 [INFO] [stderr] | [INFO] [stderr] 82 | let contract = self.contracts.get(contract_addr) [INFO] [stderr] | ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_contract` [INFO] [stderr] [INFO] [stderr] warning: variable `found_timestamp` is assigned to, but never used [INFO] [stderr] --> src/main.rs:762:9 [INFO] [stderr] | [INFO] [stderr] 762 | let mut found_timestamp = None; [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: consider using `_found_timestamp` instead [INFO] [stderr] [INFO] [stderr] warning: value assigned to `found_timestamp` is never read [INFO] [stderr] --> src/main.rs:774:33 [INFO] [stderr] | [INFO] [stderr] 774 | ... found_timestamp = Some(block.header.timestamp); [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = help: maybe it is overwritten before being read? [INFO] [stderr] [INFO] [stderr] warning: struct `CreateAccountRequest` is never constructed [INFO] [stderr] --> src/main.rs:58:8 [INFO] [stderr] | [INFO] [stderr] 58 | struct CreateAccountRequest {} [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default [INFO] [stderr] [INFO] [stderr] warning: fields `vm` and `consensus` are never read [INFO] [stderr] --> src/main.rs:227:5 [INFO] [stderr] | [INFO] [stderr] 224 | struct AppState { [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] ... [INFO] [stderr] 227 | vm: SharedVM, [INFO] [stderr] | ^^ [INFO] [stderr] 228 | consensus: Arc>, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `AppState` has a derived impl for the trait `Clone`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: method `mine` is never used [INFO] [stderr] --> src/block.rs:83:12 [INFO] [stderr] | [INFO] [stderr] 26 | impl Block { [INFO] [stderr] | ---------- method in this implementation [INFO] [stderr] ... [INFO] [stderr] 83 | pub fn mine(&mut self, difficulty: u32) { [INFO] [stderr] | ^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `total_input` and `total_output` are never used [INFO] [stderr] --> src/block.rs:231:12 [INFO] [stderr] | [INFO] [stderr] 147 | impl Transaction { [INFO] [stderr] | ---------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 231 | pub fn total_input(&self) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 236 | pub fn total_output(&self) -> u64 { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `ReorgFailed` and `DatabaseError` are never constructed [INFO] [stderr] --> src/chain.rs:18:5 [INFO] [stderr] | [INFO] [stderr] 12 | pub enum ChainError { [INFO] [stderr] | ---------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 18 | ReorgFailed, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 19 | #[error("Database error")] [INFO] [stderr] 20 | DatabaseError(String), [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `ChainError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: methods `get_header` and `get_blocks_in_range` are never used [INFO] [stderr] --> src/chain.rs:112:12 [INFO] [stderr] | [INFO] [stderr] 32 | impl Chain { [INFO] [stderr] | ---------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 112 | pub fn get_header(&self, number: u64) -> Option { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 132 | pub fn get_blocks_in_range(&self, start: u64, end: u64) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated function `new` is never used [INFO] [stderr] --> src/consensus.rs:30:12 [INFO] [stderr] | [INFO] [stderr] 29 | impl Validator { [INFO] [stderr] | -------------- associated function in this implementation [INFO] [stderr] 30 | pub fn new(public_key: PublicKey) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `add_validator`, `remove_validator`, `get_validators`, `propose_block`, `consensus_type`, and `block_time` are never used [INFO] [stderr] --> src/consensus.rs:89:12 [INFO] [stderr] | [INFO] [stderr] 69 | impl Consensus { [INFO] [stderr] | -------------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 89 | pub fn add_validator(&mut self, validator: Validator) { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 97 | pub fn remove_validator(&mut self, address: &str) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 105 | pub fn get_validators(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 110 | pub fn propose_block(&self, proposer: &str) -> bool { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 140 | pub fn consensus_type(&self) -> ConsensusType { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 145 | pub fn block_time(&self) -> std::time::Duration { [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Finality` is never constructed [INFO] [stderr] --> src/consensus.rs:152:12 [INFO] [stderr] | [INFO] [stderr] 152 | pub struct Finality { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new` and `is_final` are never used [INFO] [stderr] --> src/consensus.rs:160:12 [INFO] [stderr] | [INFO] [stderr] 159 | impl Finality { [INFO] [stderr] | ------------- associated items in this implementation [INFO] [stderr] 160 | pub fn new(block_hash: [u8; 32], block_number: u64) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 170 | pub fn is_final(&self, validator_count: usize, threshold: f64) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `InvalidPublicKey` and `HashError` are never constructed [INFO] [stderr] --> src/crypto/hash.rs:14:5 [INFO] [stderr] | [INFO] [stderr] 10 | pub enum CryptoError { [INFO] [stderr] | ----------- variants in this enum [INFO] [stderr] ... [INFO] [stderr] 14 | InvalidPublicKey, [INFO] [stderr] | ^^^^^^^^^^^^^^^^ [INFO] [stderr] 15 | #[error("Hash computation error")] [INFO] [stderr] 16 | HashError, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `CryptoError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: enum `NetworkMessage` is never used [INFO] [stderr] --> src/network/p2p.rs:25:10 [INFO] [stderr] | [INFO] [stderr] 25 | pub enum NetworkMessage { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: fields `listen_addr`, `port`, `boot_nodes`, `max_peers`, and `enable_mdns` are never read [INFO] [stderr] --> src/network/p2p.rs:46:9 [INFO] [stderr] | [INFO] [stderr] 45 | pub struct NetworkConfig { [INFO] [stderr] | ------------- fields in this struct [INFO] [stderr] 46 | pub listen_addr: String, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] 47 | pub port: u16, [INFO] [stderr] | ^^^^ [INFO] [stderr] 48 | pub boot_nodes: Vec, [INFO] [stderr] | ^^^^^^^^^^ [INFO] [stderr] 49 | pub max_peers: usize, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 50 | pub enable_mdns: bool, [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `NetworkConfig` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `peer_id`, `address`, `last_seen`, and `blocks_synced` are never read [INFO] [stderr] --> src/network/p2p.rs:68:9 [INFO] [stderr] | [INFO] [stderr] 67 | pub struct PeerInfo { [INFO] [stderr] | -------- fields in this struct [INFO] [stderr] 68 | pub peer_id: PeerId, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 69 | pub address: Multiaddr, [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] 70 | pub last_seen: std::time::Instant, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] 71 | pub blocks_synced: u64, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `PeerInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: fields `config`, `chain`, and `local_peer_id` are never read [INFO] [stderr] --> src/network/p2p.rs:76:5 [INFO] [stderr] | [INFO] [stderr] 75 | pub struct Network { [INFO] [stderr] | ------- fields in this struct [INFO] [stderr] 76 | config: NetworkConfig, [INFO] [stderr] | ^^^^^^ [INFO] [stderr] 77 | peers: Arc>>, [INFO] [stderr] 78 | chain: SharedChain, [INFO] [stderr] | ^^^^^ [INFO] [stderr] 79 | local_peer_id: PeerId, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: multiple methods are never used [INFO] [stderr] --> src/network/p2p.rs:98:12 [INFO] [stderr] | [INFO] [stderr] 83 | impl Network { [INFO] [stderr] | ------------ methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 98 | pub fn peer_id(&self) -> &PeerId { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 103 | pub fn add_peer(&self, peer_id: PeerId, address: Multiaddr) { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 114 | pub fn remove_peer(&self, peer_id: &PeerId) { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 124 | pub fn get_peers(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 129 | pub fn broadcast_block(&self, block: Block) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 136 | pub fn broadcast_transaction(&self, tx: crate::block::Transaction) { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 142 | pub async fn sync_blocks(&self, peer_id: &PeerId, start: u64, end: u64) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 150 | pub async fn start(&self) -> Result<(), Box> { [INFO] [stderr] | ^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `NetworkStats` is never constructed [INFO] [stderr] --> src/network/p2p.rs:160:12 [INFO] [stderr] | [INFO] [stderr] 160 | pub struct NetworkStats { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: method `get_stats` is never used [INFO] [stderr] --> src/network/p2p.rs:169:12 [INFO] [stderr] | [INFO] [stderr] 168 | impl Network { [INFO] [stderr] | ------------ method in this implementation [INFO] [stderr] 169 | pub fn get_stats(&self) -> NetworkStats { [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: associated items `new`, `transfer`, `receive`, and `increment_nonce` are never used [INFO] [stderr] --> src/wallet/account.rs:21:12 [INFO] [stderr] | [INFO] [stderr] 20 | impl Account { [INFO] [stderr] | ------------ associated items in this implementation [INFO] [stderr] 21 | pub fn new(address: String) -> Self { [INFO] [stderr] | ^^^ [INFO] [stderr] ... [INFO] [stderr] 42 | pub fn transfer(&mut self, amount: u64) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 52 | pub fn receive(&mut self, amount: u64) { [INFO] [stderr] | ^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 57 | pub fn increment_nonce(&mut self) { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `import_account`, `get_account_mut`, and `get_secret_key` are never used [INFO] [stderr] --> src/wallet/account.rs:89:12 [INFO] [stderr] | [INFO] [stderr] 68 | impl Wallet { [INFO] [stderr] | ----------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 89 | pub fn import_account(&mut self, secret_key_hex: &str) -> Result { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 111 | pub fn get_account_mut(&mut self, address: &str) -> Option<&mut Account> { [INFO] [stderr] | ^^^^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 116 | pub fn get_secret_key(&self, address: &str) -> Option<&SecretKey> { [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: struct `Transfer` is never constructed [INFO] [stderr] --> src/wallet/account.rs:172:12 [INFO] [stderr] | [INFO] [stderr] 172 | pub struct Transfer { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `total` and `validate` are never used [INFO] [stderr] --> src/wallet/account.rs:181:12 [INFO] [stderr] | [INFO] [stderr] 180 | impl Transfer { [INFO] [stderr] | ------------- methods in this implementation [INFO] [stderr] 181 | pub fn total(&self) -> u64 { [INFO] [stderr] | ^^^^^ [INFO] [stderr] ... [INFO] [stderr] 185 | pub fn validate(&self) -> bool { [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: variants `ExecutionError`, `OutOfGas`, `StackOverflow`, and `CallStackOverflow` are never constructed [INFO] [stderr] --> src/contract/vm.rs:11:5 [INFO] [stderr] | [INFO] [stderr] 9 | pub enum VMError { [INFO] [stderr] | ------- variants in this enum [INFO] [stderr] 10 | #[error("Execution error: {0}")] [INFO] [stderr] 11 | ExecutionError(String), [INFO] [stderr] | ^^^^^^^^^^^^^^ [INFO] [stderr] 12 | #[error("Out of gas")] [INFO] [stderr] 13 | OutOfGas, [INFO] [stderr] | ^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 17 | StackOverflow, [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] 18 | #[error("Call stack overflow")] [INFO] [stderr] 19 | CallStackOverflow, [INFO] [stderr] | ^^^^^^^^^^^^^^^^^ [INFO] [stderr] | [INFO] [stderr] = note: `VMError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis [INFO] [stderr] [INFO] [stderr] warning: field `gas_limit` is never read [INFO] [stderr] --> src/contract/vm.rs:62:5 [INFO] [stderr] | [INFO] [stderr] 60 | pub struct VM { [INFO] [stderr] | -- field in this struct [INFO] [stderr] 61 | contracts: HashMap, [INFO] [stderr] 62 | gas_limit: u64, [INFO] [stderr] | ^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: methods `get_contract`, `set_storage`, `get_storage`, and `get_contract_addresses` are never used [INFO] [stderr] --> src/contract/vm.rs:98:12 [INFO] [stderr] | [INFO] [stderr] 65 | impl VM { [INFO] [stderr] | ------- methods in this implementation [INFO] [stderr] ... [INFO] [stderr] 98 | pub fn get_contract(&self, address: &str) -> Option<&Contract> { [INFO] [stderr] | ^^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 103 | pub fn set_storage(&mut self, contract_addr: &str, key: &str, value: Vec) -> Result<(), VMError> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 111 | pub fn get_storage(&self, contract_addr: &str, key: &str) -> Option> { [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] ... [INFO] [stderr] 117 | pub fn get_contract_addresses(&self) -> Vec { [INFO] [stderr] | ^^^^^^^^^^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: `private-chain` (bin "blockchain-node" test) generated 45 warnings (run `cargo fix --bin "blockchain-node" -p private-chain --tests` to apply 16 suggestions) [INFO] [stderr] Finished `test` profile [unoptimized + debuginfo] target(s) in 0.22s [INFO] [stderr] Running unittests src/main.rs (/opt/rustwide/target/debug/deps/blockchain_node-35a45c081777aa5e) [INFO] [stdout] [INFO] [stdout] running 13 tests [INFO] [stdout] test block::tests::test_merkle_root ... ok [INFO] [stdout] test block::tests::test_block_creation ... ok [INFO] [stdout] test consensus::tests::test_poa_consensus ... ok [INFO] [stdout] test chain::tests::test_chain_creation ... ok [INFO] [stdout] test crypto::hash::tests::test_hash ... ok [INFO] [stdout] test contract::vm::tests::test_vm_deploy ... ok [INFO] [stdout] test contract::vm::tests::test_vm_call ... ok [INFO] [stdout] test wallet::account::tests::test_wallet_create_account ... ok [INFO] [stdout] test crypto::hash::tests::test_keypair ... ok [INFO] [stdout] test network::p2p::tests::test_network_creation ... ok [INFO] [stdout] test crypto::hash::tests::test_sign_verify ... ok [INFO] [stdout] test wallet::account::tests::test_wallet_transfer ... ok [INFO] [stdout] test chain::tests::test_add_block ... FAILED [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] [INFO] [stdout] ---- chain::tests::test_add_block stdout ---- [INFO] [stdout] [INFO] [stdout] thread 'chain::tests::test_add_block' (2240) panicked at src/chain.rs:171:43: [INFO] [stdout] called `Result::unwrap()` on an `Err` value: InvalidBlock [INFO] [stdout] stack backtrace: [INFO] [stdout] 0: 0x60e49e0732b8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::libunwind::trace [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9 [INFO] [stdout] 1: 0x60e49e0732b8 - std[10d71ac2c42b111e]::backtrace_rs::backtrace::trace_unsynchronized:: [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14 [INFO] [stdout] 2: 0x60e49e0732b8 - std[10d71ac2c42b111e]::sys::backtrace::_print_fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:74:9 [INFO] [stdout] 3: 0x60e49e0732b8 - <::print::DisplayBacktrace as core[8fb95b77d25ab6c8]::fmt::Display>::fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:44:26 [INFO] [stdout] 4: 0x60e49e0877ea - ::fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/fmt/rt.rs:152:76 [INFO] [stdout] 5: 0x60e49e0877ea - core[8fb95b77d25ab6c8]::fmt::write [INFO] [stdout] 6: 0x60e49e077ad2 - std[10d71ac2c42b111e]::io::default_write_fmt::> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:622:11 [INFO] [stdout] 7: 0x60e49e077ad2 - as std[10d71ac2c42b111e]::io::Write>::write_fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/io/mod.rs:1977:13 [INFO] [stdout] 8: 0x60e49e052476 - ::print [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:47:9 [INFO] [stdout] 9: 0x60e49e052476 - std[10d71ac2c42b111e]::panicking::default_hook::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:292:27 [INFO] [stdout] 10: 0x60e49e06b809 - std[10d71ac2c42b111e]::panicking::default_hook [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:316:9 [INFO] [stdout] 11: 0x60e49df77c2c - core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9 [INFO] [stdout] 12: 0x60e49df77c2c - test[213991da798b1c03]::test_main_inner::::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:155:21 [INFO] [stdout] 13: 0x60e49e06b9c2 - core[8fb95b77d25ab6c8]::ops::function::Fn<(&'a std[10d71ac2c42b111e]::panic::PanicHookInfo<'b>,), Output = ()> + core[8fb95b77d25ab6c8]::marker::Sync + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::Fn<(&std[10d71ac2c42b111e]::panic::PanicHookInfo,)>>::call [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2289:9 [INFO] [stdout] 14: 0x60e49e06b9c2 - std[10d71ac2c42b111e]::panicking::panic_with_hook [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:833:13 [INFO] [stdout] 15: 0x60e49e052532 - std[10d71ac2c42b111e]::panicking::panic_handler::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:698:13 [INFO] [stdout] 16: 0x60e49e047739 - std[10d71ac2c42b111e]::sys::backtrace::__rust_end_short_backtrace:: [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:182:18 [INFO] [stdout] 17: 0x60e49e05324d - __rustc[3be9ba60078d4c86]::rust_begin_unwind [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:689:5 [INFO] [stdout] 18: 0x60e49e087f7c - core[8fb95b77d25ab6c8]::panicking::panic_fmt [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panicking.rs:80:14 [INFO] [stdout] 19: 0x60e49e087cf2 - core[8fb95b77d25ab6c8]::result::unwrap_failed [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1867:5 [INFO] [stdout] 20: 0x60e49df6348d - >::unwrap [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/result.rs:1233:23 [INFO] [stdout] 21: 0x60e49df6348d - blockchain_node[883c0f2c059e3554]::chain::tests::test_add_block [INFO] [stdout] at /opt/rustwide/workdir/src/chain.rs:171:43 [INFO] [stdout] 22: 0x60e49df60fe7 - blockchain_node[883c0f2c059e3554]::chain::tests::test_add_block::{closure#0} [INFO] [stdout] at /opt/rustwide/workdir/src/chain.rs:161:24 [INFO] [stdout] 23: 0x60e49df5eb76 - >::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 24: 0x60e49df6ad0b - core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 25: 0x60e49df6ad0b - test[213991da798b1c03]::__rust_begin_short_backtrace::, fn() -> core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:724:18 [INFO] [stdout] 26: 0x60e49df78585 - test[213991da798b1c03]::run_test_in_process::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:74 [INFO] [stdout] 27: 0x60e49df78585 - as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 28: 0x60e49df78585 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40 [INFO] [stdout] 29: 0x60e49df78585 - std[10d71ac2c42b111e]::panicking::catch_unwind::, core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19 [INFO] [stdout] 30: 0x60e49df78585 - std[10d71ac2c42b111e]::panic::catch_unwind::, core[8fb95b77d25ab6c8]::result::Result<(), alloc[a7ee25936407c584]::string::String>> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14 [INFO] [stdout] 31: 0x60e49df78585 - test[213991da798b1c03]::run_test_in_process [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:747:27 [INFO] [stdout] 32: 0x60e49df78585 - test[213991da798b1c03]::run_test::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:668:43 [INFO] [stdout] 33: 0x60e49df71e94 - test[213991da798b1c03]::run_test::{closure#1} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/test/src/lib.rs:698:41 [INFO] [stdout] 34: 0x60e49df71e94 - std[10d71ac2c42b111e]::sys::backtrace::__rust_begin_short_backtrace:: [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/backtrace.rs:166:18 [INFO] [stdout] 35: 0x60e49df7b602 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::::{closure#1}::{closure#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:70:13 [INFO] [stdout] 36: 0x60e49df7b602 - ::{closure#1}::{closure#0}> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/panic/unwind_safe.rs:275:9 [INFO] [stdout] 37: 0x60e49df7b602 - std[10d71ac2c42b111e]::panicking::catch_unwind::do_call::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:581:40 [INFO] [stdout] 38: 0x60e49df7b602 - std[10d71ac2c42b111e]::panicking::catch_unwind::<(), core[8fb95b77d25ab6c8]::panic::unwind_safe::AssertUnwindSafe::{closure#1}::{closure#0}>> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panicking.rs:544:19 [INFO] [stdout] 39: 0x60e49df7b602 - std[10d71ac2c42b111e]::panic::catch_unwind::::{closure#1}::{closure#0}>, ()> [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/panic.rs:359:14 [INFO] [stdout] 40: 0x60e49df7b602 - std[10d71ac2c42b111e]::thread::lifecycle::spawn_unchecked::::{closure#1} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/thread/lifecycle.rs:68:26 [INFO] [stdout] 41: 0x60e49df7b602 - ::{closure#1} as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/core/src/ops/function.rs:250:5 [INFO] [stdout] 42: 0x60e49e072c1f - + core[8fb95b77d25ab6c8]::marker::Send> as core[8fb95b77d25ab6c8]::ops::function::FnOnce<()>>::call_once [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/alloc/src/boxed.rs:2275:9 [INFO] [stdout] 43: 0x60e49e072c1f - ::new::thread_start [INFO] [stdout] at /rustc/b2282dd5646a57d570fc86fbe8df0e8826665ef6/library/std/src/sys/thread/unix.rs:118:17 [INFO] [stdout] 44: 0x7615b262aaa4 - [INFO] [stdout] 45: 0x7615b26b7a64 - clone [INFO] [stdout] 46: 0x0 - [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] failures: [INFO] [stdout] chain::tests::test_add_block [INFO] [stdout] [INFO] [stdout] test result: FAILED. 12 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.07s [INFO] [stdout] [INFO] [stderr] error: test failed, to rerun pass `--bin blockchain-node` [INFO] running `Command { std: "docker" "inspect" "b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394", kill_on_drop: false }` [INFO] [stdout] b4b6ed77f76e48037f8865ef12ef650cd4947b1bccc63b767b4088bd5dd58394