[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] checking Jason9265/mock-chain against eca445e5ae4a6679cc27d3a09106ce245e13a5a6 for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJason9265%2Fmock-chain" "/workspace/builds/worker-3-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-3-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-3-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Jason9265/mock-chain on toolchain eca445e5ae4a6679cc27d3a09106ce245e13a5a6
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "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" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: unused build dependency `prost-build`
[INFO] [stderr]  --> Cargo.toml:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | prost-build = "0.12"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `prost-build`
[INFO] [stderr] warning: `private-chain` (manifest) generated 1 warning
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded hyper-timeout v0.4.1
[INFO] [stderr]   Downloaded axum-core v0.3.4
[INFO] [stderr]   Downloaded axum v0.6.20
[INFO] [stderr]   Downloaded data-encoding-macro v0.1.19
[INFO] [stderr]   Downloaded data-encoding-macro-internal v0.1.17
[INFO] [stderr]   Downloaded match-lookup v0.1.2
[INFO] [stderr]   Downloaded tonic v0.11.0
[INFO] [stderr]   Downloaded libp2p v0.52.4
[INFO] [stderr]   Downloaded yamux v0.12.1
[INFO] [stderr]   Downloaded asynchronous-codec v0.6.2
[INFO] [stderr]   Downloaded libp2p-tcp v0.40.1
[INFO] [stderr]   Downloaded if-watch v3.2.2
[INFO] [stderr]   Downloaded libp2p-yamux v0.44.1
[INFO] [stderr]   Downloaded libp2p-noise v0.43.2
[INFO] [stderr]   Downloaded libp2p-core v0.40.1
[INFO] [stderr]   Downloaded if-addrs v0.15.0
[INFO] [stderr]   Downloaded x25519-dalek v2.0.1
[INFO] [stderr]   Downloaded libp2p-metrics v0.13.1
[INFO] [stderr]   Downloaded futures-ticker v0.0.3
[INFO] [stderr]   Downloaded libp2p-connection-limits v0.2.1
[INFO] [stderr]   Downloaded libp2p-allow-block-list v0.2.0
[INFO] [stderr]   Downloaded libp2p-swarm v0.43.7
[INFO] [stderr]   Downloaded quick-protobuf-codec v0.2.0
[INFO] [stderr]   Downloaded prometheus-client v0.21.2
[INFO] [stderr]   Downloaded env_logger v0.10.2
[INFO] [stderr]   Downloaded snow v0.9.6
[INFO] [stderr]   Downloaded prometheus-client-derive-encode v0.4.2
[INFO] [stderr]   Downloaded libp2p-gossipsub v0.45.2
[INFO] [stderr]   Downloaded hex_fmt v0.3.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] aca3ce99bf76f23263199f288f6929797444edc07cedccc537f724b04c516594
[INFO] running `Command { std: "docker" "start" "aca3ce99bf76f23263199f288f6929797444edc07cedccc537f724b04c516594", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "aca3ce99bf76f23263199f288f6929797444edc07cedccc537f724b04c516594", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "aca3ce99bf76f23263199f288f6929797444edc07cedccc537f724b04c516594" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "aca3ce99bf76f23263199f288f6929797444edc07cedccc537f724b04c516594", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "aca3ce99bf76f23263199f288f6929797444edc07cedccc537f724b04c516594" "/opt/rustwide/cargo-home/bin/cargo" "+eca445e5ae4a6679cc27d3a09106ce245e13a5a6" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: unused build dependency `prost-build`
[INFO] [stderr]  --> Cargo.toml:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | prost-build = "0.12"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `prost-build`
[INFO] [stderr] warning: `private-chain` (manifest) generated 1 warning
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]     Checking pin-project-lite v0.2.17
[INFO] [stderr]     Checking memchr v2.8.0
[INFO] [stderr]     Checking bytes v1.11.1
[INFO] [stderr]     Checking futures-core v0.3.32
[INFO] [stderr]     Checking futures-sink v0.3.32
[INFO] [stderr]     Checking smallvec v1.15.1
[INFO] [stderr]     Checking slab v0.4.12
[INFO] [stderr]     Checking futures-io v0.3.32
[INFO] [stderr]     Checking futures-task v0.3.32
[INFO] [stderr]     Checking log v0.4.29
[INFO] [stderr]     Checking once_cell v1.21.4
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]     Checking itoa v1.0.18
[INFO] [stderr]    Compiling zerocopy v0.8.48
[INFO] [stderr]    Compiling semver v1.0.28
[INFO] [stderr]    Compiling serde_core v1.0.228
[INFO] [stderr]     Checking subtle v2.6.1
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking crypto-common v0.1.7
[INFO] [stderr]     Checking futures-channel v0.3.32
[INFO] [stderr]     Checking litemap v0.8.2
[INFO] [stderr]     Checking writeable v0.6.3
[INFO] [stderr]     Checking tracing-core v0.1.36
[INFO] [stderr]    Compiling thiserror v2.0.18
[INFO] [stderr]    Compiling icu_normalizer_data v2.2.0
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]    Compiling icu_properties_data v2.2.0
[INFO] [stderr]     Checking form_urlencoded v1.2.2
[INFO] [stderr]    Compiling data-encoding v2.10.0
[INFO] [stderr]     Checking byteorder v1.5.0
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking unsigned-varint v0.8.0
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]    Compiling rustc_version v0.4.1
[INFO] [stderr]     Checking hmac v0.12.1
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking const-str v0.4.3
[INFO] [stderr]    Compiling find-msvc-tools v0.1.9
[INFO] [stderr]     Checking quick-protobuf v0.8.1
[INFO] [stderr]     Checking base-x v0.2.11
[INFO] [stderr]     Checking hkdf v0.12.4
[INFO] [stderr]     Checking core2 v0.4.0
[INFO] [stderr]    Compiling cc v1.2.59
[INFO] [stderr]     Checking bs58 v0.5.1
[INFO] [stderr]    Compiling rustversion v1.0.22
[INFO] [stderr]     Checking tower-service v0.3.3
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]     Checking futures-timer v3.0.3
[INFO] [stderr]     Checking multihash v0.19.3
[INFO] [stderr]     Checking instant v0.1.13
[INFO] [stderr]     Checking void v1.0.2
[INFO] [stderr]    Compiling httparse v1.10.1
[INFO] [stderr]     Checking either v1.15.0
[INFO] [stderr]     Checking bitflags v2.11.0
[INFO] [stderr]     Checking tower-layer v0.3.3
[INFO] [stderr]     Checking httpdate v1.0.3
[INFO] [stderr]    Compiling nix v0.30.1
[INFO] [stderr]     Checking netlink-packet-core v0.8.1
[INFO] [stderr]     Checking equivalent v1.0.2
[INFO] [stderr]     Checking hashbrown v0.16.1
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking http v0.2.12
[INFO] [stderr]     Checking http v1.4.0
[INFO] [stderr]     Checking aho-corasick v1.1.4
[INFO] [stderr]     Checking regex-syntax v0.8.10
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]    Compiling anyhow v1.0.102
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]    Compiling snow v0.9.6
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]    Compiling zmij v1.0.21
[INFO] [stderr]     Checking untrusted v0.9.0
[INFO] [stderr]    Compiling axum-core v0.3.4
[INFO] [stderr]    Compiling prometheus-client v0.21.2
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling axum v0.6.20
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking matchit v0.7.3
[INFO] [stderr]     Checking dtoa v1.0.11
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]     Checking nohash-hasher v0.2.0
[INFO] [stderr]     Checking base64 v0.21.7
[INFO] [stderr]     Checking sync_wrapper v1.0.2
[INFO] [stderr]     Checking ipnet v2.12.0
[INFO] [stderr]     Checking http-body v1.0.1
[INFO] [stderr]     Checking http-body-util v0.1.3
[INFO] [stderr]     Checking indexmap v2.13.1
[INFO] [stderr]     Checking ryu v1.0.23
[INFO] [stderr]     Checking http-body v0.4.6
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling rustix v1.1.4
[INFO] [stderr]     Checking sync_wrapper v0.1.2
[INFO] [stderr]     Checking hex_fmt v0.3.0
[INFO] [stderr]     Checking humantime v2.3.0
[INFO] [stderr]     Checking linux-raw-sys v0.12.1
[INFO] [stderr]     Checking termcolor v1.4.1
[INFO] [stderr]     Checking iana-time-zone v0.1.65
[INFO] [stderr]     Checking fastrand v2.4.0
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking getrandom v0.2.17
[INFO] [stderr]     Checking errno v0.3.14
[INFO] [stderr]     Checking mio v1.2.0
[INFO] [stderr]     Checking signal-hook-registry v1.4.8
[INFO] [stderr]     Checking socket2 v0.6.3
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking netlink-sys v0.8.8
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]    Compiling ring v0.17.14
[INFO] [stderr]     Checking netlink-packet-route v0.28.0
[INFO] [stderr]    Compiling secp256k1-sys v0.8.2
[INFO] [stderr]     Checking is-terminal v0.4.17
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking serde_path_to_error v0.1.20
[INFO] [stderr]     Checking regex-automata v0.4.14
[INFO] [stderr]     Checking tempfile v3.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 tracing-attributes v0.1.31
[INFO] [stderr]    Compiling zerovec-derive v0.11.3
[INFO] [stderr]    Compiling displaydoc v0.2.5
[INFO] [stderr]    Compiling pin-project-internal v1.1.11
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling thiserror-impl v2.0.18
[INFO] [stderr]    Compiling zeroize_derive v1.4.3
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling tokio-macros v2.7.0
[INFO] [stderr]     Checking zeroize v1.8.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling match-lookup v0.1.2
[INFO] [stderr]     Checking tokio v1.51.0
[INFO] [stderr]    Compiling data-encoding-macro-internal v0.1.17
[INFO] [stderr]     Checking futures-util v0.3.32
[INFO] [stderr]    Compiling async-trait v0.1.89
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking regex v1.12.3
[INFO] [stderr]     Checking base256emoji v1.0.2
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling prometheus-client-derive-encode v0.4.2
[INFO] [stderr]     Checking pin-project v1.1.11
[INFO] [stderr]     Checking data-encoding-macro v0.1.19
[INFO] [stderr]    Compiling async-stream-impl v0.3.6
[INFO] [stderr]     Checking multibase v0.9.2
[INFO] [stderr]    Compiling prost-derive v0.12.6
[INFO] [stderr]     Checking env_logger v0.10.2
[INFO] [stderr]     Checking tracing v0.1.44
[INFO] [stderr]     Checking zerofrom v0.1.7
[INFO] [stderr]     Checking secp256k1 v0.27.0
[INFO] [stderr]     Checking yoke v0.8.2
[INFO] [stderr]     Checking async-stream v0.3.6
[INFO] [stderr]     Checking zerovec v0.11.6
[INFO] [stderr]     Checking zerotrie v0.2.4
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking tinystr v0.8.3
[INFO] [stderr]     Checking potential_utf v0.1.5
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking x25519-dalek v2.0.1
[INFO] [stderr]     Checking icu_collections v2.2.0
[INFO] [stderr]     Checking icu_locale_core v2.2.0
[INFO] [stderr]     Checking libp2p-identity v0.2.13
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking prost v0.12.6
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking chrono v0.4.44
[INFO] [stderr]     Checking icu_provider v2.2.0
[INFO] [stderr]     Checking icu_properties v2.2.0
[INFO] [stderr]     Checking icu_normalizer v2.2.0
[INFO] [stderr]     Checking futures-executor v0.3.32
[INFO] [stderr]     Checking asynchronous-codec v0.6.2
[INFO] [stderr]     Checking axum-core v0.4.5
[INFO] [stderr]     Checking futures v0.3.32
[INFO] [stderr]     Checking unsigned-varint v0.7.2
[INFO] [stderr]     Checking rw-stream-sink v0.4.0
[INFO] [stderr]     Checking netlink-proto v0.12.0
[INFO] [stderr]     Checking futures-ticker v0.0.3
[INFO] [stderr]     Checking yamux v0.12.1
[INFO] [stderr]     Checking rtnetlink v0.20.0
[INFO] [stderr]     Checking multistream-select v0.13.0
[INFO] [stderr]     Checking quick-protobuf-codec v0.2.0
[INFO] [stderr]     Checking if-watch v3.2.2
[INFO] [stderr]     Checking idna_adapter v1.2.1
[INFO] [stderr]     Checking idna v1.1.0
[INFO] [stderr]     Checking url v2.5.8
[INFO] [stderr]     Checking multiaddr v0.18.2
[INFO] [stderr]     Checking tokio-util v0.7.18
[INFO] [stderr]     Checking hyper v1.9.0
[INFO] [stderr]     Checking tokio-io-timeout v1.2.1
[INFO] [stderr]     Checking tokio-stream v0.1.18
[INFO] [stderr]     Checking tower v0.5.3
[INFO] [stderr]     Checking libp2p-core v0.40.1
[INFO] [stderr]     Checking h2 v0.3.27
[INFO] [stderr]     Checking tower v0.4.13
[INFO] [stderr]     Checking hyper-util v0.1.20
[INFO] [stderr]     Checking libp2p-swarm v0.43.7
[INFO] [stderr]     Checking libp2p-noise v0.43.2
[INFO] [stderr]     Checking libp2p-tcp v0.40.1
[INFO] [stderr]     Checking libp2p-yamux v0.44.1
[INFO] [stderr]     Checking axum v0.7.9
[INFO] [stderr]     Checking libp2p-connection-limits v0.2.1
[INFO] [stderr]     Checking libp2p-allow-block-list v0.2.0
[INFO] [stderr]     Checking libp2p-gossipsub v0.45.2
[INFO] [stderr]     Checking libp2p v0.52.4
[INFO] [stderr]     Checking hyper v0.14.32
[INFO] [stderr]     Checking hyper-timeout v0.4.1
[INFO] [stderr]     Checking tonic v0.11.0
[INFO] [stderr]     Checking 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: 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: 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: `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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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/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: 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: 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 `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: 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: 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: 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 `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: 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: 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: 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: 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: 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] [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] warning: unused dependency `tonic`
[INFO] [stderr]   --> Cargo.toml:22:1
[INFO] [stderr]    |
[INFO] [stderr] 22 | tonic = "0.11"
[INFO] [stderr]    | ^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `tonic`
[INFO] [stderr] warning: `private-chain` (manifest) generated 1 warning
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 16s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nix v0.30.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "aca3ce99bf76f23263199f288f6929797444edc07cedccc537f724b04c516594", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "aca3ce99bf76f23263199f288f6929797444edc07cedccc537f724b04c516594", kill_on_drop: false }`
[INFO] [stdout] aca3ce99bf76f23263199f288f6929797444edc07cedccc537f724b04c516594
