[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 master#ec6f9a5b4413f74386267ef8efc93712c2ce6db6 for pr-155739
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJason9265%2Fmock-chain" "/workspace/builds/worker-1-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-1-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-1-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Jason9265/mock-chain on toolchain ec6f9a5b4413f74386267ef8efc93712c2ce6db6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "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" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded fastrand v2.4.0
[INFO] [stderr]   Downloaded data-encoding-macro-internal v0.1.17
[INFO] [stderr]   Downloaded if-watch v3.2.2
[INFO] [stderr]   Downloaded secp256k1 v0.27.0
[INFO] [stderr]   Downloaded prost-build v0.12.6
[INFO] [stderr]   Downloaded multimap v0.10.1
[INFO] [stderr]   Downloaded if-addrs v0.15.0
[INFO] [stderr]   Downloaded match-lookup v0.1.2
[INFO] [stderr]   Downloaded libp2p-allow-block-list v0.2.0
[INFO] [stderr]   Downloaded libp2p-metrics v0.13.1
[INFO] [stderr]   Downloaded data-encoding-macro v0.1.19
[INFO] [stderr]   Downloaded quick-protobuf-codec v0.2.0
[INFO] [stderr]   Downloaded libp2p-tcp v0.40.1
[INFO] [stderr]   Downloaded rw-stream-sink v0.4.0
[INFO] [stderr]   Downloaded multibase v0.9.2
[INFO] [stderr]   Downloaded prometheus-client-derive-encode v0.4.2
[INFO] [stderr]   Downloaded base256emoji v1.0.2
[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 unsigned-varint v0.7.2
[INFO] [stderr]   Downloaded asynchronous-codec v0.6.2
[INFO] [stderr]   Downloaded libp2p-yamux v0.44.1
[INFO] [stderr]   Downloaded multihash v0.19.3
[INFO] [stderr]   Downloaded multistream-select v0.13.0
[INFO] [stderr]   Downloaded const-str v0.4.3
[INFO] [stderr]   Downloaded yamux v0.12.1
[INFO] [stderr]   Downloaded netlink-proto v0.12.0
[INFO] [stderr]   Downloaded netlink-packet-core v0.8.1
[INFO] [stderr]   Downloaded multiaddr v0.18.2
[INFO] [stderr]   Downloaded netlink-sys v0.8.8
[INFO] [stderr]   Downloaded libp2p-noise v0.43.2
[INFO] [stderr]   Downloaded prost-types v0.12.6
[INFO] [stderr]   Downloaded libp2p-identity v0.2.13
[INFO] [stderr]   Downloaded rtnetlink v0.20.0
[INFO] [stderr]   Downloaded prometheus-client v0.21.2
[INFO] [stderr]   Downloaded libp2p-core v0.40.1
[INFO] [stderr]   Downloaded libp2p v0.52.4
[INFO] [stderr]   Downloaded quick-protobuf v0.8.1
[INFO] [stderr]   Downloaded libp2p-swarm v0.43.7
[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 tokio v1.51.0
[INFO] [stderr]   Downloaded secp256k1-sys v0.8.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fa10df656cf9e0e751b6b836b129ec4016c71235481c7f734b9c7d37008f3e6b
[INFO] running `Command { std: "docker" "start" "-a" "fa10df656cf9e0e751b6b836b129ec4016c71235481c7f734b9c7d37008f3e6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fa10df656cf9e0e751b6b836b129ec4016c71235481c7f734b9c7d37008f3e6b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fa10df656cf9e0e751b6b836b129ec4016c71235481c7f734b9c7d37008f3e6b", kill_on_drop: false }`
[INFO] [stdout] fa10df656cf9e0e751b6b836b129ec4016c71235481c7f734b9c7d37008f3e6b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 2af20445c8f803ffbbd39331f421caa4a0817637a2c484db2ad74f47b85ff6bb
[INFO] running `Command { std: "docker" "start" "-a" "2af20445c8f803ffbbd39331f421caa4a0817637a2c484db2ad74f47b85ff6bb", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling smallvec v1.15.1
[INFO] [stderr]    Compiling proc-macro2 v1.0.106
[INFO] [stderr]    Compiling stable_deref_trait v1.2.1
[INFO] [stderr]    Compiling tracing-core v0.1.36
[INFO] [stderr]    Compiling litemap v0.8.2
[INFO] [stderr]    Compiling writeable v0.6.3
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling signature v2.2.0
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]    Compiling quick-protobuf v0.8.1
[INFO] [stderr]    Compiling core2 v0.4.0
[INFO] [stderr]    Compiling const-str v0.4.3
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling ed25519 v2.2.3
[INFO] [stderr]    Compiling quote v1.0.45
[INFO] [stderr]    Compiling unsigned-varint v0.8.0
[INFO] [stderr]    Compiling cc v1.2.59
[INFO] [stderr]    Compiling hmac v0.12.1
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling bs58 v0.5.1
[INFO] [stderr]    Compiling hkdf v0.12.4
[INFO] [stderr]    Compiling base-x v0.2.11
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling multihash v0.19.3
[INFO] [stderr]    Compiling futures-timer v3.0.3
[INFO] [stderr]    Compiling instant v0.1.13
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling http v0.2.12
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]    Compiling netlink-packet-core v0.8.1
[INFO] [stderr]    Compiling hashbrown v0.16.1
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]    Compiling try-lock v0.2.5
[INFO] [stderr]    Compiling regex-syntax v0.8.10
[INFO] [stderr]    Compiling want v0.3.1
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]    Compiling axum-core v0.3.4
[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 itertools v0.12.1
[INFO] [stderr]    Compiling matchit v0.7.3
[INFO] [stderr]    Compiling nohash-hasher v0.2.0
[INFO] [stderr]    Compiling dtoa v1.0.11
[INFO] [stderr]    Compiling indexmap v2.13.1
[INFO] [stderr]    Compiling ipnet v2.12.0
[INFO] [stderr]    Compiling hex_fmt v0.3.0
[INFO] [stderr]    Compiling sync_wrapper v0.1.2
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling serde_path_to_error v0.1.20
[INFO] [stderr]    Compiling iana-time-zone v0.1.65
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]    Compiling secp256k1-sys v0.8.2
[INFO] [stderr]    Compiling http-body v0.4.6
[INFO] [stderr]    Compiling parking_lot_core v0.9.12
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling errno v0.3.14
[INFO] [stderr]    Compiling mio v1.2.0
[INFO] [stderr]    Compiling socket2 v0.6.3
[INFO] [stderr]    Compiling socket2 v0.5.10
[INFO] [stderr]    Compiling netlink-sys v0.8.8
[INFO] [stderr]    Compiling netlink-packet-route v0.28.0
[INFO] [stderr]    Compiling is-terminal v0.4.17
[INFO] [stderr]    Compiling signal-hook-registry v1.4.8
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling parking_lot v0.12.5
[INFO] [stderr]    Compiling rand_chacha v0.3.1
[INFO] [stderr]    Compiling rand v0.8.5
[INFO] [stderr]    Compiling regex-automata v0.4.14
[INFO] [stderr]    Compiling secp256k1 v0.27.0
[INFO] [stderr]    Compiling synstructure v0.13.2
[INFO] [stderr]    Compiling futures-macro v0.3.32
[INFO] [stderr]    Compiling zerofrom-derive v0.1.7
[INFO] [stderr]    Compiling yoke-derive v0.8.2
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling tracing-attributes v0.1.31
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling tokio v1.51.0
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling data-encoding-macro-internal v0.1.17
[INFO] [stderr]    Compiling match-lookup v0.1.2
[INFO] [stderr]    Compiling zeroize v1.8.2
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]    Compiling base256emoji v1.0.2
[INFO] [stderr]    Compiling data-encoding-macro v0.1.19
[INFO] [stderr]    Compiling regex v1.12.3
[INFO] [stderr]    Compiling multibase v0.9.2
[INFO] [stderr]    Compiling futures-util v0.3.32
[INFO] [stderr]    Compiling prometheus-client-derive-encode v0.4.2
[INFO] [stderr]    Compiling zerofrom v0.1.7
[INFO] [stderr]    Compiling pin-project v1.1.11
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]    Compiling prost-derive v0.12.6
[INFO] [stderr]    Compiling env_logger v0.10.2
[INFO] [stderr]    Compiling yoke v0.8.2
[INFO] [stderr]    Compiling ed25519-dalek v2.2.0
[INFO] [stderr]    Compiling zerovec v0.11.6
[INFO] [stderr]    Compiling zerotrie v0.2.4
[INFO] [stderr]    Compiling tracing v0.1.44
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling x25519-dalek v2.0.1
[INFO] [stderr]    Compiling libp2p-identity v0.2.13
[INFO] [stderr]    Compiling thiserror v1.0.69
[INFO] [stderr]    Compiling async-stream v0.3.6
[INFO] [stderr]    Compiling prost v0.12.6
[INFO] [stderr]    Compiling tinystr v0.8.3
[INFO] [stderr]    Compiling potential_utf v0.1.5
[INFO] [stderr]    Compiling icu_collections v2.2.0
[INFO] [stderr]    Compiling icu_locale_core v2.2.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling serde_urlencoded v0.7.1
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling icu_provider v2.2.0
[INFO] [stderr]    Compiling icu_properties v2.2.0
[INFO] [stderr]    Compiling icu_normalizer v2.2.0
[INFO] [stderr]    Compiling futures-executor v0.3.32
[INFO] [stderr]    Compiling asynchronous-codec v0.6.2
[INFO] [stderr]    Compiling axum-core v0.4.5
[INFO] [stderr]    Compiling unsigned-varint v0.7.2
[INFO] [stderr]    Compiling futures v0.3.32
[INFO] [stderr]    Compiling rw-stream-sink v0.4.0
[INFO] [stderr]    Compiling netlink-proto v0.12.0
[INFO] [stderr]    Compiling yamux v0.12.1
[INFO] [stderr]    Compiling futures-ticker v0.0.3
[INFO] [stderr]    Compiling multistream-select v0.13.0
[INFO] [stderr]    Compiling quick-protobuf-codec v0.2.0
[INFO] [stderr]    Compiling rtnetlink v0.20.0
[INFO] [stderr]    Compiling idna_adapter v1.2.1
[INFO] [stderr]    Compiling idna v1.1.0
[INFO] [stderr]    Compiling tokio-util v0.7.18
[INFO] [stderr]    Compiling hyper v1.9.0
[INFO] [stderr]    Compiling tokio-io-timeout v1.2.1
[INFO] [stderr]    Compiling tokio-stream v0.1.18
[INFO] [stderr]    Compiling tower v0.5.3
[INFO] [stderr]    Compiling url v2.5.8
[INFO] [stderr]    Compiling if-watch v3.2.2
[INFO] [stderr]    Compiling h2 v0.3.27
[INFO] [stderr]    Compiling tower v0.4.13
[INFO] [stderr]    Compiling multiaddr v0.18.2
[INFO] [stderr]    Compiling hyper-util v0.1.20
[INFO] [stderr]    Compiling libp2p-core v0.40.1
[INFO] [stderr]    Compiling axum v0.7.9
[INFO] [stderr]    Compiling libp2p-swarm v0.43.7
[INFO] [stderr]    Compiling libp2p-yamux v0.44.1
[INFO] [stderr]    Compiling libp2p-noise v0.43.2
[INFO] [stderr]    Compiling libp2p-tcp v0.40.1
[INFO] [stderr]    Compiling libp2p-allow-block-list v0.2.0
[INFO] [stderr]    Compiling libp2p-connection-limits v0.2.1
[INFO] [stderr]    Compiling libp2p-gossipsub v0.45.2
[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<RwLock<Consensus>>,
[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<BlockHeader> {
[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<Block> {
[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<RwLock<HashSet<String>>>,
[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<Validator> {
[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>, 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<secp256k1::PublicKey, CryptoError> {
[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<PeerInfo> {
[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<Block> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub async fn start(&self) -> Result<(), Box<dyn std::error::Error>> {
[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<String, String> {
[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<u8>) -> 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<String, Contract>,
[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<u8>) -> Result<String, VMError> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  81 |     pub fn call(&mut self, contract_addr: &str, input: &[u8]) -> Result<ExecutionResult, VMError> {
[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<u8>) -> Result<(), VMError> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn get_storage(&self, contract_addr: &str, key: &str) -> Option<Vec<u8>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn get_contract_addresses(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 31s
[INFO] running `Command { std: "docker" "inspect" "2af20445c8f803ffbbd39331f421caa4a0817637a2c484db2ad74f47b85ff6bb", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2af20445c8f803ffbbd39331f421caa4a0817637a2c484db2ad74f47b85ff6bb", kill_on_drop: false }`
[INFO] [stdout] 2af20445c8f803ffbbd39331f421caa4a0817637a2c484db2ad74f47b85ff6bb
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a788a9ecda423df21915a14bf676c9c80a11e9e2a1d943b8feba81c1657a8ef7
[INFO] running `Command { std: "docker" "start" "-a" "a788a9ecda423df21915a14bf676c9c80a11e9e2a1d943b8feba81c1657a8ef7", kill_on_drop: false }`
[INFO] [stderr]    Compiling bitflags v2.11.0
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]    Compiling linux-raw-sys v0.12.1
[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<RwLock<Consensus>>,
[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<BlockHeader> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 132 |     pub fn get_blocks_in_range(&self, start: u64, end: u64) -> Vec<Block> {
[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<Validator> {
[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<String>,
[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<RwLock<HashMap<PeerId, PeerInfo>>>,
[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<PeerInfo> {
[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<Block> {
[INFO] [stdout]     |                  ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub async fn start(&self) -> Result<(), Box<dyn std::error::Error>> {
[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<String, String> {
[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<String, Contract>,
[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<u8>) -> Result<(), VMError> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 111 |     pub fn get_storage(&self, contract_addr: &str, key: &str) -> Option<Vec<u8>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 117 |     pub fn get_contract_addresses(&self) -> Vec<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 14.69s
[INFO] running `Command { std: "docker" "inspect" "a788a9ecda423df21915a14bf676c9c80a11e9e2a1d943b8feba81c1657a8ef7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a788a9ecda423df21915a14bf676c9c80a11e9e2a1d943b8feba81c1657a8ef7", kill_on_drop: false }`
[INFO] [stdout] a788a9ecda423df21915a14bf676c9c80a11e9e2a1d943b8feba81c1657a8ef7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-1-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+ec6f9a5b4413f74386267ef8efc93712c2ce6db6" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 6a899d1867d3fe79f9b3653957d31db8f94574017aed8e7aa9bf74d1515ceea4
[INFO] running `Command { std: "docker" "start" "-a" "6a899d1867d3fe79f9b3653957d31db8f94574017aed8e7aa9bf74d1515ceea4", 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<RwLock<Consensus>>,
[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<BlockHeader> {
[INFO] [stderr]     |            ^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 132 |     pub fn get_blocks_in_range(&self, start: u64, end: u64) -> Vec<Block> {
[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<Validator> {
[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<String>,
[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<RwLock<HashMap<PeerId, PeerInfo>>>,
[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<PeerInfo> {
[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<Block> {
[INFO] [stderr]     |                  ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 150 |     pub async fn start(&self) -> Result<(), Box<dyn std::error::Error>> {
[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<String, String> {
[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<String, Contract>,
[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<u8>) -> Result<(), VMError> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 111 |     pub fn get_storage(&self, contract_addr: &str, key: &str) -> Option<Vec<u8>> {
[INFO] [stderr]     |            ^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 117 |     pub fn get_contract_addresses(&self) -> Vec<String> {
[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.45s
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/blockchain_node-b69d3010bdeffad3)
[INFO] [stdout] 
[INFO] [stdout] running 13 tests
[INFO] [stdout] test contract::vm::tests::test_vm_call ... ok
[INFO] [stdout] test consensus::tests::test_poa_consensus ... ok
[INFO] [stdout] test chain::tests::test_chain_creation ... ok
[INFO] [stdout] test block::tests::test_block_creation ... ok
[INFO] [stdout] test contract::vm::tests::test_vm_deploy ... ok
[INFO] [stdout] test crypto::hash::tests::test_hash ... ok
[INFO] [stdout] test crypto::hash::tests::test_keypair ... ok
[INFO] [stdout] test crypto::hash::tests::test_sign_verify ... ok
[INFO] [stdout] test network::p2p::tests::test_network_creation ... ok
[INFO] [stdout] test wallet::account::tests::test_wallet_create_account ... ok
[INFO] [stdout] test wallet::account::tests::test_wallet_transfer ... ok
[INFO] [stdout] test block::tests::test_merkle_root ... 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' (20) panicked at src/chain.rs:171:43:
[INFO] [stdout] called `Result::unwrap()` on an `Err` value: InvalidBlock
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x602ddd8d7c4a - std[29689e6404d28ef9]::backtrace_rs::backtrace::libunwind::trace
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/libunwind.rs:117:9
[INFO] [stdout]    1:     0x602ddd8d7c4a - std[29689e6404d28ef9]::backtrace_rs::backtrace::trace_unsynchronized::<std[29689e6404d28ef9]::sys::backtrace::_print_fmt::{closure#1}>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/../../backtrace/src/backtrace/mod.rs:66:14
[INFO] [stdout]    2:     0x602ddd8d7c4a - std[29689e6404d28ef9]::sys::backtrace::_print_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:74:9
[INFO] [stdout]    3:     0x602ddd8d7c4a - <<std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print::DisplayBacktrace as core[e929cb53b82a81ca]::fmt::Display>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:44:26
[INFO] [stdout]    4:     0x602ddd8ec1aa - <core[e929cb53b82a81ca]::fmt::rt::Argument>::fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/fmt/rt.rs:152:76
[INFO] [stdout]    5:     0x602ddd8ec1aa - core[e929cb53b82a81ca]::fmt::write
[INFO] [stdout]    6:     0x602ddd8dc482 - std[29689e6404d28ef9]::io::default_write_fmt::<alloc[9d7caffeb3b5d2c6]::vec::Vec<u8>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:621:11
[INFO] [stdout]    7:     0x602ddd8dc482 - <alloc[9d7caffeb3b5d2c6]::vec::Vec<u8> as std[29689e6404d28ef9]::io::Write>::write_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/io/mod.rs:1976:13
[INFO] [stdout]    8:     0x602ddd8b6c4f - <std[29689e6404d28ef9]::sys::backtrace::BacktraceLock>::print
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:47:9
[INFO] [stdout]    9:     0x602ddd8b6c4f - std[29689e6404d28ef9]::panicking::default_hook::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:292:27
[INFO] [stdout]   10:     0x602ddd8d00a9 - std[29689e6404d28ef9]::panicking::default_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:316:9
[INFO] [stdout]   11:     0x602ddd7dc3ac - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   12:     0x602ddd7dc3ac - test[a24b3028667022f7]::test_main_inner::<test[a24b3028667022f7]::test_main_static::{closure#0}>::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:155:21
[INFO] [stdout]   13:     0x602ddd8d0262 - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn for<'a, 'b> core[e929cb53b82a81ca]::ops::function::Fn<(&'a std[29689e6404d28ef9]::panic::PanicHookInfo<'b>,), Output = ()> + core[e929cb53b82a81ca]::marker::Send + core[e929cb53b82a81ca]::marker::Sync> as core[e929cb53b82a81ca]::ops::function::Fn<(&std[29689e6404d28ef9]::panic::PanicHookInfo,)>>::call
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2285:9
[INFO] [stdout]   14:     0x602ddd8d0262 - std[29689e6404d28ef9]::panicking::panic_with_hook
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:833:13
[INFO] [stdout]   15:     0x602ddd8b6d08 - std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:698:13
[INFO] [stdout]   16:     0x602ddd8abf19 - std[29689e6404d28ef9]::sys::backtrace::__rust_end_short_backtrace::<std[29689e6404d28ef9]::panicking::panic_handler::{closure#0}, !>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:182:18
[INFO] [stdout]   17:     0x602ddd8b7a1d - __rustc[3aed6af316653e63]::rust_begin_unwind
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:689:5
[INFO] [stdout]   18:     0x602ddd8ec93c - core[e929cb53b82a81ca]::panicking::panic_fmt
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panicking.rs:80:14
[INFO] [stdout]   19:     0x602ddd8ec6b2 - core[e929cb53b82a81ca]::result::unwrap_failed
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/result.rs:1867:5
[INFO] [stdout]   20:     0x602ddd7c690d - <core[e929cb53b82a81ca]::result::Result<[u8; 32usize], blockchain_node[d52fab73ac5d7fa2]::chain::ChainError>>::unwrap
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/result.rs:1233:23
[INFO] [stdout]   21:     0x602ddd7c690d - blockchain_node[d52fab73ac5d7fa2]::chain::tests::test_add_block
[INFO] [stdout]                                at /opt/rustwide/workdir/src/chain.rs:171:43
[INFO] [stdout]   22:     0x602ddd7c4e77 - blockchain_node[d52fab73ac5d7fa2]::chain::tests::test_add_block::{closure#0}
[INFO] [stdout]                                at /opt/rustwide/workdir/src/chain.rs:161:24
[INFO] [stdout]   23:     0x602ddd7bb156 - <blockchain_node[d52fab73ac5d7fa2]::chain::tests::test_add_block::{closure#0} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x602ddd7cf68b - <fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x602ddd7cf68b - test[a24b3028667022f7]::__rust_begin_short_backtrace::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, fn() -> core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:724:18
[INFO] [stdout]   26:     0x602ddd7dce7b - test[a24b3028667022f7]::run_test_in_process::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:74
[INFO] [stdout]   27:     0x602ddd7dce7b - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   28:     0x602ddd7dce7b - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   29:     0x602ddd7dce7b - std[29689e6404d28ef9]::panicking::catch_unwind::<core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>, core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   30:     0x602ddd7dce7b - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<test[a24b3028667022f7]::run_test_in_process::{closure#0}>, core[e929cb53b82a81ca]::result::Result<(), alloc[9d7caffeb3b5d2c6]::string::String>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   31:     0x602ddd7dce7b - test[a24b3028667022f7]::run_test_in_process
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:747:27
[INFO] [stdout]   32:     0x602ddd7dce7b - test[a24b3028667022f7]::run_test::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:668:43
[INFO] [stdout]   33:     0x602ddd7d6594 - test[a24b3028667022f7]::run_test::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/test/src/lib.rs:698:41
[INFO] [stdout]   34:     0x602ddd7d6594 - std[29689e6404d28ef9]::sys::backtrace::__rust_begin_short_backtrace::<test[a24b3028667022f7]::run_test::{closure#1}, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/backtrace.rs:166:18
[INFO] [stdout]   35:     0x602ddd7dfa82 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:70:13
[INFO] [stdout]   36:     0x602ddd7dfa82 - <core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/panic/unwind_safe.rs:275:9
[INFO] [stdout]   37:     0x602ddd7dfa82 - std[29689e6404d28ef9]::panicking::catch_unwind::do_call::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:581:40
[INFO] [stdout]   38:     0x602ddd7dfa82 - std[29689e6404d28ef9]::panicking::catch_unwind::<(), core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panicking.rs:544:19
[INFO] [stdout]   39:     0x602ddd7dfa82 - std[29689e6404d28ef9]::panic::catch_unwind::<core[e929cb53b82a81ca]::panic::unwind_safe::AssertUnwindSafe<std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}::{closure#0}>, ()>
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/panic.rs:359:14
[INFO] [stdout]   40:     0x602ddd7dfa82 - std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked::<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/thread/lifecycle.rs:68:26
[INFO] [stdout]   41:     0x602ddd7dfa82 - <std[29689e6404d28ef9]::thread::lifecycle::spawn_unchecked<test[a24b3028667022f7]::run_test::{closure#1}, ()>::{closure#1} as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x602ddd8d755f - <alloc[9d7caffeb3b5d2c6]::boxed::Box<dyn core[e929cb53b82a81ca]::ops::function::FnOnce<(), Output = ()> + core[e929cb53b82a81ca]::marker::Send> as core[e929cb53b82a81ca]::ops::function::FnOnce<()>>::call_once
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/alloc/src/boxed.rs:2271:9
[INFO] [stdout]   43:     0x602ddd8d755f - <std[29689e6404d28ef9]::sys::thread::unix::Thread>::new::thread_start
[INFO] [stdout]                                at /rustc/ec6f9a5b4413f74386267ef8efc93712c2ce6db6/library/std/src/sys/thread/unix.rs:118:17
[INFO] [stdout]   44:     0x78455217baa4 - <unknown>
[INFO] [stdout]   45:     0x784552208a64 - clone
[INFO] [stdout]   46:                0x0 - <unknown>
[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.15s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--bin blockchain-node`
[INFO] running `Command { std: "docker" "inspect" "6a899d1867d3fe79f9b3653957d31db8f94574017aed8e7aa9bf74d1515ceea4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6a899d1867d3fe79f9b3653957d31db8f94574017aed8e7aa9bf74d1515ceea4", kill_on_drop: false }`
[INFO] [stdout] 6a899d1867d3fe79f9b3653957d31db8f94574017aed8e7aa9bf74d1515ceea4
